Ver Fonte

Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware

Christopher Browne há 10 anos atrás
pai
commit
f6d1ce7863
100 ficheiros alterados com 6059 adições e 4811 exclusões
  1. 2 0
      .gitattributes
  2. 6 4
      Makefile
  3. 5 0
      README.md
  4. 1 0
      doc/BUILD_GUIDE.md
  5. 1 1
      keyboard/arrow_pad/arrow_pad.h
  6. 1 1
      keyboard/atreus/atreus.h
  7. 1 1
      keyboard/bantam44/bantam44.h
  8. 1 1
      keyboard/clueboard1/clueboard1.h
  9. 1 1
      keyboard/clueboard2/clueboard2.h
  10. 1 1
      keyboard/cluepad/cluepad.h
  11. 1 1
      keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c
  12. 1 1
      keyboard/ergodox_ez/keymaps/townk_osx/keymap.c
  13. 19 0
      keyboard/ergodox_ez/matrix.c
  14. 1 1
      keyboard/gh60/gh60.h
  15. 1 1
      keyboard/hhkb/hhkb.h
  16. 1 1
      keyboard/jd45/jd45.h
  17. 1 2
      keyboard/kc60/Makefile
  18. 6 3
      keyboard/kc60/README.md
  19. 1 1
      keyboard/kc60/config.h
  20. 2 2
      keyboard/kc60/kc60.c
  21. 1 1
      keyboard/kc60/kc60.h
  22. 1764 1451
      keyboard/kc60/keymaps/default/compiled.hex
  23. 63 0
      keyboard/kc60/keymaps/ws2812/Makefile
  24. 21 0
      keyboard/kc60/keymaps/ws2812/README.md
  25. 1767 0
      keyboard/kc60/keymaps/ws2812/compiled.hex
  26. 10 0
      keyboard/kc60/keymaps/ws2812/config.h
  27. 161 0
      keyboard/kc60/keymaps/ws2812/keymap.c
  28. BIN
      keyboard/kc60/keymaps/ws2812/ws2812_example.jpg
  29. BIN
      keyboard/kc60/keymaps/ws2812/ws2812_underside-lit.jpg
  30. BIN
      keyboard/kc60/keymaps/ws2812/ws2812_underside.jpg
  31. BIN
      keyboard/kc60/keymaps/ws2812/ws2812_wiring.jpg
  32. 1 1
      keyboard/phantom/phantom.h
  33. 1 1
      keyboard/planck/keymaps/alexey/keymap.c
  34. 1 1
      keyboard/planck/keymaps/angerthosenear/keymap.c
  35. 1 1
      keyboard/planck/keymaps/austin/keymap.c
  36. 1 1
      keyboard/planck/keymaps/charlie/keymap.c
  37. 1 1
      keyboard/planck/keymaps/daniel/keymap.c
  38. 1 1
      keyboard/planck/keymaps/david/keymap.c
  39. 1427 1426
      keyboard/planck/keymaps/default/compiled.hex
  40. 1 1
      keyboard/planck/keymaps/dzobert/keymap.c
  41. 1 1
      keyboard/planck/keymaps/joe/keymap.c
  42. 1 1
      keyboard/planck/keymaps/kyle/keymap.c
  43. 1 1
      keyboard/planck/keymaps/leo/keymap.c
  44. 1 1
      keyboard/planck/keymaps/lucas/keymap.c
  45. 1 1
      keyboard/planck/keymaps/max/keymap.c
  46. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_brett.c
  47. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_dotcom.c
  48. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_jack.c
  49. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_joe.c
  50. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_matthew.c
  51. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c
  52. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_nathan.c
  53. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_paul.c
  54. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_peasant.c
  55. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_reed.c
  56. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_sean.c
  57. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_shane.c
  58. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_simon.c
  59. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_tim.c
  60. 1 1
      keyboard/planck/old_keymap_files/common_keymaps/keymap_wilba.c
  61. 1 1
      keyboard/planck/old_keymap_files/keymap_common.c
  62. 1 1
      keyboard/retro_refit/retro_refit.h
  63. 1 1
      keyboard/satan/satan.h
  64. 1 1
      quantum/audio/audio.c
  65. 1 1
      quantum/audio/audio_pwm.c
  66. 74 0
      quantum/keycode_config.c
  67. 21 0
      quantum/keycode_config.h
  68. 163 0
      quantum/keymap.c
  69. 315 0
      quantum/keymap.h
  70. 0 323
      quantum/keymap_common.c
  71. 0 292
      quantum/keymap_common.h
  72. 1 1
      quantum/keymap_extras/keymap_bepo.h
  73. 1 1
      quantum/keymap_extras/keymap_colemak.h
  74. 1 1
      quantum/keymap_extras/keymap_dvorak.h
  75. 1 1
      quantum/keymap_extras/keymap_fr_ch.h
  76. 1 1
      quantum/keymap_extras/keymap_french.h
  77. 1 1
      quantum/keymap_extras/keymap_french_osx.h
  78. 1 1
      quantum/keymap_extras/keymap_german.h
  79. 1 1
      quantum/keymap_extras/keymap_german_ch.h
  80. 1 1
      quantum/keymap_extras/keymap_german_osx.h
  81. 1 1
      quantum/keymap_extras/keymap_neo2.h
  82. 1 1
      quantum/keymap_extras/keymap_nordic.h
  83. 1 1
      quantum/keymap_extras/keymap_plover.h
  84. 1 1
      quantum/keymap_extras/keymap_spanish.h
  85. 1 1
      quantum/keymap_extras/keymap_uk.h
  86. 1 1
      quantum/keymap_midi.c
  87. 24 0
      quantum/matrix.c
  88. 135 59
      quantum/quantum.c
  89. 9 4
      quantum/quantum.h
  90. 1 1
      quantum/template/template.h
  91. 0 1
      tmk_core/common.mk
  92. 0 193
      tmk_core/common/keymap.c
  93. 0 68
      tmk_core/common/keymap.h
  94. 1 5
      tmk_core/protocol/lufa.mk
  95. 0 274
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.c
  96. 0 94
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.h
  97. 0 92
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.txt
  98. 0 51
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Config/AppConfig.h
  99. 0 93
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Config/LUFAConfig.h
  100. 0 312
      tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Descriptors.c

+ 2 - 0
.gitattributes

@@ -0,0 +1,2 @@
+* text=auto
+*.hex -diff

+ 6 - 4
Makefile

@@ -2,8 +2,9 @@ ifndef VERBOSE
 .SILENT:
 .SILENT:
 endif
 endif
 
 
-starting_makefile := $(abspath $(firstword $(MAKEFILE_LIST)))
-mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
+space := $(subst ,, )
+starting_makefile := $(subst $(space),_SPACE_,$(abspath $(firstword $(MAKEFILE_LIST))))
+mkfile_path := $(subst $(space),_SPACE_,$(abspath $(lastword $(MAKEFILE_LIST))))
 abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
 abs_tmk_root := $(patsubst %/,%,$(dir $(mkfile_path)))
 
 
 ifneq (,$(findstring /keyboard/,$(starting_makefile)))
 ifneq (,$(findstring /keyboard/,$(starting_makefile)))
@@ -67,7 +68,7 @@ else
 $(error "$(KEYMAP_PATH)/keymap.c" does not exist)
 $(error "$(KEYMAP_PATH)/keymap.c" does not exist)
 endif
 endif
 
 
-TARGET = $(KEYBOARD)_$(KEYMAP)
+TARGET ?= $(KEYBOARD)_$(KEYMAP)
 
 
 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
 ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","")
 	CONFIG_H = $(KEYMAP_PATH)/config.h
 	CONFIG_H = $(KEYMAP_PATH)/config.h
@@ -79,7 +80,8 @@ endif
 SRC += $(KEYBOARD_FILE) \
 SRC += $(KEYBOARD_FILE) \
 	$(KEYMAP_FILE) \
 	$(KEYMAP_FILE) \
 	$(QUANTUM_DIR)/quantum.c \
 	$(QUANTUM_DIR)/quantum.c \
-	$(QUANTUM_DIR)/keymap_common.c \
+	$(QUANTUM_DIR)/keymap.c \
+	$(QUANTUM_DIR)/keycode_config.c \
 	$(QUANTUM_DIR)/led.c
 	$(QUANTUM_DIR)/led.c
 
 
 ifndef CUSTOM_MATRIX
 ifndef CUSTOM_MATRIX

+ 5 - 0
README.md

@@ -134,6 +134,11 @@ Steve Losh [described](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/)
 
 
 To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. 
 To use it, use `KC_LSPO` (Left Shift, Parens Open) for your left Shift on your keymap, and `KC_RSPC` (Right Shift, Parens Close) for your right Shift. 
 
 
+It's defaulted to work on US keyboards, but if your layout uses different keys for parenthesis, you can define those in your keymap like this:
+
+    #define LSPO_KEY KC_9
+    #define RSPC_KEY KC_0
+
 The only other thing you're going to want to do is create a `makefile.mk` in your keymap directory and set the following:
 The only other thing you're going to want to do is create a `makefile.mk` in your keymap directory and set the following:
 
 
 ```
 ```

+ 1 - 0
doc/BUILD_GUIDE.md

@@ -67,6 +67,7 @@ Below is a list of the useful `make` commands in QMK:
 * `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root)
 * `make all-keyboards` - builds all keymaps for all keyboards and outputs status of each (use in root)
 * `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root)
 * `make all-keyboards-default` - builds all default keymaps for all keyboards and outputs status of each (use in root)
 * `make all-keymaps [keyboard=<keyboard>]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `<keyboard>`
 * `make all-keymaps [keyboard=<keyboard>]` - builds all of the keymaps for whatever keyboard folder you're in, or specified by `<keyboard>`
+* `make all-keyboards-quick`, `make all-keyboards-default-quick` and `make all-keymaps-quick [keyboard=<keyboard>]` - like the normal "make-all-*" commands, but they skip the clean steps
 
 
 Other, less useful functionality:
 Other, less useful functionality:
 
 

+ 1 - 1
keyboard/arrow_pad/arrow_pad.h

@@ -2,7 +2,7 @@
 #define ARROW_PAD_H
 #define ARROW_PAD_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #ifdef BACKLIGHT_ENABLE
 #ifdef BACKLIGHT_ENABLE
 	#include "backlight.h"
 	#include "backlight.h"
 #endif
 #endif

+ 1 - 1
keyboard/atreus/atreus.h

@@ -2,7 +2,7 @@
 #define ATREUS_H
 #define ATREUS_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "backlight.h"
 #include "backlight.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 1
keyboard/bantam44/bantam44.h

@@ -2,7 +2,7 @@
 #define BANTAM44_H
 #define BANTAM44_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "backlight.h"
 #include "backlight.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 1
keyboard/clueboard1/clueboard1.h

@@ -2,7 +2,7 @@
 #define CLUEBOARD1_H
 #define CLUEBOARD1_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include <stddef.h>
 #include <stddef.h>
 
 
 
 

+ 1 - 1
keyboard/clueboard2/clueboard2.h

@@ -2,7 +2,7 @@
 #define CLUEBOARD2_H
 #define CLUEBOARD2_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include <stddef.h>
 #include <stddef.h>
 
 
 
 

+ 1 - 1
keyboard/cluepad/cluepad.h

@@ -2,7 +2,7 @@
 #define CLUEPAD_H
 #define CLUEPAD_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include <stddef.h>
 #include <stddef.h>
 
 
 
 

+ 1 - 1
keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c

@@ -1,6 +1,6 @@
 #include "ergodox_ez.h"
 #include "ergodox_ez.h"
 #include "action_layer.h"
 #include "action_layer.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "keymap_extras/keymap_german.h"
 #include "keymap_extras/keymap_german.h"
 
 
 #define UC_ASYMPTOTICALLY_EQUAL_TO 0
 #define UC_ASYMPTOTICALLY_EQUAL_TO 0

+ 1 - 1
keyboard/ergodox_ez/keymaps/townk_osx/keymap.c

@@ -3,7 +3,7 @@
 #include "action_layer.h"
 #include "action_layer.h"
 #include "action_util.h"
 #include "action_util.h"
 #include "led.h"
 #include "led.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "timer.h"
 #include "timer.h"
 
 
 /*
 /*

+ 19 - 0
keyboard/ergodox_ez/matrix.c

@@ -106,6 +106,25 @@ void matrix_init(void)
 
 
 }
 }
 
 
+void matrix_power_up(void) {
+    mcp23018_status = init_mcp23018();
+
+    unselect_rows();
+    init_cols();
+
+    // initialize matrix state: all keys off
+    for (uint8_t i=0; i < MATRIX_ROWS; i++) {
+        matrix[i] = 0;
+        matrix_debouncing[i] = 0;
+    }
+
+#ifdef DEBUG_MATRIX_SCAN_RATE
+    matrix_timer = timer_read32();
+    matrix_scan_count = 0;
+#endif
+
+}
+
 uint8_t matrix_scan(void)
 uint8_t matrix_scan(void)
 {
 {
     if (mcp23018_status) { // if there was an error
     if (mcp23018_status) { // if there was an error

+ 1 - 1
keyboard/gh60/gh60.h

@@ -2,7 +2,7 @@
 #define GH60_H
 #define GH60_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "backlight.h"
 #include "backlight.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 1
keyboard/hhkb/hhkb.h

@@ -2,7 +2,7 @@
 #define HHKB_H
 #define HHKB_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 //#include "backlight.h"
 //#include "backlight.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 1
keyboard/jd45/jd45.h

@@ -2,7 +2,7 @@
 #define JD45_H
 #define JD45_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "backlight.h"
 #include "backlight.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 2
keyboard/kc60/Makefile

@@ -27,7 +27,7 @@
 # make flip-ee = Download the eeprom file to the device, using Atmel FLIP
 # make flip-ee = Download the eeprom file to the device, using Atmel FLIP
 #                (must have Atmel FLIP installed).
 #                (must have Atmel FLIP installed).
 #
 #
-# make debug = Start either simulavr or avarice as specified for debugging, 
+# make debug = Start either simulavr or avarice as specified for debugging,
 #              with avr-gdb or avr-insight as the front end for debugging.
 #              with avr-gdb or avr-insight as the front end for debugging.
 #
 #
 # make filename.s = Just compile filename.c into the assembler code only.
 # make filename.s = Just compile filename.c into the assembler code only.
@@ -111,4 +111,3 @@ AUDIO_ENABLE ?= no           # Audio output on port C6
 ifndef QUANTUM_DIR
 ifndef QUANTUM_DIR
 	include ../../Makefile
 	include ../../Makefile
 endif
 endif
-

+ 6 - 3
keyboard/kc60/README.md

@@ -2,12 +2,10 @@ KC60 (version 2.0) keyboard firmware
 ======================
 ======================
 
 
 ## Quantum MK Firmware
 ## Quantum MK Firmware
-
 For the full Quantum feature list, see [the parent README.md](/README.md).
 For the full Quantum feature list, see [the parent README.md](/README.md).
 
 
 ## Building
 ## Building
-
-Download or clone the whole firmware and navigate to the keyboard/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. 
+Download or clone the whole firmware and navigate to the keyboard/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
 
 
 Depending on which keymap you would like to use, you will have to compile slightly differently.
 Depending on which keymap you would like to use, you will have to compile slightly differently.
 
 
@@ -22,3 +20,8 @@ To build the firmware binary hex file with a keymap just do `make` with `KEYMAP`
 $ make KEYMAP=[default|jack|<name>]
 $ make KEYMAP=[default|jack|<name>]
 ```
 ```
 Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
 Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
+
+## WS2812 Support
+![Image of KC60 with RGB Underglow](keymaps/ws2812/ws2812_example.jpg)
+
+Build with WS2812 Support by running `make KEYMAP=ws2812`.

+ 1 - 1
keyboard/kc60/config.h

@@ -45,7 +45,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 // Possible pins for columns include: F1  F0  E6  D7  D6  D4  C7  C6  B7  B5  B4  B3  B1  B0
 // Possible pins for columns include: F1  F0  E6  D7  D6  D4  C7  C6  B7  B5  B4  B3  B1  B0
 // Pins for rows include:  D0  D1  F6  F7  D5
 // Pins for rows include:  D0  D1  F6  F7  D5
-// KC60 Version 2 
+// KC60 Version 2
 #define MATRIX_ROW_PINS { D0, D1, F6, F7, D5 }
 #define MATRIX_ROW_PINS { D0, D1, F6, F7, D5 }
 #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 }
 #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3 }
 #define UNUSED_PINS
 #define UNUSED_PINS

+ 2 - 2
keyboard/kc60/kc60.c

@@ -62,7 +62,7 @@ void backlight_init_ports()
   DDRB |= (1<<6);
   DDRB |= (1<<6);
   PORTB &= ~(1<<6);
   PORTB &= ~(1<<6);
 
 
-  // Use full 16-bit resolution. 
+  // Use full 16-bit resolution.
   ICR1 = 0xFFFF;
   ICR1 = 0xFFFF;
 
 
   // I could write a wall of text here to explain... but TL;DW
   // I could write a wall of text here to explain... but TL;DW
@@ -99,7 +99,7 @@ void backlight_set(uint8_t level)
     // Set the brightness
     // Set the brightness
     CHANNEL = 0xFFFF;
     CHANNEL = 0xFFFF;
   }
   }
-  else        
+  else
   {
   {
     // Turn on PWM control of PB6
     // Turn on PWM control of PB6
     TCCR1A |= _BV(COM1B1);
     TCCR1A |= _BV(COM1B1);

+ 1 - 1
keyboard/kc60/kc60.h

@@ -2,7 +2,7 @@
 #define KC60_H
 #define KC60_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #ifdef BACKLIGHT_ENABLE
 #ifdef BACKLIGHT_ENABLE
 #include "backlight.h"
 #include "backlight.h"
 #endif
 #endif

+ 1764 - 1451
keyboard/kc60/keymaps/default/compiled.hex

@@ -1,1451 +1,1764 @@
-:100000000C9472060C94B6060C94B6060C94B606C4
-:100010000C94B6060C94B6060C94B6060C94B60670
-:100020000C94B6060C94B6060C94AB110C947D128D
-:100030000C9454200C94B6060C94B6060C94B60698
-:100040000C94B6060C94B6060C94B6060C94B60640
-:100050000C94B6060C94BB200C94B6060C94B60611
-:100060000C94B6060C94B6060C94B6060C94B60620
-:100070000C94B6060C94B6060C94B6060C94B60610
-:100080000C94B6060C94B6060C94B6060C94B60600
-:100090000C94B6060C94B6060C94B6060C94B606F0
-:1000A0000C94B6060C94B6060C94B606E212041331
-:1000B000EF130413EF1346136913EF13BE13D11399
-:1000C0001A171A17491749178917AB17FA18FA1888
-:1000D000B617FA185D185D18C718CF18FA18F51872
-:1000E0006A186A186A186A186A186A186A186A1800
-:1000F0006A186A186A186A186A186A186A186A18F0
-:100100007A188A1891189818A21829001E001F0042
-:1001100020002100220023002400250026002700C3
-:100120002D002E002A002B0014001A0008001500D4
-:1001300017001C0018000C00120013002F003000E4
-:100140003100390004001600070009000A000B0006
-:100150000D000E000F003300340000002800E10005
-:1001600000001D001B000600190005001100100012
-:100170003600370038000000E500E000E200E30050
-:10018000000000002C000000000000000000E7005C
-:10019000E600E40000500A44454255473A20656EA7
-:1001A00061626C65642E0A005374617465206F6629
-:1001B00020726F772025583A2025303136620A00A8
-:1001C00048756D616E2D7265616461626C65206D4C
-:1001D00061747269782073746174653A0D0A004421
-:1001E00065626F756E63696E672064656C61792006
-:1001F00072656D61696E696E673A2025580A005B09
-:10020000735D004B6579626F617264207374617213
-:10021000742E0A005B575D005B535D005B525D000E
-:100220005B445D005B435D000E036B0063003600C2
-:100230003000760032000000080359006F0075009E
-:1002400000000403090409027400040100A0FA0973
-:1002500004000001030101000921110100012240F5
-:10026000000705810308000A0904010001030102D7
-:1002700000092111010001224D0007058203080039
-:100280000A09040200010300000009211101000114
-:100290002236000705830308000A0904030002034D
-:1002A000000000092111010001222000070584033C
-:1002B00020000107050403200001120110010000C5
-:1002C0000008EDFE60600100010200010631FF0937
-:1002D00074A1010975150025FF9520750881020993
-:1002E00076150025FF952075089102C0050109804B
-:1002F000A101850216010026B7001A01002AB700E5
-:10030000751095018100C0050C0901A10185031636
-:100310000100269C021A01002A9C02751095018199
-:1003200000C005010902A1010901A1000509190187
-:1003300029051500250195057501810295017503B3
-:1003400081010501093009311581257F9502750864
-:10035000810609381581257F950175088106050CF0
-:100360000A38021581257F950175088106C0C005F0
-:10037000010906A101050719E029E71500250195E6
-:100380000875018102950175088101050819012987
-:1003900005950575019102950175039101050719F0
-:1003A0000029FF150026FF00950675088100C00A88
-:1003B000002530325820006B6579626F6172645F8E
-:1003C0007265706F72743A20004B6579626F61726A
-:1003D00064204C4544732073746174653A20257819
-:1003E0000A00646F6E652E0A00626F6F676D616749
-:1003F0006963207363616E3A202E2E2E2000290A35
-:10040000002575002F002575005D2800256400205B
-:1004100000256400200025640020002564007C0085
-:1004200025303258006D6F7573656B6579205B629E
-:10043000746E7C782079207620685D287265702F34
-:1004400061636C293A205B006D6B5F776865656C52
-:100450005F74696D655F746F5F6D6178203D202505
-:10046000640A006D6B5F776865656C5F6D61785FCE
-:100470007370656564203D2025640A006D6B5F74B0
-:10048000696D655F746F5F6D6178203D2025640A3A
-:10049000006D6B5F6D61785F7370656564203D20F2
-:1004A00025640A006D6B5F696E74657276616C20FD
-:1004B0003D2025640A006D6B5F64656C6179203DA9
-:1004C0002025640A006D6B5F776865656C5F7469F1
-:1004D0006D655F746F5F6D6178203D2025640A0053
-:1004E0006D6B5F776865656C5F6D61785F73706574
-:1004F0006564203D2025640A006D6B5F74696D653D
-:100500005F746F5F6D6178203D2025640A006D6B1C
-:100510005F6D61785F7370656564203D2025640AB6
-:10052000006D6B5F696E74657276616C203D20258D
-:10053000640A006D6B5F64656C6179203D20256401
-:100540000A000A00257500363A20776865656C5FF9
-:1005500074696D655F746F5F6D61783A20000A00A1
-:10056000257500353A20776865656C5F6D61785F49
-:1005700073706565643A20000A00257500343A20DE
-:1005800074696D655F746F5F6D61783A20000A0071
-:10059000257500333A206D61785F73706565643A44
-:1005A00020000A00257500323A20696E7465727663
-:1005B000616C286D73293A20000A00257500313AD4
-:1005C0002064656C6179282A31306D73293A2000E6
-:1005D0000A092D2056616C756573202D0A004D3E69
-:1005E000004D25643E20003F0073657420646566FD
-:1005F00061756C740A00433E20007768657265205F
-:1006000064656C74613A20637572736F723D256422
-:100610002C20776865656C3D25640A536565206804
-:100620007474703A2F2F656E2E77696B69706564EC
-:1006300069612E6F72672F77696B692F4D6F7573C4
-:10064000655F6B6579730A000A092D204D6F75731C
-:10065000656B6579202D0A4553432F713A097175F1
-:1006600069740A313A0964656C6179282A31306D00
-:1006700073290A323A09696E74657276616C286D65
-:1006800073290A333A096D61785F73706565640A8E
-:10069000343A0974696D655F746F5F6D61780A350E
-:1006A0003A09776865656C5F6D61785F7370656541
-:1006B000640A363A09776865656C5F74696D655FD1
-:1006C000746F5F6D61780A0A703A097072696E74AE
-:1006D0002076616C7565730A643A097365742064E9
-:1006E000656661756C74730A75703A092B310A641A
-:1006F0006F776E3A092D310A706775703A092B31A0
-:10070000300A7067646F776E3A092D31300A0A73C8
-:1007100070656564203D2064656C7461202A206DDD
-:1007200061785F7370656564202A20287265706542
-:100730006174202F2074696D655F746F5F6D6178DF
-:10074000290A003F004D3E2000433E20004C256416
-:100750000A0074696D65725F636F756E743A202567
-:1007600030346C580A006B6579626F6172645F693E
-:10077000646C653A2025580A006B6579626F617276
-:10078000645F70726F746F636F6C3A2025580A0053
-:10079000686F73745F6B6579626F6172645F6C65BB
-:1007A000647328293A2025580A000A092D20537419
-:1007B00061747573202D0A004743433A20342E3864
-:1007C0002E31204156522D4C4942433A20312E3889
-:1007D0002E3073766E204156525F415243483A2084
-:1007E000617672350A004F5054494F4E533A204CAF
-:1007F00055464120424F4F544D41474943204D4FAC
-:100800005553454B45592045585452414B45592065
-:10081000434F4E534F4C4520434F4D4D414E442086
-:10082000343039360A004255494C443A203865384C
-:1008300039313730202831333A32333A3434204A90
-:10084000756E2031342032303136290A0056494441
-:100850003A2030784645454428596F75292050493B
-:10086000443A20307836303630286B633630763272
-:1008700029205645523A203078303030310A004431
-:100880004553433A204120637573746F6D206B6547
-:1008900079626F6172640A000A092D2056657273CD
-:1008A000696F6E202D0A000A092D20436F6E736F49
-:1008B0006C65202D0A4553432F713A09717569748F
-:1008C0000A6D3A096D6F7573656B65790A000A09DF
-:1008D0002D204D61676963202D0A443A0944656201
-:1008E0007567204D65737361676520546F67676C2A
-:1008F000650A583A094D61747269782044656275D9
-:1009000067204D6F646520546F67676C65202D20EC
-:1009100053686F77206B65797072657373657320A8
-:10092000696E206D617472697820677269640A4B20
-:100930003A094B6579626F6172642044656275673C
-:1009400020546F67676C65202D2053686F77206B8C
-:1009500065797072657373207265706F72740A4D79
-:100960003A094465627567204D6F75736520546F51
-:1009700067676C650A563A0956657273696F6E0A45
-:10098000533A095374617475730A433A09416374A5
-:10099000697661746520436F6E736F6C65204D6F6F
-:1009A00064650A46312D4631303A095377697463DC
-:1009B0006820746F204C6179657220302D392028B1
-:1009C000463130203D204C30290A302D393A095328
-:1009D000776974636820746F204C61796572203088
-:1009E0002D390A4553433A09537769746368207473
-:1009F0006F204C6179657220302028616C746572BB
-:100A00006E617465206B65792031290A4752415621
-:100A1000453A0953776974636820746F204C617993
-:100A2000657220302028616C7465726E6174652077
-:100A30006B65792032290A50415553453A094A7568
-:100A40006D7020746F20426F6F746C6F616465729B
-:100A500020285265736574290A453A095072696EF7
-:100A60007420454550524F4D2053657474696E672C
-:100A7000730A000A002575002E6C6576656C3A20B5
-:100A8000000A002575002E656E61626C653A2000D3
-:100A90000A0025303258006261636B6C69676874C4
-:100AA0005F636F6E6669672E7261773A20000A0095
-:100AB0002575002E6E6B726F3A20000A00257500B6
-:100AC0002E737761705F6261636B736C6173685FD3
-:100AD0006261636B73706163653A20000A0025757B
-:100AE000002E737761705F67726176655F6573630F
-:100AF0003A20000A002575002E6E6F5F6775693A0F
-:100B000020000A002575002E737761705F72616C9A
-:100B1000745F726775693A20000A002575002E73AC
-:100B20007761705F6C616C745F6C6775693A200007
-:100B30000A002575002E636170736C6F636B5F74C0
-:100B40006F5F636F6E74726F6C3A20000A002575D8
-:100B5000002E737761705F636F6E74726F6C5F638A
-:100B60006170736C6F636B3A20000A002530325855
-:100B7000006B65796D61705F636F6E6669672E7279
-:100B800061773A20000A002575002E6D6F75736538
-:100B90003A20000A002575002E6B6579626F61723C
-:100BA000643A20000A002575002E6D617472697820
-:100BB0003A20000A002575002E656E61626C653A68
-:100BC00020000A00253032580064656275675F6353
-:100BD0006F6E6669672E7261773A20000A0025758C
-:100BE0000064656661756C745F6C617965723A204A
-:100BF000003F000A6D6F7573653A206F66660A00E4
-:100C00000A6D6F7573653A206F6E0A000A6B65791D
-:100C1000626F6172643A206F66660A000A6B6579DA
-:100C2000626F6172643A206F6E0A000A6D617472BD
-:100C300069783A206F66660A000A6D617472697895
-:100C40003A206F6E0A000A64656275673A206F6623
-:100C5000660A000A64656275673A206F6E0A000AC8
-:100C60000A4A756D70696E6720746F20626F6F74C9
-:100C70006C6F616465722E2E2E2000433E2000654D
-:100C800065636F6E6669673A0A006261636B6C69DF
-:100C900067687420737465703A2025750A00626174
-:100CA000636B6C6967687420746F67676C653A2062
-:100CB00025750A006261636B6C69676874206465FE
-:100CC0006372656173653A2025750A006261636B22
-:100CD0006C6967687420696E6372656173653A2038
-:100CE00025750A0011241FBECFEFDAE0DEBFCDBFAD
-:100CF00004B603FE24C08091F3019091F401A09109
-:100D0000F501B091F6018730904BA740B04BB9F494
-:100D10001092F3011092F4011092F5011092F60175
-:100D200014BE84B7877F84BF88E10FB6F8948093A0
-:100D30006000109260000FBEE0E0F8E3099511E05A
-:100D4000A0E0B1E0EEE4FAE502C005900D92A63411
-:100D5000B107D9F721E0A6E4B1E001C01D92A33F9D
-:100D6000B207E1F70E94EB0E0C94252D0C940000C5
-:100D7000FF93EF93E0914601F0914701309709F01E
-:100D80000995EF91FF910895FC018591803011F054
-:100D9000EFDFFBCF0895FF27E0E230E247FF0CC012
-:100DA000419597FF09C0EDE260957095809590950B
-:100DB000611D711D811D911D27FF02C0219530E32A
-:100DC00050E2AA27660F771F881F991FAA1FA41732
-:100DD00010F0A41B63955A95A9F7AA3008F0A95FF3
-:100DE000A05DAF93F395611571058105910541F7FC
-:100DF000ED3211F4EF93F395F21718F43F93F39556
-:100E0000FBCF8F91B5DFFA95E1F70895E991F9915C
-:100E10008591803021F0853219F0AADFF9CF08954D
-:100E200020E0E89455915532C1F3503311F46894A1
-:100E300055915A3348F4505390F3220F022E220F4B
-:100E4000220F200D250FF4CF0EF421958991999151
-:100E5000533619F3533729F1533559F1BC0188271B
-:100E60009927E8945C3621F4899199916894559179
-:100E7000543639F446EF7EF077FF0DC08FEF9FEFC9
-:100E80000AC055374AE039F0583540E121F0523672
-:100E900042E009F00895FF93EF937DDFEF91FF911A
-:100EA000B7CFFF93EF93FC0181918030B9F360DFFE
-:100EB000FBCFFF93EF9368DFF1CFDF93CF93CDB7F5
-:100EC000DEB72596A3DFCF91DF91089508950895A9
-:100ED00081E0089508950C9467070C9468070C94BA
-:100EE0006A07269A2E988FEF9FEF90938700809342
-:100EF000860082E28093800089E1809381000C94D7
-:100F0000AF2A0E9471070C9466072E9881110AC0BF
-:100F1000809180008F7D8093800010928B001092D2
-:100F20008A000895833041F480918000806280932C
-:100F300080008FEF9FEF12C090918000906290939D
-:100F4000800023E030E0281B3109220F331F8FEF90
-:100F50009FEF02C0969587952A95E2F790938B00B4
-:100F600080938A00089580E090E0089581E00895DC
-:100F70000C94B60708950F931F93CF93DF93EC0162
-:100F800008811981C8010E94931EB8010E9454086B
-:100F90008C01BE010E94B807882309F47AC08A81B7
-:100FA0008823C9F18091530181111EC0043180E56D
-:100FB000180789F50E94BA0781E0809353010E94C7
-:100FC0008620909352018093510110924A01109211
-:100FD0004C0110924B0110924E0110924D01109253
-:100FE000500110924F0155C08091510190915201D2
-:100FF0000E949220883C910570F480914A01E82F6C
-:10100000F0E0EE0FFF1FE55BFE4F118300838F5F63
-:1010100080934A013EC0043880E5180721F0053866
-:101020001045A1F02AC08A81882321F0109248013E
-:1010300082E012C080914801811106C086E20E94C0
-:10104000B81586E20E94801682E014C08A81882347
-:1010500031F01092490180E20E94CF161AC08091AF
-:101060004901811106C087E20E94B81587E20E94FB
-:10107000801680E20E94D6160CC081E08093480161
-:1010800080934901CE01DF91CF911F910F910C9474
-:101090006D0780E0DF91CF911F910F9108950C941F
-:1010A00081070C946B0708959EE0799FF00111244D
-:1010B00096E4899FE00DF11D1124E60FF11DEE0F5E
-:1010C000FF1FE65FFE4F859194910895880F991F49
-:1010D00086579040FC01859194910895880F991F3F
-:1010E000865F9E4FFC018591949108950F931F9305
-:1010F000CF93DF93EC01811521E39207A0F58115D1
-:1011000030E3930708F0D7C0883E9105D8F4803EBD
-:10111000910508F06FC0883A910578F4853A9105F9
-:1011200008F06AC08130910509F4F8C108F4F3C1F0
-:101130008430910508F05EC0EEC18B3B910508F448
-:1011400066C0E9C1C11580E2D80708F0AFC0C1157B
-:1011500091E0D90708F04EC0C03FD10508F4DBC1CB
-:101160008E0110651CC2803820E5920700F580379B
-:1011700030E5930708F0A3C0C11580E5D80709F44E
-:10118000ACC050F4CE01905480319F4008F0C3C1F0
-:101190008E011F70106A03C2C13030E5D30709F415
-:1011A000AAC0C43180E5D80708F4AFC0B4C1C338C1
-:1011B00090E5D90709F48EC050F4C13830E5D30763
-:1011C00009F482C008F083C000E011EDE8C1C0312D
-:1011D00091E5D90708F49FC1C11527E5D20708F4A6
-:1011E00036C1CE0190578115904108F094C18E010F
-:1011F0001F708FC18E01D3C1853A910509F491C149
-:10120000863A910509F490C103E810E4C8C1883A10
-:10121000910509F48CC1893A910509F48BC18A3A88
-:10122000910509F48AC18B3A910509F489C18C3A78
-:10123000910509F488C18D3A910509F487C1803B75
-:10124000910509F486C18E3A910509F485C18F3A5A
-:10125000910509F484C1813B910509F483C1823B66
-:10126000910509F482C1833B910509F481C1843B56
-:10127000910509F480C1853B910509F47FC1863B46
-:10128000910509F47EC1873B910509F47DC1883B36
-:10129000910509F47CC1893B910509F47BC18A3B26
-:1012A000910509F07AC10AE216E479C1CE019F7076
-:1012B0000E946E0875C18C011127106C70C18C01E1
-:1012C0000F701127146D6BC100E010ED68C100E0D4
-:1012D00012ED65C100E013ED62C10E9468198FEF45
-:1012E00094E32CE0815090402040E1F700C00000E2
-:1012F0000E94E02054C186E991E00E94C4068091DA
-:10130000D30181608093D3014AC10E94932281114D
-:1013100002C00E9474220E94B02290E09093F201D9
-:101320008093F101C23030E5D30721F48091F101BF
-:10133000816086C0C43080E5D80721F48091F10136
-:1013400082607EC0C63090E5D90721F48091F1011A
-:10135000846076C0C83020E5D20719F48091F1018D
-:1013600027C0CA3030E5D30721F48091F1018061B4
-:1013700067C0CC3080E5D80721F48091F10180620C
-:101380005FC0CE3090E5D90721F48091F1018064EF
-:1013900057C0C03120E5D20721F48091F101806867
-:1013A0004FC0C23130E5D30729F48091F101846048
-:1013B000886046C0C33080E5D80721F48091F101F0
-:1013C0008E7F3EC0C53090E5D90721F48091F101B0
-:1013D0008D7F36C0C73020E5D20721F48091F1011E
-:1013E0008B7F2EC0C93030E5D30719F48091F1010D
-:1013F00026C0CB3080E5D80721F48091F1018F7EA3
-:101400001FC0CD3090E5D90721F48091F1018F7D87
-:1014100017C0CF3020E5D20721F48091F1018F7BF6
-:101420000FC0C13130E5D30721F48091F1018F77EE
-:1014300007C0C331D04531F48091F1018B7F877FA4
-:101440008093F1018091F1010E94B422A8C08D2FF8
-:1014500099278F70992781309105E9F48E010370E7
-:1014600011279C0102C0220F331F0A95E2F7890160
-:101470001C68CE01E4E0880F991FEA95E1F7882700
-:101480009370082B192BF3E0CC0FDD1FFA95E1F7D1
-:10149000C076DD272CC08230910529F41C2F00274F
-:1014A000016F106A7CC08330910561F4CE018370B6
-:1014B000992701E010E002C0000F111F8A95E2F7A2
-:1014C0001C680EC084309105A9F4CE018370992761
-:1014D00001E010E002C0000F111F8A95E2F71A68C0
-:1014E00063E0CC0FDD1F6A95E1F7C07ED7700C2B4F
-:1014F0001D2B55C08530910529F41C2F0027046F42
-:10150000106A4DC0069709F04AC0CF71DD271C2F25
-:101510000027106244C000E010E041C001E010E08C
-:101520003EC001E810E43BC002E810E438C002EE1F
-:1015300014E435C009EE14E432C00AEE14E42FC0FE
-:1015400005EB14E42CC006EB14E429C007EB14E40B
-:1015500026C00CEC14E423C00DEC14E420C003E816
-:1015600015E41DC00AE815E41AC002E915E417C025
-:1015700004E915E414C001E216E411C003E216E424
-:101580000EC004E216E40BC005E216E408C006E251
-:1015900016E405C007E216E402C000E014E4C80146
-:1015A000DF91CF911F910F9108959EE0799FF001F7
-:1015B000112496E4899FE00DF11D1124E60FF11D21
-:1015C000EE0FFF1FE65FFE4F85919491803E9105DF
-:1015D000E0F4803C910558F58133910509F46FC022
-:1015E00048F48932910509F463C08A32910509F4FF
-:1015F0006DC072C089339105E9F082389105D1F050
-:101600008533910509F44DC067C0833E910581F192
-:1016100038F4803E9105B9F0823E9105D9F05CC066
-:10162000863E910561F1873E9105A1F155C00E946A
-:10163000660808952091F10120FD02C021FF4CC0F1
-:1016400080EE90E049C08091F10180FFF9CF89E3FD
-:1016500090E042C08091F10182FF0EC08091F101C3
-:1016600084FF03C080E090E037C083EE90E034C098
-:101670008091F10182FFF2CF82EE90E02DC0809147
-:10168000F10183FF0BC08091F10184FDEBCF87EE68
-:1016900090E022C08091F10183FFF5CF86EE90E0CB
-:1016A0001BC08091F10185FF07C089E290E014C062
-:1016B0008091F10185FFF9CF85E390E00DC0809125
-:1016C000F10186FF07C08AE290E006C08091F10137
-:1016D00086FFF9CF81E390E00E94760808950C948C
-:1016E0006F07E82FF0E0EE5DFE4F8081E82FEF708E
-:1016F000F0E0282F22952F7081E090E0022E01C0AB
-:10170000880F0A94EAF780A308950F931F93CF934D
-:10171000DF9385B7806885BF85B7806885BFC4E0E3
-:10172000D0E001E010E0FE01EE5DFE4F8081E82F89
-:10173000EF70F0E021A182958F70A80102C0440FE4
-:10174000551F8A95E2F7242B21A38C2F0E94710B41
-:10175000219748F78DE090E041E050E0FC01EC5E1D
-:10176000FE4F2081E22FEF70F0E062A122952F70F2
-:10177000DA0102C0AA0FBB1F2A95E2F76A2B62A307
-:10178000019760F7DF91CF911F910F910C944F0853
-:10179000EF92FF920F931F93CF93DF93CEE5D1E0AB
-:1017A00084E0E82E01E010E095E0F92E8E2D0E94F5
-:1017B000710B2DE030E040E050E0F901EC5EFE4FAF
-:1017C0008081E82FEF70F0E060A170E082958F706B
-:1017D00002C0759567958A95E2F760FD09C0B8016A
-:1017E000022E02C0660F771F0A94E2F7462B572B92
-:1017F0002150310910F73A912A912417350721F029
-:1018000059834883F09200018E2D0E94710BEA9457
-:101810009FEFE912CBCF2091000127FD2EC08091D0
-:10182000D30180FF10C0822F992787FD90959F9349
-:101830002F938FED91E09F938F930E945D070F9000
-:101840000F900F900F9080910001815080930001C4
-:1018500087FD07C08FE99FE00197F1F700C0000006
-:101860000CC0A8E6B1E0EEE5F1E0929182919E9382
-:101870008E9391E0E435F907C1F70E94510881E0A9
-:10188000DF91CF911F910F91FF90EF900895E82F76
-:10189000F0E0EE0FFF1FE25AFE4F80819181089524
-:1018A000EF92FF920F931F93CF93DF938091D30119
-:1018B00080FF04C080EC91E00E94C4060EE511E0B8
-:1018C000C0E0D0E048EAE42E41E0F42E8091D3015C
-:1018D00080FF13C0F801808191810E94F01F9F93C7
-:1018E0008F93DF93CF93FF92EF920E945D070F904B
-:1018F0000F900F900F900F900F9021960E5F1F4F3B
-:10190000C530D10519F7DF91CF911F910F91FF904D
-:10191000EF9008951F93CF93DF93C8E6D1E010E0D6
-:101920009A918A910E94D21F180F81E0CE35D80774
-:10193000B9F7812FDF91CF911F91089580917301A5
-:1019400008959FB7F89410926A019FBF9091E801A3
-:10195000943009F058C09091E9009F702091EC00FC
-:1019600020FF02C020E801C020E0292B94E09093E2
-:10197000E9009091EB0090FF43C09091EE0097FF3B
-:101980003FC090916801992321F09091E80095FF64
-:1019900037C01092680196E03091E80035FD15C01F
-:1019A0003091E801343061F53091EB0035FD28C00D
-:1019B000915021F481E08093680122C0EFE9FFE0BB
-:1019C0003197F1F700C00000E7CF8093F1008091DC
-:1019D000E80085FD0AC08091E80080FFFCCF80917F
-:1019E000E8008E778093E80006C08FB7F89491E006
-:1019F00090936A018FBF2F702093E90080E00895D3
-:101A00002F702093E9008FEF0895CF93DF9300D0DC
-:101A10001F92CDB7DEB72091E801243019F523E0FD
-:101A200029839B838A832093E9008FEF9091E800BC
-:101A3000815095FD06C095ED9A95F1F70000811152
-:101A4000F5CF8091E80085FF0DC040E050E063E0F5
-:101A500070E0CE0101960E949E0F8091E8008E7783
-:101A60008093E8000F900F900F90DF91CF91089531
-:101A7000CF93DF9300D01F92CDB7DEB72091E8015E
-:101A8000243021F522E029839B838A8383E080939D
-:101A9000E9008FEF9091E800815095FD06C095ED2B
-:101AA0009A95F1F700008111F5CF8091E80085FF4C
-:101AB0000DC040E050E063E070E0CE0101960E946E
-:101AC0009E0F8091E8008E778093E8000F900F9032
-:101AD0000F90DF91CF9108952091E8012430F1F427
-:101AE00022E02093E9002FEF3091E800215035FDEE
-:101AF00006C035ED3A95F1F700002111F5CF2091A0
-:101B0000E80025FF0BC040E050E065E070E00E9477
-:101B10009E0F8091E8008E778093E8000895CF9320
-:101B2000DF93EC018091E801843039F581E0809306
-:101B3000E9008FEF9091E800815095FD06C095ED8A
-:101B40009A95F1F700008111F5CF8091E80085FFAB
-:101B500014C040E050E068E070E0CE010E949E0FAB
-:101B60008091E8008E778093E80088E0FE01ABE684
-:101B7000B1E001900D928A95E1F7DF91CF91089540
-:101B800084E292E00E94C4068091E701811109C0BD
-:101B90000E9430110E948D118091E2008460809338
-:101BA000E200089580E292E00E94C4061092E701EC
-:101BB00008958CE192E00C94C40688E192E00C94C4
-:101BC000C40684E192E00E94C4060C9449208091EE
-:101BD00069018F5F8093690162E30E94B52C9111C6
-:101BE00035C01092690180916A01882379F1809152
-:101BF000E801843049F58091E9008F709091EC0004
-:101C000090FF02C090E801C090E0982B84E08093A0
-:101C1000E9008091EB0080FF14C08091EE0087FF07
-:101C200010C08091E80085FF03C01092F100F9CF49
-:101C30008091E80080FF05C08091E8008E77809356
-:101C4000E8009F709093E90010926A01089542E0C5
-:101C500061EC81E00E94AA1042E061EC82E00E9407
-:101C6000AA1042E061EC83E00E94AA1042E261EC1B
-:101C700084E00C94AA108091EA01833009F453C0E7
-:101C800030F4813071F0823009F48CC008958A30CC
-:101C900009F478C08B3009F45EC0893009F09AC02D
-:101CA00020C08091E901813A09F094C08091E80058
-:101CB000877F8093E8008091ED019091EE01892B60
-:101CC00021F060E080E090E003C068E08BE691E006
-:101CD00070E00E94E70F8091E8008B778093E80026
-:101CE00008958091E901813209F074C08091ED017D
-:101CF0009091EE01892B09F06DC08091E800877FFB
-:101D00008093E8008091E80082FD05C08091E801A1
-:101D10008111F8CF5FC08091F100809373018091B1
-:101D2000E8008B7753C08091E901813A09F052C0F5
-:101D30008091ED019091EE01892B09F04BC08091CB
-:101D4000E800877F8093E8008091E80080FFFCCF67
-:101D500080910B0136C08091E9018132D9F58091E3
-:101D6000ED019091EE01892BA9F58091E800877F24
-:101D70008093E8000E94DF108091EB0180930B01BB
-:101D80000C9468198091E901813221F58091E80075
-:101D9000877F8093E8000E94DF108091EC018093A0
-:101DA000740108958091E901813AA1F48091E800DD
-:101DB000877F8093E8008091E80080FFFCCF8091CE
-:101DC00074018093F1008091E8008E778093E800A1
-:101DD0000C94DF10089584B7877F84BF88E10FB625
-:101DE000F89480936000109260000FBE80E88093AA
-:101DF0006100109261000E94B2140E9430110E9492
-:101E00008D118091E20084608093E20081EA9CE081
-:101E10000E94CD1F78940E9407140E94B41481E0A0
-:101E200091E00E94241483E092E00E94C406809115
-:101E3000E801853089F48FEF91E00E94C4060E948A
-:101E40000A208091E601882391F30E94382088239C
-:101E500071F30E94880FEBCF0E94DA14E8CF292F8C
-:101E6000332723303105A9F06CF42130310509F412
-:101E700042C02230310509F043C084E790E026E4F7
-:101E800032E042C021323105C9F02232310519F168
-:101E900037C099278130910541F08230910541F09A
-:101EA000892B71F5E2E4F2E005C0E8E3F2E002C05C
-:101EB000E8E2F2E0849190E09F0126C0643000F5F2
-:101EC000E62FF0E0EE0FFF1FED5CFE4F2081318129
-:101ED00089E090E019C0643098F4E62FF0E0DF016B
-:101EE000AA0FBB1FA55DBE4F2D913C91E95DFE4F32
-:101EF000808190E009C082E190E02AEB32E004C0EA
-:101F000080E090E020E030E0FA0131832083089502
-:101F100080E189BD82E189BD09B400FEFDCF8091D9
-:101F2000D8008F7D8093D8008091E00082608093FC
-:101F3000E0008091E00081FDFCCF0895CF92DF9218
-:101F4000EF92FF920F931F93CF93DF937C018B014E
-:101F5000EA010E940011811131C0209731F088817F
-:101F60009981081B190BE80EF91EC12CD12C011503
-:101F7000110519F18091E80085FD14C08091E800F9
-:101F80008E778093E800209741F0888199818C0DAD
-:101F90009D1D9983888385E011C00E9400118823CC
-:101FA00031F30CC0F70181917F018093F100015062
-:101FB0001109FFEFCF1ADF0ADACF80E0DF91CF916E
-:101FC0001F910F91FF90EF90DF90CF900895209197
-:101FD000EF013091F0012617370748F061157105C0
-:101FE00039F42091E8002E772093E80001C0B90170
-:101FF000FC0120E061157105B9F18091E8018823A9
-:1020000009F440C0853009F43FC08091E80083FDA9
-:102010003DC08091E80082FF06C08091E80082FF09
-:1020200026C080E008958091E80080FFE3CF2091F2
-:10203000F3008091F20090E0922B6115710551F050
-:102040008830910538F421912093F1006150710995
-:102050000196F3CF21E0089709F020E08091E80095
-:102060008E778093E800C6CF2111C7CFD6CF80915D
-:10207000E801882339F0853039F08091E80083FF4A
-:10208000CCCF04C082E0089583E0089581E00895F4
-:102090002091EF013091F0012617370748F06115C4
-:1020A000710539F42091E8002E772093E80001C0F3
-:1020B000B901FC0120E061157105C1F18091E801D1
-:1020C000882309F441C0853009F440C08091E800BC
-:1020D00083FD3EC08091E80082FF06C08091E80049
-:1020E00082FF27C080E008958091E80080FFE3CF61
-:1020F0002091F3008091F20090E0922B6115710520
-:1021000059F08830910540F424912093F1003196E4
-:10211000615071090196F2CF21E0089709F020E0A3
-:102120008091E8008E778093E800C5CF2111C6CF5B
-:10213000D5CF8091E801882339F0853039F080913E
-:10214000E80083FFCBCF04C082E0089583E00895C8
-:1021500081E00895982F973058F59093E9009817EB
-:1021600039F07091EC002091ED005091F00003C027
-:10217000242F762F50E021FF19C03091EB003E7FD5
-:102180003093EB003091ED003D7F3093ED003091C6
-:10219000EB0031603093EB007093EC002093ED0086
-:1021A0005093F0002091EE0027FF07C09F5FD3CF30
-:1021B0008F708093E90081E0089580E00895809118
-:1021C000E90187FD05C08091E80080FF0EC012C0C4
-:1021D0008091E80082FD05C08091E8018111F8CF6F
-:1021E00008958091E8008B7708C08091E801811103
-:1021F000EACF08958091E8008E778093E8000895F3
-:102200008091E4009091E50045E62091EC0020FFEC
-:1022100021C02091E80020FD21C02091E801222367
-:1022200089F0253089F02091EB0025FD0FC0209129
-:10223000E4003091E5002817390739F3415041F0A7
-:10224000C901E3CF82E0089583E0089581E0089515
-:1022500084E008952091E80022FFDFCF80E0089518
-:102260000E949E110E94A611E0EEF0E08081816044
-:102270008083E8EDF0E080818F77808319BCA7ED43
-:10228000B0E08C918E7F8C9380818F7E80831092C2
-:10229000E70108950F931F93CF93DF930E949E1140
-:1022A0000E94A611C8EDD0E088818F77888388814D
-:1022B0008068888388818F7D888319BC1092E801AB
-:1022C0001092E4011092E6011092E50100EE10E098
-:1022D000F80180818B7F808388818160888342E0E0
-:1022E00060E080E00E94AA10E1EEF0E080818E7F45
-:1022F0008083E2EEF0E0808181608083808188606D
-:102300008083F80180818E7F8083888180618883CB
-:10231000DF91CF911F910F910895E8EDF0E080815A
-:102320008F7E8083E7EDF0E080818160808384E0B0
-:1023300082BF81E08093E7010C944A11E8EDF0E060
-:1023400080818E7F80831092E20008951092DA00DF
-:102350001092E10008951F920F920FB60F92112470
-:102360002F933F934F935F936F937F938F939F939D
-:10237000AF93BF93EF93FF938091E10082FF0BC077
-:102380008091E20082FF07C08091E1008B7F809303
-:10239000E1000E94E70D8091DA0080FF1FC080916C
-:1023A000D80080FF1BC08091DA008E7F8093DA0016
-:1023B0008091D90080FF0DC080E189BD82E189BD97
-:1023C00009B400FEFDCF81E08093E8010E94C00DBA
-:1023D00005C019BC1092E8010E94D20D8091E10065
-:1023E00080FF19C08091E20080FF15C08091E2005B
-:1023F0008E7F8093E2008091E20080618093E20012
-:102400008091D80080628093D80019BC85E08093C9
-:10241000E8010E94DD0D8091E10084FF30C08091D1
-:10242000E20084FF2CC080E189BD82E189BD09B44E
-:1024300000FEFDCF8091D8008F7D8093D8008091E1
-:10244000E1008F7E8093E1008091E2008F7E809397
-:10245000E2008091E20081608093E2008091E401DB
-:10246000882311F084E007C08091E30087FF02C059
-:1024700083E001C081E08093E8010E94E10D80913A
-:10248000E10083FF29C08091E20083FF25C0809195
-:10249000E100877F8093E10082E08093E801109261
-:1024A000E4018091E1008E7F8093E1008091E20061
-:1024B0008E7F8093E2008091E20080618093E20051
-:1024C00042E060E080E00E94AA108091F000886005
-:1024D0008093F0000E94D90DFF91EF91BF91AF91D1
-:1024E0009F918F917F916F915F914F913F912F912C
-:1024F0000F900FBE0F901F9018951F920F920FB65E
-:102500000F9211242F933F934F935F936F937F9379
-:102510008F939F93AF93BF93CF93EF93FF93C0910C
-:10252000E900CF708091EC001092E9008091F000FA
-:10253000877F8093F00078940E94B9121092E9008E
-:102540008091F00088608093F000C093E900FF91D3
-:10255000EF91CF91BF91AF919F918F917F916F91AB
-:102560005F914F913F912F910F900FBE0F901F9051
-:1025700018951F93CF93DF93CDB7DEB7AA970FB609
-:10258000F894DEBF0FBECDBFE9EEF1E08091F1001F
-:10259000819321E0E13FF207C9F70E943B0E809151
-:1025A000E80083FF1CC12091E9013091EA01832FEB
-:1025B00090E08A30910508F012C1FC01EA5AFF4F01
-:1025C0000C94D52C203881F0223809F008C1809174
-:1025D000ED018F708093E9008091EB0085FB8827E7
-:1025E00080F91092E90006C08091E5019091E60122
-:1025F000911182609091E800977F9093E80080931A
-:10260000F1001092F100C5C0822F8D7F09F0E7C064
-:10261000222319F0223061F0E2C08091EB01813079
-:1026200009F0DDC0333009F080E08093E60128C076
-:102630008091EB01811124C02091ED012F7009F4EC
-:10264000CEC02093E9008091EB0080FF19C08091FB
-:10265000EB00333011F4806211C080618093EB0095
-:1026600081E090E0022E01C0880F0A94EAF780937F
-:10267000EA001092EA008091EB0088608093EB0002
-:102680001092E9008091E800877F86C02111A7C0E1
-:102690001091EB011F778091E3008078812B80936C
-:1026A000E3008091E800877F8093E8000E94DF10BC
-:1026B0008091E80080FFFCCF8091E30080688093E8
-:1026C000E300112311F083E001C082E08093E80170
-:1026D00086C02058223008F082C08091EB01909192
-:1026E000EC018C3D23E0920779F583E08A838AE24E
-:1026F00089834FB7F894DE01139620E03EE051E263
-:10270000E32FF0E050935700E49120FF03C0E295DF
-:10271000EF703F5FEF708E2F90E0EA3010F0C796B9
-:1027200001C0C0968D939D932F5F243149F74FBF11
-:102730008091E800877F8093E8006AE270E0CE0134
-:1027400001960E94E70F14C0AE014F5F5F4F60918A
-:10275000ED010E942F0F009709F441C02091E8007D
-:10276000277F2093E800BC0189819A810E9448104C
-:102770008091E8008B778093E80031C0203879F5AC
-:102780008091E800877F8093E8008091E401809346
-:10279000F1008091E8008E778093E8000E94DF10BE
-:1027A0001EC021111CC09091EB019230C0F48091A9
-:1027B000E800877F8093E8009093E4010E94DF1097
-:1027C0008091E401811104C08091E30087FF02C081
-:1027D00084E001C081E08093E8010E94270E80918F
-:1027E000E80083FF0AC08091E800877F8093E800BB
-:1027F0008091EB0080628093EB00AA960FB6F8946C
-:10280000DEBF0FBECDBFDF91CF911F910895CF9353
-:102810008091E8018823B1F08091E9008F70909158
-:10282000EC0090FF02C090E801C090E0C92FC82BD7
-:102830001092E9008091E80083FD0E94B912CF70E8
-:10284000C093E900CF91089590937A018093790124
-:102850000895E0917901F0917A01309721F001908B
-:10286000F081E02D099480E00895FF920F931F936B
-:10287000CF93DF938C01E0917901F0917A01309749
-:1028800099F10280F381E02D09958091D30182FFB7
-:102890002BC080FF04C087EB93E00E94C406E801D0
-:1028A00088E0F82E01EB13E08091D30180FF0BC08C
-:1028B00088811F928F931F930F930E945D070F9043
-:1028C0000F900F900F90FA942196F110EDCF809118
-:1028D000D30180FF09C08FEA93E0DF91CF911F9170
-:1028E0000F91FF900C94C406DF91CF911F910F912F
-:1028F000FF900895E0917901F0917A01309721F0ED
-:102900000480F581E02D099408952091770130919C
-:1029100078018217930771F0909378018093770183
-:10292000E0917901F0917A01309721F00680F781EA
-:10293000E02D099408952091750130917601821758
-:10294000930771F09093760180937501E09179017E
-:10295000F0917A01309721F00084F185E02D0994FF
-:10296000089508950C94B1140E947D200E94850B57
-:102970000E9448210C94AF2ACF93DF931F92CDB7CA
-:10298000DEB79091D30192FF10C090FF0EC01F924E
-:102990008F9329EC33E03F932F9389830E945D0747
-:1029A0000F900F900F900F9089810F90DF91CF9132
-:1029B0000C946F0B5F926F927F928F929F92AF9267
-:1029C000BF92CF92DF92EF92FF920F931F93CF931C
-:1029D000DF9300D000D01F92CDB7DEB70E94C80BA6
-:1029E00096E8C92E91E0D92E04E010E0AA24A39421
-:1029F000B12C502E802F0E94470C3C01F601F29022
-:102A0000E2906F01E826F926E114F104A1F40150E7
-:102A1000110978F78FEF89838A831B820E948620B1
-:102A20008160782F9D838C8349815A816B818D8150
-:102A30000E948A1538C08091D30181FD0E94500CFC
-:102A40002DE030E04501022E02C0880C991C0A944A
-:102A5000E2F7C4018E219F21892B09F129835A8233
-:102A60006820792081E0672809F480E08B830E9448
-:102A700086208160782F9D838C8349815A816B8168
-:102A80008D810E948A15F801EE0FFF1FE458FE4F5A
-:102A900080819181882599259183808304C021506C
-:102AA000310980F6B4CF0E94BD2410917B010E94B1
-:102AB00029141817D1F00E94291480937B010F90DC
-:102AC0000F900F900F900F90DF91CF911F910F916A
-:102AD000FF90EF90DF90CF90BF90AF909F908F903E
-:102AE0007F906F905F900C94BC140F900F900F909C
-:102AF0000F900F90DF91CF911F910F91FF90EF906A
-:102B0000DF90CF90BF90AF909F908F907F906F900D
-:102B10005F900895CF93DF93CDB7DEB72B970FB6B5
-:102B2000F894DEBF0FBECDBF4F83588769877A8781
-:102B30008B87DE01119686E0FD0111928A95E9F7F7
-:102B400085E0FE01379601900D928A95E1F7498163
-:102B50005A816B817C818D819E810E94381C2B96CD
-:102B60000FB6F894DEBF0FBECDBFDF91CF910895B1
-:102B7000CF93C82F882309F4C1C0823859F40E942A
-:102B8000291481FDBBC089E30E94131F0E949E1F70
-:102B900089E30CC0833879F40E94291480FDAEC00B
-:102BA00083E50E94131F0E949E1F83E50E94341F2D
-:102BB000CF910C949E1F843859F40E94291482FDF1
-:102BC0009DC087E40E94131F0E949E1F87E4EECFE2
-:102BD0008CEF8C0F813A48F48C2F0E945D29811173
-:102BE0008DC08C2F0E94131FE3CF80E28C0F8830A2
-:102BF00048F4C77081E001C0880FCA95EAF70E94C7
-:102C0000551FD6CF8BE58C0F833078F4C53A29F069
-:102C1000C63A31F482E890E005C081E890E002C055
-:102C200083E890E0CF910C94851488E58C0F833174
-:102C300008F064C0C83A39F1C93A41F1CA3A49F1D9
-:102C4000CB3A51F1CC3A59F1CD3A61F1C03B69F13F
-:102C5000CE3A71F1CF3A79F1C13B81F1C23B89F1B2
-:102C6000C33B91F1C43B99F1C53BA1F1C63BA9F12E
-:102C7000C73BB1F1C83BB9F1C93BC1F1CA3BC9F58A
-:102C80008AE292E038C082EE90E035C089EE90E0B2
-:102C900032C08AEE90E02FC085EB90E02CC086EB2E
-:102CA00090E029C087EB90E026C08CEC90E023C038
-:102CB0008DEC90E020C083E891E01DC08AE891E0AF
-:102CC0001AC082E991E017C084E991E014C081E262
-:102CD00092E011C083E292E00EC084E292E00BC069
-:102CE00085E292E008C086E292E005C087E292E0C9
-:102CF00002C080E090E0CF910C949B14CF91089596
-:102D0000882309F44BC0823859F40E94291481FFAA
-:102D100045C089E30E94131F0E949E1F89E30CC0D7
-:102D2000833871F40E94291480FF38C083E50E9423
-:102D3000131F0E949E1F83E50E94341F0C949E1F48
-:102D4000843859F40E94291482FF28C087E40E9425
-:102D5000131F0E949E1F87E4EFCF9CEF980F913ABC
-:102D600058F390E2980F983050F4877091E001C0CA
-:102D7000990F8A95EAF7892F0E945B1FDFCF9BE5A9
-:102D8000980F933020F480E090E00C948514885ADA
-:102D9000833120F480E090E00C949B140895882304
-:102DA00021F00E94551F0C949E1F0895882321F046
-:102DB0000E945B1F0C949E1F08958F929F92AF926A
-:102DC000BF92CF92DF92EF92FF920F931F93CF9318
-:102DD000DF931F92CDB7DEB74C01A62E472FFC0123
-:102DE000E580E2948FE0E822F280FF2021F07983F1
-:102DF0000E94721F498149830E940C1F49818823C8
-:102E000081F0FF2071F080E28A0D883050F082E07E
-:102E10000E94F51E0E940C1FBB24B394B826498162
-:102E200001C0B12CE42FE295EF70F0E0E05AFF4FC3
-:102E30000C94D52C842F807F142F1F70882311F0C1
-:102E40001295107FFF2089F0112309F496C180E2CA
-:102E50008A0D883020F4812F0E94551F03C0812FD6
-:102E60000E94651F0E949E1F88C18A2D0E948016A5
-:102E7000112309F4BFC180E28A0D883020F4812F2C
-:102E80000E945B1F03C0812F0E946B1F0E949E1F28
-:102E9000B1C1242F207F842F8F70203211F08295B2
-:102EA000807FAA2021F0F1E0AF16B1F021C0FF2011
-:102EB00041F0EE2039F191E0E91224C00E94851F13
-:102EC00099C1EE2021F0E1E0EE1609F493C1898367
-:102ED0000E94881F89810BC1FF2029F0F5E0FE15B3
-:102EE00008F488C10FC094E09E1508F483C1FFC0A8
-:102EF000FF2059F0EE2031F0F401958190FF3DC1A3
-:102F00009F7095830E94CF1675C1EE2009F4EFC023
-:102F10003AC1242F26952695237030E021153105DE
-:102F200021F02130310561F065C1FF2021F08A2DAB
-:102F3000942F937002C080E090E00E9485145AC1E3
-:102F4000FF2021F08A2D942F937002C080E090E042
-:102F50000E949B144FC18A2DFF2019F00E94432329
-:102F600002C00E94AB230E94302444C1842F83708E
-:102F700009F04EC0F1103EC12A2D229526952770EA
-:102F8000220F220F8A2D8F70C82ED12CE12CF12C0C
-:102F9000022E04C0CC0CDD1CEE1CFF1C0A94D2F7E0
-:102FA000A4FE10C06FE070E080E090E004C0660F07
-:102FB000771F881F991F2A95D2F760957095809585
-:102FC000909503C060E070E0CB01242F26952695F4
-:102FD000237030E02230310569F02330310589F06B
-:102FE0006C297D298E299F292130310571F00E949D
-:102FF0008A1D00C16C297D298E299F290E94A41D4C
-:10300000F9C00E948A1DC701B6010E94701DF2C05E
-:10301000FF2019F0842F817001C08695882309F460
-:10302000E9C02A2D229526952770220F220F8A2D7E
-:103030008F70C82ED12CE12CF12C022E04C0CC0CA8
-:10304000DD1CEE1CFF1C0A94D2F7A4FE10C06FE03A
-:1030500070E080E090E004C0660F771F881F991F22
-:103060002A95D2F7609570958095909503C060E0A1
-:1030700070E0CB01242F26952695237030E0223076
-:10308000310569F02330310589F06C297D298E29BD
-:103090009F292130310571F00E945E1EABC06C2962
-:1030A0007D298E299F290E94781EA4C00E945E1E41
-:1030B000C701B6010E94441E9DC00A2D10E0F80110
-:1030C000E05EF109E531F10508F053C0E059FF4F2A
-:1030D0000C94D52C1A2D1F70842F8F71FF2021F096
-:1030E0000E94DD1D812F0ECF0E94FE1D812F0E94A8
-:1030F000D61680C0FF2049F0F4E0FE1508F47AC02F
-:10310000842F8F710E94231E75C085E08E1508F4F0
-:1031100071C0F6CFFF2039F0842F8F710E94DD1D22
-:1031200069C0FF20C9F3842F8F710E94FE1D62C009
-:10313000FF2029F0842F8F710E94C81D5BC00E9460
-:10314000BE1D58C0FF2051F0142F1F71812F0E9407
-:10315000DD1D63E0812F0E94EC1E4CC081E00E94C7
-:10316000F51E91E09E1508F045C082E00E94F51E14
-:1031700041C0FF2031F0EE2079F28A2D0E94B8156F
-:1031800039C0EE2081F28A2D0E94801633C04F7024
-:103190006A2DC4010E94B3070E94E51C2BC0F110E8
-:1031A00029C0942F9F70492F50E042305105B9F04B
-:1031B0004CF44115510581F041305105D9F40E947C
-:1031C000EA2A18C04330510569F04430510591F4A2
-:1031D0008A2D0E94772B0EC00E94C02A0BC00E942D
-:1031E000192B08C00E943F2B05C04F706A2DC401E7
-:1031F0000E945308BB20F1F00E94E81E80FD1AC017
-:10320000F40112820E94E21E0E94DD1DC4010E9490
-:1032100028190E94E21E0F90DF91CF911F910F910C
-:10322000FF90EF90DF90CF90BF90AF909F908F90E6
-:103230000C94FE1D0F90DF91CF911F910F91FF9085
-:10324000EF90DF90CF90BF90AF909F908F900895B8
-:103250000F931F93CF93DF93EC01288139818B81EA
-:103260009C81892B31F03F3F11F080E003C02F3F5C
-:10327000E1F781E0811113C0CE010E94BB078823D2
-:1032800071F0688179818A810E94DE1E8C010E9422
-:10329000921E0E94651DB801CE010E94DD16DF91CD
-:1032A000CF911F910F9108950E94721F0E94821F5B
-:1032B0000E94471F0E949E1F0E945E250E9430248C
-:1032C00080E090E00E94851480E090E00C949B14D4
-:1032D0000E94621F0C9454190E94D31E292F22951C
-:1032E0002F7030E02C3031054CF42A3031056CF46D
-:1032F0002250310922303105B0F407C02C3031059D
-:1033000071F02F30310559F00EC0803F31F018F4C4
-:10331000803E48F402C0843F31F481E0089593FB7D
-:10332000882780F9089580E00895CF93DF9300D037
-:1033300000D01F92CDB7DEB70F900F900F900F9077
-:103340000F90DF91CF910895CF93DF9300D000D0FD
-:1033500000D0CDB7DEB726960FB6F894DEBF0FBE0D
-:10336000CDBFDF91CF9108951F93CF93DF93C0918D
-:10337000860116E080918701C81799F0D0E01C9F64
-:10338000F0011D9FF00D1124E857FE4F408151813F
-:1033900062817381848195810E94A4192196C770EE
-:1033A000E9CFDF91CF911F9108954091B8015091DD
-:1033B000B9016091BA017091BB018091BC019091FB
-:1033C000BD010C94A419CF938091BD0182958F709B
-:1033D00009F05FC08091BA01882309F45AC0209196
-:1033E0008601A09187016091B8017091B901809127
-:1033F000BB019091BC0131E06F3F09F030E0B32F89
-:10340000C6E02A1709F445C0009721F07F3F21F458
-:103410004B2F03C041E001C040E030E040FD35C02B
-:10342000C29FF001C39FF00D1124E857FE4F418168
-:1034300074132BC04081641328C04281411125C000
-:10344000438154814817590710F441505109481BD2
-:10345000590B483C5105C8F48091BD018F708061C3
-:103460008093BD0186E0829FF001839FF00D1124BF
-:10347000E357FE4F80818F708061808388EB91E0FD
-:103480000E942819CF910C94B4192F5F3F4F2770D9
-:10349000B8CFCF910895CF92DF92EF92FF920F9322
-:1034A0001F93CF93DF93CDB7DEB762970FB6F89433
-:1034B000DEBF0FBECDBF8C0185E0F801DE011D9699
-:1034C00001900D928A95E1F7D8014C9111965C918B
-:1034D000119712966C9112971396ED90FC90149799
-:1034E0007091B801E091B9012091BB013091BC010C
-:1034F0002115310531F0EF3F31F481E07F3F19F4C0
-:1035000003C081E001C080E0B82FB170CB2E80FDF8
-:103510006CC1D090BA01DD2009F4F5C0F091BD0175
-:10352000E216F30638F0C701821B930B883C910525
-:1035300048F09BC0209530952E0D3F1D283C31054D
-:1035400008F093C08F2F807F09F052C0E51314C09C
-:10355000741312C0D62E61110FC0FF70F061F0938A
-:10356000BD010E94D51988EB91E00E942819809135
-:10357000BD01F80185836CC1EF2831F05F3F31F464
-:1035800081E04F3F19F403C081E001C080E080FD7D
-:1035900003C081E0862701C080E0F82FF170FF2E84
-:1035A00080FF1CC0809186012091870136E0821740
-:1035B00009F428C190E0389FF001399FF00D1124E3
-:1035C000E857FE4F7181571306C07081471303C03F
-:1035D0007281671303C001968770E9CFD62E6623E8
-:1035E00009F436C18091BD0181608093BD0153C053
-:1035F000E51308C0741306C0611104C0D801159604
-:10360000FC93AEC04D875E878D859E856A8B0E9438
-:103610006C196A89882329F1D62E662311F120912D
-:10362000BD01822F82958F7090E002970CF460C0EC
-:103630008091B8019091B90198878F831986FB8694
-:10364000EA862C87CE01079651C0E51731F14D87E8
-:103650005E878D859E856A8B0E946C196A898111AF
-:103660002EC0C8010E942819A4C08F2F807F69F73F
-:103670007E2DF98AE88A89890E94951988EB91E064
-:103680000E942819E8EBF1E086E0DF011D928A959F
-:10369000E9F70E94D519D12CDBC07413D8CF611182
-:1036A000D6CFD8011596FC93C8010E942819E8EBE3
-:1036B000F1E086E0DF011D928A95E9F7C9C0D62EB8
-:1036C000662379F22091BD01822F82958F7090E060
-:1036D000029774F08091B8019091B9019A8389831F
-:1036E0001B82FD82EC822E83CE0101960E94281956
-:1036F00086E0F801A8EBB1E001900D928A95E1F720
-:103700000E94E3196FC0E216F30628F0C701821B7E
-:10371000930B9C0104C0209530952E0D3F1D283C35
-:10372000310508F052C0D62E662309F49ACFE5136E
-:103730002CC074132AC08091BD0180FD1DC0982F3C
-:1037400092959F70C9F0D80115968C9315979F306C
-:1037500039F09F5F9295907F8F70892B15968C938F
-:10376000C8010E94281986E0F801A8EBB1E0019099
-:103770000D928A95E1F736C086E0F801A8EBB1E03A
-:1037800001900D928A95E1F763C04D875E878D8524
-:103790009E850E946C19882379F086E0F801A8EBD9
-:1037A000B1E001900D928A95E1F70E94E3190E9421
-:1037B000D519DD24D3944CC08091BD0181608093E4
-:1037C000BD01C8010E94281943C07E2DF98AE88AEC
-:1037D00089890E949519E8EBF1E086E0DF011D92EE
-:1037E0008A95E9F70E94D51933C0662309F439CFC9
-:1037F0004D875E878D859E850E946C19882309F40C
-:1038000030CFCBCF4D875E878D859E850E94D31E9E
-:10381000292F22952F7030E0223031052CF49F7033
-:1038200041F0811106C00CC0243031052CF49F708A
-:1038300049F4805E883020F0C8010E942819CF2CFE
-:10384000DC2C06C0D80115969C91907F91F7F8CF9B
-:103850008D2D62960FB6F894DEBF0FBECDBFDF91FF
-:10386000CF911F910F91FF90EF90DF90CF9008952F
-:103870001F93CF93DF93CDB7DEB72C970FB6F89495
-:10388000DEBF0FBECDBF4F83588769877A878B878E
-:103890009C87CE0107960E944B1A8823C1F02F8186
-:1038A00038858A859B85892B31F03F3F11F080E078
-:1038B00003C02F3FE1F781E0811147C04F81588558
-:1038C00069857A858B859C850E94A4193EC086E017
-:1038D000FE013796DE01119601900D928A95E1F76F
-:1038E000FF81E8854A855B854115510531F0EF3F41
-:1038F00031F481E0FF3F19F403C081E001C080E0B2
-:1039000080FD23C02091870130E0C90101968770B6
-:1039100099276091860170E086179707F1F1F98386
-:10392000EA835D834C8396E0929FD001939FB00D14
-:103930001124A857BE4FFE01319601900D929A9521
-:10394000E1F7809387010E94B41916E08091860107
-:1039500090918701891779F1189FC0011124885728
-:103960009E4F0E944B1A882331F1E09186011E9FE1
-:10397000F0011124E857FE4F40815181628173812B
-:10398000848195810E94A4198091860190E001961E
-:103990008770992780938601D9CF0E946819109269
-:1039A000870110928601E8EBF1E086E0DF011D92CD
-:1039B0008A95E9F7CACF2C960FB6F894DEBF0FBEF2
-:1039C000CDBFDF91CF911F910895EF92FF920F939A
-:1039D0001F93CF93DF93FC01009709F46FC0F12C84
-:1039E000EE24E394EF0121968491843740F48430EF
-:1039F00008F055C0813081F0823021F15FC08537F9
-:103A000009F447C0C0F19CE7980F903708F056C002
-:103A10008F770E94801645C08F010E5F1F4FFE01F9
-:103A2000849190E2980F983050F48770FE2D01C079
-:103A3000FF0F8A95EAF78F2F0E94751F15C00E940D
-:103A4000B81514C08F010E5F1F4FFE01849190E2E4
-:103A5000980F983068F48770FE2D01C0FF0F8A958B
-:103A6000EAF78F2F0E947B1F0E949E1FE80119C05A
-:103A70000E948016FBCFCF010296FE01C491CC2399
-:103A800061F0EFE9FFE03197F1F700C00000C150AD
-:103A9000F6CFCF010296FE01F490EC0102C00E9425
-:103AA000B8158F2D882341F0EFE9FFE03197F1F74A
-:103AB00000C000008150F6CFFE0194CFDF91CF917E
-:103AC0001F910F91FF90EF90089508956093C201A8
-:103AD0007093C3018093C4019093C5010C94541951
-:103AE0000F931F930091C2011091C3012091C40153
-:103AF0003091C501062B172B282B392B0093C201BF
-:103B00001093C3012093C4013093C5011F910F91FD
-:103B10000C9454190F931F930091C2011091C3018B
-:103B20002091C4013091C50106231723282339238E
-:103B30000093C2011093C3012093C4013093C501C7
-:103B40001F910F910C9454190F931F930091C20170
-:103B50001091C3012091C4013091C5010627172798
-:103B6000282739270093C2011093C3012093C40171
-:103B70003093C5011F910F910C9454191092BE01FE
-:103B80001092BF011092C0011092C1010C945419FF
-:103B900041E050E060E070E004C0440F551F661F34
-:103BA000771F8A95D2F74093BE015093BF0160936F
-:103BB000C0017093C1010C94541941E050E060E0E1
-:103BC00070E004C0440F551F661F771F8A95D2F717
-:103BD0008091BE019091BF01A091C001B091C1013F
-:103BE000842B952BA62BB72B8093BE019093BF01FE
-:103BF000A093C001B093C1010C94541941E050E06E
-:103C000060E070E004C0440F551F661F771F8A955F
-:103C1000D2F740955095609570958091BE01909136
-:103C2000BF01A091C001B091C10184239523A623B7
-:103C3000B7238093BE019093BF01A093C001B093BE
-:103C4000C1010C94541941E050E060E070E004C000
-:103C5000440F551F661F771F8A95D2F78091BE01CA
-:103C60009091BF01A091C001B091C1018427952717
-:103C7000A627B7278093BE019093BF01A093C001F0
-:103C8000B093C1010C9454190F931F930091BE017E
-:103C90001091BF012091C0013091C101062B172B5B
-:103CA000282B392B0093BE011093BF012093C00134
-:103CB0003093C1011F910F910C9454190F931F93CE
-:103CC0000091BE011091BF012091C0013091C1014E
-:103CD00006231723282339230093BE011093BF0125
-:103CE0002093C0013093C1011F910F910C9454197E
-:103CF0000F931F930091BE011091BF012091C0014D
-:103D00003091C10106271727282739270093BE01C4
-:103D10001093BF012093C0013093C1011F910F91F7
-:103D20000C9454190895CF92DF92EF92FF920F9363
-:103D30001F93CF93DF93EC01C090C201D090C301D9
-:103D4000E090C401F090C5018091BE019091BF0147
-:103D5000A091C001B091C101C82AD92AEA2AFB2A40
-:103D60000FE110E0B701A601002E04C0769567951B
-:103D7000579547950A94D2F740FD05C001501109A7
-:103D800088F780E007C0BE01802F0E94D50A019706
-:103D9000A9F3802FDF91CF911F910F91FF90EF90AA
-:103DA000DF90CF900895CF93DF93EC010E94931E94
-:103DB000BE010E94D50ADF91CF910895CB010E94E8
-:103DC000D31E08958091C6018595859585950895A2
-:103DD0008091C6018770089598E0899F9001112411
-:103DE000622B6093C6010C94DD1D4091C601809545
-:103DF00084238093C601982F977069F450E0282F90
-:103E0000332727FD30954217530729F0859585956F
-:103E100085950C94FE1D08959091C601977081E0E0
-:103E200009F480E0089540910C0150910D0120E0CB
-:103E300030E09FEFFA01E20FF31F6281681799F0FB
-:103E40009F3F19F4611101C0922F2F5F3F4F263021
-:103E5000310581F79F3F39F0FA01E90FF11D97FD18
-:103E6000FA9582830895089540910C0150910D01B7
-:103E700020E030E0FA01E20FF31F9281981301C0B5
-:103E800012822F5F3F4F26303105A1F7089581E060
-:103E900090E0E0910C01F0910D01E80FF91F108204
-:103EA000019688309105A9F708959091D201982B39
-:103EB0009093D201089580959091D2019823909388
-:103EC000D20108951092D20108959091D101982BBA
-:103ED0009093D101089580959091D101982390936A
-:103EE000D10108951092D10108959091D001982B9D
-:103EF0009093D001089580959091D001982390934C
-:103F0000D00108951092D00108958093C7010895BB
-:103F10001092C701089540910C0150910D0120E0CD
-:103F200030E080E0FA01E20FF31F918191118F5F81
-:103F30002F5F3F4F27303105A9F70895E0910C011D
-:103F4000F0910D018091D2018083E0910C01F091FC
-:103F50000D0180819091D101892B8083E0910C012A
-:103F6000F0910D0180819091D001892B80839091F7
-:103F7000C701992361F0E0910C01F0910D0180815E
-:103F8000892B80830E948B1F81111092C701809121
-:103F90000C0190910D010C9435149093470180937E
-:103FA0004601089540E0009739F09C012150310905
-:103FB000822393234F5FF7CF842F08958295982F04
-:103FC0009C7C96959695837344E0849F9001112480
-:103FD000922B892F8A7A86959575990F892B08954A
-:103FE0001F93CF93DF931F92CDB7DEB799830E94C3
-:103FF000DE1F182F9981892F0E94DE1F212F30E0AC
-:10400000322F2227A901482BCA010F90DF91CF91AF
-:104010001F9108958091E801843039F11092D40104
-:1040200020E488E190E00FB6F894A89580936000B2
-:104030000FBE2093600080E00E94850780E00E9410
-:104040006F0B83B7817F846083BF83B7816083BF39
-:104050007894889583B78E7F83BF88E10FB6F894F4
-:1040600080936000109260000FBE08950895089537
-:1040700080E00E9485070E9436200E94C80B0E94A3
-:1040800037200E948A0C91E0811101C090E0892FB5
-:1040900008950E94681980E00E9485070E94AF2A57
-:1040A0000E9429140C946F0B1F920F920FB60F925F
-:1040B00011248F939F93AF93BF938091D40181116B
-:1040C00013C08091D5019091D601A091D701B091F4
-:1040D000D8014196A11DB11D8093D5019093D601C1
-:1040E000A093D701B093D801BF91AF919F918F91C9
-:1040F0000F900FBE0F901F90189582E084BD93E043
-:1041000095BD9AEF97BD80936E0008952FB7F894F0
-:104110008091D5019091D601A091D701B091D8019D
-:104120002FBF0895CF92DF92EF92FF920F931F93CC
-:104130002FB7F8944091D5015091D6016091D701E5
-:104140007091D8012FBF6A017B01EE24FF248C01FE
-:1041500020E030E0C016D106E206F30610F441502C
-:104160005109481B590BCA011F910F91FF90EF9005
-:10417000DF90CF9008951F920F920FB60F921124E7
-:104180008F939F93AF93BF938091D5019091D60168
-:10419000A091D701B091D8010196A11DB11D8093C6
-:1041A000D5019093D601A093D701B093D801BF91C8
-:1041B000AF919F918F910F900FBE0F901F90189508
-:1041C0000E943011F8942FEF87EA91E62150804049
-:1041D0009040E1F700C0000087E090EBDC018093A5
-:1041E000F3019093F401A093F501B093F6012CE054
-:1041F00088E190E00FB6F894A895809360000FBE18
-:1042000020936000FFCFCF92DF92EF92FF920F9347
-:104210001F93CF93DF93C82E84E0D82E01E010E0E7
-:104220008D2D0E94470C7C01CDE0D0E098010C2E32
-:1042300002C0220F331F0A94E2F72E213F21232BC5
-:1042400049F06C2F7D2D80E00E945408C81202C0F6
-:1042500081E007C0219750F7DA948FEFD812E0CFB2
-:1042600080E0DF91CF911F910F91FF90EF90DF9051
-:10427000CF900895CF93C82F8CE20E94032188230A
-:1042800021F08C2FCF910C94032180E0CF910895E1
-:10429000CF930E949322811102C00E94742289EE62
-:1042A00093E00E94C406C5E6C15049F00E94C80BC5
-:1042B0008FE39CE90197F1F700C00000F5CF82EE93
-:1042C00093E00E94C40689E20E943A2181110AC14A
-:1042D0008AE20E943A2181110E94742285E00E94A4
-:1042E0003A2181110E94E0200E949E228093D301F6
-:1042F00087E00E943A21882399F18BE10E943A21BC
-:10430000882351F09091D30191FB882780F921E017
-:10431000822780FB91F922C08EE00E943A218823F7
-:1043200051F09091D30192FB882780F921E08227F8
-:1043300080FB92F913C080E10E943A219091D30151
-:10434000882341F093FB882780F921E0822780FBB6
-:1043500093F904C0892F809580FB90F99093D30145
-:104360008091D3010E94A2220E94B0228093F10189
-:1043700080EE0E943A21882341F08091F101982F2C
-:10438000909590FB80F98093F10189E30E943A2196
-:10439000882359F09091F10191FB882780F921E061
-:1043A000822780FB91F99093F10182EE0E943A21DD
-:1043B000882359F09091F10192FB882780F921E040
-:1043C000822780FB92F99093F10186EE0E943A21B8
-:1043D000882359F09091F10193FB882780F921E01F
-:1043E000822780FB93F99093F10183EE0E943A219A
-:1043F000882359F09091F10194FB882780F921E0FE
-:10440000822780FB94F99093F10185E30E943A2181
-:10441000882359F09091F10195FB882780F921E0DC
-:10442000822780FB95F99093F10181E30E943A2164
-:10443000882359F09091F10196FB882780F921E0BB
-:10444000822780FB96F99093F10181E10E943A2145
-:10445000882359F09091F10197FB882780F921E09A
-:10446000822780FB97F99093F1018091F1010E94DE
-:10447000B42287E20E943A21C82F8EE10E943A219D
-:104480008111C2608FE10E943A218111C46080E2F3
-:104490000E943A218111C86081E20E943A21811173
-:1044A000C06182E20E943A218111C06283E20E94CF
-:1044B0003A218111C06484E20E943A21882311F0DC
-:1044C000C06802C0CC2329F08C2F0E94AB226C2F35
-:1044D00003C00E94A722682F70E080E090E0CF9197
-:1044E0000C94661DCF9108956DEE7EEF80E090E014
-:1044F0000E940F2D60E082E090E00E94FD2C60E0C1
-:1045000083E090E00E94FD2C60E084E090E00E9457
-:10451000FD2C60E085E090E00E94FD2C60E086E0EC
-:1045200090E00C94FD2C80E090E00E94F72C21E0BC
-:104530008D3E9E4F09F020E0822F089582E090E0AA
-:104540000C94EF2C682F82E090E00C94FD2C83E01B
-:1045500090E00C94EF2C682F83E090E00C94FD2CFD
-:1045600084E090E00C94EF2C682F84E090E00C94B1
-:10457000FD2C86E090E00C94EF2C682F86E090E014
-:104580000C94FD2C8091DB0180FF0BC06091110128
-:1045900085E0689FB00111247595679575956795BD
-:1045A0002AC081FF09C06091110185E0689FB001B8
-:1045B0001124759567951FC082FF07C06091110196
-:1045C00085E0689FB001112416C04091DC014423AE
-:1045D000C9F060911001461788F72091110185E01C
-:1045E000289F90011124429FC001439F900D1124E8
-:1045F00070E00E94C12C6038710540F461157105AE
-:1046000039F002C065E070E0862F08958FE70895C5
-:1046100081E008958091DB0180FF08C060910F0167
-:1046200070E0759567957595679521C081FF06C007
-:1046300060910F0170E07595679519C082FF04C005
-:1046400060910F0170E010C08091DC018823C1F0FF
-:1046500060910E018617A0F790910F01989FC001FD
-:10466000112470E00E94C12C6038710528F4611596
-:10467000710521F0862F08958FE7089581E0089550
-:1046800061E070E0F4CF803F21F40E94C222819566
-:1046900004C0813F29F40E94C2228093DF01089563
-:1046A000823F21F40E94C222819504C0833F29F4F5
-:1046B0000E94C2228093DE010895893F19F40E946E
-:1046C0000A2305C08A3F31F40E940A238195809312
-:1046D000E00108958B3F21F40E940A23819504C0D4
-:1046E0008C3F29F40E940A238093E1010895843FBE
-:1046F00021F48091DD01816017C0853F21F4809114
-:10470000DD01826011C0863F21F48091DD0184606B
-:104710000BC0873F21F48091DD01886005C0883F90
-:1047200031F48091DD0180618093DD0108958D3F3A
-:1047300021F48091DB0181600BC08E3F21F48091D8
-:10474000DB01826005C08F3F29F48091DB0184602A
-:104750008093DB010895803F39F48091DF0187FF6A
-:104760006CC01092DF0169C0813F29F48091DF01A4
-:104770001816BCF362C09091DE01823F29F497FFC6
-:104780005CC01092DE0159C0833F19F41916CCF3B6
-:1047900054C0893F41F48091E00118160CF04DC0DF
-:1047A0001092E0014AC08A3F29F48091E00187FF1E
-:1047B00044C0F6CF8B3F39F48091E10187FF3DC0C3
-:1047C0001092E1013AC08C3F29F48091E101181662
-:1047D000BCF333C0843F21F48091DD018E7F17C08C
-:1047E000853F21F48091DD018D7F11C0863F21F44A
-:1047F0008091DD018B7F0BC0873F21F48091DD012B
-:10480000877F05C0883F31F48091DD018F7E8093E2
-:10481000DD0113C08D3F21F48091DB018E7F0BC041
-:104820008E3F21F48091DB018D7F05C08F3F29F4FD
-:104830008091DB018B7F8093DB018091DE01811110
-:104840000EC08091DF0181110AC08091E0018111C9
-:1048500006C08091E101811102C01092DC0108952F
-:104860008091D30183FF7EC085E294E00E94C4065C
-:104870008091DD011F928F9380E294E09F938F934C
-:104880000E945D078EE194E00E94C4062091DE0143
-:10489000822F992787FD90959F932F938BE194E02A
-:1048A0009F938F930E945D0789E194E00E94C40664
-:1048B0002091DF01822F992787FD90959F932F9359
-:1048C00086E194E09F938F930E945D0784E194E0DA
-:1048D0000E94C4062091E001822F992787FD9095C0
-:1048E0009F932F9381E194E09F938F930E945D07A4
-:1048F0008FE094E00E94C4062091E101822F992765
-:1049000087FD90959F932F938CE094E09F938F93D6
-:104910000E945D0789E094E00E94C4068091DC015A
-:104920001F928F9386E094E09F938F930E945D0780
-:1049300084E094E00E94C4068091DB011F928F9373
-:1049400081E094E09F938F930E945D078EEF93E048
-:104950000E94C4068DB79EB74C960FB6F8949EBFC2
-:104960000FBE8DBF8DED91E00E947A140E948620CB
-:104970009093DA018093D90108951F93CF93DF9329
-:104980008091D9019091DA010E9492204091DC013E
-:10499000442321F02091120130E006C02091130140
-:1049A0005AE0259F900111248217930708F482C0D2
-:1049B0008091DE011091DF01D091E001C091E10111
-:1049C000811107C0111105C0D11103C0CC2309F416
-:1049D00071C04F3F19F04F5F4093DC01181624F46B
-:1049E0000E94C2228093DE018091DE0187FF05C014
-:1049F0000E94C22281958093DE01111624F40E9448
-:104A0000C2228093DF018091DF0187FF05C00E94F1
-:104A1000C22281958093DF016091DE01662339F126
-:104A20001091DF01112319F1772767FD7095872F0A
-:104A3000972F0E94C62B23E333E343E35FE30E94F7
-:104A40002A2C0E94932B6093DE01612F772767FD4C
-:104A50007095872F972F0E94C62B23E333E343E300
-:104A60005FE30E942A2C0E94932B6093DF011D16A6
-:104A700024F40E940A238093E0018091E00187FFE3
-:104A800005C00E940A2381958093E0011C1624F43E
-:104A90000E940A238093E1018091E10187FF05C014
-:104AA0000E940A2381958093E101DF91CF911F91AC
-:104AB0000C943024DF91CF911F910895EDEDF1E03A
-:104AC00085E0DF011D928A95E9F71092DC011092D2
-:104AD000DB01089588E496E00E94C4061F9281E0FD
-:104AE0008F931F9285E08F938AEF95E09F938F932A
-:104AF0000E945D070F900F900F900F900F900F90F6
-:104B000008958330E9F128F4813061F0823009F1B1
-:104B10000895853009F462C008F449C0863009F46C
-:104B200074C0089520911301862F90E0820F911D8B
-:104B30008F3F910520F4620F6093130103C08FEF44
-:104B400080931301809113011F928F9383E395E06B
-:104B500072C020911201862F90E0820F911D8F3F2D
-:104B6000910520F4620F6093120103C08FEF8093D0
-:104B70001201809112011F928F9381E295E05BC038
-:104B800020911101862F90E0820F911D8F3F91059A
-:104B900020F4620F6093110103C08FEF8093110125
-:104BA000809111011F928F938EE095E044C0209177
-:104BB0001001862F90E0820F911D8F3F910520F408
-:104BC000620F6093100103C08FEF809310018091FA
-:104BD00010011F928F9389EF94E02DC020910F0157
-:104BE000862F90E0820F911D8F3F910520F4620F78
-:104BF00060930F0103C08FEF80930F0180910F012D
-:104C00001F928F9380EE94E016C020910E01862FA4
-:104C100090E0820F911D8F3F910520F4620F609309
-:104C20000E0103C08FEF80930E0180910E011F9241
-:104C30008F9385EC94E09F938F930E945D070F9074
-:104C40000F900F900F900895833081F128F48130F8
-:104C500059F08230D1F00895853009F449C0B8F197
-:104C6000863009F456C0089580911301681720F426
-:104C7000861B8093130102C01092130180911301CF
-:104C80001F928F9386EB94E054C0809112016817B5
-:104C900020F4861B8093120102C0109212018091B1
-:104CA00012011F928F9384EA94E043C08091110116
-:104CB000681720F4861B8093110102C01092110125
-:104CC000809111011F928F9381E994E032C080910D
-:104CD0001001681720F4861B8093100102C0109207
-:104CE0001001809110011F928F938CE794E021C0F6
-:104CF00080910F01681720F4861B80930F0102C07A
-:104D000010920F0180910F011F928F9383E694E020
-:104D100010C080910E01681720F4861B80930E014D
-:104D200002C010920E0180910E011F928F9388E4B1
-:104D300094E09F938F930E945D070F900F900F90C8
-:104D40000F900895CF93C82F1F928F932DE437E0D3
-:104D50003F932F930E945D0761E070E080E090E058
-:104D600004C0660F771F881F991FCA95D2F70E944B
-:104D7000661D0F900F900F900F90CF910C946819B3
-:104D8000CF938732B0F58E3108F085C28E3009F4AA
-:104D900001C200F5873009F4CBC1A8F4863009F0D0
-:104DA00080C28091D301817F8E7F8093D30187EA77
-:104DB00098E00E94C4068BE79CE00E94C40681E054
-:104DC0008093E301B3C1883009F43FC08B3009F40C
-:104DD000A9C167C2863109F421C220F4803109F4E7
-:104DE000ECC15FC2893109F402C28B3109F4BFC141
-:104DF00058C2883309F496C150F4893209F44DC27F
-:104E0000853309F44AC2873209F447C24AC283345F
-:104E100009F443C228F48A3308F443C289533EC2DA
-:104E2000883409F03EC20E9468198FE59CE00E9418
-:104E3000C4069FEF23ED80E3915020408040E1F7CE
-:104E400000C000000E94E02071C18FE79CE00E943A
-:104E5000C40681EE9BE00E94C4060E94A7221F9216
-:104E60008F938EED9BE09F938F930E945D078CED57
-:104E70009BE00E94C4060E949E22C82F89EC9BE002
-:104E80000E94C4061F92CF9324EC3BE03F932F93E4
-:104E90000E945D0782EC9BE00E94C40688EB9BE0C9
-:104EA0000E94C4068C2F81701F928F9325EB3BE0EC
-:104EB0003F932F930E945D0783EB9BE00E94C40603
-:104EC00089EA9BE00E94C406C1FB882780F91F92F3
-:104ED0008F9326EA3BE03F932F930E945D0784EA7D
-:104EE0009BE00E94C40688E99BE00E94C406C2FBC6
-:104EF000882780F91F928F9325E93BE03F932F93FA
-:104F00000E945D0783E99BE00E94C4068AE89BE05B
-:104F10000E94C406C3FBCC27C0F91F92CF9387E839
-:104F20009BE09F938F930E945D0785E89BE00E9422
-:104F3000C4060E94B022C82F81E79BE00E94C406ED
-:104F40001F92CF932CE63BE03F932F930E945D0787
-:104F50008AE69BE00E94C40681E59BE00E94C406AD
-:104F60008C2F81701F928F932EE43BE03F932F9301
-:104F70000E945D078DB79EB780960FB6F8949EBFCE
-:104F80000FBE8DBF8CE49BE00E94C40685E39BE0CE
-:104F90000E94C406C1FB882780F91F928F9322E3E9
-:104FA0003BE03F932F930E945D0780E39BE00E94CC
-:104FB000C4068EE19BE00E94C406C2FB882780F9EC
-:104FC0001F928F932BE13BE03F932F930E945D074D
-:104FD00089E19BE00E94C40687E09BE00E94C40632
-:104FE000C3FB882780F91F928F9324E03BE03F9317
-:104FF0002F930E945D0782E09BE00E94C40688EF29
-:105000009AE00E94C406C4FB882780F91F928F9300
-:1050100025EF3AE03F932F930E945D0783EF9AE0DC
-:105020000E94C40681EE9AE00E94C406C5FB882750
-:1050300080F91F928F932EED3AE03F932F930E94B9
-:105040005D078CED9AE00E94C40680EC9AE00E9415
-:10505000C406C6FB882780F91F928F932DEB3AE098
-:105060003F932F930E945D078BEB9AE00E94C4064A
-:1050700083EB9AE00E94C406C7FBCC27C0F91F92BD
-:10508000CF9380EB9AE09F938F930E945D078EEA07
-:105090009AE00E94C4060E94B922C82F87E99AE0CC
-:1050A0000E94C4061F92CF9322E93AE03F932F93C8
-:1050B0000E945D078DB79EB780960FB6F8949EBF8D
-:1050C0000FBE8DBF80E99AE00E94C40686E89AE090
-:1050D0000E94C4068C2F81701F928F9323E83AE0C0
-:1050E0003F932F930E945D0781E89AE00E94C406D7
-:1050F00088E79AE00E94C406C6951F92CF9385E781
-:105100009AE09F938F930E945D0783E79AE00E9445
-:10511000C4068DB79EB708960FB6F8949EBF0FBE13
-:105120008DBF04C08EEC98E00E94C406C1E0BEC0F2
-:105130008091D301C82FC095C170C0FB80F98093C6
-:10514000D301CC2349F083E59CE00E94C406809102
-:10515000D3018660886045C086E49CE00E94C40656
-:105160008091D301897F877F8093D301DFCF8091A6
-:10517000D30181FBCC27C0F991E0C927C0FB81F99D
-:105180008093D301CC2319F089E39CE025C08BE206
-:105190009CE0CACF8091D30182FBCC27C0F991E07B
-:1051A000C927C0FB82F98093D301CC2319F08CE18D
-:1051B0009CE012C08CE09CE0B7CF8091D30183FBD0
-:1051C000CC27C0F991E0C927C0FB83F98093D301B4
-:1051D000CC2351F080E09CE00E94C4068091D30172
-:1051E00081608093D30162C083EF9BE09DCF88E90B
-:1051F00098E00E94C4068FE798E00E94C4068DE400
-:1052000098E00E94C40686E298E00E94C40686EEFA
-:1052100097E00E94C40688EB97E086CF8AEA97E081
-:105220000E94C4060E9429141F928F9380E997E080
-:105230009F938F930E945D0780910B011F928F9324
-:1052400089E797E09F938F930E945D078091740197
-:105250001F928F9386E697E09F938F930E945D073E
-:105260008091D5019091D601A091D701B091D8013C
-:10527000BF93AF939F938F9382E597E09F938F9314
-:105280000E945D078DB79EB742960FB6F8949EBFF9
-:105290000FBE8DBF4BCF8D5101C080E00E94A22672
-:1052A00045CF81EF9BE00E94C406C0E08C2FCF91D8
-:1052B000089580E0089580E00895CF93C82F8091ED
-:1052C000E301813071F020F0823009F448C03FC121
-:1052D000A0910C01B0910D018C91823209F039C17D
-:1052E00007C0A0910C01B0910D018C91823249F45C
-:1052F0008C2F0E94592981112FC08C2F0E94C0260B
-:105300002CC08C2F0E945B29811126C0C431E1F092
-:1053100070F4CB3081F0C031D1F40E946A2585E46D
-:1053200097E00E94C40682E08093E30115C0C93271
-:1053300059F0C83361F487EA98E00E94C40689E412
-:1053400097E00E94C40608C01092E30104C183E400
-:1053500097E00E94C406FFC081E08170FEC0C432A5
-:1053600028F5CE3108F0C1C0CB30A1F1D0F4C73060
-:1053700009F0D3C08EE18093130182E38093120180
-:105380008AE08093110184E18093100188E080938A
-:105390000F0188E280930E0189EE95E00E94C40619
-:1053A000BFC0C33149F1C431C1F0B7C0CB3409F437
-:1053B000A9C028F4C93289F0C83361F0AEC0C13544
-:1053C00009F49EC0C23509F499C0CE3409F0A5C0D5
-:1053D0006AE09EC00E946A25A3C08091E2018823F2
-:1053E00019F01092E2019CC086EF95E00E94C4067D
-:1053F00081E08093E301B1C080ED95E00E94C40696
-:105400008EEB95E00E94C406809113011F928F934A
-:105410008BEB95E09F938F930E945D0789EB95E05E
-:105420000E94C40687EA95E00E94C406809112019A
-:105430001F928F9384EA95E09F938F930E945D075C
-:1054400082EA95E00E94C40683E995E00E94C406C2
-:10545000809111011F928F9380E995E09F938F9324
-:105460000E945D078EE895E00E94C4068DE795E0F6
-:105470000E94C406809110011F928F938AE795E0E5
-:105480009F938F930E945D0788E795E00E94C40672
-:1054900083E695E00E94C40680910F011F928F93CE
-:1054A00080E695E09F938F930E945D078EE595E0DF
-:1054B0000E94C40687E495E00E94C40680910E0114
-:1054C0001F928F9384E495E09F938F930E945D07D2
-:1054D00082E495E00E94C4068DB79EB748960FB649
-:1054E000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0D5
-:1054F000E55CFE4F80818093E20112C061E003C051
-:1055000061E006C06AE08091E2010E94812508C046
-:105510008091E2010E94242603C087EE95E013C02B
-:105520008091E201882369F01F928F9381EE95E0CC
-:105530009F938F930E945D070F900F900F900F9095
-:1055400004C08EED95E00E94C40681E006C0109272
-:10555000E30180E002C080E000CFCF9108950E9477
-:105560009322811102C00E9474220E94B92280936A
-:10557000F20180FF02C0869501C080E00C9485078F
-:105580008091F201982F9695292F30E02330310534
-:105590004CF49F5F990F8170892B81608093F20199
-:1055A0000E94BD228091D30180FF0FC08091F20143
-:1055B00086951F928F938CEC9CE09F938F930E9413
-:1055C0005D070F900F900F900F908091F2018695DC
-:1055D0000C9485078091F201982F969591F091583F
-:1055E000990F8170892B8093F2018E7F91E009F4ED
-:1055F00090E08091F20190FB80F98093F2010E948B
-:10560000BD228091D30180FF0FC08091F201869569
-:105610001F928F9384EB9CE09F938F930E945D0772
-:105620000F900F900F900F908091F20186950C943F
-:1056300085078091F201982F909590FB80F98093D7
-:10564000F2010E94BD228091D30180FF0FC08091A2
-:10565000F20181701F928F938EE99CE09F938F934C
-:105660000E945D070F900F900F900F908091F201B4
-:1056700080FF02C0869501C080E00C9485073091C0
-:10568000F201232F26952F5F2F77822F90E0317024
-:1056900004972CF4220F232B2093F20102C03093A5
-:1056A000F2018091F2018E7F91E009F490E0809107
-:1056B000F20190FB80F98093F2010E94BD2280915B
-:1056C000D30180FF0FC08091F20186951F928F93C6
-:1056D0008AE89CE09F938F930E945D070F900F9044
-:1056E0000F900F908091F20186950C948507209180
-:1056F000F201922F96959827990F822F8170892B0E
-:105700008093F2018E7F91E009F490E08091F201A4
-:1057100090FB80F98093F2010E94BD228091F201FA
-:1057200086950C94850704D06894B1118DC00895B6
-:1057300070D088F09F5790F0B92F9927B751A0F0FB
-:10574000D1F0660F771F881F991F1AF0BA95C9F715
-:1057500012C0B13081F077D0B1E0089574C0672FE6
-:10576000782F8827B85F39F0B93FCCF386957795C5
-:105770006795B395D9F73EF49095809570956195AE
-:105780007F4F8F4F9F4F0895E89409C097FB3EF4D9
-:1057900090958095709561957F4F8F4F9F4F99237E
-:1057A000A9F0F92F96E9BB279395F69587957795FC
-:1057B0006795B795F111F8CFFAF4BB0F11F460FFBC
-:1057C0001BC06F5F7F4F8F4F9F4F16C0882311F014
-:1057D00096E911C0772321F09EE8872F762F05C028
-:1057E000662371F096E8862F70E060E02AF09A95C3
-:1057F000660F771F881FDAF7880F9695879597F9B8
-:10580000089557FD9058440F551F59F05F3F71F0B0
-:105810004795880F97FB991F61F09F3F79F0879517
-:105820000895121613061406551FF2CF4695F1DFA0
-:1058300008C0161617061806991FF1CF8695710530
-:10584000610508940895E894BB2766277727CB0164
-:1058500097F908950BD078C069D028F06ED018F071
-:10586000952309F05AC05FC01124EECFCADFA0F320
-:10587000959FD1F3950F50E0551F629FF001729FE5
-:10588000BB27F00DB11D639FAA27F00DB11DAA1F04
-:10589000649F6627B00DA11D661F829F2227B00D51
-:1058A000A11D621F739FB00DA11D621F839FA00DDC
-:1058B000611D221F749F3327A00D611D231F849F2C
-:1058C000600D211D822F762F6A2F11249F57504083
-:1058D0008AF0E1F088234AF0EE0FFF1FBB1F661F1E
-:1058E000771F881F91505040A9F79E3F510570F0D7
-:1058F00014C0AACF5F3FECF3983EDCF38695779512
-:105900006795B795F795E7959F5FC1F7FE2B880FD1
-:10591000911D9695879597F9089597F99F6780E867
-:1059200070E060E008959FEF80EC089500240A94F1
-:105930001616170618060906089500240A9412166A
-:105940001306140605060895092E0394000C11F49D
-:10595000882352F0BB0F40F4BF2B11F460FF04C04A
-:105960006F5F7F4F8F4F9F4F0895991B79E004C061
-:10597000991F961708F0961B881F7A95C9F780958E
-:10598000089597FB072E16F4009407D077FD09D0F1
-:105990000E94DB2C07FC05D03EF4909581959F4F2B
-:1059A0000895709561957F4F0895EE0FFF1F059044
-:1059B000F491E02D0994AA1BBB1B51E107C0AA1F5B
-:1059C000BB1FA617B70710F0A61BB70B881F991FA0
-:1059D0005A95A9F780959095BC01CD010895F99944
-:1059E000FECF92BD81BDF89A992780B50895A8E1B0
-:1059F000B0E042E050E00C94172D262FF999FECF2D
-:105A000092BD81BDF89A019700B4021639F01FBA11
-:105A100020BD0FB6F894FA9AF99A0FBE0895019630
-:105A2000272F0E94FE2C0C94FD2CDC01CB01FC01E5
-:105A3000F999FECF06C0F2BDE1BDF89A319600B4E7
-:0E5A40000D9241505040B8F70895F894FFCFF2
-:105A4E00FF9E0C8F0D6C0D380D050D01C801280839
-:105A5E00140A321E0F1F6C76667349130353437973
-:105A6E00693309196F7F59404D36206F032203ECBD
-:105A7E0002CC02580271028A02A30201020304053B
-:065A8E00060708090000F4
-:00000001FF
+:100000000C94C2080C9409090C9409090C94090970
+:100010000C9409090C9409090C9409090C94090918
+:100020000C9409090C9409090C947F1B0C94511C25
+:100030000C94E7290C9409090C9409090C940909FA
+:100040000C9409090C9409090C9409090C940909E8
+:100050000C9409090C944F2A0C9409090C94090971
+:100060000C9409090C9409090C9409090C940909C8
+:100070000C9409090C9409090C9409090C940909B8
+:100080000C941E160C9409090C9409090C94090986
+:100090000C9409090C9409090C9409090C94090998
+:1000A0000C9409090C9409090C940909130A300AE3
+:1000B000610A370A3E0A450A4C0A530A5A0ABE1C0C
+:1000C000E01CD31DE01CD31D251D481DD31D9D1D07
+:1000D000B01D02210221312131216D218B21CD2240
+:1000E000CD229621CD223B223B22A122A922CD2244
+:1000F000C822482248224822482248224822482230
+:10010000482248224822482248224822482248229F
+:100110004822582266226D2274227E2200F001F0CD
+:1001200002F003F004F005F006F007F008F00020FC
+:100130001E001F00200021002200230024002500B3
+:10014000260027002D002E002A002B0014001A0084
+:100150000800150017001C0018000C001200130006
+:100160002F0030003100390004001600070009009C
+:100170000A000B000D000E000F00330034000000D9
+:100180002800E10000001D001B000600190005000A
+:10019000110010003600370038000000E500E000D4
+:1001A000E300E200000000002C000000000000005E
+:1001B0000000E600E7000151E40035003A003B0092
+:1001C0003C003D003E003F00400041004200430033
+:1001D000440045004C0001000100520001000100F4
+:1001E0000100010001000100010001002F703070CA
+:1001F00031700100500051004F000100010001006A
+:1002000001000100010001000100010001000100E6
+:1002100001000120022003200420052006200720E1
+:10022000082001000100010001000100010001009F
+:1002300000000000010000000000000000000100BC
+:100240000100010000700A44454255473A20656E9E
+:1002500061626C65642E0A005374617465206F6678
+:1002600020726F772025583A2025303136620A00F7
+:1002700048756D616E2D7265616461626C65206D9B
+:1002800061747269782073746174653A0D0A004470
+:1002900065626F756E63696E672064656C61792055
+:1002A00072656D61696E696E673A2025580A00545F
+:1002B000494D4552332064697361626C65642E0A4E
+:1002C0000054494D45523320656E61626C65642E61
+:1002D0000A007267626C69676874207365742068CD
+:1002E0007376205B454550524F4D5D3A2025752C65
+:1002F00025752C25750A007267626C696768742021
+:10030000746F67676C653A207267626C69676874BE
+:100310005F636F6E6669672E656E61626C65203D16
+:100320002025750A007267626C69676874206D6FBA
+:1003300064653A2025750A007267626C69676874A3
+:100340005F696E6974207267626C696768745F6365
+:100350006F6E6669672E6D6F6465203D20302E20BC
+:1003600057726974652064656661756C7420766186
+:100370006C75657320746F20454550524F4D2E0AA1
+:10038000007267626C696768745F696E6974206582
+:1003900065636F6E666967206973206E6F74206590
+:1003A0006E61626C65642E0A007267626C696768D0
+:1003B000745F696E6974207374617274210A0072CB
+:1003C00067626C696768745F696E69742063616CE9
+:1003D0006C65642E0A007267626C696768745F639B
+:1003E0006F6E6669672E76616C203D2025640A0079
+:1003F0007267626C696768745F636F6E6669672EA7
+:10040000736174203D2025640A007267626C69671D
+:1004100068745F636F6E6669672E687565203D203E
+:1004200025640A007267686C696768745F636F6E41
+:100430006669672E6D6F6465203D2025640A007231
+:1004400067626C696768745F636F6E6669672E6563
+:100450006E61626C65203D2025640A007267626CE3
+:10046000696768745F636F6E666967206570726F35
+:100470006D0A006565636F6E6669675F75706461BC
+:1004800074655F7267626C696768745F64656661F2
+:10049000756C740A00643214643214783C1E1E14A5
+:1004A0000A0500000000010101020203040505061F
+:1004B00007090A0B0C0E0F1112141517191B1D1F1B
+:1004C000212325282A2C2F313436393B3E414346FF
+:1004D000494C4F5255585A5D6164676A6D70737626
+:1004E000797C7F8386898C8F9295989B9EA2A5A705
+:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309
+:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6
+:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A
+:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9
+:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC
+:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8
+:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1
+:100560008683807C797673706D6A6764615D5A58A2
+:1005700055524F4C494643413E3B393634312F2C7E
+:100580002A282523211F1D1B1917151412110F0EC0
+:100590000C0B0A090706050504030202010101000C
+:1005A000000000010102020202020203030303032E
+:1005B0000303030303030303030404040404040404
+:1005C00004040404040505050505050505050506DF
+:1005D00006060606060606070707070707070808B0
+:1005E000080808080909090909090A0A0A0A0A0B78
+:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35
+:100600000E0F0F0F101010101111111212121313E0
+:100610001314141415151616161717181819191976
+:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF
+:1006300023232424252626272828292A2B2B2C2D42
+:100640002E2F30303132333435363738393A3B3C5F
+:100650003D3E3F40414244454647494A4B4C4E4F40
+:100660005152535556585A5B5D5E606263656769C7
+:100670006B6D6E70727476797B7D7F818486888BDA
+:100680008D909295979A9D9FA2A5A8ABAEB1B4B755
+:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208
+:1006A000F8FF5B735D004B6579626F617264207364
+:1006B000746172742E0A005B575D005B535D005BD2
+:1006C000525D005B445D005B435D000E036B0063A5
+:1006D0000036003000760032000000080359006F39
+:1006E00000750000000403090409027400040100FD
+:1006F000A0FA090400000103010100092111010011
+:10070000012240000705810308000A0904010001D5
+:1007100003010200092111010001224D0007058299
+:100720000308000A09040200010300000009211166
+:100730000100012236000705830308000A090403AB
+:10074000000203000000092111010001222000071E
+:100750000584032000010705040320000112011095
+:100760000100000008EDFE606001000102000106CA
+:1007700031FF0974A1010975150025FF9520750841
+:1007800081020976150025FF952075089102C005A4
+:10079000010980A101850216010026B7001A010097
+:1007A0002AB700751095018100C0050C0901A1014F
+:1007B0008503160100269C021A01002A9C0275106E
+:1007C00095018100C005010902A1010901A10005EF
+:1007D0000919012905150025019505750181029565
+:1007E00001750381010501093009311581257F95C6
+:1007F000027508810609381581257F9501750881E4
+:1008000006050C0A38021581257F950175088106B9
+:10081000C0C005010906A101050719E029E7150077
+:10082000250195087501810295017508810105086A
+:10083000190129059505750191029501750391012D
+:100840000507190029FF150026FF00950675088188
+:1008500000C00A002530325820006B6579626F6154
+:1008600072645F7265706F72743A20004B657962D2
+:100870006F617264204C4544732073746174653AEF
+:100880002025780A00646F6E652E0A00626F6F671C
+:100890006D61676963207363616E3A202E2E2E208E
+:1008A00000290A002575002F002575005D28002508
+:1008B00064002000256400200025640020002564D9
+:1008C000007C0025303258006D6F7573656B65795B
+:1008D000205B62746E7C782079207620685D2872B7
+:1008E00065702F61636C293A205B006D6B5F7768E0
+:1008F00065656C5F74696D655F746F5F6D617820AD
+:100900003D2025640A006D6B5F776865656C5F6DDF
+:1009100061785F7370656564203D2025640A006D11
+:100920006B5F74696D655F746F5F6D6178203D20EA
+:1009300025640A006D6B5F6D61785F737065656437
+:10094000203D2025640A006D6B5F696E74657276C8
+:10095000616C203D2025640A006D6B5F64656C61ED
+:1009600079203D2025640A006D6B5F776865656CB2
+:100970005F74696D655F746F5F6D6178203D2025E0
+:10098000640A006D6B5F776865656C5F6D61785FA9
+:100990007370656564203D2025640A006D6B5F748B
+:1009A000696D655F746F5F6D6178203D2025640A15
+:1009B000006D6B5F6D61785F7370656564203D20CD
+:1009C00025640A006D6B5F696E74657276616C20D8
+:1009D0003D2025640A006D6B5F64656C6179203D84
+:1009E0002025640A000A00257500363A20776865DC
+:1009F000656C5F74696D655F746F5F6D61783A20D7
+:100A0000000A00257500353A20776865656C5F6DD2
+:100A100061785F73706565643A20000A002575008F
+:100A2000343A2074696D655F746F5F6D61783A2048
+:100A3000000A00257500333A206D61785F73706598
+:100A400065643A20000A00257500323A20696E7408
+:100A5000657276616C286D73293A20000A0025754D
+:100A600000313A2064656C6179282A31306D732930
+:100A70003A20000A092D2056616C756573202D0AF5
+:100A8000004D3E004D25643E20003F0073657420FC
+:100A900064656661756C740A00433E200077686582
+:100AA00072652064656C74613A20637572736F724D
+:100AB0003D25642C20776865656C3D25640A536587
+:100AC0006520687474703A2F2F656E2E77696B6994
+:100AD00070656469612E6F72672F77696B692F4D3E
+:100AE0006F7573655F6B6579730A000A092D204D78
+:100AF0006F7573656B6579202D0A4553432F713AE5
+:100B000009717569740A313A0964656C6179282A3A
+:100B100031306D73290A323A09696E7465727661F3
+:100B20006C286D73290A333A096D61785F737065BB
+:100B300065640A343A0974696D655F746F5F6D614D
+:100B4000780A353A09776865656C5F6D61785F731F
+:100B5000706565640A363A09776865656C5F746923
+:100B60006D655F746F5F6D61780A0A703A09707223
+:100B7000696E742076616C7565730A643A097365F1
+:100B8000742064656661756C74730A75703A092B1C
+:100B9000310A646F776E3A092D310A706775703AC1
+:100BA000092B31300A7067646F776E3A092D313046
+:100BB0000A0A7370656564203D2064656C74612069
+:100BC0002A206D61785F7370656564202A20287221
+:100BD0006570656174202F2074696D655F746F5F47
+:100BE0006D6178290A003F004D3E2000433E200001
+:100BF0004C25640A0074696D65725F636F756E746D
+:100C00003A202530346C580A006B6579626F617246
+:100C1000645F69646C653A2025580A006B657962E7
+:100C20006F6172645F70726F746F636F6C3A2025CE
+:100C3000580A00686F73745F6B6579626F617264E4
+:100C40005F6C65647328293A2025580A000A092D2B
+:100C500020537461747573202D0A004743433A2072
+:100C6000352E332E30204156522D4C4942433A20E6
+:100C7000322E302E30204156525F415243483A20A6
+:100C8000617672350A004F5054494F4E533A204C0A
+:100C900055464120424F4F544D41474943204D4F07
+:100CA0005553454B45592045585452414B455920C1
+:100CB000434F4E534F4C4520434F4D4D414E4420E2
+:100CC000343039360A004255494C443A20756E6B2F
+:100CD0006E6F776E202830323A30363A3039204AFB
+:100CE000756E2032302032303136290A00564944A0
+:100CF0003A2030784645454428596F752920504997
+:100D0000443A20307836303630286B6336307632CD
+:100D100029205645523A203078303030310A00448C
+:100D20004553433A204120637573746F6D206B65A2
+:100D300079626F6172640A000A092D205665727328
+:100D4000696F6E202D0A000A092D20436F6E736FA4
+:100D50006C65202D0A4553432F713A0971756974EA
+:100D60000A6D3A096D6F7573656B65790A000A093A
+:100D70002D204D61676963202D0A443A094465625C
+:100D80007567204D65737361676520546F67676C85
+:100D9000650A583A094D6174726978204465627534
+:100DA00067204D6F646520546F67676C65202D2048
+:100DB00053686F77206B6579707265737365732004
+:100DC000696E206D617472697820677269640A4B7C
+:100DD0003A094B6579626F61726420446562756798
+:100DE00020546F67676C65202D2053686F77206BE8
+:100DF00065797072657373207265706F72740A4DD5
+:100E00003A094465627567204D6F75736520546FAC
+:100E100067676C650A563A0956657273696F6E0AA0
+:100E2000533A095374617475730A433A0941637400
+:100E3000697661746520436F6E736F6C65204D6FCA
+:100E400064650A46312D4631303A09537769746337
+:100E50006820746F204C6179657220302D3920280C
+:100E6000463130203D204C30290A302D393A095383
+:100E7000776974636820746F204C617965722030E3
+:100E80002D390A4553433A095377697463682074CE
+:100E90006F204C6179657220302028616C74657216
+:100EA0006E617465206B65792031290A475241567D
+:100EB000453A0953776974636820746F204C6179EF
+:100EC000657220302028616C7465726E61746520D3
+:100ED0006B65792032290A50415553453A094A75C4
+:100EE0006D7020746F20426F6F746C6F61646572F7
+:100EF00020285265736574290A453A095072696E53
+:100F00007420454550524F4D2053657474696E6787
+:100F1000730A000A002575002E6C6576656C3A2010
+:100F2000000A002575002E656E61626C653A20002E
+:100F30000A0025303258006261636B6C696768741F
+:100F40005F636F6E6669672E7261773A20000A00F0
+:100F50002575002E6E6B726F3A20000A0025750011
+:100F60002E737761705F6261636B736C6173685F2E
+:100F70006261636B73706163653A20000A002575D6
+:100F8000002E737761705F67726176655F6573636A
+:100F90003A20000A002575002E6E6F5F6775693A6A
+:100FA00020000A002575002E737761705F72616CF6
+:100FB000745F726775693A20000A002575002E7308
+:100FC0007761705F6C616C745F6C6775693A200063
+:100FD0000A002575002E636170736C6F636B5F741C
+:100FE0006F5F636F6E74726F6C3A20000A00257534
+:100FF000002E737761705F636F6E74726F6C5F63E6
+:101000006170736C6F636B3A20000A0025303258B0
+:10101000006B65796D61705F636F6E6669672E72D4
+:1010200061773A20000A002575002E6D6F75736593
+:101030003A20000A002575002E6B6579626F617297
+:10104000643A20000A002575002E6D61747269787B
+:101050003A20000A002575002E656E61626C653AC3
+:1010600020000A00253032580064656275675F63AE
+:101070006F6E6669672E7261773A20000A002575E7
+:101080000064656661756C745F6C617965723A20A5
+:10109000003F000A6D6F7573653A206F66660A003F
+:1010A0000A6D6F7573653A206F6E0A000A6B657979
+:1010B000626F6172643A206F66660A000A6B657936
+:1010C000626F6172643A206F6E0A000A6D61747219
+:1010D00069783A206F66660A000A6D6174726978F1
+:1010E0003A206F6E0A000A64656275673A206F667F
+:1010F000660A000A64656275673A206F6E0A000A24
+:101100000A4A756D70696E6720746F20626F6F7424
+:101110006C6F616465722E2E2E2000433E200065A8
+:1011200065636F6E6669673A0A006261636B6C693A
+:1011300067687420737465703A2025750A006261CF
+:10114000636B6C6967687420746F67676C653A20BD
+:1011500025750A006261636B6C6967687420646559
+:101160006372656173653A2025750A006261636B7D
+:101170006C6967687420696E6372656173653A2093
+:1011800025750A0011241FBECFEFDAE0DEBFCDBF08
+:1011900004B603FE27C080913F0290914002A091C7
+:1011A0004102B09142028730904BA740B04BD1F43E
+:1011B00010923F021092400210924102109242029D
+:1011C00014BE84B7877F84BF0FB6F894A89580912A
+:1011D0006000886180936000109260000FBEE0E0C4
+:1011E000F8E3099511E0A0E0B1E0EEEDFDE602C004
+:1011F00005900D92A634B107D9F722E0A6E4B1E03C
+:1012000001C01D92AF33B207E1F70E94C0180C94E1
+:10121000ED360C940000FF93EF93E0914601F091BE
+:101220004701309709F00995EF91FF910895FC016E
+:101230008591803011F0EFDFFBCF0895FF27E0E2CA
+:1012400030E247FF0CC0419597FF09C0EDE2609581
+:10125000709580959095611D711D811D911D27FFD1
+:1012600002C0219530E350E2AA27660F771F881F3E
+:10127000991FAA1FA41710F0A41B63955A95A9F7EC
+:10128000AA3008F0A95FA05DAF93F39561157105D1
+:101290008105910541F7ED3211F4EF93F395F217C3
+:1012A00018F43F93F395FBCF8F91B5DFFA95E1F7F3
+:1012B0000895E991F9918591803021F0853219F0F6
+:1012C000AADFF9CF089520E0E89455915532C1F393
+:1012D000503311F4689455915A3348F4505390F3B5
+:1012E000220F022E220F220F200D250FF4CF0EF415
+:1012F000219589919991533619F3533729F1533533
+:1013000059F1BC0188279927E8945C3621F489912A
+:10131000999168945591543639F446EF7EF077FFF1
+:101320000DC08FEF9FEF0AC055374AE039F05835AE
+:1013300040E121F0523642E009F00895FF93EF9327
+:101340007DDFEF91FF91B7CFFF93EF93FC01819188
+:101350008030B9F360DFFBCFFF93EF9368DFF1CF0D
+:10136000DF93CF93CDB7DEB72596A3DFCF91DF9183
+:10137000089508950C94B90981E0089508950C9496
+:10138000B9090C94BC090C94BE09269A2E988FEFCB
+:101390009FEF909387008093860082E28093800085
+:1013A00089E1809381000C9457340E94C5090E9402
+:1013B0005E130C94BA09282F2E9880918000211179
+:1013C00008C08F7D8093800010928B0010928A005D
+:1013D0000895806280938000233019F48FEF9FEF8F
+:1013E0000FC083E090E0821B9109880F991F2FEFB7
+:1013F0003FEFA90102C0569547958A95E2F7CA01C9
+:1014000090938B0080938A000895CF93DF93EC0133
+:10141000862F90E08930910508F05AC0FC01EA5A05
+:10142000FF4F0C949F360E94E52882729A8199237F
+:1014300069F0882319F085E390E002C089E290E02A
+:101440000E94A928DF91CF910C942F29882319F0AD
+:1014500085E390E002C089E290E00E94C628F2CFC6
+:101460008A818823A9F1DF91CF910C94C9138A81D5
+:10147000882371F1DF91CF910C9435128A818823F2
+:1014800039F1DF91CF910C944D128A81882301F1BB
+:10149000DF91CF910C946C128A818823C9F0DF917F
+:1014A000CF910C9487128A81882391F0DF91CF919C
+:1014B0000C94A1128A81882359F0DF91CF910C946A
+:1014C000BC128A81882321F0DF91CF910C94BF1345
+:1014D000DF91CF91089581E008950C946B0A0895EF
+:1014E0000F931F93CF93DF938C01FC01C081D181B7
+:1014F000CE010E942A28BE010E94A90DEC01B8016C
+:101500000E946D0A882309F474C1F801828188233E
+:1015100009F45BC08091530181111FC0C431F0E711
+:10152000DF0709F00AC10E946F0A81E0809353012E
+:101530000E94192A909352018093510110924A01FE
+:1015400010924C0110924B0110924E0110924D01DD
+:101550001092500110924F014CC180915101909115
+:1015600052010E94252A883C910570F480914A011D
+:10157000E82FF0E0EE0FFF1FE55BFE4FD183C08345
+:101580008F5F80934A0135C1C43120E7D20708F04C
+:1015900028C1C23080E7D80710F5C11590E7D907F8
+:1015A00009F0DAC0F8018281882309F4BFC00E94E3
+:1015B0003623FFEF24E38CE0F15020408040E1F738
+:1015C00000C000000E94742A14C1C431F0E7DF0794
+:1015D00008F0D3C0C23020E7D20708F49BC0F8015E
+:1015E0008281882309F4A2C00E942E2C811102C09E
+:1015F0000E940F2C0E944B2C90E09093F801809356
+:10160000F701C230F0E7DF0721F48091F701816034
+:101610007AC0C33020E7D20721F48091F7018260BD
+:1016200072C0C43080E7D80721F48091F70184604C
+:101630006AC0C53090E7D90719F48091F70127C037
+:10164000C630E0E7DE0721F48091F70180615BC0DE
+:10165000C730F0E7DF0721F48091F701806253C0C3
+:10166000C83020E7D20721F48091F70180644BC095
+:10167000C93080E7D80721F48091F701806843C022
+:10168000CA3090E7D90729F48091F7018460886017
+:101690003AC0CB30E0E7DE0721F48091F7018E7F7E
+:1016A00032C0CC30F0E7DF0721F48091F7018D7F65
+:1016B0002AC0CD3020E7D20721F48091F7018B7F3B
+:1016C00022C0CE3080E7D80719F48091F7011AC004
+:1016D0008091F701CF3090E7D90711F48F7E13C0C6
+:1016E000C031E0E7DE0711F48F7D0DC0C131F0E7B6
+:1016F000DF0711F48F7B07C0C231D04711F48F7719
+:1017000002C08B7F877F8093F7018091F7010E9451
+:101710004F2C6FC0C11580E7D80741F0C130D047CA
+:10172000F1F081E08093480180934901C801DF9185
+:10173000CF911F910F910C94C109C43120E7D207BA
+:1017400008F04FC0C23080E7D80708F048CFC11575
+:1017500090E7D90709F42BCFC130D04711F7F80132
+:101760008281882319F386E492E00E941709809110
+:10177000E60181608093E6013CC0C333E0E7DE0709
+:10178000A1F4F8018281882321F01092480182E0BF
+:1017900017C080914801811106C086E20E949F1FF8
+:1017A00086E20E94672082E019C0C433D04709F066
+:1017B000B8CFF8018281882331F01092490182E18B
+:1017C0000E94B62016C080914901811106C087E2AF
+:1017D0000E949F1F87E20E94672082E10E94BD2035
+:1017E00008C0C333F0E7DF0761F2C433D04709F321
+:1017F00098CF80E0DF91CF911F910F9108950C94C5
+:10180000D5090C94BF0926E4829FC0011124FC0174
+:101810003EE0739FE00DF11D1124E60FF11DEE0F68
+:10182000FF1FE25DFE4F859194910E94BC0D8115D2
+:1018300040E5940708F047C0811520E4920708F0BE
+:1018400014C1883E910520F5803E910508F07DC1C8
+:10185000883A910578F4853A910508F0A6C0813060
+:10186000910509F472C108F42FC18430910508F084
+:101870006CC12AC18B3B910508F4A2C0803C910544
+:1018800008F422C1FC01EE0FFF1FE456F040E7C050
+:10189000811530E2930758F4811541E0940708F070
+:1018A00054C1803F910508F40FC1906508958115DA
+:1018B00020E3920708F0D6C0FC01FF70EE0FFF1F77
+:1018C000E45EFE4FCCC0811535E5930708F044C0B7
+:1018D000811544E5940708F0DFC0811522E59207E1
+:1018E00010F5811531E5930708F0C2C09C0154E062
+:1018F000369527955A95E1F7922F9370482F4370AC
+:1019000021E030E002C0220F331F4A95E2F73C6825
+:10191000392B8F708695869540E2849FC0011124F3
+:10192000822B932B0895AC0143705527282F2695C1
+:1019300026958115934508F0A0C081E090E002C093
+:10194000880F991F4A95E2F740E2249F90011124E5
+:10195000822B932B9C6808958F3240E7940790F474
+:101960008F3120E7920708F0A2C0811536E5930772
+:1019700008F497C09C0130562115304108F0A4C0EE
+:101980009F7093C0803320E7920709F497C008F452
+:1019900092C0813340E7940709F493C082339047A3
+:1019A00009F092C080E093ED0895853A910509F41D
+:1019B0008EC0863A910509F08DC082E890E40895C2
+:1019C000883A910509F489C0893A910509F488C0DB
+:1019D0008A3A910509F487C08B3A910509F486C0CB
+:1019E0008C3A910509F485C08D3A910509F484C0BB
+:1019F000803B910509F483C08E3A910509F482C0B9
+:101A00008F3A910509F481C0813B910509F480C0AA
+:101A1000823B910509F47FC0833B910509F47EC0A8
+:101A2000843B910509F47DC0853B910509F47CC098
+:101A3000863B910509F47BC0873B910509F47AC088
+:101A4000883B910509F479C0893B910509F478C078
+:101A50008A3B910509F477C080E094E4089585916C
+:101A6000949108959927906C08959F70906A0895B5
+:101A7000982F8827816F906A089581E090E002C0D6
+:101A8000880F991F4A95E2F740E2249F90011124A4
+:101A9000822B932B9A680895982F8827846F906AD9
+:101AA00008958F719927982F8827906208958F51F4
+:101AB0009047946D089580E091ED089580E090ED59
+:101AC000089580E092ED089580E090E0089581E827
+:101AD00090E4089583E890E4089582EE94E40895F4
+:101AE00089EE94E408958AEE94E4089585EB94E4F5
+:101AF000089586EB94E4089587EB94E408958CECC4
+:101B000094E408958DEC94E4089583E895E40895B1
+:101B10008AE895E4089582E995E4089584E995E4D6
+:101B2000089581E296E4089583E296E4089584E2BC
+:101B300096E4089585E296E4089586E296E4089591
+:101B400087E296E408958AE296E4089580E090E0C2
+:101B5000089526E4829FC0011124FC012EE0729FAB
+:101B6000E00DF11D1124E60FF11DEE0FFF1FE25DE8
+:101B7000FE4F8591949108958238910549F1B0F412
+:101B80008133910509F459C048F48932910509F46B
+:101B90004FC08A32910509F455C0089585339105E7
+:101BA00009F441C08933910599F00895833E910568
+:101BB00031F138F4803E910591F0823E9105A9F013
+:101BC0000895863E910501F1873E910539F108950A
+:101BD0002091F70120FD3BC021FD39C0089580917F
+:101BE000F70180FF34C089E341C08091F70182FF93
+:101BF00030C08091F70184FD2EC083EE37C0809104
+:101C0000F70182FD26C0F5CF8091F70183FF25C043
+:101C10008091F70184FD1FC087EE28C08091F701F5
+:101C200083FD1BC0F5CF8091F70185FD18C019C059
+:101C30008091F70185FD15C012C08091F70186FDE6
+:101C400012C013C08091F70186FD0FC00CC080EE5A
+:101C50000DC082EE0BC080E009C086EE07C089E2AD
+:101C600005C085E303C08AE201C081E390E00895E6
+:101C70000C94C309E82FF0E0ED5DFE4F8081E82F62
+:101C8000EF70F0E082958F7021E030E0A90102C092
+:101C9000440F551F8A95E2F740A308950F931F93B1
+:101CA000CF93DF93C4E0D0E001E010E0FE01ED5DF2
+:101CB000FE4F8081E82FEF70F0E021A182958F70B8
+:101CC000A80102C0440F551F8A95E2F7CA01822B72
+:101CD00081A38C2F0E943A0E219740F78DE090E06F
+:101CE00061E070E0FC01EB5EFE4F2081E22FEF70BF
+:101CF000F0E042A122952F70DB0102C0AA0FBB1FAA
+:101D00002A95E2F79D01242B22A3019758F7DF9132
+:101D1000CF911F910F9108950F931F93CF93DF934E
+:101D200085B7806885BF85B7806885BFC4E0D0E08F
+:101D300001E010E0FE01ED5DFE4F8081E82FEF70C5
+:101D4000F0E021A182958F70A80102C0440F551FB9
+:101D50008A95E2F7CA01822B81A38C2F0E943A0E4A
+:101D6000219740F78DE090E061E070E0FC01EB5ED0
+:101D7000FE4F2081E22FEF70F0E042A122952F70FC
+:101D8000DB0102C0AA0FBB1F2A95E2F79D01242B9D
+:101D900022A3019758F7DF91CF911F910F910C94D7
+:101DA000FF0BCF92DF92EF92FF920F931F93CF938F
+:101DB000DF930EE511E07801C4E0CC24C394D12C6C
+:101DC000D5E08C2F0E943A0E8DE090E040E050E08C
+:101DD000FC01EB5EFE4F6081E62FEF70F0E020A18A
+:101DE00030E062956F7002C0359527956A95E2F7ED
+:101DF00020FD09C09601082E02C0220F331F0A944D
+:101E0000E2F7422B532B019718F7D7019E918E9141
+:101E10007D018417950721F04D935C93D0930001C9
+:101E20008C2F0E943A0EC15060F68091000187FD10
+:101E30002FC09091E60190FF10C0282F082E000CB3
+:101E4000330B3F938F938FE892E09F938F930E9481
+:101E5000B0090F900F900F900F908091000181506A
+:101E60008093000187FD07C0EFE9FFE03197F1F7AC
+:101E700000C000000DC0E8E6F1E084E591E0D80183
+:101E80003E912E918D01329322938A179B07B9F7C9
+:101E90000E94010C81E0DF91CF911F910F91FF9083
+:101EA000EF90DF90CF900895E82FF0E0EE0FFF1F46
+:101EB000E25AFE4F808191810895EF92FF920F9335
+:101EC0001F93CF93DF938091E60180FF04C080E7EA
+:101ED00092E00E9417090EE511E0C0E0D0E088E52D
+:101EE000E82E82E0F82E8091E60180FF13C0F80111
+:101EF000808191810E9481299F938F93DF93CF935B
+:101F0000FF92EF920E94B0090F900F900F900F90E8
+:101F10000F900F9021960E5F1F4FC530D10519F716
+:101F2000DF91CF911F910F91FF90EF9008950F9344
+:101F30001F93CF9308E611E0C0E0F80192918291DF
+:101F40008F010E946329C80FF1E00E351F07A9F722
+:101F50008C2FCF911F910F91089521B3342F30957D
+:101F6000232331B3432B3FB7F894FC01680F791F4B
+:101F7000E617F70789F0819198E041BB000000C0A7
+:101F800087FF21BB880F000000C000C000C021BB3C
+:101F900000C09A9591F7ECCF3FBF089520B3242B52
+:101FA00020BB9B01220F331F620F731F0E94AD0FD6
+:101FB00087EC90E00197F1F700C00000089540E23F
+:101FC0000C94CE0FAF92BF92CF92DF92EF92FF921E
+:101FD0000F931F93CF93DF936C01790150E0FA01C7
+:101FE000EE55FA4F44918FEF90E0FC01E61BF109AA
+:101FF000EE55FA4FE491E09509F495C0C42FD0E076
+:102000008E1B91098C9F90018D9F300D9C9F300DF0
+:102010001124E32F8CE3A82EB12CC601B5010E9438
+:102020007736DC016230710509F446C0D0F46115E1
+:10203000710599F16130710509F079C0C31BD109AF
+:10204000B501681B790BC69FC001C79F900DD69F35
+:10205000900D1124B5010E947736032F060F142F1F
+:1020600067C06430710509F44BC0B8F16530710583
+:1020700009F05DC0C31BD109B501681B790BC69F70
+:10208000C001C79F900DD69F900D1124B5010E94ED
+:102090007736132FE32FE60F44C0C31BD109CC9D25
+:1020A000C001CD9D900DDC9D900D1124B5010E94C5
+:1020B0007736132F160F35C0C31BD109CA9FC00135
+:1020C000CB9F900DDA9F900D1124B5010E947736B9
+:1020D000142F032FE32FE60F2BC0C31BD109B5012B
+:1020E000681B790BC69FC001C79F900DD69F900DAE
+:1020F0001124B5010E947736132F160F032F0FC03E
+:10210000C31BD109CA9FC001CB9F900DDA9F900DD0
+:102110001124B5010E947736032F060F132FE42FE9
+:1021200007C0042F05C0E42F142F042F01C0E0E0E6
+:10213000D70111960C9311971C931296EC93DF9193
+:10214000CF911F910F91FF90EF90DF90CF90BF90B4
+:10215000AF90089587E090E00C94AD36AB01BC01E0
+:1021600087E090E00C94CB368091E60180FF08C0B8
+:1021700083E794E09F938F930E94B0090F900F9094
+:1021800083E08093F9018091FA01807884668F77EB
+:102190008093FA018CEC8093FB018093FC016091A9
+:1021A000F9017091FA018091FB019091FC010C946E
+:1021B000AE108091E60180FF08C08CE594E09F930B
+:1021C0008F930E94B0090F900F908091E60180FFDD
+:1021D0000FC08091F90181701F928F938FE394E07B
+:1021E0009F938F930E94B0090F900F900F900F90C4
+:1021F0008091E60180FF10C08091F90186958F7370
+:102200001F928F9384E294E09F938F930E94B00972
+:102210000F900F900F900F908091E60180FF19C0F2
+:102220008091F901881F8827881F9091FA01292F32
+:10223000220F822B97FB992790F99F938F938AE027
+:1022400094E09F938F930E94B0090F900F900F908E
+:102250000F908091E60180FF0EC08091FB011F92DC
+:102260008F9380EF93E09F938F930E94B0090F901C
+:102270000F900F900F908091E60180FF0EC080912B
+:10228000FC011F928F9386ED93E09F938F930E94A2
+:10229000B0090F900F900F900F9008958091F90161
+:1022A00080FF06C060E170E081E092E00C94DF0FF7
+:1022B000E3E0F2E0DF0111971C9211971C9210826B
+:1022C000339682E0E333F807A9F7ECCFE3E0F2E0DE
+:1022D000DF0111978C9311976C934083339692E0B2
+:1022E000E333F907A9F70C944E11EF92FF920F9385
+:1022F0001F93CF93DF9300D01F92CDB7DEB7182F77
+:10230000E92EF62E042F8091F9019091FA01A09107
+:10231000FB01B091FC018093FD019093FE01A0931D
+:10232000FF01B09300028091F90180FF1FC09E0160
+:102330002F5F3F4F812F9E2D0E94E20F8091FD0164
+:1023400010FB87F98093FD0116958091FE0180783E
+:10235000182BE0FA17F91093FE01F092FF01009399
+:1023600000024B8169818A810E9466110F900F9053
+:102370000F90DF91CF911F910F91FF90EF900895F3
+:102380000F931F93CF93DF93EC01062F142F90919F
+:10239000F90190FF65C0892F8E77823021F4CE013C
+:1023A0000E9475111BC0892F86958F732EE3280F0D
+:1023B0002F73243018F41091FC0110C0865C8F73C9
+:1023C000893060F4C92FCC1FCC27CC1FD091FA01E3
+:1023D0008D2F880FC82BD7FBDD27D0F98091F9010D
+:1023E000C0FB87F98093F901C6958091FA01807846
+:1023F000C82BD0FBC7F9C093FA010093FB011093DF
+:10240000FC016091F9017091FA018091FB019091BA
+:10241000FC010E94AE108091FC011F928F9380916D
+:10242000FB011F928F938091F901881F8827881FD5
+:102430009091FA01292F220F822B97FB992790F96F
+:102440009F938F9382ED92E09F938F930E94B009A8
+:102450008DB79EB708960FB6F8949EBF0FBE8DBF7E
+:10246000DF91CF911F910F910895E9EFF1E0208165
+:10247000221F2227221F3091FA01432F440F842F5D
+:10248000822B37FB992790F9089668E671E00E9445
+:102490008B36438162810C94C0112091F901221F77
+:1024A0002227221F3091FA01432F440F842F822BC1
+:1024B00037FB992790F9883091051CF4805A9E4F7C
+:1024C00005C0089768E671E00E948B364091FC01D8
+:1024D0006091FB010C94C0116091FB01862F90E08C
+:1024E000883F910514F4685F01C06FEF8091F90196
+:1024F000881F8827881F9091FA01292F220F97FBA8
+:10250000992790F94091FC01822B0C94C0116091A5
+:10251000FB01862F90E0089714F0685001C060E03E
+:102520008091F901881F8827881F9091FA01292F2F
+:10253000220F97FB992790F94091FC01822B0C9474
+:10254000C0114091FC01842F90E0883F910514F464
+:10255000485F01C04FEF8091F901881F8827881FCD
+:102560009091FA01292F220F97FB992790F96091FA
+:10257000FB01822B0C94C0114091FC01842F90E050
+:10258000089714F0485001C040E08091F901881F7D
+:102590008827881F9091FA01292F220F97FB9927EE
+:1025A00090F96091FB01822B0C94C011809179010C
+:1025B00081110FC081E08093790189E080939100BF
+:1025C0008FB7F89493E09093990090ED90939800D2
+:1025D0008FBF089580917100826080937100809117
+:1025E000E60180FF08C081EC92E09F938F930E94E8
+:1025F000B0090F900F900895809171008D7F8093A6
+:1026000071008091E60180FF08C08FEA92E09F93FD
+:102610008F930E94B0090F900F9008959091F90147
+:1026200090FF4BC09178811102C0926007C0883141
+:1026300010F09E6203C08F73880F982B9093F9015E
+:102640006091F9017091FA018091FB019091FC0178
+:102650000E94AE108091F90186958F731F928F931F
+:1026600085E293E09F938F930E94B0098091F901D6
+:10267000982F9E770F900F900F900F90923019F433
+:102680000E94FC1207C08695825C8F73863110F41D
+:102690000E94EA128091F901881F8827881F909173
+:1026A000FA01292F220F97FB992790F94091FC01FD
+:1026B0006091FB01822B0C94C01108958091E6017A
+:1026C00081608093E6018FEB93E09F938F930E944C
+:1026D000B00981E080937A018091E6010F900F901C
+:1026E00080FF08C089EA93E09F938F930E94B0090E
+:1026F0000F900F900E942E2C811110C08091E60146
+:1027000080FF08C081E893E09F938F930E94B009F7
+:102710000F900F900E940F2C0E94B4100E94AA10DC
+:102720006093F9017093FA018093FB019093FC018F
+:102730006E77C1F48091E60180FF08C088E393E0E2
+:102740009F938F930E94B0090F900F900E94B41036
+:102750000E94AA106093F9017093FA018093FB0123
+:102760009093FC010E94D9100E94D6128091F90129
+:1027700080FF04C086958F730C940E13089580918A
+:10278000F90186958F738F5F883108F081E00C9492
+:102790000E138091F901982F909590FB80F980930A
+:1027A000F9016091F9017091FA018091FB0190911A
+:1027B000FC010E94AE108091F90181701F928F93ED
+:1027C00087EF92E09F938F930E94B0098091F90167
+:1027D0000F900F900F900F9080FF04C086958F731D
+:1027E0000C940E130E94FC122FEF80E792E0215010
+:1027F00080409040E1F700C000000C944E11CF9350
+:10280000C82F80917701909178010E94252AEC2FA2
+:10281000F0E0E256FB4FE491F0E08E179F0718F1CD
+:102820000E94192A9093780180937701E0917601B4
+:10283000F0E0EE55FB4F44918091F901881F882705
+:10284000881F9091FA01292F220F97FB992790F961
+:102850006091FB01822B0E9475118091760190E0BE
+:10286000019680937601CF910895CF93C82F8091E0
+:102870007401909175010E94252AEC2FF0E0E55635
+:10288000FB4FE491F0E08E179F07E8F00E94192AB1
+:1028900090937501809374014091FC016091FB015C
+:1028A00080917201909173010E9475118091720163
+:1028B00090917301019668E671E00E9477369093DB
+:1028C000730180937201CF910895CF92DF92FF92AE
+:1028D0000F931F93CF93DF93F82E80917001909107
+:1028E00071010E94252AEF2DE695F0E0E556FB4F99
+:1028F000E491F0E08E179F07C0F10E94192A90938F
+:1029000071018093700101E012E0C0E0D0E088E640
+:10291000C82EDD24D39480916E0190916F018C0FAD
+:102920009D1FB6010E94773698014091FC0160918D
+:10293000FB010E94E20F66960D5F1F4FC03681E0DB
+:10294000D80749F70E944E1180916E0190916F0156
+:10295000F0FE06C0019668E671E00E94773601C07D
+:10296000019790936F0180936E01DF91CF911F913A
+:102970000F91FF90DF90CF9008958F929F92AF922A
+:10298000BF92CF92DF92EF92FF920F931F93CF935C
+:10299000DF93C82F80FF03C0DD24DA9402C0DD245A
+:1029A000D39480916C0190916D010E94252AC69567
+:1029B000EC2FF0E0E856FB4FE491F0E08E179F0714
+:1029C00008F466C00E94192A90936D0180936C01EF
+:1029D00091E0E92E92E0F92E03E012E0C0E0D0E0B1
+:1029E00027E0822E912CF80131971082F701108296
+:1029F000F801108287E0A82EB12CC12C80916B01C8
+:102A00008C0D87FD805F082E000C990BC817D90725
+:102A1000E9F42091FC012A9DC0012B9D900D112409
+:102A2000B4010E948B36462F8091F901881F8827B8
+:102A3000881F9091FA01592F550F97FB992790F90C
+:102A400097016091FB01852B0E94E20FCD0CF1E014
+:102A5000AF1AB10899F6219683E0E80EF11C0D5FDC
+:102A60001F4FC031D10509F0BECF0E944E11809199
+:102A70006B0191E0D91206C0811102C08FE006C03F
+:102A8000815004C090E001968F70992780936B016C
+:102A9000DF91CF911F910F91FF90EF90DF90CF903A
+:102AA000BF90AF909F908F9008959F92AF92BF92EA
+:102AB000CF92DF92EF92FF920F931F93CF93DF930A
+:102AC000CDB7DEB7E0970FB6F894DEBF0FBECDBF2F
+:102AD000182F8091690190916A010E94252AE12FA7
+:102AE000F0E0EB56FB4FE491F0E08E179F0708F4FF
+:102AF00093C00E94192A90936A0180936901CE01C4
+:102B000001967C015E0193E0A90EB11CC12CD12C71
+:102B10008701F50131971082F7011082F5011082CB
+:102B2000912C9091010180916801999E800D112452
+:102B300087FD04C080311CF08FE001C080E0082ECA
+:102B4000000C990BC816D906A1F48091F901881FD1
+:102B50008827881F9091FA01592F550F97FB9927C5
+:102B600090F997014091FC016091FB01852B0E9437
+:102B7000E20F9394F7E09F12D4CF8FEFC81AD80AD0
+:102B800093E0E90EF11CE3E0AE0EB11CF0E1CF16CC
+:102B9000D10409F0BECFA3E0B2E089E090E0FC01EF
+:102BA000EF70FF279D0121503109AF01440F551FE0
+:102BB000E40FF51FBF01600F711FFB014181F90197
+:102BC000408321503109FB014081F9014083FB0121
+:102BD00022812C93019613968931910501F70E9469
+:102BE0004E119091010180916801913049F48A3F22
+:102BF0002CF489EF809368018FEF08C081500AC0E0
+:102C000087313CF086E18093680181E08093010187
+:102C100003C08F5F80936801E0960FB6F894DEBF23
+:102C20000FBECDBFDF91CF911F910F91FF90EF901D
+:102C3000DF90CF90BF90AF909F9008951F920F921A
+:102C40000FB60F9211242F933F934F935F936F937F
+:102C50007F938F939F93AF93BF93EF93FF93809155
+:102C6000F90186958F739EE3980F9F73943020F43B
+:102C700082500E94FF1323C09AE3980F9F739330F2
+:102C800020F486500E9435141AC097E3980F9F7362
+:102C9000963020F489500E94651411C091E3980F7A
+:102CA0009F73963020F48F500E94BD1408C09BE2A1
+:102CB000980F9F73933018F485510E945515FF911A
+:102CC000EF91BF91AF919F918F917F916F915F91A4
+:102CD0004F913F912F910F900FBE0F901F9018951D
+:102CE0008091860108959FB7F89410927D019FBF4F
+:102CF00090913502943009F057C09091E9009F708F
+:102D00003091EC00232F217030FD20E8922B24E03D
+:102D10002093E9002091EB0020FF43C02091EE00BA
+:102D200027FF3FC020917B01222321F02091E80062
+:102D300025FF37C010927B0126E03091E80035FD79
+:102D400015C030913502343061F53091EB0035FD1E
+:102D500028C0215021F481E080937B0122C0EFE95B
+:102D6000FFE03197F1F700C00000E7CF8093F1005A
+:102D70008091E80085FD0AC08091E80080FFFCCFCB
+:102D80008091E8008E778093E80006C08FB7F894B2
+:102D900021E020937D018FBF9F709093E90080E038
+:102DA00008959F709093E9008FEF0895CF93DF937C
+:102DB00000D01F92CDB7DEB79C01809135028430E0
+:102DC00019F593E099833B832A839093E9008FEF71
+:102DD0009091E800815095FD06C095ED9A95F1F728
+:102DE00000008111F5CF8091E80085FF0DC040E023
+:102DF00050E063E070E0CE0101960E94731980916B
+:102E0000E8008E778093E8000F900F900F90DF918D
+:102E1000CF910895CF93DF9300D01F92CDB7DEB747
+:102E200020913502243021F522E029839B838A8377
+:102E300083E08093E9008FEF9091E800815095FD49
+:102E400006C095ED9A95F1F700008111F5CF8091BC
+:102E5000E80085FF0DC040E050E063E070E0CE0187
+:102E600001960E9473198091E8008E778093E800A4
+:102E70000F900F900F90DF91CF9108959C0180915A
+:102E800035028430F9F482E08093E9009FEF80916D
+:102E9000E800915085FD06C085ED8A95F1F70000A8
+:102EA0009111F5CF8091E80085FF0CC040E050E023
+:102EB00065E070E0C9010E9473198091E8008E7787
+:102EC0008093E8000895CF93DF93EC018091350261
+:102ED000843039F581E08093E9008FEF9091E8002C
+:102EE000815095FD06C095ED9A95F1F7000081118E
+:102EF000F5CF8091E80085FF14C040E050E068E025
+:102F000070E0CE010E9473198091E8008E77809363
+:102F1000E80088E0FE01AEE7B1E001900D928A95ED
+:102F2000E1F7DF91CF91089587EC96E00E941709B1
+:102F300080913402811109C00E94041B0E94611B10
+:102F40008091E20084608093E200089583EC96E033
+:102F50000E9417091092340208958FEB96E00C94AA
+:102F600017098BEB96E00C94170987EB96E00E940B
+:102F700017090C94DC2920917C012F5F822F62E3DA
+:102F80000E946B36992319F020937C0108951092CA
+:102F90007C0180917D01882371F18091350284301C
+:102FA00041F58091E9008F702091EC00922F917093
+:102FB00020FD90E8892B94E09093E9009091EB003C
+:102FC00090FF14C09091EE0097FF10C09091E80020
+:102FD00095FF03C01092F100F9CF9091E80090FFA7
+:102FE00005C09091E8009E779093E8008F708093E1
+:102FF000E90010927D01089542E061EC81E00E94B9
+:103000007D1A42E061EC82E00E947D1A42E061ECB0
+:1030100083E00E947D1A42E261EC84E00C947D1A08
+:1030200080913702833009F453C030F4813071F05D
+:10303000823009F48CC008958A3009F478C08B304E
+:1030400009F45EC0893009F09AC020C08091360230
+:10305000813A09F094C08091E800877F8093E8006E
+:1030600080913A0290913B02892B21F468E08EE72F
+:1030700091E003C060E080E090E070E00E94BE1943
+:103080008091E8008B778093E80008958091360264
+:10309000813209F074C080913A0290913B02892BF1
+:1030A00009F06DC08091E800877F8093E8008091EF
+:1030B000E80082FD05C0809135028111F8CF5FC024
+:1030C0008091F100809386018091E8008B7753C056
+:1030D00080913602813A09F052C080913A02909173
+:1030E0003B02892B09F04BC08091E800877F8093D9
+:1030F000E8008091E80080FFFCCF80910C0136C091
+:10310000809136028132D9F580913A0290913B024A
+:10311000892BA9F58091E800877F8093E8000E94C1
+:10312000B21A8091380280930C010C94362380915E
+:103130003602813221F58091E800877F8093E80094
+:103140000E94B21A8091390280938701089580917C
+:103150003602813AA1F48091E800877F8093E800ED
+:103160008091E80080FFFCCF809187018093F1007F
+:103170008091E8008E778093E8000C94B21A08954D
+:1031800084B7877F84BF0FB6F894A89580916000BC
+:10319000886180936000109260000FBE80E8809389
+:1031A0006100109261000E94971E0E94041B0E9401
+:1031B000611B8091E20084608093E20083E796E1E6
+:1031C0000E945E2978940E94EB1D0E94991E82E065
+:1031D00091E00E94061E86EA96E00E9417098091FF
+:1031E0003502853089F482EA96E00E9417090E9430
+:1031F0009B2980913302882391F30E94CB29882355
+:1032000071F30E945D19EBCF0E94C11EE8CF292FF8
+:10321000332723303105C9F060F42130310581F0C6
+:103220002230310509F041C084E790E029EE36E014
+:1032300040C021323105E1F02232310531F135C093
+:1032400082E190E02DE537E034C099278130910587
+:1032500049F028F0029749F5EBECF6E005C0E5EE01
+:10326000F6E002C0EBEDF6E0849190E09F0121C012
+:103270006430D8F4E62FF0E0EE0FFF1FEC5CFE4F59
+:103280002081318189E090E014C0643070F470E0F6
+:10329000FB01EE0FFF1FE45DFE4F20813181FB013A
+:1032A000E85DFE4F808190E004C080E090E020E087
+:1032B00030E0FA0131832083089580E189BD82E105
+:1032C00089BD09B400FEFDCF8091D8008F7D809329
+:1032D000D8008091E00082608093E0008091E0005F
+:1032E00081FDFCCF0895CF92DF92EF92FF920F9372
+:1032F0001F93CF93DF93EC018B016A010E94D11AD7
+:10330000811133C0C114D10439F0F601808191815B
+:10331000081B190BC80FD91FE12CF12C0115110541
+:1033200019F18091E80085FD16C08091E8008E7744
+:103330008093E800C114D10449F0F60180819181A5
+:10334000E80EF91EF182E08285E00FC00E94D11ADA
+:10335000882321F30AC089918093F100015011095B
+:10336000FFEFEF1AFF0ADACF80E0DF91CF911F91D4
+:103370000F91FF90EF90DF90CF90089520913C0245
+:1033800030913D022617370748F06115710539F471
+:103390002091E8002E772093E80001C0B901FC01DC
+:1033A00020E06115710579F1809135028823F1F1F2
+:1033B0008530F1F18091E80083FD3CC08091E80008
+:1033C00082FD2EC08091E80080FFEBCF2091F300BA
+:1033D0008091F20090E0922B6115710551F08830D8
+:1033E000910538F421912093F10061507109019603
+:1033F000F3CF21E0089709F020E08091E8008E7774
+:103400008093E800CECF2111CFCF0AC08091350242
+:10341000882361F0853061F08091E80083FD0AC067
+:103420008091E80082FFF2CF80E0089582E0089565
+:1034300083E0089581E0089520913C0230913D029F
+:103440002617370748F06115710539F42091E80017
+:103450002E772093E80001C0B901FC0120E061153E
+:10346000710591F180913502882309F440C08530BF
+:1034700009F43FC08091E80083FD3DC08091E800E1
+:1034800082FD2FC08091E80080FFE9CF2091F300FA
+:103490008091F20090E0922B6115710559F088300F
+:1034A000910540F424912093F10031966150710907
+:1034B0000196F2CF21E0089709F020E08091E80022
+:1034C0008E778093E800CBCF2111CCCF0AC08091BA
+:1034D0003502882361F0853061F08091E80083FD3A
+:1034E0000AC08091E80082FFF2CF80E0089582E078
+:1034F000089583E0089581E00895982F973068F546
+:103500009093E900981739F07091EC002091ED004C
+:103510005091F00003C0242F762F50E021FD02C00F
+:103520009F5FECCF3091EB003E7F3093EB0030910A
+:10353000ED003D7F3093ED003091EB003160309332
+:10354000EB007093EC002093ED005093F00020917D
+:10355000EE0027FDE5CF80E008958F708093E900AD
+:1035600081E008958091360287FF11C08091E800C4
+:1035700082FD05C0809135028111F8CF11C0809184
+:10358000E8008B770BC080913502882349F0809149
+:10359000E80080FFF8CF8091E8008E778093E80004
+:1035A00008952091E4003091E50095E64091EC000B
+:1035B000842F817040FF23C08091E80080FD1DC0F2
+:1035C00080913502882399F0853099F08091EB0045
+:1035D00085FD11C04091E4005091E50024173507A6
+:1035E00029F3915011F09A01E1CF84E0089582E02F
+:1035F000089583E0089581E0089580E00895409162
+:10360000E80042FFDDCF08950E94721B0E947A1BE2
+:10361000E0EEF0E0808181608083E8EDF0E0808181
+:103620008F77808319BCA7EDB0E08C918E7F8C934F
+:1036300080818F7E80831092340208950F931F93B0
+:10364000CF93DF930E94721B0E947A1BC8EDD0E0DB
+:1036500088818F77888388818068888388818F7D3F
+:10366000888319BC109235021092310210923302F5
+:103670001092320200EE10E0F80180818B7F80838F
+:1036800088818160888342E060E080E00E947D1A4A
+:10369000E1EEF0E080818E7F8083E2EEF0E08081D9
+:1036A00081608083808188608083F80180818E7F43
+:1036B0008083888180618883DF91CF911F910F91F2
+:1036C0000895E8EDF0E080818F7E8083E7EDF0E003
+:1036D00080818160808384E082BF81E080933402B6
+:1036E0000C941E1BE8EDF0E080818E7F80831092A9
+:1036F000E20008951092DA001092E10008951F92FE
+:103700000F920FB60F9211242F933F934F935F9315
+:103710006F937F938F939F93AF93BF93EF93FF9399
+:103720008091E10082FF0BC08091E20082FF07C020
+:103730008091E1008B7F8093E1000E94BB17809114
+:10374000DA0080FF1FC08091D80080FF1BC08091ED
+:10375000DA008E7F8093DA008091D90080FF0DC05F
+:1037600080E189BD82E189BD09B400FEFDCF81E021
+:10377000809335020E94941705C019BC109235023F
+:103780000E94A6178091E10080FF19C08091E2009D
+:1037900080FF15C08091E2008E7F8093E2008091CF
+:1037A000E20080618093E2008091D8008062809383
+:1037B000D80019BC85E0809335020E94B117809132
+:1037C000E10084FF30C08091E20084FF2CC080E1E2
+:1037D00089BD82E189BD09B400FEFDCF8091D8008A
+:1037E0008F7D8093D8008091E1008F7E8093E100EF
+:1037F0008091E2008F7E8093E2008091E200816000
+:103800008093E20080913102882311F084E007C0A8
+:103810008091E30087FD02C081E001C083E08093D6
+:1038200035020E94B5178091E10083FF29C0809185
+:10383000E20083FF25C08091E100877F8093E10053
+:1038400082E080933502109231028091E1008E7FF8
+:103850008093E1008091E2008E7F8093E20080916E
+:10386000E20080618093E20042E060E080E00E943C
+:103870007D1A8091F00088608093F0000E94AD175F
+:10388000FF91EF91BF91AF919F918F917F916F9138
+:103890005F914F913F912F910F900FBE0F901F900E
+:1038A00018951F920F920FB60F9211242F933F93EA
+:1038B0004F935F936F937F938F939F93AF93BF9338
+:1038C000CF93DF93EF93FF93C091E900CF70809186
+:1038D000EC00D82FD17080FDD0E81092E9008091E3
+:1038E000F000877F8093F00078940E94951C1092DE
+:1038F000E9008091F00088608093F000CD2BCF70BC
+:10390000C093E900FF91EF91DF91CF91BF91AF910B
+:103910009F918F917F916F915F914F913F912F91E7
+:103920000F900FBE0F901F9018951F93CF93DF93AA
+:10393000CDB7DEB7AA970FB6F894DEBF0FBECDBFE6
+:10394000E6E3F2E08091F100819322E0EE33F207AA
+:10395000C9F70E9410188091E80083FF24C180916C
+:10396000360290913702492F50E04A30510508F055
+:103970001AC1FA01E15AFF4F0C949F36803881F04A
+:10398000823809F010C180913A028F708093E9006B
+:103990008091EB0085FB882780F91092E90006C032
+:1039A0008091320290913302911182609091E800EF
+:1039B000977F9093E8008093F1001092F100C8C0C7
+:1039C000282F2D7F09F0EFC0882319F0823061F095
+:1039D000EAC080913802813009F0E5C0933009F0E7
+:1039E00080E0809333022BC080913802811127C080
+:1039F00080913A028F7009F4D6C08093E90020913B
+:103A0000EB0020FF1CC0933021F48091EB0080621A
+:103A100014C09091EB0090619093EB0021E030E0B6
+:103A2000A90102C0440F551F8A95E2F74093EA00AE
+:103A30001092EA008091EB0088608093EB00109276
+:103A4000E9008091E800877F86C08111ACC01091A9
+:103A500038021F778091E3008078812B8093E30008
+:103A60008091E800877F8093E8000E94B21A8091DD
+:103A7000E80080FFFCCF8091E30080688093E30042
+:103A8000111102C082E001C083E0809335028BC037
+:103A90008058823008F087C08091380290913902B6
+:103AA0008C3D53E0950779F583E08A838AE2898328
+:103AB0004FB7F894DE01139620E03EE051E2E32F89
+:103AC000F0E050935700E49120FF03C0E295EF70BF
+:103AD0003F5FEF708E2F90E0EA3010F0C79601C084
+:103AE000C0968D939D932F5F243149F74FBF8091EE
+:103AF000E800877F8093E8006AE270E0CE010196DB
+:103B00000E94BE1914C0AE014F5F5F4F60913A0230
+:103B10000E940719BC01892B09F445C09091E80067
+:103B2000977F9093E80089819A810E941C1A809166
+:103B3000E8008B778093E80036C08038A1F580914B
+:103B4000E800877F8093E800809131028093F10044
+:103B50008091E8008E778093E8000E94B21A23C01B
+:103B6000811121C0809138029091390299270297E2
+:103B7000D4F48091E800877F8093E8008091380238
+:103B8000809331020E94B21A80913102811106C0E5
+:103B90008091E30087FD02C081E001C084E0809352
+:103BA00035020E94FC178091E80083FF0AC08091D3
+:103BB000E800877F8093E8008091EB00806280932B
+:103BC000EB00AA960FB6F894DEBF0FBECDBFDF9113
+:103BD000CF911F910895CF93809135028823A1F052
+:103BE000C091E900CF709091EC00892F817090FD19
+:103BF00080E8C82B1092E9008091E80083FD0E94C4
+:103C0000951CCF70C093E900CF91089590938D01DA
+:103C100080938C010895E0918C01F0918D01309793
+:103C200021F00190F081E02D099480E00895EF9259
+:103C3000FF921F93CF93DF93F82E192FE0918C0101
+:103C4000F0918D013097A9F10280F381E02D099563
+:103C50008091E60182FF2DC080FF04C08AE598E0D4
+:103C60000E941709CF2DD12F18E084E5E82E88E0B7
+:103C7000F82E8091E60180FF0BC088811F928F9300
+:103C8000FF92EF920E94B0090F900F900F900F904B
+:103C9000115021961111EDCF8091E60180FF09C0EE
+:103CA00082E598E0DF91CF911F91FF90EF900C9407
+:103CB0001709DF91CF911F91FF90EF900895E09148
+:103CC0008C01F0918D01309721F00480F581E02D79
+:103CD0000994089520918A0130918B0128173907A2
+:103CE00071F090938B0180938A01E0918C01F091A7
+:103CF0008D01309721F00680F781E02D0994089519
+:103D000020918801309189012817390771F090932B
+:103D1000890180938801E0918C01F0918D013097A9
+:103D200021F00084F185E02D0994089508950C9404
+:103D3000961E0E94102A0E948C0E0E94DE2A0E946B
+:103D400057340C945E13CF93DF931F92CDB7DEB739
+:103D50009091E60192FF10C090FF0EC01F928F93CA
+:103D60002CE638E03F932F9389830E94B0090F908F
+:103D70000F900F900F9089810F90DF91CF910C944D
+:103D8000380E4F925F927F928F929F92AF92BF9226
+:103D9000CF92DF92EF92FF920F931F93CF93DF9317
+:103DA00000D000D01F92CDB7DEB70E94D10E99E9A6
+:103DB000C92E91E0D92E04E010E0AA24A394B12CDE
+:103DC000702E802F0E94540F4C01F60152904290A9
+:103DD0006F014826592641145104A1F401501109DC
+:103DE00078F78FEF89838A831B820E94192A81606A
+:103DF000782F9D838C8349815A816B818D810E94AC
+:103E0000711F38C08091E60181FD0E945D0F2DE099
+:103E100030E07501022E02C0EE0CFF1C0A94E2F79E
+:103E2000C2018E219F21892B09F129837A828E205C
+:103E30009F2091E0892809F490E09B830E94192A31
+:103E40008160782F9D838C8349815A816B818D811C
+:103E50000E94711F000F111FF801E157FE4F808172
+:103E60009181E826F926F182E08204C021503109CF
+:103E700080F6B4CF0E94592E0E940B1E90918E01A5
+:103E80008917D1F00E940B1E80938E010F900F9026
+:103E90000F900F900F90DF91CF911F910F91FF9096
+:103EA000EF90DF90CF90BF90AF909F908F907F90DA
+:103EB0005F904F900C94A31E0F900F900F900F9057
+:103EC0000F90DF91CF911F910F91FF90EF90DF90B6
+:103ED000CF90BF90AF909F908F907F905F904F90CA
+:103EE0000895CF93DF93CDB7DEB72B970FB6F89435
+:103EF000DEBF0FBECDBF4F83588769877A878B8718
+:103F0000DE01119686E0FD0111928A95E9F785E0C0
+:103F1000FE01379601900D928A95E1F749815A8109
+:103F20006B817C818D819E810E94CE252B960FB660
+:103F3000F894DEBF0FBECDBFDF91CF910895CF9330
+:103F4000C82F882309F4C1C0823859F40E940B1E7F
+:103F500081FDBBC089E30E94A9280E942F2989E323
+:103F60000CC0833879F40E940B1E80FDAEC083E53F
+:103F70000E94A9280E942F2983E50E94C628CF917C
+:103F80000C942F29843859F40E940B1E82FD9DC089
+:103F900087E40E94A9280E942F2987E4EECF8CEFA6
+:103FA0008C0F813A48F48C2F0E94023381118DC00E
+:103FB0008C2F0E94A928E3CF80E28C0F883048F430
+:103FC000C77081E001C0880FCA95EAF70E94E8280F
+:103FD000D6CF8BE58C0F833078F4C53A29F0C63AFA
+:103FE00031F083E890E005C081E890E002C082E80B
+:103FF00090E0CF910C946A1E88E58C0F833108F015
+:1040000064C0C83A39F1C93A41F1CA3A49F1CB3AE8
+:1040100051F1CC3A59F1CD3A61F1C03B69F1CE3A58
+:1040200071F1CF3A79F1C13B81F1C23B89F1C33BD8
+:1040300091F1C43B99F1C53BA1F1C63BA9F1C73B46
+:10404000B1F1C83BB9F1C93BC1F1CA3BC9F180E04C
+:1040500090E038C082EE90E035C089EE90E032C04A
+:104060008AEE90E02FC085EB90E02CC086EB90E0CC
+:1040700029C087EB90E026C08CEC90E023C08DEC4B
+:1040800090E020C083E891E01DC08AE891E01AC06A
+:1040900082E991E017C084E991E014C081E292E0E6
+:1040A00011C083E292E00EC084E292E00BC085E290
+:1040B00092E008C086E292E005C087E292E002C08A
+:1040C0008AE292E0CF910C94801ECF9108958823CC
+:1040D00009F44BC0823859F40E940B1E81FF45C081
+:1040E00089E30E94A9280E942F2989E30CC0833804
+:1040F00071F40E940B1E80FF38C083E50E94A9283E
+:104100000E942F2983E50E94C6280C942F29843809
+:1041100059F40E940B1E82FF28C087E40E94A92840
+:104120000E942F2987E4EFCF9CEF980F913A58F324
+:1041300090E2980F983050F4877091E001C0990F89
+:104140008A95EAF7892F0E94EE28DFCF9BE5980F2A
+:10415000933020F480E090E00C946A1E885A8331FA
+:1041600020F480E090E00C94801E0895882321F0D4
+:104170000E94E8280C942F290895882321F00E949A
+:10418000EE280C942F2908958F929F92AF92BF92A0
+:10419000CF92DF92EF92FF920F931F93CF93DF9313
+:1041A0001F92CDB7DEB77C01C62E472FFC010581DB
+:1041B00002950F701281112321F079830E94052945
+:1041C000498149830E94A2284981882381F01123D3
+:1041D00071F080E28C0D883050F082E00E948B28D4
+:1041E0000E94A22891E0D82ED926498101C0D12C65
+:1041F000E42FE295EF708E2F90E0FC01E759FF4F1E
+:104200000C949F36842F807F042F0F70882311F029
+:104210000295007F112389F0002309F488C180E210
+:104220008C0D883020F4802F0E94E82803C0802F56
+:104230000E94F8280E942F297AC18C2D0E946720A5
+:10424000002309F4AAC180E28C0D883020F4802F6D
+:104250000E94EE2803C0802F0E94FE280E942F2972
+:104260009CC1942F907F842F8F70903211F0829593
+:10427000807FCC2021F0F1E0CF16A1F01DC01123EA
+:1042800039F0002319F1013009F50E94182985C180
+:10429000002319F0013009F480C189830E941B2991
+:1042A000898103C1112321F0063008F076C10EC0C8
+:1042B000053008F072C1F9C0112359F0002331F024
+:1042C000F701958190FF33C19F7095830E94B620BE
+:1042D00064C1002309F4E9C030C1842F8695869516
+:1042E000837019F0813061F058C1112321F08C2DB9
+:1042F000942F937002C080E090E00E946A1E4DC12E
+:10430000112321F08C2D942F937002C080E090E057
+:104310000E94801E42C18C2D112319F00E94DF2CB7
+:1043200002C00E94472D0E94CC2D37C1842F83707C
+:1043300009F04DC0111131C12C2D22952695277001
+:10434000220F220F6C2D6F70862F90E0A0E0B0E05E
+:104350004C015D01022E04C0880C991CAA1CBB1CD8
+:104360000A94D2F7C4FE12C08FE090E0A0E0B0E063
+:1043700004C0880F991FAA1FBB1F2A95D2F7BC0142
+:10438000CD01609570958095909503C060E070E0D8
+:10439000CB01242F269526952370223051F080F4EE
+:1043A000682979298A299B29213071F00E941727D1
+:1043B000F4C0682979298A299B290E943327EDC0F6
+:1043C0000E941727C501B4010E94FB26E6C01123F5
+:1043D00019F0842F817001C08695882309F4DDC00F
+:1043E0002C2D229526952770220F220F6C2D6F7091
+:1043F000862F90E0A0E0B0E04C015D01022E04C0E9
+:10440000880C991CAA1CBB1C0A94D2F7C4FE12C0CB
+:104410008FE090E0A0E0B0E004C0880F991FAA1FD1
+:10442000BB1F2A95D2F7BC01CD0160957095809590
+:10443000909503C060E070E0CB01242F269526956F
+:104440002370223051F080F4682979298A299B2928
+:10445000213071F00E94F127A0C0682979298A29AA
+:104460009B290E940D2899C00E94F127C501B40123
+:104470000E94D52792C08C2D90E0FC01E05EF109EE
+:10448000E531F10508F04FC0E758FF4F0C949F3617
+:104490000C2D0F70842F8F71112321F00E946E2735
+:1044A000802F14CF0E948F27802F0E94BD2075C0BF
+:1044B000112341F0053008F070C0842F8F710E94E5
+:1044C000B4276BC0063008F068C0F7CF112339F06D
+:1044D000842F8F710E946E2760C01123C9F3842F2F
+:1044E0008F710E948F2759C0112329F0842F8F715B
+:1044F0000E94592752C00E944F274FC0112351F0EC
+:10450000142F1F71812F0E946E2763E0812F0E945C
+:10451000822843C081E00E948B280230F0F182E0C3
+:104520000E948B283AC0112331F0002389F28C2D90
+:104530000E949F1F32C0002391F28C2D0E946720A1
+:104540002CC04F706C2DC7010E94A60D0E947326CF
+:1045500024C0111122C0842F8F70823099F038F45A
+:10456000882369F08130C9F40E94923416C08330E8
+:1045700061F0843091F48C2D0E941D350EC00E9494
+:1045800068340BC00E94C13408C00E94E73405C0E3
+:104590004F706C2DC7010E94050ADD20F1F00E94CA
+:1045A0007E2880FD1AC0F70112820E9478280E949E
+:1045B0006E27C7010E94FB220E9478280F90DF918E
+:1045C000CF911F910F91FF90EF90DF90CF90BF9010
+:1045D000AF909F908F900C948F270F90DF91CF9189
+:1045E0001F910F91FF90EF90DF90CF90BF90AF9011
+:1045F0009F908F9008950F931F93CF93DF93EC01BB
+:104600008B819C81892BC9F089818F3F19F4888126
+:104610008F3F99F0CE010E94700A882371F0688163
+:1046200079818A810E9474288C010E9429280E9425
+:10463000F026B801CE010E94C420DF91CF911F91D6
+:104640000F9108950E9405290E9415290E94D728DC
+:104650000E942F290E94FE2E0E94CC2D80E090E027
+:104660000E946A1E80E090E00C94801E0E94F52853
+:104670000C9422230E946928292F22952F702C3018
+:1046800030F42A3048F42250223098F405C02C30FF
+:1046900061F02F3051F00DC0803F69F018F4803E7A
+:1046A00040F409C0843F29F406C093FB882780F9B1
+:1046B000089580E0089581E00895CF93DF9300D0BE
+:1046C00000D01F92CDB7DEB70F900F900F900F90D4
+:1046D0000F90DF91CF910895CF93DF9300D000D05A
+:1046E00000D0CDB7DEB726960FB6F894DEBF0FBE6A
+:1046F000CDBFDF91CF9108951F93CF93DF93C091EA
+:10470000990116E080919A01C81799F0D0E01C9F9A
+:10471000F0011D9FF00D1124E556FE4F408151819F
+:1047200062817381848195810E946C232196C77078
+:10473000E9CFDF91CF911F9108954091CB01509126
+:10474000CC016091CD017091CE018091CF0190910B
+:10475000D0010C946C238091D00182958F7009F068
+:1047600054C08091CD01882309F44FC080919901F4
+:10477000A0919A014091CE015091CF016091CB015F
+:104780007091CC01B6E08A1709F43FC090E0411562
+:104790005105C1F17F3F11F46F3FA1F1B89FF001C6
+:1047A000B99FF00D1124E556FE4F218127132AC031
+:1047B0002081261327C02281211124C02381348126
+:1047C0002417350710F421503109241B350B283CE0
+:1047D0003105C0F42091D0012F7020612093D001C9
+:1047E00026E0289FF001299FF00D1124E056FE4F8E
+:1047F00080818F70806180838BEC91E00E94FB222E
+:104800000C947C2301968770BECF0895CF92DF92DF
+:10481000EF92FF920F931F93CF93DF93CDB7DEB745
+:1048200062970FB6F894DEBF0FBECDBF8C0185E056
+:10483000F801DE011D9601900D928A95E1F7D801ED
+:104840004C9111965C91119712966C918091CE01CA
+:104850009091CF01009709F475C13091CB0170910F
+:10486000CC017F3F19F43F3F09F46CC1F801C380CC
+:10487000D480E090CD01EE2009F4BEC02091D0019B
+:10488000C816D90628F0D601A81BB90BCD0104C063
+:10489000809590958C0D9D1DFF24F394883C910587
+:1048A00078F0F12C207F09F0C4C07C2DD98AC88A09
+:1048B00089890E945D238BEC91E00E94FB22AFC0AE
+:1048C000822F807F09F045C0571313C0431311C0D6
+:1048D00061110FC02F7020612093D0010E949D2391
+:1048E0008BEC91E00E94FB228091D001F80185833E
+:1048F0002EC0CD2819F15F3F11F44F3FF9F0F62E8D
+:1049000061111CC08091990120919A0136E08217B3
+:1049100009F45BC090E0389FF001399FF00D11243D
+:10492000E556FE4F7181571306C07081471303C0CF
+:104930007281711103C001968770E9CFF62E66234C
+:1049400009F41CC18091D00181608093D001F12CC9
+:1049500015C1571309C0431307C0611105C08091E9
+:10496000D001F8018583C8C04D875E878D859E85FF
+:104970006A8B0E943A236A898823D1F16623C1F1A8
+:104980002091D001822F82958F7090E0029774F071
+:104990008091CB019091CC0198878F831986DB861B
+:1049A000CA862C87CE0107960E94FB2286E0F8017A
+:1049B000ABECB1E001900D928A95E1F70E94AB2338
+:1049C0000E949D23FF24F394D9C04D875E878D8577
+:1049D0009E850E946928292F22952F70223008F089
+:1049E000C1C09F7009F0BBC0805E883008F4C6C0AB
+:1049F000C8010E94FB22E6CFC816D90608F453C0AE
+:104A0000F601E81BF90BCF01883C910508F450C072
+:104A1000F12C7C2DD98AC88A89890E945D23EBEC10
+:104A2000F1E086E0DF011D928A95E9F70E949D235F
+:104A3000A5C0571314C0431312C0611110C0809158
+:104A4000D001F8018583C8010E94FB2286E0EBECCF
+:104A5000F1E0DF011D928A95E9F7FE2C8FC04D87AA
+:104A60005E878D859E856A8B0E943A236A8988239A
+:104A700009F4BECF662309F4BBCF2091D001822F69
+:104A800082958F7090E002970CF490CF8091CB01CB
+:104A90009091CC019A8389831B82DD82CC822E8304
+:104AA000CE01019681CF809590958C0D9D1DACCF48
+:104AB000F62E662309F49CCF571333C0431331C03D
+:104AC0002091D00120FD24C0822F82958F70482F25
+:104AD00050E041155105E1F0D80115962C9315973A
+:104AE0004F30510549F08F5F982F9295907F822F1C
+:104AF0008F70892B15968C93C8010E94FB2286E04B
+:104B0000F801ABECB1E001900D928A95E1F78ECF00
+:104B100086E0F801ABECB1E001900D928A95E1F7E7
+:104B20002DC04D875E878D859E850E943A23811119
+:104B30003DCF8091D00181608093D001C8010E9457
+:104B4000FB221CC0662309F453CF4D875E878D85F9
+:104B50009E850E943A23882309F44ACF27CF8111EA
+:104B600043CF0CC0243008F043CF9F7009F43CCFF2
+:104B7000D80115969C91907F09F036CF8F2D6296C3
+:104B80000FB6F894DEBF0FBECDBFDF91CF911F915E
+:104B90000F91FF90EF90DF90CF9008951F93CF93E8
+:104BA000DF93CDB7DEB72C970FB6F894DEBF0FBEFC
+:104BB000CDBF4F83588769877A878B879C87CE01C3
+:104BC00007960E940624882371F08A859B85892B8D
+:104BD00009F441C088858F3F09F065C08F818F3F00
+:104BE00009F061C038C086E0FE013796DE011196FB
+:104BF00001900D928A95E1F76A857B8561157105B3
+:104C000051F1FF81E885EF3F11F4FF3F21F1209141
+:104C10009A0130E0C9010196877099274091990166
+:104C200050E08417950709F447C0F983EA837D8330
+:104C30006C8396E0929FD001939FB00D1124A556EE
+:104C4000BE4FFE01319601900D929A95E1F7809347
+:104C50009A010E947C2316E08091990190919A011B
+:104C60008917B9F1189FC001112485569E4F0E94E3
+:104C70000624882371F1E09199011E9FF00111240F
+:104C8000E556FE4F40815181628173818481958117
+:104C90000E946C238091990190E00196877099277A
+:104CA00080939901D9CF4F81588569857A858B8505
+:104CB0009C850E946C23CFCF0E94362310929A01CC
+:104CC00010929901EBECF1E086E0DF011D928A95EC
+:104CD000E9F72C960FB6F894DEBF0FBECDBFDF917B
+:104CE000CF911F910895EF92FF920F931F93CF934F
+:104CF000DF938C01892B09F46CC0F12CEE24E39432
+:104D0000E8012196F8018491843740F4843008F05A
+:104D100051C0813081F0823019F15BC0853709F4D0
+:104D200044C0A8F19CE7980F903708F052C08F77E5
+:104D30000E94672041C00E5F1F4FFE01849190E2E8
+:104D4000980F983050F48770FE2D01C0FF0F8A95A0
+:104D5000EAF78F2F0E94082914C00E949F1F2DC0C0
+:104D60000E5F1F4FFE01849190E2980F983060F41F
+:104D70008770FE2D01C0FF0F8A95EAF78F2F0E94E2
+:104D80000E290E942F2919C00E94672016C00E5FAD
+:104D90001F4FFE01C491CC2381F08FE99FE0019762
+:104DA000F1F700C00000C150F6CF0E5F1F4FFE01AB
+:104DB000F49003C00E949F1F8E018F2D882309F459
+:104DC0009FCFEFE9FFE03197F1F700C0000081507D
+:104DD000F5CFDF91CF911F910F91FF90EF90089544
+:104DE00008956093D5017093D6018093D701909375
+:104DF000D8010C9422230F931F930091D501109199
+:104E0000D6012091D7013091D801DC01CB01802B54
+:104E1000912BA22BB32B8093D5019093D601A09315
+:104E2000D701B093D8011F910F910C9422230F93B7
+:104E30001F930091D5011091D6012091D701309197
+:104E4000D801DC01CB0180239123A223B3238093DB
+:104E5000D5019093D601A093D701B093D8011F91AB
+:104E60000F910C9422230F931F930091D501109161
+:104E7000D6012091D7013091D801DC01CB018027E8
+:104E80009127A227B3278093D5019093D601A093B1
+:104E9000D701B093D8011F910F910C942223109247
+:104EA000D1011092D2011092D3011092D4010C942E
+:104EB000222341E050E060E070E004C0440F551F41
+:104EC000661F771F8A95D2F74093D1015093D20184
+:104ED0006093D3017093D4010C94222341E050E0FD
+:104EE00060E070E004C0440F551F661F771F8A956D
+:104EF000D2F78091D1019091D201A091D301B091CC
+:104F0000D401482B592B6A2B7B2B4093D101509312
+:104F1000D2016093D3017093D4010C94222341E019
+:104F200050E060E070E004C0440F551F661F771F1B
+:104F30008A95D2F740955095609570958091D101F2
+:104F40009091D201A091D301B091D401482359236B
+:104F50006A237B234093D1015093D2016093D30104
+:104F60007093D4010C94222341E050E060E070E0A3
+:104F700004C0440F551F661F771F8A95D2F7809192
+:104F8000D1019091D201A091D301B091D4014827D1
+:104F900059276A277B274093D1015093D201609310
+:104FA000D3017093D4010C9422230F931F9300918B
+:104FB000D1011091D2012091D3013091D401DC01B3
+:104FC000CB01802B912BA22BB32B8093D1019093FB
+:104FD000D201A093D301B093D4011F910F910C94EF
+:104FE00022230F931F930091D1011091D2012091A0
+:104FF000D3013091D401DC01CB0180239123A22382
+:10500000B3238093D1019093D201A093D301B093A5
+:10501000D4011F910F910C9422230F931F930091A1
+:10502000D1011091D2012091D3013091D401DC0142
+:10503000CB0180279127A227B3278093D10190939A
+:10504000D201A093D301B093D4011F910F910C947E
+:1050500022230895CF92DF92EF92FF920F931F9336
+:10506000CF93DF938C01C090D101D090D201E0901A
+:10507000D301F090D4018091D5019091D601A091F7
+:10508000D701B091D801C82AD92AEA2AFB2ACFE150
+:10509000D0E0D701C6010C2E04C0B695A795979510
+:1050A00087950A94D2F780FD04C0219790F780E09D
+:1050B00007C0B8018C2F0E94030C0197B1F38C2F0D
+:1050C000DF91CF911F910F91FF90EF90DF90CF90E4
+:1050D0000895CF93DF93EC010E942A28BE010E941D
+:1050E000030CDF91CF910895CB010E9469280895A8
+:1050F0008091D90185958595859508958091D901EF
+:105100008770089598E0899F90011124262B2093A1
+:10511000D9010C946E272091D90180958223809328
+:10512000D901982F977069F430E0482F082E000CB1
+:10513000550B2417350729F08595859585950C9491
+:105140008F2708959091D901977081E009F480E04C
+:10515000089520910D0130910E01F90132969FEFD3
+:1051600040E05191851789F09F3F19F4511101C01A
+:10517000942F4F5F4630A9F79F3F39F0F901E90FAF
+:10518000F11D97FDFA9582830895089520910D01F0
+:1051900030910E01F9013296285F3F4F90818913BB
+:1051A00001C010823196E217F307C1F7089581E03C
+:1051B00090E0E0910D01F0910E01E80FF91F1082CF
+:1051C000019688309105A9F708958091E501089529
+:1051D0009091E501892B8093E50108958095909148
+:1051E000E50189238093E50108951092E501089572
+:1051F0009091E401892B8093E4010895809590912A
+:10520000E40189238093E40108951092E401089554
+:105210009091E301892B8093E3010895809590910B
+:10522000E30189238093E30108951092E301089537
+:105230008093DA0108951092DA01089580910D01AA
+:1052400090910E01FC0131969C01285F3F4F80E058
+:10525000919191118F5FE217F307D1F70895E091D3
+:105260000D01F0910E018091E5018083E0910D0127
+:10527000F0910E0190818091E401892B8083E0916F
+:105280000D01F0910E0190818091E301892B8083C3
+:105290008091DA01882361F0E0910D01F0910E0117
+:1052A0009081892B80830E941E2981111092DA013E
+:1052B00080910D0190910E010C94171E909347015F
+:1052C00080934601089520E0009739F0AC014150E9
+:1052D0005109842395232F5FF7CF822F089582955C
+:1052E000982F937344E0949F900111248C7C8695B1
+:1052F0008695282B822F8575880F2A7A2695822BF2
+:1053000008951F93CF93DF931F92CDB7DEB7998394
+:105310000E946F29182F9981892F0E946F29212FB0
+:1053200030E0322F2227A901482BCA010F90DF91CC
+:10533000CF911F91089580913502843051F11092E0
+:10534000E70120E488E190E00FB6F894A8958093F7
+:1053500060000FBE2093600080E00E94DB0980E0C7
+:105360000E94380E83B7817F846083BF83B78160DA
+:1053700083BF7894889583B78E7F83BF0FB6F894E8
+:10538000A895809160008861809360001092600011
+:105390000FBE0895089580E00E94DB090E944E0E22
+:1053A0000E94D10E0E94CA290E94970F91E081119C
+:1053B00001C090E0892F08950E94362380E00E946A
+:1053C000DB090E9457340E940B1E0C94380E1F926A
+:1053D0000F920FB60F9211248F939F93AF93BF93A9
+:1053E0008091E701811113C08091E8019091E9015A
+:1053F000A091EA01B091EB014196A11DB11D8093EE
+:10540000E8019093E901A093EA01B093EB01BF9109
+:10541000AF919F918F910F900FBE0F901F90189595
+:1054200082E084BD93E095BD9AEF97BD80936E00B6
+:1054300008952FB7F8948091E8019091E901A09127
+:10544000EA01B091EB012FBF0895CF92DF92EF9266
+:10545000FF920F931F932FB7F8944091E80150915A
+:10546000E9016091EA017091EB012FBF6A017B01B4
+:10547000EE24FF248C0120E030E0C016D106E206C5
+:10548000F30610F4415051099A01281B390BC90148
+:105490001F910F91FF90EF90DF90CF9008951F9292
+:1054A0000F920FB60F9211248F939F93AF93BF93D8
+:1054B0008091E8019091E901A091EA01B091EB019E
+:1054C0000196A11DB11D8093E8019093E901A0937D
+:1054D000EA01B093EB01BF91AF919F918F910F9033
+:1054E0000FBE0F901F9018950E94041BF8942FEF89
+:1054F00087EA91E6215080409040E1F700C000002B
+:1055000087E090EBDC0180933F0290934002A093F0
+:105510004102B09342029CE088E10FB6F894A8954E
+:10552000809360000FBE90936000FFCFAF92BF9258
+:10553000CF92DF92EF92FF920F931F93CF93C4E02D
+:10554000CC24C394D12CE82EF12C8C2F0E94540F24
+:105550005C010DE010E0C601002E02C0880F991F0B
+:105560000A94E2F78A219B21892B51F0602F7C2F2E
+:1055700080E00E94A90DE816F90611F481E006C04A
+:105580000150110940F7C15000F780E0CF911F9101
+:105590000F91FF90EF90DF90CF90BF90AF90089564
+:1055A000CF93C82F8CE20E94962A882321F08C2F5B
+:1055B000CF910C94962A80E0CF910895CF930E94CA
+:1055C0002E2C811102C00E940F2C8CE898E00E94C2
+:1055D0001709C5E6C15049F00E94D10E8FE39CE93E
+:1055E0000197F1F700C00000F5CF85E898E00E9430
+:1055F000170989E20E94D02A81110FC18AE20E9414
+:10560000D02A81110E940F2C85E00E94D02A81119E
+:105610000E94742A0E94392C8093E60187E00E9440
+:10562000D02A8823A9F18BE10E94D02A882351F047
+:105630008091E60181FB222720F991E0922790FBDF
+:1056400081F90EC08EE00E94D02A882361F08091FB
+:10565000E60182FB222720F991E0922790FB82F954
+:105660008093E60115C080E10E94D02A9091E60166
+:10567000882341F093FB222720F981E0822780FBD9
+:1056800093F904C0892F809580FB90F99093E601EF
+:105690008091E6010E943D2C0E944B2C90E090935B
+:1056A000F8018093F70180EE0E94D02A882341F010
+:1056B0008091F701982F909590FB80F98093F701E6
+:1056C00089E30E94D02A882359F08091F70181FB59
+:1056D000222720F991E0922790FB81F98093F7012E
+:1056E00082EE0E94D02A882359F08091F70182FB34
+:1056F000222720F991E0922790FB82F98093F7010D
+:1057000086EE0E94D02A882359F08091F70183FB0E
+:10571000222720F991E0922790FB83F98093F701EB
+:1057200083EE0E94D02A882359F08091F70184FBF0
+:10573000222720F991E0922790FB84F98093F701CA
+:1057400085E30E94D02A882359F08091F70185FBD8
+:10575000222720F991E0922790FB85F98093F701A9
+:1057600081E30E94D02A882359F08091F70186FBBB
+:10577000222720F991E0922790FB86F98093F70188
+:1057800081E10E94D02A882359F08091F70187FB9C
+:10579000222720F991E0922790FB87F98093F70167
+:1057A0008091F7010E944F2C87E20E94D02AC82FD7
+:1057B0008EE10E94D02A8111C2608FE10E94D02A1E
+:1057C0008111C46080E20E94D02A8111C86081E208
+:1057D0000E94D02A8111C06182E20E94D02A8111E8
+:1057E000C06283E20E94D02A8111C06484E20E94D8
+:1057F000D02A882311F0C06802C0CC2329F08C2F56
+:105800000E94462C6C2F03C00E94422C682F70E02F
+:1058100080E090E0CF910C94F126CF9108956DEE49
+:105820007EEF80E090E00E94D73660E082E090E07A
+:105830000E94B93660E083E090E00E94B93660E0F3
+:1058400084E090E00E94B93660E085E090E00E943C
+:10585000B93660E086E090E00C94B93680E090E0E4
+:105860000E94B33621E08D3E9E4F09F020E0822F4A
+:10587000089582E090E00C94A536682F82E090E0D5
+:105880000C94B93683E090E00C94A536682F83E041
+:1058900090E00C94B93684E090E00C94A536682F23
+:1058A00084E090E00C94B93686E090E00C94A53644
+:1058B000682F86E090E00C94B9368091EE0180FF6D
+:1058C0000BC06091120185E0689FB00111247595AD
+:1058D0006795759567952BC081FF09C0609112018E
+:1058E00085E0689FB00111247595679520C082FFFF
+:1058F00007C06091120185E0689FB001112417C0B4
+:105900009091EF019923D1F060911101961788F7DA
+:105910002091120185E0289F90011124929FA001FF
+:10592000939F500D112470E0CA010E948B3660389D
+:10593000710540F46115710519F406C065E070E069
+:10594000862F08958FE7089581E008958091EE01F4
+:1059500080FF08C06091100170E07595679575959E
+:10596000679521C081FF06C06091100170E07595B8
+:10597000679519C082FF04C06091100170E010C0EB
+:105980009091EF01992399F060910F019617A0F77C
+:1059900080911001899FC001112470E00E948B3614
+:1059A0006038710540F46115710519F406C061E0B5
+:1059B00070E0862F08958FE7089581E00895803F75
+:1059C00021F40E945D2C819504C0813F29F40E943E
+:1059D0005D2C8093F2010895823F21F40E945D2C9A
+:1059E000819504C0833F29F40E945D2C8093F101CE
+:1059F0000895893F19F40E94A62C05C08A3F31F40E
+:105A00000E94A62C81958093F30108958B3F21F489
+:105A10000E94A62C819504C08C3F29F40E94A62CDC
+:105A20008093F4010895843F21F48091F001816016
+:105A300017C0853F21F48091F001826011C0863F3C
+:105A400021F48091F00184600BC0873F21F48091A4
+:105A5000F001886005C0883F31F48091F0018061D9
+:105A60008093F00108958D3F21F48091EE018160D3
+:105A70000BC08E3F21F48091EE01826005C08F3F04
+:105A800029F48091EE0184608093EE010895803FB7
+:105A900039F48091F20187FF6CC01092F20169C065
+:105AA000813F29F48091F2011816BCF362C09091F5
+:105AB000F101823F29F497FF5CC01092F10159C0B7
+:105AC000833F19F41916CCF354C0893F41F48091F7
+:105AD000F30118160CF04DC01092F3014AC08A3F32
+:105AE00029F48091F30187FF44C0F6CF8B3F39F44E
+:105AF0008091F40187FF3DC01092F4013AC08C3FC1
+:105B000029F48091F4011816BCF333C0843F21F4CA
+:105B10008091F0018E7F17C0853F21F48091F001C4
+:105B20008D7F11C0863F21F48091F0018B7F0BC0E7
+:105B3000873F21F48091F001877F05C0883F31F4D1
+:105B40008091F0018F7E8093F00113C08D3F21F48E
+:105B50008091EE018E7F0BC08E3F21F48091EE018B
+:105B60008D7F05C08F3F29F48091EE018B7F80935C
+:105B7000EE018091F10181110EC08091F20181113D
+:105B80000AC08091F301811106C08091F401811156
+:105B900002C01092EF0108958091E60183FF7EC05C
+:105BA00088EC98E00E9417098091F0011F928F9372
+:105BB00083EC98E09F938F930E94B00981EC98E06A
+:105BC0000E9417098091F101282F082E000C330B39
+:105BD0003F938F938EEB98E09F938F930E94B00931
+:105BE0008CEB98E00E9417098091F201282F082E73
+:105BF000000C330B3F938F9389EB98E09F938F9327
+:105C00000E94B00987EB98E00E9417098091F30188
+:105C1000282F082E000C330B3F938F9384EB98E0D2
+:105C20009F938F930E94B00982EB98E00E9417091E
+:105C30008091F401282F082E000C330B3F938F9393
+:105C40008FEA98E09F938F930E94B0098CEA98E0C6
+:105C50000E9417098091EF011F928F9389EA98E0C3
+:105C60009F938F930E94B00987EA98E00E941709DA
+:105C70008091EE011F928F9384EA98E09F938F9317
+:105C80000E94B00981EA98E00E9417098DB79EB77B
+:105C90004C960FB6F8949EBF0FBE8DBF80EF91E07B
+:105CA0000E945F1E0E94192A9093ED018093EC01DF
+:105CB00008951F93CF93DF938091EC019091ED01B4
+:105CC0000E94252AAC019091EF01992321F02091A7
+:105CD000130130E006C0209114018AE0289F900152
+:105CE00011244217530708F485C08091F101C09137
+:105CF000F201D091F3011091F401811107C0C1119B
+:105D000075C0D11173C0111171C074C09F3F19F0DB
+:105D10009F5F9093EF01181624F40E945D2C8093EE
+:105D2000F1018091F10187FF05C00E945D2C8195F2
+:105D30008093F1011C1624F40E945D2C8093F201E3
+:105D40008091F20187FF05C00E945D2C81958093B0
+:105D5000F2016091F101662331F1C091F201CC238F
+:105D600011F1062E000C770B880B990B0E947235EF
+:105D700023E333E343E35FE30E94D6350E943A35E1
+:105D80006093F1016C2FCC0F770B880B990B0E945D
+:105D9000723523E333E343E35FE30E94D6350E9489
+:105DA0003A356093F2011D1624F40E94A62C8093CC
+:105DB000F3018091F30187FF05C00E94A62C819515
+:105DC0008093F301111624F40E94A62C8093F40111
+:105DD0008091F40187FF05C00E94A62C81958093D5
+:105DE000F401DF91CF911F910C94CC2D9F3F09F0CE
+:105DF0008FCFA0CFDF91CF911F910895E0EFF1E019
+:105E000085E0DF011D928A95E9F71092EF0110926B
+:105E1000EE0108958BEE9AE00E9417091F9281E02F
+:105E20008F931F9285E08F938DE99AE09F938F93D4
+:105E30000E94B0090F900F900F900F900F900F904D
+:105E400008958330E9F128F4813061F0823009F15E
+:105E50000895853009F462C008F449C0863009F419
+:105E600074C0089580911401262F30E0280F311D51
+:105E70002F3F310524F4680F6093140103C08FEFA6
+:105E800080931401809114011F928F9386ED99E005
+:105E900072C080911301262F30E0280F311D2F3F53
+:105EA000310524F4680F6093130103C08FEF8093D2
+:105EB0001301809113011F928F9384EC99E05BC0D2
+:105EC00080911201262F30E0280F311D2F3F310520
+:105ED00024F4680F6093120103C08FEF80931201C6
+:105EE000809112011F928F9381EB99E044C08091C1
+:105EF0001101262F30E0280F311D2F3F310524F4EA
+:105F0000680F6093110103C08FEF8093110180919E
+:105F100011011F928F938CE999E02DC0809110019F
+:105F2000262F30E0280F311D2F3F310524F4680F54
+:105F30006093100103C08FEF8093100180911001D6
+:105F40001F928F9383E899E016C080910F01262F4E
+:105F500030E0280F311D2F3F310524F4680F609386
+:105F60000F0103C08FEF80930F0180910F011F92EB
+:105F70008F9388E699E09F938F930E94B0090F90CA
+:105F80000F900F900F900895833081F128F48130A5
+:105F900059F08230D1F00895853009F449C0B8F144
+:105FA000863009F456C0089580911401681720F4D2
+:105FB000861B8093140102C0109214018091140179
+:105FC0001F928F9389E599E054C08091130168175F
+:105FD00020F4861B8093130102C01092130180915C
+:105FE00013011F928F9387E499E043C080911201BF
+:105FF000681720F4861B8093120102C010921201D0
+:10600000809112011F928F9384E399E032C08091B6
+:106010001101681720F4861B8093110102C01092B1
+:106020001101809111011F928F938FE199E021C09E
+:1060300080911001681720F4861B8093100102C024
+:1060400010921001809110011F928F9386E099E0C9
+:1060500010C080910F01681720F4861B80930F01F8
+:1060600002C010920F0180910F011F928F938BEE4F
+:1060700098E09F938F930E94B0090F900F900F901C
+:106080000F900895CF93C82F1F928F9380EF9BE0BE
+:106090009F938F930E94B00981E090E0A0E0B0E070
+:1060A000BC01CD0104C0660F771F881F991FCA95D8
+:1060B000D2F70E94F1260F900F900F900F90CF9182
+:1060C0000C943623CF938732B0F58E3108F088C216
+:1060D0008E3009F402C200F5873009F4CBC1A8F470
+:1060E000863009F083C28091E601817F8E7F8093A4
+:1060F000E60187E49DE00E9417098BE191E10E948F
+:10610000170981E08093F601B3C1883009F43FC0DC
+:106110008B3009F4A9C16AC2863109F424C220F483
+:10612000803109F4EEC162C2893109F405C28B31B4
+:1061300009F4BFC15BC2883309F496C150F48932B7
+:1061400009F450C2853309F44DC2873209F44AC2BA
+:106150004DC2833409F446C228F48A3308F446C297
+:10616000895341C2883409F041C20E9436238FEF1F
+:1061700090E10E9417099FEF23ED80E391502040AA
+:106180008040E1F700C000000E94742A71C18FE1D5
+:1061900091E10E94170981E890E10E9417090E948D
+:1061A000422C1F928F938EE790E19F938F930E94D2
+:1061B000B0098CE790E10E9417090E94392CC82F82
+:1061C00089E690E10E9417091F92CF9384E690E13F
+:1061D0009F938F930E94B00982E690E10E94170975
+:1061E00088E590E10E9417098C2F81701F928F9390
+:1061F00085E590E19F938F930E94B00983E590E13C
+:106200000E94170989E490E10E941709C1FB8827C1
+:1062100080F91F928F9386E490E19F938F930E9461
+:10622000B00984E490E10E94170988E390E10E949C
+:106230001709C2FB882780F91F928F9385E390E1AD
+:106240009F938F930E94B00983E390E10E94170906
+:106250008AE290E10E941709C3FBCC27C0F91F9284
+:10626000CF9387E290E19F938F930E94B00985E2DC
+:1062700090E10E9417090E944B2CC82F81E190E108
+:106280000E9417091F92CF938CE090E19F938F9308
+:106290000E94B0098AE090E10E94170981EF9FE017
+:1062A0000E9417098C2F81701F928F938EEE9FE0B2
+:1062B0009F938F930E94B0098DB79EB780960FB6BB
+:1062C000F8949EBF0FBE8DBF8CEE9FE00E94170911
+:1062D00085ED9FE00E941709C1FB882780F91F9276
+:1062E0008F9382ED9FE09F938F930E94B00980ED82
+:1062F0009FE00E9417098EEB9FE00E941709C2FBE6
+:10630000882780F91F928F938BEB9FE09F938F9349
+:106310000E94B00989EB9FE00E94170987EA9FE07D
+:106320000E941709C3FB882780F91F928F9384EA84
+:106330009FE09F938F930E94B00982EA9FE00E94A2
+:10634000170988E99FE00E941709C4FB882780F994
+:106350001F928F9385E99FE09F938F930E94B009CE
+:1063600083E99FE00E94170981E89FE00E941709D6
+:10637000C5FB882780F91F928F938EE79FE09F933C
+:106380008F930E94B0098CE79FE00E94170980E676
+:106390009FE00E941709C6FB882780F91F928F9300
+:1063A0008DE59FE09F938F930E94B0098BE59FE05E
+:1063B0000E94170983E59FE00E941709C7FBCC27BD
+:1063C000C0F91F92CF9380E59FE09F938F930E9427
+:1063D000B0098EE49FE00E9417090E94542CC82F38
+:1063E00087E39FE00E9417091F92CF9382E39FE00B
+:1063F0009F938F930E94B0098DB79EB780960FB67A
+:10640000F8949EBF0FBE8DBF80E39FE00E941709E6
+:1064100086E29FE00E9417098C2F81701F928F9354
+:1064200083E29FE09F938F930E94B00981E29FE0F7
+:106430000E94170988E19FE00E941709C6951F92E4
+:10644000CF9385E19FE09F938F930E94B00983E1F2
+:106450009FE00E9417098DB79EB708960FB6F89473
+:106460009EBF0FBE8DBF04C08EE69DE00E9417093F
+:10647000C1E0C1C08091E601C82FC095C170C0FBCA
+:1064800080F98093E601CC2349F083EF90E10E94EC
+:1064900017098091E6018660886048C086EE90E129
+:1064A0000E9417098091E601897F877F8093E6012A
+:1064B000DFCF9091E60191FBCC27C0F981E0C8279E
+:1064C000892FC0FB81F98093E601CC2319F089ED77
+:1064D00090E127C08BEC90E1C9CF9091E60192FB4F
+:1064E000CC27C0F981E0C827892FC0FB82F98093AF
+:1064F000E601CC2319F08CEB90E113C08CEA90E11B
+:10650000B5CF9091E60193FBCC27C0F981E0C82775
+:10651000892FC0FB83F98093E601CC2351F080EAF8
+:1065200090E10E9417098091E60181608093E60165
+:1065300062C083E990E19ACF88E39DE00E94170949
+:106540008FE19DE00E9417098DEE9CE00E941709E3
+:1065500086EC9CE00E94170986E89CE00E941709DF
+:106560008BE59CE083CF8DE49CE00E9417090E949C
+:106570000B1E1F928F9383E39CE09F938F930E9447
+:10658000B00980910C011F928F938CE19CE09F9346
+:106590008F930E94B009809187011F928F9389E0A9
+:1065A0009CE09F938F930E94B0098091E8019091A5
+:1065B000E901A091EA01B091EB01BF93AF939F93E2
+:1065C0008F9385EF9BE09F938F930E94B0098DB7C7
+:1065D0009EB742960FB6F8949EBF0FBE8DBF48CFB0
+:1065E0008D5101C080E00E94423042CF81E990E1AC
+:1065F0000E941709C0E08C2FCF91089580E0089584
+:106600000C94FE32CF93C82F8091F601813071F047
+:1066100020F0823009F44BC042C1E0910D01F091AD
+:106620000E018081823209F03CC107C0E0910D016A
+:10663000F0910E018081823261F48C2F0E94003330
+:10664000811104C08C2F0E9462302FC081E090E045
+:106650002CC08C2F0E94FE32811126C0C431E1F083
+:1066600070F4CB3081F0C031D1F40E940A2F88EE53
+:106670009BE00E94170982E08093F60115C0C932A1
+:1066800059F0C83361F487E49DE00E9417098CEE4D
+:106690009BE00E94170908C01092F60104C186EE23
+:1066A0009BE00E941709FFC081E08170FEC0C432E8
+:1066B00028F5CE3108F0C1C0CB30A1F1D0F4C730FD
+:1066C00009F0D3C08EE18093140182E3809313011B
+:1066D0008AE08093120184E18093110188E0809325
+:1066E000100188E280930F018CE89AE00E9417095C
+:1066F000BFC0C33149F1C431C1F0B7C0CB3409F4D4
+:10670000A9C028F4C93289F0C83361F0AEC0C135E0
+:1067100009F49EC0C23509F499C0CE3409F0A5C071
+:106720006AE09EC00E940A2FA3C08091F5018823D1
+:1067300019F01092F5019CC089E99AE00E941709AE
+:1067400081E08093F601B1C083E79AE00E941709C7
+:1067500081E69AE00E941709809114011F928F939D
+:106760008EE59AE09F938F930E94B0098CE59AE0A2
+:106770000E9417098AE49AE00E9417098091130188
+:106780001F928F9387E49AE09F938F930E94B009A2
+:1067900085E49AE00E94170986E39AE00E941709AF
+:1067A000809112011F928F9383E39AE09F938F93BE
+:1067B0000E94B00981E39AE00E94170980E29AE002
+:1067C0000E941709809111011F928F938DE19AE029
+:1067D0009F938F930E94B0098BE19AE00E94170962
+:1067E00086E09AE00E941709809110011F928F9312
+:1067F00083E09AE09F938F930E94B00981E09AE032
+:106800000E9417098AEE99E00E94170980910F01F2
+:106810001F928F9387EE99E09F938F930E94B00908
+:1068200085EE99E00E9417098DB79EB748960FB67E
+:10683000F8949EBF0FBE8DBF1BC0CE51EC2FF0E071
+:10684000E45CFE4F80818093F50112C061E003C0DB
+:1068500061E006C06AE08091F5010E94212F08C026
+:106860008091F5010E94C42F03C08AE89AE013C00A
+:106870008091F501882369F01F928F9384E89AE054
+:106880009F938F930E94B0090F900F900F900F90DD
+:1068900004C081E89AE00E94170981E006C01092C6
+:1068A000F60180E002C080E000CFCF9108950E9401
+:1068B0002E2C811102C00E940F2C0E94542C809318
+:1068C0003E0280FF02C0869501C080E00C94DB0987
+:1068D00080913E02982F9695292F30E02330310584
+:1068E0004CF49F5F990F8170892B816080933E02E9
+:1068F0000E94582C8091E60180FF0FC080913E02DB
+:1069000086951F928F938CE691E19F938F930E94BF
+:10691000B0090F900F900F900F9080913E028695D6
+:106920000C94DB0980913E02982F969591F0915836
+:10693000990F8170892B80933E028E7F91E009F43C
+:1069400090E080913E0290FB80F980933E020E948D
+:10695000582C8091E60180FF0FC080913E02869501
+:106960001F928F9384E591E19F938F930E94B009CA
+:106970000F900F900F900F9080913E0286950C948F
+:10698000DB0980913E02982F909590FB80F98093CF
+:106990003E020E94582C8091E60180FF0FC080913A
+:1069A0003E0281701F928F938EE391E19F938F93AC
+:1069B0000E94B0090F900F900F900F9080913E02AF
+:1069C00080FF02C0869501C080E00C94DB099091A5
+:1069D0003E02892F86958F5F8F779170843028F4DF
+:1069E000880F892B80933E0202C090933E028091D3
+:1069F0003E028E7F91E009F490E080913E0290FB90
+:106A000080F980933E020E94582C8091E60180FF1D
+:106A10000FC080913E0286951F928F938AE291E18A
+:106A20009F938F930E94B0090F900F900F900F903B
+:106A300080913E0286950C94DB0920913E02922FB4
+:106A400096958927982F990F822F8170892B809393
+:106A50003E028E7F91E009F490E080913E0290FB2F
+:106A600080F980933E020E94582C80913E028695C8
+:106A70000C94DB090E9441356894B1110C94D03517
+:106A800008950E94B53588F09F5798F0B92F99273F
+:106A9000B751B0F0E1F0660F771F881F991F1AF009
+:106AA000BA95C9F714C0B13091F00E94CF35B1E06A
+:106AB00008950C94CF35672F782F8827B85F39F069
+:106AC000B93FCCF3869577956795B395D9F73EF4A2
+:106AD00090958095709561957F4F8F4F9F4F08954A
+:106AE000E89409C097FB3EF4909580957095619568
+:106AF0007F4F8F4F9F4F9923A9F0F92F96E9BB271E
+:106B00009395F695879577956795B795F111F8CF99
+:106B1000FAF4BB0F11F460FF1BC06F5F7F4F8F4F04
+:106B20009F4F16C0882311F096E911C0772321F0FA
+:106B30009EE8872F762F05C0662371F096E8862F92
+:106B400070E060E02AF09A95660F771F881FDAF7E9
+:106B5000880F9695879597F9089557FD9058440F9B
+:106B6000551F59F05F3F71F04795880F97FB991FAC
+:106B700061F09F3F79F08795089512161306140669
+:106B8000551FF2CF4695F1DF08C0161617061806F6
+:106B9000991FF1CF86957105610508940895E894D1
+:106BA000BB2766277727CB0197F908950E94E9351F
+:106BB0000C945A360E944C3638F00E94533620F01E
+:106BC000952311F00C9443360C94493611240C94FF
+:106BD000D0350E94AD3570F3959FC1F3950F50E00D
+:106BE000551F629FF001729FBB27F00DB11D639F7F
+:106BF000AA27F00DB11DAA1F649F6627B00DA11D25
+:106C0000661F829F2227B00DA11D621F739FB00DCA
+:106C1000A11D621F839FA00D611D221F749F33273A
+:106C2000A00D611D231F849F600D211D822F762FD3
+:106C30006A2F11249F5750409AF0F1F088234AF0B0
+:106C4000EE0FFF1FBB1F661F771F881F915050401C
+:106C5000A9F79E3F510580F00C9443360C94D03533
+:106C60005F3FE4F3983ED4F3869577956795B795A3
+:106C7000F795E7959F5FC1F7FE2B880F911D9695BD
+:106C8000879597F9089597F99F6780E870E060E02D
+:106C900008959FEF80EC089500240A9416161706B5
+:106CA00018060906089500240A94121613061406FD
+:106CB00005060895092E0394000C11F4882352F060
+:106CC000BB0F40F4BF2B11F460FF04C06F5F7F4F18
+:106CD0008F4F9F4F0895991B79E004C0991F961715
+:106CE00008F0961B881F7A95C9F780950895AA1B0E
+:106CF000BB1B51E107C0AA1FBB1FA617B70710F0A7
+:106D0000A61BB70B881F991F5A95A9F780959095D8
+:106D1000BC01CD01089597FB072E16F4009407D00F
+:106D200077FD09D00E94773607FC05D03EF4909598
+:106D300081959F4F0895709561957F4F0895EE0F4F
+:106D4000FF1F0590F491E02D0994F999FECF92BDB3
+:106D500081BDF89A992780B50895A6E1B0E044E096
+:106D600050E00C94DF36A8E1B0E042E050E00C9433
+:106D7000DF36262FF999FECF92BD81BDF89A019793
+:106D800000B4021639F01FBA20BD0FB6F894FA9A73
+:106D9000F99A0FBE08950396272F0E94BA360E94D3
+:106DA000B936252F0E94BA36242F0C94BA36019694
+:106DB000272F0E94BA360C94B936DC01CB01FC01B6
+:106DC000F999FECF06C0F2BDE1BDF89A319600B444
+:0E6DD0000D9241505040B8F70895F894FFCF4F
+:106DDE00FFFF701663173E170A17D61601DB012840
+:106DEE0008140A321E0F1F6C766673491303534341
+:106DFE0079693309196F7F59404D36201208C5073E
+:106E0E008F076F07FB0614072D07460701020304C1
+:066E1E000506070809004B
+:00000001FF

+ 63 - 0
keyboard/kc60/keymaps/ws2812/Makefile

@@ -0,0 +1,63 @@
+#----------------------------------------------------------------------------
+# On command line:
+#
+# make all = Make software.
+#
+# make clean = Clean out built project files.
+#
+# make coff = Convert ELF to AVR COFF.
+#
+# make extcoff = Convert ELF to AVR Extended COFF.
+#
+# make program = Download the hex file to the device.
+#                Please customize your programmer settings(PROGRAM_CMD)
+#
+# make teensy = Download the hex file to the device, using teensy_loader_cli.
+#               (must have teensy_loader_cli installed).
+#
+# make dfu = Download the hex file to the device, using dfu-programmer (must
+#            have dfu-programmer installed).
+#
+# make flip = Download the hex file to the device, using Atmel FLIP (must
+#             have Atmel FLIP installed).
+#
+# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
+#               (must have dfu-programmer installed).
+#
+# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
+#                (must have Atmel FLIP installed).
+#
+# make debug = Start either simulavr or avarice as specified for debugging,
+#              with avr-gdb or avr-insight as the front end for debugging.
+#
+# make filename.s = Just compile filename.c into the assembler code only.
+#
+# make filename.i = Create a preprocessed source file for use in submitting
+#                   bug reports to the GCC project.
+#
+# To rebuild project do "make clean" then "make all".
+#----------------------------------------------------------------------------
+
+# Build Options
+#   change yes to no to disable
+#
+BOOTMAGIC_ENABLE ?= yes      # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes       # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes       # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes        # Console for debug(+400)
+COMMAND_ENABLE ?= yes        # Commands for debug and configuration
+KEYBOARD_LOCK_ENABLE ?= yes  # Allow locking of keyboard via magic key
+BACKLIGHT_ENABLE ?= yes      # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE ?= yes 			 # Enable WS2812 underglow RGB strip
+MIDI_ENABLE ?= no            # MIDI controls
+UNICODE_ENABLE ?= no         # Unicode
+BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID
+AUDIO_ENABLE ?= no           # Audio output on port C6
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE ?= no            # USB Nkey Rollover
+
+ifndef QUANTUM_DIR
+	include ../../Makefile
+endif

+ 21 - 0
keyboard/kc60/keymaps/ws2812/README.md

@@ -0,0 +1,21 @@
+KC60 with WS2812 RGB Underglow
+======================
+
+![Image of KC60 with RGB Underglow](ws2812_example.jpg)
+
+## Quantum MK Firmware
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## WS2812 Support
+By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](ws2812_wiring.jpg) for wiring reference.
+
+### Build
+To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`.
+
+### Reference Images
+![Wiring Reference](ws2812_wiring.jpg)
+![RGB Strip turned on](ws2812_underside-lit.jpg)
+![RGB Strip turned off](ws2812_underside.jpg)
+
+### Additional Credits
+Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan.

+ 1767 - 0
keyboard/kc60/keymaps/ws2812/compiled.hex

@@ -0,0 +1,1767 @@
+:100000000C94C5080C9409090C9409090C9409096D
+:100010000C9409090C9409090C9409090C94090918
+:100020000C9409090C9409090C94891B0C945B1C11
+:100030000C94072A0C9409090C9409090C940909D9
+:100040000C9409090C9409090C9409090C940909E8
+:100050000C9409090C946F2A0C9409090C94090951
+:100060000C9409090C9409090C9409090C940909C8
+:100070000C9409090C9409090C9409090C940909B8
+:100080000C9428160C9409090C9409090C9409097C
+:100090000C9409090C9409090C9409090C94090998
+:1000A0000C9409090C9409090C940909100A300AE6
+:1000B000680A380A400A480A500A580A600AC81CE6
+:1000C000EA1CD81DEA1CD81D2F1D521DD81DA71DC6
+:1000D000BA1D01210121302130216F218F21E5221C
+:1000E000E5229A21E5224A224A22B122BA22E522B9
+:1000F000DF225722572257225722572257225722B0
+:100100005722572257225722572257225722572227
+:100110005722672275227C2283228D2200F001F073
+:1001200002F003F004F005F006F007F008F00020FC
+:100130001E001F00200021002200230024002500B3
+:10014000260027002D002E002A002B0014001A0084
+:100150000800150017001C0018000C001200130006
+:100160002F0030003100390004001600070009009C
+:100170000A000B000D000E000F00330034000000D9
+:100180002800E10000001D001B000600190005000A
+:10019000110010003600370038000000E500E000D4
+:1001A000E300E200000000002C000000000000005E
+:1001B0000000E600E7000151E40035003A003B0092
+:1001C0003C003D003E003F00400041004200430033
+:1001D000440045004C0001000100520001000100F4
+:1001E0000100010001000100010001002F703070CA
+:1001F00031700100500051004F000100010001006A
+:1002000001000100010001000100010001000100E6
+:1002100001000120022003200420052006200720E1
+:10022000082001000100010001000100010001009F
+:1002300000000000010000000000000000000100BC
+:100240000100010000700A44454255473A20656E9E
+:1002500061626C65642E0A005374617465206F6678
+:1002600020726F772025583A2025303136620A00F7
+:1002700048756D616E2D7265616461626C65206D9B
+:1002800061747269782073746174653A0D0A004470
+:1002900065626F756E63696E672064656C61792055
+:1002A00072656D61696E696E673A2025580A00545F
+:1002B000494D4552332064697361626C65642E0A4E
+:1002C0000054494D45523320656E61626C65642E61
+:1002D0000A007267626C69676874207365742068CD
+:1002E0007376205B454550524F4D5D3A2025752C65
+:1002F00025752C25750A007267626C696768742021
+:10030000746F67676C653A207267626C69676874BE
+:100310005F636F6E6669672E656E61626C65203D16
+:100320002025750A007267626C69676874206D6FBA
+:1003300064653A2025750A007267626C69676874A3
+:100340005F696E6974207267626C696768745F6365
+:100350006F6E6669672E6D6F6465203D20302E20BC
+:1003600057726974652064656661756C7420766186
+:100370006C75657320746F20454550524F4D2E0AA1
+:10038000007267626C696768745F696E6974206582
+:1003900065636F6E666967206973206E6F74206590
+:1003A0006E61626C65642E0A007267626C696768D0
+:1003B000745F696E6974207374617274210A0072CB
+:1003C00067626C696768745F696E69742063616CE9
+:1003D0006C65642E0A007267626C696768745F639B
+:1003E0006F6E6669672E76616C203D2025640A0079
+:1003F0007267626C696768745F636F6E6669672EA7
+:10040000736174203D2025640A007267626C69671D
+:1004100068745F636F6E6669672E687565203D203E
+:1004200025640A007267686C696768745F636F6E41
+:100430006669672E6D6F6465203D2025640A007231
+:1004400067626C696768745F636F6E6669672E6563
+:100450006E61626C65203D2025640A007267626CE3
+:10046000696768745F636F6E666967206570726F35
+:100470006D0A006565636F6E6669675F75706461BC
+:1004800074655F7267626C696768745F64656661F2
+:10049000756C740A00643214643214783C1E1E14A5
+:1004A0000A0500000000010101020203040505061F
+:1004B00007090A0B0C0E0F1112141517191B1D1F1B
+:1004C000212325282A2C2F313436393B3E414346FF
+:1004D000494C4F5255585A5D6164676A6D70737626
+:1004E000797C7F8386898C8F9295989B9EA2A5A705
+:1004F000AAADB0B3B6B9BCBEC1C4C6C9CBCED0D309
+:10050000D5D7DADCDEE0E2E4E6E8EAEBEDEEF0F1A6
+:10051000F3F4F5F6F8F9FAFAFBFCFDFDFEFEFEFF3A
+:10052000FFFFFFFFFFFFFEFEFEFDFDFCFBFAFAF9F9
+:10053000F8F6F5F4F3F1F0EEEDEBEAE8E6E4E2E0EC
+:10054000DEDCDAD7D5D3D0CECBC9C6C4C1BEBCB9E8
+:10055000B6B3B0ADAAA7A5A29E9B9895928F8C89A1
+:100560008683807C797673706D6A6764615D5A58A2
+:1005700055524F4C494643413E3B393634312F2C7E
+:100580002A282523211F1D1B1917151412110F0EC0
+:100590000C0B0A090706050504030202010101000C
+:1005A000000000010102020202020203030303032E
+:1005B0000303030303030303030404040404040404
+:1005C00004040404040505050505050505050506DF
+:1005D00006060606060606070707070707070808B0
+:1005E000080808080909090909090A0A0A0A0A0B78
+:1005F0000B0B0B0B0C0C0C0C0C0D0D0D0D0E0E0E35
+:100600000E0F0F0F101010101111111212121313E0
+:100610001314141415151616161717181819191976
+:100620001A1A1B1B1C1C1D1D1E1E1F2020212122EF
+:1006300023232424252626272828292A2B2B2C2D42
+:100640002E2F30303132333435363738393A3B3C5F
+:100650003D3E3F40414244454647494A4B4C4E4F40
+:100660005152535556585A5B5D5E606263656769C7
+:100670006B6D6E70727476797B7D7F818486888BDA
+:100680008D909295979A9D9FA2A5A8ABAEB1B4B755
+:10069000BABEC1C4C8CBCFD3D6DADEE2E6EAEEF208
+:1006A000F8FF5B735D004B6579626F617264207364
+:1006B000746172742E0A005B575D005B535D005BD2
+:1006C000525D005B445D005B435D000E036B0063A5
+:1006D0000036003000760032000000080359006F39
+:1006E00000750000000403090409027400040100FD
+:1006F000A0FA090400000103010100092111010011
+:10070000012240000705810308000A0904010001D5
+:1007100003010200092111010001224D0007058299
+:100720000308000A09040200010300000009211166
+:100730000100012236000705830308000A090403AB
+:10074000000203000000092111010001222000071E
+:100750000584032000010705040320000112011095
+:100760000100000008EDFE606001000102000106CA
+:1007700031FF0974A1010975150025FF9520750841
+:1007800081020976150025FF952075089102C005A4
+:10079000010980A101850216010026B7001A010097
+:1007A0002AB700751095018100C0050C0901A1014F
+:1007B0008503160100269C021A01002A9C0275106E
+:1007C00095018100C005010902A1010901A10005EF
+:1007D0000919012905150025019505750181029565
+:1007E00001750381010501093009311581257F95C6
+:1007F000027508810609381581257F9501750881E4
+:1008000006050C0A38021581257F950175088106B9
+:10081000C0C005010906A101050719E029E7150077
+:10082000250195087501810295017508810105086A
+:10083000190129059505750191029501750391012D
+:100840000507190029FF150026FF00950675088188
+:1008500000C00A002530325820006B6579626F6154
+:1008600072645F7265706F72743A20004B657962D2
+:100870006F617264204C4544732073746174653AEF
+:100880002025780A00646F6E652E0A00626F6F671C
+:100890006D61676963207363616E3A202E2E2E208E
+:1008A00000290A002575002F002575005D28002508
+:1008B00064002000256400200025640020002564D9
+:1008C000007C0025303258006D6F7573656B65795B
+:1008D000205B62746E7C782079207620685D2872B7
+:1008E00065702F61636C293A205B006D6B5F7768E0
+:1008F00065656C5F74696D655F746F5F6D617820AD
+:100900003D2025640A006D6B5F776865656C5F6DDF
+:1009100061785F7370656564203D2025640A006D11
+:100920006B5F74696D655F746F5F6D6178203D20EA
+:1009300025640A006D6B5F6D61785F737065656437
+:10094000203D2025640A006D6B5F696E74657276C8
+:10095000616C203D2025640A006D6B5F64656C61ED
+:1009600079203D2025640A006D6B5F776865656CB2
+:100970005F74696D655F746F5F6D6178203D2025E0
+:10098000640A006D6B5F776865656C5F6D61785FA9
+:100990007370656564203D2025640A006D6B5F748B
+:1009A000696D655F746F5F6D6178203D2025640A15
+:1009B000006D6B5F6D61785F7370656564203D20CD
+:1009C00025640A006D6B5F696E74657276616C20D8
+:1009D0003D2025640A006D6B5F64656C6179203D84
+:1009E0002025640A000A00257500363A20776865DC
+:1009F000656C5F74696D655F746F5F6D61783A20D7
+:100A0000000A00257500353A20776865656C5F6DD2
+:100A100061785F73706565643A20000A002575008F
+:100A2000343A2074696D655F746F5F6D61783A2048
+:100A3000000A00257500333A206D61785F73706598
+:100A400065643A20000A00257500323A20696E7408
+:100A5000657276616C286D73293A20000A0025754D
+:100A600000313A2064656C6179282A31306D732930
+:100A70003A20000A092D2056616C756573202D0AF5
+:100A8000004D3E004D25643E20003F0073657420FC
+:100A900064656661756C740A00433E200077686582
+:100AA00072652064656C74613A20637572736F724D
+:100AB0003D25642C20776865656C3D25640A536587
+:100AC0006520687474703A2F2F656E2E77696B6994
+:100AD00070656469612E6F72672F77696B692F4D3E
+:100AE0006F7573655F6B6579730A000A092D204D78
+:100AF0006F7573656B6579202D0A4553432F713AE5
+:100B000009717569740A313A0964656C6179282A3A
+:100B100031306D73290A323A09696E7465727661F3
+:100B20006C286D73290A333A096D61785F737065BB
+:100B300065640A343A0974696D655F746F5F6D614D
+:100B4000780A353A09776865656C5F6D61785F731F
+:100B5000706565640A363A09776865656C5F746923
+:100B60006D655F746F5F6D61780A0A703A09707223
+:100B7000696E742076616C7565730A643A097365F1
+:100B8000742064656661756C74730A75703A092B1C
+:100B9000310A646F776E3A092D310A706775703AC1
+:100BA000092B31300A7067646F776E3A092D313046
+:100BB0000A0A7370656564203D2064656C74612069
+:100BC0002A206D61785F7370656564202A20287221
+:100BD0006570656174202F2074696D655F746F5F47
+:100BE0006D6178290A003F004D3E2000433E200001
+:100BF0004C25640A0074696D65725F636F756E746D
+:100C00003A202530346C580A006B6579626F617246
+:100C1000645F69646C653A2025580A006B657962E7
+:100C20006F6172645F70726F746F636F6C3A2025CE
+:100C3000580A00686F73745F6B6579626F617264E4
+:100C40005F6C65647328293A2025580A000A092D2B
+:100C500020537461747573202D0A004743433A2072
+:100C6000342E392E32204156522D4C4942433A20DF
+:100C7000312E382E31204156525F415243483A209E
+:100C8000617672350A004F5054494F4E533A204C0A
+:100C900055464120424F4F544D41474943204D4F07
+:100CA0005553454B45592045585452414B455920C1
+:100CB000434F4E534F4C4520434F4D4D414E4420E2
+:100CC000343039360A004255494C443A20333330E7
+:100CD000323235382D6469727479202832333A34CF
+:100CE000303A3337204A756E203139203230313670
+:100CF000290A005649443A20307846454544285947
+:100D00006F7529205049443A2030783630363028E3
+:100D10006B633630763229205645523A203078308F
+:100D20003030310A00444553433A20412063757303
+:100D3000746F6D206B6579626F6172640A000A09D5
+:100D40002D2056657273696F6E202D0A000A092DD9
+:100D500020436F6E736F6C65202D0A4553432F71CE
+:100D60003A09717569740A6D3A096D6F7573656B2F
+:100D700065790A000A092D204D61676963202D0AF3
+:100D8000443A094465627567204D65737361676510
+:100D900020546F67676C650A583A094D617472692F
+:100DA00078204465627567204D6F646520546F67D5
+:100DB000676C65202D2053686F77206B65797072A2
+:100DC000657373657320696E206D61747269782034
+:100DD000677269640A4B3A094B6579626F617264A4
+:100DE00020446562756720546F67676C65202D200D
+:100DF00053686F77206B65797072657373207265C5
+:100E0000706F72740A4D3A094465627567204D6FC0
+:100E100075736520546F67676C650A563A095665A5
+:100E20007273696F6E0A533A095374617475730A69
+:100E3000433A09416374697661746520436F6E7348
+:100E40006F6C65204D6F64650A46312D4631303A2E
+:100E50000953776974636820746F204C61796572F7
+:100E600020302D392028463130203D204C30290AB1
+:100E7000302D393A0953776974636820746F204CB8
+:100E80006179657220302D390A4553433A09537709
+:100E90006974636820746F204C617965722030201A
+:100EA00028616C7465726E617465206B65792031A0
+:100EB000290A47524156453A0953776974636820B5
+:100EC000746F204C6179657220302028616C7465E4
+:100ED000726E617465206B65792032290A50415524
+:100EE00053453A094A756D7020746F20426F6F74D4
+:100EF0006C6F6164657220285265736574290A45B8
+:100F00003A095072696E7420454550524F4D205336
+:100F1000657474696E67730A000A002575002E6C8B
+:100F20006576656C3A20000A002575002E656E61B5
+:100F3000626C653A20000A00253032580062616315
+:100F40006B6C696768745F636F6E6669672E726148
+:100F5000773A20000A002575002E6E6B726F3A20DA
+:100F6000000A002575002E737761705F6261636B04
+:100F7000736C6173685F6261636B73706163653A20
+:100F800020000A002575002E737761705F6772611B
+:100F900076655F6573633A20000A002575002E6E42
+:100FA0006F5F6775693A20000A002575002E737718
+:100FB00061705F72616C745F726775693A20000AD4
+:100FC000002575002E737761705F6C616C745F6CC7
+:100FD0006775693A20000A002575002E63617073F9
+:100FE0006C6F636B5F746F5F636F6E74726F6C3A7C
+:100FF00020000A002575002E737761705F636F6EA5
+:1010000074726F6C5F636170736C6F636B3A200016
+:101010000A0025303258006B65796D61705F636F2F
+:101020006E6669672E7261773A20000A00257500A6
+:101030002E6D6F7573653A20000A002575002E6BC2
+:101040006579626F6172643A20000A002575002E8E
+:101050006D61747269783A20000A002575002E656A
+:101060006E61626C653A20000A00253032580064D7
+:10107000656275675F636F6E6669672E7261773A46
+:1010800020000A0025750064656661756C745F6CEC
+:10109000617965723A20003F000A6D6F7573653A99
+:1010A000206F66660A000A6D6F7573653A206F6E71
+:1010B0000A000A6B6579626F6172643A206F666636
+:1010C0000A000A6B6579626F6172643A206F6E0A7A
+:1010D000000A6D61747269783A206F66660A000AC8
+:1010E0006D61747269783A206F6E0A000A646562F5
+:1010F00075673A206F66660A000A64656275673A2A
+:10110000206F6E0A000A0A4A756D70696E67207456
+:101110006F20626F6F746C6F616465722E2E2E206B
+:1011200000433E20006565636F6E6669673A0A009A
+:101130006261636B6C6967687420737465703A20D0
+:1011400025750A006261636B6C6967687420746F4F
+:1011500067676C653A2025750A006261636B6C698C
+:101160006768742064656372656173653A202575EC
+:101170000A006261636B6C6967687420696E6372F0
+:10118000656173653A2025750A0011241FBECFEFF3
+:10119000DAE0DEBFCDBF04B603FE24C0809140027A
+:1011A00090914102A0914202B09143028730904B4E
+:1011B000A740B04BB9F41092400210924102109235
+:1011C00042021092430214BE84B7877F84BF88E135
+:1011D0000FB6F89480936000109260000FBEE0E0BC
+:1011E000F8E3099511E0A0E0B1E0E2E0FEE602C01C
+:1011F00005900D92A634B107D9F712E0A6E4B1E04C
+:1012000001C01D92A034B107E1F70E94C7180C94E9
+:10121000FF360C940000FF93EF93E0914601F091AC
+:101220004701309709F00995EF91FF910895FC016E
+:101230008591803011F0EFDFFBCF0895FF27E0E2CA
+:1012400030E247FF0CC0419597FF09C0EDE2609581
+:10125000709580959095611D711D811D911D27FFD1
+:1012600002C0219530E350E2AA27660F771F881F3E
+:10127000991FAA1FA41710F0A41B63955A95A9F7EC
+:10128000AA3008F0A95FA05DAF93F39561157105D1
+:101290008105910541F7ED3211F4EF93F395F217C3
+:1012A00018F43F93F395FBCF8F91B5DFFA95E1F7F3
+:1012B0000895E991F9918591803021F0853219F0F6
+:1012C000AADFF9CF089520E0E89455915532C1F393
+:1012D000503311F4689455915A3348F4505390F3B5
+:1012E000220F022E220F220F200D250FF4CF0EF415
+:1012F000219589919991533619F3533729F1533533
+:1013000059F1BC0188279927E8945C3621F489912A
+:10131000999168945591543639F446EF7EF077FFF1
+:101320000DC08FEF9FEF0AC055374AE039F05835AE
+:1013300040E121F0523642E009F00895FF93EF9327
+:101340007DDFEF91FF91B7CFFF93EF93FC01819188
+:101350008030B9F360DFFBCFFF93EF9368DFF1CF0D
+:10136000DF93CF93CDB7DEB72596A3DFCF91DF9183
+:1013700008950895089581E0089508950C94BA0998
+:101380000C94BB090C94BD09269A2E988FEF9FEF01
+:10139000909387008093860082E28093800089E1A9
+:1013A000809381000C9478340E94C4090C94B9098C
+:1013B000282F2E9880918000211108C08F7D809366
+:1013C000800010928B0010928A00089580628093B2
+:1013D0008000233019F48FEF9FEF0FC083E090E07F
+:1013E000821B9109880F991F2FEF3FEFA90102C0BF
+:1013F000569547958A95E2F7CA0190938B008093A2
+:101400008A000895CF93DF93DC01462F50E04930E6
+:10141000510508F065C0FA01EA5AFF4F0C94B13645
+:10142000EC010E9404298272809348019A819923D9
+:1014300069F0882319F085E390E002C089E290E02A
+:101440000E94C828DF91CF910C944E29882319F06F
+:1014500085E390E002C089E290E00E94E528F2CFA7
+:1014600012968C918823E1F1DF91CF910C94CD13EA
+:1014700012968C918823A1F1DF91CF910C943912AF
+:1014800012968C91882361F1DF91CF910C945112C7
+:1014900012968C91882321F1DF91CF910C947012D8
+:1014A00012968C918823E1F0DF91CF910C948B12EE
+:1014B00012968C918823A1F0DF91CF910C94A51204
+:1014C00012968C91882361F0DF91CF910C94C01219
+:1014D00012968C91882321F0DF91CF910C94C31345
+:1014E000DF91CF91089581E008950C94730A0895D7
+:1014F0000F931F93CF93DF938C01FC01C081D181A7
+:10150000CE010E944928BE010E94AF0DEC01B80136
+:101510000E94750A882309F474C1F8018281882326
+:1015200009F45BC08091540181111FC0C431F0E700
+:10153000DF0709F00AC10E94770A81E08093540115
+:101540000E94392A909353018093520110924B01CB
+:1015500010924D0110924C0110924F0110924E01C9
+:1015600010925101109250014CC180915201909102
+:1015700053010E94452A883C910570F480914B01EB
+:10158000E82FF0E0EE0FFF1FE45BFE4FD183C08336
+:101590008F5F80934B0135C1C43120E7D20708F03B
+:1015A00028C1C23080E7D80710F5C11590E7D907E8
+:1015B00009F0DAC0F8018281882309F4BFC00E94D3
+:1015C0005023FFEF24E38CE0F15020408040E1F70E
+:1015D00000C000000E94942A14C1C431F0E7DF0764
+:1015E00008F0D3C0C23020E7D20708F49BC0F8014E
+:1015F0008281882309F4A2C00E944E2C811102C06E
+:101600000E942F2C0E946B2C90E09093F901809304
+:10161000F801C230F0E7DF0721F48091F801816022
+:101620007AC0C33020E7D20721F48091F8018260AC
+:1016300072C0C43080E7D80721F48091F80184603B
+:101640006AC0C53090E7D90719F48091F80127C026
+:10165000C630E0E7DE0721F48091F80180615BC0CD
+:10166000C730F0E7DF0721F48091F801806253C0B2
+:10167000C83020E7D20721F48091F80180644BC084
+:10168000C93080E7D80721F48091F801806843C011
+:10169000CA3090E7D90729F48091F8018460886006
+:1016A0003AC0CB30E0E7DE0721F48091F8018E7F6D
+:1016B00032C0CC30F0E7DF0721F48091F8018D7F54
+:1016C0002AC0CD3020E7D20721F48091F8018B7F2A
+:1016D00022C0CE3080E7D80719F48091F8011AC0F3
+:1016E0008091F801CF3090E7D90711F48F7E13C0B5
+:1016F000C031E0E7DE0711F48F7D0DC0C131F0E7A6
+:10170000DF0711F48F7B07C0C231D04711F48F7708
+:1017100002C08B7F877F8093F8018091F8010E943F
+:101720006F2C6FC0C11580E7D80741F0C130D0479A
+:10173000F1F081E08093490180934A01C801DF9173
+:10174000CF911F910F910C94C009C43120E7D207AB
+:1017500008F04FC0C23080E7D80708F048CFC11565
+:1017600090E7D90709F42BCFC130D04711F7F80122
+:101770008281882319F386E492E00E941709809100
+:10178000E70181608093E7013CC0C333E0E7DE07F7
+:10179000A1F4F8018281882321F01092490182E0AE
+:1017A00017C080914901811106C086E20E94A51FE1
+:1017B00086E20E946D2082E019C0C433D04709F050
+:1017C000B8CFF8018281882331F010924A0182E17A
+:1017D0000E94BC2016C080914A01811106C087E298
+:1017E0000E94A51F87E20E946D2082E10E94C32013
+:1017F00008C0C333F0E7DF0761F2C433D04709F311
+:1018000098CF80E0DF91CF911F910F9108950C94B4
+:10181000D4090C94BE092EE0729FF001112436E425
+:10182000839FE00DF11D1124E60FF11DEE0FFF1F48
+:10183000E25DFE4F859194910E94C10D811540E5B6
+:10184000940708F047C0811520E4920708F013C1FF
+:10185000883E910520F5803E910508F07CC1883ACC
+:10186000910578F4853A910508F0A5C0813091057D
+:1018700009F471C108F42EC18430910508F06BC1E0
+:1018800029C18B3B910508F4A1C0803C910508F467
+:1018900021C1FC01EE0FFF1FE456F040E6C08115A8
+:1018A00030E2930758F4811541E0940708F053C1E2
+:1018B000803F910508F40EC190650895811520E3DD
+:1018C000920708F0D5C0FC01FF70EE0FFF1FE45E29
+:1018D000FE4FCBC0811535E5930708F043C0811555
+:1018E00044E5940708F0DEC0811522E5920708F56B
+:1018F000811531E5930708F0C1C0482F437021E0FE
+:1019000030E002C0220F331F4A95E2F73C68AC0179
+:1019100064E0569547956A95E1F74370342B8F70D4
+:101920008695869540E2849FC0011124822B932BDB
+:101930000895282F26952695AC01437055278115CB
+:10194000934508F0A0C080E2289F9001112481E017
+:1019500090E002C0880F991F4A95E2F7822B932BE3
+:101960009C6808958F3240E7940790F48F3120E708
+:10197000920708F0A2C0811536E5930708F497C0D6
+:101980009C0130562115304108F0A4C09F7093C0CF
+:10199000803320E7920709F497C008F492C081339E
+:1019A00040E7940709F493C08233904709F092C04E
+:1019B00080E093ED0895853A910509F48EC0863A4A
+:1019C000910509F08DC082E890E40895883A910568
+:1019D00009F489C0893A910509F488C08A3A9105C9
+:1019E00009F487C08B3A910509F486C08C3A9105B9
+:1019F00009F485C08D3A910509F484C0803B9105B6
+:101A000009F483C08E3A910509F482C08F3A91059A
+:101A100009F481C0813B910509F480C0823B9105A6
+:101A200009F47FC0833B910509F47EC0843B910596
+:101A300009F47DC0853B910509F47CC0863B910586
+:101A400009F47BC0873B910509F47AC0883B910576
+:101A500009F479C0893B910509F478C08A3B910566
+:101A600009F477C080E094E40895859194910895F5
+:101A70009927906C08959F70906A0895982F8827F1
+:101A8000816F906A089590E2299F9001112481E06E
+:101A900090E002C0880F991F4A95E2F7822B932BA2
+:101AA0009A680895982F8827846F906A08958F7197
+:101AB0009927982F8827906208958F519047946DA9
+:101AC000089580E091ED089580E090ED089580E024
+:101AD00092ED089580E090E0089581E890E4089503
+:101AE00083E890E4089582EE94E4089589EE94E406
+:101AF00008958AEE94E4089585EB94E4089586EBC6
+:101B000094E4089587EB94E408958CEC94E40895AC
+:101B10008DEC94E4089583E895E408958AE895E4CB
+:101B2000089582E995E4089584E995E4089581E2B1
+:101B300096E4089583E296E4089584E296E4089595
+:101B400085E296E4089586E296E4089587E296E4B5
+:101B500008958AE296E4089580E090E008959EE07A
+:101B6000799FF001112496E4899FE00DF11D112465
+:101B7000E60FF11DEE0FFF1FE25DFE4F8591949180
+:101B800008958238910549F1B0F48133910509F443
+:101B900058C048F48932910509F44EC08A32910543
+:101BA00009F454C008958533910509F440C0893380
+:101BB000910599F00895833E910529F138F4803E0E
+:101BC000910591F0823E9105A1F00895863E910520
+:101BD000F9F0873E910531F108952091F80120FD3B
+:101BE0003AC021FD38C008958091F80180FD35C0CC
+:101BF00032C08091F80182FF32C08091F80184FDEB
+:101C000030C083EE39C08091F80182FD28C0F5CF45
+:101C10008091F80183FF27C08091F80184FD21C0E5
+:101C200087EE2AC08091F80183FD1DC0F5CF809119
+:101C3000F80185FD1AC01BC08091F80185FD17C011
+:101C400014C08091F80186FD14C015C08091F80180
+:101C500086FD11C00EC080EE0FC089E30DC082EE7C
+:101C60000BC080E009C086EE07C089E205C085E3AD
+:101C700003C08AE201C081E390E008950C94C20998
+:101C8000E82FF0E0ED5DFE4F8081E82FEF70F0E08F
+:101C900082958F7021E030E0A90102C0440F551FEA
+:101CA0008A95E2F740A308950F931F93CF93DF9394
+:101CB000C4E0D0E001E010E0FE01ED5DFE4F808168
+:101CC000E82FEF70F0E021A182958F70A80102C08B
+:101CD000440F551F8A95E2F7CA01822B81A38C2FEE
+:101CE0000E94400E219740F78DE090E061E070E0A7
+:101CF000FC01EB5EFE4F2081E22FEF70F0E042A18D
+:101D000022952F70DB0102C0AA0FBB1F2A95E2F7B4
+:101D10009D01242B22A3019758F7DF91CF911F91AA
+:101D20000F9108950F931F93CF93DF9385B780682A
+:101D300085BF85B7806885BFC4E0D0E001E010E0D2
+:101D4000FE01ED5DFE4F8081E82FEF70F0E021A1F4
+:101D500082958F70A80102C0440F551F8A95E2F743
+:101D6000CA01822B81A38C2F0E94400E219740F73D
+:101D70008DE090E061E070E0FC01EB5EFE4F2081C1
+:101D8000E22FEF70F0E042A122952F70DB0102C03C
+:101D9000AA0FBB1F2A95E2F79D01242B22A30197CE
+:101DA00058F7DF91CF911F910F910C94070CEF9290
+:101DB000FF920F931F93CF93DF930FE511E0C4E0E1
+:101DC000EE24E394F12CD5E08C2F0E94400E8DE0A0
+:101DD00090E040E050E0FC01EB5EFE4F6081E62FBA
+:101DE000EF70F0E020A130E062956F7002C0359591
+:101DF00027956A95E2F720FD09C09701082E02C0D9
+:101E0000220F331F0A94E2F7422B532B019718F746
+:101E1000F801929182918F018417950721F05183E7
+:101E20004083D09300018C2F0E94400EC15060F679
+:101E30008091000187FD35C09091E70190FF10C0AF
+:101E4000282F332727FD30953F938F938FE892E01B
+:101E50009F938F930E94B0090F900F900F900F9057
+:101E60008091000181508093000187FD07C08FE9B8
+:101E70009FE00197F1F700C0000013C080E090E000
+:101E8000FC01E15AFE4FDC01AB5ABE4F18962D9172
+:101E90003C911997318720870297863FEFEF9E0785
+:101EA00079F70E94090C81E0DF91CF911F910F918A
+:101EB000FF90EF900895E82FF0E0EE0FFF1FE15A3A
+:101EC000FE4F808191810895EF92FF920F931F93AF
+:101ED000CF93DF938091E70180FF04C080E792E019
+:101EE0000E9417090FE511E0C0E0D0E088E5E82E78
+:101EF00082E0F82E8091E70180FF13C0F801808115
+:101F000091810E94A4299F938F93DF93CF93FF9297
+:101F1000EF920E94B0090F900F900F900F900F90CA
+:101F20000F9021960E5F1F4FC530D10519F7DF9135
+:101F3000CF911F910F91FF90EF9008950F931F93F2
+:101F4000CF9309E611E0C0E0F801929182918F01F0
+:101F50000E948229C80FF1E00F351F07A9F78C2FC7
+:101F6000CF911F910F91089521B3342F30952323E2
+:101F700031B3432B3FB7F894FC01680F791FE61784
+:101F8000F70789F0819198E041BB000000C087FF0E
+:101F900021BB880F000000C000C000C021BB00C0F2
+:101FA0009A9591F7ECCF3FBF089520B3242B20BB27
+:101FB0009B01220F331F620F731F0E94B40F87EC27
+:101FC00090E00197F1F700C00000089540E20C9402
+:101FD000D50FAF92BF92CF92DF92EF92FF920F9305
+:101FE0001F93CF93DF936C01790150E0FA01EE5516
+:101FF000FA4F44918FEF90E0FC01E61BF109EE559A
+:10200000FA4FE491E09509F495C0C42FD0E08E1BFF
+:1020100091098C9F90018D9F300D9C9F300D112454
+:10202000E32F8CE3A82EB12CC601B5010E9489369E
+:10203000DC016230710509F446C0D0F46115710508
+:1020400099F16130710509F079C0C31BD109B5015F
+:10205000681B790BC69FC001C79F900DD69F900D3E
+:102060001124B5010E948936032F060F142F67C073
+:102070006430710509F44BC0B8F16530710509F0A1
+:102080005DC0C31BD109B501681B790BC69FC00198
+:10209000C79F900DD69F900D1124B5010E948936DF
+:1020A000132FE32FE60F44C0C31BD109CC9DC00101
+:1020B000CD9D900DDC9D900D1124B5010E948936B7
+:1020C000132F160F35C0C31BD109CA9FC001CB9F68
+:1020D000900DDA9F900D1124B5010E948936142FBE
+:1020E000032FE32FE60F2BC0C31BD109B501681BDB
+:1020F000790BC69FC001C79F900DD69F900D1124EC
+:10210000B5010E948936132F160F032F0FC0C31B72
+:10211000D109CA9FC001CB9F900DDA9F900D112469
+:10212000B5010E948936032F060F132FE42F07C035
+:10213000042F05C0E42F142F042F01C0E0E0D701C5
+:1021400011960C9311971C931296EC93DF91CF91FB
+:102150001F910F91FF90EF90DF90CF90BF90AF90C5
+:10216000089587E090E00C94BF36AB01BC0187E096
+:1021700090E00C94DD368091E70180FF08C083E792
+:1021800094E09F938F930E94B0090F900F9083E08B
+:102190008093FA018091FB01807884668F77809329
+:1021A000FB018CEC8093FC018093FD016091FA01AE
+:1021B0007091FB018091FC019091FD010C94B51090
+:1021C0008091E70180FF08C08CE594E09F938F9396
+:1021D0000E94B0090F900F908091E70180FF0FC01F
+:1021E0008091FA0181701F928F938FE394E09F9307
+:1021F0008F930E94B0090F900F900F900F908091D5
+:10220000E70180FF10C08091FA0186958F731F92BD
+:102210008F9384E294E09F938F930E94B0090F9074
+:102220000F900F900F908091E70180FF19C080916F
+:10223000FA01881F8827881F9091FB01292F220F00
+:10224000822B97FB992790F99F938F938AE094E0D4
+:102250009F938F930E94B0090F900F900F900F9053
+:102260008091E70180FF0EC08091FC011F928F9347
+:1022700080EF93E09F938F930E94B0090F900F908F
+:102280000F900F908091E70180FF0EC08091FD01BB
+:102290001F928F9386ED93E09F938F930E94B009D6
+:1022A0000F900F900F900F9008958091FA0180FF8A
+:1022B00006C060E170E082E092E00C94E60F80E0FE
+:1022C00090E0FC01EE5FFD4F1182108212820396B6
+:1022D00080339105B1F7EDCF20E030E0F901EE5FFA
+:1022E000FD4F8183608342832D5F3F4F2033310553
+:1022F000A9F70C945511EF92FF920F931F93CF9370
+:10230000DF9300D01F92CDB7DEB70091FA01109194
+:10231000FB012091FC013091FD010093FE0110931F
+:10232000FF0120930002309301022091FA0120FF67
+:1023300021C0042FF62EE92E182F9E012F5F3F4F4C
+:102340000E94E90F8091FE0110FB87F98093FE0146
+:1023500016958091FF018078182BE0FA17F91093F9
+:10236000FF01F0920002009301024B8169818A8192
+:102370000E946C110F900F900F90DF91CF911F91E1
+:102380000F91FF90EF9008950F931F93CF93DF93DA
+:10239000EC01062F142F9091FA0190FF65C0892F50
+:1023A0008E77823021F4CE010E947B111BC0892FD1
+:1023B00086958F732EE3280F2F73243018F4109115
+:1023C000FD0110C0865C8F73893060F4C92FCC1F6B
+:1023D000CC27CC1FD091FB018D2F880FC82BD7FBAA
+:1023E000DD27D0F98091FA01C0FB87F98093FA01CB
+:1023F000C6958091FB018078C82BD0FBC7F9C093AC
+:10240000FB010093FC011093FD016091FA017091B2
+:10241000FB018091FC019091FD010E94B51080911B
+:10242000FD011F928F938091FC011F928F938091E9
+:10243000FA01881F8827881F9091FB01292F220FFE
+:10244000822B97FB992790F99F938F9382ED92E0CF
+:102450009F938F930E94B0098DB79EB708960FB6D1
+:10246000F8949EBF0FBE8DBFDF91CF911F910F914A
+:102470000895EAEFF1E02081221F2227221F3091E8
+:10248000FB01432F440F842F822B37FB992790F9B0
+:10249000089668E671E00E949D36438162810C9443
+:1024A000C4112091FA01221F2227221F3091FB0123
+:1024B000432F440F842F822B37FB992790F98830C4
+:1024C00091051CF4805A9E4F01C0089768E671E0A0
+:1024D0000E949D364091FD016091FC010C94C41155
+:1024E0006091FC01862F90E0883F910514F4685FAD
+:1024F00001C06FEF8091FA01881F8827881F909193
+:10250000FB01292F220F97FB992790F94091FD019C
+:10251000822B0C94C4116091FC01862F90E00897E7
+:1025200014F0685001C060E08091FA01881F88278C
+:10253000881F9091FB01292F220F97FB992790F973
+:102540004091FD01822B0C94C4114091FD01842F18
+:1025500090E0883F910514F4485F01C04FEF8091EF
+:10256000FA01881F8827881F9091FB01292F220FCD
+:1025700097FB992790F96091FC01822B0C94C41170
+:102580004091FD01842F90E0089714F0485001C05D
+:1025900040E08091FA01881F8827881F9091FB01F5
+:1025A000292F220F97FB992790F96091FC01822B2C
+:1025B0000C94C41180917A0181110FC081E0809345
+:1025C0007A0189E0809391008FB7F89493E090931B
+:1025D000990090ED909398008FBF089580917100BD
+:1025E0008260809371008091E70180FF08C081ECD8
+:1025F00092E09F938F930E94B0090F900F900895DF
+:10260000809171008D7F809371008091E70180FF40
+:1026100008C08FEA92E09F938F930E94B0090F90B9
+:102620000F9008959091FA0190FF4BC0917881111D
+:1026300002C0926007C0883110F09E6203C08F73A1
+:10264000880F982B9093FA016091FA017091FB0129
+:102650008091FC019091FD010E94B5108091FA01DA
+:1026600086958F731F928F9385E293E09F938F934C
+:102670000E94B0098091FA01982F9E770F900F90D9
+:102680000F900F90923019F40E94001307C08695A6
+:10269000825C8F73863110F40E94EE128091FA01F1
+:1026A000881F8827881F9091FB01292F220F97FBF5
+:1026B000992790F94091FD016091FC01822B0C94C7
+:1026C000C41108958091E70181608093E7018FEB49
+:1026D00093E09F938F930E94B00981E080937B01E8
+:1026E0008091E7010F900F9080FF08C089EA93E086
+:1026F0009F938F930E94B0090F900F900E944E2CD1
+:10270000811110C08091E70180FF08C081E893E04B
+:102710009F938F930E94B0090F900F900E942F2CCF
+:102720000E94BB100E94B1106093FA017093FB01EC
+:102730008093FC019093FD016E77C1F48091E701D5
+:1027400080FF08C088E393E09F938F930E94B009B5
+:102750000F900F900E94BB100E94B1106093FA017D
+:102760007093FB018093FC019093FD010E94E010A7
+:102770000E94DA128091FA0180FF04C086958F735F
+:102780000C94121308958091FA0186958F738F5FD0
+:10279000883108F081E00C9412138091FA01982F8F
+:1027A000909590FB80F98093FA016091FA01709105
+:1027B000FB018091FC019091FD010E94B510809178
+:1027C000FA0181701F928F9387EF92E09F938F930E
+:1027D0000E94B0098091FA010F900F900F900F9016
+:1027E00080FF04C086958F730C9412130E9400130F
+:1027F0002FEF80E792E0215080409040E1F700C049
+:1028000000000C945511CF93C82F809178019091BE
+:1028100079010E94452AEC2FF0E0E256FB4FE4914B
+:10282000F0E08E179F0718F10E94392A90937901E2
+:1028300080937801E0917701F0E0EE55FB4F4491F1
+:102840008091FA01881F8827881F9091FB01292F0A
+:10285000220F97FB992790F96091FC01822B0E942F
+:102860007B118091770190E0019680937701CF9161
+:102870000895CF93C82F80917501909176010E94A1
+:10288000452AEC2FF0E0E556FB4FE491F0E08E177F
+:102890009F07E8F00E94392A909376018093750192
+:1028A0004091FD016091FC01809173019091740150
+:1028B0000E947B118091730190917401019668E6EA
+:1028C00071E00E9489369093740180937301CF91D7
+:1028D0000895CF92DF92FF920F931F93CF93DF93D0
+:1028E000F82E80917101909172010E94452AEF2D7E
+:1028F000E695F0E0E556FB4FE491F0E08E179F0778
+:10290000F0F10E94392A909372018093710102E0E4
+:1029100012E0C0E0D0E088E6C82EDD24D394809198
+:102920006F01909170018C0F9D1FB6010E94893636
+:1029300098014091FD016091FC010E94E90F6696AB
+:102940000D5F1F4FC03681E0D80749F70E9455112F
+:1029500020916F0130917001F0FE0BC0C90101960A
+:1029600068E671E00E9489369093700180936F0150
+:1029700006C0215031093093700120936F01DF911F
+:10298000CF911F910F91FF90DF90CF9008958F927C
+:102990009F92AF92BF92CF92DF92EF92FF920F93EE
+:1029A0001F93CF93DF93C82F80FF03C0DD24DA94F9
+:1029B00002C0DD24D39480916D0190916E010E943C
+:1029C000452AC695EC2FF0E0E856FB4FE491F0E085
+:1029D0008E179F0708F466C00E94392A90936E01F3
+:1029E00080936D0192E0E92E92E0F92E04E012E06E
+:1029F000C0E0D0E027E0822E912CF80131971082C0
+:102A0000F7011082F801108287E0A82EB12CC12CAA
+:102A100080916C018C0D87FD805F992787FD9095D3
+:102A2000C817D907E9F42091FD012A9DC0012B9D0B
+:102A3000900D1124B4010E949D36462F8091FA0119
+:102A4000881F8827881F9091FB01592F550F97FBEE
+:102A5000992790F997016091FC01852B0E94E90F5D
+:102A6000CD0CF1E0AF1AB10899F6219683E0E80E9B
+:102A7000F11C0D5F1F4FC031D10509F0BECF0E9480
+:102A8000551180916C0191E0D91206C0811102C0EC
+:102A90008FE006C0815004C090E001968F709927A6
+:102AA00080936C01DF91CF911F910F91FF90EF9078
+:102AB000DF90CF90BF90AF909F908F9008959F929E
+:102AC000AF92BF92CF92DF92EF92FF920F931F933C
+:102AD000CF93DF93CDB7DEB7E0970FB6F894DEBFA4
+:102AE0000FBECDBF182F80916A0190916B010E949B
+:102AF000452AE12FF0E0EB56FB4FE491F0E08E1712
+:102B00009F0708F493C00E94392A90936B01809329
+:102B10006A01CE0101967C015E0193E0A90EB11C11
+:102B2000C12CD12C8701F50131971082F701108259
+:102B3000F5011082912C9091010180916901999E7B
+:102B4000800D112487FD04C080311CF08FE001C08E
+:102B500080E0992787FD9095C816D906A1F4809149
+:102B6000FA01881F8827881F9091FB01592F550F64
+:102B700097FB992790F997014091FD016091FC0125
+:102B8000852B0E94E90F9394F7E09F12D4CF8FEF2B
+:102B9000C81AD80A93E0E90EF11CE3E0AE0EB11CAE
+:102BA000F0E1CF16D10409F0BECFA4E0B2E089E095
+:102BB00090E0FC01EF70FF279D0121503109AF012A
+:102BC000440F551FE40FF51FBF01600F711FFB017C
+:102BD0004181F901408321503109FB014081F90114
+:102BE0004083FB0122812C93019613968931910534
+:102BF00001F70E9455119091010180916901913076
+:102C000049F48A3F2CF489EF809369018FEF08C063
+:102C100081500AC087313CF086E18093690181E0F0
+:102C20008093010103C08F5F80936901E0960FB626
+:102C3000F894DEBF0FBECDBFDF91CF911F910F91F2
+:102C4000FF90EF90DF90CF90BF90AF909F9008954E
+:102C50001F920F920FB60F9211242F933F934F9311
+:102C60005F936F937F938F939F93AF93BF93EF93F4
+:102C7000FF938091FA0186958F739EE3980F9F735F
+:102C8000943020F482500E94031423C09AE3980FDA
+:102C90009F73933020F486500E9439141AC097E332
+:102CA000980F9F73963020F489500E94691411C0C8
+:102CB00091E3980F9F73963020F48F500E94C714B1
+:102CC00008C09BE2980F9F73933018F485510E94BF
+:102CD0005F15FF91EF91BF91AF919F918F917F9180
+:102CE0006F915F914F913F912F910F900FBE0F9079
+:102CF0001F9018958091870108959FB7F8941092BE
+:102D00007E019FBF90913602943009F057C0909198
+:102D1000E9009F703091EC00232F217030FD20E8F6
+:102D2000922B24E02093E9002091EB0020FF43C088
+:102D30002091EE0027FF3FC020917C01222321F04B
+:102D40002091E80025FF37C010927C0126E03091E9
+:102D5000E80035FD15C030913602343061F5309110
+:102D6000EB0035FD28C0215021F481E080937C01E7
+:102D700022C0EFE9FFE03197F1F700C00000E7CF94
+:102D80008093F1008091E80085FD0AC08091E80001
+:102D900080FFFCCF8091E8008E778093E80006C02A
+:102DA0008FB7F89421E020937E018FBF9F7090939E
+:102DB000E90080E008959F709093E9008FEF0895F7
+:102DC000CF93DF9300D01F92CDB7DEB79C018091E7
+:102DD0003602843019F593E099833B832A839093DC
+:102DE000E9008FEF9091E800815095FD06C095EDC8
+:102DF0009A95F1F700008111F5CF8091E80085FFE9
+:102E00000DC040E050E063E070E0CE0101960E940A
+:102E100079198091E8008E778093E8000F900F90E9
+:102E20000F90DF91CF910895CF93DF9300D01F9241
+:102E3000CDB7DEB720913602243021F522E0298378
+:102E40009B838A8383E08093E9008FEF9091E80071
+:102E5000815095FD06C095ED9A95F1F7000081111E
+:102E6000F5CF8091E80085FF0DC040E050E063E0C1
+:102E700070E0CE0101960E9479198091E8008E776A
+:102E80008093E8000F900F900F90DF91CF910895FD
+:102E9000209136022430F1F422E02093E9002FEF54
+:102EA0003091E800215035FD06C035ED3A95F1F737
+:102EB00000002111F5CF2091E80025FF0BC040E074
+:102EC00050E065E070E00E9479198091E8008E770B
+:102ED0008093E8000895CF93DF9320913602243049
+:102EE00039F521E02093E9002FEF3091E8002150DF
+:102EF00035FD06C035ED3A95F1F700002111F5CF0B
+:102F00002091E80025FF14C0EC0140E050E068E0AB
+:102F100070E00E9479198091E8008E778093E80034
+:102F200088E0FE01AFE7B1E001900D928A95E1F7EC
+:102F3000DF91CF91089587EC96E00E941709809168
+:102F40003502811109C00E940E1B0E946B1B8091EB
+:102F5000E20084608093E200089583EC96E00E9492
+:102F600017091092350208958FEB96E00C9417091B
+:102F70008BEB96E00C94170987EB96E00E941709FB
+:102F80000C94FC2920917D012F5F822F62E30E9427
+:102F90007D36992319F020937D01089510927D01CB
+:102FA00080917E01882371F180913602843041F551
+:102FB0008091E9008F702091EC00922F917020FD9C
+:102FC00090E8892B94E09093E9009091EB0090FFBA
+:102FD00014C09091EE0097FF10C09091E80095FF0B
+:102FE00003C01092F100F9CF9091E80090FF05C066
+:102FF0009091E8009E779093E8008F708093E900AD
+:1030000010927E01089542E061EC81E00E94881AEE
+:1030100042E061EC82E00E94881A42E061EC83E0C9
+:103020000E94881A42E261EC84E00C94881A809134
+:103030003802833009F453C030F4813071F08230AB
+:1030400009F48CC008958A3009F478C08B3009F4F3
+:103050005EC0893009F09AC020C080913702813A61
+:1030600009F094C08091E800877F8093E800809108
+:103070003B0290913C02892B21F468E08FE791E0BC
+:1030800003C060E080E090E070E00E94C41980918D
+:10309000E8008B778093E8000895809137028132B1
+:1030A00009F074C080913B0290913C02892B09F099
+:1030B0006DC08091E800877F8093E8008091E800F0
+:1030C00082FD05C0809136028111F8CF5FC08091EA
+:1030D000F100809387018091E8008B7753C0809145
+:1030E0003702813A09F052C080913B0290913C0234
+:1030F000892B09F04BC08091E800877F8093E8001E
+:103100008091E80080FFFCCF80910C0136C0809157
+:1031100037028132D9F580913B0290913C02892B94
+:10312000A9F58091E800877F8093E8000E94BD1A8E
+:103130008091390280930C010C94502380913702C6
+:10314000813221F58091E800877F8093E8000E941A
+:10315000BD1A80913A0280938801089580913702C8
+:10316000813AA1F48091E800877F8093E800809104
+:10317000E80080FFFCCF809188018093F10080916E
+:10318000E8008E778093E8000C94BD1A089584B708
+:10319000877F84BF88E10FB6F89480936000109217
+:1031A00060000FBE80E880936100109261000E9471
+:1031B0009D1E0E940E1B0E946B1B8091E20084608A
+:1031C0008093E2008DE796E10E947D2978940E9429
+:1031D000F01D0E949F1E82E091E00E940B1E86EA75
+:1031E00096E00E94170980913602853089F482EAC0
+:1031F00096E00E9417090E94BE298091340288231C
+:1032000091F30E94EB29882371F30E946319EBCF9D
+:103210000E94C71EE8CF292F332723303105C9F07C
+:1032200064F42130310581F02230310509F043C0CA
+:1032300084E790E029EE36E042C021323105F1F01A
+:103240002232310541F137C082E190E02DE537E0CF
+:1032500036C099278130910541F08230910541F0C7
+:10326000892B49F5E5EEF6E005C0EBEDF6E002C08E
+:10327000EBECF6E0849190E09F0121C06430D8F43B
+:10328000E62FF0E0EE0FFF1FEC5CFE4F2081318156
+:1032900089E090E014C0643070F470E0FB01EE0F40
+:1032A000FF1FE45DFE4F20813181FB01E85DFE4F91
+:1032B000808190E004C080E090E020E030E0FA01FE
+:1032C00031832083089580E189BD82E189BD09B4FD
+:1032D00000FEFDCF8091D8008F7D8093D800809133
+:1032E000E00082608093E0008091E00081FDFCCFEF
+:1032F0000895CF92DF92EF92FF920F931F93CF9397
+:10330000DF93EC018B016A010E94DC1A811133C04A
+:10331000C114D10439F0F60180819181081B190B89
+:10332000C80FD91FE12CF12C0115110519F180915D
+:10333000E80085FD16C08091E8008E778093E80054
+:10334000C114D10449F0F60180819181E80EF91E83
+:10335000F182E08285E00FC00E94DC1A882321F30D
+:103360000AC089918093F10001501109FFEFEF1A13
+:10337000FF0ADACF80E0DF91CF911F910F91FF908C
+:10338000EF90DF90CF90089520913D0230913E0262
+:103390002617370748F06115710539F42091E800C8
+:1033A0002E772093E80001C0B90140E06115710556
+:1033B000A9F120913602222309F443C0253009F4F3
+:1033C00042C02091E80023FD40C02091E80022FD8A
+:1033D00032C02091E80020FFE9CF4091F300209116
+:1033E000F20030E0342BFC01CF016115710559F07A
+:1033F0002830310540F481918093F10061507109CA
+:103400002F5F3F4FF1CF41E02830310509F040E018
+:103410002091E8002E772093E800C8CF4111C9CF52
+:103420000AC080913602882361F0853061F0809176
+:10343000E80083FD0AC08091E80082FFF2CF80E0BF
+:10344000089582E0089583E0089581E00895209131
+:103450003D0230913E022617370748F0611571058D
+:1034600039F42091E8002E772093E80001C0B901DB
+:10347000FC0120E06115710591F1809136028823ED
+:1034800009F440C0853009F43FC08091E80083FD15
+:103490003DC08091E80082FD2FC08091E80080FF50
+:1034A000E9CF2091F3008091F20090E0922B61151A
+:1034B000710559F08830910540F424912093F10072
+:1034C0003196615071090196F2CF21E0089709F019
+:1034D00020E08091E8008E778093E800CBCF211127
+:1034E000CCCF0AC080913602882361F0853061F02C
+:1034F0008091E80083FD0AC08091E80082FFF2CF4E
+:1035000080E0089582E0089583E0089581E00895C1
+:10351000982F973058F59093E900981739F07091EB
+:10352000EC002091ED005091F00003C0242F762F85
+:1035300050E021FF19C03091EB003E7F3093EB004B
+:103540003091ED003D7F3093ED003091EB00316024
+:103550003093EB007093EC002093ED005093F0005B
+:103560002091EE0027FF07C09F5FD3CF8F7080931D
+:10357000E90081E0089580E008958091370287FF97
+:1035800011C08091E80082FD05C080913602811152
+:10359000F8CF11C08091E8008B770BC08091360284
+:1035A000882349F08091E80080FFF8CF8091E800FF
+:1035B0008E778093E80008952091E4003091E50033
+:1035C00095E64091EC00842F817040FF22C08091ED
+:1035D000E80080FD1CC080913602882391F0853080
+:1035E00091F08091EB0085FD10C04091E400509176
+:1035F000E5004217530729F39A01915011F784E02F
+:10360000089582E0089583E0089581E0089580E0C0
+:1036100008954091E80042FFDECF08950E947C1B90
+:103620000E94841BE0EEF0E0808181608083E8ED01
+:10363000F0E080818F77808319BCA7EDB0E08C919A
+:103640008E7F8C9380818F7E8083109235020895C7
+:103650000F931F93CF93DF930E947C1B0E94841BC8
+:10366000C8EDD0E088818F778883888180688883DF
+:1036700088818F7D888319BC1092360210923202A5
+:10368000109234021092330200EE10E0F8018081B3
+:103690008B7F808388818160888342E060E080E066
+:1036A0000E94881AE1EEF0E080818E7F8083E2EE56
+:1036B000F0E0808181608083808188608083F80170
+:1036C00080818E7F8083888180618883DF91CF9124
+:1036D0001F910F910895E8EDF0E080818F7E808347
+:1036E000E7EDF0E080818160808384E082BF81E04B
+:1036F000809335020C94281BE8EDF0E080818E7FEA
+:1037000080831092E20008951092DA001092E10096
+:1037100008951F920F920FB60F9211242F933F938B
+:103720004F935F936F937F938F939F93AF93BF93C9
+:10373000EF93FF938091E10082FF0BC08091E20044
+:1037400082FF07C08091E1008B7F8093E1000E949F
+:10375000C2178091DA0080FF1FC08091D80080FFDF
+:103760001BC08091DA008E7F8093DA008091D900AF
+:1037700080FF0DC080E189BD82E189BD09B400FEF2
+:10378000FDCF81E0809336020E949B1705C019BCD3
+:10379000109236020E94AD178091E10080FF19C09F
+:1037A0008091E20080FF15C08091E2008E7F8093BF
+:1037B000E2008091E20080618093E2008091D80075
+:1037C00080628093D80019BC85E0809336020E9405
+:1037D000B8178091E10084FF30C08091E20084FF3F
+:1037E0002CC080E189BD82E189BD09B400FEFDCF16
+:1037F0008091D8008F7D8093D8008091E1008F7EEA
+:103800008093E1008091E2008F7E8093E2008091BE
+:10381000E20081608093E20080913202882311F0FF
+:1038200084E007C08091E30087FD02C081E001C011
+:1038300083E0809336020E94BC178091E10083FFF1
+:1038400029C08091E20083FF25C08091E100877F3D
+:103850008093E10082E080933602109232028091E0
+:10386000E1008E7F8093E1008091E2008E7F809363
+:10387000E2008091E20080618093E20042E060E03B
+:1038800080E00E94881A8091F00088608093F000A8
+:103890000E94B417FF91EF91BF91AF919F918F91CB
+:1038A0007F916F915F914F913F912F910F900FBE3C
+:1038B0000F901F9018951F920F920FB60F92112420
+:1038C0002F933F934F935F936F937F938F939F9328
+:1038D000AF93BF93CF93DF93EF93FF93C091E90032
+:1038E000CF708091EC00D82FD17080FDD0E810927D
+:1038F000E9008091F000877F8093F00078940E9427
+:103900009F1C1092E9008091F00088608093F00085
+:10391000CD2BCF70C093E900FF91EF91DF91CF9154
+:10392000BF91AF919F918F917F916F915F914F91D7
+:103930003F912F910F900FBE0F901F9018951F93DE
+:10394000CF93DF93CDB7DEB7AA970FB6F894DEBF5B
+:103950000FBECDBFE7E3F2E088E08E0F9091F1005B
+:1039600091938E13FBCF0E9417188091E80083FF7C
+:103970001FC18091370290913802492F50E04A30A0
+:10398000510508F015C1FA01E15AFF4F0C94B13608
+:10399000803881F0823809F00BC180913B028F7032
+:1039A0008093E9008091EB0085FB882780F91092D5
+:1039B000E90006C080913302909134029111826037
+:1039C0009091E800977F9093E8008093F100109227
+:1039D000F100C8C0282F2D7F09F0EAC0882319F014
+:1039E000823061F0E5C080913902813009F0E0C099
+:1039F000933009F080E0809334022BC0809139022B
+:103A0000811127C080913B028F7009F4D1C080934F
+:103A1000E9002091EB0020FF1CC0933021F480913D
+:103A2000EB00806214C09091EB0090619093EB00EA
+:103A300021E030E0A90102C0440F551F8A95E2F74A
+:103A40004093EA001092EA008091EB008860809336
+:103A5000EB001092E9008091E800877F86C0811119
+:103A6000A7C0109139021F778091E3008078812BE5
+:103A70008093E3008091E800877F8093E8000E94B4
+:103A8000BD1A8091E80080FFFCCF8091E300806840
+:103A90008093E300111102C082E001C083E08093B3
+:103AA000360286C08058823008F082C08091390288
+:103AB00090913A028C3D53E0950779F583E08A8333
+:103AC0008AE289834FB7F894DE01139620E03EE046
+:103AD00051E2E32FF0E050935700E49120FF03C040
+:103AE000E295EF703F5FEF708E2F90E0EA3010F0BC
+:103AF000C79601C0C0968D939D932F5F243149F7DF
+:103B00004FBF8091E800877F8093E8006AE270E011
+:103B1000CE0101960E94C41914C0AE014F5F5F4FE1
+:103B200060913B020E940B19BC01009709F440C050
+:103B30009091E800977F9093E80089819A810E9494
+:103B4000271A8091E8008B778093E80031C0803895
+:103B500079F58091E800877F8093E80080913202B8
+:103B60008093F1008091E8008E778093E8000E94B6
+:103B7000BD1A1EC081111CC0909139029230C0F450
+:103B80008091E800877F8093E800909332020E9442
+:103B9000BD1A80913202811106C08091E30087FD39
+:103BA00002C081E001C084E0809336020E940318C5
+:103BB0008091E80083FF0AC08091E800877F8093AE
+:103BC000E8008091EB0080628093EB00AA960FB62C
+:103BD000F894DEBF0FBECDBFDF91CF911F91089546
+:103BE000CF93809136028823A1F0C091E900CF7075
+:103BF0009091EC00892F817090FD80E8C82B109285
+:103C0000E9008091E80083FD0E949F1CCF70C09363
+:103C1000E900CF91089590938E0180938D010895CE
+:103C2000E0918D01F0918E01309721F00190F081AB
+:103C3000E02D099480E00895EF92FF920F931F9377
+:103C4000CF93DF93E0918D01F0918E013097B1F128
+:103C50008C010280F381E02D09958091E70182FFBC
+:103C60002DC080FF04C08AE598E00E941709E80192
+:103C700018E084E5E82E88E0F82E8091E70180FFC7
+:103C80000BC088811F928F93FF92EF920E94B00920
+:103C90000F900F900F900F90115021961111EDCFB2
+:103CA0008091E70180FF0AC082E598E0DF91CF9123
+:103CB0001F910F91FF90EF900C941709DF91CF9116
+:103CC0001F910F91FF90EF900895E0918D01F09179
+:103CD0008E01309721F00480F581E02D099408953C
+:103CE00020918B0130918C018217930771F0909392
+:103CF0008C0180938B01E0918D01F0918E013097C2
+:103D000021F00680F781E02D099408952091890122
+:103D100030918A018217930771F090938A01809302
+:103D20008901E0918D01F0918E01309721F000849E
+:103D3000F185E02D0994089508950C949C1E0E942D
+:103D4000302A0E94920E0E94FE2A0E9478340C941F
+:103D50006213CF93DF931F92CDB7DEB79091E70147
+:103D600092FF10C090FF0EC01F928F932CE638E098
+:103D70003F932F9389830E94B0090F900F900F906B
+:103D80000F9089810F90DF91CF910C943E0E5F923E
+:103D90006F927F928F929F92AF92BF92CF92DF925B
+:103DA000EF92FF920F931F93CF93DF9300D000D039
+:103DB0001F92CDB7DEB70E94D70E9AE9C92E91E0C7
+:103DC000D92E04E010E0AA24A394B12C502E802F09
+:103DD0000E945B0F4C01F601729062906F016826A1
+:103DE000792661147104A1F40150110978F78FEF5D
+:103DF00089838A831B820E94392A8160782F9D8360
+:103E00008C8349815A816B818D810E94771F38C0D4
+:103E10008091E70181FD0E94640F2DE030E0750183
+:103E2000022E02C0EE0CFF1C0A94E2F7C7018621A5
+:103E30009721892B09F129835A828E209F2091E0B6
+:103E4000892809F490E09B830E94392A8160782FA9
+:103E50009D838C8349815A816B818D810E94771F5C
+:103E6000000F111FF801E057FE4F80819181E82675
+:103E7000F926F182E08204C02150310980F6B4CFE6
+:103E80000E94792E10918F010E94101E1817D1F0F8
+:103E90000E94101E80938F010F900F900F900F9033
+:103EA0000F90DF91CF911F910F91FF90EF90DF90D6
+:103EB000CF90BF90AF909F908F907F906F905F90CA
+:103EC0000C94A91E0F900F900F900F900F90DF9100
+:103ED000CF911F910F91FF90EF90DF90CF90BF9007
+:103EE000AF909F908F907F906F905F900895CF9349
+:103EF000DF93CDB7DEB72B970FB6F894DEBF0FBEBA
+:103F0000CDBF4F83588769877A878B87DE011196EB
+:103F100086E0FD0111928A95E9F785E0FE0137966A
+:103F200001900D928A95E1F749815A816B817C81DC
+:103F30008D819E810E94EE252B960FB6F894DEBFF0
+:103F40000FBECDBFDF91CF910895CF93882309F4A1
+:103F5000C2C0C82F823859F40E94101E81FDBBC018
+:103F600089E30E94C8280E944E2989E30CC0833847
+:103F700079F40E94101E80FDAEC083E50E94C8281F
+:103F80000E944E2983E50E94E528CF910C944E298A
+:103F9000843859F40E94101E82FD9DC087E40E945F
+:103FA000C8280E944E2987E4EECF8CEF8C0F813A0F
+:103FB00048F48C2F0E94233381118DC08C2F0E94D6
+:103FC000C828E3CF80E28C0F883048F4C77081E0C6
+:103FD00001C0880FCA95EAF70E940729D6CF8BE562
+:103FE0008C0F833078F4C53A29F0C63A31F083E873
+:103FF00090E005C081E890E002C082E890E0CF91B7
+:104000000C94701E88E58C0F833108F064C0C83AA8
+:1040100039F1C93A41F1CA3A49F1CB3A51F1CC3AB6
+:1040200059F1CD3A61F1C03B69F1CE3A71F1CF3A25
+:1040300079F1C13B81F1C23B89F1C33B91F1C43BB2
+:1040400099F1C53BA1F1C63BA9F1C73BB1F1C83B12
+:10405000B9F1C93BC1F1CA3BC9F180E090E038C079
+:1040600082EE90E035C089EE90E032C08AEE90E0BA
+:104070002FC085EB90E02CC086EB90E029C087EB49
+:1040800090E026C08CEC90E023C08DEC90E020C046
+:1040900083E891E01DC08AE891E01AC082E991E0CE
+:1040A00017C084E991E014C081E292E011C083E27C
+:1040B00092E00EC084E292E00BC085E292E008C07C
+:1040C00086E292E005C087E292E002C08AE292E0D6
+:1040D000CF910C94861ECF910895882309F44BC08C
+:1040E000823859F40E94101E81FF45C089E30E9466
+:1040F000C8280E944E2989E30CC0833871F40E94BD
+:10410000101E80FF38C083E50E94C8280E944E29F7
+:1041100083E50E94E5280C944E29843859F40E94C6
+:10412000101E82FF28C087E40E94C8280E944E29E2
+:1041300087E4EFCF9CEF980F913A58F390E2980FF5
+:10414000983050F4877091E001C0990F8A95EAF792
+:10415000892F0E940D29DFCF9BE5980F933020F423
+:1041600080E090E00C94701E885A833120F480E047
+:1041700090E00C94861E0895882321F00E94072960
+:104180000C944E290895882321F00E940D290C9447
+:104190004E2908957F928F929F92AF92BF92CF92B5
+:1041A000DF92EF92FF920F931F93CF93DF931F92B3
+:1041B000CDB7DEB77C01C62E772EFC0105810295B6
+:1041C0000F70128111110E9424290E94C128882396
+:1041D00079F0112369F080E28C0D883048F082E09C
+:1041E0000E94AA280E94C12891E0D82ED92601C099
+:1041F000D12CE72DE295EF70F0E0E759FF4F0C94DA
+:10420000B136872D807F072D0F70882311F002951E
+:10421000007F112389F0002309F499C180E28C0DFD
+:10422000883020F4802F0E94072903C0802F0E942D
+:1042300017290E944E298BC18C2D0E946D200023CE
+:1042400009F4C3C180E28C0D883020F4802F0E94D5
+:104250000D2903C0802F0E941D290E944E29B5C13F
+:10426000872D807F972D9F70803211F4892F03C096
+:10427000892F8295807FCC2021F0F1E0CF16A1F02C
+:104280001DC0112339F0002319F1013009F50E94F6
+:1042900037299BC1002319F0013009F496C18983A5
+:1042A0000E943A29898110C1112321F0063008F0BB
+:1042B0008CC10EC0053008F088C106C1112359F029
+:1042C000002331F0F701958190FF41C19F709583E4
+:1042D0000E94BC207AC1002309F4F6C03EC1872D9C
+:1042E00086958695837090E0009719F0019761F0AC
+:1042F0006CC1112321F08C2D972D937002C080E0AA
+:1043000090E00E94701E61C1112321F08C2D972D29
+:10431000937002C080E090E00E94861E56C18C2DF2
+:10432000112319F00E94FF2C02C00E94672D0E94E9
+:10433000EC2D4BC1872D837009F052C0111145C17E
+:104340008C2D829586958770880F880F9C2D9F7085
+:10435000892E912CA12CB12C082E04C0880C991CFC
+:10436000AA1CBB1C0A94D2F7C4FE14C00FE010E0D4
+:1043700020E030E0B901A80104C0440F551F661FBA
+:10438000771F8A95D2F7CB01BA0160957095809519
+:10439000909503C060E070E0CB01272D269526950F
+:1043A000237030E02230310569F02330310589F087
+:1043B000682979298A299B292130310571F00E94C9
+:1043C000362703C1682979298A299B290E94522707
+:1043D000FCC00E943627C501B4010E941A27F5C00F
+:1043E000112319F0872D817001C08695882309F467
+:1043F000ECC08C2D829586958770880F880F9C2D38
+:104400009F70892E912CA12CB12C082E04C0880CF1
+:10441000991CAA1CBB1C0A94D2F7C4FE14C00FE05E
+:1044200010E020E030E0B901A80104C0440F551F9E
+:10443000661F771F8A95D2F7CB01BA0160957095F8
+:104440008095909503C060E070E0CB01272D269504
+:1044500026952370422F50E04230510569F04330D9
+:10446000510589F0682979298A299B29413051050C
+:1044700071F00E941028A9C0682979298A299B29EE
+:104480000E942C28A2C00E941028C501B4010E94DD
+:10449000F4279BC08C2D90E0FC01E05EF109E53132
+:1044A000F10508F050C0E758FF4F0C94B1360C2DC1
+:1044B0000F70872D8F71112321F00E948D27802F7F
+:1044C00007CF0E94AE27802F0E94C3207EC01123F9
+:1044D00041F0053008F079C0872D8F710E94D327F5
+:1044E00074C0063008F071C0F7CF112339F0872D62
+:1044F0008F710E948D2769C01123C9F3872D8F7199
+:104500000E94AE2762C0112329F0872D8F710E946F
+:1045100078275BC00E946E2758C0112351F0172DD9
+:104520001F71812F0E948D2763E0812F0E94A12897
+:104530004CC081E00E94AA28023008F446C082E004
+:104540000E94AA2842C0112331F0002381F28C2D51
+:104550000E94A51F3AC0002389F28C2D0E946D2075
+:1045600034C0472D4F706C2DC7010E94AC0D0E94C6
+:1045700092262BC0111129C0472D4F7050E04230B8
+:104580005105B9F04CF44115510581F04130510508
+:10459000E1F40E94B33419C04330510569F044304E
+:1045A000510599F48C2D0E943E350FC00E9489342C
+:1045B0000CC00E94E23409C00E94083506C0472D95
+:1045C0004F706C2DC7010E94020ADD20F9F00E9495
+:1045D0009D2880FD1BC0F70112820E9497280E942F
+:1045E0008D27C7010E9415230E9497280F90DF9105
+:1045F000CF911F910F91FF90EF90DF90CF90BF90E0
+:10460000AF909F908F907F900C94AE270F90DF918A
+:10461000CF911F910F91FF90EF90DF90CF90BF90BF
+:10462000AF909F908F907F9008950F931F93CF939B
+:10463000DF93EC01888199812B813C81232BB9F098
+:104640009F3F11F48F3F99F0CE010E94780A882392
+:1046500071F0688179818A810E9493288C010E947F
+:1046600048280E940F27B801CE010E94CA20DF917E
+:10467000CF911F910F9108950E9424290E943429FF
+:104680000E94F6280E944E290E941F2F0E94EC2DA6
+:1046900080E090E00E94701E80E090E00C94861E06
+:1046A0000E9414290C943C230E948828292F2295CB
+:1046B0002F7030E02C3031054CF42A3031056CF489
+:1046C0002250310922303105A8F407C02C303105C1
+:1046D00069F02F30310551F00DC0803F69F018F4BA
+:1046E000803E40F409C0843F29F406C093FB88272C
+:1046F00080F9089580E0089581E00895CF93DF93D5
+:1047000000D000D01F92CDB7DEB70F900F900F9062
+:104710000F900F90DF91CF910895CF93DF9300D04A
+:1047200000D000D0CDB7DEB726960FB6F894DEBF26
+:104730000FBECDBFDF91CF9108951F93CF93DF932D
+:10474000C0919A0116E080919B01C81799F0D0E0C2
+:104750001C9FF0011D9FF00D1124E456FE4F408177
+:10476000518162817381848195810E948D2321967C
+:10477000C770E9CFDF91CF911F9108954091CC018F
+:104780005091CD016091CE017091CF018091D00107
+:104790009091D1010C948D238091D10182958F70DD
+:1047A00009F054C08091CE01882309F44FC0809154
+:1047B0009A01A0919B016091CC017091CD01409133
+:1047C000CF015091D001B6E08A1709F43FC090E0C4
+:1047D00041155105C1F17F3F11F46F3FA1F1B89F21
+:1047E000F001B99FF00D1124E456FE4F21817213A0
+:1047F0002AC02081621327C02281211124C0238175
+:1048000034812417350710F421503109241B350B4E
+:10481000283C3105C0F42091D1012F7020612093F4
+:10482000D10126E0289FF001299FF00D1124EF55BA
+:10483000FE4F80818F70806180838CEC91E00E94BC
+:1048400015230C949D2301968770BECF0895CF92B7
+:10485000DF92EF92FF920F931F93CF93DF93CDB729
+:10486000DEB762970FB6F894DEBF0FBECDBF8C01E6
+:1048700085E0F801DE011D9601900D928A95E1F721
+:10488000D8014C9111965C91119712966C911297E8
+:104890001396CD90DC9014973091CC017091CD019E
+:1048A0008091CF019091D001009709F46BC17F3FB7
+:1048B00019F43F3F09F466C1E090CE01EE2009F4FF
+:1048C000C0C02091D101C816D90628F0F601E81B16
+:1048D000F90BCF0104C0809590958C0D9D1DFF2490
+:1048E000F394883C910578F0F12C207F09F0C6C044
+:1048F0007C2DD98AC88A89890E947E238CEC91E01C
+:104900000E941523B1C0822F807F09F046C0751325
+:1049100014C0341312C0611110C02F702061209395
+:10492000D1010E94BE238CEC91E00E94152380915E
+:10493000D101D80115968C932EC0CD2819F15F3F77
+:1049400011F44F3FF9F0F62E61111CC080919A01CD
+:1049500020919B0136E0821709F45AC090E0389FFD
+:10496000F001399FF00D1124E456FE4F7181571369
+:1049700006C07081471303C07281711103C0019694
+:104980008770E9CFF62E662309F418C18091D10112
+:1049900081608093D101F12C11C1751308C03413CB
+:1049A00006C0611104C08091D101D801C3C04D87F8
+:1049B0005E878D859E856A8B0E9454236A89882331
+:1049C000E1F16623D1F12091D101822F82958F7080
+:1049D00090E0029774F08091CC019091CD0198877E
+:1049E0008F831986DB86CA862C87CE0107960E94A4
+:1049F000152386E0F801ACECB1E001900D928A95A8
+:104A0000E1F70E94CC230E94BE23FF24F394D6C07A
+:104A10004D875E878D859E850E948828292F229547
+:104A20002F7030E0223031050CF0BCC09F7009F0CF
+:104A3000B6C0805E883008F4C1C0C8010E9415234A
+:104A4000E4CFC816D90608F453C0F601E81BF90BE9
+:104A5000CF01883C910508F450C0F12C7C2DD98AF7
+:104A6000C88A89890E947E23ECECF1E086E0DF01B0
+:104A70001D928A95E9F70E94BE23A0C0751314C049
+:104A8000341312C0611110C08091D101F8018583E7
+:104A9000C8010E94152386E0ECECF1E0DF011D92D5
+:104AA0008A95E9F7FE2C8AC04D875E878D859E85A5
+:104AB0006A8B0E9454236A89882309F4BECF662337
+:104AC00009F4BBCF2091D101822F82958F7090E0A5
+:104AD00002970CF48ECF8091CC019091CD019A83F6
+:104AE00089831B82DD82CC822E83CE0101967FCF0B
+:104AF000809590958C0D9D1DACCFF62E662309F404
+:104B00009CCF75132EC034132CC02091D10120FDF1
+:104B10001FC0822F82958F70D9F0D80115962C93E3
+:104B200015978F3049F08F5F982F9295907F822F45
+:104B30008F70892B15968C93C8010E94152386E0EF
+:104B4000F801ACECB1E001900D928A95E1F793CFBA
+:104B500086E0F801ACECB1E001900D928A95E1F7A6
+:104B60002DC04D875E878D859E850E9454238111BF
+:104B700040CF8091D10181608093D101C8010E9412
+:104B800015231CC0662309F458CF4D875E878D8599
+:104B90009E850E945423882309F44FCF2ACF811188
+:104BA00048CF0CC0243031050CF047CF9F7009F47A
+:104BB00040CFF8019581907F09F03BCF8F2D629611
+:104BC0000FB6F894DEBF0FBECDBFDF91CF911F911E
+:104BD0000F91FF90EF90DF90CF9008951F93CF93A8
+:104BE000DF93CDB7DEB72C970FB6F894DEBF0FBEBC
+:104BF000CDBF4F83588769877A878B879C87CE0183
+:104C000007960E942724882369F08F8198852A853A
+:104C10003B85232BF1F19F3F09F063C08F3F09F0E3
+:104C200060C037C086E0FE013796DE011196019024
+:104C30000D928A95E1F76F817885EA85FB8530973B
+:104C400041F17F3F11F46F3F21F120919B0130E052
+:104C5000C90101968770992740919A0150E0841705
+:104C6000950709F447C069837A83FD83EC8396E056
+:104C7000929FD001939FB00D1124A456BE4FFE0108
+:104C8000319601900D929A95E1F780939B010E94D5
+:104C90009D2316E080919A0190919B018917C1F1A3
+:104CA000189FC001112484569E4F0E9427248823F8
+:104CB00079F1E0919A011E9FF0011124E456FE4F14
+:104CC0004081518162817381848195810E948D230D
+:104CD00080919A0190E001968770992780939A01BC
+:104CE000D9CF4F81588569857A858B859C850E94AF
+:104CF0008D23CFCF0E94502310929B0110929A01D6
+:104D0000ECECF1E086E0DF011D928A95E9F7C1CF76
+:104D10002C960FB6F894DEBF0FBECDBFDF91CF91BA
+:104D20001F910895EF92FF920F931F93CF93DF93FC
+:104D30008C01009709F46CC0F12CEE24E394E80197
+:104D40002196F8018491843740F4843008F051C0F2
+:104D5000813081F0823019F15BC0853709F444C09D
+:104D6000A8F19CE7980F903708F052C08F770E9407
+:104D70006D2041C00E5F1F4FFE01C49180E28C0F79
+:104D8000883048F4C7708E2D01C0880FCA95EAF7A5
+:104D90000E94272914C08C2F0E94A51F2DC00E5FD2
+:104DA0001F4FFE01C49180E28C0F883058F4C77009
+:104DB0008E2D01C0880FCA95EAF70E942D290E9406
+:104DC0004E291AC08C2F0E946D2016C00E5F1F4FF7
+:104DD000FE01C491CC2381F08FE99FE00197F1F7A8
+:104DE00000C00000C150F6CF0E5F1F4FFE01F490CF
+:104DF00003C00E94A51F8E018F2D882309F49FCF29
+:104E0000EFE9FFE03197F1F700C000008150F5CFE6
+:104E1000DF91CF911F910F91FF90EF90089508952A
+:104E20006093D6017093D7018093D8019093D901F4
+:104E30000C943C230F931F930091D6011091D7013E
+:104E40002091D8013091D901DC01CB01802B912B2D
+:104E5000A22BB32B8093D6019093D701A093D801B6
+:104E6000B093D9011F910F910C943C230F931F9382
+:104E70000091D6011091D7012091D8013091D9012C
+:104E8000DC01CB0180239123A223B3238093D6019D
+:104E90009093D701A093D801B093D9011F910F919E
+:104EA0000C943C230F931F930091D6011091D701CE
+:104EB0002091D8013091D901DC01CB0180279127C5
+:104EC000A227B3278093D6019093D701A093D8014E
+:104ED000B093D9011F910F910C943C231092D201F1
+:104EE0001092D3011092D4011092D5010C943C235E
+:104EF00041E050E060E070E004C0440F551F661FC1
+:104F0000771F8A95D2F74093D2015093D3016093D3
+:104F1000D4017093D5010C943C2341E050E060E053
+:104F200070E004C0440F551F661F771F8A95D2F7A3
+:104F30008091D2019091D301A091D401B091D5017B
+:104F4000482B592B6A2B7B2B4093D2015093D301D2
+:104F50006093D4017093D5010C943C2341E050E060
+:104F600060E070E004C0440F551F661F771F8A95EC
+:104F7000D2F740955095609570958091D2019091AF
+:104F8000D301A091D401B091D501482359236A23BC
+:104F90007B234093D2015093D3016093D40170934B
+:104FA000D5010C943C2341E050E060E070E004C087
+:104FB000440F551F661F771F8A95D2F78091D20143
+:104FC0009091D301A091D401B091D50148275927E0
+:104FD0006A277B274093D2015093D3016093D40179
+:104FE0007093D5010C943C230F931F930091D20131
+:104FF0001091D3012091D4013091D501DC01CB0176
+:10500000802B912BA22BB32B8093D2019093D301B1
+:10501000A093D401B093D5011F910F910C943C2320
+:105020000F931F930091D2011091D3012091D401CD
+:105030003091D501DC01CB0180239123A223B3233E
+:105040008093D2019093D301A093D401B093D50162
+:105050001F910F910C943C230F931F930091D20149
+:105060001091D3012091D4013091D501DC01CB0105
+:1050700080279127A227B3278093D2019093D30151
+:10508000A093D401B093D5011F910F910C943C23B0
+:105090000895CF92DF92EF92FF920F931F93CF93D9
+:1050A000DF938C01C090D601D090D701E090D80159
+:1050B000F090D9018091D2019091D301A091D401B7
+:1050C000B091D501C82AD92AEA2AFB2ACFE1D0E03B
+:1050D000D701C6010C2E04C0B695A7959795879564
+:1050E0000A94D2F780FF06C0B8018C2F0E940B0CE7
+:1050F000019721F4219760F780E001C08C2FDF91A8
+:10510000CF911F910F91FF90EF90DF90CF90089576
+:10511000CF93DF93EC010E944928BE010E940B0C43
+:10512000DF91CF910895CB010E9488280895809146
+:10513000DA0185958595859508958091DA018770C6
+:10514000089598E0899F90011124262B2093DA017D
+:105150000C948D272091DA01809582238093DA01C7
+:10516000982F977069F430E0482F552747FD5095E8
+:105170002417350729F08595859585950C94AE27DC
+:1051800008959091DA01977081E009F480E0089524
+:1051900020910D0130910E01F90132969FEF40E010
+:1051A0005191581789F09F3F19F4511101C0942F64
+:1051B0004F5F4630A9F79F3F39F0F901E90FF11D24
+:1051C00097FDFA9582830895089520910D013091FD
+:1051D0000E01F9013296285F3F4F9081981301C06C
+:1051E00010823196E217F307C1F7089581E090E04D
+:1051F000E0910D01F0910E01E80FF91F1082019668
+:1052000088309105A9F708958091E601089590915D
+:10521000E601892B8093E601089580959091E6013F
+:1052200089238093E60108951092E60108959091F4
+:10523000E501892B8093E501089580959091E50122
+:1052400089238093E50108951092E50108959091D6
+:10525000E401892B8093E401089580959091E40105
+:1052600089238093E40108951092E40108958093C6
+:10527000DB0108951092DB01089580910D0190915A
+:105280000E01FC0131969C01285F3F4F80E0919117
+:1052900091118F5FE217F307D1F70895E0910D01A7
+:1052A000F0910E018091E6018083E0910D01F09173
+:1052B0000E0190818091E501892B8083E0910D01A1
+:1052C000F0910E0190818091E401892B808380917F
+:1052D000DB01882361F0E0910D01F0910E019081D6
+:1052E000892B80830E943D2981111092DB018091DE
+:1052F0000D0190910E010C941C1E90934701809318
+:105300004601089520E0009739F0AC014150510961
+:10531000842395232F5FF7CF822F08958295982FAE
+:105320009C7C392F36953695282F237344E0249F93
+:10533000C0011124932F982B292F2A7A2695892F83
+:105340008575880F822B08951F93CF93DF931F924B
+:10535000CDB7DEB799830E948E29182F9981892FA6
+:105360000E948E29212F30E0322F2227A901482BBD
+:10537000CA010F90DF91CF911F910895809136025D
+:10538000843039F11092E80120E488E190E00FB612
+:10539000F894A895809360000FBE2093600080E091
+:1053A0000E94D80980E00E943E0E83B7817F84600E
+:1053B00083BF83B7816083BF7894889583B78E7FDE
+:1053C00083BF88E10FB6F89480936000109260006C
+:1053D0000FBE0895089580E00E94D8090E94540EDF
+:1053E0000E94D70E0E94EA290E949E0F91E081112F
+:1053F00001C090E0892F08950E94502380E00E9410
+:10540000D8090E9478340E94101E0C943E0E1F9200
+:105410000F920FB60F9211248F939F93AF93BF9368
+:105420008091E801811113C08091E9019091EA0116
+:10543000A091EB01B091EC014196A11DB11D8093AB
+:10544000E9019093EA01A093EB01B093EC01BF91C5
+:10545000AF919F918F910F900FBE0F901F90189555
+:1054600082E084BD93E095BD9AEF97BD80936E0076
+:1054700008952FB7F8948091E9019091EA01A091E5
+:10548000EB01B091EC012FBF0895CF92DF92EF9224
+:10549000FF920F931F932FB7F8944091E901509119
+:1054A000EA016091EB017091EC012FBF6A017B0171
+:1054B000EE24FF248C0120E030E0C016D106E20685
+:1054C000F30610F4415051099A01281B390BC90108
+:1054D0001F910F91FF90EF90DF90CF9008951F9252
+:1054E0000F920FB60F9211248F939F93AF93BF9398
+:1054F0008091E9019091EA01A091EB01B091EC015A
+:105500000196A11DB11D8093E9019093EA01A0933A
+:10551000EB01B093EC01BF91AF919F918F910F90F0
+:105520000FBE0F901F9018950E940E1BF8942FEF3E
+:1055300087EA91E6215080409040E1F700C00000EA
+:1055400087E090EBDC018093400290934102A093AE
+:105550004202B09343029CE088E10FB6F894A8950C
+:10556000809360000FBE90936000FFCFAF92BF9218
+:10557000CF92DF92EF92FF920F931F93CF93C4E0ED
+:10558000CC24C394D12CE82EF12C8C2F0E945B0FDD
+:105590005C010DE010E09601002E02C0220F331FC7
+:1055A0000A94E2F72A213B21232B51F0602F7C2F14
+:1055B00080E00E94AF0DE816F90611F481E006C004
+:1055C0000150110940F7C15000F780E0CF911F91C1
+:1055D0000F91FF90EF90DF90CF90BF90AF90089524
+:1055E000CF93C82F8CE20E94B62A882321F08C2FFB
+:1055F000CF910C94B62A80E0CF910895CF930E946A
+:105600004E2C811102C00E942F2C8CE898E00E9441
+:105610001709C5E6C15049F00E94D70E8FE39CE9F7
+:105620000197F1F700C00000F5CF85E898E00E94EF
+:10563000170989E20E94F02A81110FC18AE20E94B3
+:10564000F02A81110E942F2C85E00E94F02A8111FE
+:105650000E94942A0E94592C8093E70187E00E94BF
+:10566000F02A8823A9F18BE10E94F02A882351F0C7
+:105670008091E70181FB222720F991E0922790FB9E
+:1056800081F90EC08EE00E94F02A882361F080919B
+:10569000E70182FB222720F991E0922790FB82F913
+:1056A0008093E70115C080E10E94F02A9091E70104
+:1056B000882341F093FB222720F981E0822780FB99
+:1056C00093F904C0892F809580FB90F99093E701AE
+:1056D0008091E7010E945D2C0E946B2C90E09093DA
+:1056E000F9018093F80180EE0E94F02A882341F0AE
+:1056F0008091F801982F909590FB80F98093F801A4
+:1057000089E30E94F02A882359F08091F80181FBF7
+:10571000222720F991E0922790FB81F98093F801EC
+:1057200082EE0E94F02A882359F08091F80182FBD2
+:10573000222720F991E0922790FB82F98093F801CB
+:1057400086EE0E94F02A882359F08091F80183FBAD
+:10575000222720F991E0922790FB83F98093F801AA
+:1057600083EE0E94F02A882359F08091F80184FB8F
+:10577000222720F991E0922790FB84F98093F80189
+:1057800085E30E94F02A882359F08091F80185FB77
+:10579000222720F991E0922790FB85F98093F80168
+:1057A00081E30E94F02A882359F08091F80186FB5A
+:1057B000222720F991E0922790FB86F98093F80147
+:1057C00081E10E94F02A882359F08091F80187FB3B
+:1057D000222720F991E0922790FB87F98093F80126
+:1057E0008091F8010E946F2C87E20E94F02AC82F56
+:1057F0008EE10E94F02A8111C2608FE10E94F02A9E
+:105800008111C46080E20E94F02A8111C86081E2A7
+:105810000E94F02A8111C06182E20E94F02A811167
+:10582000C06283E20E94F02A8111C06484E20E9477
+:10583000F02A882311F0C06802C0CC2329F08C2FF5
+:105840000E94662C6C2F03C00E94622C682F70E0AF
+:1058500080E090E0CF910C941027CF9108956DEEE9
+:105860007EEF80E090E00E94E93660E082E090E028
+:105870000E94CB3660E083E090E00E94CB3660E08F
+:1058800084E090E00E94CB3660E085E090E00E94EA
+:10589000CB3660E086E090E00C94CB3680E090E080
+:1058A0000E94C53621E08D3E9E4F09F020E0822FF8
+:1058B000089582E090E00C94B736682F82E090E083
+:1058C0000C94CB3683E090E00C94B736682F83E0DD
+:1058D00090E00C94CB3684E090E00C94B736682FBF
+:1058E00084E090E00C94CB3686E090E00C94B736E0
+:1058F000682F86E090E00C94CB368091EF0180FF1A
+:105900000BC06091120185E0689FB001112475956C
+:105910006795759567952BC081FF09C0609112014D
+:1059200085E0689FB00111247595679520C082FFBE
+:1059300007C06091120185E0689FB001112417C073
+:105940009091F0019923D1F060911101961788F799
+:105950002091120185E0289F90011124929FA001BF
+:10596000939F500D112470E0CA010E949D3660384B
+:10597000710540F46115710539F002C065E070E011
+:10598000862F08958FE7089581E008958091EF01B3
+:1059900080FF08C06091100170E07595679575955E
+:1059A000679521C081FF06C06091100170E0759578
+:1059B000679519C082FF04C06091100170E010C0AB
+:1059C0009091F0019923C1F060910F019617A0F713
+:1059D00080911001899FC001112470E00E949D36C2
+:1059E0006038710528F46115710521F0862F08953E
+:1059F0008FE7089581E0089561E070E0F4CF803F83
+:105A000021F40E947D2C819504C0813F29F40E94DD
+:105A10007D2C8093F3010895823F21F40E947D2C18
+:105A2000819504C0833F29F40E947D2C8093F2016C
+:105A30000895893F19F40E94C62C05C08A3F31F4AD
+:105A40000E94C62C81958093F40108958B3F21F428
+:105A50000E94C62C819504C08C3F29F40E94C62C5C
+:105A60008093F5010895843F21F48091F1018160D4
+:105A700017C0853F21F48091F101826011C0863FFB
+:105A800021F48091F10184600BC0873F21F4809163
+:105A9000F101886005C0883F31F48091F101806197
+:105AA0008093F10108958D3F21F48091EF01816091
+:105AB0000BC08E3F21F48091EF01826005C08F3FC3
+:105AC00029F48091EF0184608093EF010895803F75
+:105AD00039F48091F30187FF6CC01092F30169C023
+:105AE000813F29F48091F3011816BCF362C09091B4
+:105AF000F201823F29F497FF5CC01092F20159C075
+:105B0000833F19F41916CCF354C0893F41F48091B6
+:105B1000F40118160CF04DC01092F4014AC08A3FEF
+:105B200029F48091F40187FF44C0F6CF8B3F39F40C
+:105B30008091F50187FF3DC01092F5013AC08C3F7E
+:105B400029F48091F5011816BCF333C0843F21F489
+:105B50008091F1018E7F17C0853F21F48091F10182
+:105B60008D7F11C0863F21F48091F1018B7F0BC0A6
+:105B7000873F21F48091F101877F05C0883F31F490
+:105B80008091F1018F7E8093F10113C08D3F21F44C
+:105B90008091EF018E7F0BC08E3F21F48091EF0149
+:105BA0008D7F05C08F3F29F48091EF018B7F80931B
+:105BB000EF018091F20181110EC08091F3018111FA
+:105BC0000AC08091F401811106C08091F501811114
+:105BD00002C01092F00108958091E70183FF7EC01A
+:105BE00088EC98E00E9417098091F1011F928F9331
+:105BF00083EC98E09F938F930E94B00981EC98E02A
+:105C00000E9417098091F201282F332727FD309534
+:105C10003F938F938EEB98E09F938F930E94B009F0
+:105C20008CEB98E00E9417098091F301282F33270D
+:105C300027FD30953F938F9389EB98E09F938F9347
+:105C40000E94B00987EB98E00E9417098091F40147
+:105C5000282F332727FD30953F938F9384EB98E0CF
+:105C60009F938F930E94B00982EB98E00E941709DE
+:105C70008091F501282F332727FD30953F938F938F
+:105C80008FEA98E09F938F930E94B0098CEA98E086
+:105C90000E9417098091F0011F928F9389EA98E082
+:105CA0009F938F930E94B00987EA98E00E9417099A
+:105CB0008091EF011F928F9384EA98E09F938F93D6
+:105CC0000E94B00981EA98E00E9417098DB79EB73B
+:105CD0004C960FB6F8949EBF0FBE8DBF81EF91E03A
+:105CE0000E94651E0E94392A9093EE018093ED0177
+:105CF00008951F93CF93DF938091ED019091EE0172
+:105D00000E94452AAC019091F001992321F0209145
+:105D1000130130E006C0209114018AE0289F900111
+:105D200011244217530708F486C08091F201C091F4
+:105D3000F301D091F4011091F501811107C0C11157
+:105D400076C0D11174C0111172C075C09F3F19F097
+:105D50009F5F9093F001181624F40E947D2C80938D
+:105D6000F2018091F20187FF05C00E947D2C819590
+:105D70008093F2011C1624F40E947D2C8093F30181
+:105D80008091F30187FF05C00E947D2C819580934F
+:105D9000F3016091F201662339F1C091F301CC2344
+:105DA00019F1772767FD7095872F972F0E948E3501
+:105DB00023E333E343E35FE30E94F2350E945B3564
+:105DC0006093F2016C2F772767FD7095872F972FCF
+:105DD0000E948E3523E333E343E35FE30E94F23511
+:105DE0000E945B356093F3011D1624F40E94C62CBB
+:105DF0008093F4018091F40187FF05C00E94C62CB6
+:105E000081958093F401111624F40E94C62C80938E
+:105E1000F5018091F50187FF05C00E94C62C819590
+:105E20008093F501DF91CF911F910C94EC2D9F3F52
+:105E300009F08ECF96CFDF91CF911F910895E1EFBA
+:105E4000F1E085E0DF011D928A95E9F71092F001FB
+:105E50001092EF0108958BEE9AE00E9417091F92AD
+:105E600081E08F931F9285E08F938DE99AE09F9355
+:105E70008F930E94B0090F900F900F900F900F908A
+:105E80000F9008958330E9F128F4813061F0823079
+:105E900009F10895853009F462C008F449C08630DC
+:105EA00009F474C0089580911401262F30E0280F62
+:105EB000311D2F3F310524F4680F6093140103C096
+:105EC0008FEF80931401809114011F928F9386EDC0
+:105ED00099E072C080911301262F30E0280F311D08
+:105EE0002F3F310524F4680F6093130103C08FEF37
+:105EF00080931301809113011F928F9384EC99E09A
+:105F00005BC080911201262F30E0280F311D2F3FFA
+:105F1000310524F4680F6093120103C08FEF809362
+:105F20001201809112011F928F9381EB99E044C07E
+:105F300080911101262F30E0280F311D2F3F3105B0
+:105F400024F4680F6093110103C08FEF8093110157
+:105F5000809111011F928F938CE999E02DC080915F
+:105F60001001262F30E0280F311D2F3F310524F47A
+:105F7000680F6093100103C08FEF80931001809130
+:105F800010011F928F9383E899E016C080910F0152
+:105F9000262F30E0280F311D2F3F310524F4680FE4
+:105FA00060930F0103C08FEF80930F0180910F0169
+:105FB0001F928F9388E699E09F938F930E94B00978
+:105FC0000F900F900F900F900895833081F128F477
+:105FD000813059F08230D1F00895853009F449C0FC
+:105FE000B8F1863009F456C00895809114016817FD
+:105FF00020F4861B8093140102C01092140180913A
+:1060000014011F928F9389E599E054C08091130188
+:10601000681720F4861B8093130102C010921301AD
+:10602000809113011F928F9387E499E043C0809180
+:106030001201681720F4861B8093120102C010928F
+:106040001201809112011F928F9384E399E032C074
+:1060500080911101681720F4861B8093110102C002
+:1060600010921101809111011F928F938FE199E09D
+:1060700021C080911001681720F4861B80931001C5
+:1060800002C010921001809110011F928F9386E040
+:1060900099E010C080910F01681720F4861B80934F
+:1060A0000F0102C010920F0180910F011F928F9378
+:1060B0008BEE98E09F938F930E94B0090F900F9002
+:1060C0000F900F900895CF93C82F1F928F9380EF5A
+:1060D0009BE09F938F930E94B00981E090E0A0E045
+:1060E000B0E0BC01CD0104C0660F771F881F991F67
+:1060F000CA95D2F70E9410270F900F900F900F9023
+:10610000CF910C945023CF938732B0F58E3108F0A5
+:1061100088C28E3009F402C200F5873009F4CBC181
+:10612000A8F4863009F083C28091E701817F8E7FD9
+:106130008093E7018DE49DE00E94170981E291E1DF
+:106140000E94170981E08093F701B3C1883009F4F8
+:106150003FC08B3009F4A9C16AC2863109F424C258
+:1061600020F4803109F4EEC162C2893109F405C21C
+:106170008B3109F4BFC15BC2883309F496C150F476
+:10618000893209F450C2853309F44DC2873209F4CB
+:106190004AC24DC2833409F446C228F48A3308F453
+:1061A00046C2895341C2883409F041C20E9450233B
+:1061B00085E091E10E9417099FEF23ED80E3915064
+:1061C00020408040E1F700C000000E94942A71C185
+:1061D00085E291E10E94170987E890E10E94170982
+:1061E0000E94622C1F928F9384E890E19F938F937B
+:1061F0000E94B00982E890E10E9417090E94592C80
+:10620000C82F8FE690E10E9417091F92CF938AE66C
+:1062100090E19F938F930E94B00988E690E10E94DD
+:1062200017098EE590E10E9417098C2F81701F924B
+:106230008F938BE590E19F938F930E94B00989E53E
+:1062400090E10E9417098FE490E10E941709C1FBB9
+:10625000882780F91F928F938CE490E19F938F930E
+:106260000E94B0098AE490E10E9417098EE390E150
+:106270000E941709C2FB882780F91F928F938BE336
+:1062800090E19F938F930E94B00989E390E10E946F
+:10629000170980E390E10E941709C3FBCC27C0F9DE
+:1062A0001F92CF938DE290E19F938F930E94B0094C
+:1062B0008BE290E10E9417090E946B2CC82F87E1A6
+:1062C00090E10E9417091F92CF9382E190E19F9382
+:1062D0008F930E94B00980E190E10E94170987EF37
+:1062E0009FE00E9417098C2F81701F928F9384EF7B
+:1062F0009FE09F938F930E94B0098DB79EB78096C1
+:106300000FB6F8949EBF0FBE8DBF82EF9FE00E9434
+:1063100017098BED9FE00E941709C1FB882780F9C0
+:106320001F928F9388ED9FE09F938F930E94B009F7
+:1063300086ED9FE00E94170984EC9FE00E941709F8
+:10634000C2FB882780F91F928F9381EC9FE09F9377
+:106350008F930E94B0098FEB9FE00E9417098DEA8E
+:106360009FE00E941709C3FB882780F91F928F9333
+:106370008AEA9FE09F938F930E94B00988EA9FE08A
+:106380000E9417098EE99FE00E941709C4FB882725
+:1063900080F91F928F938BE99FE09F938F930E94C8
+:1063A000B00989E99FE00E94170987E89FE00E94F1
+:1063B0001709C5FB882780F91F928F9384E89FE017
+:1063C0009F938F930E94B00982E89FE00E94170973
+:1063D00086E69FE00E941709C6FB882780F91F9276
+:1063E0008F9383E69FE09F938F930E94B00981E68D
+:1063F0009FE00E94170989E59FE00E941709C7FBEB
+:10640000CC27C0F91F92CF9386E59FE09F938F938F
+:106410000E94B00984E59FE00E9417090E94742C35
+:10642000C82F8DE39FE00E9417091F92CF9388E346
+:106430009FE09F938F930E94B0098DB79EB780967F
+:106440000FB6F8949EBF0FBE8DBF86E39FE00E94FB
+:1064500017098CE29FE00E9417098C2F81701F9210
+:106460008F9389E29FE09F938F930E94B00987E208
+:106470009FE00E9417098EE19FE00E941709C695D0
+:106480001F92CF938BE19FE09F938F930E94B0095F
+:1064900089E19FE00E9417098DB79EB708960FB655
+:1064A000F8949EBF0FBE8DBF04C084E79DE00E949C
+:1064B0001709C1E0C1C08091E701C82FC095C17024
+:1064C000C0FB80F98093E701CC2349F089EF90E18C
+:1064D0000E9417098091E7018660886048C08CEEB1
+:1064E00090E10E9417098091E701897F877F80935F
+:1064F000E701DFCF9091E70191FBCC27C0F981E064
+:10650000C827892FC0FB81F98093E701CC2319F0BC
+:106510008FED90E127C081ED90E1C9CF9091E70127
+:1065200092FBCC27C0F981E0C827892FC0FB82F9F4
+:106530008093E701CC2319F082EC90E113C082EB49
+:1065400090E1B5CF9091E70193FBCC27C0F981E0B2
+:10655000C827892FC0FB83F98093E701CC2351F032
+:1065600086EA90E10E9417098091E701816080939B
+:10657000E70162C089E990E19ACF8EE39DE00E9435
+:10658000170985E29DE00E94170983EF9CE00E94B5
+:10659000170986EC9CE00E94170986E89CE00E949F
+:1065A00017098BE59CE083CF8DE49CE00E941709DE
+:1065B0000E94101E1F928F9383E39CE09F938F9302
+:1065C0000E94B00980910C011F928F938CE19CE096
+:1065D0009F938F930E94B009809188011F928F939F
+:1065E00089E09CE09F938F930E94B0098091E9011C
+:1065F0009091EA01A091EB01B091EC01BF93AF93B0
+:106600009F938F9385EF9BE09F938F930E94B00998
+:106610008DB79EB742960FB6F8949EBF0FBE8DBF42
+:1066200048CF8D5101C080E00E94633042CF87E99E
+:1066300090E10E941709C0E08C2FCF91089580E06F
+:10664000089580E00895CF93C82F8091F70181309D
+:1066500071F020F0823009F44BC042C1E0910D018D
+:10666000F0910E018081823209F03CC107C0E091B7
+:106670000D01F0910E018081823261F48C2F0E9415
+:106680001F33811104C08C2F0E9483302FC081E002
+:1066900090E02CC08C2F0E942133811126C0C43180
+:1066A000E1F070F4CB3081F0C031D1F40E942B2F97
+:1066B00088EE9BE00E94170982E08093F70115C0E5
+:1066C000C93259F0C83361F48DE49DE00E94170986
+:1066D0008CEE9BE00E94170908C01092F70104C1DC
+:1066E00086EE9BE00E941709FFC081E08170FEC02A
+:1066F000C43228F5CE3108F0C1C0CB30A1F1D0F4BE
+:10670000C73009F0D3C08EE18093140182E38093F7
+:1067100013018AE08093120184E18093110188E0E3
+:106720008093100188E280930F018CE89AE00E9428
+:106730001709BFC0C33149F1C431C1F0B7C0CB3470
+:1067400009F4A9C028F4C93289F0C83361F0AEC099
+:10675000C13509F49EC0C23509F499C0CE3409F0A0
+:10676000A5C06AE09EC00E942B2FA3C08091F601B5
+:10677000882319F01092F6019CC089E99AE00E94E2
+:10678000170981E08093F701B1C083E79AE00E9486
+:10679000170981E69AE00E941709809114011F925F
+:1067A0008F938EE59AE09F938F930E94B0098CE5BA
+:1067B0009AE00E9417098AE49AE00E9417098091E2
+:1067C00013011F928F9387E49AE09F938F930E9407
+:1067D000B00985E49AE00E94170986E39AE00E94D6
+:1067E0001709809112011F928F9383E39AE09F9380
+:1067F0008F930E94B00981E39AE00E94170980E21A
+:106800009AE00E941709809111011F928F938DE1E8
+:106810009AE09F938F930E94B0098BE19AE00E94C7
+:10682000170986E09AE00E941709809110011F92D3
+:106830008F9383E09AE09F938F930E94B00981E049
+:106840009AE00E9417098AEE99E00E941709809148
+:106850000F011F928F9387EE99E09F938F930E9471
+:10686000B00985EE99E00E9417098DB79EB748964A
+:106870000FB6F8949EBF0FBE8DBF1BC0CE51EC2F3C
+:10688000F0E0E45CFE4F80818093F60112C061E08D
+:1068900003C061E006C06AE08091F6010E94422FC9
+:1068A00008C08091F6010E94E52F03C08AE89AE0B3
+:1068B00013C08091F601882369F01F928F9384E8BA
+:1068C0009AE09F938F930E94B0090F900F900F90C2
+:1068D0000F9004C081E89AE00E94170981E006C089
+:1068E0001092F70180E002C080E000CFCF910895C0
+:1068F0000E944E2C811102C00E942F2C0E94742CE9
+:1069000080933F0280FF02C0869501C080E00C9416
+:10691000D80980913F02982F9695292F30E0233097
+:1069200031054CF49F5F990F8170892B81608093B2
+:106930003F020E94782C8091E70180FF0FC0809178
+:106940003F0286951F928F9382E791E19F938F93E9
+:106950000E94B0090F900F900F900F9080913F020E
+:1069600086950C94D80980913F02982F969591F0C6
+:106970009158990F8170892B80933F028E7F91E00F
+:1069800009F490E080913F0290FB80F980933F02F0
+:106990000E94782C8091E70180FF0FC080913F0218
+:1069A00086951F928F938AE591E19F938F930E9422
+:1069B000B0090F900F900F900F9080913F02869535
+:1069C0000C94D80980913F02982F909590FB80F904
+:1069D00080933F020E94782C8091E70180FF0FC0D6
+:1069E00080913F0281701F928F9384E491E19F9385
+:1069F0008F930E94B0090F900F900F900F9080918D
+:106A00003F0280FF02C0869501C080E00C94D80947
+:106A100090913F02892F86958F5F8F779170843098
+:106A200028F4880F892B80933F0202C090933F0285
+:106A300080913F028E7F91E009F490E080913F02C7
+:106A400090FB80F980933F020E94782C8091E701AF
+:106A500080FF0FC080913F0286951F928F9380E345
+:106A600091E19F938F930E94B0090F900F900F9028
+:106A70000F9080913F0286950C94D80920913F0297
+:106A8000922F96958927982F990F822F8170892BA5
+:106A900080933F028E7F91E009F490E080913F0265
+:106AA00090FB80F980933F020E94782C80913F02F6
+:106AB00086950C94D80904D06894B1118DC00895BE
+:106AC00070D088F09F5790F0B92F9927B751A0F058
+:106AD000D1F0660F771F881F991F1AF0BA95C9F772
+:106AE00012C0B13081F077D0B1E0089574C0672F43
+:106AF000782F8827B85F39F0B93FCCF38695779522
+:106B00006795B395D9F73EF490958095709561950A
+:106B10007F4F8F4F9F4F0895E89409C097FB3EF435
+:106B200090958095709561957F4F8F4F9F4F9923DA
+:106B3000A9F0F92F96E9BB279395F6958795779558
+:106B40006795B795F111F8CFFAF4BB0F11F460FF18
+:106B50001BC06F5F7F4F8F4F9F4F16C0882311F070
+:106B600096E911C0772321F09EE8872F762F05C084
+:106B7000662371F096E8862F70E060E02AF09A951F
+:106B8000660F771F881FDAF7880F9695879597F914
+:106B9000089557FD9058440F551F59F05F3F71F00D
+:106BA0004795880F97FB991F61F09F3F79F0879574
+:106BB0000895121613061406551FF2CF4695F1DFFD
+:106BC00008C0161617061806991FF1CF869571058D
+:106BD000610508940895E894BB2766277727CB01C1
+:106BE00097F908950BD078C069D028F06ED018F0CE
+:106BF000952309F05AC05FC01124EECFCADFA0F37D
+:106C0000959FD1F3950F50E0551F629FF001729F41
+:106C1000BB27F00DB11D639FAA27F00DB11DAA1F60
+:106C2000649F6627B00DA11D661F829F2227B00DAD
+:106C3000A11D621F739FB00DA11D621F839FA00D38
+:106C4000611D221F749F3327A00D611D231F849F88
+:106C5000600D211D822F762F6A2F11249F575040DF
+:106C60008AF0E1F088234AF0EE0FFF1FBB1F661F7A
+:106C7000771F881F91505040A9F79E3F510570F033
+:106C800014C0AACF5F3FECF3983EDCF3869577956E
+:106C90006795B795F795E7959F5FC1F7FE2B880F2E
+:106CA000911D9695879597F9089597F99F6780E8C4
+:106CB00070E060E008959FEF80EC089500240A944E
+:106CC0001616170618060906089500240A941216C7
+:106CD0001306140605060895092E0394000C11F4FA
+:106CE000882352F0BB0F40F4BF2B11F460FF04C0A7
+:106CF0006F5F7F4F8F4F9F4F0895991B79E004C0BE
+:106D0000991F961708F0961B881F7A95C9F78095EA
+:106D10000895AA1BBB1B51E107C0AA1FBB1FA617E2
+:106D2000B70710F0A61BB70B881F991F5A95A9F734
+:106D300080959095BC01CD01089597FB072E16F420
+:106D4000009407D077FD09D00E94893607FC05D052
+:106D50003EF4909581959F4F0895709561957F4F72
+:106D60000895EE0FFF1F0590F491E02D0994F99915
+:106D7000FECF92BD81BDF89A992780B50895A6E10E
+:106D8000B0E044E050E00C94F136A8E1B0E042E01D
+:106D900050E00C94F136262FF999FECF92BD81BDBB
+:106DA000F89A019700B4021639F01FBA20BD0FB649
+:106DB000F894FA9AF99A0FBE08950396272F0E9425
+:106DC000CC360E94CB36252F0E94CC36242F0C9433
+:106DD000CC360196272F0E94CC360C94CB36DC01A2
+:106DE000CB01FC01F999FECF06C0F2BDE1BDF89AD6
+:106DF000319600B40D9241505040B8F70895F89480
+:026E0000FFCFC2
+:106E0200FFFF7A166B1748171417E01601DC0128EA
+:106E120008140A321E0F1F6C76667349130353431C
+:106E220079693309196F7F59404D36201208C50719
+:106E32008F076F07FB0614072D074607010203049D
+:066E420005060708090027
+:00000001FF

+ 10 - 0
keyboard/kc60/keymaps/ws2812/config.h

@@ -0,0 +1,10 @@
+#include "../../config.h"
+
+/* WS2812B RGB Underglow LED */
+#define ws2812_PORTREG  PORTF
+#define ws2812_DDRREG   DDRF
+#define ws2812_pin PF5        // Based on wiring depicted in ws2812_wiring.jpg
+#define RGBLED_NUM 16         // Number of LEDs. Change this to match your use case.
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8

+ 161 - 0
keyboard/kc60/keymaps/ws2812/keymap.c

@@ -0,0 +1,161 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "kc60.h"
+
+// Used for SHIFT_ESC
+#define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _BL 0
+#define _FL 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Keymap _BL: (Base Layer) Default Layer
+   * ,-----------------------------------------------------------.
+   * |Esc~| 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
+   * |-----------------------------------------------------------|
+   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  |
+   * |-----------------------------------------------------------|
+   * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |
+   * |-----------------------------------------------------------|
+   * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |
+   * |-----------------------------------------------------------|
+   * |Ctrl|Gui |Alt |      Space            |Alt |Gui |FN  |Ctrl |
+   * `-----------------------------------------------------------'
+   */
+[_BL] = KEYMAP(
+  F(0),    KC_1,    KC_2,   KC_3,   KC_4,   KC_5,   KC_6,   KC_7,   KC_8,   KC_9,   KC_0,   KC_MINS,  KC_EQL,  KC_BSPC, \
+  KC_TAB,  KC_Q,    KC_W,   KC_E,   KC_R,   KC_T,   KC_Y,   KC_U,   KC_I,   KC_O,   KC_P,   KC_LBRC,  KC_RBRC, KC_BSLS, \
+  KC_CAPS, KC_A,    KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,  KC_NO,   KC_ENT,  \
+  KC_LSFT, KC_NO,   KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,  KC_NO,   KC_RSFT, \
+  KC_LCTL, KC_LGUI, KC_LALT,                KC_SPC,                                 KC_RALT,KC_RGUI, MO(_FL), KC_RCTL),
+
+  /* Keymap _FL: Function Layer
+   * ,-----------------------------------------------------------.
+   * |~ |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|   DEL  |
+   * |-----------------------------------------------------------|
+   * |     |   |UP |   |   |   |   |   |   |   |   |BL-|BL+|BL   |
+   * |-----------------------------------------------------------|
+   * |       |LFT|DWN|RGT|   |   |   |   |   |   |   |           |
+   * |-----------------------------------------------------------|
+   * |        |FN1|FN2|FN3|FN4|FN5|FN6|FN7|FN8|   |   |          |
+   * |-----------------------------------------------------------|
+   * |    |    |    |                        |    |    |    |RSET|
+   * `-----------------------------------------------------------'
+   */
+[_FL] = KEYMAP(
+  #ifdef RGBLIGHT_ENABLE
+  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL,  \
+  KC_TRNS, KC_TRNS, KC_UP,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC,  BL_INC,  BL_TOGG, \
+  KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+  KC_TRNS, KC_TRNS, F(1),    F(2),    F(3),    F(4),    F(5),    F(6),    F(7),    F(8),    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+  KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                                     KC_TRNS, KC_TRNS, KC_TRNS, RESET),
+  #else
+  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_DEL,  \
+  KC_TRNS, KC_TRNS, KC_UP,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC,  BL_INC,  BL_TOGG, \
+  KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+  KC_TRNS, KC_TRNS, KC_TRNS,                   KC_TRNS,                                     KC_TRNS, KC_TRNS, KC_TRNS, RESET),
+  #endif
+};
+
+enum function_id {
+    SHIFT_ESC,
+    #ifdef RGBLIGHT_ENABLE
+    RGBLED_TOGGLE,
+    RGBLED_STEP_MODE,
+    RGBLED_INCREASE_HUE,
+    RGBLED_DECREASE_HUE,
+    RGBLED_INCREASE_SAT,
+    RGBLED_DECREASE_SAT,
+    RGBLED_INCREASE_VAL,
+    RGBLED_DECREASE_VAL
+    #endif
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+  [0]  = ACTION_FUNCTION(SHIFT_ESC),
+  #ifdef RGBLIGHT_ENABLE
+  [1]  = ACTION_FUNCTION(RGBLED_TOGGLE),
+  [2]  = ACTION_FUNCTION(RGBLED_STEP_MODE),
+  [3]  = ACTION_FUNCTION(RGBLED_INCREASE_HUE),
+  [4]  = ACTION_FUNCTION(RGBLED_DECREASE_HUE),
+  [5]  = ACTION_FUNCTION(RGBLED_INCREASE_SAT),
+  [6]  = ACTION_FUNCTION(RGBLED_DECREASE_SAT),
+  [7]  = ACTION_FUNCTION(RGBLED_INCREASE_VAL),
+  [8]  = ACTION_FUNCTION(RGBLED_DECREASE_VAL),
+  #endif
+};
+
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
+  static uint8_t shift_esc_shift_mask;
+  switch (id) {
+    case SHIFT_ESC:
+      shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
+      if (record->event.pressed) {
+        if (shift_esc_shift_mask) {
+          add_key(KC_GRV);
+          send_keyboard_report();
+        } else {
+          add_key(KC_ESC);
+          send_keyboard_report();
+        }
+      } else {
+        if (shift_esc_shift_mask) {
+          del_key(KC_GRV);
+          send_keyboard_report();
+        } else {
+          del_key(KC_ESC);
+          send_keyboard_report();
+        }
+      }
+      break;
+    //led operations
+    #ifdef RGBLIGHT_ENABLE
+    case RGBLED_TOGGLE:
+      if (record->event.pressed) {
+        rgblight_toggle();
+      }
+      break;
+    case RGBLED_INCREASE_HUE:
+      if (record->event.pressed) {
+        rgblight_increase_hue();
+      }
+      break;
+    case RGBLED_DECREASE_HUE:
+      if (record->event.pressed) {
+        rgblight_decrease_hue();
+      }
+      break;
+    case RGBLED_INCREASE_SAT:
+      if (record->event.pressed) {
+        rgblight_increase_sat();
+      }
+      break;
+    case RGBLED_DECREASE_SAT:
+      if (record->event.pressed) {
+        rgblight_decrease_sat();
+      }
+      break;
+    case RGBLED_INCREASE_VAL:
+      if (record->event.pressed) {
+        rgblight_increase_val();
+      }
+      break;
+    case RGBLED_DECREASE_VAL:
+      if (record->event.pressed) {
+        rgblight_decrease_val();
+      }
+      break;
+    case RGBLED_STEP_MODE:
+      if (record->event.pressed) {
+        rgblight_step();
+      }
+      break;
+    #endif
+  }
+}

BIN
keyboard/kc60/keymaps/ws2812/ws2812_example.jpg


BIN
keyboard/kc60/keymaps/ws2812/ws2812_underside-lit.jpg


BIN
keyboard/kc60/keymaps/ws2812/ws2812_underside.jpg


BIN
keyboard/kc60/keymaps/ws2812/ws2812_wiring.jpg


+ 1 - 1
keyboard/phantom/phantom.h

@@ -2,7 +2,7 @@
 #define PHANTOM_H
 #define PHANTOM_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include <stddef.h>
 #include <stddef.h>
 
 
 
 

+ 1 - 1
keyboard/planck/keymaps/alexey/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 #include "planck.h"
 #include "planck.h"
 #include "backlight.h"
 #include "backlight.h"
 
 

+ 1 - 1
keyboard/planck/keymaps/angerthosenear/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/keymaps/austin/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/keymaps/charlie/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [0] = { /* Native */
     [0] = { /* Native */

+ 1 - 1
keyboard/planck/keymaps/daniel/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/keymaps/david/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1427 - 1426
keyboard/planck/keymaps/default/compiled.hex

@@ -1,22 +1,22 @@
 :100000000C941D050C9461050C9461050C9461051C
 :100000000C941D050C9461050C9461050C9461051C
 :100010000C9461050C9461050C9461050C946105C8
 :100010000C9461050C9461050C9461050C946105C8
-:100020000C9461050C9461050C94D2180C94A419DD
-:100030000C9406270C9461050C9461050C946105E1
+:100020000C9461050C9461050C94D5180C94A719D7
+:100030000C9409270C9461050C9461050C946105DE
 :100040000C9461050C94C2050C9461050C94610537
 :100040000C9461050C94C2050C9461050C94610537
-:100050000C9461050C946E270C9461050C94610559
+:100050000C9461050C9471270C9461050C94610556
 :100060000C9461050C9461050C9461050C94610578
 :100060000C9461050C9461050C9461050C94610578
 :100070000C9461050C9461050C9461050C94610568
 :100070000C9461050C9461050C9461050C94610568
-:100080000C94B80E0C9461050C9461050C946105F8
+:100080000C94BB0E0C9461050C9461050C946105F5
 :100090000C9461050C9461050C9461050C94610548
 :100090000C9461050C9461050C9461050C94610548
 :1000A0000C9461050C9461050C9461052A063C06CC
 :1000A0000C9461050C9461050C9461052A063C06CC
 :1000B0005006620671067B06CF06CF06CF06CF0636
 :1000B0005006620671067B06CF06CF06CF06CF0636
-:1000C000CF06CF068906B906CB06111A331A211BB3
-:1000D000331A211B781A9B1A211BF01A031BED1DE2
-:1000E000ED1D1C1E1C1E5B1E7B1ED11FD11F861EFC
-:1000F000D11F361F361F9D1FA61FD11FCB1F431FA9
-:10010000431F431F431F431F431F431F431F431FDF
-:10011000431F431F431F431F431F431F431F531FBF
-:10012000611F681F6F1F791F07634236B79BD8A7EF
+:1000C000CF06CF068906B906CB06141A361A241BAA
+:1000D000361A241B7B1A9E1A241BF31A061BF01DCA
+:1000E000F01D1F1E1F1E5E1E7E1ED41FD41F891EE4
+:1000F000D41F391F391FA01FA91FD41FCE1F461F91
+:10010000461F461F461F461F461F461F461F461FC7
+:10011000461F461F461F461F461F461F461F561FA7
+:10012000641F6B1F721F7C1F07634236B79BD8A7E3
 :100130001A39685618AEBAAB558C1D3CB7CC57630C
 :100130001A39685618AEBAAB558C1D3CB7CC57630C
 :10014000BD6DEDFD753EF6177231BF000000803FBA
 :10014000BD6DEDFD753EF6177231BF000000803FBA
 :1001500008000000BE922449123EABAAAA2ABECDD6
 :1001500008000000BE922449123EABAAAA2ABECDD6
@@ -126,11 +126,11 @@
 :1007D0000000000000000000000000000000000019
 :1007D0000000000000000000000000000000000019
 :1007E0000000000000000000000000000000000009
 :1007E0000000000000000000000000000000000009
 :1007F00000000000000000000000000000000000F9
 :1007F00000000000000000000000000000000000F9
-:100800000000000100005001000100010001000192
+:100800000000000100007001000100010001000172
 :100810000001000100010001004C00010001000185
 :100810000001000100010001004C00010001000185
-:100820000020502150135012500030013002300C83
-:100830003001000100275026502350245028502911
-:100840005001000100010001000100010001000150
+:10082000001570167013700A700030013002300C21
+:1008300030010001001C701B70187019701D701EB3
+:100840007001000100010001000100010001000130
 :100850000001000100010001000100010001000190
 :100850000001000100010001000100010001000190
 :100860000001002803540068006500200050006C5F
 :100860000001002803540068006500200050006C5F
 :100870000061006E0063006B0020004B0065007992
 :100870000061006E0063006B0020004B0065007992
@@ -162,16 +162,16 @@
 :100A100095017508810105081901290595057501DC
 :100A100095017508810105081901290595057501DC
 :100A200091029501750391010507190029FF150031
 :100A200091029501750391010507190029FF150031
 :100A300026FF00950675088100C011241FBECFEF68
 :100A300026FF00950675088100C011241FBECFEF68
-:100A4000DAE0DEBFCDBF04B603FE24C080918E0481
-:100A500090918F04A0919004B09191048730904BB5
-:100A6000A740B04BB9F410928E0410928F041092EC
-:100A700090041092910414BE84B7877F84BF88E1EC
+:100A4000DAE0DEBFCDBF04B603FE24C080918F0480
+:100A500090919004A0919104B09192048730904BB2
+:100A6000A740B04BB9F410928F04109290041092EA
+:100A700091041092920414BE84B7877F84BF88E1EA
 :100A80000FB6F89480936000109260000FBEE0E013
 :100A80000FB6F89480936000109260000FBEE0E013
-:100A9000F8E3099513E0A0E0B1E0E0E7F2E602C078
+:100A9000F8E3099513E0A0E0B1E0ECE7F2E602C06C
 :100AA00005900D92A033B107D9F714E0A0E3B3E0AD
 :100AA00005900D92A033B107D9F714E0A0E3B3E0AD
-:100AB00001C01D92AE38B107E1F70E941C160C94DC
-:100AC00036310C940000089581E0089508950C9447
-:100AD00063050C9464050C9466050E94002D23E0C8
+:100AB00001C01D92AF38B107E1F70E941F160C94D8
+:100AC0003C310C940000089581E0089508950C9441
+:100AD00063050C9464050C9466050E94062D23E0C2
 :100AE00030E0281B3109220F209334030895282F6A
 :100AE00030E0281B3109220F209334030895282F6A
 :100AF0002F9880918000211108C0877F809380000B
 :100AF0002F9880918000211108C0877F809380000B
 :100B000010928D0010928C001BC088608093800032
 :100B000010928D0010928C001BC088608093800032
@@ -181,7 +181,7 @@
 :100B40000C946D050E946D0584E080933303109230
 :100B40000C946D050E946D0584E080933303109230
 :100B500030030895279A2F988FEF9FEF9093870087
 :100B500030030895279A2F988FEF9FEF9093870087
 :100B6000809386008AE08093800089E180938100F1
 :100B6000809386008AE08093800089E180938100F1
-:100B70000E94692C0C94A2050E94AA056E9A769A8E
+:100B70000E946F2C0C94A2050E94AA056E9A769A88
 :100B80000C94EF061F920F920FB60F9211242F9321
 :100B80000C94EF061F920F920FB60F9211242F9321
 :100B90003F938F939F93EF93FF93E0913103F091F5
 :100B90003F938F939F93EF93FF93E0913103F091F5
 :100BA0003203CF010196909332038093310300907A
 :100BA0003203CF010196909332038093310300907A
@@ -192,1420 +192,1421 @@
 :100BF000900D11240090340302C0969587950A94B5
 :100BF000900D11240090340302C0969587950A94B5
 :100C0000E2F790938D0080938C00FF91EF919F917C
 :100C0000E2F790938D0080938C00FF91EF919F917C
 :100C10008F913F912F910F900FBE0F901F901895BD
 :100C10008F913F912F910F900FBE0F901F901895BD
-:100C2000CF93DF93EC010E940728BE0180E090E0A3
-:100C3000DF91CF910C94FC230F931F93462F50E02C
+:100C2000CF93DF93EC010E940D28BE0180E090E09D
+:100C3000DF91CF910C94FF230F931F93462F50E029
 :100C40004F30510508F0ABC0DC01FA01EA5AFF4F02
 :100C40004F30510508F0ABC0DC01FA01EA5AFF4F02
-:100C50000C94FA3012968C91882309F4A0C000E01D
+:100C50000C94003112968C91882309F4A0C000E016
 :100C600010E0980140E064E070E088E292E00E94C9
 :100C600010E0980140E064E070E088E292E00E94C9
-:100C7000361281E090E011C012968C91882309F41D
+:100C7000391281E090E011C012968C91882309F41A
 :100C80008EC000E010E0980140E066E070E088EB84
 :100C80008EC000E010E0980140E066E070E088EB84
-:100C900091E00E94361282E090E00E9410067FC030
+:100C900091E00E94391282E090E00E9410067FC02D
 :100CA00012968C91882309F47AC000E010E0980134
 :100CA00012968C91882309F47AC000E010E0980134
-:100CB00040E068E070E088EE91E00E94361284E047
+:100CB00040E068E070E088EE91E00E94391284E044
 :100CC00090E0EBCF12968C91882311F083E00EC058
 :100CC00090E0EBCF12968C91882311F083E00EC058
-:100CD00083E00E949A2440E164E083E00E949B0C40
-:100CE0005EC012968C91882321F084E00E947924C2
+:100CD00083E00E949D2440E164E083E00E942007BD
+:100CE0005EC012968C91882321F084E00E947C24BF
 :100CF000F2CF84E0EECF12968C91882331F085EE0E
 :100CF000F2CF84E0EECF12968C91882331F085EE0E
-:100D00000E94911C0E94C02C4AC085EE0E94591D71
-:100D100046C012968C91882309F441C00E94EB0DC5
+:100D00000E94941C0E94C62C4AC085EE0E945C1D65
+:100D100046C012968C91882309F441C00E94EE0DC2
 :100D200000E010E0980140E066E070E088E891E0C3
 :100D200000E010E0980140E066E070E088E891E0C3
-:100D30000E94361284E00E949A2483E00E949A2442
-:100D400080E10E949A2485E00E9479240E94F42781
-:100D5000811102C00E94D0270E940C2890E090933D
-:100D60008D0480938C04806880938C040E941028EA
+:100D30000E94391284E00E949D2483E00E949D2439
+:100D400080E10E949D2485E00E947C240E94FA2775
+:100D5000811102C00E94D6270E94122890E0909331
+:100D60007404809373048068809373040E9416282F
 :100D700016C012968C91882391F000E010E0980143
 :100D700016C012968C91882391F000E010E0980143
-:100D800040E066E070E088E591E00E94361285E080
-:100D90000E949A2404C012968C91811103C080E0B5
+:100D800040E066E070E088E591E00E94391285E07D
+:100D90000E949D2404C012968C91811103C080E0B2
 :100DA00090E002C08AEE91E01F910F9108950F9399
 :100DA00090E002C08AEE91E01F910F9108950F9399
 :100DB0001F932FEF89EF90E0215080409040E1F7A2
 :100DB0001F932FEF89EF90E0215080409040E1F7A2
 :100DC00000C0000000E010E0980140E065E070E045
 :100DC00000C0000000E010E0980140E065E070E045
-:100DD00088E492E00E9436121F910F9108950C94BE
+:100DD00088E492E00E9439121F910F9108950C94BB
 :100DE000D7060F931F9300E010E0980140E063E006
 :100DE000D7060F931F9300E010E0980140E063E006
-:100DF00070E080E091E00E9436122FEF82E597E0EC
+:100DF00070E080E091E00E9439122FEF82E597E0E9
 :100E0000215080409040E1F700C000001F910F91F9
 :100E0000215080409040E1F700C000001F910F91F9
-:100E10000C94EB0D0F931F9300E010E0980140E05D
-:100E200068E070E088E191E00E9436121F910F9116
+:100E10000C94EE0D0F931F9300E010E0980140E05A
+:100E200068E070E088E191E00E9439121F910F9113
 :100E300008950C940A0781E008950C941B07089507
 :100E300008950C940A0781E008950C941B07089507
-:100E40000C94BC0580918503882309F448C08091E7
-:100E5000410390914203009779F40E9438279093C0
-:100E60004203809341038091430390E0009771F423
-:100E70008091440390E00AC00E94442720917002B0
-:100E8000309171022817390740F329C00197880F64
-:100E9000991F880F991FFC01EB5BFC4F60817181EA
-:100EA000828193810E941E0EE091430384E0E89FBB
-:100EB000F0011124EB5BFC4F608171818281938191
-:100EC0004FE050E00E94D6118091430390E00196DC
-:100ED0006091440370E00E94E630809343030C94D9
-:100EE0006705109287030C94EB0D81E080938703D4
-:100EF0000C94190708958F929F92AF92BF92EF9230
-:100F0000FF920F931F93CF93DF93CDB7DEB7A397D5
-:100F10000FB6F894DEBF0FBECDBF7C01FC0100818F
-:100F20001181C8010E943525B8010E947D098C01FC
-:100F3000B7010E941D07882309F4CCC10032F0E5F7
-:100F40001F0741F4F7018281882309F458C00E94E9
-:100F5000CD12C0C10132F0E51F0741F4F7018281D3
-:100F6000882309F44CC00E94D612B4C10232F0E5C5
-:100F70001F0751F4F7018281882309F440C00E94C1
-:100F8000C9128111F0CFE3CF0332F0E51F0739F426
-:100F9000F7018281882399F10E9475079BC1043271
-:100FA000F0E51F0739F4F7018281882341F10E949F
-:100FB000710790C10532F0E51F0749F4F7018281FE
-:100FC0008823E9F0809187038111F1CFE5CF0632C4
-:100FD000F0E51F0739F4F7018281882381F00E9430
-:100FE000DD120AC00732F0E51F0749F4F7018281DC
-:100FF000882329F00E94E8120E940A076BC18091A1
-:101000008703811105C0F70182818111CFC018C10A
-:10101000003E110579F4F7018281882309F44DC05F
-:101020000E94EB0D81E0809386031092850310925D
-:10103000440350C1023E110559F4F701828188230F
-:10104000E1F10E94EB0D109286031092850342C1DC
-:10105000033E110591F4F7018281882371F10E940A
-:10106000EB0D1092860381E0809385031092430379
-:1010700010924203109241032DC10235110559F41B
-:10108000F7018281882309F425C180917002909133
-:1010900071020A970DC00135110579F4F7018281BB
-:1010A000882309F417C180917002909171020A9609
-:1010B00090937102809370020DC14091740283E29B
-:1010C000EFE8F2E0DE01119601900D928A95E1F7CA
-:1010D000F701808121E030E02C0F3D1F280F311DEA
-:1010E000C9012091720230917302FC01E20FF31FDB
-:1010F0006081772767FD7095640F711D882777FDE4
-:101100008095982F0E94082E20E030E040E451E4C2
-:101110000E946D2D4B015C01F701218184E090E07C
-:10112000821B9109BC01882777FD8095982F0E942A
-:10113000082E9B01AC01C501B4010E94052D9B0145
-:10114000AC0160E070E080E090E40E947B2F20E042
-:1011500030E04CED50E40E94182F4B015C01F70188
-:1011600082818823D1F04FE050E0C501B4010E9494
-:10117000D611809186038823A1F08091440324E056
-:10118000829FF0011124EB5BFC4F80829182A2824E
-:10119000B3828F5F8093440304C0C501B4010E94F1
-:1011A0001E0E0F3F110508F02ECF94C08091400312
-:1011B00081111FC0043130E5130709F051C00E94AE
-:1011C0001F0781E0809340030E94382790933F03DC
-:1011D00080933E0310923703109239031092380324
-:1011E00010923B0310923A0310923D0310923C037D
-:1011F00071C080913E0390913F030E944427883C38
-:10120000910570F480913703E82FF0E0EE0FFF1F97
-:10121000E85CFC4F118300838F5F809337035AC0D3
-:10122000043880E5180721F00538104501F13AC06F
-:10123000F7018281882341F01092350382E01EC0BD
-:10124000043830E5130759F580913503811106C044
-:1012500086E20E94911C86E20E94591D82E01CC019
-:101260000438F0E51F0741F305381045D9F4F701BC
-:101270008281882331F01092360380E20E94A81DFB
-:1012800029C080913603811106C087E20E94911C1B
-:1012900087E20E94591D80E20E94AF1D1BC00538E5
-:1012A000104529F381E08093350380933603C7010D
-:1012B000A3960FB6F894DEBF0FBECDBFDF91CF91DE
-:1012C0001F910F91FF90EF90BF90AF909F908F90E4
-:1012D0000C94690580E0A3960FB6F894DEBF0FBEAC
-:1012E000CDBFDF91CF911F910F91FF90EF90BF90F5
-:1012F000AF909F908F90089508959CE0799FF001A2
-:10130000112490E3899FE00DF11D1124E60FF11DDA
-:10131000EE0FFF1FED5FFD4F859194910895880FAB
-:10132000991FFC01ED57FF4F859194910895880F07
-:10133000991FFC01ED5FFD4F8591949108950F93E6
-:101340001F93CF93DF93EC01811521E39207A0F562
-:10135000C11580E3D80708F0D7C0C83ED105D8F43E
-:10136000C03ED10508F007C2C83AD10578F4C53AA5
-:10137000D10508F06AC0C130D10509F463C008F492
-:10138000F7C1C430D10508F0F6C1F2C1CB3BD1059D
-:1013900008F466C0EDC1C11590E2D90708F0AFC0EE
-:1013A000C11521E0D20708F0E6C1C03FD10508F41D
-:1013B000DFC18E0110651FC2C03880E5D80700F577
-:1013C000C03790E5D90708F0A3C0C11520E5D207C2
-:1013D00009F4ACC050F4CE01905480319F4008F025
-:1013E000C7C1DF708E01106A06C2C13080E5D80720
-:1013F00009F4AEC0C43190E5D90708F4AFC0B8C154
-:10140000C33820E5D20709F48EC050F4C13890E506
-:10141000D90709F482C008F083C000E011EDEBC1E8
-:10142000C03181E5D80708F4A3C1C11597E5D907F4
-:1014300008F436C1CE0190578115904108F098C14B
-:10144000DF7093C101E010E0D6C1C53AD10509F4BF
-:1014500094C1C63AD10509F093C102E810E4CBC1AA
-:10146000C83AD10509F48FC1C93AD10509F48EC132
-:10147000CA3AD10509F48DC1CB3AD10509F48CC122
-:10148000CC3AD10509F48BC1CD3AD10509F48AC112
-:10149000C03BD10509F489C1CE3AD10509F488C110
-:1014A000CF3AD10509F487C1C13BD10509F486C102
-:1014B000C23BD10509F485C1C33BD10509F484C100
-:1014C000C43BD10509F483C1C53BD10509F482C1F0
-:1014D000C63BD10509F481C1C73BD10509F480C1E0
-:1014E000C83BD10509F47FC1C93BD10509F47EC1D0
-:1014F000CA3BD10509F47DC100E014E47CC1CE01F2
-:101500009F700E94970978C1DD278E01106C73C10E
-:10151000CF70DD278E01146D6EC100E010ED6BC140
-:1015200000E012ED68C100E013ED65C10E943C20AF
-:101530000E94EB0D0E94F1068FEF94E32CE08150A6
-:1015400090402040E1F700C000000E94932753C163
-:10155000809162048160809362044DC10E94F427EF
-:10156000811102C00E94D0270E940C2890E0909325
-:101570008D0480938C04C23080E5D80721F48091DB
-:101580008C04816086C0C43090E5D90721F4809135
-:101590008C0482607EC0C63020E5D20721F48091A1
-:1015A0008C04846076C0C83080E5D80719F4809137
-:1015B0008C0427C0CA3090E5D90721F480918C04AF
-:1015C000806167C0CC3020E5D20721F480918C0483
-:1015D00080625FC0CE3080E5D80721F480918C0412
-:1015E000806457C0C03190E5D90721F480918C0404
-:1015F00080684FC0C23120E5D20729F480918C0465
-:101600008460886046C0C33080E5D80721F48091AB
-:101610008C048E7F3EC0C53090E5D90721F48091BF
-:101620008C048D7F36C0C73020E5D20721F480912D
-:101630008C048B7F2EC0C93080E5D80719F48091C7
-:101640008C0426C0CB3090E5D90721F480918C041E
-:101650008F7E1FC0CD3020E5D20721F480918C040D
-:101660008F7D17C0CF3080E5D80721F480918C049E
-:101670008F7B0FC0C13190E5D90721F480918C0494
-:101680008F7707C0C331D04531F480918C048B7FB4
-:10169000877F80938C0480918C040E941028ABC0BB
-:1016A0008D2F99278F70992781309105D9F49E014C
-:1016B0002370332702C0880F991F2A95E2F79C6890
-:1016C0008E0144E0000F111F4A95E1F700271370C7
-:1016D000802B912B53E0CC0FDD1F5A95E1F7C0769C
-:1016E000DD272FC08230910531F4DC2FCC278E010D
-:1016F000016F106A80C08330910569F4CE01837058
-:10170000992701E010E002C0000F111F8A95E2F74F
-:10171000C8019C680FC084309105B9F4CE01837074
-:10172000992701E010E002C0000F111F8A95E2F72F
-:10173000C8019A6823E0CC0FDD1F2A95E1F7C07E2F
-:10174000D7708C010C2B1D2B56C08530910531F4C0
-:10175000DC2FCC278E01046F106A4DC0069709F06C
-:101760004AC0CF71DD27DC2FCC278E01106243C029
-:1017700000E010E040C08E013EC001E810E43BC034
-:1017800003E810E438C002EE14E435C009EE14E4B6
-:1017900032C00AEE14E42FC005EB14E42CC006EBB3
-:1017A00014E429C007EB14E426C00CEC14E423C0B5
-:1017B0000DEC14E420C003E815E41DC00AE815E4AC
-:1017C0001AC002E915E417C004E915E414C001E2E7
-:1017D00016E411C003E216E40EC004E216E40BC0E6
-:1017E00005E216E408C006E216E405C007E216E4C6
-:1017F00002C00AE216E4C801DF91CF911F910F9158
-:1018000008959CE0799FF001112490E3899FE00DF9
-:10181000F11D1124E60FF11DEE0FFF1FED5FFD4FCF
-:1018200085919491803E9105E0F4803C910558F5B6
-:101830008133910509F46FC048F48932910509F4A8
-:1018400063C08A32910509F46DC072C08933910575
-:10185000E9F082389105D1F08533910509F44DC046
-:1018600067C0833E910581F138F4803E9105B9F05F
-:10187000823E9105D9F05CC0863E910561F1873EBC
-:101880009105A1F155C00E948F09089520918C0403
-:1018900020FD02C021FF4CC080EE90E049C0809145
-:1018A0008C0480FFF9CF89E390E042C080918C04E2
-:1018B00082FF0EC080918C0484FF03C080E090E022
-:1018C00037C083EE90E034C080918C0482FFF2CF69
-:1018D00082EE90E02DC080918C0483FF0BC080913C
-:1018E0008C0484FDEBCF87EE90E022C080918C04C5
-:1018F00083FFF5CF86EE90E01BC080918C0485FFBE
-:1019000007C089E290E014C080918C0485FFF9CF74
-:1019100085E390E00DC080918C0486FF07C08AE2C9
-:1019200090E006C080918C0486FFF9CF81E390E0BF
-:101930000E949F090895CF92DF92EF92FF920F933A
-:101940001F9301E010E020E030E06801790104C05D
-:10195000CC0CDD1CEE1CFF1C8A95D2F704C0000FD6
-:10196000111F221F331F6A95D2F70C291D292E291A
-:101970003F29C0904504D0904604E0904704F09081
-:101980004804C022D122E222F322842FC016D106BD
-:10199000E206F30641F41F910F91FF90EF90DF9064
-:1019A000CF900C9479241F910F91FF90EF90DF90CE
-:1019B000CF900C949A240C946B05E82FF0E0E2543D
-:1019C000FD4F8081E82FEF70F0E082958F7021E06D
-:1019D00030E0A90102C0440F551F8A95E2F740A3E9
-:1019E00008950F931F93CF93DF9385B7806885BFCA
-:1019F00085B7806885BFC3E0D0E001E010E0FE015C
-:101A0000E254FD4F8081E82FEF70F0E021A1829534
-:101A10008F70A80102C0440F551F8A95E2F7CA01D2
-:101A2000822B81A38C2F0E94DD0C219740F78BE045
-:101A300090E061E070E0FC01EE54FD4F2081E22F68
-:101A4000EF70F0E042A122952F70DB0102C0AA0FD7
-:101A5000BB1F2A95E2F79D01242B22A3019758F77B
-:101A6000DF91CF911F910F910C942007EF92FF927D
-:101A70000F931F93CF93DF9300E913E0C3E0EE24AD
-:101A8000E394F12CD5E08C2F0E94DD0C8BE090E0EC
-:101A900040E050E0FC01EE54FD4F6081E62FEF7016
-:101AA000F0E020A130E062956F7002C03595279577
-:101AB0006A95E2F720FD09C09701082E02C0220FA7
-:101AC000331F0A94E2F7422B532B019718F7F801C2
-:101AD000929182918F018417950721F05183408361
-:101AE000D09375028C2F0E94DD0CC15060F680915E
-:101AF000750287FD2CC08150809375028F3F39F0AD
-:101B00008FE99FE00197F1F700C0000020C08091AD
-:101B10008E0390918F039093970380939603809107
-:101B20008C0390918D0390939503809394038091FF
-:101B30008A0390918B0390939303809392038091F7
-:101B400088039091890390939103809390030E945E
-:101B5000220781E0DF91CF911F910F91FF90EF90CD
-:101B60000895E82FF0E0EE0FFF1FE057FC4F808153
-:101B70009181089508950F931F93CF9308E913E07F
-:101B8000C0E0F801929182918F010E94B026C80FA7
-:101B9000F3E000391F07A9F78C2FCF911F910F9108
-:101BA00008950E94F427811102C00E94D0270E944C
-:101BB0001E28809377043E9A809171008D7F8093D8
-:101BC000710082E0809390008AE18093910081E02F
-:101BD00080939A03089580919A03811102C00E9414
-:101BE000D10D1092EA031092E903809171008D7F6C
-:101BF00080937100809190008F7380939000109279
-:101C0000AC031092AB031092E3031092E403109222
-:101C1000E5031092E6031092E2031092E103E1EC77
-:101C2000F3E0A1EBB3E011921192119211921D9287
-:101C30001D9283E0E13EF807B1F70895CF92DF925D
-:101C4000EF92FF920F931F93CF93DF932091AB03FB
-:101C5000222309F484C06B017C0180919A038111D5
-:101C600002C00E94D10D01EE13E0C7E0D0E0A70151
-:101C70009601F80192918291729162918F010E9476
-:101C8000692D811131C0FE01EE0FFF1FEE0FFF1F06
-:101C9000EF53FC4F1082118212821382DE01AA0FD1
-:101CA000BB1FAF54BC4F11961C921E92C730D1057A
-:101CB000E9F0219644815581668177814083518383
-:101CC00062837383148215821682178212968D9115
-:101CD0009C91139711969C938E9313961C921E922F
-:101CE000129734961296E2CF219708F68091E90375
-:101CF0009091EA03019797FD05C09093EA038093C2
-:101D0000E90304C01092EA031092E9038091E90309
-:101D10009091EA032091E7033091E80328173907EF
-:101D200024F01092E8031092E703892BC1F480910C
-:101D300071008D7F80937100809190008F738093EC
-:101D400090001092E3031092E4031092E5031092C6
-:101D5000E6031092E2031092E1031092AB03DF91CD
-:101D6000CF911F910F91FF90EF90DF90CF9008954A
-:101D70001F920F920FB60F9211244F925F926F92A3
-:101D80007F928F929F92AF92BF92CF92DF92EF920B
-:101D9000FF922F933F934F935F936F937F938F9314
-:101DA0009F93AF93BF93CF93DF93EF93FF93809174
-:101DB000AB03882309F49BC1C091E903D091EA03E6
-:101DC0001C161D060CF093C140909B0350909C0381
-:101DD00060909D0370909E0320E030E0A901C30154
-:101DE000B2010E94142F18160CF065C0C130D10545
-:101DF00009F452C08091E7039091E803BE010E946C
-:101E0000E6307C019093E8038093E7038090AD0374
-:101E10009090AE03A090AF03B090B00320E030E00C
-:101E200040E85FE3C501B4010E94052D6093AD0356
-:101E30007093AE038093AF039093B003F701EE0F5E
-:101E4000FF1FEE0FFF1FEF53FC4FA30192016081B4
-:101E50007181828193810E946D2D20E030E040E00D
-:101E60005EE30E94182F9B01AC01C501B4010E94E2
-:101E7000142F18168CF4C7010196BE010E94E6309B
-:101E80009093E8038093E7031092AD031092AE03A2
-:101E90001092AF031092B003E091E703F091E803D2
-:101EA000EE0FFF1FEE0FFF1FEF53FC4F608171819C
-:101EB00082819381D0C0C090E303D090E403E0908E
-:101EC000E503F090E60320E030E0A901C701B60188
-:101ED0000E94692D2197882309F4A2C0FE01EE0F0C
-:101EE000FF1FEE0FFF1FEF53FC4F80809180A280F9
-:101EF000B380A5019401C701B6010E94692D87FF37
-:101F000031C0A501940160E070E08CED93EC0E947B
-:101F10006D2D20E030E040E451E40E946D2D20E082
-:101F200030E040E05FE30E94182F9B01AC0160E0CD
-:101F300070E080E090E40E947B2F9B01AC01C50122
-:101F4000B4010E94182F9B01AC01C701B6010E9489
-:101F5000692D87FF07C0A701960160E070E08CED56
-:101F600093E439C0A5019401C701B6010E94142F62
-:101F700018160CF055C0A501940160E070E08CEDDE
-:101F800093E40E946D2D20E030E040E451E40E9493
-:101F90006D2D20E030E040E05FE30E94182F9B01B0
-:101FA000AC0160E070E080E090E40E947B2F9B0138
-:101FB000AC01C501B4010E94182F9B01AC01C701FF
-:101FC000B6010E94142F18165CF5A701960160E077
-:101FD00070E08CED93EC0E946D2D20E030E040E449
-:101FE00051E40E946D2D20E030E040E05FE30E946C
-:101FF000182F9B01AC0160E070E080E090E40E944B
-:102000007B2F9B01AC01C701B6010E94182F609382
-:10201000E3037093E4038093E5039093E60313C016
-:10202000FE01EE0FFF1FEE0FFF1FEF53FC4F8081ED
-:102030009181A281B3818093E3039093E403A09301
-:10204000E503B093E6036091E3037091E4038091AC
-:10205000E5039091E60320919803309199032F3F77
-:102060004FEF340731F02F5F3F4F309399032093A8
-:1020700098030E94F3126B017C0120E034E244EFEC
-:1020800051E40E94692D87FF08C086EFC82E88E2C0
-:10209000D82E84EFE82E81E4F82E20E030E040E0F6
-:1020A00051E4C701B6010E94182F9B01AC0160E00A
-:1020B00074E284E79BE40E946D2D6B017C010E9419
-:1020C000DA2D7093970060939600209176023091FC
-:1020D00077024091780250917902C701B6010E94BF
-:1020E000182F0E94DA2D70939900609398008091C8
-:1020F000AC03882309F433C1C090A703D090A80390
-:10210000E090A903F090AA0320E030E0A901C70104
-:10211000B6010E94142F1816D4F58091980390915F
-:1021200099038F3F2FEF920729F00196909399031F
-:1021300080939803C701B6010E94F31220E030E0BB
-:1021400040E051E40E94182F9B01AC0160E074E272
-:1021500084E79BE40E946D2D6B017C010E94DA2DC7
-:1021600070939700609396002091760230917702E9
-:102170004091780250917902C701B6010E94182F50
-:102180000E94DA2D709399006093980008C0109215
-:10219000970010929600109299001092980060910A
-:1021A000A1037091A2036F5F7F4F7093A2036093AE
-:1021B000A103209196003091970080E090E0232BBE
-:1021C000F1F0C0919600D09197000E94062E6B010D
-:1021D0007C01BE0180E090E00E94062E9B01AC01D4
-:1021E0006091A3037091A4038091A5039091A6032D
-:1021F0000E946D2D20E03FEF4FE757E410C00E9492
-:10220000062E6B017C0120E030EE4FEF54E460912C
-:10221000A3037091A4038091A5039091A6030E944B
-:10222000182F9B01AC01C701B6010E94142F87FD36
-:1022300096C080919F038F5F80939F0390E02091D1
-:1022400073043091740482179307A0F080917E0488
-:10225000882319F010929F030DC0809171008D7F2B
-:1022600080937100809190008F7380939000109202
-:10227000AC037DC08091A003C0919F03811128C051
-:10228000C0907804D0907904E0907A04F0907B04B8
-:1022900020E030E0A901C701B6010E94142F1816F2
-:1022A000BCF481E08093A0031092A7031092A803CE
-:1022B0001092A9031092AA03C092A303D092A40380
-:1022C000E092A503F092A603C150C0939F0343C0C0
-:1022D0001092A0031092990310929803E091750454
-:1022E000F091760448E0C49FE00DF11D1124808137
-:1022F0009181A281B3818093A7039093A803A093B7
-:10230000A903B093AA0320E030E040E85EE36481D3
-:102310007581868197810E94182F6B017C018091C5
-:102320007A02682F70E080E090E00E94062E20E0A4
-:1023300030E048EC52E40E946D2D9B01AC01C701D6
-:10234000B6010E94182F6093A3037093A403809397
-:10235000A5039093A6031092A2031092A10380916B
-:10236000770480FD04C01092AC031092AB03FF9180
-:10237000EF91DF91CF91BF91AF919F918F917F911D
-:102380006F915F914F913F912F91FF90EF90DF9070
-:10239000CF90BF90AF909F908F907F906F905F9005
-:1023A0004F900F900FBE0F901F901895CF92DF9215
-:1023B000EF92FF92CF93DF936B017C01EA01809152
-:1023C0009A03811102C00E94D10D8091770480FF91
-:1023D00046C08091E9039091EA0308970CF03FC052
-:1023E000809171008D7F809371008091AC03811189
-:1023F0000E94EB0D81E08093AB0310929903109241
-:10240000980320E030E0A901C701B6010E94142F13
-:102410001816DCF48091E9039091EA03FC01EE0FB9
-:10242000FF1FEE0FFF1FEF53FC4FC082D182E282ED
-:10243000F382FC01EE0FFF1FEF54FC4FD183C083EA
-:1024400001969093EA038093E90380917100826082
-:102450008093710080919000806880939000DF915C
-:10246000CF91FF90EF90DF90CF9008958F929F9241
-:10247000AF92BF92CF92DF92EF92FF920F931F9392
-:10248000CF93DF93EC017B01D42E48015901809159
-:102490009A03811102C00E94D10D8091770480FFC0
-:1024A0006BC0809171008D7F809371008091AB0330
-:1024B00081110E94EB0D81E08093AC03D0937604F0
-:1024C000C0937504F0927404E0927304D0927E0479
-:1024D0008092780490927904A0927A04B0927B045E
-:1024E0001092AD031092AE031092AF031092B0039E
-:1024F00010929F0388819981AA81BB818093A70351
-:102500009093A803A093A903B093AA0320E030E01E
-:1025100040E85EE36C817D818E819F810E94182F4F
-:102520006B017C0180917A02682F70E080E090E07E
-:102530000E94062E20E030E048EC52E40E946D2D0F
-:102540009B01AC01C701B6010E94182F6093A30341
-:102550007093A4038093A5039093A6031092A20303
-:102560001092A1038091710082608093710080912C
-:102570009000806880939000DF91CF911F910F9120
-:10258000FF90EF90DF90CF90BF90AF909F908F9093
-:102590000895809177048170089580917704816017
-:1025A000809377040E9422280C947A078091770404
-:1025B0008E7F809377040C9422288091EB0390E027
-:1025C000019666E070E00E94E6308093EB03089588
-:1025D0008091EB0390E0019766E070E00E94E630A6
-:1025E0008093EB0308958F929F92AF92BF92CF9208
-:1025F000DF92EF92FF920F931F93CF93DF936B01C4
-:102600007C01C0919803D0919903BE0180E090E0D5
-:102610000E94062E4B015C01A701960160E070E06C
-:102620008CE594E40E946D2D9B01AC01C501B401C1
-:102630000E94182F0E94DA2D2091EB03233009F419
-:1026400073C028F4222351F02130E9F02CC124304A
-:1026500009F4A0C0253009F4E0C025C180E090E075
-:10266000A0E0BFE38093760290937702A093780274
-:10267000B093790210929B0310929C0310929D03D9
-:1026800010929E0310C110929B0310929C03109213
-:102690009D0310929E036431710540F46A30710508
-:1026A00060F520E030E040E85EE32BC0693C710556
-:1026B00008F0AAC080E090E00E94062E20E030E002
-:1026C00040EA51E40E94042D20E030E044E353E46A
-:1026D0000E946D2D9B01AC010E94182F20E030E07C
-:1026E00040E05EE30E94182F9B01AC0160E070E0C7
-:1026F00080E09EE30E94042D44C020E030E040E0F2
-:102700005FE3C701B6010E94182F6B017C0180E0D6
-:1027100090E0A0E0BEE38093760290937702A093CE
-:102720007802B0937902BFC010929B0310929C0371
-:1027300010929D0310929E034AE0469F9001479F8E
-:10274000300D1124C90168EB7BE00E94D230BC013E
-:102750006C5D754077FF03C071956195710988279D
-:1027600077FD8095982F0E94082E2EE333EC4EE2E1
-:1027700059E30E94182F20E030E040EC5EE30E9415
-:10278000052D609376027093770280937802909380
-:10279000790289C010929B0310929C0310929D03B2
-:1027A00010929E03CE0183709927892BE1F0BE0120
-:1027B0006170772780E090E00E94062E20E030E0F4
-:1027C00040E05EE30E94182F20E030E040E45FE349
-:1027D0000E94052D609376027093770280937802B1
-:1027E000909379020CC080E090E0A0E0BFE380937A
-:1027F000760290937702A0937802B0937902C77023
-:10280000DD27CD2B09F04FC010927602109277028F
-:10281000109278021092790246C010929B03109297
-:102820009C0310929D0310929E0300E010E020E0B4
-:102830003FE300937602109377022093780230935F
-:1028400079026739710578F180E090E00E94062EE8
-:1028500020E030E047E153E40E94042D20E030E026
-:102860004AE754E40E946D2D20E030E048E452E451
-:102870000E94182F20E030E040EA51E40E944A2EE6
-:102880000E94D52D660F771F660F771FFB01EE5351
-:10289000FD4F2081318142815381C701B6010E94E1
-:1028A000182F6B017C01C701B601DF91CF911F91F9
-:1028B0000F91FF90EF90DF90CF90BF90AF909F90DF
-:1028C0008F9008958091FC030895CF93DF9300D0FB
-:1028D0001F92CDB7DEB79C0180918304843019F537
-:1028E00093E099833B832A839093E9008FEF909143
-:1028F000E800815095FD06C095ED9A95F1F700002E
-:102900008111F5CF8091E80085FF0DC040E050E0D7
-:1029100063E070E0CE0101960E94C2168091E8004B
-:102920008E778093E8000F900F900F90DF91CF91FA
-:102930000895CF93DF9300D01F92CDB7DEB72091DB
-:102940008304243021F522E029839B838A8383E05A
-:102950008093E9008FEF9091E800815095FD06C0CB
-:1029600095ED9A95F1F700008111F5CF8091E8007F
-:1029700085FF0DC040E050E063E070E0CE010196BD
-:102980000E94C2168091E8008E778093E8000F9035
-:102990000F900F90DF91CF91089520918304243000
-:1029A000F1F422E02093E9002FEF3091E80021506C
-:1029B00035FD06C035ED3A95F1F700002111F5CF50
-:1029C0002091E80025FF0BC040E050E065E070E09A
-:1029D0000E94C2168091E8008E778093E8000895E7
-:1029E000CF93DF93EC0190918304943009F046C0BB
-:1029F000809185028823D9F0809186028823B9F0DE
-:102A00009093E9008FEF9091E800815095FD06C00A
-:102A100095E19A95F1F700008111F5CF8091E800DA
-:102A200085FF2CC040E050E060E170E017C081E01D
-:102A30008093E9008FEF9091E800815095FD06C0EA
-:102A400095ED9A95F1F700008111F5CF8091E8009E
-:102A500085FF14C040E050E068E070E0CE010E94C5
-:102A6000C2168091E8008E778093E80080E1FE0135
-:102A7000ACEEB3E001900D928A95E1F7DF91CF9132
-:102A8000089580918204811109C00E9457180E9404
-:102A9000B4188091E20084608093E200089510925F
-:102AA00082040895089508950C94FB2642E061EC99
-:102AB00081E00E94D11742E061EC82E00E94D117D0
-:102AC00042E061EC83E00E94D11742E161EC84E0D6
-:102AD0000C94D11780918504833009F455C030F4EB
-:102AE000813071F0823009F48EC008958A3009F483
-:102AF0007AC08B3009F460C0893009F09CC020C0D6
-:102B000080918404813A09F096C08091E800877F23
-:102B10008093E8008091880490918904892B21F4A6
-:102B200060E18CEE93E003C060E080E090E070E054
-:102B30000E940D178091E8008B778093E80008953C
-:102B400080918404813209F076C08091880490914C
-:102B50008904009719F0039709F06DC08091E8008F
-:102B6000877F8093E8008091E80082FD05C0809116
-:102B700083048111F8CF5FC08091F1008093FC0342
-:102B80008091E8008B7753C080918404813A09F0EA
-:102B900052C08091880490918904892B09F04BC020
-:102BA0008091E800877F8093E8008091E80080FFB3
-:102BB000FCCF8091850236C0809184048132D9F5A2
-:102BC0008091880490918904892BA9F58091E8006F
-:102BD000877F8093E8000E94061880918604809386
-:102BE00085020C943C2080918404813221F58091EF
-:102BF000E800877F8093E8000E9406188091870490
-:102C00008093FD03089580918404813AA1F480911A
-:102C1000E800877F8093E8008091E80080FFFCCF88
-:102C20008091FD038093F1008091E8008E7780937E
-:102C3000E8000C940618089584B7877F84BF88E164
-:102C40000FB6F89480936000109260000FBE80E889
-:102C500080936100109261000E94A91B0E94571886
-:102C60000E94B4188091E20084608093E20078941E
-:102C70000E943A1B0E94AB1B8BE792E00E94551BFF
-:102C800080918304853069F40E94BC268091810480
-:102C90008823B1F30E94EA26882391F30E94AC16A0
-:102CA000EFCF0E94B31BECCF292F33272330310500
-:102CB000C9F064F42130310581F02230310509F08A
-:102CC00043C08DE690E02FEB38E042C02132310561
-:102CD000F1F02232310541F137C082E190E02CE27F
-:102CE00039E036C099278130910541F08230910555
-:102CF00041F0892B49F5EBEBF8E005C0EDE8F8E091
-:102D000002C0E3E6F8E0849190E09F0121C06430C6
-:102D1000D8F4E62FF0E0EE0FFF1FE25EFC4F2081BB
-:102D2000318189E090E014C0643070F470E0FB0100
-:102D3000EE0FFF1FEA5EFC4F20813181FB01EE5E4A
-:102D4000FC4F808190E004C080E090E020E030E023
-:102D5000FA0131832083089580E189BD82E189BD34
-:102D600009B400FEFDCF8091D8008F7D8093D800FC
-:102D70008091E00082608093E0008091E00081FD1E
-:102D8000FCCF0895CF92DF92EF92FF920F931F93A3
-:102D9000CF93DF93EC018B016A010E94251881110A
-:102DA00033C0C114D10439F0F60180819181081B30
-:102DB000190BC80FD91FE12CF12C0115110519F1C0
-:102DC0008091E80085FD16C08091E8008E778093A1
-:102DD000E800C114D10449F0F60180819181E80E28
-:102DE000F91EF182E08285E00FC00E942518882339
-:102DF00021F30AC089918093F10001501109FFEF7E
-:102E0000EF1AFF0ADACF80E0DF91CF911F910F9187
-:102E1000FF90EF90DF90CF90089520918A04309139
-:102E20008B042617370748F06115710539F4209196
-:102E3000E8002E772093E80001C0B90140E0611559
-:102E40007105A9F120918304222309F443C02530A0
-:102E500009F442C02091E80023FD40C02091E80021
-:102E600022FD32C02091E80020FFE9CF4091F3001D
-:102E70002091F20030E0342BFC01CF016115710587
-:102E800059F02830310540F481918093F100615070
-:102E900071092F5F3F4FF1CF41E02830310509F034
-:102EA00040E02091E8002E772093E800C8CF411140
-:102EB000C9CF0AC080918304882361F0853061F016
-:102EC0008091E80083FD0AC08091E80082FFF2CF84
-:102ED00080E0089582E0089583E0089581E00895F8
-:102EE00020918A0430918B042617370748F061152A
-:102EF000710539F42091E8002E772093E80001C095
-:102F0000B901FC0120E06115710591F18091830404
-:102F1000882309F440C0853009F43FC08091E8005F
-:102F200083FD3DC08091E80082FD2FC08091E800C4
-:102F300080FFE9CF2091F3008091F20090E0922B86
-:102F40006115710559F08830910540F42491209362
-:102F5000F1003196615071090196F2CF21E0089796
-:102F600009F020E08091E8008E778093E800CBCFD5
-:102F70002111CCCF0AC080918304882361F0853071
-:102F800061F08091E80083FD0AC08091E80082FF33
-:102F9000F2CF80E0089582E0089583E0089581E013
-:102FA0000895982F973058F59093E900981739F0C5
-:102FB0007091EC002091ED005091F00003C0242F9F
-:102FC000762F50E021FF19C03091EB003E7F309307
-:102FD000EB003091ED003D7F3093ED003091EB0040
-:102FE00031603093EB007093EC002093ED00509330
-:102FF000F0002091EE0027FF07C09F5FD3CF8F70B6
-:103000008093E90081E0089580E008958091840430
-:1030100087FF11C08091E80082FD05C08091830484
-:103020008111F8CF11C08091E8008B770BC080919F
-:103030008304882349F08091E80080FFF8CF8091D5
-:10304000E8008E778093E80008952091E4003091A5
-:10305000E50095E64091EC00842F817040FF22C08E
-:103060008091E80080FD1CC080918304882391F04A
-:10307000853091F08091EB0085FD10C04091E40017
-:103080005091E5004217530729F39A01915011F727
-:1030900084E0089582E0089583E0089581E0089532
-:1030A00080E008954091E80042FFDECF08950E943D
-:1030B000C5180E94CD18E0EEF0E080818160808329
-:1030C000E8EDF0E080818F77808319BCA7EDB0E058
-:1030D0008C918E7F8C9380818F7E8083109282046E
-:1030E00008950F931F93CF93DF930E94C5180E94FA
-:1030F000CD18C8EDD0E088818F778883888180687B
-:10310000888388818F7D888319BC109283041092F4
-:103110007F04109281041092800400EE10E0F80108
-:1031200080818B7F808388818160888342E060E03A
-:1031300080E00E94D117E1EEF0E080818E7F8083F5
-:10314000E2EEF0E08081816080838081886080830E
-:10315000F80180818E7F8083888180618883DF9100
-:10316000CF911F910F910895E8EDF0E080818F7E5F
-:103170008083E7EDF0E080818160808384E082BF1E
-:1031800081E0809382040C947118E8EDF0E0808176
-:103190008E7F80831092E20008951092DA001092E0
-:1031A000E10008951F920F920FB60F9211242F93F2
-:1031B0003F934F935F936F937F938F939F93AF93BF
-:1031C000BF93EF93FF938091E10082FF0BC080914A
-:1031D000E20082FF07C08091E1008B7F8093E100D5
-:1031E0000E94391B8091DA0080FF1FC08091D800B7
-:1031F00080FF1BC08091DA008E7F8093DA0080917F
-:10320000D90080FF0DC080E189BD82E189BD09B48C
-:1032100000FEFDCF81E0809383040E94411505C02C
-:1032200019BC109283040E944F158091E10080FF29
-:1032300019C08091E20080FF15C08091E2008E7F6E
-:103240008093E2008091E20080618093E2008091AF
-:10325000D80080628093D80019BC85E080938304F5
-:103260000E9453158091E10084FF30C08091E200FC
-:1032700084FF2CC080E189BD82E189BD09B400FED4
-:10328000FDCF8091D8008F7D8093D8008091E100A0
-:103290008F7E8093E1008091E2008F7E8093E20038
-:1032A0008091E20081608093E20080917F04882316
-:1032B00011F084E007C08091E30087FD02C081E047
-:1032C00001C083E0809383040E9454158091E10043
-:1032D00083FF29C08091E20083FF25C08091E10037
-:1032E000877F8093E10082E08093830410927F04C3
-:1032F0008091E1008E7F8093E1008091E2008E7FDB
-:103300008093E2008091E20080618093E20042E0DD
-:1033100060E080E00E94D1178091F0008860809387
-:10332000F0000E945215FF91EF91BF91AF919F91D4
-:103330008F917F916F915F914F913F912F910F905E
-:103340000FBE0F901F9018951F920F920FB60F92FD
-:1033500011242F933F934F935F936F937F938F939A
-:103360009F93AF93BF93CF93DF93EF93FF93C0915E
-:10337000E900CF708091EC00D82FD17080FDD0E8AB
-:103380001092E9008091F000877F8093F00078949C
-:103390000E94E8191092E9008091F0008860809303
-:1033A000F000CD2BCF70C093E900FF91EF91DF913A
-:1033B000CF91BF91AF919F918F917F916F915F91CD
-:1033C0004F913F912F910F900FBE0F901F90189526
-:1033D0001F93CF93DF93CDB7DEB7AA970FB6F894BC
-:1033E000DEBF0FBECDBFE4E8F4E088E08E0F909121
-:1033F000F10091938E13FBCF0E946A158091E80033
-:1034000083FF1FC18091840490918504492F50E06F
-:103410004A30510508F015C1FA01EB59FF4F0C94E1
-:10342000FA30803881F0823809F00BC1809188042D
-:103430008F708093E9008091EB0085FB882780F9ED
-:103440001092E90006C0809180049091810491114E
-:1034500082609091E800977F9093E8008093F1005C
-:103460001092F100C8C0282F2D7F09F0EAC08823F0
-:1034700019F0823061F0E5C080918604813009F056
-:10348000E0C0933009F080E0809381042BC08091EC
-:103490008604811127C0809188048F7009F4D1C0FF
-:1034A0008093E9002091EB0020FF1CC0933021F4B1
-:1034B0008091EB00806214C09091EB00906190933A
-:1034C000EB0021E030E0A90102C0440F551F8A95AE
-:1034D000E2F74093EA001092EA008091EB008860E6
-:1034E0008093EB001092E9008091E800877F86C00E
-:1034F0008111A7C0109186041F778091E300807826
-:10350000812B8093E3008091E800877F8093E8001F
-:103510000E9406188091E80080FFFCCF8091E300B4
-:1035200080688093E300111102C082E001C083E053
-:103530008093830486C08058823008F082C08091D6
-:103540008604909187048C3D53E0950779F583E0DC
-:103550008A838AE289834FB7F894DE01139620E0CC
-:103560003EE051E2E32FF0E050935700E49120FF5A
-:1035700003C0E295EF703F5FEF708E2F90E0EA306E
-:1035800010F0C79601C0C0968D939D932F5F243194
-:1035900049F74FBF8091E800877F8093E8006AE297
-:1035A00070E0CE0101960E940D1714C0AE014F5F6E
-:1035B0005F4F609188040E945416BC01009709F483
-:1035C00040C09091E800977F9093E80089819A81AC
-:1035D0000E9470178091E8008B778093E80031C0DB
-:1035E000803879F58091E800877F8093E8008091AA
-:1035F0007F048093F1008091E8008E778093E8004B
-:103600000E9406181EC081111CC090918604923041
-:10361000C0F48091E800877F8093E80090937F0456
-:103620000E94061880917F04811106C08091E300FA
-:1036300087FD02C081E001C084E0809383040E9482
-:1036400056158091E80083FF0AC08091E800877FCB
-:103650008093E8008091EB0080628093EB00AA9653
-:103660000FB6F894DEBF0FBECDBFDF91CF911F9193
-:1036700008950895CF93809183048823A1F0C09189
-:10368000E900CF709091EC00892F817090FD80E867
-:10369000C82B1092E9008091E80083FD0E94E81990
-:1036A000CF70C093E900CF91089590930304809365
-:1036B00002040895E0910204F0910304309721F090
-:1036C0000190F081E02D099480E00895E0910204DA
-:1036D000F0910304309721F00280F381E02D0994EA
-:1036E0000895E0910204F0910304309721F00480E2
-:1036F000F581E02D09940895209100043091010492
-:103700008217930771F09093010480930004E09175
-:103710000204F0910304309721F00680F781E02D38
-:10372000099408952091FE033091FF0382179307B7
-:1037300071F09093FF038093FE03E0910204F091F7
-:103740000304309721F00084F185E02D0994089559
-:1037500008950C94A81B0E942F270E94F10C0E9430
-:10376000B5270C94692C5F926F927F928F929F92F3
-:10377000AF92BF92CF92DF92EF92FF920F931F937F
-:10378000CF93DF9300D000D01F92CDB7DEB70E9459
-:10379000360D9DE0C92E94E0D92E03E010E0AA2456
-:1037A000A394B12C502E802F0E94B10D4C01F60134
-:1037B000729062906F016826792661147104A1F4F9
-:1037C0000150110978F78FEF89838A831B820E9449
-:1037D00038278160782F9D838C8349815A816B8142
-:1037E0008D810E94631C38C08091620481FD0E941B
-:1037F000BA0D2BE030E07501022E02C0EE0CFF1C6A
-:103800000A94E2F7C70186219721892B09F12983C0
-:103810005A828E209F2091E0892809F490E09B83B2
-:103820000E9438278160782F9D838C8349815A813B
-:103830006B818D810E94631C000F111FF801EB5FEB
-:10384000FB4F80819181E826F926F182E08204C055
-:103850002150310980F6B4CF0E94A12910910404AF
-:103860000E945A1B1817D1F00E945A1B809304041F
-:103870000F900F900F900F900F90DF91CF911F91AD
-:103880000F91FF90EF90DF90CF90BF90AF909F90FF
-:103890008F907F906F905F900C94DB0C0F900F9047
-:1038A0000F900F900F90DF91CF911F910F91FF908C
-:1038B000EF90DF90CF90BF90AF909F908F907F90D0
-:1038C0006F905F900895CF93DF93CDB7DEB72B97BE
-:1038D0000FB6F894DEBF0FBECDBF4F835887698700
-:1038E0007A878B87DE01119686E0FD0111928A9519
-:1038F000E9F785E0FE01379601900D928A95E1F790
-:1039000049815A816B817C818D819E810E94DA225E
-:103910002B960FB6F894DEBF0FBECDBFDF91CF91CF
-:103920000895CF93882309F4C2C0C82F823859F470
-:103930000E945A1B81FDBBC089E30E94B4250E94EE
-:10394000812689E30CC0833879F40E945A1B80FDDC
-:10395000AEC083E50E94B4250E94812683E50E94C3
-:10396000F625CF910C948126843859F40E945A1B75
-:1039700082FD9DC087E40E94B4250E94812687E4D1
-:10398000EECF8CEF8C0F813A48F48C2F0E94D12B14
-:1039900081118DC08C2F0E94B425E3CF80E28C0F63
-:1039A000883048F4C77081E001C0880FCA95EAF7F3
-:1039B0000E943A26D6CF8BE58C0F833078F4C53A37
-:1039C00029F0C63A31F083E890E005C081E890E044
-:1039D00002C082E890E0CF910C947C1B88E58C0FAC
-:1039E000833108F064C0C83A39F1C93A41F1CA3AA2
-:1039F00049F1CB3A51F1CC3A59F1CD3A61F1C03BA2
-:103A000069F1CE3A71F1CF3A79F1C13B81F1C23B14
-:103A100089F1C33B91F1C43B99F1C53BA1F1C63B90
-:103A2000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BF0
-:103A3000C9F180E090E038C082EE90E035C089EEB8
-:103A400090E032C08AEE90E02FC085EB90E02CC071
-:103A500086EB90E029C087EB90E026C08CEC90E0EC
-:103A600023C08DEC90E020C083E891E01DC08AE87F
-:103A700091E01AC082E991E017C084E991E014C096
-:103A800081E292E011C083E292E00EC084E292E013
-:103A90000BC085E292E008C086E292E005C087E2B2
-:103AA00092E002C08AE292E0CF910C94921BCF91F7
-:103AB0000895882309F44BC0823859F40E945A1B98
-:103AC00081FF45C089E30E94B4250E94812689E3D5
-:103AD0000CC0833871F40E945A1B80FF38C083E504
-:103AE0000E94B4250E94812683E50E94F6250C944D
-:103AF0008126843859F40E945A1B82FF28C087E42B
-:103B00000E94B4250E94812687E4EFCF9CEF980F96
-:103B1000913A58F390E2980F983050F4877091E002
-:103B200001C0990F8A95EAF7892F0E944026DFCFBE
-:103B30009BE5980F933020F480E090E00C947C1B80
-:103B4000885A833120F480E090E00C94921B089511
-:103B5000882321F00E943A260C9481260895882318
-:103B600021F00E9440260C94812608957F928F9226
-:103B70009F92AF92BF92CF92DF92EF92FF920F93FC
-:103B80001F93CF93DF931F92CDB7DEB77C01C62E74
-:103B9000772EFC01058102950F70128111110E9490
-:103BA00057260E94AD25882379F0112369F080E221
-:103BB0008C0D883048F082E00E9496250E94AD2549
-:103BC00091E0D82ED92601C0D12CE72DE295EF70D7
-:103BD000F0E0E159FF4F0C94FA30872D807F072DDC
-:103BE0000F70882311F00295007F112389F00023C4
-:103BF00009F499C180E28C0D883020F4802F0E9456
-:103C00003A2603C0802F0E944A260E9481268BC13B
-:103C10008C2D0E94591D002309F4C3C180E28C0D34
-:103C2000883020F4802F0E94402603C0802F0E94FD
-:103C300050260E948126B5C1872D807F972D9F70C9
-:103C4000803211F4892F03C0892F8295807FCC2088
-:103C500021F0F1E0CF16A1F01DC0112339F00023AF
-:103C600019F1013009F50E946A269BC1002319F061
-:103C7000013009F496C189830E946D26898110C1A3
-:103C8000112321F0063008F08CC10EC0053008F079
-:103C900088C106C1112359F0002331F0F701958145
-:103CA00090FF41C19F7095830E94A81D7AC1002397
-:103CB00009F4F6C03EC1872D86958695837090E005
-:103CC000009719F0019761F06CC1112321F08C2D40
-:103CD000972D937002C080E090E00E947C1B61C130
-:103CE000112321F08C2D972D937002C080E090E07D
-:103CF0000E94921B56C18C2D112319F00E94A928F5
-:103D000002C00E9411290E9496294BC1872D837001
-:103D100009F052C0111145C18C2D8295869587708E
-:103D2000880F880F9C2D9F70892E912CA12CB12C6F
-:103D3000082E04C0880C991CAA1CBB1C0A94D2F73C
-:103D4000C4FE14C00FE010E020E030E0B901A8018B
-:103D500004C0440F551F661F771F8A95D2F7CB0109
-:103D6000BA01609570958095909503C060E070E011
-:103D7000CB01272D26952695237030E02230310582
-:103D800069F02330310589F0682979298A299B292E
-:103D90002130310571F00E94222403C1682979295C
-:103DA0008A299B290E943E24FCC00E942224C5012E
-:103DB000B4010E940624F5C0112319F0872D8170EB
-:103DC00001C08695882309F4ECC08C2D82958695D8
-:103DD0008770880F880F9C2D9F70892E912CA12CA5
-:103DE000B12C082E04C0880C991CAA1CBB1C0A9478
-:103DF000D2F7C4FE14C00FE010E020E030E0B901BB
-:103E0000A80104C0440F551F661F771F8A95D2F77B
-:103E1000CB01BA01609570958095909503C060E0E4
-:103E200070E0CB01272D269526952370422F50E078
-:103E30004230510569F04330510589F068297929EC
-:103E40008A299B294130510571F00E94FC24A9C0A8
-:103E5000682979298A299B290E941825A2C00E94D5
-:103E6000FC24C501B4010E94E0249BC08C2D90E08D
-:103E7000FC01E05EF109E531F10508F050C0E158C0
-:103E8000FF4F0C94FA300C2D0F70872D8F7111237A
-:103E900021F00E947924802F07CF0E949A24802F3E
-:103EA0000E94AF1D7EC0112341F0053008F079C09B
-:103EB000872D8F710E94BF2474C0063008F071C036
-:103EC000F7CF112339F0872D8F710E94792469C0B3
-:103ED0001123C9F3872D8F710E949A2462C0112388
-:103EE00029F0872D8F710E9464245BC00E945A24A0
-:103EF00058C0112351F0172D1F71812F0E94792472
-:103F000063E0812F0E948D254CC081E00E949625A0
-:103F1000023008F446C082E00E94962542C0112378
-:103F200031F0002381F28C2D0E94911C3AC00023B5
-:103F300089F28C2D0E94591D34C0472D4F706C2D75
-:103F4000C7010E941C060E947E232BC0111129C0AC
-:103F5000472D4F7050E042305105B9F04CF44115F7
-:103F6000510581F041305105E1F40E94912C19C0B6
-:103F70004330510569F04430510599F48C2D0E946D
-:103F8000E32C0FC00E947A2C0CC00E94AD2C09C0FB
-:103F90000E94C02C06C0472D4F706C2DC7010E9497
-:103FA0007C09DD20F9F00E94892580FD1BC0F70106
-:103FB00012820E9483250E947924C7010E94012059
-:103FC0000E9483250F90DF91CF911F910F91FF9059
-:103FD000EF90DF90CF90BF90AF909F908F907F90A9
-:103FE0000C949A240F90DF91CF911F910F91FF9025
-:103FF000EF90DF90CF90BF90AF909F908F907F9089
-:1040000008950F931F93CF93DF93EC0188819981DB
-:104010002B813C81232BB9F09F3F11F48F3F99F006
-:10402000CE010E947B07882371F0688179818A81A3
-:104030000E947F258C010E9434250E94FB23B80139
-:10404000CE010E94B61DDF91CF911F910F9108956F
-:104050000E9457260E9467260E942C260E948126D5
-:104060000E94472A0E94962980E090E00E947C1BD3
-:1040700080E090E00C94921B0E9447260C9428202C
-:104080000E947425292F22952F7030E02C303105A5
-:104090004CF42A3031056CF42250310922303105BC
-:1040A000A8F407C02C30310569F02F30310551F0EC
-:1040B0000DC0803F69F018F4803E40F409C0843F91
-:1040C00029F406C093FB882780F9089580E00895BD
-:1040D00081E00895CF93DF9300D000D01F92CDB739
-:1040E000DEB70F900F900F900F900F90DF91CF9150
-:1040F0000895CF93DF9300D000D000D0CDB7DEB7C6
-:1041000026960FB6F894DEBF0FBECDBFDF91CF91DC
-:1041100008951F93CF93DF93C0910D0416E0809113
-:104120000E04C81799F0D0E01C9FF0011D9FF00D00
-:104130001124E15FFB4F4081518162817381848151
-:1041400095810E9479202196C770E9CFDF91CF91A8
-:104150001F91089540913F045091400460914104A3
-:104160007091420480914304909144040C9479200E
-:104170008091440482958F7009F054C0809141046D
-:10418000882309F44FC080910D04A0910E04609122
-:104190003F04709140044091420450914304B6E0C2
-:1041A0008A1709F43FC090E041155105C1F17F3FE6
-:1041B00011F46F3FA1F1B89FF001B99FF00D1124E8
-:1041C000E15FFB4F218172132AC02081621327C057
-:1041D0002281211124C0238134812417350710F452
-:1041E00021503109241B350B283C3105C0F42091A6
-:1041F00044042F7020612093440426E0289FF0019E
-:10420000299FF00D1124EC5EFB4F80818F7080613F
-:1042100080838FE394E00E9401200C948920019612
-:104220008770BECF0895CF92DF92EF92FF920F93E7
-:104230001F93CF93DF93CDB7DEB762970FB6F89495
-:10424000DEBF0FBECDBF8C0185E0F801DE011D96FB
-:1042500001900D928A95E1F7D8014C9111965C91ED
-:10426000119712966C9112971396CD90DC9014973B
-:1042700030913F0470914004809142049091430436
-:10428000009709F46BC17F3F19F43F3F09F466C101
-:10429000E0904104EE2009F4C0C020914404C81607
-:1042A000D90628F0F601E81BF90BCF0104C0809570
-:1042B00090958C0D9D1DFF24F394883C910578F01A
-:1042C000F12C207F09F0C6C07C2DD98AC88A898943
-:1042D0000E946A208FE394E00E940120B1C0822FE7
-:1042E000807F09F046C0751314C0341312C06111E9
-:1042F00010C02F702061209344040E94AA208FE3F5
-:1043000094E00E94012080914404D80115968C937A
-:104310002EC0CD2819F15F3F11F44F3FF9F0F62E72
-:1043200061111CC080910D0420910E0436E08217AB
-:1043300009F45AC090E0389FF001399FF00D112424
-:10434000E15FFB4F7181571306C07081471303C0B3
-:104350007281711103C001968770E9CFF62E662332
-:1043600009F418C180914404816080934404F12CC5
-:1043700011C1751308C0341306C0611104C08091C7
-:104380004404D801C3C04D875E878D859E856A8BA6
-:104390000E9440206A898823E1F16623D1F12091AF
-:1043A0004404822F82958F7090E0029774F0809180
-:1043B0003F049091400498878F831986DB86CA86D4
-:1043C0002C87CE0107960E94012086E0F801AFE31A
-:1043D000B4E001900D928A95E1F70E94B8200E9406
-:1043E000AA20FF24F394D6C04D875E878D859E85D5
-:1043F0000E947425292F22952F7030E0223031053C
-:104400000CF0BCC09F7009F0B6C0805E883008F424
-:10441000C1C0C8010E940120E4CFC816D90608F423
-:1044200053C0F601E81BF90BCF01883C910508F455
-:1044300050C0F12C7C2DD98AC88A89890E946A20B3
-:10444000EFE3F4E086E0DF011D928A95E9F70E9430
-:10445000AA20A0C0751314C0341312C0611110C07B
-:1044600080914404F8018583C8010E94012086E000
-:10447000EFE3F4E0DF011D928A95E9F7FE2C8AC094
-:104480004D875E878D859E856A8B0E9440206A8954
-:10449000882309F4BECF662309F4BBCF20914404DE
-:1044A000822F82958F7090E002970CF48ECF8091CE
-:1044B0003F04909140049A8389831B82DD82CC82E1
-:1044C0002E83CE0101967FCF809590958C0D9D1DFA
-:1044D000ACCFF62E662309F49CCF75132EC034138F
-:1044E0002CC02091440420FD1FC0822F82958F7024
-:1044F000D9F0D80115962C9315978F3049F08F5F1E
-:10450000982F9295907F822F8F70892B15968C9380
-:10451000C8010E94012086E0F801AFE3B4E00190F9
-:104520000D928A95E1F793CF86E0F801AFE3B4E00E
-:1045300001900D928A95E1F72DC04D875E878D859C
-:104540009E850E944020811140CF8091440481606B
-:1045500080934404C8010E9401201CC0662309F412
-:1045600058CF4D875E878D859E850E944020882389
-:1045700009F44FCF2ACF811148CF0CC02430310528
-:104580000CF047CF9F7009F440CFF8019581907FE0
-:1045900009F03BCF8F2D62960FB6F894DEBF0FBEA9
-:1045A000CDBFDF91CF911F910F91FF90EF90DF90E2
-:1045B000CF9008951F93CF93DF93CDB7DEB72C979D
-:1045C0000FB6F894DEBF0FBECDBF4F835887698703
-:1045D0007A878B879C87CE0107960E9413218823B8
-:1045E00069F08F8198852A853B85232BF1F19F3FC8
-:1045F00009F063C08F3F09F060C037C086E0FE015C
-:104600003796DE01119601900D928A95E1F76F8140
-:104610007885EA85FB85309741F17F3F11F46F3F44
-:1046200021F120910E0430E0C9010196877099278D
-:1046300040910D0450E08417950709F447C0698341
-:104640007A83FD83EC8396E0929FD001939FB00D17
-:104650001124A15FBB4FFE01319601900D929A95F6
-:10466000E1F780930E040E94892016E080910D04EA
-:1046700090910E048917C1F1189FC0011124815F28
-:104680009B4F0E941321882379F1E0910D041E9F16
-:10469000F0011124E15FFB4F408151816281738100
-:1046A000848195810E94792080910D0490E001968B
-:1046B0008770992780930D04D9CF4F8158856985DC
-:1046C0007A858B859C850E947920CFCF0E943C20E3
-:1046D00010920E0410920D04EFE3F4E086E0DF0187
-:1046E0001D928A95E9F7C1CF2C960FB6F894DEBFDC
-:1046F0000FBECDBFDF91CF911F910895EF92FF9232
-:104700000F931F93CF93DF938C01009709F46CC034
-:10471000F12CEE24E394E8012196F801849184378A
-:1047200040F4843008F051C0813081F0823019F1BA
-:104730005BC0853709F444C0A8F19CE7980F903717
-:1047400008F052C08F770E94591D41C00E5F1F4F65
-:10475000FE01C49180E28C0F883048F4C7708E2D22
-:1047600001C0880FCA95EAF70E945A2614C08C2F00
-:104770000E94911C2DC00E5F1F4FFE01C49180E26C
-:104780008C0F883058F4C7708E2D01C0880FCA95E1
-:10479000EAF70E9460260E9481261AC08C2F0E9490
-:1047A000591D16C00E5F1F4FFE01C491CC2381F02E
-:1047B0008FE99FE00197F1F700C00000C150F6CFEC
-:1047C0000E5F1F4FFE01F49003C00E94911C8E01EA
-:1047D0008F2D882309F49FCFEFE9FFE03197F1F7A0
-:1047E00000C000008150F5CFDF91CF911F910F9154
-:1047F000FF90EF90089508956093490470934A04E0
-:1048000080934B0490934C040C9428200F931F9397
-:104810000091490410914A0420914B0430914C04BA
-:10482000DC01CB01802B912BA22BB32B809349046D
-:1048300090934A04A0934B04B0934C041F910F91A2
-:104840000C9428200F931F930091490410914A045F
-:1048500020914B0430914C04DC01CB018023912347
-:10486000A223B3238093490490934A04A0934B045A
-:10487000B0934C041F910F910C9428200F931F9319
-:104880000091490410914A0420914B0430914C044A
-:10489000DC01CB0180279127A227B327809349040D
-:1048A00090934A04A0934B04B0934C041F910F9132
-:1048B0000C9428201092450410924604109247044C
-:1048C000109248040C94282041E050E060E070E031
-:1048D00004C0440F551F661F771F8A95D2F7409377
-:1048E00045045093460460934704709348040C9425
-:1048F000282041E050E060E070E004C0440F551F04
-:10490000661F771F8A95D2F78091450490914604DF
-:10491000A0914704B0914804482B592B6A2B7B2B5C
-:1049200040934504509346046093470470934804B1
-:104930000C94282041E050E060E070E004C0440F97
-:10494000551F661F771F8A95D2F740955095609541
-:1049500070958091450490914604A0914704B091D0
-:104960004804482359236A237B23409345045093EA
-:10497000460460934704709348040C94282041E057
-:1049800050E060E070E004C0440F551F661F771FC1
-:104990008A95D2F78091450490914604A0914704EE
-:1049A000B0914804482759276A277B27409345043C
-:1049B0005093460460934704709348040C94282055
-:1049C0000F931F93009145041091460420914704D2
-:1049D00030914804DC01CB01802B912BA22BB32B0F
-:1049E0008093450490934604A0934704B0934804F1
-:1049F0001F910F910C9428200F931F930091450451
-:104A0000109146042091470430914804DC01CB0109
-:104A100080239123A223B3238093450490934604DB
-:104A2000A0934704B09348041F910F910C94282041
-:104A30000F931F9300914504109146042091470461
-:104A400030914804DC01CB0180279127A227B327AE
-:104A50008093450490934604A0934704B093480480
-:104A60001F910F910C9428200895CF92DF92EF921E
-:104A7000FF920F931F93CF93DF938C01C090490453
-:104A8000D0904A04E0904B04F0904C04809145048F
-:104A900090914604A0914704B0914804C82AD92AAD
-:104AA000EA2AFB2ACFE1D0E0D701C6010C2E04C0D0
-:104AB000B695A795979587950A94D2F780FF06C07B
-:104AC000B8018C2F0E94010C019721F4219760F707
-:104AD00080E001C08C2FDF91CF911F910F91FF904B
-:104AE000EF90DF90CF900895CF93DF93EC010E9479
-:104AF0003525BE010E94010CDF91CF910895CB01B5
-:104B00000E947425089580914D048595859585951D
-:104B1000089580914D048770089598E0899F9001D1
-:104B20001124262B20934D040C94792420914D04BC
-:104B30008095822380934D04982F977069F430E01C
-:104B4000482F552747FD50952417350729F085959F
-:104B5000859585950C949A24089590914D049770AD
-:104B600081E009F480E0089590918502992321F075
-:104B700090918602911109C020918702309188029C
-:104B8000F90132969FEF40E01FC0982F96959695B9
-:104B900096959F3050F5E0918702F0918802E90FD9
-:104BA000F11D877021E030E0A90102C0440F551FBC
-:104BB0008A95E2F7CA019181892B818308959F3FED
-:104BC00039F04F5F4E3041F051915813F8CF0DC07E
-:104BD0005111F7CF942FF5CF9F3F39F0F901E90F2D
-:104BE000F11D97FDFA9582830895089590918502AD
-:104BF000992321F090918602911109C0209187029A
-:104C000030918802F9013296205F3F4F1FC0982FE4
-:104C10009695969596959F30F0F4E0918702F091E5
-:104C20008802E90FF11D877021E030E0A90102C080
-:104C3000440F551F8A95E2F7CA0180959181892317
-:104C4000818308953196E217F30729F09081981334
-:104C5000F9CF1082F7CF089581E090E0E0918702CC
-:104C6000F0918802E80FF91F1082019680319105BA
-:104C7000A9F7089590916104892B809361040895A8
-:104C80008095909161048923809361040895109226
-:104C90006104089590916004892B809360040895C5
-:104CA0008095909160048923809360040895109208
-:104CB0006004089590915F04892B80935F040895A8
-:104CC000809590915F04892380935F0408951092EA
-:104CD0005F04089580934E04089510924E04089541
-:104CE0008091870290918802FC0131969C01205F9F
-:104CF0003F4F80E0919191118F5FE217F307D1F759
-:104D00000895E0918702F091880280916104808388
-:104D1000E0918702F0918802908180916004892B54
-:104D20008083E0918702F0918802908180915F04F6
-:104D3000892B808380914E04882361F0E091870263
-:104D4000F09188029081892B80830E9470268111C6
-:104D500010924E0480918702909188020C94661BF9
-:104D600020E0009739F0AC0141505109842395238C
-:104D70002F5FF7CF822F089580918304843039F11B
-:104D80001092630420E488E190E00FB6F894A895AF
-:104D9000809360000FBE2093600080E00E94770542
-:104DA00080E00E94DB0C83B7817F846083BF83B780
-:104DB000816083BF7894889583B78E7F83BF88E1B5
-:104DC0000FB6F89480936000109260000FBE0895B3
-:104DD0000895089580E00E9477050E94E8260E94C9
-:104DE000360D0E94E9260E94BB0D91E0811101C0A1
-:104DF00090E0892F08950E943C2080E00E94770572
-:104E00000E94692C0E945A1B0C94DB0C1F920F927B
-:104E10000FB60F9211248F939F93AF93BF938091FE
-:104E20006304811113C08091640490916504A09182
-:104E30006604B09167044196A11DB11D809364047E
-:104E400090936504A0936604B0936704BF91AF91FB
-:104E50009F918F910F900FBE0F901F90189582E039
-:104E600084BD93E095BD9AEF97BD80936E00089541
-:104E70002FB7F8948091640490916504A091660422
-:104E8000B09167042FBF0895CF92DF92EF92FF9207
-:104E90000F931F932FB7F8944091640450916504C9
-:104EA00060916604709167042FBF6A017B01EE2454
-:104EB000FF248C0120E030E0C016D106E206F306A4
-:104EC00010F4415051099A01281B390BC9011F9157
-:104ED0000F91FF90EF90DF90CF9008951F920F9267
-:104EE0000FB60F9211248F939F93AF93BF9380912E
-:104EF000640490916504A0916604B09167040196E2
-:104F0000A11DB11D8093640490936504A093660471
-:104F1000B0936704BF91AF919F918F910F900FBE97
-:104F20000F901F9018950E945718F8942FEF87EA5A
-:104F300091E6215080409040E1F700C0000087E0FA
-:104F400090EBDC0180938E0490938F04A0939004E7
-:104F5000B09391049CE088E10FB6F894A8958093F3
-:104F600060000FBE90936000FFCF0E94F427811174
-:104F700002C00E94D0270E94FF27809362040E94F3
-:104F80000C2880938C0487FB882780F98093860205
-:104F90000E940328682F70E080E090E00C94FC23CE
-:104FA0006DEE7EEF80E090E00E94203160E082E0D4
-:104FB00090E00E940E3160E083E090E00E940E31AC
-:104FC00060E084E090E00E940E3160E085E090E0D7
-:104FD0000E940E3160E086E090E00E940E316FEF9B
-:104FE00087E090E00C940E3180E090E00E94083160
-:104FF00021E08D3E9E4F09F020E0822F089582E04F
-:1050000090E00C94003183E090E00C940031682F24
-:1050100083E090E00C940E3184E090E00C94003139
-:10502000682F84E090E00C940E3186E090E00C94C0
-:105030000031682F86E090E00C940E3187E090E01C
-:105040000C940031682F87E090E00C940E31809131
-:105050006A0480FF0BC060918C0285E0689FB001FC
-:10506000112475956795759567952BC081FF09C0CB
-:1050700060918C0285E0689FB00111247595679559
-:1050800020C082FF07C060918C0285E0689FB0015C
-:10509000112417C090916B049923D1F060918B0279
-:1050A000961788F720918C0285E0289F90011124A3
-:1050B000929FA001939F500D112470E0CA010E949D
-:1050C000E6306038710540F46115710539F002C0B1
-:1050D00065E070E0862F08958FE7089581E00895D8
-:1050E00080916A0480FF08C060918A0270E0759523
-:1050F00067957595679521C081FF06C060918A020A
-:1051000070E07595679519C082FF04C060918A02AE
-:1051100070E010C090916B049923C1F060918902F6
-:105120009617A0F780918A02899FC001112470E030
-:105130000E94E6306038710528F46115710521F090
-:10514000862F08958FE7089581E0089561E070E06B
-:10515000F4CF803F21F40E942728819504C0813F2D
-:1051600029F40E94272880936E040895823F21F439
-:105170000E942728819504C0833F29F40E94272894
-:1051800080936D040895893F19F40E94702805C02A
-:105190008A3F31F40E947028819580936F040895AE
-:1051A0008B3F21F40E947028819504C08C3F29F424
-:1051B0000E947028809370040895843F21F48091A8
-:1051C0006C04816017C0853F21F480916C0482607B
-:1051D00011C0863F21F480916C0484600BC0873F2E
-:1051E00021F480916C04886005C0883F31F480917F
-:1051F0006C04806180936C0408958D3F21F480914C
-:105200006A0481600BC08E3F21F480916A04826041
-:1052100005C08F3F29F480916A04846080936A04FA
-:105220000895803F39F480916E0487FF6CC010921E
-:105230006E0469C0813F29F480916E041816BCF396
-:1052400062C090916D04823F29F497FF5CC0109278
-:105250006D0459C0833F19F41916CCF354C0893F2B
-:1052600041F480916F0418160CF04DC010926F0439
-:105270004AC08A3F29F480916F0487FF44C0F6CF6B
-:105280008B3F39F48091700487FF3DC01092700409
-:105290003AC08C3F29F4809170041816BCF333C0D7
-:1052A000843F21F480916C048E7F17C0853F21F4E8
-:1052B00080916C048D7F11C0863F21F480916C0435
-:1052C0008B7F0BC0873F21F480916C04877F05C0E2
-:1052D000883F31F480916C048F7E80936C0413C0FE
-:1052E0008D3F21F480916A048E7F0BC08E3F21F4A4
-:1052F00080916A048D7F05C08F3F29F480916A04F4
-:105300008B7F80936A0480916D0481110EC080911F
-:105310006E0481110AC080916F04811106C08091D2
-:105320007004811102C010926B0408958CE694E021
-:105330000E94711B0E94382790936904809368042F
-:1053400008951F93CF93DF9380916804909169042F
-:105350000E944427AC0190916B04992321F0209185
-:105360008D0230E006C020918E028AE0289F9001D5
-:1053700011244217530708F486C080916D04C09130
-:105380006E04D0916F0410917004811107C0C11197
-:1053900076C0D11174C0111172C075C09F3F19F051
-:1053A0009F5F90936B04181624F40E942728809323
-:1053B0006D0480916D0487FF05C00E9427288195A8
-:1053C00080936D041C1624F40E94272880936E0499
-:1053D00080916E0487FF05C00E94272881958093E5
-:1053E0006E0460916D04662339F1C0916E04CC2384
-:1053F00019F1772767FD7095872F972F0E94082E48
-:1054000023E333E343E35FE30E94182F0E94D52D8B
-:1054100060936D046C2F772767FD7095872F972F0A
-:105420000E94082E23E333E343E35FE30E94182F37
-:105430000E94D52D60936E041D1624F40E947028DE
-:1054400080936F0480916F0487FF05C00E947028CD
-:10545000819580936F04111624F40E947028809324
-:1054600070048091700487FF05C00E9470288195A8
-:1054700080937004DF91CF911F910C9496299F3FE8
-:1054800009F08ECF96CFDF91CF911F910895ECE672
-:10549000F4E085E0DF011D928A95E9F710926B0434
-:1054A00010926A040895833081F128F4813059F014
-:1054B0008230D1F00895853009F449C0B8F18630C2
-:1054C00009F456C0089580918E02262F30E0280FEF
-:1054D000311D2F3F310524F4680F60938E0208952B
-:1054E0008FEF80938E02089580918D02262F30E0F9
-:1054F000280F311D2F3F310524F4680F60938D0272
-:1055000008958FEF80938D02089580918C02262F4D
-:1055100030E0280F311D2F3F310524F4680F6093D0
-:105520008C0208958FEF80938C02089580918B02F6
-:10553000262F30E0280F311D2F3F310524F4680F4E
-:1055400060938B0208958FEF80938B020895809172
-:105550008A02262F30E0280F311D2F3F310524F419
-:10556000680F60938A0208958FEF80938A020895EE
-:1055700080918902262F30E0280F311D2F3F310501
-:1055800024F4680F6093890208958FEF8093890255
-:105590000895833011F128F4813049F0823091F080
-:1055A0000895853081F120F18630C1F10895809110
-:1055B0008E02681720F4861B80938E020895109245
-:1055C0008E02089580918D02681720F4861B8093C7
-:1055D0008D02089510928D02089580918C026817B3
-:1055E00020F4861B80938C02089510928C020895FB
-:1055F00080918B02681720F4861B80938B0208959C
-:1056000010928B02089580918A02681720F4861BFD
-:1056100080938A02089510928A02089580918902E7
-:10562000681720F4861B80938902089510928902DE
-:1056300008950F931F93873208F048C08E3108F009
-:105640008DC0803109F477C008F5873009F461C056
-:1056500068F4863009F09DC080916204817F8E7F5E
-:105660008093620481E08093720494C08B3009F4CB
-:1056700089C08E3009F08DC08091620482FB2227A0
-:1056800020F991E0922790FB82F95EC0863109F4FF
-:1056900079C060F4813109F07CC00E943C20909177
-:1056A000860281E08927809386026CC0893109F4E3
-:1056B00069C08B3109F06DC08091620481FB2227A3
-:1056C00020F991E0922790FB81F93EC0883309F4DC
-:1056D00059C050F4893209F457C0853309F454C0D5
-:1056E000873209F451C055C0833409F44DC028F401
-:1056F0008A3308F44EC0895332C0883409F049C057
-:105700000E943C200E94EB0D0E94F1060E9493270C
-:1057100039C090916204892F8095817080FB90F947
-:1057200029F0966098609093620434C0997F977FC7
-:105730009093620427C08091620483FB222720F9A2
-:1057400091E0922790FB83F9809362049923D1F032
-:105750008091620481608093620414C08D5141E0A5
-:1057600050E060E070E08A019B0104C0000F111F4F
-:10577000221F331F8A95D2F7C901B8010E94FC236A
-:105780000E943C2081E006C061E070E080E090E093
-:10579000F5CF80E01F910F91089580E0089580E09B
-:1057A0000895CF93C82F80917204813069F018F06A
-:1057B0008230C9F184C0E0918702F0918802808133
-:1057C000823209F07EC007C0E0918702F091880222
-:1057D0008081823261F48C2F0E94CD2B811104C014
-:1057E0008C2F0E94192B1DC081E090E01AC08C2FD5
-:1057F0000E94CF2B811114C0C43179F048F4CB3012
-:1058000079F0C03109F061C082E08093720408C071
-:10581000C93219F0C83321F058C01092720455C033
-:1058200081E0817054C0C93291F120F5C43179F121
-:10583000B0F4C73009F047C08EE180938E0282E356
-:1058400080938D028AE080938C0284E180938B02A6
-:1058500088E080938A0288E28093890234C0CE5126
-:10586000C63088F5EC2FF0E0EA5DFC4F8081809334
-:10587000710429C0CE34E9F020F4CB3421F56AE07C
-:1058800013C0C13579F0C235F1F461E00DC08091EB
-:105890007104882319F01092710415C081E080937F
-:1058A000720415C061E006C0809171040E94532A01
-:1058B0000AC06AE0809171040E94C92A04C0109253
-:1058C000720480E004C081E002C080E0AACFCF91E2
-:1058D00008950E94F427811102C00E94D0270E94DF
-:1058E000152880938D0480FF02C0869501C080E05A
-:1058F0000C94770580918D04982F9695292F30E090
-:10590000233031054CF49F5F990F8170892B8160A2
-:1059100080938D040E94192880918D0486950C94A3
-:10592000770580918D04982F969591F09158990F55
-:105930008170892B80938D048E7F91E009F490E033
-:1059400080918D0490FB80F980938D040E9419282A
-:1059500080918D0486950C94770580918D04982F05
-:10596000909590FB80F980938D040E941928809176
-:105970008D0480FF02C0869501C080E00C947705FD
-:1059800090918D04892F86958F5F8F7791708430E9
-:1059900028F4880F892B80938D0402C090938D0486
-:1059A00080918D048E7F91E009F490E080918D04C8
-:1059B00090FB80F980938D040E94192880918D04BA
-:1059C00086950C94770520918D04922F96958927C2
-:1059D000982F990F822F8170892B80938D048E7F51
-:1059E00091E009F490E080918D0490FB80F9809320
-:1059F0008D040E94192880918D0486950C9477055A
-:105A000080918D04869508955058BB27AA270ED003
-:105A1000D1C1C2D130F0C7D120F031F49F3F11F491
-:105A20001EF4B7C10EF4E095E7FB9FC1E92FD3D177
-:105A300080F3BA17620773078407950718F071F4AB
-:105A40009EF5EBC10EF4E0950B2EBA2FA02D0B01A5
-:105A5000B90190010C01CA01A0011124FF27591BB3
-:105A600099F0593F50F4503E68F11A16F040A22FB9
-:105A7000232F342F4427585FF3CF4695379527952A
-:105A8000A795F0405395C9F77EF41F16BA0B620B29
-:105A9000730B840BBAF09150A1F0FF0FBB1F661F70
-:105AA000771F881FC2F70EC0BA0F621F731F841FB3
-:105AB00048F4879577956795B795F7959E3F08F0D9
-:105AC000B3CF9395880F08F09927EE0F9795879598
-:105AD000089527D108F481E008950CD06BC163D1FB
-:105AE00040F05AD130F021F45F3F19F03EC151111E
-:105AF00095C14FC170D198F39923C9F35523B1F3E0
-:105B0000951B550BBB27AA2762177307840738F02C
-:105B10009F5F5F4F220F331F441FAA1FA9F333D08B
-:105B20000E2E3AF0E0E830D091505040E695001C3F
-:105B3000CAF729D0FE2F27D0660F771F881FBB1FFB
-:105B4000261737074807AB07B0E809F0BB0B802DD5
-:105B5000BF01FF2793585F4F2AF09E3F510568F021
-:105B600004C15CC15F3FECF3983EDCF3869577950A
-:105B70006795B795F7959F5FC9F7880F911D969523
-:105B8000879597F90895E1E0660F771F881FBB1F7F
-:105B9000621773078407BA0720F0621B730B840B2C
-:105BA000BA0BEE1F88F7E095089504D06894B11100
-:105BB00035C1089518D188F09F5790F0B92F9927D3
-:105BC000B751A0F0D1F0660F771F881F991F1AF008
-:105BD000BA95C9F712C0B13081F01FD1B1E0089574
-:105BE0001CC1672F782F8827B85F39F0B93FCCF3F5
-:105BF000869577956795B395D9F73EF490958095FE
-:105C0000709561957F4F8F4F9F4F0895E89409C01D
-:105C100097FB3EF490958095709561957F4F8F4FDF
-:105C20009F4F9923A9F0F92F96E9BB279395F695F5
-:105C3000879577956795B795F111F8CFFAF4BB0F73
-:105C400011F460FF1BC06F5F7F4F8F4F9F4F16C0D7
-:105C5000882311F096E911C0772321F09EE8872F61
-:105C6000762F05C0662371F096E8862F70E060E01D
-:105C70002AF09A95660F771F881FDAF7880F969596
-:105C8000879597F9089588D018F011F08CD038F4E2
-:105C900080C0C4C0E92F9FD0B0F35523C9F3E7FB00
-:105CA0006217730784079507A8F199F3E92FFF2777
-:105CB00088232AF03197660F771F881FDAF7952F10
-:105CC0005527442332F091505040220F331F441F78
-:105CD000D2F7BB27E91BF50B621B730B840BB109D1
-:105CE000C1F222F4620F731F841FB11D31972AF095
-:105CF000660F771F881FBB1FEFCF915050405AF09F
-:105D000041F0882332F0660F771F881F9150504072
-:105D1000C1F7939530C08695779567959F5FD9F7C2
-:105D2000F8CF990F0008550FAA0BE0E8FEEF161602
-:105D30001706E807F907C0F012161306E407F5077F
-:105D400098F0621B730B840B950B39F40A2661F0F3
-:105D5000232B242B252B21F408950A2609F4A14096
-:105D6000A6958FEF811D811D089597F99F6780E8A3
-:105D700070E060E008959F3F31F0915020F48795E6
-:105D800077956795B795880F911D9695879597F9A3
-:105D900008959FEF80EC089500240A9416161706C4
-:105DA00018060906089500240A941216130614060C
-:105DB00005060895092E0394000C11F4882352F06F
-:105DC000BB0F40F4BF2B11F460FF04C06F5F7F4F27
-:105DD0008F4F9F4F089557FD9058440F551F59F00E
-:105DE0005F3F71F04795880F97FB991F61F09F3FC8
-:105DF00079F087950895121613061406551FF2CFF1
-:105E00004695F1DF08C0161617061806991FF1CF40
-:105E100086957105610508940895E894BB27662767
-:105E20007727CB0197F908957CDF08F48FEF089569
-:105E30000BD0C0CFB1DF28F0B6DF18F0952309F002
-:105E400094CFA7CF1124EACFC6DFA0F3959FD1F35B
-:105E5000950F50E0551F629FF001729FBB27F00D18
-:105E6000B11D639FAA27F00DB11DAA1F649F66276D
-:105E7000B00DA11D661F829F2227B00DA11D621FBC
-:105E8000739FB00DA11D621F839FA00D611D221F76
-:105E9000749F3327A00D611D231F849F600D211D5A
-:105EA000822F762F6A2F11249F5750408AF0E1F0FD
-:105EB00088234AF0EE0FFF1FBB1F661F771F881F46
-:105EC00091505040A9F79E3F510570F04ECFA6CF9C
-:105ED0005F3FECF3983EDCF3869577956795B79531
-:105EE000F795E7959F5FC1F7FE2B880F911D96955B
-:105EF000879597F90895FA01EE0FFF1F3096210557
-:105F0000310599F16115710561F48038BFE39B0794
-:105F100049F168949038810561F08038BFEF9B07A4
-:105F200041F0992342F5FF3FE1053105210511F1CB
-:105F3000E8940894E795D901AA2329F4AB2FBE2F42
-:105F4000F85FD0F310C0FF5F70F4A695E0F7F73963
-:105F500050F019F0FF3A38F49F779F930CD00F90D0
-:105F600007FC905808953EF014CF60E070E080E8A0
-:105F70009FE308954FE79F775F934F933F932F934E
-:105F80009ED02F913F914F915F9152DF05C019F440
-:105F90000EF0EBCE42CFFDCE26DFC8F39638C0F729
-:105FA00007F80F92E8942BE33AEA48EB5FE74EDFFD
-:105FB0000F920F920F924DB75EB70F92C0D0E8E2EA
-:105FC000F1E016D04F915F91EF91FF91E595EE1FB3
-:105FD000FF1F49F0FE57E0684427EE0F441FFA9573
-:105FE000E1F74195550B32D00F9007FE26C008957A
-:105FF000DF93CF931F930F93FF92EF92DF927B017A
-:106000008C01689405C0DA2EEF011EDFFE01E894D2
-:10601000A5912591359145915591AEF3EF0106DD9E
-:10602000FE019701A801DA9479F7DF90EF90FF90D5
-:106030000F911F91CF91DF9108959B01AC0160E01A
-:1060400070E080E89FE349CD90CE95CECCDEE8F3BA
-:106050009923D9F3940F511DBBF39150504094F004
-:1060600059F0882332F0660F771F881F91505040F7
-:10607000C1F79E3F510544F7880F911D969587956E
-:1060800097F908955F3FACF0983E9CF0BB2786954A
-:1060900077956795B79508F4B1609395C1F7BB0FF5
-:1060A00058F711F460FFE8CF6F5F7F4F8F4F9F4F1E
-:1060B000E3CFB4CE0EF05FCE6CCE689456CE93DEB6
-:1060C000C8F39923D1F3C6F3DF93CF931F930F93B4
-:1060D000FF92C92FDD2788232AF02197660F771FAB
-:1060E000881FDAF720E030E040E85FEB9FE3883973
-:1060F00020F0803E30F021968F7787DCE0E5F1E0FC
-:1061000003C083DCEDE7F1E073DF8B01BE01EC013E
-:10611000FB2E6F5771097595771F880B990B78DDEA
-:1061200028E132E741E35FE38FDEAF2D9801AE0156
-:10613000FF900F911F91CF91DF9178DC3BCEFA0158
-:10614000DC01AA0FBB1F9B01AC01BF5728F422271B
-:106150003327442750781FC0B75188F4AB2F002451
-:10616000469537952795011CA395D2F3002069F039
-:10617000220F331F441FB395DAF30DD045CC6130A5
-:106180007105A0E88A07B94630F49B01AC01662787
-:10619000772788279078309621F0208331834283B7
-:1061A00053830895AA1BBB1B51E107C0AA1FBB1F45
-:1061B000A617B70710F0A61BB70B881F991F5A9593
-:1061C000A9F780959095BC01CD01089597FB072E06
-:1061D00016F4009407D077FD09D00E94D23007FC56
-:1061E00005D03EF4909581959F4F089570956195E7
-:1061F0007F4F0895EE0FFF1F0590F491E02D099455
-:10620000F999FECF92BD81BDF89A992780B508957E
-:10621000A8E1B0E042E050E00C942831262FF99933
-:10622000FECF92BD81BDF89A019700B4021639F0F5
-:106230001FBA20BD0FB6F894FA9AF99A0FBE0895C6
-:106240000196272F0E940F310C940E31DC01CB01F7
-:10625000FC01F999FECF06C0F2BDE1BDF89A319676
-:1062600000B40D9241505040B8F70895F894FFCF14
-:1062700052D02445000000410000DC4400000041F1
-:1062800052D0A4440000404100005C4400000041A2
-:1062900048F17644000000415C978A4400000041C8
-:1062A0001FD592440000004152D0A4440000004198
-:1062B0005CFFB844000000410AA7CF440000004141
-:1062C0000000DC44000000410AA7CF440000004168
-:1062D0000000DC440000004100000000000080409D
-:1062E00000005C45000040410000000000008040CC
-:1062F00052D02445000040410AA7CF44000000418D
-:106300000000DC440000004100000000000080406C
-:1063100052D02445000040410000000000008040B1
-:1063200000005C45000040410AA7CF440000004146
-:106330000000DC440000004100000000000080403C
-:1063400052D0244500004041000000000000804081
-:106350000AA74F45000040410AA7CF440000004172
-:106360000000DC440000004100000000000080400C
-:1063700052D0244500000041000000000000804091
-:106380005CFF384500000041000000000000804034
-:1063900052D02445000000410AA7CF44000000412C
-:1063A0000000DC44000000410000000000008040CC
-:1063B00052D024450000804152D024450000404185
-:1063C0005C970A450000004152D0A44400000041FF
-:1063D0000000DC44000000415C970A450000A04139
-:1063E000640007000CFF0000003F646214F014CD4D
-:1063F000149914651401014F042808140A321E0070
-:1064000002040507090B0C0E1011131517181A1C9E
-:106410001D1F2123242628292B2D2F3032343537D8
-:10642000393B1F0F03764F5F6F7F496943790959E5
-:1064300053633149803F5D8B803FF8BF803FCAE1A5
-:10644000803F73ED803FCAE1803FF8BF803F5D8BA6
-:10645000803F3149803F0000803FF16D7F3F75EA0A
-:106460007E3F4C827E3F833F7E3F84287E3F833F3A
-:106470007E3F4C827E3F75EA7E3FF16D7F3F00009C
-:10648000803F404D3639FA09AD0977093E09D108F8
-:10649000EA0803091C0901020304050607080900AC
+:100E4000CF92DF92EF92FF920F931F9301E010E099
+:100E500020E030E06801790104C0CC0CDD1CEE1C00
+:100E6000FF1C8A95D2F704C0000F111F221F331FE9
+:100E70006A95D2F70C291D292E293F29C0904504D7
+:100E8000D0904604E0904704F0904804C022D1225C
+:100E9000E222F322842FC016D106E206F30641F4C3
+:100EA0001F910F91FF90EF90DF90CF900C947C24D6
+:100EB0001F910F91FF90EF90DF90CF900C949D24A5
+:100EC0000C94BC0580918503882309F448C0809167
+:100ED000410390914203009779F40E943B2790933D
+:100EE0004203809341038091430390E0009771F4A3
+:100EF0008091440390E00AC00E944727209170022D
+:100F0000309171022817390740F329C00197880FE3
+:100F1000991F880F991FFC01EB5BFC4F6081718169
+:100F2000828193810E94210EE091430384E0E89F37
+:100F3000F0011124EB5BFC4F608171818281938110
+:100F40004FE050E00E94D9118091430390E0019658
+:100F50006091440370E00E94EC30809343030C9452
+:100F60006705109287030C94EE0D81E08093870350
+:100F70000C94190708958F929F92AF92BF92EF92AF
+:100F8000FF920F931F93CF93DF93CDB7DEB7A39755
+:100F90000FB6F894DEBF0FBECDBF7C01FC0100810F
+:100FA0001181C8010E943825B8010E944F0C8C01A4
+:100FB000B7010E941D07882309F4BDC20531F0E77F
+:100FC0001F0741F4F7018281882309F458C00E9469
+:100FD000D012B1C20631F0E71F0741F4F701828158
+:100FE000882309F44CC00E94D912A5C20731F0E74A
+:100FF0001F0751F4F7018281882309F440C00E9441
+:10100000CC128111F0CFE3CF0831F0E71F0739F49C
+:10101000F7018281882399F10E94B5078CC20931BA
+:10102000F0E71F0739F4F7018281882341F10E941C
+:10103000B10781C20A31F0E71F0749F4F701828145
+:101040008823E9F0809187038111F1CFE5CF0B313F
+:10105000F0E71F0739F4F7018281882381F00E94AD
+:10106000E0120AC00C31F0E71F0749F4F701828152
+:10107000882329F00E94EB120E940A075CC280912B
+:101080008703811105C0F70182818111CFC03AC168
+:10109000003E110579F4F7018281882309F44DC0DF
+:1010A0000E94EE0D81E080938603109285031092DA
+:1010B000440341C2023E110559F4F701828188239D
+:1010C000E1F10E94EE0D109286031092850333C267
+:1010D000033E110591F4F7018281882371F10E948A
+:1010E000EE0D1092860381E08093850310924303F6
+:1010F00010924203109241031EC20235110559F4A9
+:10110000F7018281882309F416C2809170029091C0
+:1011100071020A970DC00135110579F4F70182813A
+:10112000882309F408C280917002909171020A9696
+:101130009093710280937002FEC14091740283E229
+:10114000EFE8F2E0DE01119601900D928A95E1F749
+:10115000F701808121E030E02C0F3D1F280F311D69
+:10116000C9012091720230917302FC01E20FF31F5A
+:101170006081772767FD7095640F711D882777FD63
+:101180008095982F0E940E2E20E030E040E451E43C
+:101190000E94732D4B015C01F701218184E090E0F6
+:1011A000821B9109BC01882777FD8095982F0E94AA
+:1011B0000E2E9B01AC01C501B4010E940B2D9B01B9
+:1011C000AC0160E070E080E090E40E94812F20E0BC
+:1011D00030E04CED50E40E941E2F4B015C01F70102
+:1011E00082818823D1F04FE050E0C501B4010E9414
+:1011F000D911809186038823A1F08091440324E0D3
+:10120000829FF0011124EB5BFC4F80829182A282CD
+:10121000B3828F5F8093440304C0C501B4010E9470
+:10122000210E0F3F110508F02ECF85C1809140039C
+:1012300081111FC0043130E7130709F080C00E94FC
+:101240001F0781E0809340030E943B2790933F0358
+:1012500080933E03109237031092390310923803A3
+:1012600010923B0310923A0310923D0310923C03FC
+:1012700062C180913E0390913F030E944727883CC2
+:10128000910570F480913703E82FF0E0EE0FFF1F17
+:10129000E85CFC4F118300838F5F809337034BC161
+:1012A000043180E7180768F4023090E7190708F066
+:1012B00050C00115E0E71E0771F001301047A1F1A1
+:1012C0001CC1033320E7120709F4E8C004331047B8
+:1012D00009F4FBC012C1F7018281882309F412C10D
+:1012E0000E943F200E94EE0D0E94F106FFEF24E3D2
+:1012F0003CE0F15020403040E1F700C000000E9487
+:10130000962719C10431F0E71F0708F0C3C0023067
+:1013100020E71207F0F4011530E7130709F4F2C0D3
+:101320000130104709F0E9C0F7018281882309F4F0
+:10133000E9C080916204816080936204FCC0043142
+:10134000F0E71F0708F0A6C0023020E7120708F4F4
+:10135000ECC0F7018281882309F4D4C00E94FA27E7
+:10136000811102C00E94D6270E94122890E090931B
+:101370007404809373040230F0E71F0721F4809116
+:101380007304816080C0033020E7120721F480914C
+:101390007304826078C0043030E7130721F4809131
+:1013A0007304846070C0053080E7180719F48091D9
+:1013B000730427C0063090E7190721F48091730465
+:1013C000806161C00730E0E71E0721F4809173045B
+:1013D000806259C00830F0E71F0721F48091730440
+:1013E000806451C0093020E7120721F48091730412
+:1013F000806849C00A3030E7130729F480917304EC
+:101400008460886040C00B3080E7180721F4809129
+:1014100073048E7F38C00C3090E7190721F4809157
+:1014200073048D7F30C00D30E0E71E0721F48091FA
+:1014300073048B7F28C00E30F0E71F0719F48091EA
+:10144000730420C00F3020E7120721F48091730449
+:101450008F7E19C0003130E7130721F480917304A7
+:101460008F7D11C0013180E7180721F4809173044A
+:101470008F7B09C0809173040231104711F48F777C
+:1014800002C08B7F877F80937304809173040E94D6
+:10149000162851C0033390E71907A1F4F7018281A0
+:1014A000882321F01092350382E016C08091350325
+:1014B000811106C086E20E94941C86E20E945C1D97
+:1014C00082E018C004331047C1F4F70182818823F9
+:1014D00031F01092360380E20E94AB1D2CC0809147
+:1014E0003603811106C087E20E94941C87E20E94A5
+:1014F0005C1D80E20E94B21D1EC081E08093350316
+:1015000080933603C701A3960FB6F894DEBF0FBED3
+:10151000CDBFDF91CF911F910F91FF90EF90BF90C2
+:10152000AF909F908F900C946905011530E71307D9
+:1015300009F0F6CED5CE80E0A3960FB6F894DEBFC4
+:101540000FBECDBFDF91CF911F910F91FF90EF9014
+:10155000BF90AF909F908F9008952CE0729FF00104
+:10156000112430E3839FE00DF11D1124E60FF11DDE
+:10157000EE0FFF1FED5FFD4F859194910E94610C6E
+:10158000811540E5940708F047C0811520E49207D3
+:1015900008F013C1883E910520F5803E910508F0C2
+:1015A0007CC1883A910578F4853A910508F0A5C088
+:1015B0008130910509F471C108F42EC18430910580
+:1015C00008F06BC129C18B3B910508F4A1C0803C98
+:1015D000910508F421C1FC01EE0FFF1FED57FF4FED
+:1015E000E6C0811530E2930758F4811541E0940775
+:1015F00008F053C1803F910508F40EC1906508952D
+:10160000811520E3920708F0D5C0FC01FF70EE0FB2
+:10161000FF1FED5FFD4FCBC0811535E5930708F047
+:1016200043C0811544E5940708F0DEC0811522E52A
+:10163000920708F5811531E5930708F0C1C0482FDE
+:10164000437021E030E002C0220F331F4A95E2F7D9
+:101650003C68AC0164E0569547956A95E1F74370A4
+:10166000342B8F708695869540E2849FC0011124AB
+:10167000822B932B0895282F26952695AC01437035
+:1016800055278115934508F0A0C080E2289F90015E
+:10169000112481E090E002C0880F991F4A95E2F77B
+:1016A000822B932B9C6808958F3240E7940790F427
+:1016B0008F3120E7920708F0A2C0811536E5930725
+:1016C00008F497C09C0130562115304108F0A4C0A1
+:1016D0009F7093C0803320E7920709F497C008F405
+:1016E00092C0813340E7940709F493C08233904756
+:1016F00009F092C080E093ED0895853A910509F4D0
+:101700008EC0863A910509F08DC082E890E4089574
+:10171000883A910509F489C0893A910509F488C08D
+:101720008A3A910509F487C08B3A910509F486C07D
+:101730008C3A910509F485C08D3A910509F484C06D
+:10174000803B910509F483C08E3A910509F482C06B
+:101750008F3A910509F481C0813B910509F480C05D
+:10176000823B910509F47FC0833B910509F47EC05B
+:10177000843B910509F47DC0853B910509F47CC04B
+:10178000863B910509F47BC0873B910509F47AC03B
+:10179000883B910509F479C0893B910509F478C02B
+:1017A0008A3B910509F477C080E094E4089585911F
+:1017B000949108959927906C08959F70906A089568
+:1017C000982F8827816F906A089590E2299F900151
+:1017D000112481E090E002C0880F991F4A95E2F73A
+:1017E000822B932B9A680895982F8827846F906A8C
+:1017F00008958F719927982F8827906208958F51A7
+:101800009047946D089580E091ED089580E090ED0B
+:10181000089580E092ED089580E090E0089581E8D9
+:1018200090E4089583E890E4089582EE94E40895A6
+:1018300089EE94E408958AEE94E4089585EB94E4A7
+:10184000089586EB94E4089587EB94E408958CEC76
+:1018500094E408958DEC94E4089583E895E4089564
+:101860008AE895E4089582E995E4089584E995E489
+:10187000089581E296E4089583E296E4089584E26F
+:1018800096E4089585E296E4089586E296E4089544
+:1018900087E296E408958AE296E4089508959CE02C
+:1018A000799FF001112490E3899FE00DF11D11242F
+:1018B000E60FF11DEE0FFF1FED5FFD4F8591949137
+:1018C00008958238910549F1B0F48133910509F406
+:1018D00058C048F48932910509F44EC08A32910506
+:1018E00009F454C008958533910509F440C0893343
+:1018F000910599F00895833E910529F138F4803ED1
+:10190000910591F0823E9105A1F00895863E9105E2
+:10191000F9F0873E910531F108952091730420FD7F
+:101920003AC021FD38C008958091730480FD35C010
+:1019300032C08091730482FF32C08091730484FDB1
+:1019400030C083EE39C08091730482FD28C0F5CF8A
+:101950008091730483FF27C08091730484FD21C0AC
+:1019600087EE2AC08091730483FD1DC0F5CF80915E
+:10197000730485FD1AC01BC08091730485FD17C0D8
+:1019800014C08091730486FD14C015C08091730447
+:1019900086FD11C00EC080EE0FC089E30DC082EE3F
+:1019A0000BC080E009C086EE07C089E205C085E370
+:1019B00003C08AE201C081E390E008950C946B05B6
+:1019C000E82FF0E0E254FD4F8081E82FEF70F0E067
+:1019D00082958F7021E030E0A90102C0440F551FAD
+:1019E0008A95E2F740A308950F931F93CF93DF9357
+:1019F00085B7806885BF85B7806885BFC3E0D0E0C4
+:101A000001E010E0FE01E254FD4F8081E82FEF700D
+:101A1000F0E021A182958F70A80102C0440F551FEC
+:101A20008A95E2F7CA01822B81A38C2F0E94E00CD9
+:101A3000219740F78BE090E061E070E0FC01EE540C
+:101A4000FD4F2081E22FEF70F0E042A122952F7030
+:101A5000DB0102C0AA0FBB1F2A95E2F79D01242BD0
+:101A600022A3019758F7DF91CF911F910F910C940A
+:101A70006007EF92FF920F931F93CF93DF9300E9DC
+:101A800013E0C3E0EE24E394F12CD5E08C2F0E9408
+:101A9000E00C8BE090E040E050E0FC01EE54FD4FA4
+:101AA0006081E62FEF70F0E020A130E062956F706A
+:101AB00002C0359527956A95E2F720FD09C0970188
+:101AC000082E02C0220F331F0A94E2F7422B532B39
+:101AD000019718F7F801929182918F018417950769
+:101AE00021F051834083D09375028C2F0E94E00C2B
+:101AF000C15060F68091750287FD2CC081508093A3
+:101B000075028F3F39F08FE99FE00197F1F700C030
+:101B1000000020C080918E0390918F0390939703D3
+:101B20008093960380918C0390918D0390939503FD
+:101B30008093940380918A0390918B0390939303F5
+:101B400080939203809188039091890390939103ED
+:101B5000809390030E94620781E0DF91CF911F91F3
+:101B60000F91FF90EF900895E82FF0E0EE0FFF1F28
+:101B7000E057FC4F80819181089508950F931F9342
+:101B8000CF9308E913E0C0E0F801929182918F01B0
+:101B90000E94B326C80FF3E000391F07A9F78C2F66
+:101BA000CF911F910F9108950E94FA27811102C0D1
+:101BB0000E94D6270E942428809379043E9A80911F
+:101BC00071008D7F8093710082E0809390008AE1A4
+:101BD0008093910081E080939A03089580919A0305
+:101BE000811102C00E94D40D1092EA031092E90301
+:101BF000809171008D7F80937100809190008F7330
+:101C0000809390001092AC031092AB031092E30308
+:101C10001092E4031092E5031092E6031092E2039F
+:101C20001092E103E1ECF3E0A1EBB3E01192119229
+:101C3000119211921D921D9283E0E13EF807B1F7D7
+:101C40000895CF92DF92EF92FF920F931F93CF935D
+:101C5000DF932091AB03222309F484C06B017C0144
+:101C600080919A03811102C00E94D40D01EE13E00D
+:101C7000C7E0D0E0A7019601F8019291829172919C
+:101C800062918F010E946F2D811131C0FE01EE0F14
+:101C9000FF1FEE0FFF1FEF53FC4F108211821282C5
+:101CA0001382DE01AA0FBB1FAF54BC4F11961C92CA
+:101CB0001E92C730D105E9F0219644815581668195
+:101CC00077814083518362837383148215821682E5
+:101CD000178212968D919C91139711969C938E93D7
+:101CE00013961C921E92129734961296E2CF219769
+:101CF00008F68091E9039091EA03019797FD05C0EA
+:101D00009093EA038093E90304C01092EA031092CF
+:101D1000E9038091E9039091EA032091E703309170
+:101D2000E8032817390724F01092E8031092E7031C
+:101D3000892BC1F4809171008D7F80937100809117
+:101D400090008F73809390001092E3031092E4034D
+:101D50001092E5031092E6031092E2031092E10361
+:101D60001092AB03DF91CF911F910F91FF90EF90F5
+:101D7000DF90CF9008951F920F920FB60F9211240B
+:101D80004F925F926F927F928F929F92AF92BF928B
+:101D9000CF92DF92EF92FF922F933F934F935F93F7
+:101DA0006F937F938F939F93AF93BF93CF93DF9363
+:101DB000EF93FF938091AB03882309F49BC1C091FB
+:101DC000E903D091EA031C161D060CF093C1409064
+:101DD0009B0350909C0360909D0370909E0320E0B5
+:101DE00030E0A901C301B2010E941A2F18160CF0AD
+:101DF00065C0C130D10509F452C08091E7039091CC
+:101E0000E803BE010E94EC307C019093E8038093CC
+:101E1000E7038090AD039090AE03A090AF03B09025
+:101E2000B00320E030E040E85FE3C501B4010E9468
+:101E30000B2D6093AD037093AE038093AF0390932B
+:101E4000B003F701EE0FFF1FEE0FFF1FEF53FC4F24
+:101E5000A301920160817181828193810E94732D1F
+:101E600020E030E040E05EE30E941E2F9B01AC01C9
+:101E7000C501B4010E941A2F18168CF4C7010196EF
+:101E8000BE010E94EC309093E8038093E703109228
+:101E9000AD031092AE031092AF031092B003E09125
+:101EA000E703F091E803EE0FFF1FEE0FFF1FEF5364
+:101EB000FC4F6081718182819381D0C0C090E30327
+:101EC000D090E403E090E503F090E60320E030E0FA
+:101ED000A901C701B6010E946F2D2197882309F43B
+:101EE000A2C0FE01EE0FFF1FEE0FFF1FEF53FC4FCE
+:101EF00080809180A280B380A5019401C701B601C2
+:101F00000E946F2D87FF31C0A501940160E070E051
+:101F10008CED93EC0E94732D20E030E040E451E41E
+:101F20000E94732D20E030E040E05FE30E941E2F0E
+:101F30009B01AC0160E070E080E090E40E94812FA2
+:101F40009B01AC01C501B4010E941E2F9B01AC0195
+:101F5000C701B6010E946F2D87FF07C0A701960138
+:101F600060E070E08CED93E439C0A5019401C701F5
+:101F7000B6010E941A2F18160CF055C0A501940145
+:101F800060E070E08CED93E40E94732D20E030E07F
+:101F900040E451E40E94732D20E030E040E05FE334
+:101FA0000E941E2F9B01AC0160E070E080E090E495
+:101FB0000E94812F9B01AC01C501B4010E941E2F1C
+:101FC0009B01AC01C701B6010E941A2F18165CF5DF
+:101FD000A701960160E070E08CED93EC0E94732DF8
+:101FE00020E030E040E451E40E94732D20E030E036
+:101FF00040E05FE30E941E2F9B01AC0160E070E0B7
+:1020000080E090E40E94812F9B01AC01C701B601E2
+:102010000E941E2F6093E3037093E4038093E50313
+:102020009093E60313C0FE01EE0FFF1FEE0FFF1F9C
+:10203000EF53FC4F80819181A281B3818093E303B0
+:102040009093E403A093E503B093E6036091E30368
+:102050007091E4038091E5039091E6032091980349
+:10206000309199032F3F4FEF340731F02F5F3F4FEF
+:1020700030939903209398030E94F6126B017C0120
+:1020800020E034E244EF51E40E946F2D87FF08C046
+:1020900086EFC82E88E2D82E84EFE82E81E4F82E51
+:1020A00020E030E040E051E4C701B6010E941E2F5D
+:1020B0009B01AC0160E074E284E79BE40E94732D15
+:1020C0006B017C010E94E02D709397006093960055
+:1020D00020917602309177024091780250917902F6
+:1020E000C701B6010E941E2F0E94E02D7093990037
+:1020F000609398008091AC03882309F433C1C090A9
+:10210000A703D090A803E090A903F090AA0320E0D1
+:1021100030E0A901C701B6010E941A2F1816D4F5A4
+:1021200080919803909199038F3F2FEF920729F0A8
+:1021300001969093990380939803C701B6010E947A
+:10214000F61220E030E040E051E40E941E2F9B0197
+:10215000AC0160E074E284E79BE40E94732D6B01A4
+:102160007C010E94E02D709397006093960020916F
+:102170007602309177024091780250917902C7013E
+:10218000B6010E941E2F0E94E02D7093990060936B
+:10219000980008C010929700109296001092990033
+:1021A000109298006091A1037091A2036F5F7F4F1E
+:1021B0007093A2036093A103209196003091970041
+:1021C00080E090E0232BF1F0C0919600D091970031
+:1021D0000E940C2E6B017C01BE0180E090E00E9409
+:1021E0000C2E9B01AC016091A3037091A40380911C
+:1021F000A5039091A6030E94732D20E03FEF4FE7C7
+:1022000057E410C00E940C2E6B017C0120E030EEE0
+:102210004FEF54E46091A3037091A4038091A50350
+:102220009091A6030E941E2F9B01AC01C701B6012D
+:102230000E941A2F87FD96C080919F038F5F809325
+:102240009F0390E0209175043091760482179307E4
+:10225000A0F080918004882319F010929F030DC094
+:10226000809171008D7F80937100809190008F73B9
+:10227000809390001092AC037DC08091A003C09128
+:102280009F03811128C0C0907A04D0907B04E09015
+:102290007C04F0907D0420E030E0A901C701B60184
+:1022A0000E941A2F1816BCF481E08093A0031092AC
+:1022B000A7031092A8031092A9031092AA03C09238
+:1022C000A303D092A403E092A503F092A603C15009
+:1022D000C0939F0343C01092A003109299031092E1
+:1022E0009803E0917704F091780448E0C49FE00DF2
+:1022F000F11D112480819181A281B3818093A70374
+:102300009093A803A093A903B093AA0320E030E020
+:1023100040E85EE364817581868197810E941E2F6B
+:102320006B017C0180917A02682F70E080E090E080
+:102330000E940C2E20E030E048EC52E40E94732D05
+:102340009B01AC01C701B6010E941E2F6093A3033D
+:102350007093A4038093A5039093A6031092A20305
+:102360001092A1038091790480FD04C01092AC0307
+:102370001092AB03FF91EF91DF91CF91BF91AF919D
+:102380009F918F917F916F915F914F913F912F918D
+:10239000FF90EF90DF90CF90BF90AF909F908F9085
+:1023A0007F906F905F904F900F900FBE0F901F9097
+:1023B0001895CF92DF92EF92FF92CF93DF936B014C
+:1023C0007C01EA0180919A03811102C00E94D40D20
+:1023D0008091790480FF46C08091E9039091EA03DF
+:1023E00008970CF03FC0809171008D7F8093710041
+:1023F0008091AC0381110E94EE0D81E08093AB03CC
+:10240000109299031092980320E030E0A901C701CF
+:10241000B6010E941A2F1816DCF48091E9039091FE
+:10242000EA03FC01EE0FFF1FEE0FFF1FEF53FC4FFF
+:10243000C082D182E282F382FC01EE0FFF1FEF54D3
+:10244000FC4FD183C08301969093EA038093E90304
+:10245000809171008260809371008091900080680B
+:1024600080939000DF91CF91FF90EF90DF90CF901D
+:1024700008958F929F92AF92BF92CF92DF92EF9288
+:10248000FF920F931F93CF93DF93EC017B01D42E28
+:102490004801590180919A03811102C00E94D40D14
+:1024A0008091790480FF6BC0809171008D7F809353
+:1024B00071008091AB0381110E94EE0D81E0809349
+:1024C000AC03D0937804C0937704F0927604E09242
+:1024D0007504D092800480927A0490927B04A0923A
+:1024E0007C04B0927D041092AD031092AE03109262
+:1024F000AF031092B00310929F0388819981AA8143
+:10250000BB818093A7039093A803A093A903B093E2
+:10251000AA0320E030E040E85EE36C817D818E819B
+:102520009F810E941E2F6B017C0180917A02682F8F
+:1025300070E080E090E00E940C2E20E030E048EC5B
+:1025400052E40E94732D9B01AC01C701B6010E94A9
+:102550001E2F6093A3037093A4038093A50390930D
+:10256000A6031092A2031092A103809171008260D1
+:102570008093710080919000806880939000DF913B
+:10258000CF911F910F91FF90EF90DF90CF90BF9070
+:10259000AF909F908F9008958091790481700895F5
+:1025A000809179048160809379040E9428280C949A
+:1025B000BA07809179048E7F809379040C9428283F
+:1025C0008091EB0390E0019666E070E00E94EC30B1
+:1025D0008093EB0308958091EB0390E0019766E010
+:1025E00070E00E94EC308093EB0308958F929F92ED
+:1025F000AF92BF92CF92DF92EF92FF920F931F9311
+:10260000CF93DF936B017C01C0919803D091990324
+:10261000BE0180E090E00E940C2E4B015C01A701FE
+:10262000960160E070E08CE594E40E94732D9B01BC
+:10263000AC01C501B4010E941E2F0E94E02D209123
+:10264000EB03233009F473C028F4222351F0213026
+:10265000E9F02CC1243009F4A0C0253009F4E0C011
+:1026600025C180E090E0A0E0BFE3809376029093E4
+:102670007702A0937802B093790210929B03109294
+:102680009C0310929D0310929E0310C110929B0315
+:1026900010929C0310929D0310929E036431710569
+:1026A00040F46A30710560F520E030E040E85EE318
+:1026B0002BC0693C710508F0AAC080E090E00E9440
+:1026C0000C2E20E030E040EA51E40E940A2D20E088
+:1026D00030E044E353E40E94732D9B01AC010E945F
+:1026E0001E2F20E030E040E05EE30E941E2F9B01A1
+:1026F000AC0160E070E080E09EE30E940A2D44C0DF
+:1027000020E030E040E05FE3C701B6010E941E2FE9
+:102710006B017C0180E090E0A0E0BEE38093760254
+:1027200090937702A0937802B0937902BFC0109281
+:102730009B0310929C0310929D0310929E034AE00B
+:10274000469F9001479F300D1124C90168EB7BE043
+:102750000E94D830BC016C5D754077FF03C0719555
+:1027600061957109882777FD8095982F0E940E2E1C
+:102770002EE333EC4EE259E30E941E2F20E030E0BE
+:1027800040EC5EE30E940B2D60937602709377021B
+:10279000809378029093790289C010929B031092E3
+:1027A0009C0310929D0310929E03CE018370992783
+:1027B000892BE1F0BE016170772780E090E00E94F4
+:1027C0000C2E20E030E040E05EE30E941E2F20E06F
+:1027D00030E040E45FE30E940B2D6093760270933B
+:1027E000770280937802909379020CC080E090E0A9
+:1027F000A0E0BFE38093760290937702A0937802E3
+:10280000B0937902C770DD27CD2B09F04FC010922D
+:10281000760210927702109278021092790246C0E6
+:1028200010929B0310929C0310929D0310929E03A2
+:1028300000E010E020E03FE300937602109377027F
+:1028400020937802309379026739710578F180E03E
+:1028500090E00E940C2E20E030E047E153E40E941B
+:102860000A2D20E030E04AE754E40E94732D20E076
+:1028700030E048E452E40E941E2F20E030E040EABD
+:1028800051E40E94502E0E94DB2D660F771F660FC9
+:10289000771FFB01EE53FD4F20813181428153812F
+:1028A000C701B6010E941E2F6B017C01C701B60152
+:1028B000DF91CF911F910F91FF90EF90DF90CF901C
+:1028C000BF90AF909F908F9008958091FC030895E2
+:1028D000CF93DF9300D01F92CDB7DEB79C018091DC
+:1028E0008504843019F593E099833B832A83909380
+:1028F000E9008FEF9091E800815095FD06C095EDBD
+:102900009A95F1F700008111F5CF8091E80085FFDD
+:102910000DC040E050E063E070E0CE0101960E94FF
+:10292000C5168091E8008E778093E8000F900F9095
+:102930000F90DF91CF910895CF93DF9300D01F9236
+:10294000CDB7DEB720918504243021F522E029831C
+:102950009B838A8383E08093E9008FEF9091E80066
+:10296000815095FD06C095ED9A95F1F70000811113
+:10297000F5CF8091E80085FF0DC040E050E063E0B6
+:1029800070E0CE0101960E94C5168091E8008E7716
+:102990008093E8000F900F900F90DF91CF910895F2
+:1029A000209185042430F1F422E02093E9002FEFF8
+:1029B0003091E800215035FD06C035ED3A95F1F72C
+:1029C00000002111F5CF2091E80025FF0BC040E069
+:1029D00050E065E070E00E94C5168091E8008E77B7
+:1029E0008093E8000895CF93DF93EC0190918504E4
+:1029F000943009F046C0809185028823D9F08091F7
+:102A000086028823B9F09093E9008FEF9091E80057
+:102A1000815095FD06C095E19A95F1F7000081116E
+:102A2000F5CF8091E80085FF2CC040E050E060E1E8
+:102A300070E017C081E08093E9008FEF9091E8008B
+:102A4000815095FD06C095ED9A95F1F70000811132
+:102A5000F5CF8091E80085FF14C040E050E068E0C9
+:102A600070E0CE010E94C5168091E8008E778093B9
+:102A7000E80080E1FE01ACEEB3E001900D928A9592
+:102A8000E1F7DF91CF91089580918404811109C00D
+:102A90000E945A180E94B7188091E20084608093C7
+:102AA000E2000895109284040895089508950C9406
+:102AB000FE2642E061EC81E00E94D41742E061EC26
+:102AC00082E00E94D41742E061EC83E00E94D417B8
+:102AD00042E161EC84E00C94D41780918704833048
+:102AE00009F455C030F4813071F0823009F48EC0A1
+:102AF00008958A3009F47AC08B3009F460C08930B7
+:102B000009F09CC020C080918604813A09F096C0EB
+:102B10008091E800877F8093E80080918A049091FB
+:102B20008B04892B21F460E18CEE93E003C060E01C
+:102B300080E090E070E00E9410178091E8008B77B1
+:102B40008093E800089580918604813209F076C070
+:102B500080918A0490918B04009719F0039709F0F3
+:102B60006DC08091E800877F8093E8008091E80045
+:102B700082FD05C0809185048111F8CF5FC08091EE
+:102B8000F1008093FC038091E8008B7753C0809123
+:102B90008604813A09F052C080918A0490918B0496
+:102BA000892B09F04BC08091E800877F8093E80073
+:102BB0008091E80080FFFCCF8091850236C0809133
+:102BC00086048132D9F580918A0490918B04892BF7
+:102BD000A9F58091E800877F8093E8000E9409189A
+:102BE00080918804809385020C943F208091860414
+:102BF000813221F58091E800877F8093E8000E9470
+:102C00000918809189048093FD03089580918604BA
+:102C1000813AA1F48091E800877F8093E800809159
+:102C2000E80080FFFCCF8091FD038093F10080914C
+:102C3000E8008E778093E8000C940918089584B713
+:102C4000877F84BF88E10FB6F8948093600010926C
+:102C500060000FBE80E880936100109261000E94C6
+:102C6000AC1B0E945A180E94B7188091E200846041
+:102C70008093E20078940E943D1B0E94AE1B8BE77C
+:102C800092E00E94581B80918504853069F40E946F
+:102C9000BF26809183048823B1F30E94ED26882308
+:102CA00091F30E94AF16EFCF0E94B61BECCF292FF5
+:102CB000332723303105C9F064F42130310581F028
+:102CC0002230310509F043C08DE690E02FEB38E06B
+:102CD00042C021323105F1F02232310541F137C0D5
+:102CE00082E190E02CE239E036C0992781309105ED
+:102CF00041F08230910541F0892B49F5EBEBF8E08A
+:102D000005C0EDE8F8E002C0E3E6F8E0849190E069
+:102D10009F0121C06430D8F4E62FF0E0EE0FFF1FD2
+:102D2000E25EFC4F2081318189E090E014C0643084
+:102D300070F470E0FB01EE0FFF1FEA5EFC4F208194
+:102D40003181FB01EE5EFC4F808190E004C080E0A9
+:102D500090E020E030E0FA0131832083089580E1A3
+:102D600089BD82E189BD09B400FEFDCF8091D80004
+:102D70008F7D8093D8008091E00082608093E00096
+:102D80008091E00081FDFCCF0895CF92DF92EF9219
+:102D9000FF920F931F93CF93DF93EC018B016A0196
+:102DA0000E942818811133C0C114D10439F0F601F2
+:102DB00080819181081B190BC80FD91FE12CF12CC0
+:102DC0000115110519F18091E80085FD16C080916B
+:102DD000E8008E778093E800C114D10449F0F60131
+:102DE00080819181E80EF91EF182E08285E00FC0BA
+:102DF0000E942818882321F30AC089918093F1004A
+:102E000001501109FFEFEF1AFF0ADACF80E0DF91DE
+:102E1000CF911F910F91FF90EF90DF90CF90089589
+:102E200020918C0430918D042617370748F06115E6
+:102E3000710539F42091E8002E772093E80001C055
+:102E4000B90140E061157105A9F1209185042223A3
+:102E500009F443C0253009F442C02091E80023FD65
+:102E600040C02091E80022FD32C02091E80020FF00
+:102E7000E9CF4091F3002091F20030E0342BFC01C7
+:102E8000CF016115710559F02830310540F4819169
+:102E90008093F100615071092F5F3F4FF1CF41E006
+:102EA0002830310509F040E02091E8002E7720938A
+:102EB000E800C8CF4111C9CF0AC08091850488239A
+:102EC00061F0853061F08091E80083FD0AC0809157
+:102ED000E80082FFF2CF80E0089582E0089583E069
+:102EE000089581E0089520918C0430918D04261777
+:102EF000370748F06115710539F42091E8002E7705
+:102F00002093E80001C0B901FC0120E061157105C2
+:102F100091F180918504882309F440C0853009F43B
+:102F20003FC08091E80083FD3DC08091E80082FDB4
+:102F30002FC08091E80080FFE9CF2091F3008091BD
+:102F4000F20090E0922B6115710559F088309105DF
+:102F500040F424912093F10031966150710901965B
+:102F6000F2CF21E0089709F020E08091E8008E7709
+:102F70008093E800CBCF2111CCCF0AC0809185048B
+:102F8000882361F0853061F08091E80083FD0AC0FC
+:102F90008091E80082FFF2CF80E0089582E00895FA
+:102FA00083E0089581E00895982F973058F5909325
+:102FB000E900981739F07091EC002091ED005091E4
+:102FC000F00003C0242F762F50E021FF19C030916C
+:102FD000EB003E7F3093EB003091ED003D7F30936E
+:102FE000ED003091EB0031603093EB007093EC001A
+:102FF0002093ED005093F0002091EE0027FF07C0D2
+:103000009F5FD3CF8F708093E90081E0089580E0C7
+:1030100008958091860487FF11C08091E80082FDA9
+:1030200005C0809185048111F8CF11C08091E8001E
+:103030008B770BC080918504882349F08091E8004C
+:1030400080FFF8CF8091E8008E778093E8000895A4
+:103050002091E4003091E50095E64091EC00842F4A
+:10306000817040FF22C08091E80080FD1CC08091EB
+:103070008504882391F0853091F08091EB0085FDE7
+:1030800010C04091E4005091E5004217530729F326
+:103090009A01915011F784E0089582E0089583E049
+:1030A000089581E0089580E008954091E80042FF8E
+:1030B000DECF08950E94C8180E94D018E0EEF0E01C
+:1030C000808181608083E8EDF0E080818F7780836C
+:1030D00019BCA7EDB0E08C918E7F8C9380818F7EA0
+:1030E00080831092840408950F931F93CF93DF93EE
+:1030F0000E94C8180E94D018C8EDD0E088818F7750
+:10310000888388818068888388818F7D888319BCC3
+:10311000109285041092810410928304109282040C
+:1031200000EE10E0F80180818B7F808388818160D0
+:10313000888342E060E080E00E94D417E1EEF0E096
+:1031400080818E7F8083E2EEF0E0808181608083E9
+:10315000808188608083F80180818E7F8083888170
+:1031600080618883DF91CF911F910F910895E8EDE1
+:10317000F0E080818F7E8083E7EDF0E080818160E8
+:10318000808384E082BF81E0809384040C9474186F
+:10319000E8EDF0E080818E7F80831092E200089558
+:1031A0001092DA001092E10008951F920F920FB66C
+:1031B0000F9211242F933F934F935F936F937F93BD
+:1031C0008F939F93AF93BF93EF93FF938091E10011
+:1031D00082FF0BC08091E20082FF07C08091E10076
+:1031E0008B7F8093E1000E943C1B8091DA0080FF7E
+:1031F0001FC08091D80080FF1BC08091DA008E7FB5
+:103200008093DA008091D90080FF0DC080E189BDF4
+:1032100082E189BD09B400FEFDCF81E08093850481
+:103220000E94441505C019BC109285040E945215D5
+:103230008091E10080FF19C08091E20080FF15C0FD
+:103240008091E2008E7F8093E2008091E2008061B5
+:103250008093E2008091D80080628093D80019BCEE
+:1032600085E0809385040E9456158091E10084FFDB
+:1032700030C08091E20084FF2CC080E189BD82E1F2
+:1032800089BD09B400FEFDCF8091D8008F7D809369
+:10329000D8008091E1008F7E8093E1008091E20070
+:1032A0008F7E8093E2008091E20081608093E20053
+:1032B00080918104882311F084E007C08091E300AD
+:1032C00087FD02C081E001C083E0809385040E94F5
+:1032D00057158091E10083FF29C08091E20083FFB0
+:1032E00025C08091E100877F8093E10082E0809398
+:1032F0008504109281048091E1008E7F8093E1002B
+:103300008091E2008E7F8093E2008091E2008061F4
+:103310008093E20042E060E080E00E94D417809158
+:10332000F00088608093F0000E945515FF91EF91A6
+:10333000BF91AF919F918F917F916F915F914F91CD
+:103340003F912F910F900FBE0F901F9018951F92D5
+:103350000F920FB60F9211242F933F934F935F93C9
+:103360006F937F938F939F93AF93BF93CF93DF938D
+:10337000EF93FF93C091E900CF708091EC00D82FBC
+:10338000D17080FDD0E81092E9008091F000877F35
+:103390008093F00078940E94EB191092E9008091DC
+:1033A000F00088608093F000CD2BCF70C093E900CF
+:1033B000FF91EF91DF91CF91BF91AF919F918F914D
+:1033C0007F916F915F914F913F912F910F900FBE21
+:1033D0000F901F9018951F93CF93DF93CDB7DEB753
+:1033E000AA970FB6F894DEBF0FBECDBFE6E8F4E0B3
+:1033F00088E08E0F9091F10091938E13FBCF0E9485
+:103400006D158091E80083FF1FC180918604909123
+:103410008704492F50E04A30510508F015C1FA01E0
+:10342000EB59FF4F0C940031803881F0823809F05D
+:103430000BC180918A048F708093E9008091EB002A
+:1034400085FB882780F91092E90006C080918204EC
+:1034500090918304911182609091E800977F9093FE
+:10346000E8008093F1001092F100C8C0282F2D7F52
+:1034700009F0EAC0882319F0823061F0E5C080913C
+:103480008804813009F0E0C0933009F080E0809337
+:1034900083042BC080918804811127C080918A0405
+:1034A0008F7009F4D1C08093E9002091EB0020FFD8
+:1034B0001CC0933021F48091EB00806214C0909185
+:1034C000EB0090619093EB0021E030E0A90102C095
+:1034D000440F551F8A95E2F74093EA001092EA00E4
+:1034E0008091EB0088608093EB001092E90080915E
+:1034F000E800877F86C08111A7C0109188041F77DC
+:103500008091E3008078812B8093E3008091E80034
+:10351000877F8093E8000E9409188091E80080FF6F
+:10352000FCCF8091E30080688093E300111102C01A
+:1035300082E001C083E08093850486C08058823099
+:1035400008F082C080918804909189048C3D53E0FA
+:10355000950779F583E08A838AE289834FB7F894E7
+:10356000DE01139620E03EE051E2E32FF0E05093BD
+:103570005700E49120FF03C0E295EF703F5FEF70CA
+:103580008E2F90E0EA3010F0C79601C0C0968D9360
+:103590009D932F5F243149F74FBF8091E800877FCB
+:1035A0008093E8006AE270E0CE0101960E94101755
+:1035B00014C0AE014F5F5F4F60918A040E9457169E
+:1035C000BC01009709F440C09091E800977F909368
+:1035D000E80089819A810E9473178091E8008B77B7
+:1035E0008093E80031C0803879F58091E800877FCA
+:1035F0008093E800809181048093F1008091E8003D
+:103600008E778093E8000E9409181EC081111CC0AB
+:10361000909188049230C0F48091E800877F809375
+:10362000E800909381040E9409188091810481111F
+:1036300006C08091E30087FD02C081E001C084E004
+:10364000809385040E9459158091E80083FF0AC089
+:103650008091E800877F8093E8008091EB00806292
+:103660008093EB00AA960FB6F894DEBF0FBECDBFD5
+:10367000DF91CF911F9108950895CF938091850494
+:103680008823A1F0C091E900CF709091EC00892FC0
+:10369000817090FD80E8C82B1092E9008091E800CD
+:1036A00083FD0E94EB19CF70C093E900CF9108957C
+:1036B00090930304809302040895E0910204F09132
+:1036C0000304309721F00190F081E02D099480E00F
+:1036D0000895E0910204F0910304309721F00280F4
+:1036E000F381E02D09940895E0910204F091030420
+:1036F000309721F00480F581E02D09940895209100
+:103700000004309101048217930771F09093010433
+:1037100080930004E0910204F0910304309721F0BB
+:103720000680F781E02D099408952091FE033091E1
+:10373000FF038217930771F09093FF038093FE03BA
+:10374000E0910204F0910304309721F00084F185A8
+:10375000E02D0994089508950C94AB1B0E94322724
+:103760000E94F40C0E94B8270C946F2C5F926F9209
+:103770007F928F929F92AF92BF92CF92DF92EF9201
+:10378000FF920F931F93CF93DF9300D000D01F922F
+:10379000CDB7DEB70E94390D9DE0C92E94E0D92E39
+:1037A00003E010E0AA24A394B12C502E802F0E9495
+:1037B000B40D4C01F601729062906F016826792673
+:1037C00061147104A1F40150110978F78FEF898316
+:1037D0008A831B820E943B278160782F9D838C8384
+:1037E00049815A816B818D810E94661C38C080910D
+:1037F000620481FD0E94BD0D2BE030E07501022EB8
+:1038000002C0EE0CFF1C0A94E2F7C7018621972143
+:10381000892B09F129835A828E209F2091E08928E3
+:1038200009F490E09B830E943B278160782F9D8361
+:103830008C8349815A816B818D810E94661C000FA7
+:10384000111FF801EB5FFB4F80819181E826F9267B
+:10385000F182E08204C02150310980F6B4CF0E9489
+:10386000A729109104040E945D1B1817D1F00E9433
+:103870005D1B809304040F900F900F900F900F909A
+:10388000DF91CF911F910F91FF90EF90DF90CF903C
+:10389000BF90AF909F908F907F906F905F900C94AF
+:1038A000DE0C0F900F900F900F900F90DF91CF9143
+:1038B0001F910F91FF90EF90DF90CF90BF90AF904E
+:1038C0009F908F907F906F905F900895CF93DF933C
+:1038D000CDB7DEB72B970FB6F894DEBF0FBECDBFC6
+:1038E0004F83588769877A878B87DE01119686E038
+:1038F000FD0111928A95E9F785E0FE013796019066
+:103900000D928A95E1F749815A816B817C818D8185
+:103910009E810E94DD222B960FB6F894DEBF0FBE6B
+:10392000CDBFDF91CF910895CF93882309F4C2C012
+:10393000C82F823859F40E945D1B81FDBBC089E30A
+:103940000E94B7250E94842689E30CC0833879F44D
+:103950000E945D1B80FDAEC083E50E94B7250E94DA
+:10396000842683E50E94F925CF910C94842684381F
+:1039700059F40E945D1B82FD9DC087E40E94B7251B
+:103980000E94842687E4EECF8CEF8C0F813A48F4B6
+:103990008C2F0E94D72B81118DC08C2F0E94B725B0
+:1039A000E3CF80E28C0F883048F4C77081E001C01B
+:1039B000880FCA95EAF70E943D26D6CF8BE58C0F7B
+:1039C000833078F4C53A29F0C63A31F083E890E0C4
+:1039D00005C081E890E002C082E890E0CF910C94AD
+:1039E0007F1B88E58C0F833108F064C0C83A39F139
+:1039F000C93A41F1CA3A49F1CB3A51F1CC3A59F1BD
+:103A0000CD3A61F1C03B69F1CE3A71F1CF3A79F12B
+:103A1000C13B81F1C23B89F1C33B91F1C43B99F1B8
+:103A2000C53BA1F1C63BA9F1C73BB1F1C83BB9F118
+:103A3000C93BC1F1CA3BC9F180E090E038C082EED9
+:103A400090E035C089EE90E032C08AEE90E02FC061
+:103A500085EB90E02CC086EB90E029C087EB90E0EE
+:103A600026C08CEC90E023C08DEC90E020C083E871
+:103A700091E01DC08AE891E01AC082E991E017C088
+:103A800084E991E014C081E292E011C083E292E007
+:103A90000EC084E292E00BC085E292E008C086E2AC
+:103AA00092E005C087E292E002C08AE292E0CF9104
+:103AB0000C94951BCF910895882309F44BC082384C
+:103AC00059F40E945D1B81FF45C089E30E94B72520
+:103AD0000E94842689E30CC0833871F40E945D1B28
+:103AE00080FF38C083E50E94B7250E94842683E5C5
+:103AF0000E94F9250C948426843859F40E945D1B99
+:103B000082FF28C087E40E94B7250E94842687E4AC
+:103B1000EFCF9CEF980F913A58F390E2980F9830BE
+:103B200050F4877091E001C0990F8A95EAF7892FC8
+:103B30000E944326DFCF9BE5980F933020F480E06E
+:103B400090E00C947F1B885A833120F480E090E051
+:103B50000C94951B0895882321F00E943D260C9417
+:103B600084260895882321F00E9443260C948426FD
+:103B700008957F928F929F92AF92BF92CF92DF92E1
+:103B8000EF92FF920F931F93CF93DF931F92CDB7C6
+:103B9000DEB77C01C62E772EFC01058102950F70E1
+:103BA000128111110E945A260E94B025882379F0B3
+:103BB000112369F080E28C0D883048F082E00E9489
+:103BC00099250E94B02591E0D82ED92601C0D12C8C
+:103BD000E72DE295EF70F0E0E159FF4F0C940031D2
+:103BE000872D807F072D0F70882311F00295007FAD
+:103BF000112389F0002309F499C180E28C0D8830EB
+:103C000020F4802F0E943D2603C0802F0E944D2665
+:103C10000E9484268BC18C2D0E945C1D002309F418
+:103C2000C3C180E28C0D883020F4802F0E9443268F
+:103C300003C0802F0E9453260E948426B5C1872D81
+:103C4000807F972D9F70803211F4892F03C0892FB8
+:103C50008295807FCC2021F0F1E0CF16A1F01DC02D
+:103C6000112339F0002319F1013009F50E946D2666
+:103C70009BC1002319F0013009F496C189830E9489
+:103C80007026898110C1112321F0063008F08CC103
+:103C90000EC0053008F088C106C1112359F0002379
+:103CA00031F0F701958190FF41C19F7095830E948B
+:103CB000AB1D7AC1002309F4F6C03EC1872D86955D
+:103CC0008695837090E0009719F0019761F06CC1C0
+:103CD000112321F08C2D972D937002C080E090E08D
+:103CE0000E947F1B61C1112321F08C2D972D9370B1
+:103CF00002C080E090E00E94951B56C18C2D1123DC
+:103D000019F00E94AF2802C00E9417290E949C2926
+:103D10004BC1872D837009F052C0111145C18C2D04
+:103D2000829586958770880F880F9C2D9F70892EAD
+:103D3000912CA12CB12C082E04C0880C991CAA1C13
+:103D4000BB1C0A94D2F7C4FE14C00FE010E020E0C0
+:103D500030E0B901A80104C0440F551F661F771F4A
+:103D60008A95D2F7CB01BA016095709580959095B0
+:103D700003C060E070E0CB01272D269526952370C7
+:103D800030E02230310569F02330310589F06829AF
+:103D900079298A299B292130310571F00E94252437
+:103DA00003C1682979298A299B290E944124FCC0E2
+:103DB0000E942524C501B4010E940924F5C01123E5
+:103DC00019F0872D817001C08695882309F4ECC015
+:103DD0008C2D829586958770880F880F9C2D9F70FB
+:103DE000892E912CA12CB12C082E04C0880C991C72
+:103DF000AA1CBB1C0A94D2F7C4FE14C00FE010E04A
+:103E000020E030E0B901A80104C0440F551F661F2F
+:103E1000771F8A95D2F7CB01BA016095709580958E
+:103E2000909503C060E070E0CB01272D2695269584
+:103E30002370422F50E04230510569F04330510564
+:103E400089F0682979298A299B294130510571F027
+:103E50000E94FF24A9C0682979298A299B290E94E8
+:103E60001B25A2C00E94FF24C501B4010E94E324C7
+:103E70009BC08C2D90E0FC01E05EF109E531F1057D
+:103E800008F050C0E158FF4F0C9400310C2D0F701A
+:103E9000872D8F71112321F00E947C24802F07CF62
+:103EA0000E949D24802F0E94B21D7EC0112341F0EC
+:103EB000053008F079C0872D8F710E94C22474C02C
+:103EC000063008F071C0F7CF112339F0872D8F71BC
+:103ED0000E947C2469C01123C9F3872D8F710E9431
+:103EE0009D2462C0112329F0872D8F710E946724C1
+:103EF0005BC00E945D2458C0112351F0172D1F7123
+:103F0000812F0E947C2463E0812F0E9490254CC069
+:103F100081E00E949925023008F446C082E00E94A8
+:103F2000992542C0112331F0002381F28C2D0E948B
+:103F3000941C3AC0002389F28C2D0E945C1D34C071
+:103F4000472D4F706C2DC7010E941C060E948123D3
+:103F50002BC0111129C0472D4F7050E04230510540
+:103F6000B9F04CF44115510581F041305105E1F4AF
+:103F70000E94972C19C04330510569F04430510517
+:103F800099F48C2D0E94E92C0FC00E94802C0CC04B
+:103F90000E94B32C09C00E94C62C06C0472D4F704A
+:103FA0006C2DC7010E944E0CDD20F9F00E948C257B
+:103FB00080FD1BC0F70112820E9486250E947C248E
+:103FC000C7010E9404200E9486250F90DF91CF91A7
+:103FD0001F910F91FF90EF90DF90CF90BF90AF9027
+:103FE0009F908F907F900C949D240F90DF91CF91A4
+:103FF0001F910F91FF90EF90DF90CF90BF90AF9007
+:104000009F908F907F9008950F931F93CF93DF938E
+:10401000EC01888199812B813C81232BB9F09F3F52
+:1040200011F48F3F99F0CE010E94BB07882371F0F5
+:10403000688179818A810E9482258C010E943725BE
+:104040000E94FE23B801CE010E94B91DDF91CF91DD
+:104050001F910F9108950E945A260E946A260E947D
+:104060002F260E9484260E944D2A0E949C2980E0CF
+:1040700090E00E947F1B80E090E00C94951B0E94D2
+:104080004A260C942B200E947725292F22952F70E9
+:1040900030E02C3031054CF42A3031056CF42250DC
+:1040A000310922303105A8F407C02C30310569F000
+:1040B0002F30310551F00DC0803F69F018F4803E7B
+:1040C00040F409C0843F29F406C093FB882780F997
+:1040D000089580E0089581E00895CF93DF9300D0A4
+:1040E00000D01F92CDB7DEB70F900F900F900F90BA
+:1040F0000F90DF91CF910895CF93DF9300D000D040
+:1041000000D0CDB7DEB726960FB6F894DEBF0FBE4F
+:10411000CDBFDF91CF9108951F93CF93DF93C091CF
+:104120000D0416E080910E04C81799F0D0E01C9F92
+:10413000F0011D9FF00D1124E15FFB4F4081518183
+:1041400062817381848195810E947C202196C77051
+:10415000E9CFDF91CF911F91089540913F04509195
+:104160004004609141047091420480914304909115
+:1041700044040C947C208091440482958F7009F053
+:1041800054C080914104882309F44FC080910D04EC
+:10419000A0910E0460913F0470914004409142044C
+:1041A00050914304B6E08A1709F43FC090E04115EE
+:1041B0005105C1F17F3F11F46F3FA1F1B89FF001AC
+:1041C000B99FF00D1124E15FFB4F218172132AC0CA
+:1041D0002081621327C02281211124C023813481D0
+:1041E0002417350710F421503109241B350B283CC6
+:1041F0003105C0F4209144042F70206120934404C1
+:1042000026E0289FF001299FF00D1124EC5EFB4F62
+:1042100080818F70806180838FE394E00E9404200E
+:104220000C948C2001968770BECF0895CF92DF92B8
+:10423000EF92FF920F931F93CF93DF93CDB7DEB72B
+:1042400062970FB6F894DEBF0FBECDBF8C0185E03C
+:10425000F801DE011D9601900D928A95E1F7D801D3
+:104260004C9111965C91119712966C91129713963E
+:10427000CD90DC90149730913F0470914004809170
+:10428000420490914304009709F46BC17F3F19F4F5
+:104290003F3F09F466C1E0904104EE2009F4C0C03C
+:1042A00020914404C816D90628F0F601E81BF90B42
+:1042B000CF0104C0809590958C0D9D1DFF24F39433
+:1042C000883C910578F0F12C207F09F0C6C07C2D48
+:1042D000D98AC88A89890E946D208FE394E00E9460
+:1042E0000420B1C0822F807F09F046C0751314C02E
+:1042F000341312C0611110C02F7020612093440448
+:104300000E94AD208FE394E00E9404208091440439
+:10431000D80115968C932EC0CD2819F15F3F11F46A
+:104320004F3FF9F0F62E61111CC080910D042091D1
+:104330000E0436E0821709F45AC090E0389FF0016D
+:10434000399FF00D1124E15FFB4F7181571306C0B7
+:104350007081471303C07281711103C00196877089
+:10436000E9CFF62E662309F418C1809144048160D8
+:1043700080934404F12C11C1751308C0341306C096
+:10438000611104C080914404D801C3C04D875E8789
+:104390008D859E856A8B0E9443206A898823E1F17E
+:1043A0006623D1F120914404822F82958F7090E092
+:1043B000029774F080913F049091400498878F8316
+:1043C0001986DB86CA862C87CE0107960E940420B8
+:1043D00086E0F801AFE3B4E001900D928A95E1F731
+:1043E0000E94BB200E94AD20FF24F394D6C04D87CD
+:1043F0005E878D859E850E947725292F22952F70B7
+:1044000030E0223031050CF0BCC09F7009F0B6C01E
+:10441000805E883008F4C1C0C8010E940420E4CF47
+:10442000C816D90608F453C0F601E81BF90BCF01F2
+:10443000883C910508F450C0F12C7C2DD98AC88A9B
+:1044400089890E946D20EFE3F4E086E0DF011D9290
+:104450008A95E9F70E94AD20A0C0751314C03413EB
+:1044600012C0611110C080914404F8018583C80115
+:104470000E94042086E0EFE3F4E0DF011D928A95BC
+:10448000E9F7FE2C8AC04D875E878D859E856A8BF5
+:104490000E9443206A89882309F4BECF662309F469
+:1044A000BBCF20914404822F82958F7090E00297B9
+:1044B0000CF48ECF80913F04909140049A838983BD
+:1044C0001B82DD82CC822E83CE0101967FCF809528
+:1044D00090958C0D9D1DACCFF62E662309F49CCFD4
+:1044E00075132EC034132CC02091440420FD1FC02E
+:1044F000822F82958F70D9F0D80115962C9315973D
+:104500008F3049F08F5F982F9295907F822F8F7018
+:10451000892B15968C93C8010E94042086E0F8012F
+:10452000AFE3B4E001900D928A95E1F793CF86E076
+:10453000F801AFE3B4E001900D928A95E1F72DC048
+:104540004D875E878D859E850E944320811140CFD7
+:1045500080914404816080934404C8010E94042037
+:104560001CC0662309F458CF4D875E878D859E85D4
+:104570000E944320882309F44FCF2ACF811148CFCE
+:104580000CC0243031050CF047CF9F7009F440CFA8
+:10459000F8019581907F09F03BCF8F2D62960FB681
+:1045A000F894DEBF0FBECDBFDF91CF911F910F9169
+:1045B000FF90EF90DF90CF9008951F93CF93DF93FC
+:1045C000CDB7DEB72C970FB6F894DEBF0FBECDBFC8
+:1045D0004F83588769877A878B879C87CE01079698
+:1045E0000E941621882369F08F8198852A853B8552
+:1045F000232BF1F19F3F09F063C08F3F09F060C0AA
+:1046000037C086E0FE013796DE01119601900D92CB
+:104610008A95E1F76F817885EA85FB85309741F1CE
+:104620007F3F11F46F3F21F120910E0430E0C9016A
+:1046300001968770992740910D0450E084179507E3
+:1046400009F447C069837A83FD83EC8396E0929FE7
+:10465000D001939FB00D1124A15FBB4FFE01319695
+:1046600001900D929A95E1F780930E040E948C20A0
+:1046700016E080910D0490910E048917C1F1189FE6
+:10468000C0011124815F9B4F0E941621882379F17C
+:10469000E0910D041E9FF0011124E15FFB4F40816A
+:1046A000518162817381848195810E947C208091F7
+:1046B0000D0490E001968770992780930D04D9CF5F
+:1046C0004F81588569857A858B859C850E947C20E1
+:1046D000CFCF0E943F2010920E0410920D04EFE302
+:1046E000F4E086E0DF011D928A95E9F7C1CF2C96B0
+:1046F0000FB6F894DEBF0FBECDBFDF91CF911F91F3
+:104700000895EF92FF920F931F93CF93DF938C0145
+:10471000009709F46CC0F12CEE24E394E801219693
+:10472000F8018491843740F4843008F051C081301E
+:1047300081F0823019F15BC0853709F444C0A8F1DB
+:104740009CE7980F903708F052C08F770E945C1D4D
+:1047500041C00E5F1F4FFE01C49180E28C0F883074
+:1047600048F4C7708E2D01C0880FCA95EAF70E94E1
+:104770005D2614C08C2F0E94941C2DC00E5F1F4F0D
+:10478000FE01C49180E28C0F883058F4C7708E2DE2
+:1047900001C0880FCA95EAF70E9463260E9484260A
+:1047A0001AC08C2F0E945C1D16C00E5F1F4FFE01A9
+:1047B000C491CC2381F08FE99FE00197F1F700C00D
+:1047C0000000C150F6CF0E5F1F4FFE01F49003C0F2
+:1047D0000E94941C8E018F2D882309F49FCFEFE94E
+:1047E000FFE03197F1F700C000008150F5CFDF9175
+:1047F000CF911F910F91FF90EF90089508956093CE
+:10480000490470934A0480934B0490934C040C9495
+:104810002B200F931F930091490410914A0420917B
+:104820004B0430914C04DC01CB01802B912BA22B4B
+:10483000B32B8093490490934A04A0934B04B09304
+:104840004C041F910F910C942B200F931F930091F8
+:10485000490410914A0420914B0430914C04DC012E
+:10486000CB0180239123A223B32380934904909307
+:104870004A04A0934B04B0934C041F910F910C94E5
+:104880002B200F931F930091490410914A0420910B
+:104890004B0430914C04DC01CB0180279127A227E7
+:1048A000B3278093490490934A04A0934B04B09398
+:1048B0004C041F910F910C942B20109245041092E0
+:1048C000460410924704109248040C942B2041E0B7
+:1048D00050E060E070E004C0440F551F661F771F72
+:1048E0008A95D2F740934504509346046093470459
+:1048F000709348040C942B2041E050E060E070E09D
+:1049000004C0440F551F661F771F8A95D2F7809108
+:10491000450490914604A0914704B0914804482B67
+:10492000592B6A2B7B2B409345045093460460938C
+:104930004704709348040C942B2041E050E060E061
+:1049400070E004C0440F551F661F771F8A95D2F789
+:1049500040955095609570958091450490914604DE
+:10496000A0914704B0914804482359236A237B232C
+:104970004093450450934604609347047093480461
+:104980000C942B2041E050E060E070E004C0440F44
+:10499000551F661F771F8A95D2F780914504909125
+:1049A0004604A0914704B0914804482759276A2734
+:1049B0007B274093450450934604609347047093CB
+:1049C00048040C942B200F931F93009145041091E1
+:1049D00046042091470430914804DC01CB01802B30
+:1049E000912BA22BB32B8093450490934604A09364
+:1049F0004704B09348041F910F910C942B200F9300
+:104A00001F93009145041091460420914704309172
+:104A10004804DC01CB0180239123A223B32380939C
+:104A2000450490934604A0934704B09348041F9113
+:104A30000F910C942B200F931F930091450410911C
+:104A400046042091470430914804DC01CB018027C3
+:104A50009127A227B3278093450490934604A093FF
+:104A60004704B09348041F910F910C942B20089594
+:104A7000CF92DF92EF92FF920F931F93CF93DF932A
+:104A80008C01C0904904D0904A04E0904B04F0900F
+:104A90004C048091450490914604A0914704B09144
+:104AA0004804C82AD92AEA2AFB2ACFE1D0E0D70154
+:104AB000C6010C2E04C0B695A795979587950A94C4
+:104AC000D2F780FF06C0B8018C2F0E94AD0A019773
+:104AD00021F4219760F780E001C08C2FDF91CF9106
+:104AE0001F910F91FF90EF90DF90CF900895CF939B
+:104AF000DF93EC010E943825BE010E94AD0ADF91D0
+:104B0000CF910895CB010E947725089580914D049F
+:104B1000859585958595089580914D0487700895B4
+:104B200098E0899F90011124262B20934D040C942A
+:104B30007C2420914D048095822380934D04982FEE
+:104B4000977069F430E0482F552747FD509524179A
+:104B5000350729F08595859585950C949D240895B4
+:104B600090914D04977081E009F480E00895909150
+:104B70008502992321F090918602911109C020911C
+:104B8000870230918802F90132969FEF40E01FC002
+:104B9000982F9695969596959F3050F5E0918702BF
+:104BA000F0918802E90FF11D877021E030E0A90142
+:104BB00002C0440F551F8A95E2F7CA019181892BE3
+:104BC000818308959F3F39F04F5F4E3041F05191FE
+:104BD0005813F8CF0DC05111F7CF942FF5CF9F3F49
+:104BE00039F0F901E90FF11D97FDFA9582830895D7
+:104BF000089590918502992321F090918602911158
+:104C000009C02091870230918802F9013296205F15
+:104C10003F4F1FC0982F9695969596959F30F0F42C
+:104C2000E0918702F0918802E90FF11D877021E081
+:104C300030E0A90102C0440F551F8A95E2F7CA016E
+:104C4000809591818923818308953196E217F30736
+:104C500029F090819813F9CF1082F7CF089581E061
+:104C600090E0E0918702F0918802E80FF91F10822E
+:104C7000019680319105A9F7089590916104892BDF
+:104C800080936104089580959091610489238093B5
+:104C90006104089510926104089590916004892B35
+:104CA0008093600408958095909160048923809397
+:104CB0006004089510926004089590915F04892B18
+:104CC00080935F040895809590915F048923809379
+:104CD0005F04089510925F04089580934E04089530
+:104CE00010924E0408958091870290918802FC01F1
+:104CF00031969C01205F3F4F80E0919191118F5F31
+:104D0000E217F307D1F70895E0918702F091880246
+:104D1000809161048083E0918702F0918802908104
+:104D200080916004892B8083E0918702F091880252
+:104D3000908180915F04892B808380914E04882329
+:104D400061F0E0918702F09188029081892B808345
+:104D50000E947326811110924E04809187029091D7
+:104D600088020C94691B20E0009739F0AC01415097
+:104D70005109842395232F5FF7CF822F08958091C7
+:104D80008504843039F11092630420E488E190E0D6
+:104D90000FB6F894A895809360000FBE2093600032
+:104DA00080E00E94770580E00E94DE0C83B7817F5F
+:104DB000846083BF83B7816083BF7894889583B70D
+:104DC0008E7F83BF88E10FB6F894809360001092C5
+:104DD00060000FBE08950895089580E00E94770551
+:104DE0000E94EB260E94390D0E94EC260E94BE0D07
+:104DF00091E0811101C090E0892F08950E943F2029
+:104E000080E00E9477050E946F2C0E945D1B0C942D
+:104E1000DE0C1F920F920FB60F9211248F939F9367
+:104E2000AF93BF9380916304811113C08091640498
+:104E300090916504A0916604B09167044196A11D0C
+:104E4000B11D8093640490936504A0936604B093AD
+:104E50006704BF91AF919F918F910F900FBE0F90FC
+:104E60001F90189582E084BD93E095BD9AEF97BDA1
+:104E700080936E0008952FB7F89480916404909108
+:104E80006504A0916604B09167042FBF0895CF9286
+:104E9000DF92EF92FF920F931F932FB7F8944091F8
+:104EA00064045091650460916604709167042FBF9B
+:104EB0006A017B01EE24FF248C0120E030E0C01663
+:104EC000D106E206F30610F4415051099A01281B5D
+:104ED000390BC9011F910F91FF90EF90DF90CF9098
+:104EE00008951F920F920FB60F9211248F939F93E4
+:104EF000AF93BF938091640490916504A091660480
+:104F0000B09167040196A11DB11D80936404909334
+:104F10006504A0936604B0936704BF91AF919F911D
+:104F20008F910F900FBE0F901F9018950E945A18E6
+:104F3000F8942FEF87EA91E6215080409040E1F706
+:104F400000C0000087E090EBDC0180938F04909319
+:104F50009004A0939104B09392049CE088E10FB672
+:104F6000F894A895809360000FBE90936000FFCFE7
+:104F70000E94FA27811102C00E94D6270E940528AC
+:104F8000809362040E94122890E0909374048093AE
+:104F9000730487FB882780F9809386020E94092882
+:104FA000682F70E080E090E00C94FF236DEE7EEFC0
+:104FB00080E090E00E94263160E082E090E00E9474
+:104FC000143160E083E090E00E94143160E084E0FE
+:104FD00090E00E94143160E085E090E00E9414317E
+:104FE00060E086E090E00E9414316FEF87E090E08F
+:104FF0000C94143180E090E00E940E3121E08D3E4F
+:105000009E4F09F020E0822F089582E090E00C94FA
+:10501000063183E090E00C940631682F83E090E045
+:105020000C94143184E090E00C940631682F84E0F5
+:1050300090E00C94143186E090E00C940631682FD7
+:1050400086E090E00C94143187E090E00C940631F7
+:10505000682F87E090E00C94143180916A0480FFFF
+:105060000BC060918C0285E0689FB001112475959A
+:105070006795759567952BC081FF09C060918C027B
+:1050800085E0689FB00111247595679520C082FF67
+:1050900007C060918C0285E0689FB001112417C0A1
+:1050A00090916B049923D1F060918B02961788F749
+:1050B00020918C0285E0289F90011124929FA001ED
+:1050C000939F500D112470E0CA010E94EC306038AB
+:1050D000710540F46115710539F002C065E070E0BA
+:1050E000862F08958FE7089581E0089580916A04DE
+:1050F00080FF08C060918A0270E07595679575958C
+:10510000679521C081FF06C060918A0270E07595A5
+:10511000679519C082FF04C060918A0270E010C0D8
+:1051200090916B049923C1F0609189029617A0F7C2
+:1051300080918A02899FC001112470E00E94EC30A6
+:105140006038710528F46115710521F0862F0895E6
+:105150008FE7089581E0089561E070E0F4CF803F2B
+:1051600021F40E942D28819504C0813F29F40E94DA
+:105170002D2880936E040895823F21F40E942D28EB
+:10518000819504C0833F29F40E942D2880936D04EB
+:105190000895893F19F40E94762805C08A3F31F4AA
+:1051A0000E947628819580936F0408958B3F21F4A7
+:1051B0000E947628819504C08C3F29F40E947628AD
+:1051C000809370040895843F21F480916C04816081
+:1051D00017C0853F21F480916C04826011C0863F26
+:1051E00021F480916C0484600BC0873F21F480918E
+:1051F0006C04886005C0883F31F480916C04806144
+:1052000080936C0408958D3F21F480916A0481603D
+:105210000BC08E3F21F480916A04826005C08F3FED
+:1052200029F480916A04846080936A040895803F21
+:1052300039F480916E0487FF6CC010926E0469C0CF
+:10524000813F29F480916E041816BCF362C09091DE
+:105250006D04823F29F497FF5CC010926D0459C021
+:10526000833F19F41916CCF354C0893F41F480915F
+:105270006F0418160CF04DC010926F044AC08A3F9C
+:1052800029F480916F0487FF44C0F6CF8B3F39F437
+:105290008091700487FF3DC0109270043AC08C3F2B
+:1052A00029F4809170041816BCF333C0843F21F4B4
+:1052B00080916C048E7F17C0853F21F480916C042F
+:1052C0008D7F11C0863F21F480916C048B7F0BC0D1
+:1052D000873F21F480916C04877F05C0883F31F4BB
+:1052E00080916C048F7E80936C0413C08D3F21F4F9
+:1052F00080916A048E7F0BC08E3F21F480916A04F6
+:105300008D7F05C08F3F29F480916A048B7F809345
+:105310006A0480916D0481110EC080916E04811128
+:105320000AC080916F04811106C0809170048111C0
+:1053300002C010926B0408958CE694E00E94741BE6
+:105340000E943B27909369048093680408951F93FB
+:10535000CF93DF9380916804909169040E9447275E
+:10536000AC0190916B04992321F020918D0230E0E3
+:1053700006C020918E028AE0289F900111244217D6
+:10538000530708F486C080916D04C0916E04D091DB
+:105390006F0410917004811107C0C11176C0D11142
+:1053A00074C0111172C075C09F3F19F09F5F909338
+:1053B0006B04181624F40E942D2880936D048091AC
+:1053C0006D0487FF05C00E942D28819580936D0490
+:1053D0001C1624F40E942D2880936E0480916E0484
+:1053E00087FF05C00E942D28819580936E046091EF
+:1053F0006D04662339F1C0916E04CC2319F177272F
+:1054000067FD7095872F972F0E940E2E23E333E3BD
+:1054100043E35FE30E941E2F0E94DB2D60936D0427
+:105420006C2F772767FD7095872F972F0E940E2E80
+:1054300023E333E343E35FE30E941E2F0E94DB2D4F
+:1054400060936E041D1624F40E94762880936F04E6
+:1054500080916F0487FF05C00E9476288195809314
+:105460006F04111624F40E947628809370048091B2
+:10547000700487FF05C00E94762881958093700490
+:10548000DF91CF911F910C949C299F3F09F08ECF03
+:1054900096CFDF91CF911F910895ECE6F4E085E07F
+:1054A000DF011D928A95E9F710926B0410926A044D
+:1054B0000895833081F128F4813059F08230D1F0A1
+:1054C0000895853009F449C0B8F1863009F456C012
+:1054D000089580918E02262F30E0280F311D2F3F36
+:1054E000310524F4680F60938E0208958FEF809346
+:1054F0008E02089580918D02262F30E0280F311DF5
+:105500002F3F310524F4680F60938D0208958FEFCB
+:1055100080938D02089580918C02262F30E0280F11
+:10552000311D2F3F310524F4680F60938C020895DC
+:105530008FEF80938C02089580918B02262F30E0AC
+:10554000280F311D2F3F310524F4680F60938B0223
+:1055500008958FEF80938B02089580918A02262F01
+:1055600030E0280F311D2F3F310524F4680F609380
+:105570008A0208958FEF80938A02089580918902AC
+:10558000262F30E0280F311D2F3F310524F4680FFE
+:105590006093890208958FEF809389020895833084
+:1055A00011F128F4813049F0823091F0089585306E
+:1055B00081F120F18630C1F1089580918E02681743
+:1055C00020F4861B80938E02089510928E02089517
+:1055D00080918D02681720F4861B80938D020895B8
+:1055E00010928D02089580918C02681720F4861B1A
+:1055F00080938C02089510928C02089580918B0202
+:10560000681720F4861B80938B02089510928B02FA
+:10561000089580918A02681720F4861B80938A027D
+:10562000089510928A02089580918902681720F4E3
+:10563000861B8093890208951092890208950F9322
+:105640001F93873208F048C08E3108F08DC080313A
+:1056500009F477C008F5873009F461C068F4863032
+:1056600009F09DC080916204817F8E7F80936204E7
+:1056700081E08093720494C08B3009F489C08E302D
+:1056800009F08DC08091620482FB222720F991E00D
+:10569000922790FB82F95EC0863109F479C060F4EC
+:1056A000813109F07CC00E943F209091860281E008
+:1056B0008927809386026CC0893109F469C08B31D7
+:1056C00009F06DC08091620481FB222720F991E0EE
+:1056D000922790FB81F93EC0883309F459C050F4F9
+:1056E000893209F457C0853309F454C0873209F46C
+:1056F00051C055C0833409F44DC028F48A3308F4EE
+:105700004EC0895332C0883409F049C00E943F20FE
+:105710000E94EE0D0E94F1060E94962739C09091DA
+:105720006204892F8095817080FB90F929F0966042
+:1057300098609093620434C0997F977F909362043D
+:1057400027C08091620483FB222720F991E09227F1
+:1057500090FB83F9809362049923D1F080916204D5
+:1057600081608093620414C08D5141E050E060E09C
+:1057700070E08A019B0104C0000F111F221F331F1C
+:105780008A95D2F7C901B8010E94FF230E943F20E9
+:1057900081E006C061E070E080E090E0F5CF80E05D
+:1057A0001F910F91089580E0089580E00895CF93B0
+:1057B000C82F80917204813069F018F08230C9F1ED
+:1057C00084C0E0918702F09188028081823209F0E2
+:1057D0007EC007C0E0918702F0918802808182320A
+:1057E00061F48C2F0E94D32B811104C08C2F0E9456
+:1057F0001F2B1DC081E090E01AC08C2F0E94D52B7A
+:10580000811114C0C43179F048F4CB3079F0C03143
+:1058100009F061C082E08093720408C0C93219F0B7
+:10582000C83321F058C01092720455C081E08170D5
+:1058300054C0C93291F120F5C43179F1B0F4C730C8
+:1058400009F047C08EE180938E0282E380938D023F
+:105850008AE080938C0284E180938B0288E08093BD
+:105860008A0288E28093890234C0CE51C63088F51E
+:10587000EC2FF0E0EA5DFC4F80818093710429C039
+:10588000CE34E9F020F4CB3421F56AE013C0C13501
+:1058900079F0C235F1F461E00DC080917104882384
+:1058A00019F01092710415C081E08093720415C044
+:1058B00061E006C0809171040E94592A0AC06AE022
+:1058C000809171040E94CF2A04C01092720480E07B
+:1058D00004C081E002C080E0AACFCF9108950E9469
+:1058E000FA27811102C00E94D6270E941B288093AC
+:1058F0008E0480FF02C0869501C080E00C9477057D
+:1059000080918E04982F9695292F30E02330310511
+:105910004CF49F5F990F8170892B816080938E0476
+:105920000E941F2880918E0486950C9477058091A3
+:105930008E04982F969591F09158990F8170892B2C
+:1059400080938E048E7F91E009F490E080918E0424
+:1059500090FB80F980938E040E941F2880918E0412
+:1059600086950C94770580918E04982F909590FBE6
+:1059700080F980938E040E941F2880918E0480FFFE
+:1059800002C0869501C080E00C94770590918E044A
+:10599000892F86958F5F8F779170843028F4880FD8
+:1059A000892B80938E0402C090938E0480918E0484
+:1059B0008E7F91E009F490E080918E0490FB80F955
+:1059C00080938E040E941F2880918E0486950C94EB
+:1059D000770520918E04922F96958927982F990FFD
+:1059E000822F8170892B80938E048E7F91E009F441
+:1059F00090E080918E0490FB80F980938E040E9449
+:105A00001F2880918E0486950C94770580918E04D2
+:105A1000869508955058BB27AA270ED0D1C1C2D170
+:105A200030F0C7D120F031F49F3F11F41EF4B7C11C
+:105A30000EF4E095E7FB9FC1E92FD3D180F3BA17AD
+:105A4000620773078407950718F071F49EF5EBC1A0
+:105A50000EF4E0950B2EBA2FA02D0B01B901900189
+:105A60000C01CA01A0011124FF27591B99F0593FCD
+:105A700050F4503E68F11A16F040A22F232F342F15
+:105A80004427585FF3CF469537952795A795F04063
+:105A90005395C9F77EF41F16BA0B620B730B840B78
+:105AA000BAF09150A1F0FF0FBB1F661F771F881F30
+:105AB000C2F70EC0BA0F621F731F841F48F4879588
+:105AC00077956795B795F7959E3F08F0B3CF939577
+:105AD000880F08F09927EE0F97958795089527D19D
+:105AE00008F481E008950CD06BC163D140F05AD125
+:105AF00030F021F45F3F19F03EC1511195C14FC103
+:105B000070D198F39923C9F35523B1F3951B550B25
+:105B1000BB27AA2762177307840738F09F5F5F4F80
+:105B2000220F331F441FAA1FA9F333D00E2E3AF0C1
+:105B3000E0E830D091505040E695001CCAF729D0DB
+:105B4000FE2F27D0660F771F881FBB1F261737072A
+:105B50004807AB07B0E809F0BB0B802DBF01FF275A
+:105B600093585F4F2AF09E3F510568F004C15CC115
+:105B70005F3FECF3983EDCF3869577956795B79594
+:105B8000F7959F5FC9F7880F911D9695879597F9AF
+:105B90000895E1E0660F771F881FBB1F6217730728
+:105BA0008407BA0720F0621B730B840BBA0BEE1F3D
+:105BB00088F7E095089504D06894B11135C108952F
+:105BC00018D188F09F5790F0B92F9927B751A0F0BE
+:105BD000D1F0660F771F881F991F1AF0BA95C9F781
+:105BE00012C0B13081F01FD1B1E008951CC1672F00
+:105BF000782F8827B85F39F0B93FCCF38695779531
+:105C00006795B395D9F73EF4909580957095619519
+:105C10007F4F8F4F9F4F0895E89409C097FB3EF444
+:105C200090958095709561957F4F8F4F9F4F9923E9
+:105C3000A9F0F92F96E9BB279395F6958795779567
+:105C40006795B795F111F8CFFAF4BB0F11F460FF27
+:105C50001BC06F5F7F4F8F4F9F4F16C0882311F07F
+:105C600096E911C0772321F09EE8872F762F05C093
+:105C7000662371F096E8862F70E060E02AF09A952E
+:105C8000660F771F881FDAF7880F9695879597F923
+:105C9000089588D018F011F08CD038F480C0C4C0BA
+:105CA000E92F9FD0B0F35523C9F3E7FB62177307C1
+:105CB00084079507A8F199F3E92FFF2788232AF095
+:105CC0003197660F771F881FDAF7952F55274423E2
+:105CD00032F091505040220F331F441FD2F7BB27A0
+:105CE000E91BF50B621B730B840BB109C1F222F4A3
+:105CF000620F731F841FB11D31972AF0660F771F43
+:105D0000881FBB1FEFCF915050405AF041F08823BD
+:105D100032F0660F771F881F91505040C1F793955E
+:105D200030C08695779567959F5FD9F7F8CF990F23
+:105D30000008550FAA0BE0E8FEEF16161706E80755
+:105D4000F907C0F012161306E407F50798F0621B76
+:105D5000730B840B950B39F40A2661F0232B242B4B
+:105D6000252B21F408950A2609F4A140A6958FEF6A
+:105D7000811D811D089597F99F6780E870E060E0BC
+:105D800008959F3F31F0915020F48795779567955E
+:105D9000B795880F911D9695879597F908959FEF70
+:105DA00080EC089500240A941616170618060906B2
+:105DB000089500240A941216130614060506089581
+:105DC000092E0394000C11F4882352F0BB0F40F409
+:105DD000BF2B11F460FF04C06F5F7F4F8F4F9F4F49
+:105DE000089557FD9058440F551F59F05F3F71F0CB
+:105DF0004795880F97FB991F61F09F3F79F0879532
+:105E00000895121613061406551FF2CF4695F1DFBA
+:105E100008C0161617061806991FF1CF869571054A
+:105E2000610508940895E894BB2766277727CB017E
+:105E300097F908957CDF08F48FEF08950BD0C0CF59
+:105E4000B1DF28F0B6DF18F0952309F094CFA7CF83
+:105E50001124EACFC6DFA0F3959FD1F3950F50E050
+:105E6000551F629FF001729FBB27F00DB11D639F0C
+:105E7000AA27F00DB11DAA1F649F6627B00DA11DB2
+:105E8000661F829F2227B00DA11D621F739FB00D58
+:105E9000A11D621F839FA00D611D221F749F3327C8
+:105EA000A00D611D231F849F600D211D822F762F61
+:105EB0006A2F11249F5750408AF0E1F088234AF05E
+:105EC000EE0FFF1FBB1F661F771F881F91505040AA
+:105ED000A9F79E3F510570F04ECFA6CF5F3FECF380
+:105EE000983EDCF3869577956795B795F795E79596
+:105EF0009F5FC1F7FE2B880F911D9695879597F9A7
+:105F00000895FA01EE0FFF1F30962105310599F132
+:105F10006115710561F48038BFE39B0749F168940E
+:105F20009038810561F08038BFEF9B0741F09923DD
+:105F300042F5FF3FE1053105210511F1E894089490
+:105F4000E795D901AA2329F4AB2FBE2FF85FD0F330
+:105F500010C0FF5F70F4A695E0F7F73950F019F024
+:105F6000FF3A38F49F779F930CD00F9007FC90581E
+:105F700008953EF014CF60E070E080E89FE308955C
+:105F80004FE79F775F934F933F932F939ED02F912F
+:105F90003F914F915F9152DF05C019F40EF0EBCEA7
+:105FA00042CFFDCE26DFC8F39638C0F707F80F9230
+:105FB000E8942BE33AEA48EB5FE74EDF0F920F924B
+:105FC0000F924DB75EB70F92C0D0E8E2F1E016D065
+:105FD0004F915F91EF91FF91E595EE1FFF1F49F003
+:105FE000FE57E0684427EE0F441FFA95E1F741950C
+:105FF000550B32D00F9007FE26C00895DF93CF9344
+:106000001F930F93FF92EF92DF927B018C016894B4
+:1060100005C0DA2EEF011EDFFE01E894A59125915F
+:10602000359145915591AEF3EF0106DDFE019701E3
+:10603000A801DA9479F7DF90EF90FF900F911F910C
+:10604000CF91DF9108959B01AC0160E070E080E8A2
+:106050009FE349CD90CE95CECCDEE8F39923D9F3DA
+:10606000940F511DBBF39150504094F059F0882388
+:1060700032F0660F771F881F91505040C1F79E3F46
+:10608000510544F7880F911D9695879597F90895C6
+:106090005F3FACF0983E9CF0BB278695779567955F
+:1060A000B79508F4B1609395C1F7BB0F58F711F499
+:1060B00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE2E
+:1060C0000EF05FCE6CCE689456CE93DEC8F3992363
+:1060D000D1F3C6F3DF93CF931F930F93FF92C92F92
+:1060E000DD2788232AF02197660F771F881FDAF7AC
+:1060F00020E030E040E85FEB9FE3883920F0803E0D
+:1061000030F021968F7787DCE0E5F1E003C083DC97
+:10611000EDE7F1E073DF8B01BE01EC01FB2E6F5761
+:1061200071097595771F880B990B78DD28E132E7A7
+:1061300041E35FE38FDEAF2D9801AE01FF900F9139
+:106140001F91CF91DF9178DC3BCEFA01DC01AA0FE1
+:10615000BB1F9B01AC01BF5728F4222733274427DC
+:1061600050781FC0B75188F4AB2F0024469537955F
+:106170002795011CA395D2F3002069F0220F331F4D
+:10618000441FB395DAF30DD045CC61307105A0E81A
+:106190008A07B94630F49B01AC0166277727882728
+:1061A0009078309621F02083318342835383089581
+:1061B000AA1BBB1B51E107C0AA1FBB1FA617B7072D
+:1061C00010F0A61BB70B881F991F5A95A9F7809549
+:1061D0009095BC01CD01089597FB072E16F400940D
+:1061E00007D077FD09D00E94D83007FC05D03EF4D7
+:1061F000909581959F4F0895709561957F4F089573
+:10620000EE0FFF1F0590F491E02D0994F999FECF50
+:1062100092BD81BDF89A992780B50895A8E1B0E0B4
+:1062200042E050E00C942E31262FF999FECF92BD1A
+:1062300081BDF89A019700B4021639F01FBA20BD4B
+:106240000FB6F894FA9AF99A0FBE08950196272F7F
+:106250000E9415310C941431DC01CB01FC01F99939
+:10626000FECF06C0F2BDE1BDF89A319600B40D92A2
+:0C62700041505040B8F70895F894FFCF5B
+:10627C0052D02445000000410000DC4400000041E5
+:10628C0052D0A4440000404100005C440000004196
+:10629C0048F17644000000415C978A4400000041BC
+:1062AC001FD592440000004152D0A444000000418C
+:1062BC005CFFB844000000410AA7CF440000004135
+:1062CC000000DC44000000410AA7CF44000000415C
+:1062DC000000DC4400000041000000000000804091
+:1062EC0000005C45000040410000000000008040C0
+:1062FC0052D02445000040410AA7CF440000004181
+:10630C000000DC4400000041000000000000804060
+:10631C0052D02445000040410000000000008040A5
+:10632C0000005C45000040410AA7CF44000000413A
+:10633C000000DC4400000041000000000000804030
+:10634C0052D0244500004041000000000000804075
+:10635C000AA74F45000040410AA7CF440000004166
+:10636C000000DC4400000041000000000000804000
+:10637C0052D0244500000041000000000000804085
+:10638C005CFF384500000041000000000000804028
+:10639C0052D02445000000410AA7CF440000004120
+:1063AC000000DC44000000410000000000008040C0
+:1063BC0052D024450000804152D024450000404179
+:1063CC005C970A450000004152D0A44400000041F3
+:1063DC000000DC44000000415C970A450000A0412D
+:1063EC00640007000CFF0000003F646514F314D038
+:1063FC00149C14681401014F042808140A321E005E
+:10640C0002040507090B0C0E1011131517181A1C92
+:10641C001D1F2123242628292B2D2F3032343537CC
+:10642C00393B1F0F03764F5F6F7F496943790959D9
+:10643C0053633149803F5D8B803FF8BF803FCAE199
+:10644C00803F73ED803FCAE1803FF8BF803F5D8B9A
+:10645C00803F3149803F0000803FF16D7F3F75EAFE
+:10646C007E3F4C827E3F833F7E3F84287E3F833F2E
+:10647C007E3F4C827E3F75EA7E3FF16D7F3F000090
+:10648C00803F404D3639FA09AD0977093E09D108EC
+:10649C00EA0803091C0901020304050607080900A0
 :00000001FF
 :00000001FF

+ 1 - 1
keyboard/planck/keymaps/dzobert/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/keymaps/joe/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 #include "keymap_colemak.h"
 #include "keymap_colemak.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

+ 1 - 1
keyboard/planck/keymaps/kyle/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/keymaps/leo/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* BASE */
 [0] = { /* BASE */

+ 1 - 1
keyboard/planck/keymaps/lucas/keymap.c

@@ -8,7 +8,7 @@ The "Gaming" layer is mainly customized for CS:GO.
 If you have any question about this keymap feel free to shoot me a message on reddit!
 If you have any question about this keymap feel free to shoot me a message on reddit!
 */
 */
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 #include "keymap_extras/keymap_german.h"
 #include "keymap_extras/keymap_german.h"
 #include "backlight.h"
 #include "backlight.h"
 #include "debug.h"
 #include "debug.h"

+ 1 - 1
keyboard/planck/keymaps/max/keymap.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = { /* Qwerty */
 [0] = { /* Qwerty */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_brett.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( 
 [0] = KEYMAP( 

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_dotcom.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( 
 [0] = KEYMAP( 

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_jack.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( /* Jack */
 [0] = KEYMAP( /* Jack */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_joe.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( /* Joe qwerty */
 [0] = KEYMAP( /* Joe qwerty */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_matthew.c

@@ -20,7 +20,7 @@
 `-----------------------------------------------------------------------------------------------'
 `-----------------------------------------------------------------------------------------------'
 */
 */
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   /* 0: dvorak */
   /* 0: dvorak */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP(
 [0] = KEYMAP(

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_nathan.c

@@ -1,7 +1,7 @@
 // Author: Nathan Ross Powell <nathanrospowell@gmail.com>
 // Author: Nathan Ross Powell <nathanrospowell@gmail.com>
 // https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c
 // https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* 0: main layer
    /* 0: main layer

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_paul.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( /* Paul */
 [0] = KEYMAP( /* Paul */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_peasant.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [0] = KEYMAP( /* Native */
     [0] = KEYMAP( /* Native */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_reed.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 /*
 /*
  * BUILD:
  * BUILD:

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_sean.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [0] = KEYMAP( /* Matrix Dvorak */
     [0] = KEYMAP( /* Matrix Dvorak */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_shane.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 #include "action_layer.h"
 #include "action_layer.h"
 #include "action.h"
 #include "action.h"
 #include "action_util.h"
 #include "action_util.h"

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_simon.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( /* Jack */
 [0] = KEYMAP( /* Jack */

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_tim.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP(
 [0] = KEYMAP(

+ 1 - 1
keyboard/planck/old_keymap_files/common_keymaps/keymap_wilba.c

@@ -1,4 +1,4 @@
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 [0] = KEYMAP( /* Wilba */
 [0] = KEYMAP( /* Wilba */

+ 1 - 1
keyboard/planck/old_keymap_files/keymap_common.c

@@ -14,7 +14,7 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 */
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 
 
 /* translates key to keycode */
 /* translates key to keycode */

+ 1 - 1
keyboard/retro_refit/retro_refit.h

@@ -2,7 +2,7 @@
 #define RETRO_REFIT_H
 #define RETRO_REFIT_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include "led.h"
 #include "led.h"
 #include <stddef.h>
 #include <stddef.h>
 
 

+ 1 - 1
keyboard/satan/satan.h

@@ -2,7 +2,7 @@
 #define SATAN_H
 #define SATAN_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #include <stddef.h>
 #include <stddef.h>
 
 
 
 

+ 1 - 1
quantum/audio/audio.c

@@ -6,7 +6,7 @@
 #include <avr/io.h>
 #include <avr/io.h>
 #include "print.h"
 #include "print.h"
 #include "audio.h"
 #include "audio.h"
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 #include "eeconfig.h"
 #include "eeconfig.h"
 
 

+ 1 - 1
quantum/audio/audio_pwm.c

@@ -6,7 +6,7 @@
 #include <avr/io.h>
 #include <avr/io.h>
 #include "print.h"
 #include "print.h"
 #include "audio.h"
 #include "audio.h"
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 #include "eeconfig.h"
 #include "eeconfig.h"
 
 

+ 74 - 0
quantum/keycode_config.c

@@ -0,0 +1,74 @@
+#include "keycode_config.h"
+
+extern keymap_config_t keymap_config;
+
+uint16_t keycode_config(uint16_t keycode) {
+
+    switch (keycode) {
+        case KC_CAPSLOCK:
+        case KC_LOCKING_CAPS:
+            if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
+                return KC_LCTL;
+            }
+            return keycode;
+        case KC_LCTL:
+            if (keymap_config.swap_control_capslock) {
+                return KC_CAPSLOCK;
+            }
+            return KC_LCTL;
+        case KC_LALT:
+            if (keymap_config.swap_lalt_lgui) {
+                if (keymap_config.no_gui) {
+                    return KC_NO;
+                }
+                return KC_LGUI;
+            }
+            return KC_LALT;
+        case KC_LGUI:
+            if (keymap_config.swap_lalt_lgui) {
+                return KC_LALT;
+            }
+            if (keymap_config.no_gui) {
+                return KC_NO;
+            }
+            return KC_LGUI;
+        case KC_RALT:
+            if (keymap_config.swap_ralt_rgui) {
+                if (keymap_config.no_gui) {
+                    return KC_NO;
+                }
+                return KC_RGUI;
+            }
+            return KC_RALT;
+        case KC_RGUI:
+            if (keymap_config.swap_ralt_rgui) {
+                return KC_RALT;
+            }
+            if (keymap_config.no_gui) {
+                return KC_NO;
+            }
+            return KC_RGUI;
+        case KC_GRAVE:
+            if (keymap_config.swap_grave_esc) {
+                return KC_ESC;
+            }
+            return KC_GRAVE;
+        case KC_ESC:
+            if (keymap_config.swap_grave_esc) {
+                return KC_GRAVE;
+            }
+            return KC_ESC;
+        case KC_BSLASH:
+            if (keymap_config.swap_backslash_backspace) {
+                return KC_BSPACE;
+            }
+            return KC_BSLASH;
+        case KC_BSPACE:
+            if (keymap_config.swap_backslash_backspace) {
+                return KC_BSLASH;
+            }
+            return KC_BSPACE;
+        default:
+            return keycode;
+    }
+}

+ 21 - 0
quantum/keycode_config.h

@@ -0,0 +1,21 @@
+#include "eeconfig.h"
+#include "keycode.h"
+
+uint16_t keycode_config(uint16_t keycode);
+
+/* NOTE: Not portable. Bit field order depends on implementation */
+typedef union {
+    uint16_t raw;
+    struct {
+        bool swap_control_capslock:1;
+        bool capslock_to_control:1;
+        bool swap_lalt_lgui:1;
+        bool swap_ralt_rgui:1;
+        bool no_gui:1;
+        bool swap_grave_esc:1;
+        bool swap_backslash_backspace:1;
+        bool nkro:1;
+    };
+} keymap_config_t;
+
+keymap_config_t keymap_config;

+ 163 - 0
quantum/keymap.c

@@ -0,0 +1,163 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "keymap.h"
+#include "report.h"
+#include "keycode.h"
+#include "action_layer.h"
+#include <util/delay.h>
+#include "action.h"
+#include "action_macro.h"
+#include "debug.h"
+#include "backlight.h"
+#include "quantum.h"
+
+#ifdef MIDI_ENABLE
+	#include "keymap_midi.h"
+#endif
+
+extern keymap_config_t keymap_config;
+
+#include <stdio.h>
+#include <inttypes.h>
+
+/* converts key to action */
+action_t action_for_key(uint8_t layer, keypos_t key)
+{
+    // 16bit keycodes - important
+    uint16_t keycode = keymap_key_to_keycode(layer, key);
+
+    // keycode remapping
+    keycode = keycode_config(keycode);
+
+    action_t action;
+    uint8_t action_layer, when, mod;
+
+    switch (keycode) {
+        case KC_FN0 ... KC_FN31:
+            action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
+            break;
+        case KC_A ... KC_EXSEL:
+        case KC_LCTRL ... KC_RGUI:
+            action.code = ACTION_KEY(keycode);
+            break;
+        case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
+            action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
+            break;
+        case KC_AUDIO_MUTE ... KC_WWW_FAVORITES:
+            action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
+            break;
+        case KC_MS_UP ... KC_MS_ACCEL2:
+            action.code = ACTION_MOUSEKEY(keycode);
+            break;
+        case KC_TRNS:
+            action.code = ACTION_TRANSPARENT;
+            break;
+        case QK_MODS ... QK_MODS_MAX: ;
+            // Has a modifier
+            // Split it up
+            action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key
+            break;
+        case QK_FUNCTION ... QK_FUNCTION_MAX: ;
+            // Is a shortcut for function action_layer, pull last 12bits
+            // This means we have 4,096 FN macros at our disposal
+            action.code = pgm_read_word(&fn_actions[(int)keycode & 0xFFF]);
+            break;
+        case QK_MACRO ... QK_MACRO_MAX:
+            action.code = ACTION_MACRO(keycode & 0xFF);
+            break;
+        case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
+            action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
+            break;
+        case QK_TO ... QK_TO_MAX: ;
+            // Layer set "GOTO"
+            when = (keycode >> 0x4) & 0x3;
+            action_layer = keycode & 0xF;
+            action.code = ACTION_LAYER_SET(action_layer, when);
+            break;
+        case QK_MOMENTARY ... QK_MOMENTARY_MAX: ;
+            // Momentary action_layer
+            action_layer = keycode & 0xFF;
+            action.code = ACTION_LAYER_MOMENTARY(action_layer);
+            break;
+        case QK_DEF_LAYER ... QK_DEF_LAYER_MAX: ;
+            // Set default action_layer
+            action_layer = keycode & 0xFF;
+            action.code = ACTION_DEFAULT_LAYER_SET(action_layer);
+            break;
+        case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX: ;
+            // Set toggle
+            action_layer = keycode & 0xFF;
+            action.code = ACTION_LAYER_TOGGLE(action_layer);
+            break;
+        case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX: ;
+            // OSL(action_layer) - One-shot action_layer
+            action_layer = keycode & 0xFF;
+            action.code = ACTION_LAYER_ONESHOT(action_layer);
+            break;
+        case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX: ;
+            // OSM(mod) - One-shot mod
+            mod = keycode & 0xFF;
+            action.code = ACTION_MODS_ONESHOT(mod);
+            break;
+        case QK_MOD_TAP ... QK_MOD_TAP_MAX:
+            action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
+            break;
+    #ifdef BACKLIGHT_ENABLE
+        case BL_0 ... BL_15:
+            action.code = ACTION_BACKLIGHT_LEVEL(keycode - BL_0);
+            break;
+        case BL_DEC:
+            action.code = ACTION_BACKLIGHT_DECREASE();
+            break;
+        case BL_INC:
+            action.code = ACTION_BACKLIGHT_INCREASE();
+            break;
+        case BL_TOGG:
+            action.code = ACTION_BACKLIGHT_TOGGLE();
+            break;
+        case BL_STEP:
+            action.code = ACTION_BACKLIGHT_STEP();
+            break;
+    #endif
+        default:
+            action.code = ACTION_NO;
+            break;
+    }
+    return action;
+}
+
+
+/* Macro */
+__attribute__ ((weak))
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+    return MACRO_NONE;
+}
+
+/* Function */
+__attribute__ ((weak))
+void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+}
+
+/* translates key to keycode */
+uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
+{
+    // Read entire word (16bits)
+    return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]);
+}

+ 315 - 0
quantum/keymap.h

@@ -0,0 +1,315 @@
+/*
+Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef KEYMAP_H
+#define KEYMAP_H
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "action.h"
+#include <avr/pgmspace.h>
+#include "keycode.h"
+#include "action_macro.h"
+#include "report.h"
+#include "host.h"
+// #include "print.h"
+#include "debug.h"
+#include "keycode_config.h"
+
+/* translates key to keycode */
+uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key);
+
+/* translates Fn keycode to action */
+action_t keymap_fn_to_action(uint16_t keycode);
+
+extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
+extern const uint16_t fn_actions[];
+
+enum quantum_keycodes {
+    // Ranges used in shortucuts - not to be used directly
+    QK_TMK                = 0x0000,
+    QK_TMK_MAX            = 0x00FF,
+    QK_MODS               = 0x0100,
+    QK_LCTL               = 0x0100,
+    QK_LSFT               = 0x0200,
+    QK_LALT               = 0x0400,
+    QK_LGUI               = 0x0800,
+    QK_RCTL               = 0x1100,
+    QK_RSFT               = 0x1200,
+    QK_RALT               = 0x1400,
+    QK_RGUI               = 0x1800,
+    QK_MODS_MAX           = 0x1FFF,
+    QK_FUNCTION           = 0x2000,
+    QK_FUNCTION_MAX       = 0x2FFF,
+    QK_MACRO              = 0x3000,
+    QK_MACRO_MAX          = 0x3FFF,
+    QK_LAYER_TAP          = 0x4000,
+    QK_LAYER_TAP_MAX      = 0x4FFF,
+    QK_TO                 = 0x5000,
+    QK_TO_MAX             = 0x50FF,
+    QK_MOMENTARY          = 0x5100,
+    QK_MOMENTARY_MAX      = 0x51FF,
+    QK_DEF_LAYER          = 0x5200,
+    QK_DEF_LAYER_MAX      = 0x52FF,
+    QK_TOGGLE_LAYER       = 0x5300,
+    QK_TOGGLE_LAYER_MAX   = 0x53FF,
+    QK_ONE_SHOT_LAYER     = 0x5400,
+    QK_ONE_SHOT_LAYER_MAX = 0x54FF,
+    QK_ONE_SHOT_MOD       = 0x5500,
+    QK_ONE_SHOT_MOD_MAX   = 0x55FF,
+#ifndef DISABLE_CHORDING
+    QK_CHORDING           = 0x5600,
+    QK_CHORDING_MAX       = 0x56FF,
+#endif
+    QK_MOD_TAP            = 0x6000,
+    QK_MOD_TAP_MAX        = 0x6FFF,
+#ifdef UNICODE_ENABLE
+    QK_UNICODE            = 0x8000,
+    QK_UNICODE_MAX        = 0xFFFF,
+#endif
+
+    // Loose keycodes - to be used directly
+
+    RESET = 0x7000,
+    DEBUG,
+    MAGIC_SWAP_CONTROL_CAPSLOCK,
+    MAGIC_CAPSLOCK_TO_CONTROL,
+    MAGIC_SWAP_LALT_LGUI,
+    MAGIC_SWAP_RALT_RGUI,
+    MAGIC_NO_GUI,
+    MAGIC_SWAP_GRAVE_ESC,
+    MAGIC_SWAP_BACKSLASH_BACKSPACE,
+    MAGIC_HOST_NKRO,
+    MAGIC_SWAP_ALT_GUI,
+    MAGIC_UNSWAP_CONTROL_CAPSLOCK,
+    MAGIC_UNCAPSLOCK_TO_CONTROL,
+    MAGIC_UNSWAP_LALT_LGUI,
+    MAGIC_UNSWAP_RALT_RGUI,
+    MAGIC_UNNO_GUI,
+    MAGIC_UNSWAP_GRAVE_ESC,
+    MAGIC_UNSWAP_BACKSLASH_BACKSPACE,
+    MAGIC_UNHOST_NKRO,
+    MAGIC_UNSWAP_ALT_GUI,
+
+    // Leader key
+#ifndef DISABLE_LEADER
+    KC_LEAD,
+#endif
+
+    // Audio on/off/toggle
+    AU_ON,
+    AU_OFF,
+    AU_TOG,
+
+    // Music mode on/off/toggle
+    MU_ON,
+    MU_OFF,
+    MU_TOG,
+
+    // Music voice iterate
+    MUV_IN,
+    MUV_DE,
+
+    // Midi mode on/off
+    MI_ON,
+    MI_OFF,
+
+    // Backlight functionality
+    BL_0,
+    BL_1,
+    BL_2,
+    BL_3,
+    BL_4,
+    BL_5,
+    BL_6,
+    BL_7,
+    BL_8,
+    BL_9,
+    BL_10,
+    BL_11,
+    BL_12,
+    BL_13,
+    BL_14,
+    BL_15,
+    BL_DEC,
+    BL_INC,
+    BL_TOGG,
+    BL_STEP,
+
+    // Left shift, open paren
+    KC_LSPO,
+
+    // Right shift, close paren
+    KC_RSPC,
+};
+
+// Ability to use mods in layouts
+#define LCTL(kc) (kc | QK_LCTL)
+#define LSFT(kc) (kc | QK_LSFT)
+#define LALT(kc) (kc | QK_LALT)
+#define LGUI(kc) (kc | QK_LGUI)
+#define RCTL(kc) (kc | QK_RCTL)
+#define RSFT(kc) (kc | QK_RSFT)
+#define RALT(kc) (kc | QK_RALT)
+#define RGUI(kc) (kc | QK_RGUI)
+
+#define HYPR(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI)
+#define MEH(kc)  (kc | QK_LCTL | QK_LSFT | QK_LALT)
+#define LCAG(kc) (kc | QK_LCTL | QK_LALT | QK_LGUI)
+
+#define MOD_HYPR 0xf
+#define MOD_MEH 0x7
+
+
+// Aliases for shifted symbols
+// Each key has a 4-letter code, and some have longer aliases too.
+// While the long aliases are descriptive, the 4-letter codes
+// make for nicer grid layouts (everything lines up), and are
+// the preferred style for Quantum.
+#define KC_TILD LSFT(KC_GRV)    // ~
+#define KC_TILDE    KC_TILD
+
+#define KC_EXLM LSFT(KC_1)      // !
+#define KC_EXCLAIM  KC_EXLM
+
+#define KC_AT   LSFT(KC_2)      // @
+
+#define KC_HASH LSFT(KC_3)      // #
+
+#define KC_DLR  LSFT(KC_4)      // $
+#define KC_DOLLAR   KC_DLR
+
+#define KC_PERC LSFT(KC_5)      // %
+#define KC_PERCENT  KC_PERC
+
+#define KC_CIRC LSFT(KC_6)      // ^
+#define KC_CIRCUMFLEX   KC_CIRC
+
+#define KC_AMPR LSFT(KC_7)      // &
+#define KC_AMPERSAND    KC_AMPR
+
+#define KC_ASTR LSFT(KC_8)      // *
+#define KC_ASTERISK KC_ASTR
+
+#define KC_LPRN LSFT(KC_9)      // (
+#define KC_LEFT_PAREN   KC_LPRN
+
+#define KC_RPRN LSFT(KC_0)      // )
+#define KC_RIGHT_PAREN  KC_RPRN
+
+#define KC_UNDS LSFT(KC_MINS)   // _
+#define KC_UNDERSCORE   KC_UNDS
+
+#define KC_PLUS LSFT(KC_EQL)    // +
+
+#define KC_LCBR LSFT(KC_LBRC)   // {
+#define KC_LEFT_CURLY_BRACE KC_LCBR
+
+#define KC_RCBR LSFT(KC_RBRC)   // }
+#define KC_RIGHT_CURLY_BRACE    KC_RCBR
+
+#define KC_LABK LSFT(KC_COMM)   // <
+#define KC_LEFT_ANGLE_BRACKET   KC_LABK
+
+#define KC_RABK LSFT(KC_DOT)    // >
+#define KC_RIGHT_ANGLE_BRACKET  KC_RABK
+
+#define KC_COLN LSFT(KC_SCLN)   // :
+#define KC_COLON    KC_COLN
+
+#define KC_PIPE LSFT(KC_BSLS)   // |
+
+#define KC_LT LSFT(KC_COMM)     // <
+
+#define KC_GT LSFT(KC_DOT)      // >
+
+#define KC_QUES LSFT(KC_SLSH)   // ?
+#define KC_QUESTION KC_QUES
+
+#define KC_DQT LSFT(KC_QUOT)   // "
+#define KC_DOUBLE_QUOTE KC_DQT
+#define KC_DQUO KC_DQT
+
+#define KC_DELT KC_DELETE // Del key (four letter code)
+
+// Alias for function layers than expand past FN31
+#define FUNC(kc) (kc | QK_FUNCTION)
+
+// Aliases
+#define S(kc) LSFT(kc)
+#define F(kc) FUNC(kc)
+
+#define M(kc) (kc | QK_MACRO)
+
+#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
+
+// L-ayer, T-ap - 256 keycode max, 16 layer max
+#define LT(layer, kc) (kc | QK_LAYER_TAP | ((layer & 0xF) << 8))
+
+#define AG_SWAP MAGIC_SWAP_ALT_GUI
+#define AG_NORM MAGIC_UNSWAP_ALT_GUI
+
+#define BL_ON  BL_9
+#define BL_OFF BL_0
+
+// GOTO layer - 16 layers max
+// when:
+// ON_PRESS    = 1
+// ON_RELEASE  = 2
+// Unless you have a good reason not to do so, prefer  ON_PRESS (1) as your default.
+#define TO(layer, when) (layer | QK_TO | (when << 0x4))
+
+// Momentary switch layer - 256 layer max
+#define MO(layer) (layer | QK_MOMENTARY)
+
+// Set default layer - 256 layer max
+#define DF(layer) (layer | QK_DEF_LAYER)
+
+// Toggle to layer - 256 layer max
+#define TG(layer) (layer | QK_TOGGLE_LAYER)
+
+// One-shot layer - 256 layer max
+#define OSL(layer) (layer | QK_ONE_SHOT_LAYER)
+
+// One-shot mod
+#define OSM(layer) (layer | QK_ONE_SHOT_MOD)
+
+// M-od, T-ap - 256 keycode max
+#define MT(mod, kc) (kc | QK_MOD_TAP | ((mod & 0xF) << 8))
+#define CTL_T(kc) MT(MOD_LCTL, kc)
+#define SFT_T(kc) MT(MOD_LSFT, kc)
+#define ALT_T(kc) MT(MOD_LALT, kc)
+#define GUI_T(kc) MT(MOD_LGUI, kc)
+#define C_S_T(kc) MT(MOD_LCTL | MOD_LSFT, kc) // Control + Shift e.g. for gnome-terminal
+#define MEH_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
+#define LCAG_T(kc) MT(MOD_LCTL | MOD_LALT | MOD_LGUI, kc) // Left control alt and gui
+#define ALL_T(kc) MT(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
+
+// Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap
+#define KC_HYPR HYPR(KC_NO)
+#define KC_MEH  MEH(KC_NO)
+
+#ifdef UNICODE_ENABLE
+    // For sending unicode codes.
+    // You may not send codes over 7FFF -- this supports most of UTF8.
+    // To have a key that sends out Œ, go UC(0x0152)
+    #define UNICODE(n) (n | QK_UNICODE)
+    #define UC(n) UNICODE(n)
+#endif
+
+
+#endif

+ 0 - 323
quantum/keymap_common.c

@@ -1,323 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "keymap_common.h"
-#include "report.h"
-#include "keycode.h"
-#include "action_layer.h"
-#include <util/delay.h>
-#include "action.h"
-#include "action_macro.h"
-#include "debug.h"
-#include "backlight.h"
-#include "bootloader.h"
-#include "eeconfig.h"
-#include "quantum.h"
-
-#ifdef MIDI_ENABLE
-	#include "keymap_midi.h"
-#endif
-
-extern keymap_config_t keymap_config;
-
-#include <stdio.h>
-#include <inttypes.h>
-#ifdef AUDIO_ENABLE
-    #include "audio.h"
-#endif /* AUDIO_ENABLE */
-
-static action_t keycode_to_action(uint16_t keycode);
-
-/* converts key to action */
-action_t action_for_key(uint8_t layer, keypos_t key)
-{
-    // 16bit keycodes - important
-    uint16_t keycode = keymap_key_to_keycode(layer, key);
-
-    switch (keycode) {
-        case KC_FN0 ... KC_FN31:
-            return keymap_fn_to_action(keycode);
-        case KC_CAPSLOCK:
-        case KC_LOCKING_CAPS:
-            if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
-                return keycode_to_action(KC_LCTL);
-            }
-            return keycode_to_action(keycode);
-        case KC_LCTL:
-            if (keymap_config.swap_control_capslock) {
-                return keycode_to_action(KC_CAPSLOCK);
-            }
-            return keycode_to_action(KC_LCTL);
-        case KC_LALT:
-            if (keymap_config.swap_lalt_lgui) {
-                if (keymap_config.no_gui) {
-                    return keycode_to_action(ACTION_NO);
-                }
-                return keycode_to_action(KC_LGUI);
-            }
-            return keycode_to_action(KC_LALT);
-        case KC_LGUI:
-            if (keymap_config.swap_lalt_lgui) {
-                return keycode_to_action(KC_LALT);
-            }
-            if (keymap_config.no_gui) {
-                return keycode_to_action(ACTION_NO);
-            }
-            return keycode_to_action(KC_LGUI);
-        case KC_RALT:
-            if (keymap_config.swap_ralt_rgui) {
-                if (keymap_config.no_gui) {
-                    return keycode_to_action(ACTION_NO);
-                }
-                return keycode_to_action(KC_RGUI);
-            }
-            return keycode_to_action(KC_RALT);
-        case KC_RGUI:
-            if (keymap_config.swap_ralt_rgui) {
-                return keycode_to_action(KC_RALT);
-            }
-            if (keymap_config.no_gui) {
-                return keycode_to_action(ACTION_NO);
-            }
-            return keycode_to_action(KC_RGUI);
-        case KC_GRAVE:
-            if (keymap_config.swap_grave_esc) {
-                return keycode_to_action(KC_ESC);
-            }
-            return keycode_to_action(KC_GRAVE);
-        case KC_ESC:
-            if (keymap_config.swap_grave_esc) {
-                return keycode_to_action(KC_GRAVE);
-            }
-            return keycode_to_action(KC_ESC);
-        case KC_BSLASH:
-            if (keymap_config.swap_backslash_backspace) {
-                return keycode_to_action(KC_BSPACE);
-            }
-            return keycode_to_action(KC_BSLASH);
-        case KC_BSPACE:
-            if (keymap_config.swap_backslash_backspace) {
-                return keycode_to_action(KC_BSLASH);
-            }
-            return keycode_to_action(KC_BSPACE);
-        default:
-            return keycode_to_action(keycode);
-    }
-}
-
-
-/* Macro */
-__attribute__ ((weak))
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
-    return MACRO_NONE;
-}
-
-/* Function */
-__attribute__ ((weak))
-void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
-}
-
-/* translates keycode to action */
-static action_t keycode_to_action(uint16_t keycode)
-{
-    action_t action;
-    switch (keycode) {
-        case KC_A ... KC_EXSEL:
-        case KC_LCTRL ... KC_RGUI:
-            action.code = ACTION_KEY(keycode);
-            break;
-        case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
-            action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
-            break;
-        case KC_AUDIO_MUTE ... KC_WWW_FAVORITES:
-            action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
-            break;
-        case KC_MS_UP ... KC_MS_ACCEL2:
-            action.code = ACTION_MOUSEKEY(keycode);
-            break;
-        case KC_TRNS:
-            action.code = ACTION_TRANSPARENT;
-            break;
-        case LCTL(0) ... 0x1FFF: ;
-            // Has a modifier
-            // Split it up
-            action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key
-            break;
-        case FUNC(0) ... FUNC(0xFFF): ;
-            // Is a shortcut for function layer, pull last 12bits
-            // This means we have 4,096 FN macros at our disposal
-            return keymap_func_to_action(keycode & 0xFFF);
-            break;
-        case M(0) ... M(0xFF):
-            action.code = ACTION_MACRO(keycode & 0xFF);
-            break;
-        case LT(0, 0) ... LT(0xFF, 0xF):
-            action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
-            break;
-    #ifdef BACKLIGHT_ENABLE
-        case BL_0 ... BL_15:
-            action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F);
-            break;
-        case BL_DEC:
-            action.code = ACTION_BACKLIGHT_DECREASE();
-            break;
-        case BL_INC:
-            action.code = ACTION_BACKLIGHT_INCREASE();
-            break;
-        case BL_TOGG:
-            action.code = ACTION_BACKLIGHT_TOGGLE();
-            break;
-        case BL_STEP:
-            action.code = ACTION_BACKLIGHT_STEP();
-            break;
-    #endif
-        case RESET: ; // RESET is 0x5000, which is why this is here
-            clear_keyboard();
-            #ifdef AUDIO_ENABLE
-                stop_all_notes();
-                shutdown_user();
-            #endif
-            _delay_ms(250);
-            #ifdef ATREUS_ASTAR
-                *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific
-            #endif
-            bootloader_jump();
-            break;
-        case DEBUG: ; // DEBUG is 0x5001
-            print("\nDEBUG: enabled.\n");
-            debug_enable = true;
-            break;
-        case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_UNSWAP_ALT_GUI:
-            // MAGIC actions (BOOTMAGIC without the boot)
-            if (!eeconfig_is_enabled()) {
-                eeconfig_init();
-            }
-            /* keymap config */
-            keymap_config.raw = eeconfig_read_keymap();
-            if (keycode == MAGIC_SWAP_CONTROL_CAPSLOCK) {
-                keymap_config.swap_control_capslock = 1;
-            } else if (keycode == MAGIC_CAPSLOCK_TO_CONTROL) {
-                keymap_config.capslock_to_control = 1;
-            } else if (keycode == MAGIC_SWAP_LALT_LGUI) {
-                keymap_config.swap_lalt_lgui = 1;
-            } else if (keycode == MAGIC_SWAP_RALT_RGUI) {
-                keymap_config.swap_ralt_rgui = 1;
-            } else if (keycode == MAGIC_NO_GUI) {
-                keymap_config.no_gui = 1;
-            } else if (keycode == MAGIC_SWAP_GRAVE_ESC) {
-                keymap_config.swap_grave_esc = 1;
-            } else if (keycode == MAGIC_SWAP_BACKSLASH_BACKSPACE) {
-                keymap_config.swap_backslash_backspace = 1;
-            } else if (keycode == MAGIC_HOST_NKRO) {
-                keymap_config.nkro = 1;
-            } else if (keycode == MAGIC_SWAP_ALT_GUI) {
-                keymap_config.swap_lalt_lgui = 1;
-                keymap_config.swap_ralt_rgui = 1;
-            }
-            /* UNs */
-            else if (keycode == MAGIC_UNSWAP_CONTROL_CAPSLOCK) {
-                keymap_config.swap_control_capslock = 0;
-            } else if (keycode == MAGIC_UNCAPSLOCK_TO_CONTROL) {
-                keymap_config.capslock_to_control = 0;
-            } else if (keycode == MAGIC_UNSWAP_LALT_LGUI) {
-                keymap_config.swap_lalt_lgui = 0;
-            } else if (keycode == MAGIC_UNSWAP_RALT_RGUI) {
-                keymap_config.swap_ralt_rgui = 0;
-            } else if (keycode == MAGIC_UNNO_GUI) {
-                keymap_config.no_gui = 0;
-            } else if (keycode == MAGIC_UNSWAP_GRAVE_ESC) {
-                keymap_config.swap_grave_esc = 0;
-            } else if (keycode == MAGIC_UNSWAP_BACKSLASH_BACKSPACE) {
-                keymap_config.swap_backslash_backspace = 0;
-            } else if (keycode == MAGIC_UNHOST_NKRO) {
-                keymap_config.nkro = 0;
-            } else if (keycode == MAGIC_UNSWAP_ALT_GUI) {
-                keymap_config.swap_lalt_lgui = 0;
-                keymap_config.swap_ralt_rgui = 0;
-            }
-            eeconfig_update_keymap(keymap_config.raw);
-            break;
-        case TO(0, 1) ... OSM(0xFF): ;
-            // Layer movement shortcuts
-            // See .h to see constraints/usage
-            int type = (keycode >> 0x8) & 0xF;
-            if (type == 0x1) {
-                // Layer set "GOTO"
-                int when = (keycode >> 0x4) & 0x3;
-                int layer = keycode & 0xF;
-                action.code = ACTION_LAYER_SET(layer, when);
-            } else if (type == 0x2) {
-                // Momentary layer
-                int layer = keycode & 0xFF;
-                action.code = ACTION_LAYER_MOMENTARY(layer);
-            } else if (type == 0x3) {
-                // Set default layer
-                int layer = keycode & 0xFF;
-                action.code = ACTION_DEFAULT_LAYER_SET(layer);
-            } else if (type == 0x4) {
-                // Set default layer
-                int layer = keycode & 0xFF;
-                action.code = ACTION_LAYER_TOGGLE(layer);
-            } else if (type == 0x5) {
-                // OSL(layer) - One-shot layer
-                int layer = keycode & 0xFF;
-                action.code = ACTION_LAYER_ONESHOT(layer);
-            } else if (type == 0x6) {
-                // OSM(mod) - One-shot mod
-                int mod = keycode & 0xFF;
-                action.code = ACTION_MODS_ONESHOT(mod);
-            }
-            break;
-        case MT(0, 0) ... MT(0xF, 0xFF):
-            action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF);
-            break;
-        default:
-            action.code = ACTION_NO;
-            break;
-    }
-    return action;
-}
-
-
-/* translates key to keycode */
-uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
-{
-    // Read entire word (16bits)
-    return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]);
-}
-
-/* translates Fn keycode to action */
-action_t keymap_fn_to_action(uint16_t keycode)
-{
-    return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
-}
-
-action_t keymap_func_to_action(uint16_t keycode)
-{
-    // For FUNC without 8bit limit
-    return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
-}
-
-void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
-  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
-    layer_on(layer3);
-  } else {
-    layer_off(layer3);
-  }
-}

+ 0 - 292
quantum/keymap_common.h

@@ -1,292 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef KEYMAP_H
-#define KEYMAP_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "action.h"
-#include <avr/pgmspace.h>
-#include "keycode.h"
-#include "keymap.h"
-#include "action_macro.h"
-#include "report.h"
-#include "host.h"
-// #include "print.h"
-#include "debug.h"
-
-/* NOTE: Not portable. Bit field order depends on implementation */
-typedef union {
-    uint16_t raw;
-    struct {
-        bool swap_control_capslock:1;
-        bool capslock_to_control:1;
-        bool swap_lalt_lgui:1;
-        bool swap_ralt_rgui:1;
-        bool no_gui:1;
-        bool swap_grave_esc:1;
-        bool swap_backslash_backspace:1;
-        bool nkro:1;
-    };
-} keymap_config_t;
-
-
-/* translates key to keycode */
-uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key);
-
-/* translates Fn keycode to action */
-action_t keymap_fn_to_action(uint16_t keycode);
-
-/* translates Fn keycode to action */
-action_t keymap_func_to_action(uint16_t keycode);
-
-extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
-extern const uint16_t fn_actions[];
-
-// Ability to use mods in layouts
-#define LCTL(kc) kc | 0x0100
-#define LSFT(kc) kc | 0x0200
-#define LALT(kc) kc | 0x0400
-#define LGUI(kc) kc | 0x0800
-#define HYPR(kc) kc | 0x0F00
-#define MEH(kc) kc  | 0x0700
-#define LCAG(kc) kc  | 0x0D00 // Modifier Ctrl Alt and GUI
-
-#define MOD_HYPR 0xf
-#define MOD_MEH 0x7
-
-#define RCTL(kc) kc | 0x1100
-#define RSFT(kc) kc | 0x1200
-#define RALT(kc) kc | 0x1400
-#define RGUI(kc) kc | 0x1800
-
-// Aliases for shifted symbols
-// Each key has a 4-letter code, and some have longer aliases too.
-// While the long aliases are descriptive, the 4-letter codes
-// make for nicer grid layouts (everything lines up), and are
-// the preferred style for Quantum.
-#define KC_TILD LSFT(KC_GRV)    // ~
-#define KC_TILDE    KC_TILD
-
-#define KC_EXLM LSFT(KC_1)      // !
-#define KC_EXCLAIM  KC_EXLM
-
-#define KC_AT   LSFT(KC_2)      // @
-
-#define KC_HASH LSFT(KC_3)      // #
-
-#define KC_DLR  LSFT(KC_4)      // $
-#define KC_DOLLAR   KC_DLR
-
-#define KC_PERC LSFT(KC_5)      // %
-#define KC_PERCENT  KC_PERC
-
-#define KC_CIRC LSFT(KC_6)      // ^
-#define KC_CIRCUMFLEX   KC_CIRC
-
-#define KC_AMPR LSFT(KC_7)      // &
-#define KC_AMPERSAND    KC_AMPR
-
-#define KC_ASTR LSFT(KC_8)      // *
-#define KC_ASTERISK KC_ASTR
-
-#define KC_LPRN LSFT(KC_9)      // (
-#define KC_LEFT_PAREN   KC_LPRN
-
-#define KC_RPRN LSFT(KC_0)      // )
-#define KC_RIGHT_PAREN  KC_RPRN
-
-#define KC_UNDS LSFT(KC_MINS)   // _
-#define KC_UNDERSCORE   KC_UNDS
-
-#define KC_PLUS LSFT(KC_EQL)    // +
-
-#define KC_LCBR LSFT(KC_LBRC)   // {
-#define KC_LEFT_CURLY_BRACE KC_LCBR
-
-#define KC_RCBR LSFT(KC_RBRC)   // }
-#define KC_RIGHT_CURLY_BRACE    KC_RCBR
-
-#define KC_LABK LSFT(KC_COMM)   // <
-#define KC_LEFT_ANGLE_BRACKET   KC_LABK
-
-#define KC_RABK LSFT(KC_DOT)    // >
-#define KC_RIGHT_ANGLE_BRACKET  KC_RABK
-
-#define KC_COLN LSFT(KC_SCLN)   // :
-#define KC_COLON    KC_COLN
-
-#define KC_PIPE LSFT(KC_BSLS)   // |
-
-#define KC_LT LSFT(KC_COMM)     // <
-
-#define KC_GT LSFT(KC_DOT)      // >
-
-#define KC_QUES LSFT(KC_SLSH)   // ?
-#define KC_QUESTION KC_QUES
-
-#define KC_DQT LSFT(KC_QUOT)   // "
-#define KC_DOUBLE_QUOTE KC_DQT
-#define KC_DQUO KC_DQT
-
-#define KC_DELT KC_DELETE // Del key (four letter code)
-
-// Alias for function layers than expand past FN31
-#define FUNC(kc) kc | 0x2000
-
-// Aliases
-#define S(kc) LSFT(kc)
-#define F(kc) FUNC(kc)
-
-#define M(kc) (kc | 0x3000)
-
-#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)
-
-// 0x3100+ is free
-
-// L-ayer, T-ap - 256 keycode max, 16 layer max
-#define LT(layer, kc) (kc | 0x4000 | ((layer & 0xF) << 8))
-
-#define RESET 0x5000
-#define DEBUG 0x5001
-
-// MAGIC keycodes
-#define MAGIC_SWAP_CONTROL_CAPSLOCK      0x5002
-#define MAGIC_UNSWAP_CONTROL_CAPSLOCK    0x5003
-#define MAGIC_CAPSLOCK_TO_CONTROL        0x5004
-#define MAGIC_UNCAPSLOCK_TO_CONTROL      0x5005
-#define MAGIC_SWAP_LALT_LGUI             0x5006
-#define MAGIC_UNSWAP_LALT_LGUI           0x5007
-#define MAGIC_SWAP_RALT_RGUI             0x5008
-#define MAGIC_UNSWAP_RALT_RGUI           0x5009
-#define MAGIC_NO_GUI                     0x500a
-#define MAGIC_UNNO_GUI                   0x500b
-#define MAGIC_SWAP_GRAVE_ESC             0x500c
-#define MAGIC_UNSWAP_GRAVE_ESC           0x500d
-#define MAGIC_SWAP_BACKSLASH_BACKSPACE   0x500e
-#define MAGIC_UNSWAP_BACKSLASH_BACKSPACE 0x500f
-#define MAGIC_HOST_NKRO                  0x5010
-#define MAGIC_UNHOST_NKRO                0x5011
-#define MAGIC_SWAP_ALT_GUI               0x5012
-#define MAGIC_UNSWAP_ALT_GUI             0x5013
-
-#define AG_SWAP MAGIC_SWAP_ALT_GUI
-#define AG_NORM MAGIC_UNSWAP_ALT_GUI
-
-#define KC_LEAD 0x5014
-
-// Audio on/off
-#define AU_ON  0x5020
-#define AU_OFF 0x5021
-#define AU_TOG 0x5022
-
-// Music mode on/off
-#define MU_ON  0x5023
-#define MU_OFF 0x5024
-#define MU_TOG 0x5025
-
-// Music voice iterate
-#define MUV_IN 0x5026
-#define MUV_DE 0x5027
-
-// Midi mode on/off
-#define MI_ON  0x5028
-#define MI_OFF 0x5029
-
-// These affect the backlight (if your keyboard has one).
-// We don't need to comment them out if your keyboard doesn't have a backlight,
-// since they don't take up any space.
-#define BL_ON 0x5079
-#define BL_OFF 0x5070
-#define BL_0 0x5070
-#define BL_1 0x5071
-#define BL_2 0x5072
-#define BL_3 0x5073
-#define BL_4 0x5074
-#define BL_5 0x5075
-#define BL_6 0x5076
-#define BL_7 0x5077
-#define BL_8 0x5078
-#define BL_9 0x5079
-#define BL_10 0x507A
-#define BL_11 0x507B
-#define BL_12 0x507C
-#define BL_13 0x507D
-#define BL_14 0x507E
-#define BL_15 0x507F
-#define BL_DEC 0x5080
-#define BL_INC 0x5081
-#define BL_TOGG 0x5082
-#define BL_STEP 0x5083
-
-#define KC_LSPO 0x5084 // Left shift, open parens when tapped
-#define KC_RSPC 0x5085 // Right shift, close parens when tapped
-// GOTO layer - 16 layers max
-// when:
-// ON_PRESS    = 1
-// ON_RELEASE  = 2
-// Unless you have a good reason not to do so, prefer  ON_PRESS (1) as your default.
-#define TO(layer, when) (layer | 0x5100 | (when << 0x4))
-
-// Momentary switch layer - 256 layer max
-#define MO(layer) (layer | 0x5200)
-
-// Set default layer - 256 layer max
-#define DF(layer) (layer | 0x5300)
-
-// Toggle to layer - 256 layer max
-#define TG(layer) (layer | 0x5400)
-
-// One-shot layer - 256 layer max
-#define OSL(layer) (layer | 0x5500)
-
-// One-shot mod
-#define OSM(layer) (layer | 0x5600)
-
-// chording is currently at 0x57xx
-
-// M-od, T-ap - 256 keycode max
-#define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8))
-#define CTL_T(kc) MT(0x1, kc)
-#define SFT_T(kc) MT(0x2, kc)
-#define ALT_T(kc) MT(0x4, kc)
-#define GUI_T(kc) MT(0x8, kc)
-#define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal
-#define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl
-#define LCAG_T(kc) MT(0xD, kc) // Left control alt and gui
-#define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
-
-// Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap
-#define KC_HYPR HYPR(KC_NO)
-#define KC_MEH  MEH(KC_NO)
-
-#ifdef UNICODE_ENABLE
-    // For sending unicode codes.
-    // You may not send codes over 7FFF -- this supports most of UTF8.
-    // To have a key that sends out Œ, go UC(0x0152)
-    #define UNICODE(n) (n | 0x8000)
-    #define UC(n) UNICODE(n)
-#endif
-
-// For tri-layer
-void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
-#define IS_LAYER_ON(layer)  (layer_state & (1UL << (layer)))
-#define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer)))
-
-
-#endif

+ 1 - 1
quantum/keymap_extras/keymap_bepo.h

@@ -2,7 +2,7 @@
 #ifndef KEYMAP_BEPO_H
 #ifndef KEYMAP_BEPO_H
 #define KEYMAP_BEPO_H
 #define KEYMAP_BEPO_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #ifndef ALTGR
 #ifndef ALTGR

+ 1 - 1
quantum/keymap_extras/keymap_colemak.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_COLEMAK_H
 #ifndef KEYMAP_COLEMAK_H
 #define KEYMAP_COLEMAK_H
 #define KEYMAP_COLEMAK_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 // For software implementation of colemak
 // For software implementation of colemak
 #define CM_Q    KC_Q
 #define CM_Q    KC_Q
 #define CM_W    KC_W
 #define CM_W    KC_W

+ 1 - 1
quantum/keymap_extras/keymap_dvorak.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_DVORAK_H
 #ifndef KEYMAP_DVORAK_H
 #define KEYMAP_DVORAK_H
 #define KEYMAP_DVORAK_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Normal characters
 // Normal characters
 #define DV_GRV	KC_GRV
 #define DV_GRV	KC_GRV

+ 1 - 1
quantum/keymap_extras/keymap_fr_ch.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_FR_CH
 #ifndef KEYMAP_FR_CH
 #define KEYMAP_FR_CH
 #define KEYMAP_FR_CH
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_french.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_FRENCH_H
 #ifndef KEYMAP_FRENCH_H
 #define KEYMAP_FRENCH_H
 #define KEYMAP_FRENCH_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_french_osx.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_FRENCH_OSX_H
 #ifndef KEYMAP_FRENCH_OSX_H
 #define KEYMAP_FRENCH_OSX_H
 #define KEYMAP_FRENCH_OSX_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Normal characters
 // Normal characters
 #define FR_AT 	KC_GRV
 #define FR_AT 	KC_GRV

+ 1 - 1
quantum/keymap_extras/keymap_german.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_GERMAN
 #ifndef KEYMAP_GERMAN
 #define KEYMAP_GERMAN
 #define KEYMAP_GERMAN
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_german_ch.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_SWISS_GERMAN
 #ifndef KEYMAP_SWISS_GERMAN
 #define KEYMAP_SWISS_GERMAN
 #define KEYMAP_SWISS_GERMAN
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_german_osx.h

@@ -4,7 +4,7 @@
 #ifdef KEYMAP_GERMAN
 #ifdef KEYMAP_GERMAN
 	#warning redefining german keys
 	#warning redefining german keys
 #endif
 #endif
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 
 

+ 1 - 1
quantum/keymap_extras/keymap_neo2.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_NEO2
 #ifndef KEYMAP_NEO2
 #define KEYMAP_NEO2
 #define KEYMAP_NEO2
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 #include "keymap_extras/keymap_german.h"
 #include "keymap_extras/keymap_german.h"
 
 
 #define NEO_A KC_D
 #define NEO_A KC_D

+ 1 - 1
quantum/keymap_extras/keymap_nordic.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_NORDIC_H
 #ifndef KEYMAP_NORDIC_H
 #define KEYMAP_NORDIC_H
 #define KEYMAP_NORDIC_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_plover.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_PLOVER_H
 #ifndef KEYMAP_PLOVER_H
 #define KEYMAP_PLOVER_H
 #define KEYMAP_PLOVER_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 #define PV_NUM  KC_1
 #define PV_NUM  KC_1
 #define PV_LS   KC_Q
 #define PV_LS   KC_Q

+ 1 - 1
quantum/keymap_extras/keymap_spanish.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_SPANISH_H
 #ifndef KEYMAP_SPANISH_H
 #define KEYMAP_SPANISH_H
 #define KEYMAP_SPANISH_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_extras/keymap_uk.h

@@ -1,7 +1,7 @@
 #ifndef KEYMAP_UK_H
 #ifndef KEYMAP_UK_H
 #define KEYMAP_UK_H
 #define KEYMAP_UK_H
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 
 
 // Alt gr
 // Alt gr
 #define ALGR(kc) kc | 0x1400
 #define ALGR(kc) kc | 0x1400

+ 1 - 1
quantum/keymap_midi.c

@@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 */
 
 
-#include "keymap_common.h"
+#include "keymap.h"
 #include "keymap_midi.h"
 #include "keymap_midi.h"
 
 
 uint8_t starting_note = 0x0C;
 uint8_t starting_note = 0x0C;

+ 24 - 0
quantum/matrix.c

@@ -66,6 +66,30 @@ uint8_t matrix_cols(void) {
     return MATRIX_COLS;
     return MATRIX_COLS;
 }
 }
 
 
+void matrix_power_up(void) {
+#if DIODE_DIRECTION == COL2ROW
+    for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
+        /* DDRxn */
+        _SFR_IO8(row_pins[r].input_addr + 1) |= _BV(row_pins[r].bit);
+        toggle_row(r);
+    }
+    for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
+        /* PORTxn */
+        _SFR_IO8(col_pins[c].input_addr + 2) |= _BV(col_pins[c].bit);
+    }
+#else
+    for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
+        /* DDRxn */
+        _SFR_IO8(col_pins[c].input_addr + 1) |= _BV(col_pins[c].bit);
+        toggle_col(c);
+    }
+    for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
+        /* PORTxn */
+        _SFR_IO8(row_pins[r].input_addr + 2) |= _BV(row_pins[r].bit);
+    }
+#endif
+}
+
 void matrix_init(void) {
 void matrix_init(void) {
     /* frees PORTF by setting the JTD bit twice within four cycles */
     /* frees PORTF by setting the JTD bit twice within four cycles */
     #ifdef __AVR_ATmega32U4__
     #ifdef __AVR_ATmega32U4__

+ 135 - 59
quantum/quantum.c

@@ -1,5 +1,4 @@
 #include "quantum.h"
 #include "quantum.h"
-#include "timer.h"
 
 
 __attribute__ ((weak))
 __attribute__ ((weak))
 void matrix_init_kb(void) {}
 void matrix_init_kb(void) {}
@@ -35,15 +34,15 @@ int offset = 7;
 #ifdef AUDIO_ENABLE
 #ifdef AUDIO_ENABLE
   bool music_activated = false;
   bool music_activated = false;
 
 
-// music sequencer
-static bool music_sequence_recording = false;
-static bool music_sequence_playing = false;
-static float music_sequence[16] = {0};
-static uint8_t music_sequence_count = 0;
-static uint8_t music_sequence_position = 0;
+  // music sequencer
+  static bool music_sequence_recording = false;
+  static bool music_sequence_playing = false;
+  static float music_sequence[16] = {0};
+  static uint8_t music_sequence_count = 0;
+  static uint8_t music_sequence_position = 0;
 
 
-static uint16_t music_sequence_timer = 0;
-static uint16_t music_sequence_interval = 100;
+  static uint16_t music_sequence_timer = 0;
+  static uint16_t music_sequence_interval = 100;
 
 
 #endif
 #endif
 
 
@@ -70,6 +69,15 @@ uint8_t chord_key_down = 0;
   static uint8_t input_mode;
   static uint8_t input_mode;
 #endif
 #endif
 
 
+// Shift / paren setup
+
+#ifndef LSPO_KEY
+  #define LSPO_KEY KC_9
+#endif
+#ifndef RSPC_KEY
+  #define RSPC_KEY KC_0
+#endif
+
 static bool shift_interrupted[2] = {0, 0};
 static bool shift_interrupted[2] = {0, 0};
 
 
 bool keys_chord(uint8_t keys[]) {
 bool keys_chord(uint8_t keys[]) {
@@ -163,10 +171,6 @@ bool process_record_quantum(keyrecord_t *record) {
           if (record->event.pressed) {
           if (record->event.pressed) {
               starting_note++; // Change key
               starting_note++; // Change key
               midi_send_cc(&midi_device, 0, 0x7B, 0);
               midi_send_cc(&midi_device, 0, 0x7B, 0);
-              // midi_send_cc(&midi_device, 1, 0x7B, 0);
-              // midi_send_cc(&midi_device, 2, 0x7B, 0);
-              // midi_send_cc(&midi_device, 3, 0x7B, 0);
-              // midi_send_cc(&midi_device, 4, 0x7B, 0);
           }
           }
           return false;
           return false;
       }
       }
@@ -174,29 +178,17 @@ bool process_record_quantum(keyrecord_t *record) {
           if (record->event.pressed) {
           if (record->event.pressed) {
               starting_note--; // Change key
               starting_note--; // Change key
               midi_send_cc(&midi_device, 0, 0x7B, 0);
               midi_send_cc(&midi_device, 0, 0x7B, 0);
-              // midi_send_cc(&midi_device, 1, 0x7B, 0);
-              // midi_send_cc(&midi_device, 2, 0x7B, 0);
-              // midi_send_cc(&midi_device, 3, 0x7B, 0);
-              // midi_send_cc(&midi_device, 4, 0x7B, 0);
           }
           }
           return false;
           return false;
       }
       }
       if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
       if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
           offset++; // Change scale
           offset++; // Change scale
           midi_send_cc(&midi_device, 0, 0x7B, 0);
           midi_send_cc(&midi_device, 0, 0x7B, 0);
-          // midi_send_cc(&midi_device, 1, 0x7B, 0);
-          // midi_send_cc(&midi_device, 2, 0x7B, 0);
-          // midi_send_cc(&midi_device, 3, 0x7B, 0);
-          // midi_send_cc(&midi_device, 4, 0x7B, 0);
           return false;
           return false;
       }
       }
       if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
       if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) {
           offset--; // Change scale
           offset--; // Change scale
           midi_send_cc(&midi_device, 0, 0x7B, 0);
           midi_send_cc(&midi_device, 0, 0x7B, 0);
-          // midi_send_cc(&midi_device, 1, 0x7B, 0);
-          // midi_send_cc(&midi_device, 2, 0x7B, 0);
-          // midi_send_cc(&midi_device, 3, 0x7B, 0);
-          // midi_send_cc(&midi_device, 4, 0x7B, 0);
           return false;
           return false;
       }
       }
       // basic
       // basic
@@ -356,7 +348,7 @@ bool process_record_quantum(keyrecord_t *record) {
 #define DISABLE_CHORDING
 #define DISABLE_CHORDING
 #ifndef DISABLE_CHORDING
 #ifndef DISABLE_CHORDING
 
 
-  if (keycode >= 0x5700 && keycode <= 0x57FF) {
+  if (keycode >= QK_CHORDING && keycode <= QK_CHORDING_MAX) {
     if (record->event.pressed) {
     if (record->event.pressed) {
       if (!chording) {
       if (!chording) {
         chording = true;
         chording = true;
@@ -394,7 +386,7 @@ bool process_record_quantum(keyrecord_t *record) {
 
 
 #ifdef UNICODE_ENABLE
 #ifdef UNICODE_ENABLE
 
 
-  if (keycode > UNICODE(0) && record->event.pressed) {
+  if (keycode > QK_UNICODE && record->event.pressed) {
     uint16_t unicode = keycode & 0x7FFF;
     uint16_t unicode = keycode & 0x7FFF;
     switch(input_mode) {
     switch(input_mode) {
       case UC_OSX:
       case UC_OSX:
@@ -431,43 +423,120 @@ bool process_record_quantum(keyrecord_t *record) {
 
 
 #endif
 #endif
 
 
+  // Shift / paren setup
+
   switch(keycode) {
   switch(keycode) {
+    case RESET:
+      if (record->event.pressed) {
+        clear_keyboard();
+        #ifdef AUDIO_ENABLE
+          stop_all_notes();
+          shutdown_user();
+        #endif
+        _delay_ms(250);
+        #ifdef ATREUS_ASTAR
+            *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific
+        #endif
+        bootloader_jump();
+        return false;
+      }
+      break;
+    case DEBUG:
+      if (record->event.pressed) {
+          print("\nDEBUG: enabled.\n");
+          debug_enable = true;
+          return false;
+      }
+      break;
+    case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_UNSWAP_ALT_GUI:
+      if (record->event.pressed) {
+        // MAGIC actions (BOOTMAGIC without the boot)
+        if (!eeconfig_is_enabled()) {
+            eeconfig_init();
+        }
+        /* keymap config */
+        keymap_config.raw = eeconfig_read_keymap();
+        if (keycode == MAGIC_SWAP_CONTROL_CAPSLOCK) {
+            keymap_config.swap_control_capslock = 1;
+        } else if (keycode == MAGIC_CAPSLOCK_TO_CONTROL) {
+            keymap_config.capslock_to_control = 1;
+        } else if (keycode == MAGIC_SWAP_LALT_LGUI) {
+            keymap_config.swap_lalt_lgui = 1;
+        } else if (keycode == MAGIC_SWAP_RALT_RGUI) {
+            keymap_config.swap_ralt_rgui = 1;
+        } else if (keycode == MAGIC_NO_GUI) {
+            keymap_config.no_gui = 1;
+        } else if (keycode == MAGIC_SWAP_GRAVE_ESC) {
+            keymap_config.swap_grave_esc = 1;
+        } else if (keycode == MAGIC_SWAP_BACKSLASH_BACKSPACE) {
+            keymap_config.swap_backslash_backspace = 1;
+        } else if (keycode == MAGIC_HOST_NKRO) {
+            keymap_config.nkro = 1;
+        } else if (keycode == MAGIC_SWAP_ALT_GUI) {
+            keymap_config.swap_lalt_lgui = 1;
+            keymap_config.swap_ralt_rgui = 1;
+        }
+        /* UNs */
+        else if (keycode == MAGIC_UNSWAP_CONTROL_CAPSLOCK) {
+            keymap_config.swap_control_capslock = 0;
+        } else if (keycode == MAGIC_UNCAPSLOCK_TO_CONTROL) {
+            keymap_config.capslock_to_control = 0;
+        } else if (keycode == MAGIC_UNSWAP_LALT_LGUI) {
+            keymap_config.swap_lalt_lgui = 0;
+        } else if (keycode == MAGIC_UNSWAP_RALT_RGUI) {
+            keymap_config.swap_ralt_rgui = 0;
+        } else if (keycode == MAGIC_UNNO_GUI) {
+            keymap_config.no_gui = 0;
+        } else if (keycode == MAGIC_UNSWAP_GRAVE_ESC) {
+            keymap_config.swap_grave_esc = 0;
+        } else if (keycode == MAGIC_UNSWAP_BACKSLASH_BACKSPACE) {
+            keymap_config.swap_backslash_backspace = 0;
+        } else if (keycode == MAGIC_UNHOST_NKRO) {
+            keymap_config.nkro = 0;
+        } else if (keycode == MAGIC_UNSWAP_ALT_GUI) {
+            keymap_config.swap_lalt_lgui = 0;
+            keymap_config.swap_ralt_rgui = 0;
+        }
+        eeconfig_update_keymap(keymap_config.raw);
+        return false;
+      }
+      break;
     case KC_LSPO: {
     case KC_LSPO: {
-                    if (record->event.pressed) {
-                      shift_interrupted[0] = false;
-                      register_mods(MOD_BIT(KC_LSFT));
-                    }
-                    else {
-                      if (!shift_interrupted[0]) {
-                        register_code(KC_9);
-                        unregister_code(KC_9);
-                      }
-                      unregister_mods(MOD_BIT(KC_LSFT));
-                    }
-                    return false;
-                    break;
-                  }
+      if (record->event.pressed) {
+        shift_interrupted[0] = false;
+        register_mods(MOD_LSFT);
+      }
+      else {
+        if (!shift_interrupted[0]) {
+          register_code(LSPO_KEY);
+          unregister_code(LSPO_KEY);
+        }
+        unregister_mods(MOD_LSFT);
+      }
+      return false;
+      break;
+    }
 
 
     case KC_RSPC: {
     case KC_RSPC: {
-                    if (record->event.pressed) {
-                      shift_interrupted[1] = false;
-                      register_mods(MOD_BIT(KC_RSFT));
-                    }
-                    else {
-                      if (!shift_interrupted[1]) {
-                        register_code(KC_0);
-                        unregister_code(KC_0);
-                      }
-                      unregister_mods(MOD_BIT(KC_RSFT));
-                    }
-                    return false;
-                    break;
-                  }
+      if (record->event.pressed) {
+        shift_interrupted[1] = false;
+        register_mods(MOD_RSFT);
+      }
+      else {
+        if (!shift_interrupted[1]) {
+          register_code(RSPC_KEY);
+          unregister_code(RSPC_KEY);
+        }
+        unregister_mods(MOD_RSFT);
+      }
+      return false;
+      break;
+    }
     default: {
     default: {
-               shift_interrupted[0] = true;
-               shift_interrupted[1] = true;
-               break;
-             }
+      shift_interrupted[0] = true;
+      shift_interrupted[1] = true;
+      break;
+    }
   }
   }
 
 
   return process_action_kb(record);
   return process_action_kb(record);
@@ -575,6 +644,13 @@ void send_string(const char *str) {
     }
     }
 }
 }
 
 
+void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
+    layer_on(layer3);
+  } else {
+    layer_off(layer3);
+  }
+}
 
 
 void matrix_init_quantum() {
 void matrix_init_quantum() {
   matrix_init_kb();
   matrix_init_kb();

+ 9 - 4
quantum/quantum.h

@@ -3,7 +3,7 @@
 
 
 #include <avr/pgmspace.h>
 #include <avr/pgmspace.h>
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #ifdef BACKLIGHT_ENABLE
 #ifdef BACKLIGHT_ENABLE
     #include "backlight.h"
     #include "backlight.h"
 #endif
 #endif
@@ -25,8 +25,8 @@
 #include <stddef.h>
 #include <stddef.h>
 #include <avr/io.h>
 #include <avr/io.h>
 #include <util/delay.h>
 #include <util/delay.h>
-
-#define SEND_STRING(str) send_string(PSTR(str))
+#include "bootloader.h"
+#include "timer.h"
 
 
 extern uint32_t default_layer_state;
 extern uint32_t default_layer_state;
 
 
@@ -62,15 +62,20 @@ extern uint32_t default_layer_state;
 	#define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT)
 	#define LEADER_DICTIONARY() if (leading && timer_elapsed(leader_time) > LEADER_TIMEOUT)
 #endif
 #endif
 
 
+#define SEND_STRING(str) send_string(PSTR(str))
 void send_string(const char *str);
 void send_string(const char *str);
 
 
+// For tri-layer
+void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3);
+#define IS_LAYER_ON(layer)  (layer_state & (1UL << (layer)))
+#define IS_LAYER_OFF(layer) (~layer_state & (1UL << (layer)))
+
 void matrix_init_kb(void);
 void matrix_init_kb(void);
 void matrix_scan_kb(void);
 void matrix_scan_kb(void);
 bool process_action_kb(keyrecord_t *record);
 bool process_action_kb(keyrecord_t *record);
 bool process_record_kb(uint16_t keycode, keyrecord_t *record);
 bool process_record_kb(uint16_t keycode, keyrecord_t *record);
 bool process_record_user(uint16_t keycode, keyrecord_t *record);
 bool process_record_user(uint16_t keycode, keyrecord_t *record);
 
 
-
 bool is_music_on(void);
 bool is_music_on(void);
 void music_toggle(void);
 void music_toggle(void);
 void music_on(void);
 void music_on(void);

+ 1 - 1
quantum/template/template.h

@@ -2,7 +2,7 @@
 #define %KEYBOARD_UPPERCASE%_H
 #define %KEYBOARD_UPPERCASE%_H
 
 
 #include "matrix.h"
 #include "matrix.h"
-#include "keymap_common.h"
+#include "keymap.h"
 #ifdef BACKLIGHT_ENABLE
 #ifdef BACKLIGHT_ENABLE
 	#include "backlight.h"
 	#include "backlight.h"
 #endif
 #endif

+ 0 - 1
tmk_core/common.mk

@@ -6,7 +6,6 @@ SRC +=	$(COMMON_DIR)/host.c \
 	$(COMMON_DIR)/action_macro.c \
 	$(COMMON_DIR)/action_macro.c \
 	$(COMMON_DIR)/action_layer.c \
 	$(COMMON_DIR)/action_layer.c \
 	$(COMMON_DIR)/action_util.c \
 	$(COMMON_DIR)/action_util.c \
-	$(COMMON_DIR)/keymap.c \
 	$(COMMON_DIR)/print.c \
 	$(COMMON_DIR)/print.c \
 	$(COMMON_DIR)/debug.c \
 	$(COMMON_DIR)/debug.c \
 	$(COMMON_DIR)/util.c \
 	$(COMMON_DIR)/util.c \

+ 0 - 193
tmk_core/common/keymap.c

@@ -1,193 +0,0 @@
-/*
-Copyright 2013 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-#include "keymap.h"
-#include "report.h"
-#include "keycode.h"
-#include "action_layer.h"
-#include "action.h"
-#include "action_macro.h"
-#include "wait.h"
-#include "debug.h"
-#include "bootloader.h"
-
-static action_t keycode_to_action(uint8_t keycode);
-
-
-/* converts key to action */
-__attribute__ ((weak))
-action_t action_for_key(uint8_t layer, keypos_t key)
-{
-    uint8_t keycode = keymap_key_to_keycode(layer, key);
-    switch (keycode) {
-        case KC_FN0 ... KC_FN31:
-            return keymap_fn_to_action(keycode);
-#ifdef BOOTMAGIC_ENABLE
-        case KC_CAPSLOCK:
-        case KC_LOCKING_CAPS:
-            if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) {
-                return keycode_to_action(KC_LCTL);
-            }
-            return keycode_to_action(keycode);
-        case KC_LCTL:
-            if (keymap_config.swap_control_capslock) {
-                return keycode_to_action(KC_CAPSLOCK);
-            }
-            return keycode_to_action(KC_LCTL);
-        case KC_LALT:
-            if (keymap_config.swap_lalt_lgui) {
-                if (keymap_config.no_gui) {
-                    return keycode_to_action(ACTION_NO);
-                }
-                return keycode_to_action(KC_LGUI);
-            }
-            return keycode_to_action(KC_LALT);
-        case KC_LGUI:
-            if (keymap_config.swap_lalt_lgui) {
-                return keycode_to_action(KC_LALT);
-            }
-            if (keymap_config.no_gui) {
-                return keycode_to_action(ACTION_NO);
-            }
-            return keycode_to_action(KC_LGUI);
-        case KC_RALT:
-            if (keymap_config.swap_ralt_rgui) {
-                if (keymap_config.no_gui) {
-                    return keycode_to_action(ACTION_NO);
-                }
-                return keycode_to_action(KC_RGUI);
-            }
-            return keycode_to_action(KC_RALT);
-        case KC_RGUI:
-            if (keymap_config.swap_ralt_rgui) {
-                return keycode_to_action(KC_RALT);
-            }
-            if (keymap_config.no_gui) {
-                return keycode_to_action(ACTION_NO);
-            }
-            return keycode_to_action(KC_RGUI);
-        case KC_GRAVE:
-            if (keymap_config.swap_grave_esc) {
-                return keycode_to_action(KC_ESC);
-            }
-            return keycode_to_action(KC_GRAVE);
-        case KC_ESC:
-            if (keymap_config.swap_grave_esc) {
-                return keycode_to_action(KC_GRAVE);
-            }
-            return keycode_to_action(KC_ESC);
-        case KC_BSLASH:
-            if (keymap_config.swap_backslash_backspace) {
-                return keycode_to_action(KC_BSPACE);
-            }
-            return keycode_to_action(KC_BSLASH);
-        case KC_BSPACE:
-            if (keymap_config.swap_backslash_backspace) {
-                return keycode_to_action(KC_BSLASH);
-            }
-            return keycode_to_action(KC_BSPACE);
-#endif
-        default:
-            return keycode_to_action(keycode);
-    }
-}
-
-
-/* Macro */
-__attribute__ ((weak))
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
-    return MACRO_NONE;
-}
-
-/* Function */
-__attribute__ ((weak))
-void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
-}
-
-
-
-/* translates keycode to action */
-static action_t keycode_to_action(uint8_t keycode)
-{
-    action_t action;
-    switch (keycode) {
-        case KC_A ... KC_EXSEL:
-        case KC_LCTRL ... KC_RGUI:
-            action.code = ACTION_KEY(keycode);
-            break;
-        case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
-            action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
-            break;
-        case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
-            action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
-            break;
-        case KC_MS_UP ... KC_MS_ACCEL2:
-            action.code = ACTION_MOUSEKEY(keycode);
-            break;
-        case KC_TRNS:
-            action.code = ACTION_TRANSPARENT;
-            break;
-        case KC_BOOTLOADER:
-        	action.code = ACTION_NO;
-            clear_keyboard();
-            wait_ms(50);
-            bootloader_jump(); // not return
-            break;
-        default:
-            action.code = ACTION_NO;
-            break;
-    }
-    return action;
-}
-
-
-
-#ifdef USE_LEGACY_KEYMAP
-/*
- * Legacy keymap support
- *      Consider using new keymap API instead.
- */
-__attribute__ ((weak))
-uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
-{
-    return keymap_get_keycode(layer, key.row, key.col);
-}
-
-
-/* Legacy keymap support */
-__attribute__ ((weak))
-action_t keymap_fn_to_action(uint8_t keycode)
-{
-    action_t action = { .code = ACTION_NO };
-    switch (keycode) {
-        case KC_FN0 ... KC_FN31:
-            {
-                uint8_t layer = keymap_fn_layer(FN_INDEX(keycode));
-                uint8_t key = keymap_fn_keycode(FN_INDEX(keycode));
-                if (key) {
-                    action.code = ACTION_LAYER_TAP_KEY(layer, key);
-                } else {
-                    action.code = ACTION_LAYER_MOMENTARY(layer);
-                }
-            }
-            return action;
-        default:
-            return action;
-    }
-}
-#endif

+ 0 - 68
tmk_core/common/keymap.h

@@ -1,68 +0,0 @@
-/*
-Copyright 2011 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef KEYMAP_H
-#define KEYMAP_H
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "action.h"
-
-/* NOTE: Not portable. Bit field order depends on implementation */
-typedef union {
-    uint8_t raw;
-    struct {
-        bool swap_control_capslock:1;
-        bool capslock_to_control:1;
-        bool swap_lalt_lgui:1;
-        bool swap_ralt_rgui:1;
-        bool no_gui:1;
-        bool swap_grave_esc:1;
-        bool swap_backslash_backspace:1;
-        bool nkro:1;
-    };
-} keymap_config_t;
-keymap_config_t keymap_config;
-
-
-/* translates key to keycode */
-uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key);
-
-/* translates Fn keycode to action */
-action_t keymap_fn_to_action(uint8_t keycode);
-
-
-
-#ifdef USE_LEGACY_KEYMAP
-/* 
- * Legacy keymap
- *      Consider using new keymap API above instead.
- */
-/* keycode of key */
-__attribute__ ((deprecated))
-uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col);
-
-/* layer to move during press Fn key */
-__attribute__ ((deprecated))
-uint8_t keymap_fn_layer(uint8_t fn_bits);
-
-/* keycode to send when release Fn key without using */
-__attribute__ ((deprecated))
-uint8_t keymap_fn_keycode(uint8_t fn_bits);
-#endif
-
-#endif

+ 1 - 5
tmk_core/protocol/lufa.mk

@@ -18,11 +18,7 @@ LUFA_SRC = lufa.c \
 	   $(LUFA_SRC_USB)
 	   $(LUFA_SRC_USB)
 
 
 ifeq ($(strip $(MIDI_ENABLE)), yes)
 ifeq ($(strip $(MIDI_ENABLE)), yes)
-	LUFA_SRC += midi/midi.c \
-	   midi/midi_device.c \
-	   midi/bytequeue/bytequeue.c \
-	   midi/bytequeue/interrupt_setting.c \
-	   $(LUFA_SRC_USBCLASS)
+	include $(TMK_PATH)/protocol/midi.mk
 endif
 endif
 
 
 ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
 ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)

+ 0 - 274
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.c

@@ -1,274 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2014.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaims all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *
- *  Main source file for the AudioInput demo. This file contains the main tasks of
- *  the demo and is responsible for the initial application hardware configuration.
- */
-
-#include "AudioInput.h"
-
-/** LUFA Audio Class driver interface configuration and state information. This structure is
- *  passed to all Audio Class driver functions, so that multiple instances of the same class
- *  within a device can be differentiated from one another.
- */
-USB_ClassInfo_Audio_Device_t Microphone_Audio_Interface =
-	{
-		.Config =
-			{
-				.ControlInterfaceNumber   = INTERFACE_ID_AudioControl,
-				.StreamingInterfaceNumber = INTERFACE_ID_AudioStream,
-				.DataINEndpoint           =
-					{
-						.Address          = AUDIO_STREAM_EPADDR,
-						.Size             = AUDIO_STREAM_EPSIZE,
-						.Banks            = 2,
-					},
-			},
-	};
-
-/** Current audio sampling frequency of the streaming audio endpoint. */
-static uint32_t CurrentAudioSampleFrequency = 48000;
-
-
-/** Main program entry point. This routine contains the overall program flow, including initial
- *  setup of all components and the main program loop.
- */
-int main(void)
-{
-	SetupHardware();
-
-	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-	GlobalInterruptEnable();
-
-	for (;;)
-	{
-		Audio_Device_USBTask(&Microphone_Audio_Interface);
-		USB_USBTask();
-	}
-}
-
-/** Configures the board hardware and chip peripherals for the demo's functionality. */
-void SetupHardware(void)
-{
-#if (ARCH == ARCH_AVR8)
-	/* Disable watchdog if enabled by bootloader/fuses */
-	MCUSR &= ~(1 << WDRF);
-	wdt_disable();
-
-	/* Disable clock division */
-	clock_prescale_set(clock_div_1);
-#endif
-
-	/* Hardware Initialization */
-	LEDs_Init();
-	Buttons_Init();
-	ADC_Init(ADC_FREE_RUNNING | ADC_PRESCALE_32);
-	ADC_SetupChannel(MIC_IN_ADC_CHANNEL);
-	USB_Init();
-
-	/* Start the ADC conversion in free running mode */
-	ADC_StartReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | ADC_GET_CHANNEL_MASK(MIC_IN_ADC_CHANNEL));
-}
-
-/** ISR to handle the reloading of the data endpoint with the next sample. */
-ISR(TIMER0_COMPA_vect, ISR_BLOCK)
-{
-	uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
-
-	/* Check that the USB bus is ready for the next sample to write */
-	if (Audio_Device_IsReadyForNextSample(&Microphone_Audio_Interface))
-	{
-		int16_t AudioSample;
-
-		#if defined(USE_TEST_TONE)
-			static uint8_t SquareWaveSampleCount;
-			static int16_t CurrentWaveValue;
-
-			/* In test tone mode, generate a square wave at 1/256 of the sample rate */
-			if (SquareWaveSampleCount++ == 0xFF)
-			  CurrentWaveValue ^= 0x8000;
-
-			/* Only generate audio if the board button is being pressed */
-			AudioSample = (Buttons_GetStatus() & BUTTONS_BUTTON1) ? CurrentWaveValue : 0;
-		#else
-			/* Audio sample is ADC value scaled to fit the entire range */
-			AudioSample = ((SAMPLE_MAX_RANGE / ADC_MAX_RANGE) * ADC_GetResult());
-
-			#if defined(MICROPHONE_BIASED_TO_HALF_RAIL)
-			/* Microphone is biased to half rail voltage, subtract the bias from the sample value */
-			AudioSample -= (SAMPLE_MAX_RANGE / 2);
-			#endif
-		#endif
-
-		Audio_Device_WriteSample16(&Microphone_Audio_Interface, AudioSample);
-	}
-
-	Endpoint_SelectEndpoint(PrevEndpoint);
-}
-
-/** Event handler for the library USB Connection event. */
-void EVENT_USB_Device_Connect(void)
-{
-	LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
-
-	/* Sample reload timer initialization */
-	TIMSK0  = (1 << OCIE0A);
-	OCR0A   = ((F_CPU / 8 / CurrentAudioSampleFrequency) - 1);
-	TCCR0A  = (1 << WGM01);  // CTC mode
-	TCCR0B  = (1 << CS01);   // Fcpu/8 speed
-}
-
-/** Event handler for the library USB Disconnection event. */
-void EVENT_USB_Device_Disconnect(void)
-{
-	/* Stop the sample reload timer */
-	TCCR0B = 0;
-
-	LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
-}
-
-/** Event handler for the library USB Configuration Changed event. */
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
-	bool ConfigSuccess = true;
-
-	ConfigSuccess &= Audio_Device_ConfigureEndpoints(&Microphone_Audio_Interface);
-
-	LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
-}
-
-/** Event handler for the library USB Control Request reception event. */
-void EVENT_USB_Device_ControlRequest(void)
-{
-	Audio_Device_ProcessControlRequest(&Microphone_Audio_Interface);
-}
-
-/** Audio class driver callback for the setting and retrieval of streaming endpoint properties. This callback must be implemented
- *  in the user application to handle property manipulations on streaming audio endpoints.
- *
- *  When the DataLength parameter is NULL, this callback should only indicate whether the specified operation is valid for
- *  the given endpoint index, and should return as fast as possible. When non-NULL, this value may be altered for GET operations
- *  to indicate the size of the retrieved data.
- *
- *  \note The length of the retrieved data stored into the Data buffer on GET operations should not exceed the initial value
- *        of the \c DataLength parameter.
- *
- *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
- *  \param[in]     EndpointProperty    Property of the endpoint to get or set, a value from Audio_ClassRequests_t.
- *  \param[in]     EndpointAddress     Address of the streaming endpoint whose property is being referenced.
- *  \param[in]     EndpointControl     Parameter of the endpoint to get or set, a value from Audio_EndpointControls_t.
- *  \param[in,out] DataLength          For SET operations, the length of the parameter data to set. For GET operations, the maximum
- *                                     length of the retrieved data. When NULL, the function should return whether the given property
- *                                     and parameter is valid for the requested endpoint without reading or modifying the Data buffer.
- *  \param[in,out] Data                Pointer to a location where the parameter data is stored for SET operations, or where
- *                                     the retrieved data is to be stored for GET operations.
- *
- *  \return Boolean \c true if the property get/set was successful, \c false otherwise
- */
-bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
-                                                  const uint8_t EndpointProperty,
-                                                  const uint8_t EndpointAddress,
-                                                  const uint8_t EndpointControl,
-                                                  uint16_t* const DataLength,
-                                                  uint8_t* Data)
-{
-	/* Check the requested endpoint to see if a supported endpoint is being manipulated */
-	if (EndpointAddress == Microphone_Audio_Interface.Config.DataINEndpoint.Address)
-	{
-		/* Check the requested control to see if a supported control is being manipulated */
-		if (EndpointControl == AUDIO_EPCONTROL_SamplingFreq)
-		{
-			switch (EndpointProperty)
-			{
-				case AUDIO_REQ_SetCurrent:
-					/* Check if we are just testing for a valid property, or actually adjusting it */
-					if (DataLength != NULL)
-					{
-						/* Set the new sampling frequency to the value given by the host */
-						CurrentAudioSampleFrequency = (((uint32_t)Data[2] << 16) | ((uint32_t)Data[1] << 8) | (uint32_t)Data[0]);
-
-						/* Adjust sample reload timer to the new frequency */
-						OCR0A = ((F_CPU / 8 / CurrentAudioSampleFrequency) - 1);
-					}
-
-					return true;
-				case AUDIO_REQ_GetCurrent:
-					/* Check if we are just testing for a valid property, or actually reading it */
-					if (DataLength != NULL)
-					{
-						*DataLength = 3;
-
-						Data[2] = (CurrentAudioSampleFrequency >> 16);
-						Data[1] = (CurrentAudioSampleFrequency >> 8);
-						Data[0] = (CurrentAudioSampleFrequency &  0xFF);
-					}
-
-					return true;
-			}
-		}
-	}
-
-	return false;
-}
-
-/** Audio class driver callback for the setting and retrieval of streaming interface properties. This callback must be implemented
- *  in the user application to handle property manipulations on streaming audio interfaces.
- *
- *  When the DataLength parameter is NULL, this callback should only indicate whether the specified operation is valid for
- *  the given entity and should return as fast as possible. When non-NULL, this value may be altered for GET operations
- *  to indicate the size of the retrieved data.
- *
- *  \note The length of the retrieved data stored into the Data buffer on GET operations should not exceed the initial value
- *        of the \c DataLength parameter.
- *
- *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
- *  \param[in]     Property            Property of the interface to get or set, a value from Audio_ClassRequests_t.
- *  \param[in]     EntityAddress       Address of the audio entity whose property is being referenced.
- *  \param[in]     Parameter           Parameter of the entity to get or set, specific to each type of entity (see USB Audio specification).
- *  \param[in,out] DataLength          For SET operations, the length of the parameter data to set. For GET operations, the maximum
- *                                     length of the retrieved data. When NULL, the function should return whether the given property
- *                                     and parameter is valid for the requested endpoint without reading or modifying the Data buffer.
- *  \param[in,out] Data                Pointer to a location where the parameter data is stored for SET operations, or where
- *                                     the retrieved data is to be stored for GET operations.
- *
- *  \return Boolean \c true if the property GET/SET was successful, \c false otherwise
- */
-bool CALLBACK_Audio_Device_GetSetInterfaceProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
-                                                   const uint8_t Property,
-                                                   const uint8_t EntityAddress,
-                                                   const uint16_t Parameter,
-                                                   uint16_t* const DataLength,
-                                                   uint8_t* Data)
-{
-	/* No audio interface entities in the device descriptor, thus no properties to get or set. */
-	return false;
-}

+ 0 - 94
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.h

@@ -1,94 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2014.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaims all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *
- *  Header file for AudioInput.c.
- */
-
-#ifndef _AUDIO_INPUT_H_
-#define _AUDIO_INPUT_H_
-
-	/* Includes: */
-		#include <avr/io.h>
-		#include <avr/wdt.h>
-		#include <avr/power.h>
-		#include <avr/interrupt.h>
-
-		#include <LUFA/Drivers/Board/LEDs.h>
-		#include <LUFA/Drivers/Board/Buttons.h>
-		#include <LUFA/Drivers/Peripheral/ADC.h>
-		#include <LUFA/Drivers/USB/USB.h>
-		#include <LUFA/Platform/Platform.h>
-
-		#include "Descriptors.h"
-		#include "Config/AppConfig.h"
-
-	/* Macros: */
-		/** Maximum audio sample value for the microphone input. */
-		#define SAMPLE_MAX_RANGE          0xFFFF
-
-		/** Maximum ADC range for the microphone input. */
-		#define ADC_MAX_RANGE             0x3FF
-
-		/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
-		#define LEDMASK_USB_NOTREADY      LEDS_LED1
-
-		/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
-		#define LEDMASK_USB_ENUMERATING  (LEDS_LED2 | LEDS_LED3)
-
-		/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
-		#define LEDMASK_USB_READY        (LEDS_LED2 | LEDS_LED4)
-
-		/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
-		#define LEDMASK_USB_ERROR        (LEDS_LED1 | LEDS_LED3)
-
-	/* Function Prototypes: */
-		void SetupHardware(void);
-
-		void EVENT_USB_Device_Connect(void);
-		void EVENT_USB_Device_Disconnect(void);
-		void EVENT_USB_Device_ConfigurationChanged(void);
-		void EVENT_USB_Device_ControlRequest(void);
-
-		bool CALLBACK_Audio_Device_GetSetEndpointProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
-		                                                  const uint8_t EndpointProperty,
-		                                                  const uint8_t EndpointAddress,
-		                                                  const uint8_t EndpointControl,
-		                                                  uint16_t* const DataLength,
-		                                                  uint8_t* Data) ATTR_NON_NULL_PTR_ARG(1);
-		bool CALLBACK_Audio_Device_GetSetInterfaceProperty(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo,
-		                                                   const uint8_t Property,
-		                                                   const uint8_t EntityAddress,
-		                                                   const uint16_t Parameter,
-		                                                   uint16_t* const DataLength,
-		                                                   uint8_t* Data);
-#endif
-

+ 0 - 92
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/AudioInput.txt

@@ -1,92 +0,0 @@
-/** \file
- *
- *  This file contains special DoxyGen information for the generation of the main page and other special
- *  documentation pages. It is not a project source file.
- */
-
-/** \mainpage Audio Input Device Demo
- *
- *  \section Sec_Compat Demo Compatibility:
- *
- *  The following list indicates what microcontrollers are compatible with this demo.
- *
- *  \li Series 7 USB AVRs (AT90USBxxx7)
- *  \li Series 6 USB AVRs (AT90USBxxx6)
- *  \li Series 4 USB AVRs (ATMEGAxxU4)
- *
- *  \section Sec_Info USB Information:
- *
- *  The following table gives a rundown of the USB utilization of this demo.
- *
- *  <table>
- *   <tr>
- *    <td><b>USB Mode:</b></td>
- *    <td>Device</td>
- *   </tr>
- *   <tr>
- *    <td><b>USB Class:</b></td>
- *    <td>Audio Class</td>
- *   </tr>
- *   <tr>
- *    <td><b>USB Subclass:</b></td>
- *    <td>Standard Audio Device</td>
- *   </tr>
- *   <tr>
- *    <td><b>Relevant Standards:</b></td>
- *    <td>USBIF Audio 1.0 Class Specification \n
- *        USBIF Audio 1.0 Class Terminal Types Specification \n
- *        USBIF Audio 1.0 Data Formats Specification</td>
- *   </tr>
- *   <tr>
- *    <td><b>Supported USB Speeds:</b></td>
- *    <td>Full Speed Mode</td>
- *   </tr>
- *  </table>
- *
- *  \section Sec_Description Project Description:
- *
- *  Audio demonstration application. This gives a simple reference
- *  application for implementing a USB Audio Input device using the
- *  basic USB Audio 1.0 drivers in all modern OSes (i.e. no special drivers
- *  required).
- *
- *  On start-up the system will automatically enumerate and function as a
- *  USB microphone. By default, the demo will produce a square wave test tone
- *  when the board button is pressed. If USE_TEST_TONE is not defined in the
- *  project makefile, incoming audio from the ADC channel 1 will be sampled
- *  and sent to the host computer instead.
- *
- *  When in microphone mode, connect a microphone to the ADC channel 2.
- *
- *  Under Windows, if a driver request dialogue pops up, select the option
- *  to automatically install the appropriate drivers.
- *
- *  \section Sec_Options Project Options
- *
- *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
- *
- *  <table>
- *   <tr>
- *    <th><b>Define Name:</b></th>
- *    <th><b>Location:</b></th>
- *    <th><b>Description:</b></th>
- *   </tr>
- *   <tr>
- *    <td>MIC_IN_ADC_CHANNEL</td>
- *    <td>AppConfig.h</td>
- *    <td>Sets the ADC channel used by the demo for the input audio samples from an attached microphone.</td>
- *   </tr>
- *   <tr>
- *    <td>USE_TEST_TONE</td>
- *    <td>AppConfig.h</td>
- *    <td>When defined, this alters the demo to produce a square wave test tone when the first board button is pressed
- *        instead of sampling the board microphone.</td>
- *   </tr>
- *   <tr>
- *    <td>MICROPHONE_BIASED_TO_HALF_RAIL</td>
- *    <td>AppConfig.h</td>
- *    <td>When defined, this alters the demo so that the half VCC bias of the microphone input is subtracted.</td>
- *   </tr>
- *  </table>
- */
-

+ 0 - 51
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Config/AppConfig.h

@@ -1,51 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2014.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaims all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *  \brief Application Configuration Header File
- *
- *  This is a header file which is be used to configure some of
- *  the application's compile time options, as an alternative to
- *  specifying the compile time constants supplied through a
- *  makefile or build system.
- *
- *  For information on what each token does, refer to the
- *  \ref Sec_Options section of the application documentation.
- */
-
-#ifndef _APP_CONFIG_H_
-#define _APP_CONFIG_H_
-
-	#define MIC_IN_ADC_CHANNEL               2
-
-	#define MICROPHONE_BIASED_TO_HALF_RAIL
-	#define USE_TEST_TONE
-
-#endif

+ 0 - 93
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Config/LUFAConfig.h

@@ -1,93 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2014.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaims all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *  \brief LUFA Library Configuration Header File
- *
- *  This header file is used to configure LUFA's compile time options,
- *  as an alternative to the compile time constants supplied through
- *  a makefile.
- *
- *  For information on what each token does, refer to the LUFA
- *  manual section "Summary of Compile Tokens".
- */
-
-#ifndef _LUFA_CONFIG_H_
-#define _LUFA_CONFIG_H_
-
-	#if (ARCH == ARCH_AVR8)
-
-		/* Non-USB Related Configuration Tokens: */
-//		#define DISABLE_TERMINAL_CODES
-
-		/* USB Class Driver Related Tokens: */
-//		#define HID_HOST_BOOT_PROTOCOL_ONLY
-//		#define HID_STATETABLE_STACK_DEPTH       {Insert Value Here}
-//		#define HID_USAGE_STACK_DEPTH            {Insert Value Here}
-//		#define HID_MAX_COLLECTIONS              {Insert Value Here}
-//		#define HID_MAX_REPORTITEMS              {Insert Value Here}
-//		#define HID_MAX_REPORT_IDS               {Insert Value Here}
-//		#define NO_CLASS_DRIVER_AUTOFLUSH
-
-		/* General USB Driver Related Tokens: */
-//		#define ORDERED_EP_CONFIG
-		#define USE_STATIC_OPTIONS               (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)
-		#define USB_DEVICE_ONLY
-//		#define USB_HOST_ONLY
-//		#define USB_STREAM_TIMEOUT_MS            {Insert Value Here}
-//		#define NO_LIMITED_CONTROLLER_CONNECT
-//		#define NO_SOF_EVENTS
-
-		/* USB Device Mode Driver Related Tokens: */
-//		#define USE_RAM_DESCRIPTORS
-		#define USE_FLASH_DESCRIPTORS
-//		#define USE_EEPROM_DESCRIPTORS
-//		#define NO_INTERNAL_SERIAL
-		#define FIXED_CONTROL_ENDPOINT_SIZE      8
-//		#define DEVICE_STATE_AS_GPIOR            {Insert Value Here}
-		#define FIXED_NUM_CONFIGURATIONS         1
-//		#define CONTROL_ONLY_DEVICE
-//		#define INTERRUPT_CONTROL_ENDPOINT
-//		#define NO_DEVICE_REMOTE_WAKEUP
-//		#define NO_DEVICE_SELF_POWER
-
-		/* USB Host Mode Driver Related Tokens: */
-//		#define HOST_STATE_AS_GPIOR              {Insert Value Here}
-//		#define USB_HOST_TIMEOUT_MS              {Insert Value Here}
-//		#define HOST_DEVICE_SETTLE_DELAY_MS	     {Insert Value Here}
-//		#define NO_AUTO_VBUS_MANAGEMENT
-//		#define INVERTED_VBUS_ENABLE_LINE
-
-	#else
-
-		#error Unsupported architecture for this LUFA configuration file.
-
-	#endif
-#endif

+ 0 - 312
tmk_core/protocol/lufa/LUFA-git/Demos/Device/ClassDriver/AudioInput/Descriptors.c

@@ -1,312 +0,0 @@
-/*
-             LUFA Library
-     Copyright (C) Dean Camera, 2014.
-
-  dean [at] fourwalledcubicle [dot] com
-           www.lufa-lib.org
-*/
-
-/*
-  Copyright 2014  Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
-  Permission to use, copy, modify, distribute, and sell this
-  software and its documentation for any purpose is hereby granted
-  without fee, provided that the above copyright notice appear in
-  all copies and that both that the copyright notice and this
-  permission notice and warranty disclaimer appear in supporting
-  documentation, and that the name of the author not be used in
-  advertising or publicity pertaining to distribution of the
-  software without specific, written prior permission.
-
-  The author disclaims all warranties with regard to this
-  software, including all implied warranties of merchantability
-  and fitness.  In no event shall the author be liable for any
-  special, indirect or consequential damages or any damages
-  whatsoever resulting from loss of use, data or profits, whether
-  in an action of contract, negligence or other tortious action,
-  arising out of or in connection with the use or performance of
-  this software.
-*/
-
-/** \file
- *
- *  USB Device Descriptors, for library use when in USB device mode. Descriptors are special
- *  computer-readable structures which the host requests upon device enumeration, to determine
- *  the device's capabilities and functions.
- */
-
-#include "Descriptors.h"
-
-/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
- *  device characteristics, including the supported USB version, control endpoint size and the
- *  number of device configurations. The descriptor is read out by the USB host when the enumeration
- *  process begins.
- */
-const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
-{
-	.Header                 = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device},
-
-	.USBSpecification       = VERSION_BCD(2,0,0),
-	.Class                  = USB_CSCP_NoDeviceClass,
-	.SubClass               = USB_CSCP_NoDeviceSubclass,
-	.Protocol               = USB_CSCP_NoDeviceProtocol,
-
-	.Endpoint0Size          = FIXED_CONTROL_ENDPOINT_SIZE,
-
-	.VendorID               = 0x03EB,
-	.ProductID              = 0x2047,
-	.ReleaseNumber          = VERSION_BCD(0,0,2),
-
-	.ManufacturerStrIndex   = STRING_ID_Manufacturer,
-	.ProductStrIndex        = STRING_ID_Product,
-	.SerialNumStrIndex      = NO_DESCRIPTOR,
-
-	.NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
-};
-
-/** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage
- *  of the device in one of its supported configurations, including information about any device interfaces
- *  and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting
- *  a configuration so that the host may correctly communicate with the USB device.
- */
-const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
-{
-	.Config =
-		{
-			.Header                   = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration},
-
-			.TotalConfigurationSize   = sizeof(USB_Descriptor_Configuration_t),
-			.TotalInterfaces          = 2,
-
-			.ConfigurationNumber      = 1,
-			.ConfigurationStrIndex    = NO_DESCRIPTOR,
-
-			.ConfigAttributes         = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED),
-
-			.MaxPowerConsumption      = USB_CONFIG_POWER_MA(100)
-		},
-
-	.Audio_ControlInterface =
-		{
-			.Header                   = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
-			.InterfaceNumber          = INTERFACE_ID_AudioControl,
-			.AlternateSetting         = 0,
-
-			.TotalEndpoints           = 0,
-
-			.Class                    = AUDIO_CSCP_AudioClass,
-			.SubClass                 = AUDIO_CSCP_ControlSubclass,
-			.Protocol                 = AUDIO_CSCP_ControlProtocol,
-
-			.InterfaceStrIndex        = NO_DESCRIPTOR
-		},
-
-	.Audio_ControlInterface_SPC =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_CSInterface},
-			.Subtype                  = AUDIO_DSUBTYPE_CSInterface_Header,
-
-			.ACSpecification          = VERSION_BCD(1,0,0),
-			.TotalLength              = (sizeof(USB_Audio_Descriptor_Interface_AC_t) +
-			                             sizeof(USB_Audio_Descriptor_InputTerminal_t) +
-			                             sizeof(USB_Audio_Descriptor_OutputTerminal_t)),
-
-			.InCollection             = 1,
-			.InterfaceNumber          = INTERFACE_ID_AudioStream,
-		},
-
-	.Audio_InputTerminal =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_InputTerminal_t), .Type = DTYPE_CSInterface},
-			.Subtype                  = AUDIO_DSUBTYPE_CSInterface_InputTerminal,
-
-			.TerminalID               = 0x01,
-			.TerminalType             = AUDIO_TERMINAL_IN_MIC,
-			.AssociatedOutputTerminal = 0x00,
-
-			.TotalChannels            = 1,
-			.ChannelConfig            = 0,
-
-			.ChannelStrIndex          = NO_DESCRIPTOR,
-			.TerminalStrIndex         = NO_DESCRIPTOR
-		},
-
-	.Audio_OutputTerminal =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_OutputTerminal_t), .Type = DTYPE_CSInterface},
-			.Subtype                  = AUDIO_DSUBTYPE_CSInterface_OutputTerminal,
-
-			.TerminalID               = 0x02,
-			.TerminalType             = AUDIO_TERMINAL_STREAMING,
-			.AssociatedInputTerminal  = 0x00,
-
-			.SourceID                 = 0x01,
-
-			.TerminalStrIndex         = NO_DESCRIPTOR
-		},
-
-	.Audio_StreamInterface_Alt0 =
-		{
-			.Header                   = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
-			.InterfaceNumber          = INTERFACE_ID_AudioStream,
-			.AlternateSetting         = 0,
-
-			.TotalEndpoints           = 0,
-
-			.Class                    = AUDIO_CSCP_AudioClass,
-			.SubClass                 = AUDIO_CSCP_AudioStreamingSubclass,
-			.Protocol                 = AUDIO_CSCP_StreamingProtocol,
-
-			.InterfaceStrIndex        = NO_DESCRIPTOR
-		},
-
-	.Audio_StreamInterface_Alt1 =
-		{
-			.Header                   = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
-
-			.InterfaceNumber          = INTERFACE_ID_AudioStream,
-			.AlternateSetting         = 1,
-
-			.TotalEndpoints           = 1,
-
-			.Class                    = AUDIO_CSCP_AudioClass,
-			.SubClass                 = AUDIO_CSCP_AudioStreamingSubclass,
-			.Protocol                 = AUDIO_CSCP_StreamingProtocol,
-
-			.InterfaceStrIndex        = NO_DESCRIPTOR
-		},
-
-	.Audio_StreamInterface_SPC =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Interface_AS_t), .Type = DTYPE_CSInterface},
-			.Subtype                  = AUDIO_DSUBTYPE_CSInterface_General,
-
-			.TerminalLink             = 0x02,
-
-			.FrameDelay               = 1,
-			.AudioFormat              = 0x0001
-		},
-
-	.Audio_AudioFormat =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_Format_t) +
-			                                     sizeof(ConfigurationDescriptor.Audio_AudioFormatSampleRates),
-			                             .Type = DTYPE_CSInterface},
-			.Subtype                  = AUDIO_DSUBTYPE_CSInterface_FormatType,
-
-			.FormatType               = 0x01,
-			.Channels                 = 0x01,
-
-			.SubFrameSize             = 0x02,
-			.BitResolution            = 16,
-
-			.TotalDiscreteSampleRates = (sizeof(ConfigurationDescriptor.Audio_AudioFormatSampleRates) / sizeof(USB_Audio_SampleFreq_t))
-		},
-
-	.Audio_AudioFormatSampleRates =
-		{
-			AUDIO_SAMPLE_FREQ(8000),
-			AUDIO_SAMPLE_FREQ(11025),
-			AUDIO_SAMPLE_FREQ(22050),
-			AUDIO_SAMPLE_FREQ(44100),
-			AUDIO_SAMPLE_FREQ(48000),
-		},
-
-	.Audio_StreamEndpoint =
-		{
-			.Endpoint =
-				{
-					.Header              = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint},
-
-					.EndpointAddress     = AUDIO_STREAM_EPADDR,
-					.Attributes          = (EP_TYPE_ISOCHRONOUS | ENDPOINT_ATTR_SYNC | ENDPOINT_USAGE_DATA),
-					.EndpointSize        = AUDIO_STREAM_EPSIZE,
-					.PollingIntervalMS   = 0x01
-				},
-
-			.Refresh                  = 0,
-			.SyncEndpointNumber       = 0
-		},
-
-	.Audio_StreamEndpoint_SPC =
-		{
-			.Header                   = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Spc_t), .Type = DTYPE_CSEndpoint},
-			.Subtype                  = AUDIO_DSUBTYPE_CSEndpoint_General,
-
-			.Attributes               = (AUDIO_EP_ACCEPTS_SMALL_PACKETS | AUDIO_EP_SAMPLE_FREQ_CONTROL),
-
-			.LockDelayUnits           = 0x00,
-			.LockDelay                = 0x0000
-		}
-};
-
-/** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests
- *  the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate
- *  via the language ID table available at USB.org what languages the device supports for its string descriptors.
- */
-const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG);
-
-/** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable
- *  form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
- *  Descriptor.
- */
-const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"Dean Camera");
-
-/** Product descriptor string. This is a Unicode string containing the product's details in human readable form,
- *  and is read out upon request by the host when the appropriate string ID is requested, listed in the Device
- *  Descriptor.
- */
-const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"LUFA Audio In Demo");
-
-/** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors"
- *  documentation) by the application code so that the address and size of a requested descriptor can be given
- *  to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function
- *  is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the
- *  USB host.
- */
-uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
-                                    const uint8_t wIndex,
-                                    const void** const DescriptorAddress)
-{
-	const uint8_t  DescriptorType   = (wValue >> 8);
-	const uint8_t  DescriptorNumber = (wValue & 0xFF);
-
-	const void* Address = NULL;
-	uint16_t    Size    = NO_DESCRIPTOR;
-
-	switch (DescriptorType)
-	{
-		case DTYPE_Device:
-			Address = &DeviceDescriptor;
-			Size    = sizeof(USB_Descriptor_Device_t);
-			break;
-		case DTYPE_Configuration:
-			Address = &ConfigurationDescriptor;
-			Size    = sizeof(USB_Descriptor_Configuration_t);
-			break;
-		case DTYPE_String:
-			switch (DescriptorNumber)
-			{
-				case STRING_ID_Language:
-					Address = &LanguageString;
-					Size    = pgm_read_byte(&LanguageString.Header.Size);
-					break;
-				case STRING_ID_Manufacturer:
-					Address = &ManufacturerString;
-					Size    = pgm_read_byte(&ManufacturerString.Header.Size);
-					break;
-				case STRING_ID_Product:
-					Address = &ProductString;
-					Size    = pgm_read_byte(&ProductString.Header.Size);
-					break;
-			}
-
-			break;
-	}
-
-	*DescriptorAddress = Address;
-	return Size;
-}
-

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff