From fbd8612ddb9a1c41d33cacefe82f70f5383bcbc0 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 21:05:16 -0400 Subject: [PATCH 01/94] Adding PS17 files --- keyboards/solartempest/ps17/config.h | 145 +++++ .../solartempest/ps17/firmware location.lnk | Bin 0 -> 1154 bytes keyboards/solartempest/ps17/info.json | 38 ++ .../ps17/keymaps/default/keymap.c | 365 +++++++++++++ .../solartempest/ps17/keymaps/via/config.h | 22 + .../solartempest/ps17/keymaps/via/keymap.c | 507 ++++++++++++++++++ .../solartempest/ps17/keymaps/via/rules.mk | 1 + .../ps17/keymaps/via_bright/config.h | 22 + .../ps17/keymaps/via_bright/keymap.c | 332 ++++++++++++ .../ps17/keymaps/via_bright/rules.mk | 1 + .../solartempest/ps17/ps17 VIA keymap.json | 51 ++ .../solartempest/ps17/ps17 VIA layout.json | 267 +++++++++ keyboards/solartempest/ps17/ps17.c | 68 +++ keyboards/solartempest/ps17/ps17.h | 61 +++ keyboards/solartempest/ps17/readme.md | 39 ++ keyboards/solartempest/ps17/rules.mk | 25 + 16 files changed, 1944 insertions(+) create mode 100644 keyboards/solartempest/ps17/config.h create mode 100644 keyboards/solartempest/ps17/firmware location.lnk create mode 100644 keyboards/solartempest/ps17/info.json create mode 100644 keyboards/solartempest/ps17/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/ps17/keymaps/via/config.h create mode 100644 keyboards/solartempest/ps17/keymaps/via/keymap.c create mode 100644 keyboards/solartempest/ps17/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/config.h create mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/keymap.c create mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/rules.mk create mode 100644 keyboards/solartempest/ps17/ps17 VIA keymap.json create mode 100644 keyboards/solartempest/ps17/ps17 VIA layout.json create mode 100644 keyboards/solartempest/ps17/ps17.c create mode 100644 keyboards/solartempest/ps17/ps17.h create mode 100644 keyboards/solartempest/ps17/readme.md create mode 100644 keyboards/solartempest/ps17/rules.mk diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h new file mode 100644 index 000000000000..a22d17fcb719 --- /dev/null +++ b/keyboards/solartempest/ps17/config.h @@ -0,0 +1,145 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0x414B // "AK" +#define PRODUCT_ID 0x0015 +#define DEVICE_VER 0x0002 // Ver2 +#define MANUFACTURER ATLANTIS +#define PRODUCT PS17 + +//#define ENCODER_RESOLUTION 2 // default is 4 + +// key matrix size +#ifdef RGBLIGHT_ENABLE + #define MATRIX_ROWS 6 +#endif +#ifdef RGB_MATRIX_ENABLE + #define MATRIX_ROWS 11 //Numpad actually has 6 rows. 5 rows were added for underglow RGB matrix to work together +#endif +#define MATRIX_COLS 4 + +// Encoder matrix +#define ENCODERS_PAD_A { D1 } +#define ENCODERS_PAD_B { D2 } +//#define ENCODER_DIRECTION_FLIP + +#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 +#define MATRIX_COL_PINS { F6, F7, D3, D6 } +#define UNUSED_PINS + +// COL2ROW or ROW2COL +#define DIODE_DIRECTION COL2ROW + +// For LED status indicators +#define LED_NUM_LOCK_PIN D0 +#define LED_CAPS_LOCK_PIN D5 +#define LED_SCROLL_LOCK_PIN D4 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN B7 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 28 // 17 key + 11 underglow for RGBLIGHT + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM + #define RGBLIGHT_LIMIT_VAL 180 // brightness level max is 255 + #define RGBLIGHT_LAYERS + #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping + #define RGBLIGHT_ANIMATIONS + + //RGB LED Conversion macro from physical array to electric array + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L00, L05, \ + L10, L15, \ + L20, L21, L22, L23, L24, L25, \ + L31, L32, L33, L34, \ + L40, L41, L42, L43, L45, \ + L51, L52, L53, L54, \ + L60, L61, L62, L63, L65 ) \ + { \ + L21,L22,L23,L24,L31,L32,L33,L34,L41,L42,L43,L51,L52,L53,L54,L61,L63,L60,L40,L20,L10,L00,L05,L15,L25,L45,L65,L62, \ + } + //RGB LED logical order map + //Right->Left, Top->Bottom + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 1, 0, \ + 3, 2, \ + 9, 8, 7, 6, 5, 4, \ + 13, 12, 11, 10, \ + 18, 17, 16, 15, 14, \ + 22, 21, 20, 19, \ + 27, 26, 25, 24, 23 ) +#endif + +#ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects + #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow + #define RGB_MATRIX_CENTER { 126, 126 }; + #define RGB_MATRIX_KEYPRESSES + #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_BAND_SAT + #define DISABLE_RGB_MATRIX_BAND_VAL + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define DISABLE_RGB_MATRIX_HUE_BREATHING + #define DISABLE_RGB_MATRIX_HUE_PENDULUM + #define DISABLE_RGB_MATRIX_HUE_WAVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define COMBO_COUNT 6 //Number of tap combos used +#define COMBO_TERM 350 //Default combo time is 200ms + +#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/firmware location.lnk b/keyboards/solartempest/ps17/firmware location.lnk new file mode 100644 index 0000000000000000000000000000000000000000..c5314c13be859041d58bab3b1a0f936a11ae7b65 GIT binary patch literal 1154 zcma)5TS$~q5T5md+Qrq>lr=S?WEFPZ^{yl-yY8;{%d(}gc|lj#bX|A<6$_&5VqmG= zP>QU4uzcu35muCi51CXZQeMaxDSC-Yu?RxK`sNpW2&Crco0&6n&di)S^XC$gB+w0< zXjtT=J4N2)2fg4&nMY{Sj6`y7(iDApM)J(+Ze&RnD;p&%VwJz7REp5*W$vZUT?5+o z5mWbay=p#^Bos*tPdVbemsj-r=4r|E09Cgfk-VmItWl7G)I}}|Cymai3n8@_G0Zsd z(2t7pa>{jCheVT0R$A6G_twx^8yq(@FMl-hdTH)z?e2_r{m5wj@cqNtZzP+sE(Y_Tc{G!f<0P30c-*Ijx19FrYayD;D9lc zW6ON2J=V$w%K@WNtB6fVBu%Q>Bv_n+S+F-$I$ai9lSObT3pAM-`DTZ$zPzT+X=|x; zB9SjC$-HJA9NCko?>C6Ea~12cJ}4dkF3B3pK4F-e%<)(_&Ati%74?-sGTEzK_NHcG zWdYv1RNnUDY;ET4PdDy;yR#Hpv^OX?(C3T)u?26(nbG4H|K%^ifcPMO9b&1Cg~qR{ zC$k!A*AM)h2L%GSC$G-y3M_#avJ7D+V4V)+jFp>iEqM!sIR@Bs#NGVvW zDVgF#EeXCjSW+m7;vtjZi^rz`R9LY!5s1So7FME%pmb(~GEe@q_`0jt*?@%(!`OgcY{gh|2dl-ttep1c zgXuu)Y*(@PA3{F@aBbK3Rms!3-}nzs({RDNkO`h+eh9HPPV;xC&HwdAYmX<#W=a9L ufV-P*+FPAXh5. + */ + +#include QMK_KEYBOARD_H +#include "PS17.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. Don't forget to update the VIA json as well. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use SAFE_RANGE when Via is disabled. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; + +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_PGUP, KC__MUTE, KC_PGDOWN, + MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, TD(TD_MINUS_NUMLOCK), + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + KC_LEFT, KC_TRNS, KC_RIGHT, + KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, + TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RESET, + RESET, KC_TRNS + ), + [_LAYER2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, + TO(0), KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO + ), + [_LAYER3] = LAYOUT( + ATABR, KC_TRNS, ATABF, + TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), + C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, + KC_PGDOWN, KC_PGUP + ), + [_LAYER4] = LAYOUT( + ATABR, KC_TRNS, ATABF, + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_RIGHT, + C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_SCROLLLOCK, + KC_F13, KC_F14 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 140; + static uint16_t perkey_brightness = 80; + static uint16_t lastrow_brightness = 15; //for less shine-through at case edges + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 1, 0, \ + 3, 2, \ + 9, 8, 7, 6, 5, 4, \ + 13, 12, 11, 10, \ + 18, 17, 16, 15, 14,\ + 22, 21, 20, 19, \ + 27, 26, 25, 24, 23 )*/ + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: //Photoshop custom layer (macros and keys all done in VIA) + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3) { //Underglow LEDs + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } + else if (i == 6) {rgblight_sethsv_at(148,255,perkey_brightness+15,i);} //Text - light blue + else if (i == 5) {rgblight_sethsv_at(140,255,perkey_brightness+15,i);} //New Layer - light blue + else if (i == 15) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Marquee - rose + else if (i == 9) {rgblight_sethsv_at(190,255,underglow_brightness,i);} //Underglow to match + else if (i == 13) {rgblight_sethsv_at(180,255,perkey_brightness+15,i);} //Healing Brush - purple + else if (i == 12) {rgblight_sethsv_at(185,255,perkey_brightness+15,i);} //Clone + else if (i == 11) {rgblight_sethsv_at(190,255,perkey_brightness+15,i);} //Default + else if (i == 7) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Brush + else if (i == 18) {rgblight_sethsv_at(230,255,underglow_brightness,i);} //Underglow to match + else if (i == 17) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //copy - red + else if (i == 16) {rgblight_sethsv_at(3,255,perkey_brightness+15,i);} //Paste + else if (i == 22) {rgblight_sethsv_at(5,255,perkey_brightness+15,i);} //Undo + else if (i == 21) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //Redo + else if (i == 26) {rgblight_sethsv_at(200,255,lastrow_brightness+15,i);} //Space - blue + else if (i == 24) {rgblight_sethsv_at(195,255,lastrow_brightness+15,i);} //Alt + else if (i == 20) {rgblight_sethsv_at(190,255,lastrow_brightness+15,i);} //Shift + else if (i == 27) {rgblight_sethsv_at(200,255,underglow_brightness,i);} //Underglow to match + else if (i == 10) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom in + else if (i == 19) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom out + else if (i == 25) {rgblight_sethsv_at(180,255,underglow_brightness,i);} //Underglow to match + else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h new file mode 100644 index 000000000000..4bbacd9a507b --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c new file mode 100644 index 000000000000..b75dc6fc7272 --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -0,0 +1,507 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "PS17.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + + +// IDLE TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes + #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) + + //prototype functions + uint16_t get_timeout_threshold(void); + void timeout_reset_timer(void); + void timeout_update_threshold(bool increase); + void timeout_tick_timer(void); +#endif //IDLE_TIMEOUT_ENABLE + + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +bool spam_arrow; +uint16_t spam_timer = false; +uint16_t spam_interval = 1000; // (1000ms == 1s) +bool teams_muted; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#endif + +#ifdef COMBO_ENABLE //Tap combos + enum combos { + kppls_7, //Hold plus and 7 to backspace + kppls_8, //Hold plus and 8 to delete + kpent_4, //Hold enter and 4 for left arrow + kpent_5, //Hold enter and 5 for down arrow + kpent_6, //Hold enter and 6 for right arrow + kpent_8, //Hold enter and 4'8 for up arrow + }; + const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; + const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; + const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; + const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; + const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; + combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE), + [kpent_4] = COMBO(kpent4_combo, KC_LEFT), + [kpent_5] = COMBO(kpent5_combo, KC_DOWN), + [kpent_6] = COMBO(kpent6_combo, KC_RGHT), + [kpent_8] = COMBO(kpent8_combo, KC_UP) + }; +#endif + +#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. + enum { + TD_MINUS_NUMLOCK, + }; + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), + }; + //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) +#endif + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_PGDOWN, KC__MUTE, KC_PGUP, + MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + KC_RIGHT, KC_TRNS, KC_LEFT, + KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, + TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RESET, + RESET, KC_TRNS + ), + [_LAYER2] = LAYOUT( + KC_RBRACKET, KC_TRNS, KC_LBRACKET, + TO(0), KC_B, KC_T, C(S(KC_N)), + KC_J, KC_S, KC_D, C(KC_MINS), + C(KC_C), C(KC_V), KC_M, + C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), + KC_SPACE, KC_LALT + ), + [_LAYER3] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), + C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, + KC_PGDOWN, KC_PGUP + ), + [_LAYER4] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_RIGHT, + C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, + KC_F13, KC_F14 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + + +// TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + static uint16_t timeout_timer = 0; + static uint16_t timeout_counter = 0; //in minute intervals + static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; + + uint16_t get_timeout_threshold(void) { + return timeout_threshold; + } + + void timeout_reset_timer(void) { + timeout_timer = timer_read(); + timeout_counter = 0; + }; + + void timeout_update_threshold(bool increase) { + if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; + if (!increase && timeout_threshold > 0) timeout_threshold--; + }; + + void timeout_tick_timer(void) { + if (timeout_threshold > 0) { + if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick + timeout_counter++; + timeout_timer = timer_read(); + } + #ifdef RGB_MATRIX_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgb_matrix_disable_noeeprom(); + } + #endif + #ifdef RGBLIGHT_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgblight_toggle_noeeprom(); + } + #endif + } // timeout_threshold = 0 will disable timeout + } + + __attribute__((weak)) void matrix_scan_keymap(void) {} +#endif // IDLE_TIMEOUT_ENABLE + + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { + spam_timer = timer_read(); + //tap_code(KC_UP); + //tap_code(KC_DOWN); + tap_code(KC_F24); + } + + #ifdef IDLE_TIMEOUT_ENABLE + timeout_tick_timer(); + matrix_scan_keymap(); + #endif // IDLE_TIMEOUT_ENABLE +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { //For keycode overrides + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case SPAMARROW: // Moves arrow up and down + if (record->event.pressed) { + spam_arrow ^= 1; + spam_timer = timer_read(); + if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on + rgblight_sethsv_at(15,255,120,24); + rgblight_sethsv_at(15,255,120,25); + rgblight_sethsv_at(15,255,120,26); + rgblight_sethsv_at(15,255,120,27); + } + else { + rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer + rgblight_sethsv_at(180,255,120,25); + rgblight_sethsv_at(180,255,120,26); + rgblight_sethsv_at(180,255,120,27); + } + } + return false; + + case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour + if (record->event.pressed) { + register_code(KC_LCTRL); + register_code(KC_LSFT); + register_code(KC_M); + unregister_code(KC_M); + unregister_code(KC_LSFT); + unregister_code(KC_LCTRL); + teams_muted ^= 1; + if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted + rgblight_sethsv_at(15,255,120,18); + rgblight_sethsv_at(15,255,120,22); + } + else { + rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer + rgblight_sethsv_at(175,255,120,22); + } + } + return true; + } + return true; +} + + +// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) +const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_layer4_layer +); + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_layers = my_rgb_layers;// Enable the LED layers + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + layer_move(0); //start on layer 0 to get the lighting activated + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + + /*static uint16_t underglow_brightness = 140; //This code can be used to have edge and underglow LEDs selectively brighter + static uint16_t perkey_brightness = 80; + static uint16_t lastrow_brightness = 50; //for less shine-through at case edges (brighter is okay for FR4 plate) + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + */ + // This is what the LED layout is. + // 1, 0, + // 3, 2, + // 9, 8, 7, 6, 5, 4, + // 13, 12, 11, 10, + // 18, 17, 16, 15, 14, + // 22, 21, 20, 19, + // 27, 26, 25, 24, 23 + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + case 1: + rgblight_sethsv_noeeprom(5,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + case 2: + rgblight_sethsv_noeeprom(128,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + case 3: + rgblight_sethsv_noeeprom(215,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + case 4: + rgblight_sethsv_noeeprom(15,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/config.h b/keyboards/solartempest/ps17/keymaps/via_bright/config.h new file mode 100644 index 000000000000..4bbacd9a507b --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via_bright/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c new file mode 100644 index 000000000000..6c422f8be38d --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c @@ -0,0 +1,332 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "PS17.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions. Not VIA compatible. +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_PGDOWN, KC__MUTE, KC_PGUP, + MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + KC_RIGHT, KC_TRNS, KC_LEFT, + KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, + TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RESET, + RESET, KC_TRNS + ), + [_LAYER2] = LAYOUT( + KC_RBRACKET, KC_TRNS, KC_LBRACKET, + TO(0), KC_B, KC_T, C(S(KC_N)), + KC_J, KC_S, KC_D, C(KC_MINS), + C(KC_C), C(KC_V), KC_M, + C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), + KC_SPACE, KC_LALT + ), + [_LAYER3] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), + C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, + KC_PGDOWN, KC_PGUP + ), + [_LAYER4] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_RIGHT, + C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, + KC_F13, KC_F14 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 100); //Set lower default brightness when connected as the right side dimming is not yet in effect + layer_move(0); //start on layer 0 to get the lighting activated + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 120; + static uint16_t perkey_brightness = 120; + static uint16_t lastrow_brightness = 30; //for less shine-through at case edges + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 1, 0, \ + 3, 2, \ + 9, 8, 7, 6, 5, 4, \ + 13, 12, 11, 10, \ + 18, 17, 16, 15, 14,\ + 22, 21, 20, 19, \ + 27, 26, 25, 24, 23 )*/ + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk b/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json new file mode 100644 index 000000000000..d906b47dbb7a --- /dev/null +++ b/keyboards/solartempest/ps17/ps17 VIA keymap.json @@ -0,0 +1,51 @@ +{ + "name": "PS17" , + "vendorId": "0x414B", + "productId": "0x0015", + "lighting": "qmk_rgblight", + "matrix": { "rows": 6, "cols": 4 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + }, + { + "name": "Move Window Right", + "title": "Move Window Right in Windows", + "shortName": "MWR" + }, + { + "name": "Move Window Left", + "title": "Move Window Left in Windows", + "shortName": "MWL" + }, + { + "name": "Spam Arrow", + "title": "Toggle F24 on interval timer with Orange LED", + "shortName": "SA" + }, + { + "name": "Teams Muted", + "title": "Simply Change LED of 1 to show if muted or not", + "shortName": "TM" + } + ], + "layouts": + { + "keymap": + [ + [{"w": 1, "h":1.5},"0,0", "0,1", {"w": 1, "h":1.5},"0,2"], + [{"y":0.75}, "1,0", "1,1", "1,2", "1,3"], + [ "2,0", "2,1", "2,2", {"h":2},"2,3"], + [ "3,0","3,1","3,2"], + [ "4,0", "4,1", "4,2", {"h":2},"4,3"], + [{"w": 2},"5,0", "5,2"] + ] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json new file mode 100644 index 000000000000..6671cee90952 --- /dev/null +++ b/keyboards/solartempest/ps17/ps17 VIA layout.json @@ -0,0 +1,267 @@ +{ + "name": "PS17", + "vendorProductId": 1095434261, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "C(KC_TAB)", + "C(KC_W)", + "C(S(KC_TAB))", + "KC_NO", + "TO(2)", + "KC_PSLS", + "KC_PAST", + "KC_PMNS", + "KC_P7", + "KC_P8", + "KC_P9", + "KC_PPLS", + "KC_P4", + "KC_P5", + "KC_P6", + "KC_NO", + "KC_P1", + "KC_P2", + "KC_P3", + "KC_PENT", + "KC_P0", + "KC_NO", + "KC_PDOT", + "KC_NO" + ], + [ + "KC_RGHT", + "KC_TRNS", + "KC_LEFT", + "KC_NO", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_NLCK", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "TO(5)", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "TO(2)", + "TO(3)", + "TO(4)", + "KC_TRNS", + "RESET", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_VOLU", + "KC_TRNS", + "KC_VOLD", + "KC_NO", + "TO(0)", + "KC_WWW_REFRESH", + "KC_WWW_HOME", + "C(S(KC_B))", + "C(S(KC_TAB))", + "KC_UP", + "C(KC_TAB)", + "USER04", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_NO", + "USER05", + "KC_TRNS", + "KC_SLCK", + "KC_NLCK", + "KC_F13", + "KC_NO", + "KC_F14", + "KC_NO" + ], + [ + "USER00", + "KC_TRNS", + "USER01", + "KC_NO", + "TO(0)", + "KC_WWW_REFRESH", + "KC_HOME", + "C(KC_T)", + "C(S(KC_TAB))", + "KC_UP", + "C(KC_TAB)", + "C(KC_W)", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_NO", + "KC_WWW_BACK", + "KC_SPC", + "KC_WWW_FORWARD", + "KC_ENT", + "KC_PGDN", + "KC_NO", + "KC_PGUP", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c new file mode 100644 index 000000000000..54ae3f8ab053 --- /dev/null +++ b/keyboards/solartempest/ps17/ps17.c @@ -0,0 +1,68 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include "ps17.h" + +bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality + #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap + if (index == 0) { // First encoder + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); + } + } + /*if (clockwise) { //This code only works for single keypresses with the rotary encoder + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA + }*/ + #endif + return true; +} + +#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations + led_config_t g_led_config = { { + //Key matrix to LED index + { NO_LED, NO_LED, NO_LED, NO_LED, }, + { 0, 1, 2, 3, }, + { 4, 5, 6, 7, }, + { 8, 9, 10, NO_LED, }, + { 11, 12, 13, 14, }, + { 15, NO_LED, 16, NO_LED, }, + + //Underglow matrix to LED index + { 21, NO_LED, NO_LED, 22, }, + { 20, NO_LED, NO_LED, 23, }, + { 19, NO_LED, NO_LED, 24, }, + { 18, NO_LED, NO_LED, 25, }, + { 17, 27, NO_LED, 26, } + }, { + // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {126,126} + {74,165},{108,165},{144,165},{179,165},{74,129},{109,129},{143,129},{188,121},{74,95},{109,95},{143,95},{73,60},{109,60},{144,60},{188,51},{91,25},{144,25}, + + // LED underglow + {61,26},{61,88},{61,158},{61,197},{61,232},{192,232},{192,196},{192,158},{192,87},{183,26},{127,24} + }, { + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // LED Index to Flag. 4 for key backlight. + 2,2,2,2,2,2,2,2,2,2,2 // 2 for case underglow. + } }; +#endif diff --git a/keyboards/solartempest/ps17/ps17.h b/keyboards/solartempest/ps17/ps17.h new file mode 100644 index 000000000000..64ebc5766887 --- /dev/null +++ b/keyboards/solartempest/ps17/ps17.h @@ -0,0 +1,61 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE + #define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, KC_NO }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + } +#endif + +#ifdef RGB_MATRIX_ENABLE // Five empty rows of keys were added for RGB Matrix purposes. You must map to a key otherwise it will not work. + #define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, KC_NO }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + } +#endif diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md new file mode 100644 index 000000000000..bd9504222899 --- /dev/null +++ b/keyboards/solartempest/ps17/readme.md @@ -0,0 +1,39 @@ +# Atlantis PS17 Macropad + +![Atlantis PS17](https://i.imgur.com/Y0rkPgA.jpg) + +A 17-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +* Keyboard Maintainer: solartempest +* Hardware Supported: Atlantis PS17 v2 +* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) + +# Custom Features: + +- Remappable rotary encoder controls volume up/down/mute. +- Allows for remapping of per-layer rotary encoder functions in VIA. +- VIA support included by default. +- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). +- Adds custom layer lighting with custom gradients for each. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. +- Adds key combo functionality for backspace, delete, and arrow keys. + +## Make and Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb solartempest/ps17 -km via + +To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. +Flash with QMK toolbox, auto-flash. + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "ps17 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "ps17 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk new file mode 100644 index 000000000000..0b5dd1c97afa --- /dev/null +++ b/keyboards/solartempest/ps17/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +CONSOLE_ENABLE = no # Console for debug +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +NKRO_ENABLE = yes # USB Nkey Rollover +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver +UNICODE_ENABLE = yes # Unicode +ENCODER_ENABLE = yes # For encoder +LTO_ENABLE = yes # Reduce firmware size +COMBO_ENABLE = yes # Combos +TAP_DANCE_ENABLE = no # Tap dance + +IDLE_TIMEOUT_ENABLE = yes # Turn LEDs off after inactive time From 9877c6f6af08ab118cce4a16a0d1d4f5a0dbe494 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 21:20:52 -0400 Subject: [PATCH 02/94] Delete firmware location.lnk --- .../solartempest/ps17/firmware location.lnk | Bin 1154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/solartempest/ps17/firmware location.lnk diff --git a/keyboards/solartempest/ps17/firmware location.lnk b/keyboards/solartempest/ps17/firmware location.lnk deleted file mode 100644 index c5314c13be859041d58bab3b1a0f936a11ae7b65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcma)5TS$~q5T5md+Qrq>lr=S?WEFPZ^{yl-yY8;{%d(}gc|lj#bX|A<6$_&5VqmG= zP>QU4uzcu35muCi51CXZQeMaxDSC-Yu?RxK`sNpW2&Crco0&6n&di)S^XC$gB+w0< zXjtT=J4N2)2fg4&nMY{Sj6`y7(iDApM)J(+Ze&RnD;p&%VwJz7REp5*W$vZUT?5+o z5mWbay=p#^Bos*tPdVbemsj-r=4r|E09Cgfk-VmItWl7G)I}}|Cymai3n8@_G0Zsd z(2t7pa>{jCheVT0R$A6G_twx^8yq(@FMl-hdTH)z?e2_r{m5wj@cqNtZzP+sE(Y_Tc{G!f<0P30c-*Ijx19FrYayD;D9lc zW6ON2J=V$w%K@WNtB6fVBu%Q>Bv_n+S+F-$I$ai9lSObT3pAM-`DTZ$zPzT+X=|x; zB9SjC$-HJA9NCko?>C6Ea~12cJ}4dkF3B3pK4F-e%<)(_&Ati%74?-sGTEzK_NHcG zWdYv1RNnUDY;ET4PdDy;yR#Hpv^OX?(C3T)u?26(nbG4H|K%^ifcPMO9b&1Cg~qR{ zC$k!A*AM)h2L%GSC$G-y3M_#avJ7D+V4V)+jFp>iEqM!sIR@Bs#NGVvW zDVgF#EeXCjSW+m7;vtjZi^rz`R9LY!5s1So7FME%pmb(~GEe@q_`0jt*?@%(!`OgcY{gh|2dl-ttep1c zgXuu)Y*(@PA3{F@aBbK3Rms!3-}nzs({RDNkO`h+eh9HPPV;xC&HwdAYmX<#W=a9L ufV-P*+FPAXh5 Date: Wed, 8 Sep 2021 21:23:15 -0400 Subject: [PATCH 03/94] Delete firmware location.lnk --- .../solartempest/ps17/firmware location.lnk | Bin 1154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/solartempest/ps17/firmware location.lnk diff --git a/keyboards/solartempest/ps17/firmware location.lnk b/keyboards/solartempest/ps17/firmware location.lnk deleted file mode 100644 index c5314c13be859041d58bab3b1a0f936a11ae7b65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcma)5TS$~q5T5md+Qrq>lr=S?WEFPZ^{yl-yY8;{%d(}gc|lj#bX|A<6$_&5VqmG= zP>QU4uzcu35muCi51CXZQeMaxDSC-Yu?RxK`sNpW2&Crco0&6n&di)S^XC$gB+w0< zXjtT=J4N2)2fg4&nMY{Sj6`y7(iDApM)J(+Ze&RnD;p&%VwJz7REp5*W$vZUT?5+o z5mWbay=p#^Bos*tPdVbemsj-r=4r|E09Cgfk-VmItWl7G)I}}|Cymai3n8@_G0Zsd z(2t7pa>{jCheVT0R$A6G_twx^8yq(@FMl-hdTH)z?e2_r{m5wj@cqNtZzP+sE(Y_Tc{G!f<0P30c-*Ijx19FrYayD;D9lc zW6ON2J=V$w%K@WNtB6fVBu%Q>Bv_n+S+F-$I$ai9lSObT3pAM-`DTZ$zPzT+X=|x; zB9SjC$-HJA9NCko?>C6Ea~12cJ}4dkF3B3pK4F-e%<)(_&Ati%74?-sGTEzK_NHcG zWdYv1RNnUDY;ET4PdDy;yR#Hpv^OX?(C3T)u?26(nbG4H|K%^ifcPMO9b&1Cg~qR{ zC$k!A*AM)h2L%GSC$G-y3M_#avJ7D+V4V)+jFp>iEqM!sIR@Bs#NGVvW zDVgF#EeXCjSW+m7;vtjZi^rz`R9LY!5s1So7FME%pmb(~GEe@q_`0jt*?@%(!`OgcY{gh|2dl-ttep1c zgXuu)Y*(@PA3{F@aBbK3Rms!3-}nzs({RDNkO`h+eh9HPPV;xC&HwdAYmX<#W=a9L ufV-P*+FPAXh5 Date: Wed, 8 Sep 2021 21:27:48 -0400 Subject: [PATCH 04/94] Add 9e files. --- keyboards/solartempest/9e/9e VIA ayout.json | 507 ++++++++++++++++++ keyboards/solartempest/9e/9e VIA keymap.json | 39 ++ keyboards/solartempest/9e/A9e.c | 64 +++ keyboards/solartempest/9e/A9e.h | 35 ++ keyboards/solartempest/9e/config.h | 140 +++++ .../solartempest/9e/firmware location.lnk | Bin 0 -> 1154 bytes keyboards/solartempest/9e/info.json | 12 + .../solartempest/9e/keymaps/default/keymap.c | 208 +++++++ .../solartempest/9e/keymaps/via/config.h | 22 + .../solartempest/9e/keymaps/via/keymap.c | 417 ++++++++++++++ .../solartempest/9e/keymaps/via/rules.mk | 1 + .../9e/qmk_firmware hex location (old).lnk | Bin 0 -> 899 bytes .../9e/qmk_firmware hex location.lnk | Bin 0 -> 899 bytes keyboards/solartempest/9e/readme.md | 42 ++ keyboards/solartempest/9e/rules.mk | 63 +++ 15 files changed, 1550 insertions(+) create mode 100644 keyboards/solartempest/9e/9e VIA ayout.json create mode 100644 keyboards/solartempest/9e/9e VIA keymap.json create mode 100644 keyboards/solartempest/9e/A9e.c create mode 100644 keyboards/solartempest/9e/A9e.h create mode 100644 keyboards/solartempest/9e/config.h create mode 100644 keyboards/solartempest/9e/firmware location.lnk create mode 100644 keyboards/solartempest/9e/info.json create mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/9e/keymaps/via/config.h create mode 100644 keyboards/solartempest/9e/keymaps/via/keymap.c create mode 100644 keyboards/solartempest/9e/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/9e/qmk_firmware hex location (old).lnk create mode 100644 keyboards/solartempest/9e/qmk_firmware hex location.lnk create mode 100644 keyboards/solartempest/9e/readme.md create mode 100644 keyboards/solartempest/9e/rules.mk diff --git a/keyboards/solartempest/9e/9e VIA ayout.json b/keyboards/solartempest/9e/9e VIA ayout.json new file mode 100644 index 000000000000..aa58163c6e9b --- /dev/null +++ b/keyboards/solartempest/9e/9e VIA ayout.json @@ -0,0 +1,507 @@ +{ + "name": "A9e", + "vendorProductId": 1095434249, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_RGHT", + "KC_MUTE", + "KC_LEFT", + "TO(1)", + "TO(2)", + "TO(3)", + "KC_P7", + "KC_P8", + "KC_P9", + "KC_WWW_BACK", + "KC_F13", + "KC_WWW_FORWARD", + "USER01", + "RGB_TOG", + "USER00", + "KC_CAPS", + "KC_NLCK", + "KC_MINS", + "KC_P4", + "KC_P5", + "KC_P6", + "KC_VOLD", + "KC_F14", + "KC_VOLU", + "USER03", + "KC_MSTP", + "USER02", + "KC_WWW_REFRESH", + "KC_BSPC", + "KC_P0", + "KC_P1", + "KC_P2", + "KC_P3", + "KC_MS_WH_UP", + "C(KC_W)", + "KC_MS_WH_DOWN", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_MS_WH_DOWN", + "KC_HOME", + "KC_MS_WH_UP", + "C(KC_PMNS)", + "C(KC_0)", + "C(KC_PPLS)", + "C(S(KC_TAB))", + "C(KC_T)", + "C(KC_TAB)" + ], + [ + "KC_RBRC", + "KC_I", + "KC_LBRC", + "TO(0)", + "KC_T", + "KC_M", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_LEFT", + "C(S(KC_B))", + "KC_RGHT", + "KC_LCBR", + "C(KC_I)", + "KC_RCBR", + "KC_B", + "KC_J", + "KC_S", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(S(KC_TAB))", + "C(KC_S)", + "C(KC_TAB)", + "C(KC_Z)", + "KC_X", + "C(S(KC_Z))", + "KC_LALT", + "KC_SPC", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_DOWN", + "KC_TRNS", + "KC_UP", + "KC_NO", + "KC_NO", + "KC_NO", + "C(KC_LBRC)", + "KC_DEL", + "C(KC_RBRC)", + "A(KC_LBRC)", + "C(KC_F10)", + "A(KC_RBRC)", + "C(KC_MINS)", + "C(KC_0)", + "C(KC_PPLS)" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_UP", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_MS_BTN2", + "KC_PAUS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_NO", + "KC_NO", + "KC_NO", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO", + "KC_NO" + ], + [ + "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", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_NO", + "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", + "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_NO", + "KC_NO", + "KC_NO", + "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", + "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_NO", + "KC_NO", + "KC_NO", + "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", + "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_NO", + "KC_NO", + "KC_NO", + "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", + "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_NO", + "KC_NO", + "KC_NO", + "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", + "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_NO", + "KC_NO", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/9e/9e VIA keymap.json b/keyboards/solartempest/9e/9e VIA keymap.json new file mode 100644 index 000000000000..21498184e2bd --- /dev/null +++ b/keyboards/solartempest/9e/9e VIA keymap.json @@ -0,0 +1,39 @@ +{ + "name": "A9e" , + "vendorId": "0x414B", + "productId": "0x0009", + "lighting": "qmk_rgblight", + "matrix": { "rows": 4, "cols": 12 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + }, + { + "name": "Move Window Right", + "title": "Move Window Right in Windows", + "shortName": "MWR" + }, + { + "name": "Move Window Left", + "title": "Move Window Left in Windows", + "shortName": "MWL" + } + ], + "layouts": + { + "keymap": + [ + [{"x": 0.25},"0,0", {"x": 1}, "1,0",{"h": 1.5},"1,1","1,2", {"x": 1}, "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", {"x": 1}, "0,9", {"h": 1.5},"0,10","0,11", {"x": 1}, "1,9",{"h": 1.5},"1,10","1,11"], + [{"w": 1.5},"0,1",{"x": 4.75}, "1,3", "1,4", "1,5", "1,6", "1,7", "1,8"], + [{"x": 0.25},"0,2", {"x": 1}, "2,0",{"h": 1.5},"2,1","2,2", {"x": 1}, "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", {"x": 3}, "2,9",{"h": 1.5},"2,10","2,11"], + [{"x": 6.25, "y": 0.5}, "3,3",{"h": 1.5},"3,4","3,5", "3,6",{"h": 1.5},"3,7", "3,8", {"x": 3,"y": 1},"3,9",{"h": 1.5},"3,10","3,11"] + ] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c new file mode 100644 index 000000000000..3fc20a1961c1 --- /dev/null +++ b/keyboards/solartempest/9e/A9e.c @@ -0,0 +1,64 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#include "A9e.h" + +/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ + 1, 30, 4, 5, 6, 7, 8, 9, \ + 0, 3, 10, 11, 12, 13, 14, 15, \ + 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ + 40, 39, 22, 25, \ + 24, \ + 38, 27, 37, \ + 26, 29, \ + 28 )*/ +// E2 Keys Row 1 E4 E5 +// E1 Keys Row 2 E6 +// E3 Keys Row 3 +// E8 E9 E7 + +#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations + led_config_t g_led_config = { { + //Key matrix to LED index + { 36, 35, 34, 33, 32, }, + {18, 37, 5, 4, 3, 2, 1, 0, }, + {19, 21, 11, 10, 9, 8, 7, 6, }, + {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, + { 39, 40, 23, 25, }, + { 24, }, + { 41, 26, 30, }, + { 27, 29, }, + { 28, NO_LED, NO_LED, NO_LED, } + }, { + // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} + {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, + {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, + {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, + + {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, + {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, + + {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, + {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} + }, { // LED Index to Flag. + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. + 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. + 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. + } }; +#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h new file mode 100644 index 000000000000..cc6481b19bb5 --- /dev/null +++ b/keyboards/solartempest/9e/A9e.h @@ -0,0 +1,35 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#ifndef A9E_H + #define A9E_H + + #include "quantum.h" + + #define KEYMAP( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ + K303, K304, K305, K306, K307, K308, K309, K310, K311 \ + ) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ + { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ + } +#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h new file mode 100644 index 000000000000..a74b280bfb3b --- /dev/null +++ b/keyboards/solartempest/9e/config.h @@ -0,0 +1,140 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#ifndef CONFIG_H + #define CONFIG_H + + #include "config_common.h" + + /* USB Device descriptor parameter */ + #define VENDOR_ID 0x414B // AK + #define PRODUCT_ID 0x0009 // 9e + #define DEVICE_VER 0x0001 + #define MANUFACTURER Atlantis + #define PRODUCT A9e + #define DESCRIPTION Keyboard + + /* key matrix size */ + #define MATRIX_ROWS 4 + #define MATRIX_COLS 12 + + /* key matrix pins */ + #define MATRIX_ROW_PINS { F0, F1, F2, F3 } + #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. + #define UNUSED_PINS + + /* encoder pins */ + #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. + #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } + #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. + //#define ENCODER_RESOLUTION 4 + + /* COL2ROW or ROW2COL */ + #define DIODE_DIRECTION COL2ROW + + /* Set 0 if debouncing isn't needed */ + #define DEBOUNCE 5 + + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ + #define LOCKING_SUPPORT_ENABLE + + /* Locking resynchronize hack */ + #define LOCKING_RESYNC_ENABLE + + + #define RGB_DI_PIN E6 + #ifdef RGB_DI_PIN + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LAYERS + #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys + #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT + #define RGBLIGHT_LIMIT_VAL 180 + + //RGB LED Conversion macro from physical array to electric array + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L01, L03, L05, L07, L08, \ + L10, L11, L12, L13, L14, L15, L16, L17, \ + L20, L21, L22, L23, L24, L25, L26, L27, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ + L41, L46, L47, L49, \ + L58, \ + L67, L68, L69, \ + L77, L79, \ + L88 )\ + { \ + L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ + } + //RGB LED logical order map + //Left encoder -> keys -> right encoders -> backlight + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ + 1, 30, 4, 5, 6, 7, 8, 9, \ + 0, 3, 10, 11, 12, 13, 14, 15, \ + 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ + 40, 39, 22, 25, \ + 24, \ + 38, 27, 37, \ + 26, 29, \ + 28 ) + #endif + + #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects + #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow + #define RGB_MATRIX_CENTER { 110, 110 }; + #define RGB_MATRIX_KEYPRESSES + #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_BAND_SAT + #define DISABLE_RGB_MATRIX_BAND_VAL + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define DISABLE_RGB_MATRIX_HUE_BREATHING + #define DISABLE_RGB_MATRIX_HUE_PENDULUM + #define DISABLE_RGB_MATRIX_HUE_WAVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + #endif + + +#endif diff --git a/keyboards/solartempest/9e/firmware location.lnk b/keyboards/solartempest/9e/firmware location.lnk new file mode 100644 index 0000000000000000000000000000000000000000..c5314c13be859041d58bab3b1a0f936a11ae7b65 GIT binary patch literal 1154 zcma)5TS$~q5T5md+Qrq>lr=S?WEFPZ^{yl-yY8;{%d(}gc|lj#bX|A<6$_&5VqmG= zP>QU4uzcu35muCi51CXZQeMaxDSC-Yu?RxK`sNpW2&Crco0&6n&di)S^XC$gB+w0< zXjtT=J4N2)2fg4&nMY{Sj6`y7(iDApM)J(+Ze&RnD;p&%VwJz7REp5*W$vZUT?5+o z5mWbay=p#^Bos*tPdVbemsj-r=4r|E09Cgfk-VmItWl7G)I}}|Cymai3n8@_G0Zsd z(2t7pa>{jCheVT0R$A6G_twx^8yq(@FMl-hdTH)z?e2_r{m5wj@cqNtZzP+sE(Y_Tc{G!f<0P30c-*Ijx19FrYayD;D9lc zW6ON2J=V$w%K@WNtB6fVBu%Q>Bv_n+S+F-$I$ai9lSObT3pAM-`DTZ$zPzT+X=|x; zB9SjC$-HJA9NCko?>C6Ea~12cJ}4dkF3B3pK4F-e%<)(_&Ati%74?-sGTEzK_NHcG zWdYv1RNnUDY;ET4PdDy;yR#Hpv^OX?(C3T)u?26(nbG4H|K%^ifcPMO9b&1Cg~qR{ zC$k!A*AM)h2L%GSC$G-y3M_#avJ7D+V4V)+jFp>iEqM!sIR@Bs#NGVvW zDVgF#EeXCjSW+m7;vtjZi^rz`R9LY!5s1So7FME%pmb(~GEe@q_`0jt*?@%(!`OgcY{gh|2dl-ttep1c zgXuu)Y*(@PA3{F@aBbK3Rms!3-}nzs({RDNkO`h+eh9HPPV;xC&HwdAYmX<#W=a9L ufV-P*+FPAXh5. +*/ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c new file mode 100644 index 000000000000..6b53279aa6bd --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -0,0 +1,417 @@ +#include "A9e.h" +#include QMK_KEYBOARD_H + +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML //Move window to monitor on left + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML //Move window to monitor on left + }; +#endif + + +//Keymap physical layout as follows: +// E2 Keys Row 1 E4 E5 +// E1 Keys Row 2 E6 +// E3 Keys Row 3 +// E8 E9 E7 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + KEYMAP( + KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 + TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 + RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 + RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_FORWARD, //Rotary Encoder 2 + KC_CAPS, KC_SLCK, KC_NLCK, KC_P4, KC_P5, KC_P6, //Keys Row 2 + RGB_HUD, A(KC_F4), RGB_HUI, //Rotary Encoder 5 + ATABR, KC_MSTP, ATABF, //Rotary Encoder 3 + KC_WREF, KC_MYCM, KC_P0, KC_P1, KC_P2, KC_P3, //Keys Row 3 + KC_MS_WH_UP, C(KC_W), KC_MS_WH_DOWN, //Rotary Encoder 6 + C(S(KC_TAB)), KC_HOME, C(KC_TAB), //Rotary Encoder 8 + C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 + C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 + KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 + KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 + ), +}; + + +/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required + switch (id) { + } + return MACRO_NONE; +}*/ + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + } + return true; +} + + +bool encoder_update_user(uint8_t index, bool clockwise) +{ + if (index == 0) { /* 1 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 1) { /* 2 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 2) { /* 3 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 3) { /* 4 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 4) { /* 5 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 5) { /* 6 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 6) { /* 7 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 7) { /* 8 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + else if (index == 8) { /* 9 encoder */ + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + } + } + return true; +} + + +#ifdef RGBLIGHT_ENABLE + // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green + const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange + const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan + const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta + const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) + const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) + const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) + const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_capslock_layer, //Highest status indicators override other layers + my_numlock_layer, + my_scrollock_layer + ); +#endif + +void keyboard_post_init_user(void) +{ + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_layers = my_rgb_layers;// Enable the LED layers + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + layer_move(0); //start on layer 0 to get the lighting activated + #endif +} + + +#ifdef RGBLIGHT_ENABLE + layer_state_t layer_state_set_user(layer_state_t state) + { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,30); + break; + case 1: + rgblight_sethsv_noeeprom(30,255,30); + break; + case 2: + rgblight_sethsv_noeeprom(106,255,30); + break; + case 3: + rgblight_sethsv_noeeprom(215,255,30); + break; + default: + rgblight_sethsv_noeeprom(64,255,30); + } + return state; + } + + bool led_update_user(led_t led_state) + { + rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + return true; + } +#endif diff --git a/keyboards/solartempest/9e/keymaps/via/rules.mk b/keyboards/solartempest/9e/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/9e/qmk_firmware hex location (old).lnk b/keyboards/solartempest/9e/qmk_firmware hex location (old).lnk new file mode 100644 index 0000000000000000000000000000000000000000..41fea2c18b9ab61e353cea86f3590ae6b0c976d9 GIT binary patch literal 899 zcmeZaU|?VrVFHp23-V~&@UVtIc*E`%KpYChGC&M+6o|G0Vh{)cVmTlN8K{5d%s)_2hG!(^q*ew8yXYF3 znlS*wBRjP+DL=6&r8uTAH#b70mMg{q)xZ;KM`yS OXvoXY%S;A|!vFvrV8tf@ literal 0 HcmV?d00001 diff --git a/keyboards/solartempest/9e/qmk_firmware hex location.lnk b/keyboards/solartempest/9e/qmk_firmware hex location.lnk new file mode 100644 index 0000000000000000000000000000000000000000..41fea2c18b9ab61e353cea86f3590ae6b0c976d9 GIT binary patch literal 899 zcmeZaU|?VrVFHp23-V~&@UVtIc*E`%KpYChGC&M+6o|G0Vh{)cVmTlN8K{5d%s)_2hG!(^q*ew8yXYF3 znlS*wBRjP+DL=6&r8uTAH#b70mMg{q)xZ;KM`yS OXvoXY%S;A|!vFvrV8tf@ literal 0 HcmV?d00001 diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md new file mode 100644 index 000000000000..38b472d3326a --- /dev/null +++ b/keyboards/solartempest/9e/readme.md @@ -0,0 +1,42 @@ +# Atlantis 9e Macropad + +![Atlantis 9e](https://i.imgur.com/hFuZyXU.jpg) + +A 18-key macro pad with 9 pushbutton rotary encoders and underglow RGB per key RGB and for the case. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +* Keyboard Maintainer: solartempest +* Hardware Supported: Atlantis 9e +* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) + +# Custom Features: + +- 9 remappable rotary encoder controling a variety of different things! +- RGB underglow support and remapped to physical locations. +- Adds custom layer lighting with custom gradients for each and static colours for the switches. +- Adds white caps lock, scroll lock, and num lock key indicators on the top row. +- VIA support included by default. +- Allows for remapping of per-layer rotary encoder functions in VIA. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. + + +## Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb solartempest/9e -km via + +- Please note that QMK toolbox and configurator cannot be used to flash this board. +- You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. +- I used Prog ISP V2.0 but other AVR programmers will also work. +- Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "9e VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "9e VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk new file mode 100644 index 000000000000..782755a42c25 --- /dev/null +++ b/keyboards/solartempest/9e/rules.mk @@ -0,0 +1,63 @@ +# MCU name +MCU = at90usb646 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. + +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +TERMINAL_ENABLE = no # Terminal interface feature, very large. +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +RGBLIGHT_ENABLE = no # RGB LEDs +RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver +RGBLIGHT_SLEEP = yes # LEDs off when sleeping +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +KEY_LOCK_ENABLE = no # Key lock functionality +ENCODER_ENABLE = yes # Encoders +LTO_ENABLE = yes # Save space +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +UNICODE_ENABLE = no # Unicode From b6e351ecc3ff327117c3e532dbd4680416e24ebc Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 21:38:46 -0400 Subject: [PATCH 05/94] Removed extra files --- keyboards/solartempest/9e/firmware location.lnk | Bin 1154 -> 0 bytes .../9e/qmk_firmware hex location (old).lnk | Bin 899 -> 0 bytes .../9e/qmk_firmware hex location.lnk | Bin 899 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/solartempest/9e/firmware location.lnk delete mode 100644 keyboards/solartempest/9e/qmk_firmware hex location (old).lnk delete mode 100644 keyboards/solartempest/9e/qmk_firmware hex location.lnk diff --git a/keyboards/solartempest/9e/firmware location.lnk b/keyboards/solartempest/9e/firmware location.lnk deleted file mode 100644 index c5314c13be859041d58bab3b1a0f936a11ae7b65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcma)5TS$~q5T5md+Qrq>lr=S?WEFPZ^{yl-yY8;{%d(}gc|lj#bX|A<6$_&5VqmG= zP>QU4uzcu35muCi51CXZQeMaxDSC-Yu?RxK`sNpW2&Crco0&6n&di)S^XC$gB+w0< zXjtT=J4N2)2fg4&nMY{Sj6`y7(iDApM)J(+Ze&RnD;p&%VwJz7REp5*W$vZUT?5+o z5mWbay=p#^Bos*tPdVbemsj-r=4r|E09Cgfk-VmItWl7G)I}}|Cymai3n8@_G0Zsd z(2t7pa>{jCheVT0R$A6G_twx^8yq(@FMl-hdTH)z?e2_r{m5wj@cqNtZzP+sE(Y_Tc{G!f<0P30c-*Ijx19FrYayD;D9lc zW6ON2J=V$w%K@WNtB6fVBu%Q>Bv_n+S+F-$I$ai9lSObT3pAM-`DTZ$zPzT+X=|x; zB9SjC$-HJA9NCko?>C6Ea~12cJ}4dkF3B3pK4F-e%<)(_&Ati%74?-sGTEzK_NHcG zWdYv1RNnUDY;ET4PdDy;yR#Hpv^OX?(C3T)u?26(nbG4H|K%^ifcPMO9b&1Cg~qR{ zC$k!A*AM)h2L%GSC$G-y3M_#avJ7D+V4V)+jFp>iEqM!sIR@Bs#NGVvW zDVgF#EeXCjSW+m7;vtjZi^rz`R9LY!5s1So7FME%pmb(~GEe@q_`0jt*?@%(!`OgcY{gh|2dl-ttep1c zgXuu)Y*(@PA3{F@aBbK3Rms!3-}nzs({RDNkO`h+eh9HPPV;xC&HwdAYmX<#W=a9L ufV-P*+FPAXh5-V~&@UVtIc*E`%KpYChGC&M+6o|G0Vh{)cVmTlN8K{5d%s)_2hG!(^q*ew8yXYF3 znlS*wBRjP+DL=6&r8uTAH#b70mMg{q)xZ;KM`yS OXvoXY%S;A|!vFvrV8tf@ diff --git a/keyboards/solartempest/9e/qmk_firmware hex location.lnk b/keyboards/solartempest/9e/qmk_firmware hex location.lnk deleted file mode 100644 index 41fea2c18b9ab61e353cea86f3590ae6b0c976d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 899 zcmeZaU|?VrVFHp23-V~&@UVtIc*E`%KpYChGC&M+6o|G0Vh{)cVmTlN8K{5d%s)_2hG!(^q*ew8yXYF3 znlS*wBRjP+DL=6&r8uTAH#b70mMg{q)xZ;KM`yS OXvoXY%S;A|!vFvrV8tf@ From 74e56b4b4b91fffb86002ab32d51d1bb4c24d0cb Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 21:49:48 -0400 Subject: [PATCH 06/94] Add sofle files. --- keyboards/solartempest/sofle/.noci | 0 keyboards/solartempest/sofle/config.h | 119 ++++ keyboards/solartempest/sofle/info.json | 12 + .../solartempest/sofle/keymaps/via/bongocat.c | 212 +++++++ .../solartempest/sofle/keymaps/via/config.h | 22 + .../solartempest/sofle/keymaps/via/encoder.c | 42 ++ .../solartempest/sofle/keymaps/via/keymap.c | 334 +++++++++++ .../solartempest/sofle/keymaps/via/luna.c | 309 ++++++++++ .../sofle/keymaps/via/ocean_dream.c | 555 ++++++++++++++++++ .../solartempest/sofle/keymaps/via/oled.c | 82 +++ .../solartempest/sofle/keymaps/via/rules.mk | 1 + .../solartempest/sofle/keymaps/via/snakey.c | 321 ++++++++++ keyboards/solartempest/sofle/readme.md | 82 +++ keyboards/solartempest/sofle/rules.mk | 25 + .../solartempest/sofle/sofle VIA keymap.json | 62 ++ .../solartempest/sofle/sofle VIA layout.json | 295 ++++++++++ keyboards/solartempest/sofle/sofle.c | 19 + keyboards/solartempest/sofle/sofle.h | 42 ++ 18 files changed, 2534 insertions(+) create mode 100644 keyboards/solartempest/sofle/.noci create mode 100644 keyboards/solartempest/sofle/config.h create mode 100644 keyboards/solartempest/sofle/info.json create mode 100644 keyboards/solartempest/sofle/keymaps/via/bongocat.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/config.h create mode 100644 keyboards/solartempest/sofle/keymaps/via/encoder.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/keymap.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/luna.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/ocean_dream.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/oled.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/sofle/keymaps/via/snakey.c create mode 100644 keyboards/solartempest/sofle/readme.md create mode 100644 keyboards/solartempest/sofle/rules.mk create mode 100644 keyboards/solartempest/sofle/sofle VIA keymap.json create mode 100644 keyboards/solartempest/sofle/sofle VIA layout.json create mode 100644 keyboards/solartempest/sofle/sofle.c create mode 100644 keyboards/solartempest/sofle/sofle.h diff --git a/keyboards/solartempest/sofle/.noci b/keyboards/solartempest/sofle/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h new file mode 100644 index 000000000000..f0292a3d05e5 --- /dev/null +++ b/keyboards/solartempest/sofle/config.h @@ -0,0 +1,119 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0xFC32 +#define PRODUCT_ID 0x1287 //Original is 0x0287 but do not want to load default VIA keymap +#define DEVICE_VER 0x0002 +#define MANUFACTURER Keyhive +#define PRODUCT Solarius_Sofle //VIA version for this PCB is incorrect for the bottom row +#define DESCRIPTION Rose version of the Sofle + +// Set which side is master +//#define EE_HANDS //Use this instead for EEPROM setting +#define MASTER_LEFT + +// Key matrix size +// Rows are doubled-up. Added extra column for rotary encoder VIA mapping. +#define MATRIX_ROWS 10 +#define MATRIX_COLS 7 + +// wiring of each half +#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. +#define MATRIX_ROW_PINS_RIGHT { C6, D7, E6, B4, B5 } +#define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. +#define DIODE_DIRECTION COL2ROW + +#define DEBOUNCE 5 + +// Encoder support +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } +#define ENCODER_RESOLUTIONS { 4, 2 } //Left encoder seems to have double-output issue but right does not. + +#define TAP_CODE_DELAY 10 +#define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer +#define TAPPING_TERM 160 //Tapping duration in ms + +// Communication between sides +#define SOFT_SERIAL_PIN D2 + +// Disabled for LTO +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION + +// Disabled to save space +#define NO_ACTION_ONESHOT //Save 244 bytes +#define NO_RESET //Save 40 bytes + +// OLED settings +#ifdef OLED_ENABLE + #define OLED_TIMEOUT 80000 //120000 = 2 minutes in ms. + #define OLED_BRIGHTNESS 90 // Default 100. + #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). + #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). +#endif + +// Combo settings +#ifdef COMBO_ENABLE + #define COMBO_COUNT 1 //Number of tap combos used + #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. +#endif + +// Add RGB underglow +#define RGB_DI_PIN D3 +#define RGBLED_NUM 74 +#define RGBLED_SPLIT {37,37} +//#define RGBLIGHT_ANIMATIONS // Very memory intensive +#define RGBLIGHT_EFFECT_STATIC_GRADIENT //Firmware size (+262) +#define RGBLIGHT_LIMIT_VAL 160 //Power draw may exceed 0.6A at max brightness with white colour. +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP + + +//RGB LED Conversion macro from physical array to electric array (+146 to firmware size) +//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping +#define LED_LAYOUT( \ + L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ + L10, L12, L14, L19, L111, L113, \ + L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ + L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ + L40, L42, L44, L49, L411, L413, \ + L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ + L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ + L71, L76, L77, L712 )\ + { \ + L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ + } +//RGB LED logical order map +#define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ + 4, 16, 28, 45, 57, 69, \ + 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ + 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ + 1, 13, 25, 48, 60, 72, \ + 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ + 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ + 10, 36, 37, 63 ) diff --git a/keyboards/solartempest/sofle/info.json b/keyboards/solartempest/sofle/info.json new file mode 100644 index 000000000000..16147f76dd51 --- /dev/null +++ b/keyboards/solartempest/sofle/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Solarius_Sofle", + "url": "", + "maintainer": "solartempest", + "width": 15, + "height": 8.0, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,3", "x":3.25, "y":0.5}, {"label":"5,3", "x":13.25, "y":0.5}, {"label":"0,2", "x":2.25, "y":0.63}, {"label":"0,4", "x":4.25, "y":0.63}, {"label":"5,4", "x":12.25, "y":0.63}, {"label":"5,2", "x":14.25, "y":0.63}, {"label":"0,5", "x":5.25, "y":0.73}, {"label":"5,5", "x":11.25, "y":0.73}, {"label":"0,0", "x":0.25, "y":0.86}, {"label":"0,1", "x":1.25, "y":0.86}, {"label":"5,1", "x":15.25, "y":0.86}, {"label":"5,0", "x":16.25, "y":0.86}, {"label":"1,3", "x":3.25, "y":1.46}, {"label":"1,6", "x":6.45, "y":1.46}, {"label":"6,6", "x":10.05, "y":1.46}, {"label":"6,3", "x":13.25, "y":1.46}, {"label":"1,2", "x":2.25, "y":1.56}, {"label":"1,4", "x":4.25, "y":1.56}, {"label":"6,4", "x":12.25, "y":1.56}, {"label":"6,2", "x":14.25, "y":1.56}, {"label":"1,5", "x":5.25, "y":1.66}, {"label":"6,5", "x":11.25, "y":1.66}, {"label":"1,0", "x":0.25, "y":1.76}, {"label":"1,1", "x":1.25, "y":1.76}, {"label":"6,1", "x":15.25, "y":1.76}, {"label":"6,0", "x":16.25, "y":1.76}, {"label":"2,3", "x":3.25, "y":2.36}, {"label":"4,0", "x":6.45, "y":2.36}, {"label":"9,5", "x":10.05, "y":2.36}, {"label":"7,3", "x":13.25, "y":2.36}, {"label":"2,2", "x":2.25, "y":2.46}, {"label":"2,4", "x":4.25, "y":2.46}, {"label":"7,4", "x":12.25, "y":2.46}, {"label":"7,2", "x":14.25, "y":2.46}, {"label":"2,5", "x":5.25, "y":2.56}, {"label":"7,5", "x":11.25, "y":2.56}, {"label":"2,0", "x":0.25, "y":2.66}, {"label":"2,1", "x":1.25, "y":2.66}, {"label":"7,1", "x":15.25, "y":2.66}, {"label":"7,0", "x":16.25, "y":2.66}, {"label":"3,3", "x":3.25, "y":3.26}, {"label":"3,6", "x":6.45, "y":3.26}, {"label":"8,6", "x":10.05, "y":3.26}, {"label":"8,3", "x":13.25, "y":3.26}, {"label":"3,2", "x":2.25, "y":3.36}, {"label":"3,4", "x":4.25, "y":3.36}, {"label":"8,4", "x":12.25, "y":3.36}, {"label":"8,2", "x":14.25, "y":3.36}, {"label":"3,5", "x":5.25, "y":3.46}, {"label":"8,5", "x":11.25, "y":3.46}, {"label":"3,0", "x":0.25, "y":3.56}, {"label":"3,1", "x":1.25, "y":3.56}, {"label":"8,1", "x":15.25, "y":3.56}, {"label":"8,0", "x":16.25, "y":3.56}, {"label":"4,2", "x":3.25, "y":4.26}, {"label":"9,1", "x":13.25, "y":4.26}, {"label":"4,3", "x":4.25, "y":4.36}, {"label":"9,2", "x":12.25, "y":4.36}, {"label":"4,1", "x":2.25, "y":4.36}, {"label":"9,0", "x":14.25, "y":4.36}, {"label":"4,4", "x":1, "y":9.96}, {"label":"4,5", "x":3.35, "y":8.71, "h":1.5}, {"label":"9,3", "x":0.8, "y":11.56}, {"label":"9,4", "x":-2.08, "y":11.01, "h":1.5}] + } + } +} diff --git a/keyboards/solartempest/sofle/keymaps/via/bongocat.c b/keyboards/solartempest/sofle/keymaps/via/bongocat.c new file mode 100644 index 000000000000..0a60f6bee0e5 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/bongocat.c @@ -0,0 +1,212 @@ +/* Code is by foureight84 and modified slightly. This may need some updates for the 2021-08-30 breaking changes. +Check out their post and other work! +https://www.reddit.com/r/olkb/comments/lxw6jw/adapted_bongo_cat_animation_to_the_sofle_keyboard/ +https://github.com/foureight84/qmk_firmware/tree/sofle_foureight84 */ + +#ifdef OLED_ENABLE +char wpm_str[4]; +led_t led_usb_state; + +static void print_status_narrow(void) { +/* // Print current mode + oled_write_P(PSTR("\n\n"), false); + oled_write_ln_P(PSTR("MODE"), false); + oled_write_ln_P(PSTR(""), false); + if (keymap_config.swap_lctl_lgui) { + oled_write_ln_P(PSTR("MAC"), false); + } else { + oled_write_ln_P(PSTR("WIN"), false); + } + + switch (get_highest_layer(default_layer_state)) { + case _QWERTY: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case _COLEMAK: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false);*/ + // Print current layer + oled_set_cursor(0,2); + oled_write("LAYER", false); + + oled_set_cursor(0,3); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 3: + oled_write("Raise", false); + break; + case 2: + oled_write("Lower", false); + break; + } + + /* lock status */ + oled_set_cursor(0,6); + oled_write("LOCK", false); + oled_set_cursor(0,7); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,8); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,9); + oled_write("Scrl", led_usb_state.scroll_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; +} + +/* Animation bit by j-inc https://github.com/qmk/qmk_firmware/tree/master/keyboards/kyria/keymaps/j-inc */ +// WPM-responsive animation stuff here +#define IDLE_FRAMES 5 +#define IDLE_SPEED 20 // below this wpm value your animation will idle. Default 30. + +// #define PREP_FRAMES 1 // uncomment if >1 + +#define TAP_FRAMES 2 +#define TAP_SPEED 40 // above this wpm value typing animation to trigger. Default 60. + +#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms +// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing +#define ANIM_SIZE 320 // number of bytes in array, minimize for adequate firmware size, max is 1024 + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; +// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 +uint8_t current_tap_frame = 0; + +// Implementation credit j-inc(/James Incandenza), pixelbenny, and obosob. +// Bongo cat images changed and adapted for sofle keyboard oled size. +// Original gif can be found here: https://www.pixilart.com/art/bongo-cat-bd2a8e9323aa705 +static void render_anim(void) { + static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, + 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, + 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, + 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, + } + }; + static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0x7c, 0x70, 0x40, 0x40, + 0x61, 0x5e, 0x80, 0xc0, 0xbc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0f, 0x3f, 0xf8, 0xf0, 0xf0, 0x20, + 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, + 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, + }, + { + 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, + 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, + 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, + 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, + 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x03, 0x0f, 0x3f, 0xff, 0x03, 0x01, 0x03, 0x07, 0x18, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x60, 0x80, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, + 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01 + }, + }; + + //assumes 1 frame prep stage + void animation_phase(void) { + if(get_current_wpm() <=IDLE_SPEED){ + /* + current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; + oled_write_raw_P(idle[abs((IDLE_FRAMES-1)-current_idle_frame)], ANIM_SIZE); + */ + oled_write_raw_P(idle[0], ANIM_SIZE); + } + /* + if(get_current_wpm() >IDLE_SPEED && get_current_wpm() 1 + oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 + }*/ + if(get_current_wpm() >=TAP_SPEED){ + current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; + oled_write_raw_P(tap[abs((TAP_FRAMES-1)-current_tap_frame)], ANIM_SIZE); + } + } + if(get_current_wpm() != 000) { + oled_on(); // not essential but turns on animation OLED with any alpha keypress + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { + if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +void oled_task_user(void) { + led_usb_state = host_keyboard_led_state(); + if (is_keyboard_master()) { + print_status_narrow(); + } else { + oled_set_cursor(0,1); + render_anim(); + oled_set_cursor(0,13); + sprintf(wpm_str, " %03d\n WPM", get_current_wpm()); + oled_write(wpm_str, false); + } +} +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/config.h b/keyboards/solartempest/sofle/keymaps/via/config.h new file mode 100644 index 000000000000..8970276c8774 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#pragma once + +// Set number of layers for VIA, each is 30 bytes +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/solartempest/sofle/keymaps/via/encoder.c b/keyboards/solartempest/sofle/keymaps/via/encoder.c new file mode 100644 index 000000000000..58bffb8e91c3 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/encoder.c @@ -0,0 +1,42 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#ifdef ENCODER_ENABLE +bool encoder_update_user(uint8_t index, bool clockwise) { //Allows for remapping of rotary encoder functions in VIA + if (index == 0) { + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); + } + } else if (index == 1) { + if (clockwise) { //Double check rotation on new flash versus via mapping + action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); + } + } + return true; +} +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c new file mode 100644 index 000000000000..a61dfcd01236 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -0,0 +1,334 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include //This is required for OLED sprintf. +#include "encoder.c" +#ifdef OLED_ENABLE + //#include "oled.c" //Stock OLED code + //Note that the keyboard animations below take a large amount of space! + //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. Disable RGBLIGHT to make enough space. + //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. + #include "snakey.c" //OLED code for Snakey, customized from Luna. +#endif + +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +bool lshift_held = false; // LShift Backspace Delete whole Word Code +bool rshift_held = false; // RShift Backspace Delete whole Word Code +static uint16_t held_shift = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) + }; +#endif + + +#ifdef COMBO_ENABLE //(+42 firmware size for this combo). SBS takes care of this combo, so it is an example only and can be replaced with others as required. + enum combo_events { + sbs_delword + }; + + const uint16_t PROGMEM delword_combo[] = {KC_LSFT, KC_BSPC, COMBO_END}; //Shift-Backspace to delete whole words + combo_t key_combos[COMBO_COUNT] = { + [sbs_delword] = COMBO_ACTION(delword_combo) + }; + + void process_combo_event(uint16_t combo_index, bool pressed) { + switch(combo_index) { + case sbs_delword: + if (pressed) { + tap_code16(LCTL(KC_BSPC)); + } + break; + } + } +#endif + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these layouts to save space when using only VIA. +/* QWERTY + * ,-----------------------------------------. ,-----------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | + * |------+------+------+------+------+------| Enc | | Enc |------+------+------+------+------+------| + * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| + * `-----------------------------------------/ / \ \-----------------------------------------' + * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | + * | | | | |/ / \ \ | | | | | + * `----------------------------------' '------''---------------------------' + */ +/*[0] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC__VOLUP, KC_PGUP,KC_Y, KC_U, KC_I, KC_O, KC_P, SBS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC__VOLDOWN,KC_PGDN,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI,KC_LALT,KC_LCTRL,MO(2), KC_ENT, KC_SPC, MO(3), KC_RCTRL,KC_RALT,KC_RGUI +) +, +[1] = LAYOUT( + KC_PSCR, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F4, + KC_T, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + KC_G, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, + KC_ENT, KC_B, KC_TRNS, KC_PAUS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[2] = LAYOUT( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_RGHT, KC_TRNS,KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, + KC_WREF, KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_TRNS, KC_TRNS,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_PIPE, + KC_TRNS, KC_EQL, KC_MINS,KC_PLUS,KC_LCBR,KC_LCBR,KC_LEFT, KC_TRNS,KC_LBRC,KC_RBRC,KC_DOT, KC_COLN,KC_BSLS, KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS +), +[3] = LAYOUT( + NML, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NMR, + KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ATABF, NMR, KC_WFWD, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL, + KC_SLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ATABR, NML, KC_CAPS, KC_PGUP, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +)*/ +}; + + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +} + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #ifdef KEYBOARD_PET + if (record->event.pressed) { //Drashna's OLED timeout off code for animations + oled_timer = timer_read32(); + } + #endif + + switch (keycode) { //For keycode overrides + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case KC_RSFT: //Shift Backspace to Delete Whole Word. Inspired by Hellsingcoder. + rshift_held = record->event.pressed; + held_shift = keycode; + // KEYBOARD PET STATUS + #ifdef KEYBOARD_PET + if (record->event.pressed) { + isBarking = true; + } else { + isBarking = false; + } + #endif + return true; + case KC_LSFT: + lshift_held = record->event.pressed; + held_shift = keycode; + // KEYBOARD PET STATUS + #ifdef KEYBOARD_PET + if (record->event.pressed) { + isBarking = true; + } else { + isBarking = false; + } + #endif + return true; + case SBS: + if (record->event.pressed) { + if (lshift_held) { + unregister_code(held_shift); + register_code(KC_LCTL); + register_code(KC_BSPC); + } else if (rshift_held) { + unregister_code(held_shift); + register_code(KC_LCTL); + register_code(KC_DEL); + } else { + register_code(KC_BSPC); + } + } else { + unregister_code(KC_BSPC); + unregister_code(KC_DEL); + unregister_code(KC_LCTL); + if (lshift_held || rshift_held) { + register_code(held_shift); + } + } + return false; + + // KEYBOARD PET STATUS + #ifdef KEYBOARD_PET + case KC_LCTL: + case KC_RCTL: + if (record->event.pressed) { + isSneaking = true; + } else { + isSneaking = false; + } + return true; + case KC_SPC: + if (record->event.pressed) { + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } + return true; + #endif + } + return true; +} + + +#ifdef OLED_ENABLE + void suspend_power_down_user(void) { //turn off OLEDs when computer is sleeping + oled_off(); + } +#endif + + +#ifdef RGBLIGHT_ENABLE + // RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Change range for multiple keys with same colour) + const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); //Red-orange (Change range for multiple keys with same colour) + const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Change range for multiple keys with same colour) + const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Change range for multiple keys with same colour) + const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication (No dedicated LED) + const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication (No dedicated LED). Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. + const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication (No dedicated LED) + const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_capslock_layer, //Highest status indicators override other layers + my_numlock_layer, + my_scrollock_layer + ); + + + void keyboard_post_init_user(void) + { + rgblight_layers = my_rgb_layers;// Enable the LED layers + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + layer_move(0); //start on layer 0 to get the lighting activated + } + + + layer_state_t layer_state_set_user(layer_state_t state) + { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,80); + break; + case 1: + rgblight_sethsv_noeeprom(252,255,80); + break; + case 2: + rgblight_sethsv_noeeprom(118,255,80); + break; + case 3: + rgblight_sethsv_noeeprom(218,255,80); + } + return state; + } + + + bool led_update_user(led_t led_state) + { + rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + return true; + } +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/luna.c b/keyboards/solartempest/sofle/keymaps/via/luna.c new file mode 100644 index 000000000000..46721a60e743 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/luna.c @@ -0,0 +1,309 @@ +/* Copyright + * 2021 solartempest + * 2021 Luna code adapted from HellSingCoder and Jackasaur + * 2021 QMK + * + * 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 o + * 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 . + */ + +//SSD1306 OLED update loop +#ifdef OLED_ENABLE + /* KEYBOARD PET START */ + #define KEYBOARD_PET + + /* settings */ + #define MIN_WALK_SPEED 10 + #define MIN_RUN_SPEED 40 + + /* advanced settings */ + #define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms + #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + + /* timers */ + uint32_t anim_timer = 0; + uint32_t anim_sleep = 0; + + /* current frame */ + uint8_t current_frame = 0; + + /* status variables */ + int current_wpm_read = 0; + uint32_t oled_timer = 0; //For Keyboard pet OLED timeout with animations, code by Drashna. + led_t led_usb_state; + + bool isSneaking = false; + bool isJumping = false; + bool showedJump = true; + bool isBarking = false; + + + /* logic */ + static void render_luna(int LUNA_X, int LUNA_Y) { + + /* Sit */ + static const char PROGMEM sit[2][ANIM_SIZE] = { + /* 'sit1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, + 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, + 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sit2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, + 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, + 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; + + /* Walk */ + static const char PROGMEM walk[2][ANIM_SIZE] = { + /* 'walk1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, + 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, + 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'walk2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, + 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Run */ + static const char PROGMEM run[2][ANIM_SIZE] = { + /* 'run1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, + 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'run2', 32x22px */ + { + 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, + 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Bark */ + static const char PROGMEM bark[2][ANIM_SIZE] = { + /* 'bark1', 32x22px */ + { + 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, + 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, + 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'bark2', 32x22px */ + { + 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, + 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, + 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Sneak */ + static const char PROGMEM sneak[2][ANIM_SIZE] = { + /* 'sneak1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, + 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, + 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sneak2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, + 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* animation */ + void animate_luna(void) { + + /* jump */ + if (isJumping || !showedJump) { + + /* clear */ + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y -1); + + showedJump = true; + } else { + + /* clear */ + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y); + } + + /* switch frame */ + current_frame = (current_frame + 1) % 2; + + /* current status */ + if(isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm_read <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm_read <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + } + } + + /* animation timer */ + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } + } + + /* KEYBOARD PET END */ + + static void print_logo_narrow(void) { + oled_set_cursor(0,3); + oled_write("SOLAR", false); + oled_set_cursor(0,4); + oled_write("TMPST", false); + + /* wpm counter */ + char wpm_str[8]; + oled_set_cursor(0,10); + sprintf(wpm_str, " %03d", current_wpm_read); + oled_write(wpm_str, false); + oled_set_cursor(0,11); + oled_write(" wpm", false); + } + + static void print_status_narrow(void) { + /*switch (get_highest_layer(default_layer_state)) { //Not required as only one default layer is used + case 0: + oled_write("SOLAR", false); + break; + case 1: + oled_write("GAME", false); + break; + default: + oled_write("UNDEF", false); + }*/ + + /* Print current layer */ + oled_set_cursor(0,2); + oled_write("LAYER", false); + + oled_set_cursor(0,3); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 3: + oled_write("Raise", false); + break; + case 2: + oled_write("Lower", false); + break; + } + + /* lock status */ + oled_set_cursor(0,6); + oled_write("LOCK", false); + oled_set_cursor(0,7); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,8); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,9); + oled_write("Scrl", led_usb_state.scroll_lock); + + /* KEYBOARD PET RENDER START */ + render_luna(0,13); + /* KEYBOARD PET RENDER END */ + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; + } + + void oled_task_user(void) { + /* KEYBOARD PET VARIABLES START */ + current_wpm_read = get_current_wpm(); + led_usb_state = host_keyboard_led_state(); + /* KEYBOARD PET VARIABLES END */ + + + if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations + if (timer_elapsed32(oled_timer) > 30000) { + oled_off(); + return; + } else { + oled_on(); + } + } + + if (is_keyboard_master()) { + print_status_narrow(); + } else { + print_logo_narrow(); + } + } +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c new file mode 100644 index 000000000000..6aa6a7a8b5b7 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c @@ -0,0 +1,555 @@ +/* + * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) + * + * 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 . + */ + +#include "ocean_dream.h" +#include "quantum.h" +#include "print.h" + +// Calculated Parameters +#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch +#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch +#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch +#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch +#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch + +uint8_t animation_counter = 0; // global animation counter. +bool is_calm = false; +uint32_t starry_night_anim_timer = 0; +uint32_t starry_night_anim_sleep = 0; +static int current_wpm = 0; + +static uint8_t increment_counter(uint8_t counter, uint8_t max) { + counter++; + if (counter >= max) { + return 0; + } else { + return counter; + } +} + +#ifdef ENABLE_WAVE +static uint8_t decrement_counter(uint8_t counter, uint8_t max) { + counter--; + if (counter < 0 || counter > max) { + return max; + } else { + return counter; + } +} +#endif + +#ifdef ENABLE_MOON // region +# ifndef STATIC_MOON +uint8_t moon_animation_frame = 0; // keeps track of current moon frame +uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame +# endif + +# ifdef STATIC_MOON +static const char PROGMEM moon[6] = { + 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81, +}; +# endif + +# ifndef STATIC_MOON +static const char PROGMEM moon_animation[14][8] = { + // clang-format off + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, }, + { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, + { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, }, + { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, }, + { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + // clang-format on +}; +# endif + +static void draw_moon(void) { +# ifdef STATIC_MOON + oled_set_cursor(MOON_COLUMN, MOON_LINE); + oled_write_raw_P(moon, 6); +# endif +# ifndef STATIC_MOON + moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES); + if (moon_animation_counter == 0) { + moon_animation_frame = increment_counter(moon_animation_frame, 14); + oled_set_cursor(MOON_COLUMN, MOON_LINE); + oled_write_raw_P(moon_animation[moon_animation_frame], 8); + } +# endif +} +#endif // endregion + +#ifdef ENABLE_WAVE // region +uint8_t starry_night_wave_frame_width_counter = 31; +uint8_t rough_waves_frame_counter = 0; + +// clang-format off +static const char PROGMEM ocean_top[8][32] = { + // still ocean + { + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + }, + // small ripples + { + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + }, + // level 2 ripples + { + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + }, + // level 3 waves + { + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + }, + { + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + }, + { + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + }, +}; +static const char PROGMEM ocean_bottom[8][32] = { + // still ocean + { + 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21, + 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44, + 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00, + }, + // small ripples + { + 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, + }, + // level 2 ripples + { + 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, + }, + // level 3 waves + { + 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11, + 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04, + 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08, + 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00, + }, + { + 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06, + 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10, + 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00, + 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80, + }, + { + 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21, + 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08, + 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08, + 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00, + }, +}; +// clang-format on + +static void animate_waves(void) { + starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type + rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type + + void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) { + oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset); + oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH); + } + + for (int i = 0; i < WIDTH; ++i) { + uint16_t offset = OCEAN_LINE * WIDTH + i; + uint8_t byte_index = starry_night_wave_frame_width_counter + i; + if (byte_index >= WIDTH) { + byte_index = byte_index - WIDTH; + } + if (is_calm || current_wpm <= WAVE_CALM) { + draw_ocean(0, offset, byte_index); + } else if (current_wpm <= WAVE_HEAVY_STORM) { + draw_ocean(1, offset, byte_index); + } else if (current_wpm <= WAVE_HURRICANE) { + draw_ocean(2, offset, byte_index); + } else { + draw_ocean(3 + rough_waves_frame_counter, offset, byte_index); + } + } +} +#endif // endregion + +#ifdef ENABLE_ISLAND // region +uint8_t island_frame_1 = 0; + +// clang-format off +// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!) + +// To save space and allow the shooting stars to be seen, only draw the tree on every frame. +// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the +// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes +static const char PROGMEM islandRightTop[6][14] = { + {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,}, + {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,}, + {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,}, + {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,}, + {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,}, + {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,}, +}; +static const char PROGMEM islandRightBottom[6][14] = { + {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,}, + {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,}, + {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,}, + {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,}, + {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,}, + {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,}, +}; +static const char PROGMEM islandLeft[18] = { + 0x80, 0x40, 0x40, 0x40, 0x40, 0x60, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x60, 0x40, 0x40, +}; +// clang-format on + +static void animate_island(void) { + if (animation_counter == 0) { + island_frame_1 = increment_counter(island_frame_1, 2); + } + + void draw_island_parts(uint8_t frame) { + oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE); + oled_write_raw_P(islandRightTop[frame], 14); + oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1); + oled_write_raw_P(islandLeft, 18); + oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1); + oled_write_raw_P(islandRightBottom[frame], 14); + } + + if (is_calm || current_wpm < ISLAND_CALM) { + draw_island_parts(0); + } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) { + draw_island_parts(island_frame_1 + 1); + } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) { + draw_island_parts(island_frame_1 + 2); + } else { + draw_island_parts(island_frame_1 + 4); + } +} +#endif // endregion + +#ifdef ENABLE_STARS // region +bool stars_setup = false; // only setup stars once, then we just twinkle them +struct Coordinate { + int x; + int y; + bool exists; +}; + +struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates + +/** + * Setup all the initial stars on the screen + * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES + * where each line is made up of 8x8 pixel groups, that are populated by a single star. + * + * Not sure how this function will work with larger or smaller screens. + * It should be fine, as long as the screen width is a multiple of 8 + */ +static void setup_stars(void) { + // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on + // 36% probability it will not be added + // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all) + for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { + for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { + uint8_t rand_column = rand() % 10; + uint8_t rand_row = rand() % 10; + if (rand_column < 8 && rand_row < 8) { + int column_adder = column_group * 8; + int line_adder = line * 8; + int x = rand_column + column_adder; + int y = rand_row + line_adder; + oled_write_pixel(x, y, true); + stars[column_group + (line * STARS_PER_LINE)].x = x; + stars[column_group + (line * STARS_PER_LINE)].y = y; + stars[column_group + (line * STARS_PER_LINE)].exists = true; + } else { + stars[column_group + (line * STARS_PER_LINE)].exists = false; + } + } + } + stars_setup = true; +} + +/** + * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star + */ +static void twinkle_stars(void) { + for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { + for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { + struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)]; + + // skip stars that were never added + if (!star.exists) { + continue; + } + if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) { + oled_write_pixel(star.x, star.y, false); // black out pixel + + // don't allow stars to leave their own region + if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region + star.x++; // move it right immediately + } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region + star.x--; // move it left immediately + } + if (star.y == (line * 8)) { // star is the farthest up it can go in its region + star.y++; // move it down immediately + } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region + star.y--; // move it up immediately + } + + // now decide direction + int new_x; + int x_choice = rand() % 3; + if (x_choice == 0) { + new_x = star.x - 1; + } else if (x_choice == 1) { + new_x = star.x + 1; + } else { + new_x = star.x; + } + + int new_y; + int y_choice = rand() % 3; + if (y_choice == 0) { + new_y = star.y - 1; + } else if (y_choice == 1) { + new_y = star.y + 1; + } else { + new_y = star.y; + } + + star.x = new_x; + star.y = new_y; + oled_write_pixel(new_x, new_y, true); + } + + stars[column_group + (line * STARS_PER_LINE)] = star; + } + } +} + +/** + * Setup the stars and then animate them on subsequent frames + */ +static void animate_stars(void) { + if (!stars_setup) { + setup_stars(); + } else { + twinkle_stars(); + } +} +#endif // endregion + +#ifdef ENABLE_SHOOTING_STARS // region +bool shooting_stars_setup = false; // only setup shooting stars array once with defaults + +struct ShootingStar { + int x_1; + int y_1; + int x_2; + int y_2; + bool running; + int frame; + int delay; +}; + +struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars + +static void setup_shooting_star(struct ShootingStar *shooting_star) { + int column_to_start = rand() % (WIDTH / 2); + int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean. + + shooting_star->x_1 = column_to_start; + shooting_star->y_1 = row_to_start; + shooting_star->x_2 = column_to_start + 1; + shooting_star->y_2 = row_to_start + 1; + shooting_star->running = true; + shooting_star->frame++; + shooting_star->delay = rand() % SHOOTING_STAR_DELAY; +} + +static void move_shooting_star(struct ShootingStar *shooting_star) { + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); + + shooting_star->x_1++; + shooting_star->y_1++; + shooting_star->x_2++; + shooting_star->y_2++; + shooting_star->frame++; + + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true); +} + +static void finish_shooting_star(struct ShootingStar *shooting_star) { + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); + shooting_star->running = false; + shooting_star->frame = 0; +} + +static void animate_shooting_star(struct ShootingStar *shooting_star) { + if (shooting_star->frame > SHOOTING_STAR_FRAMES) { + finish_shooting_star(shooting_star); + return; + } else if (!shooting_star->running) { + setup_shooting_star(shooting_star); + } else { + if (shooting_star->delay == 0) { + move_shooting_star(shooting_star); + } else { + shooting_star->delay--; + } + } +} + +static void animate_shooting_stars(void) { + if (is_calm) { + return; + } + if (!shooting_stars_setup) { + for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) { + shooting_stars[i].running = false; + } + shooting_stars_setup = true; + } + /** + * Fixes issue with stars that were falling _while_ the + * wpm dropped below the condition for them to keep falling + */ + void end_extra_stars(uint8_t starting_index) { + for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) { + struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; + if (shooting_star.running) { + finish_shooting_star(&shooting_star); + shooting_stars[shooting_star_index] = shooting_star; + } + } + } + + int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT; + number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars; + + if (number_of_shooting_stars == 0) { + // make sure all shooting_stars are ended + end_extra_stars(0); + } else { + for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) { + struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; + animate_shooting_star(&shooting_star); + shooting_stars[shooting_star_index] = shooting_star; + } + end_extra_stars(number_of_shooting_stars); + } +} +#endif // endregion + +/** + * Main rendering function + * + * Calls all different animations at different rates + */ +void render_stars(void) { + // // animation timer + if (timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) { + starry_night_anim_timer = timer_read32(); + current_wpm = get_current_wpm(); + +#ifdef ENABLE_ISLAND + animate_island(); +#endif + +#ifdef ENABLE_SHOOTING_STARS + if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) { + animate_shooting_stars(); + } +#endif + +#ifdef ENABLE_STARS + // TODO offsetting the star animation from the wave animation would look better, + // but if I do that, then the stars appear in the water because + // the ocean animation has to wait a bunch of frames to overwrite it. + // Possible solutions: + // 1. Only draw stars to the top of the island/ocean. + // 2. Draw ocean every frame, only move ocean on frames matching modulus + // Problems: + // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water? + // 2. More cpu intensive. And I'm already running out of cpu as it is... + if (animation_counter % STAR_ANIMATION_MODULATOR == 0) { + animate_stars(); + } +#endif + +#ifdef ENABLE_WAVE + if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) { + animate_waves(); + } +#endif + +#ifdef ENABLE_MOON + draw_moon(); +#endif + + animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES); + } + + // this fixes the screen on and off bug + if (current_wpm > 0) { + oled_on(); + starry_night_anim_sleep = timer_read32(); + } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } +} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/oled.c b/keyboards/solartempest/sofle/keymaps/via/oled.c new file mode 100644 index 000000000000..415a82f13d08 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/oled.c @@ -0,0 +1,82 @@ + /* Copyright 2020 Josef Adamcik + * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang + * + * 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 . + */ + +//Sets up what the OLED screens display. + +#ifdef OLED_ENABLE + static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); + } + + static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + case 1: + oled_write_ln_P(PSTR("Clmk"), false); + break; + default: + oled_write_P(PSTR("Mod\n"), false); + break; + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case 0: + case 1: + oled_write_P(PSTR("Base\n"), false); + break; + case 2: + oled_write_P(PSTR("Raise"), false); + break; + case 3: + oled_write_P(PSTR("Lower"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return rotation; + } + + void oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + } +#endif \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/rules.mk b/keyboards/solartempest/sofle/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c new file mode 100644 index 000000000000..76b292887ebf --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -0,0 +1,321 @@ +/* Copyright + * 2021 solartempest + * 2021 Luna code adapted from HellSingCoder and Jackasaur + * 2021 QMK + * + * 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 o + * 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 . + */ + +//SSD1306 OLED update loop +#ifdef OLED_ENABLE + #define KEYBOARD_PET + /* KEYBOARD PET START */ + + /* settings */ + #define MIN_WALK_SPEED 10 + #define MIN_RUN_SPEED 40 + + /* advanced settings */ + #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. + #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + + /* timers */ + uint32_t anim_timer = 0; + + /* current frame */ + uint8_t current_frame = 0; + + /* status variables */ + int current_wpm_read = 0; + uint32_t oled_timer = 0; //For Keyboard pet OLED timeout with animations, code by Drashna. + led_t led_usb_state; + + bool isSneaking = false; + bool isJumping = false; + bool showedJump = true; + bool isBarking = false; + + + static void render_logo(int LUNA_X, int LUNA_Y) { + static const char PROGMEM luna_logo[] = { + 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, + 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, + }; + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + + /* logic */ + static void render_luna(int LUNA_X, int LUNA_Y) { + + /* Sit */ + static const char PROGMEM sit[2][ANIM_SIZE] = { + /* 'sit1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'sit2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x01, 0x01, 0x02, 0x06, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Walk */ + static const char PROGMEM walk[2][ANIM_SIZE] = { + /* 'walk1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xfc, 0xfe, 0xfe, 0x1f, 0x3f, 0x39, 0x39, 0x3f, 0x3f, 0x1e, 0x1e, 0x0c, 0x00, + 0x00, 0x00, 0x01, 0x0f, 0x3e, 0x78, 0x70, 0xf8, 0xfc, 0xfe, 0x7e, 0x3e, 0x3c, 0x3c, 0x78, 0x78, + 0x78, 0xf0, 0xf1, 0xff, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'walk2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x7f, 0xff, 0xff, 0xe7, 0xc7, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3e, 0x78, 0xf0, 0xfc, 0x7e, 0x1e, 0x1f, 0x0f, 0x0e, + 0x1e, 0x1c, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Run */ + static const char PROGMEM run[2][ANIM_SIZE] = { + /* 'run1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, + 0x87, 0x7f, 0xff, 0xff, 0xf1, 0xc3, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1f, 0x3e, 0x78, 0xf7, 0xff, 0x7f, 0x3d, 0x03, 0x07, 0x0f, + 0x1e, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'run2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0x3e, 0xde, 0xfe, 0xfc, 0xf8, 0x00, 0x00, + 0xe0, 0xfe, 0xff, 0x7f, 0x07, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x1e, 0x3c, 0x78, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x07, 0x1f, 0x3f, 0x7c, 0x78, 0xff, + 0xff, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Bark */ + static const char PROGMEM bark[2][ANIM_SIZE] = { + /* 'bark1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe7, 0xe7, 0xef, 0xef, 0xcf, 0xcb, 0x83, 0x83, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x1c, 0x38, 0x78, 0xf1, 0xe3, 0xe3, 0xe7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + /* 'bark2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x9f, + 0x0f, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e, 0xe6, 0x83, 0x03, 0x0f, 0x43, 0x43, 0x90, 0x88, 0x08, + 0x00, 0x00, 0x03, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xfb, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* Sneak */ + static const char PROGMEM sneak[2][ANIM_SIZE] = { + /* 'sneak1', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + + /* 'sneak2', 32x22px */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + /* animation */ + void animate_luna(void) { + + /* jump */ + if (isJumping || !showedJump) { + + /* clear */ + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y -1); + + showedJump = true; + } else { + + /* clear */ + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y); + } + + /* switch frame */ + current_frame = (current_frame + 1) % 2; + + /* current status */ + if(isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm_read <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm_read <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + } + } + + /* animation timer */ + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } + } + /* KEYBOARD PET END */ + + static void print_logo_narrow(void) { + oled_set_cursor(0,2); + oled_write("SOLAR", false); + oled_set_cursor(0,3); + oled_write("TMPST", false); + + render_logo(0,7); + + /* wpm counter */ + char wpm_str[8]; + oled_set_cursor(0,13); + sprintf(wpm_str, " %03d", current_wpm_read); + oled_write(wpm_str, false); + oled_set_cursor(0,14); + oled_write(" wpm", false); + } + + static void print_status_narrow(void) { + /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. + case 0: + oled_write("SOLAR", false); + break; + case 1: + oled_write("GAME", false); + break; + default: + oled_write("UNDEF", false); + }*/ + + /* Print current layer */ + oled_set_cursor(0,2); + oled_write("LAYER", false); + + oled_set_cursor(0,3); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 3: + oled_write("Raise", false); + break; + case 2: + oled_write("Lower", false); + break; + } + + /* lock status */ + oled_set_cursor(0,6); + oled_write("LOCK", false); + oled_set_cursor(0,7); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,8); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,9); + oled_write("Scrl", led_usb_state.scroll_lock); + + /* KEYBOARD PET RENDER START */ + render_luna(0,13); + /* KEYBOARD PET RENDER END */ + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; + } + + void oled_task_user(void) { + /* KEYBOARD PET VARIABLES START */ + current_wpm_read = get_current_wpm(); + /* KEYBOARD PET VARIABLES END */ + led_usb_state = host_keyboard_led_state(); + + if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations + if (timer_elapsed32(oled_timer) > 30000) { + oled_off(); + return; + } else { + oled_on(); + } + } + + if (is_keyboard_master()) { + print_status_narrow(); + } else { + print_logo_narrow(); + } + } +#endif diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md new file mode 100644 index 000000000000..1593b040f746 --- /dev/null +++ b/keyboards/solartempest/sofle/readme.md @@ -0,0 +1,82 @@ +# Sofle Keyboard + +![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWu.jpg) + +Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) + +Build guide and log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) + +* Keyboard Maintainer: [Solartempest] +* Hardware Supported: SofleKeyboard V2.1 RGB PCB, ProMicro / Elite-C +* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) + +# Custom Features: + +### OLED Features: +- Includes Snakey keyboard pet! Slithers according to WPM, bites, and sticks its tongue out at you! +- OLED displays current layer, lock key status, WPM, custom logo, and custom name. +- OLED shuts off on idle and when computer is sleeping. +- Includes working Luna keyboard pet. +- Includes working Bongocat (disable RGB for sufficient space). +- Includes stock OLED code as well. + +### RGB Features: +- Adds custom layer lighting with custom gradients for each layer. +- RGB underglow support and remapped to physical locations (nicer gradients and effects). +- Adds white caps lock, scroll lock, and num lock key indicators using the top row/underglow LEDs. + +### Rotary Encoder and VIA Features: +- Fully emappable left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. +- Allows for live remapping of per-layer rotary encoder functions in VIA. +- VIA support included by default. +- This fixes the Keyhive left bottom row offset issue in VIA. You will need to import sofle.json in VIA. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. + +### Tap and Other Features: +- Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. +- Double tap layers to stay on a layer instead of momentary push. +- Adds key combo functionality. +- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "sofle VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "sofle VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + + +# Compiling + +Compile with the command below: + +```sh +# for Elite C with Left Side Master builds +qmk compile -kb solartempest/sofle -km via +``` + +## Flashing + +Flash using the correct command below (or use QMK Toolbox like me): + +```sh +# for pro micro-based builds +qmk flash -kb solartempest/sofle -km via -bl avrdude-split-left +qmk flash -kb solartempest/sofle -km via -bl avrdude-split-right + +# for Elite C or dfu bootloader builds +qmk flash -kb solartempest/sofle -km via -bl dfu-split-left +qmk flash -kb solartempest/sofle -km via -bl dfu-split-right +``` + +These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. +Press reset button on he keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk new file mode 100644 index 000000000000..a6d0a766b59a --- /dev/null +++ b/keyboards/solartempest/sofle/rules.mk @@ -0,0 +1,25 @@ +MCU = atmega32u4 +BOOTLOADER = atmel-dfu + +# Build Options +# Comment out to disable the options. + +SPLIT_KEYBOARD = yes # Split keyboard +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +CONSOLE_ENABLE = no # Console for debug +EXTRAKEY_ENABLE = yes # Audio control and System control (+450) +RGBLIGHT_ENABLE = yes # RGB lighting (+2350) +ENCODER_ENABLE = yes # Encoders +MOUSEKEY_ENABLE = no # Mouse keys (+1482) +NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work +LTO_ENABLE = yes # Save space + +OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608) +OLED_DRIVER = SSD1306 # Specify OLED driver +WPM_ENABLE = yes # WPM counter for keyboard pets (+1298) +COMBO_ENABLE = no # Tap combo chording, may run into space issue if also using keyboard pets (+952) + # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. + +GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) +MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) +SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) diff --git a/keyboards/solartempest/sofle/sofle VIA keymap.json b/keyboards/solartempest/sofle/sofle VIA keymap.json new file mode 100644 index 000000000000..163a23ab1b15 --- /dev/null +++ b/keyboards/solartempest/sofle/sofle VIA keymap.json @@ -0,0 +1,62 @@ +{ + "name": "Solarius_Sofle" , + "vendorId": "0xFC32", + "productId": "0x1287", + "lighting": "qmk_rgblight", + "matrix": { "rows": 10, "cols": 7 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + }, + { + "name": "Move Window Right", + "title": "Move Window Right in Windows", + "shortName": "MWR" + }, + { + "name": "Move Window Left", + "title": "Move Window Left in Windows", + "shortName": "MWL" + }, + { + "name": "Shift-BSPC", + "title": "Shift-Backspace to Delete Whole Words", + "shortName": "SBS" + } + ], + "layouts": + { + "keymap": + [ + [{"y":0.5,"x":3.25},"0,3",{"x":9},"5,3"], + [{"y":-0.87,"x":2.25},"0,2",{"x":1},"0,4",{"x":7},"5,4",{"x":1},"5,2"], + [{"y":-0.9,"x":5.25},"0,5",{"x":5},"5,5"], + [{"y":-0.87,"x":0.25,"c":"#777777"},"0,0",{"c":"#cccccc"},"0,1",{"x":13},"5,1",{"c":"#aaaaaa"},"5,0"], + [{"y":-0.4,"x":3.25,"c":"#cccccc"},"1,3",{"x":2.2},"1,6",{"x":2.6},"8,6",{"x":2.2},"6,3"], + [{"y":-0.9,"x":2.25},"1,2",{"x":1},"1,4",{"x":7},"6,4",{"x":1},"6,2"], + [{"y":-0.9,"x":5.25},"1,5",{"x":5},"6,5"], + [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"1,0",{"c":"#cccccc"},"1,1",{"x":13},"6,1",{"c":"#aaaaaa"},"6,0"], + [{"y":-0.4,"x":3.25,"c":"#cccccc"},"2,3",{"x":2.2},"4,0",{"x":2.6},"9,5",{"x":2.2},"7,3"], + [{"y":-0.9,"x":2.25},"2,2",{"x":1},"2,4",{"x":7},"7,4",{"x":1},"7,2"], + [{"y":-0.9,"x":5.25},"2,5",{"x":5},"7,5"], + [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"2,0",{"c":"#cccccc"},"2,1",{"x":13},"7,1",{"c":"#aaaaaa"},"7,0"], + [{"y":-0.4,"x":3.25,"c":"#cccccc"},"3,3",{"x":2.2},"3,6",{"x":2.6},"6,6",{"x":2.2},"8,3"], + [{"y":-0.9,"x":2.25},"3,2",{"x":1},"3,4",{"x":7},"8,4",{"x":1},"8,2"], + [{"y":-0.9,"x":5.25},"3,5",{"x":5},"8,5"], + [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"3,0",{"c":"#cccccc"},"3,1",{"x":13},"8,1",{"c":"#aaaaaa"},"8,0"], + [{"y":-0.3,"x":3.25},"4,2",{"x":9},"9,1"], + [{"y":-0.9,"x":2.25},"4,1",{"x":1},"4,3",{"x":7},"9,2",{"x":1},"9,0"], + [{"r":30,"rx":7.15,"y":4.6,"x":1,"c":"#777777"},"4,4"], + [{"r":45,"y":-2.25,"x":3.35,"h":1.5},"4,5"], + [{"r":-45,"y":1.3,"x":-2.08,"h":1.5},"9,4"], + [{"r":-30,"y":-0.45,"x":0.8},"9,3"] + ] + } +} diff --git a/keyboards/solartempest/sofle/sofle VIA layout.json b/keyboards/solartempest/sofle/sofle VIA layout.json new file mode 100644 index 000000000000..42db09c8d317 --- /dev/null +++ b/keyboards/solartempest/sofle/sofle VIA layout.json @@ -0,0 +1,295 @@ +{ + "name": "Solarius_Sofle", + "vendorProductId": 4231139975, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_NO", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_VOLU", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_F", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_VOLD", + "KC_MUTE", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "TT(2)", + "KC_ENT", + "KC_LALT", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_0", + "USER04", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_PGUP", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_NO", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_PGDN", + "TG(1)", + "KC_RALT", + "KC_RCTL", + "TT(3)", + "KC_SPC", + "C(KC_W)", + "KC_N" + ], + [ + "KC_PSCR", + "KC_5", + "KC_1", + "KC_2", + "KC_3", + "KC_G", + "KC_SPC", + "KC_F12", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_TRNS", + "KC_ENT", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_NO", + "KC_LSFT", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_TRNS", + "KC_TRNS", + "KC_LALT", + "KC_B", + "KC_TRNS", + "KC_F22", + "KC_SPC", + "KC_NO", + "KC_F4", + "KC_F11", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F12", + "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_NO", + "KC_RALT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "MO(3)", + "KC_TRNS", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_GRV", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_NO", + "KC_ESC", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "C(KC_PPLS)", + "KC_TRNS", + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_NO", + "KC_TRNS", + "KC_EQL", + "KC_MINS", + "KC_PLUS", + "KC_LCBR", + "KC_RCBR", + "C(KC_MINS)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F11", + "KC_F10", + "KC_F9", + "KC_F8", + "KC_F7", + "KC_F6", + "KC_NO", + "KC_F12", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "C(S(KC_TAB))", + "KC_PIPE", + "KC_RPRN", + "KC_LPRN", + "KC_ASTR", + "KC_AMPR", + "KC_CIRC", + "KC_NO", + "KC_TRNS", + "KC_BSLS", + "KC_COLN", + "KC_DOT", + "KC_RBRC", + "KC_LBRC", + "C(KC_TAB)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "KC_TRNS", + "C(KC_T)", + "KC_NO" + ], + [ + "USER03", + "C(KC_PPLS)", + "C(KC_MINS)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_INS", + "KC_PSCR", + "KC_APP", + "C(KC_UP)", + "C(KC_DOWN)", + "USER00", + "KC_TRNS", + "KC_LALT", + "KC_LCTL", + "KC_LSFT", + "C(KC_LEFT)", + "C(KC_RGHT)", + "KC_NO", + "KC_TRNS", + "C(KC_Z)", + "C(KC_X)", + "C(KC_C)", + "C(KC_V)", + "KC_TRNS", + "USER01", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_MYCM", + "KC_TRNS", + "KC_NO", + "USER02", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_F14", + "KC_F13", + "KC_NO", + "KC_DEL", + "KC_INS", + "KC_END", + "KC_UP", + "KC_HOME", + "KC_WWW_FORWARD", + "USER03", + "KC_BSPC", + "KC_NLCK", + "KC_RGHT", + "KC_DOWN", + "KC_LEFT", + "KC_WWW_BACK", + "KC_NO", + "KC_TRNS", + "KC_SLCK", + "KC_PGDN", + "KC_TRNS", + "KC_PGUP", + "KC_CAPS", + "USER02", + "KC_TRNS", + "KC_TRNS", + "KC_WWW_REFRESH", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/sofle.c b/keyboards/solartempest/sofle/sofle.c new file mode 100644 index 000000000000..b51a7e8a0460 --- /dev/null +++ b/keyboards/solartempest/sofle/sofle.c @@ -0,0 +1,19 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#include "sofle.h" diff --git a/keyboards/solartempest/sofle/sofle.h b/keyboards/solartempest/sofle/sofle.h new file mode 100644 index 000000000000..6e9b06cef09f --- /dev/null +++ b/keyboards/solartempest/sofle/sofle.h @@ -0,0 +1,42 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// Extra keys are added for rotary encoder support in VIA +#define LAYOUT( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ + LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ + LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ + { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ + } From 47bc4a4a4c4c23a7aa880e6f5b526d799dc8efd6 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 22:25:56 -0400 Subject: [PATCH 07/94] Initial commit --- .../gmmk/pro/ansi/keymaps/railgun/config.h | 69 ++++ .../keymaps/railgun/gmmk_pro VIA layout.json | 367 ++++++++++++++++++ .../keymaps/railgun/gmmk_pro_ansi_railgun.bin | Bin 0 -> 46400 bytes .../gmmk/pro/ansi/keymaps/railgun/jonavin.c | 253 ++++++++++++ .../gmmk/pro/ansi/keymaps/railgun/jonavin.h | 85 ++++ .../gmmk/pro/ansi/keymaps/railgun/keymap.c | 194 +++++++++ .../gmmk/pro/ansi/keymaps/railgun/readme.md | 53 +++ .../pro/ansi/keymaps/railgun/rgb_matrix_map.h | 148 +++++++ .../gmmk/pro/ansi/keymaps/railgun/rules.mk | 32 ++ 9 files changed, 1201 insertions(+) create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/config.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro VIA layout.json create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro_ansi_railgun.bin create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/jonavin.c create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/jonavin.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/keymap.c create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/readme.md create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/rgb_matrix_map.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/railgun/rules.mk diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/config.h b/keyboards/gmmk/pro/ansi/keymaps/railgun/config.h new file mode 100644 index 000000000000..c50c9704403a --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/config.h @@ -0,0 +1,69 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 // TT set to two taps + +/* Handle GRAVESC combo keys */ +//#define GRAVE_ESC_ALT_OVERRIDE //Always send Escape if Alt is pressed +//#define GRAVE_ESC_CTRL_OVERRIDE //Always send Escape if Control is pressed + +#define TAPPING_TERM 180 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE + #define RGB_DISABLE_WHEN_USB_SUSPENDED + + /*#define RGB_MATRIX_KEYPRESSES + #define DISABLE_RGB_MATRIX_SOLID_COLOR + #define DISABLE_RGB_MATRIX_BREATHING + #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_BAND_SAT + #define DISABLE_RGB_MATRIX_BAND_VAL + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define DISABLE_RGB_MATRIX_HUE_BREATHING + #define DISABLE_RGB_MATRIX_HUE_PENDULUM + //#define DISABLE_RGB_MATRIX_HUE_WAVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH*/ +#endif diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro VIA layout.json b/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro VIA layout.json new file mode 100644 index 000000000000..40a86c5ba5c4 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro VIA layout.json @@ -0,0 +1,367 @@ +{ + "name": "GMMK Pro", + "vendorProductId": 839864388, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_LSFT", + "KC_MUTE", + "KC_NO", + "KC_LEFT", + "KC_RCTL", + "KC_RGHT", + "KC_LCTL", + "KC_F5", + "KC_Q", + "KC_TAB", + "KC_A", + "KC_ESC", + "KC_Z", + "KC_PGUP", + "KC_GRV", + "KC_1", + "KC_W", + "TT(2)", + "KC_S", + "KC_NO", + "KC_X", + "KC_PGDN", + "KC_F1", + "KC_2", + "KC_E", + "KC_F3", + "KC_D", + "KC_F4", + "KC_C", + "KC_UP", + "KC_F2", + "KC_3", + "KC_R", + "KC_T", + "KC_F", + "KC_G", + "KC_V", + "KC_B", + "KC_5", + "KC_4", + "KC_U", + "KC_Y", + "KC_J", + "KC_H", + "KC_M", + "KC_N", + "KC_6", + "KC_7", + "KC_I", + "KC_RBRC", + "KC_K", + "KC_F6", + "KC_COMM", + "KC_HOME", + "KC_EQL", + "KC_8", + "KC_O", + "KC_F7", + "KC_L", + "KC_DOWN", + "KC_DOT", + "KC_END", + "KC_F8", + "KC_9", + "KC_P", + "KC_LBRC", + "KC_SCLN", + "KC_QUOT", + "KC_NO", + "KC_SLSH", + "KC_MINS", + "KC_0", + "KC_LGUI", + "KC_RSFT", + "MO(1)", + "KC_LALT", + "KC_SPC", + "KC_RALT", + "KC_NO", + "KC_DEL", + "KC_NO", + "KC_BSPC", + "KC_BSLS", + "KC_F11", + "KC_ENT", + "KC_F12", + "KC_F9", + "KC_F10" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "RGB_SPD", + "TO(3)", + "RGB_SPI", + "KC_TRNS", + "KC_MPRV", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_HOME", + "KC_TRNS", + "KC_TRNS", + "RGB_VAI", + "KC_CAPS", + "RGB_VAD", + "KC_NO", + "RGB_HUI", + "KC_END", + "KC_MYCM", + "KC_TRNS", + "KC_TRNS", + "KC_CALC", + "KC_TRNS", + "KC_MSEL", + "KC_TRNS", + "RGB_MOD", + "KC_WWW_HOME", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_PSCR", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NLCK", + "KC_TRNS", + "KC_TRNS", + "KC_SLCK", + "KC_TRNS", + "KC_TRNS", + "KC_MNXT", + "KC_NO", + "RGB_TOG", + "KC_TRNS", + "KC_TRNS", + "KC_PAUS", + "KC_MPLY", + "KC_TRNS", + "RGB_RMOD", + "KC_NO", + "KC_TRNS", + "KC_MSTP", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F14", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F13", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_CAPS", + "KC_NO", + "KC_CALC", + "KC_NO", + "KC_TRNS", + "RESET", + "KC_VOLU", + "KC_TRNS", + "KC_TRNS", + "KC_MUTE", + "KC_VOLD" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "C(RCTL(KC_LEFT))", + "KC_TRNS", + "C(RCTL(KC_RGHT))", + "KC_TRNS", + "KC_TRNS", + "KC_HOME", + "KC_TRNS", + "KC_LEFT", + "KC_TRNS", + "KC_CAPS", + "KC_HOME", + "C(S(KC_M))", + "C(S(KC_B))", + "KC_UP", + "TO(0)", + "KC_DOWN", + "KC_NO", + "KC_DEL", + "KC_END", + "KC_TRNS", + "KC_TRNS", + "KC_END", + "KC_TRNS", + "KC_RGHT", + "KC_TRNS", + "KC_INS", + "C(RCTL(KC_PGUP))", + "KC_TRNS", + "KC_TRNS", + "KC_PGUP", + "KC_TRNS", + "KC_PGDN", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_P4", + "KC_TAB", + "KC_P1", + "KC_TRNS", + "KC_P0", + "KC_NO", + "KC_TRNS", + "KC_P7", + "KC_P5", + "KC_TRNS", + "KC_P2", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_PPLS", + "KC_P8", + "KC_P6", + "KC_TRNS", + "KC_P3", + "C(RCTL(KC_PGDN))", + "KC_PDOT", + "KC_TRNS", + "KC_TRNS", + "KC_P9", + "KC_PPLS", + "KC_TRNS", + "KC_PENT", + "KC_PAST", + "KC_NO", + "KC_PSLS", + "KC_PMNS", + "KC_P0", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_PENT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "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_F22", + "KC_TRNS", + "KC_NO", + "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", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ] + ] +} \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro_ansi_railgun.bin b/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro_ansi_railgun.bin new file mode 100644 index 0000000000000000000000000000000000000000..3a0d9c54f5b53f5d5d58bdf13c0472b92c811e7d GIT binary patch literal 46400 zcmc${dwf*I`9D5q&)G|EWOD&R5@3@}aB~3`0vayLvKvk=3kCsO1pK&w+Kp&kw6;rI z%SKRxN(FKth$U*=2&lEK?Jk#^fJhYNNK)-t64hJY5V#7 z{`iI0?97?VGtWHp%*->-JTnlE7=kLIJN6&AmPh`xeE$=y2cIUot#Hr7wZMG@_Zi$J zxc{llcjG&D{O5VUTlW9*9rqie8w)oDZXVn%aQ_!Lv`o&<|9#nl@kFPFBeB2x-k4G0 z>Cx4d;x`VzH(u7=^w*1o(K##^3Hb}$jhCmbjmG$Us-N`t-1{U=X}c&Qr7o6tIHg)7 z5!@i$(c9V??TczV+7Xeq7ujI0%x4_1peo5xpXRc*D-_Rp2Lggzm=a?Djp%35wSFl+NsJqMQtC{6Lpd?%#1)YtK_`xikTXL9A&Xn8T1bJ;PfXeVYEhm7 zXC`9e!B<1N#CtAqe~lAQ44sy^&eIoEMy|-=B7U~ebs)9F z(#5D>)pC3SZwQXz4g6w>TaGrbdCi&;-o4YR^XFw~0*Re^ ziJ6lkF_Y`9nqY%993%$U+ph8@Gf!QW*K=%&q?%=b`-Q;G>^R2E9EK7(n&4(#cDK#-xO;<(LK6=>qU8fi z#*xC=fj{|JUe%c%lBZpJjFp(8-C8Ng78i7U+Dh$5Y<)nvBZDH5nC5KNlkXY}(#_GH+$}*s^&c!Wuy-Lw-SHKP^Aqh!l}QWI9g7_ac`X05V_R)Bf1EwO;zr;Ql%hCH?7eB}#Pv_l zAI4=8!dK&?Z}#MHJQ3GL9JgD%?0Ay)&ikbDDgmGTyDFE{a}ttMdOl5%;5H}S1smRg8-^TAO@*1;G` zTL~NuQ<$Z#;|p@yOPg&9%ncL^1KYikt@7Rkm`q`!0(Y!qivpFFmcwI4SbVAA zqHq)pF{V{^hR<-y;g|eT+NtdEz=Fm+qVy+g&u|XYVHM~=`*^raORP+3a{{lOujW(u z44xQ`jyUn>1Ga1uC~Y-5Nl|~G$Whw56!T@Axb|(*96x`8Q_Vlzl+BCIMP99)Z2jm0 zGgVVr#OHzvIg%W%ALQ(r{6&G*)eHXN=-dmZYX%4B%Hh*8@h2W2%^RAyeVE;fn0g}4 zim*+$N?f-JbK{5udZelMY34^$8Q$O|Vj*(0eyO*x$PsM^_5VA^pwForPK&meh$|0X z-F_mnv2Ri^J5bt;S#WmZcv5uGe=bAKGvby$qdn7E=-p#Y>d0|AG9I!T1FIY+KHEWi zm=Pa&v(d`7XYz|dqew8txiF)_Iwp|UPV;WCY67brOOQL7*Y)PH3xs9LRy%SK+anyk zKvYcGDt!H2aFrXJOxZ$|NpYMHM)NIpq&PZ-L}Sqv2-R;AKV7?|=8v-TMOLkwo;b18 zpO{Z3YWR{*S={kCoksWtCvy2EPEsrd*EvbStUv*8=HtXW z`)%2#z>(}c%rp&Fbs#5`#xCz?%wq%j4l`Omx{nJb5QC^C#<7PonLt)%<3g!5F?Xs1 zIJ71dsoVEhS36SziyZ>yBcmg`EZ^}tFgEig4n~wB(OjYS#m;nomg9s#;TQG09q)h# zX*=qjn751S9VsXE2e#ETTH{W|7ia@%&ZXIU#~7E62QS!N<@A?`zkBPOc-p7Cyi#*o zSu(HTZymQ}9Mk!VRTr4ar%TLuGf&5`E&EbX!nmW3=C60^o74HUmc@Pk3A^rcFD^@{ zCxv$gh!JCdDl<(}|Ir0q$!2M}IlEr_l)6*1Q`^V(q}hsjO?^JE&K-%hgZAW4q?h>( zS;X{pP_wIDQ|341qKsjTHpgA&FH*vV1-Av&J5!w8R8pXRs_o*_p17?m-Op!FD!4oF zz04O&}#Pq8G$hJ-+&`|^ESdG1Tt=LOJiiRAv6G^^1L}RG zei>h5XSZu!dcB8uYWbFsJV%R`*wGG38B(;q_ZP2ITBeCiGU#bm1$Tm)jh^Ki5~}wk zY#)#D4yjArH?R=YU*9|9bxMD(=>~!Nx~7=|rPiF@pT2&l@Lb5OiYu)1@8KKU<90Ef z#XK{;z|D4VU{&2VHk$e}-_tRvfD5VAarI9HcS?-DuwYV9y=$kW(q}rgPjMxrP+cD% zV%6~>6?@&OYn8U|#H@ByCMHktMgC^~5kb96TVfQotgb{||BO&+wTUV=ZmXvL4k6m+ zVx`SQl%!gIqk2zAFJx=NLteQQ3N?Jg4c!@6h=h8`cv+F+jgcQLUC}y82 z_z$$d|K*Nvb6Sr^Yf!m0C0y8@9FCgM&Pg%zU@VQ!dfkjNI zbsKY?XQZWvHcIo%jB})h%HfQ|5_--P)Ry_JqCu7Gpz}q&N1sb_HlnQ#XM=;7+AjXl zljF=0IVK0`7O~MoOct@t^8l|aB;qTc*SgiLapm03)u`(WPi8wQC=Dz{jqM)Pq^EU$ z`R@C|y-4+YT!{aRhsFior8NR42gTJYR5=TmQ!_nAx3YjXN-dwAK;BEKaz-N7SFz%gZ`Dn?L&;& z5Gdr0HN*WiCIIN$&pMydjyaJDE*V8RB#z{B;1G6uX6DP*B=ASow|Xn2@Q0et4jZ~Umjb59s+*!{FWk7a)4+hLu|7o28Fo^vkDW@bF+FgQlKR-xsi0*#wa zX_*u86H@}EJXTrpWF#5zjt76@><|t(KNe_j6VWJ@wis)MzotfrNeEzMUw1B+UVxa( z!CWU}{ODWr(>F5g9z|ZAWp_1?b!s4mCwcePobr~Uu5khSTNSttzdHXvoChL_hI-!^ zZN>>hjcz|y6jgCxbq&c~Zf#t-$KluyNkEa(AC45DL}&2sD<#e!KdqU4VySk*aYKz& z)Ul1VyL`lSI>`1K?()QinJ_oINXrOVEp@u>}8r-2>>R$zl5!2BiYBpzT{&vD9 zT2PkGT&~tvoNov#*WBdgLS^g@D+dU2_%D4FM`B#Pnivf=s~x#wp32~OPq2y>Rh+Rz z*&pnwbwMVf^X}F2_2Zi|wU}GxCh{JB?(r%oDZJ(M`Mb!Z#Q~DrE|G;fcl{A_X_dXyKd6ZP~Y>kIvtfbJuNJ^@&x^)oVPN30~vfZJ8=a_%sKfJuir|W(B9Bn*(Eu zn82u_WkDlocH{z?x^fL*E=<`UZGkFaK?~OO5rbnjMqTZQn%BHZ&Jm6s+C)F7Y@Ty}wvN!##ovX~i&L!!s zXrFGw+WT}m(J_^fpAbjGx@H?{RUO}eI++v1plkI2{+HaIJS98@kXTG{$ zb!h~z4*i6Y!xtkQj}<*9(R`;v9dfF291V`4@b6>;PkBmZXBAvNz&>IakBJwgYBfKz zLJr>^*$27T87!?Tx+B$jUFA!wUben>A+?0Vy1Q>BoxSdtoY;#H@m}dg#a|=+*!iV{ z|5FTrBp44NsFo?8tTVh&w@QHZTpOoL>EUGl1fzMj&Ve{8SW#vui#wG8a@vc zIVI)U$2#}b{9=E_^b;4DY0ND3iTqAx*0O9al!%!@0FNz+;m#0QW{~nY+C$@Lc=J`^^|5x+_}W-l*R00ZeUR$Z z;DOdJbe>3h^kt;XYyj!+vQ8- z$7nY+J%ruU^b@%?J2CI7R2a98>jUJP-h!qiujql$#3UZ@(cMB z-ge9omY$=Yc1dT>%G8!k%={xl6#gGPv=lAnU-7o*b?aL^xhQzjdbiv=IdJ>}H(J|W zu5IXM613eP|IC@aUca>Lpmip{(XR!r%TeZnCq=2L3_BYlUh*vCb846^L*ZqEdp0q< za(lO|vWgznp4#7cC#cx&1oESm#+3%g9>-*UAHR&R#CTEn?Qt5NN3)ifP3HGFj1H1d zTYM_3r7YUsIh2#k6jQ7^6JMq+d|G$yULhf*V;5gg{b(1jDT%hpTe{V8 zYXXdc*1tS!QrY?}ib2|2#6a~b;*(SOLco7DVssXj868myFNMtVxq=~`d+FNNSR2hv zch)7?7w949-pKFb$>iq)#MB%d#&ZVn+!y>s_746P!C14wI`Y`cnwPAp?UU@kziYR3 zo4<&^S0uJ7zP>-yvyf-{*`A!c4wh@j{qgiyS@#I9qeYX^2b6-hM;akvp30h8*66?r zQS@~%id#Hz`!diZP+C{SID#PV*MS#=OnwSawMu-1+4USsf0&tB_8dx&<$ob81kBeW zEKf}9dyTK>)GXwO!b3x}7ZP)gqKEwx*3w6z$$(E+M{}*B4ZIs;a7dQdlL2`>U5oXh z3T;-Pjwcg7zQ8PDu206Q!4#=O@^nqdfyf9mQ-WP{psieETcgYv{|wG?lF45N&Cm#m zwKqUMqCVX-K&%I>@qne_=}sjIFXak6T?`(TsZ@Yi*+t@_Fuzh@o)1<4mb9UTkNVJw zH7D}k$Ot_t_)XI&ek`AM>MmX@Kt zG!4e3UnV=$z;-D7qC!`fcT}Z!6|z#(7BxMVd)B~LuL~nHi%G>f#F#Rbn5<^YMh3X+U)8bQ4<}}i zAHn}X;(mer>u;YI2{O}PB}HWg$j7R@!jf?;?-dF$s)?Ve7z&p|wkT89p`mbPEF8CA zg1+rfUJajwv394_U{xKP%+s9$<>8_5?m;a^-{n9qUx2RzeP+dqG`K3VUkxJ#5+PJM`dGW3Oj%V=dL;(SD#~aum2e(J-Drrl#^A9RYF2b0HP) zshtJMlcmea@RNaZ*FVsfZ|XTJHEyzIkML9YHaN!}v=$0YC;ssu z)e>hwOZ>J!VQE{2t6bl#o^N!Qv~cz`FIPb|U5wG_(zmuj$4PmTo;&KAS$me3tz?yS zT`P@0f^?e3y3xM@wLQyyN~1dQ8BT7*H)r6th_(x3@cZePmGoV)bX8SaU4oaHmF97k zzlgOQ>$q6i53Rq4wUgXT4{GywqOMQj%w9EeKVHPOGbJ>?9PU)~=d@gD^N9Jzy2IY2 z1*ST+II;i6%eNV~TQwc=C_!_p#c};6kFjo+S5uW*x6{fVqnd3_9NSXbO3M$|;VRcP zW1la};XYZ{O11EWP?;(T^MVA~#^e1}3z>LbfD!Ws9?~Y9m}bv#t4!*4#@y!1a53Ut zQZddvU9F6mKCnR(cftT#>>0d~{tnP^{ovOEBWecT*J6&kSgj}G#=b8QGuU6IWl!uw zj$aO*7RCcAV^Rg>@Wb-og_jIH$nlSUk2dZ^22zOWqX1JHt#7LI0n$G0uZ`7p_n;jx z?pEr$b+83#f&N3NtGf3^7ZGplYeLKi{WjF~3i9!TFA5y`jwzyb&5)lHUPfJ~L2Kpw z0qssiyCbriZ}7fw=}pV3(!FlA>ALnaUt$MvZSvUs;yiD51ra~*&xbB}-sM#biKyu_ zq5bo{qbn2KhkHosL)dYy>fzE7T>lW}UA}$cS3)*U)#Px7d=B4tEc`-9_sZe^q0{)f zbK$2#u{W+N&AkEhW18z2;(oO7xIl`J2RQM1oXz}m=tDt*3`}|J6X2O7U^hBQ%h?P}JuA+~I!(WL5oeA>!}Ad?jD;5>oEHl(MtEE-T!nB(EW7~W)L8f?gcD=oB?xOG z_b8)Ljh1Eda!vx`2BaFwH)2Y^$}}Uun$`svQ%UfS1tapHWltbRIoFfJ%x1+erF2o| zdV`Jy+;>t=#Zs1iFXgYXl$#gCeW%R3u@tt++lbeq0;!cl#%=Qh&oxu5ispTJ)Ue^pX| z6eVJv(Hj!I7STZB@M|IQ`1KHdYsNU}rux2%PWTia&_;|T^cb(8qReZ*hS~%HwJaB(a->9=d@D{G(PNK>K`n>hm-Sf58Jrw3A+Aq#G2RyRsVt9KIhqFyaNsledGqtFX6Ici|CPcGm&o)dpJP=IxY6W^3{E%bz*e#zl`aLyCP87WOU zg56~(77jpm?v91?`ibd_SXe^%j1mSvp=?KBpL@A?-sNSBpS5NO;@b~gI#`_=n0NV8 z+q2e`Ky;`7N6g8~k)DkB74Un4jQE5k3fS$-biGOMdjr2uN`mrxP9Q{T9&I08Iex`x z`ysHDmTX=zs&dzgU$0>2s^?;_%kemmQ;UombGSwopfW^aWTf{zd|jjz5?D{{t2UDE zrKt}_CU~)9uoNTwMT^w>+n0#$S8(HACc0n4r?Ql>n&U@cKN7DqV76uv1aASVK3~v z{uBJxeGk7)-@)(a-@>m)`Uby7H_2B`J9+COEf->#Z}4+oh2Ls-BL5ZeoAN#Uu(OQI z_Om=^*r^-mSDDi=ewXXAu^VXfQJVxRAJNe_JSO`Qrg9`5Eg@*@z;<;D2Ew4)HdKy-3S>SDzbcX87^8Jv_0u;*Zp$sog zBVzNA7Apv;BckJNW!5qMH1LoqEy#&G2Wqvh<5b>EkcoIqwqDe`)MD=-jfuzDq4Uun z{Toapkay$2A?>o`i;;3^h={GRyq^v(Hhd{;RC3%uVAEC}FGr4Z$ni=n$47(ZhK~hy z{3%~U(TMi3iguI}-y1M^4dBg>k@Fd}nuvcIdS4(R1AEG+Ez-7w&pF1>V4-v0NQ?^- zT8<;ouDPA5QC*JWk2`xqJs3J|fu8PJ^mC^_&*1Y{sle&WuKO3NNjOcCEx0*%} z!zA!GWE#^_v_2Uv%0lZGouF-f0$41OY3RwJ=&Z8T4)G)q!@Xj{3BPN;_D_uw7|K%TR!}11YLPu3f3e zz=RL--zeLxOadKWu)UHGhZ}(&D%~p$9gL{2F!VFWQ ze_>8MM#%-(7Mj2>?pSNizeBajH0EcqnA3=vc%i5Kk#!HdJ%CF@^U$?%TF9xB`KP@{ zdbCDX6j@6V7vN%jGOj~~wx)njvW7g67C-PE>0xKIgp!lzK%N~Vrb3^(8vmNe2jm9) z3zA994fwZ>px!bPbGX`+~%;lGwS=X=`w1DujXdmZ|%j@d0l91D7G9-=(_ z;!sK_5vL4Y7U)-w{O!EOZxJyWd4D$aQb-rq5@M6tc1|?+%i*O%WHJ$#)q+n4A!`zg zxTLmDQW5C4u!hX(v!J~zBSd^*kgjcFIT7c+i8*wrUBQsH99R|_iq82m{MB9YnYVkH zVpHJ3{WtF4E@{jswM{4P?a`*yA#CV;+Is_VP8hOu#gjIl9Jb1T5SU4qf|!kCahQjP zUKJ)G*Qg8O4eI>fXMEbQM>NlLlzZ z_YQ3q(t9oU9_gtyY6DEsBf&e+M{(fwo<5I|9}A!E`#H49eQ+0rPG7#45gq-EICbD& ztRyY{5ei|wDM%)+@BPv1M|!M!4>^ocluWi;4*AkWJsIaurkrX+EqNLKHlM24(gleo zz!t{`m||6ch(C=~;v{5EgvYNtV#DvMhy^rba+CI_LiaJJcV-OoAq6s^vZPNXzUQN` zw_JgJ7_eS53MM zZ1FYmbJRF1^7;AbmlQauP?6>FV1Uq1309T9bd{__*PBfJaw7Zhkmg&%m|49!Tsx)<&J3;8Ui<`?kG=6>d*9M})u z{UFkSQo}L5Lp#nZ9QkNkGgF7%vYXO^;hC*OG=N`UmY6H@m>eGeP8yXVosD&5%Q4LV zBsTx2EA#&&{R_cy^9G#WM#v;81BFZHb8{=@sJ|&IO>w`fiOOAcX84sd*AOxA_V8Ts zU@YbXC5B+GdIe`soY(?Pel|eF$KhHA81YPhbe0-?lkONVD_?T>Jmw%GmMbuDI^}Qc zVW+BQ9`+>_W}}awPt#^)rDtVjX|)+ySs7wcT7YX8ik^U!%|Kf1ElQ7tgd$Bxs3D!1fxUCrIqQZPP6E9iwatc$1Kbgy^Sqs^YsQPpV6}SHz(O&l{hla zoe1o-dE;z6YCEO&^%!jA+#Q)hIceX)W1XHo^zXsnq_Hgsgb*WgF zjzk47DcLHnIBe386o96{LnMA}tdtU5j*@ktyeEX3{j3XC+>nW;h36W%H@cwx% zygs9#QEHQ@7k`8{H;UG#I1E`Hqse8M1 zY#`k7V8w%Wtvk#8V8vV3>>vSe{eFnfdraYBUw+33v@u!56c)7WdtLYD23}U^JuY}7 z{}+Kw{xHzEj-F~Xu00}PbaC52*KPAOLA_Mc_QX6@aIc#b{~^efP;UC0Kp`;DN^}Mc zB~)Vmq=W7*!vkLaW8waJ3Bez>yttOed_7R)G&m^YTsOWb zu_G5$)frST5?F%98$emlW@&^OnuV*%g@&*jA7Un~Q%b)#5D_Tl(t=THP^ze0&tj*6 zJ;xwjTMi5yk;s-K61PPT|9R+1A-Apw8sm3^WU@aP#j0`O8pn?uHwgx(YD)t!NF=0) zr?hk^J!iE9Xun+_M6c<__ti-UL;I5p+Hb%qV{0G^ZDg=<-AQfIaY&M?_<&frZ|$Rj zQ@+DJY$`LA^4Gq#>xJQ#k5%wKkNx~Mlrr&AD$8NVfL{2fSBKkha$thvPREbXBabRO z_CF11a9U9th(cp4C?#)+$l*JOZpNHJ`IU|-%CmG_iC6Y*loAa?Mb+558H#RH^KNA~ z7TvSW#A>aNt=3FH4!68~ zW5G-p`)7>u#CaIyf5E(mJ>}ph*pJQ|NVQ+@n(i9wxYco7;JVw;E4L1Lyd`d~`><+> zR6=gTsQ>Xmi95K)a({HT2Zk)vtsx2Fi(^M^nmfOSB!V2Bd^ANk(rN_EH zp@pVXeI93D>Tc`t5W3@lM2*&*SK=9ivTow{Q$KKU)BN`5|h_;*Nhjz=J>BhYtLk7}5Q_^U>9&2b)RhB!|oisnqmQ-bMrn=K? ziB+sC)jidlW@BBf7#`5!RNzzD0DBL;g%w|YJ4zplKkX}u+jnt_S8#&1@_5|*xm|5c z4r+a=e_O0iNd>$hm%&_1PSTT%Q@DfmU>604qq%_XI~#iw^!wW{DL-v%oi z)Y_N3mus~rD38eDM`M!WX}_+OmZLDK%y?GO+JWoWf|lZ%gNTEFyHtJo!s_jSLZvsA z_!zXfI^2kXZTdkLzc(I)ZUcUm#PPZCd8w?67(70zd3@Igogd=nNICJju-~Oxff)xG zJ{fVh!B2y~{2-OpB2;RHAHoS%7%hSxQ`{w^=9LtOe2L`H8nfWD29n2!qolF+9Kg=T z*_B?(QEESU2ENDPdo;d9d}rf(6u#+M*VnQ1 z5zyqS#A}9BVg+X6*U<}6xm6A~`5Ar$avlTLtT<&5tGa_aUF$DFPfxUe#Qg8XyAgl2 zCQ8>l6prhsQop(aXJ3#%+ELHfpupEkpT1e!)6(zBDS3lfDM0-Ew#n)tV%^8Vooz36Y_h=ur!r0I^Mq<`HV)gKIV8@x|-UXXd z>_hq<>C$N~`$&GZ$Rv#FN=P;Zd#}Ld_N75nJ`^rNFMJ%qS@=SssqKD~yZ!g3`1ZXfCnQiVz>eSLd#=djCwT_kX7QU=21#B-Xu3phOE@Z< zdfNrl#f}E-g?IUqA(L8q8!Xp!HeIsZw)~h%eb~4BxUJVx_8IcOTs;=`yjXqMcOU#0 zs^jsyw|X^x_f#)DR&_B%EM08gUxa6sGZPm3c(%vZRi?M}##=V}+5q7|bux1Ms{aeW zuT(EO)^MrGw#z3Mz0qEU8^e|^&d?<^TxvtyeqgunXq&PR|6GFEU9Yt8oX=ppp);@4 z((AGOU06EpoX-e)q!UYTUD;Nlt<-~^&W|CPKaQPW0+9q;Z$;U|O4!nCDDxo1q#y37 zB^HL(ggrk?&llL944b7l(emo|@a_?+F7}db0@Wxs#Bi|mk|oQbV@M_hXQ0@Jr&Cy# zUcF^A*7gZb+-Q;)a?WF2Ej6FfC|5W74)yF|7=YXfH7RFi>b(9dO0Y zcBn=SCyY1bOfcUtbIuI(+CwH)U^?{Zu5vRt9d~e{|LVk;D#qH;pFY#{>kA#y-nAeL5b?wIPvG0^}>+uiC8MJu$iWFA6;iy@xYsO zX2f2S&V`B&;SU447CCIeEY~)mgEm199~#i&Y#h6L%$Y3%L*b8Q4l)TXKNS8-8T%9u zx`+Kn2GBJRhHDgF1XB_6x#SbS;gE8zbp;HZsS ze)SJ=|5d{;%}(MifoN@*pLIqtIgUl0x<0lyhquB8ZLd!)7WBO&Wm-tyM&KlecgUkF zjQn%_LfrMdDccyx6_a64m8^=Z$-!CRQEldNl)kvc$CQ+H#c{eKX!9ap27f5!lPFGG zWb8K>NR7BhK`lBol6niZcq4gV2*Wti9@;F&RT1N22W~q{TC=t)!7v;q;tWMoG!#As zyH^$HOlfUy#_E)Z+pA?CNePzEe9Vh=n(e!|>6kIJ--pui=yVkv#Mgunc0w z|B57l4~@`M#6@N22xro@ORX1I^etgZc3b;C!5v)JWpFOuLhx_Jda(_TuCZq&R`g@7 zq3#$?Ij$w*2 z_rkvpzG#9}5`?|8Y_S&D+g-ZWkYd-f0bA0GCYtgqq!{hnT_K@IN%<*KA|?(gugYWX z8Ed}~`b;doUO>LfLcda`0pU^hrE5PH29z?`sN-ZN5qcc1NY|cR#Ta`_sm5+GG;|AH zM}$F?O2CXqcaCYUw}m0V*DBvC_Oc+G_6J$zi(~(ZK6@6pEA6n0ruvA=5Ff0Mu&~BV zJV|moT#H(!RFRw%m!>mhN{Xdi{Nz4w=DOwU(rn9oq^LSrXs3IWizZEw6oyWc+?_5! zFnp%8kQ842L_iDcBb=TKl7i1plbkVYKSe85_&Rwqj5gLs)Jobh)OgF_NCP{JjlkOevcw4q#Tc!6zTa@irV{W8#Ayc6eYq4*nWw*oagoBJ& z{)743A}Y_e2V?}R(g6L(7Gi94opl-4u3o#eOUuRw7T7cDRN|-deAq_K z+HbE)b#Jjw{Nx8+YBnKIsiXzu3Z#*u8w2G^>XJ`BcQ;~plndIff}?ZaOY%m*-w5~{ zC6z~TO;~%!TATtsItwLK-4Cgnx~<8_aqlU?#dOL=eLB2f570BwOSyD!k3Q)Np{rPj?lNUm9__%-f9i=G#9uBz+RtLnM| zFmD*}rgV0_i)WnbA|_3gIe z1qAUIfLZ{!H}%n19v;FMZsO$i3u?%@F93H5bA1cWA%E1DaAU&!#AVIYkS$iiq7Jvz{Isls6L1>`edqhj##J+uw)@A|& zUf}9&{<1E9nx~Y#C^FigG*)9+LG_CF}t0s`a#T_3Lzh;SQ>K^N*j!|}4cQ4Fzh^=gI+g$IZw(8{I zmh1-W$o8A+C^gr4HC;B=Q=;PcU-H~`?&yU@p9{BeoyQONSfbseyNwz}jKR*|NTvYag~&`l&xpWJpxc zQ0&(lz)gk$1wJh=;S_uXKkX<^b-AR#hu9+=#~#6%Jtdy*7yc?!YICsPky_L2A1rIJ zMgs3Hf_w&>C1UCcuAi9N-tW8Us|TM^S;B&{*T%omJ$mvN0cSRaaGiV_eAWw%A+?Z! zME8z1?_-Q3N@H68Ox&buTOliJ6^*l89)j*SzFlKKq@C+umi^F*wiP%vH7xbFEpwHF z_L#?MJ_`GcpZ@+*`8})r{swkQhqX!kMxXw~hu~dmf#k@3uO~T&=6qD{%q|$=fn8WB zFmd=PccZ-AkX?{C9Q%MD?`bHv2sp?XRo*{Cs;)!Xm*lE!4(Aul^(lNlw*WR4(rFrXRP8to0OB?9dZ>Y4D%mpV%szlWk)wSmZ4MHSdBQc4W z1xc~xO^?-7o&BP36y6z-!zqv(ujk1%v&Jw*FLY~F$?dCkv=-Wzs(!Z2RCc#_l$55Y zcvHGY-uW^srH-~TT~^IGD@b_hBnTc!u%C1Ww28-0I&ab@;P5SYW~_nYMie} zr4beA&nkTY?VII(#dhX%ndHk87+7|sw`dH?8Pe0tZI_) zn#!WLlaSlG(@I~L8NrWgA8(Mue*iRn3>pI%;|-HMa`=@iFlZcw;cC@_v+2DOEupZW z?W;-E%=NQX%N(ju-PC0c%)*E_GC!IJ9V0OEuxTr!aa4BI_pYyIw%{}_AI>^D80Vd0 z-??HlZvStVlHf)dcH^Xk7;vruE21Rx>Yil8jDSDdLgm!m5@%VvKhM5n1=n3hWTOR= zUypdNxP-OY*zPixp6i|RjqGPH9uCRu8mwelsqckk?odcp(U|$RDw`eF0@}PoJ=)yE zI2HWRr!kGe-WOKPx|HPf3=P@p3kdOeu?kq>oIt_KvR_ERTQj+Maia$}brNvK z+)>WtyFd>Sdyb7wOb*usxzEp-%*{-Do6p?ZbSZq>Zof57H}$Ab&Sml%Gj7oz?kQIv z?x|+eu*U9!j#1rl*SMp;ZC0_vG47lo;|}}X+2?$h1s(sXphu5p`VZM)f5YpWu>)aP zFEb^6{-GWwmFu>$%iU@HOekGSHM8A0X|OiJYZ=R}&|E53p19|!;6+bAnJvXrQY-XQ z3OSdfhmFOdZoMJfOiTy;7Q7bFMu^YQ)#*~?>D0}VnlQVF;iM1e5(HGjIasm*zK!++ zeGBYm*w1fl0$khw4zA`ug3D~#j1!1|jR7GWn~JBz+nFtCQi^$J=D#ly#hKZXP(ixq zGQ_Y|y5&l_|GA~aPs^E`(-u68`qbTXS!T;}cVo!F-R>jBZ~G6!5@>~Qq=G|kS({H^ z22B1%D=8O8VQy@q+`1d5D$EvD_hJ_1%>TO05ym;9zwkTVl1Qc7ERyZiZ&i(QVr#@qh)l#pTe z65HWWDGOQEn%ZquwfQQ5Gx@hT(;kTS>BCJ)JhSD9PY>!<4HZvMwWmoV4f?V}zC9sN ztgb^Lk7}`RIbp>iWp?4Z>(l;qPYuK0*pve9ES}Ql1BdD#&y3=}D08vzluxlg=wAG9 zAkmQ)|2cCxvpkc*?YL(DBBs9oV$W0k zJw22&4}w1(Xi2-ms}^gUuT!A3r897MCbLD)e}eTaAh&gU(n$9PVxSz{uNKL_nFDAW zV{qnu1Lu|h7S6vK^H;&i-z^y|6r*gc&5z2(Wze=}{_nB58p`e8gYxfip(6|!fFF3- z@NY&k2m6rm&AX)xV4al}rDTz8pfl0G82_}?#wNN>2yerFr$U#T4eLiY?$&2Ozcc)O zH1@5JjL=mVBg5?WOvWUsaL8m z&S&WwVR^Bfu2!3+Y-;yo*({C4xyCr6g}UQ*nXWg7eE7|wQsv{a>N;lHe!&15(D6)Z z!Bpb?Dd-`eUQFLCki#1gJ{1c;i16lx(fFSseA5!eZXEAssve(gKO-Fhb;j0#I%Z0n z<+{D(+mz9Lt)KaD(*!&7KT=0`g*rGx`G@N9Z&Sz=Kzq%g009NsKrI8PrDt~I%)(%p z>6(!N_?E83D-=kKQ6LEv7(wXET4!OIaWw_v6$-oy`Qy7Zs7L$Mv374pctI@uD8l|2 z4Qdh2QD_jZ=G=H2XUjEJlsE9^K~t1F&iVG~z!kcYb+;)N4Xcvbe)Y|VaAP((${X?E zoBYpwkImDz9}KNbj&erywspFcV7T9%i8m~0FQe6FTNg2+<)n~D$Z{~&&s?mPYP1rg z6RmW8rS*{GgrARvw<7#eEc`gaOswq> zBRnG(UXO6nqG;K52;YM+9WRtG@De}+=Qi7SUNvT3)!k}4=c6sBw0X3N(xw(KT3E=z z(5mD%AG`H%Y~;Y+vENf_^O<QcG z7ugA3VSh`WraLrnNajqQ@<>yRdg(FhjRf^Z5jCh69Q-zqNQ2C@_mnY0={7t@o^r-o)?|0U3W(~zsv^E{~J8Qrjy1;JafV2S_U#+KO`Z-{W zmrIm+jpB=buuOqa~jR!~8n&0v%%p%)y>5&q$o-4`@Tb`&9|n zBFa2`4jQI(HEqSq7+uP|8xI>Lb9L8t-Akdv31@vf>D(K`W_X0fDI+X3kR_#?Gvj{Y zR`t`@_3#D__~4^~Z}UO#05k2>cksypJ{$iJ_#F9{_@pWL=&%R-1zwI@1Q{oa(Z=s! zv=11a{8nH0%q_HY?){+6FlDZ(s+U+#*1Ek!gOhN5-6=XBsh8R)rO-aZa9^*9G+dF` z+Cm;;gT!{qm)5WA$$})K0!8p@8T#5vaR85gd)A5ZXpFkw@F<AXw% z^g6sZ%a*D6dMSI#7`#cgP{F1YFDTW(!>N6kHJA6WNb z?ZcZkGsZJQgB$O)DdnKElp(=(-cSL(;eZj=dPY}i%WS&})@ys*sVzw@EJCHN*CIU) zcjBkPzkjexm|$)-Agv5V@G@p6E{3rE{Y+eh0;#|v#cZFiHRJI9Hsb9?z< z*fWsPG8m47wZZRTb-FpCQLrCKj@rRNQfQ$zgLJP#;klX@ zu1s*HxtW}m3O(q4dpJKm3+R?%J&JlMzO=j=aG%nS^K;61Xr}w#9!5paJ%`KS?FkAu zIU%sLg)umK9tDjx3Pu`~OtFnY-Yifx%OEOameNwe3wuD^sUY-Kja@pXB)f>=r{R@I ziZ8uWLE+QzKPm1CT^?rff`%xw44;mCSxBRIDu(lYg?#2_&HQ}#t6ELqbDWVq=Sp!q zTnV-`7hOYWK3Xqc_~0wte{yef>&(p z&VSDRxm!O)F2LH8!}1^c9PVgN|5fQZbwl_oea9coIJjT4v5j?{q5q9x+a)Hgi&IT*V#YZE97H8WRf< zdxwZg3_|mu$NfX`D|}tRnPJb+1>petRBX->leJ7f18wocP3k@dRxTR6lvN5l7glVR zW^YIeC9}V|hCGeev+zRKW+@r-z&ohvb02w{rqOrZm}${?pWI%2F-UT~keZUs(exC& zi6e)fm(}!a5SMim=5yU1bvpDnaTTw-zjoi_<}g=Pi|vVt{T!Kl^P!tJ+|1E&bTjh% z`|*}X9{A4(T%%`WXggX-U%V+my>j^P@~Yy?^gV2HU9)b%niYw>&8w|yHl%4l>&ZKD$fb}s^rSg zU@szvoVtslQh?uDrz5fY(=g+t!%lEEi$?cr$=IDBRNb7ZcBk% z-jW#utgOv!iSFbGq%b*n8{I%tUW=tHv(nd>sGPCXzt~FO7a|5o%`qI_pnSRy?>ocS zH5&~>;Xg)lOt>8a`{+D;y&H)$Nx^)C-iBnaW0zW&&J79Bf{sh~=j6yaw1h80iqrjZ z_@X8D;VZ+h%b};RI?P10>~pZm*ELT-Xh%fX`mT?Lo@t3%OLst4k;9j8Ca=cbz#S3A z+5<5k!7ds7jdgp!oY6vKm3x7p_!I5{Z^NZ`Y^k%7i}Ko2@fr^iH$|d0t&CwHe9r(2 z&cwbB=filt2QjWIG2KJmf(rJG^DgUg_A25Xg%tRg0!-eSSlsDY+{Zzcp~b@+IJ`uZTC_x2@8i=;=aw&AO#gnc%u#dS1MXTvj5b%Caf6G#0YOhH8SyVIHn*xM zDZmzuz|Gsym>V7(Vn;N(*u=9gHr}|_vGz;cySPv870R>81kpDb9zDQZn=nZ$G0EZJ zNr6Iwv>=}lD4cLG01Xa#Qx5-^{1@SnyVh;N9f=#I4q-!G^lSN>yFiP@QY)+(|4VvP z!Tt{jzau$Z`{BPWvGJ>24X#&(ChP@1b6eib9qU1f{nFm=#Jnr*LjI%DcKoJEXTFoV zRC?k&F?UKE1P;>HBBJVMQkrscexbj{>?$usA6~*6MnmCeB~Inc9tv-l_QHDC<159j zbm(5?Y`nKMCVnXVr1Y83nN82Dhr*i<()UI2ju^(=nVv9Fi}%d9Knvc}yRGlx{%(Pp#ue*AO}fuu?JvQ8`W?L8LSGdlp=;DX z$RO7oz&$sq_4&{>?EXvU^_r6=V7EXrxR~k8G*P(5)rVVg!?|f**Ok2N$s9M$Jww8) zp3_C)p(fS@?T0?To$5{E3pDUKgSJrBu4=;j6ZDj~$yKfgT`U*J=qVoo?nNR0Dl9Gv z#{HL`Sg-kn!j1nv7E10I7O}kSClrgp@MY|nC>Hu=%S8e6BW8tZgOHRCT=Lu-4(eNz zO<{Uk(QdgYn+L<6$n7o2mw&tk*XpmK<&Vif&ZawXXo@UOuWg*FXmmS0ail8|=Nb$j zmQ~ZKF3{ORZBLp3wGWmLgE*tswJ@{K`IzbL!gQYbf5m+ZT$EM%|9LMn%mBgwk}#mo zMGzcR5KGFeVP+VS(J)w^-`p5qG)-kRDg(*z{pBl%Y%6c)bK-y%#6ZgEOqPk+@hqf2>Fv?& zWAXj9@oPiSPtbP5S!2<6mkUEZkoSU~p=l=f3x=-&?Jm45`#C53xl;HaescSV?Dk#Z z*ZwTnIOAzxvvYpRH}M~ALQd$OV$pZWm`!g&jyb$XobK=0IZ!b(4As@@Bk#5+)X#J+cEcAS5H-${HF_=e|zO%k$`zvE6>BD44L^;rrudZyG+_+uK8shqnUd3 zw0(^#(`Rj}@uy{fH>J(Gd&-j4Pi<#LnY+pSI9mp!2d{J zgFZCE1=)vAXqVq+;d6g~4|kPfsTKYPm@yCwd5y7x7vYSU!>ll$0lo}(jQ=3N3x%Wd zd%bW(ejgJK!!NmiB)C`+I)cPqSIK|2?!nBqA9_yYP^CO@B{A|8D%ghcKFJ6_Uww)-86$%3M$> z)9D72fVl%4V!q-{eLY|Gf|GcKrWx}Yop{2xVr96(lU({stX;T#wKr+zSHaoaSY|2sjR>~i!kxkRtuwA^@EEu3 z!_BQjpvmpC4D%Wv+Yr2|cG3EzLo_$82~k;zU$?)Qp#9EVIw zdv;q|NqQ;nma!Kb(;7+k|M2QX+?JZCPTO$fnsckpct9svk+~jn6?%8C?+5M7xuU=4 z+rHiSRrNQl5v&a>*4$(CD3IP+cY$r^bhTqtEvLik7A7dXHQUS8oAqSp!5zuf z*G9fq_0sJH+(+v*U#d6gBG4+?Ht4@XwuM7PbSwq#IUJ^pu$ERC58W~=2RFqR`E2PG zUVhArmWd}CMh%$mZOe1G-{r@puFvrb<0e2qmEhBEv0&tA*XwdD-t0D2&J?dE=T@(n zGr&jQz|cE-#^_=$@O=L${JsT=CI!uv?B&Kk`D^um z^;3*Ie@cD}yw6{olj_Cnw^r*l=bV(&%i{TV@})w$pUD0+{8jm#!e5c!I=)MO=knjk z?*jfJ#x1y=Tg>Q3AE1nnX42Z2xAVxsmVR0pvlfDBnxbYJC9K4~O1LcR7x6p0ACivq zjZRwUQ+V<>cz2`?anap*l}7+wuzEV#L0gfQcvRr%wP0t3-U;s9mKMIoQmruX)eDCF z?Zo{L!XZLQqNMd;bz8k-$PKqZH_;tf(V?kLlVUt{0!{RjFA+bbaie>hJM8{>#GRxm ztWU4-#5iyV7hJ)wwrZS3+7=I5#>5uqDA z36ZezXTHrY?eOtQZ5kW2O$4Gi0c}}VlWM^|2&7j%y)GS+qao*E3uH~zK{74D!u%Bgo#>fkYDhAj z&7%U3IWw~y;Y^sGa;k;ir131QJ8dxE|5=!iuM4vmw2Q$oYP5V^dI@?!xb4L=qoA)P z#U6xwRc2_Vv&UL$%R&Dn%PvjcBY{`>h^nc#=Nm@oQzz~76#l@@m}yW~4a z=1VU-xj^`O( z^(t_iq-jo2OpkWFV2SfFqXn{g>!5)&%5egBcGg4Fsp|mrMHTFv4o#i3XWtzO?+uMc zdkmG8Xh=`=hf7QTQZP;nn$$Bj;8BDGV?E*>ZSGL$Qb8Y@+NX0mB?c~InJc|TG%($^ z;A%}&37?%*6Xg>EeFEfw`$Wf_8lq(qy@1-@34aA-BK4;NHBlTdc*Cg{G%HF3qo#Tf zPDhCM9U9bnyZo;M@01}7N%@H?J}SjP$0G->^WRDm_u{8Jqb@)t99_@i-iG6r#|vn+BPNr7we(|q~x!5hynp5!pz54rYo9Hw`l4L&s6 z(!`>dU^*k=9C``O>mFf`8YL7Bs2QDYE`sju0u33MN& z8aJwNQb1)JEN69-W|n5=xEf=P<}RkMw?NXm$AB{oWA!lkT%pS!SjgpzSyWHmUPTtx zpr(OS7qPB%zBO2@W6&kn8r+Td+uX@q7WnFF z;tZ_4iny*Z4Eisy=BoWMM>N8_X+_3?$D2T#JTeR-E+&&6oJ)d5}2H1zx^J zCl+VG>m4q8H_9KF!Lwqj11dY_$!$fVU5+!bE_i*sk3*V@V#b4YT)-8i*eF&yeL@>H zQ+QxzS?)y`uMCcRI?)nM8NN{^rp@8`$ap55ZX4}Cqtu+#LGziYzX_|HkAfo{`0mni zz@ahFpBl3TGr79G(>>pfxjPS>WXn!g)}!Wm%uK;flL$n%2!KHSS7`X&$PMcm${{Jx0(t!dKC4E5|8FxDtc zN+12Iy?s5Su!CQWFb^UO$UzOTd0AIn*RWP;BcRmc1D4L!Lno4j23d@y-{sk zj?v5KMEMdO3v@|Xqv|0+&ybS{YOi4b4!7I+tgCIYj@TJ;O z`@8>ut)mU|Y%$rs^+!1pb)Wm|(3j@JRKiFwD`9G3zJy6?vMo8kOe-az?UH@^)qHlM zFZGec&75(oImr_1<6Z?G!KnE38gI|?Tv*2K(m$e;SYT&}Z~(REY|>bpPhXB^8-7P0 zAv=9(j}X*I?s9J%CA)u1_DSU4(OlhhERwcpzsbiT^(3S|CzARwAB8{C&qMFg*UK8J z+>c~Q;#3+Tkj&mv-E3Y$(qR}|3z=S;67+BrmuYpzJCw`$ZQPDeB(`H1WC1(e(N(dz zd6?TD?pHgw9s2<9aGTuxvw0XDRJN(tz&ngSGWkuWdg(Ey`ugWg6(fabk?2PRa8PV> zl{}I#$r?1UEsrF601N zn^GcscxG7fE@%UgpG>}=?ZX~?75wCCKyAf6rVJ`|K|h7aSOt!kYr2sX17^FxV}0Sd zCDh|Wxx+KEQ_z{Be3*-M`f;TJCJ1e#$0^$g>l()O`C2ji3hhG4`o&R(ql*R1qt(;j zM!#KgUCob`YkmxBK3T5$k>*i8)@4)Dd0FkXRu9g%UWJUUe)N;al(-qh?bN!n?TOl4 zTd?P+z2}#uxw#$f=o#E2Oqzr+TL$QMP5@Hq)(IQm{&f}6h{||pco~CJbP;dTVFg3k11@dNk&n-)m=1@xt)H0t*yWIDn5AQ;4 zf^r{;Ujx1a@EAJ;tWoKPPWAMEVh(YR#e9Z!rP`6(lrGI0Ww6b#jI%|X?~$;pv4|%& zSopRSr^cS!%nW_NV-#j^jZJIraNdchp&F}H23-lmXR0zzUgUV}O6}s*Etb@_6X|K% z_eT-sY>TA;RHzi&dFf1gB47rb3cX<2gk1*BoUdNxrjd4!uR!gF#*bx%&>H_G(p-ps zOL0SP5TupxIH4I64E5B9qG!}Xw<`-AxXKxA!IW5GrL1pM#?P(;qy>uBmfl12fy+Ke z9RGw_et>h#cMbS+0b_ysg9?YxHJm?oQDLA_%nZjaMkNy7C3n(0*m_X_jSCued-?I% z_A#^Gv=_AS`ul>z?_5z7?aOj~cu`?f*`UuY|0O5UdLi}m@Ts7#b$4ehzd0q&Zal#< zewWRz5$Yx8c6a_sb1_Vg6Ub(Y)YNROHI#M`1> z<2AXXOSrv|VJgcAz7P_3C3(o67NRu?$+`~poW{8_mFt^2+7rdjDl9j-*Gcs#8z`=A z)OwI40bUPCs|#_)oN~@?Tp7llnDTK)ox+0eMM`sTlXgivp|Og1M#6QaX;Oh^q;qQ} z1GIT_24lH)WvFLch_mb5G-i5wzC1$VY0vvbD8&;#_q@=eLcY$ntatKy-UYhAMd(ak zPdKGcdS7b5dfOUI&*9zH;LIEgev5Ndn6q+nc!Lm3$zcZTML};3>e7Yah#YHBlhe?Z z#j2-w@gzGaj5|ptW?1U}S9>F=koYq`s++BcP%gDGEK%WNRfb*Vms=sqbs0=eaN{0otm4dcTa$23VLd%GR zqPh@Jhf1$j;+?Z2;r@VdG@lKF#^DV(p(|(>FoqX8i_nh_4s`pOvGpSA2K}$jooW>x zT~{7$5`0#7szm{6Rt#2CR`*t`fPFvpyx$-;P`IHbbeKJS(so`lS_fg+@CyhBFV>VeY5;A=(5JdKFB=+6UVu&apsB>Sh(g zyyR4~0_*ZWSY`PPdf`l!m%dNDe|T9MmaSVetSOn}{R)Jba< zaOAgmFN%|PKsxAADf&>#NYsE1ClKyb=TV89bkup&on%|@7Rq;6#UI?q-)KFn0VIC(KT@pqky zm^s=VMOiI7?C*A&q3T=&}iI1}av+eeS~Num)EoiCu3#9bf!OB-1$G|ha~ zQKzMfT8-K%+7ND`yN;lRkSev1;ZO?6;F%hOUP0|7*J}O`)GAtO>~*bVbZbZMah*fm z-`GmxzqC@M-EaGWcE6#WXx*IVeYUrxWp4@-O$BxD{f-o zw3SBXH<8vF2Az{HP-{g~J+jRG&^%juXolQQd(ci#07^RcO}n>K8TCtO6&ztV zPfRt*y?@m)8%D0MrC$OtGT{jD4h8Fb{G? znz42`g4wQ`TA0ILDb!O7I_Y44F2vg6o&g>wabYY)=YfN6Ebungr4ANb! z(us>WVZbhJSL58eLF}fJvE21;NkeYm$B7kNP&F0nZFzouBQj1XRnfjJ_)up8NWVipJ&3xi*M)l2e5eK~HT@ z&up9pae-sO>&y22IL^SjF%)8%oDmvrgRxU{CZo-!uJO!w>paxEsh$q?19tn)>mYCU z|JG6z6qo+f7wWmApT>VR_K~#LP}pa?&p6|7&pgF594qD??6-Hj2fw5HiN+G%J$AGN zo9ZMXz$F2rIH6fj!MbvkZ0x_M|H!|kU)|qC=|B2U-yjFkBL@TTAboNA<_i*+@v{3V z^E7MGI-`>r_c$w@=bfZs&=c_!CHtwA{U~nm^Zr3v!waAx#Q2mmjZ3WojbN<&BWBvP ze&bT3Y$I9*Tgc2hAj5O#HXfsO1`L zmTUB!Z$q%sNjrv5L)7+0lE)7ou|Q$Ubo{O(4y)Q=ZLR`6*$Q{j9^(=9JEybESD+y` zR-qdkZoz%>=)5uQlYIoaz9m2Dqt^SawCz) zXZ+7%rwux|VC~?Ipx9w{WC2gDt_>1Y)=u}vwsEFAyu4|xmznlsSNbTwXE86+!jJm* zUs<;n`UGnCUoo%!E$G}2<#MK%eD4Gw%_VM&N$rrLxa?N%2*k8|S)RAyN^1pY+TIqX zKHqm8_4#d-W21MF_N+xX4Wvz*zvC@CENieTB3kxOTQ)ZXc>iir3)* zELQ|(2xAIfuJ15S{c)sRlRHugS}muuN1tK=Rfwcp^3ckf^;VAK4S$YfANbb31@|At z#gNDJwEBCtAiV#t?z$k)f-w1}_yp=0o64Ym4*54D{MT)g46 zMy_0jYyY^{lRV`5eaq?x68tek@b5#79XOBmnfMm?O1FY$k2eoP=OEN48CqF6^-N>@ zxXEqtrb*Z@34tkjc`C!CyvQ?U%7+iWjlT9P%kbmJq_izfxJ@MVCC+=`P`Gx(DM5qQ zHLBrgxtGSZ50~FzAEciyRi5$wdX34L9c$=if(QNB==W1!XMxWK!tW0U!fi0v=l_n? z1?6-&xJt6or<5jzmupM&XqweidC0d9hk7p(`js0(r?w}XF8X5RQFnb_pt(GflQUSe z?Q$=G#^_VN!93A8`wJwHIjzE#a;qA0$m)VDi8FvEDAb#+>Rn8TxE%}DLbojDNJeg) z-lBd1(ouAiQf#2HX=t>we7K%v?Ml6>NrirRGNgozUAlb_2;QIKt;YM0ct_*?0p26< zZk4IDN_`f-4}(UgX)?@gsH*7h7aCj*Rf7D+tURfq%IG#g3Jhp(<$Cv7>74VNbROoM zdjzfj=bS4)=f?WKyLNfB(@@2Co0m6UVQWW0b4%?cgUjeLR;7tiCyiCsZnlDKcw3Dw z2Hl6m>)qg1mdH}b%NyKDk`>s6D7j3-n^`q8Lo%${fW4>8Y2nmL&qVc~DwBxTQ|2s_ zptY6n^QB5$;3}7j-4^^IO)cKr1o*3>P-U*Ns_h7s2s%}1w>amFE7zc{pcreHlh0?k z{!_6t5)IMLXo+Ns^W%DbWpL%?6nLbd0z|t+i`@d|6Ux_^kqlG=a}3UAG)+fAIf$N_ zY8N5pz$|f29+EG_{9MyI=M|r#geWg_A%jtztZA;n8HWnv0=rOiOcrs_SlSFTxs0*W zM)O3=?LOUIr5!9)*~wD4+=*6OFc)_?TiIBr)wx8e@M<0N-6Yv}e)$4-a(B%#g*RD- z@G_*#qwG{OmsBTdExfOF4OWThrzUHK6L9XwK{azoGuB|24q200XPjY++2VxsZ>O2o zg>^)Ix#}OvAIezJlrnSU8mz;56_<>Xu>+EToE7qWy;R{$illL1fV-I)^^z@kGw!y3 zs3=h`ajJYmS1o$Am|y0mU1b^an?U)+IWR#`uYlmRvxU;5`qaE5O4c=c$s(OLC!#Im zxM=Vtu3y7Jf^CJ9o1}Ei4Nfvo1}*uhFkkxDQw=%KO{5?GbGbL;O#dL&F=X%oc02-W zJ(w~C`(p%l;9%Ae>_`Om`oV%B*gFx}o`c0hu-786od@R+!FESrPal+qV9!Tj8xGbC z!Jdr3Rv+9n1X~}0RUh0r1gnX_79ZR@1f#PN;ul|d@E~BM;kT#s=;dQc;DnDpdbw78 z^z!?vqn8UuaXWs3+a9HX_?S4bLKG}3X$ZB+MF9DVa$)= zqWmtSL#Zh0P$@P#Ka|4Xaf%q!{NXM>ep!c7{Ls0qLlDw@QRAL#QB)OGnan2hb1l{m z@G-&&E~`tB(#^M9Mdu8a)?3;!LtWajNmbhMbX*JLCLQ)Gq#U?LjT4>EwTM-=Dx=wW zL-=$4@V(=hDE<`bQJxD5@E=i5+8e7N5sW`I2GHVbE-49|Id15ior{$Z&8+*PVop^^ z3nZ&YG#IK0LUS_ob6}n=Xs)Q5FL4s?tZ%}e=gIw^)y2gjOj`ByeFPiuFUX21K_~2rcvBFh&DVi(1l!BE* zbP}yUiC+pFff!Gi2cd^|q|f94H?D77i4j`t!M}1XyF}-rZys2<`&y>M>8f`Fi_NJo z-{m$|l}YE_v7jBgs^&;Lz-{qTm1WC$;MnR#O;_5N>AS1TjosB18(Ipxcb8kccULHC zo^5%_^^)tn3;VaE4?Tr}G2BZoYha9U-gVxcirO#(Q*v7<1q-lUVL%+joB=a1LqW4% z4q-$HI&Y)=&-*1)6~WM0Er@VmrudGzS(R2|83s8V=~w^_|C+N3bUmE&zG(U2qG}$E z`Fgh@QW_fba(y5kp-R)VP>OM!ch*&vJB?0j)dJ~^^JvvQPT*za!ysdP17URF5UtFA z)((6T?>OTo$eHrElFvX_rI}*~Xs)$Z^QFHU>RmKnodHF$zPzmBjI+$i8Oq94m_O4| zyTy?EFXL};3nPR@)s)~qA;p+aH-2p06_rpPbt>H613f9&r_q`=EbaKBJo=!k`v_y; zEqfr0-&!FTjA;^Vf@E!ZZWNEg9L;mj~=_uozuguK)Gc4 z1=4(XZ0kkGKQ3tFo|J`tomu%)IQ=XTsQ*>?+7N7-UJlE%XgIFQ$bQemL>p-L*ZS>;|>Rok^ zf3LJ7%>)Vj?;Z409d1J%Rtt6AW@uL*tixq;f1xw;_^42b@Zsm+uOmC=G;ld5dex4d zmUv$Ydh~a_4*Xv3mG7`t3RlkLpTTHj7#*LvRm~KJ`rbCsD0r-~YK0S(@)`y(q5)Jl zeIc2!vlj%xRE9kmX=!6Cm~mps@CT~Eb6sl_ue934PHs3f;Tl}daa+8>4VaHE69 zK1+}mhznvJX2F^SPLk5@){0mBgb|P;&v!p+`GZ`4Bu_N9MDq^Q*N#b8ba&;+N}F^+ zdeTB=Ot+PGkFpJ~G=m>;gH9|V?#H9RUaL^gR9`3Mxd*qZv%wGJ8;06W@PYn43z#QT zx7n2?x?#ZHqkH4@)BM>Ogo;M$BfxK|4d*C^W&um0GxtxJYvjgjTS{)si(ZniIlKk>H9(uBI3jL=Tqbxmkii{sk@Jh&(bwT5 zE`i5vwN?5aC#6aT$Uog?5xPVnh;%4Ev_IDS$Iw%GsnN4=OHwK~b$?&?H5@G!u za76r2@3a68%9imz!gVai5o>>60^h)v6r7fYafP;=ute3hsFFFsF^K2iF@*(i%#O$h z`MEx=+M$s^X@&DT=w~n<%@D@<-p^*nb=4MfR}L1&NCL(a=mtMkdt-+1l(kzY<0zu{ z{)=DWuUu2ibw2CRrw2zP`F2QF=T@oC`H6JQ8RNE=JKTb6tJ~^AI&f7rr8(-WEZq=6 z<*KhTMBZiSDg9XICYNCC3(D*^GjVzHUFjUVQj4B;3f~2h@4w>vN0IN3@m(GH#%-mp zCnMj@k@er|L)52&@*40aqd;ekR7dC|G8GkXO%nrMQ3bA~fu6gADTiW>M%hB9V>(PR5i_Nh(fm5309tQqT9+>9&;CDT@UETdQQ-xzDH&D+?)xX|ke;P7XF&?m+ zHwQkdwG=h>uJ5s*F7)4eNoow&J=Z5C|5jQU&Nn&6^C{vTSI5G@N(n+zThQQUt&Jr7u#>^5Nt0O z4L_Ze%6EnGh2t+5ai@2T%CWuN87q=(pi!QFGc!(huE0ro;1|XAFZ@aNfS*4U`tld= z?(O8UPevZ@dJS<7^y^~d`qJ}b`}iOvVp(?!)8iE^;V zQi>eFZ@zeZk45$?AP?GRKb1PGH}>kkl$@tD_cb0unhBKVw%9%)h!JkCEfRa9x{ar^ zDBV2qcx^acF3YyNQ^lTv{zY82r zPWv8zh5dlvTBJA~=lR1$tkLu;`zrtb-n#zxFuQ4d)*|l2ddTG6pp~HYjnn?3H)>t_B+#)qN@N zMx!+av}BCsnIhI3+jGb1Jt-==E}ub}_M$EgwmqHE{N~0+gh2=c{9i8YAbQ)luwRrP z=T798GuWthcK0cE9@kom9QHyxe?sXiEfS9(>Qo3)r^s;yPkZ{cu1+p0syA+6403iC zb|YhvGRiRJMZekpk-reS1M}>?{|GiQ(5ivMK`3Xs!6%EJLCg2=O`3mw#GxkwFO(nd z2cED8i~R6E@Q}NX{r`VN+)w&{or~ODq`>h^5EV=rrDE#n7#2G$4qY#SB_<7L$v2H) zDXChPmOhe=8m(h`gOQEN$Yf))ve`IO4jVsVBFoL2#PTQK%x;-dz;3;5D!YB!9qdkX zA+uO*tawHVbIhE@?kb(l?w&K3{b=5gS=oYx?B4r+%ADmcR#CZ#Exuo3?y4nh=>re4 zWz|1p%U7&qs~&oo)jYDAJ+`)%ty^EmHf(&HJ+Wys+p_gZwr%?}Y{#?DvFCrelf6*C zi@o@(U$fureu?dAc$xk7mEWq2?;PrZL)kf$okO`fl$S$!aXB@cLm4@gkwf`7 zl#45}Pv=lJ4rSs{ChjNm@8M7;4rSp`77k_MP!yAwCrlnU@n%!* zEmr%CnX~8qWPxpZ$*jA7G=CxYlf7uh+3W%`x0B`*7hbwqJ%c;`c3>V+)&Pd)W8j zuYCwMSN@tV|L$Xp?>&n6IabWx#P0_S7u^fZTC!U>B)Y!*R|)vw9|RsFZ^+-mS7q2< z_L}@g{U&g%6egU@+2kjZ-#Pfc8@8FK4|1p9QkWUcA^UgW`z{!I$bBK&=N`OWvi+y* zUVN949r^ePbF%yJy@1`7P=Pnc${D>Gn+NkF_G5%1DE*Ctk@Fg{&yT#xZLn;Ee*gXb zzxMI(Vg7rNA4=i+{0_#3%>I|2ai**r{bds%XVhe!-Y{lz=Gcr0w~U`sFcw1>BNvD& zKmV2qQwm0l3LrP&HVki!ZXh;{Z=f|`wTXGT#_>1*r|vh;q%JIma%t z4%WngSJNyL>Lu} z8YUVBL%W!R;b9>8saS+jz$js&U{o+_m}nT5mzQ0ZwkrB(kP$L(5mRl4xf|bXXkHwe z0I`jfpU6b2phrnh6g?_DYCO@=(J?VGv9Ynkh7F60i;Its*Ju(F5)u=Wl7wDwcJ&?XtCs8vh;yv)yr3`dbnownx8*byS{GY6Pva?`SdTg?|AO{ zo%JvNdiS1&-~R5^eQ&(w+28d0!|xqwJ^H~PKK|s-fAyXGTia(}e0A=E|6=F=2wc7r z?7bFZA?kbbN&_DuhI*Et=7&%>c<3kAz;yJDc95SzKQmT`{pbL#yur^?k1*92h+|j{ zQ@xLO?i)-s8KxLUOiX0Yfe-ynn7_aTU={-Y7>wC)K+P{;0>^guqU{(ba2!+X340jK zEK0Essz*4r$T6OB5pgiUVZESZT$Dnfms;cz@O$?IaNj@mNwzh}u@ z=I>RDgm2|+1gL6$pbk(pb}M-3vtjOm znE^8w#tM@UgFD!AU&?JlJC9|$K|^*5JNWz;?Hc%(&41DVVD#*Pa`%JGUAc4-AZNk% z901=o@iC(Rvp3ca=7ntZ@MaZE#1=#LbQtPBOypw8o(qF6ib28;BfAYoE>NrxNA~$J zlu@P;KA-HA0Zq*9wpoR`#pUj$tCmw~8C&->QzdU_sumbCGqVdAuVg6tAdTI< zwc})u{jInEC?UC$wjP-2=dt!UR=XRVgRr#*7)w^nn-_M&GKL-?;>Z)2H*cOI?Dp^= zZ0HTQ!EiFn%;wQFj(9_%j^zc%*Ya&d=#1$(m>3ezkgOw915Lb?F@u~+aR=Srxc$<#m zE?==?(Q>lt3>hm7ay2fhyiK>*y>yWb$LY|-NT zfxH>*1tMrYjL#|F?_uRGtoIiatm@m)TDgfMdz`kHA@d1lCk(m&-+a!pTiKFjOtlW? zmoPWRT^Y$k5f;XaXmR`lkAjJz&`%3X73nG-D`f{46(_`pG(T1j8=jav;->pzlTt@% zN2lpVreu#9mto2@W=*(fq9M2VuJMz{-dujmoSgjI?wo24-G0ZdF=bN{^m(D8(7b!6 zIW3b4kXXE^Rb;C3_-TnOF8(HMYNkGK_%uBm89zpwl{qmlbJ|2^iqF^Hk~uAJ8oMpN zP+OEaGq02t$Cqm7W|rkGoOU1kN&J0USEf5}DO(i3R9l_-aNZiWGJcKrvCPNwwoiMC zt&iWVeJbT(VIJe(f8*YEyb&<)q5B5Pn zkUm~S0oAVbdu9n-DU4_U*&{|~=3HrK6Ts;6Kw g9%ZVZ!8`)Po~O*H. +*/ + + +#include QMK_KEYBOARD_H +#include "jonavin.h" + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled + void dance_LSFT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + register_code16(KC_LSFT); + } else { + register_code(KC_CAPS); + } + } + + void dance_LSFT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + unregister_code16(KC_LSFT); + } else { + unregister_code(KC_CAPS); + } + } + + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for shift, twice for Caps Lock + [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), + [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LSFT_finished, dance_LSFT_reset), + }; +#endif // TD_LSFT_CAPSLOCK_ENABLE + +// RGB NIGHT MODE +#ifdef RGB_MATRIX_ENABLE + static bool rgb_nightmode = false; + + // Turn on/off NUM LOCK if current state is different + void activate_rgb_nightmode (bool turn_on) { + if (rgb_nightmode != turn_on) { + rgb_nightmode = !rgb_nightmode; + } + } + + bool get_rgb_nightmode(void) { + return rgb_nightmode; + } +#endif // RGB_MATRIX_ENABLE + +// TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + static uint16_t timeout_timer = 0; + static uint16_t timeout_counter = 0; //in minute intervals + static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; + + uint16_t get_timeout_threshold(void) { + return timeout_threshold; + } + + void timeout_reset_timer(void) { + timeout_timer = timer_read(); + timeout_counter = 0; + }; + + void timeout_update_threshold(bool increase) { + if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; + if (!increase && timeout_threshold > 0) timeout_threshold--; + }; + + void timeout_tick_timer(void) { + if (timeout_threshold > 0) { + if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick + timeout_counter++; + timeout_timer = timer_read(); + } + #ifdef RGB_MATRIX_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgb_matrix_disable_noeeprom(); + } + #endif + } // timeout_threshold = 0 will disable timeout + } + + __attribute__((weak)) void matrix_scan_keymap(void) {} + + void matrix_scan_user(void) { + timeout_tick_timer(); + matrix_scan_keymap(); + } +#endif // IDLE_TIMEOUT_ENABLE + + +#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality + #ifndef DYNAMIC_KEYMAP_LAYER_COUNT + #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere + #endif + #ifndef ENCODER_DEFAULTACTIONS_INDEX + #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders + #endif + +uint8_t selected_layer = 0; + +__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (!encoder_update_keymap(index, clockwise)) { return false; } //This is to override the default kb function and go to userspace + if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match + if ( clockwise ) { + if (get_mods() & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) { + selected_layer ++; + layer_move(selected_layer); + } + } else if (get_mods() & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGDN); + register_mods(MOD_BIT(KC_RSFT)); + } else if (get_mods() & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word + tap_code16(LCTL(KC_RGHT)); + } else if (get_mods() & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track + tap_code(KC_MEDIA_NEXT_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(true); + #endif + break; + default: + tap_code(KC_VOLU); // Otherwise it just changes volume + break; + } + } + } else { + if (get_mods() & MOD_BIT(KC_LSFT) ) { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } + } else if (get_mods() & MOD_BIT(KC_RSFT) ) { + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGUP); + register_mods(MOD_BIT(KC_RSFT)); + } else if (get_mods() & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word + tap_code16(LCTL(KC_LEFT)); + } else if (get_mods() & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track + tap_code(KC_MEDIA_PREV_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(false); + #endif + break; + default: + tap_code(KC_VOLD); + break; + } + } + } + + return true; + } +#endif // ENCODER_ENABLE + + +// PROCESS KEY CODES +__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keymap(keycode, record)) { return false; } + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } else unregister_code16(keycode); + break; + case KC_WINLCK: + if (record->event.pressed) { + keymap_config.no_gui = !keymap_config.no_gui; //toggle status + } else unregister_code16(keycode); + break; + +#ifdef IDLE_TIMEOUT_ENABLE + case RGB_TOI: + if(record->event.pressed) { + timeout_update_threshold(true); + } else unregister_code16(keycode); + break; + case RGB_TOD: + if(record->event.pressed) { + timeout_update_threshold(false); //decrease timeout + } else unregister_code16(keycode); + break; +#endif // IDLE_TIMEOUT_ENABLE +#ifdef RGB_MATRIX_ENABLE + case RGB_NITE: + if(record->event.pressed) { + rgb_nightmode = !rgb_nightmode; + } else unregister_code16(keycode); + break; +#endif // RGB_MATRIX_ENABLE + default: + if (record->event.pressed) { + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_enable(); + #endif + #ifdef IDLE_TIMEOUT_ENABLE + timeout_reset_timer(); //reset activity timer + #endif + } + break; + } + return true; +}; + + +// Turn on/off NUM LOCK if current state is different +void activate_numlock(bool turn_on) { + if (IS_HOST_LED_ON(USB_LED_NUM_LOCK) != turn_on) { + tap_code(KC_NUMLOCK); + } +} + + +// INITIAL STARTUP + +__attribute__ ((weak)) void keyboard_post_init_keymap(void) {} + +void keyboard_post_init_user(void) { + keyboard_post_init_keymap(); + #ifdef STARTUP_NUMLOCK_ON + activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results + #endif // STARTUP_NUMLOC_ON + #ifdef IDLE_TIMEOUT_ENABLE + timeout_timer = timer_read(); // set inital time for ide timeout + #endif +} \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/jonavin.h b/keyboards/gmmk/pro/ansi/keymaps/railgun/jonavin.h new file mode 100644 index 000000000000..e2b53eee128d --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/jonavin.h @@ -0,0 +1,85 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +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 . +*/ + +#pragma once + +// DEFINE MACROS +#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) + + +// LAYERS +enum custom_user_layers { + _BASE, + _FN1, + _LOWER, + _RAISE, +}; + +// KEYCODES +enum custom_user_keycodes { + KC_00 = SAFE_RANGE, + ENCFUNC, + KC_WINLCK, //Toggles Win key on and off + RGB_TOI, // Timeout idle time up + RGB_TOD, // Timeout idle time down + RGB_NITE // Turns off all rgb but allow rgb indicators to work +}; + +#define KC_CAD LALT(LCTL(KC_DEL)) +#define KC_AF4 LALT(KC_F4) +#define KC_TASK LCTL(LSFT(KC_ESC)) + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap Dance Definitions + enum custom_tapdance { + TD_LSFT_CAPSLOCK, + TD_LSFT_CAPS_WIN + }; + + #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) + #define KC_LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) +#else // regular Shift + #define KC_LSFTCAPS KC_LSFT +#endif // TD_LSFT_CAPSLOCK_ENABLE + + +#ifdef RGB_MATRIX_ENABLE +//RGB custom colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours + + void activate_rgb_nightmode (bool turn_on); + bool get_rgb_nightmode(void); +#endif + + +// IDLE TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes + #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) + + //prototype functions + uint16_t get_timeout_threshold(void); + void timeout_reset_timer(void); + void timeout_update_threshold(bool increase); + void timeout_tick_timer(void); +#endif //IDLE_TIMEOUT_ENABLE + + +// OTHER FUNCTION PROTOTYPE +void activate_numlock(bool turn_on); \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/railgun/keymap.c new file mode 100644 index 000000000000..020087532d60 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/keymap.c @@ -0,0 +1,194 @@ +/* Copyright 2021 Glorious, LLC + Copyright 2021 Jonavin + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "rgb_matrix_map.h" +#include "jonavin.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute) +// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del +// Tab Q W E R T Y U I O P [ ] \ PgUp +// Caps A S D F G H J K L ; " Enter PgDn +// Sh_L Z X C V B N M , . ? Sh_R Up End +// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right + + + [_BASE] = LAYOUT( + KC_ESC, 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_INS, KC_MUTE, + KC_GRV, 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_DEL, + 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_PGUP, + TT(_LOWER), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME, + KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, + _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, + _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END, + _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______, + _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) + ), + + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + + +#ifdef RGB_MATRIX_ENABLE + // Capslock, Scroll lock and Numlock indicator on Left side lights. + void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { + rgb_matrix_set_color(LED_L7, RGB_GOLD); + rgb_matrix_set_color(LED_L8, RGB_GOLD); + rgb_matrix_set_color(LED_R7, RGB_GOLD); + rgb_matrix_set_color(LED_R8, RGB_GOLD); + } + if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF + rgb_matrix_set_color(LED_L1, RGB_GOLD); + rgb_matrix_set_color(LED_L2, RGB_GOLD); + rgb_matrix_set_color(LED_R1, RGB_GOLD); + rgb_matrix_set_color(LED_R2, RGB_GOLD); + } + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(LED_L3, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L4, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L5, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L6, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R3, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R4, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R5, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R6, RGB_GOLDENROD); + } + if (keymap_config.no_gui) { + rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled + } + switch(get_highest_layer(layer_state)){ // special handling per layer + case _FN1: // on Fn layer select what the encoder does when pressed + /*rgb_matrix_set_color(LED_R2, RGB_RED); + rgb_matrix_set_color(LED_R3, RGB_RED); + rgb_matrix_set_color(LED_R4, RGB_RED); + rgb_matrix_set_color(LED_FN, RGB_RED); //FN key*/ + for (uint8_t i=0; i= 140 minutes, just show these 3 lights + rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); + }*/ + break; + case _LOWER: + for (uint8_t i=0; i or encoder + - setting to zero disables timeout + - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes + - LED address location map as enum definition + - LED group lists for arrows, numpad, F row, num row, left and right side LEDs + - default startuo in single mode with default colour + - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED + - Layer indicator on right side LED + - Fn key light up red when Fn layer activate + - Win Key light up red when Win Lock mode enabled + - Layer 2 activation lights up Numpad area + +rules.mk OPTIONS - Active features from userspace +STARTUP_NUMLOCK_ON = yes + - turns on NUMLOCK by default + +ENCODER_DEFAULTACTIONS_ENABLE = yes + - Enabled default encoder funtions + +TD_LSFT_CAPSLOCK_ENABLE = yes + - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + +IDLE_TIMEOUT_ENABLE = yes + - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically + +## All layers diagram +Default layer +![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png) + +Fn Layer +![image](https://user-images.githubusercontent.com/71780717/126086069-bc539ffc-3ab6-4ebb-9bef-5005f8add294.png) + +Layer 2 (Caps Lock Mod) +![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png) diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/rgb_matrix_map.h b/keyboards/gmmk/pro/ansi/keymaps/railgun/rgb_matrix_map.h new file mode 100644 index 000000000000..4be00d3f03f0 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/rgb_matrix_map.h @@ -0,0 +1,148 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 . + */ + +#ifdef RGB_MATRIX_ENABLE + + // Custom RGB Colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours + + // RGB LED locations + enum led_location_map { + LED_ESC, // 0, ESC, k13 + LED_GRV, // 1, ~, k16 + LEB_TAB, // 2, Tab, k11 + LED_CAPS, // 3, Caps, k21 + LED_LSFT, // 4, Sh_L, k00 + LED_LCTL, // 5, Ct_L, k06 + LED_F1, // 6, F1, k26 + LED_1, // 7, 1, k17 + LED_Q, // 8, Q, k10 + LED_A, // 9, A, k12 + LED_Z, // 10, Z, k14 + LED_LWIN, // 11, Win_L, k90 + LED_F2, // 12, F2, k36 + LED_2, // 13, 2, k27 + LED_W, // 14, W, k20 + LED_S, // 15, S, k22 + LED_X, // 16, X, k24 + LED_LALT, // 17, Alt_L, k93 + LED_F3, // 18, F3, k31 + LED_3, // 19, 3, k37 + LED_E, // 20, E, k30 + LED_D, // 21, D, k32 + LED_C, // 22, C, k34 + LED_F4, // 23, F4, k33 + LED_4, // 24, 4, k47 + LED_R, // 25, R, k40 + LED_F, // 26, F, k42 + LED_V, // 27, V, k44 + LED_F5, // 28, F5, k07 + LED_5, // 29, 5, k46 + LED_T, // 30, T, k41 + LED_G, // 31, G, k43 + LED_B, // 32, B, k45 + LED_SPC, // 33, SPACE, k94 + LED_F6, // 34, F6, k63 + LED_6, // 35, 6, k56 + LED_Y, // 36, Y, k51 + LED_H, // 37, H, k53 + LED_N, // 38, N, k55 + LED_F7, // 39, F7, k71 + LED_7, // 40, 7, k57 + LED_U, // 41, U, k50 + LED_J, // 42, J, k52 + LED_M, // 43, M, k54 + LED_F8, // 44, F8, k76 + LED_8, // 45, 8, k67 + LED_I, // 46, I, k60 + LED_K, // 47, K, k62 + LED_COMM, // 48, ,, k64 + LED_RALT, // 49, Alt_R, k95 + LED_F9, // 50, F9, ka6 + LED_9, // 51, 9, k77 + LED_O, // 52, O, k70 + LED_L, // 53, L, k72 + LED_DOT, // 54, ., k74 + LED_FN, // 55, FN, k92 + LED_F10, // 56, F10, ka7 + LED_0, // 57, 0, k87 + LED_P, // 58, P, k80 + LED_SCLN, // 59, ;, k82 + LED_SLSH, // 60, ?, k85 + LED_F11, // 61, F11, ka3 + LED_MINS, // 62, -, k86 + LED_LBRC, // 63, [, k81 + LED_QUOT, // 64, ", k83 + LED_RCTL, // 65, Ct_R, k04 + LED_F12, // 66, F12, ka5 + LED_L1, // 67, LED, l01 + LED_R1, // 68, LED, l11 + LED_INS, // 69, Prt, k97 -- remapped to INS + LED_L2, // 70, LED, l02 + LED_R2, // 71, LED, l12 + LED_HOME, // 72, Del, k65 + LED_L3, // 73, LED, l03 + LED_R3, // 74, LED, l13 + LED_PGUP, // 75, PgUp, k15 + LED_L4, // 76, LED, l04 + LED_R4, // 77, LED, l14 + LED_EQL, // 78, =, k66 + LED_RIGHT, // 79, Right, k05 + LED_L5, // 80, LED, l05 + LED_R5, // 81, LED, l15 + LED_END, // 82, End, k75 + LED_L6, // 83, LED, l06 + LED_R6, // 84, LED, l16 + LED_BSPC, // 85, BSpc, ka1 + LED_PGDN, // 86, PgDn, k25 + LED_L7, // 87, LED, l07 + LED_R7, // 88, LED, l17 + LED_RBRC, // 89, ], k61 + LED_RSFT, // 90, Sh_R, k91 + LED_L8, // 91, LED, l08 + LED_R8, // 92, LED, l18 + LED_BSLS, // 93, \, ka2 + LED_UP, // 94, Up, k35 + LED_LEFT, // 95, Left, k03 + LED_ENT, // 96, Enter, ka4 + LED_DOWN // 97, Down, k73 + }; + + const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; + + const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; + + const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS}; + + const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME}; + + const uint8_t LED_LIST_NAV[] = { LED_HOME, LED_PGUP, LED_PGDN, LED_END}; + + const uint8_t LED_LIST_MODS[] = { LEB_TAB, LED_CAPS, LED_LSFT, LED_LCTL, LED_LWIN, LED_LALT, LED_RALT, LED_FN, LED_RCTL}; + + const uint8_t LED_LIST_NUMPAD[] = { + LED_7, LED_8, LED_9, + LED_U, LED_I, LED_O, + LED_J, LED_K, LED_L, + LED_M, LED_COMM, LED_DOT + }; + + const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; + + const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; + +#endif diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/railgun/rules.mk new file mode 100644 index 000000000000..a6b64334558d --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/railgun/rules.mk @@ -0,0 +1,32 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes +BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite + +TD_LSFT_CAPSLOCK_ENABLE = yes +IDLE_TIMEOUT_ENABLE = yes +STARTUP_NUMLOCK_ON = yes +ENCODER_DEFAULTACTIONS_ENABLE = yes + +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +TAP_DANCE_ENABLE = yes + +LTO_ENABLE = no # MCU has 256kB space - 4kB for the EEPROM. + + +SRC += jonavin.c +ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes) + OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE +endif +ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes) + OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE +endif +ifeq ($(strip $(IDLE_TIMEOUT_ENABLE)), yes) + OPT_DEFS += -DIDLE_TIMEOUT_ENABLE +endif +ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes) + OPT_DEFS += -DSTARTUP_NUMLOCK_ON +endif +ifeq ($(strip $(COLEMAK_LAYER_ENABLE)), yes) + OPT_DEFS += -DCOLEMAK_LAYER_ENABLE +endif \ No newline at end of file From 4dbd6fb5e36b215d14b496a9fe8bc20d840735e2 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 23:31:56 -0400 Subject: [PATCH 08/94] Initial commit, in progress. --- .../pro/ansi/keymaps/solartempest/config.h | 69 ++++ .../solartempest/gmmk_pro VIA layout.json | 367 ++++++++++++++++++ .../gmmk_pro_ansi_solartempest.bin | Bin 0 -> 36500 bytes .../pro/ansi/keymaps/solartempest/jonavin.c | 253 ++++++++++++ .../pro/ansi/keymaps/solartempest/jonavin.h | 85 ++++ .../pro/ansi/keymaps/solartempest/keymap.c | 194 +++++++++ .../pro/ansi/keymaps/solartempest/readme.md | 53 +++ .../keymaps/solartempest/rgb_matrix_map.h | 148 +++++++ .../pro/ansi/keymaps/solartempest/rules.mk | 32 ++ 9 files changed, 1201 insertions(+) create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/readme.md create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/rgb_matrix_map.h create mode 100644 keyboards/gmmk/pro/ansi/keymaps/solartempest/rules.mk diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h new file mode 100644 index 000000000000..ef211e1334e1 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h @@ -0,0 +1,69 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 . + */ + +#pragma once + +#define TAPPING_TOGGLE 2 // TT set to two taps + +/* Handle GRAVESC combo keys */ +//#define GRAVE_ESC_ALT_OVERRIDE //Always send Escape if Alt is pressed +//#define GRAVE_ESC_CTRL_OVERRIDE //Always send Escape if Control is pressed + +#define TAPPING_TERM 180 + +#ifdef RGB_MATRIX_ENABLE + #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE + #define RGB_DISABLE_WHEN_USB_SUSPENDED + + #define RGB_MATRIX_KEYPRESSES + #define DISABLE_RGB_MATRIX_SOLID_COLOR + #define DISABLE_RGB_MATRIX_BREATHING + #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_BAND_SAT + #define DISABLE_RGB_MATRIX_BAND_VAL + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define DISABLE_RGB_MATRIX_HUE_BREATHING + #define DISABLE_RGB_MATRIX_HUE_PENDULUM + //#define DISABLE_RGB_MATRIX_HUE_WAVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json new file mode 100644 index 000000000000..40a86c5ba5c4 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json @@ -0,0 +1,367 @@ +{ + "name": "GMMK Pro", + "vendorProductId": 839864388, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_LSFT", + "KC_MUTE", + "KC_NO", + "KC_LEFT", + "KC_RCTL", + "KC_RGHT", + "KC_LCTL", + "KC_F5", + "KC_Q", + "KC_TAB", + "KC_A", + "KC_ESC", + "KC_Z", + "KC_PGUP", + "KC_GRV", + "KC_1", + "KC_W", + "TT(2)", + "KC_S", + "KC_NO", + "KC_X", + "KC_PGDN", + "KC_F1", + "KC_2", + "KC_E", + "KC_F3", + "KC_D", + "KC_F4", + "KC_C", + "KC_UP", + "KC_F2", + "KC_3", + "KC_R", + "KC_T", + "KC_F", + "KC_G", + "KC_V", + "KC_B", + "KC_5", + "KC_4", + "KC_U", + "KC_Y", + "KC_J", + "KC_H", + "KC_M", + "KC_N", + "KC_6", + "KC_7", + "KC_I", + "KC_RBRC", + "KC_K", + "KC_F6", + "KC_COMM", + "KC_HOME", + "KC_EQL", + "KC_8", + "KC_O", + "KC_F7", + "KC_L", + "KC_DOWN", + "KC_DOT", + "KC_END", + "KC_F8", + "KC_9", + "KC_P", + "KC_LBRC", + "KC_SCLN", + "KC_QUOT", + "KC_NO", + "KC_SLSH", + "KC_MINS", + "KC_0", + "KC_LGUI", + "KC_RSFT", + "MO(1)", + "KC_LALT", + "KC_SPC", + "KC_RALT", + "KC_NO", + "KC_DEL", + "KC_NO", + "KC_BSPC", + "KC_BSLS", + "KC_F11", + "KC_ENT", + "KC_F12", + "KC_F9", + "KC_F10" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "RGB_SPD", + "TO(3)", + "RGB_SPI", + "KC_TRNS", + "KC_MPRV", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_HOME", + "KC_TRNS", + "KC_TRNS", + "RGB_VAI", + "KC_CAPS", + "RGB_VAD", + "KC_NO", + "RGB_HUI", + "KC_END", + "KC_MYCM", + "KC_TRNS", + "KC_TRNS", + "KC_CALC", + "KC_TRNS", + "KC_MSEL", + "KC_TRNS", + "RGB_MOD", + "KC_WWW_HOME", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_PSCR", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NLCK", + "KC_TRNS", + "KC_TRNS", + "KC_SLCK", + "KC_TRNS", + "KC_TRNS", + "KC_MNXT", + "KC_NO", + "RGB_TOG", + "KC_TRNS", + "KC_TRNS", + "KC_PAUS", + "KC_MPLY", + "KC_TRNS", + "RGB_RMOD", + "KC_NO", + "KC_TRNS", + "KC_MSTP", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F14", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F13", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_CAPS", + "KC_NO", + "KC_CALC", + "KC_NO", + "KC_TRNS", + "RESET", + "KC_VOLU", + "KC_TRNS", + "KC_TRNS", + "KC_MUTE", + "KC_VOLD" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "C(RCTL(KC_LEFT))", + "KC_TRNS", + "C(RCTL(KC_RGHT))", + "KC_TRNS", + "KC_TRNS", + "KC_HOME", + "KC_TRNS", + "KC_LEFT", + "KC_TRNS", + "KC_CAPS", + "KC_HOME", + "C(S(KC_M))", + "C(S(KC_B))", + "KC_UP", + "TO(0)", + "KC_DOWN", + "KC_NO", + "KC_DEL", + "KC_END", + "KC_TRNS", + "KC_TRNS", + "KC_END", + "KC_TRNS", + "KC_RGHT", + "KC_TRNS", + "KC_INS", + "C(RCTL(KC_PGUP))", + "KC_TRNS", + "KC_TRNS", + "KC_PGUP", + "KC_TRNS", + "KC_PGDN", + "KC_TRNS", + "KC_NO", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_P4", + "KC_TAB", + "KC_P1", + "KC_TRNS", + "KC_P0", + "KC_NO", + "KC_TRNS", + "KC_P7", + "KC_P5", + "KC_TRNS", + "KC_P2", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_PPLS", + "KC_P8", + "KC_P6", + "KC_TRNS", + "KC_P3", + "C(RCTL(KC_PGDN))", + "KC_PDOT", + "KC_TRNS", + "KC_TRNS", + "KC_P9", + "KC_PPLS", + "KC_TRNS", + "KC_PENT", + "KC_PAST", + "KC_NO", + "KC_PSLS", + "KC_PMNS", + "KC_P0", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_PENT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "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_F22", + "KC_TRNS", + "KC_NO", + "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", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS" + ] + ] +} \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin new file mode 100644 index 0000000000000000000000000000000000000000..3481afb8006b1bdc0cad4b34feceaae578623dd4 GIT binary patch literal 36500 zcmc${d3;pW-9LWrGD{Z7WC21FV3G+iVFCt%8Wwe!2{+4tL6H^#>i{kjuw@XngSIsg z)QD11Xv?B)G-$O{%M8X6bessZ)~f9cOPzpASmX*RdWQt&CX>wlz0aKqQhlE9^Sqva ze(*YT&-yu^vwya8LU>~QfF=45{}*oLvj1Ja{|?q?ZlaICX;u^cNVth`v)~rM{dZ-) z8$a#A|9#%?mi@nk>w(+P;hu$i8LkcP{{n}WS@(ay{aFps{}}H6x29D$bnBZc@SB3) zn=k8c`Nu`V=$+P!gnR^d^W~|l6ET7Ax@Q92tDd1L?H47aG$r#6rqoG+>Y)nml?X$L-fmt%2)+ZL!jJzt8SCdzp@7Q6xF>nh~ zZE&(kj3a7tugas5N&u^PAZJd_+&|j5jlC8 zZ^K6aSJE@Y)YzTbWEPsMh*2XMl(?vo{vIb^#6?2px7D_h5`BP}3j%eLG8wLnNa_1t zkLc5Xe2)KzPFm3anap>7c8)did)!s-DiYu(xZlj`u%2f$uj_arO)!Q=3PxeR%r8b8 zSH5A(4e`^t2}WV0a4~$_==;5#C)KmVrVkY7YJ=&W2AR1jQ)aH&V$+72ZP5@hy5DhE z-8Q;Q+?GduB(Oo4b)In9636{GWSu_i2>N)274HA9uXVcraM_g1{}B(v^b3d6r)aL^ zR!!9@(L?Hs?rc8*Wz@GrZc`tfn0{?uh@Z3M(i1->&e} z@`H7_tMsi(G^{AmK1J_mjDSzvty*D-phRVb7aF|3Xd@G^4>D45|9V~8v8j$+4{O$h znX-0YuA7lo$fa0wZa*XC^fzi#jv3JxFAdyGfBUI_%fQznBWe5ps^gDYFV-1|w4v`y z#0fSvQ}Z=Ki-h`|@4$E{FwQ#;8Pdl`{z6J?~2~ z$E!qR@y`&tXWr*xsW+uI+tVm9T($EG$lqPhBVvwp#Lj_bv|0w@s7c-Zza-?dud(&Rxtkk3})5fe7YXL^kQe`sW-xk|#n82+lHeAwYjDe1or{`2u4tE*9imgNabVH)B(46DZXUNg1IT*Df4nNh1*l+zjDi*M)tYWg zrWId-H<(hDOd0*XlRaykoLd8EVIrl~O^^@7srqp3uiw4bTDENZfde)4dlr@7jF zL~7~VrIsQcrEMHa(7a0YaDb_i#SzGBPv%vkL8Y$eVYf!w)Hj&xGhmn4m){!D`xCx? z?9SP(>~8KHM=~(q_qM$tvt?_%E4)OS80Q5>Alr!a)d1OU6xcnqHcry|X&ganw@7^> z<77Kp7qDR%*46US)N4vVQsFmnn6@%Z<$`tc`OoZ=aFQ(c|SXMNMI(MJT~Z z!DQ%%YRiapsGpua!o^n&8Y!)h!r-N!?5}8L3N^rFw^AbT0*8I51m_GVEr{tc8!G%X zq(pzL5OXw`NO8g+N&4>_Am*;5za9QBlm4x7V*VoOPwgY-j^J+3V(;wBi{?LXD+s2B z-@LT1E-N_u^5^#FZJ9wcYM8G44SVupq-P+03BKJSMtWM7L?zm+(DNpz?=Ad3Ba7j=k)nlVd8I1XS+>By!f!)taf`Q;LBmS$GA#PC8Nku(yc!5*$@VAZc?P!!&Ikv3dzPt=7lsOTQmWpF z^YRAlcNL-KIOm3jnmsQU5b1;7Qh}Lztw1Jz9lXoP+@O&b^j`2qMb^S6bNpStAaYki z_TIB1Z()MW)YD>-K*nat>`fha)aY^q?NKtZ128nw)L!NWSuC5Ok7=&W0yX_L`edE* zp$J-k-IKonzfh<|y#Yf0H~6jn9)6nd;P>!<;MXmGi(iX}jAf@DzvEUNA7Pkp@jD}b zi{Eljx^MybP5vH!oIp|v0-V4bcj!k4*s^S_-^KcZ0Hts!pF!y(y7~s!WDI_H6CH5SNJkXg zMFVyYw@hPFv99QT^tV8xc_{K4l>@p(N9QBuQk+QsWZp&ceB)Q*1~o^9V%OCitwN47 z$nnQyjvBej_=(7kIpJ%z3=NNRFhZ`2la?w*uMuX`sPCD0V%M3AR;MD*%kcv` z>oMBuhmpso%s2iUt)(g3;&xs6G1}T6BjsA9%J_xIjyddWo^YZA?O+f4bQ9EeaEx)A z+K#q(khTLU>;yin)`N5Cx9_4Ah#P)Y+^%;ME%+QQ(4z(O{Ca;yt45_JM=Ql`X6*kJ z*#EZ$u=Zy1=)qmSZgHA9Jut5@6|3Z2K;LS{eDNe(bM{?5_DUM_(`3wNh?#hr!-}Q?C(z2+o7NV| z$hZmg>_{n#WRd0gzlXd}Zp8l(nZ(?P|63UvdVwM1&x#Z-N{!2wq>S9ab<7#xue?9- z4%SeH^KfPxkw&3EH^u23el?!iNuT;TW2?G#*-h{pJAdW95jdyCt>;ro zyHAPQls}8iq)Q>}#>qJB!|~U}Nys%kJ`e4fuDpUAyMmX+QC@aZb9kO`8sX=|I7=se z9h_F09;oZ-n@3M^UiyRD54+-<#GD@MszcrDOu8Urc|3GC#wZ1I{h5IVact7RcHm*r zEcC%$6gz!my^Q3HG18R&RX9o7V!af?qvjBq_-N0)e>&7{Gc=HcKJdU~oArP%M>3Gn zfeboR?Wm; z#!WrblaLRnkO7q=eXR5sABDa73haY`Z9lIe>3}^1ur+|)+?y|ENo>ZafcjkTF#P_m zHw(YF_GXA@>0B!wtL_-i-ZH@y+gh8gjZB(hs7Uw_eZ8> zTs?~K56lzt)tX4|SYtIo(LvRj!ZaLXRr7mUC>OC%%a z>mOw13O%Mo$Gn?OX-HQ~6WM$O`#(wU|2gXZ|9EU3X58$4m$wBp32UTq>3&}3r)%k- z>Pb@?WA{+Hi|!1+Q1==l1>YImD}J7gd0&m8G;?)7{aw(HH3#<;Tw6aQeGyCSQUm)b z$9P!{DbcgogNRh6!cd|Y1MS`16n6SS-;fCf7$a8F>GJb)^7Hd`y4?KyT*;ChYq+Yzxu#rE!YDoub(oSgJLlVw`75)B2`?@7?IEM$3C`@cPJA$-Ki zD=UzVxD%y*6(E5}KwDBtNCb2R3pzO0u0*?%@oE^*PhS;Yi13Lk@T&OIj9Xs&#t)%N9#}rXoa=rCn_aTz%AYE2+*q2*LiZ!0XKEB)DO}LfTY%4Q$ zrIjnC626Ne%7^|OZK5zJgtS_e<+5A3E;~oCI&^$?rC!K}WbTxeh16oBm6>d?b0zJ* zo)Dd9wCtMJA&%E&o{aXSqy4(#(RKl~ozQ*h(;Q`H%7@8Vvw$)5GuzErA=Y?QTs=1Xy@|NRIU9Wyua(yo{S3i}SkeI_Pi zb|NM$x?58mDK{5*Qs$O>T5Kfb_G`KhaSPzBk zcPY{OcS+#42p2k{tvl9c;apA)?eN&Vqie_9oaGra7Zl}BCwrc?F&KTxpX(x4S! zVy`i@*@}ajt^@oQnQ33@d3yG!&=#4r50j@Do}N7-^rGjrwilaH@}BhVEir_*uT80D zik5ZjGPkd8S&MIW%WCjD0~|elF++bFV5VS4U_THkE?46TTHme_9^3QsoZU?r-!klV zuGi&s`rT}Fm3UTo{^V(u`383LzXf6;(!Ux&2X_K%_v5pP^v{M@JY*7)K5Tfki{qNt z?)2?N9w~)f{B47!sVzb>T%k3y+XO@C(Kg1kyjy2z241Vxz44ZTmbJTAlW}E&hGN;c z32ojaGsaD_9^Vw>K9n{EQ5&ID_cq(8V6^S$)jxOWJo%oVSHEp52ocP!-^b~`$4ofr z8{07yZOmYq2_<1ek9$>7@DFN#j}F}|d?b=n}vigvS)x~c`ziyqa4H@L} z_NQmFp1QxUF_y&V31CTMWB7@R7cKc4bpMDA%s!WkLhcY_eJ(*l!R{- z$Tj|80@|=p%i80*AxA+;vZ+C7!tT{i1W))5c5_+G6gt0luYObv>w*brTs7^<+k2JhJ@EzDGw6J! zYl_ZUx~`-vd>ieF=D4K}yqnQ-vqtc!+*pEVn~u}kkUXuKpb~wh-!x}>r^?msZdCa> zGU1Xsw`O`Kd(bEMZ?;_sE-RpGWTP!Dm^*j6oBI%}JbgA+`A69Iz*7!<3Vw8Uf0pA0 z_qFa(&O4k(MZT*YqjE>Q!CUU(yAHCq$>ro0toonymwOU3soY)Wnc-=)oeSx(zDeNf zw$Qe*Nq+6pKFHU=Lk)&?ZHX{s!Y)qAYfGeU>7^&k`@~(9Vo>)O&@VcKNPvcM@_Gyi zQ)$^?oVIp8q}&b6I-4fw>|W2!cN=i7k87jpR7TA^7JAyd8wlk%KvAPLXVrMdsGghn z{X761JT!lrT4$ceV9#}52}2f6Pg4V8XgWi+B3Jy0a_QeGr-rX8N5g~VzMEH1%U+e2 zh6nQ|{E0eJ5q~u;qOHBvbE{6@sy(Wy&Gf9Zu|b0y(s{@N678n>q04dPdGfrFXd>;T znnvRdI75fj=6kX{L*``LhtwKfS)OcrdM)S9@=Wn&+c`HYZBg{l3Vf~@U6kr$r5exx zwEYx+I#v|7@8XoI;sj~s(Udu}&bKp#sP(nj*5sHf(esc?P-xh%-=G9R#%gaik4qt+>9^Y~J4gu$Y zXdxHj(Fl(~SVFh};o%5VUDwyi^r12+7U_V@N~dKd`X`J+f^Jo!djgCw6giIoYgYPL z!Kv<~PVdh_f99&=!%FXcC*FYgt0htT)_61}MyY;HHFRH~Kf>7YzeW#yt&VBtcq%tf z%-)2wYS5q1^3l3CDXg?h22TZ!vl}Ikp(NGYKemTRju@SbZzyE^7czNvrf_H96MgeQ z-8J@&l$n)}+Zu$Mg4cr@+^J)Zfe-0>{JdU!*+<6KNle=C^Jy98pb~vg$%QW`0IIcU zvzMM#%yT%2=iwx7W~KWStHcm`jFq?~F4$0KI^j`qX)bNr7*kP$Hc1F_J6B zl@^4VYcKff&O12$#5?;MV;_c?>(j3Bg*LR&vm7U48EU{BvtEJA@6Lv#JRU8NGtxES zd48v^uX#%993s8Y&q~h@n6QiLf~@rPfYGf|40Z8n&bzAb84@s~&kNv2!6kYhe1M}| zHV}7J!DCd;Po!h=o=eS;yOtf^bE%=OL3*;`3v*UDVD^N6Z%z&GGP^*5@Up*9pznTsU#UyQ@2UNLo~FuY#rBE@a5_H$W&RX6 zzceC?_MYm>$5g+y$5`0_ACq&idmXVdv?lQU9Mvyy-MMyaPrCK>@8R7o)?Vx(TSY2S zY);}}?IE`ZtTW@BA*Fui&t}4S!hYbki zU!7P}r8qk}baRj1>Y?%zQ!raHWatB@jk(}{-Bn}NynMz*u?YEY*Udn_!@B99dJGvC z#8Hk#o@b%crtoMf(Rf zp;R?wMcM>}bXP)?5t;^f3XbA?7LM-IB`Q8Ttk+ydUosxjt|+8zJQ<1IoyO&sj6dS`z;NiZyku%t1yAr5{g#{dE8YT=JKE3Avmx9r~e69 zB4FrSjYaEW3&ns7&)~LOjhNBAbgDmLAw}`7XicA+R=j{(brn#G^Q^+mq`K-$Asuw8 zG~TYpgR4%)SNLaQU!r@{#B;KJY~2s#!ZNL}uwaN_4JK;C{;W4i87Um<)c0{cg@R3} z7Is1M_j3Pha-NkGZvak8bh|R5+9bRv%#(S`Ed{1vk(9wuPAH|m5W2v_y1b((eepIQ zQ(k#Kh1Xjk&FlRt^h0?pN#L|u0l&e3YAmGO%VUaG)@+9Us*x0bDGuUDM`)9hQcFzp zo!QO5n`RvJ6KR?%DT+r=fNuRO`kD51Su0Mb;*ZZUl^@G#){{QwRmv?lDQTs0 zXz1J`fqBg=3`BdtH{jeUCdH7v{(<}Z7EiqsR%gzVb-VA^*6?UqS`p;Gay+`P*9cy* z%s&VpV+!3}#vHAXAq*2Bmw;suEA_?FFb_?TQ>1`)W~ID--mDMH{)ozaF;j)C0BaWYg22oJbKR-TlZl@jFV{IJ+X^YgYUSgF`f_~ zrRxT6I&k<0*3Arj|B3G~wO-A!9KdVPlVp9|F$2O@{bkgpIW`3TN6k_Pg^`B*i@j;J z`ebd_1!!#zK3dnmMaK9!99;vnp2L7Y6W=5FN@h?cAtm~hVzrex!fw4kqT2N|f+f9Z zrYXNbipjCf9TB_Ll!uVgYvz&ix-!aMKfT|Zw|4Q` zZ2KY~vDAeoI4F;D(X0)T36bNZXonjRj3?C=k_neT716>iy}W@Bk&=_2k;0LyKSwKB zgpMDNqK#X6HEP-s)Oh>qpxR1OB7gcJZ6))8k1x@Mdn%a1b=HL*<9UWGbib>%aY!}e zDU=w7alfUu5mFn3S%$Xp^^isl@ys_Otl`i;Iv40T(YDh0`C4C!=swU=$!+RM4O_VUiHy_$JjWzr1!$7W(` zai4aZRxe+@@Vt&o4bFAsHnGyfeRE(NHDj-%Hp{cwHu2LRoY!z^!5TH~zP@Ut5zEcN zDmC@CPfvMTz#SE#ZA3>U{m=@Zb-8Xra=uOZx4aRf=e`o|IycI-S%811mY%Q#{ zXJs)lu3HbvH9rf#rkBv7m&L-X>U#aEx^4u_TjFHWAWY-x8xT_+Cld!_oU74GsO34- zqCqXc{4Z-MLZ7Wm&PCeSbgVwcdZK+!$1DW@M{q$n4R+0J=avS(HrqYu=vw^l7*iVc z^}dujDc};8_R-%T!N!D0i~Dr&FT{HJW1q%R;H3Ns?A!FD6YeWGnbTWw3RkomVXg3@ zkB^YM_)DItRIXua+F~<=QfoIYx?q3Z_kt}QdYMN6wFGc)>4SDdT8~hLpA^SL4d~n( zfxC>ozD*(0y?tpnr_D*P(~P}NX7i_cKd?XPqxf9gr!nUSGy*&I9a{vn#Zp+*$-s%0 zRdE7tqapA7>!Q(h%%p9BQFErdwgzAaY&sYr%eMw9&kIuwWW*vrZ$VgeqJSdtHQ-~xOhQA3$kiT)D(C-}&=()r*V|0^%AtZe=;fcE*a7SHF!@NAFPx1y}8z_J#Xh4%2{FWrG`7t z96opJDe-o`^XS2D>tveJEwVxf+;MeW2K$!cL~)~M@|UW<8C)x9W^gsIu;PWB!|9F# zOE%iFg74i1Ylpb2?a@*`JZP=-P@q_1NJ7p~8qgUrn~eP`d|Fp(^8LER8x zgU@j61I%4&f#fXsOLs;g&H04VSx_>x0d`?j*Y6C_*^Tl_b3sY^VC;hdCHh%_QfNGA zj9Tx9psJft_BExpfQSBqxgk>+3p$OLn3PuvR_U86XF)o=3fdVqrdu%9OY?3~czFbR zTyCVHUsGx;gAa|9*>rX?d)--43m-|<%1ruYQC4kvbCNaH6};*j4jXADnhCn`27!#9 zF_N*o(xqcF!prrv7CM$}jH@(P-sc@IXB#Nqv|oGQ{VG4RiMBFFVQ)Gu%6_WFBP7jn z+!fTNA3g56MVE%(!`jrNVHcJBwMR72uP3Mx7X8nuV*u%!b&YB}b4np&m2nI#J965z zMpcLOE9TeC&V117M}b{LWOl+%eaj_S!|DTC;{}mgR9G=WR8FQb4-2KuG1c28mNPBA zdnxr<;Y+0dL(!T?2Tb)QHFc`#v=ciLI5gI3aFB?{w!`LD=jHJ57^4#XGoTrg&=|lN zW1Q5WME`gN292XI+4b6u4j)$5(`4U2IX4@MMjB~G&Z ztiMDQ{y;=wY0MmZt=$1@0bTKdZe7tqXazs;Y0V?S`@)J@pP7-9t0m9+f?_IeOaLqB z2~@1Cd&M*%Qz#M&pmoc`J&Qu27cqrGj*usuM}K(0b8Ohd6!LpO_XQYpSt}E6_m%ng zT#DZLLco@ypK{oz6fwmuxwjh*c2{W*cGq#)IAeE0#;EC7G5WA?t4-=~jy@wQC2a7% zf-}C$qF(r1+_0x~a;k&boGoXT?a13CLn6477?1m)FCf4k`l$>fzINI_^iGHXyLRBQ zIjx#>&0>i0S^4%W<^KCpB#O^Nzb$Hy33E=zoVf=W(d{g zs<5aXAXa|jPC*X#L)e1=S8f#vxTt*XO>WLzu3ZB3 z#SUjOZsNIU9q;)<-nDsr?RHq$eIY-;hws|J?;>Y>yY+k|M?b9TPF4G~EQ5<_790>L zCuhceqGhRn!Kypy+c;Yn-WOS#k+51&>4Rr-HX;R+y>K3fmUN`lxPbi z10%16OcwqZ;GdiH{|5fY;HPrebm)5$EkQdVP2IF-*`#vdzRbjLu{pHQ<$E++W})A3 zYvR%`*Q^(s1l<;X$7$aVn>M_3QldRWsNVA#-Of`>wxJbyHdF9A#~1QPd-9>NGnb`C z7>%YYjSC6f7E-9$acAF?-8*bK;Yp6L#{elX$=W1OAgN%j6zD*&Zr3!li@pARk=vQ_ zEUX36xGlet7nX55a`PH}hu4l0euH(kGjE5Fu4xh@Weq<4bGYF!FrqeP`*SkiuHV54 zDUo!N2AhTS2$Q}C^8cC;NZpp@do|hXX5=g>13t4- zB1}q)_!at<&Xv!Sear}KEtL-4fxZmUeoclK&_2J8_HFkp-ZQ%P3)#~!U+rU!u#0T= zobl07rhOgsT=p%SL`V91+TY`0b3ogV5!cXq?R4bn>N)NE-Bo?9TK%lcfi89>=8iu2 z0&-w~#(u3a(7EutI5YLjDxjpfmQl){7P>v9fTKaXMbZ!bV+l#&IA1IBp z0<@21uEk@j)LV?79g66+OADq5C6%s%{^(o%d?baTAx$KO^he+5*K}1f_mh#6HIb1B zzk>A4WO^pTzwMvoCPikf8D~5D+GgR`!oPg;`qp>9X*=Q5hxy7gKFT4HV5ys@bLR=% z>)M$TDb;GA$1RYDH#f;lb9$GcO)uBrY?lt!89Y?Rr~eZn!Z60{>7 zlZsZe!wfwac6A{?G`=R=lj5Or-o<&41(}NHw7BQ5U4|QYupTSQ6b!<0oaAd1?Zlxt zfi#jfV~lCMOP;K@A#EId z75;Rj*TlaTQ}K1g&x?9|=f*(`;d>!|O62j4#6K55!J4FNGmP(1xDL2M-AW8H8hQ%~ z^3+zw!*s1Il@q_-)H#tM;F9Z33E(tojG^r&1M%PrN>~m zBAx8}wM;tAPEvH}(xX*tgsp;deaQFA**W2N)ZQ+4Pl0rWdwVi|Az9{0@Ok|;7;(;G zQRUDhEZ5sv@cmkxV$2k;%*^|f?fL*0QOYNdJmIU8m~?aCMa1HsQ1L0TNY#)QI*Mv@ zo%s$fVrFmyQoRfMl&v>}8r+P@;+9n_vPlXl?F~|y8Kvs7(I*=N!yLnE3*1z?e6X8J zOO)u00nYTLn0a%#Ck?zTKLBf^;#}8MXw07P%P={Ix=~)g#Yrbn+Rc19QHsIC}kw-fEqvvBotG^AMj>V&=dvn|3(fe@g=`ijD zv_nQq`=>vHY7nUw^L^ZLqGtnzPwS@jx?9t3=7lEjwVt2D%2tW`<9dg_c9dIxReO%~ zYaMi!Om(~c6yHJI2JzNH7SyOpiZp6pQZ4SFPI@p8Z3oq1p99TH^V3_Qd_Yr^=Favo zg-g|*qdfRve#%RAL666vUaBLekopOXWs`WpH$JgBkTJaI&h$9lY4&V)S&|l@ z_2P!4Q0@7<=Sh#gjOzIZ%Xd>;Y7B4ANugk~Q-$LU>@!8{Zf!<)J}FM3XS43iZ~ z!4z`B2R^4Kkuz`=KGX)!@TNAAcUs~3ldG@J`G+eoDc%(3DbI@@!xUu#U>0%0;VUqy z{or8zgD};+(~HiZy8r5&4Oj9}n6QIb&0QIR1Pt1K+$3CUC{Ivxj1UHIbpA>?YM-d4 z&oG@oy(W=L?GOj+r|GKx78-!vs;rxN{4(H8oVrTdw9|aVHh` zeP|v%sUFOS`z8V@8X}AamCl=B=ZO=<2wPH(LUoR^Kc)I^=}rw>sKG`Dtu^kzNTC_KgUscd_&L#oHc738QihHh%RuJ;*d9$E11*78m>^U@Prymf$}<~>L^8Nv zk0-yHAdtc`@Cg~%G2TT@r+nmBG>u0rGc^(KQ^KVeL!`)y(=?+jk)A0~Ti}-!4VA6n zvP0S&zN_o{D@rNs-L@ZNxES7>T1I#vITNI6DeY`TJFKU49fy4 zlc8`ZJmNJ}>8q&TmjqKeZp>q`WsaL z%SutbseWRV05c(hb0G{dS6b|u9Kja5?2a%e1k zMx}A|LfgVw7e&agM&|?y3vsCw@gs2lGw8Y zde@#cBg0Z0&cYpLB5mwVSOPG{f#~604)c*Q_D65;$DL=y9J>-TufGdpeF?YE43Jn! zxP6w1@1-D9{6#YEvt-;SA=Vfc6%&W^0rs#SW(JS@+gX;|RB9qMr(#ysy!rIs4;DG= z?|;y*%GEVZvqd)6qu1lMwlbMWY=(tEB;q+CGi4;yW6a+6t_AAjJDIbXkJnKAG z4{l@29b#isBD8q_PV~im*$*A?o$`Ja`#-}Uke%+m`1)lob-BCQ{kllGg_9oZ{-RM0 zDDkGe>pL+A!tKI5fw>NnL`9DqCd{>I6Lk@Tjt{m8WZa#7kHxw~W-4E* zkL=N(1dSuZ?quFNqL*891QHpq`9Urj|0e8%W&g{O@!Z}^Wsho)n}MGf7AwrP%v4Dn z@9u*&@nCM6*L@`~cf8O;bH6aaOl7W>#PxeP^XsrYObt^WCACD0FK^UMV8iSlCE7rx zV|(0H2K0>e;z$FXNq~D%9D5ZO7e&+FOHV(l{glG}$@j5Pb0@J#=H)(3V6iBPg`w4Y zQN+H8U14fGS~u|KrG{0}kinl}jzTJE3|lWMWpU{0!)?en_GlZfBaNrET|e-Xf&?d~ zvAVqW(X3@e7#td*ClK$BN5>Da*HXUR)kbCZt$^AGiE%udKcH`8X2Oo>+OT-7z`WWY zeKYnik?MJKg!LYrg6>g*+3}pW04HPNz<6lB_~iYm$}qLUPTXmuYotFq(LdVrifvK| zTFNHq?FaUn&EYp}nuw7f7Stw7X~SAcr)7+LVENx49W`(ow!Yf11~$NnTV?&x)PV}v zHT6fyfUY!)rf3-Bt5#YAEy4Q->*uf3FG1S+bL@G)fXi;3efctE$IsjJLI%#Hi@2$p zg>M+&QP>YU@Vyb=Pw>qMHsCJkjNoXMhAimZb*ZiLfthS6<+pe#cg#344yWQt+?p>G zQai`P|E1~6B3Y!dokb^2voCkg0zXRmFWd&8>1T?*L~PHjZZ*#-HP5A4{}yT5SvBqQ ztS?0~LX4>c``Iax;!WkYO~8cOch9~&45#RDV9ekHHOva~&jZFj5 zSgb$V8V8-#i8I&!@C?00?5Oa+d}-fo4(D&4dj5_s8drY(jGJcPvf%bR>VLfY!AE}6 zNazXu@D00tddrEheqx83Z+QOPTdrUE@TO;pN!1FQ+#ie7$8x>um*+02Up*HQm#aCJ zLvKudgEr}s1?o+WpdUu>cY2f~aIFppl+2MjHXTlj~hdY7zRk)k+SM@uK zJD`5obMLC(gWP`PrRndh-&x#2HJ;CYL;cRq{)75`Jo^>Ybq(rT)%|{UGva7n&nN47 z4Pn^ivh?MN!;p@y=azLJB^iHhL32KQs^>*Y}cVh~s`QZZr{M9;RCLU27~c=D7!=f9)NJ z{<05NuKs-JadQGRejs|Vm!4-mVgtq>H_1)7!~Kx;k%6eLuNl9_zJcfieal@I@5y=| zk|BBm=T=e6PY$OCG;5*irv9j1h6TnNgC8dv-s{jKX8JzX!XT{|8trdmXI~Y2@L@Oh zk*>DJri{5Qm)@}dh=JrHdxxvYt3^E>_2$aWRo7O!fWzN=U&ZffV1G>?)u@`>E%%$& zoNmBNE1-LL$TQXhcdDs*3KZcQ@36YxfOcWZQ-axZzL4i_CgZ?~>uKCx8*?1%x6$-S zi`TSqH!NP;WKy=UGl2``ZM0$K;?5(!Jfmqg_TI)Q_Q0#wDG=ils0As78tC+?LR7epmBy)-5iq(lz32!l)8Q% zzh(W9y_TC){XZ>F^9|bEJr7v)&XL~BL2l`;qG8BXTr0hLSVGvqQDJt%sv!_yJvO(d zh;=W%l5Z;P=I9>6)n>W!yr6I0Tdt(RdcKL?9pD{?hJ06=mrDGp+~g&|r*(WcJ-&HkGg&s{_%|hW=R<6E*igxs7)i%)7|TY_NE__OP@lW1u|Qu&@5gP#9sNc~(`a16 z?r9KaSu6T*%7y}B!tJxgn`}dazKC)Yi(9+;K%T&qf9BIpToySO0I|LLt;Eu7L*BD1aE;J)%bUIxG))}fb zPvCEb#JE|0*r2OrOR_yWyr&T37>g#vJ8tz*877q%(6KMZy6;Ec!T!@jipWpof{8w^ z@M~&0lfnIx%s@*5d5skAi-^x--@!}*ZOaR~>I1GcAsw|onquJ98n(NHGj>BQ0UWNFAgX z`pme`+8pCJjOG2r1U{#X6!t~m!3~ZEoY4F63R!{+7;j&VinX8D0KPI{Cr zoWKjKLfKM7#%B3JQW#{-Bk|G{xM%ZSp{=r~%+hA7ed!)!(W!e(_rm(Xbm&}Od9U~; zQix@KXeQDaW9L1RIK$DR`iSYgmpJ4O{edf;xOIIfYYZi zEN^d>ADU-zkcrr<3Sm*`E`@}0Y4`hCdF~ORaqz$7O<4WrddB@1Ev-tnbhh#s=5_+R ze~S4vBOEE7t@2Mn*?pYS9r_e?Jz%t6T(^9OEi1I#g*uIQ;P2pLCAAc5C8IGuo$}IC~7O+FC87 zNyQ#V0hJ>?ZyO!p=488_w;BAQV%V6%y$6@wswuI9qGzOOHg4K=m5Dh}Jg2yp*-S_F zN4=(6W*ZOR?Y&#&Hx2MdDp>}v5^R-Q)sPDz2SRTlG!k!FJdLoucR1F@p}xc{&B2^` z%Bum_lh8YO13dPGHB#wXGAHGW60usuZcoOZ#N456YJ#llk8pIIjY69fYtc}| zSJSz+LgA<#pBt8_&=AnJ4Yt$WYM5)7Gr?o>7;YwoJ8ZfT<1K>j!sH&J>JuWOw1g?= z&9t9-f*LdEP^K$nawoJGxIaA5DGtJ-aMil8UPe}vh@M@4H;ELm?J_9yNEyC3StEOx zqh&<;qBpAswAXAVQcMV_8Au0zz)%_CEtDc-q~`|Gs(;c5i~E68yl91+Ub6Kfd;es? z4F84!s;M{*8<|AgH>1r`4NHP(KV7qKoRgbp^MVRfS}I=+_a59r)zti?k&$dNg+`(J zzjC9-+x@gWc4qayU}9exT=!$J!g^h_nr4UFh?6{}v#Wk#JbRqNKwt_#6D?Qe`=na!xP=i$|~&X@X` zGG<3tkgL|3=zN_oQ++Yr3-O{B=G%|_4DPAn-n!pd0&57I?)s3ndY*iA%pBK9!K7M7 zw zj-_|!s7>&T@Lz<#KZpy#FVH3Hv0d@{y?NI_3pM5A8b2L%~Y;5 zBd7~ArKTWTstaW~78|ocqZZ=jk)qNpNP9WqGHwO2=H76+BfVz6Y%H@bxgfG7k#MRb z#W)}L9?l|kK8$m=nufj+b&f3Kr()U@MBj<|^lvx`t{+a1xO?ETTPs(dUX|y{#MliB z6+X{BeL4%-%Drn4N`djV`>ZqR>5nj%S&lQq$CD z@mJzkQNz^Nr>1i>tj@OhJ2dv6G(3g+{_c0T9!%EF3&TSUYR^XPwJ5~5Il+s_JC z@0Y7uR@ARGyZ9M&g}|aU;PzWr(p$BJJc_pv47Hfy7G|8?nc>jh&u(V6eCQ%uhTsh~ zM}6vw^s>q5^B?x7IG8QF5r4kkQqOLkjMYKgmOlV1D$J30n(!v{BBFoncA`&nB~Fpl zwHz$1H!rJQn>ocU7maTJAs z(@y$PEOEBLIsolXoXAejXwijm78?sE)JcTn!eb_A!*tgznh*=M9 z!{HotSIxn^U2|2>k5_xX7(G8s?fFsG(IFD4)KWc}bD-S|z1C~c*7aka{6Y(hN@iPL zeTk5jS60~#ri`M5W6UhrLy>B>gw z(H6Nc=2~2z@6w{3`Ceu-rO{w7jG7+8h*x{Lom93?Bzrv3$5d|?b1kaRa?v~I`5U3h zh1GQTs(f(u7eajG0rsqzIoZ%UPcF0`8mz6*nMh@4eAf^0m=c5g?}A%G0jn1zCtIf>vj{ttmjjFZ4w(#F!iSh=KnC(rVZ$tisFI zD?i8HcLwv0!p41R+|p#BV=2b{+5JjtO+yjwfwy`YQ>C1n&OJb+b;+}K*;{;df;J4c zRb%hG>q(+_!`=TD<5;*XE*cRBUCllXEF*H*gXc6wbQO}KgXeTvbl;@ua_bPG{Tv4w z6_NhZ$4)E}is!x|R6sNIBRS`$HM3Jg=4F35r>WFe9y&+LUvyGgEnYj?e@r&EH+QA8 zPv#C4Oh?GL-?{eN^22Lpr+2a1KXwt^o8O-|X<2SyhjVD|%K9BHpDp*uBE0Uf%$eg{ z;(W!q!}VPL4kz6;x|YiR-#QQH=es@?cerQCl}n|TIWiw+yPtHEw+_Q7tuJ#ZYTwI%YK?xx`L)c z>(WQDVe&WH&ULip7UbcrtQFe=8&!>lp^`{9VPB{HLhpKvo;wMz3KIPf z@sjKPy#2OO;X28f@{-H4;;5Y7oLy;IW^(Pd{mA+IE>^d4=^?yJ!9a&Jtgi_tqOm?$ z^(4Oc)wj6bww>uXF0QEeK|1!V%e*YDGCyyNvjw-_r7G4^8fedDvFhW{qDfCs99U2l z2hr<0Fb~zSG;t5Ccfr!ZwcYisEp~X3i*wqX2IsOz zow-ZFsXx#c-OxtyD{FNWq|JR|4=)&kmip9M=2g7iq`nDuM&Wm6ducddp)>`3<4=ip zKp#xY&ApTIH0g6^Ew$9IbL~LeATbTo(ZdZo*l1AQB4a9D$_Sv@GmZ zT>15zT{~UdY+Iqnp?e#RH?-;@^D)-vxr&^(Ihi8U(!2+h=w^ixjP-QQ^hGDAIMZ|f zGbPuX&|IDg=z-VCzHvCqX>T%|j zma;{hoLfqY?B}>byKF4r4t<09*H}N&&i!oN(o_oKZw zcYp>7wTr&6ozRq>c3JGFox{AQ`caTFVMk?X{}j8v5x?n9Y1Guzt}KEivUa(vyb*tO zATe*zl5a?-5q~cr6TE*qUYF=_74~#4P2p40Q|-r{N92BEN{vlwxc?x0sV*wZOm!NH zj{md~XE*I1DqA32pN1Gn=is;ubu4ye_mJf|!N}K!>8O2!Yi6C)u;%pA6vv5`rh7J^ zekJ<1xB-3Gvee+$IAS7QMZMU&Rd~QDhH;L=QQMW5@pj)&p)Egyom_xb*FV+QU5P~Y zG19qxfNUp43zz3DWhviKl?V^|7A{Z3EL?#b*sa|2%>8^hALGViHqPgFa?4@Cy7N6J z?fLd|Jm#q0)_yKE)4sgSKWhb@vwSAPMF*Ue*1*eaf#5lQ$`-tebikF`mOBbPV1x#t zex&n&iI)2EZIWgvJ~1VVW--ukfQD5)%))4%9O<4m#~BJbMzJeJMt58Ml)2Qdy=OtAJNIg~wOi zh`SCSLFb(7eH{Hr-w|(FacTu5j*DBCZLzUO=(&6>IorR%-&K&+S6)X5+ps4aQ|O*b z#{NM#Dx3Gb4a>rm&@5F8--5R~pHkuBqy;}ZX^eRSa{8gi5s?Qts(y~+N`|pkt{~x229QWz}#khZG zoG9I#nH;N07^@EygE~@loJP6nSmErjwJhV0oUAtr{50H&ft-=9$_vTS8X{~Kw$sr{ zrTs|8?G=8%qOPq*9jBKtPER1VjM`w(aneoCd$mie`;E;U7$I1%$?woataulUx8Sc% zSYAku5k}~`#0Y&`>#r3$-oosT!?c!Lxb7QgDyH_57y^ZHrBICcMPro^aNwdrGFp76cZ`U1p8V)Xoq)k+PUcn zGvIY#Hvl>3;C!A1+T!*&3r$*Lm!kT-!89W60e#67Eq4~V>7FqtH?g~poP&k{T-HwC z{KmoE&8Y76SEprPN&6NiC^lI?gGj$u&)3(J>x9JE>2>yv7ptI(hg(As^{o2Z|!dh(2m8M~`~ll2Ds>~$t5F}>tm z?mX?3-oe|v$viqW&s}OB&3E#=w~x~B9Ap4#A?+N~eRjMmYP#!hIBE0yP4}795S2xc zCBzCEa~5kN<3R1W|9bD^XhS+}gAOZ3Pg}9uODRa&cUSjj*7sVIqV}L)?a@=A4f0)1 z$}xPT(6KkscSvF7CC$pM!tXk2Bh?@`lxZ-N?MTPpj`8w^+p5U8SDfIBG{*6X5!|h= z&hOTJG)7~t9?1`5bo5@foq?s!X2{j-F4j$TTblo`xNDDZy2$qD_eh$wp-ErThF2b? zlm;Yid6bu?Nm@z^6sT2fi>7JSUrG@!E-Nc4;k7I1A`kJh;JUolMbOn2t5rcNh_34^ zMY;mIyA|BcrM;iKDWpqi3%TFI%$#|hncvKrne&@DKcoEa3VWr^ zp<1h0nAAXKFLPm!#;EH8b-Sd)Z$1Nwa#FyhnBXJyQ7%x9HxA6cJ=$}Xa?e$oQ7h|G zoZ|+incw(c3q4{z|KLvSsxI9B%+()R|MDPiq6Z9u_tM|IG?oH?@~TZpVPK<;jHfT^ z&1^O?L`TUv|1;PrLyj#tI(RcAZkQb@(BL(k!OhWCGklseoaHtjZ&~Fd%VF#)ALaMn z&&#sxMp_qIHPvB~oo;ZxjNLgg+mMr5=d&p>Ieu)`IW}#BzjN z{K*5)&Vtjok+p_ZuEVvzE^J5{2)*%Sjn@8 zJqGKOgr}^WdahBMHU5m&l7sz{5SWymtup0gN6n;3Cm(zjeeIX_ zh<);UdAz<)POzlIln_^$Xugoz|XWx!4*f zkGh*_314|GO368_*>-sS}_0!an!DIzhHEE9dO1GkZ+9{R-Jx zwbApnbl!Ddx&S!u8O+xI^UqhG_h9`W^e&5andS1pd5U-AhrdU_3#B?e0Sv{>42<7Dxc$A<5M!!gp-2&zlMpybUg4Dnk zhj%NwrsI$t#Lh}96g$_FP2ya9r-Q^?t7WyTyH!!lBrj#qJtL0S9i0YQ{$`8|>_TmE znd}6N{fucAH*%D;-ZsuYt<^B6w1d)=os`O1$2puKtAXii9OZJj7AX}zeaQk3(`dG! zy3&&pT(LyqOOY|WjHzf)cB;uOt(Ek4zO`i~R*C4R7DtT>c<#=Sno6XZE3r$5jvc)# z-n7wX$K4^l%f{A)Ynk-rs(*k!)G@Cqb=LZoScml}E}12B2W~*SYGiwjRO3pDmht*^ zZUUK&k~1{HDt4Y!6e}0GRINgn7rk1{t?;m2Wd-O>VD#cWF2kT*fnj&0S$V8Ib+3t% zW2I5DOJ{9~c$V>8EY20KS;;|jSB;CyQI?d2a%|%v3qCF^kiPv^g5?2ygLqT$mE4>0 zPQID7aRhfNifd`!J%IaN6!&`bs{^=qqPUluTLy5iMR9wZeFM0IQQVH^_5s}PC~i}8 zU;y`Q6t}LKHulr3yY#6|;h~n;VwhrJPjN+=AZNM#^!EUJ@zkDJI zC)s0q(dp5bS>!+gdwdlS=)~(>I&*C zHj8chF-Hf^Ap!)q!!1ZdZPOg0Yo6|6TEjZ#$4mh zzZA>mUrNQwAvTGvKiPRFoan=N!aRuYj}2?Jl;AXNYgVzjkbRY*_uA-UgPXZ|aN*#! zj1rf7rw3eY{?6)M9&=rVbit#6?9g2|U)qM#5_{_G8!v#zF1@d*yM2iPWNPaP57p@<8flW#G2OB__j1iu z2e}^J(>`Z^@1m-ljrpA(Q?xd0%**Y8e1tk(Q2E>uG(dGIqE8N>)MiY9)>wr9bfz<em%H0xH2$y9AOkhHt;xE)HsY zZ1$o0G*NllQvYa?Sq=|h;d+p|Y*FoAg{tkxMGompiLG%SDnZI+6}8J|FPmc)h11~a z&@@@_4!-0d{)S?@yfb3Dn`ek!y!wj}?N)Sd5cD`xg7ZAyk-jO?nNYGd$7TNC)< znbcs!u5-tX$WvfclCe@+;L+f;eo1sK^@%^Pf*@YZWrW73-DP$JrZ&g8xwp?J{-emtXj(P~BKI-wFzAgPNF?#ghdrI(oxktWxS}Sy)%RPtDMi?DmdQ?YQ8rJtVLq@@4 zjpY?Sua(y@z%d!X(xyL37VPW=L9kR{55~SuK@X96TygT^I-HsII>qi5r`X9Q;|pLW zw<~L-FSHKxF`LzMoGqbs2DVzua2@mdQ!T2(QprGcHkgEv9&W zC>{BHpHtX@$Lt6?Se%>7@(zpyR#t@8{y6>l=mt2>jW`>K>+mX*d>y~^`x}c^^tVK73XnOmv{vClOBf~ zDVBUr1&*+t?{hzH2B)-Cp#xHn{Vm?$6-9 zBkKMT?xj)p3Amq%x{pTJe~-M$<}WY$CtCvsO4ZLlQMd^@p3qOR%eDnR@Y)L+d)8bj zJX_lEL6WR5*=+X2Ywaw}f;*Z!$J5q{9^sMiDr#E!fq*3*zT~POGdh8v7V`o9; z+0ImTSJ*0^+F8J#eX)xti*sLRtgyfFaBt|6sy8v0@744>aS z02=g1{jAoRJ({cEsyWZfJkfY41WAQWvJjpow)&lC$ zT)FM+-c*&`mRnJ$187T=b8lxXzoD@aX^_H%_?PoLm>euC5*PKy`ydvVGdWr7?Cw?U zIHk82loaL{@}DbPOAEwPZ+0pKsZ->*yiE;#dUq!m6VnraJsp(I!7gDGN=6+fJ?FO- ze&El?w@k7Nd;S_~BFK=zTOq(EL%+#nrr&eJenR(cBMz7-K3_K6512>;`;(!BX)bVvD} zR8d()3-7s?T-9!>slAWxe?THn-6E=A{2(n^`fs%Cp&!xmA3sbhe)0%CzRF9h*Q}*= z>wii=gCuX`lTXp+En8{ZGu!Fef8RmB*tv_I`{ncWtKEBO@4o%?>lc1Q2VOi#hhBP_ ze*4O+)X;dCUTb=t-e`W4-g^589ew8*wY+dv9=9O})Xz8va{+nA#{)R99SIn<9sy|{wH864`yp-vp?#ND;vZVq+gP!|q$;ZPS2 zb>UD4Zsntoai|A}dT^kh`}wA)In;qe9XQa-fj$oO-CKH3H7PZTgNK?%jmgQIZZF{R zRN@k{C*>EF+&MpUZ0_h=$7hY3V6jeg6waJAx9qM;=Zxan^X^zsMciEn@EqsTH&jaP z_?BHVSxBVOG>l4U0u3iU@e6K2j3F4%Q)mPjz%+`X>7=CjgbV4ELW4<7v6My%!s{1G zrJ*#4;z&mcI4Yh_8eBYyr`u^F&BDiOM&dhqHYm}VN0VqaVF;bV5WG#(}7K@dNR zF3?|yn|GeZ&|iU@3CN;sa#AK0kewWawg&FwDvmw^yd?V>j-z7v_rt2m^!qBJlU1|n zu#9QM?<;^4RZX%#61)GmZ~#{(yJpD0hv@!=$B{orMf6+zzE^eMLg?U^!y+ls_vOD@ z;QRlG8bKTAt9nt!9iW4_F&=cw-hjwO62$@aL)lS z!@{fZeC~$rmi_nALbxlKA9UPBF1iQqN}7{U1Dm62Vm47Z;10SIsTh|1WdUSbqy7a^ zn}zk)tv~Mf?f*T-_tX4ym>(+PW_tT`1F`>*$+BdAH{NK57&Cml!Dvb!pD}9WtrN#i z${U5Ti=hinm76>9)=7CILb47hBr7H1~~W{*xI;kt9k5%|1o^RELO(jS~?vL zhd+RG#d*3&9n?f%Ec6Mj#>U0PX*8Nag9gRN$7{7(oh~6EAu%y2DLFYM<(69p4^B-@ zOVjIzph<@fNAsio@c{4yGQdAaW3CvBxdLo72W%8G1sEyj2}~2)*V1=;c=$4mZ8=){%Ewj=%T*haY|NS?lRPocZ#Pe?I?>|6=EV1ul1odai{j z%zB(W^TQD)w6AOy&PUt8upgh149t!8mrZ}1i{+6x24FKy-;OgDVUHn?mvK+08g?_z zS04fR0AgYy4TC)qa3^2|;2VGvXFqMG*VTL_2^{V2!80RH;5bqn8P71;C`Pdws);$Z z$Pv$|hz6JtutqQt7o!lEr51T4yb=C7!q>5YM5F`SrpAa0+FFX}b~#QmE3n(TeSg<=hq)McBf%h=N*76lPF8`t>sM z;CDH;=tK-R8-MuF4rZZcz(ennE3B^G!>QeoEDgw#SJw=9w(u>WhTp@j=hfUEQm9dw z>IO{+v#PUGR*zh@okvQgI!|^pN|g#tY#x8Z+rl#PA|oM<%X))SxQsUl^y*eqi$a6E zx%DCfcJm0>%_<@X$PKYx@!h778{uy<83EQbKhOrK8lA;C@ecu40T%(60T%$D15N-~ zoOPQ>l|Bl0f1<$r4Bv15LB9_1W%vi<_h(Owt33~rr?&n+U_5vi(2g_B2FPI0|7p;| zep;B18Q!J>M1670KNP^a4~d+H`K{RAo!2FB= zUEDP1?0m!h)t>t0%UEp*H^51?yq;7e7GsQ&jSgVEGGN&sVPp4zH%pG#*D~#ngp^vg z6~O#nPVMpJ-Hj7=@U;YpQWWLokuWS?m;nQhnm~DZxgrwwa6fLqMp%D38E2z%HhCl8 za5$wr1)S&m28{*^zMbx1AiRpv{54IcxDrws0h0jVOO3nx4EM4EdXWI%3kO0$VmN$n zeyL)pipN^7go}w6v|-(y%0bDADT8mhN0XE`Tt8xnVOZ+u^sJGV40GnKcaJk!i{^|S zKWakt#Q9@#r`$f(7M^z7Lif@SND>;kBwv!fX^4*iSgj zx;2CUkLjPM{#+S({)U?}lgBaq{c%`OSrv|fB|=5qjP8k^RM}3ONKPKl9(U C8f3x% literal 0 HcmV?d00001 diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c new file mode 100644 index 000000000000..37119c302727 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c @@ -0,0 +1,253 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +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 . +*/ + + +#include QMK_KEYBOARD_H +#include "jonavin.h" + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled + void dance_LSFT_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + register_code16(KC_LSFT); + } else { + register_code(KC_CAPS); + } + } + + void dance_LSFT_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1 || keymap_config.no_gui) { + unregister_code16(KC_LSFT); + } else { + unregister_code(KC_CAPS); + } + } + + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for shift, twice for Caps Lock + [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), + [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LSFT_finished, dance_LSFT_reset), + }; +#endif // TD_LSFT_CAPSLOCK_ENABLE + +// RGB NIGHT MODE +#ifdef RGB_MATRIX_ENABLE + static bool rgb_nightmode = false; + + // Turn on/off NUM LOCK if current state is different + void activate_rgb_nightmode (bool turn_on) { + if (rgb_nightmode != turn_on) { + rgb_nightmode = !rgb_nightmode; + } + } + + bool get_rgb_nightmode(void) { + return rgb_nightmode; + } +#endif // RGB_MATRIX_ENABLE + +// TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + static uint16_t timeout_timer = 0; + static uint16_t timeout_counter = 0; //in minute intervals + static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; + + uint16_t get_timeout_threshold(void) { + return timeout_threshold; + } + + void timeout_reset_timer(void) { + timeout_timer = timer_read(); + timeout_counter = 0; + }; + + void timeout_update_threshold(bool increase) { + if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; + if (!increase && timeout_threshold > 0) timeout_threshold--; + }; + + void timeout_tick_timer(void) { + if (timeout_threshold > 0) { + if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick + timeout_counter++; + timeout_timer = timer_read(); + } + #ifdef RGB_MATRIX_ENABLE + if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { + rgb_matrix_disable_noeeprom(); + } + #endif + } // timeout_threshold = 0 will disable timeout + } + + __attribute__((weak)) void matrix_scan_keymap(void) {} + + void matrix_scan_user(void) { + timeout_tick_timer(); + matrix_scan_keymap(); + } +#endif // IDLE_TIMEOUT_ENABLE + + +#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality + #ifndef DYNAMIC_KEYMAP_LAYER_COUNT + #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere + #endif + #ifndef ENCODER_DEFAULTACTIONS_INDEX + #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders + #endif + +uint8_t selected_layer = 0; + +__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (!encoder_update_keymap(index, clockwise)) { return false; } //This is to override the default kb function and go to userspace + if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match + if ( clockwise ) { + if (get_mods() & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers + if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) { + selected_layer ++; + layer_move(selected_layer); + } + } else if (get_mods() & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGDN); + register_mods(MOD_BIT(KC_RSFT)); + } else if (get_mods() & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word + tap_code16(LCTL(KC_RGHT)); + } else if (get_mods() & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track + tap_code(KC_MEDIA_NEXT_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(true); + #endif + break; + default: + tap_code(KC_VOLU); // Otherwise it just changes volume + break; + } + } + } else { + if (get_mods() & MOD_BIT(KC_LSFT) ) { + if (selected_layer > 0) { + selected_layer --; + layer_move(selected_layer); + } + } else if (get_mods() & MOD_BIT(KC_RSFT) ) { + unregister_mods(MOD_BIT(KC_RSFT)); + register_code(KC_PGUP); + register_mods(MOD_BIT(KC_RSFT)); + } else if (get_mods() & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word + tap_code16(LCTL(KC_LEFT)); + } else if (get_mods() & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track + tap_code(KC_MEDIA_PREV_TRACK); + } else { + switch (selected_layer) { + case _FN1: + #ifdef IDLE_TIMEOUT_ENABLE + timeout_update_threshold(false); + #endif + break; + default: + tap_code(KC_VOLD); + break; + } + } + } + + return true; + } +#endif // ENCODER_ENABLE + + +// PROCESS KEY CODES +__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (!process_record_keymap(keycode, record)) { return false; } + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } else unregister_code16(keycode); + break; + case KC_WINLCK: + if (record->event.pressed) { + keymap_config.no_gui = !keymap_config.no_gui; //toggle status + } else unregister_code16(keycode); + break; + +#ifdef IDLE_TIMEOUT_ENABLE + case RGB_TOI: + if(record->event.pressed) { + timeout_update_threshold(true); + } else unregister_code16(keycode); + break; + case RGB_TOD: + if(record->event.pressed) { + timeout_update_threshold(false); //decrease timeout + } else unregister_code16(keycode); + break; +#endif // IDLE_TIMEOUT_ENABLE +#ifdef RGB_MATRIX_ENABLE + case RGB_NITE: + if(record->event.pressed) { + rgb_nightmode = !rgb_nightmode; + } else unregister_code16(keycode); + break; +#endif // RGB_MATRIX_ENABLE + default: + if (record->event.pressed) { + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_enable(); + #endif + #ifdef IDLE_TIMEOUT_ENABLE + timeout_reset_timer(); //reset activity timer + #endif + } + break; + } + return true; +}; + + +// Turn on/off NUM LOCK if current state is different +void activate_numlock(bool turn_on) { + if (IS_HOST_LED_ON(USB_LED_NUM_LOCK) != turn_on) { + tap_code(KC_NUMLOCK); + } +} + + +// INITIAL STARTUP + +__attribute__ ((weak)) void keyboard_post_init_keymap(void) {} + +void keyboard_post_init_user(void) { + keyboard_post_init_keymap(); + #ifdef STARTUP_NUMLOCK_ON + activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results + #endif // STARTUP_NUMLOC_ON + #ifdef IDLE_TIMEOUT_ENABLE + timeout_timer = timer_read(); // set inital time for ide timeout + #endif +} \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h new file mode 100644 index 000000000000..e2b53eee128d --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h @@ -0,0 +1,85 @@ + +/* Copyright 2021 Jonavin Eng @Jonavin + +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 . +*/ + +#pragma once + +// DEFINE MACROS +#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) + + +// LAYERS +enum custom_user_layers { + _BASE, + _FN1, + _LOWER, + _RAISE, +}; + +// KEYCODES +enum custom_user_keycodes { + KC_00 = SAFE_RANGE, + ENCFUNC, + KC_WINLCK, //Toggles Win key on and off + RGB_TOI, // Timeout idle time up + RGB_TOD, // Timeout idle time down + RGB_NITE // Turns off all rgb but allow rgb indicators to work +}; + +#define KC_CAD LALT(LCTL(KC_DEL)) +#define KC_AF4 LALT(KC_F4) +#define KC_TASK LCTL(LSFT(KC_ESC)) + + +#ifdef TD_LSFT_CAPSLOCK_ENABLE + // Tap Dance Definitions + enum custom_tapdance { + TD_LSFT_CAPSLOCK, + TD_LSFT_CAPS_WIN + }; + + #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) + #define KC_LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN) +#else // regular Shift + #define KC_LSFTCAPS KC_LSFT +#endif // TD_LSFT_CAPSLOCK_ENABLE + + +#ifdef RGB_MATRIX_ENABLE +//RGB custom colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours + + void activate_rgb_nightmode (bool turn_on); + bool get_rgb_nightmode(void); +#endif + + +// IDLE TIMEOUTS +#ifdef IDLE_TIMEOUT_ENABLE + #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes + #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) + + //prototype functions + uint16_t get_timeout_threshold(void); + void timeout_reset_timer(void); + void timeout_update_threshold(bool increase); + void timeout_tick_timer(void); +#endif //IDLE_TIMEOUT_ENABLE + + +// OTHER FUNCTION PROTOTYPE +void activate_numlock(bool turn_on); \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c new file mode 100644 index 000000000000..020087532d60 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c @@ -0,0 +1,194 @@ +/* Copyright 2021 Glorious, LLC + Copyright 2021 Jonavin + +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 . +*/ + +#include QMK_KEYBOARD_H +#include "rgb_matrix_map.h" +#include "jonavin.h" + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute) +// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del +// Tab Q W E R T Y U I O P [ ] \ PgUp +// Caps A S D F G H J K L ; " Enter PgDn +// Sh_L Z X C V B N M , . ? Sh_R Up End +// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right + + + [_BASE] = LAYOUT( + KC_ESC, 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_INS, KC_MUTE, + KC_GRV, 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_DEL, + 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_PGUP, + TT(_LOWER), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, + KC_LSFTCAPSWIN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT( + _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, + _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME, + KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, + _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, + _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI + ), + + [_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______, + _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME, + _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END, + _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______, + _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT) + ), + + [_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; + + +#ifdef RGB_MATRIX_ENABLE + // Capslock, Scroll lock and Numlock indicator on Left side lights. + void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { + rgb_matrix_set_color(LED_L7, RGB_GOLD); + rgb_matrix_set_color(LED_L8, RGB_GOLD); + rgb_matrix_set_color(LED_R7, RGB_GOLD); + rgb_matrix_set_color(LED_R8, RGB_GOLD); + } + if (!IS_HOST_LED_ON(USB_LED_NUM_LOCK)) { // on if NUM lock is OFF + rgb_matrix_set_color(LED_L1, RGB_GOLD); + rgb_matrix_set_color(LED_L2, RGB_GOLD); + rgb_matrix_set_color(LED_R1, RGB_GOLD); + rgb_matrix_set_color(LED_R2, RGB_GOLD); + } + if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) { + rgb_matrix_set_color(LED_L3, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L4, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L5, RGB_GOLDENROD); + rgb_matrix_set_color(LED_L6, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R3, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R4, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R5, RGB_GOLDENROD); + rgb_matrix_set_color(LED_R6, RGB_GOLDENROD); + } + if (keymap_config.no_gui) { + rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled + } + switch(get_highest_layer(layer_state)){ // special handling per layer + case _FN1: // on Fn layer select what the encoder does when pressed + /*rgb_matrix_set_color(LED_R2, RGB_RED); + rgb_matrix_set_color(LED_R3, RGB_RED); + rgb_matrix_set_color(LED_R4, RGB_RED); + rgb_matrix_set_color(LED_FN, RGB_RED); //FN key*/ + for (uint8_t i=0; i= 140 minutes, just show these 3 lights + rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); + rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); + }*/ + break; + case _LOWER: + for (uint8_t i=0; i or encoder + - setting to zero disables timeout + - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes + - LED address location map as enum definition + - LED group lists for arrows, numpad, F row, num row, left and right side LEDs + - default startuo in single mode with default colour + - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED + - Layer indicator on right side LED + - Fn key light up red when Fn layer activate + - Win Key light up red when Win Lock mode enabled + - Layer 2 activation lights up Numpad area + +rules.mk OPTIONS - Active features from userspace +STARTUP_NUMLOCK_ON = yes + - turns on NUMLOCK by default + +ENCODER_DEFAULTACTIONS_ENABLE = yes + - Enabled default encoder funtions + +TD_LSFT_CAPSLOCK_ENABLE = yes + - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS + +IDLE_TIMEOUT_ENABLE = yes + - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically + +## All layers diagram +Default layer +![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png) + +Fn Layer +![image](https://user-images.githubusercontent.com/71780717/126086069-bc539ffc-3ab6-4ebb-9bef-5005f8add294.png) + +Layer 2 (Caps Lock Mod) +![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/rgb_matrix_map.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/rgb_matrix_map.h new file mode 100644 index 000000000000..4be00d3f03f0 --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/rgb_matrix_map.h @@ -0,0 +1,148 @@ +/* Copyright 2021 Jonavin Eng + * + * 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 . + */ + +#ifdef RGB_MATRIX_ENABLE + + // Custom RGB Colours + #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps + #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours + + // RGB LED locations + enum led_location_map { + LED_ESC, // 0, ESC, k13 + LED_GRV, // 1, ~, k16 + LEB_TAB, // 2, Tab, k11 + LED_CAPS, // 3, Caps, k21 + LED_LSFT, // 4, Sh_L, k00 + LED_LCTL, // 5, Ct_L, k06 + LED_F1, // 6, F1, k26 + LED_1, // 7, 1, k17 + LED_Q, // 8, Q, k10 + LED_A, // 9, A, k12 + LED_Z, // 10, Z, k14 + LED_LWIN, // 11, Win_L, k90 + LED_F2, // 12, F2, k36 + LED_2, // 13, 2, k27 + LED_W, // 14, W, k20 + LED_S, // 15, S, k22 + LED_X, // 16, X, k24 + LED_LALT, // 17, Alt_L, k93 + LED_F3, // 18, F3, k31 + LED_3, // 19, 3, k37 + LED_E, // 20, E, k30 + LED_D, // 21, D, k32 + LED_C, // 22, C, k34 + LED_F4, // 23, F4, k33 + LED_4, // 24, 4, k47 + LED_R, // 25, R, k40 + LED_F, // 26, F, k42 + LED_V, // 27, V, k44 + LED_F5, // 28, F5, k07 + LED_5, // 29, 5, k46 + LED_T, // 30, T, k41 + LED_G, // 31, G, k43 + LED_B, // 32, B, k45 + LED_SPC, // 33, SPACE, k94 + LED_F6, // 34, F6, k63 + LED_6, // 35, 6, k56 + LED_Y, // 36, Y, k51 + LED_H, // 37, H, k53 + LED_N, // 38, N, k55 + LED_F7, // 39, F7, k71 + LED_7, // 40, 7, k57 + LED_U, // 41, U, k50 + LED_J, // 42, J, k52 + LED_M, // 43, M, k54 + LED_F8, // 44, F8, k76 + LED_8, // 45, 8, k67 + LED_I, // 46, I, k60 + LED_K, // 47, K, k62 + LED_COMM, // 48, ,, k64 + LED_RALT, // 49, Alt_R, k95 + LED_F9, // 50, F9, ka6 + LED_9, // 51, 9, k77 + LED_O, // 52, O, k70 + LED_L, // 53, L, k72 + LED_DOT, // 54, ., k74 + LED_FN, // 55, FN, k92 + LED_F10, // 56, F10, ka7 + LED_0, // 57, 0, k87 + LED_P, // 58, P, k80 + LED_SCLN, // 59, ;, k82 + LED_SLSH, // 60, ?, k85 + LED_F11, // 61, F11, ka3 + LED_MINS, // 62, -, k86 + LED_LBRC, // 63, [, k81 + LED_QUOT, // 64, ", k83 + LED_RCTL, // 65, Ct_R, k04 + LED_F12, // 66, F12, ka5 + LED_L1, // 67, LED, l01 + LED_R1, // 68, LED, l11 + LED_INS, // 69, Prt, k97 -- remapped to INS + LED_L2, // 70, LED, l02 + LED_R2, // 71, LED, l12 + LED_HOME, // 72, Del, k65 + LED_L3, // 73, LED, l03 + LED_R3, // 74, LED, l13 + LED_PGUP, // 75, PgUp, k15 + LED_L4, // 76, LED, l04 + LED_R4, // 77, LED, l14 + LED_EQL, // 78, =, k66 + LED_RIGHT, // 79, Right, k05 + LED_L5, // 80, LED, l05 + LED_R5, // 81, LED, l15 + LED_END, // 82, End, k75 + LED_L6, // 83, LED, l06 + LED_R6, // 84, LED, l16 + LED_BSPC, // 85, BSpc, ka1 + LED_PGDN, // 86, PgDn, k25 + LED_L7, // 87, LED, l07 + LED_R7, // 88, LED, l17 + LED_RBRC, // 89, ], k61 + LED_RSFT, // 90, Sh_R, k91 + LED_L8, // 91, LED, l08 + LED_R8, // 92, LED, l18 + LED_BSLS, // 93, \, ka2 + LED_UP, // 94, Up, k35 + LED_LEFT, // 95, Left, k03 + LED_ENT, // 96, Enter, ka4 + LED_DOWN // 97, Down, k73 + }; + + const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D }; + + const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN }; + + const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS}; + + const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME}; + + const uint8_t LED_LIST_NAV[] = { LED_HOME, LED_PGUP, LED_PGDN, LED_END}; + + const uint8_t LED_LIST_MODS[] = { LEB_TAB, LED_CAPS, LED_LSFT, LED_LCTL, LED_LWIN, LED_LALT, LED_RALT, LED_FN, LED_RCTL}; + + const uint8_t LED_LIST_NUMPAD[] = { + LED_7, LED_8, LED_9, + LED_U, LED_I, LED_O, + LED_J, LED_K, LED_L, + LED_M, LED_COMM, LED_DOT + }; + + const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8}; + + const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8}; + +#endif diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/rules.mk b/keyboards/gmmk/pro/ansi/keymaps/solartempest/rules.mk new file mode 100644 index 000000000000..a6b64334558d --- /dev/null +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/rules.mk @@ -0,0 +1,32 @@ +VIA_ENABLE = yes +MOUSEKEY_ENABLE = yes +BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite + +TD_LSFT_CAPSLOCK_ENABLE = yes +IDLE_TIMEOUT_ENABLE = yes +STARTUP_NUMLOCK_ON = yes +ENCODER_DEFAULTACTIONS_ENABLE = yes + +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +TAP_DANCE_ENABLE = yes + +LTO_ENABLE = no # MCU has 256kB space - 4kB for the EEPROM. + + +SRC += jonavin.c +ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes) + OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE +endif +ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes) + OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE +endif +ifeq ($(strip $(IDLE_TIMEOUT_ENABLE)), yes) + OPT_DEFS += -DIDLE_TIMEOUT_ENABLE +endif +ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes) + OPT_DEFS += -DSTARTUP_NUMLOCK_ON +endif +ifeq ($(strip $(COLEMAK_LAYER_ENABLE)), yes) + OPT_DEFS += -DCOLEMAK_LAYER_ENABLE +endif \ No newline at end of file From 97f5ecfcaed5ca7e6e58f7d40fadd2913672eee1 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 8 Sep 2021 23:35:35 -0400 Subject: [PATCH 09/94] Add firmware file. --- .../sofle/solartempest_sofle_via.hex | 1792 +++++++++++++++++ 1 file changed, 1792 insertions(+) create mode 100644 keyboards/solartempest/sofle/solartempest_sofle_via.hex diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex new file mode 100644 index 000000000000..307e1764f1c8 --- /dev/null +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -0,0 +1,1792 @@ +:100000000C94DE060C9425070C9425070C94FF2F06 +:100010000C9425070C9425070C9425070C942507B0 +:100020000C9425070C9425070C94EA190C94A61936 +:100030000C9452260C9425070C9425070C94250744 +:100040000C9425070C9425070C9425070C94250780 +:100050000C9425070C94C11A0C9425070C942507C1 +:100060000C9425070C9425070C9425070C94250760 +:100070000C9425070C9425070C9425070C94250750 +:100080000C9425070C9425070C9425070C94250740 +:100090000C9425070C9425070C9425070C94250730 +:1000A0000C9425070C9425070C94250737032B6423 +:1000B000AAFF000000001C032B64AAFF0000000040 +:1000C00004032B64AAFF000000000000D7FF78FFA4 +:1000D00000000000000080FF64FF0000000000003E +:1000E000FCFF7DFF0000000000005FFF5AFF0000E2 +:1000F000000005010980A101850319012AB7001537 +:100100000126B700950175108100C0050C0901A1F9 +:1001100001850419012AA002150126A00295017586 +:10012000108100C00660FF0961A101096215002667 +:10013000FF009520750881020963150026FF0095D0 +:100140002075089102C005010906A101050719E003 +:1001500029E71500250195087501810295017508AB +:1001600081010507190029FF150026FF0095067576 +:100170000881000508190129059505750191029569 +:100180000175039101C000000000000000000000A4 +:10019000000000000000000000000000000000005F +:1001A000000000000000000000007E0F00D4FFFFF0 +:1001B000FFC70000007800000000000000002A2BAC +:1001C0002800000000000000000000000000000007 +:1001D0000029000000002C1E342021222434262770 +:1001E000252E362D3738271E1F2021222324252691 +:1001F0003333362E37381F0405060708090A0B0C5F +:100200000D0E0F101112131415161718191A1B1CA6 +:100210001D2F3130232D350405060708090A0B0C64 +:100220000D0E0F101112131415161718191A1B1C86 +:100230001D2F3130354C00DA02815AD9F1DB20A470 +:10024000A62EAF00A0C000A1C800AED580A81FD3C5 +:1002500000408D142000E800DE00D400CA00C00079 +:10026000B600AC000000000000000000000000002C +:1002700000000000000080C0E0F0F0F898F8F8F806 +:10028000F0702000000000000060C080000000004E +:10029000C0F0F0F0E0C0877FFFFFF1C3030303016C +:1002A0000100000000000000000103071F3E78F776 +:1002B000FF7F3D03070F1E3D7FFFFFFFFC7800001F +:1002C000000000000000000000000000000000002E +:1002D000000000000000000080E0F0F0F898F8F85E +:1002E000F8F070200000008000000000C0F8FC3E24 +:1002F000DEFEFCF80000E0FEFF7F070103030301C0 +:1003000001000000000000071E3C78FFFF7F010095 +:10031000071F3F7C78FFFF7F070000000000000000 +:1003200000000000000000000000000000000000CD +:1003300000000000000000000000000000008080BD +:100340000000000000000000C000000000000000ED +:100350000000000000000000F8FCFEFE1F3F3939DD +:100360003F3F1E1E0C000000010F3E7870F8FCFE9F +:100370007E3E3C3C787878F0F1FF7F7F3E000000C5 +:10038000000000000000000000000000000000006D +:1003900000000000000000008080C0C06060C0C09D +:1003A000C0800000000000002060C080000000004D +:1003B0000000000000003E7FFFFFE7C70E0E0F0F9A +:1003C0000707030000000000000001071F3E78F04F +:1003D000FC7E1E1F0F0E1E1C3D7FFFFFFFFC7800E2 +:1003E000000000000000000000000000000000000D +:1003F000E0F0F0F8F8CCCCF8F8F0F0600000000085 +:1004000000000000000000000000000000000000EC +:100410000F3F7FFCF9F1E1C1810000000000000006 +:1004200000000000000000000000000C387060E0D8 +:10043000E0F0F0F8F9FFFFFFFFFF7E1C0000000076 +:1004400000000000000000000000000000000000AC +:10045000E0F0F0F8F8CCCCF8F8F0F0600000000024 +:10046000000000000000000000000000000000008C +:100470000F3F7FFCF9F1E1C1810000010102060C90 +:10048000040000000000000000000000387C60E074 +:10049000E0F0F0F8F9FFFFFFFFFF7E1C0000000016 +:1004A000000000000000000000000000000000004C +:1004B000000000000000000000000000000000003C +:1004C000000000000000000000CCF87000000000F8 +:1004D0000000C0F0F8F87CFCEEE6FCFC7878B00098 +:1004E00000000000000000003F7FF1F8F87C7CF87D +:1004F000F0F0F1E7EFEFFEFEFEFCFCF8F06000012B +:1005000003060200000000000000000000000000E0 +:1005100000000000000000000000000000000000DB +:10052000000000000000000080E0F81C0000000057 +:100530000000C0F0F8F87CFCEEE6FCFC78783000B7 +:1005400000000000000000003F7FF0F8F87C7CF81D +:10055000F0F0F1E7EFEFFEFEFEFCFCF8F0600000CB +:10056000000000000000000000000080C0C0E0E0CB +:100570003070E0E0C0C0800000000000000000001B +:10058000000000000000000000001F7FFFFFE7E701 +:10059000EFEFCFCB838301000000000000000000DC +:1005A0000000000000000000061C3878F1E3E3E7DB +:1005B000F7F7FFFFFFFF7F3E000000000000000094 +:1005C000000000000000000000000000000000002B +:1005D000000000000000000080C0E0E060E0C0C05B +:1005E00080800000000000000000000000000020EB +:1005F000F8FEFFFFFF9F0F0E1F1F3F3F7EE68303A6 +:100600000F43439088080000031E3C78F0E0E0F0C0 +:10061000F0FBFFFFFF7F7F380000000000000000BC +:10062000000000000000000004F6B8F8D8F0E0C0B8 +:1006300000000080C0E0E0F0F0F0F0E0E0C08000FA +:100640000000000000000080C0E1F3FB7F1F0F00EE +:1006500000F0FFFF3F030100000080C1F3FF7F1F98 +:10066000000080C0E0301E3F3F7FF9F0F070783C22 +:100670003F1F0F03000000001C3F7F7FFBF1F0785D +:100680003C1E0F03000000010101010101010101F5 +:100690000202020202020202020303030303030333 +:1006A0000304040404040404050505050506060600 +:1006B0000606070707070708080808090909090ABD +:1006C0000A0A0B0B0B0C0C0C0D0D0D0E0E0E0F0F62 +:1006D0000F101011111112121313141415151616F0 +:1006E0001717181819191A1A1B1B1C1D1D1E1E1F5F +:1006F0002020212222232424252626272829292AAE +:100700002B2C2D2D2E2F30313232333435363738D5 +:10071000393A3B3C3D3E3F404142434445464748D1 +:10072000494A4C4D4E4F50515354555658595A5BA7 +:100730005D5E5F616264656668696B6C6D6F707247 +:10074000737577787A7B7D7E8082838587888A8CB3 +:100750008E8F91939596989A9C9EA0A2A3A5A7A9E7 +:10076000ABADAFB1B3B5B7BABCBEC0C2C4C6C9CBDE +:10077000CDCFD1D4D6D8DBDDDFE2E4E7E9EBEEF094 +:10078000F3F5F8FAFDFFFFAA7F55401C1004010D98 +:10079000190A24232221201F1E1D1B1A18171615A3 +:1007A000141312110F0E0C0B0908070605030200A3 +:1007B0002D3945483C303F25262728292A2B2C2E29 +:1007C0002F31323334353637383A3B3D3E404142A3 +:1007D000434446474907087F0807003E5B4F5B3E9E +:1007E000003E6B4F6B3E001C3E7C3E1C00183C7E66 +:1007F0003C18001C577D571C001C5E7F5E1C0000CF +:10080000183C180000FFE7C3E7FF00001824180099 +:1008100000FFE7DBE7FF0030483A060E00262979A3 +:10082000292600407F05050700407F05253F005A27 +:100830003CE73C5A007F3E1C1C0800081C1C3E7F05 +:100840000014227F2214005F5F005F5F0006097FB3 +:10085000017F00006689956A0060606060600094B6 +:10086000A2FFA2940008047E04080010207E20103D +:100870000008082A1C0800081C2A0808001E10107E +:100880001010000C1E0C1E0C0030383E38300006D4 +:100890000E3E0E060000000000000000005F000099 +:1008A00000000700070000147F147F1400242A7F33 +:1008B0002A120023130864620036495620500000B3 +:1008C0000807030000001C224100000041221C0018 +:1008D000002A1C7F1C2A0008083E080800008070BF +:1008E00030000008080808080000006060000020D0 +:1008F00010080402003E5149453E0000427F40007E +:10090000007249494946002141494D3300181412EB +:100910007F10002745454539003C4A49493100418F +:100920002111090700364949493600464949291E1F +:100930000000001400000000403400000000081413 +:10094000224100141414141400004122140800025F +:1009500001590906003E415D594E007C1211127C7E +:10096000007F49494936003E41414122007F4141D3 +:10097000413E007F49494941007F09090901003E84 +:1009800041415173007F0808087F0000417F41000A +:10099000002040413F01007F08142241007F404079 +:1009A0004040007F021C027F007F0408107F003E51 +:1009B0004141413E007F09090906003E4151215E47 +:1009C000007F091929460026494949320003017F61 +:1009D0000103003F4040403F001F2040201F003FD8 +:1009E0004038403F00631408146300030478040394 +:1009F000006159494D4300007F4141410002040814 +:100A0000102000004141417F000402010204004027 +:100A10004040404000000307080000205454784044 +:100A2000007F284444380038444444280038444473 +:100A3000287F0038545454180000087E090200181A +:100A4000A4A49C78007F080404780000447D400042 +:100A5000002040403D00007F102844000000417FFE +:100A60004000007C04780478007C08040478003896 +:100A70004444443800FC182424180018242418FC8A +:100A8000007C080404080048545454240004043F23 +:100A90004424003C4040207C001C2040201C003CA2 +:100AA0004030403C004428102844004C9090907CFA +:100AB000004464544C4400000836410000000077B4 +:100AC0000000000041360800000201020402003C60 +:100AD0002623263C00000000000000404040F0F8C3 +:100AE000F8FF38FFF8F83FF8F8FF38FFF8F8F04063 +:100AF000404000000000000080C0C0C0800000C076 +:100B0000C08000000080C0C000C0C0000080C0C025 +:100B10000000000000C0C0C0C0C000C0C000000095 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B500000000000C0F0F8FC3E1E06010000007F0F +:100B60004141417F007F4141417F000080C0E07EE4 +:100B70005B4F5BFEC00000C000DCD7DEDEDED7DCF2 +:100B800000C00000000000000000000000000000A5 +:100B90000000000000000000000000494949FFFF7C +:100BA000FFFFE0DFBFBF00BFBFDFE0FFFFFFFF4988 +:100BB000494900000000001F3F6060E0BF1F007F48 +:100BC0007F071E381E077F7F007F7F0E1F3B7160EF +:100BD00000000000007F7F0C0C0C007E7E007F7EFA +:100BE0000303007F7E03037E7E03037F7E000F3EB0 +:100BF000703C063C703E0F00327B49493F7E007FCF +:100C00007E0303001E3F69696F260000000000009C +:100C100000000000030F1F3F3C7870600000007F61 +:100C20004141417F007F4141417F00307B7F7830EF +:100C3000202030787F3B0003000F7F0F0F0F7F0FC6 +:100C400000030000000000000000000000000000A1 +:100C50000000000000000000000000010101070F7B +:100C60000F7F0F7F0F0F7E0F0F7F0F7F0F0F07017B +:100C70000101000000000000000000000101000070 +:100C80000000000000000000000000000000000064 +:100C90000000000000000000000000000000000054 +:100CA0000000000000000000000000000000000044 +:100CB0000000000000000000000000000000000034 +:100CC0000000000000000000000000000000000024 +:100CD0000000000000000000000000000000000014 +:100CE0000000000000000000000000000000000004 +:100CF00000000000000000000000000000000000F4 +:100D000000000000000000000000000000000000E3 +:100D1000000000000000AF00AE09025B000301000C +:100D2000A0FA0904000001030101000921110100DA +:100D3000012240000705810308000A09040100029E +:100D40000300000009211101000122220007058291 +:100D5000032000010705030320000109040200012C +:100D6000030000000921110100012232000705845F +:100D70000320000A120100020000000832FC871262 +:100D80000200010200011E0353006F006C006100AD +:100D900072006900750073005F0053006F00660009 +:100DA0006C006500000010034B00650079006800CE +:100DB00069007600650000000403090411241FBEC9 +:100DC000CFEFDAE0DEBFCDBF04B603FE27C08091CF +:100DD000670690916806A0916906B0916A0687300F +:100DE000904BA740B04BD1F4109267061092680662 +:100DF0001092690610926A0614BE84B7877F84BF7A +:100E00000FB6F894A8958091600088618093600087 +:100E1000109260000FBEE0E0F8E3099512E0A0E058 +:100E2000B1E0E6EAFEE602C005900D92A833B107F4 +:100E3000D9F726E0A8E3B2E001C01D92A736B207B9 +:100E4000E1F70E9479260C941A370C940000CF9396 +:100E5000DF934091650650916606455654409A01CD +:100E6000205A3F4F21303240C0F020E032E0241BB6 +:100E7000350B6091630470916404FC01CA01240F76 +:100E8000351FC1E0D0E08217930750F070936404DF +:100E900060936304DF91CF91089520E630E0E9CFBD +:100EA0004491DC01AB59BB4F5C91451781F04C93E9 +:100EB000AC01A5E056954795AA95E1F7DE0102C081 +:100EC000AA0FBB1F4A95E2F7AD016A2B752B01965D +:100ED0003196D9CFE8EDF0E080818E7F808310924B +:100EE000E2001092DA001092E100A0EEB0E08C91E6 +:100EF00081608C9380818F77808319BCA7EDB0E0EF +:100F00008C918E7F8C9380818F7E8083109245049C +:100F100008952091E4003091E50095E6A901209123 +:100F2000EC00822F817020FF06C08091E80080FFD6 +:100F300006C080E008952091E80022FD1AC080914B +:100F40005304882389F0853089F08091EB0085FD7A +:100F50000FC02091E4003091E50042175307F9F2E9 +:100F60009150E1F684E0089582E0089583E00895C9 +:100F700081E00895EF92FF920F931F93CF937C012E +:100F80008B010E948907C82F811117C08091E8004A +:100F900085FD0BC08091E8008E778093E8000E9469 +:100FA0008907882399F3C82F08C0F70181917F0131 +:100FB0008093F1000150110949F78C2FCF911F91B7 +:100FC0000F91FF90EF9008958091550487FF13C013 +:100FD0008091E80082FF06C08091E8008B778093C3 +:100FE000E80004C0809153048111F2CF08958091EC +:100FF00053048823D9F38091E80080FFF8CF8091D3 +:10100000E8008E77ECCF982F9093E900242F762F6D +:1010100050E0891731F07091EC002091ED00509173 +:10102000F00021FD07C09F5F973071F78093E900C2 +:1010300081E008953091EB003E7F3093EB003091DA +:10104000ED003D7F3093ED003091EB003160309347 +:10105000EB007093EC002093ED005093F000209192 +:10106000EE0027FDE0CF80E00895CF92DF92EF926F +:10107000FF920F931F93CF93DF93C8EDD0E0888149 +:101080008F7E8883E7EDF0E080818160808384E05B +:1010900082BF81E08093450488818E7F888302EE41 +:1010A00010E0F80110821092DA0081EEC82ED12CE7 +:1010B000F601108288818F77888388818068888391 +:1010C00088818F7D888319BC109253041092540438 +:1010D000109252041092510490EEE92EF12CF70177 +:1010E00080818B7F808388818160888342E060E09B +:1010F00080E00E940308F60180818E7F8083F801E2 +:10110000808181608083808188608083F701808115 +:101110008E7F8083888180618883DF91CF911F914A +:101120000F91FF90EF90DF90CF900895FC01809198 +:101130005B0490915C0486179707A0F06115710518 +:1011400029F49091E8009E779093E80090E0611573 +:10115000710551F4911108C08091E80082FF34C0FC +:1011600080E00895BC01F2CF809153048823C1F13F +:101170008530C1F18091E80083FD30C08091E800A6 +:1011800082FDEACF8091E80080FFE1CF8091F300FB +:101190002091F200382F6115710519F028303105C2 +:1011A00058F091E02830310509F090E02091E800F6 +:1011B0002E772093E800CBCF81918093F10061508E +:1011C00071092F5F3F4FE7CF80915304882341F08F +:1011D000853041F08091E80083FFBECF81E0089523 +:1011E00082E0089583E00895089580914804089569 +:1011F0002FB7F89460913E0470913F0480914004B1 +:10120000909141042FBF089520913B0430913C04FC +:101210002817390771F090933C0480933B04E091C8 +:101220003904F0913A04309721F00084F185E02DE3 +:10123000099408952091370430913804281739070C +:1012400071F09093380480933704E0913904F09161 +:101250003A04309721F00680F781E02D0994089533 +:1012600020912A0436E0839FC0011124629F800DE3 +:10127000911D1124811522E0920714F090E080E086 +:101280008B599B4F90936606809365060895FC01E9 +:10129000680F791F8FEF91E32191822728E030E0DA +:1012A00087FF09C0880F892721503109C9F7E61740 +:1012B000F70791F70895880FF7CFFA01811101C060 +:1012C000FB01099480915E04982F9E7F61F48170E8 +:1012D000826080935E0480916104813A18F080EA14 +:1012E0008093610408958831B0F381708661F1CFF5 +:1012F000AF92BF92DF92EF92FF920F931F93CF9323 +:10130000DF93082F162FE901E42FF0E0EA57F94F99 +:10131000611110C0E4915E2F4E2F4983E8835A83F8 +:10132000DF91CF911F910F91FF90EF90DF90BF90D1 +:10133000AF900895E62EF12C4491D42EE42FF0E0E6 +:1013400026E0829FC00111242FEF30E0B9010E94F6 +:101350007931802F90E0880F991F55E5569FD00175 +:10136000579FB00D11248A1B9B0B982F990F890F43 +:101370005901AE18BF08AE9ED001AF9EB00DBE9E03 +:10138000B00D11245B2F189F80011124012F11270C +:101390005901A01AB10AAE9E8001AF9E100DBE9EEB +:1013A000100D11245901A81AB108AE9CC001AF9CC0 +:1013B000900DBE9C900D1124892F9927281B390B65 +:1013C0002E9FC0012F9F900D3E9F900D1124E92F5D +:1013D00062307105A1F050F46115710509F49DCFDB +:1013E0006130710581F0EB2F512F97CF643071057B +:1013F00069F080F06630710509F48FCFF4CFE42FE7 +:101400004B2F592F8ACFE42F412F87CFEB2F542F0B +:10141000492F83CF4B2F5D2DE12F7FCF80E00895A3 +:1014200078940895F894E82FE295EF70F0E031A1F8 +:10143000282F2F7081E090E001C0880F2A95EAF7ED +:10144000982F9095932391A392A1892B82A30C941A +:10145000100A9091E50292FF06C0282F28712830CB +:10146000F9F4877F846093FF06C0282F2871283104 +:10147000F1F4877E84612091E60220FF06C0382FB8 +:1014800038713830D9F4877F816021FF06C0282F5A +:1014900028712831D1F4877E816194FD877E08957B +:1014A000282F24712430F9F68B7F8860DCCF282F19 +:1014B0002471243101F78B7E8861DDCF382F3171A3 +:1014C000313019F78E7F8860E0CF282F21712131CC +:1014D00021F78E7E8861E1CFCF93DF93EC018238D4 +:1014E000910581F1B0F58133910509F491C020F5A2 +:1014F0008932910509F485C08A9709F490C0C11515 +:1015000021E5D20708F0AAC0C11530E5D30708F0DD +:10151000F2C0CF3BD10508F089C0C83AD10508F028 +:10152000DFC0C53AD10508F0D3C0C430D105F8F406 +:10153000C130D105E1F040C08533910509F45AC0AE +:10154000C997E9F68091E502837089F0C0EED0E09A +:101550000EC0833E910599F170F4803E910501F132 +:10156000823E910561F68091E50282FD21C0CE01A7 +:10157000DF91CF910895863E910561F1873E9105F7 +:1015800071F1843E910509F0BACF8091E60281FFA6 +:10159000EECF8091E502C7EED0E084FD0DC0E7CF2D +:1015A0008091E50280FDF7C09091E60290FFDFCFC9 +:1015B000C3EED0E084FFDBCFD0E0C0E0D8CF809195 +:1015C000E50282FDEBC09091E60290FDBFCF84FF63 +:1015D000CECFF2CF8091E50283FDDDCFC8CF8091E1 +:1015E000E50283FDDEC09091E60291FFF0CFC4EEEC +:1015F000D0E0BDCF8091E50285FFB9CFC9E2D0E050 +:10160000B6CF8091E50285FFB2CFC5E3D0E0AFCF82 +:101610008091E50286FFABCFCAE2D0E0A8CF8091EF +:10162000E50286FFA4CFC1E3D0E0A1CFC11540E21F +:10163000D40760F4C11581E0D80708F098CFCE0137 +:10164000815E9109079708F492CFB6CFC11590E457 +:10165000D90708F4B1CFDF70D06A89CFC11524E56E +:10166000D20778F4C11533E5D30708F072C0C1156D +:1016700042E5D40708F05CC0DC2FCC27C16FD06AEC +:1016800076CFC1158AE5D80778F4C11599E5D90751 +:1016900008F073C0C11528E5D20708F48DCFDC2F00 +:1016A000CC27C06FD06A63CFCE019056811590428F +:1016B00008F082CF8D2F8F710E94290A90E0982F19 +:1016C000882788279F719C012C2BE901D0624FCF7E +:1016D000C55AD0E0CF52DE4FC881D0E0D06447CFAA +:1016E000C85AD0E0CC0FDD1FCC52DE4F0990D88114 +:1016F000C02DD4643CCFCE0164E0969587956A9561 +:10170000E1F783702C2F26952695237040E2249FC5 +:1017100090011124382B8C2F8370C1E0D0E002C0DF +:10172000CC0FDD1F8A95E2F7C22BD32BDC681FCFCD +:10173000CE018370992721E030E002C0220F331FD1 +:101740008A95E2F7C695C69580E2C89FE00111240C +:10175000EBCFCE018370992721E030E002C0220F49 +:10176000331F8A95E2F7C695C69590E2C99FE001BE +:101770001124C22BD32BDA68FACE8C2F8F700E94E3 +:10178000290A34E0D695C7953A95E1F7CF709C2F9A +:10179000EC01D069ECCEC9E3D0E0E9CEC2EED0E0F6 +:1017A000E6CEC6EED0E0E3CE0C94F8088091460475 +:1017B00090919B02892B90919A02892B80933A02F7 +:1017C000E0913904F0913A04309731F00280F381CE +:1017D000E02D8AE392E00994089580919902909116 +:1017E0006802981301C008958F5F8770FACF27E0D1 +:1017F000929F800D1124982F9770869586958695D7 +:1018000023E0829FF0011124E95BFD4F50E040E0AE +:1018100080E0219130E0092E02C0369527950A9488 +:10182000E2F721703327042E01C0220F0A94EAF751 +:10183000822B4F5F5F4F4330510559F7089527E0E2 +:10184000929F800D1124982F977041E001C0440FA2 +:101850009A95EAF786958695869593E0899FF0019B +:101860001124E95BFD4F90E080E070E05191DF01D1 +:1018700011979B01082E02C0369527950A94E2F72E +:10188000217021952527242325272C930196833029 +:10189000910561F7089590E080E00E941A0990E0B8 +:1018A00080E00E94040910929B0210929A020C940C +:1018B000D60B80939C020C944B0C882341F08095AE +:1018C000909146048923809346040C94D60B089586 +:1018D000882339F090914604982B909346040C94F9 +:1018E000D60B08958823B1F19CEF980F913A70F4CC +:1018F000ECE3F2E09191891303C0DF0111971C9290 +:1019000042E0E234F407B1F70C94D60B90E2980F62 +:10191000983088F4877021E030E0A90102C0440FBC +:10192000551F8A95E2F7CA01809590914604892354 +:1019300080934604E9CF9BE5980F933020F490E024 +:1019400080E00C941A09885A873120F490E080E0F6 +:101950000C94040908950F931F93CF93C82F8823E5 +:1019600009F469C08CEF8C0F813AB0F50CE312E0FA +:1019700082E492E0F8012191C21701F122E0E23401 +:10198000F207C9F7EFEF80E0D8019D918D01C917EB +:1019900081F0EF3F19F4911101C0E82F8F5F86307D +:1019A00099F7EF3F31F00E2E000CFF0BE65CFD4F78 +:1019B000C283CF911F910F910C94D60BECE3F2E010 +:1019C0002191C21303C0DF0111971C928E179F074C +:1019D000B9F70E94D60BD6CF80E28C0F883068F41E +:1019E000C77021E030E001C0220FCA95EAF780916C +:1019F0004604822B80934604DCCFEBE5EC0FE3300A +:101A000050F4F0E0EF52FE4F808190E0CF911F91B3 +:101A10000F910C941A09C85AC73168F4EC2FF0E002 +:101A2000EE0FFF1FEC52FE4F80819181CF911F91ED +:101A30000F910C940409CF911F910F910895982F45 +:101A400092959F7011F0892F94E0282F2695269566 +:101A500011F09E5F822F869509F09F5F892F089570 +:101A6000CF92DF92EF92FF920F931F93CF93DF936A +:101A70006C017B0164E670E088E70E94562EEC0161 +:101A800097FD12C010E000E0F601E00FF11F849115 +:101A900064E670E00E94D02EEC01892B29F40F5FE0 +:101AA0001F4F0E151F0581F70E94532FCE01DF91A6 +:101AB000CF911F910F91FF90EF90DF90CF900895FD +:101AC0008091350490913604911103C091E08927EB +:101AD0000895882369F062E070E087E19DE00E944C +:101AE000300D892B19F0809135040895109235043A +:101AF00080913504EBCFCF93C091350480913604AB +:101B00008823D1F00E94F8086058774C8E4F9F4F81 +:101B100060933104709332048093330490933404BF +:101B2000C11108C062E070E085E19DE00E94300DC7 +:101B3000892B29F0C09135048C2FCF91089581E035 +:101B400080933504F7CF90915304943029F5809316 +:101B5000420470934404609343049093E9008FEF30 +:101B60009091E800815095FD06C095ED9A95F1F7AA +:101B700000008111F5CF8091E80085FF0DC050E095 +:101B800040E063E070E082E494E00E94BA07809154 +:101B9000E8008E778093E8000895BC0184E00C94FF +:101BA000A30DBC0183E00C94A30DCF93DF93EC0154 +:101BB00081E08093E9008FEF9091E800815095FDDE +:101BC00006C095ED9A95F1F700008111F5CF80914F +:101BD000E80085FF14C050E040E068E070E0CE010E +:101BE0000E94BA078091E8008E778093E80088E031 +:101BF000FE01A9E4B4E001900D928A95E1F7DF912E +:101C0000CF9108959F92AF92BF92CF92DF92EF92C1 +:101C1000FF920F931F93CF93DF937C015B016A01C7 +:101C20008091E00201E010E08A3010F40AE010E058 +:101C3000C1E0D0E0F894B501C701F6010995982EEE +:101C40000E94100A911004C021960C171D076CF415 +:101C5000892DDF91CF911F910F91FF90EF90DF9031 +:101C6000CF90BF90AF909F900895CC9F9001CD9F53 +:101C7000300D300D112490E080E045E34A95F1F7F6 +:101C80000000019682179307C1F7D4CF8091AB0271 +:101C9000811110C08091D80080618093D8008AE1C2 +:101CA0008A95F1F700C08091D90080FF0AC081E0D9 +:101CB0008093AB0281E09091AB02913009F080E01B +:101CC000089582E08093AB020E946A071092530449 +:101CD000F1CF0E94460E882351F0E0913904F09133 +:101CE0003A04309721F00190F081E02D099480E0D2 +:101CF00008951F93CF93DF93182FEB010E94AB0C35 +:101D00008FE99FE00197F1F700C000002197C1F72C +:101D1000812FDF91CF911F910C94720C4F925F92A3 +:101D20006F927F928F929F92AF92BF92CF92DF92EB +:101D3000EF92FF920F931F93CF93DF93CDB7DEB750 +:101D4000CE5DD1090FB6F894DEBF0FBECDBF509067 +:101D5000770180915E0480FF5DC080904A0390907F +:101D60004B038114910409F068C0EBE8F7E09E0191 +:101D70002F5F3F4FBE0161527F4FC901A4914A2F8F +:101D800050E0DA01AA0FBB1FA40FB51FA45BBC4F24 +:101D9000CD90DD90EC90D901CD92DD92ED929D0138 +:101DA00031966A177B0751F72091760143E0249F13 +:101DB000800D911D1124539A2BB1277F3BB13860C0 +:101DC0005FB7F894BC01549E600D711D11248617F5 +:101DD000970709F090C05FBF8FE594E00197F1F796 +:101DE00000C00000C252DF4F0FB6F894DEBF0FBE36 +:101DF000CDBFDF91CF911F910F91FF90EF90DF90BA +:101E0000CF90BF90AF909F908F907F906F905F909A +:101E10004F900895809178019091790123E0829FFD +:101E2000F0011124E45BFC4F891708F096CF118272 +:101E3000108212828F5F3396F7CF80914903811110 +:101E400094CFD12CC12C66246394712C53E0452E81 +:101E50008091480393010C2C01C0220F0A94EAF7E9 +:101E6000822309F43FC0F601EE0FFF1FE80DF91DB4 +:101E7000E590F490E114F10409F477CF45E050E0E7 +:101E8000B701CE0101960E94323209810F3F51F114 +:101E90008A81800F9927991F8B34910514F08AE469 +:101EA00090E05C01AA0CBB1C8A0D9B1DDC01A45BAD +:101EB000BC4F5D01049D80011124045B1C4F0A1579 +:101EC0001B0520F0B5E0EB0EF11CD8CF4D81413A57 +:101ED00008F040EA98016C818B810E9478090D5FBF +:101EE0001F4FEDCFEFEFCE1ADE0AF8E0CF16D10488 +:101EF00009F0AECF3ACFFC014191CF01E8E03BB908 +:101F0000000000C047FF2BB9440F000000C000C014 +:101F100000C02BB900C0EA9591F759CFEEE5F4E087 +:101F200080818E7F8083E5E4F3E08281816082831B +:101F30002FEF80E792E0215080409040E1F700C011 +:101F400000000C948E0EECE3F2E086E0DF011D92BF +:101F50008A95E9F70C944B0C1F93CF93DF93CDB781 +:101F6000DEB7AA970FB6F894DEBF0FBECDBF85E5EA +:101F700094E02091F100DC012D93CD01B4E08D358A +:101F80009B07B9F780915604833009F471C0B8F407 +:101F9000813009F448C0823009F4B4C08091E8006F +:101FA00083FF3CC180915504909156049A3008F00B +:101FB00035C1E92FF0E0E45EF84C0C94CC318A3066 +:101FC00009F48FC08B3009F470C0893039F78091E3 +:101FD0005504813219F78091590490915A04009761 +:101FE00011F00297D9F68091E800877F8093E8008E +:101FF0008091E80082FF37C09091F3008091F20059 +:10200000029729F48091F1008B7F813021F4809137 +:10201000F100809348048091E8008B778093E8007A +:102020000E94E407BBCF80915504813A09F0B6CFF6 +:102030008091E800877F8093E80080915904909117 +:102040005A04892B61F468E089E494E070E00E940E +:1020500096088091E8008B778093E8009FCF60E03E +:1020600090E080E0F3CF809153048111C1CF96CFEF +:1020700080915504813A09F091CF80915904909153 +:102080005A04892B09F08ACF8091E800877F8093DA +:10209000E8008091E80080FFFCCF80917B01809375 +:1020A000F1008091E8008E77B9CF8091550481329C +:1020B00009F074CF8091590490915A04892B09F04A +:1020C0006DCF8091E800877F8093E8000E94E4074D +:1020D0008091570480937B01109246040E94A30FC5 +:1020E0005DCF80915504813209F058CF8091E8008E +:1020F000877F8093E8000E94E407809158048093D2 +:1021000047044CCF80915504813A09F047CF809124 +:10211000E800877F8093E8008091E80080FFFCCF93 +:1021200080914704BCCF803899F0823809F076C09E +:10213000809159048F70873008F070C08093E90057 +:102140008091EB0085FB882780F91092E90006C09A +:102150008091510490915204911182609091E80015 +:10216000977F9093E8008093F1001092F1008091A6 +:10217000E8008E77B5C1882309F4A2C1823009F046 +:102180004DC0809157048111A6C1809159048F7070 +:102190002FEF280F263008F041C08093E9002091EE +:1021A000EB0020FF98C1933031F48091EB00806206 +:1021B0008093EB0090C19091EB0090619093EB00C5 +:1021C00021E030E001C0220F8A95EAF72093EA006F +:1021D0001092EA008091EB008860EACF81111EC066 +:1021E000109157041F778091E3008078812B8093B2 +:1021F000E3008091E800877F8093E8000E94E40775 +:102200008091E80080FFFCCF8091E300806880939C +:10221000E30082E0111183E0809353048091E80091 +:1022200083FF0AC08091E800877F8093E800809157 +:10223000EB0080628093EB00AA960FB6F894DEBFA5 +:102240000FBECDBFDF91CF911F910895805882308E +:1022500028F720915704309158042C3DE3E03E07C5 +:10226000A1F583E08A838AE289834FB7F894DE017F +:10227000139620E03EE051E2E32FF0E05093570048 +:10228000E49120FF03C0E295EF703F5FEF708E2F67 +:1022900090E0EA30C0F0C7968D939D932F5F243174 +:1022A00059F74FBF8091E800877F8093E8006AE28A +:1022B00070E0CE0101960E9496088091E8008B772D +:1022C0008093E800ABCFC096E7CF809159049091FE +:1022D0005A04432F55274330510509F44AC078F575 +:1022E0004130510509F47AC08BE590E0E9E1FDE069 +:1022F0004230510509F092CF2091E800277F2093CA +:10230000E80020915B0430915C048217930708F485 +:102310009C0140E02115310509F065C0411163C001 +:102320008091E80082FDC9CF80915304882329F26F +:10233000853019F28091E80083FFF2CFBECF4132A1 +:10234000510509F43CC04232510509F067CF833092 +:10235000910508F063CFFC01EE0FFF1FE55DFD4F17 +:102360000190F081E02D885D9D4FDC018C9190E023 +:102370001AC0332721303105D1F02115310561F024 +:102380002230310509F04ACFE6E8FDE0E4918E2FD6 +:1023900090E0E6E8FDE007C0E8EBFDE0E4918E2F79 +:1023A00090E0E8EBFDE0009709F438CFA5CFE6EA2E +:1023B000FDE0E4918E2F90E0E6EAFDE0F4CF83307B +:1023C000910508F02BCF880F991FFC01EF5CFD4FA2 +:1023D0000190F081E02D89E090E08ECF82E190E0E5 +:1023E000E4E7FDE089CF80915304882309F465CFA9 +:1023F000853009F462CF8091E80083FD5ECF809143 +:10240000E80082FD8DCF8091E80080FF83CF90911E +:10241000F3008091F2002115310519F08830910503 +:1024200050F041E0089709F040E08091E8008E7795 +:102430008093E8006FCF44914093F1003196215092 +:1024400031090196E8CF803809F0E8CE8091E800A4 +:10245000877F8093E800809154048093F10087CEB9 +:102460008111DCCE10915704123008F0D7CE809144 +:10247000E800877F8093E800109354040E94E407EB +:10248000112311F084E005C08091E30087FDFACFAD +:1024900081E08093530442E061EC81E00E940308F4 +:1024A00042E261EC84E00E94030842E261EC82E0D7 +:1024B0000E94030842E260EC83E00E940308AECE73 +:1024C00080915704813009F0A9CE81E0933009F062 +:1024D00080E0809352041092E9008091E800877FA9 +:1024E0008093E8000E94E40799CE1F93CF93DF9377 +:1024F000162FC0916506D09166068A30D1F42091DE +:102500002A04CE0185569440622F70E00E947931F2 +:10251000281B822F66E00E948D31C82FC15020F405 +:10252000DF91CF911F91089560E080E20E947512C3 +:10253000F5CF8D30E9F4C556D44020912A04622F9E +:1025400070E0CE010E947931281B822F9E01280F56 +:10255000311D2115324018F080E0D0E0C0E0C80FF6 +:10256000D11DCB59DB4FD0936606C0936506D8CFFB +:1025700096E0FE01ABE2B4E001900D929A95E1F78E +:10258000803E90F186E0FE0111928A95E9F7C091B4 +:102590006506D0916606111133C046E050E0BE01D9 +:1025A0008BE294E00E943B329E0125563440892BF9 +:1025B00091F52A5F3F4F40912A04642F70E0C901D2 +:1025C0000E947931481B463010F4240F311D21152B +:1025D00072E0370710F030E020E02B593B4F30938A +:1025E0006606209365069CCFF6E08F9FB00111240C +:1025F0006B52784F46E050E0CE010E943232C7CF96 +:102600009E012A5F3F4FFE012E173F0731F2808166 +:1026100080958193F9CFC90145E0969587954A95B4 +:10262000E1F741E050E0BA0102C0660F771F8A95DA +:10263000E2F7CB016091630470916404862B972BC1 +:10264000B9016B5F7F4FE5E076956795EA95E1F715 +:1026500002C0440F551F6A95E2F7842B952B909387 +:10266000640480936304A5CFFF920F931F93CF93CD +:10267000DF93EC01F62EFC0101900020E9F78F01B9 +:1026800001501109C017D10730F0DF91CF911F9190 +:102690000F91FF9008956F2D89910E947512F2CFCE +:1026A000CF93DF93C7E5D2E060E0CE010E94F7341C +:1026B0002196C11584E0D807B9F7DF91CF9108952D +:1026C0006F927F928F929F92AF92BF92CF92DF9242 +:1026D000EF92FF920F931F93CF93DF9385EDC82E58 +:1026E00087E0D82E91ECE92EF12CE701CC58D109E6 +:1026F00036011BC0F50185909490692DC8010E9498 +:10270000F734682DC80101960E94F73482E0A80EC4 +:10271000B11C0E5F1F4FC017D10761F78EE0680E26 +:10272000711C2E96CE15DF0529F08E010E50110971 +:102730005301E0CF7E018CE8E80EF11C8CE8C80E56 +:10274000D11C81EFE81682E0F80679F6DF91CF918F +:102750001F910F91FF90EF90DF90CF90BF90AF90BF +:102760009F908F907F906F900895CF93C82F6FEFB9 +:10277000811161E283E290E00E94F7346FEFC111B2 +:1027800068E084E290E00E94F7346FEFC11160E3EB +:1027900085E290E0CF910C94F73480E00E94B5136D +:1027A00060E086E290E00E94F7340E9460130E948D +:1027B000501381E00C94B5130F931F93CF93DF93C5 +:1027C000C42FD0E0CC0FDD1F2EE0629FC00DD11DC5 +:1027D00011243CE8839FC00DD11D1124CE018796A2 +:1027E0000E94E334082F10E0102F0027CE018896B6 +:1027F0000E94E3349801282BC901DF91CF911F91EA +:102800000F910895462F843038F47A3028F46730D9 +:1028100018F4672F0C94DC1390E080E00895CF92B9 +:10282000DF92FF920F931F93CF93DF936C01009180 +:102830005D0480919C02082BC7E0D0E010E0FC2EE4 +:10284000C8010C2E02C0959587950A94E2F780FD89 +:102850000CC02197A0F7F12C8F2DDF91CF911F9104 +:102860000F91FF90DF90CF900895B6018C2F0E94BA +:1028700002140E946C0A019761F3EECFCF93DF93AD +:10288000EC010E940F14BE010E940214DF91CF914F +:102890000C946C0AFC01808191810E943E14292FC6 +:1028A0002F7092959F7092509E3078F4E92FF0E04F +:1028B000EA5DF84C0C94CC31803F19F020F4883E4E +:1028C00020F481E00895843FE1F380E00895883E9C +:1028D000C0F3813FD1F7F5CF822F869586958695F7 +:1028E000089583E290E00E94E334813289F484E227 +:1028F00090E00E94E334883059F485E290E00E9431 +:10290000E33491E0803309F090E0892F81700895DD +:1029100080E0FCCFCF92DF92EF92FF926B017C01BF +:102920000E946209B701A60188E090E0FF90EF9055 +:10293000DF90CF900C940935AF92BF92CF92DF9287 +:10294000EF92FF920F931F93CF93DF9300D00F92DC +:10295000CDB7DEB7082FF62E142FE22E80915E043D +:1029600080FF4FC0E82FE695AE2FB0E0A45EBD4FCC +:102970009C91909345038E7F823009F056C0413A76 +:1029800008F040EA9E012F5F3F4F6F2D802F0E947D +:10299000780980915E0480FF11C02B8139814A81C2 +:1029A000809178019091790153E0859FF001112485 +:1029B000E45BFC4F891798F10E948E0E80915F04B2 +:1029C000801308C0809160048F1104C0809161045D +:1029D000811729F080914703826080934703009319 +:1029E0005F04F092600410936104EE2051F0609156 +:1029F0005E0470915F0480916004909161040E9474 +:102A00008A140F900F900F90DF91CF911F910F912B +:102A1000FF90EF90DF90CF90BF90AF9008954183EB +:102A2000308322838F5F3396C5CF923039F6E250E0 +:102A30008E2F8170D82EE695F0E0EA57F84FA590DA +:102A4000B490C12CBB2460917A01C61608F0B4CFB3 +:102A50002C2D30E0A29EC001A39E900DB29E900D41 +:102A6000112470E00E947931802FD11016C0860F9A +:102A700040917801420F532F511D9A01220F331FAD +:102A8000240F351F245B3C4F412F113A08F040EAD8 +:102A90006F2D0E947809C394D6CF861BE9CFEEE54F +:102AA000F4E0438121E1421B08F440E021E062812F +:102AB00081810C949C14EEE5F4E0438121E1420F06 +:102AC00008F44FEF21E0628181810C949C14EEE5C3 +:102AD000F4E0628121E1621B08F460E021E04381BF +:102AE00081810C949C14EEE5F4E0628121E1620F97 +:102AF00008F46FEF21E0438181810C949C14EEE592 +:102B0000F4E0818121E04381628188500C949C141F +:102B1000EEE5F4E0818121E043816281885F0C94DD +:102B20009C1480916204882319F081508093620480 +:102B300060915E0470915F048091600490916104E3 +:102B40000C948A1480916204833018F48F5F809310 +:102B5000620460915E0470915F04809160049091C2 +:102B600061040C948A1490915E0490FF27C09170C8 +:102B700081111DC0926090935E0480914703816033 +:102B800080934703662351F060915E0470915F0467 +:102B900080916004909161040E948A1420E0409129 +:102BA00061046091600480915F040C949C148C30EB +:102BB00010F09661E0CF880F982BDDCF089521E0CB +:102BC00030E0A90102C0440F551F8A95E2F7CA01FF +:102BD000209148036623C1F0822B809348038091A3 +:102BE000470380618093470380914603811106C0AB +:102BF00080915E0460E086950E94B31580915E042A +:102C000080FD05C00C948E0E80958223E6CF08953A +:102C1000CF93DF93C82FC17082FBDD27D0F981FBF2 +:102C2000662760F984E00E94DF1561E06C2785E08B +:102C30000E94DF156D2F86E0DF91CF910C94DF1598 +:102C40000F931F93CF93C82F61E08111682F61709C +:102C500080E00E94DF15C1FB662760F9C11101C049 +:102C600060E081E00E94DF15C2FB662760F9C111B8 +:102C700001C060E082E00E94DF15C3FB662760F9B7 +:102C8000C11101C060E083E00E94DF154C2F50E0CD +:102C900070E060E0DB01CA01F4E0B695A795979576 +:102CA0008795FA95D1F70097A105B10551F1AC01CF +:102CB000BD0184E08A019B01E2E0369527951795D6 +:102CC0000795EA95D1F7011511052105310519F090 +:102CD0008E5FB901A8017695679557954795452B65 +:102CE000462B472B09F08F5F8130A1F0882359F0E4 +:102CF0008230A9F08330C1F08C2FCF911F910F91BA +:102D0000089580E0D7CF20E040E56FEF82E30E9496 +:102D10009C14F2CF20E040E56FEF8CEFF8CF20E07D +:102D200040E56FEF86E7F3CF20E040E56FEF8AEDF7 +:102D3000EECF0E94201680935D040C944B0C809182 +:102D40005D04982F9670963019F488600C9499164B +:102D5000877FFCCF21E030E001C0220F8A95EAF79F +:102D6000209580915D0482230C94991621E030E037 +:102D700001C0220F8A95EAF780915D04822B0C94A2 +:102D8000991680915E048695815009F48BE061E08C +:102D90000C94B31580915E0486958F5F8C3008F09B +:102DA00081E061E00C94B31580915E0480FF07C060 +:102DB000869582588F77893010F40C94CA1661E09A +:102DC00082E00C94B315EEE5F4E083E08083118299 +:102DD0008FEF828380EA83831482A5E4B3E01296A6 +:102DE0008C911297836012968C936081718182819D +:102DF00093810C948A1469EE7EEF90E080E00E944B +:102E0000153560E082E090E00E94F73460E083E0F6 +:102E100090E00E94F73410929C0260E084E090E021 +:102E20000E94F73460E082E290E00E94F73460E0B4 +:102E300085E090E00E94F73460E086E090E00E9438 +:102E4000F7346FEF87E090E00E94F73440E050E005 +:102E5000BA0188E090E00E94093560E08DE090E0E2 +:102E60000E94F73440E050E0BA0188E190E00E940F +:102E7000093560E087E190E00E94F73440E050E0DF +:102E8000BA018CE190E00E94093570E060E080E2D8 +:102E900090E00E94153540E050E0BA0188E190E0F2 +:102EA0000E94093580E00E94B5130E94CD1340E0D6 +:102EB00050E0BA018FE090E00E94093540E050E018 +:102EC000BA0183E190E00C9409350F931F93CF93DF +:102ED000DF9300D000D0CDB7DEB74091D002509143 +:102EE000D1026091D2027091D3022FB7F8948091F1 +:102EF0003E0490913F04A0914004B09141042FBF43 +:102F0000841B950BA60BB70B84369105A105B10563 +:102F100088F10E94460E882379F10E94F8086E5FBE +:102F20007F4F8F4F9F4F69837A838B839C838091E0 +:102F30002B0190912C0187549D4F40912A0150E024 +:102F40004530510510F044E050E0BE016F5F7F4F07 +:102F50000E94483284E090E00E94C530892BD9F469 +:102F60000E94F8086093D0027093D1028093D2023D +:102F70009093D30281E010C00E94F8080091E10212 +:102F80001091E2022091E3023091E402600F711F80 +:102F9000821F931FC4CF80E00F900F900F900F906F +:102FA000DF91CF911F910F9108958F929F92AF92D1 +:102FB000BF92CF92DF92EF92FF920F931F93CF9326 +:102FC000DF93EB0188809980AA80BB809FB7F8943B +:102FD000C0903E04D0903F04E0904004F090410443 +:102FE0009FBFC818D908EA08FB0894E6C916D1049F +:102FF000E104F10410F4442311F1E82E082E000C32 +:10300000FF089AE08902F0011124E050FF4F83810C +:10301000948187549D4F428150E00417150708F4AE +:10302000A801B9010E944832C7010E94C530892B0E +:10303000A1F40E94F808688379838A839B8381E0E6 +:10304000DF91CF911F910F91FF90EF90DF90CF9084 +:10305000BF90AF909F908F90089580E0F1CF0F9335 +:103060001F93CF93DF930F92CDB7DEB780913504D6 +:1030700089832091CF0290E041E02817190609F4D6 +:1030800040E001E010E09E012F5F3F4F6CED72E0E9 +:1030900087E00E94D5170F90DF91CF911F910F917C +:1030A00008950F931F93CF93DF930F92CDB7DEB7A1 +:1030B0008091FB02898341E09091CE02981301C078 +:1030C00040E001E010E09E012F5F3F4F68ED72E0AD +:1030D00086E00E94D5170F90DF91CF911F910F913D +:1030E00008950F931F93CF93DF93CDB7DEB7299742 +:1030F0000FB6F894DEBF0FBECDBF85E0EEE5F4E07D +:10310000DE01119601900D928A95E1F780914503B9 +:1031100090914603A0914703B09148038E839F830B +:10312000A887B98741E08885811101C040E009E0A6 +:1031300010E09E012F5F3F4F64ED72E085E00E943A +:10314000D51781111092470329960FB6F894DEBF68 +:103150000FBECDBFDF91CF911F910F9108956F9258 +:103160007F928F929F92AF92BF92CF92DF92EF9217 +:10317000FF920F931F93CF93DF930F92CDB7DEB7DC +:10318000862E5A016901682E880F7708C3010E94B4 +:10319000C530892B09F088C08AE0869DF001879DA3 +:1031A000F00D1124E050FF4F458150E041155105CD +:1031B00011F041E050E08AE0869DF001879DF00D1E +:1031C0001124E050FF4F6681778167547D4FCE0117 +:1031D00001960E944832F5014081518162817381DC +:1031E0002FB7F89480913E0490913F04A091400441 +:1031F000B09141042FBF841B950BA60BB70B8436EF +:103200009105A105B10540F4B701C8010E94470925 +:103210009981891709F44FC0082C000C9908C40142 +:103220000E94C530892B91F0B12C8B2D0F90DF912E +:10323000CF911F910F91FF90EF90DF90CF90BF90B3 +:10324000AF909F908F907F906F9008958AE0889DB7 +:10325000F001899DF00D1124E050FF4F458150E0B1 +:10326000E416F50608F4A7018AE0889DF001899D1F +:10327000F00D1124E050FF4F6681778167547D4F38 +:10328000C6010E944832B701C8010E9447099981CE +:103290008913CACF0E94F808F50160837183828385 +:1032A0009383BB24B394C1CFB12CA701B801C6014D +:1032B0000E944832BACFBB24B394F7CFCF92DF92AB +:1032C000EF92FF920F931F93CF93DF9300D000D024 +:1032D0000F92CDB7DEB76B0185E0E82EF12C0AEB3B +:1032E00012E09E012F5F3F4F41EB52E061E080E032 +:1032F0000E94AF18882349F095E0FE013196ACEAB0 +:10330000B2E001900D929A95E1F795E0ECEAF2E0D7 +:10331000D60101900D929A95E1F70F900F900F90C2 +:103320000F900F90DF91CF911F910F91FF90EF9031 +:10333000DF90CF90089590E080E00E94F134893EC4 +:103340009E4F11F40C94711480E008951F920F9217 +:103350000FB60F9211242F933F934F935F936F9368 +:103360007F938F939F93AF93BF93CF93DF93EF930D +:10337000FF93D091E900DF708091EC00C82FC170FD +:1033800080FDC0E81092E9008091F000877F809373 +:10339000F00078940E94AC0F1092E9008091F00048 +:1033A00088608093F000CD2BCF70C093E900FF912F +:1033B000EF91DF91CF91BF91AF919F918F917F91CD +:1033C0006F915F914F913F912F910F900FBE0F9092 +:1033D0001F9018951F920F920FB60F9211242F93E2 +:1033E0003F934F935F936F937F938F939F93AF938D +:1033F000BF93EF93FF938091E10082FF09C080911A +:10340000E20082FF05C08091E1008B7F8093E100A4 +:103410008091DA0080FF24C08091D80080FF20C016 +:103420008091DA008E7F8093DA008091D90080FF4E +:103430009BC080E189BD82E189BD09B400FEFDCF5A +:1034400081E08093530480914504811109C00E945A +:103450006A070E9435088091E20084608093E20050 +:103460008091E10080FF17C08091E20080FF13C0CF +:103470008091E2008E7F8093E2008091E200806183 +:103480008093E2008091D80080628093D80019BCBC +:1034900085E0809353048091E10084FF29C08091EE +:1034A000E20084FF25C080E189BD82E189BD89B544 +:1034B000982F917080FFFBCF8091D8008F7D8093F3 +:1034C000D8008091E1008F7E8093E1008091E2003E +:1034D0008F7E8093E2008091E20081608093E20021 +:1034E00080915404882309F445C084E080935304F8 +:1034F0008091E10083FF27C08091E20083FF23C019 +:103500008091E100877F8093E10082E08093530403 +:10351000109254048091E1008E7F8093E1008091AD +:10352000E2008E7F8093E2008091E20080618093D0 +:10353000E20042E060E080E00E9403088091F00039 +:1035400088608093F000FF91EF91BF91AF919F91C0 +:103550008F917F916F915F914F913F912F910F903C +:103560000FBE0F901F90189519BC10925304109223 +:10357000450476CF8091E30087FD93E09093530458 +:10358000B7CF78941F921FB61F9211248F939F93E9 +:10359000AF93BF9380913E0490913F04A09140046B +:1035A000B09141040196A11DB11D80933E049093FA +:1035B0003F04A0934004B0934104BF91AF919F9109 +:1035C0008F911F901FBE1F9018959C014FB7F894C4 +:1035D00080913E0490913F04A0914004B091410439 +:1035E0004FBF821B930B08952FB7F89480913E0430 +:1035F00090913F04A0914004B09141042FBF0895E1 +:103600008F929F92AF92BF92CF92DF92EF92FF92F2 +:103610000F931F93CF93DF93CDB7DEB72F970FB6DE +:10362000F894DEBF0FBECDBF8E010F5F1F4F8AE043 +:10363000D8011D928A95E9F787E5C82E81E0D82E3A +:10364000F12CE12CAA24A394B12CF60181916F01F5 +:103650008F3F09F44AC0F894E82FE295EF70F0E04C +:1036600021A18F70A50102C0440F551F8A95E2F772 +:10367000CA01922F982B91A392A18095892382A3AE +:103680000E94100A00C0E0E5F1E030E020E0912C5B +:1036900041914F3F09F47FC0A42FA295AF70B0E0D5 +:1036A00090968C9190E04F7002C0959587954A95C1 +:1036B000E2F780FD70C08A2D022E01C0880F0A94A7 +:1036C000EAF7982A2F5F3F4F2730310509F7F601B7 +:1036D000319780818F3F11F00E94120A50EA5A956B +:1036E000F1F7F801EE0DFF1D90828FEFE81AF80A4E +:1036F00095E0E916F10409F0A8CF4AE050E0B801DE +:1037000087EE92E00E943B327C01892B41F08AE0F7 +:10371000F801A7EEB2E001900D928A95E1F71091C1 +:10372000F202E114F104C9F181E080939F020E944A +:10373000F41A90939E0280939D0280919D02909135 +:103740009E020E94E51A059778F0A7EEB2E0E12FFD +:10375000F0E0E55CFC4F8CEE92E02D9121938A170E +:103760009B07D9F710929F0281E090E0EF28C9F003 +:103770002F960FB6F894DEBF0FBECDBFDF91CF916D +:103780001F910F91FF90EF90DF90CF90BF90AF907F +:103790009F908F90089580E094CF80919F02811137 +:1037A000CCCF0E94460EB82EE091F2028E01055F4A +:1037B0001F4F882309F4D3C085E0D8011D928A9554 +:1037C000E9F7F0E09F01255C3C4F79018091E00230 +:1037D000AE01405F5F4F6A018A3008F098C04EE545 +:1037E00059E1B801C7010E94020E882309F4A6C05E +:1037F0004CEF55E2B801C7010E94020E882309F47C +:103800009DC045E657E1B801C7010E94020E88231A +:1038100009F494C041E758E1B801C7010E94020EC3 +:10382000882309F48BC041E558E1B801C7010E9423 +:10383000020E882309F482C04FE258E1B801C701A3 +:103840000E94020E882309F479C01092E002E091F0 +:10385000F102F0E0AF01455C5C4FD80110E0FA01E5 +:103860009191AF018D91981731F09F01215031094D +:10387000F90180831B2DAC15BD0589F78091A2024B +:103880009091A3020E94E51A893E934060F16091F5 +:10389000FB02E62EF12C662777276E197F09072E8B +:1038A000000C880B990B0E94E03527EA39E747E4C2 +:1038B0005DE30E94AD364B015C01B701FF0C880B44 +:1038C000990B0E94E0359B01AC01C501B4010E9437 +:1038D0002C350E94AF356093FB020E94F41A90933E +:1038E000A3028093A2028091A602882371F08091A6 +:1038F000A4029091A5020E94E51A893E934028F007 +:1039000082EE0E94720C1092A602812F31CF80911C +:10391000A0029091A1020E94E51A843F914008F014 +:103920005ECFE091F102F0E0E55CFC4FD80111922E +:103930001D92AC15BD05D9F71B2DA0CF8091E002DB +:103940008F3F31F08F5F8093E0028A3008F47FCFA1 +:103950000E94F41A9093A1028093A002E2CFF0E0BB +:10396000E55CFC4FF89485E0AAEBB2E001900D9283 +:103970008A95E1F765E070E08AEB92E00E944709E2 +:103980008093B9020E94100AF894E091F902F0E0E5 +:10399000EA50FD4F80818B878093C00261E070E028 +:1039A000C8010E9447098093BF020E94100AF89440 +:1039B000C090C102D090C202E090C302F090C40255 +:1039C0008091A7029091A802A091A902B091AA02A9 +:1039D000C816D906EA06FB06D1F0C092A702D0921B +:1039E000A802E092A902F092AA020E94460E81115A +:1039F0000EC00E94F808C61AD70AE80AF90AC0924F +:103A0000E102D092E202E092E302F092E4020E942C +:103A1000100AF8948091CC02882321F184FF04C01D +:103A20009091CD029093480380FF0DC08091C50214 +:103A300080FF2CC090915E04916090935E0460E0E2 +:103A400086950E94B3158091CC0281FF09C020E0C9 +:103A50004091C8026091C7028091C6020E949C14E6 +:103A60001092CC020E94100AF8948091CE028093AA +:103A7000FB020E94100AF8948091CF02882349F03B +:103A80000E947B0D0E94100A80E072CE0E948E0F71 +:103A9000DACF0E94600DF6CF5F926F927F928F9285 +:103AA0009F92AF92BF92CF92DF92EF92FF920F93CD +:103AB0001F93CF93DF9300D000D00F92CDB7DEB726 +:103AC0006C01FC0183819481892B31F0808191818B +:103AD00089238F3F09F082C50F900F900F900F90B0 +:103AE0000F90DF91CF911F910F91FF90EF90DF909A +:103AF000CF90BF90AF909F908F907F906F905F908E +:103B000008950E940F14182F682F89819A810E94AE +:103B10001F0C69817A81812F0E9402148C01F601A9 +:103B20008281882309F463C0C80190568115F0E2B0 +:103B30009F0750F0905E811520E1920728F0915C7C +:103B400081159F4108F0A5C0C80199279C01245008 +:103B500031092432310520F08B970E9708F047C0C9 +:103B60008091A2029091A3020097D9F10E94E51AD8 +:103B70009C0150E040E060E67AEE80E090E00E9438 +:103B8000AD31CA01B90125E030E040E050E00E94CB +:103B9000AD31E090FB022F3F310519F010F02FEF0F +:103BA00030E0F12C2E193F09B90190E080E00E942D +:103BB000DE3527EA39E747E45DE30E94AD360E942F +:103BC00098354B015C01B701FF0C880B990B0E94E3 +:103BD000E035A50194010E942C350E94AF35609319 +:103BE000FB020E94F41A9093A3028093A202F601B2 +:103BF0008281882309F4E6C4C80182519F45409719 +:103C000008F071C48FEF93E00E94E334025197E50E +:103C1000A92E92E0B92E81115FCF011143C01C8201 +:103C20001B82662463948AE0582E85010F5F1F4F24 +:103C3000C5010E94E33489831A82882309F44CCF9A +:103C40009FEF980F9330E8F58A83698232E0A30EE4 +:103C5000B11CC8010E94E3348B83882309F43CCF54 +:103C60008E010F5F1F4FF80120812223F1F22130D6 +:103C700009F061C091818281913029F50E5F1F4F5B +:103C80006AE070E0893311F460E570E00E94790E1B +:103C900020C090E080E00F3F110511F008F056CFF2 +:103CA000C80154CFA114F4E0BF0609F415CFC50133 +:103CB0000E94E334811101C001502FEFA21AB20A11 +:103CC000ACCF5801CDCF923039F40E5F1F4F0E9418 +:103CD000AB0C0F5F1F4FC7CF933029F40E5F1F4F00 +:103CE0000E94720CF6CF943019F00F5F1F4FF1CF86 +:103CF0000E5F1F4F30E020E0B8016F5F7F4FF8018B +:103D000041818053990B8A30910550F0215031093F +:103D100000F38FE99FE00197F1F700C00000F6CFB4 +:103D2000529EF001539EF00D11249C012E0F3F1F57 +:103D3000842F8B01E1CFE22FF0E0EA54FE4F749024 +:103D4000822F86958695869590E0FC01EA55FE4F78 +:103D5000E4902770F12C022E02C0F594E7940A94A7 +:103D6000E2F7E1E0EE22FF24FC01EA56FE4FC490A8 +:103D7000D12C022E02C0D594C7940A94E2F7F1E048 +:103D8000CF22DD24FC01EA57FE4F8490912C02C023 +:103D9000959487942A95E2F721E082229924E114F0 +:103DA000F10419F081EE0E94AB0CC114D10419F09A +:103DB00086EE0E94AB0C39E36AE070E0731202C039 +:103DC00060E570E0872D0E94790ECD2819F086EE0F +:103DD0000E94720CEF2819F081EE0E94720C892863 +:103DE00009F477CF6AE070E08CE250CF81E00E9466 +:103DF000B61603C081E00E94AA160F900F900F9094 +:103E00000F900F90DF91CF911F910F91FF90EF9046 +:103E1000DF90CF90BF90AF909F908F907F906F90EA +:103E20005F900C949F1682E0E2CF013E110509F4E9 +:103E30009AC0043E110509F07CC3882309F4CEC062 +:103E400081E08093FC0275C30238FFE51F0709F487 +:103E500059C000F500383FE51307B9F101384FE5C7 +:103E6000140709F066C3882309F445C08091A602AF +:103E7000811106C081E08093A60282EE0E94AB0C05 +:103E80000E94F41A9093A5028093A40281EE0E94EE +:103E9000AB0C2DC003385FE5150709F447C00438A3 +:103EA0009FE5190709F045C3882309F482C0809172 +:103EB0004302882309F45AC0809144020E94720C84 +:103EC00080EE0E94AB0C8AE25EC08823B9F080913C +:103ED000A602811106C081E08093A60282EE0E94B4 +:103EE000AB0C0E94F41A9093A5028093A4028BE27B +:103EF0000E94AB0C1EC381EE0E94720C8BE20E94EA +:103F0000720C17C3882309F414C381EE0E94AB0C12 +:103F100083EE0E94AB0C8FE40E94AB0C8FE40E94F6 +:103F2000720C83EE0E94720C81EEE9CF882309F4B3 +:103F300000C381EE0E94AB0C83EE0E94AB0C80E5C7 +:103F40000E94AB0C80E5EBCF8093460210934502B4 +:103F500000934402882321F081E08093FD02E9C2AE +:103F60001092FD02E6C280934302F0CF8091460298 +:103F7000882309F4A8CF809144020E94720C80EE3D +:103F80000E94AB0C8CE40F900F900F900F900F904D +:103F9000DF91CF911F910F91FF90EF90DF90CF9025 +:103FA000BF90AF909F908F907F906F905F900C9498 +:103FB000AB0C8AE20E94720C8CE40E94720C80EEC0 +:103FC0000E94720C80914302811105C080914602CB +:103FD000882309F481CD80914402D5CF1092FC0250 +:103FE000A8C2882331F081E08093FF0210926E0115 +:103FF000A0C21092FF029DC2073C2CE5120709F4F3 +:10400000AEC008F4A7C0083C4CE5140709F4ACC0E6 +:10401000093C1C4509F0ADC24FE455E16BE575E183 +:1040200079C0043DECE51E07A8F40E3CFCE51F0733 +:1040300008F052CD0C3C2CE5120709F49FC041E971 +:1040400055E162EA75E10D3C1C4508F463C061E08E +:1040500081E046C0053D4CE5140709F43DCD08F468 +:1040600092C00D351D4509F437CD83C280915E04A1 +:1040700080FF31C08E7F80935E0460915E047091FA +:104080005F0480916004909161040E948A14809181 +:1040900047038160809347039FEFE0E7F2E0915090 +:1040A000E040F040E1F700C000000F900F900F904B +:1040B0000F900F90DF91CF911F910F91FF90EF9094 +:1040C000DF90CF90BF90AF909F908F907F906F9038 +:1040D0005F900C948E0E816080935E0461E0869503 +:1040E0000F900F900F900F900F90DF91CF911F9135 +:1040F0000F91FF90EF90DF90CF90BF90AF909F9087 +:104100008F907F906F905F900C94B31541EC56E1C7 +:104110006AEC76E10F900F900F900F900F90DF9167 +:10412000CF911F910F91FF90EF90DF90CF90BF90B4 +:10413000AF909F908F907F906F905F900C945D09EF +:104140004AEC56E161EC76E1E5CF4FE755E168E8EE +:1041500075E1E0CF48E855E16FE775E1DBCF47E671 +:1041600055E163E775E1D6CF43E755E167E675E1D1 +:10417000D1CF4BE555E16FE475E1CCCF42EA55E193 +:1041800061E975E1C7CF0F900F900F900F900F90DE +:10419000DF91CF911F910F91FF90EF90DF90CF9023 +:1041A000BF90AF909F908F907F906F905F900C9496 +:1041B000D4160E3D1C4509F0DCC10F900F900F90F6 +:1041C0000F900F90DF91CF911F910F91FF90EF9083 +:1041D000DF90CF90BF90AF909F908F907F906F9027 +:1041E0005F900C94FB16C8010E94F70BF82ECFC10C +:1041F000092F0F70907F11F00295007F812F2223ED +:10420000C9F0002369F090E2910F983010F011117D +:104210000BC080914604082B009346040E94D60BE5 +:10422000812F0E94AB0C17C080919B02082B00933A +:104230009B02F4CF0E94720C002369F00095105E7F +:10424000183010F0B11027C0809146040823009365 +:1042500046040E94D60B98E0E91AF108E4E0EE1655 +:10426000F10408F039CC0E94690E0F900F900F9066 +:104270000F900F90DF91CF911F910F91FF90EF90D2 +:10428000DF90CF90BF90AF909F908F907F906F9076 +:104290005F900C94081680919B02082300939B0268 +:1042A000D8CF892F8F70907F903211F08295807FC8 +:1042B000F1E0BF120CC0222329F0333060F60E94D7 +:1042C000680CC9CF323038F60E945D0CC4CF22236F +:1042D00041F03323A1F340FFA3CF4F70F601458394 +:1042E000EECF332389F3193309F0F5C0FFEF27EE42 +:1042F00033E0F15020403040E1F700C00000812F52 +:104300000E94720CA8CF892F86958695837061F0E4 +:10431000813009F0A0CF812F9370211102C090E06D +:1043200080E00E94040997CF812F9370211102C071 +:1043300090E080E00E941A098ECF892F8370A1F54A +:10434000211189CF812F829586958770880F880FDC +:10435000412F4F70082E01C0440F0A94EAF7212F15 +:10436000207114FF07C02FE030E001C0220F8A95B2 +:10437000EAF72095969596959370923081F0822F6A +:10438000842B933030F480919C02913029F0242BBF +:1043900082230E94590C5FCF842B822BFACF242BCF +:1043A00080919C028227F5CF8695222311F0892FD8 +:1043B0008170882309F44FCF812F8295869587706D +:1043C000880F880F412F4F70082E01C0440F0A94A8 +:1043D000EAF7212F207114FF07C02FE030E001C061 +:1043E000220F8A95EAF720959695969593709230CC +:1043F00081F0822F842B933030F480915D049130D2 +:1044000029F0242B82230E94991625CF842B822BFE +:10441000FACF242B80915D048227F5CF092F0F70EE +:10442000222329F0802F0E94B616812F48CF812F9A +:104430000E945D0C802F0E94AA160DCF812FE1EF04 +:104440001E1789F1E11750F0F0EF1F17B9F0222382 +:10445000B1F13111E5CE892F8F7129C042EF1417C8 +:1044600049F153EF1513F3CF80E0222361F29F71DE +:1044700081E001C0880F9A95EAF7C5CF222379F031 +:10448000323008F0E8CE292F2F7181E090E001C092 +:10449000880F2A95EAF790915D048927B4CF3330CD +:1044A00008F0D9CEF0CF892F8F71222321F20E94FC +:1044B000B616D1CE892F8F712223C9F3BCCF3323F7 +:1044C00079F0893341F48FEF97EEE3E0815090402B +:1044D000E040E1F712CF8FE39CE90197F1F70DCFB0 +:1044E000892F8F71A8CF0031FFE51F0709F47ECC1B +:1044F00001312FE5120709F496CC0E94F808609369 +:104500000403709305038093060390930703F60159 +:104510008281053E110509F417CD08F095CC003EC7 +:10452000110509F48ACC08F080CC0C32110509F48D +:1045300058CDF601928191113CCE80914604827251 +:104540000A3CFCE51F0709F414CE08F06ACD053CCF +:104550003CE5130709F4F9CD08F04ECD033C5CE5CA +:10456000150709F4D3CD08F0EBCD023C1C4509F446 +:104570007DCDF60100811181992309F434CEC80163 +:104580000E940F14F82E682FC8010E941F0CB8015A +:104590008F2D0E9402140E946C0A182FB82EF6016B +:1045A00022814581342F32953F70892F82958F70FB +:1045B000E82EF12C8C3008F04ECEF701EC5CF84C74 +:1045C0000C94CC3100313FE5130709F413CC0131D1 +:1045D0004FE5140709F09BCF82E00DCC85E0DE01AA +:1045E000119601900D928A95E1F7F6012281898159 +:1045F0009A81211186CA0E94F70B182F8ACA1F932D +:10460000CF93DF9380916702807FA9F48091640249 +:10461000882389F080919902D091680260916202AA +:1046200070916302A0916502B0916602C62FC72304 +:1046300016E0D81304C0DF91CF911F91089590E048 +:10464000109711F0CF3F19F401968770F2CF189FA1 +:104650009001199F300D1124F901E759FD4F418157 +:104660004713F2CF40814613EFCF42814111ECCF87 +:10467000438154814A1B5B0B403A510528F78091D6 +:1046800067028F70806180936702F901E259FD4FE4 +:1046900080818F708061808382E692E00E944C1D51 +:1046A000DF91CF911F910C94ED0BAF92BF92CF92FF +:1046B000DF92EF92FF920F931F93CF93DF93CDB7CB +:1046C000DEB761970FB6F894DEBF0FBECDBF8C0189 +:1046D00085E0F801DE011D9601900D928A95E1F7C3 +:1046E000F801E28082E6A82E82E0B82E6091650291 +:1046F000709166026115710509F432C190916202F0 +:1047000040916302892F84238F3F09F429C12081BE +:104710003181C380D480F0906402F601E61BF70B70 +:10472000FF2009F4E8C080916702582F507FE03ADB +:10473000F10508F0ABC0511177C0FE2C431321C026 +:1047400092131FC0E1101DC08F70806180936702BB +:10475000C5010E944C1D80916702F80185838F2D51 +:1047600061960FB6F894DEBF0FBECDBFDF91CF913B +:104770001F910F91FF90EF90DF90CF90BF90AF907F +:104780000895CD2829F0822F83238F3F09F003C19C +:1047900080E0F82FF170DF2E80FF3CC080919902FD +:1047A0004091680256E0841315C02D873E878D85A1 +:1047B0009E850E943E14292F22952F702230F0F002 +:1047C000243018F59F70F1F0F8019581907FD1F4B5 +:1047D000D12C1EC090E0589FF001599FF00D11247C +:1047E000E759FD4F6181361306C06081261303C06F +:1047F0006281E6120FC001968770D5CF9F7011F0CD +:10480000882331F3805E883018F3C8010E944C1D64 +:10481000FD2CA5CFEE2009F4A2CF80916702816024 +:1048200080936702F12C9BCF431306C0921304C000 +:10483000F801EE2009F479C0C8010E944A148823C7 +:1048400009F1EE20F9F080916702803270F020913A +:1048500062023091630238872F831986DB86CA860D +:104860008C87CE0107960E944C1D86E0F801A2E6D7 +:10487000B2E001900D928A95E1F70E94FF22FF2499 +:10488000F3946DCFC8010E944C1DF9CF51110AC09D +:1048900082E692E00E944C1D86E0F50111928A9515 +:1048A000E9F7C0CF43130FC092130DC0E1100BC046 +:1048B000F8018583C8010E944C1D86E0F501119224 +:1048C0008A95E9F74CCFC8010E944A148823D1F297 +:1048D000EE20C1F280916702803238F220916202AC +:1048E000309163023A8329831B82DD82CC828E83DE +:1048F000CE010196B8CFE03AF105F8F6FE2CEE2095 +:1049000009F243131FC092131DC08091670280FDFE +:1049100010C0982F907F69F0F8018583903F31F0A7 +:10492000982F907F905F8F70892B8583C8010E949C +:104930004C1D86E0F801A2E6B2E001900D928A9546 +:10494000E1F70DCFC8010E944A1481118ECF8091EA +:104950006702816080936702C8010E944C1DFFCEF0 +:10496000EE2009F48FCFC8010E944A14F82E882344 +:1049700009F488CF86E0F801A2E6B2E001900D923A +:104980008A95E1F780916202909163020E943E1441 +:104990000E94FF22E4CE81E08E25FBCE1F93CF93B1 +:1049A000DF93CDB7DEB767970FB6F894DEBF0FBEC3 +:1049B000CDBF4B8B5C8B6D8B7E8B8F8B611110927F +:1049C0009B021A8A198A85E0FE017396DE011D9604 +:1049D00001900D928A95E1F786E0FE013D96DE0199 +:1049E000179601900D928A95E1F7CE0107960E94E5 +:1049F0005523882389F016E08091990290916802EE +:104A000089134BC067960FB6F894DEBF0FBECDBFBB +:104A1000DF91CF911F91089586E0FE013796DE0168 +:104A2000119601900D928A95E1F78A859B85892BD5 +:104A300011F38F81988589238F3FE9F220916802D5 +:104A400030E0C90101968770992740919902481773 +:104A5000190681F4109246040E94A30F1092680276 +:104A60001092990286E0E2E6F2E0DF011D928A955B +:104A7000E9F7C1CF96E0929FD001939FB00D11242A +:104A8000A759BD4FFE01319601900D929A95E1F71D +:104A9000809368020E94ED0BAECF819FC00111246C +:104AA00087599D4F0E945523882309F4ABCF8091ED +:104AB000990290E0019687709927809399029CCF84 +:104AC0000F931F93CF93DF93CDB7DEB7A8970FB6A1 +:104AD000F894DEBF0FBECDBF81114DC006E0662346 +:104AE00059F10CA311E01DA31EA30E94F41A8160CA +:104AF000782F98A78FA34CA15DA16EA188A50E94D5 +:104B0000CE240F8F18A319A20E94F41A8160782F67 +:104B10009BA38AA34F8D58A169A18BA10E94CE248B +:104B200081E0A8960FB6F894DEBF0FBECDBFDF912F +:104B3000CF911F910F9108950A8F13E01B8F81E091 +:104B40008C8F0E94F41A8160782F9E8F8D8F4A8DF2 +:104B50005B8D6C8D8E8D0E94CE240D8B1E8B1F8ADB +:104B60000E94F41A8160782F998F888F4D895E8911 +:104B70006F89898DD3CF813099F66623F1F016E0E5 +:104B8000188B198B8A8B0E94F41A8160782F9C8B6A +:104B90008B8B488959896A898C890E94CE241B870E +:104BA0001C871D860E94F41A8160782F9F878E874C +:104BB0004B855C856D858F85B1CF06E00E8318E04F +:104BC0001F8388870E94F41A8160782F9A878987CB +:104BD0004E815F8168858A850E94CE2409831A836D +:104BE0001B820E94F41A8160782F9D838C834981F7 +:104BF0005A816B818D8192CFCF92DF92EF92FF929B +:104C00000F931F93CF93DF930F92CDB7DEB7EE24B0 +:104C1000E394F12C00EC12E09E012F5F3F4F45EB37 +:104C200052E063E082E00E94AF18082F882321F150 +:104C3000C090F4028C2D90E09C012A503D4F7901E8 +:104C40001981F9018081181BD12E80E00AC0DA9405 +:104C5000F70180818F5F808360E08C2D0E9460254A +:104C6000802F1D14A4F3912F17FD90E0191B111133 +:104C70000EC081110E94D40B802F0F90DF91CF9135 +:104C80001F910F91FF90EF90DF90CF9008951F5FDD +:104C9000F70180818150808361E08C2D0E94602526 +:104CA000802FE5CF1F921FB61F9211248F939F93E1 +:104CB000AF93BF9380913D04811113C080913E0456 +:104CC00090913F04A0914004B09141044196A11DF0 +:104CD000B11D80933E0490933F04A0934004B09391 +:104CE0004104BF91AF919F918F911F901FBE1F9064 +:104CF0001895CDB7DEB7E0970FB6F894DEBF0FBEBC +:104D0000CDBF84B7877F84BF0FB6F894A8958091F4 +:104D10006000886180936000109260000FBE80E8A0 +:104D200090E00FB6F89480936100909361000FBEFD +:104D300085B7806885BF85B7806885BF8EE09AE0BB +:104D400090933902809338020E946A070E943508C6 +:104D50008091E20084608093E20078948091530413 +:104D60008823A1F01091E9001F709091EC00892F29 +:104D7000817090FD80E8182B1092E9008091E80086 +:104D800083FD0E94AC0F1F701093E90082E084BD88 +:104D900093E095BD9AEF97BD80936E001092E1026B +:104DA0001092E2021092E3021092E4020E94711447 +:104DB000811102C00E94CD130E94460E80936101B2 +:104DC00080916101882309F4C6C01092760185E2C2 +:104DD000809377010E94460E81110E94B82F809126 +:104DE000610181112FC0FE01359686E0DF011D9221 +:104DF0008A95E9F786E6898387E98A8386EC8B833F +:104E000084E38C8385E38D833497A7E5B1E0CE01FD +:104E10000B9621912D938E179F07D9F787E0ECE72A +:104E2000F1E0DE01919601900D928A95E1F7FE0185 +:104E3000B196A0E5B1E0CE01889621912D938E1711 +:104E40009F07D9F78091610195E0811190E09093DF +:104E5000F20285E0891B8093F10207E511E0FCE591 +:104E6000EF2EF1E0FF2EF80181918F018F3F11F0BD +:104E70000E94120AE016F106B1F700E511E0E7E53D +:104E8000EE2EE1E0FE2ED8018D918D018F3F11F0C5 +:104E90000E94120AE016F106B1F7E7EEF2E081EFA8 +:104EA00092E0ABE3B3E011921D928E179F07D9F702 +:104EB0000E949B19811102C00E94FB1682E090E0C3 +:104EC0000E94E3348093300384E090E00E94E33456 +:104ED000182F82E290E00E94E334982F812F909364 +:104EE000E6028093E5020E94001BEFE3FCE93197A4 +:104EF000F1F700C000000E94001B80913B0380FF7F +:104F00002EC06FEF7FEF90E080E00E94153581E0CA +:104F10008093E00080E28093D8001092C9008FE176 +:104F20009EE40197F1F700C0000087E090EBDC0100 +:104F30008093670690936806A0936906B0936A060B +:104F400088E19CE00FB6F894A895809360000FBEAE +:104F500090936000FFCF85E28093760139CF83E0A4 +:104F600090E00E94E3340E94590C80915D040E94FD +:104F700020160E94460E811102C00E94BB2F83E0C2 +:104F800080932B0380E280932A040E94502E6DE0D0 +:104F900070E089E492E00E94300D892BE9F5809160 +:104FA0002B0363E070E081FDFFC186E492E00E9484 +:104FB000300D892B89F56DE070E086E392E00E9468 +:104FC000300D892B49F50E94F8086058774C8E4FB8 +:104FD0009F4F609331047093320480933304909315 +:104FE0003404E5E6F4E080E092E0DF019C011D92EC +:104FF00021503040E1F7F0936606E09365068FEFAD +:105000009FEF909364048093630481E0809336045F +:105010008093350410922C038091F302811136C0E5 +:105020000E949B19811104C00E94FB160E94E31686 +:1050300088E090E00E94EB3460935E0470935F041C +:105040008093600490936104809147038360809310 +:1050500047036E7F71F40E94E31688E090E00E949F +:10506000EB3460935E0470935F04809360049093CC +:1050700061040E94620980915E0480FF04C060E0C8 +:1050800086950E94B31581E08093F30280916101BF +:10509000811106C084EF80936D0185EF80936C01D0 +:1050A00020916D01A22FA295AF70B0E091963C9136 +:1050B00091972F7081E090E0BC01022E01C0660F35 +:1050C0000A94EAF7462F4095432391964C93919783 +:1050D00092963C919297362B92963C939297409160 +:1050E0006C01E42FE295EF70F0E031A14F70042ED7 +:1050F00001C0880F0A94EAF7982F9095932391A303 +:1051000092A1892B82A390968C9190E002C09595F4 +:1051100087952A95E2F7817020A130E002C035958D +:1051200027954A95E2F792E020FF90E0892B809343 +:10513000FA029091610181E098279093F902891B0E +:105140008093F40286E592E090934B0380934A03A8 +:1051500060E08AE00E94B31581E00E94991682E621 +:1051600091E090933A048093390470E4672ECE0165 +:1051700001967C0180915304DD24D39400E112E177 +:10518000853009F45EC10E94001BC82E81110E9467 +:10519000F808E1E3F3E0ABE3B3E010E000E0902EC9 +:1051A000BD9081918B1509F476C18B25A12CDD244E +:1051B000D3949D2D982309F469C10E94460E88233B +:1051C00099F0A9A29AA2BD2081E009F480E08BA306 +:1051D0000E94F41A8160782F9DA38CA349A15AA143 +:1051E0006BA18DA10E94CE24F801EF5CFC4F808161 +:1051F000D826D0828091FA02E82FEE0FEE0F909120 +:105200006D01A92FA295AF70B0E090962C9130E07F +:105210009F7002C0359527959A95E2F72170332744 +:1052200090916C01A92FA295AF70B0E090964C912F +:1052300050E09F7002C0559547959A95E2F7CA01D4 +:105240008170992740FF02C082E090E0822B8E2B74 +:105250008093FA021091F9028F70E82FF0E0EC5F72 +:10526000FD4F80819091F802890F8093F802D12C34 +:1052700084306CF0E12FF0E0EA50FD4F80818F5FC9 +:10528000808360E0812F0E946025DD24D39480918B +:10529000F8028D3F6CF4E12FF0E0EA50FD4F808181 +:1052A0008150808361E0812F0E946025DD24D394AA +:1052B0008091F802082E000C990B64E070E00E94C7 +:1052C00099318093F802D1100E94D40B809136045A +:1052D000882351F180912D0390912E030E94E51AAD +:1052E000C29708F0EFC02091630430916404211547 +:1052F000310509F049C2809135048823A9F00E9444 +:10530000F808009131041091320420913304309157 +:105310003404601B710B820B930B6F3F7F4F8F4FD9 +:105320009F4710F40E94600DC11001C0D1100E946F +:105330007B0D0E94690E90912F03891731F00E9416 +:10534000690E80932F030E940816809153048430C5 +:1053500009F010CF83E08093E9008091E80082FF9C +:1053600009CF8091E80090E085FF0CC00E9489077A +:1053700030E2C32ED12C8E010F5F1F4F882309F41A +:10538000E2C291E08091E8008B778093E800992356 +:1053900009F4F0CEE981E150E33108F036C3F0E0E2 +:1053A000E05CF84C0C94CC3183E492E000CE809128 +:1053B0005304843009F435C00E94600D80E00E94DF +:1053C000081680914903811109C0D0924903809148 +:1053D0005E0481708093F5020E948E0F10923D044E +:1053E000A8E1B0E00FB6F894A895A09360000FBEB6 +:1053F0006092600083B7817F846083BF83B78160E0 +:1054000083BF7894889583B78E7F83BF0FB6F89457 +:10541000A895809160008861809360001092600080 +:105420000FBE80915204882361F00E94001BEBE3C1 +:10543000F3E08191811113C425E433E02E173F0777 +:10544000C1F780915304853009F4B1CF109246041E +:105450000E94A30F0E94690E0E9408161092490331 +:105460008091F502882351F080915E0481608093E1 +:105470005E0460E086950E94B31585CE8091480356 +:10548000882309F480CE0E948E0E7DCEA394DD0C7D +:1054900037E0A3128ECE0F5F1F4F0A30110509F0BF +:1054A0007ECE8FEF88A789A71AA60E94F41A816082 +:1054B000782F9CA78BA748A559A56AA58CA50E9403 +:1054C000CE2498CE0E94F41A90932E0380932D033D +:1054D00060E080E00E9430098091FB0290E09093B0 +:1054E0000A03809309030E94690E809308030E94B7 +:1054F000460E882331F140910403509105036091D9 +:105500000603709107032FB7F89480913E049091A1 +:105510003F04A0914004B09141042FBF841B950B20 +:10552000A60BB70B81339547A105B10540F00E944A +:10553000600D80913604882309F4DDCED4CE0E941C +:105540007B0D0E94460E62E0882309F4DEC080E0F5 +:105550000E94300960E083E891E00E94341363E028 +:1055600080E00E94300980915D040E941F0D81300F +:1055700009F497C0882309F48EC0823009F499C0D9 +:10558000833009F492C066E080E00E94300960E058 +:1055900081EA91E00E94341367E080E00E943009C4 +:1055A000609108036695617086EA91E00E94341369 +:1055B00068E080E00E9430096091080360956170A6 +:1055C0008BEA91E00E94341369E080E00E94300988 +:1055D0006091080362FB662760F98FEA91E00E9400 +:1055E00034134091000350910103609102037091C4 +:1055F00003032FB7F89480913E0490913F04A0914B +:105600004004B09141042FBF841B950BA60BB70B30 +:105610008D329140A105B10508F48BCF0E94F808A6 +:10562000609300037093010380930203909303033C +:105630008091FF02811104C080916E0181113DC0F3 +:105640006FE080E00E94300960E084EB91E00E940E +:1056500034136CE080E00E94300981E080936E0199 +:105660008091FE0290E00196817099278093FE025E +:1056700021E030E0281B390B40E6429FC001439FE8 +:10568000900D11242091FD02222329F18A599A4F6D +:105690000E9427074ECF60E089E891E00E94341312 +:1056A00072CF60E08FE891E0F9CF60E085E991E0AA +:1056B000F5CF60E08BE991E0F1CF6CE080E00E94F3 +:1056C000300960E084EB91E00E9434136DE080E0EB +:1056D0000E943009C5CF2091FC02222319F08A557F +:1056E0009B4FD6CF2091090330910A032B3031050F +:1056F0001CF48A519C4FCCCF293231051CF48A5DB1 +:105700009C4FC6CF8A599D4FC3CF80E00E9430097D +:1057100060E08AEB91E00E94341363E080E00E9435 +:10572000300960E080EC91E00E94341367E080E093 +:105730000E94300986E296E00E9427076DE080E033 +:105740000E94300980910A038F93809109038F93FF +:1057500086EC91E09F938F93FF92EF920E945132DB +:1057600060E0C7010E9434136EE080E00E943009BF +:1057700060E08CEC91E00E9434130F900F900F903A +:105780000F900F900F90D5CE80912C0361E070E0C8 +:105790008111B1CD482E512C1B01082E02C0220CC4 +:1057A000331C0A94E2F7A90142215321452B09F445 +:1057B00048C090912B0390FD46C08295880F80765B +:1057C0008093710192013695279536952795209300 +:1057D0007401815E809372011092750124E630E0BD +:1057E00047E050E06FE671E088E70E94FF2E892BCA +:1057F00009F081CD55E0440C551C5A95E1F7809194 +:105800002B0380FD2EC0A2014B595B4F04E610E034 +:1058100020E230E060E488E70E94262F892B09F01F +:105820006ACD0E947B0DC101809590952090630404 +:105830003090640428223922309264042092630458 +:105840005ACD8F5FA7CF880F880F880F8093710183 +:1058500010927401895F8093720183E080937501D7 +:10586000BDCFEBE0F3E080E2DF011D928A95E9F71E +:10587000E8E1F2E0F8ABEFA764E172E047E0A42EC4 +:1058800099249394AFA5B8A94D91B8ABAFA7FB01EC +:105890008191BF01840D952D911D9C012B593B4F8A +:1058A0003EA72DA7E42FF0E0E55FFC4F30E020E0BD +:1058B0007A2C721AB92C022E01C0BB0C0A94EAF79A +:1058C0000DA51EA590E0D8018D918D018B21472D4E +:1058D000491B4770842E042E000C550BB82F01C0B5 +:1058E000BB0F8A94EAF78B2E519541955109477069 +:1058F000552701C086954A95EAF7882A8081882A2B +:1059000080829F5F9830F9F62F5F3F4F31962830A5 +:10591000310571F6ECE1F2E02FA538A9E217F307A3 +:1059200009F0B0CF04E610E020E230E04BE053E0B5 +:1059300071CF8091F100D8018D938D01B1E0CB1A28 +:10594000D10809F41ECD8091E80085FDF2CF809149 +:10595000E8008B778093E8000E948907882399F3F9 +:1059600010CD1A8289E08B8311C08A81823009F4BC +:105970008EC1833089F1813009F047C00E94F80858 +:105980000E94D2316B837C838D839E8380915304EC +:10599000843009F0EFCB1091E9001F709091EC007A +:1059A000892F817090FD80E8182B82E08093E900B8 +:1059B0008091E80080FF0CC050E040E060E270E0C1 +:1059C000C7010E94BA078091E8008E778093E800B3 +:1059D0001F701093E900CECBDE011396EBE3F3E0EA +:1059E00081918D9323E0E534F207D1F7CFCF8A81FF +:1059F000823059F46B817C818D819E810E94D231ED +:105A000086E290E00E94F734C1CF8FEF8983BECF4A +:105A10004C816B818A810E94DC1398278927982703 +:105A20009E838D83B3CF0D811E8110270127102700 +:105A30008A81CB803EE0C39E600111249CE8899F4F +:105A4000C00CD11C11248C8190E0880F991FC80EC6 +:105A5000D91E612FC60187960E94F734602FC601B8 +:105A60008896D0CF0E94601391CF8A818138C1F08F +:105A700060F4803809F08ACF20E04B8160916004A7 +:105A800080915F040E949C1481CF8238E9F08338B2 +:105A900009F07CCF20E0409161046C818B81F2CFD2 +:105AA00060E08B810E94B3158B81811103C00E943D +:105AB0008E0F6CCF80915E04816080935E0460E005 +:105AC00086950E94B31562CF8B81809362045ECF6E +:105AD0008A81813899F030F4803809F057CF80916D +:105AE000610441CF823891F0833809F04FCF809123 +:105AF0005F048B83809160048C8348CF80915E0427 +:105B000080FF02C086952FCF80E02DCF8091620468 +:105B10002ACF60915E0470915F048091600490913F +:105B200061040E948A1432CF80E18A832FCF81E002 +:105B30008A8389EA18CFAA80BB80BA24AB24BA240E +:105B40008E010F5F1F4FCC80C00ED12ED11CC5011E +:105B5000895A9D4F0C151D0509F418CFA9EAAA16FC +:105B6000A1E0BA0650F40E94E334F8018483BFEF49 +:105B7000AB1ABB0A0F5F1F4FEACFD80114961C92D5 +:105B8000F6CF0A811B81102701271027FE013196CD +:105B90005F01CC80C00ED12ED11CC801895A9D4F07 +:105BA000C016D10609F4F2CE093AF1E01F0728F435 +:105BB000D50114966C910E94F734BFEFAB1ABB0A63 +:105BC0000F5F1F4FEACF0E945013E0CE84E0ADCFAD +:105BD000AA80BB80BA24AB24BA248E010F5F1F4F6A +:105BE000CC80C00ED12ED11CC5018796C016D1061F +:105BF00009F4CCCEE0E3AE16E2E0BE0658F40E9413 +:105C0000E334D80114968C93FFEFAF1ABF0A0F5FED +:105C10001F4FEACFF8011482F7CF0A811B811027AA +:105C2000012710279E012F5F3F4F5901CC80C00EE6 +:105C3000D12ED11CC8018796C016D10609F4A6CE74 +:105C4000003332E0130728F4D50114966C910E94BA +:105C5000F734BFEFAB1ABB0A0F5F1F4FEBCF09BD85 +:105C600019BD09B400FEFDCF8091D8008F7D8093CF +:105C7000D8008091E00082608093E0008091E00095 +:105C800081FDFCCF109246040E94A30FDACB86E27E +:105C900090E00E94E3341B821C821D828E8376CEAC +:105CA0001092B9008CE08093B80008959F92AF9253 +:105CB000BF92CF92DF92EF92FF920F931F93CF93F9 +:105CC000DF93B82EEB010E94F41A6C01EE24E394EA +:105CD000F12CC431D10560F025E0E22EF12CCF3F4C +:105CE000DC0731F0CE0164E170E00E9479317B0184 +:105CF00084EAA82E94E8992E1092BC00A092BC00D1 +:105D00000E94F41A8C018091BC0087FF0DC0809125 +:105D1000B900887F883039F18091B900887F80315F +:105D200011F10FEF1FEF09C00E94F41A801B910BB5 +:105D30008E159F0540F30EEF1FEFCF3FDC07E1F21A +:105D4000C6010E94E51A8C179D07B0F2C801DF91C9 +:105D5000CF911F910F91FF90EF90DF90CF90BF9068 +:105D6000AF909F900895B092BB009092BC000E94AB +:105D7000F41A8C018091BC0087FF0AC08091B900A1 +:105D8000887F883111F0803461F610E000E0DECFCA +:105D90000E94F41A801B910B8E159F0558F3CBCFF0 +:105DA0000F931F93CF93DF93EB018093BB0084E8A5 +:105DB0008093BC000E94F41A8C018091BC0087FF84 +:105DC00011C02091B900287F81E090E0283211F4C1 +:105DD00090E080E0919581959109DF91CF911F919D +:105DE0000F910895CF3FDC0741F30E94F41A801B06 +:105DF000910B8C179D0708F38EEF9FEFEECFCF929C +:105E0000DF92EF92FF920F931F93CF93DF936B017B +:105E10008A017901B9010E94562EE6010C0D1D1D63 +:105E2000C017D10761F424E92093BC00DF91CF9122 +:105E30001F910F91FF90EF90DF90CF90089597FD05 +:105E4000F2CFB70189910E94D02EEACFCF92DF9294 +:105E5000EF92FF920F931F93CF93DF93C62F6A01A8 +:105E60007901B8010E94562E97FD0CC0B8018C2F05 +:105E70000E94D02EE601EC0CFD1CCE15DF0511F0C2 +:105E800097FF0CC024E92093BC00DF91CF911F91B4 +:105E90000F91FF90EF90DF90CF900895B801899116 +:105EA0000E94D02EEACF84E98093BC0008958EE151 +:105EB0004A9B02C08150E1F74A9BFECF08955A9851 +:105EC00080E28A95F1F75A9A0895FC013BE03A95F1 +:105ED000F1F798E020E080E031E040E14A95F1F709 +:105EE000880F4A9B02C08160232742E04A95F1F760 +:105EF000000040E14A95F1F7915079F790E19A95C9 +:105F0000F1F799B132E03A95F1F7000040E14A9596 +:105F1000F1F792FB992790F992272081920F9083B5 +:105F20000895EF92FF920F931F93CF93DF930F92F9 +:105F3000CDB7DEB719828C017C01E60EF11C0E157F +:105F40001F0561F481E09981911180E00F90DF914C +:105F5000CF911F910F91FF90EF9008950E94572FBE +:105F6000CE0101960E94652FF80181938F01E7CF42 +:105F7000529A5A9A089552985A9AEA9AE9E6F0E0A3 +:105F800080818F7C808308956150770B91E001C000 +:105F9000990F6A95EAF720E031E0911108C02223B9 +:105FA00091F05A9A80E28A95F1F75A980895492F0C +:105FB000482339F05A9A232740E24A95F1F79695FB +:105FC000ECCF5A98F9CF5A98EDCFFF920F931F93C9 +:105FD000CF93DF93EC018C01060F111DC017D10781 +:105FE00031F4DF91CF911F910F91FF900895F990B7 +:105FF0000E945F2F68E08F2D0E94C42FEFCF1F9269 +:106000000F920FB60F921124EF92FF920F931F93EE +:106010002F933F934F935F936F937F938F939F93B0 +:10602000AF93BF93EF93FF93CF93DF930F92CDB7CF +:10603000DEB719820E94572FCE0101960E94652F6C +:10604000A82FA695A695A695282F229525709A2F5C +:106050009570290F922F937026952695920F982769 +:1060600097708981982B09F075C0A93008F072C02B +:1060700080E18A95F1F75A9A529AB2E0BA95F1F70F +:1060800000C05A98EA2EF12CEAE0AE9FD00111240C +:10609000A050BF4F1896ED91FC9119973097B1F031 +:1060A000609102027091030216962D913C91179710 +:1060B000260F371F13968D919C911497680F791FA7 +:1060C00015964C91159712968C9109958AE08E9DA4 +:1060D000F0018F9DF00D1124E050FF4F6581662384 +:1060E00051F0209102023091030286819781820F44 +:1060F000931F0E94E52F0E945F2FF0E1FA95F1F7C0 +:106100005A9852985A9A80E18A95F1F78AE08E9DC2 +:1061100080018F9D100D112400501F4FD801129641 +:106120006C911297662371F1209102023091030263 +:1061300013968D919C91820F931F0E94912FD801ED +:10614000ED91FC91882311F088E001C082E080830A +:106150000E94572F0F90DF91CF91FF91EF91BF9148 +:10616000AF919F918F917F916F915F914F913F91EF +:106170002F911F910F91FF90EF900F900FBE0F90F6 +:106180001F901895ED91FC91DFCF0F931F93CF9344 +:10619000DF93EC0109970CF0A9C08AE08C9FF00115 +:1061A0008D9FF00D1124E050FF4F80819181892B4C +:1061B00009F49CC0F894529A5A9885E08A95F1F7B0 +:1061C00000008C2F869585709C2F9570890F982FD5 +:1061D000937086958695890F8E0193E0000F111FAD +:1061E0009A95E1F7082B0E945F2F00C068E0802F8E +:1061F0000E94C42FA0E1AA95F1F752985A9A4A9B9F +:1062000027C087E090E04A9925C08AE08C9F8001F2 +:106210008D9F100D112400501F4FF80165816623DA +:10622000A1F1209102023091030286819781820FB1 +:10623000931F0E94912F811128C0529A5A9AD80117 +:10624000ED91FC9182E08083789482E090E016C02A +:1062500000C0D5CF0197B9F4529A5A9A8AE08C9F20 +:10626000F0018D9FF00D1124E050FF4F0190F0815F +:10627000E02D81E08083789481E090E0DF91CF9100 +:106280001F910F91089500C0BECF0E94572FB0E21A +:10629000BA95F1F75A98529AE0E1EA95F1F78AE057 +:1062A0008C9FF0018D9FF00D1124E050FF4F628113 +:1062B000662351F020910202309103028381948180 +:1062C000820F931F0E94E52F0E945F2F8AE08C9F10 +:1062D000F0018D9FF00D1124E050FF4F0190F081EF +:1062E000E02D1082789490E080E0C8CF84E090E0C8 +:1062F000C5CFAA1BBB1B51E107C0AA1FBB1FA61716 +:10630000B70710F0A61BB70B881F991F5A95A9F75E +:1063100080959095BC01CD010895991B79E004C04A +:10632000991F961708F0961B881F7A95C9F78095D4 +:10633000089597FB072E16F4009407D077FD09D037 +:106340000E94793107FC05D03EF4909581959F4FCE +:106350000895709561957F4F0895052E97FB1EF463 +:1063600000940E94C43157FD07D00E94D93107FC28 +:1063700003D04EF40C94C43150954095309521953E +:106380003F4F4F4F5F4F0895909580957095619561 +:106390007F4F8F4F9F4F0895EE0FFF1F0590F49191 +:1063A000E02D09946927962769277827872778277A +:1063B0000895A1E21A2EAA1BBB1BFD010DC0AA1F46 +:1063C000BB1FEE1FFF1FA217B307E407F50720F05E +:1063D000A21BB30BE40BF50B661F771F881F991FD9 +:1063E0001A9469F760957095809590959B01AC0122 +:1063F000BD01CF0108952F923F924F925F926F920D +:106400007F928F929F92AF92BF92CF92DF92EF9244 +:10641000FF920F931F93CF93DF93CDB7DEB7CA1BC5 +:10642000DB0B0FB6F894DEBF0FBECDBF09942A88F0 +:10643000398848885F846E847D848C849B84AA8498 +:10644000B984C884DF80EE80FD800C811B81AA8125 +:10645000B981CE0FD11D0FB6F894DEBF0FBECDBFF0 +:10646000ED010895FB01DC0102C005900D92415041 +:106470005040D8F70895FB01DC0104C08D910190D4 +:10648000801921F441505040C8F7881B990B08959A +:10649000FB01DC0102C001900D9241505040D8F741 +:1064A0000895AEE0B0E0E7E5F2E30C9409320D891F +:1064B0001E8986E08C831A8309838FEF9FE79E8372 +:1064C0008D83AE01475E5F4F6F89788DCE01019657 +:1064D0000E9474322F813885020F131FF801108239 +:1064E0002E96E4E00C942532ABE0B0E0EAE7F2E36C +:1064F0000C94FB317C013B018A01FC01178216825E +:10650000838181FFB9C19AE0292ECE0101965C01F9 +:10651000F7019381F30193FD859193FF81913F01F1 +:10652000882309F446C1853239F493FD859193FFA0 +:1065300081913F01853229F4B70190E00E945534E2 +:10654000E7CF912C412C512CFFE1F51538F08B321F +:1065500009F188F4803201F1833221F157FC3AC00D +:1065600020ED280F2A3040F556FE1FC0929C200DCA +:106570001124922E06C08D3291F0803379F7689401 +:1065800050F8F30193FD859193FF81913F018111B3 +:10659000DBCF20C0689451F8689452F8F2CF689429 +:1065A00053F8EFCF689454F8ECCF429C200D11249F +:1065B000422E689455F8E5CF8E3229F456FCF9C086 +:1065C000689456F8DECF8C3619F4689457F8D9CF12 +:1065D0008836B9F2982F9F7D95549330C0F083365A +:1065E000A1F18337C1F1833509F05BC0F801C19097 +:1065F000D1908F01692D70E056FC02C06FEF7FEFE4 +:10660000C6010E943F344C01689457F80AC00C5FE1 +:106610001F4F2FE3298388248394912C6501E894EC +:1066200057F853FC04C04814190409F018F5342C29 +:106630008114910431F5332009F46ACFB70180E267 +:1066400090E00E9455343A94F6CFF8018081898316 +:106650000E5F1F4FE0CFF801C190D1908F01692DDF +:1066600070E056FC02C06FEF7FEFC6010E944A3413 +:106670004C01D5CFB70180E290E00E9455344A9496 +:10668000D2CFF60157FC859157FE81916F01B7017A +:1066900090E00E94553431103A94F1E08F1A91083D +:1066A000C7CF843619F0893609F074C0F80157FE57 +:1066B0006AC061917191819191918F01252D2F7601 +:1066C000D22E97FF09C090958095709561957F4F68 +:1066D0008F4F9F4F6894D7F82AE030E0A5010E94C1 +:1066E0008534C82ECA188C2C5D2CD6FE0CC0E894BC +:1066F00050F8C91440F4D4FE05C0D2FC03C0FD2DEF +:10670000FE7E5F2E892C54FE8FC0FE01EC0DF11D24 +:106710008081803309F081C0252D297E522E852D60 +:106720008870382E53FC8FC050FE89C09C2C841476 +:1067300018F44C0C942C981854FE8BC0B70180E3CD +:1067400090E00E94553452FE09C088E790E051FE67 +:1067500002C088E590E0B7010E945534C91408F4DE +:1067600084C0CA94D12C9FEFC91AD90ACA0CDB1C69 +:10677000F60182916F01B70190E00E945534AC148C +:10678000BD04B1F758CF61917191072E000C880BB1 +:10679000990B93CFD52CE894D4F82AE030E08537D4 +:1067A00039F1952D997FD92E8F3601F148F488352E +:1067B000A9F0F701868197812B96E2E10C941732BC +:1067C000803749F08837A9F7D4FE02C06894D2F820 +:1067D00020E130E00DC06894D4F8F6CF54FE03C039 +:1067E000E92FE660DE2E20E132E002C028E030E052 +:1067F000F801D7FE0DC061917191819191918F0146 +:10680000A5010E948534C82ECA18E894D7F86BCF2A +:106810006191719190E080E0F2CF52FC02C08394CC +:106820007ECF839483947BCF852D867809F477CFB0 +:10683000F6CFB70180E290E00E945534839484142F +:10684000C0F3312C79CF342C3818841408F474CF69 +:10685000F8CF852D867809F481CF8BE251FE80E256 +:1068600057FC8DE2B70190E077CFB70180E390E06D +:106870000E9455349A9472CF8FEF9FEF9DCFFC0109 +:106880000590615070400110D8F7809590958E0F5B +:106890009F1F0895FC016150704001900110D8F7CE +:1068A000809590958E0F9F1F08950F931F93CF9300 +:1068B000DF93182F092FEB018B8181FD09C01FEF9A +:1068C0000FEF812F902FDF91CF911F910F9108959E +:1068D00082FF14C02E813F818C819D81281739074A +:1068E0003CF4E881F981CF01019699838883108374 +:1068F0008E819F8101969F838E83E3CFE885F98502 +:10690000812F0995892BA1F3DACFFA01AA27283024 +:1069100051F1203181F1E8946F936E7F6E5F7F4F6C +:106920008F4F9F4FAF4FB1E03ED0B4E03CD0670FE8 +:10693000781F891F9A1FA11D680F791F8A1F911D3B +:10694000A11D6A0F711D811D911DA11D20D009F48B +:1069500068943F912AE0269F11243019305D3193CD +:10696000DEF6CF010895462F4770405D4193B3E0B6 +:106970000FD0C9F7F6CF462F4F70405D4A3318F05D +:10698000495D31FD4052419302D0A9F7EACFB4E00E +:10699000A6959795879577956795BA95C9F70097C6 +:1069A0006105710508959B01AC010A2E0694579567 +:1069B000479537952795BA95C9F7620F731F841FBE +:1069C000951FA01D0895F999FECF92BD81BDF89A3B +:1069D000992780B50895A6E1B0E044E050E00C941A +:1069E0001D35A8E1B0E042E050E00C941D35262FA3 +:1069F000F999FECF92BD81BDF89A019700B40216B5 +:106A000039F01FBA20BD0FB6F894FA9AF99A0FBE62 +:106A100008950396272F0E94F8340E94F734252FFB +:106A20000E94F834242F0C94F8340196272F0E94EA +:106A3000F8340C94F734DC01CB01FC01F999FECF5A +:106A400006C0F2BDE1BDF89A319600B40D924150F6 +:106A50005040B8F708955058BB27AA270E944335E5 +:106A60000C945B360E944D3638F00E94543620F06C +:106A700039F49F3F19F426F40C944A360EF4E0954D +:106A8000E7FB0C941B36E92F0E946C3658F3BA17BB +:106A9000620773078407950720F079F4A6F50C9434 +:106AA000A6360EF4E0950B2EBA2FA02D0B01B901DE +:106AB00090010C01CA01A0011124FF27591B99F074 +:106AC000593F50F4503E68F11A16F040A22F232F80 +:106AD000342F4427585FF3CF469537952795A795D0 +:106AE000F0405395C9F77EF41F16BA0B620B730B77 +:106AF000840BBAF09150A1F0FF0FBB1F661F771FE8 +:106B0000881FC2F70EC0BA0F621F731F841F48F49C +:106B1000879577956795B795F7959E3F08F0B0CF25 +:106B20009395880F08F09927EE0F9795879508950C +:106B30000E948E3690F09F3748F4911116F40C9411 +:106B4000A73660E070E080E89FE3089526F01B160A +:106B5000611D711D811D0C9421360C943C360E94E0 +:106B6000743688F09F5798F0B92F9927B751B0F035 +:106B7000E1F0660F771F881F991F1AF0BA95C9F7C1 +:106B800014C0B13091F00E94A636B1E008950C9483 +:106B9000A636672F782F8827B85F39F0B93FCCF336 +:106BA000869577956795B395D9F73EF4909580953E +:106BB000709561957F4F8F4F9F4F0895E89409C05E +:106BC00097FB3EF490958095709561957F4F8F4F20 +:106BD0009F4F9923A9F0F92F96E9BB279395F69536 +:106BE000879577956795B795F111F8CFFAF4BB0FB4 +:106BF00011F460FF1BC06F5F7F4F8F4F9F4F16C018 +:106C0000882311F096E911C0772321F09EE8872FA1 +:106C1000762F05C0662371F096E8862F70E060E05D +:106C20002AF09A95660F771F881FDAF7880F9695D6 +:106C3000879597F9089597F99F6780E870E060E07D +:106C40000895882371F4772321F09850872B762FAD +:106C500007C0662311F499270DC09051862B70E070 +:106C600060E02AF09A95660F771F881FDAF7880F81 +:106C70009695879597F908959F3F31F0915020F4AC +:106C8000879577956795B795880F911D9695879508 +:106C900097F908959FEF80EC089500240A94161642 +:106CA000170618060906089500240A9412161306FA +:106CB000140605060895092E0394000C11F4882388 +:106CC00052F0BB0F40F4BF2B11F460FF04C06F5FA4 +:106CD0007F4F8F4F9F4F089557FD9058440F551F7A +:106CE00059F05F3F71F04795880F97FB991F61F04E +:106CF0009F3F79F087950895121613061406551FC5 +:106D0000F2CF4695F1DF08C0161617061806991F30 +:106D1000F1CF869571056105089408950E94743637 +:106D2000A0F0BEE7B91788F4BB279F3860F41616A9 +:106D3000B11D672F782F8827985FF7CF86957795B5 +:106D40006795B11D93959639C8F30895E894BB27CC +:106D500066277727CB0197F908950E94C0360C94D7 +:106D60005B360E944D3638F00E94543620F0952351 +:106D700011F00C941B360C944A3611240C94A7364F +:106D80000E946C3670F3959FC1F3950F50E0551F2C +:106D9000629FF001729FBB27F00DB11D639FAA2770 +:106DA000F00DB11DAA1F649F6627B00DA11D661FBF +:106DB000829F2227B00DA11D621F739FB00DA11DE0 +:106DC000621F839FA00D611D221F749F3327A00D9A +:106DD000611D231F849F600D211D822F762F6A2F36 +:106DE00011249F5750409AF0F1F088234AF0EE0F9B +:106DF000FF1FBB1F661F771F881F91505040A9F7C8 +:106E00009E3F510580F00C941B360C94A7365F3FD3 +:106E1000E4F3983ED4F3869577956795B795F79503 +:106E2000E7959F5FC1F7FE2B880F911D969587957B +:106E300097F90895F894FFCF9310BB100E11BB1073 +:106E40000E11EE1026110E11231230125C145C1478 +:106E50006514651467146514651465145C145C147A +:106E60006C14651465146C14F820F820512151211C +:106E700083212B212B212B219D210E221E221E221C +:106E8000B12CB52CF72C082D132D322D352D682D56 +:106E9000892D052D052D942D972D9B2DC12DE32D8D +:066EA000E62DE82D0D2E89 +:106EA600420200000001000000004202000000054E +:106EB600010000004202000000010600000042023C +:106EC6000000000107000000420204080000000064 +:106ED60000004202090C00000000000042020115F9 +:106EE6000000000000004202011600000000000041 +:106EF60036323331F7F6676697C634350000000040 +:106F06000001F508D50DF408D10DCD0DF4F50100FD +:106F160021007F220003004A004A4A01F6F7313376 +:106F26003236674C4159455200426173652000472D +:106F3600616D6520005261697365004C6F776572FB +:106F4600004C4F434B0043617073004E756D005308 +:106F560063726C00202020202000534F4C415200C9 +:106F6600544D505354002025303364002077706D03 +:106F760000818283E200E900EA00B500B600B700AE +:106F8600CD008301CC008A019201940121022302E3 +:106F960024022502260227022A02B300B4006F004B +:106FA6007000B90200FF0100010000FFFF000001B0 +:106FB6000001FF0000081018181008000001020266 +:106FC600020202020202020240223246012401F2B9 +:086FD600002B0D440D640D00B9 +:00000001FF From 909427ab27562829fd2d5631ef51471ac7892591 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 9 Sep 2021 00:05:55 -0400 Subject: [PATCH 10/94] Changed RGB enable to noeeprom. --- .../gmmk_pro_ansi_solartempest.bin | Bin 36500 -> 36480 bytes .../pro/ansi/keymaps/solartempest/jonavin.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin index 3481afb8006b1bdc0cad4b34feceaae578623dd4..c07d4f2fe74825593fbfff7605d766b5dcf2d481 100644 GIT binary patch delta 3154 zcma);e^gXu8pq$~&J1%A24)x#CNS>INDKm-ERu4JU_b|zEKvz?wa74K(;PwyQx{N4 zENz!wE6rS~&6AaG!fjS?8L_bSbj-6*cosEMk9h{yTrZN{8JIhFpUX~cr?Y?TJ?Ha2 z@B4k8_kHhuf8IR@n1%z)AJRb6lAg z5_o=H$VU)=c2pK`2fpys))V%$g>V}p38#0d9csZwGg+(gm>-Jb8dx{!u0zjEms-%# zDt0Ce(|6cx=;tr7NsLL|NZ5FUAW=vnl8R(fQ`jxoMz!I^jK7O63*Q5OqqoE3tuX2y zV)N8O<%wA?Fl!vL_>r9AP&-sY23ij7!!%uI%6LpBw&C9YC@UpmyBW;?1@qT~`IiI4 zb~%_Q^aWj~E@3-i{o4rpHrjBS6Oj!?^o0mJOrxC<@lZ?8N7$J$FO7@LgNw90QjuyS zU9o9$qt@A<%@H9?Cc@Wp{vEwjBRoy*`k3s=@@Lv*{Y%hyH$Vh;(6`9Dgd6f~w?*`+ z1dUvvo!?)G5#M3NkzhnF{k=X0O6ehefn7XFhRal!+9#)m46qB_L;Ad5dyPaTjGeq~ z(_8@Is$bDSXmjh`r*(uog0IiIh^?%5t1S|HI7(9tR@hG$8cgsiU2Q0g*`u_`eAPaA zntDJPP{OH%w`h;ye%Q^A7{UNPqjJdL$IPT+jQA`vBaO#+=bU zhtq(yhD|Qv{BAzACT zJ@ni#T>#*HN!p5BnHl3tyTv2=U+hi6D9br)ZW}rPZ95#ed1l zurY#zKAK#^9O|OI$#L{bGK;9`P%;MtG}M->u{GgL(1o@v9Q|#!s$hB8cGMt@h2dvd z>r&f7aU2*yPd`pc(bbMILNR`Z!YclH3T5CR-I!(tBR!B-08V-}Egn|#Qd*A|D)~=m z#51T3K9C7ZsbQuOmhwq6&oF3iWe#p;%IC zn6MPr&6<@3z;?@KrEX-mvygS&hdHgxx<74Ka++>j+ng+3u*izJi(5|PBf>tPG9!S> zISi1+YqBiz^lX7OWv7o!X=kr zuPQa77gA&Uh_HpeIVTaC=mT=?@W@t`^SFlyC%qL;9&MLbHR&m5tMjPmm>0;^ zy1WyXDGlvJ;JxqtLiyCYALGCB?#0yTz5EMrnRnMOl&8JhJZjEaxR@|E!EnsN(E7QC zUrh?AnKcOkF(mL_J6F)qKFd7|zttow9}-*#MBIl$=dA=A!|BS#{{yGv+ z-Xw|bga^NChpYilmIDs^#glY>VK&U99~5R}CQH}awRpN|1g#3Vy?LkF{bIB<%kdrB zNs=}#O7UobJDlep@{W5WsBYdc6XJhuew;?*_lwm=v9lGe?W4X}9Pbn<~_<^n}%P?K+Qnuy$0qs0lyb`eAX`YTpHO|~W>BnWMp}WQ; zvESzxzoFO4noJ@#_a!obe1i-jKOl?w#_~uAJ={##^ksyt=Jzd21-!F9{|y?E4lj>| zUK+ZhK(lBkVVCp8D{2|M@y#4`T=HCbw19d?tm zny?$tKF?RLja9*Bx^w+OOjDdaF`H3lT`K(Gug32SSv=LTi$b+A=j{p4$)M**$B_x` zlc4r)N7sb*VNl!K@g*(B7QUJAyb<(l@A!T~+ZEJa?C?)$TZ5XjBb>fdZH!5H`KPyg zHt1R2kw(9$_TWL$_S`{Ci)(Ib-gypxI(hqsn`)THr*AySz*_#?rv0HhO&(!yAW3$@ zUgv9@;sNHgyZfb9AMeEoNnFuZRoiw!ali{uwk_7 z<+GvU0>bKw2y5kYUP)x&EM2iXIXri{^4i>Z5482AXxKsz?e0m_l@iv3v>_6rDZ{Wg VlqizRN delta 3051 zcma);e^66b7RT>-NytMCBt(QXA}>TF6d0itk+rNuBoU~slv2>v5w}%gt2GoI>8}NU zV9^yVbKR}2b)hXzYptX3%oZF|w7Bc)E?ZDLtJAT)g~IWey!>-bw*ObLx_2M+}tGbV!Em=JqYRs%pZ%fixq>kS+`@h8@lA z8MGC)s){6)uz(sEyDAB5^XPge5p=YPiH0aOCiLXd|7(phqdOzOG9qXDAYGXhQ3}YoRuu~=ElYCA%&5R?=Dqba}6)bRR}JA zbI1uW-kOlb`+>{uy>*1W7*DvZ5roq^l{TgD2+d&4`m=s0im7K^q`MX)Sx%)8O{>@} z@X`0#Z1{%%noVE~F*^vm0GWl%M>3Elh@Be3zJn&Jo>|Ox>m?X_5FmnUDz@5F!VSB3Tf+MlLWG>B zF1T*T7I(14r&BEo=s|51tfR-Yc~?JlkBqK0ti@#nKnVkz(2X^FrdKBGxGGaREUbOty~H|p$BfBGE1$XxB1{jl;z za6$>E5ZY*uZUMZ_kL$t!{z2u)UigIe>f)XV+B z_e%M7v$resZ9cg}bg!v>Z_X|E3mhy_3P<=6LzOb_K_}@B{wk&jY%!GzLEZJEkJ|&i zhxnSg&A44t)x|%rX_6VC%|nF6J`l#~j`(WWM91UHAeR=I4aSzq9#+aT9w)+4KO;0t=Gt9L z)qRYxpVpbvVGiGJej6gb$GKBGPkNMEc!v?*La3Tl)rlFQ4s>d1#JBO~YWa8}avQ$m^qn4Ap311iv z!(5x(9*Xn82oKRyNlBVIA0s@A!w9m4znerEI8I+lF+(gpnvw^v(!mrXY~rPq9yQeR z7alb-u$$gmm;sekm!*eFJ|XK8gXX*JTcDolQ`&HI(Ei0Y;XQidu^redHRq#9)+vi4 zIFk_nkRy0Lw{rZ|9Ge36Q-k$II6)h%b{L|)*0R*5UlVpcGK%yf`AY~Ji@bwWBcn(^ z!aDt86fItQsjhYpVPEHht77H?Vv20CKp%RpdFUm`p%zbn0@gTr*WB`@<<>DbW{kPB zx=kk86l@H%By9PHGPWY@IFY6?kB?UXv4BNc%2?wR#3OrbJi`J6^_r`MCkTZ zIC!)!k7CC2j#kG>_h}E1!P?xj@v-$CL^$JV`-Sp_=LojH<~fX|-gEmG(N&)Pzfd-M zcDa?D!~PUuMnHEuo}rubb!iY#GL>@zq9nC-aC!9|i(HFvyl#1pO=UC82#EiY20JR} z1haQQ{N64 znK#^-Hu%_&lmDze8&c^X?CBY?(olyQ)0s+8D}Xzkd%nXj&X5+_?w}=-Iwdj~Q33aH zu4~vc8C6oReU$P0=(o#bR6d_ybkfj*7FbV@7rY1yXjEZdv?gG#?HNBGxl;ht~4pYg&LSyt_y^?rf0xv3;v6dvy>dxenaK(G*g~I4C^+fAylE_U+;#N9T zXiCcSfZ1H5bt!5gndxU6{o=1WnPli+-sp8Z?Eh2qX=+hs*cI=``1TNfe*xWGR0F5z zV9^Rqo42Ay5=*?TSZ?AMKVG8*B|Wt=F)Bu4U92-8ZjcD)6W7Rq`*XWbsJA zCnn-)2#CY9thg9HP{}W(oB1p=EY}aavrSZsy9l$QWMFhl;u&8a|H?N9-&~uH1wXP;?1K+SZ z8DJOR{w$jB=&k3X@uq$7T%PKMy@Yk}Icv5BGakP-2UgJ0wHZ)E6Dq9mFu$=PO9?OY zEiW7cXyNlWq(bZm0b;&*4>Ghat&@va+IEiX8m$$?G&9XB9-;>~)@hy&v{uEm&x$7| zulNLStjttu_G3528wuNpb|1fHQ?vr!qT9B#U>W7;NqP%q)~Ub&U!A-FWbu4w>$LW_ zDecdlrzuqHbIwmk&P+u<=>Ry(C_=uD&USL^Zeb5^_Ym>+$)1NiKAID(sENDuE5?b992hFs(sVBu$M%Yy3FNm(3um*(uG1v`Devent.pressed) { #ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); + rgb_matrix_enable_noeeprom(); #endif #ifdef IDLE_TIMEOUT_ENABLE timeout_reset_timer(); //reset activity timer From 1b7d27e16a72c911607111a3b38ac5618a3cbe84 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 9 Sep 2021 00:11:32 -0400 Subject: [PATCH 11/94] Changed RGB timer to be noeeprom. --- .../keymaps/railgun/gmmk_pro_ansi_railgun.bin | Bin 46400 -> 46376 bytes .../gmmk/pro/ansi/keymaps/railgun/jonavin.c | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro_ansi_railgun.bin b/keyboards/gmmk/pro/ansi/keymaps/railgun/gmmk_pro_ansi_railgun.bin index 3a0d9c54f5b53f5d5d58bdf13c0472b92c811e7d..11b834b812598d1c736eb9bf1d687c29a5093be8 100644 GIT binary patch delta 3408 zcma);dsGuw8o=*2Nz4R90+E*inGldbq{2}uR9Okw(5{bat*dsmVk;J;2-TvXvf!($ zReR)IpWBC6wZ#V_jOl@D8m-jo_PBzrN8Hv`YCS>G;~=$@kRh{Qkh1={bI$MH?{VMv zyLax{`%LY9X2)naP@ObsMBXmKmLuDd1BeZ|gxuU!{ahlPt8OR`>PA(yo3If`5@Mk# zFab2Q2dNVaNld~KSA5Y4Cftx<%WJw(_V zqzZ{_AZ#pR;?D)#Qm7`Qm`o1`eW4jF#Lo^^!!v50?%*>j4GM{dwKOH<@0d1+crdkv zo`$vjyI~nhD5CXxJB;9qB7tF^xM;~ptERn)#4tuyxJn%(!=f&@4sOYc9Of|oRy8Xd z$;~^sPHS&)57V;38QL>4B`Oz(#M%^7^bLxa6))BIkSf-W%Sl=SeamTyo&yqb|4?riA+%cicwLc$-QnrVuk8X3_MRbavn=evq>sYfDr@XP?jFhm+7|65*m_gK1csQYfR35<&v5_RZotog4ct zZ_}W}kg#)oIox%pBKoJs8uPIBs3~9#&sPe~G$Sz^=FxSDVF?S)JTj?nfY2fNS_GlN zuC<$n5iS(Ric4pj+q&Kqh&=?-bBRWMpXVEO=CxTkg4JFkWXZF*2iTt<`UNT{=7j!! znsm=)t~Q1yD%*X_OgN<=ou>26&p{x+)$9)tOZSYv3^6n>DLTN}Tjh*vXz9@qrO?J# zC+!26M9pKqQ`fkC73+BSm{kg0q+4zjoeRo7j=bqy%)um;pyM};El@^J`LuLA> zr4SYl=om`*3Sl|#pH>Y)T@u?Mi~o_ieBb;O!U0;B-Ud~)@`XpnC@&*S^vYtrti{N? zgOMkTCmmoNhV%Qufq^f?(dr3d5J8Vjcq`zp#0Y(TM3~@VglRNl;=9m7w@#dsx>w2+ zfYiB$66G=7Jq7WKW3k=qZboqT_dP@Qn@WUFB!zIV*I2e8OWmpvex+dIb#n5 zPR6BH+v;3OE$m~2Tl}Lx-2_-hFK0$TEp=wDVB)``xfYI=Sd_HN!olnGfMt?uC)Rq8 z-nFDc6xC-H4Cq_3>VjT%`%ekaHI|thG*4H8=42-XTz4r19tYv$JH8^DG5|ElYJ^gn zYR!hLwA`wP7JirYyc*i+yy<)3EZ;r-jw;~2gM@`CKjnw#5XVK@@tO`U@=sn9HJCko z!vU~|*5y`0B~4ni5H8Z~i}v%GZ;oT|{wZBNRR37lLTOl` zIom5TE*J-?f>UeDeC&+nti%B0`b1Ga^`xp;Y}48UO(NdcTzlqYIk`{ll-rxJT-=Y% zuoL1<);{qT-BcKDz9KWJ+g(FQezW4FV7Fo2-d3OYyv#Pk#9tdBwcVL&g<6j|pI#|U zhig>xPRiJCf0poU(#n~0aKPY5aB2xrVt0jkeF01fg4dGiOVEOe7+C= zTXuaJF%Nh6?2=e0`F7|x=NSwstqqJyt72v58fmClFV(D(#EV!dlFlhMBy{zH(YQiu zSCoO7X=68g#9zK*%+U7IX1B8>=YQ6R^gwZ{|8l7oYj4Hc*J(%b3YbG@mrM(oD&?+_ zM31Ki)8Tx5$qFSrpvKbpkh3ytXKh~bOB|m^RP_Re-6*=SG%B?Y?>CoBVsAG}Vpm^y zGmP^e?ZW-UsB*HlUhyCOH6@X{C9w_}@9q=BXhW$^eFZOJuPD&(OJ~9cK5FF(z@Jq0 zs(J7+?OJsY;_0=rN~U`y{Y&{Ts!lvqLutn92zZswS$!9hX~vpKkjz)CDTj!%{_y_7 ztA0rqZ+k6|HzyO}uaZaHOam*-nnc{b<*2Qu*%g~23Xc;u6Pb$4K;|R)$OXQmA`mo@ zC-4IJ8(}Z=?!TD<3i-IILI4}BUKa+F>5+BWsunEK%6G3TWzg{U#taOx!yCsk{to)@ zjhS$t*KZoHgctZ(TMh%f&AUHHf~chuF}B=;v0A)4xEQ5%eNWJ4OD-`CO%^dsv$s_S zL`pRU;SIxMh(Q!X`77H}mBSujKR34G+Yj^mC-~s%Pz58Lpou#_^=1Fu`Avv`9{h*k zq_6frIb`u{6QKuo=`ytSe|Wwg@EmXA25qMXY@anH5893n*!DJM(r#>F#-L~SfM;V< z?x1bkfNgbC$)IihfUTsdiduH-LUs&#mJN93H`UOB-A*`3XYSdLY4@HkRmL8CbMqa0 zyOeN-zx>I525!@$8Vih~^)-5h)xDX&T%+>~Sb+DhB@bU^NCyA#s2<=j)f_iM3Qan$ zPc1Dc?6)fk`(zbf<(P-p;o}!cMwG$9qyjg1H}WOYj!Z`T629X2X{a>dW(Oe_Bn6p( zm=QhVkN94r;WmsDe3t)#PxsmX`2J5_i{<-yrhI6B8_yV?>h$sneb6P`Um=!o$)gAd zXx~NMCvIs9J|t}44#IxHchv8Pp@UC(eE8C!Lo)(8NIIESOxOaXlE2pw&EQGWoQj8! uXv(Q*xIt&0IzPH#4Pi@>fVG63hb%(KZeQOlk^8@(TeGc`wR>MrJ@#K@seL8@ delta 3419 zcma);eNaj$e2wywiN)R&NuwTC_YVQvVP-&;MvB1x$Uq1eHNr6nO>ro4zo(Tts&qEF-M{hCinDktlPS&9eg_zl5Ad0kqZ@Ok~@DLx!`7|fl;}0h?(w>%2Qp; zbazyCxR|f$=7^$_)}UWZyYAy7jNd{;9A*3-ycUxTJ?Ljjhc;Yb3WXXhBzXrmQ=5+i zBNkn(HU7`;YMNYzM@;?|j~)sah2 zGrM=G+{m_6Qo*QBsg$phwus}BYQSH1^DT;eLlN@5`%_6x*p%D_?_=c){l*v%CuMsS zxmnRu=G~^uQ{*q~V3|PsyK1MzmlCjMb`V74k=bwQ2Hc#arCrZk2%N;ev{G*7*SI`gz~Xc@R;3HD3J<2I zYL1iFF1(wb2(cKNv3gYBkhU?`r{YOMLvA ztflV3n|6Rh*tEP7c4GXB9JqzMS2RrIt%`hKq0bUErPzC>zYxT@mA~Vl2v_9JO#Hy3 zwg~M^(kg7KU~$;A*?CfqhBIi2vx=GY$iqxh*8xYceujlf4@mpDi%EmnksA$G?9Z(R z7nbA|P@-JV%Yxe&y((w!-Ia{D5p&*Rd^B-@C?f`l4q{F&<6{Zl>XKXByiIQ%|FRJE z>LZpeSUBmD;*}||B!7$lSaqaQIz~lWU;=M73Lg2Q(_n&5(ri;nJL}Y%99_{QopLq~ z@Tw&lOVS7WsFp=cvKtJF!RyiLWY0~qYf1BZ93w5*&Ktb>$J-Ty*Y{w%w=g|R(tamz zJKO4&>e}hNQ3m!zDcFLbM-I0FbS`H^R^ z4+OVdJZ8C%EAks42w`m8r83Yk@{Nwy@Kr%ws9Xe=SV9{B@DZ)<*- z?OsxvN8W)xYv#deT(rgr^RQw~JS5}iYZikqDr?M{!}1daW`R7kPzOk+-~(TKhv#|d{iLRr=4ka$)71nmOIpcgsE!- zp%E9Y9f+*=y!G-+PXaR!WC&G;?w6hbN#nbP?QXfw%a4QGD3)nCcx%qf$T_l{t`|Co3R=VAC+%Ww?*+R>id6GR*h^5%(V0cl` zxI^y7jc)lAJ)y_cB17!WAut+C^)^*Gn7J-~yG#D(*PI!;vbQ_?inIP}?Zq8MiQ`te z50iH#d0)bgqEbrYl;U~1H23mSx7_b)q?Q-!ic8gWj>eV61fEoQ8*lZF`+n% zu2WWhlscOk9I^#dH{6A6jNX_E*<#+t3V^kEb5js(LV1%}8$r=u<#x&I(7gHGkgYV$ z5+aw#C;miK5jVt+&3>Srb%OB+w=n*$*t^9HkR$4<3LxZ&6H?RzdiBk&V%tK8x+vYD zF1XRh?8~sGI#cr#`P>tGs>?V?!dJJYzysX9Z6>Fj#&g@!;D)Gr_jxr;6KC)E6ySBS z_x*T)H_>lbD9lImu1cNW-MBiqWl|I~$g;2a)viSK1a&jjjGc5tp`L3Nhd!LF;`nBq zxc6gk*Shyy3Qr^SzmToSS4OT8ihQOmc+7Tj)b?eYY0P$d)ONfr30rCdQnJTJj*gDh zw=Eg7HICZ$wB?W4_Kn)MwUs063rN{MHuBEsNO4>Jn5}%&wyN#$m~GvtZCM-LIQI3y zMNF=1pth&(zGhJ!-Kxco`ul45UbG%);J|^48q*`E3{idjW5#lC-Gk9D&t-e$eU2yc z3(iK-+8E%gE1{ygD35ON!~*f!(NF*z4jeNsn6rVRICAl3ESECJD|6n4e!D9efBkL7 z>&h8_miie@bQLDD3H8K@td`Q^1o3x5B9@VTimdC6p1C45_5=!L?$tlFcRMB zXIROFF6qDF)xGxLe*dSgr{_m_>iLY3Ii527PrY!(>UC^&?%F&W?WG)*rZQp1vrGWe zo3Qu9O>Ola#s}6g-Y#}DH#~izFKJnevent.pressed) { #ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); + rgb_matrix_enable_noeeprom(); #endif #ifdef IDLE_TIMEOUT_ENABLE timeout_reset_timer(); //reset activity timer From 74543cb719b42efd149ab69f9c5b857fbd00b515 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 9 Sep 2021 00:25:11 -0400 Subject: [PATCH 12/94] Initial commit. --- .../solartempest/ak21/ak21 VIA keymap.json | 69 +++++ .../solartempest/ak21/ak21 VIA layout.json | 267 ++++++++++++++++ keyboards/solartempest/ak21/ak21.c | 19 ++ keyboards/solartempest/ak21/ak21.h | 38 +++ keyboards/solartempest/ak21/config.h | 94 ++++++ keyboards/solartempest/ak21/info.json | 39 +++ .../ak21/keymaps/default/keymap.c | 293 ++++++++++++++++++ .../solartempest/ak21/keymaps/via/config.h | 22 ++ .../solartempest/ak21/keymaps/via/keymap.c | 293 ++++++++++++++++++ .../solartempest/ak21/keymaps/via/rules.mk | 1 + keyboards/solartempest/ak21/readme.md | 28 ++ keyboards/solartempest/ak21/rules.mk | 28 ++ 12 files changed, 1191 insertions(+) create mode 100644 keyboards/solartempest/ak21/ak21 VIA keymap.json create mode 100644 keyboards/solartempest/ak21/ak21 VIA layout.json create mode 100644 keyboards/solartempest/ak21/ak21.c create mode 100644 keyboards/solartempest/ak21/ak21.h create mode 100644 keyboards/solartempest/ak21/config.h create mode 100644 keyboards/solartempest/ak21/info.json create mode 100644 keyboards/solartempest/ak21/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/ak21/keymaps/via/config.h create mode 100644 keyboards/solartempest/ak21/keymaps/via/keymap.c create mode 100644 keyboards/solartempest/ak21/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/ak21/readme.md create mode 100644 keyboards/solartempest/ak21/rules.mk diff --git a/keyboards/solartempest/ak21/ak21 VIA keymap.json b/keyboards/solartempest/ak21/ak21 VIA keymap.json new file mode 100644 index 000000000000..0f369e01f272 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21 VIA keymap.json @@ -0,0 +1,69 @@ +{ + "name": "AK21", + "vendorId": "0x414B", + "productId": "0x0021", + "lighting": "qmk_rgblight", + "matrix": { "rows": 6, "cols": 4 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + } + ], + "layouts": { + "keymap": [ + [ + { + "c": "#393B3B", + "t": "#91867A" + }, + "0,0", + "0,1", + "0,2", + "0,3" + ], + [ + "1,0", + "1,1", + "1,2", + "1,3" + ], + [ + "2,0", + "2,1", + "2,2", + { + "h": 2 + }, + "2,3" + ], + [ + "3,0", + "3,1", + "3,2" + ], + [ + "4,0", + "4,1", + "4,2", + { + "h": 2 + }, + "4,3" + ], + [ + { + "w": 2 + }, + "5,1", + "5,2" + ] +] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/ak21/ak21 VIA layout.json b/keyboards/solartempest/ak21/ak21 VIA layout.json new file mode 100644 index 000000000000..dbec06309e55 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21 VIA layout.json @@ -0,0 +1,267 @@ +{ + "name": "AK21", + "vendorProductId": 1095434273, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "MO(1)", + "KC_MSTP", + "USER01", + "USER00", + "KC_NLCK", + "KC_PSLS", + "KC_PAST", + "KC_PMNS", + "KC_P7", + "KC_P8", + "KC_P9", + "KC_PPLS", + "KC_P4", + "KC_P5", + "KC_P6", + "KC_NO", + "KC_P1", + "KC_P2", + "KC_P3", + "KC_PENT", + "KC_P0", + "KC_P0", + "KC_PDOT", + "KC_NO" + ], + [ + "KC_TRNS", + "TO(2)", + "TO(3)", + "TO(4)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "RESET", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/ak21/ak21.c b/keyboards/solartempest/ak21/ak21.c new file mode 100644 index 000000000000..4d53707a6fa8 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21.c @@ -0,0 +1,19 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include "ak21.h" diff --git a/keyboards/solartempest/ak21/ak21.h b/keyboards/solartempest/ak21/ak21.h new file mode 100644 index 000000000000..2bf922bf5158 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21.h @@ -0,0 +1,38 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE + #define LAYOUT( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + } +#endif diff --git a/keyboards/solartempest/ak21/config.h b/keyboards/solartempest/ak21/config.h new file mode 100644 index 000000000000..2931a96fccf5 --- /dev/null +++ b/keyboards/solartempest/ak21/config.h @@ -0,0 +1,94 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0x414B // "AK" +#define PRODUCT_ID 0x0021 +#define DEVICE_VER 0x0001 // Ver1 +#define MANUFACTURER ATLANTIS +#define PRODUCT AK21 + + +// key matrix size +#ifdef RGBLIGHT_ENABLE + #define MATRIX_ROWS 6 + #define MATRIX_COLS 4 +#endif + +#define MATRIX_ROW_PINS { B3, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B2, F0, D6, D7 } +#define UNUSED_PINS + +// COL2ROW or ROW2COL +#define DIODE_DIRECTION ROW2COL + +// For LED status indicators +#define LED_NUM_LOCK_PIN E6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN B0 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 33 // 21 key + 12 underglow for RGBLIGHT + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM + #define RGBLIGHT_LIMIT_VAL 200 // brightness level max is 255 + #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping + #define RGBLIGHT_ANIMATIONS + + //RGB LED Conversion macro from physical array to electric array + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L01, L02, L03, L04, L05, \ + L10, L11, L12, L13, L14, L15, \ + L20, L21, L22, L23, L25, \ + L30, L31, L32, L33, L34, L35, \ + L40, L41, L42, L43, L45, \ + L51, L53, L55, \ + L60, L63, L65 ) \ + { \ + L01,L02,L03,L05,L14,L13,L12,L11,L21,L22,L23,L34,L33,L32,L31,L41,L42,L43,L55,L53,L51,L60,L63,L65,L45,L35,L25,L04,L10,L20,L30,L40, \ + } + //RGB LED logical order map + //Right->Left, Top->Bottom + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 4, 3, 2, 1, 0, \ + 10, 9, 8, 7, 6, 5, \ + 15, 14, 13, 12, 11, \ + 21, 20, 19, 18, 17, 16, \ + 26, 25, 24, 23, 22, \ + 29, 28, 27, \ + 32, 31, 30 ) +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define COMBO_COUNT 2 //Number of tap combos used +#define COMBO_TERM 300 //Default combo time is 200ms + +#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ak21/info.json b/keyboards/solartempest/ak21/info.json new file mode 100644 index 000000000000..8ebc6f69bdc9 --- /dev/null +++ b/keyboards/solartempest/ak21/info.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Atlantis AK21 Macropad", + "url": "", + "maintainer": "solartempest", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":0, "y":1}, + {"x":0, "y":2}, + {"x":0, "y":3}, + + {"x":1, "y":0}, + {"x":1, "y":1}, + {"x":1, "y":2}, + {"x":1, "y":3}, + + {"x":2, "y":0}, + {"x":2, "y":1}, + {"x":2, "y":2}, + {"x":2, "y":3, "h":2}, + + {"x":3, "y":0}, + {"x":3, "y":1}, + {"x":3, "y":2}, + + {"x":4, "y":0}, + {"x":4, "y":1}, + {"x":4, "y":2}, + {"x":4, "y":3, "h":2}, + + {"x":5, "y":0, "w":2}, + {"x":5, "y":2}, + ] + } + } +} diff --git a/keyboards/solartempest/ak21/keymaps/default/keymap.c b/keyboards/solartempest/ak21/keymaps/default/keymap.c new file mode 100644 index 000000000000..57cb17af2a32 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/default/keymap.c @@ -0,0 +1,293 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "ak21.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions. Not VIA compatible. +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + MO(_LAYER1), KC_ESC, KC_CALC, KC_BSPC, + KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + 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, + KC_TRNS, KC_TRNS + ), + [_LAYER2] = LAYOUT( + 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 + ), + [_LAYER3] = LAYOUT( + 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 + ), + [_LAYER4] = LAYOUT( + 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 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 140; + static uint16_t perkey_brightness = 80; + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ak21/keymaps/via/config.h b/keyboards/solartempest/ak21/keymaps/via/config.h new file mode 100644 index 000000000000..4bbacd9a507b --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ak21/keymaps/via/keymap.c b/keyboards/solartempest/ak21/keymaps/via/keymap.c new file mode 100644 index 000000000000..57cb17af2a32 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/keymap.c @@ -0,0 +1,293 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "ak21.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions. Not VIA compatible. +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + MO(_LAYER1), KC_ESC, KC_CALC, KC_BSPC, + KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + 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, + KC_TRNS, KC_TRNS + ), + [_LAYER2] = LAYOUT( + 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 + ), + [_LAYER3] = LAYOUT( + 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 + ), + [_LAYER4] = LAYOUT( + 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 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 140; + static uint16_t perkey_brightness = 80; + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ak21/keymaps/via/rules.mk b/keyboards/solartempest/ak21/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ak21/readme.md b/keyboards/solartempest/ak21/readme.md new file mode 100644 index 000000000000..ab15ce05d570 --- /dev/null +++ b/keyboards/solartempest/ak21/readme.md @@ -0,0 +1,28 @@ +# Atlantis AK21 Macropad + +![Atlantis AK21] + +A 21-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +* Keyboard Maintainer: solartempest +* Hardware Supported: Atlantis AK21 +* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) + +## Make and Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb solartempest/ak21 -km via + +To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. +Flash with QMK toolbox, auto-flash. + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "ak21 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "as21 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/ak21/rules.mk b/keyboards/solartempest/ak21/rules.mk new file mode 100644 index 000000000000..c6bc1c8cc8cf --- /dev/null +++ b/keyboards/solartempest/ak21/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver (keep for RGBLIGHT too) +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +MIDI_ENABLE = no # No midi +UNICODE_ENABLE = yes # Unicode +COMBO_ENABLE = yes # Tap combo chording +TAP_DANCE_ENABLE = yes # Tap dance +LTO_ENABLE = yes # Reduce firmware size From 26f6b2af9b15b8f376a44e640822a37c853c8c3e Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 9 Sep 2021 00:31:02 -0400 Subject: [PATCH 13/94] Add firmware file. --- .../ak21/solartempest_ak21_via.hex | 1475 +++++++++++++++++ 1 file changed, 1475 insertions(+) create mode 100644 keyboards/solartempest/ak21/solartempest_ak21_via.hex diff --git a/keyboards/solartempest/ak21/solartempest_ak21_via.hex b/keyboards/solartempest/ak21/solartempest_ak21_via.hex new file mode 100644 index 000000000000..1c6288a1558e --- /dev/null +++ b/keyboards/solartempest/ak21/solartempest_ak21_via.hex @@ -0,0 +1,1475 @@ +:100000000C9470030C94B7030C94B7030C94B703CF +:100010000C94B7030C94B7030C94B7030C94B70378 +:100020000C94B7030C94B7030C94B6260C94722668 +:100030000C94B1270C94B7030C94B7030C94B7033A +:100040000C94B7030C94B7030C94B7030C94B70348 +:100050000C94B7030C948D270C94B7030C94B7033E +:100060000C94B7030C94B7030C94B7030C94B70328 +:100070000C94B7030C94B7030C94B7030C94B70318 +:100080000C94B7030C94B7030C94B7030C94B70308 +:100090000C94B7030C94B7030C94B7030C94B703F8 +:1000A0000C94B7030C94B7030C94B703570060008B +:1000B000000057005F00000005010980A1018503D1 +:1000C00019012AB700150126B700950175108100A6 +:1000D000C0050C0901A101850419012AA00215011E +:1000E00026A002950175108100C005010906A10135 +:1000F0008505050719E029E7150025019508750113 +:1001000081020507190029EF1500250195F07501F9 +:1001100081020508190129059505750191029501CE +:1001200075039101C00660FF0961A1010962150014 +:1001300026FF009520750881020963150026FF003F +:10014000952075089102C005010906A1010507194E +:10015000E029E715002501950875018102950175D3 +:100160000881010507190029FF150026FF009506E3 +:100170007508810005081901290595057501910289 +:10018000950175039101C00000000000000000000F +:10019000000000000000000000000000000000005F +:1001A00000000000000000000000007E0F00D4FFEF +:1001B000FFFFC70000007800000000000000002AD8 +:1001C0002B280000000000000000000000000000DC +:1001D000000029000000002C1E3420212224342697 +:1001E00027252E362D3738271E1F20212223242590 +:1001F000263333362E37381F0405060708090A0B45 +:100200000C0D0E0F101112131415161718191A1BB6 +:100210001C1D2F3130232D350405060708090A0B54 +:100220000C0D0E0F101112131415161718191A1B96 +:100230001C1D2F3130354C00047F3F1F6432146485 +:100240003214783C1E1E140A05000101010101014F +:10025000010101020202020202020202030303037D +:10026000030303030404040404040405050505054D +:10027000060606060607070707070808080809090B +:1002800009090A0A0A0B0B0B0C0C0C0D0D0D0E0EB6 +:100290000E0F0F0F10101111111212131314141549 +:1002A0001516161717181819191A1A1B1B1C1D1DBD +:1002B0001E1E1F2020212222232424252626272813 +:1002C00029292A2B2C2D2D2E2F3031323233343543 +:1002D000363738393A3B3C3D3E3F40414243444546 +:1002E000464748494A4C4D4E4F5051535455565825 +:1002F000595A5B5D5E5F616264656668696B6C6DCF +:100300006F7072737577787A7B7D7E808283858744 +:10031000888A8C8E8F91939596989A9C9EA0A2A382 +:10032000A5A7A9ABADAFB1B3B5B7BABCBEC0C2C487 +:10033000C6C9CBCDCFD1D4D6D8DBDDDFE2E4E7E947 +:10034000EBEEF0F3F5F8FAFDFFFFAA7F554004034A +:100350000200060708090E0D0C11121314191817C4 +:100360001B1C1D201F1E16100B010A0F151A22231D +:10037000252628292A2C2D2F3032333536383A3B82 +:100380003D3E4042434547494A4C4E5051535557D4 +:10039000595A5C5E6062646668696B6D6F717375F3 +:1003A00077797B7D7F81838587898A8C8E909294F3 +:1003B00096989A9C9E9FA1A3A5A7A8AAACAEAFB100 +:1003C000B3B4B6B8B9BBBCBEBFC1C2C3C5C6C7C94A +:1003D000CACBCCCDCED0D1D2D2D3D4D5D6D7D7D804 +:1003E000D9D9DADADBDBDBDCDCDCDCDCDDDDDDDD56 +:1003F000DCDCDCDCDCDBDBDBDADAD9D9D8D7D7D65E +:10040000D5D4D3D2D2D1D0CECDCCCBCAC9C7C6C514 +:10041000C3C2C1BFBEBCBBB9B8B6B4B3B1AFAEAC5A +:10042000AAA8A7A5A3A19F9E9C9A98969492908E05 +:100430008C8A89878583817F7D7B79777573716FDE +:100440006D6B6968666462605E5C5A5957555351BA +:10045000504E4C4A4947454342403E3D3B3A383670 +:10046000353332302F2D2C2A2928262523220151DD +:100470002900B2002A0053005400550056005F00C6 +:100480006000610057005C005D005E0000005900E4 +:100490005A005B0058006200000063000000010089 +:1004A0000100010001000100010001000100010044 +:1004B0000100010001000100010001000000010035 +:1004C00001000100005C01000000010000000100CB +:1004D0000100010001000100010001000100010014 +:1004E0000100010001000100010001000000010005 +:1004F00001000100010001000000010000000100F6 +:1005000001000100010001000100010001000100E3 +:1005100001000100010001000100010000000100D4 +:1005200001000100010001000000010000000100C5 +:1005300001000100010001000100010001000100B3 +:1005400001000100010001000100010000000100A4 +:100550000100010001000100000001000000010095 +:100560000100010001000100010001000100010083 +:100570000100010001000100010001000000010074 +:100580000100010001000100000001000000010065 +:100590000100010001000100010001000100010053 +:1005A0000100010001000100010001000000010044 +:1005B0000100010001000100000001000000010035 +:1005C0000100010001000100010001000100010023 +:1005D0000100010001000100010001000000010014 +:1005E0000100010001000100000001000000010005 +:1005F00001000100010001000100010001000100F3 +:1006000001000100010001000100010000000100E3 +:1006100001000100010001000000010000000100D4 +:1006200001000100010001000100010001000100C2 +:1006300001000100010001000100010000000100B3 +:10064000010001000100010000000100000009029A +:100650005B00030100A0FA0904000001030101008E +:100660000921110100012240000705810308000A49 +:100670000904010002030000000921110100012208 +:100680002200070582032000010705030320000163 +:1006900009040200010300000009211101000122E8 +:1006A0006D000705840320000A120100020000000B +:1006B000084B4121000100010200010A0341004BE7 +:1006C000003200310000001203410054004C004190 +:1006D000004E0054004900530000000403090400C8 +:1006E00011241FBECFEFDAE0DEBFCDBF04B603FE9C +:1006F00027C08091800390918103A0918203B091E3 +:1007000083038730904BA740B04BD1F41092800305 +:1007100010928103109282031092830314BE84B757 +:10072000877F84BF0FB6F894A89580916000886198 +:1007300080936000109260000FBEE0E0F8E309953E +:1007400011E0A0E0B1E0E2E5FBE502C005900D920A +:10075000A23BB107D9F723E0A2EBB1E001C01D92A3 +:10076000A038B207E1F70E94D8270C94702D0C94A2 +:100770000000E8EDF0E080818E7F80831092E2003F +:100780001092DA001092E100A0EEB0E08C9181604E +:100790008C9380818F77808319BCA7EDB0E08C911A +:1007A0008E7F8C9380818F7E80831092E4020895E7 +:1007B0002091E4003091E50095E6A9012091EC003C +:1007C000822F817020FF06C08091E80080FF06C064 +:1007D00080E008952091E80022FD1AC0809109036D +:1007E000882389F0853089F08091EB0085FD0FC06A +:1007F0002091E4003091E50042175307F9F291503F +:10080000E1F684E0089582E0089583E0089581E0B0 +:100810000895EF92FF920F931F93CF937C018B016A +:100820000E94D803C82F811117C08091E80085FD70 +:100830000BC08091E8008E778093E8000E94D80377 +:10084000882399F3C82F08C0F70181917F01809315 +:10085000F1000150110949F78C2FCF911F910F9191 +:10086000FF90EF90089580910B0387FF13C0809154 +:10087000E80082FF06C08091E8008B778093E80053 +:1008800004C0809109038111F2CF0895809109037A +:100890008823D9F38091E80080FFF8CF8091E800A9 +:1008A0008E77ECCF982F9093E900242F762F50E08D +:1008B000891731F07091EC002091ED005091F0001B +:1008C00021FD07C09F5F973071F78093E90081E0B9 +:1008D00008953091EB003E7F3093EB003091ED00B6 +:1008E0003D7F3093ED003091EB0031603093EB00B1 +:1008F0007093EC002093ED005093F0002091EE00F7 +:1009000027FDE0CF80E00895CF92DF92EF92FF9233 +:100910000F931F93CF93DF93C8EDD0E088818F7E34 +:100920008883E7EDF0E080818160808384E082BF8E +:1009300081E08093E40288818E7F888302EE10E05C +:10094000F80110821092DA0081EEC82ED12CF60147 +:10095000108288818F7788838881806888838881E6 +:100960008F7D888319BC1092090310920A0310929C +:1009700008031092070390EEE92EF12CF701808115 +:100980008B7F808388818160888342E060E080E0A3 +:100990000E945204F60180818E7F8083F80180815D +:1009A00081608083808188608083F70180818E7F71 +:1009B0008083888180618883DF91CF911F910F911F +:1009C000FF90EF90DF90CF900895FC01809111038C +:1009D0009091120386179707A0F06115710529F40D +:1009E0009091E8009E779093E80090E06115710582 +:1009F00051F4911108C08091E80082FF34C080E07A +:100A00000895BC01F2CF809109038823C1F185309C +:100A1000C1F18091E80083FD30C08091E80082FD43 +:100A2000EACF8091E80080FFE1CF8091F300209130 +:100A3000F200382F6115710519F02830310558F092 +:100A400091E02830310509F090E02091E8002E7700 +:100A50002093E800CBCF81918093F1006150710920 +:100A60002F5F3F4FE7CF80910903882341F0853006 +:100A700041F08091E80083FFBECF81E0089582E0DD +:100A8000089583E00895089508958091E6020895F9 +:100A90009C014FB7F8948091DB029091DC02A09109 +:100AA000DD02B091DE024FBF821B930B08952FB77A +:100AB000F8948091DB029091DC02A091DD02B0916C +:100AC000DE022FBF08952091D8023091D902281755 +:100AD000390771F09093D9028093D802E091D60241 +:100AE000F091D702309721F00084F185E02D099430 +:100AF00008952091D4023091D5022817390771F05A +:100B00009093D5028093D402E091D602F091D7025F +:100B1000309721F00680F781E02D09940895E09147 +:100B2000D602F091D702309721F00190F081E02DAC +:100B3000099480E00895DC016091CC028091CD029F +:100B4000962F891301C00895292F30E0F901EE0F87 +:100B5000FF1FEC53FD4F408151814A175B07A1F401 +:100B600087E08A9FA0018B9F500D1124435E5E4F4A +:100B700081E0FA0184839613E6CF2F5F3F4F237005 +:100B800033272093CC0208952F5F3F4F922F93700D +:100B9000D8CF1092610210926002809122018111DF +:100BA00004C010922101109223018091290181112A +:100BB00004C01092280110922A010895FA018111AF +:100BC00001C0FB01099480917B03982F9E7F61F403 +:100BD0008170826080937B0380917E03893C18F052 +:100BE00088EC80937E0308958A34B0F38170886422 +:100BF000F1CFAF92BF92DF92EF92FF920F931F93CC +:100C0000CF93DF93182F062FE901493C08F048ECF9 +:100C1000E42FF0E0E75BFD4F011110C0E4915E2F7F +:100C20004E2F4983E8835A83DF91CF911F910F9113 +:100C3000FF90EF90DF90BF90AF900895202F30E0AD +:100C40004491D42EE42EF12C56E0159FC0011124BE +:100C5000EFEFF0E0BF010E947A2C812F90E0880F27 +:100C6000991F55E5569FD001579FB00D11248A1B3F +:100C70009B0B982F990F890F5F01A21AB30AAE9CA4 +:100C8000D001AF9CB00DBE9CB00D11245B2F089F0E +:100C900080011124012F11275F01A01AB10AAE9C17 +:100CA0008001AF9C100DBE9C100D11245F01A81A8D +:100CB000B108A29EC001A39E900DB29E900D11247A +:100CC000892F9927E81BF90BEE9DC001EF9D900D30 +:100CD000FE9D900D1124E92F62307105A1F050F4B2 +:100CE0006115710509F49DCF6130710581F0EB2F1D +:100CF000512F97CF6430710569F080F0663071052F +:100D000009F48FCFF4CFE42F4B2F592F8ACFE42F44 +:100D1000412F87CFEB2F542F492F83CF4B2F5D2DA2 +:100D2000E12F7FCF80E00895F894E82FE295EF70EF +:100D3000F0E031A1282F2F7081E090E001C0880FF2 +:100D40002A95EAF7982F9095932391A392A1892B46 +:100D500082A3789408959091DF0292FF06C0282F15 +:100D600028712830F9F4877F846093FF06C0282F0C +:100D700028712831F1F4877E84612091E00220FF00 +:100D800006C0382F38713830D9F4877F816021FF51 +:100D900006C0282F28712831D1F4877E816194FD07 +:100DA000877E0895282F24712430F9F68B7F886080 +:100DB000DCCF282F2471243101F78B7E8861DDCFB1 +:100DC000382F3171313019F78E7F8860E0CF282FAE +:100DD0002171213121F78E7E8861E1CFCF93DF939E +:100DE000EC0182389105A9F1D8F58133910509F418 +:100DF00096C048F58932910509F48AC08A9709F4AA +:100E000095C0C11522E5D20708F0B6C0C11531E57D +:100E1000D30708F026C1C83ED10508F09CC0C03EEB +:100E2000D10560F5C83AD10508F087C0C53AD105AB +:100E300008F0EFC0C130D10509F12097F9F0C430B6 +:100E4000D105E0F440C08533910509F45AC0C99733 +:100E5000C1F68091DF02837089F0C0EED0E00EC051 +:100E6000833E910599F170F4803E910501F1823E37 +:100E7000910539F68091DF0282FD21C0CE01DF911C +:100E8000CF910895863E910561F1873E910571F1FC +:100E9000843E910509F0B5CF8091E00281FFEECF4D +:100EA0008091DF02C7EED0E084FD0DC0E7CF8091D6 +:100EB000DF0280FD07C19091E00290FFDFCFC3EE1B +:100EC000D0E084FFDBCFD0E0C0E0D8CF8091DF025C +:100ED00082FDFBC09091E00290FDBFCF84FFCECF9A +:100EE000F2CF8091DF0283FDDDCFC8CF8091DF029A +:100EF00083FDEEC09091E00291FFF0CFC4EED0E010 +:100F0000BDCF8091DF0285FFB9CFC9E2D0E0B6CF77 +:100F10008091DF0285FFB2CFC5E3D0E0AFCF8091F3 +:100F2000DF0286FFABCFCAE2D0E0A8CF8091DF021C +:100F300086FFA4CFC1E3D0E0A1CFCF3BD10518F607 +:100F4000C85AD0E0CC0FDD1FCA5BDE4F0990D881B4 +:100F5000C02DD46493CFC11540E5D40708F064C018 +:100F6000C11580E4D80708F05CC0CE019A958115C0 +:100F70009F4108F483CFA7CFC11536E5D30718F5F5 +:100F8000C11545E5D40708F084C0C11584E5D8072C +:100F900008F07AC09C2F969596959E012370332772 +:100FA000C115D34508F462C0C1E0D0E002C0CC0F47 +:100FB000DD1F2A95E2F730E2939FC0011124C82B70 +:100FC000D92BDA685BCFC1158AE5D80778F4C1154B +:100FD00099E5D90708F068C0C11528E5D20708F4DB +:100FE00072CFDC2FCC27C06FD06A48CFCE0190568D +:100FF0008115904208F067CF8D2F8F710E94AB064C +:1010000090E0982F882788279F719C012C2BE9015D +:1010100049C0C55AD0E0CD5BDE4FC881D0E0D06476 +:101020002DCFDF70D06A2ACFCE01E4E09695879568 +:10103000EA95E1F783702C2F26952695237040E2E0 +:10104000249F90011124382B8C2F8370C1E0D0E0B5 +:1010500002C0CC0FDD1F8A95E2F7C22BD32BDC68D0 +:101060000DCFDC2FCC27C16FD06A08CFC1E0D0E014 +:1010700002C0CC0FDD1F2A95E2F720E2929FC0014B +:101080001124C82BD92BEBCFDC2FCC27C46FD06A0F +:10109000F5CE8C2F0E94AB06C82FD0E0DC2FCC27DA +:1010A000CC27DF71D062EACE8C2F8F700E94AB0606 +:1010B00034E0D695C7953A95E1F7CF709C2FEC01B7 +:1010C000D069DCCEC9E3D0E0D9CEC2EED0E0D6CE36 +:1010D000C6EED0E0D3CE8091310281111092310260 +:1010E000089580959091D30298239093D302089508 +:1010F0008091D3029091D202892B90913002892B5A +:101100008093B401909131029923A1F0892B8093AF +:10111000B40180914201882341F18091DF0287FF71 +:1011200024C08EE1E6EBF1E090E0815000F59111F2 +:101130000E946B08E091D602F091D7023097E1F05F +:1011400080914201882359F08091DF0287FF07C018 +:101150008091B4018093B50185E08093B401028051 +:10116000F381E02D84EB91E0099486E0DBCF2191BF +:101170002223D9F29F5FD9CF0895CF93DF93EC015B +:1011800081E0898B8091D3029F81892B8093D30248 +:101190008091D2029885892B8093D2020E94780890 +:1011A000EA81FB81309739F06C897D89CE01069602 +:1011B000DF91CF910994DF91CF910895EF92FF9243 +:1011C0000F931F93CF93DF93EC018A85811139C070 +:1011D000EB80FC8087E5F81A26E12E9DC0012F9D4B +:1011E000900D1124DC01A45DBE4F1496ED91FC918D +:1011F0001597309731F054966D917C918E5C9E4F8F +:10120000099586E18E9D80018F9D100D1124045D4E +:101210001E4FF80187810E947108F8018085982F80 +:1012200090958091D20289238093D2020E947808FF +:10123000188219861B861E821D821092D10210927E +:10124000D002DF91CF911F910F91FF90EF90089501 +:10125000909142019923D1F09091DF0297FF16C03F +:10126000E82FE695E695E695EE31E0F4F0E0EC54F3 +:10127000FE4F282F277081E090E001C0880F2A954B +:10128000EAF780959281892382830895E6EBF1E065 +:101290009191891303C0DF0111971C9291E0EC3BFF +:1012A000F907B1F70895909142019923C1F0909107 +:1012B000DF0297FF14C0E82FE695E695E695EE313C +:1012C000F8F4F0E0EC54FE4F877021E030E001C00C +:1012D000220F8A95EAF78281822B82830895A6EBFA +:1012E000B1E0EFEF90E02D91821751F0EF3F19F44C +:1012F000211101C0E92F9F5F9630A9F7EF3F09F454 +:1013000008950E2E000CFF0BEC54FE4FE6CF80919B +:101310002E029091ED01981301C008958F5F8770A0 +:10132000FACF990F990F890F982F97708695869508 +:10133000869524E0829FF0011124E752FE4F50E091 +:1013400040E080E0219130E0092E02C036952795DB +:101350000A94E2F721703327042E01C0220F0A9469 +:10136000EAF7822B4F5F5F4F4430510559F70895DC +:10137000990F990F890F982F977041E001C0440F82 +:101380009A95EAF786958695869594E0899FF0016F +:101390001124E752FE4F30E020E070E05191DF0170 +:1013A0001197CB01022E02C0969587950A94E2F719 +:1013B000817081958527842385278C932F5F3F4FEC +:1013C0002430310559F7089590E080E00E947905B6 +:1013D00090E080E00E9463051092D20210923002E9 +:1013E0000C94780890933302809332020C94E409B1 +:1013F000882341F080959091D20289238093D20274 +:101400000C9478080895882339F09091D202982B93 +:101410009093D2020C9478080895882321F00E94BA +:1014200071080C9478080895882339F09091D302BC +:10143000982B9093D3020C9478080895882309F48C +:101440004BC0823871F40E948F0581FF45C089E34B +:101450000E9453090E94780889E30E9428090C948D +:101460007808833859F40E948F0580FF35C083E5E2 +:101470000E9453090E94780883E5EFCF843859F41D +:101480000E948F0582FF28C087E40E9453090E94B2 +:10149000780887E4E2CF9CEF980F913AF0F290E25F +:1014A000980F983050F4877091E001C0990F8A9599 +:1014B000EAF7892F0E947108D2CF9BE5980F9330ED +:1014C00020F490E080E00C947905885A873120F46C +:1014D00090E080E00C946305089580FD02C0769A48 +:1014E0000895769808959C013A9521153F4150F54D +:1014F000FC01EE27F170BC0166277270AC01442735 +:1015000054709C012227387094FF0EC080E1EF2BAD +:1015100009F480E0672B09F08062452B09F08064B4 +:10152000232B89F08068089581E0EF2B09F480E097 +:10153000672B09F08260452B09F08460232B19F09A +:101540008860089580E00895CF93DF93EC010E94B6 +:101550001E0ACE010E94730A9E01205E31092830C6 +:10156000310510F0CD2B21F4DF91CF910C940D0AB1 +:10157000DF91CF910C94F809FC018081813029F42E +:10158000FB01808191810C94A40A823021F4FB013B +:1015900082819381F8CF089590910903943029F5C1 +:1015A0008093E1027093E3026093E2029093E9007A +:1015B0008FEF9091E800815095FD06C095ED9A95CA +:1015C000F1F700008111F5CF8091E80085FF0DC093 +:1015D00050E040E063E070E081EE92E00E94090498 +:1015E0008091E8008E778093E8000895BC0184E044 +:1015F0000C94CC0ABC0183E00C94CC0ACF93DF930B +:10160000EC01809142018823B1F18091DF0287FFD4 +:1016100032C060E284E08093E9008FEF9091E800AF +:10162000815095FD06C095ED9A95F1F70000811166 +:10163000F5CF8091E80085FF1BC08091420170E0EA +:1016400050E040E0811104C050E040E068E070E00C +:10165000CE010E9409048091E8008E778093E80013 +:1016600080E2FE01A7EEB2E001900D928A95E1F7CB +:10167000DF91CF91089568E081E0CDCF81E0809344 +:10168000E00080E28093D8001092C9008FE19EE4D0 +:101690000197F1F700C0000087E090EBDC01809338 +:1016A000800390938103A0938203B093830388E126 +:1016B0009CE00FB6F894A895809360000FBE9093BD +:1016C0006000FFCFAF92BF92CF92DF92EF921F9355 +:1016D000CF93DF93CDB7DEB7C356D1090FB6F894D9 +:1016E000DEBF0FBECDBF80917B0380FD0AC0E8E165 +:1016F000F3E0118210821282339683E0EB37F80711 +:10170000C1F77EE4A72E73E0B72EDE011196AE017D +:101710004C595F4F1A2F7B2FF5018491282F30E011 +:10172000C901880F991F820F931F885E9C4FFC018F +:10173000C080D180E280CD92DD92ED92FFEFAF1AB2 +:10174000BF0AA417B50741F7209A35B13E7F25B1EE +:1017500021606FB7F894812F972FFC017191CF0111 +:10176000E8E025B9000000C077FF35B9770F000029 +:1017700000C000C000C035B900C0EA9591F78417D9 +:10178000950759F76FBF8FE594E00197F1F700C017 +:101790000000CD59DF4F0FB6F894DEBF0FBECDBFAE +:1017A000DF91CF911F91EF90DF90CF90BF90AF90DE +:1017B00008951F93CF93DF9300D00F92CDB7DEB77C +:1017C000142F90917B0390FF1AC09E012F5F3F4F13 +:1017D000462F6FEF0E94F905113289F08B819981B4 +:1017E000412F50E0FA01EE0FFF1FE40FF51FE85EF6 +:1017F000FC4F2A812183908382830E94620B0F9089 +:101800000F900F90DF91CF911F910895EF92FF926B +:101810000F931F93CF93DF937C018F2D90E0C8E04F +:10182000009711F4C701C0E09C0154E0369527955C +:101830005A95E1F72115310511F0CC5FC9019C01E2 +:1018400036952795369527952115310511F0CE5FF0 +:10185000C90196958795892B09F0CF5FC23009F4AD +:101860008AC068F4CC23B1F1C13009F45BC0C70170 +:10187000DF91CF911F910F91FF90EF900895C330AA +:1018800009F4AEC0C43099F7CEE1D0E08C2F4C2FD4 +:101890004E51D093D501C093D401942F9B7F9130AA +:1018A00089F0942F9E7E9A3069F093ED9C0F9230D0 +:1018B00048F09DEC9C0F923028F094EC9C0F9330F4 +:1018C00008F0B7C06CE80E94D90B2196CF33D10540 +:1018D000E9F6CDCF08E310E01093D5010093D401D1 +:1018E000802F9C2F9B7F913081F09C2F9E7E9A3081 +:1018F00061F091EF9C0F923040F09BEE9C0F923084 +:1019000020F092EE9C0F933050F44C2F6CE80E9424 +:10191000D90BCF5F0E5F1F4FC132F1F6A8CF4C2F0E +:1019200060E5F5CF0FE010E0C0E01093D501009323 +:10193000D401802F9C2F9B7F913081F09C2F9E7E25 +:101940009A3061F091EF9C0F923040F09BEE9C0F2B +:10195000923020F092EE9C0F933050F44C2F6CE8B4 +:101960000E94D90BCF5F0E5F1F4FC132F1F67FCFC0 +:101970004C2F60E5F5CF0CED10E0C0E00F3F1105F6 +:1019800009F030F51093D5010093D4018091D40172 +:101990009C2F9B7F913091F09C2F9E7E9A3071F00E +:1019A00091EF9C0F923050F09BEE9C0F923030F0F4 +:1019B00092EE9C0F4C2F60E5933010F44C2F6CE8A6 +:1019C0000E94D90BCF5F0E5F1F4FC132B9F64FCFC8 +:1019D000C8018F5F91099093D5018093D401D6CF30 +:1019E00007E810E0C0E01093D5010093D401802FE8 +:1019F0009C2F9B7F913081F09C2F9E7E9A3061F0CE +:101A000091EF9C0F923040F09BEE9C0F923020F0B3 +:101A100092EE9C0F933050F44C2F6CE80E94D90B3F +:101A2000CF5F0E5F1F4FC132F1F621CF4C2F60E523 +:101A3000F5CF60E548CF0E94060C90931403809385 +:101A400013030C94E40980911303909114039C01F7 +:101A5000267033272630310519F488600C941B0D4D +:101A6000877FFCCF21E030E002C0220F331F8A9530 +:101A7000E2F720953095809113039091140382230F +:101A800093230C941B0D90912F02809589238093B2 +:101A90002F02282F277039F4282F082E000C330B23 +:101AA0009217130621F49091E00292FF07C08595EA +:101AB000859585950E94320D10922F02089521E0A0 +:101AC00030E002C0220F331F8A95E2F780911303A2 +:101AD00090911403822B932B0C941B0DEF92FF9289 +:101AE0000F931F93CF93DF938C01C8E1D3E0F12CC8 +:101AF000E12CF801948160917D0380917C03F0E1F9 +:101B0000EF16F104FCF49923F9F09E0140917E0355 +:101B10000E94F9052FEFE21AF20A239681E2E816F5 +:101B2000F10439F70E94620BF801848190E001967C +:101B3000817099278483DF91CF911F910F91FF903E +:101B4000EF900895992309F39E0140E0E1CF8F9231 +:101B50009F92AF92BF92CF92DF92EF92FF920F933C +:101B60001F93CF93DF93EC014C81042F10E0980179 +:101B7000D8010E94D92C9B01AC010E94EF2C4B0193 +:101B80005C01E0E2F0E0E01BF10BA5E5B0E0AC01A8 +:101B90009B010E94EF2C6B017C019F01DF010E94E1 +:101BA000D12C9B01AC010E94FA2C9B01AC01280DA9 +:101BB000391D4A1D5B1DC701B6010E94A22CF22EE1 +:101BC000822F90E039E23F15D8F143E0249F900145 +:101BD000112435952795122F109598E1C92E93E081 +:101BE000D92E00E085E5E82EEF188E2D01FD8F2D12 +:101BF0009601412F60917D030E94F9050F5F53E02C +:101C0000C50ED11C013289F70E94620B9C8181E0D4 +:101C1000992319F0903219F48FEF80931C01809171 +:101C20001C01890F8C83DF91CF911F910F91FF9041 +:101C3000EF90DF90CF90BF90AF909F908F900895DE +:101C400025E530E0A901481B590BCA019A01220F72 +:101C5000331F280F391F37FFBCCF2F5F3F4FB9CF3E +:101C60000F931F93CF93DF93C8E1D3E0FE0111825E +:101C700010821282339683E0EB37F807C1F710E049 +:101C800000E080915E02082E000C990B08171907DE +:101C90008CF180911B01082E000C990B8017910785 +:101CA0004CF19E0140917E0360917D0380917C0305 +:101CB0000E94F9050F5F1F4F23960132110509F7A6 +:101CC0000E94620B80911A0190915E02980F90938E +:101CD0005E0220911B01280F20931B01121614F4A1 +:101CE00090321CF0819580931A01DF91CF911F9162 +:101CF0000F910895198218821A82DCCFBF92CF9279 +:101D0000DF92EF92FF920F931F93CF93DF93FC012B +:101D10008281DD24DA9480FD02C0DD24D39408E1C1 +:101D200013E0D0E0C0E021E2B22EF801118210826F +:101D3000128294E0E92EF12CC12C80915D028C0D71 +:101D400082320CF43DC06B2D0E946C2C892F082E22 +:101D5000000C990B8C179D0791F480917E038E9D4A +:101D6000A0018F9D500D1124559547955595479588 +:101D7000980160917D0380917C030E94F905CD0C50 +:101D8000F1E0EF1AF108C9F621960D5F1F4FC1323D +:101D9000D10559F60E94620B80915D0291E0D91243 +:101DA00015C0811111C080E280935D02DF91CF9157 +:101DB0001F910F91FF90EF90DF90CF90BF9008950B +:101DC00087FFC5CF8F5DC3CF8150EECF90E00196E6 +:101DD000BE010E948E2CE8CFEF92FF921F93CF930B +:101DE000DF93EC0188E1E82E83E0F82E10E08C818F +:101DF000970140917E0360917D03810F0E94F90558 +:101E0000195F83E0E80EF11C173E89F70E94620B10 +:101E10009A818C8190FF08C08F5F8C83DF91CF9176 +:101E20001F91FF90EF9008958150F7CF90917B0321 +:101E300090FF0CC0E8E1F3E0818360834283339636 +:101E400093E0EB37F907C1F70C94620B08950F93F9 +:101E50001F93CF93DF9300D00F92CDB7DEB78C01E5 +:101E600080915F0281110AC09E012F5F3F4F48ECB5 +:101E70006FEF0E94F9058A8180935F02F801648107 +:101E8000613069F080915F0240E0662361F040E0DC +:101E9000623011F440915F0280E060E004C0609124 +:101EA0005F0240E080E00E94160FF801848190E01C +:101EB000019663E070E00E948E2C84830F900F9057 +:101EC0000F90DF91CF911F910F910895CF93DF93E2 +:101ED00000D00F92CDB7DEB790917B0390FF0AC080 +:101EE0009E012F5F3F4F0E94F9054B8169818A81D6 +:101EF0000E94160F0F900F900F90DF91CF910895D1 +:101F0000CF93DF93EC01EBE7F3E0438162818C81B7 +:101F10000E94660F8C818F5F8C83DF91CF91089533 +:101F2000CF93DF93EC01EC81F0E0E259FC4F449158 +:101F3000EBE7F3E0628181810E94660F8C818F5F05 +:101F40008C83DF91CF910895CF93C82F882309F414 +:101F5000A6C08238C1F40E948F0581FDA0C089E32C +:101F60000E9453090E9478082FEF81EE94E02150DF +:101F700080409040E1F700C0000089E30E942809FA +:101F8000CF910C9478088338A1F40E948F0580FDCE +:101F900086C083E50E9453090E9478082FEF81EEE6 +:101FA00094E0215080409040E1F700C0000083E5BC +:101FB000E5CF8438A1F40E948F0582FD70C087E4CC +:101FC0000E9453090E9478082FEF81EE94E021507F +:101FD00080409040E1F700C0000087E4CFCF8CEF55 +:101FE0008C0F813A88F580914201882301F180911C +:101FF000DF0287FF1CC0EC2FE695E695E695F0E042 +:10200000EC54FE4F828190E04C2F477021E030E08D +:1020100002C0220F331F4A95E2F782239323892BB4 +:1020200079F08C2F0E9428090E94780809C0E6EBFD +:10203000F1E08191C817A9F321E0EC3BF207C9F761 +:102040008C2F0E9453099CCF80E28C0F883068F45B +:10205000C77021E030E001C0220FCA95EAF78091F5 +:10206000D302822B8093D3028BCFEBE5EC0FE330CE +:1020700040F4F0E0ED5BFE4F808190E0CF910C9456 +:102080007905C85AC73158F4EC2FF0E0EE0FFF1F66 +:10209000EA5BFE4F80819181CF910C946305CF91D3 +:1020A00008951F93CF93DF93182FD0E0C0E08933BA +:1020B00011F4C0E5D0E0812F0E94A40F209731F4E5 +:1020C000812FDF91CF911F910C941E0A8FE99FE021 +:1020D0000197F1F700C000002197F0CF0F931F93F5 +:1020E000CF93DF93C62FD42F022FFC018281882348 +:1020F000A1F0609317030E945705909316038093F5 +:102100001503C77081E001C0880FCA95EAF7DF9117 +:10211000CF911F910F910C94140A809117036813AB +:1021200035C080911503909116030E944805883CA4 +:10213000910560F510E21D0FCD17B9F080E28C0F0C +:10214000883040F4C77081E001C0880FCA95EAF773 +:102150000E940D0A183048F481E09D2F977001C04D +:10216000880F9A95EAF70E94140A802F0E94511056 +:10217000183098F4D77081E001C0880FDA95EAF73B +:10218000DF91CF911F910F910C940D0AC77081E0E0 +:1021900001C0880FCA95EAF7F3CFDF91CF911F9165 +:1021A0000F910895DF92EF92FF920F931F93CF93B9 +:1021B000DF93E82FF0E0E954FE4FD490282F2695C6 +:1021C0002695269530E0F901E955FE4F0491877078 +:1021D00010E0082E02C0159507950A94E2F70170E9 +:1021E0001127F901E956FE4FE490F12C082E02C0A8 +:1021F000F594E7940A94E2F791E0E922FF24F901CB +:10220000E957FE4FC491D0E002C0D595C7958A9595 +:10221000E2F7C170DD270115110519F081EE0E946A +:10222000A40FE114F10419F086EE0E94A40F8D2D85 +:102230000E945110EF2819F086EE0E941E0A012B11 +:1022400019F081EE0E941E0ACD2B51F08CE2DF9135 +:10225000CF911F910F91FF90EF90DF900C94511050 +:10226000DF91CF911F910F91FF90EF90DF90089534 +:10227000CF93DF93EC010E94730A9E01205E310927 +:102280002830310510F0209739F40E94140A8C2F61 +:10229000DF91CF910C94A40F0E94030AF8CFFC01A8 +:1022A0008081813029F4FB01808191810C94381167 +:1022B000823021F4FB0182819381F8CF0895CF937E +:1022C000DF93EC018881823039F4FB0182819381B4 +:1022D0000E94381181E08B87DF91CF910895CF93D1 +:1022E000DF93C7E0D2E060E0CE010E94222D21966C +:1022F000C11584E0D807B9F7DF91CF9108956F92A7 +:102300007F928F929F92AF92BF92CF92DF92EF9285 +:10231000FF920F931F93CF93DF938EE6C82E84E036 +:10232000D82E0FE510E0E801E09736011CC0F5015A +:1023300085909490692DC7010E94222D682DC701B8 +:1023400001960E94222D82E0A80EB11C82E0E80EC8 +:10235000F11CCE15DF0559F788E0680E711C289630 +:102360000C171D0731F07E0188E0E81AF1085301CF +:10237000DECF005D1F4F80E3C80ED11C0F3382E01B +:10238000180789F6DF91CF911F910F91FF90EF9081 +:10239000DF90CF90BF90AF909F908F907F906F9085 +:1023A0000895CF93C82F6FEF811161E283E290E02F +:1023B0000E94222DC1110CC0CFEF6C2F84E290E05F +:1023C0000E94222D6C2F85E290E0CF910C94222D5B +:1023D000C9E0F3CF80E00E94D11160E086E290E096 +:1023E0000E94222D0E947F110E946F1181E00C94A7 +:1023F000D111CF93C091E002C2FB992790F99817B1 +:1024000081F080FBC2F9C093E0026091DF0284E0BA +:1024100090E00E94222D6C2F82E290E0CF910C94EC +:10242000222DCF9108950F931F93CF93DF9328E030 +:10243000629FE001112450E0440F551FC40FD51FC7 +:1024400030E3839FC00DD11D1124CE0187960E94D9 +:102450000E2D082F10E0102F0027CE0188960E9425 +:102460000E2D9801282BC901DF91CF911F910F915B +:102470000895462F8A3038F4763028F4643018F402 +:10248000672F0C94131290E080E00895BF92CF92D2 +:10249000DF92EF92FF920F931F93CF93DF937C0114 +:1024A0000091130310911403809132029091330232 +:1024B000082B192BCFE0D0E0CC24C394D12CBC2E18 +:1024C000C6010C2E02C0880F991F0A94E2F78023E0 +:1024D0009123892B71F4219790F7B12C8B2DDF91EB +:1024E000CF911F910F91FF90EF90DF90CF90BF9011 +:1024F0000895B7018C2F0E9439120E94EE060197B1 +:1025000051F3ECCFCF93DF93EC010E944612BE0152 +:102510000E943912DF91CF910C94EE06FC01868166 +:102520009781009779F00E94EE06292F2F709295DF +:102530009F7092509E30A0F4E92FF0E0EE58F24DDB +:102540000C94C42C808191810E948212EECF803F36 +:1025500019F020F4883E20F481E00895843FE1F3EF +:1025600080E00895883EC0F3813FD1F7F5CF822FF8 +:1025700086958695869508951F93CF93DF9300D017 +:1025800000D00F92CDB7DEB7FC012681378121152F +:10259000310541F525E0DE01119601900D922A9555 +:1025A000E1F7FC01228189819A812223B9F0662317 +:1025B000A9F00E944612182F682F89819A810E94E3 +:1025C000B80969817A81812F0F900F900F900F9039 +:1025D0000F90DF91CF911F910C9439120E949109B5 +:1025E000182FEFCFC9010F900F900F900F900F9001 +:1025F000DF91CF911F91089583E290E00E940E2D0C +:10260000813289F484E290E00E940E2D893059F4E1 +:1026100085E290E00E940E2D91E0893009F090E073 +:10262000892F8170089580E0FCCFCF9384E090E003 +:102630000E940E2DC82F82E290E00E940E2D982F4E +:102640008C2FCF91089560917B03669570E04BE0ED +:1026500050E08FE091E00E94562D892B19F481E023 +:1026600080935C020E945705909356028093550216 +:102670000895CF92DF92EF92FF926B017C010E944E +:10268000E305B701A60188E090E0FF90EF90DF90AE +:10269000CF900C94342D5F926F927F928F929F9285 +:1026A000AF92BF92CF92DF92EF92FF920F931F9360 +:1026B000CF93DF9300D00F92CDB7DEB7182F762ED1 +:1026C000042F622E90917B0390FF29C0E92FE6959D +:1026D000AE2FB0E0A258BE4F8C9180935B029E7FDC +:1026E000923081F59E012F5F3F4F812F0E94F905A7 +:1026F0004B8169818A810E94160F10937C0370922E +:102700007D0300937E03662051F060917B037091FE +:102710007C0380917D0390917E030E9439130F907A +:102720000F900F90DF91CF911F910F91FF90EF903D +:10273000DF90CF90BF90AF909F908F907F906F90E1 +:102740005F900895823019F400917E03D6CF8630D1 +:1027500019F410917C03D1CF8930D9F3893169F60E +:10276000E9518E2F8170582EE695F0E0E75BFC4F23 +:10277000A590B490BB2488E1E82E83E0F82ED12CFC +:10278000C12C91E2892E912CC601B4010E947A2CB1 +:10279000812F511013C0860F9701402F672D0E9483 +:1027A000F905CA0CDB1C83E0E80EF11C8BE7E81688 +:1027B00083E0F80649F70E94620B9FCF861BECCF9F +:1027C000EBE7F3E0438128E0421B08F440E021E01E +:1027D000628181810C944B13EBE7F3E0438128E0A5 +:1027E000420F08F44FEF21E0628181810C944B137A +:1027F000EBE7F3E0628128E0621B08F460E021E08F +:10280000438181810C944B13EBE7F3E0628128E074 +:10281000620F08F46FEF21E0438181810C944B1328 +:10282000EBE7F3E0818121E04381628188500C94E1 +:102830004B13EBE7F3E0818121E043816281885F04 +:102840000C944B1380917F03882319F0815080935F +:102850007F0360917B0370917C0380917D03909155 +:102860007E030C94391380917F03833018F48F5FBB +:1028700080937F0360917B0370917C0380917D0343 +:1028800090917E030C94391390917B0390FF36C096 +:102890009170811129C0926090937B03662351F05F +:1028A00060917B0370917C0380917D0390917E0306 +:1028B0000E94391360917B03669570E04BE050E015 +:1028C0008FE091E00E94562D892BA9F010925C02B6 +:1028D00081E08093580220E040917E0360917D0367 +:1028E00080917C030C944B13853210F09864D4CF04 +:1028F000880F982BD1CF0E942313EACF089580919F +:102900007B038695815009F484E261E00C944414C1 +:1029100080917B0386958F5F853208F081E061E0CE +:102920000C94441490917B0390FF07C096959817E0 +:1029300020F0961710F40C94881461E00C94441461 +:10294000EBE7F3E083E0808311828FEF828388E2FC +:102950008383148260817181828193810C94391305 +:1029600069EE7EEF90E080E00E94402D60E082E022 +:1029700090E00E94222D60E083E090E00E94222DF2 +:10298000109233021092320260E084E090E00E94E4 +:10299000222D60E082E290E00E94222D60E085E03E +:1029A00090E00E94222D60E086E090E00E94222DBF +:1029B0006FEF87E090E00E94222D40E050E0BA01E6 +:1029C00088E090E00E94342D60E08DE090E00E946D +:1029D000222D40E050E0BA0188E190E00E94342DC1 +:1029E00060E087E190E00E94222D40E050E0BA01D3 +:1029F0008CE190E00E94342D70E060E080E290E095 +:102A00000E94402D40E050E0BA0188E190E00E9431 +:102A1000342D80E00E94D1110E94EA1140E050E084 +:102A2000BA018FE090E00E94342D40E050E0BA01FE +:102A300083E190E00C94342D90E080E00E941C2D06 +:102A4000893E9E4F11F40C94FC1280E00895109280 +:102A5000D30280914201E6EBF1E0882359F08091A6 +:102A6000DF0287FF07C08EE1DF011D928A95E9F73B +:102A70000C94E40986E0F8CF1F93CF93DF93CDB792 +:102A8000DEB7AA970FB6F894DEBF0FBECDBF8BE0BE +:102A900093E02091F100DC012D93CD01B3E083316F +:102AA0009B07B9F780910C03833009F471C0B8F427 +:102AB000813009F448C0823009F4B2C08091E80046 +:102AC00083FF3AC180910B0390910C039A3008F078 +:102AD00033C1E92FF0E0E058F24D0C94C42C8A3059 +:102AE00009F48DC08B3009F470C0893039F78091BA +:102AF0000B03813219F780910F0390911003009717 +:102B000011F00297D9F68091E800877F8093E80062 +:102B10008091E80082FF37C09091F3008091F2002D +:102B2000029729F48091F1008B7F813021F480910C +:102B3000F1008093E6028091E8008B778093E800B3 +:102B40000E943304BBCF80910B03813A09F0B6CFCA +:102B50008091E800877F8093E80080910F03909137 +:102B60001003892B61F460E287EE92E070E00E942E +:102B7000E5048091E8008B778093E8009FCF60E0C8 +:102B800090E080E0F3CF809109038111C1CF96CF0F +:102B900080910B03813A09F091CF80910F039091BE +:102BA0001003892B09F08ACF8091E800877F8093FA +:102BB000E8008091E80080FFFCCF80914201809383 +:102BC000F1008091E8008E77B9CF80910B038132BC +:102BD00009F074CF80910F0390911003892B09F0B5 +:102BE0006DCF8091E800877F8093E8000E943304D6 +:102BF00080910D03809342010E9427155FCF809141 +:102C00000B03813209F05ACF8091E800877F8093CF +:102C1000E8000E94330480910E038093E5024ECFBA +:102C200080910B03813A09F049CF8091E800877FBA +:102C30008093E8008091E80080FFFCCF8091E5025E +:102C4000BECF803899F0823809F076C080910F03AA +:102C50008F70873008F070C08093E9008091EB009E +:102C600085FB882780F91092E90006C08091070350 +:102C700090910803911182609091E800977F909362 +:102C8000E8008093F1001092F1008091E8008E77C7 +:102C9000B5C1882309F4A2C1823009F04DC08091EA +:102CA0000D038111A6C180910F038F702FEF280FA4 +:102CB000263008F041C08093E9002091EB0020FF0E +:102CC00098C1933031F48091EB0080628093EB00E7 +:102CD00090C19091EB0090619093EB0021E030E087 +:102CE00001C0220F8A95EAF72093EA001092EA00C9 +:102CF0008091EB008860EACF81111EC010910D0316 +:102D00001F778091E3008078812B8093E30080918E +:102D1000E800877F8093E8000E9433048091E800F8 +:102D200080FFFCCF8091E30080688093E30082E025 +:102D3000111183E0809309038091E80083FF0AC0AA +:102D40008091E800877F8093E8008091EB008062AB +:102D50008093EB00AA960FB6F894DEBF0FBECDBFEE +:102D6000DF91CF911F9108958058823028F72091EC +:102D70000D0330910E032C3DE3E03E07A1F583E007 +:102D80008A838AE289834FB7F894DE01139620E0A4 +:102D90003EE051E2E32FF0E050935700E49120FF32 +:102DA00003C0E295EF703F5FEF708E2F90E0EA3046 +:102DB000C0F0C7968D939D932F5F243159F74FBF75 +:102DC0008091E800877F8093E8006AE270E0CE019E +:102DD00001960E94E5048091E8008B778093E800DB +:102DE000ABCFC096E7CF80910F0390911003432F94 +:102DF00055274330510509F44AC078F54130510553 +:102E000009F47AC08BE590E0EEE4F6E0423051053B +:102E100009F092CF2091E800277F2093E8002091CD +:102E20001103309112038217930708F49C0140E0CC +:102E30002115310509F065C0411163C08091E8009A +:102E400082FDC9CF80910903882329F2853019F2C8 +:102E50008091E80083FFF2CFBECF4132510509F4E3 +:102E60003CC04232510509F067CF8330910508F02C +:102E700063CFFC01EE0FFF1FEA55FE4F0190F0817A +:102E8000E02D8D559E4FDC018C9190E01AC03327C8 +:102E900021303105D1F02115310561F022303105A5 +:102EA00009F04ACFEBEBF6E0E4918E2F90E0EBEBEC +:102EB000F6E007C0EBEDF6E0E4918E2F90E0EBED4D +:102EC000F6E0009709F438CFA5CFE7ECF6E0E491FF +:102ED0008E2F90E0E7ECF6E0F4CF8330910508F018 +:102EE0002BCF880F991FFC01E455FE4F0190F08114 +:102EF000E02D89E090E08ECF82E190E0E9EAF6E013 +:102F000089CF80910903882309F465CF853009F4BE +:102F100062CF8091E80083FD5ECF8091E80082FD62 +:102F20008DCF8091E80080FF83CF9091F300809156 +:102F3000F2002115310519F08830910550F041E07B +:102F4000089709F040E08091E8008E778093E800D0 +:102F50006FCF44914093F100319621503109019691 +:102F6000E8CF803809F0E8CE8091E800877F809331 +:102F7000E80080910A038093F10087CE8111DCCEB6 +:102F800010910D03123008F0D7CE8091E800877FB2 +:102F90008093E80010930A030E943304112311F078 +:102FA00084E005C08091E30087FDFACF81E0809343 +:102FB000090342E061EC81E00E94520442E261ECCC +:102FC00084E00E94520442E261EC82E00E945204DA +:102FD00042E260EC83E00E945204AECE80910D0389 +:102FE000813009F0A9CE81E0933009F080E0809330 +:102FF00008031092E9008091E800877F8093E80041 +:103000000E94330499CE9F92AF92BF92CF92DF92EB +:10301000EF92FF920F931F93CF93DF9300D000D0D6 +:10302000CDB7DEB77C01DC0113968D919C9114978E +:10303000892B39F08C9111969C9189238F3F09F04F +:1030400040C60F900F900F900F90DF91CF911F917E +:103050000F91FF90EF90DF90CF90BF90AF909F9037 +:103060000895D60116968C9116978823E9F0199643 +:103070008D919C910817190739F48091D002909195 +:10308000D1020817190781F0F60197861487038784 +:103090008189811103C0C6010E94BD08C601069640 +:1030A0000E94DE081092D202FFEFAF1ABF0A26E19B +:1030B000C20ED11C1CC6980122513F45203131055A +:1030C00008F0DEC48FEF93E00E940E2D025167E0FE +:1030D000C62E62E0D62E882349F180912F02877098 +:1030E00009F4AFCFF7018281882309F4AACF82E0E7 +:1030F0000F900F900F900F90DF91CF911F910F9134 +:10310000FF90EF90DF90CF90BF90AF909F900C9486 +:10311000430DC11434E0D30601F3C6010E940E2D05 +:10312000811101C001508FEFC81AD80A0111F1CFE7 +:103130001C821B82BB24B3945AE0A52E86010F5F2C +:103140001F4FC6010E940E2D89831A82882329F2FF +:103150009FEF980F933020F58A83B98292E0C90ED1 +:10316000D11CC8010E940E2D8B83882309F4B5CF92 +:103170008E010F5F1F4FD8018C918823F9F28130A7 +:1031800009F046C011969C91119712968C9191303E +:1031900049F40E5F1F4F0E9451100F5F1F4FEBCF7E +:1031A0006801E6CF923029F40E5F1F4F0E94A40FF2 +:1031B000F4CF933029F40E5F1F4F0E941E0AEDCF0B +:1031C000943019F00F5F1F4FE8CF0E5F1F4F30E0B4 +:1031D00020E0B8016F5F7F4FF80141818053990B68 +:1031E0008A30910550F021503109B8F28FE99FE003 +:1031F0000197F1F700C00000F6CFA29EF001A39E58 +:10320000F00D11249C012E0F3F1F842F8B01E1CF65 +:103210000E94D210C2CF81E00E945F0D0E94230D58 +:103220005CCF81E00E94320DF9CF82E0F5CF882398 +:1032300069F180913902811106C081E080933902E1 +:1032400082EE0E94A40F0E9457059093380280934B +:1032500037028BE20E94A40F27C48823A1F080913B +:103260003902811106C081E08093390282EE0E940A +:10327000A40F0E945705909338028093370281EE85 +:103280000E94A40FE6CF81EE0E941E0A8BE20E94EC +:103290001E0A0AC4882309F455C4F60181898823CB +:1032A00009F450C4C5018E5C9E4F0E94DE084AC4DA +:1032B00082EE0E94A40F82C488E193E00E9438113C +:1032C00088E193E00E94A40A79C482EE0E94A40FD0 +:1032D00087E50E94511072C486EE0E94511088E169 +:1032E000F8CF895A85C482EE0E941E0A99C48CE2E6 +:1032F0000E9451108091D701882309F491C489E379 +:103300000E9451108DC488E2FBCF033FBCE51B0730 +:1033100039F188F4083DFCE51F07F1F0093D2CE583 +:10332000120751F1073D3CE5130709F07DC426E281 +:1033300041EE61EE0DC0053F8CE51807C9F0A0F025 +:1033400027E245EE66EE063FACE51A0709F06CC4CD +:10335000C7010E946E10C1CE27E245EE65EEF8CFA0 +:1033600026E241EE60EEF4CF27E245EE64EEF0CFC8 +:1033700026E241EE62EEECCF28E241E0EFCF809111 +:10338000DF02806106303CE5130709F487C008F4CA +:103390008CC08091DF02806281C08091DF028D7FCE +:1033A0000C309CE5190709F479C070F48091DF02B4 +:1033B0008C600A30BCE51B0709F470C008F481C0BA +:1033C0008091DF028E7F6AC08091DF02877F0E309E +:1033D000FCE51F0709F462C08091DF028B7F0F308C +:1033E0001C4508F45BC08091DF028F7E57C00B3F05 +:1033F0003CE5130709F45DC030F503319CE519077E +:1034000009F46DC078F40131BCE51B0709F463C011 +:1034100002311C4509F045C40E9427158091DF0246 +:103420008F773CC00531FCE51F0709F460C008F444 +:1034300074C08091E00281600A3F1C4509F031C4EC +:103440008093E0022EC40F3F8CE5180709F44BC0AF +:1034500088F48091E0028D7F0D3FACE51A0781F37F +:103460008091E0028E7F0E3F1C4550F38091E00278 +:103470008360E6CF0130EDE51E0709F457C008F47C +:1034800042C060E002301D4509F00BC48EE090E0C0 +:103490000E94222D06C48091DF0281608093DF02AA +:1034A00000C48091DF028460F9CF8091DF028860E0 +:1034B000F5CF8091E0028260C3CF8091DF0280640B +:1034C000EDCF0E9427158091DF028068E7CF8091C1 +:1034D000DF028F7DE3CF8091DF028F7BDFCF809192 +:1034E000DF02837FDBCF8091E0028C7FA9CF8091C8 +:1034F000DF0282FB992790F921E0922790FB82F965 +:1035000090FB83F9CBCF8091E002982F909591703A +:103510008E7F892B90FB81F993CF0E942715909184 +:10352000DF02892F97FB87F98058B8CF61E0AECFD3 +:103530008091D30206313CE5130709F0FCC38A7A77 +:1035400091E009F490E09093D801811106C089E2DE +:103550000E9453090E947808C0CD85E3F9CF85E326 +:10356000E7C380917B0380FF1BC08E7F80937B032A +:1035700060917B0370917C0380917D0390917E0329 +:103580000E94391310925C028FEF90E7A2E0815005 +:103590009040A040E1F700C000000E94620B9DCD6A +:1035A000816080937B0361E086950E94441495CDF1 +:1035B0004FE754E168E874E10E94DE058ECD48E8EB +:1035C00054E16FE774E1F8CF49E154E160E174E15F +:1035D000F3CF48EF53E164E074E1EECF40EE53E106 +:1035E0006CEE73E1E9CF4CEE53E160EE73E1E4CFB2 +:1035F00043E354E162E274E1DFCF61E081E0D5CFE3 +:1036000065E082E00E94921468CD68E086E0FACF1F +:1036100064E18FE0F7CF67E185E1F4CF62E289E111 +:10362000F1CF61E083E2C1CF0B353DE5130701F136 +:103630000C351D4509F0AAC38091E00282FB882762 +:1036400080F991E089270E94F911A0C30E942715F3 +:103650009FEFA4E3BCE09150A040B040E1F700C070 +:1036600000000E943E0B0E94B01437CD81E0EBCFEA +:1036700080E0E9CFF701828100811181882369F020 +:10368000C8010E944612D82E682FC8010E94B809AE +:10369000B8018D2D0E94391280C3C8010E94910982 +:1036A000D82EF6CFE12FEF70CE2E107F19F0C294F6 +:1036B00090EFC922DD20C9F0CC2069F080E2800FB4 +:1036C000883010F001110BC08091D302C82AC0923B +:1036D000D3020E947808802F0E94A40F16C0809108 +:1036E000D202C82AC092D202F4CF802F0E941E0AB2 +:1036F000CC2059F080E2800F883010F0011138C0E2 +:103700008C2D0E9471080E947808A92DA850BB0B2F +:10371000149720F40E948F050E946D0AAA20A9F038 +:1037200080912F0280FD11C0F70112828595859549 +:1037300085950E945F0DC7010E94031880912F029A +:103740008595859585950E94320D60E0C7010F90A3 +:103750000F900F900F90DF91CF911F910F91FF90DD +:10376000EF90DF90CF90BF90AF909F900C94BC12E1 +:10377000C0948091D202C822C092D202C4CFF12F4D +:10378000FF70BF2E107F103219F0B29480EFB82274 +:10379000002381F0013099F1DD20F1F1CC20A9F175 +:1037A000D70115968C91159780FF95CF8F70159640 +:1037B0008C932BC0DD20B1F0909131028B2D892BA1 +:1037C000C11003C00E94140AA0CF21E0C212FACF98 +:1037D0002091E00222FD99CF981709F496CF8093AB +:1037E000310293CFC11006C00E946B088B2D0E943E +:1037F0000D0A8BCF31E0C31609F487CFF5CFDD205A +:1038000031F085E08C1508F480CF8B2DDBCF94E070 +:103810009C1508F47ACFEACFCC2041F3093349F460 +:10382000BFEFE7EEF3E0B150E040F040E1F700C059 +:103830000000802F0E941E0A68CF812F86958695F2 +:10384000837061F0813009F060CFC8019370D110AE +:1038500002C090E080E00E94630557CFC8019370DA +:10386000D11002C090E080E00E9479054ECF812FF8 +:10387000837009F03FC0D11048CF402F4295469544 +:103880004770440F440F802F8F7090E0042E02C0C9 +:10389000880F991F0A94E2F730E020E004FF09C086 +:1038A0002FE030E002C0220F331F4A95E2F7209547 +:1038B0003095169516951370123099F078F4409162 +:1038C000320250913302113039F0822B932B842332 +:1038D00095230E94F20919CF842B952B822B932BD1 +:1038E000F8CF822B932B2091320230913302822722 +:1038F0009327EFCF8695DD2011F0812F81708823EB +:1039000009F403CF402F429546954770440F440F6A +:10391000802F8F7090E0042E02C0880F991F0A94A8 +:10392000E2F730E020E004FF09C02FE030E002C001 +:10393000220F331F4A95E2F720953095169516957C +:103940001370123099F078F44091130350911403DE +:10395000113039F0822B932B842395230E941B0D69 +:10396000D4CE842B952B822B932BF8CF822B932BA9 +:10397000209113033091140382279327EFCF1F70F8 +:10398000DD2029F0812F0E945F0D802F1BCF802F1B +:103990000E940D0A812F0E94320DB7CE023F09F41A +:1039A00041C060F4003F11F1013FA1F1DD2009F4B5 +:1039B00057C0C11090CE812F8F7131C0033FB9F134 +:1039C000043FA1F7DD2009F440C01F71812F0E9440 +:1039D0005F0D8091E00282FD07C0A8E01A9FC00140 +:1039E0001124836080932F02812F19C0DD2069F09C +:1039F00024E02C1508F489CE1F7181E090E002C00C +:103A0000880F991F1A95E2F7B3CF35E03C1508F4FB +:103A10007CCEF2CF812F8F71DD2009F4BCCF0E94C4 +:103A20005F0D73CE812F8F71DD20C9F3B4CF90E08D +:103A300080E0DD2009F492CF1F7181E090E002C0A8 +:103A4000880F991F1A95E2F789CF81E00E94430DF4 +:103A5000B1E0BC1508F059CE82E00E94430D55CE6E +:103A6000CC2059F0093309F0E4CEEFEFF7EE23E074 +:103A7000E150F0402040E1F7DACE812F8F718BCFFB +:103A80000031FFE51F0709F4C6CB01312FE512070E +:103A900009F4CBCB0038AFE51A0709F4C8CB0138DD +:103AA000BFE51B0709F4D9CBC80197558F3F910596 +:103AB00011F008F047C020910401022E000C330BD6 +:103AC0002817390714F480930401F701228136E1A5 +:103AD000389F5001399FB00C1124C501845D9E4F61 +:103AE0006C01DC0150962C935097928116968C9124 +:103AF0001697992309F4CECB1A961C930E93199717 +:103B00008F5F16968C930E945705F60196878587DE +:103B10008091310287838091D2029091D302892BC8 +:103B200080870190F081E02D309741F0D6015496C6 +:103B30006D917C91C5018E5C9E4F09951093D102C9 +:103B40000093D002D70112968C91882369F0C801A6 +:103B5000815E9C45059740F46FE1600F60933A02E7 +:103B60008CE090E00E94222D17FFCFCBF7018281DD +:103B7000882309F459C00E948F058695817080932F +:103B8000D70190913A02913029F4882319F089E302 +:103B90000E9451108091D3028093D6011092D302DB +:103BA00080913A02813009F487CB882309F480CBD5 +:103BB000823009F48ACB843009F48ECB8FE39CE900 +:103BC0000197F1F700C000005801E894B7F84CE005 +:103BD000C42ED12CC5010C2C02C0969587950A9451 +:103BE000E2F78F7096EF980F963008F47ACB805DED +:103BF0000E94D21094E0C91AD108ACEFCA16AFEFF8 +:103C0000DA0641F780913A02813009F470CB8823BB +:103C100009F469CB823009F466CB843009F473CBA4 +:103C20008091D6018093D302F7018281882309F421 +:103C300077C0109217030230FCE51F0708F478CC18 +:103C400006312CE5120730F0C8018A5F9C450997C0 +:103C500008F06ECC0E9415139093E0028093DF026F +:103C600000313CE5130709F432CC08F0C0CB083032 +:103C70009CE5190709F421CC08F08FCB0430BCE592 +:103C80001B0709F40ECC08F07ACB0230FCE51F07C5 +:103C900009F401CC8091DF02826003301C4509F4F5 +:103CA000FDCB6091DF021091E00284E090E00E9481 +:103CB000222D612F82E290E00E94222D0E94271582 +:103CC0000CCA61E0C7010E94BC128C01D701129698 +:103CD0008C918823A9F0809104018F3F89F07CE2C8 +:103CE000C72E71E0D72EB12CA12C992493948091EA +:103CF0000401082E000C990B8A159B050CF0B1C924 +:103D0000F70182818111D7C900313FE5130709F41A +:103D100088CA01319FE5190709F0BCCE82E082CA4A +:103D200006311C4599F58091D801811118CC89E2A2 +:103D30000E9428090FCC82720C3CECE51E0709F4A6 +:103D400057CC08F090C0063C2CE5120709F43CCC97 +:103D500008F065C0033C9CE5190709F429CC08F07C +:103D60004FC0023CBCE51B0709F4FBCB0A35BDE59F +:103D70001B0709F47BCC08F057CC0115FCE51F07A5 +:103D800009F464CC0E3D1C4509F46DCCD7011696A0 +:103D90008D919C91009709F46DCC0E94EE068C01E8 +:103DA000D7011296DC9012971596CC90C2943FE002 +:103DB000C32280912F028770A1F0AD2CDD2091F0FD +:103DC000812F807F803421F080E2800F883048F09E +:103DD00082E00E94430D80912F028770AA24A39451 +:103DE0008111A12C912E92942FE09222BBE0B91563 +:103DF00008F48BCCE92DF0E0E657F24D0C94C42C7E +:103E0000043CECE51E0709F4DACB40E154E169E13A +:103E100074E1053CFCE51F0709F4CECBA7CF093CB4 +:103E20002CE5120709F4DACB78F4073C9CE5190776 +:103E300009F4CFCB44E054E168EF73E1083CACE512 +:103E40001A0709F4B9CB92CF0A3CBCE51B0709F469 +:103E5000CACB42E254E163E374E10B3CECE51E079C +:103E600009F4AACB83CF013DFCE51F0709F4D0CBB1 +:103E7000A0F40E3C3CE5130709F4C2CB08F4BDCB1B +:103E80000F3C9CE5190709F4C0CB6EE089E0003DCA +:103E9000ACE51A0709F4B6CB69CF043DBCE51B07B6 +:103EA00009F4BCCB68F4023DFCE51F0709F4B3CB71 +:103EB00061E088E1033D2CE5120709F476CB56CF8B +:103EC000053D3CE5130709F4ACCB0D35100709F4AB +:103ED00004C94CCFCF93DF938091EA01807FA1F496 +:103EE0008091E701882381F080912E02D091ED012D +:103EF0006091E5017091E601A091E801B091E901BE +:103F0000C62FC723D81303C0DF91CF91089590E047 +:103F1000109711F0CF3F19F401968770F3CF9C01F1 +:103F200043E0220F331F4A95E1F7F901E251FE4FBA +:103F300041814713F1CF40814613EECF42814111B9 +:103F4000EBCF438154814A1B5B0B483C510520F762 +:103F50008091EA018F7080618093EA01F901ED5050 +:103F6000FE4F80818F708061808385EE91E00E949A +:103F70000318DF91CF910C948709AF92BF92CF9233 +:103F8000DF92EF92FF920F931F93CF93DF93CDB702 +:103F9000DEB765970FB6F894DEBF0FBECDBF8C01BC +:103FA00085E0F801DE01519601900D928A95E1F7C6 +:103FB000F801E28065EEA62E61E0B62E6091E80180 +:103FC0007091E9016115710509F468C19091E501ED +:103FD0004091E601892F84238F3F09F45FC120813E +:103FE0003181C380D480F090E701F601E61BF70B26 +:103FF000FF2009F41DC18091EA01582F507FE83C51 +:10400000F10508F0D0C0511181C0FE2C43132BC024 +:10401000921329C06091EB017091EC01F801468187 +:10402000578164177507F9F4E1101DC08F70806126 +:104030008093EA01C5010E9403188091EA01F8010A +:1040400085838F2D65960FB6F894DEBF0FBECDBF6A +:10405000DF91CF911F910F91FF90EF90DF90CF9064 +:10406000BF90AF900895CD2829F0822F83238F3FF2 +:1040700009F02FC180E0F82FF170DF2E80FF3CC0E7 +:1040800080912E024091ED01841315C0298B3A8B4B +:1040900089899A890E948212292F22952F702230B5 +:1040A000F8F0243020F59F70F9F0F8019581907FA9 +:1040B000D9F4D12C1FC090E0FC0153E0EE0FFF1F9C +:1040C0005A95E1F7E251FE4F5181351306C05081F8 +:1040D000251303C05281E5120FC001968770D4CF1B +:1040E0009F7011F0882329F3805E883010F3C80197 +:1040F0000E940318FD2CA5CFEE2009F4A2CF8091D9 +:10410000EA0181608093EA01F12C9BCF43131BC02D +:10411000921319C04091EB015091EC01F8012681F6 +:1041200037814217530779F4E1100DC08583C80128 +:104130000E94031888E0F801A5EEB1E001900D920D +:104140008A95E1F77ECFC8010E948E12882339F14B +:10415000EE2029F18091EA018032A0F02091E50162 +:104160003091E6013A8729871B86DD86CC868E87CB +:104170008091EB019091EC01988B8F87CE0109968D +:104180000E94031888E0F801A5EEB1E001900D92BD +:104190008A95E1F70E946A1FFF24F39452CFC80169 +:1041A0000E940318F9CF51110AC085EE91E00E94D8 +:1041B000031888E0F50111928A95E9F7A5CF43131A +:1041C00018C0921316C04091EB015091EC01F80118 +:1041D000268137814217530761F4E1100AC08583B5 +:1041E000C8010E94031888E0F50111928A95E9F749 +:1041F00028CFC8010E948E12882389F2EE2079F21E +:104200008091EA01803208F4BDCF2091E501309120 +:10421000E6013A8329831B82DD82CC828E838091E2 +:10422000EB019091EC0198878F83CE010196A8CF86 +:10423000E83CF105C0F6FE2CEE2009F4B0CF4313A4 +:104240001FC092131DC02091EB013091EC01F801C9 +:10425000868197812817390799F49091EA0190FD9A +:1042600069CF907F09F466CF8091EA018583903F02 +:1042700009F45DCF982F907F905F8F70892B56CF78 +:10428000C8010E948E1281117DCF8091EA01816068 +:104290008093EA01C8010E940318D3CEEE2009F4EE +:1042A0007ECFC8010E948E12F82E882309F477CFA2 +:1042B00088E0F801A5EEB1E001900D928A95E1F752 +:1042C0008091E5019091E6010E9482120E946A1F8E +:1042D000B8CE81E08E25CFCECF93DF93CDB7DEB7BA +:1042E00060970FB6F894DEBF0FBECDBF29873A871F +:1042F0004B875C876D877E878F87988BCE01099669 +:104300000E94BD1F811112C088E0FE013996DE01B6 +:10431000119601900D928A95E1F78C859D85892BE8 +:1043200029F089859A8589238F3FA9F580912E02EE +:104330009091ED0189131CC060960FB6F894DEBF12 +:104340000FBECDBFDF91CF91089593E0AA0FBB1FA1 +:104350009A95E1F7A251BE4F98E0FE013196019087 +:104360000D929A95E1F78093ED010E948709DECFC7 +:10437000B8E08B9FC001112482519E4F0E94BD1F47 +:104380008823D1F280912E0290E0019687709927C0 +:1043900080932E02CBCFA091ED01B0E0CD0101962C +:1043A0008770992720912E022817190671F60E940E +:1043B00027151092ED0110922E0288E0E5EEF1E053 +:1043C000DF011D928A95E9F7B1CF0F931F93CF9329 +:1043D000DF9380916302E0916202CCE081111AC008 +:1043E000DF91CF911F910F910895D1E0DE0FD0930F +:1043F00062020E2F10E0EC9FF0011124EC59FD4FEA +:1044000083819481892B29F08081918189238F3F39 +:1044100051F4ED2F80916302E81738F31092630294 +:1044200010926202DDCFC09FD001C19FB00D112458 +:10443000AC59BD4F16968D919C911797892B29F4F5 +:1044400018968D919C91019651F420813181428181 +:10445000538164817581868197810E946C21C09F00 +:10446000F001C19FF00D1124EC59FD4F148213820D +:10447000D0CF1092CF021092CE0210922B018091D9 +:10448000CD028093CC020E94C9050C94E5212F92A5 +:104490003F924F925F926F927F928F929F92AF92D4 +:1044A000BF92CF92DF92EF92FF920F931F93CF9321 +:1044B000DF93C091CC02E7E0FE2E01E010E0FCE0CB +:1044C0002F2EAEEFEA2E8091CD028C1316C00E94E3 +:1044D000E521DF91CF911F910F91FF90EF90DF9039 +:1044E000CF90BF90AF909F908F907F906F905F9094 +:1044F0004F903F902F900C94C905D0E0FE01EE0F35 +:10450000FF1FEC53FD4F80819181F89EF001F99ED1 +:10451000F00D1124E35EFE4F2481211158C030902C +:104520006302A4E6B2E030E020E0412C5F012315F5 +:1045300008F04BC01A966D907C901B97F501808017 +:1045400091804FEF5FEF512CC52CD12CF601EE0F6F +:10455000FF1FE80DF91D659174916616770609F441 +:10456000A601672B11F05394EFCF4F3F5407B1F1E1 +:10457000B80102C0660F771F4A95E2F7462AA801E4 +:1045800002C0440F551F5A94E2F741505109441696 +:10459000150601F5229EF001239EF00D1124EC5921 +:1045A000FD4FF89ED001F99EB00D1124A35EBE4FC1 +:1045B00012962D913C91139737832683E082E182F6 +:1045C0009187808771E015967C930E949B052196C8 +:1045D000C37079CF14961C921E9213972F5F3F4F92 +:1045E0001C96A5CFAF92BF92CF92DF92EF92FF922F +:1045F0000F931F93CF93DF9300D000D000D0CDB79F +:10460000DEB78E010F5F1F4F86E0D8011D928A959D +:10461000E9F724E7C22E21E0D22EF12CE12CAA24C6 +:10462000A394B12CF60181916F018F3F09F44BC027 +:10463000F894E82FE295EF70F0E021A18F70A501CA +:1046400002C0440F551F8A95E2F7CA01922F982B9A +:1046500091A392A18095892382A3789400C0C5017B +:104660000E2C01C0880F0A94EAF7382F282F2095C6 +:1046700068E771E0F801DB019D91BD0180819F3FFA +:1046800009F46BC0492F42954F7050E0DA019096C3 +:104690004C9150E09F7002C0559547959A95E2F76E +:1046A00040FD5BC0832B80833196B1E06E377B0782 +:1046B00011F7F601319780818F3F11F00E94940627 +:1046C000E0EAEA95F1F7FFEFEF1AFF0A24E0E216BD +:1046D000F10409F0A7CF46E050E0B8018EE392E084 +:1046E0000E94632DDD24D394009709F4D12C892BEB +:1046F000B1F186E0F801AEE3B2E001900D928A9547 +:10470000E1F781E0809336020E94570590933502CD +:104710008093340280913402909135020E944805C2 +:10472000059708F180913E0280934F0280913F02ED +:104730008093500280914002809351028091410207 +:1047400080935202809142028093530280914302EF +:10475000809354021092360206C08223A4CF809127 +:1047600036028111D7CF809104018F3F09F06AC0D2 +:1047700080912B0181116AC080913902882371F0E8 +:1047800080913702909138020E944805893E9340FB +:1047900028F082EE0E941E0A109239028D2D269674 +:1047A0000FB6F894DEBF0FBECDBFDF91CF911F9142 +:1047B0000F91FF90EF90DF90CF90BF90AF90089552 +:1047C000E29EF001E39EF00D1124E45DFE4FA2880D +:1047D000B388A114B10419F498ECA92EB12CE29E6F +:1047E0008001E39E100D1124045D1E4FD801169622 +:1047F0008C9116978823C9F01D968D919C910E94EB +:104800004805A816B90688F4FE9C50011124F80149 +:104810008189811105C0C501845D9E4F0E94BD083C +:10482000C5018E5C9E4F0E94DE08F3942F2D30E070 +:1048300080910401082E000C990B821793070CF04D +:10484000BFCF96CFF12C86E1E82EF0CF8091CE023B +:104850009091CF02009709F48FCF0E9448052091D4 +:104860006002309161022817390708F085CF9091D6 +:10487000CC028091CD02981759F00E9447221092E5 +:104880006102109260021092CF021092CE0274CF99 +:104890000E94E5211092CF021092CE020E94C9051B +:1048A0006BCF2F923F924F925F926F927F928F9237 +:1048B0009F92AF92BF92CF92DF92EF92FF920F93AF +:1048C0001F93CF93DF93CDB7DEB769970FB6F894F8 +:1048D000DEBF0FBECDBF498B5A8B6B8B7C8B8D8B14 +:1048E00061111092D2021D861E861F86188A85E0ED +:1048F000FE017196DE01199601900D928A95E1F7FD +:104900008C859D85892B31F089859A8589238F3FF8 +:1049100009F0D4C129853A854B855C856D857E85F6 +:104920008F8598890E946C21C3C028EFC2162CE5A0 +:10493000D20629F4882379F00E943922EBCF39EF8F +:10494000C3163CE5D30639F4882329F080912B0166 +:104950008111F2CFC3C10DE111E0E12CB12CA12CEA +:1049600088248394912C2EEF522E44244394F801F2 +:104970006081718166246A94762C20E0422F50E099 +:10498000FA01EE0FFF1FE60FF71F85919491C816ED +:10499000D90609F43A01892B31F02F5FEFCFAA2411 +:1049A000A394B12CE4CFF12CFFEF6F167F0609F42E +:1049B00045C0F8014481F0902B018F2D411180E01A +:1049C000F82FF170FF2EF801258086819B859923B1 +:1049D00009F404C1FF2009F401C1211014C0A4018D +:1049E00001C0440F6A94EAF7842B868380916002A9 +:1049F000909161028C32914030F44CE251E050933E +:104A0000610240936002C40102C0880F991F2A9579 +:104A1000E2F70197F80126812817190679F48091A9 +:104A2000CE029091CF02009709F45BC00E94480526 +:104A30008D32914008F455C0F8014482EF28095F97 +:104A40001F4FAA94AB2809F0AACF8B85882309F4BD +:104A500020C1EE2009F41DC10E9457059093CF029A +:104A60008093CE0280916302883010F591E0980F18 +:104A70009093630298E0FE013996DE011196019051 +:104A80000D929A95E1F72CE0829FC00111248C5978 +:104A90009D4F28E0FE013196DC0101900D922A9590 +:104AA000E1F72FEF3FEFFC0131872087D386C286E5 +:104AB00069960FB6F894DEBF0FBECDBFDF91CF91E0 +:104AC0001F910F91FF90EF90DF90CF90BF90AF902C +:104AD0009F908F907F906F905F904F903F902F901E +:104AE00008958091CC026090CD02982FF0E0E0E034 +:104AF000861114C09093CC020E171F0709F49ECFA5 +:104B000090E0FC01EE0FFF1FEC53FD4FB182A0823D +:104B10000196837099278093CD0290CF282E312C57 +:104B2000F101EE0FFF1FEC53FD4F20813181F7E0C3 +:104B3000F29FD001F39FB00D1124A35EBE4F2D91C3 +:104B40003C911197398F288F712C60E070E0E72F2E +:104B5000F0E0EE0FFF1F288D398DE20FF31F259136 +:104B6000349121153105E1F0F8010190F081E02D3B +:104B7000FF8BEE8B60E005C02417350709F47F2C0E +:104B80006F5FE62FF0E0EE0FFF1F4E895F89E40FA5 +:104B9000F51F459154914115510571F77F5FD7CFAE +:104BA0007720C9F0F801671708F0FD0144820E175D +:104BB0001F0721F49093CC02F72C40CF981305C027 +:104BC000AE17BF0711F49F5F937091012F5F3F4FA6 +:104BD000822F83708DCFF0E0E0E0F7CF90E02110DE +:104BE0001FC0B40102C0660F771F2A95E2F79B0130 +:104BF000215031092817390731F4442309F447C0FB +:104C0000C5010E949B05C40101C0880F6A94EAF7A0 +:104C1000982F9095F801868189238683F22C0ECFF8 +:104C20009C01062C02C0359527950A94E2F7A9014C +:104C300041705527BC016150710986239723892B48 +:104C400011F5452B01F1F80182819381892BC1F087 +:104C50001B821C821D821E8259825A820E94570525 +:104C60008160582F9D838C83F801828193818F838B +:104C7000988729813A814B816D817E810E946C21C8 +:104C8000F8011582C0CFF22FF1702F2EBCCF2F2C40 +:104C9000BACF9091CC028091CD02981731F00E944A +:104CA0004722EE2009F436CE03CF0E94E521109270 +:104CB000CF021092CE020E94C905F3CF61E0CE016F +:104CC00009960E94BC126C018B85F7EFCF16FCE5AC +:104CD000DF0609F02ACE882309F43DCE81E08093D7 +:104CE0002B0118CE1F920F920FB60F9211242F9303 +:104CF0003F934F935F936F937F938F939F93AF9364 +:104D0000BF93CF93DF93EF93FF93D091E900DF70D0 +:104D10008091EC00C82FC17080FDC0E81092E900BE +:104D20008091F000877F8093F00078940E943C157A +:104D30001092E9008091F00088608093F000CD2B04 +:104D4000CF70C093E900FF91EF91DF91CF91BF91B8 +:104D5000AF919F918F917F916F915F914F913F9113 +:104D60002F910F900FBE0F901F9018951F920F92CA +:104D70000FB60F9211242F933F934F935F936F932E +:104D80007F938F939F93AF93BF93EF93FF93809104 +:104D9000E10082FF09C08091E20082FF05C080919E +:104DA000E1008B7F8093E1008091DA0080FF24C0D6 +:104DB0008091D80080FF20C08091DA008E7F8093A0 +:104DC000DA008091D90080FF9BC080E189BD82E13B +:104DD00089BD09B400FEFDCF81E080930903809175 +:104DE000E402811109C00E94B9030E9484048091E9 +:104DF000E20084608093E2008091E10080FF17C0B0 +:104E00008091E20080FF13C08091E2008E7F80934A +:104E1000E2008091E20080618093E2008091D800FE +:104E200080628093D80019BC85E08093090380914B +:104E3000E10084FF29C08091E20084FF25C080E169 +:104E400089BD82E189BD89B5982F917080FFFBCF24 +:104E50008091D8008F7D8093D8008091E1008F7E73 +:104E60008093E1008091E2008F7E8093E200809148 +:104E7000E20081608093E20080910A03882309F4B4 +:104E800045C084E0809309038091E10083FF27C03F +:104E90008091E20083FF23C08091E100877F8093AF +:104EA000E10082E08093090310920A038091E100FF +:104EB0008E7F8093E1008091E2008E7F8093E200FC +:104EC0008091E20080618093E20042E060E080E057 +:104ED0000E9452048091F00088608093F000FF915E +:104EE000EF91BF91AF919F918F917F916F915F9162 +:104EF0004F913F912F910F900FBE0F901F901895DB +:104F000019BC109209031092E40276CF8091E3005D +:104F100087FD93E090930903B7CF78941F921FB653 +:104F20001F9211248F939F93AF93BF938091DB02C5 +:104F30009091DC02A091DD02B091DE020196A11DEC +:104F4000B11D8093DB029093DC02A093DD02B0934D +:104F5000DE02BF91AF919F918F911F901FBE1F9056 +:104F600018951F921FB61F9211248F939F93AF9392 +:104F7000BF938091DA02811113C08091DB0290917E +:104F8000DC02A091DD02B091DE024196A11DB11DAF +:104F90008093DB029093DC02A093DD02B093DE02EB +:104FA000BF91AF919F918F911F901FBE1F90189539 +:104FB000CDB7DEB7AA970FB6F894DEBF0FBECDBF50 +:104FC00084B7877F84BF0FB6F894A895809160005E +:104FD000886180936000109260000FBE80E890E0CE +:104FE0000FB6F89480936100909361000FBE85B76F +:104FF000806885BF85B7806885BF82E996E0909319 +:10500000B3018093B2010E94B9030E94840480918D +:10501000E20084608093E200789480910903882301 +:10502000A1F01091E9001F709091EC00892F817020 +:1050300090FD80E8182B1092E9008091E80083FD34 +:105040000E943C151F701093E90082E084BD93E03C +:1050500095BD9AEF97BD80936E000E94FC1281115E +:1050600002C00E94EA1182E30E94940680EF0E942F +:10507000940686E90E94940687E90E94940608E750 +:1050800011E02EE7E22E21E0F22EF80181918F014E +:105090008F3F11F00E949406E016F106B1F7EEE39F +:1050A000F2E084E492E0AFE4B2E011921D928E1738 +:1050B0009F07D9F70E941C15811102C00E94B014ED +:1050C00082E090E00E940E2D809348020E9415130A +:1050D0009093E0028093DF020E94F2228FE39CE92A +:1050E0000197F1F700C000000E94F22280914F0268 +:1050F00080FF08C06FEF7FEF90E080E00E94402DBE +:105100000E943E0B83E090E00E940E2D90E00E94F2 +:10511000F20980911303909114030E94060C6E9A79 +:10512000769A8CE090E00E940E2D90E0B0E0A0E036 +:1051300080933A0290933B02A0933C02B0933D02CD +:1051400080914402811133C00E941C15811104C05A +:105150000E94B0140E94A01488E090E00E94162DD6 +:1051600060937B0370937C0380937D0390937E0315 +:105170006E7F71F40E94A01488E090E00E94162DCA +:1051800060937B0370937C0380937D0390937E03F5 +:105190000E94E30510925C0280917B0380FF04C0B3 +:1051A00060E086950E94441481E0809344028091DF +:1051B0007B03816080937B0361E086950E944414A9 +:1051C00060E081E20E94441421E04EE16FEF8AE347 +:1051D0000E944B1385E091E09093D7028093D60212 +:1051E00018E1E12EF12C00E4C02E8FE492E096E06D +:1051F000D92ED80E80910903BB24B39400E112E1AB +:10520000853009F402C10E94F222882359F08FB739 +:10521000F8944091DB025091DC026091DD027091C4 +:10522000DE028FBFE9E4F2E0AFE4B2E010E000E0BC +:10523000302F8D919191981709F409C1292F2827B2 +:1052400090E0BB24B394422F4B2109F4FBC099A3F7 +:105250003AA38B2191E009F490E09BA30E945705AB +:105260008160782F9DA38CA349A15AA16BA18DA128 +:105270000E945124F801E75BFD4F8081B826B0827F +:1052800080915C028823D1F180915B02E0917B03E5 +:10529000E695E81BE0935702823009F0EFC0F0E09A +:1052A000EB5BFD4FE4910E2F10E0B0E9AB2EBFE0B9 +:1052B000BB2E80915802882361F0109258020E9400 +:1052C0005705909356028093550210925A021092FD +:1052D00059020E945705E0915502F09156028E1B2B +:1052E0009F0B8F3F9F4750F4E00FF11FF093560242 +:1052F000E093550285E592E0F50109950E948F053E +:1053000090914702891731F00E948F0580934702E0 +:105310000E946D0A80910903843009F06BCF83E00D +:105320008093E9008091E80082FF64CF8091E800DB +:1053300090E085FF06C00E94D803882309F4F8C0D6 +:1053400091E08091E8008B778093E800992309F43D +:1053500051CFE981E150E33108F06CC1F0E0EA5649 +:10536000F24D0C94C42C80910903843009F440C0A0 +:1053700080E00E946D0A10925C02809146028111C9 +:1053800016C0B092460280917B03982F9170909343 +:1053900045028E7F80937B039FEFE0E7F2E0915020 +:1053A000E040F040E1F700C000000E94620B109264 +:1053B000DA020FB6F894A895E09260000FBEC09292 +:1053C000600083B7817F846083BF83B7816083BFC0 +:1053D0007894889583B78E7F83BF0FB6F894A8958D +:1053E00080916000886180936000109260000FBE21 +:1053F00080910803882349F00E94F222EFE4F2E052 +:10540000819181114AC2DE12FBCF80910903853060 +:1054100009F4A9CF0E9427150E948F050E946D0AEA +:105420001092460280914502882349F080917B03C7 +:10543000816080937B0360E086950E9444140E9403 +:105440002313E1CE9F5FBB0C943009F0FCCE0F5FBD +:105450001F4F0630110509F0EBCE8FEF8EA38FA3FF +:1054600018A60E9457058160782F9AA789A74EA198 +:105470005FA168A58AA50E94512402CF863059F405 +:10548000F0E0EE5BFD4FE4910E2F10E0A0E8AA2EB5 +:10549000AFE0BA2E0ECF893061F4E695F0E0E15C22 +:1054A000FD4FE4910E2F10E0FCEEAF2EFEE0BF2E7C +:1054B00000CF8F3061F4E695F0E0E45CFD4FE491BD +:1054C0000E2F10E0EEE7AE2EEEE0BE2EF2CE8531CE +:1054D00059F4F0E0E75CFD4FE4910E2F10E070E32B +:1054E000A72E7EE0B72EE5CE08E210E047EAA42E14 +:1054F0004DE0B42E883109F4DCCE833249F4E7E381 +:10550000F2E00591149167E2A62E6FE0B62ED1CE9F +:1055100004EF11E05EE6A52E5DE0B52E843209F4BD +:10552000C8CE00ED17E033E4A32E35E0B32EC1CE94 +:1055300000E210E0CE0101965C018091E80085FD5B +:105540000AC08091E8008B778093E8000E94D8031E +:10555000882399F3F5CE8091F100F50181935F01E5 +:105560000150110951F7ECCE1A8289E08B832DC0CE +:105570008A81823009F4A7C18330A9F0813009F013 +:1055800059C02FB7F8946091DB027091DC028091D2 +:10559000DD029091DE022FBF0E94CA2C6B837C83B8 +:1055A0008D839E8312C080914F028B838091500225 +:1055B0008C83809151028D83809152028E838091E1 +:1055C00053028F838091540288878091090384302D +:1055D00009F010CE1091E9001F709091EC00892F16 +:1055E000817090FD80E8182B82E08093E900809123 +:1055F000E80080FF0DC050E040E060E270E0CE01C6 +:1056000001960E9409048091E8008E778093E8005B +:105610001F701093E900EECD8A81823059F46B81BE +:105620007C818D819E810E94CA2C86E290E00E943E +:10563000222DCBCF8FEF8983C8CF4C816B818A819C +:105640000E9413129827892798279E838D83BDCFA8 +:10565000AD80BE80BA24AB24BA248A810B81F8E0E5 +:105660000F9F8001112420E3829F000D111D112442 +:105670008C8190E0880F991F080F191F6B2DC801AE +:1056800087960E94222D6A2DC8018896D0CF0E944D +:105690007F119BCF8A818138C1F060F4803809F096 +:1056A00094CF20E04B8160917D0380917C030E9428 +:1056B0004B138BCF823859F1833809F086CF20E025 +:1056C00040917E036C818B81F2CF60E08B810E94E0 +:1056D00044149B8180917B03911111C08E7F809334 +:1056E0007B0310925C028FEF90E7E2E081509040E4 +:1056F000E040E1F700C000000E94620B66CF8160CD +:1057000080937B0360E086950E9444145ECF8B817A +:1057100080937F035ACF8A81813899F030F48038A2 +:1057200009F053CF80917E0321CF823891F08338E6 +:1057300009F04BCF80917C038B8380917D038C8318 +:1057400044CF80917B0380FF02C086950FCF80E01D +:105750000DCF80917F030ACF60917B0370917C0312 +:1057600080917D0390917E030E9439132ECF80E1BA +:105770008A832BCF81E08A8389EFF8CEAA80BB8011 +:10578000BA24AB24BA248E010F5F1F4F8C80800E89 +:10579000912E911CC501895F9D4F8016910609F4D9 +:1057A00014CFF9EFAF16F1E0BF0650F40E940E2DB2 +:1057B000F8018483FFEFAF1ABF0A0F5F1F4FEACFD4 +:1057C000F8011482F7CF0A811B81102701271027C7 +:1057D000CE0101964C01AC80A00EB12EB11CC801C7 +:1057E000895F9D4FA016B10609F4EFCE093FE1E0B5 +:1057F0001E0720F4F40164810E94222DFFEF8F1A0E +:105800009F0A0F5F1F4FEBCF0E946F11DECE8AE021 +:10581000AFCFAA80BB80BA24AB24BA248E010F5F1D +:105820001F4F8C80800E912E911CC501879680168B +:10583000910609F4CACE20EEA21621E0B20650F479 +:105840000E940E2DF8018483FFEFAF1ABF0A0F5F8D +:105850001F4FEBCFF8011482F7CF0A811B8110276D +:1058600001271027CE0101964C01AC80A00EB12E6D +:10587000B11CC8018796A016B10609F4A6CE003E59 +:10588000E1E01E0720F4F40164810E94222DFFEF65 +:105890008F1A9F0A0F5F1F4FECCF09BD19BD09B4C6 +:1058A00000FEFDCF8091D8008F7D8093D80080913D +:1058B000E00082608093E0008091E00081FDFCCFF9 +:1058C0000E942715A2CD86E290E00E940E2D1B8239 +:1058D0001C821D828E8379CE87FB082E062687FDCB +:1058E000819567FD61950E94022D0EF4919507FC4C +:1058F00081950895AA1BBB1B51E107C0AA1FBB1FBE +:10590000A617B70710F0A61BB70B881F991F5A954B +:10591000A9F780959095BC01CD01089597FB072EBE +:1059200016F4009407D077FD09D00E947A2C07FC6A +:1059300005D03EF4909581959F4F0895709561959F +:105940007F4F0895A1E21A2EAA1BBB1BFD010DC0BB +:10595000AA1FBB1FEE1FFF1FA217B307E407F5071F +:1059600020F0A21BB30BE40BF50B661F771F881FFB +:10597000991F1A9469F760957095809590959B0191 +:10598000AC01BD01CF010895EE0FFF1F0590F4910A +:10599000E02D099469279627692778278727782794 +:1059A00008950E94D92C332312F48A1B9B0B0C946C +:1059B000EA2CA29FB001B39FC001A39F700D811D6F +:1059C0001124911DB29F700D811D1124911D089508 +:1059D0000E94D92CB7FF0895821B930B08950E9453 +:1059E000D92CA59F900DB49F900DA49F800D911D63 +:1059F00011240895B7FF0C94EF2C0E94EF2C821B0A +:105A0000930B0895991B79E004C0991F961708F02D +:105A1000961B881F7A95C9F780950895F999FECF4E +:105A200092BD81BDF89A992780B50895A6E1B0E0AE +:105A300044E050E00C94482DA8E1B0E042E050E092 +:105A40000C94482D262FF999FECF92BD81BDF89A6E +:105A5000019700B4021639F01FBA20BD0FB6F894B2 +:105A6000FA9AF99A0FBE08950396272F0E94232DC4 +:105A70000E94222D252F0E94232D242F0C94232DAC +:105A80000196272F0E94232D0C94222DDC01CB019F +:105A9000FC01F999FECF06C0F2BDE1BDF89A31963E +:105AA00000B40D9241505040B8F70895FC014150A8 +:105AB000504030F001900616D1F73197CF0108958C +:105AC000882799270895FB01DC0104C08D9101907E +:105AD000801921F441505040C8F7881B990B089554 +:105AE000F894FFCFA712A712B012B012B212B012E0 +:105AF000B012B012A712A712B712B012B012B7129A +:105B0000211649169C1649169C167C16B4169C162E +:105B1000B117BE17521B521BBF1BBF1B1D1C851B81 +:105B2000851B851B371CBF1CCE1CCE1CB42AB82A73 +:105B30000C2B1D2B282B472B4A2B8B2BAC2B1A2BDA +:105B40001A2BB72BBA2BBE2BE32B042C072C092CBA +:025B50002D2CFA +:105B520056005300FF4505FE0A4405FA0AF60A01FB +:105B6200191A1B1C1D1E1F202122010201B2002A2C +:105B720000000000AC004C00000000015F114F115A +:105B8200BC0A00000000000000000000000000004D +:105B9200000101818283E200E900EA00B500B6005B +:105BA200B700CD008301CC008A0192019401210249 +:105BB200230224022502260227022A02B300B4008D +:105BC2006F00700032F0969733F1F4F5F6F70001AA +:105BD200020202020606060909090909090F0F0F46 +:105BE2000F0F0F151515181919191919191919194E +:105BF20019232440226D47012501B8006006790669 +:025C0200990601 +:00000001FF From 0d51da712802a801eb9a6e779a469ad7a99a5d93 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 11 Sep 2021 02:50:33 -0400 Subject: [PATCH 14/94] Updated for breaking changes and encoder LED animation --- .../{9e VIA ayout.json => 9e VIA layout.json} | 0 keyboards/solartempest/9e/A9e.c | 45 - keyboards/solartempest/9e/A9e.h | 12 +- keyboards/solartempest/9e/config.h | 178 +- .../solartempest/9e/keymaps/default/keymap.c | 208 --- .../solartempest/9e/keymaps/via/keymap.c | 216 ++- keyboards/solartempest/9e/readme.md | 4 +- keyboards/solartempest/9e/rules.mk | 32 +- .../solartempest/9e/solartempest_9e_via.hex | 1613 +++++++++++++++++ 9 files changed, 1836 insertions(+), 472 deletions(-) rename keyboards/solartempest/9e/{9e VIA ayout.json => 9e VIA layout.json} (100%) delete mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/9e/solartempest_9e_via.hex diff --git a/keyboards/solartempest/9e/9e VIA ayout.json b/keyboards/solartempest/9e/9e VIA layout.json similarity index 100% rename from keyboards/solartempest/9e/9e VIA ayout.json rename to keyboards/solartempest/9e/9e VIA layout.json diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c index 3fc20a1961c1..584df4ba0beb 100644 --- a/keyboards/solartempest/9e/A9e.c +++ b/keyboards/solartempest/9e/A9e.c @@ -17,48 +17,3 @@ */ #include "A9e.h" - -/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 )*/ -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { 36, 35, 34, 33, 32, }, - {18, 37, 5, 4, 3, 2, 1, 0, }, - {19, 21, 11, 10, 9, 8, 7, 6, }, - {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, - { 39, 40, 23, 25, }, - { 24, }, - { 41, 26, 30, }, - { 27, 29, }, - { 28, NO_LED, NO_LED, NO_LED, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} - {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, - {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, - {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, - - {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, - {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, - - {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, - {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} - }, { // LED Index to Flag. - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. - 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. - 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. - } }; -#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h index cc6481b19bb5..e70c429d6179 100644 --- a/keyboards/solartempest/9e/A9e.h +++ b/keyboards/solartempest/9e/A9e.h @@ -16,20 +16,18 @@ * along with this program. If not, see . */ -#ifndef A9E_H - #define A9E_H +#pragma once +#include "quantum.h" - #include "quantum.h" - - #define KEYMAP( \ + #define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ K303, K304, K305, K306, K307, K308, K309, K310, K311 \ - ) { \ + ) \ + { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } -#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h index a74b280bfb3b..a839aee2d30b 100644 --- a/keyboards/solartempest/9e/config.h +++ b/keyboards/solartempest/9e/config.h @@ -16,125 +16,81 @@ * along with this program. If not, see . */ -#ifndef CONFIG_H - #define CONFIG_H +#pragma once +#include "config_common.h" - #include "config_common.h" +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x414B // AK +#define PRODUCT_ID 0x0009 // 9e +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atlantis +#define PRODUCT A9e +#define DESCRIPTION Keyboard - /* USB Device descriptor parameter */ - #define VENDOR_ID 0x414B // AK - #define PRODUCT_ID 0x0009 // 9e - #define DEVICE_VER 0x0001 - #define MANUFACTURER Atlantis - #define PRODUCT A9e - #define DESCRIPTION Keyboard +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 - /* key matrix size */ - #define MATRIX_ROWS 4 - #define MATRIX_COLS 12 +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, F1, F2, F3 } +#define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. +#define UNUSED_PINS - /* key matrix pins */ - #define MATRIX_ROW_PINS { F0, F1, F2, F3 } - #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. - #define UNUSED_PINS +/* encoder pins */ +#define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. +#define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } +#define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. +//#define ENCODER_RESOLUTION 4 - /* encoder pins */ - #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. - #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } - #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. - //#define ENCODER_RESOLUTION 4 +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW - /* COL2ROW or ROW2COL */ - #define DIODE_DIRECTION COL2ROW +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 - /* Set 0 if debouncing isn't needed */ - #define DEBOUNCE 5 +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ - #define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE - /* Locking resynchronize hack */ - #define LOCKING_RESYNC_ENABLE +#define RGB_DI_PIN E6 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 1 //Default 4 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys +#define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT +#define RGBLIGHT_LIMIT_VAL 180 - #define RGB_DI_PIN E6 - #ifdef RGB_DI_PIN - #define RGBLIGHT_ANIMATIONS - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys - #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT - #define RGBLIGHT_LIMIT_VAL 180 - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L01, L03, L05, L07, L08, \ - L10, L11, L12, L13, L14, L15, L16, L17, \ - L20, L21, L22, L23, L24, L25, L26, L27, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ - L41, L46, L47, L49, \ - L58, \ - L67, L68, L69, \ - L77, L79, \ - L88 )\ - { \ - L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ - } - //RGB LED logical order map - //Left encoder -> keys -> right encoders -> backlight - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 ) - #endif - - #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow - #define RGB_MATRIX_CENTER { 110, 110 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH - #endif - - -#endif +//RGB LED Conversion macro from physical array to electric array +//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping +#define LED_LAYOUT( \ + L01, L03, L05, L07, L08, \ + L10, L11, L12, L13, L14, L15, L16, L17, \ + L20, L21, L22, L23, L24, L25, L26, L27, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ + L41, L46, L47, L49, \ + L58, \ + L67, L68, L69, \ + L77, L79, \ + L88 )\ + { \ + L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L11,L31,L41,L46,L67, \ + } +//RGB LED logical order map +//Left encoder -> keys -> right encoders -> backlight +#define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ +3, 30, 4, 5, 6, 7, 8, 9, \ +0, 2, 10, 11, 12, 13, 14, 15, \ +1, 41, 16, 17, 18, 19, 20, 21, 25, 36, \ + 40, 39, 22, 24, \ + 23, \ + 38, 29, 37, \ + 26, 28, \ + 27 ) diff --git a/keyboards/solartempest/9e/keymaps/default/keymap.c b/keyboards/solartempest/9e/keymaps/default/keymap.c deleted file mode 100644 index 916fa70260df..000000000000 --- a/keyboards/solartempest/9e/keymaps/default/keymap.c +++ /dev/null @@ -1,208 +0,0 @@ -#include "A9e.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - KEYMAP( - KC_L, KC_1, KC_R, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_L, KC_4, KC_R, - KC_L, KC_2, KC_R, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_L, KC_5, KC_R, - KC_L, KC_3, KC_R, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_L, KC_6, KC_R, - KC_UP, KC_8, KC_DOWN, RGB_VAI, KC_9, RGB_VAD, KC_L, KC_7, KC_R), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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) - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - - - switch (id) { - - } - return MACRO_NONE; -} - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); - } - } else if (index == 1) { /* Second encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 2)); - }} else if (index == 2) { /* 3 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 2)); - }} else if (index == 3) { /* 4 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 11)); - }} else if (index == 4) { /* 5 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 11)); - }} else if (index == 5) { /* 6 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 11)); - }} else if (index == 6) { /* 7 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 11)); - }} else if (index == 7) { /* 8 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 5)); - }} else if (index == 8) { /* 9 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 6)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 8)); - } - } -} - - - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 6b53279aa6bd..0f44b1bea9f8 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -1,8 +1,32 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + #include "A9e.h" -#include QMK_KEYBOARD_H #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT + + bool is_encoder1_rotate = false; // For encoder animated LEDs + bool is_encoder6_rotate = false; + bool is_encoder7_rotate = false; + bool encoder_effect = false; + uint16_t encoder_timer = 0; + uint16_t encoder_interval = 500; #endif @@ -31,7 +55,7 @@ uint16_t alt_tab_timer = 0; // E3 Keys Row 3 // E8 E9 E7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + [0] = LAYOUT( KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 @@ -45,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 ), - KEYMAP( + [1] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -59,7 +83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -73,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [3] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -87,7 +111,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [4] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -101,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [5] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -115,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [6] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -129,7 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [7] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -143,7 +167,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [8] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -157,7 +181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [9] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -174,12 +198,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required - switch (id) { - } - return MACRO_NONE; -}*/ - void matrix_init_user(void) { } @@ -190,6 +208,36 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } + + #ifdef RGBLIGHT_ENABLE //Add rotation animations underneath rotary encoders when turning + if (!encoder_effect && is_encoder1_rotate) { //Turn on the effect for encoder 1 + rgblight_set_effect_range(0, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder1_rotate = false; + encoder_effect = true; + } else if (!encoder_effect && is_encoder6_rotate) { //Turn on the effect for encoder 6 + rgblight_set_effect_range(22, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder6_rotate = false; + encoder_effect = true; + } else if (!encoder_effect && is_encoder7_rotate) { //Turn on the effect for encoder 7 + rgblight_set_effect_range(26, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder7_rotate = false; + encoder_effect = true; + } else if (!is_encoder1_rotate && !is_encoder6_rotate && !is_encoder7_rotate && timer_elapsed(encoder_timer) > encoder_interval) { //Turn off the effect + rgblight_set_effect_range(0, 41); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + is_encoder1_rotate = false; + is_encoder6_rotate = false; + is_encoder7_rotate = false; + encoder_effect = false; + } else { + is_encoder1_rotate = false; //Wait until encoder is turned again + is_encoder6_rotate = false; + is_encoder7_rotate = false; + } + #endif } bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -252,10 +300,14 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder1_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder1_rotate = true; + encoder_timer = timer_read(); } } else if (index == 1) { /* 2 encoder */ @@ -302,20 +354,28 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder6_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder6_rotate = true; + encoder_timer = timer_read(); } } else if (index == 6) { /* 7 encoder */ if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder7_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder7_rotate = true; + encoder_timer = timer_read(); } } else if (index == 7) { /* 8 encoder */ @@ -342,76 +402,66 @@ bool encoder_update_user(uint8_t index, bool clockwise) } -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); -#endif +// RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) +const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) + + +const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_capslock_layer, //Highest status indicators override other layers + my_numlock_layer, + my_scrollock_layer +); + void keyboard_post_init_user(void) { - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 layer_move(0); //start on layer 0 to get the lighting activated - #endif } -#ifdef RGBLIGHT_ENABLE - layer_state_t layer_state_set_user(layer_state_t state) - { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,30); - break; - case 1: - rgblight_sethsv_noeeprom(30,255,30); - break; - case 2: - rgblight_sethsv_noeeprom(106,255,30); - break; - case 3: - rgblight_sethsv_noeeprom(215,255,30); - break; - default: - rgblight_sethsv_noeeprom(64,255,30); - } - return state; - } +layer_state_t layer_state_set_user(layer_state_t state) +{ + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,30); + break; + case 1: + rgblight_sethsv_noeeprom(30,255,30); + break; + case 2: + rgblight_sethsv_noeeprom(106,255,30); + break; + case 3: + rgblight_sethsv_noeeprom(215,255,30); + break; + default: + rgblight_sethsv_noeeprom(64,255,30); + } + return state; +} - bool led_update_user(led_t led_state) - { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; - } -#endif + +bool led_update_user(led_t led_state) +{ + rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + return true; +} diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md index 38b472d3326a..30353b2d00a1 100644 --- a/keyboards/solartempest/9e/readme.md +++ b/keyboards/solartempest/9e/readme.md @@ -12,8 +12,9 @@ For detailed instructions on using VIA and flashing, please refer to the section # Custom Features: -- 9 remappable rotary encoder controling a variety of different things! +- 9 remappable rotary encoder controlling a variety of different things! - RGB underglow support and remapped to physical locations. +- When turning the 3 large rotary encoders the RGB LEDs underneath animate. - Adds custom layer lighting with custom gradients for each and static colours for the switches. - Adds white caps lock, scroll lock, and num lock key indicators on the top row. - VIA support included by default. @@ -32,6 +33,7 @@ Make example for this keyboard (after setting up your build environment): - You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. - I used Prog ISP V2.0 but other AVR programmers will also work. - Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. +- Plug in the ribbon cable with the data pins facing away from the PCB. ## Using with VIA diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk index 782755a42c25..5c83fafe8829 100644 --- a/keyboards/solartempest/9e/rules.mk +++ b/keyboards/solartempest/9e/rules.mk @@ -44,20 +44,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -RGBLIGHT_ENABLE = no # RGB LEDs -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -KEY_LOCK_ENABLE = no # Key lock functionality -ENCODER_ENABLE = yes # Encoders -LTO_ENABLE = yes # Save space -LEADER_ENABLE = no # Leader keys -COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +TERMINAL_ENABLE = no # Terminal interface feature, very large. +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +RGBLIGHT_ENABLE = yes # RGB LEDs +RGBLIGHT_SLEEP = yes # LEDs off when sleeping +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +KEY_LOCK_ENABLE = no # Key lock functionality +ENCODER_ENABLE = yes # Encoders +LTO_ENABLE = yes # Save space +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +UNICODE_ENABLE = no # Unicode \ No newline at end of file diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex new file mode 100644 index 000000000000..2a587000b62c --- /dev/null +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -0,0 +1,1613 @@ +:100000000C94A3040C94EA040C94EA040C94EA04FF +:100010000C94EA040C94EA040C94EA040C94EA04A8 +:100020000C94EA040C94EA040C94F8280C94B42878 +:100030000C94F3290C94EA040C94EA040C94EA045A +:100040000C94EA040C94EA040C94EA040C94EA0478 +:100050000C94EA040C94CF290C94EA040C94EA045E +:100060000C94EA040C94EA040C94EA040C94EA0458 +:100070000C94EA040C94EA040C94EA040C94EA0448 +:100080000C94EA040C94EA040C94EA040C94EA0438 +:100090000C94EA040C94EA0406022B64A0FF00000E +:1000A000000008022B6496FF0000000004022B648D +:1000B000A0FF000000000412D7FF78FF000000003E +:1000C000041280FF64FF0000000004121EFF78FF8E +:1000D0000000000004125FFF5AFF0000000005014D +:1000E0000902A10185020901A100050919012908D8 +:1000F00015002501950875018102050109300931B6 +:100100001581257F95027508810609381581257F9F +:10011000950175088106050C0A38021581257F9521 +:100120000175088106C0C005010980A10185031978 +:10013000012AB700150126B700950175108100C08E +:10014000050C0901A101850419012AA00215012647 +:10015000A002950175108100C005010906A1018565 +:1001600005050719E029E7150025019508750181A6 +:10017000020507190029EF1500250195F075018189 +:10018000020508190129059505750191029501756A +:10019000039101C00660FF0961A1010962150026F3 +:1001A000FF009520750881020963150026FF009560 +:1001B0002075089102C005010906A101050719E093 +:1001C00029E715002501950875018102950175083B +:1001D00081010507190029FF150026FF0095067506 +:1001E00008810005081901290595057501910295F9 +:1001F0000175039101C00000000000000000000034 +:1002000000000000000000000000000000000000EE +:10021000000000000000000000007E0F00D4FFFF7F +:10022000FFC70000007800000000000000002A2B3B +:100230002800000000000000000000000000000096 +:100240000029000000002C1E3420212224342627FF +:10025000252E362D3738271E1F2021222324252620 +:100260003333362E37381F0405060708090A0B0CEE +:100270000D0E0F101112131415161718191A1B1C36 +:100280001D2F3130232D350405060708090A0B0CF4 +:100290000D0E0F101112131415161718191A1B1C16 +:1002A0001D2F3130354CD400CA00C000B600AC0060 +:1002B000A2009800000000047F3F1F6432146432E3 +:1002C00014783C1E1E140A05000101010101010100 +:1002D00001010202020202020202020303030303FB +:1002E00003030304040404040404050505050506CA +:1002F0000606060607070707070808080809090988 +:10030000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E30 +:100310000F0F0F10101111111212131314141515C1 +:1003200016161717181819191A1A1B1B1C1D1D1E33 +:100330001E1F202021222223242425262627282987 +:10034000292A2B2C2D2D2E2F3031323233343536B5 +:100350003738393A3B3C3D3E3F40414243444546B5 +:100360004748494A4C4D4E4F505153545556585991 +:100370005A5B5D5E5F616264656668696B6C6D6F38 +:100380007072737577787A7B7D7E808283858788AB +:100390008A8C8E8F91939596989A9C9EA0A2A3A5E5 +:1003A000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6E6 +:1003B000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EBA2 +:1003C000EEF0F3F5F8FAFDFFFFAA7F5540090807A4 +:1003D0000605040F0E0D0C0B0A1514131211100351 +:1003E000000102191617181D1A1B1C25242322218F +:1003F000201E292827262223252628292A2C2D2F8E +:100400003032333536383A3B3D3E4042434547492A +:100410004A4C4E5051535557595A5C5E606264665F +:1004200068696B6D6F71737577797B7D7F8183856B +:1004300087898A8C8E90929496989A9C9E9FA1A36D +:10044000A5A7A8AAACAEAFB1B3B4B6B8B9BBBCBE91 +:10045000BFC1C2C3C5C6C7C9CACBCCCDCED0D1D20D +:10046000D2D3D4D5D6D7D7D8D9D9DADADBDBDBDC0F +:10047000DCDCDCDCDDDDDDDDDCDCDCDCDCDBDBDBBB +:10048000DADAD9D9D8D7D7D6D5D4D3D2D2D1D0CE1B +:10049000CDCCCBCAC9C7C6C5C3C2C1BFBEBCBBB920 +:1004A000B8B6B4B3B1AFAEACAAA8A7A5A3A19F9E9E +:1004B0009C9A98969492908E8C8A89878583817F66 +:1004C0007D7B79777573716F6D6B69686664626047 +:1004D0005E5C5A5957555351504E4C4A4947454313 +:1004E00042403E3D3B3A3836353332302F2D2C2AB0 +:1004F00029282625232250007F004F00115012503A +:1005000013505F0060006100CA5C2C00C95CC45CD1 +:10051000C25CC35C3900470053005C005D005E00B4 +:10052000C65C3D04C55C815FAD00805FB900B3006F +:10053000620059005A005B00F9001A01FA0000003D +:10054000000000002B034A002B0156017F005701D9 +:100550002B0317012B0101000100010010500100C5 +:100560000100010001000100010001000100010083 +:100570000100010001000100010001000100010073 +:100580000100010001000100010001000100010063 +:100590000100010001000100010001000100000054 +:1005A0000000000001000100010001000100010045 +:1005B00001000100010001000100010010500100D4 +:1005C0000100010001000100010001000100010023 +:1005D0000100010001000100010001000100010013 +:1005E0000100010001000100010001000100010003 +:1005F00001000100010001000100010001000000F4 +:1006000000000000010001000100010001000100E4 +:100610000100010001000100010001001050010073 +:1006200001000100010001000100010001000100C2 +:1006300001000100010001000100010001000100B2 +:1006400001000100010001000100010001000100A2 +:100650000100010001000100010001000100000093 +:100660000000000001000100010001000100010084 +:100670000100010001000100010001000100010072 +:100680000100010001000100010001000100010062 +:100690000100010001000100010001000100010052 +:1006A0000100010001000100010001000100010042 +:1006B0000100010001000100010001000100000033 +:1006C0000000000001000100010001000100010024 +:1006D0000100010001000100010001000100010012 +:1006E0000100010001000100010001000100010002 +:1006F00001000100010001000100010001000100F2 +:1007000001000100010001000100010001000100E1 +:1007100001000100010001000100010001000000D2 +:1007200000000000010001000100010001000100C3 +:1007300001000100010001000100010001000100B1 +:1007400001000100010001000100010001000100A1 +:100750000100010001000100010001000100010091 +:100760000100010001000100010001000100010081 +:100770000100010001000100010001000100000072 +:100780000000000001000100010001000100010063 +:100790000100010001000100010001000100010051 +:1007A0000100010001000100010001000100010041 +:1007B0000100010001000100010001000100010031 +:1007C0000100010001000100010001000100010021 +:1007D0000100010001000100010001000100000012 +:1007E0000000000001000100010001000100010003 +:1007F00001000100010001000100010001000100F1 +:1008000001000100010001000100010001000100E0 +:1008100001000100010001000100010001000100D0 +:1008200001000100010001000100010001000100C0 +:1008300001000100010001000100010001000000B1 +:1008400000000000010001000100010001000100A2 +:100850000100010001000100010001000100010090 +:100860000100010001000100010001000100010080 +:100870000100010001000100010001000100010070 +:100880000100010001000100010001000100010060 +:100890000100010001000100010001000100000051 +:1008A0000000000001000100010001000100010042 +:1008B00001000100010009025B00030100A0FA0928 +:1008C000040000010301010009211101000122407F +:1008D000000705810308000A090401000203000063 +:1008E00000092111010001222200070582032000D6 +:1008F00001070503032000010904020001030000B1 +:100900000009211101000122B6000705840320001F +:100910000A12010002000000084B41090001000119 +:100920000200010803410039006500000012034184 +:100930000074006C0061006E0074006900730000B8 +:1009400000040309040011241FBECFEFD0E1DEBF75 +:10095000CDBF04B603FE27C080915E0390915F0374 +:10096000A0916003B09161038730904BA740B04BDA +:10097000D1F410925E0310925F0310926003109204 +:10098000610314BE84B7877F84BF0FB6F894A8951F +:1009900080916000886180936000109260000FBEBB +:1009A000E0E0F8E7099523E0AEEBB1E001C01D926D +:1009B000AE35B207E1F711E0A0E0B1E0E6EFF3E613 +:1009C00002C005900D92AE3BB107D9F70E941A2ADA +:1009D0000C94C2310C940000E8EDF0E080818C7F33 +:1009E00080831092E2001092DA001092E100A0EEF3 +:1009F000B0E08C9181608C9380818F77808319BC6B +:100A0000A7EDB0E08C918E7F8C9380818F7E808368 +:100A100010922A0308952091E4003091E50095E6B4 +:100A2000A9012091EC00822F817020FF06C08091E7 +:100A3000E80080FF06C080E008952091E80022FDD4 +:100A40001AC080914F03882389F0853089F0809106 +:100A5000EB0085FD0FC02091E4003091E5004217C6 +:100A60005307F9F29150E1F684E0089582E0089589 +:100A700083E0089581E00895EF92FF920F931F9312 +:100A8000CF937C018B010E940B05C82F811117C0E9 +:100A90008091E80085FD0BC08091E8008E778093FF +:100AA000E8000E940B05882399F3C82F08C0F701BE +:100AB00081917F018093F1000150110949F78C2F3A +:100AC000CF911F910F91FF90EF9008958091510366 +:100AD00087FF13C08091E80082FF06C08091E80084 +:100AE0008B778093E80004C080914F038111F2CF8F +:100AF000089580914F038823D9F38091E80080FF07 +:100B0000F8CF8091E8008E77ECCF982F9093E90092 +:100B1000242F762F50E0891731F07091EC0020914E +:100B2000ED005091F00021FD07C09F5F973071F7F5 +:100B30008093E90081E008953091EB003E7F30938F +:100B4000EB003091ED003D7F3093ED003091EB00F4 +:100B500031603093EB007093EC002093ED005093E4 +:100B6000F0002091EE0027FDE0CF80E00895CF92C5 +:100B7000DF92EF92FF920F931F93CF93DF93C8ED15 +:100B8000D0E088818F7E8883E7EDF0E0808181600E +:100B9000808381E080932A0388818C7F888302EEA2 +:100BA00010E0D8011C921092DA0081EEC82ED12CF0 +:100BB000D6011C9288818F7788838881806888839A +:100BC00088818F7D888380818068808319BC1092A2 +:100BD0004F031092500310924E0310924D0390EE6B +:100BE000E92EF12CF70180818B7F808388818160E1 +:100BF000888342E060E080E00E948505D6018C9108 +:100C00008E7F8C93F80180818160808380818860F1 +:100C10008083D7018C918E7F8C93888180618883BB +:100C2000DF91CF911F910F91FF90EF90DF90CF90C8 +:100C30000895FC01809157039091580386179707F8 +:100C4000A0F06115710529F49091E8009E779093CA +:100C5000E80090E06115710551F4911108C0809190 +:100C6000E80082FF33C080E00895BC01F2CF80919C +:100C70004F038823B9F18530B9F18091E80083FDF5 +:100C80002FC08091E80082FDEACF8091E80080FFCC +:100C9000E1CF2091F2003091F3006115710519F058 +:100CA0002830310558F091E02830310509F090E006 +:100CB0002091E8002E772093E800CCCF819180939B +:100CC000F100615071092F5F3F4FE7CF80914F03D3 +:100CD000882341F0853041F08091E80083FFBFCF49 +:100CE00081E0089582E0089583E0089580912C03C7 +:100CF00008959C014FB7F8948091210390912203AD +:100D0000A0912303B09124034FBF821B930B08953E +:100D10002FB7F8948091210390912203A09123038F +:100D2000B09124032FBF089520911E0330911F031B +:100D30002817390771F090931F0380931E03E091E9 +:100D40001C03F0911D03309721F00084F185E02D04 +:100D50000994089520911A0330911B03281739072D +:100D600071F090931B0380931A03E0911C03F091A0 +:100D70001D03309721F00680F781E02D0994089536 +:100D8000E0911C03F0911D03309721F00190F08158 +:100D9000E02D099480E00895FA01811101C0FB0162 +:100DA0000994089580911503982F9E7F61F48170B6 +:100DB00082608093150380911803853B18F084EBC3 +:100DC0008093180308958A34B0F381708864F1CF5A +:100DD000AF92BF92DF92EF92FF920F931F93CF9348 +:100DE000DF93182F062FE901453B08F044EBE42F71 +:100DF000F0E0E853FD4F011110C0E4915E2F4E2F3B +:100E00004983E8835A83DF91CF911F910F91FF901F +:100E1000EF90DF90BF90AF900895202F30E0449185 +:100E2000D42EE42EF12C56E0159FC0011124EFEFD3 +:100E3000F0E0BF010E94C330812F90E0880F991F1E +:100E400055E5569FD001579FB00D11248A1B9B0B6F +:100E5000982F990F890F5F01A21AB30AAE9CD00197 +:100E6000AF9CB00DBE9CB00D11245B2F089F80017C +:100E70001124012F11275F01A01AB10AAE9C800135 +:100E8000AF9C100DBE9C100D11245F01A81AB10873 +:100E9000A29EC001A39E900DB29E900D1124892F99 +:100EA0009927E81BF90BEE9DC001EF9D900DFE9D6B +:100EB000900D1124E92F62307105A1F050F46115F5 +:100EC000710509F49DCF6130710581F0EB2F512F31 +:100ED00097CF6430710569F080F06630710509F4D0 +:100EE0008FCFF4CFE42F4B2F592F8ACFE42F412FF0 +:100EF00087CFEB2F542F492F83CF4B2F5D2DE12F21 +:100F00007FCF0E9488069C01909184028091850287 +:100F1000982B21F0309381022093800290918602D9 +:100F200080918702982B21F030937F0220937E02DC +:100F3000E0911C03F0911D03309749F082E080930B +:100F400082020480F581E02D82E892E00994089500 +:100F500040918402803F59F48091850287FF0DC043 +:100F60001092850241110BC010927C0208C0813F93 +:100F700081F48091850218169CF3442381F08091BE +:100F8000860290918702892B09F05AC010927B0249 +:100F90000895823F49F447FFF0CF10928402809178 +:100FA00085028111ECCFE0CF833F19F41416ACF326 +:100FB000E4CF90918602893F29F41916F4F6109235 +:100FC0008602DBCF8A3F19F497FFD7CFF8CF9091F5 +:100FD00087028B3F29F497FFD0CF10928702CDCFA5 +:100FE0008C3F19F41916CCF3C8CF9CE0980F9530BC +:100FF00090F4845F990B21E030E0B90102C0660FE4 +:10100000771F8A95E2F7CB0180959091830289231F +:1010100080938302B2CF8D3F31F480917D028E7F29 +:1010200080937D02AACF8E3F21F480917D028D7F37 +:10103000F7CF8F3F09F0A1CF80917D028B7FF0CF5A +:10104000089580917D0280FD16C081FD16C082FD4D +:1010500016C080917B028823A1F0883280F428E0BA +:10106000829FC001112468E270E00E94D730862F71 +:10107000672B39F0089582E0089584E0089588E0B0 +:10108000089581E0089580917D0280FD14C081FD66 +:1010900014C082FD16C080917C02882381F08431C7 +:1010A00080F422E3829FC001112464E170E00E9479 +:1010B000D730862F08958CE0089589E1089585E062 +:1010C000089582E30895803F31F40E94430881959A +:1010D000809385020895813F19F40E944308F8CF58 +:1010E000823F31F40E9443088195809384020895E1 +:1010F000833F19F40E944308F8CF893F29F40E94E6 +:1011000021088093860208958A3F21F40E942108D5 +:101110008195F7CF8B3F31F40E9421088195809310 +:10112000870208958C3F19F40E942108F8CF9CE0B3 +:10113000980F953070F4845F990B21E030E001C086 +:10114000220F8A95EAF780918302822B8093830293 +:1011500008958D3F31F480917D02816080937D02FE +:1011600008958E3F21F480917D028260F7CF8F3FFA +:10117000B9F780917D028460F1CF80E00895F89402 +:10118000E82FE295EF70F0E031A1282F2F7081E079 +:1011900090E001C0880F2A95EAF7982F9095932345 +:1011A00091A392A1892B82A378940895909125030D +:1011B00092FF06C0282F28712830F9F4877F8460B9 +:1011C00093FF06C0282F28712831F1F4877E8461AF +:1011D0002091260320FF06C0382F38713830D9F40B +:1011E000877F816021FF06C0282F28712831D1F424 +:1011F000877E816194FD877E0895282F2471243095 +:10120000F9F68B7F8860DCCF282F2471243101F719 +:101210008B7E8861DDCF382F3171313019F78E7FA9 +:101220008860E0CF282F2171213121F78E7E8861DF +:10123000E1CFCF93DF93EC0182389105A9F1D8F586 +:101240008133910509F496C048F58932910509F476 +:101250008AC08A9709F495C0C11521E5D20708F024 +:10126000BCC0C11530E5D30708F014C1C83ED10594 +:1012700008F09CC0C03ED10560F5C83AD10508F021 +:1012800087C0C53AD10508F0FDC0C130D10509F1CC +:101290002097F9F0C430D105E0F440C085339105C2 +:1012A00009F45AC0C997C1F680912503837089F06B +:1012B000C0EED0E00EC0833E910599F170F4803EFF +:1012C000910501F1823E910539F68091250382FD59 +:1012D00021C0CE01DF91CF910895863E910561F145 +:1012E000873E910571F1843E910509F0B5CF80915B +:1012F000260381FFEECF80912503C7EED0E084FD69 +:101300000DC0E7CF8091250380FD12C19091260387 +:1013100090FFDFCFC3EED0E084FFDBCFD0E0C0E0B2 +:10132000D8CF8091250382FD06C19091260390FDC0 +:10133000BFCF84FFCECFF2CF8091250383FDDDCFD9 +:10134000C8CF8091250383FDF9C09091260391FFBA +:10135000F0CFC4EED0E0BDCF8091250385FFB9CF9B +:10136000C9E2D0E0B6CF8091250385FFB2CFC5E3B7 +:10137000D0E0AFCF8091250386FFABCFCAE2D0E0AB +:10138000A8CF8091250386FFA4CFC1E3D0E0A1CFF1 +:10139000CF3BD10518F6C85AD0E0CC0FDD1FCF5D8A +:1013A000DE4F0990D881C02DD46493CFC11540E29F +:1013B000D40758F4C11581E0D80708F08ACFC03FA0 +:1013C000D10508F4ABCFD06584CFC11590E4D9071F +:1013D00008F4A4CFDF70D06A7CCFC11525E5D20711 +:1013E00000F5C11534E5D30708F08AC0C11543E5FF +:1013F000D40708F071C0C11582E5D80708F467C0AA +:10140000CE018370992721E030E002C0220F331F04 +:101410008A95E2F7C695C69580E2C89FE00111243F +:1014200052C0C11599E5D907A8F4C11528E5D2071E +:1014300008F06BC0C11536E5D30708F06FCF8C2FCD +:101440000E94D608C82FD0E0DC2FCC27CC27DF7134 +:10145000D0623FCFC1154AE5D40708F45BC0CE0186 +:1014600090568115904208F059CF8D2F8F710E94B0 +:10147000D60890E0982F882788279F719C012C2BF5 +:10148000E901E6CFC55AD0E0C25EDE4FC881D0E0A8 +:10149000D0641FCFCE01E4E096958795EA95E1F7F9 +:1014A00083702C2F26952695237040E2249F90016F +:1014B0001124382B8C2F8370C1E0D0E002C0CC0FF8 +:1014C000DD1F8A95E2F7C22BD32BDC6802CFDC2F1D +:1014D000CC27C16FD06AFDCECE018370992721E061 +:1014E00030E002C0220F331F8A95E2F7C695C695F9 +:1014F00090E2C99FE0011124C22BD32BDA68E9CE18 +:10150000DC2FCC27C46FD06AE4CEDC2FCC27C06F91 +:10151000D06ADFCE8C2F8F700E94D60834E0D6952B +:10152000C7953A95E1F7CF709C2FEC01D069D1CEE9 +:10153000C9E3D0E0CECEC2EED0E0CBCEC6EED0E056 +:10154000C8CE8091350281111092350208958091A4 +:10155000340290913302892B90913202892B80932F +:10156000C001909135029923A1F0892B8093C0018D +:1015700080911D01882341F18091250387FF24C0BC +:101580008EE1E2ECF1E090E0815000F591110E94D3 +:10159000A10AE0911C03F0911D033097E1F08091C6 +:1015A0001D01882359F08091250387FF07C0809192 +:1015B000C0018093C10185E08093C0010280F38166 +:1015C000E02D80EC91E0099486E0DBCF219122238D +:1015D000D9F29F5FD9CF089590911D019923D1F041 +:1015E0009091250397FF16C0E82FE695E695E695BE +:1015F000EE31E0F4F0E0E054FE4F282F277081E058 +:1016000090E001C0880F2A95EAF78095928189239E +:1016100082830895E2ECF1E09191891303C0DF0128 +:1016200011971C9291E0E83CF907B1F70895909169 +:101630001D019923C1F09091250397FF14C0E82F55 +:10164000E695E695E695EE31F8F4F0E0E054FE4FCD +:10165000877021E030E001C0220F8A95EAF782818D +:10166000822B82830895A2ECB1E0EFEF90E02D9100 +:10167000821751F0EF3F19F4211101C0E92F9F5F4C +:101680009630A9F7EF3F09F408950E2E000CFF0BDA +:10169000E054FE4FE6CF809130029091FF01981305 +:1016A00001C008958F5F8770FACF2CE0929F800D64 +:1016B0001124982F977086958695869524E0829FB1 +:1016C000F0011124EF51FE4F50E040E080E0219105 +:1016D00030E0092E02C0369527950A94E2F7217072 +:1016E0003327042E01C0220F0A94EAF7822B4F5FA2 +:1016F0005F4F4430510559F708952CE0929F800DBB +:101700001124982F977041E001C0440F9A95EAF791 +:1017100086958695869594E0899FF0011124EF5176 +:10172000FE4F90E080E070E05191DF0111979B0146 +:10173000082E02C0369527950A94E2F7217021956C +:101740002527242325272C9301968430910561F7C2 +:10175000089590E080E00E94AA0690E080E00E9458 +:10176000940610923302109232020E94A70A86E079 +:10177000E2E8F2E0DF011D928A95E9F710927C021F +:1017800010927B0210927D020C9481079093370295 +:10179000809336020C94A90B882341F08095909198 +:1017A00034028923809334020C94A70A0895882375 +:1017B00039F090913402982B909334020C94A70A3C +:1017C0000895882309F459C0823871F40E94C00634 +:1017D00081FF53C089E30E94170B0E94A70A89E387 +:1017E0000E94EC0A0C94A70A833859F40E94C006A0 +:1017F00080FF43C083E50E94170B0E94A70A83E580 +:10180000EFCF843859F40E94C00682FF36C087E4C7 +:101810000E94170B0E94A70A87E4E2CF9CEF980F63 +:10182000913AF0F290E2980F983088F4877021E0B6 +:1018300030E0A90102C0440F551F8A95E2F7CA01A2 +:10184000809590913402892380933402CBCF9BE51D +:10185000980F933020F490E080E00C94AA0698E56D +:10186000980F973120F490E080E00C949406803F2C +:1018700020F00E94A8070C948107089590914F03CF +:10188000943029F5809327037093290360932803EC +:101890009093E9008FEF9091E800815095FD06C08C +:1018A00095ED9A95F1F700008111F5CF8091E80050 +:1018B00085FF0DC050E040E063E070E087E293E018 +:1018C0000E943C058091E8008E778093E80008959F +:1018D000BC0184E00C943E0CBC0183E00C943E0CF3 +:1018E0009C0184E08093E9009FEF8091E800915093 +:1018F00085FD06C085ED8A95F1F700009111F5CFC1 +:101900008091E80085FF0CC050E040E066E070E0A8 +:10191000C9010E943C058091E8008E778093E80021 +:101920000895CF93DF93EC0180911D018823B1F1DD +:101930008091250387FF32C060E284E08093E90054 +:101940008FEF9091E800815095FD06C095ED9A9536 +:10195000F1F700008111F5CF8091E80085FF1BC0F1 +:1019600080911D0170E050E040E0811104C050E022 +:1019700040E068E070E0CE010E943C058091E80004 +:101980008E778093E80080E2FE01ADE2B3E0019043 +:101990000D928A95E1F7DF91CF91089568E081E09B +:1019A000CDCF81E08093E00080E28093D800109258 +:1019B000C9008FE19EE40197F1F700C0000087E0C5 +:1019C00090EBDC0180935E0390935F03A093600330 +:1019D000B093610388E19CE00FB6F894A8958093DA +:1019E00060000FBE90936000FFCFCF93C82F882375 +:1019F00009F4AEC08238C1F40E94C00681FDA8C0BF +:101A000089E30E94170B0E94A70A2FEF81EE94E052 +:101A1000215080409040E1F700C0000089E30E941F +:101A2000EC0ACF910C94A70A8338A1F40E94C00657 +:101A300080FD8EC083E50E94170B0E94A70A2FEF3E +:101A400081EE94E0215080409040E1F700C000001A +:101A500083E5E5CF8438A1F40E94C00682FD78C0FA +:101A600087E40E94170B0E94A70A2FEF81EE94E0F3 +:101A7000215080409040E1F700C0000087E4CFCFC4 +:101A80008CEF8C0F813A88F580911D01882301F13C +:101A90008091250387FF1CC0EC2FE695E695E6951F +:101AA000F0E0E054FE4F828190E04C2F477021E03F +:101AB00030E002C0220F331F4A95E2F782239323BE +:101AC000892B79F08C2F0E94EC0A0E94A70A09C08A +:101AD000E2ECF1E08191C817A9F321E0E83CF207BC +:101AE000C9F78C2F0E94170B9CCF80E28C0F883097 +:101AF00068F4C77021E030E001C0220FCA95EAF710 +:101B000080913402822B809334028BCFEBE5EC0F73 +:101B1000E33040F4F0E0E25EFE4F808190E0CF9150 +:101B20000C94AA06E8E5EC0FE73150F4F0E0EE0F74 +:101B3000FF1FEF5DFE4F80819181CF910C94940641 +:101B4000C03F30F08C2F0E946308CF910C94810726 +:101B5000CF9108951F93CF93DF93182FD0E0C0E06B +:101B6000893311F4C0E5D0E0812F0E94F50C209755 +:101B700031F4812FDF91CF911F910C94E10B8FE90C +:101B80009FE00197F1F700C000002197F0CF0F937D +:101B90001F93CF93DF93C62FD42F022FFC01828196 +:101BA0008823A1F060935D030E94880690935C03F4 +:101BB00080935B03C77081E001C0880FCA95EAF784 +:101BC000DF91CF911F910F910C94D70B80915D0302 +:101BD000681335C080915B0390915C030E94790685 +:101BE000883C910560F510E21D0FCD17B9F080E239 +:101BF0008C0F883040F4C77081E001C0880FCA950F +:101C0000EAF70E94CC0B183048F481E09D2F9770C2 +:101C100001C0880F9A95EAF70E94D70B802F0E9487 +:101C2000AA0D183098F4D77081E001C0880FDA95BA +:101C3000EAF7DF91CF911F910F910C94CC0BC770F5 +:101C400081E001C0880FCA95EAF7F3CFDF91CF9109 +:101C50001F910F910895CF93DF93C7EED3E060E01B +:101C6000CE010E944A312196C11588E0D807B9F704 +:101C7000DF91CF9108956F927F928F929F92AF9252 +:101C8000BF92CF92DF92EF92FF920F931F93CF9369 +:101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 +:101CA000E701C056D10936011BC0F501859094901B +:101CB000692DC8010E944A31682DC80101960E9411 +:101CC0004A3182E0A80EB11C0E5F1F4FC017D1072A +:101CD00061F788E1680E711C6896CE15DF0529F062 +:101CE0008E01085111095301E0CF7E0180E6E80E14 +:101CF000F11C80E6C80ED11C8FE5E81684E0F806DA +:101D000079F6DF91CF911F910F91FF90EF90DF90C7 +:101D1000CF90BF90AF909F908F907F906F900895DD +:101D2000CF93C82F6FEF811161E283E290E00E94B0 +:101D30004A316FEFC11169E084E290E00E944A31BC +:101D40006FEFC11161E185E290E0CF910C944A31CF +:101D500080E00E94900E60E086E290E00E944A31AE +:101D60000E943B0E0E942B0E81E00C94900ECF93AC +:101D7000C0912603C2FB992790F9981781F080FB48 +:101D8000C2F9C09326036091250384E090E00E948D +:101D90004A316C2F82E290E0CF910C944A31CF917E +:101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 +:101DB000DD1F28E1629FC00DD11D112430E6839FF5 +:101DC000C00DD11D1124CE0187960E943631082FF7 +:101DD00010E0102F0027CE0188960E94363198011E +:101DE000282BC901DF91CF911F910F910895462FA4 +:101DF0008A3038F4743028F46C3018F4672F0C945F +:101E0000D10E90E080E00895BF92CF92DF92EF92E2 +:101E1000FF920F931F93CF93DF937C01009159039F +:101E200010915A038091360290913702082B192B9A +:101E3000CFE0D0E0CC24C394D12CBC2EC6010C2E14 +:101E400002C0880F991F0A94E2F780239123892BFF +:101E500071F4219790F7B12C8B2DDF91CF911F91C9 +:101E60000F91FF90EF90DF90CF90BF900895B70152 +:101E70008C2F0E94F70E0E941909019751F3ECCFA5 +:101E8000CF93DF93EC010E94040FBE010E94F70E76 +:101E9000DF91CF910C941909FC01808191810E94FE +:101EA000400F292F2F7092959F7092509E3078F49A +:101EB000E92FF0E0EC53FE4C0C94EB30803F19F02E +:101EC00020F4883E20F481E00895843FE1F380E02F +:101ED0000895883EC0F3813FD1F7F5CF822F8695D4 +:101EE00086958695089583E290E00E94363181328E +:101EF00089F484E290E00E943631893059F485E219 +:101F000090E00E94363191E0813109F090E0892F14 +:101F10008170089580E0FCCFCF9384E090E00E9430 +:101F20003631C82F82E290E00E943631982F8C2FF4 +:101F3000CF91089560911503669570E04BE050E0F5 +:101F40008AE091E00E941C31892B19F481E0809392 +:101F500092020E94880690938C0280938B020895CF +:101F60004F925F926F927F928F929F92AF92BF92A9 +:101F7000CF92DF92EF92FF920F931F93CF93DF9355 +:101F8000CDB7DEB7CE57D1090FB6F894DEBF0FBE7E +:101F9000CDBF509019018091150380FF5DC08090E6 +:101FA000890290908A028114910409F068C0EDECD6 +:101FB000F3E09E012F5F3F4FBE0161587F4FC90183 +:101FC000A4914A2F50E0DA01AA0FBB1FA40FB51F3E +:101FD000A956BD4FCD90DD90EC90D901CD92DD9208 +:101FE000ED929D0131966A177B0751F720911801F8 +:101FF00043E0249F800D911D11246E9A2EB12F7BFA +:102000003EB130645FB7F894BC01549E600D711D01 +:1020100011248617970709F08DC05FBF8FE594E004 +:102020000197F1F700C00000C258DF4F0FB6F894D7 +:10203000DEBF0FBECDBFDF91CF911F910F91FF90FB +:10204000EF90DF90CF90BF90AF909F908F907F9058 +:102050006F905F904F90089580911A0190911B01AD +:1020600023E0829FF0011124E956FD4F891708F003 +:1020700096CF1182108212828F5F3396F7CF8091B4 +:102080008802811194CFD12CC12C66246394712CC9 +:1020900053E0452E8091930293010C2C01C0220F36 +:1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 +:1020B000E80DF91DE590F490E114F10409F477CFEF +:1020C00045E050E0B701CE0101960E94133109812D +:1020D0000F3F39F18A81800F9927991F8B32910523 +:1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 +:1020F000DC01A956BD4F5D01049D800111240956E4 +:102100001D4F0A151B0520F0B5E0EB0EF11CD8CFD2 +:1021100098014D816C818B810E94E8060D5F1F4FF5 +:10212000F0CFEFEFCE1ADE0AF8E0CF16D10409F0B7 +:10213000B1CF3DCFFC014191CF01E8E03EB90000B5 +:1021400000C047FF2EB9440F000000C000C000C00F +:102150002EB900C0EA9591F75CCF0F931F93CF93F0 +:10216000DF93EC0110E000E090911C019017110644 +:1021700009F06CF40E94B00F8C8190E001968170A0 +:1021800099278C83DF91CF911F910F910895209112 +:102190001A01A801420F511D9A01220F331F240F6B +:1021A000351F29563D4F4C816091170380911603CE +:1021B00096959017110651F04CF0442349F0409148 +:1021C00018030E94E8060F5F1F4FCECF4423B9F3D8 +:1021D00040E0F7CF8F929F92AF92BF92CF92DF9263 +:1021E000EF92FF920F931F93CF93DF93EC014C81FB +:1021F000042F10E09801D8010E94B3319B01AC017B +:102200000E947E314B015C01E0E2F0E0E01BF10B4B +:10221000A5E5B0E0AC019B010E947E316B017C0121 +:102220009F01DF010E94F8309B01AC010E948931BF +:102230009B01AC01280D391D4A1D5B1DC701B6016C +:102240000E949131F22E822F90E039E23F1560F129 +:1022500043E0249F9001112435952795122F109566 +:1022600000E085E5E82EEF1880911C01081758F171 +:102270000E94B00F9C8181E0992319F0903219F4EB +:102280008FEF8093170180911701890F8C83DF9165 +:10229000CF911F910F91FF90EF90DF90CF90BF9063 +:1022A000AF909F908F90089525E530E0B901681BAD +:1022B000790B9B01220F331F260F371F37FFCCCF1F +:1022C0002F5F3F4FC9CF8E2D01FD8F2D20911A0119 +:1022D000622F600F7727771F9B01220F331F260F76 +:1022E000371F29563D4F412F609117030E94E80682 +:1022F0000F5FBACF0F931F93CF93DF9380911A0193 +:1023000090911B0123E0829FF0011124E956FD4FBB +:10231000891740F1C0E0D3E060911C01C61740F17D +:102320000E94B00F2091150180919502820F809339 +:10233000950290911601920F90931601191654F47C +:10234000082E000C990B40911C014150550B84172D +:1023500095071CF0219520931501DF91CF911F91D6 +:102360000F9108951182108212828F5F3396D0CF21 +:102370000C2F10E070E0C8010E94D73020911A01A4 +:10238000820F482F50E020919502022E000C330B53 +:1023900002171307BCF020911601022E000C330B1C +:1023A000201731077CF08D9F9001112429563D4F55 +:1023B0004091180360911703809116030E94E8066C +:1023C000CF5FAACFFA01EE0FFF1FE40FF51FE9560A +:1023D000FD4F118210821282F3CF1F93CF93DF93B0 +:1023E000FC018281DFEF80FFD1E0C0E01AE2909132 +:1023F0001C01C91788F00E94B00F80919402D1305F +:10240000C9F5811102C080911C0181508093940212 +:10241000DF91CF911F910895E0911A014C2F50E068 +:102420009A012E0F311DF901EE0FFF1FE20FF31F6E +:10243000E956FD4F118210821282809194028B32F4 +:10244000ACF0612F0E94B530892F082E000C990B3B +:102450004817590749F49F014091180360911703E9 +:10246000809116030E94E806CF5FC1CF87FFEDCFB2 +:10247000890FEBCF90E0019660911C0170E00E9403 +:10248000D730C4CFEF92FF921F93CF93DF93EC012D +:1024900010E0EE24EA94F12C60911C01161770F004 +:1024A0000E94B00F9A818C8190FF27C08F5F8C8330 +:1024B000DF91CF911F91FF90EF90089520911A0125 +:1024C000422F410F5527551FCA019A01220F331F72 +:1024D000280F391F29563D4F70E0C7010E94D730A1 +:1024E000962F8C814091180360911703199F800DDE +:1024F00011240E94E8061F5FCFCF8150D8CF909162 +:10250000150390FF14C090911A0120911B0133E034 +:10251000939FF0011124E956FD4F921710F00C948F +:10252000B00F8183608342839F5F3396F6CF089517 +:102530000F931F93CF93DF9300D00F92CDB7DEB7E9 +:102540008C018091960281110AC09E012F5F3F4F3E +:1025500044EB6FEF0E94E8068A8180939602F801AF +:102560006481613069F08091960240E0662361F0F9 +:1025700040E0623011F44091960280E060E004C0D7 +:102580006091960240E080E00E947F12F801848111 +:1025900090E0019663E070E00E94D73084830F9052 +:1025A0000F900F90DF91CF911F910F910895CF93CE +:1025B000DF9300D00F92CDB7DEB79091150390FF57 +:1025C0000AC09E012F5F3F4F0E94E8064B81698140 +:1025D0008A810E947F120F900F900F90DF91CF9110 +:1025E0000895CF93DF93EC01E5E1F3E0438162814D +:1025F0008C810E94D7128C818F5F8C83DF91CF9169 +:102600000895CF93DF93EC01EC81F0E0EA50FC4FAA +:102610004491E5E1F3E0628181810E94D7128C81CF +:102620008F5F8C83DF91CF910895CF92DF92EF92ED +:10263000FF926B017C010E94D206B701A60188E0DF +:1026400090E0FF90EF90DF90CF900C945C31AF92D0 +:10265000BF92CF92DF92EF92FF920F931F93CF938F +:10266000DF9300D00F92CDB7DEB7182FF62E042FD0 +:10267000E22E9091150390FF29C0E92FE695AE2F29 +:10268000B0E0A657BE4F8C91809391029E7F92300E +:1026900059F59E012F5F3F4F812F0E94E8064B8125 +:1026A00069818A810E947F1210931603F0921703AA +:1026B00000931803EE2051F06091150370911603FA +:1026C00080911703909118030E9415130F900F909B +:1026D0000F90DF91CF911F910F91FF90EF90DF90BE +:1026E000CF90BF90AF900895823019F400911803F5 +:1026F000DBCF863019F410911603D6CF8930D9F389 +:10270000893191F6E9518E2F8170D82EE695F0E04F +:10271000E853FC4FA590B490C12CBB2460911C01E0 +:10272000C61618F00E94B00FBFCF2C2D30E0A29E2D +:10273000C001A39E900DB29E900D112470E00E94E6 +:10274000C330812FD11013C0860F40911A01420F60 +:10275000532F511D9A01220F331F240F351F295665 +:102760003D4F402F6F2D0E94E806C394D7CF861BA4 +:10277000ECCFE5E1F3E0438128E0421B08F440E0C0 +:1027800021E0628181810C942713E5E1F3E043812C +:1027900028E0420F08F44FEF21E0628181810C9420 +:1027A0002713E5E1F3E0628128E0621B08F460E0B2 +:1027B00021E0438181810C942713E5E1F3E06281FC +:1027C00028E0620F08F46FEF21E0438181810C94CF +:1027D0002713E5E1F3E0818121E0438162818850A4 +:1027E0000C942713E5E1F3E0818121E043816281CC +:1027F000885F0C94271380911903882319F0815066 +:10280000809319036091150370911603809117034B +:10281000909118030C94151380911903833018F4C8 +:102820008F5F809319036091150370911603809157 +:102830001703909118030C9415139091150390FFB2 +:1028400036C09170811129C0926090931503662360 +:1028500051F06091150370911603809117039091C8 +:1028600018030E94151360911503669570E04BE004 +:1028700050E08AE091E00E941C31892BA9F010926F +:10288000920281E080938E0220E0409118036091D3 +:102890001703809116030C942713853210F0986467 +:1028A000D4CF880F982BD1CF0E949A0FEACF0895EA +:1028B00060E00C941D1421E030E0A90102C0440F37 +:1028C000551F8A95E2F7CA0120919302662391F081 +:1028D000822B8093930280919202811105C0809196 +:1028E000150386950E9458148091150380FD05C03C +:1028F0000C94B00F80958223ECCF0895CF93DF9393 +:10290000C82FC17082FBDD27D0F981FB662760F9F3 +:1029100084E00E945B1461E06C2785E00E945B14F8 +:102920006D2F86E0DF91CF910C945B140F931F9372 +:10293000CF93DF93EC0161E0009709F0682F61709D +:1029400080E00E945B1460E0209721F0BE01769544 +:102950006795617081E00E945B1460E0209731F020 +:10296000BE017695679576956795617082E00E94C5 +:102970005B1460E0209739F0BE01B3E0769567956F +:10298000BA95E1F7617083E00E945B14AE0170E0DC +:1029900060E0BB27A72F962F852F0097A105B105D3 +:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 +:1029B000279517950795FA95D1F70115110521056A +:1029C000310519F08C5FB901A8018A019B01E2E091 +:1029D0003695279517950795EA95D1F701151105B5 +:1029E0002105310519F08E5FB901A801769567952B +:1029F00057954795452B462B472B09F08F5F813024 +:102A0000C9F0882359F08230D1F08330E9F020E01A +:102A10004EE16FEF80E406C080E0C6CF20E04EE1DB +:102A20006FEF82E30E942713CE01DF91CF911F91B8 +:102A30000F91089520E04EE16FEF8EE1F3CF20E09B +:102A40004EE16FEF8AE6EECF20E04EE16FEF87EDCB +:102A5000E9CF0E94961490935A03809359030C94E3 +:102A6000A90B8091590390915A039C01267033273A +:102A70002630310519F488600C942915877FFCCF26 +:102A800021E030E002C0220F331F8A95E2F7209543 +:102A900030958091590390915A03822393230C948B +:102AA0002915909131028095892380933102282F36 +:102AB000277039F4282F082E000C330B92171306B9 +:102AC00021F49091260392FF07C085958595859501 +:102AD0000E94401510923102089521E030E002C0BA +:102AE000220F331F8A95E2F78091590390915A0380 +:102AF000822B932B0C942915809115038695815078 +:102B000009F484E261E00C941D148091150386950C +:102B10008F5F853208F081E061E00C941D14909184 +:102B2000150390FF07C09695981720F0961710F49C +:102B30000C94851561E00C941D14E5E1F3E083E04D +:102B4000808311828FEF828384EB83831482608180 +:102B50007181828193810C94151369EE7EEF90E070 +:102B600080E00E94683160E082E090E00E944A319B +:102B700060E083E090E00E944A31109237021092A8 +:102B8000360260E084E090E00E944A3160E082E238 +:102B900090E00E944A3160E085E090E00E944A3176 +:102BA00060E086E090E00E944A316FEF87E090E0BD +:102BB0000E944A3140E050E0BA0188E090E00E9473 +:102BC0005C3160E08DE090E00E944A3140E050E0EE +:102BD000BA0188E190E00E945C3160E087E190E01A +:102BE0000E944A3140E050E0BA018CE190E00E943E +:102BF0005C3170E060E080E290E00E94683140E08B +:102C000050E0BA0188E190E00E945C3180E00E94CF +:102C1000900E0E94A80E40E050E0BA018FE090E0D4 +:102C20000E945C3140E050E0BA0183E190E00C94F6 +:102C30005C318F929F92AF92BF92CF92DF92EF92D0 +:102C4000FF920F931F93CF93DF93CDB7DEB72897F3 +:102C50000FB6F894DEBF0FBECDBF8E010F5F1F4FC2 +:102C600088E0F80111928A95E9F78FE4E82E81E077 +:102C7000F82E6801AA24A394B12CF70181917F0159 +:102C80008F3F09F44BC0F894E82FE295EF70F0E025 +:102C900021A18F70A50102C0440F551F8A95E2F74C +:102CA000CA01922F982B91A392A18095892382A388 +:102CB000789400C0E3E5F1E030E020E0912C812C35 +:102CC00081918F3F09F47EC0A82FA295AF70B0E02C +:102CD00090964C9150E08F7002C0559547958A951B +:102CE000E2F740FD6FC0C501022E02C0880F991F98 +:102CF0000A94E2F7882A992A2F5F3F4F2C3031053A +:102D0000F9F6F701319780818F3F11F00E94BF08DB +:102D100050EA5A95F1F7F60191828082F2E0CF0EE7 +:102D2000D11C23E5E21621E0F20609F0A6CF48E027 +:102D300050E0B80184E492E00E942931FF24F3942A +:102D4000009709F4F12C892B09F43FC088E0F801C1 +:102D5000A4E4B2E001900D928A95E1F781E08093BE +:102D60003A020E948806909339028093380280913B +:102D70003802909139020E947906059750F18091AE +:102D80004402909145029093740280937302809163 +:102D9000460290914702909376028093750280914B +:102DA0004802909149029093780280937702809133 +:102DB0004A0290914B0290937A028093790210928A +:102DC0003A0207C090E080E095CF80913A028111ED +:102DD000CECF80914302882371F08091410290917F +:102DE00042020E947906893E934028F082EE0E94BA +:102DF000E10B1092430280913F02909140029111A9 +:102E00004BC0882319F110921A0184E080931B01B2 +:102E100080931C018FE00E94581410923F0281E0C1 +:102E2000809340028F2D28960FB6F894DEBF0FBE18 +:102E3000CDBFDF91CF911F910F91FF90EF90DF9069 +:102E4000CF90BF90AF909F908F90089580913E0259 +:102E5000882379F086E180931A018AE180931B012F +:102E600084E080931C018FE00E94581410923E026F +:102E7000D6CF80913D028823A9F08AE180931A0180 +:102E80008EE180931B0184E080931C018FE00E94FF +:102E9000581410923D02C3CF811124C080913E028C +:102EA000811120C080913D0281111CC080913B02A4 +:102EB00090913C020E947906853F914098F01092D3 +:102EC0001A0189E280931B0180931C0181E20E9418 +:102ED000581410923F0210923E0210923D0210923E +:102EE0004002A0CF10923F0210923E0210923D028B +:102EF00099CF90E080E00E944431893E9E4F11F4CA +:102F00000C94730F80E008951092340280911D019B +:102F1000E2ECF1E0882359F08091250387FF07C098 +:102F20008EE1DF011D928A95E9F70C94A90B86E0EA +:102F3000F8CF1F93CF93DF93CDB7DEB7AA970FB625 +:102F4000F894DEBF0FBECDBF81E593E02091F10084 +:102F5000DC012D93CD01B3E089359B07B9F7809152 +:102F60005203833009F471C0B8F4813009F448C0C9 +:102F7000823009F4B2C08091E80083FF3AC18091A9 +:102F80005103909152039A3008F033C1E92FF0E0D9 +:102F9000EE52FE4C0C94EB308A3009F48DC08B302D +:102FA00009F470C0893039F780915103813219F7E3 +:102FB0008091550390915603009711F00297D9F62E +:102FC0008091E800877F8093E8008091E80082FF8D +:102FD00037C08091F2009091F300029729F480911C +:102FE000F1008B7F813021F48091F10080932C03DC +:102FF0008091E8008B778093E8000E946605BBCF44 +:1030000080915103813A09F0B6CF8091E800877F23 +:103010008093E8008091550390915603892B61F4C9 +:1030200060E28DE293E070E00E9419068091E80072 +:103030008B778093E8009FCF60E090E080E0F3CF53 +:1030400080914F038111C1CF96CF80915103813A76 +:1030500009F091CF8091550390915603892B09F087 +:103060008ACF8091E800877F8093E8008091E80014 +:1030700080FFFCCF80911D018093F1008091E800DA +:103080008E77B9CF80915103813209F074CF80914E +:10309000550390915603892B09F06DCF8091E8007C +:1030A000877F8093E8000E94660580915303809398 +:1030B0001D010E9484175FCF80915103813209F076 +:1030C0005ACF8091E800877F8093E8000E946605D0 +:1030D0008091540380932B034ECF80915103813A0A +:1030E00009F049CF8091E800877F8093E8008091C4 +:1030F000E80080FFFCCF80912B03BECF803899F091 +:10310000823809F076C0809155038F70873008F0BF +:1031100070C08093E9008091EB0085FB882780F9DF +:103120001092E90006C080914D0390914E039111D9 +:1031300082609091E800977F9093E8008093F1007F +:103140001092F1008091E8008E77B5C1882309F4D0 +:10315000A2C1823009F04DC0809153038111A6C1F4 +:10316000809155038F702FEF280F263008F041C053 +:103170008093E9002091EB0020FF98C1933031F457 +:103180008091EB0080628093EB0090C19091EB0006 +:1031900090619093EB0021E030E001C0220F8A950E +:1031A000EAF72093EA001092EA008091EB00886031 +:1031B000EACF81111EC0109153031F778091E30065 +:1031C0008078812B8093E3008091E800877F809353 +:1031D000E8000E9466058091E80080FFFCCF8091A6 +:1031E000E30080688093E30082E0111183E0809324 +:1031F0004F038091E80083FF0AC08091E800877F39 +:103200008093E8008091EB0080628093EB00AA96A7 +:103210000FB6F894DEBF0FBECDBFDF91CF911F91E7 +:1032200008958058823028F7209153033091540339 +:103230002C3DE3E03E07A1F583E08A838AE289839F +:103240004FB7F894DE01139620E03EE051E2E32F01 +:10325000F0E050935700E49120FF03C0E295EF7037 +:103260003F5FEF708E2F90E0EA30C0F0C7968D93ED +:103270009D932F5F243159F74FBF8091E800877FDE +:103280008093E8006AE270E0CE0101960E94190680 +:103290008091E8008B778093E800ABCFC096E7CFB2 +:1032A0008091550390915603432F55274330510584 +:1032B00009F44AC078F54130510509F47AC08BE52C +:1032C00090E0E6EBF8E04230510509F092CF209112 +:1032D000E800277F2093E80020915703309158039E +:1032E0008217930708F49C0140E02115310509F08D +:1032F00065C0411163C08091E80082FDC9CF809113 +:103300004F03882329F2853019F28091E80083FF6A +:10331000F2CFBECF4132510509F43CC042325105D3 +:1033200009F067CF8330910508F063CFFC01EE0F01 +:10333000FF1FEE54FE4F0190F081E02D81559E4F0E +:10334000DC018C9190E01AC0332721303105D1F097 +:103350002115310561F02230310509F04ACFE3E251 +:10336000F9E0E4918E2F90E0E3E2F9E007C0E1E4B8 +:10337000F9E0E4918E2F90E0E1E4F9E0009709F4A0 +:1033800038CFA5CFEDE2F9E0E4918E2F90E0EDE2A9 +:10339000F9E0F4CF8330910508F02BCF880F991F07 +:1033A000FC01E854FE4F0190F081E02D89E090E0AF +:1033B0008ECF82E190E0E1E1F9E089CF80914F0387 +:1033C000882309F465CF853009F462CF8091E80045 +:1033D00083FD5ECF8091E80082FD8DCF8091E80073 +:1033E00080FF83CF8091F2009091F3002115310589 +:1033F00019F08830910550F041E0089709F040E05D +:103400008091E8008E778093E8006FCF44914093DD +:10341000F1003196215031090196E8CF803809F04A +:10342000E8CE8091E800877F8093E8008091500388 +:103430008093F10087CE8111DCCE109153031230BE +:1034400008F0D7CE8091E800877F8093E800109342 +:1034500050030E946605112311F084E005C080919D +:10346000E30087FDFACF81E080934F0342E061ECF7 +:1034700081E00E94850542E261EC84E00E948505BE +:1034800042E261EC82E00E94850542E260EC83E06A +:103490000E948505AECE80915303813009F0A9CEFC +:1034A00081E0933009F080E080934E031092E900B0 +:1034B0008091E800877F8093E8000E94660599CE9E +:1034C0003F924F925F926F927F928F929F92AF92B4 +:1034D000BF92CF92DF92EF92FF920F931F93CF9301 +:1034E000DF9300D000D00F92CDB7DEB78C01FC0186 +:1034F00083819481892B31F08081918189238F3F51 +:1035000009F010C60F900F900F900F900F90DF9161 +:10351000CF911F910F91FF90EF90DF90CF90BF90D0 +:10352000AF909F908F907F906F905F904F903F9063 +:1035300008950E94040FF82E682F89819A810E94B5 +:103540007D0B69817A818F2D0E94F70E7C01F80135 +:103550008281882309F4D9C5970122513F45203142 +:10356000310508F09AC58FEF97E00E943631FEEEE4 +:10357000EF0E57EE852E53E0952E882381F1809132 +:103580003102877009F4BECFF8018281882309F4E3 +:10359000B9CF82E00F900F900F900F900F90DF91B6 +:1035A000CF911F910F91FF90EF90DF90CF90BF9040 +:1035B000AF909F908F907F906F905F904F903F90D3 +:1035C0000C945115811428E09206C9F2C4010E949E +:1035D0003631811101C0EA943FEF831A930AE1105A +:1035E000F1CF1C821B82442443944AE0342E7401A0 +:1035F0004FEFE41AF40AC4010E94363189831A821B +:10360000882309F4BCCF9FEF980F933000F58A838D +:10361000498252E0850E911CC7010E9436318B838E +:10362000882309F4ACCFCE0101967C01F7012081FB +:103630002223E9F2213009F049C091818281913041 +:1036400041F4F2E0EF0EF11C0E94AA0D09C04701FF +:10365000EACF923049F422E0E20EF11C0E94F50C10 +:103660003FEFE31AF30AE2CF933031F432E0E30E96 +:10367000F11C0E94E10BF4CF943021F04FEFE41ADB +:10368000F40AEECF52E0E50EF11C30E020E0B70185 +:103690006F5F7F4FF70141818053990B8A3091050D +:1036A00050F021503109E0F28FE99FE00197F1F7E6 +:1036B00000C00000F6CF329EF001339EF00D1124C1 +:1036C0009C012E0F3F1F842F7B01E1CFE22FF0E002 +:1036D000EA5DFD4F5490822F86958695869590E001 +:1036E000FC01EA5EFD4F64902770712C022E02C02F +:1036F000759467940A94E2F7E1E06E227724FC0166 +:10370000EA5FFD4FA490B12C022E02C0B594A7949D +:103710000A94E2F7F1E0AF22BB24FC01EA50FE4F2D +:10372000C490D12C02C0D594C7942A95E2F721E029 +:10373000C222DD246114710419F081EE0E94F50C9F +:10374000A114B10419F086EE0E94F50C852D0E949B +:10375000AA0DAB2819F086EE0E94E10B672819F03C +:1037600081EE0E94E10BCD2809F47ACF8CE26CCF78 +:1037700081E00E946D150E94311501CF81E00E9409 +:103780004015F9CF82E0F5CFE2E8EE16EFE5FE0650 +:1037900009F49BC0F3E8EF16FFE5FF0609F097C4B4 +:1037A000882309F181EE0E94F50C83EE0E94F50C4E +:1037B00080E50E94F50C80E595C0882309F481C05E +:1037C00080914302811106C081E08093430282EE22 +:1037D0000E94F50C0E948806909342028093410259 +:1037E0008BE20E94F50CF8018281882309F4ABC4B6 +:1037F00010925D03F2E0EF16FCE5FF0608F491C1BC +:1038000026E1E2162CE5F20630F0C7018A5F9C45FE +:10381000099708F086C10E948C0F9093260380932D +:10382000250330E1E3163CE5F30609F449C108F04D +:10383000CBC058E0E5165CE5F50609F433C108F0A5 +:1038400094C094E0E9169CE5F90609F423C108F058 +:1038500076C0F2E0EF16FCE5FF0609F415C1809191 +:103860002503826023E0E2162CE5F20609F40FC17D +:1038700060912503F090260384E090E00E944A3195 +:103880006F2D82E290E00E944A310E94841777CE29 +:103890008823A1F080914302811106C081E08093CA +:1038A000430282EE0E94F50C0E9488069093420229 +:1038B0008093410281EE0E94F50C92CF81EE0E942E +:1038C000E10B8BE20E94E10B8ECF882309F48BCFB2 +:1038D00081EE0E94F50C83EE0E94F50C8FE40E94AD +:1038E000F50C8FE40E94E10B83EE0E94E10B81EE68 +:1038F000E9CF95EFE9169CE5F906D1F0A8F027E2AB +:1039000045EE66EEF6EFEF16FCE5FF0609F06BCF2D +:10391000C8010E94C70D33CE27E245EE65EEF8CF11 +:1039200026E241EE60EEF4CF27E245EE64EEF0CF02 +:1039300026E241EE62EEECCF28E241E0EFCF80914B +:103940002503806136E0E3163CE5F30609F49FC0E9 +:1039500080912503886047E0E4164CE5F40608F4FE +:1039600096C080912503806292C0809125038D7F4F +:103970005CE0E5165CE5F50609F489C078F4809111 +:1039800025038C609AE0E9169CE5F90609F47FC0EE +:1039900008F48CC0809125038E7F79C08091250327 +:1039A000877FFEE0EF16FCE5FF0609F470C080910A +:1039B00025038B7F2FE0E2162CE5F20608F467C0A2 +:1039C000809125038F7E63C03BEFE3163CE5F30651 +:1039D00009F464C068F553E1E5165CE5F50609F401 +:1039E00077C090F491E1E9169CE5F90609F46CC002 +:1039F000E2E1EE16ECE5FE0609F03ACF0E948417EC +:103A0000809125038F7743C0F5E1EF16FCE5FF06B3 +:103A100009F466C008F47AC08091260381603AEF09 +:103A2000E3163CE5F30609F023CF8093260320CF6D +:103A30004FEFE4164CE5F40609F44EC088F48DEF20 +:103A4000E8168CE5F806C1F1809126038E7F9EEF83 +:103A5000E9169CE5F90648F3809126038360E5CFDB +:103A6000E1E0EE16EDE5FE0609F459C008F444C0A5 +:103A700060E022E0E2162DE5F20609F0F9CE8EE0D4 +:103A800090E00E944A31F4CE8091250381608093BA +:103A90002503EECE809125038460F9CF8091260323 +:103AA0008260C3CF809125038064F1CF0E94841788 +:103AB000809125038068EBCF809126038D7FB5CF61 +:103AC000809125038F7DE3CF809125038F7BDFCF0E +:103AD00080912503837FDBCF809126038C7FA5CF48 +:103AE0008091250382FB992790F921E0922790FB92 +:103AF00082F990FB83F9CBCF80912603982F909584 +:103B000091708E7F892B90FB81F98FCF0E94841753 +:103B100090912503892F97FB87F98058B8CF61E0F2 +:103B2000AECF8091340236E1E3163CE5F30609F0AE +:103B300017C38A7A91E009F490E09093E001811133 +:103B400006C089E20E94170B0E94A70A18CD85E3E0 +:103B5000F9CF85E302C38091150380FF1BC08E7FE0 +:103B600080931503609115037091160380911703DC +:103B7000909118030E941513109292024FEF50E794 +:103B800082E0415050408040E1F700C000000E94B8 +:103B9000B00FF5CC81608093150361E086950E949B +:103BA0001D14EDCC4CE755E165E875E10E94CC06AB +:103BB000E6CC45E855E16CE775E1F8CF42EF53E11B +:103BC00069EE73E1F3CF41ED53E16DED73E1EECFBB +:103BD00049EB53E165EC73E1E9CF45EC53E169EB67 +:103BE00073E1E4CF4CE054E16BEF73E1DFCF61E0D0 +:103BF00081E0D5CF65E082E00E948F15C0CC68E0FF +:103C000086E0FACF64E18FE0F7CF67E185E1F4CF9A +:103C100062E289E1F1CF61E083E2C1CF3BE5E316E7 +:103C20003DE5F30611F14CE5E4164DE5F40609F027 +:103C3000C9C28091260382FB882780F991E08927F9 +:103C40000E94B70EBFC20E9484175FEF84E39CE01E +:103C5000515080409040E1F700C000000E94D10C1C +:103C60000E94AD158CCC81E0EBCF80E0E9CFC7019D +:103C70000E94550BD82EB5C22F2D2F70C22E8F2D1E +:103C8000807F19F0C29490EFC922DD20C9F0CC20CA +:103C900069F080E28E0D883010F081100BC08091A9 +:103CA0003402C82AC09234020E94A70A8E2D0E94B4 +:103CB000F50C19C080913302C82AC0923302F4CFA8 +:103CC0008E2D0E94E10BCC2071F0C09480E28E0D0D +:103CD000883010F081103EC080913402C822C0921A +:103CE00034020E94A70AE92DE850FF0B349720F414 +:103CF0000E94C0060E947E14AA2009F403CC809181 +:103D0000310280FDFFCBF80112828595859585955E +:103D10000E946D15C8010E94601A8091310285953C +:103D2000859585950F900F900F900F900F90DF91D4 +:103D3000CF911F910F91FF90EF90DF90CF90BF90A8 +:103D4000AF909F908F907F906F905F904F903F903B +:103D50000C94401580913302C822C0923302C1CF27 +:103D60003F2D3F70B32E8F2D807F803219F0B2949B +:103D700080EFB822882071F041E0841681F1DD20C7 +:103D8000D9F1CC2091F1F801858180FF8FCF8F7020 +:103D900085832BC0DD20B1F0909135028B2D892BCE +:103DA000C11003C00E94D70B9ECF51E0C512FACFBD +:103DB0002091260322FD97CF981709F494CF809382 +:103DC000350291CFC11006C00E94A10A8B2D0E941E +:103DD000CC0B89CF81E0C81609F485CFF5CFDD2063 +:103DE00031F095E09C1508F47ECF8B2DDBCFE4E01D +:103DF000EC1508F478CFEACFCC2041F3F9E38F1229 +:103E000009C02FEF37EE43E0215030404040E1F74A +:103E100000C000008E2D0E94E10B65CF8F2D86958E +:103E20008695837061F0813009F05DCFC701937092 +:103E3000D11002C090E080E00E94940654CFC701E8 +:103E40009370D11002C090E080E00E94AA064BCF90 +:103E50008E2DDD2029F00E9463080E94810743CF48 +:103E60000E94A807FACF8F2D837009F040C0D110AF +:103E70003ACF4E2D429546954770440F440F8E2DF4 +:103E80008F7090E0042E02C0880F991F0A94E2F709 +:103E900030E020E0E4FE09C02FE030E002C0220F55 +:103EA000331F4A95E2F7209530954F2D469546955C +:103EB0004370423099F078F4609136027091370285 +:103EC000413039F0822B932B862397230E94C60B17 +:103ED0000ACF862B972B822B932BF8CF822B932BF9 +:103EE000209136023091370282279327EFCF8695B3 +:103EF000DD2011F08F2D8170882309F4F4CE4E2D32 +:103F0000429546954770440F440F8E2D8F7090E078 +:103F1000042E02C0880F991F0A94E2F730E020E0D7 +:103F2000E4FE09C02FE030E002C0220F331F4A95A3 +:103F3000E2F7209530954F2D4695469543704230D7 +:103F400099F078F46091590370915A03413039F037 +:103F5000822B932B862397230E942915C4CE862B70 +:103F6000972B822B932BF8CF822B932B20915903E5 +:103F700030915A0382279327EFCF5F2D5F70F52E84 +:103F8000DD2029F0852F0E946D158E2D0BCF8E2DF3 +:103F90000E94CC0B8F2D0E944015A5CE8E2D92EF46 +:103FA000891609F449C0981570F0E0EF8E1639F1C2 +:103FB000F1EF8F16C9F1DD2009F45FC0C11076CE94 +:103FC0008F2D8F7136C023EF8216D9F134EF831213 +:103FD000F2CFDD2009F446C0FF2DFF71FF2E8F2F99 +:103FE0000E946D158091260382FD07C028E0F29E95 +:103FF000C00111248360809331028F2D1AC0DD200F +:1040000071F044E04C1508F46ECE2F2D2F7181E035 +:1040100090E002C0880F991F2A95E2F7A7CF55E0DC +:104020005C1508F460CEF1CF8F2D8F71DD2009F47F +:10403000B2CF0E946D1557CE8F2D8F71DD20C9F341 +:10404000AACF90E080E0DD2009F486CF9F2D9F71FC +:1040500021E030E0F90102C0EE0FFF1F9A95E2F770 +:10406000CF017ACF81E00E94511531E03C1508F074 +:104070003ACE82E00E94511536CECC2059F08933D9 +:1040800009F0C8CE4FEF57EE83E0415050408040DA +:10409000E1F7BECE8F2D8F717ECFF0E1EF16FFE5F9 +:1040A000FF0609F465CB21E1E2162FE5F20609F4DB +:1040B00069CB41E8E4164FE5F40609F4E9CB08F0D2 +:1040C00063CB90E8E9169FE5F90609F476CB23EF78 +:1040D000E2162CE5F20609F423CC08F00ACC48EDF0 +:1040E000E4164CE5F40609F417CC59EDE5165CE549 +:1040F000F50609F421CC87EDE8168CE5F80609F001 +:1041000072CB26E241EE61EE03CC30E1E3163FE5EF +:10411000F30609F433CB41E1E4164FE5F40649F622 +:1041200082E02DCB85E0DE01119601900D928A95FB +:10413000E1F7F801228189819A812111FAC90E944F +:10414000550BF82EFEC9F6E1EF16FCE5FF06D1F59A +:104150008091E0018111FDCC89E20E94EC0AF4CC4F +:1041600082722CECE2162CE5F20609F43BCD08F045 +:10417000A7C046ECE4164CE5F40609F41FCD08F0A0 +:1041800076C093ECE9169CE5F90609F40BCD08F02E +:104190005DC0F2ECEF16FCE5FF0609F4DCCC9AE515 +:1041A000E9169DE5F90609F45ECD08F037CDE11476 +:1041B000FCE5FF0609F447CD2EEDE2162CE5F206EC +:1041C00009F44ECDF8018281E080F180882309F462 +:1041D0004ECDC7010E94040FD82E682FC7010E9440 +:1041E0007D0BB7018D2D0E94F70E0E9419097C01ED +:1041F000882EF801D280C580C2943FE0C32280910E +:1042000031028770A1F0AD2CDD2091F08F2D807FE1 +:10421000803421F080E28E0D883048F082E00E94E8 +:104220005115809131028770AA24A3948111A12C89 +:104230009F2C92942FE09222FBE0F91508F453CDC5 +:10424000E92DF0E0E452FE4C0C94EB3024ECE21645 +:104250002CE5F20609F4ADCC49EE53E162EF73E1CF +:1042600035ECE3163CE5F30609F4A0CC98CF49EC15 +:10427000E4164CE5F40609F4ABCC88F497ECE916A7 +:104280009CE5F90609F49FCC4DED53E161ED73E136 +:10429000E8ECEE16ECE5FE0609F488CC80CFFAECEB +:1042A000EF16FCE5FF0609F498CC4BEF53E16CE008 +:1042B00074E12BECE2162CE5F20609F477CC6FCF13 +:1042C00031EDE3163CE5F30609F49CCCB8F45EEC62 +:1042D000E5165CE5F50609F48DCC08F488CC9FEC76 +:1042E000E9169CE5F90609F48ACC6EE089E0E0ED78 +:1042F000EE16ECE5FE0609F47FCC51CFF4EDEF1697 +:10430000FCE5FF0609F484CC78F432EDE3163CE5D5 +:10431000F30609F47ACC61E088E143EDE4164CE55C +:10432000F40609F43CCC3BCF55EDE5165CE5F5060B +:1043300009F471CC8DE5E816F80609F420C92FCFF1 +:104340001F93CF93DF938091FE01807FA9F480912A +:10435000FB01882389F080913002D091FF016091A8 +:10436000F9017091FA01A091FC01B091FD01C62FF5 +:10437000C72316E0D81304C0DF91CF911F91089591 +:1043800090E0109711F0CF3F19F401968770F2CFAB +:10439000189F9001199F300D1124F901E050FE4F34 +:1043A00041814713F2CF40814613EFCF4281411143 +:1043B000ECCF438154814A1B5B0B483C510528F7E5 +:1043C0008091FE018F7080618093FE01F901EB5FA7 +:1043D000FD4F80818F708061808389EF91E00E9422 +:1043E000601ADF91CF911F910C944B0BAF92BF924B +:1043F000CF92DF92EF92FF920F931F93CF93DF93B1 +:10440000CDB7DEB761970FB6F894DEBF0FBECDBF54 +:104410008C0185E0F801DE011D9601900D928A95D0 +:10442000E1F7F801E28089EFA82E81E0B82E6091D3 +:10443000FC017091FD016115710509F432C1909183 +:10444000F9014091FA01892F84238F3F09F429C192 +:1044500020813181C380D480F090FB01F601E61BFE +:10446000F70BFF2009F4E8C08091FE01582F507F20 +:10447000E83CF10508F0ABC0511177C0FE2C4313A6 +:1044800021C092131FC0E1101DC08F708061809306 +:10449000FE01C5010E94601A8091FE01F80185832A +:1044A0008F2D61960FB6F894DEBF0FBECDBFDF91A2 +:1044B000CF911F910F91FF90EF90DF90CF90BF9021 +:1044C000AF900895CD2829F0822F83238F3F09F0E4 +:1044D00003C180E0F82FF170DF2E80FF3CC0809197 +:1044E00030024091FF0156E0841315C02D873E87AE +:1044F0008D859E850E94400F292F22952F70223096 +:10450000F0F0243018F59F70F1F0F8019581907F5C +:10451000D1F4D12C1EC090E0589FF001599FF00DAE +:104520001124E050FE4F6181361306C060812613CE +:1045300003C06281E6120FC001968770D5CF9F70CD +:1045400011F0882331F3805E883018F3C8010E948F +:10455000601AFD2CA5CFEE2009F4A2CF8091FE01B8 +:1045600081608093FE01F12C9BCF431306C0921310 +:1045700004C0F801EE2009F479C0C8010E944C0F74 +:10458000882309F1EE20F9F08091FE01803270F06D +:104590002091F9013091FA0138872F831986DB8643 +:1045A000CA868C87CE0107960E94601A86E0F801C1 +:1045B000A9EFB1E001900D928A95E1F70E94A02148 +:1045C000FF24F3946DCFC8010E94601AF9CF5111F6 +:1045D0000AC089EF91E00E94601A86E0F50111920D +:1045E0008A95E9F7C0CF43130FC092130DC0E110B5 +:1045F0000BC0F8018583C8010E94601A86E0F501AE +:1046000011928A95E9F74CCFC8010E944C0F88237C +:10461000D1F2EE20C1F28091FE01803238F2209179 +:10462000F9013091FA013A8329831B82DD82CC8221 +:104630008E83CE010196B8CFE83CF105F8F6FE2C4A +:10464000EE2009F243131FC092131DC08091FE019A +:1046500080FD10C0982F907F69F0F8018583903F0E +:1046600031F0982F907F905F8F70892B8583C801E0 +:104670000E94601A86E0F801A9EFB1E001900D9266 +:104680008A95E1F70DCFC8010E944C0F81118ECFA2 +:104690008091FE0181608093FE01C8010E94601A32 +:1046A000FFCEEE2009F48FCFC8010E944C0FF82EE8 +:1046B000882309F488CF86E0F801A9EFB1E00190E2 +:1046C0000D928A95E1F78091F9019091FA010E948B +:1046D000400F0E94A021E4CE81E08E25FBCE1F93E7 +:1046E000CF93DF93CDB7DEB767970FB6F894DEBFF1 +:1046F0000FBECDBF4B8B5C8B6D8B7E8B8F8B611117 +:10470000109233021A8A198A85E0FE017396DE013F +:104710001D9601900D928A95E1F786E0FE013D9687 +:10472000DE01179601900D928A95E1F7CE0107966A +:104730000E94F621882389F016E080913002909142 +:10474000FF01891349C067960FB6F894DEBF0FBE0C +:10475000CDBFDF91CF911F91089586E0FE0137967E +:10476000DE01119601900D928A95E1F78A859B856D +:10477000892B11F38F81988589238F3FE9F220914E +:10478000FF0130E0C90101968770992740913002FE +:104790004817190671F40E9484171092FF011092B5 +:1047A000300286E0E9EFF1E0DF011D928A95E9F73A +:1047B000C3CF96E0929FD001939FB00D1124A050DB +:1047C000BE4FFE01319601900D929A95E1F78093CC +:1047D000FF010E944B0BB0CF819FC001112480507C +:1047E0009E4F0E94F621882309F4ADCF80913002BC +:1047F00090E0019687709927809330029ECFFF92B8 +:104800000F931F93CF93DF93CDB7DEB7C45BD1096E +:104810000FB6F894DEBF0FBECDBF182F8111D7C0E1 +:10482000662309F475C0C055DF4F1882C05BD040C5 +:10483000CF54DF4F1882C15BD04011E0CE54DF4F20 +:104840001883C25BD0400E9488068160782FCD54C7 +:10485000DF4F99838883C35BD040C055DF4F4881C9 +:10486000C05BD040CF54DF4F5881C15BD040CE54A5 +:10487000DF4F6881C25BD040CC54DF4F8881C45B7E +:10488000D0400E946F23C555DF4F1882CB5AD040CD +:10489000C455DF4F1882CC5AD040C355DF4F188221 +:1048A000CD5AD0400E9488068160782FC255DF4FD4 +:1048B00099838883CE5AD040C555DF4F4881CB5A63 +:1048C000D040C455DF4F5881CC5AD040C355DF4F3C +:1048D0006881CD5AD040C155DF4F8881CF5AD04032 +:1048E0000E946F2310933F020E94880690933C021F +:1048F00080933B0281E0CC54DF4F0FB6F894DEBFCB +:104900000FBECDBFDF91CF911F910F91FF90089502 +:1049100002E0CA55DF4F0883C65AD040C955DF4F61 +:104920001882C75AD04011E0C855DF4F1883C85AC3 +:10493000D0400E9488068160782FC755DF4F998349 +:104940008883C95AD040CA55DF4F4881C65AD040E3 +:10495000C955DF4F5881C75AD040C855DF4F6881CD +:10496000C85AD040C655DF4F8881CA5AD0400E94ED +:104970006F23CF55DF4F0883C15AD040CE55DF4F4C +:104980001882C25AD040CD55DF4F1882C35AD0404A +:104990000E9488068160782FCC55DF4F99838883E9 +:1049A000C45AD040CF55DF4F4881C15AD040CE5570 +:1049B000DF4F5881C25AD040CD55DF4F6881C35A6E +:1049C000D040CB55DF4F8881C55AD04089CF813048 +:1049D00009F0C0C0662309F45FC0C456DF4F1882D7 +:1049E000CC59D040C356DF4F8883CD59D040C256F2 +:1049F000DF4F8883CE59D0400E9488068160782F8F +:104A0000C156DF4F99838883CF59D040C456DF4FBA +:104A10004881CC59D040C356DF4F5881CD59D04042 +:104A2000C256DF4F6881CE59D040C056DF4F8881D3 +:104A3000C05AD0400E946F23C956DF4F1882C75911 +:104A4000D040C856DF4F1883C859D040C756DF4FF3 +:104A50001882C959D0400E9488068160782FC656B6 +:104A6000DF4F99838883CA59D040C956DF4F4881A8 +:104A7000C759D040C856DF4F5881C859D040C75693 +:104A8000DF4F6881C959D040C556DF4F8881CB5967 +:104A9000D0400E946F232ECF02E0CE56DF4F088316 +:104AA000C259D040CD56DF4F8883C359D040CC5631 +:104AB000DF4F8883C459D0400E9488068160782FD8 +:104AC000CB56DF4F99838883C559D040CE56DF4FF0 +:104AD0004881C259D040CD56DF4F5881C359D0408C +:104AE000CC56DF4F6881C459D040CA56DF4F888109 +:104AF000C659D0400E946F23C357DF4F0883CD585B +:104B0000D040C257DF4F1883CE58D040C157DF4F37 +:104B10001882CF58D0400E9488068160782FC057F5 +:104B2000DF4F99838883C059D040C357DF4F4881F6 +:104B3000CD58D040C257DF4F5881CE58D040C157D2 +:104B4000DF4F6881CF58D040CF56DF4F8881C159A1 +:104B5000D0409FCF823009F0ABC0662309F45EC01D +:104B6000C857DF4F1882C858D040C757DF4F8883D7 +:104B7000C958D04081E0C657DF4F8883CA58D0401B +:104B80000E9488068160782FC557DF4F99838883FC +:104B9000CB58D040C857DF4F4881C858D040C7577E +:104BA000DF4F5881C958D040C657DF4F6881CA5877 +:104BB000D040C457DF4F8881CC58D0400E946F232B +:104BC000CD57DF4F1882C358D040CC57DF4F1883E2 +:104BD000C458D040CB57DF4F1882C558D0400E94F0 +:104BE00088068160782FCA57DF4F99838883C6581B +:104BF000D040CD57DF4F4881C358D040CC57DF4F0E +:104C00005881C458D040CB57DF4F6881C558D04039 +:104C1000C957DF4F8881C758D0403BCFEF968FAF41 +:104C2000EF97C158DF4F8883CF57D04081E0C058FD +:104C3000DF4F8883C058D0400E9488068160782F5B +:104C4000CF57DF4F99838883C158D040EF964FAD3F +:104C5000EF97C158DF4F5881CF57D040C058DF4F32 +:104C60006881C058D040CE57DF4F8881C258D040AD +:104C70000E946F23EA961FAFEA97EB961FAFEB9760 +:104C8000EC961FAEEC970E9488068160782FEE9616 +:104C90009FAF8EAFEE97EA964FADEA97EB965FAD7A +:104CA000EB97EC966FADEC97EE968FADEE97F1CE5D +:104CB000833009F081C0662309F43FC019E0E5960E +:104CC0001FAFE597E6961FAEE69781E0E7968FAFB8 +:104CD000E7970E9488068160782FE9969FAF8EAF94 +:104CE000E997E5964FADE597E6965FADE697E796CF +:104CF0006FADE797E9968FADE9970E946F23E09635 +:104D00001FAFE097E1961FAEE197E2961FAEE297E4 +:104D10000E9488068160782FE4969FAF8EAFE4975B +:104D2000E0964FADE097E1965FADE197E2966FAD0B +:104D3000E297E4968FADE497ACCE1BE0AB961FAF45 +:104D4000AB97AC961FAEAC9781E0AD968FAFAD97A9 +:104D50000E9488068160782FAF969FAF8EAFAF9785 +:104D6000AB964FADAB97AC965FADAC97AD966FADD4 +:104D7000AD97AF968FADAF970E946F23A6961FAFEA +:104D8000A697A7961FAEA797A8961FAEA8970E94B2 +:104D900088068160782FAA969FAF8EAFAA97A696B5 +:104DA0004FADA697A7965FADA797A8966FADA897AA +:104DB000AA968FADAA976DCE843009F081C0662384 +:104DC00009F43FC009E0A1960FAFA19711E0A296A8 +:104DD0001FAFA297A3961FAFA3970E94880681607A +:104DE000782FA5969FAF8EAFA597A1964FADA197AF +:104DF000A2965FADA297A3966FADA397A5968FAD30 +:104E0000A5970E946F236C960FAF6C976D961FAF9E +:104E10006D976E961FAE6E970E9488068160782F00 +:104E2000A0969FAF8EAFA0976C964FAD6C976D9686 +:104E30005FAD6D976E966FAD6E97A0968FADA09794 +:104E400028CE0BE067960FAF679711E068961FAF0B +:104E5000689769961FAF69970E9488068160782FCE +:104E60006B969FAF8EAF6B9767964FAD67976896BF +:104E70005FAD689769966FAD69976B968FAD6B97CD +:104E80000E946F2362960FAF629763961FAF63977E +:104E900064961FAE64970E9488068160782F66969C +:104EA0009FAF8EAF669762964FAD629763965FAD88 +:104EB000639764966FAD649766968FAD6697E9CDFC +:104EC000853009F07DC0662309F445C039E0F32E32 +:104ED0002D96FFAE2D9702E02E960FAF2E9711E084 +:104EE0002F961FAF2F970E9488068160782F6196BA +:104EF0009FAF8EAF61972D964FAD2D972E965FADDC +:104F00002E972F966FAD2F9761968FAD61970E9468 +:104F10006F232896FFAE289729960FAF29972A96D8 +:104F20001FAE2A970E9488068160782F2C969FAF2B +:104F30008EAF2C9728964FAD289729965FAD29976D +:104F40002A966FAD2A972C968FAD2C970E946F23CF +:104F500010933E02C9CC2BE0F22E2396FFAE23978E +:104F600002E024960FAF249711E025961FAF2597F6 +:104F70000E9488068160782F27969FAF8EAF279773 +:104F800023964FAD239724965FAD249725966FAD5A +:104F9000259727968FAD27970E946F23FDAE0EAF02 +:104FA0001FAE0E9488068160782F22969FAF8EAF39 +:104FB00022974DAD5EAD6FAD22968FAD2297C6CFD5 +:104FC000863009F048C0662329F199E0F92EF8AE41 +:104FD00003E009AF11E01AAF0E9488068160782FC4 +:104FE0009CAF8BAF48AD59AD6AAD8CAD0E946F23BD +:104FF000FBAA0CAB1DAA0E9488068160782F9FAB8C +:105000008EAB4BA95CA96DA98FA90E946F23109349 +:105010003D026ACC8BE0F82EFEA603E00FA711E05C +:1050200018AB0E9488068160782F9AAB89AB4EA599 +:105030005FA568A98AA90E946F23F9A60AA71BA6E3 +:105040000E9488068160782F9DA78CA749A55AA544 +:105050006BA58DA5DACF873009F041C06623F9F042 +:1050600013E01CA31DA381E08EA30E94880681602B +:10507000782F98A78FA34CA15DA16EA188A50E944F +:105080006F231F8F18A319A20E9488068160782FB2 +:105090009BA38AA34F8D58A169A18BA1FACC05E0EF +:1050A0000A8F13E01B8F81E08C8F0E94880681603D +:1050B000782F9E8F8D8F4A8D5B8D6C8D8E8D0E948B +:1050C0006F230D8B1E8B1F8A0E9488068160782FAC +:1050D000998F888F4D895E896F89898DDACC883068 +:1050E00009F008CC662301F106E0088B13E0198B68 +:1050F00081E08A8B0E9488068160782F9C8B8B8B45 +:10510000488959896A898C890E946F230B871C877B +:105110001D860E9488068160782F9F878E874B8529 +:105120005C856D858F85B5CC08E00E8313E01F8309 +:1051300081E088870E9488068160782F9A87898716 +:105140004E815F8168858A850E946F2309831A8357 +:105150001B820E9488068160782F9D838C83498101 +:105160005A816B818D8195CC1F920F920FB60F9251 +:1051700011242F933F934F935F936F937F938F935C +:105180009F93AF93BF93CF93DF93EF93FF93D09110 +:10519000E900DF708091EC00C82FC17080FDC0E88D +:1051A0001092E9008091F000877F8093F00078945E +:1051B0000E9499171092E9008091F0008860809316 +:1051C000F000CD2BCF70C093E900FF91EF91DF91FC +:1051D000CF91BF91AF919F918F917F916F915F918F +:1051E0004F913F912F910F900FBE0F901F901895E8 +:1051F0001F920F920FB60F9211242F933F934F934C +:105200005F936F937F938F939F93AF93BF93EF932E +:10521000FF938091E10082FF09C08091E20082FF4C +:1052200005C08091E1008B7F8093E1008091DA00DE +:1052300080FF24C08091D80080FF20C08091DA00D8 +:105240008E7F8093DA008091D90080FF9BC088E137 +:1052500089BD8AE189BD09B400FEFDCF81E080935C +:105260004F0380912A03811109C00E94EC040E941F +:10527000B7058091E20084608093E2008091E100B4 +:1052800080FF17C08091E20080FF13C08091E20090 +:105290008E7F8093E2008091E20080618093E20043 +:1052A0008091D80080628093D80019BC85E08093FB +:1052B0004F038091E10084FF29C08091E20084FFC8 +:1052C00025C088E189BD8AE189BD89B5982F917093 +:1052D00080FFFBCF8091D8008F7D8093D800809194 +:1052E000E1008F7E8093E1008091E2008F7E8093C9 +:1052F000E2008091E20081608093E200809150039F +:10530000882309F445C084E080934F038091E10035 +:1053100083FF27C08091E20083FF23C08091E100DA +:10532000877F8093E10082E080934F0310925003C7 +:105330008091E1008E7F8093E1008091E2008E7F7A +:105340008093E2008091E20080618093E20042E07D +:1053500060E080E00E9485058091F0008860809385 +:10536000F000FF91EF91BF91AF919F918F917F914D +:105370006F915F914F913F912F910F900FBE0F90C2 +:105380001F90189519BC10924F0310922A0376CFE4 +:105390008091E30087FD93E090934F03B7CF78941B +:1053A0001F921FB61F9211248F939F93AF93BF93A9 +:1053B0008091210390912203A0912303B0912403B3 +:1053C0000196A11DB11D8093210390932203A09308 +:1053D0002303B0932403BF91AF919F918F911F90AE +:1053E0001FBE1F9018951F921FB61F9211248F93F6 +:1053F0009F93AF93BF9380912003811113C080913D +:10540000210390912203A0912303B091240341969C +:10541000A11DB11D8093210390932203A093230328 +:10542000B0932403BF91AF919F918F911F901FBEA6 +:105430001F901895CDB7DEB7AA970FB6F894DEBFC8 +:105440000FBECDBF84B7877F84BF0FB6F894A895F1 +:1054500080916000886180936000109260000FBEB0 +:1054600080E890E00FB6F89480936100909361001B +:105470000FBE85B7806885BF85B7806885BF8DEB17 +:1054800098E09093BF018093BE010E94EC040E94BB +:10549000B7058091E20084608093E2007894809167 +:1054A0004F038823A1F01091E9001F709091EC0048 +:1054B000892F817090FD80E8182B1092E90080916F +:1054C000E80083FD0E9499171F701093E90082E0A5 +:1054D00084BD93E095BD9AEF97BD80936E000E94C6 +:1054E000730F811102C00E94A80E80EF0E94BF08B6 +:1054F00081EF0E94BF0882EF0E94BF0883EF0E94E5 +:10550000BF0803E511E06FE5E62E61E0F62ED80155 +:105510008D918D018F3F11F00E94BF08E016F106BA +:10552000B1F7109245021092440210927402109248 +:105530007302109247021092460210927602109265 +:10554000750210924902109248021092780210924D +:10555000770210924B0210924A0210927A02109235 +:1055600079020E947917811102C00E94AD1582E074 +:1055700090E00E94363180936A020E948C0F9093D3 +:105580002603809325030E941916EFE3FCE9319767 +:10559000F1F700C000000E9419168091730280FF8D +:1055A00008C06FEF7FEF90E080E00E9468310E94BA +:1055B000D10C83E090E00E94363190E00E94C60B4F +:1055C0008091590390915A030E94961480914C0245 +:1055D000811132C00E947917811104C00E94AD155B +:1055E0000E949D1588E090E00E943E316093150373 +:1055F0007093160380931703909318036E7F71F4D2 +:105600000E949D1588E090E00E943E316093150352 +:105610007093160380931703909318030E94D20689 +:10562000109292028091150380FF03C086950E941C +:10563000581481E080934C026AE871E050E6852EB0 +:1056400052E0952E28E731E0E1E8F1E041E050E05A +:105650001191812F82958F7090E0DC019196FC90E2 +:1056600091971F70E12E6A0101C0CC0C1A95EAF7E0 +:105670000C2D00950F2191960C93919792961C9169 +:1056800092971C2992961C93D901FD909D010F2D94 +:1056900002950F7010E0D8019196BC90BF2DBF709D +:1056A000FB2E6A0101C0CC0CBA95EAF7DC2CD09431 +:1056B000DB20D8019196DC9291979296DC9092979C +:1056C000DC289296DC92DC0190968C9190E002C0EE +:1056D00095958795EA94E2F78170D80190960C91A0 +:1056E00010E002C015950795FA94E2F790E000FDEE +:1056F00092E0892BD4018D934D016E177F0709F03D +:10570000A7CF86EA92E090938A028093890281E291 +:105710000E94581481E090E00E94291580E091E0F9 +:1057200090931D0380931C0380914F03FF24F394F7 +:1057300008E11AE1853009F47CC20E941916882319 +:1057400059F08FB7F8944091210350912203609152 +:105750002303709124038FBFA3E7B2E0EBE6F2E0EE +:1057600010E000E0702F8D919D91219131912817CB +:10577000390709F487C22827392760E0EE24E3942B +:10578000F12CA9014E215F21452B09F475C269A3B3 +:105790007AA39C012E213F2191E0232B09F490E074 +:1057A0009BA30E9488068160782F9DA38CA349A1AA +:1057B0005AA16BA18DA10E946F23000F111FF80148 +:1057C000E559FD4F80819181E826F926F182E0823A +:1057D000809192028823D1F180919102E09115038A +:1057E000E695E81BE0938D02823009F062C2F0E09A +:1057F000EC53FD4FE4910E2F10E041E0E42E43E125 +:10580000F42E80918E02882361F010928E020E9405 +:10581000880690938C0280938B02109290021092D3 +:105820008F020E948806E0918B02F0918C028E1B01 +:105830009F0B8F3F9F4750F4E00FF11FF0938C02B6 +:10584000E0938B028BE892E0F701099537E5E32EB0 +:1058500032E0F32E0EE412E04FE6442E41E0542EE7 +:1058600058E7652E51E0752E61E8862E61E0962E90 +:1058700070E6A72E72E0B72E212C312CD501ED91C8 +:105880005D01EE0FEE0FD4012D914D01A22FA295D7 +:10589000AF70B0E090968C9190E02F7002C095951B +:1058A00087952A95E2F781709927D3014D913D01A3 +:1058B000A42FA295AF70B0E090962C9130E04F707D +:1058C00002C0359527954A95E2F7A9014170552701 +:1058D00020FF02C042E050E0842BE82BD501119755 +:1058E000EC93D201CD902D01EF70F0E0E15AFE4F24 +:1058F0008081F7019081890F8083D12C082E000CC4 +:10590000990B20E08C159D054CF0D8018C918F5F90 +:105910008C9360E0832D0E94FF2321E0F7018081BA +:10592000082E000C990B442755274C195D09481780 +:1059300059074CF0D8018C9181508C9361E0832DF4 +:105940000E94FF2321E0F7018081082E000C990BB3 +:10595000B6010E94D730D7018D937D01222A33945E +:105960000F5F1F4FB9E03B1289CF222059F08FB74C +:10597000F894409121035091220360912303709188 +:1059800024038FBF86E0E2E8F2E0DE011196019089 +:105990000D928A95E1F7F0908402E09085021091D3 +:1059A0008602009187021092840210928502109262 +:1059B0008602109287028F2D8E2909F448C08091AB +:1059C0008002909181020E9479069C0190917C0254 +:1059D000992309F4C5C323333105C8F19F3F19F05A +:1059E0009F5F90937C02FF2059F00E9443089FEF35 +:1059F0001F140CF491E0899F802D11248093840260 +:105A0000EE2059F00E9443089FEF1E140CF491E021 +:105A1000899F802D11248093850230918402332345 +:105A2000B1F020918502222391F045EB3403C001AF +:105A30001124992309F497C19093840245EB240320 +:105A400090011124332309F492C130938502812FF0 +:105A5000802B09F448C080917E0290917F020E94C1 +:105A600079069C0190917B02992309F474C3253631 +:105A70003105C8F19F3F19F09F5F90937B0211237E +:105A800059F00E9421089FEF11160CF491E0899FB4 +:105A9000802D112480938602002359F00E94210852 +:105AA0009FEF10160CF491E0899F802D11248093B4 +:105AB0008702309186023323B1F02091870222239E +:105AC00091F045EB3403C0011124992309F453C12B +:105AD0009093860245EB240390011124332309F4AB +:105AE0004EC1309387028091840290918502892B68 +:105AF00090918602892B90918702892B11F00E9448 +:105B0000810786E0FE013196A2E8B2E001900D9295 +:105B10008A95E1F70E94C00690916902891731F0D9 +:105B20000E94C006809369020E947E1480914F03F8 +:105B3000843009F0F9CD83E08093E9008091E8009A +:105B400082FFF2CD8091E80090E085FF06C00E94C0 +:105B50000B05882309F417C191E08091E8008B7749 +:105B60008093E800992309F4DFCDE981E150E33126 +:105B700008F09DC1F0E0E851FE4C0C94EB308091B0 +:105B80004F03843009F443C080E00E947E141092D9 +:105B9000920280918802811116C0F0928802809151 +:105BA0001503982F917090934D028E7F809315036B +:105BB000BFEFE0E7F2E0B150E040F040E1F700C0B5 +:105BC00000000E94B00F1092200388E190E0A0E452 +:105BD0000FB6F894A895809360000FBEA093600064 +:105BE00083B7817F846083BF83B7816083BF7894EC +:105BF000889583B78E7F83BF0FB6F894A895809160 +:105C00006000886180936000109260000FBE8091F8 +:105C10004E03882371F00E941916E3E7F2E08191A8 +:105C20009191892B09F078C28BE792E08E179F073C +:105C3000B1F780914F03853009F4A1CF0E948417FA +:105C40000E94C0060E947E141092880280914D022C +:105C5000882359F080911503816080931503869500 +:105C60000E9458140E949A0F68CD80919302882355 +:105C7000C9F30E94B00FF6CF6F5FEE0CFF1C6C30C3 +:105C800009F07FCD0F5F1F4F0430110509F06ACD79 +:105C90008FEF8EA38FA318A60E9488068160782FAD +:105CA0009AA789A74EA15FA168A58AA50E946F2324 +:105CB0008FCD863059F4F0E0EF53FD4FE4910E2F75 +:105CC00010E031EFE32E32E1F32E9BCD893061F409 +:105CD000E695F0E0E254FD4FE4910E2F10E022E44F +:105CE000E22E22E1F22E8DCD8F3061F4E695F0E0C8 +:105CF000E554FD4FE4910E2F10E09DEEE92E91E169 +:105D0000F92E7FCD853159F4F0E0E854FD4FE49150 +:105D10000E2F10E08AE7E82E81E1F82E72CD08E21E +:105D200010E0FAEEEF2EF0E1FF2E883109F469CD94 +:105D3000833249F4E6EBF2E005911491B8E9EB2ED9 +:105D4000B2E1FB2E5ECD04EF11E0ADEAEA2EA0E158 +:105D5000FA2E843209F455CD00ED17E0E1EDEE2E78 +:105D6000E6E0FE2E4ECD81E08093840267CE81E096 +:105D7000809385026CCE81E080938602ABCE81E079 +:105D800080938702B0CE00E210E0CE0101967C0144 +:105D90008091E80085FD0AC08091E8008B778093B0 +:105DA000E8000E940B05882399F3D6CE8091F1007C +:105DB000D7018D937D010150110951F7CDCE1A8283 +:105DC00089E08B833FC08A81823009F4BBC1833074 +:105DD000A9F0813009F06BC02FB7F89460912103CE +:105DE0007091220380912303909124032FBF0E947E +:105DF000F1306B837C838D839E8324C080917302FA +:105E0000909174029827892798279C838B8380918F +:105E10007502909176029827892798279E838D8313 +:105E20008091770290917802982789279827988700 +:105E30008F838091790290917A02982789279827F9 +:105E40009A87898780914F03843009F06DCC109137 +:105E5000E9001F709091EC00892F817090FD80E81F +:105E6000182B82E08093E9008091E80080FF0DC04C +:105E700050E040E060E270E0CE0101960E943C05F7 +:105E80008091E8008E778093E8001F701093E900FE +:105E90004BCC8A81823059F46B817C818D819E81CB +:105EA0000E94F13086E290E00E944A31CBCF8FEF22 +:105EB0008983C8CF4C816B818A810E94D10E98273B +:105EC000892798279E838D83BDCFED80FE80FE2499 +:105ED000EF24FE248A810B81B8E10B9F80011124FD +:105EE000E0E68E9F000D111D11248C8190E0880F3B +:105EF000991F080F191F6F2DC80187960E944A31FC +:105F00006E2DC8018896D0CF0E943B0E9BCF8A8110 +:105F10008138C1F060F4803809F094CF20E04B81E3 +:105F200060911703809116030E9427138BCF82384C +:105F300049F1833809F086CF20E0409118036C8145 +:105F40008B81F2CF8B810E9458149B818091150325 +:105F5000911111C08E7F8093150310929202FFEF72 +:105F600020E742E0F15020404040E1F700C000004F +:105F70000E94B00F67CF81608093150386950E94C1 +:105F8000581460CF8B81809319035CCF8A8181384C +:105F900099F030F4803809F055CF8091180311CF73 +:105FA000823891F0833809F04DCF809116038B83AE +:105FB000809117038C8346CF8091150380FF02C028 +:105FC0008695FFCE80E0FDCE80911903FACE6091D8 +:105FD00015037091160380911703909118030E9486 +:105FE000151330CF80E18A832DCF84E08A8389E145 +:105FF000E8CE0A811B81102701271027CE010196C8 +:106000006C01EC80DC01AE0DB11D7D01C801895130 +:106010009C4FEC14FD0409F415CF0931B4E01B07C3 +:1060200050F40E943631F60184830F5F1F4FBFEF9B +:10603000CB1ADB0AEBCFD60114961C92F6CF0A815D +:106040001B81102701271027FE0131966F01EC807C +:10605000E00EF12EF11CC80189519C4FE016F106AB +:1060600009F4F0CE0931F4E01F0728F4D6011496A4 +:106070006C910E944A31BFEFCB1ADB0A0F5F1F4FB2 +:10608000EACF0E942B0EDECE8AE0ADCF0A811B81C3 +:10609000102701271027FE0131966F01EC80CF01F8 +:1060A0008E0D911D7C01C8018796EC14FD0409F446 +:1060B000C9CE003CA3E01A0750F40E943631F60125 +:1060C00084830F5F1F4FBFEFCB1ADB0AECCFD601E3 +:1060D00014961C92F6CF0A811B81102701271027E6 +:1060E000FE0131966F01EC80E00EF12EF11CC8012B +:1060F0008796E016F10609F4A5CE003CF3E01F07F1 +:1061000028F4D60114966C910E944A31BFEFCB1A45 +:10611000DB0A0F5F1F4FEBCF09BD19BD09B400FEAD +:10612000FDCF8091D8008F7D8093D8008091E000D2 +:1061300082608093E0008091E00081FDFCCF0E94AE +:10614000841777CD86E290E00E9436311B821C8254 +:106150001D828E8377CE2D32314008F08DCCC3CC9A +:106160002D32314008F03CCC72CC87FB082E06263D +:1061700087FD819567FD61950E9407310EF4919529 +:1061800007FC81950895AA1BBB1B51E107C0AA1FFC +:10619000BB1FA617B70710F0A61BB70B881F991FC8 +:1061A0005A95A9F780959095BC01CD01089597FB6C +:1061B000072E16F4009407D077FD09D00E94C33053 +:1061C00007FC05D03EF4909581959F4F08957095FA +:1061D00061957F4F0895EE0FFF1F0590F491E02D1C +:1061E00009946927962769277827872778270895AC +:1061F0000E94B331332312F48A1B9B0B0C9402319F +:106200000E94B331B7FF0895821B930B0895991B29 +:1062100079E004C0991F961708F0961B881F7A959D +:10622000C9F780950895FB01DC0102C005900D922D +:1062300041505040D8F70895FC014150504030F093 +:1062400001900616D1F73197CF0108958827992735 +:106250000895FB01DC0104C08D910190801921F4A7 +:1062600041505040C8F7881B990B0895F999FECF0B +:1062700092BD81BDF89A992780B50895A6E1B0E056 +:1062800044E050E00C947031A8E1B0E042E050E00E +:106290000C947031262FF999FECF92BD81BDF89AEA +:1062A000019700B4021639F01FBA20BD0FB6F8945A +:1062B000FA9AF99A0FBE08950396272F0E944B3140 +:1062C0000E944A31252F0E944B31242F0C944B31D0 +:1062D0000196272F0E944B310C944A31DC01CB01EF +:1062E000FC01F999FECF06C0F2BDE1BDF89A3196E6 +:1062F00000B40D9241505040B8F708950E94B33158 +:10630000A59F900DB49F900DA49F800D911D112409 +:106310000895B7FF0C947E310E947E31821B930B4F +:106320000895A1E21A2EAA1BBB1BFD010DC0AA1FD6 +:10633000BB1FEE1FFF1FA217B307E407F50720F0EE +:10634000A21BB30BE40BF50B661F771F881F991F69 +:106350001A9469F760957095809590959B01AC01B2 +:10636000BD01CF010895A29FB001B39FC001A39FBB +:10637000700D811D1124911DB29F700D811D11247E +:10638000911D0895F894FFCF5E0F5E0F670F670FA2 +:10639000690F670F670F670F5E0F5E0F6E0F670F56 +:1063A000670F6E0F7E18A618F918A618F918D918D5 +:1063B0001119F9180E1A1B1A3C1E3C1EB01EB01EF5 +:1063C0000E1F281F731E731E331FBD1FCE1FCE1F2F +:1063D000DF2EE32E492F5A2F652F842F872FC62FAC +:1063E000E72F572F572FF22FF52FF92F1F3041305E +:0663F000443046306B3022 +:1063F6007606910C700C6C0C680C01191A1B1C1D8E +:106406001E1F202122010201002A002A2A01818260 +:1064160083E200E900EA00B500B600B700CD0083CC +:1064260001CC008A01920194012102230224022553 +:1064360002260227022A02B300B4006F007000F0A1 +:10644600F1F2F3F5F6F700010203040537363500DD +:10645600FF0100010000FFFF0000010001FF000432 +:106466000404040404040202616264669092949730 +:106476000660636567919395960700010202020222 +:106486000606060909090909090F0F0F0F0F0F154F +:106496001515181919191919191919191923244033 +:0E64A60022B6B6019401DE00C808E108010923 +:00000001FF From 3585ae6b57230aeae85e124b46c43e1ceb00fb0a Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 11 Sep 2021 02:53:37 -0400 Subject: [PATCH 15/94] Restore files. --- .../ps17/keymaps/default/keymap.c | 365 ---- .../solartempest/ps17/keymaps/via/keymap.c | 61 - .../ps17/keymaps/via_bright/keymap.c | 332 ---- .../keymaps/{via_bright => via_fade}/config.h | 0 .../ps17/keymaps/via_fade/keymap - Copy.c | 447 +++++ .../ps17/keymaps/via_fade/keymap.c | 428 +++++ .../keymaps/{via_bright => via_fade}/rules.mk | 0 keyboards/solartempest/ps17/ps17.c | 6 - keyboards/solartempest/ps17/rules.mk | 2 - .../ps17/solartempest_ps17_via.hex | 1549 +++++++++++++++++ 10 files changed, 2424 insertions(+), 766 deletions(-) delete mode 100644 keyboards/solartempest/ps17/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/keymap.c rename keyboards/solartempest/ps17/keymaps/{via_bright => via_fade}/config.h (100%) create mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c create mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/keymap.c rename keyboards/solartempest/ps17/keymaps/{via_bright => via_fade}/rules.mk (100%) create mode 100644 keyboards/solartempest/ps17/solartempest_ps17_via.hex diff --git a/keyboards/solartempest/ps17/keymaps/default/keymap.c b/keyboards/solartempest/ps17/keymaps/default/keymap.c deleted file mode 100644 index 3dc48708a4ef..000000000000 --- a/keyboards/solartempest/ps17/keymaps/default/keymap.c +++ /dev/null @@ -1,365 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. Don't forget to update the VIA json as well. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use SAFE_RANGE when Via is disabled. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; - -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGUP, KC__MUTE, KC_PGDOWN, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, TD(TD_MINUS_NUMLOCK), - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_LEFT, KC_TRNS, KC_RIGHT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, - TO(0), KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO - ), - [_LAYER3] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_SCROLLLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 140; - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 15; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: //Photoshop custom layer (macros and keys all done in VIA) - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3) { //Underglow LEDs - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } - else if (i == 6) {rgblight_sethsv_at(148,255,perkey_brightness+15,i);} //Text - light blue - else if (i == 5) {rgblight_sethsv_at(140,255,perkey_brightness+15,i);} //New Layer - light blue - else if (i == 15) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Marquee - rose - else if (i == 9) {rgblight_sethsv_at(190,255,underglow_brightness,i);} //Underglow to match - else if (i == 13) {rgblight_sethsv_at(180,255,perkey_brightness+15,i);} //Healing Brush - purple - else if (i == 12) {rgblight_sethsv_at(185,255,perkey_brightness+15,i);} //Clone - else if (i == 11) {rgblight_sethsv_at(190,255,perkey_brightness+15,i);} //Default - else if (i == 7) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Brush - else if (i == 18) {rgblight_sethsv_at(230,255,underglow_brightness,i);} //Underglow to match - else if (i == 17) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //copy - red - else if (i == 16) {rgblight_sethsv_at(3,255,perkey_brightness+15,i);} //Paste - else if (i == 22) {rgblight_sethsv_at(5,255,perkey_brightness+15,i);} //Undo - else if (i == 21) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //Redo - else if (i == 26) {rgblight_sethsv_at(200,255,lastrow_brightness+15,i);} //Space - blue - else if (i == 24) {rgblight_sethsv_at(195,255,lastrow_brightness+15,i);} //Alt - else if (i == 20) {rgblight_sethsv_at(190,255,lastrow_brightness+15,i);} //Shift - else if (i == 27) {rgblight_sethsv_at(200,255,underglow_brightness,i);} //Underglow to match - else if (i == 10) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom in - else if (i == 19) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom out - else if (i == 25) {rgblight_sethsv_at(180,255,underglow_brightness,i);} //Underglow to match - else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c index b75dc6fc7272..c68c32710e5b 100644 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -23,19 +23,6 @@ #endif -// IDLE TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes - #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) - - //prototype functions - uint16_t get_timeout_threshold(void); - void timeout_reset_timer(void); - void timeout_update_threshold(bool increase); - void timeout_tick_timer(void); -#endif //IDLE_TIMEOUT_ENABLE - - bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; bool spam_arrow; @@ -200,49 +187,6 @@ void matrix_init_user(void) { //run when matrix is initiated, before all feature }; -// TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - static uint16_t timeout_timer = 0; - static uint16_t timeout_counter = 0; //in minute intervals - static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - - uint16_t get_timeout_threshold(void) { - return timeout_threshold; - } - - void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; - }; - - void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; - }; - - void timeout_tick_timer(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - #ifdef RGBLIGHT_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgblight_toggle_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout - } - - __attribute__((weak)) void matrix_scan_keymap(void) {} -#endif // IDLE_TIMEOUT_ENABLE - - void matrix_scan_user(void) { //run whenever user matrix is scanned if (is_alt_tab_active) { if (timer_elapsed(alt_tab_timer) > 1000) { @@ -256,11 +200,6 @@ void matrix_scan_user(void) { //run whenever user matrix is scanned //tap_code(KC_DOWN); tap_code(KC_F24); } - - #ifdef IDLE_TIMEOUT_ENABLE - timeout_tick_timer(); - matrix_scan_keymap(); - #endif // IDLE_TIMEOUT_ENABLE }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c deleted file mode 100644 index 6c422f8be38d..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c +++ /dev/null @@ -1,332 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions. Not VIA compatible. -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 100); //Set lower default brightness when connected as the right side dimming is not yet in effect - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 120; - static uint16_t perkey_brightness = 120; - static uint16_t lastrow_brightness = 30; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/config.h b/keyboards/solartempest/ps17/keymaps/via_fade/config.h similarity index 100% rename from keyboards/solartempest/ps17/keymaps/via_bright/config.h rename to keyboards/solartempest/ps17/keymaps/via_fade/config.h diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c b/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c new file mode 100644 index 000000000000..05687f34ca3b --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c @@ -0,0 +1,447 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "PS17.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +static uint16_t last_rgb; //For RGB Fade effect +static uint8_t rgb_state[RGBLED_NUM]; +#define RGB_SUSTAIN 0.8 //default 0.7 +#define RGB_HIT 0x99 + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +bool spam_arrow; +uint16_t spam_timer = false; +uint16_t spam_interval = 1000; // (1000ms == 1s) +bool teams_muted; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#endif + +#ifdef COMBO_ENABLE //Tap combos + enum combos { + kppls_7, //Hold plus and 7 to backspace + kppls_8, //Hold plus and 8 to delete + kpent_4, //Hold enter and 4 for left arrow + kpent_5, //Hold enter and 5 for down arrow + kpent_6, //Hold enter and 6 for right arrow + kpent_8, //Hold enter and 4'8 for up arrow + }; + const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; + const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; + const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; + const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; + const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; + combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE), + [kpent_4] = COMBO(kpent4_combo, KC_LEFT), + [kpent_5] = COMBO(kpent5_combo, KC_DOWN), + [kpent_6] = COMBO(kpent6_combo, KC_RGHT), + [kpent_8] = COMBO(kpent8_combo, KC_UP) + }; +#endif + +#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. + enum { + TD_MINUS_NUMLOCK, + }; + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), + }; + //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) +#endif + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_PGDOWN, KC__MUTE, KC_PGUP, + MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + KC_RIGHT, KC_TRNS, KC_LEFT, + KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, + TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RESET, + RESET, KC_TRNS + ), + [_LAYER2] = LAYOUT( + KC_RBRACKET, KC_TRNS, KC_LBRACKET, + TO(0), KC_B, KC_T, C(S(KC_N)), + KC_J, KC_S, KC_D, C(KC_MINS), + C(KC_C), C(KC_V), KC_M, + C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), + KC_SPACE, KC_LALT + ), + [_LAYER3] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), + C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, + KC_PGDOWN, KC_PGUP + ), + [_LAYER4] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_RIGHT, + C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, + KC_F13, KC_F14 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init + //For RGB fade effect + last_rgb = timer_read(); + rgblight_setrgb(0, 0, 0); + for (int i = 0; i < RGBLED_NUM; i++) { + rgb_state[i] = 0; + } + //End RGB fade effect +}; + + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { + spam_timer = timer_read(); + //tap_code(KC_UP); + //tap_code(KC_DOWN); + tap_code(KC_F24); + } + + #ifdef RGBLIGHT_ENABLE + // Animate the ripple effect at 50Hz (20ms interval): + if (timer_elapsed(last_rgb) > 20) { + last_rgb = timer_read(); + + uint8_t next_rgb_state[RGBLED_NUM]; + for (int i = 0; i < RGBLED_NUM; i++) { + // Retain some: + next_rgb_state[i] = rgb_state[i] * RGB_SUSTAIN; + } + // Assign the new state: + for (int i = 0; i < RGBLED_NUM; i++) { + rgb_state[i] = next_rgb_state[i]; + led[i].b = rgb_state[i]; + } + rgblight_set(); + } + #endif //RGBLIGHT_ENABLE + +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +/* #ifdef RGBLIGHT_ENABLE //For RGB fade + if (record->event.pressed) { + // Bump the level of the LED that corresponds to this key. + keypos_t key = record->event.key; + + int i = 0; + i=26; + rgb_state[i] = RGB_HIT; + } + #endif*/ + + + switch (keycode) { //For keycode overrides + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case SPAMARROW: // Moves arrow up and down + if (record->event.pressed) { + spam_arrow ^= 1; + spam_timer = timer_read(); + if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on + rgblight_sethsv_at(15,255,120,24); + rgblight_sethsv_at(15,255,120,25); + rgblight_sethsv_at(15,255,120,26); + rgblight_sethsv_at(15,255,120,27); + } + else { + rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer + rgblight_sethsv_at(180,255,120,25); + rgblight_sethsv_at(180,255,120,26); + rgblight_sethsv_at(180,255,120,27); + } + } + return false; + + case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour + if (record->event.pressed) { + register_code(KC_LCTRL); + register_code(KC_LSFT); + register_code(KC_M); + unregister_code(KC_M); + unregister_code(KC_LSFT); + unregister_code(KC_LCTRL); + teams_muted ^= 1; + if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted + rgblight_sethsv_at(15,255,120,18); + rgblight_sethsv_at(15,255,120,22); + } + else { + rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer + rgblight_sethsv_at(175,255,120,22); + } + } + return true; + } + return true; +} + + +// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) +const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_layer4_layer +); + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_layers = my_rgb_layers;// Enable the LED layers + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + layer_move(0); //start on layer 0 to get the lighting activated + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + + // This is what the LED layout is. + // 1, 0, + // 3, 2, + // 9, 8, 7, 6, 5, 4, + // 13, 12, 11, 10, + // 18, 17, 16, 15, 14, + // 22, 21, 20, 19, + // 27, 26, 25, 24, 23 + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,100); + break; + case 1: + rgblight_sethsv_noeeprom(5,255,100); + break; + case 2: + break; + case 3: + rgblight_sethsv_noeeprom(215,255,100); + break; + case 4: + rgblight_sethsv_noeeprom(15,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + } + return state; + }; +#endif + + +bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality + #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap + if (index == 0) { // First encoder + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); + + rgb_state[24] = RGB_HIT; + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); + + rgb_state[26] = RGB_HIT; + } + } + /*if (clockwise) { //This code only works for single keypresses with the rotary encoder + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA + }*/ + #endif + return true; +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c b/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c new file mode 100644 index 000000000000..94e4d9be467c --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c @@ -0,0 +1,428 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "PS17.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + + +bool is_encoder_rotate = false; // For encoder animated LEDs +bool encoder_effect = false; +uint16_t encoder_timer = 0; +uint16_t encoder_interval = 500; + + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +bool spam_arrow; +uint16_t spam_timer = false; +uint16_t spam_interval = 1000; // (1000ms == 1s) +bool teams_muted; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. + TEAMSMUTE //MS Teams mute shortcut and simple LED status + }; +#endif + +#ifdef COMBO_ENABLE //Tap combos + enum combos { + kppls_7, //Hold plus and 7 to backspace + kppls_8, //Hold plus and 8 to delete + kpent_4, //Hold enter and 4 for left arrow + kpent_5, //Hold enter and 5 for down arrow + kpent_6, //Hold enter and 6 for right arrow + kpent_8, //Hold enter and 4'8 for up arrow + }; + const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; + const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; + const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; + const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; + const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; + combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE), + [kpent_4] = COMBO(kpent4_combo, KC_LEFT), + [kpent_5] = COMBO(kpent5_combo, KC_DOWN), + [kpent_6] = COMBO(kpent6_combo, KC_RGHT), + [kpent_8] = COMBO(kpent8_combo, KC_UP) + }; +#endif + +#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. + enum { + TD_MINUS_NUMLOCK, + }; + qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), + }; + //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) +#endif + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + KC_PGDOWN, KC__MUTE, KC_PGUP, + MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + KC_RIGHT, KC_TRNS, KC_LEFT, + KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, + TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, RESET, + RESET, KC_TRNS + ), + [_LAYER2] = LAYOUT( + KC_RBRACKET, KC_TRNS, KC_LBRACKET, + TO(0), KC_B, KC_T, C(S(KC_N)), + KC_J, KC_S, KC_D, C(KC_MINS), + C(KC_C), C(KC_V), KC_M, + C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), + KC_SPACE, KC_LALT + ), + [_LAYER3] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), + C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), + KC_LEFT, KC_DOWN, KC_RIGHT, + KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, + KC_PGDOWN, KC_PGUP + ), + [_LAYER4] = LAYOUT( + ATABF, KC_TRNS, ATABR, + TO(0), KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_RIGHT, + C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, + KC_F13, KC_F14 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { + spam_timer = timer_read(); + tap_code(KC_F24); + //tap_code(KC_UP); + //tap_code(KC_DOWN); + } + + #ifdef RGBLIGHT_ENABLE + if (!encoder_effect && is_encoder_rotate) { //Turn on the effect + rgblight_set_effect_range(5, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder_rotate = false; + encoder_effect = true; + } else if (!is_encoder_rotate && timer_elapsed(encoder_timer) > encoder_interval) { //Turn off the effect + rgblight_set_effect_range(0, 27); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + is_encoder_rotate = false; + encoder_effect = false; + } else { + is_encoder_rotate = false; //Wait until encoder is turned again + } + #endif +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { //For keycode overrides + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case SPAMARROW: // Moves arrow up and down + if (record->event.pressed) { + spam_arrow ^= 1; + spam_timer = timer_read(); + if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on + rgblight_sethsv_at(15,255,120,24); + rgblight_sethsv_at(15,255,120,25); + rgblight_sethsv_at(15,255,120,26); + rgblight_sethsv_at(15,255,120,27); + } + else { + rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer + rgblight_sethsv_at(180,255,120,25); + rgblight_sethsv_at(180,255,120,26); + rgblight_sethsv_at(180,255,120,27); + } + } + return false; + + case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour + if (record->event.pressed) { + register_code(KC_LCTRL); + register_code(KC_LSFT); + register_code(KC_M); + unregister_code(KC_M); + unregister_code(KC_LSFT); + unregister_code(KC_LCTRL); + teams_muted ^= 1; + if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted + rgblight_sethsv_at(15,255,120,18); + rgblight_sethsv_at(15,255,120,22); + } + else { + rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer + rgblight_sethsv_at(175,255,120,22); + } + } + return true; + } + return true; +} + + +// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) +const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) +const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_layer4_layer +); + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE + rgblight_layers = my_rgb_layers;// Enable the LED layers + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + layer_move(0); //start on layer 0 to get the lighting activated + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + + // This is what the LED layout is. + // 1, 0, + // 3, 2, + // 9, 8, 7, 6, 5, 4, + // 13, 12, 11, 10, + // 18, 17, 16, 15, 14, + // 22, 21, 20, 19, + // 27, 26, 25, 24, 23 + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,100); + break; + case 1: + rgblight_sethsv_noeeprom(5,255,100); + break; + case 2: + break; + case 3: + rgblight_sethsv_noeeprom(215,255,100); + break; + case 4: + rgblight_sethsv_noeeprom(15,255,100); + /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare + rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + };*/ + break; + } + return state; + }; +#endif + + +bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality + #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap + if (index == 0) { // First encoder + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); + + is_encoder_rotate = true; + encoder_timer = timer_read(); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); + + is_encoder_rotate = true; + encoder_timer = timer_read(); + } + } + /*if (clockwise) { //This code only works for single keypresses with the rotary encoder + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA + }*/ + #endif + return true; +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk b/keyboards/solartempest/ps17/keymaps/via_fade/rules.mk similarity index 100% rename from keyboards/solartempest/ps17/keymaps/via_bright/rules.mk rename to keyboards/solartempest/ps17/keymaps/via_fade/rules.mk diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c index 54ae3f8ab053..b310548fcdbf 100644 --- a/keyboards/solartempest/ps17/ps17.c +++ b/keyboards/solartempest/ps17/ps17.c @@ -17,7 +17,6 @@ */ #include "ps17.h" - bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap if (index == 0) { // First encoder @@ -30,11 +29,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functio action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); } } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ #endif return true; } diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk index 0b5dd1c97afa..35a150e0997b 100644 --- a/keyboards/solartempest/ps17/rules.mk +++ b/keyboards/solartempest/ps17/rules.mk @@ -21,5 +21,3 @@ ENCODER_ENABLE = yes # For encoder LTO_ENABLE = yes # Reduce firmware size COMBO_ENABLE = yes # Combos TAP_DANCE_ENABLE = no # Tap dance - -IDLE_TIMEOUT_ENABLE = yes # Turn LEDs off after inactive time diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex new file mode 100644 index 000000000000..c4de00dc7f90 --- /dev/null +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -0,0 +1,1549 @@ +:100000000C94BD030C9404040C9404040C94040498 +:100010000C9404040C9404040C9404040C94040440 +:100020000C9404040C9404040C9478270C94342746 +:100030000C9473280C9404040C9404040C9404048D +:100040000C9404040C9404040C9404040C94040410 +:100050000C9404040C944F280C9404040C94040491 +:100060000C9404040C9404040C9404040C940404F0 +:100070000C9404040C9404040C9404040C940404E0 +:100080000C9404040C9404040C9404040C940404D0 +:100090000C9404040C9404040C9404040C940404C0 +:1000A0000C9404040C9404040C94040400000FFF4A +:1000B00078FF000000000000D7FF78FF000000007C +:1000C000000080FF64FF00000000000005FF78FFD3 +:1000D0000000000000005FFF5AFF00000000580011 +:1000E0006000000058005E00000058005D00000045 +:1000F00058005C00000057006000000057005F00DF +:10010000000005010902A10185020901A1000509FC +:1001100019012908150025019508750181020501BD +:10012000093009311581257F950275088106093846 +:100130001581257F950175088106050C0A38021581 +:1001400081257F950175088106C0C005010980A140 +:1001500001850319012AB700150126B7009501751D +:10016000108100C0050C0901A101850419012AA014 +:1001700002150126A002950175108100C005010934 +:1001800006A1018505050719E029E7150025019558 +:1001900008750181020507190029EF150025019551 +:1001A000F075018102050819012905950575019170 +:1001B00002950175039101C00660FF0961A1010963 +:1001C00062150026FF00952075088102096315005D +:1001D00026FF00952075089102C005010906A101BE +:1001E000050719E029E71500250195087501810229 +:1001F0009501750881010507190029FF150026FFE3 +:1002000000950675088100050819012905950575F1 +:10021000019102950175039101C0000000000000EA +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000007E0F31 +:1002400000D4FFFFFFC7000000780000000000009E +:1002500000002A2B28000000000000000000000021 +:10026000000000000029000000002C1E3420212284 +:1002700024342627252E362D3738271E1F202122ED +:10028000232425263333362E37381F040506070866 +:10029000090A0B0C0D0E0F10111213141516171856 +:1002A000191A1B1C1D2F3130232D35040506070894 +:1002B000090A0B0C0D0E0F10111213141516171836 +:1002C000191A1B1C1D2F3130354CD400CA00C00038 +:1002D000B600AC00000000047F3F1F64321464329B +:1002E00014783C1E1E140A050001010101010101E0 +:1002F00001010202020202020202020303030303DB +:1003000003030304040404040404050505050506A9 +:100310000606060607070707070808080809090967 +:10032000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E10 +:100330000F0F0F10101111111212131314141515A1 +:1003400016161717181819191A1A1B1B1C1D1D1E13 +:100350001E1F202021222223242425262627282967 +:10036000292A2B2C2D2D2E2F303132323334353695 +:100370003738393A3B3C3D3E3F4041424344454695 +:100380004748494A4C4D4E4F505153545556585971 +:100390005A5B5D5E5F616264656668696B6C6D6F18 +:1003A0007072737577787A7B7D7E8082838587888B +:1003B0008A8C8E8F91939596989A9C9EA0A2A3A5C5 +:1003C000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6C6 +:1003D000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EB82 +:1003E000EEF0F3F5F8FAFDFFFFAA7F554008070687 +:1003F000050D0C0B0A11100F161514131A181B12E9 +:100400000903010002040E17192223252628292A90 +:100410002C2D2F3032333536383A3B3D3E40424367 +:100420004547494A4C4E5051535557595A5C5E60A6 +:1004300062646668696B6D6F71737577797B7D7FB8 +:1004400081838587898A8C8E90929496989A9C9EB7 +:100450009FA1A3A5A7A8AAACAEAFB1B3B4B6B8B9D3 +:10046000BBBCBEBFC1C2C3C5C6C7C9CACBCCCDCE3B +:10047000D0D1D2D2D3D4D5D6D7D7D8D9D9DADADB1E +:10048000DBDBDCDCDCDCDCDDDDDDDDDCDCDCDCDCAA +:10049000DBDBDBDADAD9D9D8D7D7D6D5D4D3D2D2E9 +:1004A000D1D0CECDCCCBCAC9C7C6C5C3C2C1BFBED1 +:1004B000BCBBB9B8B6B4B3B1AFAEACAAA8A7A5A33C +:1004C000A19F9E9C9A98969492908E8C8A898785FB +:1004D00083817F7D7B79777573716F6D6B696866DA +:1004E0006462605E5C5A5957555351504E4C4A49AC +:1004F00047454342403E3D3B3A3836353332302F54 +:100500002D2C2A2928262523224E007F004B00006F +:100510000001515400550056005F00600061005713 +:10052000005C005D005E00000059005A005B00584E +:100530000062000000630000004F00010050000056 +:10054000000100AD002C0053001450025303532A45 +:100550000001000100010000000100010001000095 +:100560005C005C000001000000300001002F000072 +:100570000010500500170011030D00160007002D94 +:1005800001060119011000000011011D03E10057CF +:10059000012C000000E2000000805F0100815F008C +:1005A000001050B9004A0017012B0352002B011A0A +:1005B00001500051004F000000B6002C00B7002889 +:1005C000004E0000004B000000805F0100815F00D2 +:1005D0000010500100010001000100520001000163 +:1005E00000500051004F00000010033D080100536F +:1005F0000068000000690000000100010001000027 +:1006000000010001000100010001000100010001E2 +:1006100000010001000100000001000100010001D3 +:1006200000010000000100000001000100010000C5 +:1006300000010001000100010001000100010001B2 +:1006400000010001000100000001000100010001A3 +:100650000001000000010000000100010001000095 +:100660000001000100010001000100010001000182 +:100670000001000100010000000100010001000173 +:100680000001000000010000000100010001000065 +:100690000001000100010001000100010001000152 +:1006A0000001000100010000000100010001000143 +:1006B0000001000000010000000100010001000035 +:1006C0000001000100010001000100010001000122 +:1006D0000001000100010000000100010001000113 +:1006E00000010000000100000009025B000301009E +:1006F000A0FA090400000103010100092111010011 +:10070000012240000705810308000A0904010002D4 +:1007100003000000092111010001222200070582C7 +:100720000320000107050303200001090402000162 +:100730000300000009211101000122B60007058411 +:100740000320000A12010002000000084B411500BE +:100750000200010200010A0350005300310037007B +:1007600000001203410054004C0041004E005400B0 +:100770004900530000000403090411241FBECFEFF9 +:10078000DAE0DEBFCDBF04B603FE27C0809196033A +:1007900090919703A0919803B09199038730904B63 +:1007A000A740B04BD1F41092960310929703109289 +:1007B00098031092990314BE84B7877F84BF0FB645 +:1007C000F894A895809160008861809360001092F1 +:1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 +:1007E000E6EEFFE502C005900D92A43CB107D9F7F3 +:1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 +:100800000E949A280C94BA2F0C940000E8EDF0E0B6 +:1008100080818E7F80831092E2001092DA00109225 +:10082000E100A0EEB0E08C9181608C9380818F77A5 +:10083000808319BCA7EDB0E08C918E7F8C93808172 +:100840008F7E80831092090308952091E4003091F7 +:10085000E50095E6A9012091EC00822F817020FF30 +:1008600006C08091E80080FF06C080E008952091D6 +:10087000E80022FD1AC080912E03882389F085307C +:1008800089F08091EB0085FD0FC02091E40030914C +:10089000E50042175307F9F29150E1F684E008951C +:1008A00082E0089583E0089581E00895EF92FF9239 +:1008B0000F931F93CF937C018B010E942504C82FB7 +:1008C000811117C08091E80085FD0BC08091E80080 +:1008D0008E778093E8000E942504882399F3C82F1F +:1008E00008C0F70181917F018093F1000150110947 +:1008F00049F78C2FCF911F910F91FF90EF900895A2 +:100900008091300387FF13C08091E80082FF06C00A +:100910008091E8008B778093E80004C080912E03DB +:100920008111F2CF089580912E038823D9F380910D +:10093000E80080FFF8CF8091E8008E77ECCF982F09 +:100940009093E900242F762F50E0891731F07091B1 +:10095000EC002091ED005091F00021FD07C09F5F59 +:10096000973071F78093E90081E008953091EB00B2 +:100970003E7F3093EB003091ED003D7F3093ED00F2 +:100980003091EB0031603093EB007093EC002093DA +:10099000ED005093F0002091EE0027FDE0CF80E0C5 +:1009A0000895CF92DF92EF92FF920F931F93CF9310 +:1009B000DF93C8EDD0E088818F7E8883E7EDF0E09B +:1009C00080818160808384E082BF81E0809309031D +:1009D00088818E7F888302EE10E0F80110821092E9 +:1009E000DA0081EEC82ED12CF601108288818F7733 +:1009F000888388818068888388818F7D888319BCFB +:100A000010922E0310922F0310922D0310922C039C +:100A100090EEE92EF12CF70180818B7F8083888115 +:100A20008160888342E060E080E00E949F04F601DC +:100A300080818E7F8083F8018081816080838081C6 +:100A400088608083F70180818E7F808388818061C8 +:100A50008883DF91CF911F910F91FF90EF90DF90EE +:100A6000CF900895FC01809136039091370386174B +:100A70009707A0F06115710529F49091E8009E7721 +:100A80009093E80090E06115710551F4911108C050 +:100A90008091E80082FF34C080E00895BC01F2CF6D +:100AA00080912E038823C1F18530C1F18091E80047 +:100AB00083FD30C08091E80082FDEACF8091E8009C +:100AC00080FFE1CF8091F3002091F200382F611573 +:100AD000710519F02830310558F091E028303105C2 +:100AE00009F090E02091E8002E772093E800CBCF2A +:100AF00081918093F100615071092F5F3F4FE7CFE3 +:100B000080912E03882341F0853041F08091E800E8 +:100B100083FFBECF81E0089582E0089583E00895C9 +:100B200080910B0308959C014FB7F89480910003C6 +:100B300090910103A0910203B09103034FBF821B68 +:100B4000930B08952FB7F8948091000390910103BF +:100B5000A0910203B09103032FBF08952091FD02DD +:100B60003091FE022817390771F09093FE028093AE +:100B7000FD02E091FB02F091FC02309721F000842D +:100B8000F185E02D099408952091F9023091FA023F +:100B90002817390771F09093FA028093F902E091D7 +:100BA000FB02F091FC02309721F00680F781E02DE6 +:100BB00009940895E091FB02F091FC02309721F036 +:100BC0000190F081E02D099480E00895DC016091AE +:100BD000F5028091F602962F891301C00895292FFE +:100BE00030E0F901EE0FFF1FE351FD4F40815181CD +:100BF0004A175B07A1F487E08A9FA0018B9F500DE5 +:100C00001124485E5E4F81E0FA0184839613E6CF9B +:100C10002F5F3F4F237033272093F50208952F5FF6 +:100C20003F4F922F9370D8CF10928A021092890270 +:100C3000E8E1F1E08581811102C0148216823796C5 +:100C400081E0E234F807B1F70895FA01811101C09B +:100C5000FB010994089580918E03982F9E7F61F483 +:100C60008170826080938E0380919103853B18F0A0 +:100C700084EB8093910308958A34B0F38170886483 +:100C8000F1CFAF92BF92DF92EF92FF920F931F933B +:100C9000CF93DF93182F062FE901453B08F044EB73 +:100CA000E42FF0E0E851FD4F011110C0E4915E2FF8 +:100CB0004E2F4983E8835A83DF91CF911F910F9183 +:100CC000FF90EF90DF90BF90AF900895202F30E01D +:100CD0004491D42EE42EF12C56E0159FC00111242E +:100CE000EFEFF0E0BF010E94BB2E812F90E0880F54 +:100CF000991F55E5569FD001579FB00D11248A1BAF +:100D00009B0B982F990F890F5F01A21AB30AAE9C13 +:100D1000D001AF9CB00DBE9CB00D11245B2F089F7D +:100D200080011124012F11275F01A01AB10AAE9C86 +:100D30008001AF9C100DBE9C100D11245F01A81AFC +:100D4000B108A29EC001A39E900DB29E900D1124E9 +:100D5000892F9927E81BF90BEE9DC001EF9D900D9F +:100D6000FE9D900D1124E92F62307105A1F050F421 +:100D70006115710509F49DCF6130710581F0EB2F8C +:100D8000512F97CF6430710569F080F0663071059E +:100D900009F48FCFF4CFE42F4B2F592F8ACFE42FB4 +:100DA000412F87CFEB2F542F492F83CF4B2F5D2D12 +:100DB000E12F7FCF0E94A2059C0190917602809145 +:100DC0007702982B21F03093730220937202909156 +:100DD000780280917902982B21F030937102209350 +:100DE0007002E091FB02F091FC02309749F082E042 +:100DF000809374020480F581E02D84E792E00994E9 +:100E0000089540917602803F59F48091770287FFE0 +:100E10000DC01092770241110BC010926E0208C0F3 +:100E2000813F81F48091770218169CF3442381F06E +:100E30008091780290917902892B09F05AC0109222 +:100E40006D020895823F49F447FFF0CF1092760279 +:100E5000809177028111ECCFE0CF833F19F4141613 +:100E6000ACF3E4CF90917802893F29F41916F4F697 +:100E700010927802DBCF8A3F19F497FFD7CFF8CFD3 +:100E8000909179028B3F29F497FFD0CF109279028D +:100E9000CDCF8C3F19F41916CCF3C8CF9CE0980F36 +:100EA000953090F4845F990B21E030E0B90102C0E5 +:100EB000660F771F8A95E2F7CB01809590917502B6 +:100EC000892380937502B2CF8D3F31F480916F02F8 +:100ED0008E7F80936F02AACF8E3F21F480916F02A4 +:100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D +:100EF000F0CF089580916F0280FD16C081FD16C06D +:100F000082FD16C080916D028823A1F0883280F4A2 +:100F100028E0829FC001112468E270E00E94CF2E79 +:100F2000862F672B39F0089582E0089584E00895B4 +:100F300088E0089581E0089580916F0280FD14C0DB +:100F400081FD14C082FD16C080916E02882381F05D +:100F5000843180F422E3829FC001112464E170E0B7 +:100F60000E94CF2E862F08958CE0089589E1089580 +:100F700085E0089582E30895803F31F40E949C0744 +:100F80008195809377020895813F19F40E949C0710 +:100F9000F8CF823F31F40E949C07819580937602BE +:100FA0000895833F19F40E949C07F8CF893F29F4E4 +:100FB0000E947A078093780208958A3F21F40E9464 +:100FC0007A078195F7CF8B3F31F40E947A0781959C +:100FD0008093790208958C3F19F40E947A07F8CF24 +:100FE0009CE0980F953070F4845F990B21E030E01D +:100FF00001C0220F8A95EAF780917502822B8093B7 +:10100000750208958D3F31F480916F028160809365 +:101010006F0208958E3F21F480916F028260F7CFB6 +:101020008F3FB9F780916F028460F1CF80E008951F +:10103000F894E82FE295EF70F0E031A1282F2F709F +:1010400081E090E001C0880F2A95EAF7982F9095EB +:10105000932391A392A1892B82A3789408959091D0 +:10106000040392FF06C0282F28712830F9F4877FE7 +:10107000846093FF06C0282F28712831F1F4877E01 +:1010800084612091050320FF06C0382F3871383065 +:10109000D9F4877F816021FF06C0282F287128316D +:1010A000D1F4877E816194FD877E0895282F247175 +:1010B0002430F9F68B7F8860DCCF282F247124310F +:1010C00001F78B7E8861DDCF382F3171313019F710 +:1010D0008E7F8860E0CF282F2171213121F78E7E0D +:1010E0008861E1CFCF93DF93EC0182389105A9F1BC +:1010F000D8F58133910509F496C048F589329105F8 +:1011000009F48AC08A9709F495C0C11521E5D20770 +:1011100008F0BCC0C11530E5D30708F014C1C83EC3 +:10112000D10508F09CC0C03ED10560F5C83AD10594 +:1011300008F087C0C53AD10508F0FDC0C130D1051F +:1011400009F12097F9F0C430D105E0F440C08533AF +:10115000910509F45AC0C997C1F6809104038370C0 +:1011600089F0C0EED0E00EC0833E910599F170F495 +:10117000803E910501F1823E910539F6809104038C +:1011800082FD21C0CE01DF91CF910895863E910569 +:1011900061F1873E910571F1843E910509F0B5CF6B +:1011A0008091050381FFEECF80910403C7EED0E06C +:1011B00084FD0DC0E7CF8091040380FD12C19091A2 +:1011C000050390FFDFCFC3EED0E084FFDBCFD0E09C +:1011D000C0E0D8CF8091040382FD06C19091050341 +:1011E00090FDBFCF84FFCECFF2CF8091040383FD6B +:1011F000DDCFC8CF8091040383FDF9C09091050332 +:1012000091FFF0CFC4EED0E0BDCF8091040385FF05 +:10121000B9CFC9E2D0E0B6CF8091040385FFB2CF49 +:10122000C5E3D0E0AFCF8091040386FFABCFCAE225 +:10123000D0E0A8CF8091040386FFA4CFC1E3D0E023 +:10124000A1CFCF3BD10518F6C85AD0E0CC0FDD1F97 +:10125000C95BDE4F0990D881C02DD46493CFC115EE +:1012600040E2D40758F4C11581E0D80708F08ACFCE +:10127000C03FD10508F4ABCFD06584CFC11590E451 +:10128000D90708F4A4CFDF70D06A7CCFC11525E55B +:10129000D20700F5C11534E5D30708F08AC0C1159F +:1012A00043E5D40708F071C0C11582E5D80708F4FA +:1012B00067C0CE018370992721E030E002C0220F81 +:1012C000331F8A95E2F7C695C69580E2C89FE00174 +:1012D000112452C0C11599E5D907A8F4C11528E514 +:1012E000D20708F06BC0C11536E5D30708F06FCF01 +:1012F0008C2F0E942F08C82FD0E0DC2FCC27CC27C2 +:10130000DF71D0623FCFC1154AE5D40708F45BC056 +:10131000CE0190568115904208F059CF8D2F8F71D4 +:101320000E942F0890E0982F882788279F719C01A2 +:101330002C2BE901E6CFC55AD0E0CC5BDE4FC8814B +:10134000D0E0D0641FCFCE01E4E096958795EA9572 +:10135000E1F783702C2F26952695237040E2249F79 +:1013600090011124382B8C2F8370C1E0D0E002C093 +:10137000CC0FDD1F8A95E2F7C22BD32BDC6802CF9E +:10138000DC2FCC27C16FD06AFDCECE0183709927A8 +:1013900021E030E002C0220F331F8A95E2F7C695A4 +:1013A000C69590E2C99FE0011124C22BD32BDA68C5 +:1013B000E9CEDC2FCC27C46FD06AE4CEDC2FCC275B +:1013C000C06FD06ADFCE8C2F8F700E942F0834E060 +:1013D000D695C7953A95E1F7CF709C2FEC01D0696F +:1013E000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EEB9 +:1013F000D0E0C8CE80914402811110924402089539 +:101400008091430290914202892B90914102892B55 +:101410008093C601909144029923A1F0892B809377 +:10142000C60180914301882341F18091040387FF25 +:1014300024C08EE1E8ECF1E090E0815000F59111DC +:101440000E94FA09E091FB02F091FC023097E1F072 +:1014500080914301882359F08091040387FF07C0DE +:101460008091C6018093C70185E08093C601028008 +:10147000F381E02D86EC91E0099486E0DBCF2191A9 +:101480002223D9F29F5FD9CF0895909143019923E8 +:10149000D1F09091040397FF16C0E82FE695E695EA +:1014A000E695EE31E0F4F0E0EA53FE4F282F277086 +:1014B00081E090E001C0880F2A95EAF7809592813B +:1014C000892382830895E8ECF1E09191891303C0A8 +:1014D000DF0111971C9291E0EE3CF907B1F70895F6 +:1014E000909143019923C1F09091040397FF14C098 +:1014F000E82FE695E695E695EE31F8F4F0E0EA534C +:10150000FE4F877021E030E001C0220F8A95EAF794 +:101510008281822B82830895A8ECB1E0EFEF90E006 +:101520002D91821751F0EF3F19F4211101C0E92FDD +:101530009F5F9630A9F7EF3F09F408950E2E000C37 +:10154000FF0BEA53FE4FE6CF80913F029091FE01E0 +:10155000981301C008958F5F8770FACF990F990F84 +:10156000890F982F977086958695869524E0829F9F +:10157000F0011124E651FE4F50E040E080E021915F +:1015800030E0092E02C0369527950A94E2F72170C3 +:101590003327042E01C0220F0A94EAF7822B4F5FF3 +:1015A0005F4F4430510559F70895990F990F890FEE +:1015B000982F977041E001C0440F9A95EAF78695FD +:1015C0008695869594E0899FF0011124E651FE4F9F +:1015D00030E020E070E05191DF011197CB01022E45 +:1015E00002C0969587950A94E2F7817081958527C8 +:1015F000842385278C932F5F3F4F2430310559F783 +:10160000089590E080E00E94C40590E080E00E9490 +:10161000AE0510924202109241020E94000A86E03A +:10162000E4E7F2E0DF011D928A95E9F710926E027D +:1016300010926D0210926F020C94DA06909346029B +:10164000809345020C94010B882341F08095909182 +:1016500042028923809342020C94000A0895882351 +:1016600039F090914202982B909342020C94000A18 +:101670000895882341F080959091430289238093B7 +:1016800043020C94000A0895882339F09091430294 +:10169000982B909343020C94000A0895882309F430 +:1016A00059C0823871F40E94DA0581FF53C089E382 +:1016B0000E94700A0E94000A89E30E94450A0C9465 +:1016C000000A833859F40E94DA0580FF43C083E59D +:1016D0000E94700A0E94000A83E5EFCF843859F413 +:1016E0000E94DA0582FF36C087E40E94700A0E94D9 +:1016F000000A87E4E2CF9CEF980F913AF0F290E273 +:10170000980F983088F4877021E030E0A90102C07A +:10171000440F551F8A95E2F7CA01809590914302C4 +:10172000892380934302CBCF9BE5980F933020F41D +:1017300090E080E00C94C40598E5980F973120F470 +:1017400090E080E00C94AE05803F20F00E940107FD +:101750000C94DA060895809580FF08C0589A81FF9E +:1017600007C05D9A82FF06C05C9A08955898F7CF2B +:101770005D98F8CF5C98089590912E03943029F5E8 +:101780008093060370930803609307039093E90026 +:101790008FEF9091E800815095FD06C095ED9A95E8 +:1017A000F1F700008111F5CF8091E80085FF0DC0B1 +:1017B00050E040E063E070E086E093E00E94560471 +:1017C0008091E8008E778093E8000895BC0184E062 +:1017D0000C94BC0BBC0183E00C94BC0B9C0184E01A +:1017E0008093E9009FEF8091E800915085FD06C04D +:1017F00085ED8A95F1F700009111F5CF8091E80011 +:1018000085FF0CC050E040E066E070E0C9010E9436 +:1018100056048091E8008E778093E8000895CF9376 +:10182000DF93EC01809143018823B1F1809104039F +:1018300087FF32C060E284E08093E9008FEF9091EF +:10184000E800815095FD06C095ED9A95F1F70000EE +:101850008111F5CF8091E80085FF1BC08091430185 +:1018600070E050E040E0811104C050E040E068E0EA +:1018700070E0CE010E9456048091E8008E7780933C +:10188000E80080E2FE01ACE0B3E001900D928A95A1 +:10189000E1F7DF91CF91089568E081E0CDCF81E05D +:1018A0008093E00080E28093D8001092C9008FE11D +:1018B0009EE40197F1F700C0000087E090EBDC01A7 +:1018C0008093960390939703A0939803B093990302 +:1018D00088E19CE00FB6F894A895809360000FBE55 +:1018E00090936000FFCFCF93C82F882309F4AEC038 +:1018F0008238C1F40E94DA0581FDA8C089E30E9404 +:10190000700A0E94000A2FEF81EE94E0215080407F +:101910009040E1F700C0000089E30E94450ACF91A2 +:101920000C94000A8338A1F40E94DA0580FD8EC071 +:1019300083E50E94700A0E94000A2FEF81EE94E076 +:10194000215080409040E1F700C0000083E5E5CFE2 +:101950008438A1F40E94DA0582FD78C087E40E94F1 +:10196000700A0E94000A2FEF81EE94E0215080401F +:101970009040E1F700C0000087E4CFCF8CEF8C0FE0 +:10198000813A88F580914301882301F18091040315 +:1019900087FF1CC0EC2FE695E695E695F0E0EA534C +:1019A000FE4F828190E04C2F477021E030E002C072 +:1019B000220F331F4A95E2F782239323892B79F074 +:1019C0008C2F0E94450A0E94000A09C0E8ECF1E051 +:1019D0008191C817A9F321E0EE3CF207C9F78C2FDB +:1019E0000E94700A9CCF80E28C0F883068F4C77028 +:1019F00021E030E001C0220FCA95EAF7809143024E +:101A0000822B809343028BCFEBE5EC0FE33040F465 +:101A1000F0E0EC5BFE4F808190E0CF910C94C40528 +:101A2000E8E5EC0FE73150F4F0E0EE0FFF1FE95B63 +:101A3000FE4F80819181CF910C94AE05C03F30F074 +:101A40008C2F0E94BC07CF910C94DA06CF91089599 +:101A50001F93CF93DF93182FD0E0C0E0893311F4A8 +:101A6000C0E5D0E0812F0E94730C209731F4812FC4 +:101A7000DF91CF911F910C944E0B8FE99FE001975E +:101A8000F1F700C000002197F0CF0F931F93CF9381 +:101A9000DF93C62FD42F022FFC0182818823A1F06F +:101AA000609395030E94A2059093940380939303FF +:101AB000C77081E001C0880FCA95EAF7DF91CF9126 +:101AC0001F910F910C94440B80919503681335C0BE +:101AD00080919303909194030E949305883C910513 +:101AE00060F510E21D0FCD17B9F080E28C0F883041 +:101AF00040F4C77081E001C0880FCA95EAF70E94E0 +:101B0000390B183048F481E09D2F977001C0880F81 +:101B10009A95EAF70E94440B802F0E94280D1830F6 +:101B200098F4D77081E001C0880FDA95EAF7DF9169 +:101B3000CF911F910F910C94390BC77081E001C0B8 +:101B4000880FCA95EAF7F3CFDF91CF911F910F91DC +:101B50000895DF92EF92FF920F931F93CF93DF933D +:101B6000E82FF0E0E65BFD4FD490282F26952695D0 +:101B7000269530E0F901E65CFD4F0491877010E096 +:101B8000082E02C0159507950A94E2F701701127F7 +:101B9000F901E65DFD4FE490F12C082E02C0F594AA +:101BA000E7940A94E2F791E0E922FF24F901E65E66 +:101BB000FD4FC491D0E002C0D595C7958A95E2F754 +:101BC000C170DD270115110519F081EE0E94730C1B +:101BD000E114F10419F086EE0E94730C8D2D0E9421 +:101BE000280DEF2819F086EE0E944E0B012B19F0FC +:101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 +:101C00001F910F91FF90EF90DF900C94280DDF91C2 +:101C1000CF911F910F91FF90EF90DF900895CF9398 +:101C2000DF93C7E0D2E060E0CE010E94862F2196CC +:101C3000C11584E0D807B9F7DF91CF9108956F926D +:101C40007F928F929F92AF92BF92CF92DF92EF924C +:101C5000FF920F931F93CF93DF9389E0C82E85E007 +:101C6000D82E0FE510E0E801E09736011CC0F50121 +:101C700085909490692DC7010E94862F682DC70119 +:101C800001960E94862F82E0A80EB11C82E0E80E29 +:101C9000F11CCE15DF0559F788E0680E711C2896F7 +:101CA0000C171D0731F07E0188E0E81AF108530196 +:101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 +:101CC000180789F6DF91CF911F910F91FF90EF9048 +:101CD000DF90CF90BF90AF909F908F907F906F904C +:101CE0000895CF93C82F6FEF811161E283E290E0F6 +:101CF0000E94862FC1110CC0CFEF6C2F84E290E0C0 +:101D00000E94862F6C2F85E290E0CF910C94862F55 +:101D1000C9E0F3CF80E00E94710E60E086E290E0BF +:101D20000E94862F0E941F0E0E940F0E81E00C94CD +:101D3000710ECF93C0910503C2FB992790F99817B4 +:101D400081F080FBC2F9C09305036091040384E035 +:101D500090E00E94862F6C2F82E290E0CF910C944D +:101D6000862FCF9108950F931F93CF93DF9328E091 +:101D7000629FE001112450E0440F551FC40FD51F8E +:101D800030E3839FC00DD11D1124CE0187960E94A0 +:101D9000722F082F10E0102F0027CE0188960E9486 +:101DA000722F9801282BC901DF91CF911F910F91BC +:101DB0000895462F8A3038F4763028F4643018F4C9 +:101DC000672F0C94B30E90E080E00895BF92CF92FD +:101DD000DF92EF92FF920F931F93CF93DF937C01DB +:101DE0000091380310913903809145029091460289 +:101DF000082B192BCFE0D0E0CC24C394D12CBC2EDF +:101E0000C6010C2E02C0880F991F0A94E2F78023A6 +:101E10009123892B71F4219790F7B12C8B2DDF91B1 +:101E2000CF911F910F91FF90EF90DF90CF90BF90D7 +:101E30000895B7018C2F0E94D90E0E947208019755 +:101E400051F3ECCFCF93DF93EC010E94E60EBE017D +:101E50000E94D90EDF91CF910C947208FC0186810B +:101E60009781009779F00E947208292F2F70929520 +:101E70009F7092509E30A0F4E92FF0E0E454F04DB2 +:101E80000C94052F808191810E94220FEECF803F1C +:101E900019F020F4883E20F481E00895843FE1F3B6 +:101EA00080E00895883EC0F3813FD1F7F5CF822FBF +:101EB00086958695869508951F93CF93DF9300D0DE +:101EC00000D00F92CDB7DEB7FC01268137812115F6 +:101ED000310541F525E0DE01119601900D922A951C +:101EE000E1F7FC01228189819A812223B9F06623DE +:101EF000A9F00E94E60E182F682F89819A810E940E +:101F0000D50A69817A81812F0F900F900F900F90E1 +:101F10000F90DF91CF911F910C94D90E0E94AE0AC1 +:101F2000182FEFCFC9010F900F900F900F900F90C7 +:101F3000DF91CF911F91089583E290E00E94722F6C +:101F4000813289F484E290E00E94722F893059F442 +:101F500085E290E00E94722F91E0893009F090E0D4 +:101F6000892F8170089580E0FCCFCF9384E090E0CA +:101F70000E94722FC82F82E290E00E94722F982F49 +:101F80008C2FCF91089560918E03669570E04BE0A1 +:101F900050E08AE091E00E94582F892B19F481E0EB +:101FA000809384020E94A20590937E0280937D021A +:101FB00008955F926F927F928F929F92AF92BF929D +:101FC000CF92DF92EF92FF920F931F93CF93DF9305 +:101FD000CDB7DEB7C455D1090FB6F894DEBF0FBE3A +:101FE000CDBF80918E0380FD0AC0EAE3F3E0118249 +:101FF00010821282339623E0EE38F207C1F7809008 +:102000007B0290907C028114910409F459C0809164 +:102010007A02811155C0D12CC12C66246394712C95 +:1020200013E0512E8091850293010C2C01C0220FE8 +:102030000A94EAF7822309F43BC0F601EE0FFF1F72 +:10204000E80DF91DE590F490E114F104C9F145E0C3 +:1020500050E0B701CE0101960E944F2F09810F3F3A +:1020600039F18A81800F9927991F8D31910514F0DC +:102070008CE190E05C01AA0CBB1C8A0D9B1DFC014D +:10208000E65CFC4F5F01059D80011124065C1C4F3E +:102090000A151B0520F0F5E0EF0EF11CD8CF9801D2 +:1020A0004D816C818B810E9441060D5F1F4FF0CFE7 +:1020B0002FEFC21AD20A38E0C316D10409F0B2CF0A +:1020C0007DEEA72E73E0B72EDE011196AE014B5ABE +:1020D0005F4F1A2F7B2FF5018491282F30E0C90123 +:1020E000880F991F820F931F865C9C4FFC01C08054 +:1020F000D180E280CD92DD92ED92FFEFAF1ABF0A60 +:10210000A417B50741F7279A35B13F7725B1206865 +:102110006FB7F894812F972FFC017191CF01E8E000 +:1021200025B9000000C077FF35B9770F000000C067 +:1021300000C000C035B900C0EA9591F78417950733 +:1021400059F76FBF8FE594E00197F1F700C00000E9 +:10215000CC5ADF4F0FB6F894DEBF0FBECDBFDF9174 +:10216000CF911F910F91FF90EF90DF90CF90BF9094 +:10217000AF909F908F907F906F905F9008951F9386 +:10218000CF93DF9300D00F92CDB7DEB7162F90918B +:102190008E0390FF18C09E012F5F3F4F48E76FEFFF +:1021A0000E9441068B819981612F70E0FB01EE0F47 +:1021B000FF1FE60FF71FE65CFC4F2A812183908307 +:1021C00082830E94D90F0F900F900F90DF91CF91D3 +:1021D0001F910895EF92FF920F931F93CF93DF9378 +:1021E0008C01CAE3D3E0F12CE12CF80194816091D9 +:1021F000900380918F03FEE0EF16F104FCF4992325 +:10220000F9F09E01409191030E9441062FEFE21ADE +:10221000F20A23968CE1E816F10439F70E94D90FEF +:10222000F801848190E00196817099278483DF9181 +:10223000CF911F910F91FF90EF900895992309F38B +:102240009E0140E0E1CF8F929F92AF92BF92CF92DA +:10225000DF92EF92FF920F931F93CF93DF93EC01E6 +:102260004C81042F10E09801D8010E941A2F9B0185 +:10227000AC010E94302F4B015C01E0E2F0E0E01B7A +:10228000F10BA5E5B0E0AC019B010E94302F6B0182 +:102290007C019F01DF010E94122F9B01AC010E9473 +:1022A0003B2F9B01AC01280D391D4A1D5B1DC70149 +:1022B000B6010E94E32EF22E822F90E039E23F1504 +:1022C000D8F143E0249F9001112435952795122FD2 +:1022D00010959AE3C92E93E0D92E00E085E5E82E0B +:1022E000EF188E2D01FD8F2D9601412F60919003E7 +:1022F0000E9441060F5F53E0C50ED11C0C3189F7D7 +:102300000E94D90F9C8181E0992319F0903219F431 +:102310008FEF8093170180911701890F8C83DF91D4 +:10232000CF911F910F91FF90EF90DF90CF90BF90D2 +:10233000AF909F908F90089525E530E0A901481B4C +:10234000590BCA019A01220F331F280F391F37FF7B +:10235000BCCF2F5F3F4FB9CF0F931F93CF93DF9326 +:10236000CAE3D3E0FE01118210821282339683E029 +:10237000EE38F807C1F710E000E080918702082EE0 +:10238000000C990B081719078CF180911601082E83 +:10239000000C990B801791074CF19E01409191031D +:1023A0006091900380918F030E9441060F5F1F4F41 +:1023B00023960C31110509F70E94D90F8091150160 +:1023C00090918702980F9093870220911601280F11 +:1023D00020931601121614F49B311CF08195809302 +:1023E0001501DF91CF911F910F91089519821882E5 +:1023F0001A82DCCFBF92CF92DF92EF92FF920F93BF +:102400001F93CF93DF93FC018281DD24DA9480FD5A +:1024100002C0DD24D3940AE313E0D0E0C0E02CE155 +:10242000B22EF80111821082128294E0E92EF12C72 +:10243000C12C809186028C0D8D310CF43DC06B2D2A +:102440000E94AD2E892F082E000C990B8C179D072A +:1024500091F4809191038E9DA0018F9D500D1124C8 +:1024600055954795559547959801609190038091B2 +:102470008F030E944106CD0CF1E0EF1AF108C9F676 +:1024800021960D5F1F4FCC31D10559F60E94D90F0F +:102490008091860291E0D91215C0811111C08BE1A3 +:1024A00080938602DF91CF911F910F91FF90EF9063 +:1024B000DF90CF90BF90089587FFC5CF845EC3CFD4 +:1024C0008150EECF90E00196BE010E94CF2EE8CF62 +:1024D000EF92FF921F93CF93DF93EC018AE3E82EF4 +:1024E00083E0F82E10E08C81970140919103609178 +:1024F0009003810F0E944106175F83E0E80EF11CF4 +:102500001C3F89F70E94D90F9A818C8190FF08C0E7 +:102510008F5F8C83DF91CF911F91FF90EF90089593 +:102520008150F7CF90918E0390FF0CC0EAE3F3E067 +:10253000818360834283339693E0EE38F907C1F7D5 +:102540000C94D90F08950F931F93CF93DF9300D06E +:102550000F92CDB7DEB78C018091880281110AC03D +:102560009E012F5F3F4F44EB6FEF0E9441068A812F +:1025700080938802F8016481613069F0809188025B +:1025800040E0662361F040E0623011F4409188023F +:1025900080E060E004C06091880240E080E00E943A +:1025A0009212F801848190E0019663E070E00E944D +:1025B000CF2E84830F900F900F90DF91CF911F91BA +:1025C0000F910895CF93DF9300D00F92CDB7DEB770 +:1025D00090918E0390FF0AC09E012F5F3F4F0E9493 +:1025E00041064B8169818A810E9492120F900F905F +:1025F0000F90DF91CF910895CF93DF93EC01EEE838 +:10260000F3E0438162818C810E94E2128C818F5FB2 +:102610008C83DF91CF910895CF93DF93EC01EC8110 +:10262000F0E0E75FFB4F4491EEE8F3E062818181E7 +:102630000E94E2128C818F5F8C83DF91CF9108958D +:10264000CF92DF92EF92FF926B017C010E942B06EA +:10265000B701A60188E090E0FF90EF90DF90CF9067 +:102660000C94982F5F926F927F928F929F92AF926D +:10267000BF92CF92DF92EF92FF920F931F93CF936F +:10268000DF9300D00F92CDB7DEB7182F762E042F30 +:10269000622E90918E0390FF29C0E92FE695AE2F10 +:1026A000B0E0A157BE4F8C91809383029E7F923001 +:1026B00081F59E012F5F3F4F812F0E9441064B8184 +:1026C00069818A810E94921210938F037092900305 +:1026D00000939103662051F060918E0370918F03F7 +:1026E00080919003909191030E9420130F900F907E +:1026F0000F90DF91CF911F910F91FF90EF90DF909E +:10270000CF90BF90AF909F908F907F906F905F9091 +:102710000895823019F400919103D6CF863019F4D0 +:1027200010918F03D1CF8930D9F3893169F6E951FE +:102730008E2F8170582EE695F0E0E851FC4FA59061 +:10274000B490BB248AE3E82E83E0F82ED12CC12C70 +:102750009CE1892E912CC601B4010E94BB2E812FD1 +:10276000511013C0860F9701402F672D0E9441061C +:10277000CA0CDB1C83E0E80EF11C8EE8E81683E04F +:10278000F80649F70E94D90F9FCF861BECCFEEE8E1 +:10279000F3E0438128E0421B08F440E021E062813D +:1027A00081810C943213EEE8F3E0438128E0420F7C +:1027B00008F44FEF21E0628181810C943213EEE83E +:1027C000F3E0628128E0621B08F460E021E04381CD +:1027D00081810C943213EEE8F3E0628128E0620F0D +:1027E00008F46FEF21E0438181810C943213EEE80D +:1027F000F3E0818121E04381628188500C9432139F +:10280000EEE8F3E0818121E043816281885F0C94EE +:10281000321380919203882319F0815080939203A0 +:1028200060918E0370918F0380919003909191033A +:102830000C94201380919203833018F48F5F80935F +:10284000920360918E0370918F0380919003909119 +:1028500091030C94201390918E0390FF36C09170D9 +:10286000811129C0926090938E03662351F060918C +:102870008E0370918F0380919003909191030E9439 +:10288000201360918E03669570E04BE050E08AE083 +:1028900091E00E94582F892BA9F01092840281E0C8 +:1028A0008093800220E04091910360919003809199 +:1028B0008F030C943213853210F09864D4CF880FB4 +:1028C000982BD1CF0E94C30FEACF089521E030E0CA +:1028D000A90102C0440F551F8A95E2F7CA01209151 +:1028E0008502662399F0822B809385028091840271 +:1028F000811106C080918E0360E086950E942B14A2 +:1029000080918E0380FD05C00C94D90F80958223A1 +:10291000EBCF08950F931F93CF93DF93EC0161E00A +:10292000009709F0682F617080E00E94661460E0F3 +:10293000209721F0BE0176956795617081E00E9435 +:10294000661460E0209731F0BE0176956795769524 +:102950006795617082E00E94661460E0209739F00C +:10296000BE0113E0769567951A95E1F7617083E0F3 +:102970000E94661460E0209739F0BE01B4E07695BD +:102980006795BA95E1F7617084E00E946614AE0124 +:1029900070E060E0BB27A72F962F852F0097A10539 +:1029A000B105D9F1AC01BD0188E08A019B01F4E0D9 +:1029B0003695279517950795FA95D1F701151105C5 +:1029C0002105310519F08C5FB901A8018A019B012D +:1029D000E2E03695279517950795EA95D1F7011509 +:1029E00011052105310519F08E5FB901A801769511 +:1029F000679557954795452B462B472B09F08F5FD9 +:102A0000823011F160F4882399F08130C1F0CE0159 +:102A1000DF91CF911F910F91089580E0C6CF833051 +:102A2000C1F08430A1F720E044E66FEF8FE004C0EE +:102A300020E044E66FEF82E30E943213E8CF20E00B +:102A400044E66FEF85E0F8CF20E044E66FEF80E8E2 +:102A5000F3CF20E044E66FEF87EDEECF0E948A14BB +:102A600090933903809338030C94010B80913803C1 +:102A7000909139039C01267033272630310519F4D3 +:102A800088600C942E15877FFCCF21E030E002C0D7 +:102A9000220F331F8A95E2F72095309580913803F5 +:102AA00090913903822393230C942E159091400228 +:102AB0008095892380934002282F277039F4282F8E +:102AC000082E000C330B9217130621F49091050386 +:102AD00092FF07C08595859585950E9445151092B2 +:102AE0004002089521E030E002C0220F331F8A9592 +:102AF000E2F78091380390913903822B932B0C9449 +:102B00002E1580918E038695815009F484E261E050 +:102B10000C942B1480918E0386958F5F853208F07C +:102B200081E061E00C942B1490918E0390FF07C01C +:102B30009695981720F0961710F40C948A1561E07A +:102B40000C942B14EEE8F3E083E0808311828FEF86 +:102B5000828388E283831482608171818281938180 +:102B60000C94201369EE7EEF90E080E00E94A42F89 +:102B700060E082E090E00E94862F60E083E090E0D9 +:102B80000E94862F109246021092450260E084E077 +:102B900090E00E94862F60E082E290E00E94862F03 +:102BA00060E085E090E00E94862F60E086E090E0A3 +:102BB0000E94862F6FEF87E090E00E94862F40E012 +:102BC00050E0BA0188E090E00E94982F60E08DE02C +:102BD00090E00E94862F40E050E0BA0188E190E04A +:102BE0000E94982F60E087E190E00E94862F40E0ED +:102BF00050E0BA018CE190E00E94982F70E060E014 +:102C000080E290E00E94A42F40E050E0BA0188E109 +:102C100090E00E94982F80E00E94710E0E948A0E20 +:102C200040E050E0BA018FE090E00E94982F40E031 +:102C300050E0BA0183E190E00C94982F90E080E09E +:102C40000E94802F893E9E4F11F40C949C0F80E0CF +:102C500008951092430280914301E8ECF1E088234B +:102C600059F08091040387FF07C08EE1DF011D92B8 +:102C70008A95E9F70C94010B86E0F8CF1F93CF9368 +:102C8000DF93CDB7DEB7AA970FB6F894DEBF0FBEBD +:102C9000CDBF80E393E02091F100DC012D93CD01C5 +:102CA000B3E088339B07B9F780913103833009F48F +:102CB00071C0B8F4813009F448C0823009F4B2C060 +:102CC0008091E80083FF3AC18091300390913103F5 +:102CD0009A3008F033C1E92FF0E0E653F04D0C9440 +:102CE000052F8A3009F48DC08B3009F470C089300B +:102CF00039F780913003813219F780913403909134 +:102D00003503009711F00297D9F68091E800877F8C +:102D10008093E8008091E80082FF37C09091F30033 +:102D20008091F200029729F48091F1008B7F81302D +:102D300021F48091F10080930B038091E8008B7760 +:102D40008093E8000E948004BBCF80913003813AD9 +:102D500009F0B6CF8091E800877F8093E8008091EA +:102D6000340390913503892B61F460E28CE093E0A9 +:102D700070E00E9432058091E8008B778093E80034 +:102D80009FCF60E090E080E0F3CF80912E0381112F +:102D9000C1CF96CF80913003813A09F091CF8091D5 +:102DA000340390913503892B09F08ACF8091E80094 +:102DB000877F8093E8008091E80080FFFCCF8091BE +:102DC00043018093F1008091E8008E77B9CF809124 +:102DD0003003813209F074CF809134039091350330 +:102DE000892B09F06DCF8091E800877F8093E80000 +:102DF0000E94800480913203809343010E9429162F +:102E00005FCF80913003813209F05ACF8091E80082 +:102E1000877F8093E8000E94800480913303809331 +:102E20000A034ECF80913003813A09F049CF809157 +:102E3000E800877F8093E8008091E80080FFFCCF66 +:102E400080910A03BECF803899F0823809F076C0AD +:102E5000809134038F70873008F070C08093E90050 +:102E60008091EB0085FB882780F91092E90006C06D +:102E700080912C0390912D03911182609091E80034 +:102E8000977F9093E8008093F1001092F100809179 +:102E9000E8008E77B5C1882309F4A2C1823009F019 +:102EA0004DC0809132038111A6C1809134038F708F +:102EB0002FEF280F263008F041C08093E9002091C1 +:102EC000EB0020FF98C1933031F48091EB008062D9 +:102ED0008093EB0090C19091EB0090619093EB0098 +:102EE00021E030E001C0220F8A95EAF72093EA0042 +:102EF0001092EA008091EB008860EACF81111EC039 +:102F0000109132031F778091E3008078812B8093AA +:102F1000E3008091E800877F8093E8000E948004AE +:102F20008091E80080FFFCCF8091E300806880936F +:102F3000E30082E0111183E080932E038091E8008A +:102F400083FF0AC08091E800877F8093E80080912A +:102F5000EB0080628093EB00AA960FB6F894DEBF78 +:102F60000FBECDBFDF91CF911F9108958058823061 +:102F700028F720913203309133032C3DE3E03E07E4 +:102F8000A1F583E08A838AE289834FB7F894DE0152 +:102F9000139620E03EE051E2E32FF0E0509357001B +:102FA000E49120FF03C0E295EF703F5FEF708E2F3A +:102FB00090E0EA30C0F0C7968D939D932F5F243147 +:102FC00059F74FBF8091E800877F8093E8006AE25D +:102FD00070E0CE0101960E9432058091E8008B7767 +:102FE0008093E800ABCFC096E7CF809134039091F7 +:102FF0003503432F55274330510509F44AC078F56E +:103000004130510509F47AC08BE590E0E9EEF6E035 +:103010004230510509F092CF2091E800277F20939C +:10302000E80020913603309137038217930708F4A4 +:103030009C0140E02115310509F065C0411163C0D4 +:103040008091E80082FDC9CF80912E03882329F268 +:10305000853019F28091E80083FFF2CFBECF413274 +:10306000510509F43CC04232510509F067CF833065 +:10307000910508F063CFFC01EE0FFF1FE954FE4FEE +:103080000190F081E02D8C549E4FDC018C9190E0FA +:103090001AC0332721303105D1F02115310561F0F7 +:1030A0002230310509F04ACFE6E5F7E0E4918E2FB2 +:1030B00090E0E6E5F7E007C0E6E7F7E0E4918E2F61 +:1030C00090E0E6E7F7E0009709F438CFA5CFE2E615 +:1030D000F7E0E4918E2F90E0E2E6F7E0F4CF833062 +:1030E000910508F02BCF880F991FFC01E354FE4F88 +:1030F0000190F081E02D89E090E08ECF82E190E0B8 +:10310000E4E4F7E089CF80912E03882309F465CFAA +:10311000853009F462CF8091E80083FD5ECF809115 +:10312000E80082FD8DCF8091E80080FF83CF9091F1 +:10313000F3008091F2002115310519F088309105D6 +:1031400050F041E0089709F040E08091E8008E7768 +:103150008093E8006FCF44914093F1003196215065 +:1031600031090196E8CF803809F0E8CE8091E80077 +:10317000877F8093E80080912F038093F10087CEB2 +:103180008111DCCE10913203123008F0D7CE80913D +:10319000E800877F8093E80010932F030E9480044B +:1031A000112311F084E005C08091E30087FDFACF80 +:1031B00081E080932E0342E061EC81E00E949F0455 +:1031C00042E261EC84E00E949F0442E261EC82E012 +:1031D0000E949F0442E260EC83E00E949F04AECE16 +:1031E00080913203813009F0A9CE81E0933009F05B +:1031F00080E080932D031092E9008091E800877FA2 +:103200008093E8000E94800499CE9F92AF92BF9273 +:10321000CF92DF92EF92FF920F931F93CF93DF93A2 +:1032200000D000D0CDB7DEB77C01FC018381948152 +:10323000892B31F08081918189238F3F09F0F0C57E +:103240000F900F900F900F90DF91CF911F910F91E2 +:10325000FF90EF90DF90CF90BF90AF909F90089538 +:10326000980122513F452031310508F0CEC58FEF3E +:1032700093E00E94722F025167E0C62E62E0D62EC4 +:10328000882339F1809140028770D1F2F701828161 +:103290008823B1F282E00F900F900F900F90DF9192 +:1032A000CF911F910F91FF90EF90DF90CF90BF9043 +:1032B000AF909F900C945615C114F4E0DF0611F303 +:1032C000C6010E94722F811101C001502FEFC21A56 +:1032D000D20A0111F1CF1C821B82BB24B3945AE0A5 +:1032E000A52E86010F5F1F4FC6010E94722F898392 +:1032F0001A82882339F29FEF980F933008F58A835A +:10330000B98232E0C30ED11CC8010E94722F8B8398 +:10331000882309F4B7CF8E010F5F1F4FF80180811A +:103320008823F9F2813009F043C091818281913084 +:1033300049F40E5F1F4F0E94280D0F5F1F4FEECF05 +:103340006801E9CF923029F40E5F1F4F0E94730C81 +:10335000F4CF933029F40E5F1F4F0E944E0BEDCF38 +:10336000943019F00F5F1F4FE8CF0E5F1F4F30E012 +:1033700020E0B8016F5F7F4FF80141818053990BC6 +:103380008A30910550F021503109B8F28FE99FE061 +:103390000197F1F700C00000F6CFA29EF001A39EB6 +:1033A000F00D11249C012E0F3F1F842F8B01E1CFC4 +:1033B0000E94A90DC2CF81E00E9472150E943615AD +:1033C00061CF81E00E944515F9CF82E0FBCF043840 +:1033D0009FE5190709F483C008F473C00538FFE5B9 +:1033E0001F0709F041C5882309F43EC580EE0E94FD +:1033F000730C81EE0E94730C80E10E94730C80E1DB +:103400000E944E0B81EE0E944E0B80EE0E944E0BEE +:103410008091E60191E062E189278093E6018823AB +:1034200009F48DC08FE00E94BF1066E18FE00E941A +:10343000BF101AC5882369F180914F02811106C01F +:1034400081E080934F0282EE0E94730C0E94A205DD +:1034500090934E0280934D028BE20E94730C04C540 +:103460008823A1F080914F02811106C081E08093F2 +:103470004F0282EE0E94730C0E94A20590934E02AE +:1034800080934D0281EE0E94730CE6CF81EE0E9484 +:103490004E0B8BE20E944E0BE7C4882309F4E4C470 +:1034A00081EE0E94730C83EE0E94730C8FE40E94E5 +:1034B000730C8FE40E944E0B83EE0E944E0B81EE44 +:1034C000E9CF882309F4D0C481EE0E94730C83EE07 +:1034D0000E94730C80E50E94730C80E5EBCF88237B +:1034E00009F4D0CE10914C0281E0182710934C02C1 +:1034F0000E94A20590934B0280934A0268E1112337 +:1035000081F08FE00E94BF1069E18FE00E94BF1040 +:103510006AE18FE00E94BF106BE18FE00E94BF1054 +:10352000B1CE84EB0E94BF1069E184EB0E94BF1012 +:103530006AE184EB0E94BF106BE184EBEFCF8FEA6E +:103540000E94BF1066E18FEA72CF82EE0E94730C78 +:10355000C6C483E00E942F0B88E10E94730C88E1AF +:103560000E944E0B83E00E94240BB9C482EE0E949D +:10357000730C87E50E94280DB2C486EE0E94280DC8 +:1035800088E1F8CF895AC5C482EE0E944E0BD9C497 +:103590008CE20E94280D8091E801882309F4D1C4AF +:1035A00089E30E94280DCDC488E2FBCF033FFCE5F0 +:1035B0001F0739F1A0F4083D3CE51307F1F0093D80 +:1035C0008CE5180751F1073D9CE5190709F0BDC4CA +:1035D00026E241EE61EEC7010E94450D53CE053F44 +:1035E000ECE51E07B1F088F0063F2CE5120709F064 +:1035F000ACC427E245EE66EEEECF27E245EE65EE7F +:10360000EACF26E241EE60EEE6CF27E245EE64EE39 +:10361000E2CF26E241EE62EEDECF28E241E0EFCFDC +:1036200080910403806106309CE5190709F48CC081 +:1036300080910403886007301C4508F485C08091A0 +:103640000403806281C0809104038D7F0C30FCE50F +:103650001F0709F479C070F4809104038C600A306C +:103660003CE5130709F470C008F481C0809104039D +:103670008E7F6AC080910403877F0E309CE5190716 +:1036800009F462C0809104038B7F0F301C4508F45D +:103690005BC0809104038F7E57C00B3FFCE51F0782 +:1036A00009F45DC030F503313CE5130709F46DC042 +:1036B00078F401319CE5190709F463C002311C4517 +:1036C00009F07EC40E942916809104038F773CC0C4 +:1036D0000531FCE51F0709F460C008F474C080914F +:1036E000050381600A3F1C4509F06AC48093050305 +:1036F00067C40F3F8CE5180709F44BC088F480912C +:1037000005038D7F0D3FECE51E0781F380910503D6 +:103710008E7F0E3F1C4550F3809105038360E6CFFA +:1037200001302DE5120709F457C008F442C060E0EB +:1037300002301D4509F044C48EE090E00E94862FBF +:103740003FC48091040381608093040339C4809155 +:1037500004038260F9CF809104038460F5CF8091E7 +:1037600005038260C3CF809104038064EDCF0E9483 +:103770002916809104038068E7CF809104038F7D30 +:10378000E3CF809104038F7BDFCF80910403837F9D +:10379000DBCF809105038C7FA9CF8091040382FB4E +:1037A000992790F921E0922790FB82F990FB83F909 +:1037B000CBCF80910503982F909591708E7F892BA8 +:1037C00090FB81F993CF0E94291690910403892FD1 +:1037D00097FB87F98058B8CF61E0AECF882309F412 +:1037E00002C4809143028A7A91E009F490E09093B8 +:1037F000E901811106C089E20E94700A0E94000A54 +:1038000041CD85E3F9CF85E3F3C3043CFCE51F0715 +:1038100009F493C047EF53E160E074E1053C2CE507 +:10382000120709F00AC40E9425062CCD093C3CE58C +:10383000130709F491C070F4073CECE51E0709F486 +:1038400086C04BEE53E16FED73E1083CFCE51F07CA +:1038500051F3F3C30A3C2CE5120709F482C049E096 +:1038600054E16AE174E10B3C3CE51307E1F2E5C386 +:10387000013D8CE5180709F487C0B0F40E3CECE577 +:103880001E0709F47BC008F476C00F3C2CE5120734 +:1038900009F477C06EE089E0003D3CE5130709F0CC +:1038A000CCC30E949415EECC043D8CE5180709F4B6 +:1038B00071C078F4023DECE51E0709F468C061E0D0 +:1038C00088E1033DFCE51F0709F0B7C30E942B14F4 +:1038D000D9CC053D2CE5120709F45FC00D35100762 +:1038E00009F4D0CCAAC380918E0380FF1BC08E7FC9 +:1038F00080938E0360918E0370918F03809190036B +:10390000909191030E942013109284028FEF90E710 +:10391000E2E081509040E040E1F700C000000E94EA +:10392000D90FB0CC816080938E0361E08695CECFB5 +:1039300041E855E16AE875E176CF4AE855E161E88A +:1039400075E171CF40E054E167EF73E16CCF4FED6B +:1039500053E16BEE73E167CF47EC53E163ED73E145 +:1039600062CF43ED53E167EC73E15DCF4AE154E18F +:1039700069E074E158CF61E081E0A8CF65E082E0C2 +:1039800090CF68E086E08DCF64E18FE08ACF67E179 +:1039900085E187CF62E289E184CF61E083E296CF5F +:1039A0000B359DE5190701F10C351D4509F055C38F +:1039B0008091050382FB882780F991E089270E9486 +:1039C000990E4BC30E942916FFEF24E33CE0F1500F +:1039D00020403040E1F700C000000E944F0C0E94E0 +:1039E000B21550CC81E0EBCF80E0E9CF828100813D +:1039F0001181882369F0C8010E94E60ED82E682F35 +:103A0000C8010E94D50AB8018D2D0E94D90E2BC382 +:103A1000C8010E94AE0AD82EF6CF212F2F70C22ED9 +:103A2000107F19F0C29490EFC922DD20C9F0CC209C +:103A300069F080E2800F883010F001110BC0809196 +:103A40004302C82AC09243020E94000A802F0E94AB +:103A5000730C19C080914202C82AC0924202F4CF6E +:103A6000802F0E944E0BCC2071F0C09480E2800F1A +:103A7000883010F001113AC080914302C822C092F0 +:103A800043020E94000AE92DE850FF0B349720F40E +:103A90000E94DA050E94AB0BAA20A9F08091400297 +:103AA00080FD11C0F70112828595859585950E944C +:103AB0007215C7010E940519809140028595859570 +:103AC00085950E94451560E0C7010F900F900F90FB +:103AD0000F90DF91CF911F910F91FF90EF90DF90AA +:103AE000CF90BF90AF909F900C945C0F809142025A +:103AF000C822C0924202C5CF312F3F70B32E107F33 +:103B0000103219F0B29480EFB822002369F001302E +:103B100081F1DD20D9F1CC2091F1F701858180FF81 +:103B200095CF8F7085832BC0DD20B1F0909144023A +:103B30008B2D892BC11003C00E94440BA4CFE1E060 +:103B4000CE12FACF2091050322FD9DCF891709F4EB +:103B50009ACF8093440297CFC11006C00E94FA0901 +:103B60008B2D0E94390B8FCFF1E0CF1609F48BCF4C +:103B7000F5CFDD2031F025E02C1508F484CF8B2D16 +:103B8000DBCF34E03C1508F47ECFEACFCC2041F304 +:103B9000093349F4FFEF27EE33E0F1502040304085 +:103BA000E1F700C00000802F0E944E0B6CCF812FE8 +:103BB00086958695837061F0813009F064CFC801E5 +:103BC0009370D11002C090E080E00E94AE055BCF00 +:103BD000C8019370D11002C090E080E00E94C4053B +:103BE00052CF802FDD2029F00E94BC070E94DA0608 +:103BF0004ACF0E940107FACF812F837009F03FC09E +:103C0000D11041CF402F429546954770440F440F45 +:103C1000802F8F7090E0042E02C0880F991F0A94A5 +:103C2000E2F730E020E004FF09C02FE030E002C0FE +:103C3000220F331F4A95E2F7209530951695169579 +:103C40001370123099F078F4409145025091460279 +:103C5000113039F0822B932B842395230E941E0B65 +:103C600012CF842B952B822B932BF8CF822B932B67 +:103C7000209145023091460282279327EFCF869507 +:103C8000DD2011F0812F8170882309F4FCCE402FB4 +:103C9000429546954770440F440F802F8F7090E0F7 +:103CA000042E02C0880F991F0A94E2F730E020E04A +:103CB00004FF09C02FE030E002C0220F331F4A95F5 +:103CC000E2F720953095169516951370123099F0FD +:103CD00078F44091380350913903113039F0822B38 +:103CE000932B842395230E942E15CDCE842B952BC8 +:103CF000822B932BF8CF822B932B2091380330917A +:103D0000390382279327EFCF1F70DD2029F0812F01 +:103D10000E947215802F10CF802F0E94390B812FA7 +:103D20000E944515B0CE023F09F441C060F4003F47 +:103D300011F1013FA1F1DD2009F457C0C11086CE79 +:103D4000812F8F7131C0033FB9F1043FA1F7DD200E +:103D500009F440C01F71812F0E94721580910503E4 +:103D600082FD07C0E8E01E9FC0011124836080939C +:103D70004002812F19C0DD2069F084E08C1508F421 +:103D800082CE1F7181E090E002C0880F991F1A95C2 +:103D9000E2F7B3CF95E09C1508F475CEF2CF812FF2 +:103DA0008F71DD2009F4BCCF0E9472156CCE812F7B +:103DB0008F71DD20C9F3B4CF90E080E0DD2009F4FD +:103DC00092CF1F7181E090E002C0880F991F1A9571 +:103DD000E2F789CF81E00E945615F1E0FC1508F06A +:103DE00052CE82E00E9456154ECECC2059F00933B7 +:103DF00009F0D9CE2FEF37EE83E0215030408040DC +:103E0000E1F7CFCE812F8F718BCF00313FE51307C4 +:103E100009F4D1CA01319FE51907A9F482E0CCCA9F +:103E200061E0C7010E945C0F8C01F7018281811162 +:103E300017CA0031FFE51F0709F4C3CA01312FE596 +:103E4000120709F4C2CA0238EFE51E0709F425CBB0 +:103E500008F0BDCA00382FE5120709F4EBCA013893 +:103E60003FE5130709F4FCCAF7018281882369F052 +:103E7000C801815E9C45059740F46FE1600F609337 +:103E800050028CE090E00E94862F17FF8FCBF70145 +:103E90008281882309F459C00E94DA0586958170D1 +:103EA0008093E80190915002913029F4882319F011 +:103EB00089E30E94280D809143028093E7011092CC +:103EC000430280915002813009F443CB882309F4E6 +:103ED0003CCB823009F44ACB843009F44ECB8FE3DB +:103EE0009CE90197F1F700C000005801E894B7F889 +:103EF0004CE0C42ED12CC5010C2C02C096958795A0 +:103F00000A94E2F78F7096EF980F963008F43ACB48 +:103F1000805D0E94A90D94E0C91AD108ECEFCE167D +:103F2000EFEFDE0641F780915002813009F430CB8B +:103F3000882309F429CB823009F426CB843009F494 +:103F400033CB8091E70180934302F701828188237C +:103F500009F446C0109295030230FCE51F0708F4EF +:103F60004AC006312CE5120738F098012A5F3C451B +:103F70002930310508F03FC00E94B50F909305032A +:103F80008093040300313CE5130709F4F6CB08F0F5 +:103F900084CB08309CE5190709F4E5CB08F053CB36 +:103FA0000430FCE51F0709F4D6CB08F039CB02300A +:103FB0003CE5130709F4C5CB03301C4509F4C7CB16 +:103FC000609104031091050384E090E00E94862F25 +:103FD000612F82E290E00E94862F0E94291652C92A +:103FE00006311C45D1F58091E90181110CCC89E2A3 +:103FF0000E94450A03CC06312CE5120709F4EECBEA +:104000008091430282720C3C9CE5190709F4AECC06 +:1040100008F02ECC063CFCE51F0709F493CC08F011 +:1040200005CC033C3CE5130709F482CC08F0EDCB4A +:10403000023CECE51E0709F456CC0A35FDE51F07E6 +:1040400009F4D0CC08F0ACCC01153CE5130709F419 +:10405000B9CC0E3D1C4509F4C2CCF701868197818D +:10406000009709F4C3CC0E9472088C01F701D2803A +:10407000C580C2943FE0C322809140028770A1F0C6 +:10408000AD2CDD2091F0812F807F803421F080E203 +:10409000800F883048F082E00E94561580914002DF +:1040A0008770AA24A3948111A12C912E92942FE0C1 +:1040B0009222FBE0F91508F4E6CCE92DF0E0EC5291 +:1040C000F04D0C94052FCF93DF938091FB01807FFF +:1040D000A1F48091F801882381F080913F02D09172 +:1040E000FE016091F6017091F701A091F901B09184 +:1040F000FA01C62FC723D81303C0DF91CF910895CB +:1041000090E0109711F0CF3F19F401968770F3CF2C +:104110009C0143E0220F331F4A95E1F7F901E1507A +:10412000FE4F41814713F1CF40814613EECF4281CC +:104130004111EBCF438154814A1B5B0B483C510535 +:1041400020F78091FB018F7080618093FB01F90162 +:10415000EC5FFD4F80818F708061808386EF91E0FE +:104160000E940519DF91CF910C94A40AAF92BF92DF +:10417000CF92DF92EF92FF920F931F93CF93DF9333 +:10418000CDB7DEB765970FB6F894DEBF0FBECDBFD3 +:104190008C0185E0F801DE01519601900D928A951F +:1041A000E1F7F801E28066EFA62E61E0B62E60919D +:1041B000F9017091FA016115710509F468C19091D6 +:1041C000F6014091F701892F84238F3F09F45FC1E5 +:1041D00020813181C380D480F090F801F601E61B84 +:1041E000F70BFF2009F41DC18091FB01582F507F70 +:1041F000E83CF10508F0D0C0511181C0FE2C4313FA +:104200002BC0921329C06091FC017091FD01F8014F +:104210004681578164177507F9F4E1101DC08F704E +:1042200080618093FB01C5010E9405198091FB010B +:10423000F80185838F2D65960FB6F894DEBF0FBE0B +:10424000CDBFDF91CF911F910F91FF90EF90DF9045 +:10425000CF90BF90AF900895CD2829F0822F83236F +:104260008F3F09F02FC180E0F82FF170DF2E80FF23 +:104270003CC080913F024091FE01841315C0298B00 +:104280003A8B89899A890E94220F292F22952F70B3 +:104290002230F8F0243020F59F70F9F0F801958174 +:1042A000907FD9F4D12C1FC090E0FC0153E0EE0FB9 +:1042B000FF1F5A95E1F7E150FE4F5181351306C0BB +:1042C0005081251303C05281E5120FC001968770FB +:1042D000D4CF9F7011F0882329F3805E883010F3CB +:1042E000C8010E940519FD2CA5CFEE2009F4A2CF2C +:1042F0008091FB0181608093FB01F12C9BCF4313E4 +:104300001BC0921319C04091FC015091FD01F801AE +:10431000268137814217530779F4E1100DC0858358 +:10432000C8010E94051988E0F801A6EFB1E00190EC +:104330000D928A95E1F77ECFC8010E942E0F882347 +:1043400039F1EE2029F18091FB018032A0F020911B +:10435000F6013091F7013A8729871B86DD86CC86E6 +:104360008E878091FC019091FD01988B8F87CE0103 +:1043700009960E94051988E0F801A6EFB1E00190C6 +:104380000D928A95E1F70E946320FF24F39452CFA7 +:10439000C8010E940519F9CF51110AC086EF91E0BA +:1043A0000E94051988E0F50111928A95E9F7A5CFD9 +:1043B000431318C0921316C04091FC015091FD01A7 +:1043C000F801268137814217530761F4E1100AC0D2 +:1043D0008583C8010E94051988E0F50111928A952C +:1043E000E9F728CFC8010E942E0F882389F2EE201A +:1043F00079F28091FB01803208F4BDCF2091F60163 +:104400003091F7013A8329831B82DD82CC828E832F +:104410008091FC019091FD0198878F83CE010196D8 +:10442000A8CFE83CF105C0F6FE2CEE2009F4B0CF91 +:1044300043131FC092131DC02091FC013091FD0158 +:10444000F801868197812817390799F49091FB012B +:1044500090FD69CF907F09F466CF8091FB01858341 +:10446000903F09F45DCF982F907F905F8F70892BDC +:1044700056CFC8010E942E0F81117DCF8091FB0184 +:1044800081608093FB01C8010E940519D3CEEE2004 +:1044900009F47ECFC8010E942E0FF82E882309F45C +:1044A00077CF88E0F801A6EFB1E001900D928A95F0 +:1044B000E1F78091F6019091F7010E94220F0E948E +:1044C0006320B8CE81E08E25CFCECF93DF93CDB7DA +:1044D000DEB760970FB6F894DEBF0FBECDBF298759 +:1044E0003A874B875C876D877E878F87988BCE0155 +:1044F00009960E94B620811112C088E0FE0139960B +:10450000DE01119601900D928A95E1F78C859D85CB +:10451000892B29F089859A8589238F3FA9F5809178 +:104520003F029091FE0189131CC060960FB6F8946B +:10453000DEBF0FBECDBFDF91CF91089593E0AA0FEC +:10454000BB1F9A95E1F7A150BE4F98E0FE0131964E +:1045500001900D929A95E1F78093FE010E94A40AC2 +:10456000DECFB8E08B9FC001112481509E4F0E9486 +:10457000B6208823D1F280913F0290E001968770A7 +:10458000992780933F02CBCFA091FE01B0E0CD01EF +:1045900001968770992720913F022817190671F616 +:1045A0000E9429161092FE0110923F0288E0E6EF69 +:1045B000F1E0DF011D928A95E9F7B1CF0F931F93C8 +:1045C000CF93DF9380918C02E0918B02CCE081113C +:1045D0001AC0DF91CF911F910F910895D1E0DE0FA6 +:1045E000D0938B020E2F10E0EC9FF0011124E357C3 +:1045F000FD4F83819481892B29F0808191818923CA +:104600008F3F51F4ED2F80918C02E81738F3109210 +:104610008C0210928B02DDCFC09FD001C19FB00DE4 +:104620001124A357BD4F16968D919C911797892BF6 +:1046300029F418968D919C91019651F42081318135 +:104640004281538164817581868197810E946522B0 +:10465000C09FF001C19FF00D1124E357FD4F14825C +:104660001382D0CF1092F8021092F70210924201FA +:104670008091F6028093F5020E9414060C94DE22CB +:104680002F923F924F925F926F927F928F929F9262 +:10469000AF92BF92CF92DF92EF92FF920F931F9350 +:1046A000CF93DF93C091F502E7E0FE2E01E010E02A +:1046B000FCE02F2EAEEFEA2E8091F6028C1316C08E +:1046C0000E94DE22DF91CF911F910F91FF90EF901A +:1046D000DF90CF90BF90AF909F908F907F906F9022 +:1046E0005F904F903F902F900C941406D0E0FE0105 +:1046F000EE0FFF1FE351FD4F80819181F89EF00185 +:10470000F99EF00D1124E85EFE4F2481211158C05E +:1047100030908C02ADE8B2E030E020E0412C5F0147 +:10472000231508F04BC01A966D907C901B97F501ED +:10473000808091804FEF5FEF512CC52CD12CF6017A +:10474000EE0FFF1FE80DF91D65917491661677064F +:1047500009F4A601672B11F05394EFCF4F3F540794 +:10476000B1F1B80102C0660F771F4A95E2F7462AF9 +:10477000A80102C0440F551F5A94E2F74150510955 +:104780004416150601F5229EF001239EF00D11241A +:10479000E357FD4FF89ED001F99EB00D1124A85E9D +:1047A000BE4F12962D913C91139737832683E0825A +:1047B000E1829187808771E015967C930E94E605DF +:1047C0002196C37079CF14961C921E9213972F5F77 +:1047D0003F4F1C96A5CF9F92AF92BF92CF92DF9290 +:1047E000EF92FF920F931F93CF93DF9300D000D0EF +:1047F00000D0CDB7DEB78E010F5F1F4F86E0F80106 +:1048000011928A95E9F785E7C82E81E0D82EF12C20 +:10481000E12CAA24A394B12CF60181916F018F3F62 +:1048200009F449C0F894E82FE295EF70F0E021A177 +:104830008F70A50102C0440F551F8A95E2F7CA0187 +:10484000922F982B91A392A18095892382A378948B +:1048500000C0EBE7F1E030E020E0912C41914F3FC8 +:1048600009F473C0A42FA295AF70B0E090968C911C +:1048700090E04F7002C0959587954A95E2F780FDCC +:1048800064C08A2D022E01C0880F0A94EAF7982A84 +:104890002F5F3F4F2430310509F7F60131978081B2 +:1048A0008F3F11F00E94180850EA5A95F1F7F8016D +:1048B000EE0DFF1D90828FEFE81AF80AE6E0EE1683 +:1048C000F10409F0A9CF46E050E0B80184E592E098 +:1048D0000E94652FFF24F394009709F4F12C892B93 +:1048E000B1F186E0F801A4E5B2E001900D928A955D +:1048F000E1F781E0809349020E94A205909348026B +:104900008093470280914702909148020E9493054C +:10491000059708F1809154028093670280915502B7 +:1049200080936802809156028093690280915702B9 +:1049300080936A028091580280936B0280915902A1 +:1049400080936C021092490206C080E0A0CF809153 +:1049500049028111D7CF80914201882301F18091D2 +:10496000F7029091F8020097D1F00E9493052091F0 +:10497000890230918A022817390788F49091F5024C +:104980008091F602981709F445C00E9440231092C6 +:104990008A02109289021092F8021092F702809116 +:1049A0004F02882371F080914D0290914E020E9437 +:1049B0009305893E934028F082EE0E944E0B1092A0 +:1049C0004F0280914C02882391F080914A0290918D +:1049D0004B020E949305883E934048F00E94A20536 +:1049E00090934B0280934A0283E70E94280D8F2DFB +:1049F00026960FB6F894DEBF0FBECDBFDF91CF91E4 +:104A00001F910F91FF90EF90DF90CF90BF90AF90EC +:104A10009F9008950E94DE221092F8021092F702F1 +:104A20000E941406BCCF2F923F924F925F926F92DA +:104A30007F928F929F92AF92BF92CF92DF92EF922E +:104A4000FF920F931F93CF93DF93CDB7DEB7699794 +:104A50000FB6F894DEBF0FBECDBF498B5A8B6B8B60 +:104A60007C8B8D8B6111109242021D861E861F86E3 +:104A7000188A85E0FE017196DE01199601900D926B +:104A80008A95E1F78C859D85892B31F089859A85FA +:104A900089238F3F09F0D4C129853A854B855C85F0 +:104AA0006D857E858F8598890E946522C3C028EF19 +:104AB000C2162CE5D20629F4882379F00E9432230D +:104AC000EBCF39EFC3163CE5D30639F4882329F040 +:104AD000809142018111F2CFC3C108E111E0E12CC4 +:104AE000B12CA12C88248394912C9EEF592E442420 +:104AF0004394F8016081718166246A94762C20E0E9 +:104B0000422F50E0FA01EE0FFF1FE60FF71F8591CD +:104B10009491C816D90609F43A01892B11F02F5F38 +:104B2000EFCFF12CFFEF6F167F0609F445C0F801B7 +:104B30004481F09042018F2D411180E0F82FF170F7 +:104B4000FF2EF801258086819B85992309F408C1F1 +:104B5000FF2009F405C1211014C0A40101C0440FB5 +:104B60006A94EAF7842B86838091890290918A0265 +:104B70008E35914030F44EE551E050938A024093D7 +:104B80008902C40102C0880F991F2A95E2F7019794 +:104B9000F80126812817190679F48091F70290917F +:104BA000F802009709F45FC00E9493058F35914089 +:104BB00008F459C0F8014482EF28FFEFAF1ABF0A8A +:104BC000095F1F4F26E0A216B10409F092CF8B8532 +:104BD000882309F420C1EE2009F41DC10E94A2051A +:104BE0009093F8028093F70280918C02883010F540 +:104BF00091E0980F90938C0298E0FE013996DE01C7 +:104C0000119601900D929A95E1F73CE0839FC001C7 +:104C1000112483579D4F28E0FE013196DC0101905D +:104C20000D922A95E1F72FEF3FEFFC0131872087A6 +:104C3000D386C28669960FB6F894DEBF0FBECDBF8D +:104C4000DF91CF911F910F91FF90EF90DF90CF9068 +:104C5000BF90AF909F908F907F906F905F904F909C +:104C60003F902F9008958091F5026090F602982F62 +:104C7000F0E0E0E0861114C09093F5020E171F07D4 +:104C800009F49ACF90E0FC01EE0FFF1FE351FD4FB6 +:104C9000B182A0820196837099278093F6028CCF0F +:104CA000282E312CF101EE0FFF1FE351FD4F208123 +:104CB0003181F7E0F29FD001F39FB00D1124A85E7F +:104CC000BE4F2D913C911197398F288F712C60E048 +:104CD00070E0E72FF0E0EE0FFF1F288D398DE20F17 +:104CE000F31F2591349121153105E1F0F801019070 +:104CF000F081E02DFF8BEE8B60E005C024173507B7 +:104D000009F47F2C6F5FE62FF0E0EE0FFF1F4E8956 +:104D10005F89E40FF51F459154914115510571F7D5 +:104D20007F5FD7CF7720C9F0F801671708F0FD0142 +:104D300044820E171F0721F49093F502F72C3CCF05 +:104D4000981305C0AE17BF0711F49F5F93709101D0 +:104D50002F5F3F4F822F83708DCFF0E0E0E0F7CFE1 +:104D600090E021101FC0B40102C0660F771F2A9582 +:104D7000E2F79B01215031092817390731F4442308 +:104D800009F447C0C5010E94E605C40101C0880FAF +:104D90006A94EAF7982F9095F80186818923868393 +:104DA000F22C0ACF9C01062C02C0359527950A9457 +:104DB000E2F7A90141705527BC01615071098623B2 +:104DC0009723892B11F5452B01F1F80182819381FD +:104DD000892BC1F01B821C821D821E8259825A823D +:104DE0000E94A2058160582F9D838C83F8018281E7 +:104DF00093818F83988729813A814B816D817E8150 +:104E00000E946522F8011582C0CFF22FF1702F2E7B +:104E1000BCCF2F2CBACF9091F5028091F602981753 +:104E200031F00E944023EE2009F436CE03CF0E94D9 +:104E3000DE221092F8021092F7020E941406F3CFBD +:104E400061E0CE0109960E945C0F6C018B85F7EF43 +:104E5000CF16FCE5DF0609F02ACE882309F43DCE03 +:104E600081E08093420118CE1F920F920FB60F92ED +:104E700011242F933F934F935F936F937F938F935F +:104E80009F93AF93BF93CF93DF93EF93FF93D09113 +:104E9000E900DF708091EC00C82FC17080FDC0E890 +:104EA0001092E9008091F000877F8093F000789461 +:104EB0000E943E161092E9008091F0008860809375 +:104EC000F000CD2BCF70C093E900FF91EF91DF91FF +:104ED000CF91BF91AF919F918F917F916F915F9192 +:104EE0004F913F912F910F900FBE0F901F901895EB +:104EF0001F920F920FB60F9211242F933F934F934F +:104F00005F936F937F938F939F93AF93BF93EF9331 +:104F1000FF938091E10082FF09C08091E20082FF4F +:104F200005C08091E1008B7F8093E1008091DA00E1 +:104F300080FF24C08091D80080FF20C08091DA00DB +:104F40008E7F8093DA008091D90080FF9BC080E142 +:104F500089BD82E189BD09B400FEFDCF81E0809367 +:104F60002E0380910903811109C00E9406040E944A +:104F7000D1048091E20084608093E2008091E1009E +:104F800080FF17C08091E20080FF13C08091E20093 +:104F90008E7F8093E2008091E20080618093E20046 +:104FA0008091D80080628093D80019BC85E08093FE +:104FB0002E038091E10084FF29C08091E20084FFEC +:104FC00025C080E189BD82E189BD89B5982F9170A6 +:104FD00080FFFBCF8091D8008F7D8093D800809197 +:104FE000E1008F7E8093E1008091E2008F7E8093CC +:104FF000E2008091E20081608093E20080912F03C3 +:10500000882309F445C084E080932E038091E10059 +:1050100083FF27C08091E20083FF23C08091E100DD +:10502000877F8093E10082E080932E0310922F030C +:105030008091E1008E7F8093E1008091E2008E7F7D +:105040008093E2008091E20080618093E20042E080 +:1050500060E080E00E949F048091F000886080936F +:10506000F000FF91EF91BF91AF919F918F917F9150 +:105070006F915F914F913F912F910F900FBE0F90C5 +:105080001F90189519BC10922E031092090376CF29 +:105090008091E30087FD93E090932E03B7CF78943F +:1050A0001F921FB61F9211248F939F93AF93BF93AC +:1050B0008091000390910103A0910203B09103033A +:1050C0000196A11DB11D8093000390930103A0934D +:1050D0000203B0930303BF91AF919F918F911F90F3 +:1050E0001FBE1F9018951F921FB61F9211248F93F9 +:1050F0009F93AF93BF938091FF02811113C0809162 +:10510000000390910103A0910203B0910303419623 +:10511000A11DB11D8093000390930103A09302038E +:10512000B0930303BF91AF919F918F911F901FBECA +:105130001F901895CDB7DEB7EE970FB6F894DEBF87 +:105140000FBECDBF84B7877F84BF0FB6F894A895F4 +:1051500080916000886180936000109260000FBEB3 +:1051600080E890E00FB6F89480936100909361001E +:105170000FBE85B7806885BF85B7806885BF86E12B +:1051800098E09093C5018093C4010E9406040E9498 +:10519000D1048091E20084608093E2007894809151 +:1051A0002E038823A1F01091E9001F709091EC006C +:1051B000892F817090FD80E8182B1092E900809172 +:1051C000E80083FD0E943E161F701093E90082E004 +:1051D00084BD93E095BD9AEF97BD80936E000E94C9 +:1051E0009C0F811102C00E948A0E05E711E02BE797 +:1051F000C22E21E0D22EF80181918F018F3F11F054 +:105200000E941808C016D106B1F786EF0E94180850 +:1052100087EF0E94180883E90E94180886E90E9417 +:105220001808E4E5F2E08AE592E0A7E6B2E0119220 +:105230001D928E179F07D9F70E941E16811102C07A +:105240000E94B21582E090E00E94722F809360026B +:105250000E94B50F90930503809304030E94EB23F3 +:105260008FE39CE90197F1F700C000000E94EB2357 +:105270008091670280FF08C06FEF7FEF90E080E0D1 +:105280000E94A42F0E944F0C83E090E00E94722F96 +:1052900090E00E941E0B80913803909139030E9488 +:1052A0008A14509A589A559A5D9A549A5C9A8CE04E +:1052B00090E00E94722F90E0B0E0A0E08093500256 +:1052C00090935102A0935202B093530280915A02DC +:1052D000811133C00E941E16811104C00E94B215B4 +:1052E0000E94A21588E090E00E947A2F60938E03BE +:1052F00070938F0380939003909391036E7F71F46A +:105300000E94A21588E090E00E947A2F60938E039D +:1053100070938F0380939003909391030E942B06C8 +:105320001092840280918E0380FF04C060E0869515 +:105330000E942B1481E080935A025198599A5298F6 +:105340005A9A89B1869581704A9928C290E0892B32 +:1053500080935E028AEC92E090937C0280937B02C1 +:1053600060E081E20E942B1481E090E00E942E1503 +:1053700080E091E09093FC028093FB0218E1C12E43 +:10538000D12C00E4A02E87E692E096E0B92EB80E6C +:1053900080912E039924939400E112E1853009F461 +:1053A00051C20E94EB23882359F08FB7F8944091A3 +:1053B00000035091010360910203709103038FBFBA +:1053C000E1E6F2E0A7E6B2E010E000E0302F8D91D8 +:1053D0009191981709F45FC2292F282790E099240A +:1053E0009394422F492109F451C29DAB3EAB8921D0 +:1053F00091E009F490E09FAB0E94A2058160782FB4 +:1054000099AF88AF4DA95EA96FA989AD0E941325F8 +:10541000F801EF59FD4F8081982690828091840297 +:105420008823D1F180918302E0918E03E695E81BF9 +:10543000E0937F02823009F045C2F0E0EC51FD4F6D +:10544000E4910E2F10E0BCE08B2EB3E19B2E8091F7 +:105450008002882361F0109280020E94A20590933E +:105460007E0280937D0210928202109281020E943D +:10547000A205E0917D02F0917E028E1B9F0B8F3F73 +:105480009F4750F4E00FF11FF0937E02E0937D02FE +:105490008DE792E0F4010995E0915E02EE0FEE0FC8 +:1054A000E0935E0289B181FBEE24E0F84A9964C280 +:1054B00080E08E29E82BE0935E02EF70F0E0E15887 +:1054C000FE4F808190915D02890F80935D0220E004 +:1054D000843034F180915C028F5F80935C0212E033 +:1054E00018AB19AA81E08AAB0E94A2058160782FCF +:1054F0009CAB8BAB48A959A96AA98CA90E9413251A +:105500001BA71CA61DA60E94A2058160782F9FA73D +:105510008EA74BA55CA56DA58FA50E94132521E044 +:1055200080915D028D3F2CF580915C0281508093CB +:105530005C021EA21FA281E088A70E94A2058160D2 +:10554000782F9AA789A74EA15FA168A58AA50E9476 +:10555000132519A21AA21BA20E94A2058160782F0E +:105560009DA38CA349A15AA16BA18DA10E941325D3 +:1055700021E080915D02082E000C990B64E070E040 +:105580000E94CF2E80935D02222359F08FB7F894AA +:105590004091000350910103609102037091030355 +:1055A0008FBF86E0E4E7F2E0DE01119601900D92F4 +:1055B0008A95E1F7909076028090770210917802B8 +:1055C000009179021092760210927702109278027E +:1055D00010927902892D882909F448C080917202BD +:1055E000909173020E9493059C0190916E02992301 +:1055F00009F4AEC323333105C8F19F3F19F09F5F13 +:1056000090936E02992059F00E949C079FEF191405 +:105610000CF491E0899F802D1124809376028820DC +:1056200059F00E949C079FEF18140CF491E0899F99 +:10563000802D112480937702309176023323B1F0CC +:1056400020917702222391F045EB3403C00111240D +:10565000992309F494C19093760245EB24039001B9 +:105660001124332309F48FC130937702812F802BCB +:1056700009F448C080917002909171020E949305D4 +:105680009C0190916D02992309F45DC32536310583 +:10569000C8F19F3F19F09F5F90936D02112359F05D +:1056A0000E947A079FEF11160CF491E0899F802DDC +:1056B000112480937802002359F00E947A079FEF0B +:1056C00010160CF491E0899F802D112480937902AB +:1056D000309178023323B1F020917902222391F0A6 +:1056E00045EB3403C0011124992309F450C1909370 +:1056F000780245EB240390011124332309F44BC1B4 +:10570000309379028091760290917702892B909163 +:105710007802892B90917902892B11F00E94DA0688 +:1057200086E0FE013196A4E7B2E001900D928A95E1 +:10573000E1F70E94DA0590915F02891731F00E942B +:10574000DA0580935F020E94AB0B80912E038430B8 +:1057500009F01ECE83E08093E9008091E80082FF8B +:1057600017CE8091E80090E085FF06C00E942504D6 +:10577000882309F414C191E08091E8008B7780932D +:10578000E800992309F404CEE981E150E33108F0FF +:1057900088C1F0E0E052F04D0C94052F92E0D7CD97 +:1057A00080912E03843009F440C080E00E94AB0B4E +:1057B0001092840280917A02811116C090927A022E +:1057C00080918E03982F917090935B028E7F8093CF +:1057D0008E039FEFE0E7F2E09150E040F040E1F708 +:1057E00000C000000E94D90F1092FF020FB6F8947B +:1057F000A895C09260000FBEA092600083B7817F21 +:10580000846083BF83B7816083BF7894889583B7B2 +:105810008E7F83BF0FB6F894A89580916000886151 +:1058200080936000109260000FBE80912D0388234A +:1058300049F00E94EB23E7E6F2E08191811164C216 +:10584000BE12FBCF80912E03853009F4A9CF0E94B0 +:1058500029160E94DA050E94AB0B10927A02809101 +:105860005B02882361F080918E03816080938E03B8 +:1058700060E086950E942B140E94C30F92CD809108 +:1058800085028823C9F30E94D90FF6CF9F5F990C38 +:10589000943009F0A6CD0F5F1F4F0630110509F0B7 +:1058A00095CD8FEF8AAF8BAF1CAE0E94A2058160B1 +:1058B000782F9EAF8DAF4AAD5BAD6CAD8EAD0E94C3 +:1058C0001325ACCD863059F4F0E0EF51FD4FE49153 +:1058D0000E2F10E0ACEF8A2EA2E19A2EB8CD8930BF +:1058E00061F4E695F0E0E252FD4FE4910E2F10E0F6 +:1058F000F8E68F2EF2E19F2EAACD8F3061F4E69567 +:10590000F0E0E552FD4FE4910E2F10E0EAEF8E2E0D +:10591000E1E19E2E9CCD853159F4F0E0E852FD4F37 +:10592000E4910E2F10E07CEA872E71E1972E8FCD47 +:1059300008E210E043E2842E41E1942E883109F41C +:1059400086CD833249F4E6EDF2E00591149163EAE5 +:10595000862E62E1962E7BCD04EF11E05AEE852E65 +:1059600050E1952E843209F472CD00ED17E03AE251 +:10597000832E36E0932E6BCD82E090E09ACD81E0CD +:10598000809376026ACE81E0809377026FCE81E0C9 +:1059900080937802AECE81E080937902B3CE00E2AC +:1059A00010E0CE0101964C018091E80085FD0AC00F +:1059B0008091E8008B778093E8000E94250488237B +:1059C00099F3D9CE8091F100F40181934F010150F8 +:1059D000110951F7D0CE1A8289E08B832DC08A81BC +:1059E000823009F4A7C18330A9F0813009F059C091 +:1059F0002FB7F89460910003709101038091020326 +:105A0000909103032FBF0E940B2F6B837C838D83A8 +:105A10009E8312C0809167028B83809168028C8381 +:105A2000809169028D8380916A028E8380916B02DE +:105A30008F8380916C02888780912E03843009F0D7 +:105A4000A7CC1091E9001F709091EC00892F817014 +:105A500090FD80E8182B82E08093E9008091E800B7 +:105A600080FF0DC050E040E060E270E0CE010196A2 +:105A70000E9456048091E8008E778093E8001F70A2 +:105A80001093E90085CC8A81823059F46B817C8146 +:105A90008D819E810E940B2F86E290E00E94862FCE +:105AA000CBCF8FEF8983C8CF4C816B818A810E94D5 +:105AB000B30E9827892798279E838D83BDCF8D802D +:105AC0009E809824892498248A810B81F8E00F9F76 +:105AD0008001112420E3829F000D111D11248C816F +:105AE00090E0880F991F080F191F692DC80187962C +:105AF0000E94862F682DC8018896D0CF0E941F0E65 +:105B00009BCF8A818138C1F060F4803809F094CF4E +:105B100020E04B816091900380918F030E943213AB +:105B20008BCF823859F1833809F086CF20E040913D +:105B300091036C818B81F2CF60E08B810E942B14EA +:105B40009B8180918E03911111C08E7F80938E0373 +:105B5000109284024FEF80E792E0415080409040E5 +:105B6000E1F700C000000E94D90F66CF81608093EA +:105B70008E0360E086950E942B145ECF8B8180930C +:105B800092035ACF8A81813899F030F4803809F035 +:105B900053CF8091910321CF823891F0833809F05F +:105BA0004BCF80918F038B83809190038C8344CF64 +:105BB00080918E0380FF02C086950FCF80E00DCFCD +:105BC000809192030ACF60918E0370918F03809130 +:105BD0009003909191030E9420132ECF80E18A833D +:105BE0002BCF81E08A8389EFF8CE0A811B811027B1 +:105BF00001271027FE0131963F018C80CF01880DCF +:105C0000911D4C01C801895F9D4F8614970409F4CA +:105C100013CF093FE1E01E0750F40E94722FF301F9 +:105C200084830F5F1F4FFFEF6F1A7F0AEBCFF301E3 +:105C30001482F7CF0A811B81102701271027CE017C +:105C400001963C018C80800E912E911CC801895FC9 +:105C50009D4F8016910609F4EFCE093FE1E01E0743 +:105C600020F4F30164810E94862FFFEF6F1A7F0AF0 +:105C70000F5F1F4FEBCF0E940F0EDECE8AE0AFCF3B +:105C80000A811B81102701271027CE0101963C01B4 +:105C90008C80FC01E80DF11D4F01C8018796861428 +:105CA000970409F4C9CE003EF1E01F0750F40E94AA +:105CB000722FF30184830F5F1F4FFFEF6F1A7F0A6C +:105CC000ECCFF3011482F7CF0A811B811027012743 +:105CD0001027CE0101963C018C80800E912E911CE4 +:105CE000C80187968016910609F4A6CE003EE1E031 +:105CF0001E0720F4F30164810E94862FFFEF6F1AC4 +:105D00007F0A0F5F1F4FECCF09BD19BD09B400FE1C +:105D1000FDCF8091D8008F7D8093D8008091E000E6 +:105D200082608093E0008091E00081FDFCCF0E94C2 +:105D3000291688CD86E290E00E94722F1B821C8279 +:105D40001D828E8379CE2D32314008F0A4CCDACC7E +:105D50002D32314008F053CC89CC87FB082E062623 +:105D600087FD819567FD61950E94432F0EF4919503 +:105D700007FC81950895AA1BBB1B51E107C0AA1F10 +:105D8000BB1FA617B70710F0A61BB70B881F991FDC +:105D90005A95A9F780959095BC01CD01089597FB80 +:105DA000072E16F4009407D077FD09D00E94BB2E71 +:105DB00007FC05D03EF4909581959F4F089570950E +:105DC00061957F4F0895A1E21A2EAA1BBB1BFD010E +:105DD0000DC0AA1FBB1FEE1FFF1FA217B307E407CA +:105DE000F50720F0A21BB30BE40BF50B661F771F22 +:105DF000881F991F1A9469F7609570958095909502 +:105E00009B01AC01BD01CF010895EE0FFF1F05906E +:105E1000F491E02D09946927962769277827872729 +:105E2000782708950E941A2F332312F48A1B9B0BA4 +:105E30000C942B2FA29FB001B39FC001A39F700DA4 +:105E4000811D1124911DB29F700D811D1124911D82 +:105E500008950E941A2FB7FF0895821B930B08958F +:105E60000E941A2FA59F900DB49F900DA49F800DA6 +:105E7000911D11240895B7FF0C94302F0E94302FEC +:105E8000821B930B0895991B79E004C0991F961704 +:105E900008F0961B881F7A95C9F780950895FB0135 +:105EA000DC0102C005900D9241505040D8F7089592 +:105EB000FC014150504030F001900616D1F7319767 +:105EC000CF010895882799270895FB01DC0104C0BC +:105ED0008D910190801921F441505040C8F7881BE2 +:105EE000990B0895F999FECF92BD81BDF89A992733 +:105EF00080B50895A6E1B0E044E050E00C94AC2FEA +:105F0000A8E1B0E042E050E00C94AC2F262FF999C4 +:105F1000FECF92BD81BDF89A019700B4021639F008 +:105F20001FBA20BD0FB6F894FA9AF99A0FBE0895D9 +:105F30000396272F0E94872F0E94862F252F0E94CD +:105F4000872F242F0C94872F0196272F0E94872FAD +:105F50000C94862FDC01CB01FC01F999FECF06C021 +:105F6000F2BDE1BDF89A319600B40D924150504017 +:105F7000B8F70895F894FFCF470F470F500F500F11 +:105F8000520F500F500F500F470F470F570F500F22 +:105F9000500F570F23174B179E174B179E177E173F +:105FA000B6179E17B318C0180D1D0D1D7C1D7C1D46 +:105FB000D71DF11D431D431DFC1D841E931E931E02 +:105FC000EB2CEF2C432D542D5F2D7E2D812DC22DDA +:105FD000E32D512D512DEE2DF12DF52D1A2E3B2EA9 +:065FE0003E2E402E642E4F +:105FE60090050F0CEE0BEA0BE60B01191A1B1C1D94 +:105FF6001E1F202122010201FC002A00000000F6DB +:10600600004C00000000F0005000000000EA0051C3 +:1060160000000000E4004F00000000DE0052000017 +:1060260000000101818283E200E900EA00B500B6C2 +:1060360000B700CD008301CC008A019201940121B2 +:1060460002230224022502260227022A02B300B4F2 +:10605600006F007000F03435366667F6F7939600E9 +:10606600FF0100010000FFFF0000010001FF00002A +:1060760001020202020606060909090909090F0FAB +:106086000F0F0F0F151515181919191919191919AF +:10609600191923244022B6DA01B8010201FB0614BD +:0460A60007340700B4 +:00000001FF From deab6aba6c7a49f8770fcbbbbef8ccadcdea1edf Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 11 Sep 2021 02:54:46 -0400 Subject: [PATCH 16/94] Cleanup files --- .../ps17/keymaps/via_fade/config.h | 22 - .../ps17/keymaps/via_fade/keymap - Copy.c | 447 ------------------ .../ps17/keymaps/via_fade/keymap.c | 428 ----------------- .../ps17/keymaps/via_fade/rules.mk | 1 - 4 files changed, 898 deletions(-) delete mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_fade/rules.mk diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/config.h b/keyboards/solartempest/ps17/keymaps/via_fade/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_fade/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c b/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c deleted file mode 100644 index 05687f34ca3b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_fade/keymap - Copy.c +++ /dev/null @@ -1,447 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -static uint16_t last_rgb; //For RGB Fade effect -static uint8_t rgb_state[RGBLED_NUM]; -#define RGB_SUSTAIN 0.8 //default 0.7 -#define RGB_HIT 0x99 - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#endif - -#ifdef COMBO_ENABLE //Tap combos - enum combos { - kppls_7, //Hold plus and 7 to backspace - kppls_8, //Hold plus and 8 to delete - kpent_4, //Hold enter and 4 for left arrow - kpent_5, //Hold enter and 5 for down arrow - kpent_6, //Hold enter and 6 for right arrow - kpent_8, //Hold enter and 4'8 for up arrow - }; - const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; - const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; - const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; - const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; - const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; - combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE), - [kpent_4] = COMBO(kpent4_combo, KC_LEFT), - [kpent_5] = COMBO(kpent5_combo, KC_DOWN), - [kpent_6] = COMBO(kpent6_combo, KC_RGHT), - [kpent_8] = COMBO(kpent8_combo, KC_UP) - }; -#endif - -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. - enum { - TD_MINUS_NUMLOCK, - }; - qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), - }; - //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) -#endif - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init - //For RGB fade effect - last_rgb = timer_read(); - rgblight_setrgb(0, 0, 0); - for (int i = 0; i < RGBLED_NUM; i++) { - rgb_state[i] = 0; - } - //End RGB fade effect -}; - - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - //tap_code(KC_UP); - //tap_code(KC_DOWN); - tap_code(KC_F24); - } - - #ifdef RGBLIGHT_ENABLE - // Animate the ripple effect at 50Hz (20ms interval): - if (timer_elapsed(last_rgb) > 20) { - last_rgb = timer_read(); - - uint8_t next_rgb_state[RGBLED_NUM]; - for (int i = 0; i < RGBLED_NUM; i++) { - // Retain some: - next_rgb_state[i] = rgb_state[i] * RGB_SUSTAIN; - } - // Assign the new state: - for (int i = 0; i < RGBLED_NUM; i++) { - rgb_state[i] = next_rgb_state[i]; - led[i].b = rgb_state[i]; - } - rgblight_set(); - } - #endif //RGBLIGHT_ENABLE - -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { -/* #ifdef RGBLIGHT_ENABLE //For RGB fade - if (record->event.pressed) { - // Bump the level of the LED that corresponds to this key. - keypos_t key = record->event.key; - - int i = 0; - i=26; - rgb_state[i] = RGB_HIT; - } - #endif*/ - - - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } - } - return true; - } - return true; -} - - -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - // This is what the LED layout is. - // 1, 0, - // 3, 2, - // 9, 8, 7, 6, 5, 4, - // 13, 12, 11, 10, - // 18, 17, 16, 15, 14, - // 22, 21, 20, 19, - // 27, 26, 25, 24, 23 - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,100); - break; - case 1: - rgblight_sethsv_noeeprom(5,255,100); - break; - case 2: - break; - case 3: - rgblight_sethsv_noeeprom(215,255,100); - break; - case 4: - rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - } - return state; - }; -#endif - - -bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality - #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - - rgb_state[24] = RGB_HIT; - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - - rgb_state[26] = RGB_HIT; - } - } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ - #endif - return true; -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c b/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c deleted file mode 100644 index 94e4d9be467c..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_fade/keymap.c +++ /dev/null @@ -1,428 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -bool is_encoder_rotate = false; // For encoder animated LEDs -bool encoder_effect = false; -uint16_t encoder_timer = 0; -uint16_t encoder_interval = 500; - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#endif - -#ifdef COMBO_ENABLE //Tap combos - enum combos { - kppls_7, //Hold plus and 7 to backspace - kppls_8, //Hold plus and 8 to delete - kpent_4, //Hold enter and 4 for left arrow - kpent_5, //Hold enter and 5 for down arrow - kpent_6, //Hold enter and 6 for right arrow - kpent_8, //Hold enter and 4'8 for up arrow - }; - const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; - const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; - const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; - const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; - const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; - combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE), - [kpent_4] = COMBO(kpent4_combo, KC_LEFT), - [kpent_5] = COMBO(kpent5_combo, KC_DOWN), - [kpent_6] = COMBO(kpent6_combo, KC_RGHT), - [kpent_8] = COMBO(kpent8_combo, KC_UP) - }; -#endif - -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. - enum { - TD_MINUS_NUMLOCK, - }; - qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), - }; - //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) -#endif - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - tap_code(KC_F24); - //tap_code(KC_UP); - //tap_code(KC_DOWN); - } - - #ifdef RGBLIGHT_ENABLE - if (!encoder_effect && is_encoder_rotate) { //Turn on the effect - rgblight_set_effect_range(5, 4); - rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); - is_encoder_rotate = false; - encoder_effect = true; - } else if (!is_encoder_rotate && timer_elapsed(encoder_timer) > encoder_interval) { //Turn off the effect - rgblight_set_effect_range(0, 27); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); - is_encoder_rotate = false; - encoder_effect = false; - } else { - is_encoder_rotate = false; //Wait until encoder is turned again - } - #endif -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } - } - return true; - } - return true; -} - - -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - // This is what the LED layout is. - // 1, 0, - // 3, 2, - // 9, 8, 7, 6, 5, 4, - // 13, 12, 11, 10, - // 18, 17, 16, 15, 14, - // 22, 21, 20, 19, - // 27, 26, 25, 24, 23 - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,100); - break; - case 1: - rgblight_sethsv_noeeprom(5,255,100); - break; - case 2: - break; - case 3: - rgblight_sethsv_noeeprom(215,255,100); - break; - case 4: - rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - } - return state; - }; -#endif - - -bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality - #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - - is_encoder_rotate = true; - encoder_timer = timer_read(); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - - is_encoder_rotate = true; - encoder_timer = timer_read(); - } - } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ - #endif - return true; -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/keymaps/via_fade/rules.mk b/keyboards/solartempest/ps17/keymaps/via_fade/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_fade/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes From bdf3e21dc71ec0c800886dfe8d5577af9ce2a22d Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 11 Sep 2021 02:58:03 -0400 Subject: [PATCH 17/94] Changed debounce to 6. --- keyboards/solartempest/sofle/config.h | 2 +- .../sofle/solartempest_sofle_via.hex | 2360 ++++++++--------- 2 files changed, 1181 insertions(+), 1181 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index f0292a3d05e5..f1875bf6a79f 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -43,7 +43,7 @@ #define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. #define DIODE_DIRECTION COL2ROW -#define DEBOUNCE 5 +#define DEBOUNCE 6 //Default is 5 // Encoder support #define ENCODERS_PAD_A { F5 } diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 307e1764f1c8..4d6ed674c042 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C94DE060C9425070C9425070C94FF2F06 +:100000000C94DE060C9425070C9425070C94003004 :100010000C9425070C9425070C9425070C942507B0 -:100020000C9425070C9425070C94EA190C94A61936 -:100030000C9452260C9425070C9425070C94250744 +:100020000C9425070C9425070C94EB190C94A71934 +:100030000C9453260C9425070C9425070C94250743 :100040000C9425070C9425070C9425070C94250780 -:100050000C9425070C94C11A0C9425070C942507C1 +:100050000C9425070C94C21A0C9425070C942507C0 :100060000C9425070C9425070C9425070C94250760 :100070000C9425070C9425070C9425070C94250750 :100080000C9425070C9425070C9425070C94250740 @@ -224,9 +224,9 @@ :100DF0001092690610926A0614BE84B7877F84BF7A :100E00000FB6F894A8958091600088618093600087 :100E1000109260000FBEE0E0F8E3099512E0A0E058 -:100E2000B1E0E6EAFEE602C005900D92A833B107F4 +:100E2000B1E0E8EAFEE602C005900D92A833B107F2 :100E3000D9F726E0A8E3B2E001C01D92A736B207B9 -:100E4000E1F70E9479260C941A370C940000CF9396 +:100E4000E1F70E947A260C941B370C940000CF9394 :100E5000DF934091650650916606455654409A01CD :100E6000205A3F4F21303240C0F020E032E0241BB6 :100E7000350B6091630470916404FC01CA01240F76 @@ -307,7 +307,7 @@ :10132000DF91CF911F910F91FF90EF90DF90BF90D1 :10133000AF900895E62EF12C4491D42EE42FF0E0E6 :1013400026E0829FC00111242FEF30E0B9010E94F6 -:101350007931802F90E0880F991F55E5569FD00175 +:101350007A31802F90E0880F991F55E5569FD00174 :10136000579FB00D11248A1B9B0B982F990F890F43 :101370005901AE18BF08AE9ED001AF9EB00DBE9E03 :10138000B00D11245B2F189F80011124012F11270C @@ -421,10 +421,10 @@ :101A400092959F7011F0892F94E0282F2695269566 :101A500011F09E5F822F869509F09F5F892F089570 :101A6000CF92DF92EF92FF920F931F93CF93DF936A -:101A70006C017B0164E670E088E70E94562EEC0161 +:101A70006C017B0164E670E088E70E94572EEC0160 :101A800097FD12C010E000E0F601E00FF11F849115 -:101A900064E670E00E94D02EEC01892B29F40F5FE0 -:101AA0001F4F0E151F0581F70E94532FCE01DF91A6 +:101A900064E670E00E94D12EEC01892B29F40F5FDF +:101AA0001F4F0E151F0581F70E94542FCE01DF91A5 :101AB000CF911F910F91FF90EF90DF90CF900895FD :101AC0008091350490913604911103C091E08927EB :101AD0000895882369F062E070E087E19DE00E944C @@ -486,7 +486,7 @@ :101E50008091480393010C2C01C0220F0A94EAF7E9 :101E6000822309F43FC0F601EE0FFF1FE80DF91DB4 :101E7000E590F490E114F10409F477CF45E050E0E7 -:101E8000B701CE0101960E94323209810F3F51F114 +:101E8000B701CE0101960E94333209810F3F51F113 :101E90008A81800F9927991F8B34910514F08AE469 :101EA00090E05C01AA0CBB1C8A0D9B1DDC01A45BAD :101EB000BC4F5D01049D80011124045B1C4F0A1579 @@ -505,7 +505,7 @@ :101F80009B07B9F780915604833009F471C0B8F407 :101F9000813009F448C0823009F4B4C08091E8006F :101FA00083FF3CC180915504909156049A3008F00B -:101FB00035C1E92FF0E0E45EF84C0C94CC318A3066 +:101FB00035C1E92FF0E0E35EF84C0C94CD318A3066 :101FC00009F48FC08B3009F470C0893039F78091E3 :101FD0005504813219F78091590490915A04009761 :101FE00011F00297D9F68091E800877F8093E8008E @@ -590,22 +590,22 @@ :1024D00080E0809352041092E9008091E800877FA9 :1024E0008093E8000E94E40799CE1F93CF93DF9377 :1024F000162FC0916506D09166068A30D1F42091DE -:102500002A04CE0185569440622F70E00E947931F2 -:10251000281B822F66E00E948D31C82FC15020F405 +:102500002A04CE0185569440622F70E00E947A31F1 +:10251000281B822F66E00E948E31C82FC15020F404 :10252000DF91CF911F91089560E080E20E947512C3 :10253000F5CF8D30E9F4C556D44020912A04622F9E -:1025400070E0CE010E947931281B822F9E01280F56 +:1025400070E0CE010E947A31281B822F9E01280F55 :10255000311D2115324018F080E0D0E0C0E0C80FF6 :10256000D11DCB59DB4FD0936606C0936506D8CFFB :1025700096E0FE01ABE2B4E001900D929A95E1F78E :10258000803E90F186E0FE0111928A95E9F7C091B4 :102590006506D0916606111133C046E050E0BE01D9 -:1025A0008BE294E00E943B329E0125563440892BF9 +:1025A0008BE294E00E943C329E0125563440892BF8 :1025B00091F52A5F3F4F40912A04642F70E0C901D2 -:1025C0000E947931481B463010F4240F311D21152B +:1025C0000E947A31481B463010F4240F311D21152A :1025D00072E0370710F030E020E02B593B4F30938A :1025E0006606209365069CCFF6E08F9FB00111240C -:1025F0006B52784F46E050E0CE010E943232C7CF96 +:1025F0006B52784F46E050E0CE010E943332C7CF95 :102600009E012A5F3F4FFE012E173F0731F2808166 :1026100080958193F9CFC90145E0969587954A95B4 :10262000E1F741E050E0BA0102C0660F771F8A95DA @@ -616,1177 +616,1177 @@ :10267000DF93EC01F62EFC0101900020E9F78F01B9 :1026800001501109C017D10730F0DF91CF911F9190 :102690000F91FF9008956F2D89910E947512F2CFCE -:1026A000CF93DF93C7E5D2E060E0CE010E94F7341C +:1026A000CF93DF93C7E5D2E060E0CE010E94F8341B :1026B0002196C11584E0D807B9F7DF91CF9108952D :1026C0006F927F928F929F92AF92BF92CF92DF9242 :1026D000EF92FF920F931F93CF93DF9385EDC82E58 :1026E00087E0D82E91ECE92EF12CE701CC58D109E6 :1026F00036011BC0F50185909490692DC8010E9498 -:10270000F734682DC80101960E94F73482E0A80EC4 +:10270000F834682DC80101960E94F83482E0A80EC2 :10271000B11C0E5F1F4FC017D10761F78EE0680E26 :10272000711C2E96CE15DF0529F08E010E50110971 :102730005301E0CF7E018CE8E80EF11C8CE8C80E56 :10274000D11C81EFE81682E0F80679F6DF91CF918F :102750001F910F91FF90EF90DF90CF90BF90AF90BF :102760009F908F907F906F900895CF93C82F6FEFB9 -:10277000811161E283E290E00E94F7346FEFC111B2 -:1027800068E084E290E00E94F7346FEFC11160E3EB -:1027900085E290E0CF910C94F73480E00E94B5136D -:1027A00060E086E290E00E94F7340E9460130E948D -:1027B000501381E00C94B5130F931F93CF93DF93C5 -:1027C000C42FD0E0CC0FDD1F2EE0629FC00DD11DC5 -:1027D00011243CE8839FC00DD11D1124CE018796A2 -:1027E0000E94E334082F10E0102F0027CE018896B6 -:1027F0000E94E3349801282BC901DF91CF911F91EA -:102800000F910895462F843038F47A3028F46730D9 -:1028100018F4672F0C94DC1390E080E00895CF92B9 -:10282000DF92FF920F931F93CF93DF936C01009180 -:102830005D0480919C02082BC7E0D0E010E0FC2EE4 -:10284000C8010C2E02C0959587950A94E2F780FD89 -:102850000CC02197A0F7F12C8F2DDF91CF911F9104 -:102860000F91FF90DF90CF900895B6018C2F0E94BA -:1028700002140E946C0A019761F3EECFCF93DF93AD -:10288000EC010E940F14BE010E940214DF91CF914F -:102890000C946C0AFC01808191810E943E14292FC6 -:1028A0002F7092959F7092509E3078F4E92FF0E04F -:1028B000EA5DF84C0C94CC31803F19F020F4883E4E -:1028C00020F481E00895843FE1F380E00895883E9C -:1028D000C0F3813FD1F7F5CF822F869586958695F7 -:1028E000089583E290E00E94E334813289F484E227 -:1028F00090E00E94E334883059F485E290E00E9431 -:10290000E33491E0803309F090E0892F81700895DD -:1029100080E0FCCFCF92DF92EF92FF926B017C01BF -:102920000E946209B701A60188E090E0FF90EF9055 -:10293000DF90CF900C940935AF92BF92CF92DF9287 -:10294000EF92FF920F931F93CF93DF9300D00F92DC -:10295000CDB7DEB7082FF62E142FE22E80915E043D -:1029600080FF4FC0E82FE695AE2FB0E0A45EBD4FCC -:102970009C91909345038E7F823009F056C0413A76 -:1029800008F040EA9E012F5F3F4F6F2D802F0E947D -:10299000780980915E0480FF11C02B8139814A81C2 -:1029A000809178019091790153E0859FF001112485 -:1029B000E45BFC4F891798F10E948E0E80915F04B2 -:1029C000801308C0809160048F1104C0809161045D -:1029D000811729F080914703826080934703009319 -:1029E0005F04F092600410936104EE2051F0609156 -:1029F0005E0470915F0480916004909161040E9474 -:102A00008A140F900F900F90DF91CF911F910F912B -:102A1000FF90EF90DF90CF90BF90AF9008954183EB -:102A2000308322838F5F3396C5CF923039F6E250E0 -:102A30008E2F8170D82EE695F0E0EA57F84FA590DA -:102A4000B490C12CBB2460917A01C61608F0B4CFB3 -:102A50002C2D30E0A29EC001A39E900DB29E900D41 -:102A6000112470E00E947931802FD11016C0860F9A -:102A700040917801420F532F511D9A01220F331FAD -:102A8000240F351F245B3C4F412F113A08F040EAD8 -:102A90006F2D0E947809C394D6CF861BE9CFEEE54F -:102AA000F4E0438121E1421B08F440E021E062812F -:102AB00081810C949C14EEE5F4E0438121E1420F06 -:102AC00008F44FEF21E0628181810C949C14EEE5C3 -:102AD000F4E0628121E1621B08F460E021E04381BF -:102AE00081810C949C14EEE5F4E0628121E1620F97 -:102AF00008F46FEF21E0438181810C949C14EEE592 -:102B0000F4E0818121E04381628188500C949C141F -:102B1000EEE5F4E0818121E043816281885F0C94DD -:102B20009C1480916204882319F081508093620480 -:102B300060915E0470915F048091600490916104E3 -:102B40000C948A1480916204833018F48F5F809310 -:102B5000620460915E0470915F04809160049091C2 -:102B600061040C948A1490915E0490FF27C09170C8 -:102B700081111DC0926090935E0480914703816033 -:102B800080934703662351F060915E0470915F0467 -:102B900080916004909161040E948A1420E0409129 -:102BA00061046091600480915F040C949C148C30EB -:102BB00010F09661E0CF880F982BDDCF089521E0CB -:102BC00030E0A90102C0440F551F8A95E2F7CA01FF -:102BD000209148036623C1F0822B809348038091A3 -:102BE000470380618093470380914603811106C0AB -:102BF00080915E0460E086950E94B31580915E042A -:102C000080FD05C00C948E0E80958223E6CF08953A -:102C1000CF93DF93C82FC17082FBDD27D0F981FBF2 -:102C2000662760F984E00E94DF1561E06C2785E08B -:102C30000E94DF156D2F86E0DF91CF910C94DF1598 -:102C40000F931F93CF93C82F61E08111682F61709C -:102C500080E00E94DF15C1FB662760F9C11101C049 -:102C600060E081E00E94DF15C2FB662760F9C111B8 -:102C700001C060E082E00E94DF15C3FB662760F9B7 -:102C8000C11101C060E083E00E94DF154C2F50E0CD -:102C900070E060E0DB01CA01F4E0B695A795979576 -:102CA0008795FA95D1F70097A105B10551F1AC01CF -:102CB000BD0184E08A019B01E2E0369527951795D6 -:102CC0000795EA95D1F7011511052105310519F090 -:102CD0008E5FB901A8017695679557954795452B65 -:102CE000462B472B09F08F5F8130A1F0882359F0E4 -:102CF0008230A9F08330C1F08C2FCF911F910F91BA -:102D0000089580E0D7CF20E040E56FEF82E30E9496 -:102D10009C14F2CF20E040E56FEF8CEFF8CF20E07D -:102D200040E56FEF86E7F3CF20E040E56FEF8AEDF7 -:102D3000EECF0E94201680935D040C944B0C809182 -:102D40005D04982F9670963019F488600C9499164B -:102D5000877FFCCF21E030E001C0220F8A95EAF79F -:102D6000209580915D0482230C94991621E030E037 -:102D700001C0220F8A95EAF780915D04822B0C94A2 -:102D8000991680915E048695815009F48BE061E08C -:102D90000C94B31580915E0486958F5F8C3008F09B -:102DA00081E061E00C94B31580915E0480FF07C060 -:102DB000869582588F77893010F40C94CA1661E09A -:102DC00082E00C94B315EEE5F4E083E08083118299 -:102DD0008FEF828380EA83831482A5E4B3E01296A6 -:102DE0008C911297836012968C936081718182819D -:102DF00093810C948A1469EE7EEF90E080E00E944B -:102E0000153560E082E090E00E94F73460E083E0F6 -:102E100090E00E94F73410929C0260E084E090E021 -:102E20000E94F73460E082E290E00E94F73460E0B4 -:102E300085E090E00E94F73460E086E090E00E9438 -:102E4000F7346FEF87E090E00E94F73440E050E005 -:102E5000BA0188E090E00E94093560E08DE090E0E2 -:102E60000E94F73440E050E0BA0188E190E00E940F -:102E7000093560E087E190E00E94F73440E050E0DF -:102E8000BA018CE190E00E94093570E060E080E2D8 -:102E900090E00E94153540E050E0BA0188E190E0F2 -:102EA0000E94093580E00E94B5130E94CD1340E0D6 -:102EB00050E0BA018FE090E00E94093540E050E018 -:102EC000BA0183E190E00C9409350F931F93CF93DF -:102ED000DF9300D000D0CDB7DEB74091D002509143 -:102EE000D1026091D2027091D3022FB7F8948091F1 -:102EF0003E0490913F04A0914004B09141042FBF43 -:102F0000841B950BA60BB70B84369105A105B10563 -:102F100088F10E94460E882379F10E94F8086E5FBE -:102F20007F4F8F4F9F4F69837A838B839C838091E0 -:102F30002B0190912C0187549D4F40912A0150E024 -:102F40004530510510F044E050E0BE016F5F7F4F07 -:102F50000E94483284E090E00E94C530892BD9F469 -:102F60000E94F8086093D0027093D1028093D2023D -:102F70009093D30281E010C00E94F8080091E10212 -:102F80001091E2022091E3023091E402600F711F80 -:102F9000821F931FC4CF80E00F900F900F900F906F -:102FA000DF91CF911F910F9108958F929F92AF92D1 -:102FB000BF92CF92DF92EF92FF920F931F93CF9326 -:102FC000DF93EB0188809980AA80BB809FB7F8943B -:102FD000C0903E04D0903F04E0904004F090410443 -:102FE0009FBFC818D908EA08FB0894E6C916D1049F -:102FF000E104F10410F4442311F1E82E082E000C32 -:10300000FF089AE08902F0011124E050FF4F83810C -:10301000948187549D4F428150E00417150708F4AE -:10302000A801B9010E944832C7010E94C530892B0E -:10303000A1F40E94F808688379838A839B8381E0E6 -:10304000DF91CF911F910F91FF90EF90DF90CF9084 -:10305000BF90AF909F908F90089580E0F1CF0F9335 -:103060001F93CF93DF930F92CDB7DEB780913504D6 -:1030700089832091CF0290E041E02817190609F4D6 -:1030800040E001E010E09E012F5F3F4F6CED72E0E9 -:1030900087E00E94D5170F90DF91CF911F910F917C -:1030A00008950F931F93CF93DF930F92CDB7DEB7A1 -:1030B0008091FB02898341E09091CE02981301C078 -:1030C00040E001E010E09E012F5F3F4F68ED72E0AD -:1030D00086E00E94D5170F90DF91CF911F910F913D -:1030E00008950F931F93CF93DF93CDB7DEB7299742 -:1030F0000FB6F894DEBF0FBECDBF85E0EEE5F4E07D -:10310000DE01119601900D928A95E1F780914503B9 -:1031100090914603A0914703B09148038E839F830B -:10312000A887B98741E08885811101C040E009E0A6 -:1031300010E09E012F5F3F4F64ED72E085E00E943A -:10314000D51781111092470329960FB6F894DEBF68 -:103150000FBECDBFDF91CF911F910F9108956F9258 -:103160007F928F929F92AF92BF92CF92DF92EF9217 -:10317000FF920F931F93CF93DF930F92CDB7DEB7DC -:10318000862E5A016901682E880F7708C3010E94B4 -:10319000C530892B09F088C08AE0869DF001879DA3 -:1031A000F00D1124E050FF4F458150E041155105CD -:1031B00011F041E050E08AE0869DF001879DF00D1E -:1031C0001124E050FF4F6681778167547D4FCE0117 -:1031D00001960E944832F5014081518162817381DC -:1031E0002FB7F89480913E0490913F04A091400441 -:1031F000B09141042FBF841B950BA60BB70B8436EF -:103200009105A105B10540F4B701C8010E94470925 -:103210009981891709F44FC0082C000C9908C40142 -:103220000E94C530892B91F0B12C8B2D0F90DF912E -:10323000CF911F910F91FF90EF90DF90CF90BF90B3 -:10324000AF909F908F907F906F9008958AE0889DB7 -:10325000F001899DF00D1124E050FF4F458150E0B1 -:10326000E416F50608F4A7018AE0889DF001899D1F -:10327000F00D1124E050FF4F6681778167547D4F38 -:10328000C6010E944832B701C8010E9447099981CE -:103290008913CACF0E94F808F50160837183828385 -:1032A0009383BB24B394C1CFB12CA701B801C6014D -:1032B0000E944832BACFBB24B394F7CFCF92DF92AB -:1032C000EF92FF920F931F93CF93DF9300D000D024 -:1032D0000F92CDB7DEB76B0185E0E82EF12C0AEB3B -:1032E00012E09E012F5F3F4F41EB52E061E080E032 -:1032F0000E94AF18882349F095E0FE013196ACEAB0 -:10330000B2E001900D929A95E1F795E0ECEAF2E0D7 -:10331000D60101900D929A95E1F70F900F900F90C2 -:103320000F900F90DF91CF911F910F91FF90EF9031 -:10333000DF90CF90089590E080E00E94F134893EC4 -:103340009E4F11F40C94711480E008951F920F9217 -:103350000FB60F9211242F933F934F935F936F9368 -:103360007F938F939F93AF93BF93CF93DF93EF930D -:10337000FF93D091E900DF708091EC00C82FC170FD -:1033800080FDC0E81092E9008091F000877F809373 -:10339000F00078940E94AC0F1092E9008091F00048 -:1033A00088608093F000CD2BCF70C093E900FF912F -:1033B000EF91DF91CF91BF91AF919F918F917F91CD -:1033C0006F915F914F913F912F910F900FBE0F9092 -:1033D0001F9018951F920F920FB60F9211242F93E2 -:1033E0003F934F935F936F937F938F939F93AF938D -:1033F000BF93EF93FF938091E10082FF09C080911A -:10340000E20082FF05C08091E1008B7F8093E100A4 -:103410008091DA0080FF24C08091D80080FF20C016 -:103420008091DA008E7F8093DA008091D90080FF4E -:103430009BC080E189BD82E189BD09B400FEFDCF5A -:1034400081E08093530480914504811109C00E945A -:103450006A070E9435088091E20084608093E20050 -:103460008091E10080FF17C08091E20080FF13C0CF -:103470008091E2008E7F8093E2008091E200806183 -:103480008093E2008091D80080628093D80019BCBC -:1034900085E0809353048091E10084FF29C08091EE -:1034A000E20084FF25C080E189BD82E189BD89B544 -:1034B000982F917080FFFBCF8091D8008F7D8093F3 -:1034C000D8008091E1008F7E8093E1008091E2003E -:1034D0008F7E8093E2008091E20081608093E20021 -:1034E00080915404882309F445C084E080935304F8 -:1034F0008091E10083FF27C08091E20083FF23C019 -:103500008091E100877F8093E10082E08093530403 -:10351000109254048091E1008E7F8093E1008091AD -:10352000E2008E7F8093E2008091E20080618093D0 -:10353000E20042E060E080E00E9403088091F00039 -:1035400088608093F000FF91EF91BF91AF919F91C0 -:103550008F917F916F915F914F913F912F910F903C -:103560000FBE0F901F90189519BC10925304109223 -:10357000450476CF8091E30087FD93E09093530458 -:10358000B7CF78941F921FB61F9211248F939F93E9 -:10359000AF93BF9380913E0490913F04A09140046B -:1035A000B09141040196A11DB11D80933E049093FA -:1035B0003F04A0934004B0934104BF91AF919F9109 -:1035C0008F911F901FBE1F9018959C014FB7F894C4 -:1035D00080913E0490913F04A0914004B091410439 -:1035E0004FBF821B930B08952FB7F89480913E0430 -:1035F00090913F04A0914004B09141042FBF0895E1 -:103600008F929F92AF92BF92CF92DF92EF92FF92F2 -:103610000F931F93CF93DF93CDB7DEB72F970FB6DE -:10362000F894DEBF0FBECDBF8E010F5F1F4F8AE043 -:10363000D8011D928A95E9F787E5C82E81E0D82E3A -:10364000F12CE12CAA24A394B12CF60181916F01F5 -:103650008F3F09F44AC0F894E82FE295EF70F0E04C -:1036600021A18F70A50102C0440F551F8A95E2F772 -:10367000CA01922F982B91A392A18095892382A3AE -:103680000E94100A00C0E0E5F1E030E020E0912C5B -:1036900041914F3F09F47FC0A42FA295AF70B0E0D5 -:1036A00090968C9190E04F7002C0959587954A95C1 -:1036B000E2F780FD70C08A2D022E01C0880F0A94A7 -:1036C000EAF7982A2F5F3F4F2730310509F7F601B7 -:1036D000319780818F3F11F00E94120A50EA5A956B -:1036E000F1F7F801EE0DFF1D90828FEFE81AF80A4E -:1036F00095E0E916F10409F0A8CF4AE050E0B801DE -:1037000087EE92E00E943B327C01892B41F08AE0F7 -:10371000F801A7EEB2E001900D928A95E1F71091C1 -:10372000F202E114F104C9F181E080939F020E944A -:10373000F41A90939E0280939D0280919D02909135 -:103740009E020E94E51A059778F0A7EEB2E0E12FFD -:10375000F0E0E55CFC4F8CEE92E02D9121938A170E -:103760009B07D9F710929F0281E090E0EF28C9F003 -:103770002F960FB6F894DEBF0FBECDBFDF91CF916D -:103780001F910F91FF90EF90DF90CF90BF90AF907F -:103790009F908F90089580E094CF80919F02811137 -:1037A000CCCF0E94460EB82EE091F2028E01055F4A -:1037B0001F4F882309F4D3C085E0D8011D928A9554 -:1037C000E9F7F0E09F01255C3C4F79018091E00230 -:1037D000AE01405F5F4F6A018A3008F098C04EE545 -:1037E00059E1B801C7010E94020E882309F4A6C05E -:1037F0004CEF55E2B801C7010E94020E882309F47C -:103800009DC045E657E1B801C7010E94020E88231A -:1038100009F494C041E758E1B801C7010E94020EC3 -:10382000882309F48BC041E558E1B801C7010E9423 -:10383000020E882309F482C04FE258E1B801C701A3 -:103840000E94020E882309F479C01092E002E091F0 -:10385000F102F0E0AF01455C5C4FD80110E0FA01E5 -:103860009191AF018D91981731F09F01215031094D -:10387000F90180831B2DAC15BD0589F78091A2024B -:103880009091A3020E94E51A893E934060F16091F5 -:10389000FB02E62EF12C662777276E197F09072E8B -:1038A000000C880B990B0E94E03527EA39E747E4C2 -:1038B0005DE30E94AD364B015C01B701FF0C880B44 -:1038C000990B0E94E0359B01AC01C501B4010E9437 -:1038D0002C350E94AF356093FB020E94F41A90933E -:1038E000A3028093A2028091A602882371F08091A6 -:1038F000A4029091A5020E94E51A893E934028F007 -:1039000082EE0E94720C1092A602812F31CF80911C -:10391000A0029091A1020E94E51A843F914008F014 -:103920005ECFE091F102F0E0E55CFC4FD80111922E -:103930001D92AC15BD05D9F71B2DA0CF8091E002DB -:103940008F3F31F08F5F8093E0028A3008F47FCFA1 -:103950000E94F41A9093A1028093A002E2CFF0E0BB -:10396000E55CFC4FF89485E0AAEBB2E001900D9283 -:103970008A95E1F765E070E08AEB92E00E944709E2 -:103980008093B9020E94100AF894E091F902F0E0E5 -:10399000EA50FD4F80818B878093C00261E070E028 -:1039A000C8010E9447098093BF020E94100AF89440 -:1039B000C090C102D090C202E090C302F090C40255 -:1039C0008091A7029091A802A091A902B091AA02A9 -:1039D000C816D906EA06FB06D1F0C092A702D0921B -:1039E000A802E092A902F092AA020E94460E81115A -:1039F0000EC00E94F808C61AD70AE80AF90AC0924F -:103A0000E102D092E202E092E302F092E4020E942C -:103A1000100AF8948091CC02882321F184FF04C01D -:103A20009091CD029093480380FF0DC08091C50214 -:103A300080FF2CC090915E04916090935E0460E0E2 -:103A400086950E94B3158091CC0281FF09C020E0C9 -:103A50004091C8026091C7028091C6020E949C14E6 -:103A60001092CC020E94100AF8948091CE028093AA -:103A7000FB020E94100AF8948091CF02882349F03B -:103A80000E947B0D0E94100A80E072CE0E948E0F71 -:103A9000DACF0E94600DF6CF5F926F927F928F9285 -:103AA0009F92AF92BF92CF92DF92EF92FF920F93CD -:103AB0001F93CF93DF9300D000D00F92CDB7DEB726 -:103AC0006C01FC0183819481892B31F0808191818B -:103AD00089238F3F09F082C50F900F900F900F90B0 -:103AE0000F90DF91CF911F910F91FF90EF90DF909A -:103AF000CF90BF90AF909F908F907F906F905F908E -:103B000008950E940F14182F682F89819A810E94AE -:103B10001F0C69817A81812F0E9402148C01F601A9 -:103B20008281882309F463C0C80190568115F0E2B0 -:103B30009F0750F0905E811520E1920728F0915C7C -:103B400081159F4108F0A5C0C80199279C01245008 -:103B500031092432310520F08B970E9708F047C0C9 -:103B60008091A2029091A3020097D9F10E94E51AD8 -:103B70009C0150E040E060E67AEE80E090E00E9438 -:103B8000AD31CA01B90125E030E040E050E00E94CB -:103B9000AD31E090FB022F3F310519F010F02FEF0F -:103BA00030E0F12C2E193F09B90190E080E00E942D -:103BB000DE3527EA39E747E45DE30E94AD360E942F -:103BC00098354B015C01B701FF0C880B990B0E94E3 -:103BD000E035A50194010E942C350E94AF35609319 -:103BE000FB020E94F41A9093A3028093A202F601B2 -:103BF0008281882309F4E6C4C80182519F45409719 -:103C000008F071C48FEF93E00E94E334025197E50E -:103C1000A92E92E0B92E81115FCF011143C01C8201 -:103C20001B82662463948AE0582E85010F5F1F4F24 -:103C3000C5010E94E33489831A82882309F44CCF9A -:103C40009FEF980F9330E8F58A83698232E0A30EE4 -:103C5000B11CC8010E94E3348B83882309F43CCF54 -:103C60008E010F5F1F4FF80120812223F1F22130D6 -:103C700009F061C091818281913029F50E5F1F4F5B -:103C80006AE070E0893311F460E570E00E94790E1B -:103C900020C090E080E00F3F110511F008F056CFF2 -:103CA000C80154CFA114F4E0BF0609F415CFC50133 -:103CB0000E94E334811101C001502FEFA21AB20A11 -:103CC000ACCF5801CDCF923039F40E5F1F4F0E9418 -:103CD000AB0C0F5F1F4FC7CF933029F40E5F1F4F00 -:103CE0000E94720CF6CF943019F00F5F1F4FF1CF86 -:103CF0000E5F1F4F30E020E0B8016F5F7F4FF8018B -:103D000041818053990B8A30910550F0215031093F -:103D100000F38FE99FE00197F1F700C00000F6CFB4 -:103D2000529EF001539EF00D11249C012E0F3F1F57 -:103D3000842F8B01E1CFE22FF0E0EA54FE4F749024 -:103D4000822F86958695869590E0FC01EA55FE4F78 -:103D5000E4902770F12C022E02C0F594E7940A94A7 -:103D6000E2F7E1E0EE22FF24FC01EA56FE4FC490A8 -:103D7000D12C022E02C0D594C7940A94E2F7F1E048 -:103D8000CF22DD24FC01EA57FE4F8490912C02C023 -:103D9000959487942A95E2F721E082229924E114F0 -:103DA000F10419F081EE0E94AB0CC114D10419F09A -:103DB00086EE0E94AB0C39E36AE070E0731202C039 -:103DC00060E570E0872D0E94790ECD2819F086EE0F -:103DD0000E94720CEF2819F081EE0E94720C892863 -:103DE00009F477CF6AE070E08CE250CF81E00E9466 -:103DF000B61603C081E00E94AA160F900F900F9094 -:103E00000F900F90DF91CF911F910F91FF90EF9046 -:103E1000DF90CF90BF90AF909F908F907F906F90EA -:103E20005F900C949F1682E0E2CF013E110509F4E9 -:103E30009AC0043E110509F07CC3882309F4CEC062 -:103E400081E08093FC0275C30238FFE51F0709F487 -:103E500059C000F500383FE51307B9F101384FE5C7 -:103E6000140709F066C3882309F445C08091A602AF -:103E7000811106C081E08093A60282EE0E94AB0C05 -:103E80000E94F41A9093A5028093A40281EE0E94EE -:103E9000AB0C2DC003385FE5150709F447C00438A3 -:103EA0009FE5190709F045C3882309F482C0809172 -:103EB0004302882309F45AC0809144020E94720C84 -:103EC00080EE0E94AB0C8AE25EC08823B9F080913C -:103ED000A602811106C081E08093A60282EE0E94B4 -:103EE000AB0C0E94F41A9093A5028093A4028BE27B -:103EF0000E94AB0C1EC381EE0E94720C8BE20E94EA -:103F0000720C17C3882309F414C381EE0E94AB0C12 -:103F100083EE0E94AB0C8FE40E94AB0C8FE40E94F6 -:103F2000720C83EE0E94720C81EEE9CF882309F4B3 -:103F300000C381EE0E94AB0C83EE0E94AB0C80E5C7 -:103F40000E94AB0C80E5EBCF8093460210934502B4 -:103F500000934402882321F081E08093FD02E9C2AE -:103F60001092FD02E6C280934302F0CF8091460298 -:103F7000882309F4A8CF809144020E94720C80EE3D -:103F80000E94AB0C8CE40F900F900F900F900F904D -:103F9000DF91CF911F910F91FF90EF90DF90CF9025 -:103FA000BF90AF909F908F907F906F905F900C9498 -:103FB000AB0C8AE20E94720C8CE40E94720C80EEC0 -:103FC0000E94720C80914302811105C080914602CB -:103FD000882309F481CD80914402D5CF1092FC0250 -:103FE000A8C2882331F081E08093FF0210926E0115 -:103FF000A0C21092FF029DC2073C2CE5120709F4F3 -:10400000AEC008F4A7C0083C4CE5140709F4ACC0E6 -:10401000093C1C4509F0ADC24FE455E16BE575E183 -:1040200079C0043DECE51E07A8F40E3CFCE51F0733 -:1040300008F052CD0C3C2CE5120709F49FC041E971 -:1040400055E162EA75E10D3C1C4508F463C061E08E -:1040500081E046C0053D4CE5140709F43DCD08F468 -:1040600092C00D351D4509F437CD83C280915E04A1 -:1040700080FF31C08E7F80935E0460915E047091FA -:104080005F0480916004909161040E948A14809181 -:1040900047038160809347039FEFE0E7F2E0915090 -:1040A000E040F040E1F700C000000F900F900F904B -:1040B0000F900F90DF91CF911F910F91FF90EF9094 -:1040C000DF90CF90BF90AF909F908F907F906F9038 -:1040D0005F900C948E0E816080935E0461E0869503 -:1040E0000F900F900F900F900F90DF91CF911F9135 -:1040F0000F91FF90EF90DF90CF90BF90AF909F9087 -:104100008F907F906F905F900C94B31541EC56E1C7 -:104110006AEC76E10F900F900F900F900F90DF9167 -:10412000CF911F910F91FF90EF90DF90CF90BF90B4 -:10413000AF909F908F907F906F905F900C945D09EF -:104140004AEC56E161EC76E1E5CF4FE755E168E8EE -:1041500075E1E0CF48E855E16FE775E1DBCF47E671 -:1041600055E163E775E1D6CF43E755E167E675E1D1 -:10417000D1CF4BE555E16FE475E1CCCF42EA55E193 -:1041800061E975E1C7CF0F900F900F900F900F90DE -:10419000DF91CF911F910F91FF90EF90DF90CF9023 -:1041A000BF90AF909F908F907F906F905F900C9496 -:1041B000D4160E3D1C4509F0DCC10F900F900F90F6 -:1041C0000F900F90DF91CF911F910F91FF90EF9083 -:1041D000DF90CF90BF90AF909F908F907F906F9027 -:1041E0005F900C94FB16C8010E94F70BF82ECFC10C -:1041F000092F0F70907F11F00295007F812F2223ED -:10420000C9F0002369F090E2910F983010F011117D -:104210000BC080914604082B009346040E94D60BE5 -:10422000812F0E94AB0C17C080919B02082B00933A -:104230009B02F4CF0E94720C002369F00095105E7F -:10424000183010F0B11027C0809146040823009365 -:1042500046040E94D60B98E0E91AF108E4E0EE1655 -:10426000F10408F039CC0E94690E0F900F900F9066 -:104270000F900F90DF91CF911F910F91FF90EF90D2 -:10428000DF90CF90BF90AF909F908F907F906F9076 -:104290005F900C94081680919B02082300939B0268 -:1042A000D8CF892F8F70907F903211F08295807FC8 -:1042B000F1E0BF120CC0222329F0333060F60E94D7 -:1042C000680CC9CF323038F60E945D0CC4CF22236F -:1042D00041F03323A1F340FFA3CF4F70F601458394 -:1042E000EECF332389F3193309F0F5C0FFEF27EE42 -:1042F00033E0F15020403040E1F700C00000812F52 -:104300000E94720CA8CF892F86958695837061F0E4 -:10431000813009F0A0CF812F9370211102C090E06D -:1043200080E00E94040997CF812F9370211102C071 -:1043300090E080E00E941A098ECF892F8370A1F54A -:10434000211189CF812F829586958770880F880FDC -:10435000412F4F70082E01C0440F0A94EAF7212F15 -:10436000207114FF07C02FE030E001C0220F8A95B2 -:10437000EAF72095969596959370923081F0822F6A -:10438000842B933030F480919C02913029F0242BBF -:1043900082230E94590C5FCF842B822BFACF242BCF -:1043A00080919C028227F5CF8695222311F0892FD8 -:1043B0008170882309F44FCF812F8295869587706D -:1043C000880F880F412F4F70082E01C0440F0A94A8 -:1043D000EAF7212F207114FF07C02FE030E001C061 -:1043E000220F8A95EAF720959695969593709230CC -:1043F00081F0822F842B933030F480915D049130D2 -:1044000029F0242B82230E94991625CF842B822BFE -:10441000FACF242B80915D048227F5CF092F0F70EE -:10442000222329F0802F0E94B616812F48CF812F9A -:104430000E945D0C802F0E94AA160DCF812FE1EF04 -:104440001E1789F1E11750F0F0EF1F17B9F0222382 -:10445000B1F13111E5CE892F8F7129C042EF1417C8 -:1044600049F153EF1513F3CF80E0222361F29F71DE -:1044700081E001C0880F9A95EAF7C5CF222379F031 -:10448000323008F0E8CE292F2F7181E090E001C092 -:10449000880F2A95EAF790915D048927B4CF3330CD -:1044A00008F0D9CEF0CF892F8F71222321F20E94FC -:1044B000B616D1CE892F8F712223C9F3BCCF3323F7 -:1044C00079F0893341F48FEF97EEE3E0815090402B -:1044D000E040E1F712CF8FE39CE90197F1F70DCFB0 -:1044E000892F8F71A8CF0031FFE51F0709F47ECC1B -:1044F00001312FE5120709F496CC0E94F808609369 -:104500000403709305038093060390930703F60159 -:104510008281053E110509F417CD08F095CC003EC7 -:10452000110509F48ACC08F080CC0C32110509F48D -:1045300058CDF601928191113CCE80914604827251 -:104540000A3CFCE51F0709F414CE08F06ACD053CCF -:104550003CE5130709F4F9CD08F04ECD033C5CE5CA -:10456000150709F4D3CD08F0EBCD023C1C4509F446 -:104570007DCDF60100811181992309F434CEC80163 -:104580000E940F14F82E682FC8010E941F0CB8015A -:104590008F2D0E9402140E946C0A182FB82EF6016B -:1045A00022814581342F32953F70892F82958F70FB -:1045B000E82EF12C8C3008F04ECEF701EC5CF84C74 -:1045C0000C94CC3100313FE5130709F413CC0131D1 -:1045D0004FE5140709F09BCF82E00DCC85E0DE01AA -:1045E000119601900D928A95E1F7F6012281898159 -:1045F0009A81211186CA0E94F70B182F8ACA1F932D -:10460000CF93DF9380916702807FA9F48091640249 -:10461000882389F080919902D091680260916202AA -:1046200070916302A0916502B0916602C62FC72304 -:1046300016E0D81304C0DF91CF911F91089590E048 -:10464000109711F0CF3F19F401968770F2CF189FA1 -:104650009001199F300D1124F901E759FD4F418157 -:104660004713F2CF40814613EFCF42814111ECCF87 -:10467000438154814A1B5B0B403A510528F78091D6 -:1046800067028F70806180936702F901E259FD4FE4 -:1046900080818F708061808382E692E00E944C1D51 -:1046A000DF91CF911F910C94ED0BAF92BF92CF92FF -:1046B000DF92EF92FF920F931F93CF93DF93CDB7CB -:1046C000DEB761970FB6F894DEBF0FBECDBF8C0189 -:1046D00085E0F801DE011D9601900D928A95E1F7C3 -:1046E000F801E28082E6A82E82E0B82E6091650291 -:1046F000709166026115710509F432C190916202F0 -:1047000040916302892F84238F3F09F429C12081BE -:104710003181C380D480F0906402F601E61BF70B70 -:10472000FF2009F4E8C080916702582F507FE03ADB -:10473000F10508F0ABC0511177C0FE2C431321C026 -:1047400092131FC0E1101DC08F70806180936702BB -:10475000C5010E944C1D80916702F80185838F2D51 -:1047600061960FB6F894DEBF0FBECDBFDF91CF913B -:104770001F910F91FF90EF90DF90CF90BF90AF907F -:104780000895CD2829F0822F83238F3F09F003C19C -:1047900080E0F82FF170DF2E80FF3CC080919902FD -:1047A0004091680256E0841315C02D873E878D85A1 -:1047B0009E850E943E14292F22952F702230F0F002 -:1047C000243018F59F70F1F0F8019581907FD1F4B5 -:1047D000D12C1EC090E0589FF001599FF00D11247C -:1047E000E759FD4F6181361306C06081261303C06F -:1047F0006281E6120FC001968770D5CF9F7011F0CD -:10480000882331F3805E883018F3C8010E944C1D64 -:10481000FD2CA5CFEE2009F4A2CF80916702816024 -:1048200080936702F12C9BCF431306C0921304C000 -:10483000F801EE2009F479C0C8010E944A148823C7 -:1048400009F1EE20F9F080916702803270F020913A -:1048500062023091630238872F831986DB86CA860D -:104860008C87CE0107960E944C1D86E0F801A2E6D7 -:10487000B2E001900D928A95E1F70E94FF22FF2499 -:10488000F3946DCFC8010E944C1DF9CF51110AC09D -:1048900082E692E00E944C1D86E0F50111928A9515 -:1048A000E9F7C0CF43130FC092130DC0E1100BC046 -:1048B000F8018583C8010E944C1D86E0F501119224 -:1048C0008A95E9F74CCFC8010E944A148823D1F297 -:1048D000EE20C1F280916702803238F220916202AC -:1048E000309163023A8329831B82DD82CC828E83DE -:1048F000CE010196B8CFE03AF105F8F6FE2CEE2095 -:1049000009F243131FC092131DC08091670280FDFE -:1049100010C0982F907F69F0F8018583903F31F0A7 -:10492000982F907F905F8F70892B8583C8010E949C -:104930004C1D86E0F801A2E6B2E001900D928A9546 -:10494000E1F70DCFC8010E944A1481118ECF8091EA -:104950006702816080936702C8010E944C1DFFCEF0 -:10496000EE2009F48FCFC8010E944A14F82E882344 -:1049700009F488CF86E0F801A2E6B2E001900D923A -:104980008A95E1F780916202909163020E943E1441 -:104990000E94FF22E4CE81E08E25FBCE1F93CF93B1 -:1049A000DF93CDB7DEB767970FB6F894DEBF0FBEC3 -:1049B000CDBF4B8B5C8B6D8B7E8B8F8B611110927F -:1049C0009B021A8A198A85E0FE017396DE011D9604 -:1049D00001900D928A95E1F786E0FE013D96DE0199 -:1049E000179601900D928A95E1F7CE0107960E94E5 -:1049F0005523882389F016E08091990290916802EE -:104A000089134BC067960FB6F894DEBF0FBECDBFBB -:104A1000DF91CF911F91089586E0FE013796DE0168 -:104A2000119601900D928A95E1F78A859B85892BD5 -:104A300011F38F81988589238F3FE9F220916802D5 -:104A400030E0C90101968770992740919902481773 -:104A5000190681F4109246040E94A30F1092680276 -:104A60001092990286E0E2E6F2E0DF011D928A955B -:104A7000E9F7C1CF96E0929FD001939FB00D11242A -:104A8000A759BD4FFE01319601900D929A95E1F71D -:104A9000809368020E94ED0BAECF819FC00111246C -:104AA00087599D4F0E945523882309F4ABCF8091ED -:104AB000990290E0019687709927809399029CCF84 -:104AC0000F931F93CF93DF93CDB7DEB7A8970FB6A1 -:104AD000F894DEBF0FBECDBF81114DC006E0662346 -:104AE00059F10CA311E01DA31EA30E94F41A8160CA -:104AF000782F98A78FA34CA15DA16EA188A50E94D5 -:104B0000CE240F8F18A319A20E94F41A8160782F67 -:104B10009BA38AA34F8D58A169A18BA10E94CE248B -:104B200081E0A8960FB6F894DEBF0FBECDBFDF912F -:104B3000CF911F910F9108950A8F13E01B8F81E091 -:104B40008C8F0E94F41A8160782F9E8F8D8F4A8DF2 -:104B50005B8D6C8D8E8D0E94CE240D8B1E8B1F8ADB -:104B60000E94F41A8160782F998F888F4D895E8911 -:104B70006F89898DD3CF813099F66623F1F016E0E5 -:104B8000188B198B8A8B0E94F41A8160782F9C8B6A -:104B90008B8B488959896A898C890E94CE241B870E -:104BA0001C871D860E94F41A8160782F9F878E874C -:104BB0004B855C856D858F85B1CF06E00E8318E04F -:104BC0001F8388870E94F41A8160782F9A878987CB -:104BD0004E815F8168858A850E94CE2409831A836D -:104BE0001B820E94F41A8160782F9D838C834981F7 -:104BF0005A816B818D8192CFCF92DF92EF92FF929B -:104C00000F931F93CF93DF930F92CDB7DEB7EE24B0 -:104C1000E394F12C00EC12E09E012F5F3F4F45EB37 -:104C200052E063E082E00E94AF18082F882321F150 -:104C3000C090F4028C2D90E09C012A503D4F7901E8 -:104C40001981F9018081181BD12E80E00AC0DA9405 -:104C5000F70180818F5F808360E08C2D0E9460254A -:104C6000802F1D14A4F3912F17FD90E0191B111133 -:104C70000EC081110E94D40B802F0F90DF91CF9135 -:104C80001F910F91FF90EF90DF90CF9008951F5FDD -:104C9000F70180818150808361E08C2D0E94602526 -:104CA000802FE5CF1F921FB61F9211248F939F93E1 -:104CB000AF93BF9380913D04811113C080913E0456 -:104CC00090913F04A0914004B09141044196A11DF0 -:104CD000B11D80933E0490933F04A0934004B09391 -:104CE0004104BF91AF919F918F911F901FBE1F9064 -:104CF0001895CDB7DEB7E0970FB6F894DEBF0FBEBC -:104D0000CDBF84B7877F84BF0FB6F894A8958091F4 -:104D10006000886180936000109260000FBE80E8A0 -:104D200090E00FB6F89480936100909361000FBEFD -:104D300085B7806885BF85B7806885BF8EE09AE0BB -:104D400090933902809338020E946A070E943508C6 -:104D50008091E20084608093E20078948091530413 -:104D60008823A1F01091E9001F709091EC00892F29 -:104D7000817090FD80E8182B1092E9008091E80086 -:104D800083FD0E94AC0F1F701093E90082E084BD88 -:104D900093E095BD9AEF97BD80936E001092E1026B -:104DA0001092E2021092E3021092E4020E94711447 -:104DB000811102C00E94CD130E94460E80936101B2 -:104DC00080916101882309F4C6C01092760185E2C2 -:104DD000809377010E94460E81110E94B82F809126 -:104DE000610181112FC0FE01359686E0DF011D9221 -:104DF0008A95E9F786E6898387E98A8386EC8B833F -:104E000084E38C8385E38D833497A7E5B1E0CE01FD -:104E10000B9621912D938E179F07D9F787E0ECE72A -:104E2000F1E0DE01919601900D928A95E1F7FE0185 -:104E3000B196A0E5B1E0CE01889621912D938E1711 -:104E40009F07D9F78091610195E0811190E09093DF -:104E5000F20285E0891B8093F10207E511E0FCE591 -:104E6000EF2EF1E0FF2EF80181918F018F3F11F0BD -:104E70000E94120AE016F106B1F700E511E0E7E53D -:104E8000EE2EE1E0FE2ED8018D918D018F3F11F0C5 -:104E90000E94120AE016F106B1F7E7EEF2E081EFA8 -:104EA00092E0ABE3B3E011921D928E179F07D9F702 -:104EB0000E949B19811102C00E94FB1682E090E0C3 -:104EC0000E94E3348093300384E090E00E94E33456 -:104ED000182F82E290E00E94E334982F812F909364 -:104EE000E6028093E5020E94001BEFE3FCE93197A4 -:104EF000F1F700C000000E94001B80913B0380FF7F -:104F00002EC06FEF7FEF90E080E00E94153581E0CA -:104F10008093E00080E28093D8001092C9008FE176 -:104F20009EE40197F1F700C0000087E090EBDC0100 -:104F30008093670690936806A0936906B0936A060B -:104F400088E19CE00FB6F894A895809360000FBEAE -:104F500090936000FFCF85E28093760139CF83E0A4 -:104F600090E00E94E3340E94590C80915D040E94FD -:104F700020160E94460E811102C00E94BB2F83E0C2 -:104F800080932B0380E280932A040E94502E6DE0D0 -:104F900070E089E492E00E94300D892BE9F5809160 -:104FA0002B0363E070E081FDFFC186E492E00E9484 -:104FB000300D892B89F56DE070E086E392E00E9468 -:104FC000300D892B49F50E94F8086058774C8E4FB8 -:104FD0009F4F609331047093320480933304909315 -:104FE0003404E5E6F4E080E092E0DF019C011D92EC -:104FF00021503040E1F7F0936606E09365068FEFAD -:105000009FEF909364048093630481E0809336045F -:105010008093350410922C038091F302811136C0E5 -:105020000E949B19811104C00E94FB160E94E31686 -:1050300088E090E00E94EB3460935E0470935F041C -:105040008093600490936104809147038360809310 -:1050500047036E7F71F40E94E31688E090E00E949F -:10506000EB3460935E0470935F04809360049093CC -:1050700061040E94620980915E0480FF04C060E0C8 -:1050800086950E94B31581E08093F30280916101BF -:10509000811106C084EF80936D0185EF80936C01D0 -:1050A00020916D01A22FA295AF70B0E091963C9136 -:1050B00091972F7081E090E0BC01022E01C0660F35 -:1050C0000A94EAF7462F4095432391964C93919783 -:1050D00092963C919297362B92963C939297409160 -:1050E0006C01E42FE295EF70F0E031A14F70042ED7 -:1050F00001C0880F0A94EAF7982F9095932391A303 -:1051000092A1892B82A390968C9190E002C09595F4 -:1051100087952A95E2F7817020A130E002C035958D -:1051200027954A95E2F792E020FF90E0892B809343 -:10513000FA029091610181E098279093F902891B0E -:105140008093F40286E592E090934B0380934A03A8 -:1051500060E08AE00E94B31581E00E94991682E621 -:1051600091E090933A048093390470E4672ECE0165 -:1051700001967C0180915304DD24D39400E112E177 -:10518000853009F45EC10E94001BC82E81110E9467 -:10519000F808E1E3F3E0ABE3B3E010E000E0902EC9 -:1051A000BD9081918B1509F476C18B25A12CDD244E -:1051B000D3949D2D982309F469C10E94460E88233B -:1051C00099F0A9A29AA2BD2081E009F480E08BA306 -:1051D0000E94F41A8160782F9DA38CA349A15AA143 -:1051E0006BA18DA10E94CE24F801EF5CFC4F808161 -:1051F000D826D0828091FA02E82FEE0FEE0F909120 -:105200006D01A92FA295AF70B0E090962C9130E07F -:105210009F7002C0359527959A95E2F72170332744 -:1052200090916C01A92FA295AF70B0E090964C912F -:1052300050E09F7002C0559547959A95E2F7CA01D4 -:105240008170992740FF02C082E090E0822B8E2B74 -:105250008093FA021091F9028F70E82FF0E0EC5F72 -:10526000FD4F80819091F802890F8093F802D12C34 -:1052700084306CF0E12FF0E0EA50FD4F80818F5FC9 -:10528000808360E0812F0E946025DD24D39480918B -:10529000F8028D3F6CF4E12FF0E0EA50FD4F808181 -:1052A0008150808361E0812F0E946025DD24D394AA -:1052B0008091F802082E000C990B64E070E00E94C7 -:1052C00099318093F802D1100E94D40B809136045A -:1052D000882351F180912D0390912E030E94E51AAD -:1052E000C29708F0EFC02091630430916404211547 -:1052F000310509F049C2809135048823A9F00E9444 -:10530000F808009131041091320420913304309157 -:105310003404601B710B820B930B6F3F7F4F8F4FD9 -:105320009F4710F40E94600DC11001C0D1100E946F -:105330007B0D0E94690E90912F03891731F00E9416 -:10534000690E80932F030E940816809153048430C5 -:1053500009F010CF83E08093E9008091E80082FF9C -:1053600009CF8091E80090E085FF0CC00E9489077A -:1053700030E2C32ED12C8E010F5F1F4F882309F41A -:10538000E2C291E08091E8008B778093E800992356 -:1053900009F4F0CEE981E150E33108F036C3F0E0E2 -:1053A000E05CF84C0C94CC3183E492E000CE809128 -:1053B0005304843009F435C00E94600D80E00E94DF -:1053C000081680914903811109C0D0924903809148 -:1053D0005E0481708093F5020E948E0F10923D044E -:1053E000A8E1B0E00FB6F894A895A09360000FBEB6 -:1053F0006092600083B7817F846083BF83B78160E0 -:1054000083BF7894889583B78E7F83BF0FB6F89457 -:10541000A895809160008861809360001092600080 -:105420000FBE80915204882361F00E94001BEBE3C1 -:10543000F3E08191811113C425E433E02E173F0777 -:10544000C1F780915304853009F4B1CF109246041E -:105450000E94A30F0E94690E0E9408161092490331 -:105460008091F502882351F080915E0481608093E1 -:105470005E0460E086950E94B31585CE8091480356 -:10548000882309F480CE0E948E0E7DCEA394DD0C7D -:1054900037E0A3128ECE0F5F1F4F0A30110509F0BF -:1054A0007ECE8FEF88A789A71AA60E94F41A816082 -:1054B000782F9CA78BA748A559A56AA58CA50E9403 -:1054C000CE2498CE0E94F41A90932E0380932D033D -:1054D00060E080E00E9430098091FB0290E09093B0 -:1054E0000A03809309030E94690E809308030E94B7 -:1054F000460E882331F140910403509105036091D9 -:105500000603709107032FB7F89480913E049091A1 -:105510003F04A0914004B09141042FBF841B950B20 -:10552000A60BB70B81339547A105B10540F00E944A -:10553000600D80913604882309F4DDCED4CE0E941C -:105540007B0D0E94460E62E0882309F4DEC080E0F5 -:105550000E94300960E083E891E00E94341363E028 -:1055600080E00E94300980915D040E941F0D81300F -:1055700009F497C0882309F48EC0823009F499C0D9 -:10558000833009F492C066E080E00E94300960E058 -:1055900081EA91E00E94341367E080E00E943009C4 -:1055A000609108036695617086EA91E00E94341369 -:1055B00068E080E00E9430096091080360956170A6 -:1055C0008BEA91E00E94341369E080E00E94300988 -:1055D0006091080362FB662760F98FEA91E00E9400 -:1055E00034134091000350910103609102037091C4 -:1055F00003032FB7F89480913E0490913F04A0914B -:105600004004B09141042FBF841B950BA60BB70B30 -:105610008D329140A105B10508F48BCF0E94F808A6 -:10562000609300037093010380930203909303033C -:105630008091FF02811104C080916E0181113DC0F3 -:105640006FE080E00E94300960E084EB91E00E940E -:1056500034136CE080E00E94300981E080936E0199 -:105660008091FE0290E00196817099278093FE025E -:1056700021E030E0281B390B40E6429FC001439FE8 -:10568000900D11242091FD02222329F18A599A4F6D -:105690000E9427074ECF60E089E891E00E94341312 -:1056A00072CF60E08FE891E0F9CF60E085E991E0AA -:1056B000F5CF60E08BE991E0F1CF6CE080E00E94F3 -:1056C000300960E084EB91E00E9434136DE080E0EB -:1056D0000E943009C5CF2091FC02222319F08A557F -:1056E0009B4FD6CF2091090330910A032B3031050F -:1056F0001CF48A519C4FCCCF293231051CF48A5DB1 -:105700009C4FC6CF8A599D4FC3CF80E00E9430097D -:1057100060E08AEB91E00E94341363E080E00E9435 -:10572000300960E080EC91E00E94341367E080E093 -:105730000E94300986E296E00E9427076DE080E033 -:105740000E94300980910A038F93809109038F93FF -:1057500086EC91E09F938F93FF92EF920E945132DB -:1057600060E0C7010E9434136EE080E00E943009BF -:1057700060E08CEC91E00E9434130F900F900F903A -:105780000F900F900F90D5CE80912C0361E070E0C8 -:105790008111B1CD482E512C1B01082E02C0220CC4 -:1057A000331C0A94E2F7A90142215321452B09F445 -:1057B00048C090912B0390FD46C08295880F80765B -:1057C0008093710192013695279536952795209300 -:1057D0007401815E809372011092750124E630E0BD -:1057E00047E050E06FE671E088E70E94FF2E892BCA -:1057F00009F081CD55E0440C551C5A95E1F7809194 -:105800002B0380FD2EC0A2014B595B4F04E610E034 -:1058100020E230E060E488E70E94262F892B09F01F -:105820006ACD0E947B0DC101809590952090630404 -:105830003090640428223922309264042092630458 -:105840005ACD8F5FA7CF880F880F880F8093710183 -:1058500010927401895F8093720183E080937501D7 -:10586000BDCFEBE0F3E080E2DF011D928A95E9F71E -:10587000E8E1F2E0F8ABEFA764E172E047E0A42EC4 -:1058800099249394AFA5B8A94D91B8ABAFA7FB01EC -:105890008191BF01840D952D911D9C012B593B4F8A -:1058A0003EA72DA7E42FF0E0E55FFC4F30E020E0BD -:1058B0007A2C721AB92C022E01C0BB0C0A94EAF79A -:1058C0000DA51EA590E0D8018D918D018B21472D4E -:1058D000491B4770842E042E000C550BB82F01C0B5 -:1058E000BB0F8A94EAF78B2E519541955109477069 -:1058F000552701C086954A95EAF7882A8081882A2B -:1059000080829F5F9830F9F62F5F3F4F31962830A5 -:10591000310571F6ECE1F2E02FA538A9E217F307A3 -:1059200009F0B0CF04E610E020E230E04BE053E0B5 -:1059300071CF8091F100D8018D938D01B1E0CB1A28 -:10594000D10809F41ECD8091E80085FDF2CF809149 -:10595000E8008B778093E8000E948907882399F3F9 -:1059600010CD1A8289E08B8311C08A81823009F4BC -:105970008EC1833089F1813009F047C00E94F80858 -:105980000E94D2316B837C838D839E8380915304EC -:10599000843009F0EFCB1091E9001F709091EC007A -:1059A000892F817090FD80E8182B82E08093E900B8 -:1059B0008091E80080FF0CC050E040E060E270E0C1 -:1059C000C7010E94BA078091E8008E778093E800B3 -:1059D0001F701093E900CECBDE011396EBE3F3E0EA -:1059E00081918D9323E0E534F207D1F7CFCF8A81FF -:1059F000823059F46B817C818D819E810E94D231ED -:105A000086E290E00E94F734C1CF8FEF8983BECF4A -:105A10004C816B818A810E94DC1398278927982703 -:105A20009E838D83B3CF0D811E8110270127102700 -:105A30008A81CB803EE0C39E600111249CE8899F4F -:105A4000C00CD11C11248C8190E0880F991FC80EC6 -:105A5000D91E612FC60187960E94F734602FC601B8 -:105A60008896D0CF0E94601391CF8A818138C1F08F -:105A700060F4803809F08ACF20E04B8160916004A7 -:105A800080915F040E949C1481CF8238E9F08338B2 -:105A900009F07CCF20E0409161046C818B81F2CFD2 -:105AA00060E08B810E94B3158B81811103C00E943D -:105AB0008E0F6CCF80915E04816080935E0460E005 -:105AC00086950E94B31562CF8B81809362045ECF6E -:105AD0008A81813899F030F4803809F057CF80916D -:105AE000610441CF823891F0833809F04FCF809123 -:105AF0005F048B83809160048C8348CF80915E0427 -:105B000080FF02C086952FCF80E02DCF8091620468 -:105B10002ACF60915E0470915F048091600490913F -:105B200061040E948A1432CF80E18A832FCF81E002 -:105B30008A8389EA18CFAA80BB80BA24AB24BA240E -:105B40008E010F5F1F4FCC80C00ED12ED11CC5011E -:105B5000895A9D4F0C151D0509F418CFA9EAAA16FC -:105B6000A1E0BA0650F40E94E334F8018483BFEF49 -:105B7000AB1ABB0A0F5F1F4FEACFD80114961C92D5 -:105B8000F6CF0A811B81102701271027FE013196CD -:105B90005F01CC80C00ED12ED11CC801895A9D4F07 -:105BA000C016D10609F4F2CE093AF1E01F0728F435 -:105BB000D50114966C910E94F734BFEFAB1ABB0A63 -:105BC0000F5F1F4FEACF0E945013E0CE84E0ADCFAD -:105BD000AA80BB80BA24AB24BA248E010F5F1F4F6A -:105BE000CC80C00ED12ED11CC5018796C016D1061F -:105BF00009F4CCCEE0E3AE16E2E0BE0658F40E9413 -:105C0000E334D80114968C93FFEFAF1ABF0A0F5FED -:105C10001F4FEACFF8011482F7CF0A811B811027AA -:105C2000012710279E012F5F3F4F5901CC80C00EE6 -:105C3000D12ED11CC8018796C016D10609F4A6CE74 -:105C4000003332E0130728F4D50114966C910E94BA -:105C5000F734BFEFAB1ABB0A0F5F1F4FEBCF09BD85 -:105C600019BD09B400FEFDCF8091D8008F7D8093CF -:105C7000D8008091E00082608093E0008091E00095 -:105C800081FDFCCF109246040E94A30FDACB86E27E -:105C900090E00E94E3341B821C821D828E8376CEAC -:105CA0001092B9008CE08093B80008959F92AF9253 -:105CB000BF92CF92DF92EF92FF920F931F93CF93F9 -:105CC000DF93B82EEB010E94F41A6C01EE24E394EA -:105CD000F12CC431D10560F025E0E22EF12CCF3F4C -:105CE000DC0731F0CE0164E170E00E9479317B0184 -:105CF00084EAA82E94E8992E1092BC00A092BC00D1 -:105D00000E94F41A8C018091BC0087FF0DC0809125 -:105D1000B900887F883039F18091B900887F80315F -:105D200011F10FEF1FEF09C00E94F41A801B910BB5 -:105D30008E159F0540F30EEF1FEFCF3FDC07E1F21A -:105D4000C6010E94E51A8C179D07B0F2C801DF91C9 -:105D5000CF911F910F91FF90EF90DF90CF90BF9068 -:105D6000AF909F900895B092BB009092BC000E94AB -:105D7000F41A8C018091BC0087FF0AC08091B900A1 -:105D8000887F883111F0803461F610E000E0DECFCA -:105D90000E94F41A801B910B8E159F0558F3CBCFF0 -:105DA0000F931F93CF93DF93EB018093BB0084E8A5 -:105DB0008093BC000E94F41A8C018091BC0087FF84 -:105DC00011C02091B900287F81E090E0283211F4C1 -:105DD00090E080E0919581959109DF91CF911F919D -:105DE0000F910895CF3FDC0741F30E94F41A801B06 -:105DF000910B8C179D0708F38EEF9FEFEECFCF929C -:105E0000DF92EF92FF920F931F93CF93DF936B017B -:105E10008A017901B9010E94562EE6010C0D1D1D63 -:105E2000C017D10761F424E92093BC00DF91CF9122 -:105E30001F910F91FF90EF90DF90CF90089597FD05 -:105E4000F2CFB70189910E94D02EEACFCF92DF9294 -:105E5000EF92FF920F931F93CF93DF93C62F6A01A8 -:105E60007901B8010E94562E97FD0CC0B8018C2F05 -:105E70000E94D02EE601EC0CFD1CCE15DF0511F0C2 -:105E800097FF0CC024E92093BC00DF91CF911F91B4 -:105E90000F91FF90EF90DF90CF900895B801899116 -:105EA0000E94D02EEACF84E98093BC0008958EE151 -:105EB0004A9B02C08150E1F74A9BFECF08955A9851 -:105EC00080E28A95F1F75A9A0895FC013BE03A95F1 -:105ED000F1F798E020E080E031E040E14A95F1F709 -:105EE000880F4A9B02C08160232742E04A95F1F760 -:105EF000000040E14A95F1F7915079F790E19A95C9 -:105F0000F1F799B132E03A95F1F7000040E14A9596 -:105F1000F1F792FB992790F992272081920F9083B5 -:105F20000895EF92FF920F931F93CF93DF930F92F9 -:105F3000CDB7DEB719828C017C01E60EF11C0E157F -:105F40001F0561F481E09981911180E00F90DF914C -:105F5000CF911F910F91FF90EF9008950E94572FBE -:105F6000CE0101960E94652FF80181938F01E7CF42 -:105F7000529A5A9A089552985A9AEA9AE9E6F0E0A3 -:105F800080818F7C808308956150770B91E001C000 -:105F9000990F6A95EAF720E031E0911108C02223B9 -:105FA00091F05A9A80E28A95F1F75A980895492F0C -:105FB000482339F05A9A232740E24A95F1F79695FB -:105FC000ECCF5A98F9CF5A98EDCFFF920F931F93C9 -:105FD000CF93DF93EC018C01060F111DC017D10781 -:105FE00031F4DF91CF911F910F91FF900895F990B7 -:105FF0000E945F2F68E08F2D0E94C42FEFCF1F9269 -:106000000F920FB60F921124EF92FF920F931F93EE -:106010002F933F934F935F936F937F938F939F93B0 -:10602000AF93BF93EF93FF93CF93DF930F92CDB7CF -:10603000DEB719820E94572FCE0101960E94652F6C -:10604000A82FA695A695A695282F229525709A2F5C -:106050009570290F922F937026952695920F982769 -:1060600097708981982B09F075C0A93008F072C02B -:1060700080E18A95F1F75A9A529AB2E0BA95F1F70F -:1060800000C05A98EA2EF12CEAE0AE9FD00111240C -:10609000A050BF4F1896ED91FC9119973097B1F031 -:1060A000609102027091030216962D913C91179710 -:1060B000260F371F13968D919C911497680F791FA7 -:1060C00015964C91159712968C9109958AE08E9DA4 -:1060D000F0018F9DF00D1124E050FF4F6581662384 -:1060E00051F0209102023091030286819781820F44 -:1060F000931F0E94E52F0E945F2FF0E1FA95F1F7C0 -:106100005A9852985A9A80E18A95F1F78AE08E9DC2 -:1061100080018F9D100D112400501F4FD801129641 -:106120006C911297662371F1209102023091030263 -:1061300013968D919C91820F931F0E94912FD801ED -:10614000ED91FC91882311F088E001C082E080830A -:106150000E94572F0F90DF91CF91FF91EF91BF9148 -:10616000AF919F918F917F916F915F914F913F91EF -:106170002F911F910F91FF90EF900F900FBE0F90F6 -:106180001F901895ED91FC91DFCF0F931F93CF9344 -:10619000DF93EC0109970CF0A9C08AE08C9FF00115 -:1061A0008D9FF00D1124E050FF4F80819181892B4C -:1061B00009F49CC0F894529A5A9885E08A95F1F7B0 -:1061C00000008C2F869585709C2F9570890F982FD5 -:1061D000937086958695890F8E0193E0000F111FAD -:1061E0009A95E1F7082B0E945F2F00C068E0802F8E -:1061F0000E94C42FA0E1AA95F1F752985A9A4A9B9F -:1062000027C087E090E04A9925C08AE08C9F8001F2 -:106210008D9F100D112400501F4FF80165816623DA -:10622000A1F1209102023091030286819781820FB1 -:10623000931F0E94912F811128C0529A5A9AD80117 -:10624000ED91FC9182E08083789482E090E016C02A -:1062500000C0D5CF0197B9F4529A5A9A8AE08C9F20 -:10626000F0018D9FF00D1124E050FF4F0190F0815F -:10627000E02D81E08083789481E090E0DF91CF9100 -:106280001F910F91089500C0BECF0E94572FB0E21A -:10629000BA95F1F75A98529AE0E1EA95F1F78AE057 -:1062A0008C9FF0018D9FF00D1124E050FF4F628113 -:1062B000662351F020910202309103028381948180 -:1062C000820F931F0E94E52F0E945F2F8AE08C9F10 -:1062D000F0018D9FF00D1124E050FF4F0190F081EF -:1062E000E02D1082789490E080E0C8CF84E090E0C8 -:1062F000C5CFAA1BBB1B51E107C0AA1FBB1FA61716 -:10630000B70710F0A61BB70B881F991F5A95A9F75E -:1063100080959095BC01CD010895991B79E004C04A -:10632000991F961708F0961B881F7A95C9F78095D4 -:10633000089597FB072E16F4009407D077FD09D037 -:106340000E94793107FC05D03EF4909581959F4FCE -:106350000895709561957F4F0895052E97FB1EF463 -:1063600000940E94C43157FD07D00E94D93107FC28 -:1063700003D04EF40C94C43150954095309521953E -:106380003F4F4F4F5F4F0895909580957095619561 -:106390007F4F8F4F9F4F0895EE0FFF1F0590F49191 -:1063A000E02D09946927962769277827872778277A -:1063B0000895A1E21A2EAA1BBB1BFD010DC0AA1F46 -:1063C000BB1FEE1FFF1FA217B307E407F50720F05E -:1063D000A21BB30BE40BF50B661F771F881F991FD9 -:1063E0001A9469F760957095809590959B01AC0122 -:1063F000BD01CF0108952F923F924F925F926F920D -:106400007F928F929F92AF92BF92CF92DF92EF9244 -:10641000FF920F931F93CF93DF93CDB7DEB7CA1BC5 -:10642000DB0B0FB6F894DEBF0FBECDBF09942A88F0 -:10643000398848885F846E847D848C849B84AA8498 -:10644000B984C884DF80EE80FD800C811B81AA8125 -:10645000B981CE0FD11D0FB6F894DEBF0FBECDBFF0 -:10646000ED010895FB01DC0102C005900D92415041 -:106470005040D8F70895FB01DC0104C08D910190D4 -:10648000801921F441505040C8F7881B990B08959A -:10649000FB01DC0102C001900D9241505040D8F741 -:1064A0000895AEE0B0E0E7E5F2E30C9409320D891F -:1064B0001E8986E08C831A8309838FEF9FE79E8372 -:1064C0008D83AE01475E5F4F6F89788DCE01019657 -:1064D0000E9474322F813885020F131FF801108239 -:1064E0002E96E4E00C942532ABE0B0E0EAE7F2E36C -:1064F0000C94FB317C013B018A01FC01178216825E -:10650000838181FFB9C19AE0292ECE0101965C01F9 -:10651000F7019381F30193FD859193FF81913F01F1 -:10652000882309F446C1853239F493FD859193FFA0 -:1065300081913F01853229F4B70190E00E945534E2 -:10654000E7CF912C412C512CFFE1F51538F08B321F -:1065500009F188F4803201F1833221F157FC3AC00D -:1065600020ED280F2A3040F556FE1FC0929C200DCA -:106570001124922E06C08D3291F0803379F7689401 -:1065800050F8F30193FD859193FF81913F018111B3 -:10659000DBCF20C0689451F8689452F8F2CF689429 -:1065A00053F8EFCF689454F8ECCF429C200D11249F -:1065B000422E689455F8E5CF8E3229F456FCF9C086 -:1065C000689456F8DECF8C3619F4689457F8D9CF12 -:1065D0008836B9F2982F9F7D95549330C0F083365A -:1065E000A1F18337C1F1833509F05BC0F801C19097 -:1065F000D1908F01692D70E056FC02C06FEF7FEFE4 -:10660000C6010E943F344C01689457F80AC00C5FE1 -:106610001F4F2FE3298388248394912C6501E894EC -:1066200057F853FC04C04814190409F018F5342C29 -:106630008114910431F5332009F46ACFB70180E267 -:1066400090E00E9455343A94F6CFF8018081898316 -:106650000E5F1F4FE0CFF801C190D1908F01692DDF -:1066600070E056FC02C06FEF7FEFC6010E944A3413 -:106670004C01D5CFB70180E290E00E9455344A9496 -:10668000D2CFF60157FC859157FE81916F01B7017A -:1066900090E00E94553431103A94F1E08F1A91083D -:1066A000C7CF843619F0893609F074C0F80157FE57 -:1066B0006AC061917191819191918F01252D2F7601 -:1066C000D22E97FF09C090958095709561957F4F68 -:1066D0008F4F9F4F6894D7F82AE030E0A5010E94C1 -:1066E0008534C82ECA188C2C5D2CD6FE0CC0E894BC -:1066F00050F8C91440F4D4FE05C0D2FC03C0FD2DEF -:10670000FE7E5F2E892C54FE8FC0FE01EC0DF11D24 -:106710008081803309F081C0252D297E522E852D60 -:106720008870382E53FC8FC050FE89C09C2C841476 -:1067300018F44C0C942C981854FE8BC0B70180E3CD -:1067400090E00E94553452FE09C088E790E051FE67 -:1067500002C088E590E0B7010E945534C91408F4DE -:1067600084C0CA94D12C9FEFC91AD90ACA0CDB1C69 -:10677000F60182916F01B70190E00E945534AC148C -:10678000BD04B1F758CF61917191072E000C880BB1 -:10679000990B93CFD52CE894D4F82AE030E08537D4 -:1067A00039F1952D997FD92E8F3601F148F488352E -:1067B000A9F0F701868197812B96E2E10C941732BC -:1067C000803749F08837A9F7D4FE02C06894D2F820 -:1067D00020E130E00DC06894D4F8F6CF54FE03C039 -:1067E000E92FE660DE2E20E132E002C028E030E052 -:1067F000F801D7FE0DC061917191819191918F0146 -:10680000A5010E948534C82ECA18E894D7F86BCF2A -:106810006191719190E080E0F2CF52FC02C08394CC -:106820007ECF839483947BCF852D867809F477CFB0 -:10683000F6CFB70180E290E00E945534839484142F -:10684000C0F3312C79CF342C3818841408F474CF69 -:10685000F8CF852D867809F481CF8BE251FE80E256 -:1068600057FC8DE2B70190E077CFB70180E390E06D -:106870000E9455349A9472CF8FEF9FEF9DCFFC0109 -:106880000590615070400110D8F7809590958E0F5B -:106890009F1F0895FC016150704001900110D8F7CE -:1068A000809590958E0F9F1F08950F931F93CF9300 -:1068B000DF93182F092FEB018B8181FD09C01FEF9A -:1068C0000FEF812F902FDF91CF911F910F9108959E -:1068D00082FF14C02E813F818C819D81281739074A -:1068E0003CF4E881F981CF01019699838883108374 -:1068F0008E819F8101969F838E83E3CFE885F98502 -:10690000812F0995892BA1F3DACFFA01AA27283024 -:1069100051F1203181F1E8946F936E7F6E5F7F4F6C -:106920008F4F9F4FAF4FB1E03ED0B4E03CD0670FE8 -:10693000781F891F9A1FA11D680F791F8A1F911D3B -:10694000A11D6A0F711D811D911DA11D20D009F48B -:1069500068943F912AE0269F11243019305D3193CD -:10696000DEF6CF010895462F4770405D4193B3E0B6 -:106970000FD0C9F7F6CF462F4F70405D4A3318F05D -:10698000495D31FD4052419302D0A9F7EACFB4E00E -:10699000A6959795879577956795BA95C9F70097C6 -:1069A0006105710508959B01AC010A2E0694579567 -:1069B000479537952795BA95C9F7620F731F841FBE -:1069C000951FA01D0895F999FECF92BD81BDF89A3B -:1069D000992780B50895A6E1B0E044E050E00C941A -:1069E0001D35A8E1B0E042E050E00C941D35262FA3 -:1069F000F999FECF92BD81BDF89A019700B40216B5 -:106A000039F01FBA20BD0FB6F894FA9AF99A0FBE62 -:106A100008950396272F0E94F8340E94F734252FFB -:106A20000E94F834242F0C94F8340196272F0E94EA -:106A3000F8340C94F734DC01CB01FC01F999FECF5A -:106A400006C0F2BDE1BDF89A319600B40D924150F6 -:106A50005040B8F708955058BB27AA270E944335E5 -:106A60000C945B360E944D3638F00E94543620F06C -:106A700039F49F3F19F426F40C944A360EF4E0954D -:106A8000E7FB0C941B36E92F0E946C3658F3BA17BB -:106A9000620773078407950720F079F4A6F50C9434 -:106AA000A6360EF4E0950B2EBA2FA02D0B01B901DE -:106AB00090010C01CA01A0011124FF27591B99F074 -:106AC000593F50F4503E68F11A16F040A22F232F80 -:106AD000342F4427585FF3CF469537952795A795D0 -:106AE000F0405395C9F77EF41F16BA0B620B730B77 -:106AF000840BBAF09150A1F0FF0FBB1F661F771FE8 -:106B0000881FC2F70EC0BA0F621F731F841F48F49C -:106B1000879577956795B795F7959E3F08F0B0CF25 -:106B20009395880F08F09927EE0F9795879508950C -:106B30000E948E3690F09F3748F4911116F40C9411 -:106B4000A73660E070E080E89FE3089526F01B160A -:106B5000611D711D811D0C9421360C943C360E94E0 -:106B6000743688F09F5798F0B92F9927B751B0F035 -:106B7000E1F0660F771F881F991F1AF0BA95C9F7C1 -:106B800014C0B13091F00E94A636B1E008950C9483 -:106B9000A636672F782F8827B85F39F0B93FCCF336 -:106BA000869577956795B395D9F73EF4909580953E -:106BB000709561957F4F8F4F9F4F0895E89409C05E -:106BC00097FB3EF490958095709561957F4F8F4F20 -:106BD0009F4F9923A9F0F92F96E9BB279395F69536 -:106BE000879577956795B795F111F8CFFAF4BB0FB4 -:106BF00011F460FF1BC06F5F7F4F8F4F9F4F16C018 -:106C0000882311F096E911C0772321F09EE8872FA1 -:106C1000762F05C0662371F096E8862F70E060E05D -:106C20002AF09A95660F771F881FDAF7880F9695D6 -:106C3000879597F9089597F99F6780E870E060E07D -:106C40000895882371F4772321F09850872B762FAD -:106C500007C0662311F499270DC09051862B70E070 -:106C600060E02AF09A95660F771F881FDAF7880F81 -:106C70009695879597F908959F3F31F0915020F4AC -:106C8000879577956795B795880F911D9695879508 -:106C900097F908959FEF80EC089500240A94161642 -:106CA000170618060906089500240A9412161306FA -:106CB000140605060895092E0394000C11F4882388 -:106CC00052F0BB0F40F4BF2B11F460FF04C06F5FA4 -:106CD0007F4F8F4F9F4F089557FD9058440F551F7A -:106CE00059F05F3F71F04795880F97FB991F61F04E -:106CF0009F3F79F087950895121613061406551FC5 -:106D0000F2CF4695F1DF08C0161617061806991F30 -:106D1000F1CF869571056105089408950E94743637 -:106D2000A0F0BEE7B91788F4BB279F3860F41616A9 -:106D3000B11D672F782F8827985FF7CF86957795B5 -:106D40006795B11D93959639C8F30895E894BB27CC -:106D500066277727CB0197F908950E94C0360C94D7 -:106D60005B360E944D3638F00E94543620F0952351 -:106D700011F00C941B360C944A3611240C94A7364F -:106D80000E946C3670F3959FC1F3950F50E0551F2C -:106D9000629FF001729FBB27F00DB11D639FAA2770 -:106DA000F00DB11DAA1F649F6627B00DA11D661FBF -:106DB000829F2227B00DA11D621F739FB00DA11DE0 -:106DC000621F839FA00D611D221F749F3327A00D9A -:106DD000611D231F849F600D211D822F762F6A2F36 -:106DE00011249F5750409AF0F1F088234AF0EE0F9B -:106DF000FF1FBB1F661F771F881F91505040A9F7C8 -:106E00009E3F510580F00C941B360C94A7365F3FD3 -:106E1000E4F3983ED4F3869577956795B795F79503 -:106E2000E7959F5FC1F7FE2B880F911D969587957B -:106E300097F90895F894FFCF9310BB100E11BB1073 -:106E40000E11EE1026110E11231230125C145C1478 -:106E50006514651467146514651465145C145C147A -:106E60006C14651465146C14F820F820512151211C -:106E700083212B212B212B219D210E221E221E221C -:106E8000B12CB52CF72C082D132D322D352D682D56 -:106E9000892D052D052D942D972D9B2DC12DE32D8D -:066EA000E62DE82D0D2E89 -:106EA600420200000001000000004202000000054E -:106EB600010000004202000000010600000042023C -:106EC6000000000107000000420204080000000064 -:106ED60000004202090C00000000000042020115F9 -:106EE6000000000000004202011600000000000041 -:106EF60036323331F7F6676697C634350000000040 -:106F06000001F508D50DF408D10DCD0DF4F50100FD -:106F160021007F220003004A004A4A01F6F7313376 -:106F26003236674C4159455200426173652000472D -:106F3600616D6520005261697365004C6F776572FB -:106F4600004C4F434B0043617073004E756D005308 -:106F560063726C00202020202000534F4C415200C9 -:106F6600544D505354002025303364002077706D03 -:106F760000818283E200E900EA00B500B600B700AE -:106F8600CD008301CC008A019201940121022302E3 -:106F960024022502260227022A02B300B4006F004B -:106FA6007000B90200FF0100010000FFFF000001B0 -:106FB6000001FF0000081018181008000001020266 -:106FC600020202020202020240223246012401F2B9 -:086FD600002B0D440D640D00B9 +:10277000811161E283E290E00E94F834C1110CC043 +:10278000CFEF6C2F84E290E00E94F8346C2F85E24A +:1027900090E0CF910C94F834C9E0F3CF80E00E9430 +:1027A000B51360E086E290E00E94F8340E94601366 +:1027B0000E94501381E00C94B5130F931F93CF9395 +:1027C000DF93C42FD0E0CC0FDD1F2EE0629FC00D41 +:1027D000D11D11243CE8839FC00DD11D1124CE01D1 +:1027E00087960E94E434082F10E0102F0027CE01B6 +:1027F00088960E94E4349801282BC901DF91CF917B +:102800001F910F910895462F843038F47A3028F4C0 +:10281000673018F4672F0C94DD1390E080E0089582 +:10282000CF92DF92FF920F931F93CF93DF936C01B0 +:1028300000915D0480919C02082BC7E0D0E010E07D +:10284000FC2EC8010C2E02C0959587950A94E2F7DC +:1028500080FD0CC02197A0F7F12C8F2DDF91CF9137 +:102860001F910F91FF90DF90CF900895B6018C2FAC +:102870000E9403140E946C0A019761F3EECFCF937C +:10288000DF93EC010E941014BE010E940314DF913B +:10289000CF910C946C0AFC01808191810E943F14BD +:1028A000292F2F7092959F7092509E3078F4E92FC7 +:1028B000F0E0E95DF84C0C94CD31803F19F020F444 +:1028C000883E20F481E00895843FE1F380E008959C +:1028D000883EC0F3813FD1F7F5CF822F869586954C +:1028E0008695089583E290E00E94E434813289F471 +:1028F00084E290E00E94E434893059F485E290E06B +:102900000E94E43491E0893009F090E0892F8170D1 +:10291000089580E0FCCFCF92DF92EF92FF926B019F +:102920007C010E946209B701A60188E090E0FF9057 +:10293000EF90DF90CF900C940A35AF92BF92CF9278 +:10294000DF92EF92FF920F931F93CF93DF9300D00C +:102950000F92CDB7DEB7082FF62E142FE22E8091FE +:102960005E0480FF4FC0E82FE695AE2FB0E0A45E76 +:10297000BD4F9C91909345038E7F823009F056C0E5 +:10298000413A08F040EA9E012F5F3F4F6F2D802FA4 +:102990000E94780980915E0480FF11C02B813981EB +:1029A0004A81809178019091790153E0859FF001EF +:1029B0001124E45BFC4F891798F10E948E0E8091E0 +:1029C0005F04801308C0809160048F1104C080915F +:1029D0006104811729F08091470382608093470347 +:1029E00000935F04F092600410936104EE2051F0B4 +:1029F00060915E0470915F04809160049091610425 +:102A00000E948B140F900F900F90DF91CF911F9128 +:102A10000F91FF90EF90DF90CF90BF90AF9008950F +:102A20004183308322838F5F3396C5CF923039F64E +:102A3000E2508E2F8170D82EE695F0E0EA57F84FDD +:102A4000A590B490C12CBB2460917A01C61608F001 +:102A5000B4CF2C2D30E0A29EC001A39E900DB29E5B +:102A6000900D112470E00E947A31802FD11016C091 +:102A7000860F40917801420F532F511D9A01220F6A +:102A8000331F240F351F245B3C4F412F113A08F0B0 +:102A900040EA6F2D0E947809C394D6CF861BE9CFF8 +:102AA000EEE5F4E0438121E1421B08F440E021E03F +:102AB000628181810C949D14EEE5F4E0438121E173 +:102AC000420F08F44FEF21E0628181810C949D1444 +:102AD000EEE5F4E0628121E1621B08F460E021E0B0 +:102AE000438181810C949D14EEE5F4E0628121E143 +:102AF000620F08F46FEF21E0438181810C949D14F3 +:102B0000EEE5F4E0818121E04381628188500C94FC +:102B10009D14EEE5F4E0818121E043816281885FCC +:102B20000C949D1480916204882319F08150809345 +:102B3000620460915E0470915F04809160049091E2 +:102B400061040C948B1480916204833018F48F5FBD +:102B50008093620460915E0470915F0480916004D0 +:102B6000909161040C948B1490915E0490FF27C0A7 +:102B7000917081111DC0926090935E048091470313 +:102B8000816080934703662351F060915E047091E9 +:102B90005F0480916004909161040E948B1420E096 +:102BA000409161046091600480915F040C949D14D5 +:102BB0008C3010F09661E0CF880F982BDDCF089510 +:102BC00021E030E0A90102C0440F551F8A95E2F7C9 +:102BD000CA01209148036623C1F0822B80934803E9 +:102BE0008091470380618093470380914603811160 +:102BF00006C080915E0460E086950E94B4158091C5 +:102C00005E0480FD05C00C948E0E80958223E6CF75 +:102C10000895CF93DF93C82FC17082FBDD27D0F9D1 +:102C200081FB662760F984E00E94E01561E06C2773 +:102C300085E00E94E0156D2F86E0DF91CF910C9426 +:102C4000E0150F931F93CF93C82F61E08111682F78 +:102C5000617080E00E94E015C1FB662760F9C11138 +:102C600001C060E081E00E94E015C2FB662760F9C8 +:102C7000C11101C060E082E00E94E015C3FB66273D +:102C800060F9C11101C060E083E00E94E0154C2FA3 +:102C900050E070E060E0DB01CA01F4E0B695A79572 +:102CA00097958795FA95D1F70097A105B10551F150 +:102CB000AC01BD0184E08A019B01E2E036952795D5 +:102CC00017950795EA95D1F70115110521053105ED +:102CD00019F08E5FB901A8017695679557954795CC +:102CE000452B462B472B09F08F5F8130A1F08823BD +:102CF00059F08230A9F08330C1F08C2FCF911F9111 +:102D00000F91089580E0D7CF20E040E56FEF82E398 +:102D10000E949D14F2CF20E040E56FEF8CEFF8CFDA +:102D200020E040E56FEF86E7F3CF20E040E56FEF6E +:102D30008AEDEECF0E94211680935D040C944B0C1B +:102D400080915D04982F9670963019F488600C94E9 +:102D50009A16877FFCCF21E030E001C0220F8A95D0 +:102D6000EAF7209580915D0482230C949A1621E065 +:102D700030E001C0220F8A95EAF780915D04822B32 +:102D80000C949A1680915E048695815009F48BE02C +:102D900061E00C94B41580915E0486958F5F8C3051 +:102DA00008F081E061E00C94B41580915E0480FF2E +:102DB00007C0869582588F77893010F40C94CB1613 +:102DC00061E082E00C94B415EEE5F4E083E08083EA +:102DD00011828FEF828380EA83831482A5E4B3E0BB +:102DE00012968C911297836012968C9360817181F8 +:102DF000828193810C948B1469EE7EEF90E080E0E9 +:102E00000E94163560E082E090E00E94F83460E0B5 +:102E100083E090E00E94F83410929C0260E084E02D +:102E200090E00E94F83460E082E290E00E94F83482 +:102E300060E085E090E00E94F83460E086E090E099 +:102E40000E94F8346FEF87E090E00E94F83440E091 +:102E500050E0BA0188E090E00E940A3560E08DE021 +:102E600090E00E94F83440E050E0BA0188E190E040 +:102E70000E940A3560E087E190E00E94F83440E06B +:102E800050E0BA018CE190E00E940A3570E060E009 +:102E900080E290E00E94163540E050E0BA0188E1FF +:102EA00090E00E940A3580E00E94B5130E94CE1384 +:102EB00040E050E0BA018FE090E00E940A3540E027 +:102EC00050E0BA0183E190E00C940A350F931F9310 +:102ED000CF93DF9300D000D0CDB7DEB74091D002C2 +:102EE0005091D1026091D2027091D3022FB7F89421 +:102EF00080913E0490913F04A0914004B091410420 +:102F00002FBF841B950BA60BB70B84369105A1052B +:102F1000B10588F10E94460E882379F10E94F808D5 +:102F20006E5F7F4F8F4F9F4F69837A838B839C8324 +:102F300080912B0190912C0187549D4F40912A0143 +:102F400050E04530510510F044E050E0BE016F5FA5 +:102F50007F4F0E94493284E090E00E94C630892B66 +:102F6000D9F40E94F8086093D0027093D102809344 +:102F7000D2029093D30281E010C00E94F808009121 +:102F8000E1021091E2022091E3023091E402600F2D +:102F9000711F821F931FC4CF80E00F900F900F907E +:102FA0000F90DF91CF911F910F9108958F929F9273 +:102FB000AF92BF92CF92DF92EF92FF920F931F9347 +:102FC000CF93DF93EB0188809980AA80BB809FB765 +:102FD000F894C0903E04D0903F04E0904004F090FC +:102FE00041049FBFC818D908EA08FB0894E6C9162F +:102FF000D104E104F10410F4442311F1E82E082E69 +:10300000000CFF089AE08902F0011124E050FF4F04 +:103010008381948187549D4F428150E004171507A6 +:1030200008F4A801B9010E944932C7010E94C630C4 +:10303000892BA1F40E94F808688379838A839B8393 +:1030400081E0DF91CF911F910F91FF90EF90DF9082 +:10305000CF90BF90AF909F908F90089580E0F1CF78 +:103060000F931F93CF93DF930F92CDB7DEB780916D +:10307000350489832091CF0290E041E0281719069A +:1030800009F440E001E010E09E012F5F3F4F6CED3E +:1030900072E087E00E94D6170F90DF91CF911F91C9 +:1030A0000F9108950F931F93CF93DF930F92CDB796 +:1030B000DEB78091FB02898341E09091CE029813A4 +:1030C00001C040E001E010E09E012F5F3F4F68ED3E +:1030D00072E086E00E94D6170F90DF91CF911F918A +:1030E0000F9108950F931F93CF93DF93CDB7DEB762 +:1030F00029970FB6F894DEBF0FBECDBF85E0EEE591 +:10310000F4E0DE01119601900D928A95E1F780912D +:10311000450390914603A0914703B09148038E83E5 +:103120009F83A887B98741E08885811101C040E06D +:1031300009E010E09E012F5F3F4F64ED72E085E0F3 +:103140000E94D61781111092470329960FB6F89462 +:10315000DEBF0FBECDBFDF91CF911F910F910895BC +:103160006F927F928F929F92AF92BF92CF92DF9297 +:10317000EF92FF920F931F93CF93DF930F92CDB7F0 +:10318000DEB7862E5A016901682E880F7708C301C1 +:103190000E94C630892B09F088C08AE0869DF00124 +:1031A000879DF00D1124E050FF4F458150E04115FF +:1031B000510511F041E050E08AE0869DF001879DC5 +:1031C000F00D1124E050FF4F6681778167547D4FE9 +:1031D000CE0101960E944932F50140815181628100 +:1031E00073812FB7F89480913E0490913F04A09191 +:1031F0004004B09141042FBF841B950BA60BB70B65 +:1032000084369105A105B10540F4B701C8010E94BB +:1032100047099981891709F44FC0082C000C9908B7 +:10322000C4010E94C630892B91F0B12C8B2D0F90D8 +:10323000DF91CF911F910F91FF90EF90DF90CF9092 +:10324000BF90AF909F908F907F906F9008958AE08D +:10325000889DF001899DF00D1124E050FF4F4581BC +:1032600050E0E416F50608F4A7018AE0889DF00115 +:10327000899DF00D1124E050FF4F668177816754DE +:103280007D4FC6010E944932B701C8010E9447091B +:1032900099818913CACF0E94F808F5016083718370 +:1032A00082839383BB24B394C1CFB12CA701B8010F +:1032B000C6010E944932BACFBB24B394F7CFCF9254 +:1032C000DF92EF92FF920F931F93CF93DF9300D083 +:1032D00000D00F92CDB7DEB76B0185E0E82EF12C60 +:1032E0000AEB12E09E012F5F3F4F41EB52E061E09D +:1032F00080E00E94B018882349F095E0FE013196E5 +:10330000ACEAB2E001900D929A95E1F795E0ECEA13 +:10331000F2E0D60101900D929A95E1F70F900F908F +:103320000F900F900F90DF91CF911F910F91FF9011 +:10333000EF90DF90CF90089590E080E00E94F2340B +:10334000893E9E4F11F40C94721480E008951F92F0 +:103350000F920FB60F9211242F933F934F935F93C9 +:103360006F937F938F939F93AF93BF93CF93DF938D +:10337000EF93FF93D091E900DF708091EC00C82FAC +:10338000C17080FDC0E81092E9008091F000877F55 +:103390008093F00078940E94AC0F1092E900809125 +:1033A000F00088608093F000CD2BCF70C093E900CF +:1033B000FF91EF91DF91CF91BF91AF919F918F914D +:1033C0007F916F915F914F913F912F910F900FBE21 +:1033D0000F901F9018951F920F920FB60F92112405 +:1033E0002F933F934F935F936F937F938F939F930D +:1033F000AF93BF93EF93FF938091E10082FF09C0E9 +:103400008091E20082FF05C08091E1008B7F809374 +:10341000E1008091DA0080FF24C08091D80080FF15 +:1034200020C08091DA008E7F8093DA008091D900ED +:1034300080FF9BC080E189BD82E189BD09B400FEA7 +:10344000FDCF81E08093530480914504811109C030 +:103450000E946A070E9435088091E2008460809390 +:10346000E2008091E10080FF17C08091E20080FFC0 +:1034700013C08091E2008E7F8093E2008091E20091 +:1034800080618093E2008091D80080628093D800B0 +:1034900019BC85E0809353048091E10084FF29C02A +:1034A0008091E20084FF25C080E189BD82E189BD71 +:1034B00089B5982F917080FFFBCF8091D8008F7DC8 +:1034C0008093D8008091E1008F7E8093E10080910D +:1034D000E2008F7E8093E2008091E2008160809321 +:1034E000E20080915404882309F445C084E080936D +:1034F00053048091E10083FF27C08091E20083FFA5 +:1035000023C08091E100877F8093E10082E0809377 +:103510005304109254048091E1008E7F8093E10067 +:103520008091E2008E7F8093E2008091E2008061D2 +:103530008093E20042E060E080E00E940308809116 +:10354000F00088608093F000FF91EF91BF91AF9100 +:103550009F918F917F916F915F914F913F912F91AB +:103560000F900FBE0F901F90189519BC1092530426 +:103570001092450476CF8091E30087FD93E090930D +:103580005304B7CF78941F921FB61F9211248F93C4 +:103590009F93AF93BF9380913E0490913F04A0917D +:1035A0004004B09141040196A11DB11D80933E04D9 +:1035B00090933F04A0934004B0934104BF91AF9116 +:1035C0009F918F911F901FBE1F9018959C014FB720 +:1035D000F89480913E0490913F04A0914004B091F2 +:1035E00041044FBF821B930B08952FB7F89480912D +:1035F0003E0490913F04A0914004B09141042FBF3C +:1036000008958F929F92AF92BF92CF92DF92EF92E6 +:10361000FF920F931F93CF93DF93CDB7DEB72F9712 +:103620000FB6F894DEBF0FBECDBF8E010F5F1F4FE8 +:103630008AE0D8011D928A95E9F787E5C82E81E0D6 +:10364000D82EF12CE12CAA24A394B12CF60181915F +:103650006F018F3F09F44AC0F894E82FE295EF70AC +:10366000F0E021A18F70A50102C0440F551F8A957B +:10367000E2F7CA01922F982B91A392A180958923FA +:1036800082A30E94100A00C0E0E5F1E030E020E0F3 +:10369000912C41914F3F09F47FC0A42FA295AF70A8 +:1036A000B0E090968C9190E04F7002C09595879510 +:1036B0004A95E2F780FD70C08A2D022E01C0880F66 +:1036C0000A94EAF7982A2F5F3F4F2730310509F710 +:1036D000F601319780818F3F11F00E94120A50EA63 +:1036E0005A95F1F7F801EE0DFF1D90828FEFE81A61 +:1036F000F80A95E0E916F10409F0A8CF4AE050E095 +:10370000B80187EE92E00E943C327C01892B41F0A7 +:103710008AE0F801A7EEB2E001900D928A95E1F7F8 +:103720001091F202E114F104C9F181E080939F024B +:103730000E94F51A90939E0280939D0280919D02B3 +:1037400090919E020E94E61A069778F0A7EEB2E0EA +:10375000E12FF0E0E55CFC4F8CEE92E02D9121939F +:103760008A179B07D9F710929F0281E090E0EF281B +:10377000C9F02F960FB6F894DEBF0FBECDBFDF9114 +:10378000CF911F910F91FF90EF90DF90CF90BF905E +:10379000AF909F908F90089580E094CF80919F028A +:1037A0008111CCCF0E94460EB82EE091F2028E011C +:1037B000055F1F4F882309F4D3C085E0D8011D920F +:1037C0008A95E9F7F0E09F01255C3C4F79018091F3 +:1037D000E002AE01405F5F4F6A018A3008F098C096 +:1037E0004FE559E1B801C7010E94020E882309F490 +:1037F000A6C04DEF55E2B801C7010E94020E882312 +:1038000009F49DC046E657E1B801C7010E94020EC7 +:10381000882309F494C042E758E1B801C7010E9427 +:10382000020E882309F48BC042E558E1B801C701B4 +:103830000E94020E882309F482C040E358E1B801D7 +:10384000C7010E94020E882309F479C01092E00299 +:10385000E091F102F0E0AF01455C5C4FD80110E06F +:10386000FA019191AF018D91981731F09F0121508C +:103870003109F90180831B2DAC15BD0589F78091B5 +:10388000A2029091A3020E94E61A893E934060F141 +:103890006091FB02E62EF12C662777276E197F09CF +:1038A000072E000C880B990B0E94E13527EA39E7B7 +:1038B00047E45DE30E94AE364B015C01B701FF0CAB +:1038C000880B990B0E94E1359B01AC01C501B40145 +:1038D0000E942D350E94B0356093FB020E94F51ABC +:1038E0009093A3028093A2028091A602882371F094 +:1038F0008091A4029091A5020E94E61A893E93400D +:1039000028F082EE0E94720C1092A602812F31CF15 +:103910008091A0029091A1020E94E61A843F9140FA +:1039200008F05ECFE091F102F0E0E55CFC4FD801D9 +:1039300011921D92AC15BD05D9F71B2DA0CF80911A +:10394000E0028F3F31F08F5F8093E0028A3008F40D +:103950007FCF0E94F51A9093A1028093A002E2CF3C +:10396000F0E0E55CFC4FF89485E0AAEBB2E0019052 +:103970000D928A95E1F765E070E08AEB92E00E9493 +:1039800047098093B9020E94100AF894E091F90265 +:10399000F0E0EA50FD4F80818B878093C00261E0A8 +:1039A00070E0C8010E9447098093BF020E94100A7C +:1039B000F894C090C102D090C202E090C302F0908F +:1039C000C4028091A7029091A802A091A902B0918F +:1039D000AA02C816D906EA06FB06D1F0C092A702D1 +:1039E000D092A802E092A902F092AA020E94460E8A +:1039F00081110EC00E94F808C61AD70AE80AF90A0F +:103A0000C092E102D092E202E092E302F092E4027C +:103A10000E94100AF8948091CC02882321F184FF3F +:103A200004C09091CD029093480380FF0DC0809117 +:103A3000C50280FF2CC090915E04916090935E045B +:103A400060E086950E94B4158091CC0281FF09C088 +:103A500020E04091C8026091C7028091C6020E9496 +:103A60009D141092CC020E94100AF8948091CE020C +:103A70008093FB020E94100AF8948091CF02882361 +:103A800049F00E947B0D0E94100A80E072CE0E94D5 +:103A90008E0FDACF0E94600DF6CF5F926F927F9209 +:103AA0008F929F92AF92BF92CF92DF92EF92FF924E +:103AB0000F931F93CF93DF9300D000D00F92CDB719 +:103AC000DEB76C01FC0183819481892B31F0808108 +:103AD000918189238F3F09F082C50F900F900F903D +:103AE0000F900F90DF91CF911F910F91FF90EF906A +:103AF000DF90CF90BF90AF909F908F907F906F900E +:103B00005F9008950E941014182F682F89819A8160 +:103B10000E941F0C69817A81812F0E9403148C01FD +:103B2000F6018281882309F463C0C801905681158B +:103B3000F0E29F0750F0905E811520E1920728F097 +:103B4000915C81159F4108F0A5C0C80199279C018F +:103B5000245031092432310520F08B970E9708F05C +:103B600047C08091A2029091A3020097D9F10E94D0 +:103B7000E61A9C0150E040E060E67AEE80E090E0DA +:103B80000E94AE31CA01B90125E030E040E050E0CA +:103B90000E94AE31E090FB022F3F310519F010F08A +:103BA0002FEF30E0F12C2E193F09B90190E080E0B1 +:103BB0000E94DF3527EA39E747E45DE30E94AE362D +:103BC0000E9499354B015C01B701FF0C880B990BE2 +:103BD0000E94E135A50194010E942D350E94B03567 +:103BE0006093FB020E94F51A9093A3028093A202B5 +:103BF000F6018281882309F4E6C4C80182519F45F9 +:103C0000409708F071C48FEF93E00E94E4340251B2 +:103C100097E5A92E92E0B92E81115FCF011143C023 +:103C20001C821B82662463948AE0582E85010F5FF4 +:103C30001F4FC5010E94E43489831A82882309F446 +:103C40004CCF9FEF980F9330E8F58A83698232E07A +:103C5000A30EB11CC8010E94E4348B83882309F4AD +:103C60003CCF8E010F5F1F4FF80120812223F1F21C +:103C7000213009F061C091818281913029F50E5F78 +:103C80001F4F6AE070E0893311F460E570E00E9434 +:103C9000790E20C090E080E00F3F110511F008F090 +:103CA00056CFC80154CFA114F4E0BF0609F415CFD4 +:103CB000C5010E94E434811101C001502FEFA21A06 +:103CC000B20AACCF5801CDCF923039F40E5F1F4FFE +:103CD0000E94AB0C0F5F1F4FC7CF933029F40E5FCC +:103CE0001F4F0E94720CF6CF943019F00F5F1F4FD8 +:103CF000F1CF0E5F1F4F30E020E0B8016F5F7F4FC4 +:103D0000F80141818053990B8A30910550F0215080 +:103D1000310900F38FE99FE00197F1F700C000003F +:103D2000F6CF529EF001539EF00D11249C012E0FF0 +:103D30003F1F842F8B01E1CFE22FF0E0EA54FE4FCA +:103D40007490822F86958695869590E0FC01EA55C1 +:103D5000FE4FE4902770F12C022E02C0F594E794F8 +:103D60000A94E2F7E1E0EE22FF24FC01EA56FE4F5E +:103D7000C490D12C022E02C0D594C7940A94E2F7C5 +:103D8000F1E0CF22DD24FC01EA57FE4F8490912C14 +:103D900002C0959487942A95E2F721E08222992423 +:103DA000E114F10419F081EE0E94AB0CC114D104AE +:103DB00019F086EE0E94AB0C39E36AE070E07312F2 +:103DC00002C060E570E0872D0E94790ECD2819F0C1 +:103DD00086EE0E94720CEF2819F081EE0E94720CA0 +:103DE000892809F477CF6AE070E08CE250CF81E057 +:103DF0000E94B71603C081E00E94AB160F900F908F +:103E00000F900F900F90DF91CF911F910F91FF9026 +:103E1000EF90DF90CF90BF90AF909F908F907F906A +:103E20006F905F900C94A01682E0E2CF013E1105E6 +:103E300009F49AC0043E110509F07CC3882309F4F3 +:103E4000CEC081E08093FC0275C30238FFE51F07F6 +:103E500009F459C000F500383FE51307B9F10138FE +:103E60004FE5140709F066C3882309F445C0809123 +:103E7000A602811106C081E08093A60282EE0E9414 +:103E8000AB0C0E94F51A9093A5028093A40281EED8 +:103E90000E94AB0C2DC003385FE5150709F447C03D +:103EA00004389FE5190709F045C3882309F482C047 +:103EB00080914302882309F45AC0809144020E94F1 +:103EC000720C80EE0E94AB0C8AE25EC08823B9F0CF +:103ED0008091A602811106C081E08093A60282EE45 +:103EE0000E94AB0C0E94F51A9093A5028093A40245 +:103EF0008BE20E94AB0C1EC381EE0E94720C8BE21F +:103F00000E94720C17C3882309F414C381EE0E9427 +:103F1000AB0C83EE0E94AB0C8FE40E94AB0C8FE4E1 +:103F20000E94720C83EE0E94720C81EEE9CF88230E +:103F300009F400C381EE0E94AB0C83EE0E94AB0C2F +:103F400080E50E94AB0C80E5EBCF80934602109396 +:103F5000450200934402882321F081E08093FD0212 +:103F6000E9C21092FD02E6C280934302F0CF809135 +:103F70004602882309F4A8CF809144020E94720C63 +:103F800080EE0E94AB0C8CE40F900F900F900F907E +:103F90000F90DF91CF911F910F91FF90EF90DF90E5 +:103FA000CF90BF90AF909F908F907F906F905F90D9 +:103FB0000C94AB0C8AE20E94720C8CE40E94720C8E +:103FC00080EE0E94720C80914302811105C08091A5 +:103FD0004602882309F481CD80914402D5CF109206 +:103FE000FC02A8C2882331F081E08093FF02109286 +:103FF0006E01A0C21092FF029DC2073C2CE5120781 +:1040000009F4AEC008F4A7C0083C4CE5140709F455 +:10401000ACC0093C1C4509F0ADC240E555E16CE57A +:1040200075E179C0043DECE51E07A8F40E3CFCE503 +:104030001F0708F052CD0C3C2CE5120709F49FC075 +:1040400042E955E163EA75E10D3C1C4508F463C0A3 +:1040500061E081E046C0053D4CE5140709F43DCD23 +:1040600008F492C00D351D4509F437CD83C2809107 +:104070005E0480FF31C08E7F80935E0460915E0499 +:1040800070915F0480916004909161040E948B1490 +:10409000809147038160809347039FEFE0E7F2E060 +:1040A0009150E040F040E1F700C000000F900F9009 +:1040B0000F900F900F90DF91CF911F910F91FF9074 +:1040C000EF90DF90CF90BF90AF909F908F907F90B8 +:1040D0006F905F900C948E0E816080935E0461E01F +:1040E00086950F900F900F900F900F90DF91CF91CA +:1040F0001F910F91FF90EF90DF90CF90BF90AF9006 +:104100009F908F907F906F905F900C94B41542ECCD +:1041100056E16BEC76E10F900F900F900F900F909F +:10412000DF91CF911F910F91FF90EF90DF90CF9093 +:10413000BF90AF909F908F907F906F905F900C9406 +:104140005D094BEC56E162EC76E1E5CF40E855E1E4 +:1041500069E875E1E0CF49E855E160E875E1DBCF5A +:1041600048E655E164E775E1D6CF44E755E168E6F6 +:1041700075E1D1CF4CE555E160E575E1CCCF43EA7F +:1041800055E162E975E1C7CF0F900F900F900F9046 +:104190000F90DF91CF911F910F91FF90EF90DF90E3 +:1041A000CF90BF90AF909F908F907F906F905F90D7 +:1041B0000C94D5160E3D1C4509F0DCC10F900F90F4 +:1041C0000F900F900F90DF91CF911F910F91FF9063 +:1041D000EF90DF90CF90BF90AF909F908F907F90A7 +:1041E0006F905F900C94FC16C8010E94F70BF82E9C +:1041F000CFC1092F0F70907F11F00295007F812FA2 +:104200002223C9F0002369F090E2910F983010F05A +:1042100011110BC080914604082B009346040E94A4 +:10422000D60B812F0E94AB0C17C080919B02082BEC +:1042300000939B02F4CF0E94720C002369F000955A +:10424000105E183010F0B11027C08091460408238A +:10425000009346040E94D60B98E0E91AF108E4E0C6 +:10426000EE16F10408F039CC0E94690E0F900F9001 +:104270000F900F900F90DF91CF911F910F91FF90B2 +:10428000EF90DF90CF90BF90AF909F908F907F90F6 +:104290006F905F900C94091680919B020823009305 +:1042A0009B02D8CF892F8F70907F903211F082952A +:1042B000807FF1E0BF120CC0222329F0333060F67A +:1042C0000E94680CC9CF323038F60E945D0CC4CF12 +:1042D000222341F03323A1F340FFA3CF4F70F60117 +:1042E0004583EECF332389F3193309F0F5C0FFEF8F +:1042F00027EE33E0F15020403040E1F700C00000ED +:10430000812F0E94720CA8CF892F86958695837085 +:1043100061F0813009F0A0CF812F9370211102C08C +:1043200090E080E00E94040997CF812F93702111C3 +:1043300002C090E080E00E941A098ECF892F83701E +:10434000A1F5211189CF812F829586958770880FDD +:10435000880F412F4F70082E01C0440F0A94EAF7CE +:10436000212F207114FF07C02FE030E001C0220F81 +:104370008A95EAF72095969596959370923081F0FC +:10438000822F842B933030F480919C02913029F05D +:10439000242B82230E94590C5FCF842B822BFACFCF +:1043A000242B80919C028227F5CF8695222311F041 +:1043B000892F8170882309F44FCF812F82958695AC +:1043C0008770880F880F412F4F70082E01C0440F4F +:1043D0000A94EAF7212F207114FF07C02FE030E084 +:1043E00001C0220F8A95EAF72095969596959370CD +:1043F000923081F0822F842B933030F480915D04D1 +:10440000913029F0242B82230E949A1625CF842BE9 +:10441000822BFACF242B80915D048227F5CF092FC0 +:104420000F70222329F0802F0E94B716812F48CFCA +:10443000812F0E945D0C802F0E94AB160DCF812F23 +:10444000E1EF1E1789F1E11750F0F0EF1F17B9F0F7 +:104450002223B1F13111E5CE892F8F7129C042EFAE +:10446000141749F153EF1513F3CF80E0222361F2C3 +:104470009F7181E001C0880F9A95EAF7C5CF22238A +:1044800079F0323008F0E8CE292F2F7181E090E0EA +:1044900001C0880F2A95EAF790915D048927B4CF6F +:1044A000333008F0D9CEF0CF892F8F71222321F23B +:1044B0000E94B716D1CE892F8F712223C9F3BCCFAA +:1044C000332379F0893341F48FEF97EEE3E08150A5 +:1044D0009040E040E1F712CF8FE39CE90197F1F7BC +:1044E0000DCF892F8F71A8CF0031FFE51F0709F489 +:1044F0007ECC01312FE5120709F496CC0E94F80812 +:10450000609304037093050380930603909307035D +:10451000F6018281053E110509F417CD08F095CC0E +:10452000003E110509F48ACC08F080CC0C3211054C +:1045300009F458CDF601928191113CCE8091460448 +:1045400082720A3CFCE51F0709F414CE08F06ACD1C +:10455000053C3CE5130709F4F9CD08F04ECD033CCA +:104560005CE5150709F4D3CD08F0EBCD023C1C4502 +:1045700009F47DCDF60100811181992309F434CE2F +:10458000C8010E941014F82E682FC8010E941F0C49 +:10459000B8018F2D0E9403140E946C0A182FB82EA8 +:1045A000F60122814581342F32953F70892F829503 +:1045B0008F70E82EF12C8C3008F04ECEF701EB5CBA +:1045C000F84C0C94CD3100313FE5130709F413CCBE +:1045D00001314FE5140709F09BCF82E00DCC85E057 +:1045E000DE01119601900D928A95E1F7F601228184 +:1045F00089819A81211186CA0E94F70B182F8ACAD5 +:104600001F93CF93DF9380916702807FA9F48091FD +:104610006402882389F080919902D09168026091A8 +:10462000620270916302A0916502B0916602C62F8A +:10463000C72316E0D81304C0DF91CF911F910895CE +:1046400090E0109711F0CF3F19F401968770F2CFE8 +:10465000189F9001199F300D1124F901E759FD4F62 +:1046600041814713F2CF40814613EFCF4281411180 +:10467000ECCF438154814A1B5B0B403A510528F72C +:10468000809167028F70806180936702F901E2591F +:10469000FD4F80818F708061808382E692E00E946E +:1046A0004D1DDF91CF911F910C94ED0BAF92BF92F6 +:1046B000CF92DF92EF92FF920F931F93CF93DF93EE +:1046C000CDB7DEB761970FB6F894DEBF0FBECDBF92 +:1046D0008C0185E0F801DE011D9601900D928A950E +:1046E000E1F7F801E28082E6A82E82E0B82E609120 +:1046F0006502709166026115710509F432C19091ED +:10470000620240916302892F84238F3F09F429C1FB +:1047100020813181C380D480F0906402F601E61BD1 +:10472000F70BFF2009F4E8C080916702582F507FF3 +:10473000E03AF10508F0ABC0511177C0FE2C4313ED +:1047400021C092131FC0E1101DC08F708061809343 +:104750006702C5010E944D1D80916702F8018583A3 +:104760008F2D61960FB6F894DEBF0FBECDBFDF91DF +:10477000CF911F910F91FF90EF90DF90CF90BF905E +:10478000AF900895CD2829F0822F83238F3F09F021 +:1047900003C180E0F82FF170DF2E80FF3CC08091D4 +:1047A00099024091680256E0841315C02D873E8718 +:1047B0008D859E850E943F14292F22952F702230CF +:1047C000F0F0243018F59F70F1F0F8019581907F9A +:1047D000D1F4D12C1EC090E0589FF001599FF00DEC +:1047E0001124E759FD4F6181361306C060812613FD +:1047F00003C06281E6120FC001968770D5CF9F700B +:1048000011F0882331F3805E883018F3C8010E94CC +:104810004D1DFD2CA5CFEE2009F4A2CF809167029B +:10482000816080936702F12C9BCF431306C09213E3 +:1048300004C0F801EE2009F479C0C8010E944B14AD +:10484000882309F1EE20F9F080916702803270F040 +:10485000209162023091630238872F831986DB86AC +:10486000CA868C87CE0107960E944D1D86E0F8010E +:10487000A2E6B2E001900D928A95E1F70E94002332 +:10488000FF24F3946DCFC8010E944D1DF9CF511143 +:104890000AC082E692E00E944D1D86E0F501119269 +:1048A0008A95E9F7C0CF43130FC092130DC0E110F2 +:1048B0000BC0F8018583C8010E944D1D86E0F501FB +:1048C00011928A95E9F74CCFC8010E944B148823B6 +:1048D000D1F2EE20C1F280916702803238F220914D +:1048E0006202309163023A8329831B82DD82CC828B +:1048F0008E83CE010196B8CFE03AF105F8F6FE2C92 +:10490000EE2009F243131FC092131DC0809167026D +:1049100080FD10C0982F907F69F0F8018583903F4B +:1049200031F0982F907F905F8F70892B8583C8011D +:104930000E944D1D86E0F801A2E6B2E001900D92C2 +:104940008A95E1F70DCFC8010E944B1481118ECFDB +:1049500080916702816080936702C8010E944D1DAB +:10496000FFCEEE2009F48FCFC8010E944B14F82E21 +:10497000882309F488CF86E0F801A2E6B2E001902E +:104980000D928A95E1F780916202909163020E94F4 +:104990003F140E940023E4CE81E08E25FBCE1F93BE +:1049A000CF93DF93CDB7DEB767970FB6F894DEBF2E +:1049B0000FBECDBF4B8B5C8B6D8B7E8B8F8B611154 +:1049C00010929B021A8A198A85E0FE017396DE0115 +:1049D0001D9601900D928A95E1F786E0FE013D96C5 +:1049E000DE01179601900D928A95E1F7CE010796A8 +:1049F0000E945623882389F016E0809199029091B5 +:104A0000680289134BC067960FB6F894DEBF0FBEDD +:104A1000CDBFDF91CF911F91089586E0FE013796BB +:104A2000DE01119601900D928A95E1F78A859B85AA +:104A3000892B11F38F81988589238F3FE9F220918B +:104A4000680230E0C9010196877099274091990268 +:104A50004817190681F4109246040E94A30F109281 +:104A600068021092990286E0E2E6F2E0DF011D9210 +:104A70008A95E9F7C1CF96E0929FD001939FB00D40 +:104A80001124A759BD4FFE01319601900D929A95C0 +:104A9000E1F7809368020E94ED0BAECF819FC001C9 +:104AA000112487599D4F0E945623882309F4ABCFC8 +:104AB0008091990290E001968770992780939902DE +:104AC0009CCF0F931F93CF93DF93CDB7DEB7A897FB +:104AD0000FB6F894DEBF0FBECDBF81114DC006E00A +:104AE000662359F10CA311E01DA31EA30E94F51A21 +:104AF0008160782F98A78FA34CA15DA16EA188A596 +:104B00000E94CF240F8F18A319A20E94F51A81606A +:104B1000782F9BA38AA34F8D58A169A18BA10E94D6 +:104B2000CF2481E0A8960FB6F894DEBF0FBECDBFAC +:104B3000DF91CF911F910F9108950A8F13E01B8F82 +:104B400081E08C8F0E94F51A8160782F9E8F8D8F67 +:104B50004A8D5B8D6C8D8E8D0E94CF240D8B1E8BAC +:104B60001F8A0E94F51A8160782F998F888F4D894E +:104B70005E896F89898DD3CF813099F66623F1F0F4 +:104B800016E0188B198B8A8B0E94F51A8160782F9A +:104B90009C8B8B8B488959896A898C890E94CF2488 +:104BA0001B871C871D860E94F51A8160782F9F87BE +:104BB0008E874B855C856D858F85B1CF06E00E8332 +:104BC00018E01F8388870E94F51A8160782F9A87E2 +:104BD00089874E815F8168858A850E94CF240983F9 +:104BE0001A831B820E94F51A8160782F9D838C8323 +:104BF00049815A816B818D8192CFCF92DF92EF9262 +:104C0000FF920F931F93CF93DF930F92CDB7DEB731 +:104C1000EE24E394F12C00EC12E09E012F5F3F4F55 +:104C200045EB52E063E082E00E94B018082F882331 +:104C300021F1C090F4028C2D90E09C012A503D4F50 +:104C400079011981F9018081181BD12E80E00AC0F9 +:104C5000DA94F70180818F5F808360E08C2D0E9461 +:104C60006125802F1D14A4F3912F17FD90E0191BCF +:104C700011110EC081110E94D40B802F0F90DF9173 +:104C8000CF911F910F91FF90EF90DF90CF900895FB +:104C90001F5FF70180818150808361E08C2D0E942D +:104CA0006125802FE5CF1F921FB61F9211248F938D +:104CB0009F93AF93BF9380913D04811113C0809166 +:104CC0003E0490913F04A0914004B091410441966C +:104CD000A11DB11D80933E0490933F04A093400416 +:104CE000B0934104BF91AF919F918F911F901FBED0 +:104CF0001F901895CDB7DEB7E0970FB6F894DEBFDA +:104D00000FBECDBF84B7877F84BF0FB6F894A89538 +:104D100080916000886180936000109260000FBEF7 +:104D200080E890E00FB6F894809361009093610062 +:104D30000FBE85B7806885BF85B7806885BF8EE068 +:104D40009AE090933902809338020E946A070E9489 +:104D500035088091E20084608093E200789480912D +:104D600053048823A1F01091E9001F709091EC008A +:104D7000892F817090FD80E8182B1092E9008091B6 +:104D8000E80083FD0E94AC0F1F701093E90082E0E1 +:104D900084BD93E095BD9AEF97BD80936E0010920D +:104DA000E1021092E2021092E3021092E4020E94E9 +:104DB0007214811102C00E94CE130E94460E80938D +:104DC000610180916101882309F4C6C010927601C7 +:104DD00085E2809377010E94460E81110E94B92FCF +:104DE0008091610181112FC0FE01359686E0DF01BF +:104DF0001D928A95E9F786E6898387E98A8386EC9E +:104E00008B8384E38C8385E38D833497A7E5B1E0BE +:104E1000CE010B9621912D938E179F07D9F787E02E +:104E2000ECE7F1E0DE01919601900D928A95E1F7B1 +:104E3000FE01B196A0E5B1E0CE01889621912D93B7 +:104E40008E179F07D9F78091610195E0811190E05D +:104E50009093F20285E0891B8093F10207E511E04F +:104E6000FCE5EF2EF1E0FF2EF80181918F018F3FDD +:104E700011F00E94120AE016F106B1F700E511E008 +:104E8000E7E5EE2EE1E0FE2ED8018D918D018F3FFA +:104E900011F00E94120AE016F106B1F7E7EEF2E017 +:104EA00081EF92E0ABE3B3E011921D928E179F0762 +:104EB000D9F70E949C19811102C00E94FC1682E061 +:104EC00090E00E94E4348093300384E090E00E94FC +:104ED000E434182F82E290E00E94E434982F812F6E +:104EE0009093E6028093E5020E94011BEFE7FBEB43 +:104EF0003197F1F700C000000E94011B80913B0335 +:104F000080FF2EC06FEF7FEF90E080E00E941635AB +:104F100081E08093E00080E28093D8001092C90085 +:104F20008FE19EE40197F1F700C0000087E090EB6D +:104F3000DC018093670690936806A0936906B0939E +:104F40006A0688E19CE00FB6F894A895809360000B +:104F50000FBE90936000FFCF85E28093760139CF3A +:104F600083E090E00E94E4340E94590C80915D043B +:104F70000E9421160E94460E811102C00E94BC2F81 +:104F800083E080932B0380E280932A040E94512EB9 +:104F90006DE070E089E492E00E94300D892BE9F524 +:104FA00080912B0363E070E081FDFFC186E492E015 +:104FB0000E94300D892B89F56DE070E086E392E068 +:104FC0000E94300D892B49F50E94F8086058774CF3 +:104FD0008E4F9F4F6093310470933204809333045B +:104FE00090933404E5E6F4E080E092E0DF019C0178 +:104FF0001D9221503040E1F7F0936606E09365067C +:105000008FEF9FEF909364048093630481E080931B +:1050100036048093350410922C038091F3028111A1 +:1050200036C00E949C19811104C00E94FC160E9487 +:10503000E41688E090E00E94EC3460935E04709384 +:105040005F048093600490936104809147038360C0 +:10505000809347036E7F71F40E94E41688E090E02D +:105060000E94EC3460935E0470935F04809360044C +:10507000909361040E94620980915E0480FF04C0E5 +:1050800060E086950E94B41581E08093F3028091E0 +:105090006101811106C084EF80936D0185EF8093DB +:1050A0006C0120916D01A22FA295AF70B0E0919696 +:1050B0003C9191972F7081E090E0BC01022E01C0DD +:1050C000660F0A94EAF7462F4095432391964C9336 +:1050D000919792963C919297362B92963C93929709 +:1050E00040916C01E42FE295EF70F0E031A14F7038 +:1050F000042E01C0880F0A94EAF7982F9095932305 +:1051000091A392A1892B82A390968C9190E002C0EA +:10511000959587952A95E2F7817020A130E002C02D +:10512000359527954A95E2F792E020FF90E0892B8C +:105130008093FA029091610181E098279093F9029F +:10514000891B8093F40286E592E090934B03809351 +:105150004A0360E08AE00E94B41581E00E949A163A +:1051600082E691E090933A048093390470E4672ECC +:10517000CE0101967C0180915304DD24D39400E19B +:1051800012E1853009F45EC10E94011BC82E811115 +:105190000E94F808E1E3F3E0ABE3B3E010E000E0E5 +:1051A000902EBD9081918B1509F476C18B25A12C91 +:1051B000DD24D3949D2D982309F469C10E94460EE5 +:1051C000882399F0A9A29AA2BD2081E009F480E089 +:1051D0008BA30E94F51A8160782F9DA38CA349A10F +:1051E0005AA16BA18DA10E94CF24F801EF5CFC4F66 +:1051F0008081D826D0828091FA02E82FEE0FEE0F40 +:1052000090916D01A92FA295AF70B0E090962C916E +:1052100030E09F7002C0359527959A95E2F721708E +:10522000332790916C01A92FA295AF70B0E09096B2 +:105230004C9150E09F7002C0559547959A95E2F7C2 +:10524000CA018170992740FF02C082E090E0822B62 +:105250008E2B8093FA021091F9028F70E82FF0E004 +:10526000EC5FFD4F80819091F802890F8093F802E6 +:10527000D12C84306CF0E12FF0E0EA50FD4F8081BA +:105280008F5F808360E0812F0E946125DD24D394AD +:105290008091F8028D3F6CF4E12FF0E0EA50FD4F71 +:1052A00080818150808361E0812F0E946125DD240F +:1052B000D3948091F802082E000C990B64E070E002 +:1052C0000E949A318093F802D1100E94D40B8091F1 +:1052D0003604882351F180912D0390912E030E9472 +:1052E000E61AC29708F0EFC020916304309164047D +:1052F0002115310509F049C2809135048823A9F0B0 +:105300000E94F80800913104109132042091330476 +:1053100030913404601B710B820B930B6F3F7F4FF6 +:105320008F4F9F4710F40E94600DC11001C0D11033 +:105330000E947B0D0E94690E90912F03891731F016 +:105340000E94690E80932F030E94091680915304D6 +:10535000843009F010CF83E08093E9008091E80069 +:1053600082FF09CF8091E80090E085FF0CC00E9489 +:10537000890730E2C32ED12C8E010F5F1F4F882387 +:1053800009F4E2C291E08091E8008B778093E80015 +:10539000992309F4F0CEE981E150E33108F036C3F6 +:1053A000F0E0EF5BF84C0C94CD3183E492E000CE5A +:1053B00080915304843009F435C00E94600D80E070 +:1053C0000E94091680914903811109C0D0924903B6 +:1053D00080915E0481708093F5020E948E0F10927E +:1053E0003D04A8E1B0E00FB6F894A895A093600042 +:1053F0000FBE6092600083B7817F846083BF83B7F4 +:10540000816083BF7894889583B78E7F83BF0FB602 +:10541000F894A89580916000886180936000109254 +:1054200060000FBE80915204882361F00E94011B2E +:10543000EBE3F3E08191811113C425E433E02E17EF +:105440003F07C1F780915304853009F4B1CF109222 +:1054500046040E94A30F0E94690E0E940916109232 +:1054600049038091F502882351F080915E048160A8 +:1054700080935E0460E086950E94B41585CE80918D +:105480004803882309F480CE0E948E0E7DCEA3941B +:10549000DD0C37E0A3128ECE0F5F1F4F0A301105CF +:1054A00009F07ECE8FEF88A789A71AA60E94F51A69 +:1054B0008160782F9CA78BA748A559A56AA58CA5C4 +:1054C0000E94CF2498CE0E94F51A90932E038093C9 +:1054D0002D0360E080E00E9430098091FB0290E0A3 +:1054E00090930A03809309030E94690E8093080336 +:1054F0000E94460E882331F1409104035091050328 +:1055000060910603709107032FB7F89480913E04D1 +:1055100090913F04A0914004B09141042FBF841B9F +:10552000950BA60BB70B81339547A105B10540F04C +:105530000E94600D80913604882309F4DDCED4CE1C +:105540000E947B0D0E94460E62E0882309F4DEC0B3 +:1055500080E00E94300960E083E891E00E9434130B +:1055600063E080E00E94300980915D040E941F0D7D +:10557000813009F497C0882309F48EC0823009F481 +:1055800099C0833009F492C066E080E00E9430093F +:1055900060E081EA91E00E94341367E080E00E94BD +:1055A0003009609108036695617086EA91E00E9477 +:1055B000341368E080E00E94300960910803609530 +:1055C00061708BEA91E00E94341369E080E00E94F0 +:1055D00030096091080362FB662760F98FEA91E069 +:1055E0000E94341340910003509101036091020323 +:1055F000709103032FB7F89480913E0490913F047B +:10560000A0914004B09141042FBF841B950BA60BC1 +:10561000B70B8D329140A105B10508F48BCF0E94E4 +:10562000F808609300037093010380930203909342 +:1056300003038091FF02811104C080916E018111EA +:105640003DC06FE080E00E94300960E084EB91E0B3 +:105650000E9434136CE080E00E94300981E0809366 +:105660006E018091FE0290E00196817099278093EF +:10567000FE0221E030E0281B390B40E6429FC001CA +:10568000439F900D11242091FD02222329F18A5974 +:105690009A4F0E9427074ECF60E089E891E00E9470 +:1056A000341372CF60E08FE891E0F9CF60E085E9D4 +:1056B00091E0F5CF60E08BE991E0F1CF6CE080E024 +:1056C0000E94300960E084EB91E00E9434136DE0A9 +:1056D00080E00E943009C5CF2091FC02222319F0FE +:1056E0008A559B4FD6CF2091090330910A032B3066 +:1056F00031051CF48A519C4FCCCF293231051CF462 +:105700008A5D9C4FC6CF8A599D4FC3CF80E00E94CF +:10571000300960E08AEB91E00E94341363E080E09E +:105720000E94300960E080EC91E00E94341367E051 +:1057300080E00E94300986E296E00E9427076DE033 +:1057400080E00E94300980910A038F9380910903C1 +:105750008F9386EC91E09F938F93FF92EF920E943C +:10576000523260E0C7010E9434136EE080E00E9474 +:10577000300960E08CEC91E00E9434130F900F90A0 +:105780000F900F900F900F90D5CE80912C0361E079 +:1057900070E08111B1CD482E512C1B01082E02C0A2 +:1057A000220C331C0A94E2F7A90142215321452B14 +:1057B00009F448C090912B0390FD46C08295880F54 +:1057C00080768093710192013695279536952795BD +:1057D00020937401815E809372011092750124E61A +:1057E00030E047E050E06FE671E088E70E94002F6C +:1057F000892B09F081CD55E0440C551C5A95E1F7F1 +:1058000080912B0380FD2EC0A2014B595B4F04E613 +:1058100010E020E230E060E488E70E94272F892B27 +:1058200009F06ACD0E947B0DC10180959095209072 +:105830006304309064042822392230926404209258 +:1058400063045ACD8F5FA7CF880F880F880F80938E +:10585000710110927401895F8093720183E08093DB +:105860007501BDCFEBE0F3E080E2DF011D928A9588 +:10587000E9F7E8E1F2E0F8ABEFA764E172E047E0B6 +:10588000A42E99249394AFA5B8A94D91B8ABAFA716 +:10589000FB018191BF01840D952D911D9C012B5918 +:1058A0003B4F3EA72DA7E42FF0E0E55FFC4F30E033 +:1058B00020E07A2C721AB92C022E01C0BB0C0A947B +:1058C000EAF70DA51EA590E0D8018D918D018B21E1 +:1058D000472D491B4770842E042E000C550BB82F02 +:1058E00001C0BB0F8A94EAF78B2E5195419551095F +:1058F0004770552701C086954A95EAF7882A808126 +:10590000882A80829F5F9830F9F62F5F3F4F31964B +:105910002830310571F6ECE1F2E02FA538A9E21745 +:10592000F30709F0B0CF04E610E020E230E04BE0EE +:1059300053E071CF8091F100D8018D938D01B1E0DA +:10594000CB1AD10809F41ECD8091E80085FDF2CF75 +:105950008091E8008B778093E8000E948907882374 +:1059600099F310CD1A8289E08B8311C08A8182302D +:1059700009F48EC1833089F1813009F047C00E945B +:10598000F8080E94D3316B837C838D839E83809142 +:105990005304843009F0EFCB1091E9001F7090910F +:1059A000EC00892F817090FD80E8182B82E08093B5 +:1059B000E9008091E80080FF0CC050E040E060E228 +:1059C00070E0C7010E94BA078091E8008E7780934B +:1059D000E8001F701093E900CECBDE011396EBE3D5 +:1059E000F3E081918D9323E0E534F207D1F7CFCF37 +:1059F0008A81823059F46B817C818D819E810E94E5 +:105A0000D33186E290E00E94F834C1CF8FEF8983D2 +:105A1000BECF4C816B818A810E94DD139827892734 +:105A200098279E838D83B3CF0D811E811027012778 +:105A300010278A81CB803EE0C39E600111249CE840 +:105A4000899FC00CD11C11248C8190E0880F991F74 +:105A5000C80ED91E612FC60187960E94F834602FA8 +:105A6000C6018896D0CF0E94601391CF8A81813879 +:105A7000C1F060F4803809F08ACF20E04B8160915A +:105A8000600480915F040E949D1481CF8238E9F008 +:105A9000833809F07CCF20E0409161046C818B81D8 +:105AA000F2CF60E08B810E94B4158B81811103C01D +:105AB0000E948E0F6CCF80915E04816080935E04A3 +:105AC00060E086950E94B41562CF8B81809362045A +:105AD0005ECF8A81813899F030F4803809F057CF51 +:105AE0008091610441CF823891F0833809F04FCF23 +:105AF00080915F048B83809160048C8348CF809178 +:105B00005E0480FF02C086952FCF80E02DCF80916C +:105B100062042ACF60915E0470915F0480916004FA +:105B2000909161040E948B1432CF80E18A832FCF41 +:105B300081E08A8389EA18CFAA80BB80BA24AB248B +:105B4000BA248E010F5F1F4FCC80C00ED12ED11C06 +:105B5000C501895A9D4F0C151D0509F418CFA9EAF6 +:105B6000AA16A1E0BA0650F40E94E434F801848336 +:105B7000BFEFAB1ABB0A0F5F1F4FEACFD8011496D5 +:105B80001C92F6CF0A811B81102701271027FE01E6 +:105B900031965F01CC80C00ED12ED11CC801895A2C +:105BA0009D4FC016D10609F4F2CE093AF1E01F0765 +:105BB00028F4D50114966C910E94F834BFEFAB1A0B +:105BC000BB0A0F5F1F4FEACF0E945013E0CE84E064 +:105BD000ADCFAA80BB80BA24AB24BA248E010F5F5C +:105BE0001F4FCC80C00ED12ED11CC5018796C01688 +:105BF000D10609F4CCCEE0E3AE16E2E0BE0658F4DE +:105C00000E94E434D80114968C93FFEFAF1ABF0AB8 +:105C10000F5F1F4FEACFF8011482F7CF0A811B8173 +:105C20001027012710279E012F5F3F4F5901CC807D +:105C3000C00ED12ED11CC8018796C016D10609F41A +:105C4000A6CE003332E0130728F4D50114966C91E8 +:105C50000E94F834BFEFAB1ABB0A0F5F1F4FEBCFA8 +:105C600009BD19BD09B400FEFDCF8091D8008F7D1C +:105C70008093D8008091E00082608093E000809162 +:105C8000E00081FDFCCF109246040E94A30FDACB06 +:105C900086E290E00E94E4341B821C821D828E8387 +:105CA00076CE1092B9008CE08093B80008959F9250 +:105CB000AF92BF92CF92DF92EF92FF920F931F931A +:105CC000CF93DF93B82EEB010E94F51A6C01EE24FE +:105CD000E394F12CC431D10560F025E0E22EF12CE3 +:105CE000CF3FDC0731F0CE0164E170E00E947A31F1 +:105CF0007B0184EAA82E94E8992E1092BC00A09211 +:105D0000BC000E94F51A8C018091BC0087FF0DC079 +:105D10008091B900887F883039F18091B900887FFF +:105D2000803111F10FEF1FEF09C00E94F51A801B9F +:105D3000910B8E159F0540F30EEF1FEFCF3FDC0751 +:105D4000E1F2C6010E94E61A8C179D07B0F2C80165 +:105D5000DF91CF911F910F91FF90EF90DF90CF9047 +:105D6000BF90AF909F900895B092BB009092BC00FE +:105D70000E94F51A8C018091BC0087FF0AC08091B7 +:105D8000B900887F883111F0803461F610E000E0BE +:105D9000DECF0E94F51A801B910B8E159F0558F3DC +:105DA000CBCF0F931F93CF93DF93EB018093BB0077 +:105DB00084E88093BC000E94F51A8C018091BC009D +:105DC00087FF11C02091B900287F81E090E0283240 +:105DD00011F490E080E0919581959109DF91CF9148 +:105DE0001F910F910895CF3FDC0741F30E94F51AF0 +:105DF000801B910B8C179D0708F38EEF9FEFEECF62 +:105E0000CF92DF92EF92FF920F931F93CF93DF9386 +:105E10006B018A017901B9010E94572EE6010C0D30 +:105E20001D1DC017D10761F424E92093BC00DF9148 +:105E3000CF911F910F91FF90EF90DF90CF90089539 +:105E400097FDF2CFB70189910E94D12EEACFCF9270 +:105E5000DF92EF92FF920F931F93CF93DF93C62FA2 +:105E60006A017901B8010E94572E97FD0CC0B80154 +:105E70008C2F0E94D12EE601EC0CFD1CCE15DF0507 +:105E800011F097FF0CC024E92093BC00DF91CF9163 +:105E90001F910F91FF90EF90DF90CF900895B80180 +:105EA00089910E94D12EEACF84E98093BC000895A5 +:105EB0008EE14A9B02C08150E1F74A9BFECF0895D4 +:105EC0005A9880E28A95F1F75A9A0895FC013BE0CE +:105ED0003A95F1F798E020E080E031E040E14A9522 +:105EE000F1F7880F4A9B02C08160232742E04A9560 +:105EF000F1F7000040E14A95F1F7915079F790E110 +:105F00009A95F1F799B132E03A95F1F7000040E146 +:105F10004A95F1F792FB992790F992272081920FE9 +:105F200090830895EF92FF920F931F93CF93DF9387 +:105F30000F92CDB7DEB719828C017C01E60EF11C01 +:105F40000E151F0561F481E09981911180E00F9099 +:105F5000DF91CF911F910F91FF90EF9008950E94D4 +:105F6000582FCE0101960E94662FF80181938F0170 +:105F7000E7CF529A5A9A089552985A9AEA9AE9E6BD +:105F8000F0E080818F7C808308956150770B91E0F1 +:105F900001C0990F6A95EAF720E031E0911108C03D +:105FA000222391F05A9A80E28A95F1F75A9808953F +:105FB000492F482339F05A9A232740E24A95F1F7AE +:105FC0009695ECCF5A98F9CF5A98EDCFFF920F9350 +:105FD0001F93CF93DF93EC018C01060F111DC017A7 +:105FE000D10731F4DF91CF911F910F91FF90089568 +:105FF000F9900E94602F68E08F2D0E94C52FEFCF8F +:106000001F920F920FB60F921124EF92FF920F93EF +:106010001F932F933F934F935F936F937F938F9330 +:106020009F93AF93BF93EF93FF93CF93DF930F9221 +:10603000CDB7DEB719820E94582FCE0101960E947B +:10604000662FA82FA695A695A695282F2295257090 +:106050009A2F9570290F922F937026952695920F5F +:10606000982797708981982B09F075C0A93008F09E +:1060700072C080E18A95F1F75A9A529AB2E0BA95C5 +:10608000F1F700C05A98EA2EF12CEAE0AE9FD00159 +:106090001124A050BF4F1896ED91FC91199730979D +:1060A000B1F0609102027091030216962D913C911D +:1060B0001797260F371F13968D919C911497680F91 +:1060C000791F15964C91159712968C9109958AE037 +:1060D0008E9DF0018F9DF00D1124E050FF4F6581E2 +:1060E000662351F02091020230910302868197814C +:1060F000820F931F0E94E62F0E94602FF0E1FA9515 +:10610000F1F75A9852985A9A80E18A95F1F78AE005 +:106110008E9D80018F9D100D112400501F4FD801BE +:1061200012966C911297662371F1209102023091C0 +:10613000030213968D919C91820F931F0E94922FC0 +:10614000D801ED91FC91882311F088E001C082E034 +:1061500080830E94582F0F90DF91CF91FF91EF9194 +:10616000BF91AF919F918F917F916F915F914F916F +:106170003F912F911F910F91FF90EF900F900FBEC5 +:106180000F901F901895ED91FC91DFCF0F931F9307 +:10619000CF93DF93EC0109970CF0A9C08AE08C9FA4 +:1061A000F0018D9FF00D1124E050FF4F808191810F +:1061B000892B09F49CC0F894529A5A9885E08A95E4 +:1061C000F1F700008C2F869585709C2F9570890FB4 +:1061D000982F937086958695890F8E0193E0000F16 +:1061E000111F9A95E1F7082B0E94602F00C068E00C +:1061F000802F0E94C52FA0E1AA95F1F752985A9AD4 +:106200004A9B27C087E090E04A9925C08AE08C9F8E +:1062100080018D9F100D112400501F4FF8016581E2 +:106220006623A1F1209102023091030286819781B9 +:10623000820F931F0E94922F811128C0529A5A9A5E +:10624000D801ED91FC9182E08083789482E090E027 +:1062500016C000C0D5CF0197B9F4529A5A9A8AE075 +:106260008C9FF0018D9FF00D1124E050FF4F0190A5 +:10627000F081E02D81E08083789481E090E0DF91EF +:10628000CF911F910F91089500C0BECF0E94582F4B +:10629000B0E2BA95F1F75A98529AE0E1EA95F1F72F +:1062A0008AE08C9FF0018D9FF00D1124E050FF4F8C +:1062B0006281662351F020910202309103028381B2 +:1062C0009481820F931F0E94E62F0E94602F8AE024 +:1062D0008C9FF0018D9FF00D1124E050FF4F019035 +:1062E000F081E02D1082789490E080E0C8CF84E0C7 +:1062F00090E0C5CFAA1BBB1B51E107C0AA1FBB1F63 +:10630000A617B70710F0A61BB70B881F991F5A9541 +:10631000A9F780959095BC01CD010895991B79E06E +:1063200004C0991F961708F0961B881F7A95C9F725 +:106330008095089597FB072E16F4009407D077FDFB +:1063400009D00E947A3107FC05D03EF490958195E2 +:106350009F4F0895709561957F4F0895052E97FB87 +:106360001EF400940E94C53157FD07D00E94DA3117 +:1063700007FC03D04EF40C94C531509540953095F0 +:1063800021953F4F4F4F5F4F0895909580957095A1 +:1063900061957F4F8F4F9F4F0895EE0FFF1F059020 +:1063A000F491E02D09946927962769277827872794 +:1063B00078270895A1E21A2EAA1BBB1BFD010DC070 +:1063C000AA1FBB1FEE1FFF1FA217B307E407F507A5 +:1063D00020F0A21BB30BE40BF50B661F771F881F81 +:1063E000991F1A9469F760957095809590959B0117 +:1063F000AC01BD01CF0108952F923F924F925F9261 +:106400006F927F928F929F92AF92BF92CF92DF92C4 +:10641000EF92FF920F931F93CF93DF93CDB7DEB729 +:10642000CA1BDB0B0FB6F894DEBF0FBECDBF0994BD +:106430002A88398848885F846E847D848C849B8414 +:10644000AA84B984C884DF80EE80FD800C811B8122 +:10645000AA81B981CE0FD11D0FB6F894DEBF0FBE51 +:10646000CDBFED010895FB01DC0102C005900D9246 +:1064700041505040D8F70895FB01DC0104C08D91D4 +:106480000190801921F441505040C8F7881B990BA6 +:106490000895FB01DC0102C001900D924150504073 +:1064A000D8F70895AEE0B0E0E8E5F2E30C940A32E4 +:1064B0000D891E8986E08C831A8309838FEF9FE7FD +:1064C0009E838D83AE01475E5F4F6F89788DCE01CD +:1064D00001960E9475322F813885020F131FF80133 +:1064E00010822E96E4E00C942632ABE0B0E0EBE7AD +:1064F000F2E30C94FC317C013B018A01FC01178220 +:106500001682838181FFB9C19AE0292ECE010196BE +:106510005C01F7019381F30193FD859193FF8191D4 +:106520003F01882309F446C1853239F493FD8591F2 +:1065300093FF81913F01853229F4B70190E00E94D9 +:106540005634E7CF912C412C512CFFE1F51538F052 +:106550008B3209F188F4803201F1833221F157FC4A +:106560003AC020ED280F2A3040F556FE1FC0929CFD +:10657000200D1124922E06C08D3291F0803379F7D0 +:10658000689450F8F30193FD859193FF81913F0149 +:106590008111DBCF20C0689451F8689452F8F2CF93 +:1065A000689453F8EFCF689454F8ECCF429C200DD8 +:1065B0001124422E689455F8E5CF8E3229F456FC0A +:1065C000F9C0689456F8DECF8C3619F4689457F801 +:1065D000D9CF8836B9F2982F9F7D95549330C0F06B +:1065E0008336A1F18337C1F1833509F05BC0F8012F +:1065F000C190D1908F01692D70E056FC02C06FEF01 +:106600007FEFC6010E9440344C01689457F80AC0DD +:106610000C5F1F4F2FE3298388248394912C6501FD +:10662000E89457F853FC04C04814190409F018F50D +:10663000342C8114910431F5332009F46ACFB70169 +:1066400080E290E00E9456343A94F6CFF8018081BF +:1066500089830E5F1F4FE0CFF801C190D1908F0169 +:10666000692D70E056FC02C06FEF7FEFC6010E94FB +:106670004B344C01D5CFB70180E290E00E945634F4 +:106680004A94D2CFF60157FC859157FE81916F0154 +:10669000B70190E00E94563431103A94F1E08F1A1D +:1066A0009108C7CF843619F0893609F074C0F80113 +:1066B00057FE6AC061917191819191918F01252D51 +:1066C0002F76D22E97FF09C0909580957095619591 +:1066D0007F4F8F4F9F4F6894D7F82AE030E0A50195 +:1066E0000E948634C82ECA188C2C5D2CD6FE0CC095 +:1066F000E89450F8C91440F4D4FE05C0D2FC03C09D +:10670000FD2DFE7E5F2E892C54FE8FC0FE01EC0D08 +:10671000F11D8081803309F081C0252D297E522E04 +:10672000852D8870382E53FC8FC050FE89C09C2C5C +:10673000841418F44C0C942C981854FE8BC0B70198 +:1067400080E390E00E94563452FE09C088E790E052 +:1067500051FE02C088E590E0B7010E945634C9148A +:1067600008F484C0CA94D12C9FEFC91AD90ACA0C64 +:10677000DB1CF60182916F01B70190E00E94563454 +:10678000AC14BD04B1F758CF61917191072E000C84 +:10679000880B990B93CFD52CE894D4F82AE030E0FD +:1067A000853739F1952D997FD92E8F3601F148F42F +:1067B0008835A9F0F701868197812B96E2E10C9448 +:1067C0001832803749F08837A9F7D4FE02C06894A0 +:1067D000D2F820E130E00DC06894D4F8F6CF54FE32 +:1067E00003C0E92FE660DE2E20E132E002C028E09F +:1067F00030E0F801D7FE0DC06191719181919191C6 +:106800008F01A5010E948634C82ECA18E894D7F8D3 +:106810006BCF6191719190E080E0F2CF52FC02C0A9 +:1068200083947ECF839483947BCF852D867809F4DF +:1068300077CFF6CFB70180E290E00E945634839480 +:106840008414C0F3312C79CF342C3818841408F414 +:1068500074CFF8CF852D867809F481CF8BE251FE75 +:1068600080E257FC8DE2B70190E077CFB70180E37B +:1068700090E00E9456349A9472CF8FEF9FEF9DCF95 +:10688000FC010590615070400110D8F780959095FB +:106890008E0F9F1F0895FC01615070400190011000 +:1068A000D8F7809590958E0F9F1F08950F931F9393 +:1068B000CF93DF93182F092FEB018B8181FD09C046 +:1068C0001FEF0FEF812F902FDF91CF911F910F912D +:1068D000089582FF14C02E813F818C819D812817ED +:1068E00039073CF4E881F981CF01019699838883C7 +:1068F00010838E819F8101969F838E83E3CFE885ED +:10690000F985812F0995892BA1F3DACFFA01AA27FE +:10691000283051F1203181F1E8946F936E7F6E5FE2 +:106920007F4F8F4F9F4FAF4FB1E03ED0B4E03CD090 +:10693000670F781F891F9A1FA11D680F791F8A1F73 +:10694000911DA11D6A0F711D811D911DA11D20D0DA +:1069500009F468943F912AE0269F11243019305D94 +:106960003193DEF6CF010895462F4770405D419385 +:10697000B3E00FD0C9F7F6CF462F4F70405D4A33D2 +:1069800018F0495D31FD4052419302D0A9F7EACF9A +:10699000B4E0A6959795879577956795BA95C9F7C9 +:1069A00000976105710508959B01AC010A2E0694BC +:1069B0005795479537952795BA95C9F7620F731F75 +:1069C000841F951FA01D0895F999FECF92BD81BD2A +:1069D000F89A992780B50895A6E1B0E044E050E028 +:1069E0000C941E35A8E1B0E042E050E00C941E3556 +:1069F000262FF999FECF92BD81BDF89A019700B478 +:106A0000021639F01FBA20BD0FB6F894FA9AF99A17 +:106A10000FBE08950396272F0E94F9340E94F83480 +:106A2000252F0E94F934242F0C94F9340196272F36 +:106A30000E94F9340C94F834DC01CB01FC01F99983 +:106A4000FECF06C0F2BDE1BDF89A319600B40D92BA +:106A500041505040B8F708955058BB27AA270E94CC +:106A600044350C945C360E944E3638F00E94553600 +:106A700020F039F49F3F19F426F40C944B360EF4B1 +:106A8000E095E7FB0C941C36E92F0E946D3658F315 +:106A9000BA17620773078407950720F079F4A6F503 +:106AA0000C94A7360EF4E0950B2EBA2FA02D0B01F7 +:106AB000B90190010C01CA01A0011124FF27591B43 +:106AC00099F0593F50F4503E68F11A16F040A22F49 +:106AD000232F342F4427585FF3CF469537952795BA +:106AE000A795F0405395C9F77EF41F16BA0B620BB9 +:106AF000730B840BBAF09150A1F0FF0FBB1F661F00 +:106B0000771F881FC2F70EC0BA0F621F731F841F42 +:106B100048F4879577956795B795F7959E3F08F068 +:106B2000B0CF9395880F08F09927EE0F979587952A +:106B300008950E948F3690F09F3748F4911116F413 +:106B40000C94A83660E070E080E89FE3089526F09A +:106B50001B16611D711D811D0C9422360C943D364F +:106B60000E94753688F09F5798F0B92F9927B75132 +:106B7000B0F0E1F0660F771F881F991F1AF0BA95E1 +:106B8000C9F714C0B13091F00E94A736B1E0089562 +:106B90000C94A736672F782F8827B85F39F0B93F54 +:106BA000CCF3869577956795B395D9F73EF4909594 +:106BB0008095709561957F4F8F4F9F4F0895E89412 +:106BC00009C097FB3EF490958095709561957F4F35 +:106BD0008F4F9F4F9923A9F0F92F96E9BB279395E3 +:106BE000F695879577956795B795F111F8CFFAF4F3 +:106BF000BB0F11F460FF1BC06F5F7F4F8F4F9F4F24 +:106C000016C0882311F096E911C0772321F09EE881 +:106C1000872F762F05C0662371F096E8862F70E0E7 +:106C200060E02AF09A95660F771F881FDAF7880FC1 +:106C30009695879597F9089597F99F6780E870E092 +:106C400060E00895882371F4772321F09850872B12 +:106C5000762F07C0662311F499270DC09051862B1B +:106C600070E060E02AF09A95660F771F881FDAF7C8 +:106C7000880F9695879597F908959F3F31F0915029 +:106C800020F4879577956795B795880F911D969510 +:106C9000879597F908959FEF80EC089500240A9452 +:106CA0001616170618060906089500240A941216E7 +:106CB0001306140605060895092E0394000C11F41A +:106CC000882352F0BB0F40F4BF2B11F460FF04C0C7 +:106CD0006F5F7F4F8F4F9F4F089557FD9058440F20 +:106CE000551F59F05F3F71F04795880F97FB991F2B +:106CF00061F09F3F79F087950895121613061406E8 +:106D0000551FF2CF4695F1DF08C016161706180674 +:106D1000991FF1CF869571056105089408950E9429 +:106D20007536A0F0BEE7B91788F4BB279F3860F42A +:106D30001616B11D672F782F8827985FF7CF869595 +:106D400077956795B11D93959639C8F30895E894A2 +:106D5000BB2766277727CB0197F908950E94C13694 +:106D60000C945C360E944E3638F00E94553620F066 +:106D7000952311F00C941C360C944B3611240C9472 +:106D8000A8360E946D3670F3959FC1F3950F50E0C1 +:106D9000551F629FF001729FBB27F00DB11D639FCD +:106DA000AA27F00DB11DAA1F649F6627B00DA11D73 +:106DB000661F829F2227B00DA11D621F739FB00D19 +:106DC000A11D621F839FA00D611D221F749F332789 +:106DD000A00D611D231F849F600D211D822F762F22 +:106DE0006A2F11249F5750409AF0F1F088234AF0FF +:106DF000EE0FFF1FBB1F661F771F881F915050406B +:106E0000A9F79E3F510580F00C941C360C94A836CF +:106E10005F3FE4F3983ED4F3869577956795B795F1 +:106E2000F795E7959F5FC1F7FE2B880F911D96950B +:106E3000879597F90895F894FFCF9310BB100E1122 +:106E4000BB100E11EE1026110E11231230125D141C +:106E50005D146614661468146614661466145D1472 +:106E60005D146D14661466146D14F920F920522116 +:106E7000522184212C212C212C219E210F221F22E2 +:106E80001F22B22CB62CF82C092D142D332D362DA3 +:106E9000692D8A2D062D062D952D982D9C2DC22D00 +:086EA000E42DE72DE92D0E2E73 +:106EA800420200000001000000004202000000054C +:106EB800010000004202000000010600000042023A +:106EC8000000000107000000420204080000000062 +:106ED80000004202090C00000000000042020115F7 +:106EE800000000000000420201160000000000003F +:106EF80036323331F7F6676697C63435000000003E +:106F08000001F508D50DF408D10DCD0DF4F50100FB +:106F180021007F220003004A004A4A01F6F7313374 +:106F28003236674C4159455200426173652000472B +:106F3800616D6520005261697365004C6F776572F9 +:106F4800004C4F434B0043617073004E756D005306 +:106F580063726C00202020202000534F4C415200C7 +:106F6800544D505354002025303364002077706D01 +:106F780000818283E200E900EA00B500B600B700AC +:106F8800CD008301CC008A019201940121022302E1 +:106F980024022502260227022A02B300B4006F0049 +:106FA8007000B90200FF0100010000FFFF000001AE +:106FB8000001FF0000081018181008000001020264 +:106FC800020202020202020240223246012401F2B7 +:086FD800002B0D440D640D00B7 :00000001FF From a0c2e8b8a9c2fc8bf8c2b770e20eea8391fcdede Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 13 Sep 2021 20:31:13 -0400 Subject: [PATCH 18/94] Increased combo duration --- keyboards/solartempest/ps17/config.h | 2 +- .../ps17/solartempest_ps17_via.hex | 2192 ++++++++--------- 2 files changed, 1097 insertions(+), 1097 deletions(-) diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h index a22d17fcb719..25a2d3b89897 100644 --- a/keyboards/solartempest/ps17/config.h +++ b/keyboards/solartempest/ps17/config.h @@ -140,6 +140,6 @@ #define LOCKING_RESYNC_ENABLE #define COMBO_COUNT 6 //Number of tap combos used -#define COMBO_TERM 350 //Default combo time is 200ms +#define COMBO_TERM 400 //Default combo time is 200ms #define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index c4de00dc7f90..b9d0957dd893 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -1,9 +1,9 @@ :100000000C94BD030C9404040C9404040C94040498 :100010000C9404040C9404040C9404040C94040440 -:100020000C9404040C9404040C9478270C94342746 -:100030000C9473280C9404040C9404040C9404048D +:100020000C9404040C9404040C9477270C94332748 +:100030000C9472280C9404040C9404040C9404048E :100040000C9404040C9404040C9404040C94040410 -:100050000C9404040C944F280C9404040C94040491 +:100050000C9404040C944E280C9404040C94040492 :100060000C9404040C9404040C9404040C940404F0 :100070000C9404040C9404040C9404040C940404E0 :100080000C9404040C9404040C9404040C940404D0 @@ -124,9 +124,9 @@ :1007B00098031092990314BE84B7877F84BF0FB645 :1007C000F894A895809160008861809360001092F1 :1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 -:1007E000E6EEFFE502C005900D92A43CB107D9F7F3 +:1007E000E4EEFFE502C005900D92A43CB107D9F7F5 :1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 -:100800000E949A280C94BA2F0C940000E8EDF0E0B6 +:100800000E9499280C94B92F0C940000E8EDF0E0B8 :1008100080818E7F80831092E2001092DA00109225 :10082000E100A0EEB0E08C9181608C9380818F77A5 :10083000808319BCA7EDB0E08C918E7F8C93808172 @@ -204,7 +204,7 @@ :100CB0004E2F4983E8835A83DF91CF911F910F9183 :100CC000FF90EF90DF90BF90AF900895202F30E01D :100CD0004491D42EE42EF12C56E0159FC00111242E -:100CE000EFEFF0E0BF010E94BB2E812F90E0880F54 +:100CE000EFEFF0E0BF010E94BA2E812F90E0880F55 :100CF000991F55E5569FD001579FB00D11248A1BAF :100D00009B0B982F990F890F5F01A21AB30AAE9C13 :100D1000D001AF9CB00DBE9CB00D11245B2F089F7D @@ -239,12 +239,12 @@ :100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D :100EF000F0CF089580916F0280FD16C081FD16C06D :100F000082FD16C080916D028823A1F0883280F4A2 -:100F100028E0829FC001112468E270E00E94CF2E79 +:100F100028E0829FC001112468E270E00E94CE2E7A :100F2000862F672B39F0089582E0089584E00895B4 :100F300088E0089581E0089580916F0280FD14C0DB :100F400081FD14C082FD16C080916E02882381F05D :100F5000843180F422E3829FC001112464E170E0B7 -:100F60000E94CF2E862F08958CE0089589E1089580 +:100F60000E94CE2E862F08958CE0089589E1089581 :100F700085E0089582E30895803F31F40E949C0744 :100F80008195809377020895813F19F40E949C0710 :100F9000F8CF823F31F40E949C07819580937602BE @@ -448,1102 +448,1102 @@ :101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 :101C00001F910F91FF90EF90DF900C94280DDF91C2 :101C1000CF911F910F91FF90EF90DF900895CF9398 -:101C2000DF93C7E0D2E060E0CE010E94862F2196CC +:101C2000DF93C7E0D2E060E0CE010E94852F2196CD :101C3000C11584E0D807B9F7DF91CF9108956F926D :101C40007F928F929F92AF92BF92CF92DF92EF924C :101C5000FF920F931F93CF93DF9389E0C82E85E007 :101C6000D82E0FE510E0E801E09736011CC0F50121 -:101C700085909490692DC7010E94862F682DC70119 -:101C800001960E94862F82E0A80EB11C82E0E80E29 +:101C700085909490692DC7010E94852F682DC7011A +:101C800001960E94852F82E0A80EB11C82E0E80E2A :101C9000F11CCE15DF0559F788E0680E711C2896F7 :101CA0000C171D0731F07E0188E0E81AF108530196 :101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 :101CC000180789F6DF91CF911F910F91FF90EF9048 :101CD000DF90CF90BF90AF909F908F907F906F904C :101CE0000895CF93C82F6FEF811161E283E290E0F6 -:101CF0000E94862FC1110CC0CFEF6C2F84E290E0C0 -:101D00000E94862F6C2F85E290E0CF910C94862F55 -:101D1000C9E0F3CF80E00E94710E60E086E290E0BF -:101D20000E94862F0E941F0E0E940F0E81E00C94CD -:101D3000710ECF93C0910503C2FB992790F99817B4 -:101D400081F080FBC2F9C09305036091040384E035 -:101D500090E00E94862F6C2F82E290E0CF910C944D -:101D6000862FCF9108950F931F93CF93DF9328E091 -:101D7000629FE001112450E0440F551FC40FD51F8E -:101D800030E3839FC00DD11D1124CE0187960E94A0 -:101D9000722F082F10E0102F0027CE0188960E9486 -:101DA000722F9801282BC901DF91CF911F910F91BC -:101DB0000895462F8A3038F4763028F4643018F4C9 -:101DC000672F0C94B30E90E080E00895BF92CF92FD -:101DD000DF92EF92FF920F931F93CF93DF937C01DB -:101DE0000091380310913903809145029091460289 -:101DF000082B192BCFE0D0E0CC24C394D12CBC2EDF -:101E0000C6010C2E02C0880F991F0A94E2F78023A6 -:101E10009123892B71F4219790F7B12C8B2DDF91B1 -:101E2000CF911F910F91FF90EF90DF90CF90BF90D7 -:101E30000895B7018C2F0E94D90E0E947208019755 -:101E400051F3ECCFCF93DF93EC010E94E60EBE017D -:101E50000E94D90EDF91CF910C947208FC0186810B -:101E60009781009779F00E947208292F2F70929520 -:101E70009F7092509E30A0F4E92FF0E0E454F04DB2 -:101E80000C94052F808191810E94220FEECF803F1C -:101E900019F020F4883E20F481E00895843FE1F3B6 -:101EA00080E00895883EC0F3813FD1F7F5CF822FBF -:101EB00086958695869508951F93CF93DF9300D0DE -:101EC00000D00F92CDB7DEB7FC01268137812115F6 -:101ED000310541F525E0DE01119601900D922A951C -:101EE000E1F7FC01228189819A812223B9F06623DE -:101EF000A9F00E94E60E182F682F89819A810E940E -:101F0000D50A69817A81812F0F900F900F900F90E1 -:101F10000F90DF91CF911F910C94D90E0E94AE0AC1 -:101F2000182FEFCFC9010F900F900F900F900F90C7 -:101F3000DF91CF911F91089583E290E00E94722F6C -:101F4000813289F484E290E00E94722F893059F442 -:101F500085E290E00E94722F91E0893009F090E0D4 -:101F6000892F8170089580E0FCCFCF9384E090E0CA -:101F70000E94722FC82F82E290E00E94722F982F49 -:101F80008C2FCF91089560918E03669570E04BE0A1 -:101F900050E08AE091E00E94582F892B19F481E0EB -:101FA000809384020E94A20590937E0280937D021A -:101FB00008955F926F927F928F929F92AF92BF929D -:101FC000CF92DF92EF92FF920F931F93CF93DF9305 -:101FD000CDB7DEB7C455D1090FB6F894DEBF0FBE3A -:101FE000CDBF80918E0380FD0AC0EAE3F3E0118249 -:101FF00010821282339623E0EE38F207C1F7809008 -:102000007B0290907C028114910409F459C0809164 -:102010007A02811155C0D12CC12C66246394712C95 -:1020200013E0512E8091850293010C2C01C0220FE8 -:102030000A94EAF7822309F43BC0F601EE0FFF1F72 -:10204000E80DF91DE590F490E114F104C9F145E0C3 -:1020500050E0B701CE0101960E944F2F09810F3F3A -:1020600039F18A81800F9927991F8D31910514F0DC -:102070008CE190E05C01AA0CBB1C8A0D9B1DFC014D -:10208000E65CFC4F5F01059D80011124065C1C4F3E -:102090000A151B0520F0F5E0EF0EF11CD8CF9801D2 -:1020A0004D816C818B810E9441060D5F1F4FF0CFE7 -:1020B0002FEFC21AD20A38E0C316D10409F0B2CF0A -:1020C0007DEEA72E73E0B72EDE011196AE014B5ABE -:1020D0005F4F1A2F7B2FF5018491282F30E0C90123 -:1020E000880F991F820F931F865C9C4FFC01C08054 -:1020F000D180E280CD92DD92ED92FFEFAF1ABF0A60 -:10210000A417B50741F7279A35B13F7725B1206865 -:102110006FB7F894812F972FFC017191CF01E8E000 -:1021200025B9000000C077FF35B9770F000000C067 -:1021300000C000C035B900C0EA9591F78417950733 -:1021400059F76FBF8FE594E00197F1F700C00000E9 -:10215000CC5ADF4F0FB6F894DEBF0FBECDBFDF9174 -:10216000CF911F910F91FF90EF90DF90CF90BF9094 -:10217000AF909F908F907F906F905F9008951F9386 -:10218000CF93DF9300D00F92CDB7DEB7162F90918B -:102190008E0390FF18C09E012F5F3F4F48E76FEFFF -:1021A0000E9441068B819981612F70E0FB01EE0F47 -:1021B000FF1FE60FF71FE65CFC4F2A812183908307 -:1021C00082830E94D90F0F900F900F90DF91CF91D3 -:1021D0001F910895EF92FF920F931F93CF93DF9378 -:1021E0008C01CAE3D3E0F12CE12CF80194816091D9 -:1021F000900380918F03FEE0EF16F104FCF4992325 -:10220000F9F09E01409191030E9441062FEFE21ADE -:10221000F20A23968CE1E816F10439F70E94D90FEF -:10222000F801848190E00196817099278483DF9181 -:10223000CF911F910F91FF90EF900895992309F38B -:102240009E0140E0E1CF8F929F92AF92BF92CF92DA -:10225000DF92EF92FF920F931F93CF93DF93EC01E6 -:102260004C81042F10E09801D8010E941A2F9B0185 -:10227000AC010E94302F4B015C01E0E2F0E0E01B7A -:10228000F10BA5E5B0E0AC019B010E94302F6B0182 -:102290007C019F01DF010E94122F9B01AC010E9473 -:1022A0003B2F9B01AC01280D391D4A1D5B1DC70149 -:1022B000B6010E94E32EF22E822F90E039E23F1504 -:1022C000D8F143E0249F9001112435952795122FD2 -:1022D00010959AE3C92E93E0D92E00E085E5E82E0B -:1022E000EF188E2D01FD8F2D9601412F60919003E7 -:1022F0000E9441060F5F53E0C50ED11C0C3189F7D7 -:102300000E94D90F9C8181E0992319F0903219F431 -:102310008FEF8093170180911701890F8C83DF91D4 -:10232000CF911F910F91FF90EF90DF90CF90BF90D2 -:10233000AF909F908F90089525E530E0A901481B4C -:10234000590BCA019A01220F331F280F391F37FF7B -:10235000BCCF2F5F3F4FB9CF0F931F93CF93DF9326 -:10236000CAE3D3E0FE01118210821282339683E029 -:10237000EE38F807C1F710E000E080918702082EE0 -:10238000000C990B081719078CF180911601082E83 -:10239000000C990B801791074CF19E01409191031D -:1023A0006091900380918F030E9441060F5F1F4F41 -:1023B00023960C31110509F70E94D90F8091150160 -:1023C00090918702980F9093870220911601280F11 -:1023D00020931601121614F49B311CF08195809302 -:1023E0001501DF91CF911F910F91089519821882E5 -:1023F0001A82DCCFBF92CF92DF92EF92FF920F93BF -:102400001F93CF93DF93FC018281DD24DA9480FD5A -:1024100002C0DD24D3940AE313E0D0E0C0E02CE155 -:10242000B22EF80111821082128294E0E92EF12C72 -:10243000C12C809186028C0D8D310CF43DC06B2D2A -:102440000E94AD2E892F082E000C990B8C179D072A -:1024500091F4809191038E9DA0018F9D500D1124C8 -:1024600055954795559547959801609190038091B2 -:102470008F030E944106CD0CF1E0EF1AF108C9F676 -:1024800021960D5F1F4FCC31D10559F60E94D90F0F -:102490008091860291E0D91215C0811111C08BE1A3 -:1024A00080938602DF91CF911F910F91FF90EF9063 -:1024B000DF90CF90BF90089587FFC5CF845EC3CFD4 -:1024C0008150EECF90E00196BE010E94CF2EE8CF62 -:1024D000EF92FF921F93CF93DF93EC018AE3E82EF4 -:1024E00083E0F82E10E08C81970140919103609178 -:1024F0009003810F0E944106175F83E0E80EF11CF4 -:102500001C3F89F70E94D90F9A818C8190FF08C0E7 -:102510008F5F8C83DF91CF911F91FF90EF90089593 -:102520008150F7CF90918E0390FF0CC0EAE3F3E067 -:10253000818360834283339693E0EE38F907C1F7D5 -:102540000C94D90F08950F931F93CF93DF9300D06E -:102550000F92CDB7DEB78C018091880281110AC03D -:102560009E012F5F3F4F44EB6FEF0E9441068A812F -:1025700080938802F8016481613069F0809188025B -:1025800040E0662361F040E0623011F4409188023F -:1025900080E060E004C06091880240E080E00E943A -:1025A0009212F801848190E0019663E070E00E944D -:1025B000CF2E84830F900F900F90DF91CF911F91BA -:1025C0000F910895CF93DF9300D00F92CDB7DEB770 -:1025D00090918E0390FF0AC09E012F5F3F4F0E9493 -:1025E00041064B8169818A810E9492120F900F905F -:1025F0000F90DF91CF910895CF93DF93EC01EEE838 -:10260000F3E0438162818C810E94E2128C818F5FB2 -:102610008C83DF91CF910895CF93DF93EC01EC8110 -:10262000F0E0E75FFB4F4491EEE8F3E062818181E7 -:102630000E94E2128C818F5F8C83DF91CF9108958D -:10264000CF92DF92EF92FF926B017C010E942B06EA -:10265000B701A60188E090E0FF90EF90DF90CF9067 -:102660000C94982F5F926F927F928F929F92AF926D -:10267000BF92CF92DF92EF92FF920F931F93CF936F -:10268000DF9300D00F92CDB7DEB7182F762E042F30 -:10269000622E90918E0390FF29C0E92FE695AE2F10 -:1026A000B0E0A157BE4F8C91809383029E7F923001 -:1026B00081F59E012F5F3F4F812F0E9441064B8184 -:1026C00069818A810E94921210938F037092900305 -:1026D00000939103662051F060918E0370918F03F7 -:1026E00080919003909191030E9420130F900F907E -:1026F0000F90DF91CF911F910F91FF90EF90DF909E -:10270000CF90BF90AF909F908F907F906F905F9091 -:102710000895823019F400919103D6CF863019F4D0 -:1027200010918F03D1CF8930D9F3893169F6E951FE -:102730008E2F8170582EE695F0E0E851FC4FA59061 -:10274000B490BB248AE3E82E83E0F82ED12CC12C70 -:102750009CE1892E912CC601B4010E94BB2E812FD1 -:10276000511013C0860F9701402F672D0E9441061C -:10277000CA0CDB1C83E0E80EF11C8EE8E81683E04F -:10278000F80649F70E94D90F9FCF861BECCFEEE8E1 -:10279000F3E0438128E0421B08F440E021E062813D -:1027A00081810C943213EEE8F3E0438128E0420F7C -:1027B00008F44FEF21E0628181810C943213EEE83E -:1027C000F3E0628128E0621B08F460E021E04381CD -:1027D00081810C943213EEE8F3E0628128E0620F0D -:1027E00008F46FEF21E0438181810C943213EEE80D -:1027F000F3E0818121E04381628188500C9432139F -:10280000EEE8F3E0818121E043816281885F0C94EE -:10281000321380919203882319F0815080939203A0 -:1028200060918E0370918F0380919003909191033A -:102830000C94201380919203833018F48F5F80935F -:10284000920360918E0370918F0380919003909119 -:1028500091030C94201390918E0390FF36C09170D9 -:10286000811129C0926090938E03662351F060918C -:102870008E0370918F0380919003909191030E9439 -:10288000201360918E03669570E04BE050E08AE083 -:1028900091E00E94582F892BA9F01092840281E0C8 -:1028A0008093800220E04091910360919003809199 -:1028B0008F030C943213853210F09864D4CF880FB4 -:1028C000982BD1CF0E94C30FEACF089521E030E0CA -:1028D000A90102C0440F551F8A95E2F7CA01209151 -:1028E0008502662399F0822B809385028091840271 -:1028F000811106C080918E0360E086950E942B14A2 -:1029000080918E0380FD05C00C94D90F80958223A1 -:10291000EBCF08950F931F93CF93DF93EC0161E00A -:10292000009709F0682F617080E00E94661460E0F3 -:10293000209721F0BE0176956795617081E00E9435 -:10294000661460E0209731F0BE0176956795769524 -:102950006795617082E00E94661460E0209739F00C -:10296000BE0113E0769567951A95E1F7617083E0F3 -:102970000E94661460E0209739F0BE01B4E07695BD -:102980006795BA95E1F7617084E00E946614AE0124 -:1029900070E060E0BB27A72F962F852F0097A10539 -:1029A000B105D9F1AC01BD0188E08A019B01F4E0D9 -:1029B0003695279517950795FA95D1F701151105C5 -:1029C0002105310519F08C5FB901A8018A019B012D -:1029D000E2E03695279517950795EA95D1F7011509 -:1029E00011052105310519F08E5FB901A801769511 -:1029F000679557954795452B462B472B09F08F5FD9 -:102A0000823011F160F4882399F08130C1F0CE0159 -:102A1000DF91CF911F910F91089580E0C6CF833051 -:102A2000C1F08430A1F720E044E66FEF8FE004C0EE -:102A300020E044E66FEF82E30E943213E8CF20E00B -:102A400044E66FEF85E0F8CF20E044E66FEF80E8E2 -:102A5000F3CF20E044E66FEF87EDEECF0E948A14BB -:102A600090933903809338030C94010B80913803C1 -:102A7000909139039C01267033272630310519F4D3 -:102A800088600C942E15877FFCCF21E030E002C0D7 -:102A9000220F331F8A95E2F72095309580913803F5 -:102AA00090913903822393230C942E159091400228 -:102AB0008095892380934002282F277039F4282F8E -:102AC000082E000C330B9217130621F49091050386 -:102AD00092FF07C08595859585950E9445151092B2 -:102AE0004002089521E030E002C0220F331F8A9592 -:102AF000E2F78091380390913903822B932B0C9449 -:102B00002E1580918E038695815009F484E261E050 -:102B10000C942B1480918E0386958F5F853208F07C -:102B200081E061E00C942B1490918E0390FF07C01C -:102B30009695981720F0961710F40C948A1561E07A -:102B40000C942B14EEE8F3E083E0808311828FEF86 -:102B5000828388E283831482608171818281938180 -:102B60000C94201369EE7EEF90E080E00E94A42F89 -:102B700060E082E090E00E94862F60E083E090E0D9 -:102B80000E94862F109246021092450260E084E077 -:102B900090E00E94862F60E082E290E00E94862F03 -:102BA00060E085E090E00E94862F60E086E090E0A3 -:102BB0000E94862F6FEF87E090E00E94862F40E012 -:102BC00050E0BA0188E090E00E94982F60E08DE02C -:102BD00090E00E94862F40E050E0BA0188E190E04A -:102BE0000E94982F60E087E190E00E94862F40E0ED -:102BF00050E0BA018CE190E00E94982F70E060E014 -:102C000080E290E00E94A42F40E050E0BA0188E109 -:102C100090E00E94982F80E00E94710E0E948A0E20 -:102C200040E050E0BA018FE090E00E94982F40E031 -:102C300050E0BA0183E190E00C94982F90E080E09E -:102C40000E94802F893E9E4F11F40C949C0F80E0CF -:102C500008951092430280914301E8ECF1E088234B -:102C600059F08091040387FF07C08EE1DF011D92B8 -:102C70008A95E9F70C94010B86E0F8CF1F93CF9368 -:102C8000DF93CDB7DEB7AA970FB6F894DEBF0FBEBD -:102C9000CDBF80E393E02091F100DC012D93CD01C5 -:102CA000B3E088339B07B9F780913103833009F48F -:102CB00071C0B8F4813009F448C0823009F4B2C060 -:102CC0008091E80083FF3AC18091300390913103F5 -:102CD0009A3008F033C1E92FF0E0E653F04D0C9440 -:102CE000052F8A3009F48DC08B3009F470C089300B -:102CF00039F780913003813219F780913403909134 -:102D00003503009711F00297D9F68091E800877F8C -:102D10008093E8008091E80082FF37C09091F30033 -:102D20008091F200029729F48091F1008B7F81302D -:102D300021F48091F10080930B038091E8008B7760 -:102D40008093E8000E948004BBCF80913003813AD9 -:102D500009F0B6CF8091E800877F8093E8008091EA -:102D6000340390913503892B61F460E28CE093E0A9 -:102D700070E00E9432058091E8008B778093E80034 -:102D80009FCF60E090E080E0F3CF80912E0381112F -:102D9000C1CF96CF80913003813A09F091CF8091D5 -:102DA000340390913503892B09F08ACF8091E80094 -:102DB000877F8093E8008091E80080FFFCCF8091BE -:102DC00043018093F1008091E8008E77B9CF809124 -:102DD0003003813209F074CF809134039091350330 -:102DE000892B09F06DCF8091E800877F8093E80000 -:102DF0000E94800480913203809343010E9429162F -:102E00005FCF80913003813209F05ACF8091E80082 -:102E1000877F8093E8000E94800480913303809331 -:102E20000A034ECF80913003813A09F049CF809157 -:102E3000E800877F8093E8008091E80080FFFCCF66 -:102E400080910A03BECF803899F0823809F076C0AD -:102E5000809134038F70873008F070C08093E90050 -:102E60008091EB0085FB882780F91092E90006C06D -:102E700080912C0390912D03911182609091E80034 -:102E8000977F9093E8008093F1001092F100809179 -:102E9000E8008E77B5C1882309F4A2C1823009F019 -:102EA0004DC0809132038111A6C1809134038F708F -:102EB0002FEF280F263008F041C08093E9002091C1 -:102EC000EB0020FF98C1933031F48091EB008062D9 -:102ED0008093EB0090C19091EB0090619093EB0098 -:102EE00021E030E001C0220F8A95EAF72093EA0042 -:102EF0001092EA008091EB008860EACF81111EC039 -:102F0000109132031F778091E3008078812B8093AA -:102F1000E3008091E800877F8093E8000E948004AE -:102F20008091E80080FFFCCF8091E300806880936F -:102F3000E30082E0111183E080932E038091E8008A -:102F400083FF0AC08091E800877F8093E80080912A -:102F5000EB0080628093EB00AA960FB6F894DEBF78 -:102F60000FBECDBFDF91CF911F9108958058823061 -:102F700028F720913203309133032C3DE3E03E07E4 -:102F8000A1F583E08A838AE289834FB7F894DE0152 -:102F9000139620E03EE051E2E32FF0E0509357001B -:102FA000E49120FF03C0E295EF703F5FEF708E2F3A -:102FB00090E0EA30C0F0C7968D939D932F5F243147 -:102FC00059F74FBF8091E800877F8093E8006AE25D -:102FD00070E0CE0101960E9432058091E8008B7767 -:102FE0008093E800ABCFC096E7CF809134039091F7 -:102FF0003503432F55274330510509F44AC078F56E -:103000004130510509F47AC08BE590E0E9EEF6E035 -:103010004230510509F092CF2091E800277F20939C -:10302000E80020913603309137038217930708F4A4 -:103030009C0140E02115310509F065C0411163C0D4 -:103040008091E80082FDC9CF80912E03882329F268 -:10305000853019F28091E80083FFF2CFBECF413274 -:10306000510509F43CC04232510509F067CF833065 -:10307000910508F063CFFC01EE0FFF1FE954FE4FEE -:103080000190F081E02D8C549E4FDC018C9190E0FA -:103090001AC0332721303105D1F02115310561F0F7 -:1030A0002230310509F04ACFE6E5F7E0E4918E2FB2 -:1030B00090E0E6E5F7E007C0E6E7F7E0E4918E2F61 -:1030C00090E0E6E7F7E0009709F438CFA5CFE2E615 -:1030D000F7E0E4918E2F90E0E2E6F7E0F4CF833062 -:1030E000910508F02BCF880F991FFC01E354FE4F88 -:1030F0000190F081E02D89E090E08ECF82E190E0B8 -:10310000E4E4F7E089CF80912E03882309F465CFAA -:10311000853009F462CF8091E80083FD5ECF809115 -:10312000E80082FD8DCF8091E80080FF83CF9091F1 -:10313000F3008091F2002115310519F088309105D6 -:1031400050F041E0089709F040E08091E8008E7768 -:103150008093E8006FCF44914093F1003196215065 -:1031600031090196E8CF803809F0E8CE8091E80077 -:10317000877F8093E80080912F038093F10087CEB2 -:103180008111DCCE10913203123008F0D7CE80913D -:10319000E800877F8093E80010932F030E9480044B -:1031A000112311F084E005C08091E30087FDFACF80 -:1031B00081E080932E0342E061EC81E00E949F0455 -:1031C00042E261EC84E00E949F0442E261EC82E012 -:1031D0000E949F0442E260EC83E00E949F04AECE16 -:1031E00080913203813009F0A9CE81E0933009F05B -:1031F00080E080932D031092E9008091E800877FA2 -:103200008093E8000E94800499CE9F92AF92BF9273 -:10321000CF92DF92EF92FF920F931F93CF93DF93A2 -:1032200000D000D0CDB7DEB77C01FC018381948152 -:10323000892B31F08081918189238F3F09F0F0C57E -:103240000F900F900F900F90DF91CF911F910F91E2 -:10325000FF90EF90DF90CF90BF90AF909F90089538 -:10326000980122513F452031310508F0CEC58FEF3E -:1032700093E00E94722F025167E0C62E62E0D62EC4 -:10328000882339F1809140028770D1F2F701828161 -:103290008823B1F282E00F900F900F900F90DF9192 -:1032A000CF911F910F91FF90EF90DF90CF90BF9043 -:1032B000AF909F900C945615C114F4E0DF0611F303 -:1032C000C6010E94722F811101C001502FEFC21A56 -:1032D000D20A0111F1CF1C821B82BB24B3945AE0A5 -:1032E000A52E86010F5F1F4FC6010E94722F898392 -:1032F0001A82882339F29FEF980F933008F58A835A -:10330000B98232E0C30ED11CC8010E94722F8B8398 -:10331000882309F4B7CF8E010F5F1F4FF80180811A -:103320008823F9F2813009F043C091818281913084 -:1033300049F40E5F1F4F0E94280D0F5F1F4FEECF05 -:103340006801E9CF923029F40E5F1F4F0E94730C81 -:10335000F4CF933029F40E5F1F4F0E944E0BEDCF38 -:10336000943019F00F5F1F4FE8CF0E5F1F4F30E012 -:1033700020E0B8016F5F7F4FF80141818053990BC6 -:103380008A30910550F021503109B8F28FE99FE061 -:103390000197F1F700C00000F6CFA29EF001A39EB6 -:1033A000F00D11249C012E0F3F1F842F8B01E1CFC4 -:1033B0000E94A90DC2CF81E00E9472150E943615AD -:1033C00061CF81E00E944515F9CF82E0FBCF043840 -:1033D0009FE5190709F483C008F473C00538FFE5B9 -:1033E0001F0709F041C5882309F43EC580EE0E94FD -:1033F000730C81EE0E94730C80E10E94730C80E1DB -:103400000E944E0B81EE0E944E0B80EE0E944E0BEE -:103410008091E60191E062E189278093E6018823AB -:1034200009F48DC08FE00E94BF1066E18FE00E941A -:10343000BF101AC5882369F180914F02811106C01F -:1034400081E080934F0282EE0E94730C0E94A205DD -:1034500090934E0280934D028BE20E94730C04C540 -:103460008823A1F080914F02811106C081E08093F2 -:103470004F0282EE0E94730C0E94A20590934E02AE -:1034800080934D0281EE0E94730CE6CF81EE0E9484 -:103490004E0B8BE20E944E0BE7C4882309F4E4C470 -:1034A00081EE0E94730C83EE0E94730C8FE40E94E5 -:1034B000730C8FE40E944E0B83EE0E944E0B81EE44 -:1034C000E9CF882309F4D0C481EE0E94730C83EE07 -:1034D0000E94730C80E50E94730C80E5EBCF88237B -:1034E00009F4D0CE10914C0281E0182710934C02C1 -:1034F0000E94A20590934B0280934A0268E1112337 -:1035000081F08FE00E94BF1069E18FE00E94BF1040 -:103510006AE18FE00E94BF106BE18FE00E94BF1054 -:10352000B1CE84EB0E94BF1069E184EB0E94BF1012 -:103530006AE184EB0E94BF106BE184EBEFCF8FEA6E -:103540000E94BF1066E18FEA72CF82EE0E94730C78 -:10355000C6C483E00E942F0B88E10E94730C88E1AF -:103560000E944E0B83E00E94240BB9C482EE0E949D -:10357000730C87E50E94280DB2C486EE0E94280DC8 -:1035800088E1F8CF895AC5C482EE0E944E0BD9C497 -:103590008CE20E94280D8091E801882309F4D1C4AF -:1035A00089E30E94280DCDC488E2FBCF033FFCE5F0 -:1035B0001F0739F1A0F4083D3CE51307F1F0093D80 -:1035C0008CE5180751F1073D9CE5190709F0BDC4CA -:1035D00026E241EE61EEC7010E94450D53CE053F44 -:1035E000ECE51E07B1F088F0063F2CE5120709F064 -:1035F000ACC427E245EE66EEEECF27E245EE65EE7F -:10360000EACF26E241EE60EEE6CF27E245EE64EE39 -:10361000E2CF26E241EE62EEDECF28E241E0EFCFDC -:1036200080910403806106309CE5190709F48CC081 -:1036300080910403886007301C4508F485C08091A0 -:103640000403806281C0809104038D7F0C30FCE50F -:103650001F0709F479C070F4809104038C600A306C -:103660003CE5130709F470C008F481C0809104039D -:103670008E7F6AC080910403877F0E309CE5190716 -:1036800009F462C0809104038B7F0F301C4508F45D -:103690005BC0809104038F7E57C00B3FFCE51F0782 -:1036A00009F45DC030F503313CE5130709F46DC042 -:1036B00078F401319CE5190709F463C002311C4517 -:1036C00009F07EC40E942916809104038F773CC0C4 -:1036D0000531FCE51F0709F460C008F474C080914F -:1036E000050381600A3F1C4509F06AC48093050305 -:1036F00067C40F3F8CE5180709F44BC088F480912C -:1037000005038D7F0D3FECE51E0781F380910503D6 -:103710008E7F0E3F1C4550F3809105038360E6CFFA -:1037200001302DE5120709F457C008F442C060E0EB -:1037300002301D4509F044C48EE090E00E94862FBF -:103740003FC48091040381608093040339C4809155 -:1037500004038260F9CF809104038460F5CF8091E7 -:1037600005038260C3CF809104038064EDCF0E9483 -:103770002916809104038068E7CF809104038F7D30 -:10378000E3CF809104038F7BDFCF80910403837F9D -:10379000DBCF809105038C7FA9CF8091040382FB4E -:1037A000992790F921E0922790FB82F990FB83F909 -:1037B000CBCF80910503982F909591708E7F892BA8 -:1037C00090FB81F993CF0E94291690910403892FD1 -:1037D00097FB87F98058B8CF61E0AECF882309F412 -:1037E00002C4809143028A7A91E009F490E09093B8 -:1037F000E901811106C089E20E94700A0E94000A54 -:1038000041CD85E3F9CF85E3F3C3043CFCE51F0715 -:1038100009F493C047EF53E160E074E1053C2CE507 -:10382000120709F00AC40E9425062CCD093C3CE58C -:10383000130709F491C070F4073CECE51E0709F486 -:1038400086C04BEE53E16FED73E1083CFCE51F07CA -:1038500051F3F3C30A3C2CE5120709F482C049E096 -:1038600054E16AE174E10B3C3CE51307E1F2E5C386 -:10387000013D8CE5180709F487C0B0F40E3CECE577 -:103880001E0709F47BC008F476C00F3C2CE5120734 -:1038900009F477C06EE089E0003D3CE5130709F0CC -:1038A000CCC30E949415EECC043D8CE5180709F4B6 -:1038B00071C078F4023DECE51E0709F468C061E0D0 -:1038C00088E1033DFCE51F0709F0B7C30E942B14F4 -:1038D000D9CC053D2CE5120709F45FC00D35100762 -:1038E00009F4D0CCAAC380918E0380FF1BC08E7FC9 -:1038F00080938E0360918E0370918F03809190036B -:10390000909191030E942013109284028FEF90E710 -:10391000E2E081509040E040E1F700C000000E94EA -:10392000D90FB0CC816080938E0361E08695CECFB5 -:1039300041E855E16AE875E176CF4AE855E161E88A -:1039400075E171CF40E054E167EF73E16CCF4FED6B -:1039500053E16BEE73E167CF47EC53E163ED73E145 -:1039600062CF43ED53E167EC73E15DCF4AE154E18F -:1039700069E074E158CF61E081E0A8CF65E082E0C2 -:1039800090CF68E086E08DCF64E18FE08ACF67E179 -:1039900085E187CF62E289E184CF61E083E296CF5F -:1039A0000B359DE5190701F10C351D4509F055C38F -:1039B0008091050382FB882780F991E089270E9486 -:1039C000990E4BC30E942916FFEF24E33CE0F1500F -:1039D00020403040E1F700C000000E944F0C0E94E0 -:1039E000B21550CC81E0EBCF80E0E9CF828100813D -:1039F0001181882369F0C8010E94E60ED82E682F35 -:103A0000C8010E94D50AB8018D2D0E94D90E2BC382 -:103A1000C8010E94AE0AD82EF6CF212F2F70C22ED9 -:103A2000107F19F0C29490EFC922DD20C9F0CC209C -:103A300069F080E2800F883010F001110BC0809196 -:103A40004302C82AC09243020E94000A802F0E94AB -:103A5000730C19C080914202C82AC0924202F4CF6E -:103A6000802F0E944E0BCC2071F0C09480E2800F1A -:103A7000883010F001113AC080914302C822C092F0 -:103A800043020E94000AE92DE850FF0B349720F40E -:103A90000E94DA050E94AB0BAA20A9F08091400297 -:103AA00080FD11C0F70112828595859585950E944C -:103AB0007215C7010E940519809140028595859570 -:103AC00085950E94451560E0C7010F900F900F90FB -:103AD0000F90DF91CF911F910F91FF90EF90DF90AA -:103AE000CF90BF90AF909F900C945C0F809142025A -:103AF000C822C0924202C5CF312F3F70B32E107F33 -:103B0000103219F0B29480EFB822002369F001302E -:103B100081F1DD20D9F1CC2091F1F701858180FF81 -:103B200095CF8F7085832BC0DD20B1F0909144023A -:103B30008B2D892BC11003C00E94440BA4CFE1E060 -:103B4000CE12FACF2091050322FD9DCF891709F4EB -:103B50009ACF8093440297CFC11006C00E94FA0901 -:103B60008B2D0E94390B8FCFF1E0CF1609F48BCF4C -:103B7000F5CFDD2031F025E02C1508F484CF8B2D16 -:103B8000DBCF34E03C1508F47ECFEACFCC2041F304 -:103B9000093349F4FFEF27EE33E0F1502040304085 -:103BA000E1F700C00000802F0E944E0B6CCF812FE8 -:103BB00086958695837061F0813009F064CFC801E5 -:103BC0009370D11002C090E080E00E94AE055BCF00 -:103BD000C8019370D11002C090E080E00E94C4053B -:103BE00052CF802FDD2029F00E94BC070E94DA0608 -:103BF0004ACF0E940107FACF812F837009F03FC09E -:103C0000D11041CF402F429546954770440F440F45 -:103C1000802F8F7090E0042E02C0880F991F0A94A5 -:103C2000E2F730E020E004FF09C02FE030E002C0FE -:103C3000220F331F4A95E2F7209530951695169579 -:103C40001370123099F078F4409145025091460279 -:103C5000113039F0822B932B842395230E941E0B65 -:103C600012CF842B952B822B932BF8CF822B932B67 -:103C7000209145023091460282279327EFCF869507 -:103C8000DD2011F0812F8170882309F4FCCE402FB4 -:103C9000429546954770440F440F802F8F7090E0F7 -:103CA000042E02C0880F991F0A94E2F730E020E04A -:103CB00004FF09C02FE030E002C0220F331F4A95F5 -:103CC000E2F720953095169516951370123099F0FD -:103CD00078F44091380350913903113039F0822B38 -:103CE000932B842395230E942E15CDCE842B952BC8 -:103CF000822B932BF8CF822B932B2091380330917A -:103D0000390382279327EFCF1F70DD2029F0812F01 -:103D10000E947215802F10CF802F0E94390B812FA7 -:103D20000E944515B0CE023F09F441C060F4003F47 -:103D300011F1013FA1F1DD2009F457C0C11086CE79 -:103D4000812F8F7131C0033FB9F1043FA1F7DD200E -:103D500009F440C01F71812F0E94721580910503E4 -:103D600082FD07C0E8E01E9FC0011124836080939C -:103D70004002812F19C0DD2069F084E08C1508F421 -:103D800082CE1F7181E090E002C0880F991F1A95C2 -:103D9000E2F7B3CF95E09C1508F475CEF2CF812FF2 -:103DA0008F71DD2009F4BCCF0E9472156CCE812F7B -:103DB0008F71DD20C9F3B4CF90E080E0DD2009F4FD -:103DC00092CF1F7181E090E002C0880F991F1A9571 -:103DD000E2F789CF81E00E945615F1E0FC1508F06A -:103DE00052CE82E00E9456154ECECC2059F00933B7 -:103DF00009F0D9CE2FEF37EE83E0215030408040DC -:103E0000E1F7CFCE812F8F718BCF00313FE51307C4 -:103E100009F4D1CA01319FE51907A9F482E0CCCA9F -:103E200061E0C7010E945C0F8C01F7018281811162 -:103E300017CA0031FFE51F0709F4C3CA01312FE596 -:103E4000120709F4C2CA0238EFE51E0709F425CBB0 -:103E500008F0BDCA00382FE5120709F4EBCA013893 -:103E60003FE5130709F4FCCAF7018281882369F052 -:103E7000C801815E9C45059740F46FE1600F609337 -:103E800050028CE090E00E94862F17FF8FCBF70145 -:103E90008281882309F459C00E94DA0586958170D1 -:103EA0008093E80190915002913029F4882319F011 -:103EB00089E30E94280D809143028093E7011092CC -:103EC000430280915002813009F443CB882309F4E6 -:103ED0003CCB823009F44ACB843009F44ECB8FE3DB -:103EE0009CE90197F1F700C000005801E894B7F889 -:103EF0004CE0C42ED12CC5010C2C02C096958795A0 -:103F00000A94E2F78F7096EF980F963008F43ACB48 -:103F1000805D0E94A90D94E0C91AD108ECEFCE167D -:103F2000EFEFDE0641F780915002813009F430CB8B -:103F3000882309F429CB823009F426CB843009F494 -:103F400033CB8091E70180934302F701828188237C -:103F500009F446C0109295030230FCE51F0708F4EF -:103F60004AC006312CE5120738F098012A5F3C451B -:103F70002930310508F03FC00E94B50F909305032A -:103F80008093040300313CE5130709F4F6CB08F0F5 -:103F900084CB08309CE5190709F4E5CB08F053CB36 -:103FA0000430FCE51F0709F4D6CB08F039CB02300A -:103FB0003CE5130709F4C5CB03301C4509F4C7CB16 -:103FC000609104031091050384E090E00E94862F25 -:103FD000612F82E290E00E94862F0E94291652C92A -:103FE00006311C45D1F58091E90181110CCC89E2A3 -:103FF0000E94450A03CC06312CE5120709F4EECBEA -:104000008091430282720C3C9CE5190709F4AECC06 -:1040100008F02ECC063CFCE51F0709F493CC08F011 -:1040200005CC033C3CE5130709F482CC08F0EDCB4A -:10403000023CECE51E0709F456CC0A35FDE51F07E6 -:1040400009F4D0CC08F0ACCC01153CE5130709F419 -:10405000B9CC0E3D1C4509F4C2CCF701868197818D -:10406000009709F4C3CC0E9472088C01F701D2803A -:10407000C580C2943FE0C322809140028770A1F0C6 -:10408000AD2CDD2091F0812F807F803421F080E203 -:10409000800F883048F082E00E94561580914002DF -:1040A0008770AA24A3948111A12C912E92942FE0C1 -:1040B0009222FBE0F91508F4E6CCE92DF0E0EC5291 -:1040C000F04D0C94052FCF93DF938091FB01807FFF -:1040D000A1F48091F801882381F080913F02D09172 -:1040E000FE016091F6017091F701A091F901B09184 -:1040F000FA01C62FC723D81303C0DF91CF910895CB -:1041000090E0109711F0CF3F19F401968770F3CF2C -:104110009C0143E0220F331F4A95E1F7F901E1507A -:10412000FE4F41814713F1CF40814613EECF4281CC -:104130004111EBCF438154814A1B5B0B483C510535 -:1041400020F78091FB018F7080618093FB01F90162 -:10415000EC5FFD4F80818F708061808386EF91E0FE -:104160000E940519DF91CF910C94A40AAF92BF92DF -:10417000CF92DF92EF92FF920F931F93CF93DF9333 -:10418000CDB7DEB765970FB6F894DEBF0FBECDBFD3 -:104190008C0185E0F801DE01519601900D928A951F -:1041A000E1F7F801E28066EFA62E61E0B62E60919D -:1041B000F9017091FA016115710509F468C19091D6 -:1041C000F6014091F701892F84238F3F09F45FC1E5 -:1041D00020813181C380D480F090F801F601E61B84 -:1041E000F70BFF2009F41DC18091FB01582F507F70 -:1041F000E83CF10508F0D0C0511181C0FE2C4313FA -:104200002BC0921329C06091FC017091FD01F8014F -:104210004681578164177507F9F4E1101DC08F704E -:1042200080618093FB01C5010E9405198091FB010B -:10423000F80185838F2D65960FB6F894DEBF0FBE0B -:10424000CDBFDF91CF911F910F91FF90EF90DF9045 -:10425000CF90BF90AF900895CD2829F0822F83236F -:104260008F3F09F02FC180E0F82FF170DF2E80FF23 -:104270003CC080913F024091FE01841315C0298B00 -:104280003A8B89899A890E94220F292F22952F70B3 -:104290002230F8F0243020F59F70F9F0F801958174 -:1042A000907FD9F4D12C1FC090E0FC0153E0EE0FB9 -:1042B000FF1F5A95E1F7E150FE4F5181351306C0BB -:1042C0005081251303C05281E5120FC001968770FB -:1042D000D4CF9F7011F0882329F3805E883010F3CB -:1042E000C8010E940519FD2CA5CFEE2009F4A2CF2C -:1042F0008091FB0181608093FB01F12C9BCF4313E4 -:104300001BC0921319C04091FC015091FD01F801AE -:10431000268137814217530779F4E1100DC0858358 -:10432000C8010E94051988E0F801A6EFB1E00190EC -:104330000D928A95E1F77ECFC8010E942E0F882347 -:1043400039F1EE2029F18091FB018032A0F020911B -:10435000F6013091F7013A8729871B86DD86CC86E6 -:104360008E878091FC019091FD01988B8F87CE0103 -:1043700009960E94051988E0F801A6EFB1E00190C6 -:104380000D928A95E1F70E946320FF24F39452CFA7 -:10439000C8010E940519F9CF51110AC086EF91E0BA -:1043A0000E94051988E0F50111928A95E9F7A5CFD9 -:1043B000431318C0921316C04091FC015091FD01A7 -:1043C000F801268137814217530761F4E1100AC0D2 -:1043D0008583C8010E94051988E0F50111928A952C -:1043E000E9F728CFC8010E942E0F882389F2EE201A -:1043F00079F28091FB01803208F4BDCF2091F60163 -:104400003091F7013A8329831B82DD82CC828E832F -:104410008091FC019091FD0198878F83CE010196D8 -:10442000A8CFE83CF105C0F6FE2CEE2009F4B0CF91 -:1044300043131FC092131DC02091FC013091FD0158 -:10444000F801868197812817390799F49091FB012B -:1044500090FD69CF907F09F466CF8091FB01858341 -:10446000903F09F45DCF982F907F905F8F70892BDC -:1044700056CFC8010E942E0F81117DCF8091FB0184 -:1044800081608093FB01C8010E940519D3CEEE2004 -:1044900009F47ECFC8010E942E0FF82E882309F45C -:1044A00077CF88E0F801A6EFB1E001900D928A95F0 -:1044B000E1F78091F6019091F7010E94220F0E948E -:1044C0006320B8CE81E08E25CFCECF93DF93CDB7DA -:1044D000DEB760970FB6F894DEBF0FBECDBF298759 -:1044E0003A874B875C876D877E878F87988BCE0155 -:1044F00009960E94B620811112C088E0FE0139960B -:10450000DE01119601900D928A95E1F78C859D85CB -:10451000892B29F089859A8589238F3FA9F5809178 -:104520003F029091FE0189131CC060960FB6F8946B -:10453000DEBF0FBECDBFDF91CF91089593E0AA0FEC -:10454000BB1F9A95E1F7A150BE4F98E0FE0131964E -:1045500001900D929A95E1F78093FE010E94A40AC2 -:10456000DECFB8E08B9FC001112481509E4F0E9486 -:10457000B6208823D1F280913F0290E001968770A7 -:10458000992780933F02CBCFA091FE01B0E0CD01EF -:1045900001968770992720913F022817190671F616 -:1045A0000E9429161092FE0110923F0288E0E6EF69 -:1045B000F1E0DF011D928A95E9F7B1CF0F931F93C8 -:1045C000CF93DF9380918C02E0918B02CCE081113C -:1045D0001AC0DF91CF911F910F910895D1E0DE0FA6 -:1045E000D0938B020E2F10E0EC9FF0011124E357C3 -:1045F000FD4F83819481892B29F0808191818923CA -:104600008F3F51F4ED2F80918C02E81738F3109210 -:104610008C0210928B02DDCFC09FD001C19FB00DE4 -:104620001124A357BD4F16968D919C911797892BF6 -:1046300029F418968D919C91019651F42081318135 -:104640004281538164817581868197810E946522B0 -:10465000C09FF001C19FF00D1124E357FD4F14825C -:104660001382D0CF1092F8021092F70210924201FA -:104670008091F6028093F5020E9414060C94DE22CB -:104680002F923F924F925F926F927F928F929F9262 -:10469000AF92BF92CF92DF92EF92FF920F931F9350 -:1046A000CF93DF93C091F502E7E0FE2E01E010E02A -:1046B000FCE02F2EAEEFEA2E8091F6028C1316C08E -:1046C0000E94DE22DF91CF911F910F91FF90EF901A -:1046D000DF90CF90BF90AF909F908F907F906F9022 -:1046E0005F904F903F902F900C941406D0E0FE0105 -:1046F000EE0FFF1FE351FD4F80819181F89EF00185 -:10470000F99EF00D1124E85EFE4F2481211158C05E -:1047100030908C02ADE8B2E030E020E0412C5F0147 -:10472000231508F04BC01A966D907C901B97F501ED -:10473000808091804FEF5FEF512CC52CD12CF6017A -:10474000EE0FFF1FE80DF91D65917491661677064F -:1047500009F4A601672B11F05394EFCF4F3F540794 -:10476000B1F1B80102C0660F771F4A95E2F7462AF9 -:10477000A80102C0440F551F5A94E2F74150510955 -:104780004416150601F5229EF001239EF00D11241A -:10479000E357FD4FF89ED001F99EB00D1124A85E9D -:1047A000BE4F12962D913C91139737832683E0825A -:1047B000E1829187808771E015967C930E94E605DF -:1047C0002196C37079CF14961C921E9213972F5F77 -:1047D0003F4F1C96A5CF9F92AF92BF92CF92DF9290 -:1047E000EF92FF920F931F93CF93DF9300D000D0EF -:1047F00000D0CDB7DEB78E010F5F1F4F86E0F80106 -:1048000011928A95E9F785E7C82E81E0D82EF12C20 -:10481000E12CAA24A394B12CF60181916F018F3F62 -:1048200009F449C0F894E82FE295EF70F0E021A177 -:104830008F70A50102C0440F551F8A95E2F7CA0187 -:10484000922F982B91A392A18095892382A378948B -:1048500000C0EBE7F1E030E020E0912C41914F3FC8 -:1048600009F473C0A42FA295AF70B0E090968C911C -:1048700090E04F7002C0959587954A95E2F780FDCC -:1048800064C08A2D022E01C0880F0A94EAF7982A84 -:104890002F5F3F4F2430310509F7F60131978081B2 -:1048A0008F3F11F00E94180850EA5A95F1F7F8016D -:1048B000EE0DFF1D90828FEFE81AF80AE6E0EE1683 -:1048C000F10409F0A9CF46E050E0B80184E592E098 -:1048D0000E94652FFF24F394009709F4F12C892B93 -:1048E000B1F186E0F801A4E5B2E001900D928A955D -:1048F000E1F781E0809349020E94A205909348026B -:104900008093470280914702909148020E9493054C -:10491000059708F1809154028093670280915502B7 -:1049200080936802809156028093690280915702B9 -:1049300080936A028091580280936B0280915902A1 -:1049400080936C021092490206C080E0A0CF809153 -:1049500049028111D7CF80914201882301F18091D2 -:10496000F7029091F8020097D1F00E9493052091F0 -:10497000890230918A022817390788F49091F5024C -:104980008091F602981709F445C00E9440231092C6 -:104990008A02109289021092F8021092F702809116 -:1049A0004F02882371F080914D0290914E020E9437 -:1049B0009305893E934028F082EE0E944E0B1092A0 -:1049C0004F0280914C02882391F080914A0290918D -:1049D0004B020E949305883E934048F00E94A20536 -:1049E00090934B0280934A0283E70E94280D8F2DFB -:1049F00026960FB6F894DEBF0FBECDBFDF91CF91E4 -:104A00001F910F91FF90EF90DF90CF90BF90AF90EC -:104A10009F9008950E94DE221092F8021092F702F1 -:104A20000E941406BCCF2F923F924F925F926F92DA -:104A30007F928F929F92AF92BF92CF92DF92EF922E -:104A4000FF920F931F93CF93DF93CDB7DEB7699794 -:104A50000FB6F894DEBF0FBECDBF498B5A8B6B8B60 -:104A60007C8B8D8B6111109242021D861E861F86E3 -:104A7000188A85E0FE017196DE01199601900D926B -:104A80008A95E1F78C859D85892B31F089859A85FA -:104A900089238F3F09F0D4C129853A854B855C85F0 -:104AA0006D857E858F8598890E946522C3C028EF19 -:104AB000C2162CE5D20629F4882379F00E9432230D -:104AC000EBCF39EFC3163CE5D30639F4882329F040 -:104AD000809142018111F2CFC3C108E111E0E12CC4 -:104AE000B12CA12C88248394912C9EEF592E442420 -:104AF0004394F8016081718166246A94762C20E0E9 -:104B0000422F50E0FA01EE0FFF1FE60FF71F8591CD -:104B10009491C816D90609F43A01892B11F02F5F38 -:104B2000EFCFF12CFFEF6F167F0609F445C0F801B7 -:104B30004481F09042018F2D411180E0F82FF170F7 -:104B4000FF2EF801258086819B85992309F408C1F1 -:104B5000FF2009F405C1211014C0A40101C0440FB5 -:104B60006A94EAF7842B86838091890290918A0265 -:104B70008E35914030F44EE551E050938A024093D7 -:104B80008902C40102C0880F991F2A95E2F7019794 -:104B9000F80126812817190679F48091F70290917F -:104BA000F802009709F45FC00E9493058F35914089 -:104BB00008F459C0F8014482EF28FFEFAF1ABF0A8A -:104BC000095F1F4F26E0A216B10409F092CF8B8532 -:104BD000882309F420C1EE2009F41DC10E94A2051A -:104BE0009093F8028093F70280918C02883010F540 -:104BF00091E0980F90938C0298E0FE013996DE01C7 -:104C0000119601900D929A95E1F73CE0839FC001C7 -:104C1000112483579D4F28E0FE013196DC0101905D -:104C20000D922A95E1F72FEF3FEFFC0131872087A6 -:104C3000D386C28669960FB6F894DEBF0FBECDBF8D -:104C4000DF91CF911F910F91FF90EF90DF90CF9068 -:104C5000BF90AF909F908F907F906F905F904F909C -:104C60003F902F9008958091F5026090F602982F62 -:104C7000F0E0E0E0861114C09093F5020E171F07D4 -:104C800009F49ACF90E0FC01EE0FFF1FE351FD4FB6 -:104C9000B182A0820196837099278093F6028CCF0F -:104CA000282E312CF101EE0FFF1FE351FD4F208123 -:104CB0003181F7E0F29FD001F39FB00D1124A85E7F -:104CC000BE4F2D913C911197398F288F712C60E048 -:104CD00070E0E72FF0E0EE0FFF1F288D398DE20F17 -:104CE000F31F2591349121153105E1F0F801019070 -:104CF000F081E02DFF8BEE8B60E005C024173507B7 -:104D000009F47F2C6F5FE62FF0E0EE0FFF1F4E8956 -:104D10005F89E40FF51F459154914115510571F7D5 -:104D20007F5FD7CF7720C9F0F801671708F0FD0142 -:104D300044820E171F0721F49093F502F72C3CCF05 -:104D4000981305C0AE17BF0711F49F5F93709101D0 -:104D50002F5F3F4F822F83708DCFF0E0E0E0F7CFE1 -:104D600090E021101FC0B40102C0660F771F2A9582 -:104D7000E2F79B01215031092817390731F4442308 -:104D800009F447C0C5010E94E605C40101C0880FAF -:104D90006A94EAF7982F9095F80186818923868393 -:104DA000F22C0ACF9C01062C02C0359527950A9457 -:104DB000E2F7A90141705527BC01615071098623B2 -:104DC0009723892B11F5452B01F1F80182819381FD -:104DD000892BC1F01B821C821D821E8259825A823D -:104DE0000E94A2058160582F9D838C83F8018281E7 -:104DF00093818F83988729813A814B816D817E8150 -:104E00000E946522F8011582C0CFF22FF1702F2E7B -:104E1000BCCF2F2CBACF9091F5028091F602981753 -:104E200031F00E944023EE2009F436CE03CF0E94D9 -:104E3000DE221092F8021092F7020E941406F3CFBD -:104E400061E0CE0109960E945C0F6C018B85F7EF43 -:104E5000CF16FCE5DF0609F02ACE882309F43DCE03 -:104E600081E08093420118CE1F920F920FB60F92ED -:104E700011242F933F934F935F936F937F938F935F -:104E80009F93AF93BF93CF93DF93EF93FF93D09113 -:104E9000E900DF708091EC00C82FC17080FDC0E890 -:104EA0001092E9008091F000877F8093F000789461 -:104EB0000E943E161092E9008091F0008860809375 -:104EC000F000CD2BCF70C093E900FF91EF91DF91FF -:104ED000CF91BF91AF919F918F917F916F915F9192 -:104EE0004F913F912F910F900FBE0F901F901895EB -:104EF0001F920F920FB60F9211242F933F934F934F -:104F00005F936F937F938F939F93AF93BF93EF9331 -:104F1000FF938091E10082FF09C08091E20082FF4F -:104F200005C08091E1008B7F8093E1008091DA00E1 -:104F300080FF24C08091D80080FF20C08091DA00DB -:104F40008E7F8093DA008091D90080FF9BC080E142 -:104F500089BD82E189BD09B400FEFDCF81E0809367 -:104F60002E0380910903811109C00E9406040E944A -:104F7000D1048091E20084608093E2008091E1009E -:104F800080FF17C08091E20080FF13C08091E20093 -:104F90008E7F8093E2008091E20080618093E20046 -:104FA0008091D80080628093D80019BC85E08093FE -:104FB0002E038091E10084FF29C08091E20084FFEC -:104FC00025C080E189BD82E189BD89B5982F9170A6 -:104FD00080FFFBCF8091D8008F7D8093D800809197 -:104FE000E1008F7E8093E1008091E2008F7E8093CC -:104FF000E2008091E20081608093E20080912F03C3 -:10500000882309F445C084E080932E038091E10059 -:1050100083FF27C08091E20083FF23C08091E100DD -:10502000877F8093E10082E080932E0310922F030C -:105030008091E1008E7F8093E1008091E2008E7F7D -:105040008093E2008091E20080618093E20042E080 -:1050500060E080E00E949F048091F000886080936F -:10506000F000FF91EF91BF91AF919F918F917F9150 -:105070006F915F914F913F912F910F900FBE0F90C5 -:105080001F90189519BC10922E031092090376CF29 -:105090008091E30087FD93E090932E03B7CF78943F -:1050A0001F921FB61F9211248F939F93AF93BF93AC -:1050B0008091000390910103A0910203B09103033A -:1050C0000196A11DB11D8093000390930103A0934D -:1050D0000203B0930303BF91AF919F918F911F90F3 -:1050E0001FBE1F9018951F921FB61F9211248F93F9 -:1050F0009F93AF93BF938091FF02811113C0809162 -:10510000000390910103A0910203B0910303419623 -:10511000A11DB11D8093000390930103A09302038E -:10512000B0930303BF91AF919F918F911F901FBECA -:105130001F901895CDB7DEB7EE970FB6F894DEBF87 -:105140000FBECDBF84B7877F84BF0FB6F894A895F4 -:1051500080916000886180936000109260000FBEB3 -:1051600080E890E00FB6F89480936100909361001E -:105170000FBE85B7806885BF85B7806885BF86E12B -:1051800098E09093C5018093C4010E9406040E9498 -:10519000D1048091E20084608093E2007894809151 -:1051A0002E038823A1F01091E9001F709091EC006C -:1051B000892F817090FD80E8182B1092E900809172 -:1051C000E80083FD0E943E161F701093E90082E004 -:1051D00084BD93E095BD9AEF97BD80936E000E94C9 -:1051E0009C0F811102C00E948A0E05E711E02BE797 -:1051F000C22E21E0D22EF80181918F018F3F11F054 -:105200000E941808C016D106B1F786EF0E94180850 -:1052100087EF0E94180883E90E94180886E90E9417 -:105220001808E4E5F2E08AE592E0A7E6B2E0119220 -:105230001D928E179F07D9F70E941E16811102C07A -:105240000E94B21582E090E00E94722F809360026B -:105250000E94B50F90930503809304030E94EB23F3 -:105260008FE39CE90197F1F700C000000E94EB2357 -:105270008091670280FF08C06FEF7FEF90E080E0D1 -:105280000E94A42F0E944F0C83E090E00E94722F96 -:1052900090E00E941E0B80913803909139030E9488 -:1052A0008A14509A589A559A5D9A549A5C9A8CE04E -:1052B00090E00E94722F90E0B0E0A0E08093500256 -:1052C00090935102A0935202B093530280915A02DC -:1052D000811133C00E941E16811104C00E94B215B4 -:1052E0000E94A21588E090E00E947A2F60938E03BE -:1052F00070938F0380939003909391036E7F71F46A -:105300000E94A21588E090E00E947A2F60938E039D -:1053100070938F0380939003909391030E942B06C8 -:105320001092840280918E0380FF04C060E0869515 -:105330000E942B1481E080935A025198599A5298F6 -:105340005A9A89B1869581704A9928C290E0892B32 -:1053500080935E028AEC92E090937C0280937B02C1 -:1053600060E081E20E942B1481E090E00E942E1503 -:1053700080E091E09093FC028093FB0218E1C12E43 -:10538000D12C00E4A02E87E692E096E0B92EB80E6C -:1053900080912E039924939400E112E1853009F461 -:1053A00051C20E94EB23882359F08FB7F8944091A3 -:1053B00000035091010360910203709103038FBFBA -:1053C000E1E6F2E0A7E6B2E010E000E0302F8D91D8 -:1053D0009191981709F45FC2292F282790E099240A -:1053E0009394422F492109F451C29DAB3EAB8921D0 -:1053F00091E009F490E09FAB0E94A2058160782FB4 -:1054000099AF88AF4DA95EA96FA989AD0E941325F8 -:10541000F801EF59FD4F8081982690828091840297 -:105420008823D1F180918302E0918E03E695E81BF9 -:10543000E0937F02823009F045C2F0E0EC51FD4F6D -:10544000E4910E2F10E0BCE08B2EB3E19B2E8091F7 -:105450008002882361F0109280020E94A20590933E -:105460007E0280937D0210928202109281020E943D -:10547000A205E0917D02F0917E028E1B9F0B8F3F73 -:105480009F4750F4E00FF11FF0937E02E0937D02FE -:105490008DE792E0F4010995E0915E02EE0FEE0FC8 -:1054A000E0935E0289B181FBEE24E0F84A9964C280 -:1054B00080E08E29E82BE0935E02EF70F0E0E15887 -:1054C000FE4F808190915D02890F80935D0220E004 -:1054D000843034F180915C028F5F80935C0212E033 -:1054E00018AB19AA81E08AAB0E94A2058160782FCF -:1054F0009CAB8BAB48A959A96AA98CA90E9413251A -:105500001BA71CA61DA60E94A2058160782F9FA73D -:105510008EA74BA55CA56DA58FA50E94132521E044 -:1055200080915D028D3F2CF580915C0281508093CB -:105530005C021EA21FA281E088A70E94A2058160D2 -:10554000782F9AA789A74EA15FA168A58AA50E9476 -:10555000132519A21AA21BA20E94A2058160782F0E -:105560009DA38CA349A15AA16BA18DA10E941325D3 -:1055700021E080915D02082E000C990B64E070E040 -:105580000E94CF2E80935D02222359F08FB7F894AA -:105590004091000350910103609102037091030355 -:1055A0008FBF86E0E4E7F2E0DE01119601900D92F4 -:1055B0008A95E1F7909076028090770210917802B8 -:1055C000009179021092760210927702109278027E -:1055D00010927902892D882909F448C080917202BD -:1055E000909173020E9493059C0190916E02992301 -:1055F00009F4AEC323333105C8F19F3F19F09F5F13 -:1056000090936E02992059F00E949C079FEF191405 -:105610000CF491E0899F802D1124809376028820DC -:1056200059F00E949C079FEF18140CF491E0899F99 -:10563000802D112480937702309176023323B1F0CC -:1056400020917702222391F045EB3403C00111240D -:10565000992309F494C19093760245EB24039001B9 -:105660001124332309F48FC130937702812F802BCB -:1056700009F448C080917002909171020E949305D4 -:105680009C0190916D02992309F45DC32536310583 -:10569000C8F19F3F19F09F5F90936D02112359F05D -:1056A0000E947A079FEF11160CF491E0899F802DDC -:1056B000112480937802002359F00E947A079FEF0B -:1056C00010160CF491E0899F802D112480937902AB -:1056D000309178023323B1F020917902222391F0A6 -:1056E00045EB3403C0011124992309F450C1909370 -:1056F000780245EB240390011124332309F44BC1B4 -:10570000309379028091760290917702892B909163 -:105710007802892B90917902892B11F00E94DA0688 -:1057200086E0FE013196A4E7B2E001900D928A95E1 -:10573000E1F70E94DA0590915F02891731F00E942B -:10574000DA0580935F020E94AB0B80912E038430B8 -:1057500009F01ECE83E08093E9008091E80082FF8B -:1057600017CE8091E80090E085FF06C00E942504D6 -:10577000882309F414C191E08091E8008B7780932D -:10578000E800992309F404CEE981E150E33108F0FF -:1057900088C1F0E0E052F04D0C94052F92E0D7CD97 -:1057A00080912E03843009F440C080E00E94AB0B4E -:1057B0001092840280917A02811116C090927A022E -:1057C00080918E03982F917090935B028E7F8093CF -:1057D0008E039FEFE0E7F2E09150E040F040E1F708 -:1057E00000C000000E94D90F1092FF020FB6F8947B -:1057F000A895C09260000FBEA092600083B7817F21 -:10580000846083BF83B7816083BF7894889583B7B2 -:105810008E7F83BF0FB6F894A89580916000886151 -:1058200080936000109260000FBE80912D0388234A -:1058300049F00E94EB23E7E6F2E08191811164C216 -:10584000BE12FBCF80912E03853009F4A9CF0E94B0 -:1058500029160E94DA050E94AB0B10927A02809101 -:105860005B02882361F080918E03816080938E03B8 -:1058700060E086950E942B140E94C30F92CD809108 -:1058800085028823C9F30E94D90FF6CF9F5F990C38 -:10589000943009F0A6CD0F5F1F4F0630110509F0B7 -:1058A00095CD8FEF8AAF8BAF1CAE0E94A2058160B1 -:1058B000782F9EAF8DAF4AAD5BAD6CAD8EAD0E94C3 -:1058C0001325ACCD863059F4F0E0EF51FD4FE49153 -:1058D0000E2F10E0ACEF8A2EA2E19A2EB8CD8930BF -:1058E00061F4E695F0E0E252FD4FE4910E2F10E0F6 -:1058F000F8E68F2EF2E19F2EAACD8F3061F4E69567 -:10590000F0E0E552FD4FE4910E2F10E0EAEF8E2E0D -:10591000E1E19E2E9CCD853159F4F0E0E852FD4F37 -:10592000E4910E2F10E07CEA872E71E1972E8FCD47 -:1059300008E210E043E2842E41E1942E883109F41C -:1059400086CD833249F4E6EDF2E00591149163EAE5 -:10595000862E62E1962E7BCD04EF11E05AEE852E65 -:1059600050E1952E843209F472CD00ED17E03AE251 -:10597000832E36E0932E6BCD82E090E09ACD81E0CD -:10598000809376026ACE81E0809377026FCE81E0C9 -:1059900080937802AECE81E080937902B3CE00E2AC -:1059A00010E0CE0101964C018091E80085FD0AC00F -:1059B0008091E8008B778093E8000E94250488237B -:1059C00099F3D9CE8091F100F40181934F010150F8 -:1059D000110951F7D0CE1A8289E08B832DC08A81BC -:1059E000823009F4A7C18330A9F0813009F059C091 -:1059F0002FB7F89460910003709101038091020326 -:105A0000909103032FBF0E940B2F6B837C838D83A8 -:105A10009E8312C0809167028B83809168028C8381 -:105A2000809169028D8380916A028E8380916B02DE -:105A30008F8380916C02888780912E03843009F0D7 -:105A4000A7CC1091E9001F709091EC00892F817014 -:105A500090FD80E8182B82E08093E9008091E800B7 -:105A600080FF0DC050E040E060E270E0CE010196A2 -:105A70000E9456048091E8008E778093E8001F70A2 -:105A80001093E90085CC8A81823059F46B817C8146 -:105A90008D819E810E940B2F86E290E00E94862FCE -:105AA000CBCF8FEF8983C8CF4C816B818A810E94D5 -:105AB000B30E9827892798279E838D83BDCF8D802D -:105AC0009E809824892498248A810B81F8E00F9F76 -:105AD0008001112420E3829F000D111D11248C816F -:105AE00090E0880F991F080F191F692DC80187962C -:105AF0000E94862F682DC8018896D0CF0E941F0E65 -:105B00009BCF8A818138C1F060F4803809F094CF4E -:105B100020E04B816091900380918F030E943213AB -:105B20008BCF823859F1833809F086CF20E040913D -:105B300091036C818B81F2CF60E08B810E942B14EA -:105B40009B8180918E03911111C08E7F80938E0373 -:105B5000109284024FEF80E792E0415080409040E5 -:105B6000E1F700C000000E94D90F66CF81608093EA -:105B70008E0360E086950E942B145ECF8B8180930C -:105B800092035ACF8A81813899F030F4803809F035 -:105B900053CF8091910321CF823891F0833809F05F -:105BA0004BCF80918F038B83809190038C8344CF64 -:105BB00080918E0380FF02C086950FCF80E00DCFCD -:105BC000809192030ACF60918E0370918F03809130 -:105BD0009003909191030E9420132ECF80E18A833D -:105BE0002BCF81E08A8389EFF8CE0A811B811027B1 -:105BF00001271027FE0131963F018C80CF01880DCF -:105C0000911D4C01C801895F9D4F8614970409F4CA -:105C100013CF093FE1E01E0750F40E94722FF301F9 -:105C200084830F5F1F4FFFEF6F1A7F0AEBCFF301E3 -:105C30001482F7CF0A811B81102701271027CE017C -:105C400001963C018C80800E912E911CC801895FC9 -:105C50009D4F8016910609F4EFCE093FE1E01E0743 -:105C600020F4F30164810E94862FFFEF6F1A7F0AF0 -:105C70000F5F1F4FEBCF0E940F0EDECE8AE0AFCF3B -:105C80000A811B81102701271027CE0101963C01B4 -:105C90008C80FC01E80DF11D4F01C8018796861428 -:105CA000970409F4C9CE003EF1E01F0750F40E94AA -:105CB000722FF30184830F5F1F4FFFEF6F1A7F0A6C -:105CC000ECCFF3011482F7CF0A811B811027012743 -:105CD0001027CE0101963C018C80800E912E911CE4 -:105CE000C80187968016910609F4A6CE003EE1E031 -:105CF0001E0720F4F30164810E94862FFFEF6F1AC4 -:105D00007F0A0F5F1F4FECCF09BD19BD09B400FE1C -:105D1000FDCF8091D8008F7D8093D8008091E000E6 -:105D200082608093E0008091E00081FDFCCF0E94C2 -:105D3000291688CD86E290E00E94722F1B821C8279 -:105D40001D828E8379CE2D32314008F0A4CCDACC7E -:105D50002D32314008F053CC89CC87FB082E062623 -:105D600087FD819567FD61950E94432F0EF4919503 -:105D700007FC81950895AA1BBB1B51E107C0AA1F10 -:105D8000BB1FA617B70710F0A61BB70B881F991FDC -:105D90005A95A9F780959095BC01CD01089597FB80 -:105DA000072E16F4009407D077FD09D00E94BB2E71 -:105DB00007FC05D03EF4909581959F4F089570950E -:105DC00061957F4F0895A1E21A2EAA1BBB1BFD010E -:105DD0000DC0AA1FBB1FEE1FFF1FA217B307E407CA -:105DE000F50720F0A21BB30BE40BF50B661F771F22 -:105DF000881F991F1A9469F7609570958095909502 -:105E00009B01AC01BD01CF010895EE0FFF1F05906E -:105E1000F491E02D09946927962769277827872729 -:105E2000782708950E941A2F332312F48A1B9B0BA4 -:105E30000C942B2FA29FB001B39FC001A39F700DA4 -:105E4000811D1124911DB29F700D811D1124911D82 -:105E500008950E941A2FB7FF0895821B930B08958F -:105E60000E941A2FA59F900DB49F900DA49F800DA6 -:105E7000911D11240895B7FF0C94302F0E94302FEC -:105E8000821B930B0895991B79E004C0991F961704 -:105E900008F0961B881F7A95C9F780950895FB0135 -:105EA000DC0102C005900D9241505040D8F7089592 -:105EB000FC014150504030F001900616D1F7319767 -:105EC000CF010895882799270895FB01DC0104C0BC -:105ED0008D910190801921F441505040C8F7881BE2 -:105EE000990B0895F999FECF92BD81BDF89A992733 -:105EF00080B50895A6E1B0E044E050E00C94AC2FEA -:105F0000A8E1B0E042E050E00C94AC2F262FF999C4 -:105F1000FECF92BD81BDF89A019700B4021639F008 -:105F20001FBA20BD0FB6F894FA9AF99A0FBE0895D9 -:105F30000396272F0E94872F0E94862F252F0E94CD -:105F4000872F242F0C94872F0196272F0E94872FAD -:105F50000C94862FDC01CB01FC01F999FECF06C021 -:105F6000F2BDE1BDF89A319600B40D924150504017 -:105F7000B8F70895F894FFCF470F470F500F500F11 -:105F8000520F500F500F500F470F470F570F500F22 -:105F9000500F570F23174B179E174B179E177E173F -:105FA000B6179E17B318C0180D1D0D1D7C1D7C1D46 -:105FB000D71DF11D431D431DFC1D841E931E931E02 -:105FC000EB2CEF2C432D542D5F2D7E2D812DC22DDA -:105FD000E32D512D512DEE2DF12DF52D1A2E3B2EA9 -:065FE0003E2E402E642E4F -:105FE60090050F0CEE0BEA0BE60B01191A1B1C1D94 -:105FF6001E1F202122010201FC002A00000000F6DB -:10600600004C00000000F0005000000000EA0051C3 -:1060160000000000E4004F00000000DE0052000017 -:1060260000000101818283E200E900EA00B500B6C2 -:1060360000B700CD008301CC008A019201940121B2 -:1060460002230224022502260227022A02B300B4F2 -:10605600006F007000F03435366667F6F7939600E9 -:10606600FF0100010000FFFF0000010001FF00002A -:1060760001020202020606060909090909090F0FAB -:106086000F0F0F0F151515181919191919191919AF -:10609600191923244022B6DA01B8010201FB0614BD -:0460A60007340700B4 +:101CF0000E94852F6FEFC11169E084E290E00E949D +:101D0000852F6FEFC11163E185E290E0CF910C94D4 +:101D1000852F80E00E94710E60E086E290E00E94D4 +:101D2000852F0E941F0E0E940F0E81E00C94710EF1 +:101D3000CF93C0910503C2FB992790F9981781F0C2 +:101D400080FBC2F9C09305036091040384E090E036 +:101D50000E94852F6C2F82E290E0CF910C94852F0A +:101D6000CF9108950F931F93CF93DF9328E0629F45 +:101D7000E001112450E0440F551FC40FD51F30E37C +:101D8000839FC00DD11D1124CE0187960E94712F13 +:101D9000082F10E0102F0027CE0188960E94712F87 +:101DA0009801282BC901DF91CF911F910F910895C0 +:101DB000462F8A3038F4763028F4643018F4672FD0 +:101DC0000C94B20E90E080E00895BF92CF92DF9223 +:101DD000EF92FF920F931F93CF93DF937C010091BB +:101DE0003803109139038091450290914602082BE7 +:101DF000192BCFE0D0E0CC24C394D12CBC2EC6014B +:101E00000C2E02C0880F991F0A94E2F780239123B9 +:101E1000892B71F4219790F7B12C8B2DDF91CF9105 +:101E20001F910F91FF90EF90DF90CF90BF9008959A +:101E3000B7018C2F0E94D80E0E947208019751F3AF +:101E4000ECCFCF93DF93EC010E94E50EBE010E9420 +:101E5000D80EDF91CF910C947208FC018681978196 +:101E6000009779F00E947208292F2F7092959F7029 +:101E700092509E30A0F4E92FF0E0E554F04D0C9420 +:101E8000042F808191810E94210FEECF803F19F0B5 +:101E900020F4883E20F481E00895843FE1F380E05F +:101EA0000895883EC0F3813FD1F7F5CF822F869504 +:101EB0008695869508951F93CF93DF9300D000D029 +:101EC0000F92CDB7DEB7FC01268137812115310590 +:101ED00041F525E0DE01119601900D922A95E1F77A +:101EE000FC01228189819A812223B9F06623A9F01D +:101EF0000E94E50E182F682F89819A810E94D50AC9 +:101F000069817A81812F0F900F900F900F900F9021 +:101F1000DF91CF911F910C94D80E0E94AE0A182F1A +:101F2000EFCFC9010F900F900F900F900F90DF919E +:101F3000CF911F91089583E290E00E94712F81322A +:101F400089F484E290E00E94712F893059F485E28F +:101F500090E00E94712F91E0833109F090E0892F89 +:101F60008170089580E0FCCFCF9384E090E00E94E0 +:101F7000712FC82F82E290E00E94712F982F8C2F32 +:101F8000CF91089560918E03669570E04BE050E02C +:101F90008AE091E00E94572F892B19F481E0809309 +:101FA00084020E94A20590937E0280937D02089590 +:101FB0005F926F927F928F929F92AF92BF92CF92D9 +:101FC000DF92EF92FF920F931F93CF93DF93CDB7E2 +:101FD000DEB7C455D1090FB6F894DEBF0FBECDBF32 +:101FE00080918E0380FD0AC0EAE3F3E01182108243 +:101FF0001282339623E0EE38F207C1F780907B021D +:1020000090907C028114910409F459C080917A0265 +:10201000811155C0D12CC12C66246394712C13E01E +:10202000512E8091850293010C2C01C0220F0A943D +:10203000EAF7822309F43BC0F601EE0FFF1FE80D1B +:10204000F91DE590F490E114F104C9F145E050E088 +:10205000B701CE0101960E944E2F09810F3F39F141 +:102060008A81800F9927991F8D31910514F08CE199 +:1020700090E05C01AA0CBB1C8A0D9B1DFC01E65C78 +:10208000FC4F5F01059D80011124065C1C4F0A1561 +:102090001B0520F0F5E0EF0EF11CD8CF98014D8123 +:1020A0006C818B810E9441060D5F1F4FF0CF2FEF97 +:1020B000C21AD20A38E0C316D10409F0B2CF7DEEBD +:1020C000A72E73E0B72EDE011196AE014B5A5F4F7B +:1020D0001A2F7B2FF5018491282F30E0C901880F3A +:1020E000991F820F931F865C9C4FFC01C080D1809A +:1020F000E280CD92DD92ED92FFEFAF1ABF0AA417F6 +:10210000B50741F7279A35B13F7725B120686FB7FA +:10211000F894812F972FFC017191CF01E8E025B948 +:10212000000000C077FF35B9770F000000C000C085 +:1021300000C035B900C0EA9591F78417950759F7A3 +:102140006FBF8FE594E00197F1F700C00000CC5A13 +:10215000DF4F0FB6F894DEBF0FBECDBFDF91CF913A +:102160001F910F91FF90EF90DF90CF90BF90AF90B5 +:102170009F908F907F906F905F9008951F93CF9363 +:10218000DF9300D00F92CDB7DEB7162F90918E035C +:1021900090FF18C09E012F5F3F4F48E76FEF0E94EE +:1021A00041068B819981612F70E0FB01EE0FFF1FCB +:1021B000E60FF71FE65CFC4F2A8121839083828320 +:1021C0000E94D80F0F900F900F90DF91CF911F9129 +:1021D0000895EF92FF920F931F93CF93DF938C019B +:1021E000CAE3D3E0F12CE12CF801948160919003D3 +:1021F00080918F03FEE0EF16F104FCF49923F9F0CF +:102200009E01409191030E9441062FEFE21AF20ACB +:1022100023968CE1E816F10439F70E94D80FF801F3 +:10222000848190E00196817099278483DF91CF911A +:102230001F910F91FF90EF900895992309F39E014C +:1022400040E0E1CF8F929F92AF92BF92CF92DF9208 +:10225000EF92FF920F931F93CF93DF93EC014C818A +:10226000042F10E09801D8010E94192F9B01AC01A6 +:102270000E942F2F4B015C01E0E2F0E0E01BF10B2C +:10228000A5E5B0E0AC019B010E942F2F6B017C0102 +:102290009F01DF010E94112F9B01AC010E943A2F88 +:1022A0009B01AC01280D391D4A1D5B1DC701B601FC +:1022B0000E94E22EF22E822F90E039E23F15D8F1F3 +:1022C00043E0249F9001112435952795122F1095F6 +:1022D0009AE3C92E93E0D92E00E085E5E82EEF18A9 +:1022E0008E2D01FD8F2D9601412F609190030E944C +:1022F00041060F5F53E0C50ED11C0C3189F70E94D7 +:10230000D80F9C8181E0992319F0903219F48FEF56 +:102310008093170180911701890F8C83DF91CF91F2 +:102320001F910F91FF90EF90DF90CF90BF90AF90F3 +:102330009F908F90089525E530E0A901481B590B27 +:10234000CA019A01220F331F280F391F37FFBCCF54 +:102350002F5F3F4FB9CF0F931F93CF93DF93CAE304 +:10236000D3E0FE01118210821282339683E0EE38B0 +:10237000F807C1F710E000E080918702082E000CFA +:10238000990B081719078CF180911601082E000C83 +:10239000990B801791074CF19E0140919103609138 +:1023A000900380918F030E9441060F5F1F4F239679 +:1023B0000C31110509F70E94D80F809115019091F9 +:1023C0008702980F9093870220911601280F20937F +:1023D0001601121614F49B311CF08195809315019F +:1023E000DF91CF911F910F910895198218821A825F +:1023F000DCCFBF92CF92DF92EF92FF920F931F93A9 +:10240000CF93DF93FC018281DD24DA9480FD02C04A +:10241000DD24D3940AE313E0D0E0C0E02CE1B22E37 +:10242000F80111821082128294E0E92EF12CC12C65 +:10243000809186028C0D8D310CF43DC06B2D0E9475 +:10244000AC2E892F082E000C990B8C179D0791F448 +:10245000809191038E9DA0018F9D500D1124559563 +:1024600047955595479598016091900380918F030A +:102470000E944106CD0CF1E0EF1AF108C9F6219651 +:102480000D5F1F4FCC31D10559F60E94D80F8091B6 +:10249000860291E0D91215C0811111C08BE18093A1 +:1024A0008602DF91CF911F910F91FF90EF90DF9007 +:1024B000CF90BF90089587FFC5CF845EC3CF815072 +:1024C000EECF90E00196BE010E94CE2EE8CFEF92B3 +:1024D000FF921F93CF93DF93EC018AE3E82E83E012 +:1024E000F82E10E08C819701409191036091900348 +:1024F000810F0E944106175F83E0E80EF11C1C3F2C +:1025000089F70E94D80F9A818C8190FF08C08F5F55 +:102510008C83DF91CF911F91FF90EF9008958150B0 +:10252000F7CF90918E0390FF0CC0EAE3F3E0818334 +:1025300060834283339693E0EE38F907C1F70C9439 +:10254000D80F08950F931F93CF93DF9300D00F926E +:10255000CDB7DEB78C018091880281110AC09E013F +:102560002F5F3F4F44EB6FEF0E9441068A818093BB +:102570008802F8016481613069F08091880240E04E +:10258000662361F040E0623011F44091880280E0FF +:1025900060E004C06091880240E080E00E949112F7 +:1025A000F801848190E0019663E070E00E94CE2EF5 +:1025B00084830F900F900F90DF91CF911F910F9117 +:1025C0000895CF93DF9300D00F92CDB7DEB79091EF +:1025D0008E0390FF0AC09E012F5F3F4F0E9441066D +:1025E0004B8169818A810E9491120F900F900F9008 +:1025F000DF91CF910895CF93DF93EC01EEE8F3E004 +:10260000438162818C810E94E1128C818F5F8C8377 +:10261000DF91CF910895CF93DF93EC01EC81F0E04F +:10262000E75FFB4F4491EEE8F3E0628181810E9415 +:10263000E1128C818F5F8C83DF91CF910895CF92CF +:10264000DF92EF92FF926B017C010E942B06B70193 +:10265000A60188E090E0FF90EF90DF90CF900C947F +:10266000972F5F926F927F928F929F92AF92BF92BD +:10267000CF92DF92EF92FF920F931F93CF93DF934E +:1026800000D00F92CDB7DEB7182F762E042F622E12 +:1026900090918E0390FF29C0E92FE695AE2FB0E010 +:1026A000A157BE4F8C91809383029E7F923081F51B +:1026B0009E012F5F3F4F812F0E9441064B81698110 +:1026C0008A810E94911210938F037092900300935D +:1026D0009103662051F060918E0370918F03809179 +:1026E0009003909191030E941F130F900F900F90F1 +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:10270000BF90AF909F908F907F906F905F90089553 +:10271000823019F400919103D6CF863019F41091CC +:102720008F03D1CF8930D9F3893169F6E9518E2FE2 +:102730008170582EE695F0E0E851FC4FA590B490DA +:10274000BB248AE3E82E83E0F82ED12CC12C9CE137 +:10275000892E912CC601B4010E94BA2E812F5110EE +:1027600013C0860F9701402F672D0E944106CA0CA7 +:10277000DB1C83E0E80EF11C8EE8E81683E0F80627 +:1027800049F70E94D80F9FCF861BECCFEEE8F3E00D +:10279000438128E0421B08F440E021E0628181810E +:1027A0000C943113EEE8F3E0438128E0420F08F483 +:1027B0004FEF21E0628181810C943113EEE8F3E068 +:1027C000628128E0621B08F460E021E0438181819E +:1027D0000C943113EEE8F3E0628128E0620F08F414 +:1027E0006FEF21E0438181810C943113EEE8F3E037 +:1027F000818121E04381628188500C943113EEE89D +:10280000F3E0818121E043816281885F0C94311380 +:1028100080919203882319F08150809392036091F4 +:102820008E0370918F0380919003909191030C948B +:102830001F1380919203833018F48F5F809392036B +:1028400060918E0370918F0380919003909191031A +:102850000C941F1390918E0390FF36C091708111DC +:1028600029C0926090938E03662351F060918E038D +:1028700070918F0380919003909191030E941F1398 +:1028800060918E03669570E04BE050E08AE091E045 +:102890000E94572F892BA9F01092840281E0809327 +:1028A000800220E0409191036091900380918F031A +:1028B0000C943113853210F09864D4CF880F982B84 +:1028C000D1CF0E94C20FEACF089521E030E0A901E4 +:1028D00002C0440F551F8A95E2F7CA012091850274 +:1028E000662399F0822B8093850280918402811166 +:1028F00006C080918E0360E086950E942A14809124 +:102900008E0380FD05C00C94D80F80958223EBCFF9 +:1029100008950F931F93CF93DF93EC0161E000972D +:1029200009F0682F617080E00E94651460E02097D4 +:1029300021F0BE0176956795617081E00E94651473 +:1029400060E0209731F0BE017695679576956795A2 +:10295000617082E00E94651460E0209739F0BE014A +:1029600013E0769567951A95E1F7617083E00E9410 +:10297000651460E0209739F0BE01B4E07695679564 +:10298000BA95E1F7617084E00E946514AE0170E0D1 +:1029900060E0BB27A72F962F852F0097A105B105D3 +:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 +:1029B000279517950795FA95D1F70115110521056A +:1029C000310519F08C5FB901A8018A019B01E2E091 +:1029D0003695279517950795EA95D1F701151105B5 +:1029E0002105310519F08E5FB901A801769567952B +:1029F00057954795452B462B472B09F08F5F823023 +:102A000011F160F4882399F08130C1F0CE01DF919B +:102A1000CF911F910F91089580E0C6CF8330C1F010 +:102A20008430A1F720E044E66FEF8FE004C020E09F +:102A300044E66FEF82E30E943113E8CF20E044E6E2 +:102A40006FEF85E0F8CF20E044E66FEF80E8F3CF4A +:102A500020E044E66FEF87EDEECF0E94891490935B +:102A60003903809338030C94010B809138039091C3 +:102A700039039C01267033272630310519F488600C +:102A80000C942D15877FFCCF21E030E002C0220F8F +:102A9000331F8A95E2F72095309580913803909105 +:102AA0003903822393230C942D1590914002809535 +:102AB000892380934002282F277039F4282F082E6D +:102AC000000C330B9217130621F49091050392FF2B +:102AD00007C08595859585950E9444151092400202 +:102AE000089521E030E002C0220F331F8A95E2F7FB +:102AF0008091380390913903822B932B0C942D15E0 +:102B000080918E038695815009F484E261E00C94F3 +:102B10002A1480918E0386958F5F853208F081E0BC +:102B200061E00C942A1490918E0390FF07C0969553 +:102B3000981720F0961710F40C94891561E00C9406 +:102B40002A14EEE8F3E083E0808311828FEF828322 +:102B500088E28383148260817181828193810C94E5 +:102B60001F1369EE7EEF90E080E00E94A32F60E0EB +:102B700082E090E00E94852F60E083E090E00E9478 +:102B8000852F109246021092450260E084E090E0AA +:102B90000E94852F60E082E290E00E94852F60E035 +:102BA00085E090E00E94852F60E086E090E00E9442 +:102BB000852F6FEF87E090E00E94852F40E050E086 +:102BC000BA0188E090E00E94972F60E08DE090E0ED +:102BD0000E94852F40E050E0BA0188E190E00E9419 +:102BE000972F60E087E190E00E94852F40E050E061 +:102BF000BA018CE190E00E94972F70E060E080E2E3 +:102C000090E00E94A32F40E050E0BA0188E190E0FC +:102C10000E94972F80E00E94710E0E94890E40E072 +:102C200050E0BA018FE090E00E94972F40E050E022 +:102C3000BA0183E190E00C94972F90E080E00E942D +:102C40007F2F893E9E4F11F40C949B0F80E00895D6 +:102C50001092430280914301E8ECF1E0882359F09F +:102C60008091040387FF07C08EE1DF011D928A95E2 +:102C7000E9F70C94010B86E0F8CF1F93CF93DF9315 +:102C8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA3 +:102C900080E393E02091F100DC012D93CD01B3E0BE +:102CA00088339B07B9F780913103833009F471C0F1 +:102CB000B8F4813009F448C0823009F4B2C0809180 +:102CC000E80083FF3AC180913003909131039A303C +:102CD00008F033C1E92FF0E0E753F04D0C94042FD6 +:102CE0008A3009F48DC08B3009F470C0893039F70F +:102CF00080913003813219F780913403909135032C +:102D0000009711F00297D9F68091E800877F8093B1 +:102D1000E8008091E80082FF37C09091F300809135 +:102D2000F200029729F48091F1008B7F813021F429 +:102D30008091F10080930B038091E8008B77809362 +:102D4000E8000E948004BBCF80913003813A09F0F3 +:102D5000B6CF8091E800877F8093E80080913403AC +:102D600090913503892B61F460E28CE093E070E090 +:102D70000E9432058091E8008B778093E8009FCF16 +:102D800060E090E080E0F3CF80912E038111C1CF0D +:102D900096CF80913003813A09F091CF809134032E +:102DA00090913503892B09F08ACF8091E800877FC5 +:102DB0008093E8008091E80080FFFCCF8091430180 +:102DC0008093F1008091E8008E77B9CF8091300335 +:102DD000813209F074CF8091340390913503892BAF +:102DE00009F06DCF8091E800877F8093E8000E9412 +:102DF000800480913203809343010E9428165FCFA4 +:102E000080913003813209F05ACF8091E800877FAA +:102E10008093E8000E9480048091330380930A032A +:102E20004ECF80913003813A09F049CF8091E8007C +:102E3000877F8093E8008091E80080FFFCCF80913D +:102E40000A03BECF803899F0823809F076C08091AD +:102E500034038F70873008F070C08093E900809150 +:102E6000EB0085FB882780F91092E90006C080916D +:102E70002C0390912D03911182609091E800977F2F +:102E80009093E8008093F1001092F1008091E800A7 +:102E90008E77B5C1882309F4A2C1823009F04DC0F4 +:102EA000809132038111A6C1809134038F702FEF7E +:102EB000280F263008F041C08093E9002091EB00F4 +:102EC00020FF98C1933031F48091EB0080628093B1 +:102ED000EB0090C19091EB0090619093EB0021E0AA +:102EE00030E001C0220F8A95EAF72093EA001092A1 +:102EF000EA008091EB008860EACF81111EC010913A +:102F000032031F778091E3008078812B8093E30068 +:102F10008091E800877F8093E8000E948004809180 +:102F2000E80080FFFCCF8091E30080688093E3009D +:102F300082E0111183E080932E038091E80083FFEB +:102F40000AC08091E800877F8093E8008091EB00C1 +:102F500080628093EB00AA960FB6F894DEBF0FBE96 +:102F6000CDBFDF91CF911F9108958058823028F70F +:102F700020913203309133032C3DE3E03E07A1F56D +:102F800083E08A838AE289834FB7F894DE0113963F +:102F900020E03EE051E2E32FF0E050935700E4914F +:102FA00020FF03C0E295EF703F5FEF708E2F90E03F +:102FB000EA30C0F0C7968D939D932F5F243159F767 +:102FC0004FBF8091E800877F8093E8006AE270E05D +:102FD000CE0101960E9432058091E8008B778093A4 +:102FE000E800ABCFC096E7CF8091340390913503D2 +:102FF000432F55274330510509F44AC078F5413035 +:10300000510509F47AC08BE590E0E9EEF6E0423034 +:10301000510509F092CF2091E800277F2093E80026 +:1030200020913603309137038217930708F49C01EF +:1030300040E02115310509F065C0411163C0809160 +:10304000E80082FDC9CF80912E03882329F28530C4 +:1030500019F28091E80083FFF2CFBECF41325105D3 +:1030600009F43CC04232510509F067CF8330910525 +:1030700008F063CFFC01EE0FFF1FE954FE4F0190F3 +:10308000F081E02D8C549E4FDC018C9190E01AC0B1 +:10309000332721303105D1F02115310561F022307F +:1030A000310509F04ACFE6E5F7E0E4918E2F90E094 +:1030B000E6E5F7E007C0E6E7F7E0E4918E2F90E061 +:1030C000E6E7F7E0009709F438CFA5CFE2E6F7E0AE +:1030D000E4918E2F90E0E2E6F7E0F4CF83309105A3 +:1030E00008F02BCF880F991FFC01E354FE4F01908D +:1030F000F081E02D89E090E08ECF82E190E0E4E481 +:10310000F7E089CF80912E03882309F465CF8530BD +:1031100009F462CF8091E80083FD5ECF8091E800E2 +:1031200082FD8DCF8091E80080FF83CF9091F300E6 +:103130008091F2002115310519F08830910550F089 +:1031400041E0089709F040E08091E8008E77809395 +:10315000E8006FCF44914093F1003196215031093E +:103160000196E8CF803809F0E8CE8091E800877FAB +:103170008093E80080912F038093F10087CE811126 +:10318000DCCE10913203123008F0D7CE8091E800E7 +:10319000877F8093E80010932F030E9480041123FF +:1031A00011F084E005C08091E30087FDFACF81E053 +:1031B00080932E0342E061EC81E00E949F0442E292 +:1031C00061EC84E00E949F0442E261EC82E00E9494 +:1031D0009F0442E260EC83E00E949F04AECE8091A7 +:1031E0003203813009F0A9CE81E0933009F080E00C +:1031F00080932D031092E9008091E800877F8093EF +:10320000E8000E94800499CE9F92AF92BF92CF9225 +:10321000DF92EF92FF920F931F93CF93DF9300D033 +:1032200000D0CDB7DEB77C01FC0183819481892B6E +:1032300031F08081918189238F3F09F0F0C50F9093 +:103240000F900F900F90DF91CF911F910F91FF90F2 +:10325000EF90DF90CF90BF90AF909F90089598012E +:1032600022513F452031310508F0CEC58FEF93E064 +:103270000E94712F025167E0C62E62E0D62E88238D +:1032800039F1809140028770D1F2F7018281882361 +:10329000B1F282E00F900F900F900F90DF91CF91DD +:1032A0001F910F91FF90EF90DF90CF90BF90AF9064 +:1032B0009F900C945515C114F4E0DF0611F3C6017C +:1032C0000E94712F811101C001502FEFC21AD20A42 +:1032D0000111F1CF1C821B82BB24B3945AE0A52EAE +:1032E00086010F5F1F4FC6010E94712F89831A82CA +:1032F000882339F29FEF980F933008F58A83B982BB +:1033000032E0C30ED11CC8010E94712F8B83882329 +:1033100009F4B7CF8E010F5F1F4FF801808188231A +:10332000F9F2813009F043C091818281913049F4F2 +:103330000E5F1F4F0E94280D0F5F1F4FEECF6801D9 +:10334000E9CF923029F40E5F1F4F0E94730CF4CF27 +:10335000933029F40E5F1F4F0E944E0BEDCF943037 +:1033600019F00F5F1F4FE8CF0E5F1F4F30E020E0D6 +:10337000B8016F5F7F4FF80141818053990B8A300C +:10338000910550F021503109B8F28FE99FE0019783 +:10339000F1F700C00000F6CFA29EF001A39EF00D51 +:1033A00011249C012E0F3F1F842F8B01E1CF0E941F +:1033B000A90DC2CF81E00E9471150E94351561CF21 +:1033C00081E00E944415F9CF82E0FBCF04389FE5ED +:1033D000190709F483C008F473C00538FFE51F0717 +:1033E00009F041C5882309F43EC580EE0E94730CA4 +:1033F00081EE0E94730C80E10E94730C80E10E94B8 +:103400004E0B81EE0E944E0B80EE0E944E0B80917F +:10341000E60191E062E189278093E601882309F4BF +:103420008DC08FE00E94BE1066E18FE00E94BE104A +:103430001AC5882369F180914F02811106C081E08D +:1034400080934F0282EE0E94730C0E94A20590931B +:103450004E0280934D028BE20E94730C04C58823B8 +:10346000A1F080914F02811106C081E080934F024C +:1034700082EE0E94730C0E94A20590934E028093EC +:103480004D0281EE0E94730CE6CF81EE0E944E0B3E +:103490008BE20E944E0BE7C4882309F4E4C481EE5A +:1034A0000E94730C83EE0E94730C8FE40E94730CD5 +:1034B0008FE40E944E0B83EE0E944E0B81EEE9CF0B +:1034C000882309F4D0C481EE0E94730C83EE0E941D +:1034D000730C80E50E94730C80E5EBCF882309F420 +:1034E000D0CE10914C0281E0182710934C020E941C +:1034F000A20590934B0280934A0268E1112381F068 +:103500008FE00E94BE1069E18FE00E94BE106AE168 +:103510008FE00E94BE106BE18FE00E94BE10B1CE22 +:1035200084EB0E94BE1069E184EB0E94BE106AE148 +:1035300084EB0E94BE106BE184EBEFCF8FEA0E9418 +:10354000BE1066E18FEA72CF82EE0E94730CC6C491 +:1035500083E00E942F0B88E10E94730C88E10E9497 +:103560004E0B83E00E94240BB9C482EE0E94730CC0 +:1035700087E50E94280DB2C486EE0E94280D88E1DE +:10358000F8CF895AC5C482EE0E944E0BD9C48CE292 +:103590000E94280D8091E801882309F4D1C489E3B1 +:1035A0000E94280DCDC488E2FBCF033FFCE51F0736 +:1035B00039F1A0F4083D3CE51307F1F0093D8CE535 +:1035C000180751F1073D9CE5190709F0BDC426E233 +:1035D00041EE61EEC7010E94450D53CE053FECE57B +:1035E0001E07B1F088F0063F2CE5120709F0ACC4C5 +:1035F00027E245EE66EEEECF27E245EE65EEEACF36 +:1036000026E241EE60EEE6CF27E245EE64EEE2CF41 +:1036100026E241EE62EEDECF28E241E0EFCF80917C +:103620000403806106309CE5190709F48CC0809181 +:103630000403886007301C4508F485C080910403AA +:10364000806281C0809104038D7F0C30FCE51F07F0 +:1036500009F479C070F4809104038C600A303CE571 +:10366000130709F470C008F481C0809104038E7FB1 +:103670006AC080910403877F0E309CE5190709F426 +:1036800062C0809104038B7F0F301C4508F45BC03F +:10369000809104038F7E57C00B3FFCE51F0709F4A0 +:1036A0005DC030F503313CE5130709F46DC078F4D3 +:1036B00001319CE5190709F463C002311C4509F08A +:1036C0007EC40E942816809104038F773CC0053188 +:1036D000FCE51F0709F460C008F474C0809105037D +:1036E00081600A3F1C4509F06AC48093050367C4E2 +:1036F0000F3F8CE5180709F44BC088F4809105034F +:103700008D7F0D3FECE51E0781F3809105038E7FD1 +:103710000E3F1C4550F3809105038360E6CF0130D6 +:103720002DE5120709F457C008F442C060E00230EA +:103730001D4509F044C48EE090E00E94852F3FC4EF +:103740008091040381608093040339C48091040351 +:103750008260F9CF809104038460F5CF80910503E6 +:103760008260C3CF809104038064EDCF0E9428164D +:10377000809104038068E7CF809104038F7DE3CFBD +:10378000809104038F7BDFCF80910403837FDBCFA5 +:10379000809105038C7FA9CF8091040382FB992738 +:1037A00090F921E0922790FB82F990FB83F9CBCF2F +:1037B00080910503982F909591708E7F892B90FBB7 +:1037C00081F993CF0E94281690910403892F97FBCB +:1037D00087F98058B8CF61E0AECF882309F402C4DE +:1037E000809143028A7A91E009F490E09093E90194 +:1037F000811106C089E20E94700A0E94000A41CD30 +:1038000085E3F9CF85E3F3C3043CFCE51F0709F426 +:1038100093C046EF53E16FEF73E1053C2CE51207CF +:1038200009F00AC40E9425062CCD093C3CE513078B +:1038300009F491C070F4073CECE51E0709F486C05A +:103840004AEE53E16EED73E1083CFCE51F0751F3CE +:10385000F3C30A3C2CE5120709F482C048E054E1A6 +:1038600069E174E10B3C3CE51307E1F2E5C3013D7E +:103870008CE5180709F487C0B0F40E3CECE51E0790 +:1038800009F47BC008F476C00F3C2CE5120709F45C +:1038900077C06EE089E0003D3CE5130709F0CCC33A +:1038A0000E949315EECC043D8CE5180709F471C015 +:1038B00078F4023DECE51E0709F468C061E088E198 +:1038C000033DFCE51F0709F0B7C30E942A14D9CCB9 +:1038D000053D2CE5120709F45FC00D35100709F40A +:1038E000D0CCAAC380918E0380FF1BC08E7F8093B3 +:1038F0008E0360918E0370918F038091900390915D +:1039000091030E941F13109284028FEF90E7E2E070 +:1039100081509040E040E1F700C000000E94D80FC5 +:10392000B0CC816080938E0361E08695CECF40E875 +:1039300055E169E875E176CF49E855E160E875E160 +:1039400071CF4FEF53E166EF73E16CCF4EED53E172 +:103950006AEE73E167CF46EC53E162ED73E162CF4B +:1039600042ED53E166EC73E15DCF49E154E168E07B +:1039700074E158CF61E081E0A8CF65E082E090CFAC +:1039800068E086E08DCF64E18FE08ACF67E185E172 +:1039900087CF62E289E184CF61E083E296CF0B3585 +:1039A0009DE5190701F10C351D4509F055C38091BE +:1039B000050382FB882780F991E089270E94980EF1 +:1039C0004BC30E942816FFEF24E33CE0F150204057 +:1039D0003040E1F700C000000E944F0C0E94B1157A +:1039E00050CC81E0EBCF80E0E9CF82810081118172 +:1039F000882369F0C8010E94E50ED82E682FC801FF +:103A00000E94D50AB8018D2D0E94D80E2BC3C80183 +:103A10000E94AE0AD82EF6CF212F2F70C22E107F13 +:103A200019F0C29490EFC922DD20C9F0CC2069F0D2 +:103A300080E2800F883010F001110BC080914302AA +:103A4000C82AC09243020E94000A802F0E94730C71 +:103A500019C080914202C82AC0924202F4CF802F3E +:103A60000E944E0BCC2071F0C09480E2800F883011 +:103A700010F001113AC080914302C822C092430263 +:103A80000E94000AE92DE850FF0B349720F40E94B1 +:103A9000DA050E94AB0BAA20A9F08091400280FDBC +:103AA00011C0F70112828595859585950E94711543 +:103AB000C7010E94041980914002859585958595DE +:103AC0000E94441560E0C7010F900F900F900F9077 +:103AD000DF91CF911F910F91FF90EF90DF90CF90EA +:103AE000BF90AF909F900C945B0F80914202C822D0 +:103AF000C0924202C5CF312F3F70B32E107F1032DB +:103B000019F0B29480EFB822002369F0013081F1FE +:103B1000DD20D9F1CC2091F1F701858180FF95CF8F +:103B20008F7085832BC0DD20B1F0909144028B2DE6 +:103B3000892BC11003C00E94440BA4CFE1E0CE1238 +:103B4000FACF2091050322FD9DCF891709F49ACF62 +:103B50008093440297CFC11006C00E94FA098B2DB2 +:103B60000E94390B8FCFF1E0CF1609F48BCFF5CF40 +:103B7000DD2031F025E02C1508F484CF8B2DDBCF30 +:103B800034E03C1508F47ECFEACFCC2041F3093372 +:103B900049F4FFEF27EE33E0F15020403040E1F7E9 +:103BA00000C00000802F0E944E0B6CCF812F8695A5 +:103BB0008695837061F0813009F064CFC8019370FD +:103BC000D11002C090E080E00E94AE055BCFC8013A +:103BD0009370D11002C090E080E00E94C40552CFE3 +:103BE000802FDD2029F00E94BC070E94DA064ACF10 +:103BF0000E940107FACF812F837009F03FC0D110D6 +:103C000041CF402F429546954770440F440F802F77 +:103C10008F7090E0042E02C0880F991F0A94E2F77B +:103C200030E020E004FF09C02FE030E002C0220FA6 +:103C3000331F4A95E2F72095309516951695137027 +:103C4000123099F078F440914502509146021130BB +:103C500039F0822B932B842395230E941E0B12CFC5 +:103C6000842B952B822B932BF8CF822B932B209197 +:103C700045023091460282279327EFCF8695DD20BB +:103C800011F0812F8170882309F4FCCE402F4295DA +:103C900046954770440F440F802F8F7090E0042E9C +:103CA00002C0880F991F0A94E2F730E020E004FF79 +:103CB00009C02FE030E002C0220F331F4A95E2F71F +:103CC00020953095169516951370123099F078F46A +:103CD0004091380350913903113039F0822B932BE6 +:103CE000842395230E942D15CDCE842B952B822BDA +:103CF000932BF8CF822B932B2091380330913903EB +:103D000082279327EFCF1F70DD2029F0812F0E949B +:103D10007115802F10CF802F0E94390B812F0E94A8 +:103D20004415B0CE023F09F441C060F4003F11F1E8 +:103D3000013FA1F1DD2009F457C0C11086CE812FCB +:103D40008F7131C0033FB9F1043FA1F7DD2009F4C1 +:103D500040C01F71812F0E9471158091050382FD63 +:103D600007C0E8E01E9FC0011124836080934002D9 +:103D7000812F19C0DD2069F084E08C1508F482CE13 +:103D80001F7181E090E002C0880F991F1A95E2F739 +:103D9000B3CF95E09C1508F475CEF2CF812F8F71CB +:103DA000DD2009F4BCCF0E9471156CCE812F8F717C +:103DB000DD20C9F3B4CF90E080E0DD2009F492CF9C +:103DC0001F7181E090E002C0880F991F1A95E2F7F9 +:103DD00089CF81E00E945515F1E0FC1508F052CE24 +:103DE00082E00E9455154ECECC2059F0093309F0DF +:103DF000D9CE2FEF37EE83E0215030408040E1F7FD +:103E0000CFCE812F8F718BCF00313FE5130709F49F +:103E1000D1CA01319FE51907A9F482E0CCCA61E05B +:103E2000C7010E945B0F8C01F7018281811117CAC3 +:103E30000031FFE51F0709F4C3CA01312FE512075E +:103E400009F4C2CA0238EFE51E0709F425CB08F0D1 +:103E5000BDCA00382FE5120709F4EBCA01383FE567 +:103E6000130709F4FCCAF7018281882369F0C801AD +:103E7000815E9C45059740F46FE1600F60935002AE +:103E80008CE090E00E94852F17FF8FCBF701828195 +:103E9000882309F459C00E94DA05869581708093C1 +:103EA000E80190915002913029F4882319F089E3B8 +:103EB0000E94280D809143028093E70110924302F3 +:103EC00080915002813009F443CB882309F43CCB24 +:103ED000823009F44ACB843009F44ECB8FE39CE95D +:103EE0000197F1F700C000005801E894B7F84CE0E2 +:103EF000C42ED12CC5010C2C02C0969587950A942E +:103F0000E2F78F7096EF980F963008F43ACB805D09 +:103F10000E94A90D94E0C91AD108ECEFCE16EFEF7C +:103F2000DE0641F780915002813009F430CB8823BE +:103F300009F429CB823009F426CB843009F433CB41 +:103F40008091E70180934302F7018281882309F47D +:103F500046C0109295030230FCE51F0708F44AC0E2 +:103F600006312CE5120738F098012A5F3C452930CC +:103F7000310508F03FC00E94B40F90930503809371 +:103F8000040300313CE5130709F4F6CB08F084CBB9 +:103F900008309CE5190709F4E5CB08F053CB043051 +:103FA000FCE51F0709F4D6CB08F039CB02303CE51D +:103FB000130709F4C5CB03301C4509F4C7CB609146 +:103FC00004031091050384E090E00E94852F612F87 +:103FD00082E290E00E94852F0E94281652C9063185 +:103FE0001C45D1F58091E90181110CCC89E20E9438 +:103FF000450A03CC06312CE5120709F4EECB80917B +:10400000430282720C3C9CE5190709F4AECC08F01F +:104010002ECC063CFCE51F0709F493CC08F005CC38 +:10402000033C3CE5130709F482CC08F0EDCB023CDD +:10403000ECE51E0709F456CC0A35FDE51F0709F427 +:10404000D0CC08F0ACCC01153CE5130709F4B9CC91 +:104050000E3D1C4509F4C2CCF7018681978100977B +:1040600009F4C3CC0E9472088C01F701D280C5808C +:10407000C2943FE0C322809140028770A1F0AD2C32 +:10408000DD2091F0812F807F803421F080E2800F4D +:10409000883048F082E00E94551580914002877078 +:1040A000AA24A3948111A12C912E92942FE0922204 +:1040B000FBE0F91508F4E6CCE92DF0E0ED52F04D07 +:1040C0000C94042FCF93DF938091FB01807FA1F4A8 +:1040D0008091F801882381F080913F02D091FE0108 +:1040E0006091F6017091F701A091F901B091FA0188 +:1040F000C62FC723D81303C0DF91CF91089590E056 +:10410000109711F0CF3F19F401968770F3CF9C01FF +:1041100043E0220F331F4A95E1F7F901E150FE4FCA +:1041200041814713F1CF40814613EECF42814111C7 +:10413000EBCF438154814A1B5B0B483C510520F770 +:104140008091FB018F7080618093FB01F901EC5F2E +:10415000FD4F80818F708061808386EF91E00E94A7 +:104160000419DF91CF910C94A40AAF92BF92CF9221 +:10417000DF92EF92FF920F931F93CF93DF93CDB710 +:10418000DEB765970FB6F894DEBF0FBECDBF8C01CA +:1041900085E0F801DE01519601900D928A95E1F7D4 +:1041A000F801E28066EFA62E61E0B62E6091F9017B +:1041B0007091FA016115710509F468C19091F601D9 +:1041C0004091F701892F84238F3F09F45FC120813B +:1041D0003181C380D480F090F801F601E61BF70B23 +:1041E000FF2009F41DC18091FB01582F507FE83C4E +:1041F000F10508F0D0C0511181C0FE2C43132BC033 +:10420000921329C06091FC017091FD01F801468173 +:10421000578164177507F9F4E1101DC08F70806134 +:104220008093FB01C5010E9404198091FB01F801F4 +:1042300085838F2D65960FB6F894DEBF0FBECDBF78 +:10424000DF91CF911F910F91FF90EF90DF90CF9072 +:10425000BF90AF900895CD2829F0822F83238F3F00 +:1042600009F02FC180E0F82FF170DF2E80FF3CC0F5 +:1042700080913F024091FE01841315C0298B3A8B37 +:1042800089899A890E94210F292F22952F70223027 +:10429000F8F0243020F59F70F9F0F8019581907FB7 +:1042A000D9F4D12C1FC090E0FC0153E0EE0FFF1FAA +:1042B0005A95E1F7E150FE4F5181351306C0508108 +:1042C000251303C05281E5120FC001968770D4CF29 +:1042D0009F7011F0882329F3805E883010F3C801A5 +:1042E0000E940419FD2CA5CFEE2009F4A2CF8091E5 +:1042F000FB0181608093FB01F12C9BCF43131BC01A +:10430000921319C04091FC015091FD01F8012681E2 +:1043100037814217530779F4E1100DC08583C80136 +:104320000E94041988E0F801A6EFB1E001900D9217 +:104330008A95E1F77ECFC8010E942D0F882339F1BD +:10434000EE2029F18091FB018032A0F02091F6014E +:104350003091F7013A8729871B86DD86CC868E87C8 +:104360008091FC019091FD01988B8F87CE01099679 +:104370000E94041988E0F801A6EFB1E001900D92C7 +:104380008A95E1F70E946220FF24F39452CFC8017E +:104390000E940419F9CF51110AC086EF91E00E94E2 +:1043A000041988E0F50111928A95E9F7A5CF431326 +:1043B00018C0921316C04091FC015091FD01F80104 +:1043C000268137814217530761F4E1100AC08583C3 +:1043D000C8010E94041988E0F50111928A95E9F755 +:1043E00028CFC8010E942D0F882389F2EE2079F290 +:1043F0008091FB01803208F4BDCF2091F60130910D +:10440000F7013A8329831B82DD82CC828E838091DF +:10441000FC019091FD0198878F83CE010196A8CF72 +:10442000E83CF105C0F6FE2CEE2009F4B0CF4313B2 +:104430001FC092131DC02091FC013091FD01F801B5 +:10444000868197812817390799F49091FB0190FD97 +:1044500069CF907F09F466CF8091FB018583903FFF +:1044600009F45DCF982F907F905F8F70892B56CF86 +:10447000C8010E942D0F81117DCF8091FB018160C9 +:104480008093FB01C8010E940419D3CEEE2009F4E9 +:104490007ECFC8010E942D0FF82E882309F477CF14 +:1044A00088E0F801A6EFB1E001900D928A95E1F75E +:1044B0008091F6019091F7010E94210F0E946220E5 +:1044C000B8CE81E08E25CFCECF93DF93CDB7DEB7C8 +:1044D00060970FB6F894DEBF0FBECDBF29873A872D +:1044E0004B875C876D877E878F87988BCE01099677 +:1044F0000E94B520811112C088E0FE013996DE01CC +:10450000119601900D928A95E1F78C859D85892BF6 +:1045100029F089859A8589238F3FA9F580913F02EB +:104520009091FE0189131CC060960FB6F894DEBF0F +:104530000FBECDBFDF91CF91089593E0AA0FBB1FAF +:104540009A95E1F7A150BE4F98E0FE013196019097 +:104550000D929A95E1F78093FE010E94A40ADECFA6 +:10456000B8E08B9FC001112481509E4F0E94B5205E +:104570008823D1F280913F0290E0019687709927BD +:1045800080933F02CBCFA091FE01B0E0CD01019618 +:104590008770992720913F022817190671F60E940B +:1045A00028161092FE0110923F0288E0E6EFF1E03B +:1045B000DF011D928A95E9F7B1CF0F931F93CF9337 +:1045C000DF9380918C02E0918B02CCE081111AC0C4 +:1045D000DF91CF911F910F910895D1E0DE0FD0931D +:1045E0008B020E2F10E0EC9FF0011124E357FD4FDA +:1045F00083819481892B29F08081918189238F3F48 +:1046000051F4ED2F80918C02E81738F310928C0250 +:1046100010928B02DDCFC09FD001C19FB00D11243D +:10462000A357BD4F16968D919C911797892B29F40E +:1046300018968D919C91019651F42081318142818F +:10464000538164817581868197810E946422C09F15 +:10465000F001C19FF00D1124E357FD4F1482138226 +:10466000D0CF1092F8021092F7021092420180917E +:10467000F6028093F5020E9414060C94DD222F921C +:104680003F924F925F926F927F928F929F92AF92E2 +:10469000BF92CF92DF92EF92FF920F931F93CF932F +:1046A000DF93C091F502E7E0FE2E01E010E0FCE0B0 +:1046B0002F2EAEEFEA2E8091F6028C1316C00E94C8 +:1046C000DD22DF91CF911F910F91FF90EF90DF904E +:1046D000CF90BF90AF909F908F907F906F905F90A2 +:1046E0004F903F902F900C941406D0E0FE01EE0FF7 +:1046F000FF1FE351FD4F80819181F89EF001F99EEB +:10470000F00D1124E85EFE4F2481211158C0309035 +:104710008C02ADE8B2E030E020E0412C5F012315CF +:1047200008F04BC01A966D907C901B97F501808025 +:1047300091804FEF5FEF512CC52CD12CF601EE0F7D +:10474000FF1FE80DF91D659174916616770609F44F +:10475000A601672B11F05394EFCF4F3F5407B1F1EF +:10476000B80102C0660F771F4A95E2F7462AA801F2 +:1047700002C0440F551F5A94E2F7415051094416A4 +:10478000150601F5229EF001239EF00D1124E3573A +:10479000FD4FF89ED001F99EB00D1124A85EBE4FCA +:1047A00012962D913C91139737832683E082E18204 +:1047B0009187808771E015967C930E94E60521968B +:1047C000C37079CF14961C921E9213972F5F3F4FA0 +:1047D0001C96A5CF9F92AF92BF92CF92DF92EF929D +:1047E000FF920F931F93CF93DF9300D000D000D0A0 +:1047F000CDB7DEB78E010F5F1F4F86E0F801119233 +:104800008A95E9F785E7C82E81E0D82EF12CE12CB6 +:10481000AA24A394B12CF60181916F018F3F09F472 +:1048200049C0F894E82FE295EF70F0E021A18F7075 +:10483000A50102C0440F551F8A95E2F7CA01922FC5 +:10484000982B91A392A18095892382A3789400C08C +:10485000EBE7F1E030E020E0912C41914F3F09F48B +:1048600073C0A42FA295AF70B0E090968C9190E0A9 +:104870004F7002C0959587954A95E2F780FD64C018 +:104880008A2D022E01C0880F0A94EAF7982A2F5F1A +:104890003F4F2430310509F7F601319780818F3F72 +:1048A00011F00E94180850EA5A95F1F7F801EE0D40 +:1048B000FF1D90828FEFE81AF80AE6E0EE16F10489 +:1048C00009F0A9CF46E050E0B80184E592E00E94EB +:1048D000642FFF24F394009709F4F12C892BB1F194 +:1048E00086E0F801A4E5B2E001900D928A95E1F727 +:1048F00081E0809349020E94A20590934802809330 +:10490000470280914702909148020E9493050597C3 +:1049100008F1809154028093670280915502809340 +:1049200068028091560280936902809157028093B9 +:104930006A028091580280936B02809159028093A1 +:104940006C021092490206C080E0A0CF809149021B +:104950008111D7CF80914201882301F18091F70224 +:104960009091F8020097D1F00E949305209189025E +:1049700030918A022817390788F49091F5028091C6 +:10498000F602981709F445C00E943F2310928A024C +:10499000109289021092F8021092F70280914F0251 +:1049A000882371F080914D0290914E020E949305F0 +:1049B000893E934028F082EE0E944E0B10924F02E7 +:1049C00080914C02882391F080914A0290914B0291 +:1049D0000E949305883E934048F00E94A205909360 +:1049E0004B0280934A0283E70E94280D8F2D269662 +:1049F0000FB6F894DEBF0FBECDBFDF91CF911F91F0 +:104A00000F91FF90EF90DF90CF90BF90AF909F906D +:104A100008950E94DD221092F8021092F7020E947F +:104A20001406BCCF2F923F924F925F926F927F926B +:104A30008F929F92AF92BF92CF92DF92EF92FF92AE +:104A40000F931F93CF93DF93CDB7DEB769970FB660 +:104A5000F894DEBF0FBECDBF498B5A8B6B8B7C8B1E +:104A60008D8B6111109242021D861E861F86188A48 +:104A700085E0FE017196DE01199601900D928A95EE +:104A8000E1F78C859D85892B31F089859A8589236D +:104A90008F3F09F0D4C129853A854B855C856D85AA +:104AA0007E858F8598890E946422C3C028EFC21634 +:104AB0002CE5D20629F4882379F00E943123EBCF2C +:104AC00039EFC3163CE5D30639F4882329F08091E9 +:104AD00042018111F2CFC3C108E111E0E12CB12CF8 +:104AE000A12C88248394912C9EEF592E4424439426 +:104AF000F8016081718166246A94762C20E0422F4F +:104B000050E0FA01EE0FFF1FE60FF71F8591949119 +:104B1000C816D90609F43A01892B11F02F5FEFCF9F +:104B2000F12CFFEF6F167F0609F445C0F8014481B0 +:104B3000F09042018F2D411180E0F82FF170FF2E8F +:104B4000F801258086819B85992309F408C1FF20FF +:104B500009F405C1211014C0A40101C0440F6A94D6 +:104B6000EAF7842B86838091890290918A028039AA +:104B7000914030F440E951E050938A024093890219 +:104B8000C40102C0880F991F2A95E2F70197F80126 +:104B900026812817190679F48091F7029091F8027E +:104BA000009709F45FC00E9493058139914008F491 +:104BB00059C0F8014482EF28FFEFAF1ABF0A095F1E +:104BC0001F4F26E0A216B10409F092CF8B858823EF +:104BD00009F420C1EE2009F41DC10E94A2059093A2 +:104BE000F8028093F70280918C02883010F591E0F2 +:104BF000980F90938C0298E0FE013996DE01119691 +:104C000001900D929A95E1F73CE0839FC001112439 +:104C100083579D4F28E0FE013196DC0101900D92F3 +:104C20002A95E1F72FEF3FEFFC0131872087D386EC +:104C3000C28669960FB6F894DEBF0FBECDBFDF9176 +:104C4000CF911F910F91FF90EF90DF90CF90BF9089 +:104C5000AF909F908F907F906F905F904F903F901C +:104C60002F9008958091F5026090F602982FF0E061 +:104C7000E0E0861114C09093F5020E171F0709F4A7 +:104C80009ACF90E0FC01EE0FFF1FE351FD4FB18280 +:104C9000A0820196837099278093F6028CCF282EEC +:104CA000312CF101EE0FFF1FE351FD4F20813181C7 +:104CB000F7E0F29FD001F39FB00D1124A85EBE4F24 +:104CC0002D913C911197398F288F712C60E070E005 +:104CD000E72FF0E0EE0FFF1F288D398DE20FF31F55 +:104CE0002591349121153105E1F0F8010190F08111 +:104CF000E02DFF8BEE8B60E005C02417350709F42B +:104D00007F2C6F5FE62FF0E0EE0FFF1F4E895F896B +:104D1000E40FF51F459154914115510571F77F5FDF +:104D2000D7CF7720C9F0F801671708F0FD0144825A +:104D30000E171F0721F49093F502F72C3CCF981320 +:104D400005C0AE17BF0711F49F5F937091012F5FED +:104D50003F4F822F83708DCFF0E0E0E0F7CF90E0FF +:104D600021101FC0B40102C0660F771F2A95E2F719 +:104D70009B01215031092817390731F4442309F4E4 +:104D800047C0C5010E94E605C40101C0880F6A94AE +:104D9000EAF7982F9095F801868189238683F22C73 +:104DA0000ACF9C01062C02C0359527950A94E2F79C +:104DB000A90141705527BC016150710986239723D1 +:104DC000892B11F5452B01F1F80182819381892B03 +:104DD000C1F01B821C821D821E8259825A820E944F +:104DE000A2058160582F9D838C83F8018281938175 +:104DF0008F83988729813A814B816D817E810E94C2 +:104E00006422F8011582C0CFF22FF1702F2EBCCF93 +:104E10002F2CBACF9091F5028091F602981731F0BD +:104E20000E943F23EE2009F436CE03CF0E94DD22FC +:104E30001092F8021092F7020E941406F3CF61E07C +:104E4000CE0109960E945B0F6C018B85F7EFCF16A0 +:104E5000FCE5DF0609F02ACE882309F43DCE81E087 +:104E60008093420118CE1F920F920FB60F92112419 +:104E70002F933F934F935F936F937F938F939F9362 +:104E8000AF93BF93CF93DF93EF93FF93D091E9005C +:104E9000DF708091EC00C82FC17080FDC0E81092D7 +:104EA000E9008091F000877F8093F00078940E9461 +:104EB0003D161092E9008091F00088608093F00028 +:104EC000CD2BCF70C093E900FF91EF91DF91CF918F +:104ED000BF91AF919F918F917F916F915F914F9112 +:104EE0003F912F910F900FBE0F901F9018951F921A +:104EF0000F920FB60F9211242F933F934F935F930E +:104F00006F937F938F939F93AF93BF93EF93FF9391 +:104F10008091E10082FF09C08091E20082FF05C01C +:104F20008091E1008B7F8093E1008091DA0080FF27 +:104F300024C08091D80080FF20C08091DA008E7F4D +:104F40008093DA008091D90080FF9BC080E189BD09 +:104F500082E189BD09B400FEFDCF81E080932E037C +:104F600080910903811109C00E9406040E94D104A6 +:104F70008091E20084608093E2008091E10080FFF4 +:104F800017C08091E20080FF13C08091E2008E7F05 +:104F90008093E2008091E20080618093E200809142 +:104FA000D80080628093D80019BC85E080932E03DE +:104FB0008091E10084FF29C08091E20084FF25C038 +:104FC00080E189BD82E189BD89B5982F917080FF0C +:104FD000FBCF8091D8008F7D8093D8008091E10035 +:104FE0008F7E8093E1008091E2008F7E8093E200CB +:104FF0008091E20081608093E20080912F038823FA +:1050000009F445C084E080932E038091E10083FF82 +:1050100027C08091E20083FF23C08091E100877F59 +:105020008093E10082E080932E0310922F03809101 +:10503000E1008E7F8093E1008091E2008E7F80937B +:10504000E2008091E20080618093E20042E060E053 +:1050500080E00E949F048091F00088608093F000BF +:10506000FF91EF91BF91AF919F918F917F916F9140 +:105070005F914F913F912F910F900FBE0F901F9016 +:10508000189519BC10922E031092090376CF8091C7 +:10509000E30087FD93E090932E03B7CF78941F929F +:1050A0001FB61F9211248F939F93AF93BF9380914C +:1050B000000390910103A0910203B09103030196B4 +:1050C000A11DB11D8093000390930103A0930203DF +:1050D000B0930303BF91AF919F918F911F901FBE1B +:1050E0001F9018951F921FB61F9211248F939F93A4 +:1050F000AF93BF938091FF02811113C08091000391 +:1051000090910103A0910203B09103034196A11D68 +:10511000B11D8093000390930103A0930203B09309 +:105120000303BF91AF919F918F911F901FBE1F905E +:105130001895CDB7DEB7EE970FB6F894DEBF0FBE69 +:10514000CDBF84B7877F84BF0FB6F894A8958091B0 +:105150006000886180936000109260000FBE80E85C +:1051600090E00FB6F89480936100909361000FBEB9 +:1051700085B7806885BF85B7806885BF86E198E080 +:105180009093C5018093C4010E9406040E94D1043B +:105190008091E20084608093E200789480912E03F5 +:1051A0008823A1F01091E9001F709091EC00892FE5 +:1051B000817090FD80E8182B1092E9008091E80042 +:1051C00083FD0E943D161F701093E90082E084BDAC +:1051D00093E095BD9AEF97BD80936E000E949B0F60 +:1051E000811102C00E94890E05E711E02BE7C22E53 +:1051F00021E0D22EF80181918F018F3F11F00E94A2 +:105200001808C016D106B1F786EF0E94180887EF7C +:105210000E94180883E90E94180886E90E9418086D +:10522000E4E5F2E08AE592E0A7E6B2E011921D9291 +:105230008E179F07D9F70E941D16811102C00E9488 +:10524000B11582E090E00E94712F809360020E946D +:10525000B40F90930503809304030E94EA238FE325 +:105260009CE90197F1F700C000000E94EA238091B9 +:10527000670280FF08C06FEF7FEF90E080E00E9440 +:10528000A32F0E944F0C83E090E00E94712F90E0CA +:105290000E941E0B80913803909139030E9489145B +:1052A000509A589A559A5D9A549A5C9A8CE090E07C +:1052B0000E94712F90E0B0E0A0E0809350029093A4 +:1052C0005102A0935202B093530280915A0281116D +:1052D00033C00E941D16811104C00E94B1150E94A6 +:1052E000A11588E090E00E94792F60938E0370935F +:1052F0008F0380939003909391036E7F71F40E94CB +:10530000A11588E090E00E94792F60938E0370933E +:105310008F0380939003909391030E942B06109229 +:10532000840280918E0380FF04C060E086950E9415 +:105330002A1481E080935A025198599A52985A9AA5 +:1053400089B1869581704A9928C290E0892B809313 +:105350005E028AEC92E090937C0280937B0260E094 +:1053600081E20E942A1481E090E00E942D1580E0E5 +:1053700091E09093FC028093FB0218E1C12ED12CA6 +:1053800000E4A02E87E692E096E0B92EB80E809158 +:105390002E039924939400E112E1853009F451C25F +:1053A0000E94EA23882359F08FB7F89440910003B4 +:1053B0005091010360910203709103038FBFE1E6F6 +:1053C000F2E0A7E6B2E010E000E0302F8D9191917D +:1053D000981709F45FC2292F282790E09924939405 +:1053E000422F492109F451C29DAB3EAB892191E086 +:1053F00009F490E09FAB0E94A2058160782F99AFDD +:1054000088AF4DA95EA96FA989AD0E941225F80148 +:10541000EF59FD4F808198269082809184028823E5 +:10542000D1F180918302E0918E03E695E81BE09331 +:105430007F02823009F045C2F0E0EC51FD4FE4916B +:105440000E2F10E0BBE08B2EB3E19B2E80918002EB +:10545000882361F0109280020E94A20590937E0240 +:1054600080937D0210928202109281020E94A20516 +:10547000E0917D02F0917E028E1B9F0B8F3F9F4734 +:1054800050F4E00FF11FF0937E02E0937D028DE770 +:1054900092E0F4010995E0915E02EE0FEE0FE093C9 +:1054A0005E0289B181FBEE24E0F84A9964C280E093 +:1054B0008E29E82BE0935E02EF70F0E0E158FE4F9A +:1054C000808190915D02890F80935D0220E084309D +:1054D00034F180915C028F5F80935C0212E018AB24 +:1054E00019AA81E08AAB0E94A2058160782F9CAB4B +:1054F0008BAB48A959A96AA98CA90E9412251BA7A0 +:105500001CA61DA60E94A2058160782F9FA78EA7CA +:105510004BA55CA56DA58FA50E94122521E0809169 +:105520005D028D3F2CF580915C02815080935C027E +:105530001EA21FA281E088A70E94A2058160782F89 +:105540009AA789A74EA15FA168A58AA50E941225E6 +:1055500019A21AA21BA20E94A2058160782F9DA306 +:105560008CA349A15AA16BA18DA10E94122521E013 +:1055700080915D02082E000C990B64E070E00E949F +:10558000CE2E80935D02222359F08FB7F89440917C +:1055900000035091010360910203709103038FBFD8 +:1055A00086E0E4E7F2E0DE01119601900D928A9523 +:1055B000E1F7909076028090770210917802009146 +:1055C000790210927602109277021092780210926D +:1055D0007902892D882909F448C08091720290913E +:1055E00073020E9493059C0190916E02992309F425 +:1055F000AEC323333105C8F19F3F19F09F5F9093ED +:105600006E02992059F00E949C079FEF19140CF428 +:1056100091E0899F802D112480937602882059F093 +:105620000E949C079FEF18140CF491E0899F802D35 +:10563000112480937702309176023323B1F02091C8 +:105640007702222391F045EB3403C0011124992302 +:1056500009F494C19093760245EB24039001112440 +:10566000332309F48FC130937702812F802B09F403 +:1056700048C080917002909171020E9493059C0134 +:1056800090916D02992309F45DC325363105C8F167 +:105690009F3F19F09F5F90936D02112359F00E9474 +:1056A0007A079FEF11160CF491E0899F802D112449 +:1056B00080937802002359F00E947A079FEF10161A +:1056C0000CF491E0899F802D112480937902309110 +:1056D00078023323B1F020917902222391F045EB37 +:1056E0003403C0011124992309F450C19093780226 +:1056F00045EB240390011124332309F44BC130936B +:1057000079028091760290917702892B90917802AC +:10571000892B90917902892B11F00E94DA0686E09C +:10572000FE013196A4E7B2E001900D928A95E1F76F +:105730000E94DA0590915F02891731F00E94DA0524 +:1057400080935F020E94AB0B80912E03843009F09E +:105750001ECE83E08093E9008091E80082FF17CE9F +:105760008091E80090E085FF06C00E942504882310 +:1057700009F414C191E08091E8008B778093E800F0 +:10578000992309F404CEE981E150E33108F088C19E +:10579000F0E0E152F04D0C94042F92E0D7CD8091CF +:1057A0002E03843009F440C080E00E94AB0B1092BD +:1057B000840280917A02811116C090927A028091BF +:1057C0008E03982F917090935B028E7F80938E034F +:1057D0009FEFE0E7F2E09150E040F040E1F700C0D9 +:1057E00000000E94D80F1092FF020FB6F894A895FF +:1057F000C09260000FBEA092600083B7817F84607A +:1058000083BF83B7816083BF7894889583B78E7F89 +:1058100083BF0FB6F894A89580916000886180934B +:105820006000109260000FBE80912D03882349F024 +:105830000E94EA23E7E6F2E08191811164C2BE1280 +:10584000FBCF80912E03853009F4A9CF0E94281642 +:105850000E94DA050E94AB0B10927A0280915B02E3 +:10586000882361F080918E03816080938E0360E0D5 +:1058700086950E942A140E94C20F92CD80918502C3 +:105880008823C9F30E94D80FF6CF9F5F990C9430FC +:1058900009F0A6CD0F5F1F4F0630110509F095CD19 +:1058A0008FEF8AAF8BAF1CAE0E94A2058160782F6C +:1058B0009EAF8DAF4AAD5BAD6CAD8EAD0E94122533 +:1058C000ACCD863059F4F0E0EF51FD4FE4910E2F4E +:1058D00010E0ABEF8A2EA2E19A2EB8CD893061F4A8 +:1058E000E695F0E0E252FD4FE4910E2F10E0F7E66E +:1058F0008F2EF2E19F2EAACD8F3061F4E695F0E075 +:10590000E552FD4FE4910E2F10E0E9EF8E2EE1E11C +:105910009E2E9CCD853159F4F0E0E852FD4FE49184 +:105920000E2F10E07BEA872E71E1972E8FCD08E2D3 +:1059300010E042E2842E41E1942E883109F486CDB4 +:10594000833249F4E6EDF2E00591149162EA862E85 +:1059500062E1962E7BCD04EF11E059EE852E50E1E9 +:10596000952E843209F472CD00ED17E03AE2832ED1 +:1059700036E0932E6BCD82E090E09ACD81E080936B +:1059800076026ACE81E0809377026FCE81E08093C9 +:105990007802AECE81E080937902B3CE00E210E0CF +:1059A000CE0101964C018091E80085FD0AC08091EE +:1059B000E8008B778093E8000E942504882399F300 +:1059C000D9CE8091F100F40181934F01015011096A +:1059D00051F7D0CE1A8289E08B832DC08A81823024 +:1059E00009F4A7C18330A9F0813009F059C02FB75D +:1059F000F8946091000370910103809102039091EB +:105A000003032FBF0E940A2F6B837C838D839E83A9 +:105A100012C0809167028B83809168028C83809191 +:105A200069028D8380916A028E8380916B028F83DD +:105A300080916C02888780912E03843009F0A7CC76 +:105A40001091E9001F709091EC00892F817090FDFA +:105A500080E8182B82E08093E9008091E80080FFC5 +:105A60000DC050E040E060E270E0CE0101960E947F +:105A700056048091E8008E778093E8001F701093A1 +:105A8000E90085CC8A81823059F46B817C818D81DB +:105A90009E810E940A2F86E290E00E94852FCBCF44 +:105AA0008FEF8983C8CF4C816B818A810E94B20EAF +:105AB0009827892798279E838D83BDCF8D809E80D0 +:105AC0009824892498248A810B81F8E00F9F800113 +:105AD000112420E3829F000D111D11248C8190E080 +:105AE000880F991F080F191F692DC80187960E94FA +:105AF000852F682DC8018896D0CF0E941F0E9BCF9E +:105B00008A818138C1F060F4803809F094CF20E0B8 +:105B10004B816091900380918F030E9431138BCF52 +:105B2000823859F1833809F086CF20E04091910303 +:105B30006C818B81F2CF60E08B810E942A149B8163 +:105B400080918E03911111C08E7F80938E031092ED +:105B500084024FEF80E792E0415080409040E1F7AF +:105B600000C000000E94D80F66CF816080938E0332 +:105B700060E086950E942A145ECF8B818093920309 +:105B80005ACF8A81813899F030F4803809F053CFA8 +:105B90008091910321CF823891F0833809F04BCF67 +:105BA00080918F038B83809190038C8344CF80916D +:105BB0008E0380FF02C086950FCF80E00DCF8091CD +:105BC00092030ACF60918E0370918F0380919003AE +:105BD000909191030E941F132ECF80E18A832BCFD7 +:105BE00081E08A8389EFF8CE0A811B811027012783 +:105BF0001027FE0131963F018C80CF01880D911D49 +:105C00004C01C801895F9D4F8614970409F413CF96 +:105C1000093FE1E01E0750F40E94712FF3018483D5 +:105C20000F5F1F4FFFEF6F1A7F0AEBCFF301148254 +:105C3000F7CF0A811B81102701271027CE0101967B +:105C40003C018C80800E912E911CC801895F9D4F74 +:105C50008016910609F4EFCE093FE1E01E0720F41B +:105C6000F30164810E94852FFFEF6F1A7F0A0F5F97 +:105C70001F4FEBCF0E940F0EDECE8AE0AFCF0A811E +:105C80001B81102701271027CE0101963C018C8033 +:105C9000FC01E80DF11D4F01C80187968614970499 +:105CA00009F4C9CE003EF1E01F0750F40E94712FA5 +:105CB000F30184830F5F1F4FFFEF6F1A7F0AECCF52 +:105CC000F3011482F7CF0A811B81102701271027C7 +:105CD000CE0101963C018C80800E912E911CC80152 +:105CE00087968016910609F4A6CE003EE1E01E07D5 +:105CF00020F4F30164810E94852FFFEF6F1A7F0A61 +:105D00000F5F1F4FECCF09BD19BD09B400FEFDCFD9 +:105D10008091D8008F7D8093D8008091E0008260D0 +:105D20008093E0008091E00081FDFCCF0E94281666 +:105D300088CD86E290E00E94712F1B821C821D821A +:105D40008E8379CE2D32314008F0A4CCDACC2D32BE +:105D5000314008F053CC89CC87FB082E062687FDFE +:105D6000819567FD61950E94422F0EF4919507FC85 +:105D700081950895AA1BBB1B51E107C0AA1FBB1F39 +:105D8000A617B70710F0A61BB70B881F991F5A95C7 +:105D9000A9F780959095BC01CD01089597FB072E3A +:105DA00016F4009407D077FD09D00E94BA2E07FCA4 +:105DB00005D03EF4909581959F4F0895709561951B +:105DC0007F4F0895A1E21A2EAA1BBB1BFD010DC037 +:105DD000AA1FBB1FEE1FFF1FA217B307E407F5079B +:105DE00020F0A21BB30BE40BF50B661F771F881F77 +:105DF000991F1A9469F760957095809590959B010D +:105E0000AC01BD01CF010895EE0FFF1F0590F49185 +:105E1000E02D09946927962769277827872778270F +:105E200008950E94192F332312F48A1B9B0B0C94A4 +:105E30002A2FA29FB001B39FC001A39F700D811DA7 +:105E40001124911DB29F700D811D1124911D089583 +:105E50000E94192FB7FF0895821B930B08950E948B +:105E6000192FA59F900DB49F900DA49F800D911D9B +:105E700011240895B7FF0C942F2F0E942F2F821BFF +:105E8000930B0895991B79E004C0991F961708F0A9 +:105E9000961B881F7A95C9F780950895FB01DC0150 +:105EA00002C005900D9241505040D8F70895FC0172 +:105EB0004150504030F001900616D1F73197CF0194 +:105EC0000895882799270895FB01DC0104C08D916E +:105ED0000190801921F441505040C8F7881B990B5C +:105EE0000895F999FECF92BD81BDF89A992780B5A2 +:105EF0000895A6E1B0E044E050E00C94AB2FA8E197 +:105F0000B0E042E050E00C94AB2F262FF999FECF81 +:105F100092BD81BDF89A019700B4021639F01FBAFC +:105F200020BD0FB6F894FA9AF99A0FBE0895039619 +:105F3000272F0E94862F0E94852F252F0E94862FB3 +:105F4000242F0C94862F0196272F0E94862F0C94C5 +:105F5000852FDC01CB01FC01F999FECF06C0F2BD13 +:105F6000E1BDF89A319600B40D9241505040B8F717 +:105F70000895F894FFCF460F460F4F0F4F0F510F64 +:105F80004F0F4F0F4F0F460F460F560F4F0F4F0F2C +:105F9000560F22174A179D174A179D177D17B517D9 +:105FA0009D17B218BF180C1D0C1D7B1D7B1DD61D27 +:105FB000F01D421D421DFB1D831E921E921EEA2CE7 +:105FC000EE2C422D532D5E2D7D2D802DC12DE22DE9 +:105FD000502D502DED2DF02DF42D192E3A2E3D2E55 +:045FE0003F2E632EBF +:105FE40090050F0CEE0BEA0BE60B01191A1B1C1D96 +:105FF4001E1F202122010201FC002A00000000F6DD +:10600400004C00000000F0005000000000EA0051C5 +:1060140000000000E4004F00000000DE0052000019 +:1060240000000101818283E200E900EA00B500B6C4 +:1060340000B700CD008301CC008A019201940121B4 +:1060440002230224022502260227022A02B300B4F4 +:10605400006F007000F03435366667F6F7939600EB +:10606400FF0100010000FFFF0000010001FF00002C +:1060740001020202020606060909090909090F0FAD +:106084000F0F0F0F151515181919191919191919B1 +:10609400191923244022B6DA01B8010201FB0614BF +:0460A40007340700B6 :00000001FF From 3d7d8742a058852b4b47cd88e6dd747efdec977a Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 13 Sep 2021 20:34:50 -0400 Subject: [PATCH 19/94] Commented out combo code as it is not used --- keyboards/solartempest/sofle/keymaps/via/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index a61dfcd01236..96bb58e2b25e 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -56,7 +56,7 @@ static uint16_t held_shift = 0; #endif -#ifdef COMBO_ENABLE //(+42 firmware size for this combo). SBS takes care of this combo, so it is an example only and can be replaced with others as required. +/*#ifdef COMBO_ENABLE //(+42 firmware size for this combo). SBS takes care of this combo, so it is an example only and can be replaced with others as required. enum combo_events { sbs_delword }; @@ -75,7 +75,7 @@ static uint16_t held_shift = 0; break; } } -#endif +#endif*/ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these layouts to save space when using only VIA. From 00073c93b3263b31012497daabf099d39d31604a Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Tue, 14 Sep 2021 13:23:43 -0400 Subject: [PATCH 20/94] Added another VIA layer. --- keyboards/solartempest/sofle/config.h | 2 +- .../solartempest/sofle/keymaps/via/bongocat.c | 5 +- .../solartempest/sofle/keymaps/via/config.h | 2 +- .../solartempest/sofle/keymaps/via/keymap.c | 24 +- .../solartempest/sofle/keymaps/via/luna.c | 5 +- .../solartempest/sofle/keymaps/via/oled.c | 6 +- .../solartempest/sofle/keymaps/via/snakey.c | 5 +- keyboards/solartempest/sofle/readme.md | 8 +- .../solartempest/sofle/sofle VIA layout.json | 96 +- .../sofle/solartempest_sofle_via.hex | 3551 +++++++++-------- 10 files changed, 1892 insertions(+), 1812 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index f1875bf6a79f..72b2962c3db4 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -89,8 +89,8 @@ #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Firmware size (+262) #define RGBLIGHT_LIMIT_VAL 160 //Power draw may exceed 0.6A at max brightness with white colour. #define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #define RGBLIGHT_SLEEP +//#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF //Shows lock key lighting status even when RGB is off //RGB LED Conversion macro from physical array to electric array (+146 to firmware size) diff --git a/keyboards/solartempest/sofle/keymaps/via/bongocat.c b/keyboards/solartempest/sofle/keymaps/via/bongocat.c index 0a60f6bee0e5..73ded11b4a76 100644 --- a/keyboards/solartempest/sofle/keymaps/via/bongocat.c +++ b/keyboards/solartempest/sofle/keymaps/via/bongocat.c @@ -36,15 +36,16 @@ static void print_status_narrow(void) { oled_set_cursor(0,3); switch (get_highest_layer(layer_state)) { case 0: + case 2: oled_write("Base ", false); break; case 1: oled_write("Game ", false); break; - case 3: + case 4: oled_write("Raise", false); break; - case 2: + case 3: oled_write("Lower", false); break; } diff --git a/keyboards/solartempest/sofle/keymaps/via/config.h b/keyboards/solartempest/sofle/keymaps/via/config.h index 8970276c8774..d9c79020c416 100644 --- a/keyboards/solartempest/sofle/keymaps/via/config.h +++ b/keyboards/solartempest/sofle/keymaps/via/config.h @@ -19,4 +19,4 @@ #pragma once // Set number of layers for VIA, each is 30 bytes -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 96bb58e2b25e..dcaefa44fe92 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -274,10 +274,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef RGBLIGHT_ENABLE // RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); //Red-orange (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Change range for multiple keys with same colour) + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Change range for multiple keys with same colour + const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); //Change range for multiple keys with same colour + const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Change range for multiple keys with same colour + const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Change range for multiple keys with same colour + const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Change range for multiple keys with same colour const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication (No dedicated LED) const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication (No dedicated LED). Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication (No dedicated LED) @@ -286,6 +287,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { my_layer1_layer, my_layer2_layer, my_layer3_layer, + my_layer4_layer, my_capslock_layer, //Highest status indicators override other layers my_numlock_layer, my_scrollock_layer @@ -296,7 +298,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { { rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated + //layer_move(0); //start on layer 0 to get the lighting activated in all cases } @@ -306,6 +308,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_set_layer_state(1, layer_state_cmp(state, 1)); rgblight_set_layer_state(2, layer_state_cmp(state, 2)); rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4)); switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: @@ -315,9 +318,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_sethsv_noeeprom(252,255,80); break; case 2: - rgblight_sethsv_noeeprom(118,255,80); + rgblight_sethsv_noeeprom(80,255,80); break; case 3: + rgblight_sethsv_noeeprom(118,255,80); + break; + case 4: rgblight_sethsv_noeeprom(218,255,80); } return state; @@ -326,9 +332,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool led_update_user(led_t led_state) { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + rgblight_set_layer_state(5, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(6, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(7, led_state.scroll_lock); //Activate scrollock lighting layer return true; } #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/luna.c b/keyboards/solartempest/sofle/keymaps/via/luna.c index 46721a60e743..a18a7889e8c5 100644 --- a/keyboards/solartempest/sofle/keymaps/via/luna.c +++ b/keyboards/solartempest/sofle/keymaps/via/luna.c @@ -252,15 +252,16 @@ oled_set_cursor(0,3); switch (get_highest_layer(layer_state)) { case 0: + case 2: oled_write("Base ", false); break; case 1: oled_write("Game ", false); break; - case 3: + case 4: oled_write("Raise", false); break; - case 2: + case 3: oled_write("Lower", false); break; } diff --git a/keyboards/solartempest/sofle/keymaps/via/oled.c b/keyboards/solartempest/sofle/keymaps/via/oled.c index 415a82f13d08..190477ab5cca 100644 --- a/keyboards/solartempest/sofle/keymaps/via/oled.c +++ b/keyboards/solartempest/sofle/keymaps/via/oled.c @@ -48,13 +48,13 @@ oled_write_ln_P(PSTR("LAYER"), false); switch (get_highest_layer(layer_state)) { case 0: - case 1: + case 2: oled_write_P(PSTR("Base\n"), false); break; - case 2: + case 3: oled_write_P(PSTR("Raise"), false); break; - case 3: + case 4: oled_write_P(PSTR("Lower"), false); break; default: diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index 76b292887ebf..642f6adec6fa 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -265,15 +265,16 @@ oled_set_cursor(0,3); switch (get_highest_layer(layer_state)) { case 0: + case 2: oled_write("Base ", false); break; case 1: oled_write("Game ", false); break; - case 3: + case 4: oled_write("Raise", false); break; - case 2: + case 3: oled_write("Lower", false); break; } diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 1593b040f746..42a25fa17a43 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -61,16 +61,14 @@ qmk compile -kb solartempest/sofle -km via ## Flashing -Flash using the correct command below (or use QMK Toolbox like me): +Flash using the correct command below or use QMK Toolbox. Specifying side during compile is unnecessary as Master Left is defined: ```sh # for pro micro-based builds -qmk flash -kb solartempest/sofle -km via -bl avrdude-split-left -qmk flash -kb solartempest/sofle -km via -bl avrdude-split-right +qmk flash -kb solartempest/sofle -km via # for Elite C or dfu bootloader builds -qmk flash -kb solartempest/sofle -km via -bl dfu-split-left -qmk flash -kb solartempest/sofle -km via -bl dfu-split-right +qmk flash -kb solartempest/sofle -km via ``` These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. diff --git a/keyboards/solartempest/sofle/sofle VIA layout.json b/keyboards/solartempest/sofle/sofle VIA layout.json index 42db09c8d317..12f50ce6f43a 100644 --- a/keyboards/solartempest/sofle/sofle VIA layout.json +++ b/keyboards/solartempest/sofle/sofle VIA layout.json @@ -36,7 +36,7 @@ "KC_LGUI", "KC_LALT", "KC_LCTL", - "TT(2)", + "TT(3)", "KC_ENT", "KC_LALT", "KC_MINS", @@ -67,10 +67,10 @@ "KC_M", "KC_N", "KC_PGDN", - "TG(1)", + "TO(1)", "KC_RALT", "KC_RCTL", - "TT(3)", + "TT(4)", "KC_SPC", "C(KC_W)", "KC_N" @@ -139,14 +139,86 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "MO(3)", - "KC_TRNS", + "TO(0)", + "KC_RALT", + "KC_RCTL", + "MO(2)", + "KC_ENT", "KC_TRNS", "KC_NO" ], + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_NO", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_VOLU", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_F", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_VOLD", + "KC_MUTE", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "TT(2)", + "KC_SPC", + "KC_LALT", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_0", + "USER04", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_PGUP", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_NO", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_PGDN", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "TT(3)", + "KC_ENT", + "C(KC_W)", + "KC_N" + ], [ "KC_GRV", "KC_F1", @@ -220,9 +292,9 @@ "KC_NO" ], [ - "USER03", - "C(KC_PPLS)", + "KC_TRNS", "C(KC_MINS)", + "C(KC_PPLS)", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -255,7 +327,7 @@ "KC_MYCM", "KC_TRNS", "KC_NO", - "USER02", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -279,7 +351,7 @@ "KC_TRNS", "KC_SLCK", "KC_PGDN", - "KC_TRNS", + "S(LWIN(SWIN(KC_S)))", "KC_PGUP", "KC_CAPS", "USER02", diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 4d6ed674c042..ace3db77edbb 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,204 +1,204 @@ -:100000000C94DE060C9425070C9425070C94003004 -:100010000C9425070C9425070C9425070C942507B0 -:100020000C9425070C9425070C94EB190C94A71934 -:100030000C9453260C9425070C9425070C94250743 -:100040000C9425070C9425070C9425070C94250780 -:100050000C9425070C94C21A0C9425070C942507C0 -:100060000C9425070C9425070C9425070C94250760 -:100070000C9425070C9425070C9425070C94250750 -:100080000C9425070C9425070C9425070C94250740 -:100090000C9425070C9425070C9425070C94250730 -:1000A0000C9425070C9425070C94250737032B6423 +:100000000C94E4060C942B070C942B070C940A30E8 +:100010000C942B070C942B070C942B070C942B0798 +:100020000C942B070C942B070C94F9190C94B5190C +:100030000C9461260C942B070C942B070C942B0723 +:100040000C942B070C942B070C942B070C942B0768 +:100050000C942B070C94D01A0C942B070C942B07A0 +:100060000C942B070C942B070C942B070C942B0748 +:100070000C942B070C942B070C942B070C942B0738 +:100080000C942B070C942B070C942B070C942B0728 +:100090000C942B070C942B070C942B070C942B0718 +:1000A0000C942B070C942B070C942B0737032B6411 :1000B000AAFF000000001C032B64AAFF0000000040 :1000C00004032B64AAFF000000000000D7FF78FFA4 :1000D00000000000000080FF64FF0000000000003E -:1000E000FCFF7DFF0000000000005FFF5AFF0000E2 -:1000F000000005010980A101850319012AB7001537 -:100100000126B700950175108100C0050C0901A1F9 -:1001100001850419012AA002150126A00295017586 -:10012000108100C00660FF0961A101096215002667 -:10013000FF009520750881020963150026FF0095D0 -:100140002075089102C005010906A101050719E003 -:1001500029E71500250195087501810295017508AB -:1001600081010507190029FF150026FF0095067576 -:100170000881000508190129059505750191029569 -:100180000175039101C000000000000000000000A4 +:1000E0005FFF5AFF000000000000FCFF7DFF0000E2 +:1000F000000000005FFF5AFF0000000005010980BA +:10010000A101850319012AB700150126B700950141 +:1001100075108100C0050C0901A101850419012A8F +:10012000A002150126A002950175108100C006608D +:10013000FF0961A1010962150026FF0095207508DD +:1001400081020963150026FF00952075089102C001 +:1001500005010906A101050719E029E71500250198 +:10016000950875018102950175088101050719003F +:1001700029FF150026FF009506750881000508195E +:10018000012905950575019102950175039101C03D :10019000000000000000000000000000000000005F -:1001A000000000000000000000007E0F00D4FFFFF0 -:1001B000FFC70000007800000000000000002A2BAC -:1001C0002800000000000000000000000000000007 -:1001D0000029000000002C1E342021222434262770 -:1001E000252E362D3738271E1F2021222324252691 -:1001F0003333362E37381F0405060708090A0B0C5F -:100200000D0E0F101112131415161718191A1B1CA6 -:100210001D2F3130232D350405060708090A0B0C64 -:100220000D0E0F101112131415161718191A1B1C86 -:100230001D2F3130354C00DA02815AD9F1DB20A470 -:10024000A62EAF00A0C000A1C800AED580A81FD3C5 -:1002500000408D142000E800DE00D400CA00C00079 -:10026000B600AC000000000000000000000000002C -:1002700000000000000080C0E0F0F0F898F8F8F806 -:10028000F0702000000000000060C080000000004E -:10029000C0F0F0F0E0C0877FFFFFF1C3030303016C -:1002A0000100000000000000000103071F3E78F776 -:1002B000FF7F3D03070F1E3D7FFFFFFFFC7800001F -:1002C000000000000000000000000000000000002E -:1002D000000000000000000080E0F0F0F898F8F85E -:1002E000F8F070200000008000000000C0F8FC3E24 -:1002F000DEFEFCF80000E0FEFF7F070103030301C0 -:1003000001000000000000071E3C78FFFF7F010095 -:10031000071F3F7C78FFFF7F070000000000000000 -:1003200000000000000000000000000000000000CD -:1003300000000000000000000000000000008080BD -:100340000000000000000000C000000000000000ED -:100350000000000000000000F8FCFEFE1F3F3939DD -:100360003F3F1E1E0C000000010F3E7870F8FCFE9F -:100370007E3E3C3C787878F0F1FF7F7F3E000000C5 -:10038000000000000000000000000000000000006D -:1003900000000000000000008080C0C06060C0C09D -:1003A000C0800000000000002060C080000000004D -:1003B0000000000000003E7FFFFFE7C70E0E0F0F9A -:1003C0000707030000000000000001071F3E78F04F -:1003D000FC7E1E1F0F0E1E1C3D7FFFFFFFFC7800E2 -:1003E000000000000000000000000000000000000D -:1003F000E0F0F0F8F8CCCCF8F8F0F0600000000085 -:1004000000000000000000000000000000000000EC -:100410000F3F7FFCF9F1E1C1810000000000000006 -:1004200000000000000000000000000C387060E0D8 -:10043000E0F0F0F8F9FFFFFFFFFF7E1C0000000076 -:1004400000000000000000000000000000000000AC -:10045000E0F0F0F8F8CCCCF8F8F0F0600000000024 -:10046000000000000000000000000000000000008C -:100470000F3F7FFCF9F1E1C1810000010102060C90 -:10048000040000000000000000000000387C60E074 -:10049000E0F0F0F8F9FFFFFFFFFF7E1C0000000016 -:1004A000000000000000000000000000000000004C +:1001A000000000000000000000000000000000004F +:1001B000000000007E0F00D4FFFFFFC700000078A2 +:1001C00000000000000000002A2B280000000000B2 +:1001D00000000000000000000000002900000000F6 +:1001E0002C1E3420212224342627252E362D373864 +:1001F000271E1F202122232425263333362E37386D +:100200001F0405060708090A0B0C0D0E0F1011122A +:10021000131415161718191A1B1C1D2F3130232DF6 +:10022000350405060708090A0B0C0D0E0F101112F4 +:10023000131415161718191A1B1C1D2F3130354CA5 +:1002400000DA02815AD9F1DB20A4A62EAF00A0C0AB +:1002500000A1C800AED580A81FD300408D14200097 +:10026000F200E800DE00D400CA00C000B600AC0016 +:10027000000000000000000000000000000000007E +:10028000000080C0E0F0F0F898F8F8F8F070200076 +:10029000000000000060C08000000000C0F0F0F02E +:1002A000E0C0877FFFFFF1C30303030101000000EB +:1002B00000000000000103071F3E78F7FF7F3D03A9 +:1002C000070F1E3D7FFFFFFFFC78000000000000CD +:1002D000000000000000000000000000000000001E +:1002E0000000000080E0F0F0F898F8F8F8F07020D6 +:1002F0000000008000000000C0F8FC3EDEFEFCF8BC +:100300000000E0FEFF7F070103030301010000007E +:10031000000000071E3C78FFFF7F0100071F3F7CA5 +:1003200078FFFF7F070000000000000000000000D1 +:1003300000000000000000000000000000000000BD +:1003400000000000000000000000808000000000AD +:1003500000000000C00000000000000000000000DD +:1003600000000000F8FCFEFE1F3F39393F3F1E1E13 +:100370000C000000010F3E7870F8FCFE7E3E3C3C15 +:10038000787878F0F1FF7F7F3E00000000000000E9 +:10039000000000000000000000000000000000005D +:1003A000000000008080C0C06060C0C0C08000004D +:1003B000000000002060C08000000000000000007D +:1003C00000003E7FFFFFE7C70E0E0F0F0707030079 +:1003D00000000000000001071F3E78F0FC7E1E1F99 +:1003E0000F0E1E1C3D7FFFFFFFFC78000000000089 +:1003F000000000000000000000000000E0F0F0F845 +:10040000F8CCCCF8F8F0F06000000000000000002C +:100410000000000000000000000000000F3F7FFC13 +:10042000F9F1E1C1810000000000000000000000BF +:10043000000000000000000C387060E0E0F0F0F810 +:10044000F9FFFFFFFFFF7E1C00000000000000001E +:10045000000000000000000000000000E0F0F0F8E4 +:10046000F8CCCCF8F8F0F0600000000000000000CC +:100470000000000000000000000000000F3F7FFCB3 +:10048000F9F1E1C1810000010102060C0400000045 +:100490000000000000000000387C60E0E0F0F0F8B0 +:1004A000F9FFFFFFFFFF7E1C0000000000000000BE :1004B000000000000000000000000000000000003C -:1004C000000000000000000000CCF87000000000F8 -:1004D0000000C0F0F8F87CFCEEE6FCFC7878B00098 -:1004E00000000000000000003F7FF1F8F87C7CF87D -:1004F000F0F0F1E7EFEFFEFEFEFCFCF8F06000012B -:1005000003060200000000000000000000000000E0 +:1004C000000000000000000000000000000000002C +:1004D0000000000000CCF870000000000000C0F038 +:1004E000F8F87CFCEEE6FCFC7878B0000000000038 +:1004F000000000003F7FF1F8F87C7CF8F0F0F1E7B5 +:10050000EFEFFEFEFEFCFCF8F060000103060200C7 :1005100000000000000000000000000000000000DB -:10052000000000000000000080E0F81C0000000057 -:100530000000C0F0F8F87CFCEEE6FCFC78783000B7 -:1005400000000000000000003F7FF0F8F87C7CF81D -:10055000F0F0F1E7EFEFFEFEFEFCFCF8F0600000CB -:10056000000000000000000000000080C0C0E0E0CB -:100570003070E0E0C0C0800000000000000000001B -:10058000000000000000000000001F7FFFFFE7E701 -:10059000EFEFCFCB838301000000000000000000DC -:1005A0000000000000000000061C3878F1E3E3E7DB -:1005B000F7F7FFFFFFFF7F3E000000000000000094 -:1005C000000000000000000000000000000000002B -:1005D000000000000000000080C0E0E060E0C0C05B -:1005E00080800000000000000000000000000020EB -:1005F000F8FEFFFFFF9F0F0E1F1F3F3F7EE68303A6 -:100600000F43439088080000031E3C78F0E0E0F0C0 -:10061000F0FBFFFFFF7F7F380000000000000000BC -:10062000000000000000000004F6B8F8D8F0E0C0B8 -:1006300000000080C0E0E0F0F0F0F0E0E0C08000FA -:100640000000000000000080C0E1F3FB7F1F0F00EE -:1006500000F0FFFF3F030100000080C1F3FF7F1F98 -:10066000000080C0E0301E3F3F7FF9F0F070783C22 -:100670003F1F0F03000000001C3F7F7FFBF1F0785D -:100680003C1E0F03000000010101010101010101F5 -:100690000202020202020202020303030303030333 -:1006A0000304040404040404050505050506060600 -:1006B0000606070707070708080808090909090ABD -:1006C0000A0A0B0B0B0C0C0C0D0D0D0E0E0E0F0F62 -:1006D0000F101011111112121313141415151616F0 -:1006E0001717181819191A1A1B1B1C1D1D1E1E1F5F -:1006F0002020212222232424252626272829292AAE -:100700002B2C2D2D2E2F30313232333435363738D5 -:10071000393A3B3C3D3E3F404142434445464748D1 -:10072000494A4C4D4E4F50515354555658595A5BA7 -:100730005D5E5F616264656668696B6C6D6F707247 -:10074000737577787A7B7D7E8082838587888A8CB3 -:100750008E8F91939596989A9C9EA0A2A3A5A7A9E7 -:10076000ABADAFB1B3B5B7BABCBEC0C2C4C6C9CBDE -:10077000CDCFD1D4D6D8DBDDDFE2E4E7E9EBEEF094 -:10078000F3F5F8FAFDFFFFAA7F55401C1004010D98 -:10079000190A24232221201F1E1D1B1A18171615A3 -:1007A000141312110F0E0C0B0908070605030200A3 -:1007B0002D3945483C303F25262728292A2B2C2E29 -:1007C0002F31323334353637383A3B3D3E404142A3 -:1007D000434446474907087F0807003E5B4F5B3E9E -:1007E000003E6B4F6B3E001C3E7C3E1C00183C7E66 -:1007F0003C18001C577D571C001C5E7F5E1C0000CF -:10080000183C180000FFE7C3E7FF00001824180099 -:1008100000FFE7DBE7FF0030483A060E00262979A3 -:10082000292600407F05050700407F05253F005A27 -:100830003CE73C5A007F3E1C1C0800081C1C3E7F05 -:100840000014227F2214005F5F005F5F0006097FB3 -:10085000017F00006689956A0060606060600094B6 -:10086000A2FFA2940008047E04080010207E20103D -:100870000008082A1C0800081C2A0808001E10107E -:100880001010000C1E0C1E0C0030383E38300006D4 -:100890000E3E0E060000000000000000005F000099 -:1008A00000000700070000147F147F1400242A7F33 -:1008B0002A120023130864620036495620500000B3 -:1008C0000807030000001C224100000041221C0018 -:1008D000002A1C7F1C2A0008083E080800008070BF -:1008E00030000008080808080000006060000020D0 -:1008F00010080402003E5149453E0000427F40007E -:10090000007249494946002141494D3300181412EB -:100910007F10002745454539003C4A49493100418F -:100920002111090700364949493600464949291E1F -:100930000000001400000000403400000000081413 -:10094000224100141414141400004122140800025F -:1009500001590906003E415D594E007C1211127C7E -:10096000007F49494936003E41414122007F4141D3 -:10097000413E007F49494941007F09090901003E84 -:1009800041415173007F0808087F0000417F41000A -:10099000002040413F01007F08142241007F404079 -:1009A0004040007F021C027F007F0408107F003E51 -:1009B0004141413E007F09090906003E4151215E47 -:1009C000007F091929460026494949320003017F61 -:1009D0000103003F4040403F001F2040201F003FD8 -:1009E0004038403F00631408146300030478040394 -:1009F000006159494D4300007F4141410002040814 -:100A0000102000004141417F000402010204004027 -:100A10004040404000000307080000205454784044 -:100A2000007F284444380038444444280038444473 -:100A3000287F0038545454180000087E090200181A -:100A4000A4A49C78007F080404780000447D400042 -:100A5000002040403D00007F102844000000417FFE -:100A60004000007C04780478007C08040478003896 -:100A70004444443800FC182424180018242418FC8A -:100A8000007C080404080048545454240004043F23 -:100A90004424003C4040207C001C2040201C003CA2 -:100AA0004030403C004428102844004C9090907CFA -:100AB000004464544C4400000836410000000077B4 -:100AC0000000000041360800000201020402003C60 -:100AD0002623263C00000000000000404040F0F8C3 -:100AE000F8FF38FFF8F83FF8F8FF38FFF8F8F04063 -:100AF000404000000000000080C0C0C0800000C076 -:100B0000C08000000080C0C000C0C0000080C0C025 -:100B10000000000000C0C0C0C0C000C0C000000095 -:100B200000000000000000000000000000000000C5 +:1005200000000000000000000000000000000000CB +:100530000000000080E0F81C000000000000C0F097 +:10054000F8F87CFCEEE6FCFC787830000000000057 +:10055000000000003F7FF0F8F87C7CF8F0F0F1E755 +:10056000EFEFFEFEFEFCFCF8F06000000000000073 +:100570000000000000000080C0C0E0E03070E0E05B +:10058000C0C080000000000000000000000000006B +:100590000000000000001F7FFFFFE7E7EFEFCFCB79 +:1005A0008383010000000000000000000000000044 +:1005B00000000000061C3878F1E3E3E7F7F7FFFFDF +:1005C000FFFF7F3E00000000000000000000000070 +:1005D000000000000000000000000000000000001B +:1005E0000000000080C0E0E060E0C0C0808000004B +:1005F000000000000000000000000020F8FEFFFFE7 +:10060000FF9F0F0E1F1F3F3F7EE683030F43439064 +:1006100088080000031E3C78F0E0E0F0F0FBFFFFEC +:10062000FF7F7F3800000000000000000000000095 +:100630000000000004F6B8F8D8F0E0C00000008028 +:10064000C0E0E0F0F0F0F0E0E0C08000000000006A +:1006500000000080C0E1F3FB7F1F0F0000F0FFFFF0 +:100660003F030100000080C1F3FF7F1F000080C036 +:10067000E0301E3F3F7FF9F0F070783C3F1F0F03E2 +:10068000000000001C3F7F7FFBF1F0783C1E0F0351 +:100690000000000101010101010101010202020249 +:1006A000020202020203030303030303030404041C +:1006B00004040404050505050506060606060707E5 +:1006C00007070708080808090909090A0A0A0B0B9D +:1006D0000B0C0C0C0D0D0D0E0E0E0F0F0F1010113C +:1006E00011111212131314141515161617171818C2 +:1006F00019191A1A1B1B1C1D1D1E1E1F202021222A +:1007000022232424252626272829292A2B2C2D2D6F +:100710002E2F30313232333435363738393A3B3C8C +:100720003D3E3F404142434445464748494A4C4D7F +:100730004E4F50515354555658595A5B5D5E5F6148 +:100740006264656668696B6C6D6F707273757778DB +:100750007A7B7D7E8082838587888A8C8E8F919339 +:100760009596989A9C9EA0A2A3A5A7A9ABADAFB160 +:10077000B3B5B7BABCBEC0C2C4C6C9CBCDCFD1D445 +:10078000D6D8DBDDDFE2E4E7E9EBEEF0F3F5F8FAEB +:10079000FDFFFFAA7F55401C1004010D190A2423F8 +:1007A0002221201F1E1D1B1A1817161514131211B3 +:1007B0000F0E0C0B09080706050302002D394548EA +:1007C0003C303F25262728292A2B2C2E2F31323347 +:1007D00034353637383A3B3D3E4041424344464744 +:1007E0004907087F0807003E5B4F5B3E003E6B4FAA +:1007F0006B3E001C3E7C3E1C00183C7E3C18001CDE +:10080000577D571C001C5E7F5E1C0000183C1800C2 +:1008100000FFE7C3E7FF00001824180000FFE7DB34 +:10082000E7FF0030483A060E0026297929260040C5 +:100830007F05050700407F05253F005A3CE73C5AED +:10084000007F3E1C1C0800081C1C3E7F0014227FF9 +:100850002214005F5F005F5F0006097F017F0000D8 +:100860006689956A0060606060600094A2FFA2944F +:100870000008047E04080010207E20100008082ACA +:100880001C0800081C2A0808001E10101010000C7C +:100890001E0C1E0C0030383E383000060E3E0E0690 +:1008A0000000000000000000005F000000000700E2 +:1008B000070000147F147F1400242A7F2A120023CB +:1008C00013086462003649562050000008070300F0 +:1008D00000001C224100000041221C00002A1C7F55 +:1008E0001C2A0008083E080800008070300000083C +:1008F00008080808000000606000002010080402DA +:10090000003E5149453E0000427F40000072494987 +:100910004946002141494D33001814127F10002729 +:1009200045454539003C4A494931004121110907F3 +:1009300000364949493600464949291E000000143D +:1009400000000000403400000000081422410014A0 +:10095000141414140000412214080002015909065D +:10096000003E415D594E007C1211127C007F4949C6 +:100970004936003E41414122007F4141413E007FD6 +:1009800049494941007F09090901003E414151732C +:10099000007F0808087F0000417F4100002040419F +:1009A0003F01007F08142241007F40404040007F0B +:1009B000021C027F007F0408107F003E4141413E3F +:1009C000007F09090906003E4151215E007F091997 +:1009D00029460026494949320003017F0103003FAF +:1009E0004040403F001F2040201F003F4038403F14 +:1009F0000063140814630003047804030061594978 +:100A00004D4300007F4141410002040810200000D6 +:100A10004141417F00040201020400404040404047 +:100A2000000003070800002054547840007F284449 +:100A3000443800384444442800384444287F00386F +:100A4000545454180000087E09020018A4A49C788D +:100A5000007F080404780000447D400000204040EE +:100A60003D00007F102844000000417F4000007CD2 +:100A700004780478007C080404780038444444383E +:100A800000FC182424180018242418FC007C0804F6 +:100A900004080048545454240004043F4424003CF7 +:100AA0004040207C001C2040201C003C4030403C4A +:100AB000004428102844004C9090907C00446454DA +:100AC0004C440000083641000000007700000000A0 +:100AD00041360800000201020402003C2623263CA5 +:100AE00000000000000000404040F0F8F8FF38FF30 +:100AF000F8F83FF8F8FF38FFF8F8F0404040000001 +:100B00000000000080C0C0C0800000C0C0800000A5 +:100B10000080C0C000C0C0000080C0C00000000055 +:100B200000C0C0C0C0C000C0C00000000000000085 :100B300000000000000000000000000000000000B5 :100B400000000000000000000000000000000000A5 -:100B500000000000C0F0F8FC3E1E06010000007F0F -:100B60004141417F007F4141417F000080C0E07EE4 -:100B70005B4F5BFEC00000C000DCD7DEDEDED7DCF2 -:100B800000C00000000000000000000000000000A5 -:100B90000000000000000000000000494949FFFF7C -:100BA000FFFFE0DFBFBF00BFBFDFE0FFFFFFFF4988 -:100BB000494900000000001F3F6060E0BF1F007F48 -:100BC0007F071E381E077F7F007F7F0E1F3B7160EF -:100BD00000000000007F7F0C0C0C007E7E007F7EFA -:100BE0000303007F7E03037E7E03037F7E000F3EB0 -:100BF000703C063C703E0F00327B49493F7E007FCF -:100C00007E0303001E3F69696F260000000000009C -:100C100000000000030F1F3F3C7870600000007F61 -:100C20004141417F007F4141417F00307B7F7830EF -:100C3000202030787F3B0003000F7F0F0F0F7F0FC6 -:100C400000030000000000000000000000000000A1 -:100C50000000000000000000000000010101070F7B -:100C60000F7F0F7F0F0F7E0F0F7F0F7F0F0F07017B -:100C70000101000000000000000000000101000070 -:100C80000000000000000000000000000000000064 +:100B50000000000000000000000000000000000095 +:100B6000C0F0F8FC3E1E06010000007F4141417FBD +:100B7000007F4141417F000080C0E07E5B4F5BFE13 +:100B8000C00000C000DCD7DEDEDED7DC00C0000025 +:100B90000000000000000000000000000000000055 +:100BA00000000000000000494949FFFFFFFFE0DFAF +:100BB000BFBF00BFBFDFE0FFFFFFFF4949490000A3 +:100BC0000000001F3F6060E0BF1F007F7F071E38EE +:100BD0001E077F7F007F7F0E1F3B716000000000BB +:100BE000007F7F0C0C0C007E7E007F7E0303007F65 +:100BF0007E03037E7E03037F7E000F3E703C063C37 +:100C0000703E0F00327B49493F7E007F7E03030028 +:100C10001E3F69696F260000000000000000000010 +:100C2000030F1F3F3C7870600000007F4141417F0F +:100C3000007F4141417F00307B7F78302020307839 +:100C40007F3B0003000F7F0F0F0F7F0F000300009B +:100C50000000000000000000000000000000000094 +:100C600000000000000000010101070F0F7F0F7F4F +:100C70000F0F7E0F0F7F0F7F0F0F07010101000085 +:100C80000000000000000000010100000000000062 :100C90000000000000000000000000000000000054 :100CA0000000000000000000000000000000000044 :100CB0000000000000000000000000000000000034 @@ -207,1586 +207,1587 @@ :100CE0000000000000000000000000000000000004 :100CF00000000000000000000000000000000000F4 :100D000000000000000000000000000000000000E3 -:100D1000000000000000AF00AE09025B000301000C -:100D2000A0FA0904000001030101000921110100DA -:100D3000012240000705810308000A09040100029E -:100D40000300000009211101000122220007058291 -:100D5000032000010705030320000109040200012C -:100D6000030000000921110100012232000705845F -:100D70000320000A120100020000000832FC871262 -:100D80000200010200011E0353006F006C006100AD -:100D900072006900750073005F0053006F00660009 -:100DA0006C006500000010034B00650079006800CE -:100DB00069007600650000000403090411241FBEC9 -:100DC000CFEFDAE0DEBFCDBF04B603FE27C08091CF -:100DD000670690916806A0916906B0916A0687300F -:100DE000904BA740B04BD1F4109267061092680662 -:100DF0001092690610926A0614BE84B7877F84BF7A -:100E00000FB6F894A8958091600088618093600087 -:100E1000109260000FBEE0E0F8E3099512E0A0E058 -:100E2000B1E0E8EAFEE602C005900D92A833B107F2 -:100E3000D9F726E0A8E3B2E001C01D92A736B207B9 -:100E4000E1F70E947A260C941B370C940000CF9394 -:100E5000DF934091650650916606455654409A01CD -:100E6000205A3F4F21303240C0F020E032E0241BB6 -:100E7000350B6091630470916404FC01CA01240F76 -:100E8000351FC1E0D0E08217930750F070936404DF -:100E900060936304DF91CF91089520E630E0E9CFBD -:100EA0004491DC01AB59BB4F5C91451781F04C93E9 -:100EB000AC01A5E056954795AA95E1F7DE0102C081 -:100EC000AA0FBB1F4A95E2F7AD016A2B752B01965D -:100ED0003196D9CFE8EDF0E080818E7F808310924B -:100EE000E2001092DA001092E100A0EEB0E08C91E6 -:100EF00081608C9380818F77808319BCA7EDB0E0EF -:100F00008C918E7F8C9380818F7E8083109245049C -:100F100008952091E4003091E50095E6A901209123 -:100F2000EC00822F817020FF06C08091E80080FFD6 -:100F300006C080E008952091E80022FD1AC080914B -:100F40005304882389F0853089F08091EB0085FD7A -:100F50000FC02091E4003091E50042175307F9F2E9 -:100F60009150E1F684E0089582E0089583E00895C9 -:100F700081E00895EF92FF920F931F93CF937C012E -:100F80008B010E948907C82F811117C08091E8004A -:100F900085FD0BC08091E8008E778093E8000E9469 -:100FA0008907882399F3C82F08C0F70181917F0131 -:100FB0008093F1000150110949F78C2FCF911F91B7 -:100FC0000F91FF90EF9008958091550487FF13C013 -:100FD0008091E80082FF06C08091E8008B778093C3 -:100FE000E80004C0809153048111F2CF08958091EC -:100FF00053048823D9F38091E80080FFF8CF8091D3 -:10100000E8008E77ECCF982F9093E900242F762F6D -:1010100050E0891731F07091EC002091ED00509173 -:10102000F00021FD07C09F5F973071F78093E900C2 -:1010300081E008953091EB003E7F3093EB003091DA -:10104000ED003D7F3093ED003091EB003160309347 -:10105000EB007093EC002093ED005093F000209192 -:10106000EE0027FDE0CF80E00895CF92DF92EF926F -:10107000FF920F931F93CF93DF93C8EDD0E0888149 -:101080008F7E8883E7EDF0E080818160808384E05B -:1010900082BF81E08093450488818E7F888302EE41 -:1010A00010E0F80110821092DA0081EEC82ED12CE7 -:1010B000F601108288818F77888388818068888391 -:1010C00088818F7D888319BC109253041092540438 -:1010D000109252041092510490EEE92EF12CF70177 -:1010E00080818B7F808388818160888342E060E09B -:1010F00080E00E940308F60180818E7F8083F801E2 -:10110000808181608083808188608083F701808115 -:101110008E7F8083888180618883DF91CF911F914A -:101120000F91FF90EF90DF90CF900895FC01809198 -:101130005B0490915C0486179707A0F06115710518 -:1011400029F49091E8009E779093E80090E0611573 -:10115000710551F4911108C08091E80082FF34C0FC -:1011600080E00895BC01F2CF809153048823C1F13F -:101170008530C1F18091E80083FD30C08091E800A6 -:1011800082FDEACF8091E80080FFE1CF8091F300FB -:101190002091F200382F6115710519F028303105C2 -:1011A00058F091E02830310509F090E02091E800F6 -:1011B0002E772093E800CBCF81918093F10061508E -:1011C00071092F5F3F4FE7CF80915304882341F08F -:1011D000853041F08091E80083FFBECF81E0089523 -:1011E00082E0089583E00895089580914804089569 -:1011F0002FB7F89460913E0470913F0480914004B1 -:10120000909141042FBF089520913B0430913C04FC -:101210002817390771F090933C0480933B04E091C8 -:101220003904F0913A04309721F00084F185E02DE3 -:10123000099408952091370430913804281739070C -:1012400071F09093380480933704E0913904F09161 -:101250003A04309721F00680F781E02D0994089533 -:1012600020912A0436E0839FC0011124629F800DE3 -:10127000911D1124811522E0920714F090E080E086 -:101280008B599B4F90936606809365060895FC01E9 -:10129000680F791F8FEF91E32191822728E030E0DA -:1012A00087FF09C0880F892721503109C9F7E61740 -:1012B000F70791F70895880FF7CFFA01811101C060 -:1012C000FB01099480915E04982F9E7F61F48170E8 -:1012D000826080935E0480916104813A18F080EA14 -:1012E0008093610408958831B0F381708661F1CFF5 -:1012F000AF92BF92DF92EF92FF920F931F93CF9323 -:10130000DF93082F162FE901E42FF0E0EA57F94F99 -:10131000611110C0E4915E2F4E2F4983E8835A83F8 -:10132000DF91CF911F910F91FF90EF90DF90BF90D1 -:10133000AF900895E62EF12C4491D42EE42FF0E0E6 -:1013400026E0829FC00111242FEF30E0B9010E94F6 -:101350007A31802F90E0880F991F55E5569FD00174 -:10136000579FB00D11248A1B9B0B982F990F890F43 -:101370005901AE18BF08AE9ED001AF9EB00DBE9E03 -:10138000B00D11245B2F189F80011124012F11270C -:101390005901A01AB10AAE9E8001AF9E100DBE9EEB -:1013A000100D11245901A81AB108AE9CC001AF9CC0 -:1013B000900DBE9C900D1124892F9927281B390B65 -:1013C0002E9FC0012F9F900D3E9F900D1124E92F5D -:1013D00062307105A1F050F46115710509F49DCFDB -:1013E0006130710581F0EB2F512F97CF643071057B -:1013F00069F080F06630710509F48FCFF4CFE42FE7 -:101400004B2F592F8ACFE42F412F87CFEB2F542F0B -:10141000492F83CF4B2F5D2DE12F7FCF80E00895A3 -:1014200078940895F894E82FE295EF70F0E031A1F8 -:10143000282F2F7081E090E001C0880F2A95EAF7ED -:10144000982F9095932391A392A1892B82A30C941A -:10145000100A9091E50292FF06C0282F28712830CB -:10146000F9F4877F846093FF06C0282F2871283104 -:10147000F1F4877E84612091E60220FF06C0382FB8 -:1014800038713830D9F4877F816021FF06C0282F5A -:1014900028712831D1F4877E816194FD877E08957B -:1014A000282F24712430F9F68B7F8860DCCF282F19 -:1014B0002471243101F78B7E8861DDCF382F3171A3 -:1014C000313019F78E7F8860E0CF282F21712131CC -:1014D00021F78E7E8861E1CFCF93DF93EC018238D4 -:1014E000910581F1B0F58133910509F491C020F5A2 -:1014F0008932910509F485C08A9709F490C0C11515 -:1015000021E5D20708F0AAC0C11530E5D30708F0DD -:10151000F2C0CF3BD10508F089C0C83AD10508F028 -:10152000DFC0C53AD10508F0D3C0C430D105F8F406 -:10153000C130D105E1F040C08533910509F45AC0AE -:10154000C997E9F68091E502837089F0C0EED0E09A -:101550000EC0833E910599F170F4803E910501F132 -:10156000823E910561F68091E50282FD21C0CE01A7 -:10157000DF91CF910895863E910561F1873E9105F7 -:1015800071F1843E910509F0BACF8091E60281FFA6 -:10159000EECF8091E502C7EED0E084FD0DC0E7CF2D -:1015A0008091E50280FDF7C09091E60290FFDFCFC9 -:1015B000C3EED0E084FFDBCFD0E0C0E0D8CF809195 -:1015C000E50282FDEBC09091E60290FDBFCF84FF63 -:1015D000CECFF2CF8091E50283FDDDCFC8CF8091E1 -:1015E000E50283FDDEC09091E60291FFF0CFC4EEEC -:1015F000D0E0BDCF8091E50285FFB9CFC9E2D0E050 -:10160000B6CF8091E50285FFB2CFC5E3D0E0AFCF82 -:101610008091E50286FFABCFCAE2D0E0A8CF8091EF -:10162000E50286FFA4CFC1E3D0E0A1CFC11540E21F -:10163000D40760F4C11581E0D80708F098CFCE0137 -:10164000815E9109079708F492CFB6CFC11590E457 -:10165000D90708F4B1CFDF70D06A89CFC11524E56E -:10166000D20778F4C11533E5D30708F072C0C1156D -:1016700042E5D40708F05CC0DC2FCC27C16FD06AEC -:1016800076CFC1158AE5D80778F4C11599E5D90751 -:1016900008F073C0C11528E5D20708F48DCFDC2F00 -:1016A000CC27C06FD06A63CFCE019056811590428F -:1016B00008F082CF8D2F8F710E94290A90E0982F19 -:1016C000882788279F719C012C2BE901D0624FCF7E -:1016D000C55AD0E0CF52DE4FC881D0E0D06447CFAA -:1016E000C85AD0E0CC0FDD1FCC52DE4F0990D88114 -:1016F000C02DD4643CCFCE0164E0969587956A9561 -:10170000E1F783702C2F26952695237040E2249FC5 -:1017100090011124382B8C2F8370C1E0D0E002C0DF -:10172000CC0FDD1F8A95E2F7C22BD32BDC681FCFCD -:10173000CE018370992721E030E002C0220F331FD1 -:101740008A95E2F7C695C69580E2C89FE00111240C -:10175000EBCFCE018370992721E030E002C0220F49 -:10176000331F8A95E2F7C695C69590E2C99FE001BE -:101770001124C22BD32BDA68FACE8C2F8F700E94E3 -:10178000290A34E0D695C7953A95E1F7CF709C2F9A -:10179000EC01D069ECCEC9E3D0E0E9CEC2EED0E0F6 -:1017A000E6CEC6EED0E0E3CE0C94F8088091460475 -:1017B00090919B02892B90919A02892B80933A02F7 -:1017C000E0913904F0913A04309731F00280F381CE -:1017D000E02D8AE392E00994089580919902909116 -:1017E0006802981301C008958F5F8770FACF27E0D1 -:1017F000929F800D1124982F9770869586958695D7 -:1018000023E0829FF0011124E95BFD4F50E040E0AE -:1018100080E0219130E0092E02C0369527950A9488 -:10182000E2F721703327042E01C0220F0A94EAF751 -:10183000822B4F5F5F4F4330510559F7089527E0E2 -:10184000929F800D1124982F977041E001C0440FA2 -:101850009A95EAF786958695869593E0899FF0019B -:101860001124E95BFD4F90E080E070E05191DF01D1 -:1018700011979B01082E02C0369527950A94E2F72E -:10188000217021952527242325272C930196833029 -:10189000910561F7089590E080E00E941A0990E0B8 -:1018A00080E00E94040910929B0210929A020C940C -:1018B000D60B80939C020C944B0C882341F08095AE -:1018C000909146048923809346040C94D60B089586 -:1018D000882339F090914604982B909346040C94F9 -:1018E000D60B08958823B1F19CEF980F913A70F4CC -:1018F000ECE3F2E09191891303C0DF0111971C9290 -:1019000042E0E234F407B1F70C94D60B90E2980F62 -:10191000983088F4877021E030E0A90102C0440FBC -:10192000551F8A95E2F7CA01809590914604892354 -:1019300080934604E9CF9BE5980F933020F490E024 -:1019400080E00C941A09885A873120F490E080E0F6 -:101950000C94040908950F931F93CF93C82F8823E5 -:1019600009F469C08CEF8C0F813AB0F50CE312E0FA -:1019700082E492E0F8012191C21701F122E0E23401 -:10198000F207C9F7EFEF80E0D8019D918D01C917EB -:1019900081F0EF3F19F4911101C0E82F8F5F86307D -:1019A00099F7EF3F31F00E2E000CFF0BE65CFD4F78 -:1019B000C283CF911F910F910C94D60BECE3F2E010 -:1019C0002191C21303C0DF0111971C928E179F074C -:1019D000B9F70E94D60BD6CF80E28C0F883068F41E -:1019E000C77021E030E001C0220FCA95EAF780916C -:1019F0004604822B80934604DCCFEBE5EC0FE3300A -:101A000050F4F0E0EF52FE4F808190E0CF911F91B3 -:101A10000F910C941A09C85AC73168F4EC2FF0E002 -:101A2000EE0FFF1FEC52FE4F80819181CF911F91ED -:101A30000F910C940409CF911F910F910895982F45 -:101A400092959F7011F0892F94E0282F2695269566 -:101A500011F09E5F822F869509F09F5F892F089570 -:101A6000CF92DF92EF92FF920F931F93CF93DF936A -:101A70006C017B0164E670E088E70E94572EEC0160 -:101A800097FD12C010E000E0F601E00FF11F849115 -:101A900064E670E00E94D12EEC01892B29F40F5FDF -:101AA0001F4F0E151F0581F70E94542FCE01DF91A5 -:101AB000CF911F910F91FF90EF90DF90CF900895FD -:101AC0008091350490913604911103C091E08927EB -:101AD0000895882369F062E070E087E19DE00E944C -:101AE000300D892B19F0809135040895109235043A -:101AF00080913504EBCFCF93C091350480913604AB -:101B00008823D1F00E94F8086058774C8E4F9F4F81 -:101B100060933104709332048093330490933404BF -:101B2000C11108C062E070E085E19DE00E94300DC7 -:101B3000892B29F0C09135048C2FCF91089581E035 -:101B400080933504F7CF90915304943029F5809316 -:101B5000420470934404609343049093E9008FEF30 -:101B60009091E800815095FD06C095ED9A95F1F7AA -:101B700000008111F5CF8091E80085FF0DC050E095 -:101B800040E063E070E082E494E00E94BA07809154 -:101B9000E8008E778093E8000895BC0184E00C94FF -:101BA000A30DBC0183E00C94A30DCF93DF93EC0154 -:101BB00081E08093E9008FEF9091E800815095FDDE -:101BC00006C095ED9A95F1F700008111F5CF80914F -:101BD000E80085FF14C050E040E068E070E0CE010E -:101BE0000E94BA078091E8008E778093E80088E031 -:101BF000FE01A9E4B4E001900D928A95E1F7DF912E -:101C0000CF9108959F92AF92BF92CF92DF92EF92C1 -:101C1000FF920F931F93CF93DF937C015B016A01C7 -:101C20008091E00201E010E08A3010F40AE010E058 -:101C3000C1E0D0E0F894B501C701F6010995982EEE -:101C40000E94100A911004C021960C171D076CF415 -:101C5000892DDF91CF911F910F91FF90EF90DF9031 -:101C6000CF90BF90AF909F900895CC9F9001CD9F53 -:101C7000300D300D112490E080E045E34A95F1F7F6 -:101C80000000019682179307C1F7D4CF8091AB0271 -:101C9000811110C08091D80080618093D8008AE1C2 -:101CA0008A95F1F700C08091D90080FF0AC081E0D9 -:101CB0008093AB0281E09091AB02913009F080E01B -:101CC000089582E08093AB020E946A071092530449 -:101CD000F1CF0E94460E882351F0E0913904F09133 -:101CE0003A04309721F00190F081E02D099480E0D2 -:101CF00008951F93CF93DF93182FEB010E94AB0C35 -:101D00008FE99FE00197F1F700C000002197C1F72C -:101D1000812FDF91CF911F910C94720C4F925F92A3 -:101D20006F927F928F929F92AF92BF92CF92DF92EB -:101D3000EF92FF920F931F93CF93DF93CDB7DEB750 -:101D4000CE5DD1090FB6F894DEBF0FBECDBF509067 -:101D5000770180915E0480FF5DC080904A0390907F -:101D60004B038114910409F068C0EBE8F7E09E0191 -:101D70002F5F3F4FBE0161527F4FC901A4914A2F8F -:101D800050E0DA01AA0FBB1FA40FB51FA45BBC4F24 -:101D9000CD90DD90EC90D901CD92DD92ED929D0138 -:101DA00031966A177B0751F72091760143E0249F13 -:101DB000800D911D1124539A2BB1277F3BB13860C0 -:101DC0005FB7F894BC01549E600D711D11248617F5 -:101DD000970709F090C05FBF8FE594E00197F1F796 -:101DE00000C00000C252DF4F0FB6F894DEBF0FBE36 -:101DF000CDBFDF91CF911F910F91FF90EF90DF90BA -:101E0000CF90BF90AF909F908F907F906F905F909A -:101E10004F900895809178019091790123E0829FFD -:101E2000F0011124E45BFC4F891708F096CF118272 -:101E3000108212828F5F3396F7CF80914903811110 -:101E400094CFD12CC12C66246394712C53E0452E81 -:101E50008091480393010C2C01C0220F0A94EAF7E9 -:101E6000822309F43FC0F601EE0FFF1FE80DF91DB4 -:101E7000E590F490E114F10409F477CF45E050E0E7 -:101E8000B701CE0101960E94333209810F3F51F113 -:101E90008A81800F9927991F8B34910514F08AE469 -:101EA00090E05C01AA0CBB1C8A0D9B1DDC01A45BAD -:101EB000BC4F5D01049D80011124045B1C4F0A1579 -:101EC0001B0520F0B5E0EB0EF11CD8CF4D81413A57 -:101ED00008F040EA98016C818B810E9478090D5FBF -:101EE0001F4FEDCFEFEFCE1ADE0AF8E0CF16D10488 -:101EF00009F0AECF3ACFFC014191CF01E8E03BB908 -:101F0000000000C047FF2BB9440F000000C000C014 -:101F100000C02BB900C0EA9591F759CFEEE5F4E087 -:101F200080818E7F8083E5E4F3E08281816082831B -:101F30002FEF80E792E0215080409040E1F700C011 -:101F400000000C948E0EECE3F2E086E0DF011D92BF -:101F50008A95E9F70C944B0C1F93CF93DF93CDB781 -:101F6000DEB7AA970FB6F894DEBF0FBECDBF85E5EA -:101F700094E02091F100DC012D93CD01B4E08D358A -:101F80009B07B9F780915604833009F471C0B8F407 -:101F9000813009F448C0823009F4B4C08091E8006F -:101FA00083FF3CC180915504909156049A3008F00B -:101FB00035C1E92FF0E0E35EF84C0C94CD318A3066 -:101FC00009F48FC08B3009F470C0893039F78091E3 -:101FD0005504813219F78091590490915A04009761 -:101FE00011F00297D9F68091E800877F8093E8008E -:101FF0008091E80082FF37C09091F3008091F20059 -:10200000029729F48091F1008B7F813021F4809137 -:10201000F100809348048091E8008B778093E8007A -:102020000E94E407BBCF80915504813A09F0B6CFF6 -:102030008091E800877F8093E80080915904909117 -:102040005A04892B61F468E089E494E070E00E940E -:1020500096088091E8008B778093E8009FCF60E03E -:1020600090E080E0F3CF809153048111C1CF96CFEF -:1020700080915504813A09F091CF80915904909153 -:102080005A04892B09F08ACF8091E800877F8093DA -:10209000E8008091E80080FFFCCF80917B01809375 -:1020A000F1008091E8008E77B9CF8091550481329C -:1020B00009F074CF8091590490915A04892B09F04A -:1020C0006DCF8091E800877F8093E8000E94E4074D -:1020D0008091570480937B01109246040E94A30FC5 -:1020E0005DCF80915504813209F058CF8091E8008E -:1020F000877F8093E8000E94E407809158048093D2 -:1021000047044CCF80915504813A09F047CF809124 -:10211000E800877F8093E8008091E80080FFFCCF93 -:1021200080914704BCCF803899F0823809F076C09E -:10213000809159048F70873008F070C08093E90057 -:102140008091EB0085FB882780F91092E90006C09A -:102150008091510490915204911182609091E80015 -:10216000977F9093E8008093F1001092F1008091A6 -:10217000E8008E77B5C1882309F4A2C1823009F046 -:102180004DC0809157048111A6C1809159048F7070 -:102190002FEF280F263008F041C08093E9002091EE -:1021A000EB0020FF98C1933031F48091EB00806206 -:1021B0008093EB0090C19091EB0090619093EB00C5 -:1021C00021E030E001C0220F8A95EAF72093EA006F -:1021D0001092EA008091EB008860EACF81111EC066 -:1021E000109157041F778091E3008078812B8093B2 -:1021F000E3008091E800877F8093E8000E94E40775 -:102200008091E80080FFFCCF8091E300806880939C -:10221000E30082E0111183E0809353048091E80091 -:1022200083FF0AC08091E800877F8093E800809157 -:10223000EB0080628093EB00AA960FB6F894DEBFA5 -:102240000FBECDBFDF91CF911F910895805882308E -:1022500028F720915704309158042C3DE3E03E07C5 -:10226000A1F583E08A838AE289834FB7F894DE017F -:10227000139620E03EE051E2E32FF0E05093570048 -:10228000E49120FF03C0E295EF703F5FEF708E2F67 -:1022900090E0EA30C0F0C7968D939D932F5F243174 -:1022A00059F74FBF8091E800877F8093E8006AE28A -:1022B00070E0CE0101960E9496088091E8008B772D -:1022C0008093E800ABCFC096E7CF809159049091FE -:1022D0005A04432F55274330510509F44AC078F575 -:1022E0004130510509F47AC08BE590E0E9E1FDE069 -:1022F0004230510509F092CF2091E800277F2093CA -:10230000E80020915B0430915C048217930708F485 -:102310009C0140E02115310509F065C0411163C001 -:102320008091E80082FDC9CF80915304882329F26F -:10233000853019F28091E80083FFF2CFBECF4132A1 -:10234000510509F43CC04232510509F067CF833092 -:10235000910508F063CFFC01EE0FFF1FE55DFD4F17 -:102360000190F081E02D885D9D4FDC018C9190E023 -:102370001AC0332721303105D1F02115310561F024 -:102380002230310509F04ACFE6E8FDE0E4918E2FD6 -:1023900090E0E6E8FDE007C0E8EBFDE0E4918E2F79 -:1023A00090E0E8EBFDE0009709F438CFA5CFE6EA2E -:1023B000FDE0E4918E2F90E0E6EAFDE0F4CF83307B -:1023C000910508F02BCF880F991FFC01EF5CFD4FA2 -:1023D0000190F081E02D89E090E08ECF82E190E0E5 -:1023E000E4E7FDE089CF80915304882309F465CFA9 -:1023F000853009F462CF8091E80083FD5ECF809143 -:10240000E80082FD8DCF8091E80080FF83CF90911E -:10241000F3008091F2002115310519F08830910503 -:1024200050F041E0089709F040E08091E8008E7795 -:102430008093E8006FCF44914093F1003196215092 -:1024400031090196E8CF803809F0E8CE8091E800A4 -:10245000877F8093E800809154048093F10087CEB9 -:102460008111DCCE10915704123008F0D7CE809144 -:10247000E800877F8093E800109354040E94E407EB -:10248000112311F084E005C08091E30087FDFACFAD -:1024900081E08093530442E061EC81E00E940308F4 -:1024A00042E261EC84E00E94030842E261EC82E0D7 -:1024B0000E94030842E260EC83E00E940308AECE73 -:1024C00080915704813009F0A9CE81E0933009F062 -:1024D00080E0809352041092E9008091E800877FA9 -:1024E0008093E8000E94E40799CE1F93CF93DF9377 -:1024F000162FC0916506D09166068A30D1F42091DE -:102500002A04CE0185569440622F70E00E947A31F1 -:10251000281B822F66E00E948E31C82FC15020F404 -:10252000DF91CF911F91089560E080E20E947512C3 -:10253000F5CF8D30E9F4C556D44020912A04622F9E -:1025400070E0CE010E947A31281B822F9E01280F55 -:10255000311D2115324018F080E0D0E0C0E0C80FF6 -:10256000D11DCB59DB4FD0936606C0936506D8CFFB -:1025700096E0FE01ABE2B4E001900D929A95E1F78E -:10258000803E90F186E0FE0111928A95E9F7C091B4 -:102590006506D0916606111133C046E050E0BE01D9 -:1025A0008BE294E00E943C329E0125563440892BF8 -:1025B00091F52A5F3F4F40912A04642F70E0C901D2 -:1025C0000E947A31481B463010F4240F311D21152A -:1025D00072E0370710F030E020E02B593B4F30938A -:1025E0006606209365069CCFF6E08F9FB00111240C -:1025F0006B52784F46E050E0CE010E943332C7CF95 -:102600009E012A5F3F4FFE012E173F0731F2808166 -:1026100080958193F9CFC90145E0969587954A95B4 -:10262000E1F741E050E0BA0102C0660F771F8A95DA -:10263000E2F7CB016091630470916404862B972BC1 -:10264000B9016B5F7F4FE5E076956795EA95E1F715 -:1026500002C0440F551F6A95E2F7842B952B909387 -:10266000640480936304A5CFFF920F931F93CF93CD -:10267000DF93EC01F62EFC0101900020E9F78F01B9 -:1026800001501109C017D10730F0DF91CF911F9190 -:102690000F91FF9008956F2D89910E947512F2CFCE -:1026A000CF93DF93C7E5D2E060E0CE010E94F8341B -:1026B0002196C11584E0D807B9F7DF91CF9108952D -:1026C0006F927F928F929F92AF92BF92CF92DF9242 -:1026D000EF92FF920F931F93CF93DF9385EDC82E58 -:1026E00087E0D82E91ECE92EF12CE701CC58D109E6 -:1026F00036011BC0F50185909490692DC8010E9498 -:10270000F834682DC80101960E94F83482E0A80EC2 -:10271000B11C0E5F1F4FC017D10761F78EE0680E26 -:10272000711C2E96CE15DF0529F08E010E50110971 -:102730005301E0CF7E018CE8E80EF11C8CE8C80E56 -:10274000D11C81EFE81682E0F80679F6DF91CF918F -:102750001F910F91FF90EF90DF90CF90BF90AF90BF -:102760009F908F907F906F900895CF93C82F6FEFB9 -:10277000811161E283E290E00E94F834C1110CC043 -:10278000CFEF6C2F84E290E00E94F8346C2F85E24A -:1027900090E0CF910C94F834C9E0F3CF80E00E9430 -:1027A000B51360E086E290E00E94F8340E94601366 -:1027B0000E94501381E00C94B5130F931F93CF9395 -:1027C000DF93C42FD0E0CC0FDD1F2EE0629FC00D41 -:1027D000D11D11243CE8839FC00DD11D1124CE01D1 -:1027E00087960E94E434082F10E0102F0027CE01B6 -:1027F00088960E94E4349801282BC901DF91CF917B -:102800001F910F910895462F843038F47A3028F4C0 -:10281000673018F4672F0C94DD1390E080E0089582 -:10282000CF92DF92FF920F931F93CF93DF936C01B0 -:1028300000915D0480919C02082BC7E0D0E010E07D -:10284000FC2EC8010C2E02C0959587950A94E2F7DC -:1028500080FD0CC02197A0F7F12C8F2DDF91CF9137 -:102860001F910F91FF90DF90CF900895B6018C2FAC -:102870000E9403140E946C0A019761F3EECFCF937C -:10288000DF93EC010E941014BE010E940314DF913B -:10289000CF910C946C0AFC01808191810E943F14BD -:1028A000292F2F7092959F7092509E3078F4E92FC7 -:1028B000F0E0E95DF84C0C94CD31803F19F020F444 -:1028C000883E20F481E00895843FE1F380E008959C -:1028D000883EC0F3813FD1F7F5CF822F869586954C -:1028E0008695089583E290E00E94E434813289F471 -:1028F00084E290E00E94E434893059F485E290E06B -:102900000E94E43491E0893009F090E0892F8170D1 -:10291000089580E0FCCFCF92DF92EF92FF926B019F -:102920007C010E946209B701A60188E090E0FF9057 -:10293000EF90DF90CF900C940A35AF92BF92CF9278 -:10294000DF92EF92FF920F931F93CF93DF9300D00C -:102950000F92CDB7DEB7082FF62E142FE22E8091FE -:102960005E0480FF4FC0E82FE695AE2FB0E0A45E76 -:10297000BD4F9C91909345038E7F823009F056C0E5 -:10298000413A08F040EA9E012F5F3F4F6F2D802FA4 -:102990000E94780980915E0480FF11C02B813981EB -:1029A0004A81809178019091790153E0859FF001EF -:1029B0001124E45BFC4F891798F10E948E0E8091E0 -:1029C0005F04801308C0809160048F1104C080915F -:1029D0006104811729F08091470382608093470347 -:1029E00000935F04F092600410936104EE2051F0B4 -:1029F00060915E0470915F04809160049091610425 -:102A00000E948B140F900F900F90DF91CF911F9128 -:102A10000F91FF90EF90DF90CF90BF90AF9008950F -:102A20004183308322838F5F3396C5CF923039F64E -:102A3000E2508E2F8170D82EE695F0E0EA57F84FDD -:102A4000A590B490C12CBB2460917A01C61608F001 -:102A5000B4CF2C2D30E0A29EC001A39E900DB29E5B -:102A6000900D112470E00E947A31802FD11016C091 -:102A7000860F40917801420F532F511D9A01220F6A -:102A8000331F240F351F245B3C4F412F113A08F0B0 -:102A900040EA6F2D0E947809C394D6CF861BE9CFF8 -:102AA000EEE5F4E0438121E1421B08F440E021E03F -:102AB000628181810C949D14EEE5F4E0438121E173 -:102AC000420F08F44FEF21E0628181810C949D1444 -:102AD000EEE5F4E0628121E1621B08F460E021E0B0 -:102AE000438181810C949D14EEE5F4E0628121E143 -:102AF000620F08F46FEF21E0438181810C949D14F3 -:102B0000EEE5F4E0818121E04381628188500C94FC -:102B10009D14EEE5F4E0818121E043816281885FCC -:102B20000C949D1480916204882319F08150809345 -:102B3000620460915E0470915F04809160049091E2 -:102B400061040C948B1480916204833018F48F5FBD -:102B50008093620460915E0470915F0480916004D0 -:102B6000909161040C948B1490915E0490FF27C0A7 -:102B7000917081111DC0926090935E048091470313 -:102B8000816080934703662351F060915E047091E9 -:102B90005F0480916004909161040E948B1420E096 -:102BA000409161046091600480915F040C949D14D5 -:102BB0008C3010F09661E0CF880F982BDDCF089510 -:102BC00021E030E0A90102C0440F551F8A95E2F7C9 -:102BD000CA01209148036623C1F0822B80934803E9 -:102BE0008091470380618093470380914603811160 -:102BF00006C080915E0460E086950E94B4158091C5 -:102C00005E0480FD05C00C948E0E80958223E6CF75 -:102C10000895CF93DF93C82FC17082FBDD27D0F9D1 -:102C200081FB662760F984E00E94E01561E06C2773 -:102C300085E00E94E0156D2F86E0DF91CF910C9426 -:102C4000E0150F931F93CF93C82F61E08111682F78 -:102C5000617080E00E94E015C1FB662760F9C11138 -:102C600001C060E081E00E94E015C2FB662760F9C8 -:102C7000C11101C060E082E00E94E015C3FB66273D -:102C800060F9C11101C060E083E00E94E0154C2FA3 -:102C900050E070E060E0DB01CA01F4E0B695A79572 -:102CA00097958795FA95D1F70097A105B10551F150 -:102CB000AC01BD0184E08A019B01E2E036952795D5 -:102CC00017950795EA95D1F70115110521053105ED -:102CD00019F08E5FB901A8017695679557954795CC -:102CE000452B462B472B09F08F5F8130A1F08823BD -:102CF00059F08230A9F08330C1F08C2FCF911F9111 -:102D00000F91089580E0D7CF20E040E56FEF82E398 -:102D10000E949D14F2CF20E040E56FEF8CEFF8CFDA -:102D200020E040E56FEF86E7F3CF20E040E56FEF6E -:102D30008AEDEECF0E94211680935D040C944B0C1B -:102D400080915D04982F9670963019F488600C94E9 -:102D50009A16877FFCCF21E030E001C0220F8A95D0 -:102D6000EAF7209580915D0482230C949A1621E065 -:102D700030E001C0220F8A95EAF780915D04822B32 -:102D80000C949A1680915E048695815009F48BE02C -:102D900061E00C94B41580915E0486958F5F8C3051 -:102DA00008F081E061E00C94B41580915E0480FF2E -:102DB00007C0869582588F77893010F40C94CB1613 -:102DC00061E082E00C94B415EEE5F4E083E08083EA -:102DD00011828FEF828380EA83831482A5E4B3E0BB -:102DE00012968C911297836012968C9360817181F8 -:102DF000828193810C948B1469EE7EEF90E080E0E9 -:102E00000E94163560E082E090E00E94F83460E0B5 -:102E100083E090E00E94F83410929C0260E084E02D -:102E200090E00E94F83460E082E290E00E94F83482 -:102E300060E085E090E00E94F83460E086E090E099 -:102E40000E94F8346FEF87E090E00E94F83440E091 -:102E500050E0BA0188E090E00E940A3560E08DE021 -:102E600090E00E94F83440E050E0BA0188E190E040 -:102E70000E940A3560E087E190E00E94F83440E06B -:102E800050E0BA018CE190E00E940A3570E060E009 -:102E900080E290E00E94163540E050E0BA0188E1FF -:102EA00090E00E940A3580E00E94B5130E94CE1384 -:102EB00040E050E0BA018FE090E00E940A3540E027 -:102EC00050E0BA0183E190E00C940A350F931F9310 -:102ED000CF93DF9300D000D0CDB7DEB74091D002C2 -:102EE0005091D1026091D2027091D3022FB7F89421 -:102EF00080913E0490913F04A0914004B091410420 -:102F00002FBF841B950BA60BB70B84369105A1052B -:102F1000B10588F10E94460E882379F10E94F808D5 -:102F20006E5F7F4F8F4F9F4F69837A838B839C8324 -:102F300080912B0190912C0187549D4F40912A0143 -:102F400050E04530510510F044E050E0BE016F5FA5 -:102F50007F4F0E94493284E090E00E94C630892B66 -:102F6000D9F40E94F8086093D0027093D102809344 -:102F7000D2029093D30281E010C00E94F808009121 -:102F8000E1021091E2022091E3023091E402600F2D -:102F9000711F821F931FC4CF80E00F900F900F907E -:102FA0000F90DF91CF911F910F9108958F929F9273 -:102FB000AF92BF92CF92DF92EF92FF920F931F9347 -:102FC000CF93DF93EB0188809980AA80BB809FB765 -:102FD000F894C0903E04D0903F04E0904004F090FC -:102FE00041049FBFC818D908EA08FB0894E6C9162F -:102FF000D104E104F10410F4442311F1E82E082E69 -:10300000000CFF089AE08902F0011124E050FF4F04 -:103010008381948187549D4F428150E004171507A6 -:1030200008F4A801B9010E944932C7010E94C630C4 -:10303000892BA1F40E94F808688379838A839B8393 -:1030400081E0DF91CF911F910F91FF90EF90DF9082 -:10305000CF90BF90AF909F908F90089580E0F1CF78 -:103060000F931F93CF93DF930F92CDB7DEB780916D -:10307000350489832091CF0290E041E0281719069A -:1030800009F440E001E010E09E012F5F3F4F6CED3E -:1030900072E087E00E94D6170F90DF91CF911F91C9 -:1030A0000F9108950F931F93CF93DF930F92CDB796 -:1030B000DEB78091FB02898341E09091CE029813A4 -:1030C00001C040E001E010E09E012F5F3F4F68ED3E -:1030D00072E086E00E94D6170F90DF91CF911F918A -:1030E0000F9108950F931F93CF93DF93CDB7DEB762 -:1030F00029970FB6F894DEBF0FBECDBF85E0EEE591 -:10310000F4E0DE01119601900D928A95E1F780912D -:10311000450390914603A0914703B09148038E83E5 -:103120009F83A887B98741E08885811101C040E06D -:1031300009E010E09E012F5F3F4F64ED72E085E0F3 -:103140000E94D61781111092470329960FB6F89462 -:10315000DEBF0FBECDBFDF91CF911F910F910895BC -:103160006F927F928F929F92AF92BF92CF92DF9297 -:10317000EF92FF920F931F93CF93DF930F92CDB7F0 -:10318000DEB7862E5A016901682E880F7708C301C1 -:103190000E94C630892B09F088C08AE0869DF00124 -:1031A000879DF00D1124E050FF4F458150E04115FF -:1031B000510511F041E050E08AE0869DF001879DC5 -:1031C000F00D1124E050FF4F6681778167547D4FE9 -:1031D000CE0101960E944932F50140815181628100 -:1031E00073812FB7F89480913E0490913F04A09191 -:1031F0004004B09141042FBF841B950BA60BB70B65 -:1032000084369105A105B10540F4B701C8010E94BB -:1032100047099981891709F44FC0082C000C9908B7 -:10322000C4010E94C630892B91F0B12C8B2D0F90D8 -:10323000DF91CF911F910F91FF90EF90DF90CF9092 -:10324000BF90AF909F908F907F906F9008958AE08D -:10325000889DF001899DF00D1124E050FF4F4581BC -:1032600050E0E416F50608F4A7018AE0889DF00115 -:10327000899DF00D1124E050FF4F668177816754DE -:103280007D4FC6010E944932B701C8010E9447091B -:1032900099818913CACF0E94F808F5016083718370 -:1032A00082839383BB24B394C1CFB12CA701B8010F -:1032B000C6010E944932BACFBB24B394F7CFCF9254 -:1032C000DF92EF92FF920F931F93CF93DF9300D083 -:1032D00000D00F92CDB7DEB76B0185E0E82EF12C60 -:1032E0000AEB12E09E012F5F3F4F41EB52E061E09D -:1032F00080E00E94B018882349F095E0FE013196E5 -:10330000ACEAB2E001900D929A95E1F795E0ECEA13 -:10331000F2E0D60101900D929A95E1F70F900F908F -:103320000F900F900F90DF91CF911F910F91FF9011 -:10333000EF90DF90CF90089590E080E00E94F2340B -:10334000893E9E4F11F40C94721480E008951F92F0 -:103350000F920FB60F9211242F933F934F935F93C9 -:103360006F937F938F939F93AF93BF93CF93DF938D -:10337000EF93FF93D091E900DF708091EC00C82FAC -:10338000C17080FDC0E81092E9008091F000877F55 -:103390008093F00078940E94AC0F1092E900809125 -:1033A000F00088608093F000CD2BCF70C093E900CF -:1033B000FF91EF91DF91CF91BF91AF919F918F914D -:1033C0007F916F915F914F913F912F910F900FBE21 -:1033D0000F901F9018951F920F920FB60F92112405 -:1033E0002F933F934F935F936F937F938F939F930D -:1033F000AF93BF93EF93FF938091E10082FF09C0E9 -:103400008091E20082FF05C08091E1008B7F809374 -:10341000E1008091DA0080FF24C08091D80080FF15 -:1034200020C08091DA008E7F8093DA008091D900ED -:1034300080FF9BC080E189BD82E189BD09B400FEA7 -:10344000FDCF81E08093530480914504811109C030 -:103450000E946A070E9435088091E2008460809390 -:10346000E2008091E10080FF17C08091E20080FFC0 -:1034700013C08091E2008E7F8093E2008091E20091 -:1034800080618093E2008091D80080628093D800B0 -:1034900019BC85E0809353048091E10084FF29C02A -:1034A0008091E20084FF25C080E189BD82E189BD71 -:1034B00089B5982F917080FFFBCF8091D8008F7DC8 -:1034C0008093D8008091E1008F7E8093E10080910D -:1034D000E2008F7E8093E2008091E2008160809321 -:1034E000E20080915404882309F445C084E080936D -:1034F00053048091E10083FF27C08091E20083FFA5 -:1035000023C08091E100877F8093E10082E0809377 -:103510005304109254048091E1008E7F8093E10067 -:103520008091E2008E7F8093E2008091E2008061D2 -:103530008093E20042E060E080E00E940308809116 -:10354000F00088608093F000FF91EF91BF91AF9100 -:103550009F918F917F916F915F914F913F912F91AB -:103560000F900FBE0F901F90189519BC1092530426 -:103570001092450476CF8091E30087FD93E090930D -:103580005304B7CF78941F921FB61F9211248F93C4 -:103590009F93AF93BF9380913E0490913F04A0917D -:1035A0004004B09141040196A11DB11D80933E04D9 -:1035B00090933F04A0934004B0934104BF91AF9116 -:1035C0009F918F911F901FBE1F9018959C014FB720 -:1035D000F89480913E0490913F04A0914004B091F2 -:1035E00041044FBF821B930B08952FB7F89480912D -:1035F0003E0490913F04A0914004B09141042FBF3C -:1036000008958F929F92AF92BF92CF92DF92EF92E6 -:10361000FF920F931F93CF93DF93CDB7DEB72F9712 -:103620000FB6F894DEBF0FBECDBF8E010F5F1F4FE8 -:103630008AE0D8011D928A95E9F787E5C82E81E0D6 -:10364000D82EF12CE12CAA24A394B12CF60181915F -:103650006F018F3F09F44AC0F894E82FE295EF70AC -:10366000F0E021A18F70A50102C0440F551F8A957B -:10367000E2F7CA01922F982B91A392A180958923FA -:1036800082A30E94100A00C0E0E5F1E030E020E0F3 -:10369000912C41914F3F09F47FC0A42FA295AF70A8 -:1036A000B0E090968C9190E04F7002C09595879510 -:1036B0004A95E2F780FD70C08A2D022E01C0880F66 -:1036C0000A94EAF7982A2F5F3F4F2730310509F710 -:1036D000F601319780818F3F11F00E94120A50EA63 -:1036E0005A95F1F7F801EE0DFF1D90828FEFE81A61 -:1036F000F80A95E0E916F10409F0A8CF4AE050E095 -:10370000B80187EE92E00E943C327C01892B41F0A7 -:103710008AE0F801A7EEB2E001900D928A95E1F7F8 -:103720001091F202E114F104C9F181E080939F024B -:103730000E94F51A90939E0280939D0280919D02B3 -:1037400090919E020E94E61A069778F0A7EEB2E0EA -:10375000E12FF0E0E55CFC4F8CEE92E02D9121939F -:103760008A179B07D9F710929F0281E090E0EF281B -:10377000C9F02F960FB6F894DEBF0FBECDBFDF9114 -:10378000CF911F910F91FF90EF90DF90CF90BF905E -:10379000AF909F908F90089580E094CF80919F028A -:1037A0008111CCCF0E94460EB82EE091F2028E011C -:1037B000055F1F4F882309F4D3C085E0D8011D920F -:1037C0008A95E9F7F0E09F01255C3C4F79018091F3 -:1037D000E002AE01405F5F4F6A018A3008F098C096 -:1037E0004FE559E1B801C7010E94020E882309F490 -:1037F000A6C04DEF55E2B801C7010E94020E882312 -:1038000009F49DC046E657E1B801C7010E94020EC7 -:10381000882309F494C042E758E1B801C7010E9427 -:10382000020E882309F48BC042E558E1B801C701B4 -:103830000E94020E882309F482C040E358E1B801D7 -:10384000C7010E94020E882309F479C01092E00299 -:10385000E091F102F0E0AF01455C5C4FD80110E06F -:10386000FA019191AF018D91981731F09F0121508C -:103870003109F90180831B2DAC15BD0589F78091B5 -:10388000A2029091A3020E94E61A893E934060F141 -:103890006091FB02E62EF12C662777276E197F09CF -:1038A000072E000C880B990B0E94E13527EA39E7B7 -:1038B00047E45DE30E94AE364B015C01B701FF0CAB -:1038C000880B990B0E94E1359B01AC01C501B40145 -:1038D0000E942D350E94B0356093FB020E94F51ABC -:1038E0009093A3028093A2028091A602882371F094 -:1038F0008091A4029091A5020E94E61A893E93400D -:1039000028F082EE0E94720C1092A602812F31CF15 -:103910008091A0029091A1020E94E61A843F9140FA -:1039200008F05ECFE091F102F0E0E55CFC4FD801D9 -:1039300011921D92AC15BD05D9F71B2DA0CF80911A -:10394000E0028F3F31F08F5F8093E0028A3008F40D -:103950007FCF0E94F51A9093A1028093A002E2CF3C -:10396000F0E0E55CFC4FF89485E0AAEBB2E0019052 -:103970000D928A95E1F765E070E08AEB92E00E9493 -:1039800047098093B9020E94100AF894E091F90265 -:10399000F0E0EA50FD4F80818B878093C00261E0A8 -:1039A00070E0C8010E9447098093BF020E94100A7C -:1039B000F894C090C102D090C202E090C302F0908F -:1039C000C4028091A7029091A802A091A902B0918F -:1039D000AA02C816D906EA06FB06D1F0C092A702D1 -:1039E000D092A802E092A902F092AA020E94460E8A -:1039F00081110EC00E94F808C61AD70AE80AF90A0F -:103A0000C092E102D092E202E092E302F092E4027C -:103A10000E94100AF8948091CC02882321F184FF3F -:103A200004C09091CD029093480380FF0DC0809117 -:103A3000C50280FF2CC090915E04916090935E045B -:103A400060E086950E94B4158091CC0281FF09C088 -:103A500020E04091C8026091C7028091C6020E9496 -:103A60009D141092CC020E94100AF8948091CE020C -:103A70008093FB020E94100AF8948091CF02882361 -:103A800049F00E947B0D0E94100A80E072CE0E94D5 -:103A90008E0FDACF0E94600DF6CF5F926F927F9209 -:103AA0008F929F92AF92BF92CF92DF92EF92FF924E -:103AB0000F931F93CF93DF9300D000D00F92CDB719 -:103AC000DEB76C01FC0183819481892B31F0808108 -:103AD000918189238F3F09F082C50F900F900F903D -:103AE0000F900F90DF91CF911F910F91FF90EF906A -:103AF000DF90CF90BF90AF909F908F907F906F900E -:103B00005F9008950E941014182F682F89819A8160 -:103B10000E941F0C69817A81812F0E9403148C01FD -:103B2000F6018281882309F463C0C801905681158B -:103B3000F0E29F0750F0905E811520E1920728F097 -:103B4000915C81159F4108F0A5C0C80199279C018F -:103B5000245031092432310520F08B970E9708F05C -:103B600047C08091A2029091A3020097D9F10E94D0 -:103B7000E61A9C0150E040E060E67AEE80E090E0DA -:103B80000E94AE31CA01B90125E030E040E050E0CA -:103B90000E94AE31E090FB022F3F310519F010F08A -:103BA0002FEF30E0F12C2E193F09B90190E080E0B1 -:103BB0000E94DF3527EA39E747E45DE30E94AE362D -:103BC0000E9499354B015C01B701FF0C880B990BE2 -:103BD0000E94E135A50194010E942D350E94B03567 -:103BE0006093FB020E94F51A9093A3028093A202B5 -:103BF000F6018281882309F4E6C4C80182519F45F9 -:103C0000409708F071C48FEF93E00E94E4340251B2 -:103C100097E5A92E92E0B92E81115FCF011143C023 -:103C20001C821B82662463948AE0582E85010F5FF4 -:103C30001F4FC5010E94E43489831A82882309F446 -:103C40004CCF9FEF980F9330E8F58A83698232E07A -:103C5000A30EB11CC8010E94E4348B83882309F4AD -:103C60003CCF8E010F5F1F4FF80120812223F1F21C -:103C7000213009F061C091818281913029F50E5F78 -:103C80001F4F6AE070E0893311F460E570E00E9434 -:103C9000790E20C090E080E00F3F110511F008F090 -:103CA00056CFC80154CFA114F4E0BF0609F415CFD4 -:103CB000C5010E94E434811101C001502FEFA21A06 -:103CC000B20AACCF5801CDCF923039F40E5F1F4FFE -:103CD0000E94AB0C0F5F1F4FC7CF933029F40E5FCC -:103CE0001F4F0E94720CF6CF943019F00F5F1F4FD8 -:103CF000F1CF0E5F1F4F30E020E0B8016F5F7F4FC4 -:103D0000F80141818053990B8A30910550F0215080 -:103D1000310900F38FE99FE00197F1F700C000003F -:103D2000F6CF529EF001539EF00D11249C012E0FF0 -:103D30003F1F842F8B01E1CFE22FF0E0EA54FE4FCA -:103D40007490822F86958695869590E0FC01EA55C1 -:103D5000FE4FE4902770F12C022E02C0F594E794F8 -:103D60000A94E2F7E1E0EE22FF24FC01EA56FE4F5E -:103D7000C490D12C022E02C0D594C7940A94E2F7C5 -:103D8000F1E0CF22DD24FC01EA57FE4F8490912C14 -:103D900002C0959487942A95E2F721E08222992423 -:103DA000E114F10419F081EE0E94AB0CC114D104AE -:103DB00019F086EE0E94AB0C39E36AE070E07312F2 -:103DC00002C060E570E0872D0E94790ECD2819F0C1 -:103DD00086EE0E94720CEF2819F081EE0E94720CA0 -:103DE000892809F477CF6AE070E08CE250CF81E057 -:103DF0000E94B71603C081E00E94AB160F900F908F -:103E00000F900F900F90DF91CF911F910F91FF9026 -:103E1000EF90DF90CF90BF90AF909F908F907F906A -:103E20006F905F900C94A01682E0E2CF013E1105E6 -:103E300009F49AC0043E110509F07CC3882309F4F3 -:103E4000CEC081E08093FC0275C30238FFE51F07F6 -:103E500009F459C000F500383FE51307B9F10138FE -:103E60004FE5140709F066C3882309F445C0809123 -:103E7000A602811106C081E08093A60282EE0E9414 -:103E8000AB0C0E94F51A9093A5028093A40281EED8 -:103E90000E94AB0C2DC003385FE5150709F447C03D -:103EA00004389FE5190709F045C3882309F482C047 -:103EB00080914302882309F45AC0809144020E94F1 -:103EC000720C80EE0E94AB0C8AE25EC08823B9F0CF -:103ED0008091A602811106C081E08093A60282EE45 -:103EE0000E94AB0C0E94F51A9093A5028093A40245 -:103EF0008BE20E94AB0C1EC381EE0E94720C8BE21F -:103F00000E94720C17C3882309F414C381EE0E9427 -:103F1000AB0C83EE0E94AB0C8FE40E94AB0C8FE4E1 -:103F20000E94720C83EE0E94720C81EEE9CF88230E -:103F300009F400C381EE0E94AB0C83EE0E94AB0C2F -:103F400080E50E94AB0C80E5EBCF80934602109396 -:103F5000450200934402882321F081E08093FD0212 -:103F6000E9C21092FD02E6C280934302F0CF809135 -:103F70004602882309F4A8CF809144020E94720C63 -:103F800080EE0E94AB0C8CE40F900F900F900F907E -:103F90000F90DF91CF911F910F91FF90EF90DF90E5 -:103FA000CF90BF90AF909F908F907F906F905F90D9 -:103FB0000C94AB0C8AE20E94720C8CE40E94720C8E -:103FC00080EE0E94720C80914302811105C08091A5 -:103FD0004602882309F481CD80914402D5CF109206 -:103FE000FC02A8C2882331F081E08093FF02109286 -:103FF0006E01A0C21092FF029DC2073C2CE5120781 -:1040000009F4AEC008F4A7C0083C4CE5140709F455 -:10401000ACC0093C1C4509F0ADC240E555E16CE57A -:1040200075E179C0043DECE51E07A8F40E3CFCE503 -:104030001F0708F052CD0C3C2CE5120709F49FC075 -:1040400042E955E163EA75E10D3C1C4508F463C0A3 -:1040500061E081E046C0053D4CE5140709F43DCD23 -:1040600008F492C00D351D4509F437CD83C2809107 -:104070005E0480FF31C08E7F80935E0460915E0499 -:1040800070915F0480916004909161040E948B1490 -:10409000809147038160809347039FEFE0E7F2E060 -:1040A0009150E040F040E1F700C000000F900F9009 -:1040B0000F900F900F90DF91CF911F910F91FF9074 -:1040C000EF90DF90CF90BF90AF909F908F907F90B8 -:1040D0006F905F900C948E0E816080935E0461E01F -:1040E00086950F900F900F900F900F90DF91CF91CA -:1040F0001F910F91FF90EF90DF90CF90BF90AF9006 -:104100009F908F907F906F905F900C94B41542ECCD -:1041100056E16BEC76E10F900F900F900F900F909F -:10412000DF91CF911F910F91FF90EF90DF90CF9093 -:10413000BF90AF909F908F907F906F905F900C9406 -:104140005D094BEC56E162EC76E1E5CF40E855E1E4 -:1041500069E875E1E0CF49E855E160E875E1DBCF5A -:1041600048E655E164E775E1D6CF44E755E168E6F6 -:1041700075E1D1CF4CE555E160E575E1CCCF43EA7F -:1041800055E162E975E1C7CF0F900F900F900F9046 -:104190000F90DF91CF911F910F91FF90EF90DF90E3 -:1041A000CF90BF90AF909F908F907F906F905F90D7 -:1041B0000C94D5160E3D1C4509F0DCC10F900F90F4 -:1041C0000F900F900F90DF91CF911F910F91FF9063 -:1041D000EF90DF90CF90BF90AF909F908F907F90A7 -:1041E0006F905F900C94FC16C8010E94F70BF82E9C -:1041F000CFC1092F0F70907F11F00295007F812FA2 -:104200002223C9F0002369F090E2910F983010F05A -:1042100011110BC080914604082B009346040E94A4 -:10422000D60B812F0E94AB0C17C080919B02082BEC -:1042300000939B02F4CF0E94720C002369F000955A -:10424000105E183010F0B11027C08091460408238A -:10425000009346040E94D60B98E0E91AF108E4E0C6 -:10426000EE16F10408F039CC0E94690E0F900F9001 -:104270000F900F900F90DF91CF911F910F91FF90B2 -:10428000EF90DF90CF90BF90AF909F908F907F90F6 -:104290006F905F900C94091680919B020823009305 -:1042A0009B02D8CF892F8F70907F903211F082952A -:1042B000807FF1E0BF120CC0222329F0333060F67A -:1042C0000E94680CC9CF323038F60E945D0CC4CF12 -:1042D000222341F03323A1F340FFA3CF4F70F60117 -:1042E0004583EECF332389F3193309F0F5C0FFEF8F -:1042F00027EE33E0F15020403040E1F700C00000ED -:10430000812F0E94720CA8CF892F86958695837085 -:1043100061F0813009F0A0CF812F9370211102C08C -:1043200090E080E00E94040997CF812F93702111C3 -:1043300002C090E080E00E941A098ECF892F83701E -:10434000A1F5211189CF812F829586958770880FDD -:10435000880F412F4F70082E01C0440F0A94EAF7CE -:10436000212F207114FF07C02FE030E001C0220F81 -:104370008A95EAF72095969596959370923081F0FC -:10438000822F842B933030F480919C02913029F05D -:10439000242B82230E94590C5FCF842B822BFACFCF -:1043A000242B80919C028227F5CF8695222311F041 -:1043B000892F8170882309F44FCF812F82958695AC -:1043C0008770880F880F412F4F70082E01C0440F4F -:1043D0000A94EAF7212F207114FF07C02FE030E084 -:1043E00001C0220F8A95EAF72095969596959370CD -:1043F000923081F0822F842B933030F480915D04D1 -:10440000913029F0242B82230E949A1625CF842BE9 -:10441000822BFACF242B80915D048227F5CF092FC0 -:104420000F70222329F0802F0E94B716812F48CFCA -:10443000812F0E945D0C802F0E94AB160DCF812F23 -:10444000E1EF1E1789F1E11750F0F0EF1F17B9F0F7 -:104450002223B1F13111E5CE892F8F7129C042EFAE -:10446000141749F153EF1513F3CF80E0222361F2C3 -:104470009F7181E001C0880F9A95EAF7C5CF22238A -:1044800079F0323008F0E8CE292F2F7181E090E0EA -:1044900001C0880F2A95EAF790915D048927B4CF6F -:1044A000333008F0D9CEF0CF892F8F71222321F23B -:1044B0000E94B716D1CE892F8F712223C9F3BCCFAA -:1044C000332379F0893341F48FEF97EEE3E08150A5 -:1044D0009040E040E1F712CF8FE39CE90197F1F7BC -:1044E0000DCF892F8F71A8CF0031FFE51F0709F489 -:1044F0007ECC01312FE5120709F496CC0E94F80812 -:10450000609304037093050380930603909307035D -:10451000F6018281053E110509F417CD08F095CC0E -:10452000003E110509F48ACC08F080CC0C3211054C -:1045300009F458CDF601928191113CCE8091460448 -:1045400082720A3CFCE51F0709F414CE08F06ACD1C -:10455000053C3CE5130709F4F9CD08F04ECD033CCA -:104560005CE5150709F4D3CD08F0EBCD023C1C4502 -:1045700009F47DCDF60100811181992309F434CE2F -:10458000C8010E941014F82E682FC8010E941F0C49 -:10459000B8018F2D0E9403140E946C0A182FB82EA8 -:1045A000F60122814581342F32953F70892F829503 -:1045B0008F70E82EF12C8C3008F04ECEF701EB5CBA -:1045C000F84C0C94CD3100313FE5130709F413CCBE -:1045D00001314FE5140709F09BCF82E00DCC85E057 -:1045E000DE01119601900D928A95E1F7F601228184 -:1045F00089819A81211186CA0E94F70B182F8ACAD5 -:104600001F93CF93DF9380916702807FA9F48091FD -:104610006402882389F080919902D09168026091A8 -:10462000620270916302A0916502B0916602C62F8A -:10463000C72316E0D81304C0DF91CF911F910895CE -:1046400090E0109711F0CF3F19F401968770F2CFE8 -:10465000189F9001199F300D1124F901E759FD4F62 -:1046600041814713F2CF40814613EFCF4281411180 -:10467000ECCF438154814A1B5B0B403A510528F72C -:10468000809167028F70806180936702F901E2591F -:10469000FD4F80818F708061808382E692E00E946E -:1046A0004D1DDF91CF911F910C94ED0BAF92BF92F6 -:1046B000CF92DF92EF92FF920F931F93CF93DF93EE -:1046C000CDB7DEB761970FB6F894DEBF0FBECDBF92 -:1046D0008C0185E0F801DE011D9601900D928A950E -:1046E000E1F7F801E28082E6A82E82E0B82E609120 -:1046F0006502709166026115710509F432C19091ED -:10470000620240916302892F84238F3F09F429C1FB -:1047100020813181C380D480F0906402F601E61BD1 -:10472000F70BFF2009F4E8C080916702582F507FF3 -:10473000E03AF10508F0ABC0511177C0FE2C4313ED -:1047400021C092131FC0E1101DC08F708061809343 -:104750006702C5010E944D1D80916702F8018583A3 -:104760008F2D61960FB6F894DEBF0FBECDBFDF91DF -:10477000CF911F910F91FF90EF90DF90CF90BF905E -:10478000AF900895CD2829F0822F83238F3F09F021 -:1047900003C180E0F82FF170DF2E80FF3CC08091D4 -:1047A00099024091680256E0841315C02D873E8718 -:1047B0008D859E850E943F14292F22952F702230CF -:1047C000F0F0243018F59F70F1F0F8019581907F9A -:1047D000D1F4D12C1EC090E0589FF001599FF00DEC -:1047E0001124E759FD4F6181361306C060812613FD -:1047F00003C06281E6120FC001968770D5CF9F700B -:1048000011F0882331F3805E883018F3C8010E94CC -:104810004D1DFD2CA5CFEE2009F4A2CF809167029B -:10482000816080936702F12C9BCF431306C09213E3 -:1048300004C0F801EE2009F479C0C8010E944B14AD -:10484000882309F1EE20F9F080916702803270F040 -:10485000209162023091630238872F831986DB86AC -:10486000CA868C87CE0107960E944D1D86E0F8010E -:10487000A2E6B2E001900D928A95E1F70E94002332 -:10488000FF24F3946DCFC8010E944D1DF9CF511143 -:104890000AC082E692E00E944D1D86E0F501119269 -:1048A0008A95E9F7C0CF43130FC092130DC0E110F2 -:1048B0000BC0F8018583C8010E944D1D86E0F501FB -:1048C00011928A95E9F74CCFC8010E944B148823B6 -:1048D000D1F2EE20C1F280916702803238F220914D -:1048E0006202309163023A8329831B82DD82CC828B -:1048F0008E83CE010196B8CFE03AF105F8F6FE2C92 -:10490000EE2009F243131FC092131DC0809167026D -:1049100080FD10C0982F907F69F0F8018583903F4B -:1049200031F0982F907F905F8F70892B8583C8011D -:104930000E944D1D86E0F801A2E6B2E001900D92C2 -:104940008A95E1F70DCFC8010E944B1481118ECFDB -:1049500080916702816080936702C8010E944D1DAB -:10496000FFCEEE2009F48FCFC8010E944B14F82E21 -:10497000882309F488CF86E0F801A2E6B2E001902E -:104980000D928A95E1F780916202909163020E94F4 -:104990003F140E940023E4CE81E08E25FBCE1F93BE -:1049A000CF93DF93CDB7DEB767970FB6F894DEBF2E -:1049B0000FBECDBF4B8B5C8B6D8B7E8B8F8B611154 -:1049C00010929B021A8A198A85E0FE017396DE0115 -:1049D0001D9601900D928A95E1F786E0FE013D96C5 -:1049E000DE01179601900D928A95E1F7CE010796A8 -:1049F0000E945623882389F016E0809199029091B5 -:104A0000680289134BC067960FB6F894DEBF0FBEDD -:104A1000CDBFDF91CF911F91089586E0FE013796BB -:104A2000DE01119601900D928A95E1F78A859B85AA -:104A3000892B11F38F81988589238F3FE9F220918B -:104A4000680230E0C9010196877099274091990268 -:104A50004817190681F4109246040E94A30F109281 -:104A600068021092990286E0E2E6F2E0DF011D9210 -:104A70008A95E9F7C1CF96E0929FD001939FB00D40 -:104A80001124A759BD4FFE01319601900D929A95C0 -:104A9000E1F7809368020E94ED0BAECF819FC001C9 -:104AA000112487599D4F0E945623882309F4ABCFC8 -:104AB0008091990290E001968770992780939902DE -:104AC0009CCF0F931F93CF93DF93CDB7DEB7A897FB -:104AD0000FB6F894DEBF0FBECDBF81114DC006E00A -:104AE000662359F10CA311E01DA31EA30E94F51A21 -:104AF0008160782F98A78FA34CA15DA16EA188A596 -:104B00000E94CF240F8F18A319A20E94F51A81606A -:104B1000782F9BA38AA34F8D58A169A18BA10E94D6 -:104B2000CF2481E0A8960FB6F894DEBF0FBECDBFAC -:104B3000DF91CF911F910F9108950A8F13E01B8F82 -:104B400081E08C8F0E94F51A8160782F9E8F8D8F67 -:104B50004A8D5B8D6C8D8E8D0E94CF240D8B1E8BAC -:104B60001F8A0E94F51A8160782F998F888F4D894E -:104B70005E896F89898DD3CF813099F66623F1F0F4 -:104B800016E0188B198B8A8B0E94F51A8160782F9A -:104B90009C8B8B8B488959896A898C890E94CF2488 -:104BA0001B871C871D860E94F51A8160782F9F87BE -:104BB0008E874B855C856D858F85B1CF06E00E8332 -:104BC00018E01F8388870E94F51A8160782F9A87E2 -:104BD00089874E815F8168858A850E94CF240983F9 -:104BE0001A831B820E94F51A8160782F9D838C8323 -:104BF00049815A816B818D8192CFCF92DF92EF9262 -:104C0000FF920F931F93CF93DF930F92CDB7DEB731 -:104C1000EE24E394F12C00EC12E09E012F5F3F4F55 -:104C200045EB52E063E082E00E94B018082F882331 -:104C300021F1C090F4028C2D90E09C012A503D4F50 -:104C400079011981F9018081181BD12E80E00AC0F9 -:104C5000DA94F70180818F5F808360E08C2D0E9461 -:104C60006125802F1D14A4F3912F17FD90E0191BCF -:104C700011110EC081110E94D40B802F0F90DF9173 -:104C8000CF911F910F91FF90EF90DF90CF900895FB -:104C90001F5FF70180818150808361E08C2D0E942D -:104CA0006125802FE5CF1F921FB61F9211248F938D -:104CB0009F93AF93BF9380913D04811113C0809166 -:104CC0003E0490913F04A0914004B091410441966C -:104CD000A11DB11D80933E0490933F04A093400416 -:104CE000B0934104BF91AF919F918F911F901FBED0 -:104CF0001F901895CDB7DEB7E0970FB6F894DEBFDA -:104D00000FBECDBF84B7877F84BF0FB6F894A89538 -:104D100080916000886180936000109260000FBEF7 -:104D200080E890E00FB6F894809361009093610062 -:104D30000FBE85B7806885BF85B7806885BF8EE068 -:104D40009AE090933902809338020E946A070E9489 -:104D500035088091E20084608093E200789480912D -:104D600053048823A1F01091E9001F709091EC008A -:104D7000892F817090FD80E8182B1092E9008091B6 -:104D8000E80083FD0E94AC0F1F701093E90082E0E1 -:104D900084BD93E095BD9AEF97BD80936E0010920D -:104DA000E1021092E2021092E3021092E4020E94E9 -:104DB0007214811102C00E94CE130E94460E80938D -:104DC000610180916101882309F4C6C010927601C7 -:104DD00085E2809377010E94460E81110E94B92FCF -:104DE0008091610181112FC0FE01359686E0DF01BF -:104DF0001D928A95E9F786E6898387E98A8386EC9E -:104E00008B8384E38C8385E38D833497A7E5B1E0BE -:104E1000CE010B9621912D938E179F07D9F787E02E -:104E2000ECE7F1E0DE01919601900D928A95E1F7B1 -:104E3000FE01B196A0E5B1E0CE01889621912D93B7 -:104E40008E179F07D9F78091610195E0811190E05D -:104E50009093F20285E0891B8093F10207E511E04F -:104E6000FCE5EF2EF1E0FF2EF80181918F018F3FDD -:104E700011F00E94120AE016F106B1F700E511E008 -:104E8000E7E5EE2EE1E0FE2ED8018D918D018F3FFA -:104E900011F00E94120AE016F106B1F7E7EEF2E017 -:104EA00081EF92E0ABE3B3E011921D928E179F0762 -:104EB000D9F70E949C19811102C00E94FC1682E061 -:104EC00090E00E94E4348093300384E090E00E94FC -:104ED000E434182F82E290E00E94E434982F812F6E -:104EE0009093E6028093E5020E94011BEFE7FBEB43 -:104EF0003197F1F700C000000E94011B80913B0335 -:104F000080FF2EC06FEF7FEF90E080E00E941635AB -:104F100081E08093E00080E28093D8001092C90085 -:104F20008FE19EE40197F1F700C0000087E090EB6D -:104F3000DC018093670690936806A0936906B0939E -:104F40006A0688E19CE00FB6F894A895809360000B -:104F50000FBE90936000FFCF85E28093760139CF3A -:104F600083E090E00E94E4340E94590C80915D043B -:104F70000E9421160E94460E811102C00E94BC2F81 -:104F800083E080932B0380E280932A040E94512EB9 -:104F90006DE070E089E492E00E94300D892BE9F524 -:104FA00080912B0363E070E081FDFFC186E492E015 -:104FB0000E94300D892B89F56DE070E086E392E068 -:104FC0000E94300D892B49F50E94F8086058774CF3 -:104FD0008E4F9F4F6093310470933204809333045B -:104FE00090933404E5E6F4E080E092E0DF019C0178 -:104FF0001D9221503040E1F7F0936606E09365067C -:105000008FEF9FEF909364048093630481E080931B -:1050100036048093350410922C038091F3028111A1 -:1050200036C00E949C19811104C00E94FC160E9487 -:10503000E41688E090E00E94EC3460935E04709384 -:105040005F048093600490936104809147038360C0 -:10505000809347036E7F71F40E94E41688E090E02D -:105060000E94EC3460935E0470935F04809360044C -:10507000909361040E94620980915E0480FF04C0E5 -:1050800060E086950E94B41581E08093F3028091E0 -:105090006101811106C084EF80936D0185EF8093DB -:1050A0006C0120916D01A22FA295AF70B0E0919696 -:1050B0003C9191972F7081E090E0BC01022E01C0DD -:1050C000660F0A94EAF7462F4095432391964C9336 -:1050D000919792963C919297362B92963C93929709 -:1050E00040916C01E42FE295EF70F0E031A14F7038 -:1050F000042E01C0880F0A94EAF7982F9095932305 -:1051000091A392A1892B82A390968C9190E002C0EA -:10511000959587952A95E2F7817020A130E002C02D -:10512000359527954A95E2F792E020FF90E0892B8C -:105130008093FA029091610181E098279093F9029F -:10514000891B8093F40286E592E090934B03809351 -:105150004A0360E08AE00E94B41581E00E949A163A -:1051600082E691E090933A048093390470E4672ECC -:10517000CE0101967C0180915304DD24D39400E19B -:1051800012E1853009F45EC10E94011BC82E811115 -:105190000E94F808E1E3F3E0ABE3B3E010E000E0E5 -:1051A000902EBD9081918B1509F476C18B25A12C91 -:1051B000DD24D3949D2D982309F469C10E94460EE5 -:1051C000882399F0A9A29AA2BD2081E009F480E089 -:1051D0008BA30E94F51A8160782F9DA38CA349A10F -:1051E0005AA16BA18DA10E94CF24F801EF5CFC4F66 -:1051F0008081D826D0828091FA02E82FEE0FEE0F40 -:1052000090916D01A92FA295AF70B0E090962C916E -:1052100030E09F7002C0359527959A95E2F721708E -:10522000332790916C01A92FA295AF70B0E09096B2 -:105230004C9150E09F7002C0559547959A95E2F7C2 -:10524000CA018170992740FF02C082E090E0822B62 -:105250008E2B8093FA021091F9028F70E82FF0E004 -:10526000EC5FFD4F80819091F802890F8093F802E6 -:10527000D12C84306CF0E12FF0E0EA50FD4F8081BA -:105280008F5F808360E0812F0E946125DD24D394AD -:105290008091F8028D3F6CF4E12FF0E0EA50FD4F71 -:1052A00080818150808361E0812F0E946125DD240F -:1052B000D3948091F802082E000C990B64E070E002 -:1052C0000E949A318093F802D1100E94D40B8091F1 -:1052D0003604882351F180912D0390912E030E9472 -:1052E000E61AC29708F0EFC020916304309164047D -:1052F0002115310509F049C2809135048823A9F0B0 -:105300000E94F80800913104109132042091330476 -:1053100030913404601B710B820B930B6F3F7F4FF6 -:105320008F4F9F4710F40E94600DC11001C0D11033 -:105330000E947B0D0E94690E90912F03891731F016 -:105340000E94690E80932F030E94091680915304D6 -:10535000843009F010CF83E08093E9008091E80069 -:1053600082FF09CF8091E80090E085FF0CC00E9489 -:10537000890730E2C32ED12C8E010F5F1F4F882387 -:1053800009F4E2C291E08091E8008B778093E80015 -:10539000992309F4F0CEE981E150E33108F036C3F6 -:1053A000F0E0EF5BF84C0C94CD3183E492E000CE5A -:1053B00080915304843009F435C00E94600D80E070 -:1053C0000E94091680914903811109C0D0924903B6 -:1053D00080915E0481708093F5020E948E0F10927E -:1053E0003D04A8E1B0E00FB6F894A895A093600042 -:1053F0000FBE6092600083B7817F846083BF83B7F4 -:10540000816083BF7894889583B78E7F83BF0FB602 -:10541000F894A89580916000886180936000109254 -:1054200060000FBE80915204882361F00E94011B2E -:10543000EBE3F3E08191811113C425E433E02E17EF -:105440003F07C1F780915304853009F4B1CF109222 -:1054500046040E94A30F0E94690E0E940916109232 -:1054600049038091F502882351F080915E048160A8 -:1054700080935E0460E086950E94B41585CE80918D -:105480004803882309F480CE0E948E0E7DCEA3941B -:10549000DD0C37E0A3128ECE0F5F1F4F0A301105CF -:1054A00009F07ECE8FEF88A789A71AA60E94F51A69 -:1054B0008160782F9CA78BA748A559A56AA58CA5C4 -:1054C0000E94CF2498CE0E94F51A90932E038093C9 -:1054D0002D0360E080E00E9430098091FB0290E0A3 -:1054E00090930A03809309030E94690E8093080336 -:1054F0000E94460E882331F1409104035091050328 -:1055000060910603709107032FB7F89480913E04D1 -:1055100090913F04A0914004B09141042FBF841B9F -:10552000950BA60BB70B81339547A105B10540F04C -:105530000E94600D80913604882309F4DDCED4CE1C -:105540000E947B0D0E94460E62E0882309F4DEC0B3 -:1055500080E00E94300960E083E891E00E9434130B -:1055600063E080E00E94300980915D040E941F0D7D -:10557000813009F497C0882309F48EC0823009F481 -:1055800099C0833009F492C066E080E00E9430093F -:1055900060E081EA91E00E94341367E080E00E94BD -:1055A0003009609108036695617086EA91E00E9477 -:1055B000341368E080E00E94300960910803609530 -:1055C00061708BEA91E00E94341369E080E00E94F0 -:1055D00030096091080362FB662760F98FEA91E069 -:1055E0000E94341340910003509101036091020323 -:1055F000709103032FB7F89480913E0490913F047B -:10560000A0914004B09141042FBF841B950BA60BC1 -:10561000B70B8D329140A105B10508F48BCF0E94E4 -:10562000F808609300037093010380930203909342 -:1056300003038091FF02811104C080916E018111EA -:105640003DC06FE080E00E94300960E084EB91E0B3 -:105650000E9434136CE080E00E94300981E0809366 -:105660006E018091FE0290E00196817099278093EF -:10567000FE0221E030E0281B390B40E6429FC001CA -:10568000439F900D11242091FD02222329F18A5974 -:105690009A4F0E9427074ECF60E089E891E00E9470 -:1056A000341372CF60E08FE891E0F9CF60E085E9D4 -:1056B00091E0F5CF60E08BE991E0F1CF6CE080E024 -:1056C0000E94300960E084EB91E00E9434136DE0A9 -:1056D00080E00E943009C5CF2091FC02222319F0FE -:1056E0008A559B4FD6CF2091090330910A032B3066 -:1056F00031051CF48A519C4FCCCF293231051CF462 -:105700008A5D9C4FC6CF8A599D4FC3CF80E00E94CF -:10571000300960E08AEB91E00E94341363E080E09E -:105720000E94300960E080EC91E00E94341367E051 -:1057300080E00E94300986E296E00E9427076DE033 -:1057400080E00E94300980910A038F9380910903C1 -:105750008F9386EC91E09F938F93FF92EF920E943C -:10576000523260E0C7010E9434136EE080E00E9474 -:10577000300960E08CEC91E00E9434130F900F90A0 -:105780000F900F900F900F90D5CE80912C0361E079 -:1057900070E08111B1CD482E512C1B01082E02C0A2 -:1057A000220C331C0A94E2F7A90142215321452B14 -:1057B00009F448C090912B0390FD46C08295880F54 -:1057C00080768093710192013695279536952795BD -:1057D00020937401815E809372011092750124E61A -:1057E00030E047E050E06FE671E088E70E94002F6C -:1057F000892B09F081CD55E0440C551C5A95E1F7F1 -:1058000080912B0380FD2EC0A2014B595B4F04E613 -:1058100010E020E230E060E488E70E94272F892B27 -:1058200009F06ACD0E947B0DC10180959095209072 -:105830006304309064042822392230926404209258 -:1058400063045ACD8F5FA7CF880F880F880F80938E -:10585000710110927401895F8093720183E08093DB -:105860007501BDCFEBE0F3E080E2DF011D928A9588 -:10587000E9F7E8E1F2E0F8ABEFA764E172E047E0B6 -:10588000A42E99249394AFA5B8A94D91B8ABAFA716 -:10589000FB018191BF01840D952D911D9C012B5918 -:1058A0003B4F3EA72DA7E42FF0E0E55FFC4F30E033 -:1058B00020E07A2C721AB92C022E01C0BB0C0A947B -:1058C000EAF70DA51EA590E0D8018D918D018B21E1 -:1058D000472D491B4770842E042E000C550BB82F02 -:1058E00001C0BB0F8A94EAF78B2E5195419551095F -:1058F0004770552701C086954A95EAF7882A808126 -:10590000882A80829F5F9830F9F62F5F3F4F31964B -:105910002830310571F6ECE1F2E02FA538A9E21745 -:10592000F30709F0B0CF04E610E020E230E04BE0EE -:1059300053E071CF8091F100D8018D938D01B1E0DA -:10594000CB1AD10809F41ECD8091E80085FDF2CF75 -:105950008091E8008B778093E8000E948907882374 -:1059600099F310CD1A8289E08B8311C08A8182302D -:1059700009F48EC1833089F1813009F047C00E945B -:10598000F8080E94D3316B837C838D839E83809142 -:105990005304843009F0EFCB1091E9001F7090910F -:1059A000EC00892F817090FD80E8182B82E08093B5 -:1059B000E9008091E80080FF0CC050E040E060E228 -:1059C00070E0C7010E94BA078091E8008E7780934B -:1059D000E8001F701093E900CECBDE011396EBE3D5 -:1059E000F3E081918D9323E0E534F207D1F7CFCF37 -:1059F0008A81823059F46B817C818D819E810E94E5 -:105A0000D33186E290E00E94F834C1CF8FEF8983D2 -:105A1000BECF4C816B818A810E94DD139827892734 -:105A200098279E838D83B3CF0D811E811027012778 -:105A300010278A81CB803EE0C39E600111249CE840 -:105A4000899FC00CD11C11248C8190E0880F991F74 -:105A5000C80ED91E612FC60187960E94F834602FA8 -:105A6000C6018896D0CF0E94601391CF8A81813879 -:105A7000C1F060F4803809F08ACF20E04B8160915A -:105A8000600480915F040E949D1481CF8238E9F008 -:105A9000833809F07CCF20E0409161046C818B81D8 -:105AA000F2CF60E08B810E94B4158B81811103C01D -:105AB0000E948E0F6CCF80915E04816080935E04A3 -:105AC00060E086950E94B41562CF8B81809362045A -:105AD0005ECF8A81813899F030F4803809F057CF51 -:105AE0008091610441CF823891F0833809F04FCF23 -:105AF00080915F048B83809160048C8348CF809178 -:105B00005E0480FF02C086952FCF80E02DCF80916C -:105B100062042ACF60915E0470915F0480916004FA -:105B2000909161040E948B1432CF80E18A832FCF41 -:105B300081E08A8389EA18CFAA80BB80BA24AB248B -:105B4000BA248E010F5F1F4FCC80C00ED12ED11C06 -:105B5000C501895A9D4F0C151D0509F418CFA9EAF6 -:105B6000AA16A1E0BA0650F40E94E434F801848336 -:105B7000BFEFAB1ABB0A0F5F1F4FEACFD8011496D5 -:105B80001C92F6CF0A811B81102701271027FE01E6 -:105B900031965F01CC80C00ED12ED11CC801895A2C -:105BA0009D4FC016D10609F4F2CE093AF1E01F0765 -:105BB00028F4D50114966C910E94F834BFEFAB1A0B -:105BC000BB0A0F5F1F4FEACF0E945013E0CE84E064 -:105BD000ADCFAA80BB80BA24AB24BA248E010F5F5C -:105BE0001F4FCC80C00ED12ED11CC5018796C01688 -:105BF000D10609F4CCCEE0E3AE16E2E0BE0658F4DE -:105C00000E94E434D80114968C93FFEFAF1ABF0AB8 -:105C10000F5F1F4FEACFF8011482F7CF0A811B8173 -:105C20001027012710279E012F5F3F4F5901CC807D -:105C3000C00ED12ED11CC8018796C016D10609F41A -:105C4000A6CE003332E0130728F4D50114966C91E8 -:105C50000E94F834BFEFAB1ABB0A0F5F1F4FEBCFA8 -:105C600009BD19BD09B400FEFDCF8091D8008F7D1C -:105C70008093D8008091E00082608093E000809162 -:105C8000E00081FDFCCF109246040E94A30FDACB06 -:105C900086E290E00E94E4341B821C821D828E8387 -:105CA00076CE1092B9008CE08093B80008959F9250 -:105CB000AF92BF92CF92DF92EF92FF920F931F931A -:105CC000CF93DF93B82EEB010E94F51A6C01EE24FE -:105CD000E394F12CC431D10560F025E0E22EF12CE3 -:105CE000CF3FDC0731F0CE0164E170E00E947A31F1 -:105CF0007B0184EAA82E94E8992E1092BC00A09211 -:105D0000BC000E94F51A8C018091BC0087FF0DC079 -:105D10008091B900887F883039F18091B900887FFF -:105D2000803111F10FEF1FEF09C00E94F51A801B9F -:105D3000910B8E159F0540F30EEF1FEFCF3FDC0751 -:105D4000E1F2C6010E94E61A8C179D07B0F2C80165 -:105D5000DF91CF911F910F91FF90EF90DF90CF9047 -:105D6000BF90AF909F900895B092BB009092BC00FE -:105D70000E94F51A8C018091BC0087FF0AC08091B7 -:105D8000B900887F883111F0803461F610E000E0BE -:105D9000DECF0E94F51A801B910B8E159F0558F3DC -:105DA000CBCF0F931F93CF93DF93EB018093BB0077 -:105DB00084E88093BC000E94F51A8C018091BC009D -:105DC00087FF11C02091B900287F81E090E0283240 -:105DD00011F490E080E0919581959109DF91CF9148 -:105DE0001F910F910895CF3FDC0741F30E94F51AF0 -:105DF000801B910B8C179D0708F38EEF9FEFEECF62 -:105E0000CF92DF92EF92FF920F931F93CF93DF9386 -:105E10006B018A017901B9010E94572EE6010C0D30 -:105E20001D1DC017D10761F424E92093BC00DF9148 -:105E3000CF911F910F91FF90EF90DF90CF90089539 -:105E400097FDF2CFB70189910E94D12EEACFCF9270 -:105E5000DF92EF92FF920F931F93CF93DF93C62FA2 -:105E60006A017901B8010E94572E97FD0CC0B80154 -:105E70008C2F0E94D12EE601EC0CFD1CCE15DF0507 -:105E800011F097FF0CC024E92093BC00DF91CF9163 -:105E90001F910F91FF90EF90DF90CF900895B80180 -:105EA00089910E94D12EEACF84E98093BC000895A5 -:105EB0008EE14A9B02C08150E1F74A9BFECF0895D4 -:105EC0005A9880E28A95F1F75A9A0895FC013BE0CE -:105ED0003A95F1F798E020E080E031E040E14A9522 -:105EE000F1F7880F4A9B02C08160232742E04A9560 -:105EF000F1F7000040E14A95F1F7915079F790E110 -:105F00009A95F1F799B132E03A95F1F7000040E146 -:105F10004A95F1F792FB992790F992272081920FE9 -:105F200090830895EF92FF920F931F93CF93DF9387 -:105F30000F92CDB7DEB719828C017C01E60EF11C01 -:105F40000E151F0561F481E09981911180E00F9099 -:105F5000DF91CF911F910F91FF90EF9008950E94D4 -:105F6000582FCE0101960E94662FF80181938F0170 -:105F7000E7CF529A5A9A089552985A9AEA9AE9E6BD -:105F8000F0E080818F7C808308956150770B91E0F1 -:105F900001C0990F6A95EAF720E031E0911108C03D -:105FA000222391F05A9A80E28A95F1F75A9808953F -:105FB000492F482339F05A9A232740E24A95F1F7AE -:105FC0009695ECCF5A98F9CF5A98EDCFFF920F9350 -:105FD0001F93CF93DF93EC018C01060F111DC017A7 -:105FE000D10731F4DF91CF911F910F91FF90089568 -:105FF000F9900E94602F68E08F2D0E94C52FEFCF8F -:106000001F920F920FB60F921124EF92FF920F93EF -:106010001F932F933F934F935F936F937F938F9330 -:106020009F93AF93BF93EF93FF93CF93DF930F9221 -:10603000CDB7DEB719820E94582FCE0101960E947B -:10604000662FA82FA695A695A695282F2295257090 -:106050009A2F9570290F922F937026952695920F5F -:10606000982797708981982B09F075C0A93008F09E -:1060700072C080E18A95F1F75A9A529AB2E0BA95C5 -:10608000F1F700C05A98EA2EF12CEAE0AE9FD00159 -:106090001124A050BF4F1896ED91FC91199730979D -:1060A000B1F0609102027091030216962D913C911D -:1060B0001797260F371F13968D919C911497680F91 -:1060C000791F15964C91159712968C9109958AE037 -:1060D0008E9DF0018F9DF00D1124E050FF4F6581E2 -:1060E000662351F02091020230910302868197814C -:1060F000820F931F0E94E62F0E94602FF0E1FA9515 -:10610000F1F75A9852985A9A80E18A95F1F78AE005 -:106110008E9D80018F9D100D112400501F4FD801BE -:1061200012966C911297662371F1209102023091C0 -:10613000030213968D919C91820F931F0E94922FC0 -:10614000D801ED91FC91882311F088E001C082E034 -:1061500080830E94582F0F90DF91CF91FF91EF9194 -:10616000BF91AF919F918F917F916F915F914F916F -:106170003F912F911F910F91FF90EF900F900FBEC5 -:106180000F901F901895ED91FC91DFCF0F931F9307 -:10619000CF93DF93EC0109970CF0A9C08AE08C9FA4 -:1061A000F0018D9FF00D1124E050FF4F808191810F -:1061B000892B09F49CC0F894529A5A9885E08A95E4 -:1061C000F1F700008C2F869585709C2F9570890FB4 -:1061D000982F937086958695890F8E0193E0000F16 -:1061E000111F9A95E1F7082B0E94602F00C068E00C -:1061F000802F0E94C52FA0E1AA95F1F752985A9AD4 -:106200004A9B27C087E090E04A9925C08AE08C9F8E -:1062100080018D9F100D112400501F4FF8016581E2 -:106220006623A1F1209102023091030286819781B9 -:10623000820F931F0E94922F811128C0529A5A9A5E -:10624000D801ED91FC9182E08083789482E090E027 -:1062500016C000C0D5CF0197B9F4529A5A9A8AE075 -:106260008C9FF0018D9FF00D1124E050FF4F0190A5 -:10627000F081E02D81E08083789481E090E0DF91EF -:10628000CF911F910F91089500C0BECF0E94582F4B -:10629000B0E2BA95F1F75A98529AE0E1EA95F1F72F -:1062A0008AE08C9FF0018D9FF00D1124E050FF4F8C -:1062B0006281662351F020910202309103028381B2 -:1062C0009481820F931F0E94E62F0E94602F8AE024 -:1062D0008C9FF0018D9FF00D1124E050FF4F019035 -:1062E000F081E02D1082789490E080E0C8CF84E0C7 -:1062F00090E0C5CFAA1BBB1B51E107C0AA1FBB1F63 -:10630000A617B70710F0A61BB70B881F991F5A9541 -:10631000A9F780959095BC01CD010895991B79E06E -:1063200004C0991F961708F0961B881F7A95C9F725 -:106330008095089597FB072E16F4009407D077FDFB -:1063400009D00E947A3107FC05D03EF490958195E2 -:106350009F4F0895709561957F4F0895052E97FB87 -:106360001EF400940E94C53157FD07D00E94DA3117 -:1063700007FC03D04EF40C94C531509540953095F0 -:1063800021953F4F4F4F5F4F0895909580957095A1 -:1063900061957F4F8F4F9F4F0895EE0FFF1F059020 -:1063A000F491E02D09946927962769277827872794 -:1063B00078270895A1E21A2EAA1BBB1BFD010DC070 -:1063C000AA1FBB1FEE1FFF1FA217B307E407F507A5 -:1063D00020F0A21BB30BE40BF50B661F771F881F81 -:1063E000991F1A9469F760957095809590959B0117 -:1063F000AC01BD01CF0108952F923F924F925F9261 -:106400006F927F928F929F92AF92BF92CF92DF92C4 -:10641000EF92FF920F931F93CF93DF93CDB7DEB729 -:10642000CA1BDB0B0FB6F894DEBF0FBECDBF0994BD -:106430002A88398848885F846E847D848C849B8414 -:10644000AA84B984C884DF80EE80FD800C811B8122 -:10645000AA81B981CE0FD11D0FB6F894DEBF0FBE51 -:10646000CDBFED010895FB01DC0102C005900D9246 -:1064700041505040D8F70895FB01DC0104C08D91D4 -:106480000190801921F441505040C8F7881B990BA6 -:106490000895FB01DC0102C001900D924150504073 -:1064A000D8F70895AEE0B0E0E8E5F2E30C940A32E4 -:1064B0000D891E8986E08C831A8309838FEF9FE7FD -:1064C0009E838D83AE01475E5F4F6F89788DCE01CD -:1064D00001960E9475322F813885020F131FF80133 -:1064E00010822E96E4E00C942632ABE0B0E0EBE7AD -:1064F000F2E30C94FC317C013B018A01FC01178220 -:106500001682838181FFB9C19AE0292ECE010196BE -:106510005C01F7019381F30193FD859193FF8191D4 -:106520003F01882309F446C1853239F493FD8591F2 -:1065300093FF81913F01853229F4B70190E00E94D9 -:106540005634E7CF912C412C512CFFE1F51538F052 -:106550008B3209F188F4803201F1833221F157FC4A -:106560003AC020ED280F2A3040F556FE1FC0929CFD -:10657000200D1124922E06C08D3291F0803379F7D0 -:10658000689450F8F30193FD859193FF81913F0149 -:106590008111DBCF20C0689451F8689452F8F2CF93 -:1065A000689453F8EFCF689454F8ECCF429C200DD8 -:1065B0001124422E689455F8E5CF8E3229F456FC0A -:1065C000F9C0689456F8DECF8C3619F4689457F801 -:1065D000D9CF8836B9F2982F9F7D95549330C0F06B -:1065E0008336A1F18337C1F1833509F05BC0F8012F -:1065F000C190D1908F01692D70E056FC02C06FEF01 -:106600007FEFC6010E9440344C01689457F80AC0DD -:106610000C5F1F4F2FE3298388248394912C6501FD -:10662000E89457F853FC04C04814190409F018F50D -:10663000342C8114910431F5332009F46ACFB70169 -:1066400080E290E00E9456343A94F6CFF8018081BF -:1066500089830E5F1F4FE0CFF801C190D1908F0169 -:10666000692D70E056FC02C06FEF7FEFC6010E94FB -:106670004B344C01D5CFB70180E290E00E945634F4 -:106680004A94D2CFF60157FC859157FE81916F0154 -:10669000B70190E00E94563431103A94F1E08F1A1D -:1066A0009108C7CF843619F0893609F074C0F80113 -:1066B00057FE6AC061917191819191918F01252D51 -:1066C0002F76D22E97FF09C0909580957095619591 -:1066D0007F4F8F4F9F4F6894D7F82AE030E0A50195 -:1066E0000E948634C82ECA188C2C5D2CD6FE0CC095 -:1066F000E89450F8C91440F4D4FE05C0D2FC03C09D -:10670000FD2DFE7E5F2E892C54FE8FC0FE01EC0D08 -:10671000F11D8081803309F081C0252D297E522E04 -:10672000852D8870382E53FC8FC050FE89C09C2C5C -:10673000841418F44C0C942C981854FE8BC0B70198 -:1067400080E390E00E94563452FE09C088E790E052 -:1067500051FE02C088E590E0B7010E945634C9148A -:1067600008F484C0CA94D12C9FEFC91AD90ACA0C64 -:10677000DB1CF60182916F01B70190E00E94563454 -:10678000AC14BD04B1F758CF61917191072E000C84 -:10679000880B990B93CFD52CE894D4F82AE030E0FD -:1067A000853739F1952D997FD92E8F3601F148F42F -:1067B0008835A9F0F701868197812B96E2E10C9448 -:1067C0001832803749F08837A9F7D4FE02C06894A0 -:1067D000D2F820E130E00DC06894D4F8F6CF54FE32 -:1067E00003C0E92FE660DE2E20E132E002C028E09F -:1067F00030E0F801D7FE0DC06191719181919191C6 -:106800008F01A5010E948634C82ECA18E894D7F8D3 -:106810006BCF6191719190E080E0F2CF52FC02C0A9 -:1068200083947ECF839483947BCF852D867809F4DF -:1068300077CFF6CFB70180E290E00E945634839480 -:106840008414C0F3312C79CF342C3818841408F414 -:1068500074CFF8CF852D867809F481CF8BE251FE75 -:1068600080E257FC8DE2B70190E077CFB70180E37B -:1068700090E00E9456349A9472CF8FEF9FEF9DCF95 -:10688000FC010590615070400110D8F780959095FB -:106890008E0F9F1F0895FC01615070400190011000 -:1068A000D8F7809590958E0F9F1F08950F931F9393 -:1068B000CF93DF93182F092FEB018B8181FD09C046 -:1068C0001FEF0FEF812F902FDF91CF911F910F912D -:1068D000089582FF14C02E813F818C819D812817ED -:1068E00039073CF4E881F981CF01019699838883C7 -:1068F00010838E819F8101969F838E83E3CFE885ED -:10690000F985812F0995892BA1F3DACFFA01AA27FE -:10691000283051F1203181F1E8946F936E7F6E5FE2 -:106920007F4F8F4F9F4FAF4FB1E03ED0B4E03CD090 -:10693000670F781F891F9A1FA11D680F791F8A1F73 -:10694000911DA11D6A0F711D811D911DA11D20D0DA -:1069500009F468943F912AE0269F11243019305D94 -:106960003193DEF6CF010895462F4770405D419385 -:10697000B3E00FD0C9F7F6CF462F4F70405D4A33D2 -:1069800018F0495D31FD4052419302D0A9F7EACF9A -:10699000B4E0A6959795879577956795BA95C9F7C9 -:1069A00000976105710508959B01AC010A2E0694BC -:1069B0005795479537952795BA95C9F7620F731F75 -:1069C000841F951FA01D0895F999FECF92BD81BD2A -:1069D000F89A992780B50895A6E1B0E044E050E028 -:1069E0000C941E35A8E1B0E042E050E00C941E3556 -:1069F000262FF999FECF92BD81BDF89A019700B478 -:106A0000021639F01FBA20BD0FB6F894FA9AF99A17 -:106A10000FBE08950396272F0E94F9340E94F83480 -:106A2000252F0E94F934242F0C94F9340196272F36 -:106A30000E94F9340C94F834DC01CB01FC01F99983 -:106A4000FECF06C0F2BDE1BDF89A319600B40D92BA -:106A500041505040B8F708955058BB27AA270E94CC -:106A600044350C945C360E944E3638F00E94553600 -:106A700020F039F49F3F19F426F40C944B360EF4B1 -:106A8000E095E7FB0C941C36E92F0E946D3658F315 -:106A9000BA17620773078407950720F079F4A6F503 -:106AA0000C94A7360EF4E0950B2EBA2FA02D0B01F7 -:106AB000B90190010C01CA01A0011124FF27591B43 -:106AC00099F0593F50F4503E68F11A16F040A22F49 -:106AD000232F342F4427585FF3CF469537952795BA -:106AE000A795F0405395C9F77EF41F16BA0B620BB9 -:106AF000730B840BBAF09150A1F0FF0FBB1F661F00 -:106B0000771F881FC2F70EC0BA0F621F731F841F42 -:106B100048F4879577956795B795F7959E3F08F068 -:106B2000B0CF9395880F08F09927EE0F979587952A -:106B300008950E948F3690F09F3748F4911116F413 -:106B40000C94A83660E070E080E89FE3089526F09A -:106B50001B16611D711D811D0C9422360C943D364F -:106B60000E94753688F09F5798F0B92F9927B75132 -:106B7000B0F0E1F0660F771F881F991F1AF0BA95E1 -:106B8000C9F714C0B13091F00E94A736B1E0089562 -:106B90000C94A736672F782F8827B85F39F0B93F54 -:106BA000CCF3869577956795B395D9F73EF4909594 -:106BB0008095709561957F4F8F4F9F4F0895E89412 -:106BC00009C097FB3EF490958095709561957F4F35 -:106BD0008F4F9F4F9923A9F0F92F96E9BB279395E3 -:106BE000F695879577956795B795F111F8CFFAF4F3 -:106BF000BB0F11F460FF1BC06F5F7F4F8F4F9F4F24 -:106C000016C0882311F096E911C0772321F09EE881 -:106C1000872F762F05C0662371F096E8862F70E0E7 -:106C200060E02AF09A95660F771F881FDAF7880FC1 -:106C30009695879597F9089597F99F6780E870E092 -:106C400060E00895882371F4772321F09850872B12 -:106C5000762F07C0662311F499270DC09051862B1B -:106C600070E060E02AF09A95660F771F881FDAF7C8 -:106C7000880F9695879597F908959F3F31F0915029 -:106C800020F4879577956795B795880F911D969510 -:106C9000879597F908959FEF80EC089500240A9452 -:106CA0001616170618060906089500240A941216E7 -:106CB0001306140605060895092E0394000C11F41A -:106CC000882352F0BB0F40F4BF2B11F460FF04C0C7 -:106CD0006F5F7F4F8F4F9F4F089557FD9058440F20 -:106CE000551F59F05F3F71F04795880F97FB991F2B -:106CF00061F09F3F79F087950895121613061406E8 -:106D0000551FF2CF4695F1DF08C016161706180674 -:106D1000991FF1CF869571056105089408950E9429 -:106D20007536A0F0BEE7B91788F4BB279F3860F42A -:106D30001616B11D672F782F8827985FF7CF869595 -:106D400077956795B11D93959639C8F30895E894A2 -:106D5000BB2766277727CB0197F908950E94C13694 -:106D60000C945C360E944E3638F00E94553620F066 -:106D7000952311F00C941C360C944B3611240C9472 -:106D8000A8360E946D3670F3959FC1F3950F50E0C1 -:106D9000551F629FF001729FBB27F00DB11D639FCD -:106DA000AA27F00DB11DAA1F649F6627B00DA11D73 -:106DB000661F829F2227B00DA11D621F739FB00D19 -:106DC000A11D621F839FA00D611D221F749F332789 -:106DD000A00D611D231F849F600D211D822F762F22 -:106DE0006A2F11249F5750409AF0F1F088234AF0FF -:106DF000EE0FFF1FBB1F661F771F881F915050406B -:106E0000A9F79E3F510580F00C941C360C94A836CF -:106E10005F3FE4F3983ED4F3869577956795B795F1 -:106E2000F795E7959F5FC1F7FE2B880F911D96950B -:106E3000879597F90895F894FFCF9310BB100E1122 -:106E4000BB100E11EE1026110E11231230125D141C -:106E50005D146614661468146614661466145D1472 -:106E60005D146D14661466146D14F920F920522116 -:106E7000522184212C212C212C219E210F221F22E2 -:106E80001F22B22CB62CF82C092D142D332D362DA3 -:106E9000692D8A2D062D062D952D982D9C2DC22D00 -:086EA000E42DE72DE92D0E2E73 -:106EA800420200000001000000004202000000054C -:106EB800010000004202000000010600000042023A -:106EC8000000000107000000420204080000000062 -:106ED80000004202090C00000000000042020115F7 -:106EE800000000000000420201160000000000003F -:106EF80036323331F7F6676697C63435000000003E -:106F08000001F508D50DF408D10DCD0DF4F50100FB -:106F180021007F220003004A004A4A01F6F7313374 -:106F28003236674C4159455200426173652000472B -:106F3800616D6520005261697365004C6F776572F9 -:106F4800004C4F434B0043617073004E756D005306 -:106F580063726C00202020202000534F4C415200C7 -:106F6800544D505354002025303364002077706D01 -:106F780000818283E200E900EA00B500B600B700AC -:106F8800CD008301CC008A019201940121022302E1 -:106F980024022502260227022A02B300B4006F0049 -:106FA8007000B90200FF0100010000FFFF000001AE -:106FB8000001FF0000081018181008000001020264 -:106FC800020202020202020240223246012401F2B7 -:086FD800002B0D440D640D00B7 +:100D100000000000000000000000000000000000D3 +:100D20000000AF00AE09025B00030100A0FA090455 +:100D3000000001030101000921110100012240000E +:100D40000705810308000A090401000203000000EE +:100D50000921110100012222000705820320000160 +:100D6000070503032000010904020001030000003D +:100D70000921110100012232000705840320000A25 +:100D8000120100020000000832FC8712020001027A +:100D900000011E0353006F006C00610072006900C7 +:100DA000750073005F0053006F0066006C00650003 +:100DB000000010034B0065007900680069007600B0 +:100DC000650000000403090411241FBECFEFDAE020 +:100DD000DEBFCDBF04B603FE27C0809167069091A9 +:100DE0006806A0916906B0916A068730904BA740CB +:100DF000B04BD1F410926706109268061092690603 +:100E000010926A0614BE84B7877F84BF0FB6F89429 +:100E1000A8958091600088618093600010926000C6 +:100E20000FBEE0E0F8E3099512E0A0E0B1E0ECEBE2 +:100E3000FEE602C005900D92A833B107D9F726E06F +:100E4000A8E3B2E001C01D92A736B207E1F70E9405 +:100E500088260C9425370C940000CF93DF934091A3 +:100E6000650650916606455654409A01205A3F4FF8 +:100E700021303240C0F020E032E0241B350B60917D +:100E8000630470916404FC01CA01240F351FC1E0A2 +:100E9000D0E08217930750F070936404609363046A +:100EA000DF91CF91089520E630E0E9CF4491DC0155 +:100EB000AB59BB4F5C91451781F04C93AC01A5E059 +:100EC00056954795AA95E1F7DE0102C0AA0FBB1F10 +:100ED0004A95E2F7AD016A2B752B01963196D9CF71 +:100EE000E8EDF0E080818E7F80831092E200109226 +:100EF000DA001092E100A0EEB0E08C9181608C935A +:100F000080818F77808319BCA7EDB0E08C918E7FB4 +:100F10008C9380818F7E8083109245040895209168 +:100F2000E4003091E50095E6A9012091EC00822FC4 +:100F3000817020FF06C08091E80080FF06C080E03D +:100F400008952091E80022FD1AC08091530488235F +:100F500089F0853089F08091EB0085FD0FC02091EC +:100F6000E4003091E50042175307F9F29150E1F6A1 +:100F700084E0089582E0089583E0089581E0089573 +:100F8000EF92FF920F931F93CF937C018B010E94EE +:100F90008F07C82F811117C08091E80085FD0BC015 +:100FA0008091E8008E778093E8000E948F07882365 +:100FB00099F3C82F08C0F70181917F018093F10058 +:100FC0000150110949F78C2FCF911F910F91FF907C +:100FD000EF9008958091550487FF13C08091E80039 +:100FE00082FF06C08091E8008B778093E80004C000 +:100FF000809153048111F2CF089580915304882386 +:10100000D9F38091E80080FFF8CF8091E8008E77D7 +:10101000ECCF982F9093E900242F762F50E089177A +:1010200031F07091EC002091ED005091F00021FD25 +:1010300007C09F5F973071F78093E90081E00895C2 +:101040003091EB003E7F3093EB003091ED003D7F1F +:101050003093ED003091EB0031603093EB007093F2 +:10106000EC002093ED005093F0002091EE0027FD5E +:10107000E0CF80E00895CF92DF92EF92FF920F933E +:101080001F93CF93DF93C8EDD0E088818F7E888354 +:10109000E7EDF0E080818160808384E082BF81E0C1 +:1010A0008093450488818E7F888302EE10E0F801EA +:1010B00010821092DA0081EEC82ED12CF601108237 +:1010C00088818F77888388818068888388818F7DF5 +:1010D000888319BC10925304109254041092520445 +:1010E0001092510490EEE92EF12CF70180818B7F54 +:1010F000808388818160888342E060E080E00E9494 +:101100000908F60180818E7F8083F80180818160EB +:101110008083808188608083F70180818E7F8083D7 +:10112000888180618883DF91CF911F910F91FF901B +:10113000EF90DF90CF900895FC0180915B04909137 +:101140005C0486179707A0F06115710529F490914A +:10115000E8009E779093E80090E06115710551F4E6 +:10116000911108C08091E80082FF34C080E00895AA +:10117000BC01F2CF809153048823C1F18530C1F1C5 +:101180008091E80083FD30C08091E80082FDEACFC5 +:101190008091E80080FFE1CF8091F3002091F20080 +:1011A000382F6115710519F02830310558F091E09C +:1011B0002830310509F090E02091E8002E77209347 +:1011C000E800CBCF81918093F100615071092F5FCE +:1011D0003F4FE7CF80915304882341F0853041F0A1 +:1011E0008091E80083FFBECF81E0089582E00895FA +:1011F00083E0089508958091480408952FB7F894E6 +:1012000060913E0470913F048091400490914104AC +:101210002FBF089520913B0430913C0428173907D3 +:1012200071F090933C0480933B04E0913904F09179 +:101230003A04309721F00084F185E02D0994089557 +:1012400020913704309138042817390771F09093B2 +:10125000380480933704E0913904F0913A043097D0 +:1012600021F00680F781E02D0994089520912A0449 +:1012700036E0839FC0011124629F800D911D1124CF +:10128000811522E0920714F090E080E08B599B4F8B +:1012900090936606809365060895FC01680F791F98 +:1012A0008FEF91E32191822728E030E087FF09C08A +:1012B000880F892721503109C9F7E617F70791F7F9 +:1012C0000895880FF7CFFA01811101C0FB0109943D +:1012D00080915E04982F9E7F61F48170826080937C +:1012E0005E0480916104813A18F080EA8093610481 +:1012F00008958831B0F381708661F1CFAF92BF92CB +:10130000DF92EF92FF920F931F93CF93DF93082FFB +:10131000162FE901E42FF0E0EE56F94F611110C0ED +:10132000E4915E2F4E2F4983E8835A83DF91CF915A +:101330001F910F91FF90EF90DF90BF90AF900895B5 +:10134000E62EF12C4491D42EE42FF0E026E0829F8B +:10135000C00111242FEF30E0B9010E948431802FA9 +:1013600090E0880F991F55E5569FD001579FB00D0B +:1013700011248A1B9B0B982F990F890F5901AE18C6 +:10138000BF08AE9ED001AF9EB00DBE9EB00D112421 +:101390005B2F189F80011124012F11275901A01ADA +:1013A000B10AAE9E8001AF9E100DBE9E100D11249D +:1013B0005901A81AB108AE9CC001AF9C900DBE9C0B +:1013C000900D1124892F9927281B390B2E9FC001BE +:1013D0002F9F900D3E9F900D1124E92F62307105D3 +:1013E000A1F050F46115710509F49DCF61307105CC +:1013F00081F0EB2F512F97CF6430710569F080F0A9 +:101400006630710509F48FCFF4CFE42F4B2F592F9D +:101410008ACFE42F412F87CFEB2F542F492F83CF33 +:101420004B2F5D2DE12F7FCF80E0089578940895B4 +:10143000F894E82FE295EF70F0E031A1282F2F709B +:1014400081E090E001C0880F2A95EAF7982F9095E7 +:10145000932391A392A1892B82A30C94160A9091B5 +:10146000E50292FF06C0282F28712830F9F4877F03 +:10147000846093FF06C0282F28712831F1F4877EFD +:1014800084612091E60220FF06C0382F3871383081 +:10149000D9F4877F816021FF06C0282F2871283169 +:1014A000D1F4877E816194FD877E0895282F247171 +:1014B0002430F9F68B7F8860DCCF282F247124310B +:1014C00001F78B7E8861DDCF382F3171313019F70C +:1014D0008E7F8860E0CF282F2171213121F78E7E09 +:1014E0008861E1CFCF93DF93EC018238910581F1E0 +:1014F000B0F58133910509F491C020F58932910549 +:1015000009F485C08A9709F490C0C11521E5D20776 +:1015100008F0AAC0C11530E5D30708F0F2C0CF3BF0 +:10152000D10508F089C0C83AD10508F0DFC0C53A36 +:10153000D10508F0D3C0C430D105F8F4C130D105CD +:10154000E1F040C08533910509F45AC0C997E9F626 +:101550008091E502837089F0C0EED0E00EC0833E3A +:10156000910599F170F4803E910501F1823E91055B +:1015700061F68091E50282FD21C0CE01DF91CF911D +:101580000895863E910561F1873E910571F1843E93 +:10159000910509F0BACF8091E60281FFEECF8091EC +:1015A000E502C7EED0E084FD0DC0E7CF8091E502F3 +:1015B00080FDF7C09091E60290FFDFCFC3EED0E050 +:1015C00084FFDBCFD0E0C0E0D8CF8091E50282FD80 +:1015D000EBC09091E60290FDBFCF84FFCECFF2CF5B +:1015E0008091E50283FDDDCFC8CF8091E50283FDC8 +:1015F000DEC09091E60291FFF0CFC4EED0E0BDCF07 +:101600008091E50285FFB9CFC9E2D0E0B6CF8091E5 +:10161000E50285FFB2CFC5E3D0E0AFCF8091E50210 +:1016200086FFABCFCAE2D0E0A8CF8091E50286FF6B +:10163000A4CFC1E3D0E0A1CFC11540E2D40760F44C +:10164000C11581E0D80708F098CFCE01815E9109DD +:10165000079708F492CFB6CFC11590E4D90708F4E4 +:10166000B1CFDF70D06A89CFC11524E5D20778F4F5 +:10167000C11533E5D30708F072C0C11542E5D407A0 +:1016800008F05CC0DC2FCC27C16FD06A76CFC115C3 +:101690008AE5D80778F4C11599E5D90708F073C031 +:1016A000C11528E5D20708F48DCFDC2FCC27C06FF9 +:1016B000D06A63CFCE0190568115904208F082CF58 +:1016C0008D2F8F710E942F0A90E0982F88278827EE +:1016D0009F719C012C2BE901D0624FCFC55AD0E0FD +:1016E000CF52DE4FC881D0E0D06447CFC85AD0E097 +:1016F000CC0FDD1FCC52DE4F0990D881C02DD464B1 +:101700003CCFCE0164E0969587956A95E1F78370AA +:101710002C2F26952695237040E2249F90011124BA +:10172000382B8C2F8370C1E0D0E002C0CC0FDD1FBE +:101730008A95E2F7C22BD32BDC681FCFCE018370D2 +:10174000992721E030E002C0220F331F8A95E2F78B +:10175000C695C69580E2C89FE0011124EBCFCE016B +:101760008370992721E030E002C0220F331F8A9551 +:10177000E2F7C695C69590E2C99FE0011124C22BFD +:10178000D32BDA68FACE8C2F8F700E942F0A34E0A8 +:10179000D695C7953A95E1F7CF709C2FEC01D069AB +:1017A000ECCEC9E3D0E0E9CEC2EED0E0E6CEC6EEA4 +:1017B000D0E0E3CE0C94FE088091460490919B0209 +:1017C000892B90919A02892B80933A02E0913904F7 +:1017D000F0913A04309731F00280F381E02D8AE3F2 +:1017E00092E009940895809199029091680298136B +:1017F00001C008958F5F8770FACF27E0929F800D18 +:101800001124982F977086958695869523E0829F60 +:10181000F0011124E95BFD4F50E040E080E02191B0 +:1018200030E0092E02C0369527950A94E2F7217020 +:101830003327042E01C0220F0A94EAF7822B4F5F50 +:101840005F4F4330510559F7089527E0929F800D6F +:101850001124982F977041E001C0440F9A95EAF740 +:1018600086958695869593E0899FF0011124E95B22 +:10187000FD4F90E080E070E05191DF0111979B01F6 +:10188000082E02C0369527950A94E2F7217021951B +:101890002527242325272C9301968330910561F772 +:1018A000089590E080E00E94200990E080E00E948E +:1018B0000A0910929B0210929A020C94DC0B8093FE +:1018C0009C020C94510C882341F080959091460421 +:1018D0008923809346040C94DC0B0895882339F007 +:1018E00090914604982B909346040C94DC0B089539 +:1018F0008823B1F19CEF980F913A70F4ECE3F2E099 +:101900009191891303C0DF0111971C9242E0E234E8 +:10191000F407B1F70C94DC0B90E2980F983088F440 +:10192000877021E030E0A90102C0440F551F8A955D +:10193000E2F7CA018095909146048923809346047A +:10194000E9CF9BE5980F933020F490E080E00C9471 +:101950002009885A873120F490E080E00C940A092D +:1019600008950F931F93CF93C82F882309F469C05C +:101970008CEF8C0F813AB0F50CE312E082E492E038 +:10198000F8012191C21701F122E0E234F207C9F710 +:10199000EFEF80E0D8019D918D01C91781F0EF3FF5 +:1019A00019F4911101C0E82F8F5F863099F7EF3F4E +:1019B00031F00E2E000CFF0BE65CFD4FC283CF9181 +:1019C0001F910F910C94DC0BECE3F2E02191C21318 +:1019D00003C0DF0111971C928E179F07B9F70E9471 +:1019E000DC0BD6CF80E28C0F883068F4C77021E022 +:1019F00030E001C0220FCA95EAF780914604822B9D +:101A000080934604DCCFEBE5EC0FE33050F4F0E0DC +:101A1000EF52FE4F808190E0CF911F910F910C9477 +:101A20002009C85AC73168F4EC2FF0E0EE0FFF1F11 +:101A3000EC52FE4F80819181CF911F910F910C94B8 +:101A40000A09CF911F910F910895982F92959F7039 +:101A500011F0892F94E0282F2695269511F09E5F8E +:101A6000822F869509F09F5F892F0895CF92DF928C +:101A7000EF92FF920F931F93CF93DF936C017B0143 +:101A800064E670E088E70E94612EEC0197FD12C0C9 +:101A900010E000E0F601E00FF11F849164E670E0D1 +:101AA0000E94DB2EEC01892B29F40F5F1F4F0E15CE +:101AB0001F0581F70E945E2FCE01DF91CF911F910C +:101AC0000F91FF90EF90DF90CF90089580913504B3 +:101AD00090913604911103C091E0892708958823DD +:101AE00069F062E070E083E29DE00E94360D892B90 +:101AF00019F08091350408951092350480913504D1 +:101B0000EBCFCF93C0913504809136048823D1F078 +:101B10000E94FE086058774C8E4F9F4F60933104AF +:101B2000709332048093330490933404C11108C03D +:101B300062E070E081E29DE00E94360D892B29F081 +:101B4000C09135048C2FCF91089581E080933504A6 +:101B5000F7CF90915304943029F580934204709309 +:101B60004404609343049093E9008FEF9091E80060 +:101B7000815095FD06C095ED9A95F1F70000811111 +:101B8000F5CF8091E80085FF0DC050E040E063E0B4 +:101B900070E082E494E00E94C0078091E8008E77B4 +:101BA0008093E8000895BC0184E00C94A90DBC0169 +:101BB00083E00C94A90DCF93DF93EC0181E0809337 +:101BC000E9008FEF9091E800815095FD06C095EDFA +:101BD0009A95F1F700008111F5CF8091E80085FF1B +:101BE00014C050E040E068E070E0CE010E94C00701 +:101BF0008091E8008E778093E80088E0FE01A9E4F8 +:101C0000B4E001900D928A95E1F7DF91CF910895AC +:101C10009F92AF92BF92CF92DF92EF92FF920F937B +:101C20001F93CF93DF937C015B016A018091E002F7 +:101C300001E010E08A3010F40AE010E0C1E0D0E0EA +:101C4000F894B501C701F6010995982E0E94160A6D +:101C5000911004C021960C171D076CF4892DDF919B +:101C6000CF911F910F91FF90EF90DF90CF90BF9099 +:101C7000AF909F900895CC9F9001CD9F300D300D77 +:101C8000112490E080E045E34A95F1F700000196C9 +:101C900082179307C1F7D4CF8091AB02811110C096 +:101CA0008091D80080618093D8008AE18A95F1F70D +:101CB00000C08091D90080FF0AC081E08093AB0210 +:101CC00081E09091AB02913009F080E0089582E0CC +:101CD0008093AB020E94700710925304F1CF0E94D0 +:101CE0004C0E882351F0E0913904F0913A0430977A +:101CF00021F00190F081E02D099480E008951F9378 +:101D0000CF93DF93182FEB010E94B10C8FE99FE076 +:101D10000197F1F700C000002197C1F7812FDF91F3 +:101D2000CF911F910C94780C4F925F926F927F929B +:101D30008F929F92AF92BF92CF92DF92EF92FF92DB +:101D40000F931F93CF93DF93CDB7DEB7CE5DD1094D +:101D50000FB6F894DEBF0FBECDBF509077019091C3 +:101D60005E0490FF5DC080904A0390904B03811405 +:101D7000910409F068C0E7E9F7E09E012F5F3F4F4B +:101D8000BE0161527F4FC901A4914A2F50E0DA0190 +:101D9000AA0FBB1FA40FB51FA45BBC4FCD90DD9055 +:101DA000EC90D901CD92DD92ED929D0131966A17AA +:101DB0007B0751F72091760143E0249F800D911D10 +:101DC0001124539A2BB1277F3BB138605FB7F89449 +:101DD000BC01549E600D711D11248617970709F0F0 +:101DE0008EC05FBF8FE594E00197F1F700C000005F +:101DF000C252DF4F0FB6F894DEBF0FBECDBFDF91EA +:101E0000CF911F910F91FF90EF90DF90CF90BF90F7 +:101E1000AF909F908F907F906F905F904F900895BC +:101E2000809178012091790133E0839FF0011124A2 +:101E3000E45BFC4F821708F096CF11821082128269 +:101E40008F5F3396F7CF90FF96CFD12CC12C6624AD +:101E50006394712C53E0452E8091490393010C2C1F +:101E600001C0220F0A94EAF7822309F43FC0F60169 +:101E7000EE0FFF1FE80DF91DE590F490E114F10459 +:101E800009F479CF45E050E0B701CE0101960E94F8 +:101E90003D3209810F3F51F18A81800F9927991FA7 +:101EA0008B34910514F08AE490E05C01AA0CBB1C11 +:101EB0008A0D9B1DDC01A45BBC4F5D01049D80016C +:101EC0001124045B1C4F0A151B0520F0B5E0EB0E36 +:101ED000F11CD8CF4D81413A08F040EA98016C815D +:101EE0008B810E947E090D5F1F4FEDCFEFEFCE1A61 +:101EF000DE0AF8E0CF16D10409F0AECF3CCFFC01EA +:101F00004191CF01E8E03BB9000000C047FF2BB989 +:101F1000440F000000C000C000C02BB900C0EA950B +:101F200091F75BCFEEE5F4E080818E7F8083E6E47D +:101F3000F3E08281816082832FEF80E792E021507D +:101F400080409040E1F700C000000C94940EECE358 +:101F5000F2E086E0DF011D928A95E9F70C94510CBE +:101F60001F93CF93DF93CDB7DEB7AA970FB6F89440 +:101F7000DEBF0FBECDBF85E594E02091F100DC010E +:101F80002D93CD01B4E08D359B07B9F780915604B0 +:101F9000833009F471C0B8F4813009F448C082304C +:101FA00009F4B4C08091E80083FF3CC180915504DE +:101FB000909156049A3008F035C1E92FF0E0E95DC0 +:101FC000F84C0C94D7318A3009F48FC08B3009F467 +:101FD00070C0893039F780915504813219F78091AA +:101FE000590490915A04009711F00297D9F6809104 +:101FF000E800877F8093E8008091E80082FF37C087 +:102000009091F3008091F200029729F48091F10001 +:102010008B7F813021F48091F1008093480480917E +:10202000E8008B778093E8000E94EA07BBCF80919D +:102030005504813A09F0B6CF8091E800877F8093FC +:10204000E8008091590490915A04892B61F468E06A +:1020500089E494E070E00E949C088091E8008B770E +:102060008093E8009FCF60E090E080E0F3CF809124 +:1020700053048111C1CF96CF80915504813A09F064 +:1020800091CF8091590490915A04892B09F08ACFFD +:102090008091E800877F8093E8008091E80080FFCE +:1020A000FCCF80917B018093F1008091E8008E77D6 +:1020B000B9CF80915504813209F074CF80915904D1 +:1020C00090915A04892B09F06DCF8091E800877FA9 +:1020D0008093E8000E94EA078091570480937B0177 +:1020E000109246040E94A70F5DCF80915504813263 +:1020F00009F058CF8091E800877F8093E8000E9424 +:10210000EA0780915804809347044CCF809155048E +:10211000813A09F047CF8091E800877F8093E800FB +:102120008091E80080FFFCCF80914704BCCF8038CD +:1021300099F0823809F076C0809159048F70873009 +:1021400008F070C08093E9008091EB0085FB882740 +:1021500080F91092E90006C08091510490915204D8 +:10216000911182609091E800977F9093E8008093AE +:10217000F1001092F1008091E8008E77B5C18823BC +:1021800009F4A2C1823009F04DC080915704811139 +:10219000A6C1809159048F702FEF280F263008F0C8 +:1021A00041C08093E9002091EB0020FF98C193305B +:1021B00031F48091EB0080628093EB0090C19091AC +:1021C000EB0090619093EB0021E030E001C0220F22 +:1021D0008A95EAF72093EA001092EA008091EB00DA +:1021E0008860EACF81111EC0109157041F7780913B +:1021F000E3008078812B8093E3008091E800877F63 +:102200008093E8000E94EA078091E80080FFFCCFFD +:102210008091E30080688093E30082E0111183E005 +:10222000809353048091E80083FF0AC08091E80006 +:10223000877F8093E8008091EB0080628093EB00C1 +:10224000AA960FB6F894DEBF0FBECDBFDF91CF9137 +:102250001F9108958058823028F7209157043091BB +:1022600058042C3DE3E03E07A1F583E08A838AE22F +:1022700089834FB7F894DE01139620E03EE051E2E7 +:10228000E32FF0E050935700E49120FF03C0E29564 +:10229000EF703F5FEF708E2F90E0EA30C0F0C7968E +:1022A0008D939D932F5F243159F74FBF8091E800A4 +:1022B000877F8093E8006AE270E0CE0101960E9479 +:1022C0009C088091E8008B778093E800ABCFC096A4 +:1022D000E7CF8091590490915A04432F55274330FA +:1022E000510509F44AC078F54130510509F47AC026 +:1022F0008BE590E0E5E2FDE04230510509F092CF38 +:102300002091E800277F2093E80020915B04309122 +:102310005C048217930708F49C0140E02115310505 +:1023200009F065C0411163C08091E80082FDC9CF0A +:1023300080915304882329F2853019F28091E800B6 +:1023400083FFF2CFBECF4132510509F43CC0423287 +:10235000510509F067CF8330910508F063CFFC0188 +:10236000EE0FFF1FE55DFD4F0190F081E02D885DD0 +:102370009D4FDC018C9190E01AC03327213031054C +:10238000D1F02115310561F02230310509F04ACF35 +:10239000E2E9FDE0E4918E2F90E0E2E9FDE007C084 +:1023A000E4ECFDE0E4918E2F90E0E4ECFDE000979A +:1023B00009F438CFA5CFE2EBFDE0E4918E2F90E059 +:1023C000E2EBFDE0F4CF8330910508F02BCF880FCE +:1023D000991FFC01EF5CFD4F0190F081E02D89E039 +:1023E00090E08ECF82E190E0E0E8FDE089CF80913F +:1023F0005304882309F465CF853009F462CF8091B6 +:10240000E80083FD5ECF8091E80082FD8DCF809152 +:10241000E80080FF83CF9091F3008091F2002115B6 +:10242000310519F08830910550F041E0089709F026 +:1024300040E08091E8008E778093E8006FCF449170 +:102440004093F1003196215031090196E8CF803850 +:1024500009F0E8CE8091E800877F8093E8008091C2 +:1024600054048093F10087CE8111DCCE1091570483 +:10247000123008F0D7CE8091E800877F8093E80083 +:10248000109354040E94EA07112311F084E005C060 +:102490008091E30087FDFACF81E08093530442E00E +:1024A00061EC81E00E94090842E261EC84E00E9454 +:1024B000090842E261EC82E00E94090842E260EC15 +:1024C00083E00E940908AECE80915704813009F064 +:1024D000A9CE81E0933009F080E0809352041092FD +:1024E000E9008091E800877F8093E8000E94EA0776 +:1024F00099CE1F93CF93DF93162FC0916506D0918D +:1025000066068A30D1F420912A04CE018556944083 +:10251000622F70E00E948431281B822F66E00E94A7 +:102520009831C82FC15020F4DF91CF911F910895A9 +:1025300060E080E20E947912F5CF8D30E9F4C55653 +:10254000D44020912A04622F70E0CE010E94843191 +:10255000281B822F9E01280F311D2115324018F0B3 +:1025600080E0D0E0C0E0C80FD11DCB59DB4FD09345 +:102570006606C0936506D8CF96E0FE01ABE2B4E0F4 +:1025800001900D929A95E1F7803E90F186E0FE0170 +:1025900011928A95E9F7C0916506D09166061111EE +:1025A00033C046E050E0BE018BE294E00E94463228 +:1025B0009E0125563440892B91F52A5F3F4F40916B +:1025C0002A04642F70E0C9010E948431481B463000 +:1025D00010F4240F311D211572E0370710F030E0A0 +:1025E00020E02B593B4F30936606209365069CCF25 +:1025F000F6E08F9FB00111246F51784F46E050E014 +:10260000CE010E943D32C7CF9E012A5F3F4FFE019F +:102610002E173F0731F2808180958193F9CFC90150 +:1026200045E0969587954A95E1F741E050E0BA017B +:1026300002C0660F771F8A95E2F7CB0160916304B1 +:1026400070916404862B972BB9016B5F7F4FE5E097 +:1026500076956795EA95E1F702C0440F551F6A9594 +:10266000E2F7842B952B9093640480936304A5CFA9 +:10267000FF920F931F93CF93DF93EC01F62EFC0193 +:1026800001900020E9F78F0101501109C017D1070F +:1026900030F0DF91CF911F910F91FF9008956F2D32 +:1026A00089910E947912F2CFCF93DF93C3EED2E0EB +:1026B00060E0CE010E9402352196C11584E0D80762 +:1026C000B9F7DF91CF9108956F927F928F929F9289 +:1026D000AF92BF92CF92DF92EF92FF920F931F9330 +:1026E000CF93DF9381EEC82E87E0D82E91ECE92EB0 +:1026F000F12CE701CC58D10936011BC0F5018590BA +:102700009490692DC8010E940235682DC801019678 +:102710000E94023582E0A80EB11C0E5F1F4FC01749 +:10272000D10761F78EE0680E711C2E96CE15DF057D +:1027300029F08E010E5011095301E0CF7E018CE883 +:10274000E80EF11C8CE8C80ED11C8DE7E81683E07A +:10275000F80679F6DF91CF911F910F91FF90EF90DE +:10276000DF90CF90BF90AF909F908F907F906F90B1 +:102770000895CF93C82F6FEF811161E283E290E05B +:102780000E9402356FEFC11169E084E290E00E947F +:1027900002356FEFC11164E185E290E0CF910C94B6 +:1027A000023580E00E94B91360E086E290E00E946A +:1027B00002350E9464130E94541381E00C94B913F3 +:1027C0000F931F93CF93DF93C42FD0E0CC0FDD1F67 +:1027D0002EE0629FC00DD11D11243CE8839FC00DE7 +:1027E000D11D1124CE0187960E94EE34082F10E0EF +:1027F000102F0027CE0188960E94EE349801282BD6 +:10280000C901DF91CF911F910F910895462F853017 +:1028100038F47A3028F4673018F4672F0C94E013FA +:1028200090E080E00895CF92DF92FF920F931F9384 +:10283000CF93DF936C0100915D0480919C02082B83 +:10284000C7E0D0E010E0FC2EC8010C2E02C0959528 +:1028500087950A94E2F780FD0CC02197A0F7F12C30 +:102860008F2DDF91CF911F910F91FF90DF90CF902F +:102870000895B6018C2F0E9406140E94720A0197D7 +:1028800061F3EECFCF93DF93EC010E941314BE01EE +:102890000E940614DF91CF910C94720AFC01808192 +:1028A00091810E944214292F2F7092959F7092500F +:1028B0009E3078F4E92FF0E0EF5CF84C0C94D731BF +:1028C000803F19F020F4883E20F481E00895843F91 +:1028D000E1F380E00895883EC0F3813FD1F7F5CF62 +:1028E000822F869586958695089583E290E00E94D2 +:1028F000EE34813289F484E290E00E94EE34893033 +:1029000059F485E290E00E94EE3491E0843109F0C0 +:1029100090E0892F8170089580E0FCCFCF92DF9204 +:10292000EF92FF926B017C010E946809B701A6013A +:1029300088E090E0FF90EF90DF90CF900C941435FA +:10294000AF92BF92CF92DF92EF92FF920F931F93BD +:10295000CF93DF9300D00F92CDB7DEB7082FF62EBE +:10296000142FE22E80915E0480FF4FC0E82FE69581 +:10297000AE2FB0E0A45EBD4F9C91909346038E7F36 +:10298000823009F056C0413A08F040EA9E012F5FBC +:102990003F4F6F2D802F0E947E0980915E0480FF43 +:1029A00011C02B8139814A81809178019091790100 +:1029B00053E0859FF0011124E45BFC4F891798F1E7 +:1029C0000E94940E80915F04801308C0809160047F +:1029D0008F1104C080916104811729F08091480310 +:1029E00082608093480300935F04F0926004109328 +:1029F0006104EE2051F060915E0470915F0480915B +:102A00006004909161040E948E140F900F900F90BB +:102A1000DF91CF911F910F91FF90EF90DF90CF90BA +:102A2000BF90AF9008954183308322838F5F3396A8 +:102A3000C5CF923039F6E2508E2F8170D82EE695B0 +:102A4000F0E0EE56F84FA590B490C12CBB246091F5 +:102A50007A01C61608F0B4CF2C2D30E0A29EC0013A +:102A6000A39E900DB29E900D112470E00E948431BF +:102A7000802FD11016C0860F40917801420F532F3E +:102A8000511D9A01220F331F240F351F245B3C4F29 +:102A9000412F113A08F040EA6F2D0E947E09C3943D +:102AA000D6CF861BE9CFEEE5F4E0438121E1421B5E +:102AB00008F440E021E0628181810C94A014EEE5ED +:102AC000F4E0438121E1420F08F44FEF21E06281FD +:102AD00081810C94A014EEE5F4E0628121E1621B97 +:102AE00008F460E021E0438181810C94A014EEE5BC +:102AF000F4E0628121E1620F08F46FEF21E043818D +:102B000081810C94A014EEE5F4E0818121E0438101 +:102B1000628188500C94A014EEE5F4E0818121E0FC +:102B200043816281885F0C94A014809162048823A1 +:102B300019F081508093620460915E0470915F048B +:102B400080916004909161040C948E1480916204D1 +:102B5000833018F48F5F8093620460915E047091FB +:102B60005F0480916004909161040C948E149091A4 +:102B70005E0490FF27C0917081111DC092609093F8 +:102B80005E0480914803816080934803662351F07E +:102B900060915E0470915F04809160049091610483 +:102BA0000E948E1420E04091610460916004809145 +:102BB0005F040C94A0148C3010F09661E0CF880F65 +:102BC000982BDDCF089521E030E0A90102C0440F29 +:102BD000551F8A95E2F7CA0120914903662391F0B7 +:102BE000822B80934903809148038061809348033E +:102BF00080914703811109C080915E0460E0869551 +:102C00000C94B71580958223ECCF0895CF93DF9372 +:102C1000C82FC17082FBDD27D0F981FB662760F9E0 +:102C200085E00E94E31561E06C2786E00E94E315D1 +:102C30006D2F87E0DF91CF910C94E3150F931F93D5 +:102C4000CF93C82F61E08111682F617080E00E94EE +:102C5000E315C1FB662760F9C11101C060E081E0A6 +:102C60000E94E315C2FB662760F9C11101C060E054 +:102C700082E00E94E315C3FB662760F9C11101C021 +:102C800060E083E00E94E315C4FB662760F9C11190 +:102C900001C060E084E00E94E3154C2F50E070E03A +:102CA00060E0DB01CA01F4E0B695A795979587959A +:102CB000FA95D1F70097A105B10549F1AC01BD0125 +:102CC00084E08A019B01E2E03695279517950795E8 +:102CD000EA95D1F7011511052105310519F08E5F2F +:102CE000B901A8017695679557954795452B462BD1 +:102CF000472B09F08F5F823009F158F4882391F057 +:102D00008130B9F08C2FCF911F910F91089580E001 +:102D1000D8CF8330C1F08430A9F720E040E56FEFD1 +:102D20008AED04C020E040E56FEF82E30E94A0142A +:102D3000E9CF20E040E56FEF8CEFF8CF20E040E5F1 +:102D40006FEF80E5F3CF20E040E56FEF86E7EECF51 +:102D50000E941E1680935D040C94510C80915D04BA +:102D6000982F9670963019F488600C94A816877F77 +:102D7000FCCF21E030E001C0220F8A95EAF72095D0 +:102D800080915D0482230C94A81621E030E001C0FC +:102D9000220F8A95EAF780915D04822B0C94A81685 +:102DA00080915E048695815009F48BE061E00C947B +:102DB000B71580915E0486958F5F8C3008F081E0B6 +:102DC00061E00C94B71580915E0480FF07C0869582 +:102DD00082588F77893010F40C94D91661E082E024 +:102DE0000C94B715EEE5F4E083E0808311828FEF59 +:102DF000828380EA83831482A6E4B3E012968C91E6 +:102E00001297836012968C93608171818281938185 +:102E10000C948E1469EE7EEF90E080E00E942035E5 +:102E200060E082E090E00E94023560E083E090E0A4 +:102E30000E94023510929C0260E084E090E00E94C3 +:102E4000023560E082E290E00E94023560E085E0B9 +:102E500090E00E94023560E086E090E00E9402353A +:102E60006FEF87E090E00E94023540E050E0BA0149 +:102E700088E090E00E94143560E08DE090E00E94D0 +:102E8000023540E050E0BA0188E190E00E9414353C +:102E900060E087E190E00E94023540E050E0BA0136 +:102EA0008CE190E00E94143570E060E080E290E0F8 +:102EB0000E94203540E050E0BA0188E190E00E9495 +:102EC000143580E00E94B9130E94D11340E050E015 +:102ED000BA018FE090E00E94143540E050E0BA0162 +:102EE00083E190E00C9414350F931F93CF93DF93FD +:102EF00000D000D0CDB7DEB74091D0025091D102C2 +:102F00006091D2027091D3022FB7F89480913E0461 +:102F100090913F04A0914004B09141042FBF841BC5 +:102F2000950BA60BB70B84369105A105B10588F169 +:102F30000E944C0E882379F10E94FE086E5F7F4F3D +:102F40008F4F9F4F69837A838B839C8380912B0162 +:102F500090912C0187549D4F40912A0150E04530BB +:102F6000510510F044E050E0BE016F5F7F4F0E94BA +:102F7000533284E090E00E94D030892BD9F40E9433 +:102F8000FE086093D0027093D1028093D202909396 +:102F9000D30281E010C00E94FE080091E10210916E +:102FA000E2022091E3023091E402600F711F821F60 +:102FB000931FC4CF80E00F900F900F900F90DF9180 +:102FC000CF911F910F9108958F929F92AF92BF92D0 +:102FD000CF92DF92EF92FF920F931F93CF93DF93E5 +:102FE000EB0188809980AA80BB809FB7F894C0903D +:102FF0003E04D0903F04E0904004F09041049FBF15 +:10300000C818D908EA08FB0894E6C916D104E104F7 +:10301000F10410F4442311F1E82E082E000CFF08EF +:103020009AE08902F0011124E050FF4F83819481DE +:1030300087549D4F428150E00417150708F4A801FA +:10304000B9010E945332C7010E94D030892BA1F4EC +:103050000E94FE08688379838A839B8381E0DF91E5 +:10306000CF911F910F91FF90EF90DF90CF90BF9085 +:10307000AF909F908F90089580E0F1CF0F931F93B2 +:10308000CF93DF930F92CDB7DEB78091350489835C +:103090002091CF0290E041E02817190609F440E0A2 +:1030A00001E010E09E012F5F3F4F6CED72E087E082 +:1030B0000E94E4170F90DF91CF911F910F91089517 +:1030C0000F931F93CF93DF930F92CDB7DEB780910D +:1030D000FC02898341E09091CE02981301C040E048 +:1030E00001E010E09E012F5F3F4F68ED72E086E047 +:1030F0000E94E4170F90DF91CF911F910F910895D7 +:103100000F931F93CF93DF93CDB7DEB729970FB6F9 +:10311000F894DEBF0FBECDBF85E0EEE5F4E0DE0142 +:10312000119601900D928A95E1F780914603909156 +:103130004703A0914803B09149038E839F83A887DA +:10314000B98741E08885811101C040E009E010E0C5 +:103150009E012F5F3F4F64ED72E085E00E94E4170F +:1031600081111092480329960FB6F894DEBF0FBE66 +:10317000CDBFDF91CF911F910F9108956F927F92F4 +:103180008F929F92AF92BF92CF92DF92EF92FF9277 +:103190000F931F93CF93DF930F92CDB7DEB7862E99 +:1031A0005A016901682E880F7708C3010E94D03048 +:1031B000892B09F088C08AE0869DF001879DF00D7B +:1031C0001124E050FF4F458150E04115510511F0A9 +:1031D00041E050E08AE0869DF001879DF00D1124CA +:1031E000E050FF4F6681778167547D4FCE01019695 +:1031F0000E945332F50140815181628173812FB762 +:10320000F89480913E0490913F04A0914004B091C5 +:1032100041042FBF841B950BA60BB70B8436910579 +:10322000A105B10540F4B701C8010E944D0999817B +:10323000891709F44FC0082C000C9908C4010E949A +:10324000D030892B91F0B12C8B2D0F90DF91CF9145 +:103250001F910F91FF90EF90DF90CF90BF90AF90B4 +:103260009F908F907F906F9008958AE0889DF001E5 +:10327000899DF00D1124E050FF4F458150E0E41688 +:10328000F50608F4A7018AE0889DF001899DF00DFC +:103290001124E050FF4F6681778167547D4FC6014E +:1032A0000E945332B701C8010E944D0999818913C8 +:1032B000CACF0E94FE08F5016083718382839383E5 +:1032C000BB24B394C1CFB12CA701B801C6010E94A1 +:1032D0005332BACFBB24B394F7CFCF92DF92EF92A1 +:1032E000FF920F931F93CF93DF9300D000D00F92E4 +:1032F000CDB7DEB76B0185E0E82EF12C0AEB12E0CA +:103300009E012F5F3F4F41EB52E061E080E00E9461 +:10331000BE18882349F095E0FE013196ACEAB2E090 +:1033200001900D929A95E1F795E0ECEAF2E0D60172 +:1033300001900D929A95E1F70F900F900F900F90DA +:103340000F90DF91CF911F910F91FF90EF90DF9041 +:10335000CF90089590E080E00E94FC34893E9E4F1B +:1033600011F40C94751480E008951F920F920FB61B +:103370000F9211242F933F934F935F936F937F93FB +:103380008F939F93AF93BF93CF93DF93EF93FF936D +:10339000D091E900DF708091EC00C82FC17080FDF2 +:1033A000C0E81092E9008091F000877F8093F000E0 +:1033B00078940E94B00F1092E9008091F00088602C +:1033C0008093F000CD2BCF70C093E900FF91EF9177 +:1033D000DF91CF91BF91AF919F918F917F916F912D +:1033E0005F914F913F912F910F900FBE0F901F90C3 +:1033F00018951F920F920FB60F9211242F933F939F +:103400004F935F936F937F938F939F93AF93BF93EC +:10341000EF93FF938091E10082FF09C08091E20069 +:1034200082FF05C08091E1008B7F8093E100809155 +:10343000DA0080FF24C08091D80080FF20C08091F6 +:10344000DA008E7F8093DA008091D90080FF9BC0E4 +:1034500080E189BD82E189BD09B400FEFDCF81E034 +:103460008093530480914504811109C00E94700724 +:103470000E943B088091E20084608093E20080918A +:10348000E10080FF17C08091E20080FF13C08091AF +:10349000E2008E7F8093E2008091E2008061809361 +:1034A000E2008091D80080628093D80019BC85E04A +:1034B000809353048091E10084FF29C08091E20051 +:1034C00084FF25C080E189BD82E189BD89B5982F3F +:1034D000917080FFFBCF8091D8008F7D8093D800C2 +:1034E0008091E1008F7E8093E1008091E2008F7EE9 +:1034F0008093E2008091E20081608093E2008091FD +:103500005404882309F445C084E0809353048091D7 +:10351000E10083FF27C08091E20083FF23C08091F8 +:10352000E100877F8093E10082E080935304109252 +:1035300054048091E1008E7F8093E1008091E2004D +:103540008E7F8093E2008091E20080618093E200B0 +:1035500042E060E080E00E9409088091F00088600D +:103560008093F000FF91EF91BF91AF919F918F9168 +:103570007F916F915F914F913F912F910F900FBE6F +:103580000F901F90189519BC109253041092450487 +:1035900076CF8091E30087FD93E090935304B7CFFB +:1035A00078941F921FB61F9211248F939F93AF930D +:1035B000BF9380913E0490913F04A0914004B0914C +:1035C00041040196A11DB11D80933E0490933F04D8 +:1035D000A0934004B0934104BF91AF919F918F910C +:1035E0001F901FBE1F9018959C014FB7F8948091B3 +:1035F0003E0490913F04A0914004B09141044FBF1C +:10360000821B930B08952FB7F89480913E049091FC +:103610003F04A0914004B09141042FBF08958F92C0 +:103620009F92AF92BF92CF92DF92EF92FF920F9351 +:103630001F93CF93DF93CDB7DEB72F970FB6F894D4 +:10364000DEBF0FBECDBF8E010F5F1F4F8AE0D801D6 +:103650001D928A95E9F787E5C82E81E0D82EF12CD6 +:10366000E12CAA24A394B12CF60181916F018F3F24 +:1036700009F44AC0F894E82FE295EF70F0E021A138 +:103680008F70A50102C0440F551F8A95E2F7CA0149 +:10369000922F982B91A392A18095892382A30E94B7 +:1036A000160A00C0E0E5F1E030E020E0912C419105 +:1036B0004F3F09F47FC0A42FA295AF70B0E0909661 +:1036C0008C9190E04F7002C0959587954A95E2F7EE +:1036D00080FD70C08A2D022E01C0880F0A94EAF77F +:1036E000982A2F5F3F4F2730310509F7F6013197B0 +:1036F00080818F3F11F00E94180A50EA5A95F1F725 +:10370000F801EE0DFF1D90828FEFE81AF80A95E0A0 +:10371000E916F10409F0A8CF4AE050E0B80187EEBD +:1037200092E00E9446327C01892B41F08AE0F80148 +:10373000A7EEB2E001900D928A95E1F71091F202A6 +:10374000E114F104C9F181E080939F020E94031B00 +:1037500090939E0280939D0280919D0290919E0283 +:103760000E94F41A069778F0A7EEB2E0E12FF0E09D +:10377000E45CFC4F8CEE92E02D9121938A179B071D +:10378000D9F710929F0281E090E0EF28C9F02F96C0 +:103790000FB6F894DEBF0FBECDBFDF91CF911F9162 +:1037A0000F91FF90EF90DF90CF90BF90AF909F90E0 +:1037B0008F90089580E094CF80919F028111CCCFAB +:1037C0000E944C0EB82EE091F2028E01055F1F4F51 +:1037D000882309F4D3C085E0D8011D928A95E9F7C2 +:1037E000F0E09F01245C3C4F79018091E002AE0142 +:1037F000405F5F4F6A018A3008F098C04DE659E19A +:10380000B801C7010E94080E882309F4A6C04BE046 +:1038100056E2B801C7010E94080E882309F49DC032 +:1038200044E757E1B801C7010E94080E882309F454 +:1038300094C040E858E1B801C7010E94080E8823EF +:1038400009F48BC040E658E1B801C7010E94080E98 +:10385000882309F482C04EE358E1B801C7010E94F1 +:10386000080E882309F479C01092E002E091F10279 +:10387000F0E0AF01445C5C4FD80110E0FA01919197 +:10388000AF018D91981731F09F0121503109F90155 +:1038900080831B2DAC15BD0589F78091A202909104 +:1038A000A3020E94F41A893E934060F16091FC02E9 +:1038B000E62EF12C662777276E197F09072E000C5C +:1038C000880B990B0E94EB3527EA39E747E45DE363 +:1038D0000E94B8364B015C01B701FF0C880B990BB5 +:1038E0000E94EB359B01AC01C501B4010E94373544 +:1038F0000E94BA356093FC020E94031B9093A302BE +:103900008093A2028091A602882371F08091A40284 +:103910009091A5020E94F41A893E934028F082EE0D +:103920000E94780C1092A602812F31CF8091A002C4 +:103930009091A1020E94F41A843F914008F05ECF5A +:10394000E091F102F0E0E45CFC4FD80111921D928D +:10395000AC15BD05D9F71B2DA0CF8091E0028F3F9C +:1039600031F08F5F8093E0028A3008F47FCF0E94AD +:10397000031B9093A1028093A002E2CFF0E0E45CED +:10398000FC4FF89485E0AAEBB2E001900D928A9585 +:10399000E1F765E070E08AEB92E00E944D098093C8 +:1039A000B9020E94160AF894E091FA02F0E0E95098 +:1039B000FD4F80818B878093C00261E070E0C80179 +:1039C0000E944D098093BF020E94160AF894C0908D +:1039D000C102D090C202E090C302F090C402809174 +:1039E000A7029091A802A091A902B091AA02C816BC +:1039F000D906EA06FB06D1F0C092A702D092A8022F +:103A0000E092A902F092AA020E944C0E81110EC00F +:103A10000E94FE08C61AD70AE80AF90AC092E10213 +:103A2000D092E202E092E302F092E4020E94160ACF +:103A3000F8948091CC02882321F184FF04C09091F6 +:103A4000CD029093490380FF0DC08091C50280FF95 +:103A50002CC090915E04916090935E0460E0869526 +:103A60000E94B7158091CC0281FF09C020E04091EF +:103A7000C8026091C7028091C6020E94A0141092F1 +:103A8000CC020E94160AF8948091CE028093FC0228 +:103A90000E94160AF8948091CF02882349F00E9470 +:103AA000810D0E94160A80E072CE0E94920FDACF3A +:103AB0000E94660DF6CF5F926F927F928F929F92D7 +:103AC000AF92BF92CF92DF92EF92FF920F931F932C +:103AD000CF93DF9300D000D00F92CDB7DEB76C014B +:103AE000FC0183819481892B31F08081918189232C +:103AF0008F3F09F082C50F900F900F900F900F909D +:103B0000DF91CF911F910F91FF90EF90DF90CF90B9 +:103B1000BF90AF909F908F907F906F905F9008952F +:103B20000E941314182F682F89819A810E94250CF6 +:103B300069817A81812F0E9406148C01F6018281AD +:103B4000882309F463C0C80190568115F0E29F07ED +:103B500050F0905E811520E1920728F0915C81156C +:103B60009F4108F0A5C0C80199279C012450310944 +:103B70002432310520F08B970E9708F047C08091D2 +:103B8000A2029091A3020097D9F10E94F41A9C011D +:103B900050E040E060E67AEE80E090E00E94B831CC +:103BA000CA01B90125E030E040E050E00E94B831A0 +:103BB000E090FC022F3F310519F010F02FEF30E0BC +:103BC000F12C2E193F09B90190E080E00E94E935FF +:103BD00027EA39E747E45DE30E94B8360E94A3353F +:103BE0004B015C01B701FF0C880B990B0E94EB3570 +:103BF000A50194010E9437350E94BA356093FC02FA +:103C00000E94031B9093A3028093A202F60182817B +:103C1000882309F4E6C4C80182519F45409708F003 +:103C200071C48FEF93E00E94EE34025193EEA92EFF +:103C300092E0B92E81115FCF011143C01C821B821B +:103C4000662463948AE0582E85010F5F1F4FC501DB +:103C50000E94EE3489831A82882309F44CCF9FEFA7 +:103C6000980F9330E8F58A83698232E0A30EB11C85 +:103C7000C8010E94EE348B83882309F43CCF8E0167 +:103C80000F5F1F4FF80120812223F1F2213009F04C +:103C900061C091818281913029F50E5F1F4F6AE0EA +:103CA00070E0893311F460E570E00E947F0E20C05F +:103CB00090E080E00F3F110511F008F056CFC801E9 +:103CC00054CFA114F4E0BF0609F415CFC5010E943A +:103CD000EE34811101C001502FEFA21AB20AACCF0D +:103CE0005801CDCF923039F40E5F1F4F0E94B10CB6 +:103CF0000F5F1F4FC7CF933029F40E5F1F4F0E94F5 +:103D0000780CF6CF943019F00F5F1F4FF1CF0E5F94 +:103D10001F4F30E020E0B8016F5F7F4FF801418115 +:103D20008053990B8A30910550F02150310900F3EE +:103D30008FE99FE00197F1F700C00000F6CF529E97 +:103D4000F001539EF00D11249C012E0F3F1F842F74 +:103D50008B01E1CFE22FF0E0E054FE4F7490822F10 +:103D600086958695869590E0FC01E055FE4FE4909F +:103D70002770F12C022E02C0F594E7940A94E2F722 +:103D8000E1E0EE22FF24FC01E056FE4FC490D12C6E +:103D9000022E02C0D594C7940A94E2F7F1E0CF2234 +:103DA000DD24FC01E057FE4F8490912C02C09594D5 +:103DB00087942A95E2F721E082229924E114F10404 +:103DC00019F081EE0E94B10CC114D10419F086EEF5 +:103DD0000E94B10C39E36AE070E0731202C060E542 +:103DE00070E0872D0E947F0ECD2819F086EE0E948C +:103DF000780CEF2819F081EE0E94780C892809F4DC +:103E000077CF6AE070E08CE250CF81E00E94C51667 +:103E100003C081E00E94B9160F900F900F900F9091 +:103E20000F90DF91CF911F910F91FF90EF90DF9056 +:103E3000CF90BF90AF909F908F907F906F905F904A +:103E40000C94AE1682E0E2CF013E110509F49AC04F +:103E5000043E110509F07CC3882309F4CEC081E03B +:103E60008093FD0275C30238FFE51F0709F459C0AE +:103E700000F500383FE51307B9F101384FE51407A5 +:103E800009F066C3882309F445C08091A602811118 +:103E900006C081E08093A60282EE0E94B10C0E94CF +:103EA000031B9093A5028093A40281EE0E94B10CA3 +:103EB0002DC003385FE5150709F447C004389FE5B6 +:103EC000190709F045C3882309F482C08091430291 +:103ED000882309F45AC0809144020E94780C80EE35 +:103EE0000E94B10C8AE25EC08823B9F08091A602DC +:103EF000811106C081E08093A60282EE0E94B10C7F +:103F00000E94031B9093A5028093A4028BE20E945F +:103F1000B10C1EC381EE0E94780C8BE20E94780CDB +:103F200017C3882309F414C381EE0E94B10C83EEF9 +:103F30000E94B10C8FE40E94B10C8FE40E94780CB7 +:103F400083EE0E94780C81EEE9CF882309F400C348 +:103F500081EE0E94B10C83EE0E94B10C80E50E94BC +:103F6000B10C80E5EBCF809346021093450200939D +:103F70004402882321F081E08093FE02E9C210927E +:103F8000FE02E6C280934302F0CF8091460288236E +:103F900009F4A8CF809144020E94780C80EE0E9420 +:103FA000B10C8CE40F900F900F900F900F90DF9159 +:103FB000CF911F910F91FF90EF90DF90CF90BF9026 +:103FC000AF909F908F907F906F905F900C94B10C0A +:103FD0008AE20E94780C8CE40E94780C80EE0E94A9 +:103FE000780C80914302811105C08091460288239C +:103FF00009F481CD80914402D5CF1092FD02A8C270 +:10400000882331F081E08093000310926E01A0C2FA +:10401000109200039DC2073C2CE5120709F4AEC0C4 +:1040200008F4A7C0083C4CE5140709F4ACC0093CEF +:104030001C4509F0ADC243E555E16FE575E179C076 +:10404000043DECE51E07A8F40E3CFCE51F0708F054 +:1040500052CD0C3C2CE5120709F49FC045E955E10F +:1040600066EA75E10D3C1C4508F463C061E081E03F +:1040700046C0053D4CE5140709F43DCD08F492C057 +:104080000D351D4509F437CD83C280915E0480FF54 +:1040900031C08E7F80935E0460915E0470915F04F6 +:1040A00080916004909161040E948E148091480375 +:1040B0008160809348039FEFE0E7F2E09150E04099 +:1040C000F040E1F700C000000F900F900F900F90AC +:1040D0000F90DF91CF911F910F91FF90EF90DF90A4 +:1040E000CF90BF90AF909F908F907F906F905F9098 +:1040F0000C94940E816080935E0461E086950F902D +:104100000F900F900F900F90DF91CF911F910F9113 +:10411000FF90EF90DF90CF90BF90AF909F908F90E7 +:104120007F906F905F900C94B71540ED56E169ED6C +:1041300076E10F900F900F900F900F90DF91CF913D +:104140001F910F91FF90EF90DF90CF90BF90AF90B5 +:104150009F908F907F906F905F900C94630949EDD2 +:1041600056E160ED76E1E5CF43E855E16CE875E1B5 +:10417000E0CF4CE855E163E875E1DBCF4BE655E174 +:1041800067E775E1D6CF47E755E16BE675E1D1CF3B +:104190004FE555E163E575E1CCCF46EA55E165E9C8 +:1041A00075E1C7CF0F900F900F900F900F90DF9198 +:1041B000CF911F910F91FF90EF90DF90CF90BF9024 +:1041C000AF909F908F907F906F905F900C94E316CC +:1041D0000E3D1C4509F0DCC10F900F900F900F9021 +:1041E0000F90DF91CF911F910F91FF90EF90DF9093 +:1041F000CF90BF90AF909F908F907F906F905F9087 +:104200000C940A17C8010E94FD0BF82ECFC1092F8C +:104210000F70907F11F00295007F812F2223C9F04B +:10422000002369F090E2910F983010F011110BC04B +:1042300080914604082B009346040E94DC0B812FDA +:104240000E94B10C17C080919B02082B00939B0227 +:10425000F4CF0E94780C002369F00095105E1830AE +:1042600010F0B11027C08091460408230093460443 +:104270000E94DC0B98E0E91AF108E4E0EE16F10484 +:1042800008F039CC0E946F0E0F900F900F900F9096 +:104290000F90DF91CF911F910F91FF90EF90DF90E2 +:1042A000CF90BF90AF909F908F907F906F905F90D6 +:1042B0000C94061680919B02082300939B02D8CF92 +:1042C000892F8F70907F903211F08295807FF1E07E +:1042D000BF120CC0222329F0333060F60E946E0C0E +:1042E000C9CF323038F60E94630CC4CF222341F08C +:1042F0003323A1F340FFA3CF4F70F6014583EECFE8 +:10430000332389F3193309F0F5C0FFEF27EE33E0CB +:10431000F15020403040E1F700C00000812F0E94A2 +:10432000780CA8CF892F86958695837061F08130AF +:1043300009F0A0CF812F9370211102C090E080E09E +:104340000E940A0997CF812F9370211102C090E03B +:1043500080E00E9420098ECF892F8370A1F5211162 +:1043600089CF812F829586958770880F880F412F7E +:104370004F70082E01C0440F0A94EAF7212F2071D4 +:1043800014FF07C02FE030E001C0220F8A95EAF742 +:104390002095969596959370923081F0822F842B7C +:1043A000933030F480919C02913029F0242B8223A9 +:1043B0000E945F0C5FCF842B822BFACF242B80913D +:1043C0009C028227F5CF8695222311F0892F8170D8 +:1043D000882309F44FCF812F829586958770880FA7 +:1043E000880F412F4F70082E01C0440F0A94EAF73E +:1043F000212F207114FF07C02FE030E001C0220FF1 +:104400008A95EAF72095969596959370923081F06B +:10441000822F842B933030F480915D04913029F009 +:10442000242B82230E94A81625CF842B822BFACF1F +:10443000242B80915D048227F5CF092F0F70222352 +:1044400029F0802F0E94C516812F48CF812F0E940E +:10445000630C802F0E94B9160DCF812FE1EF1E173C +:1044600089F1E11750F0F0EF1F17B9F02223B1F1F5 +:104470003111E5CE892F8F7129C042EF141749F110 +:1044800053EF1513F3CF80E0222361F29F7181E097 +:1044900001C0880F9A95EAF7C5CF222379F0323010 +:1044A00008F0E8CE292F2F7181E090E001C0880F3D +:1044B0002A95EAF790915D048927B4CF333008F04C +:1044C000D9CEF0CF892F8F71222321F20E94C516F9 +:1044D000D1CE892F8F712223C9F3BCCF332379F03A +:1044E000893341F48FEF97EEE3E081509040E04054 +:1044F000E1F712CF8FE39CE90197F1F70DCF892FF8 +:104500008F71A8CF0031FFE51F0709F47ECC013180 +:104510002FE5120709F496CC0E94FE08609305036C +:10452000709306038093070390930803F60182813A +:10453000053E110509F417CD08F095CC003E110594 +:1045400009F48ACC08F080CC0C32110509F458CD5E +:10455000F601928191113CCE8091460482720A3C10 +:10456000FCE51F0709F414CE08F06ACD053C3CE5D4 +:10457000130709F4F9CD08F04ECD033C5CE51507AF +:1045800009F4D3CD08F0EBCD023C1C4509F47DCDF8 +:10459000F60100811181992309F434CEC8010E94EB +:1045A0001314F82E682FC8010E94250CB8018F2D16 +:1045B0000E9406140E94720A182FB82EF60122815A +:1045C0004581342F32953F70892F82958F70E82E68 +:1045D000F12C8C3008F04ECEF701E15CF84C0C94D5 +:1045E000D73100313FE5130709F413CC01314FE512 +:1045F000140709F09BCF82E00DCC85E0DE01119617 +:1046000001900D928A95E1F7F601228189819A81C4 +:10461000211186CA0E94FD0B182F8ACA1F93CF93BF +:10462000DF9380916702807FA9F4809164028823E0 +:1046300089F080919902D091680260916202709134 +:104640006302A0916502B0916602C62FC72316E0EF +:10465000D81304C0DF91CF911F91089590E0109777 +:1046600011F0CF3F19F401968770F2CF189F900197 +:10467000199F300D1124F901E759FD4F418147136E +:10468000F2CF40814613EFCF42814111ECCF4381FD +:1046900054814A1B5B0B403A510528F78091670211 +:1046A0008F70806180936702F901E259FD4F80812C +:1046B0008F708061808382E692E00E945B1DDF91B3 +:1046C000CF911F910C94F30BAF92BF92CF92DF92D8 +:1046D000EF92FF920F931F93CF93DF93CDB7DEB787 +:1046E00061970FB6F894DEBF0FBECDBF8C0185E099 +:1046F000F801DE011D9601900D928A95E1F7F8010F +:10470000E28082E6A82E82E0B82E60916502709168 +:1047100066026115710509F432C1909162024091FF +:104720006302892F84238F3F09F429C120813181BD +:10473000C380D480F0906402F601E61BF70BFF20E3 +:1047400009F4E8C080916702582F507FE03AF105E4 +:1047500008F0ABC0511177C0FE2C431321C0921357 +:104760001FC0E1101DC08F70806180936702C5017A +:104770000E945B1D80916702F80185838F2D6196F1 +:104780000FB6F894DEBF0FBECDBFDF91CF911F9162 +:104790000F91FF90EF90DF90CF90BF90AF90089572 +:1047A000CD2829F0822F83238F3F09F003C180E0B9 +:1047B000F82FF170DF2E80FF3CC08091990240916C +:1047C000680256E0841315C02D873E878D859E852F +:1047D0000E944214292F22952F702230F0F02430AD +:1047E00018F59F70F1F0F8019581907FD1F4D12CEC +:1047F0001EC090E0589FF001599FF00D1124E75919 +:10480000FD4F6181361306C06081261303C06281AB +:10481000E6120FC001968770D5CF9F7011F08823E4 +:1048200031F3805E883018F3C8010E945B1DFD2CB7 +:10483000A5CFEE2009F4A2CF80916702816080931A +:104840006702F12C9BCF431306C0921304C0F801FA +:10485000EE2009F479C0C8010E944E14882309F1A2 +:10486000EE20F9F080916702803270F020916202B0 +:104870003091630238872F831986DB86CA868C873E +:10488000CE0107960E945B1D86E0F801A2E6B2E029 +:1048900001900D928A95E1F70E940E23FF24F39474 +:1048A0006DCFC8010E945B1DF9CF51110AC082E68D +:1048B00092E00E945B1D86E0F50111928A95E9F76E +:1048C000C0CF43130FC092130DC0E1100BC0F8010D +:1048D0008583C8010E945B1D86E0F50111928A95CF +:1048E000E9F74CCFC8010E944E148823D1F2EE2084 +:1048F000C1F280916702803238F2209162023091D9 +:1049000063023A8329831B82DD82CC828E83CE01AF +:104910000196B8CFE03AF105F8F6FE2CEE2009F248 +:1049200043131FC092131DC08091670280FD10C009 +:10493000982F907F69F0F8018583903F31F0982F90 +:10494000907F905F8F70892B8583C8010E945B1DCB +:1049500086E0F801A2E6B2E001900D928A95E1F7B7 +:104960000DCFC8010E944E1481118ECF8091670235 +:10497000816080936702C8010E945B1DFFCEEE201C +:1049800009F48FCFC8010E944E14F82E882309F431 +:1049900088CF86E0F801A2E6B2E001900D928A95F8 +:1049A000E1F780916202909163020E9442140E949A +:1049B0000E23E4CE81E08E25FBCE1F93CF93DF93B1 +:1049C000CDB7DEB767970FB6F894DEBF0FBECDBF89 +:1049D0004B8B5C8B6D8B7E8B8F8B611110929B024E +:1049E0001A8A198A85E0FE017396DE011D960190F0 +:1049F0000D928A95E1F786E0FE013D96DE0117965D +:104A000001900D928A95E1F7CE0107960E946423EA +:104A1000882389F016E080919902909168028913A9 +:104A20004BC067960FB6F894DEBF0FBECDBFDF91C7 +:104A3000CF911F91089586E0FE013796DE01119611 +:104A400001900D928A95E1F78A859B85892B11F358 +:104A50008F81988589238F3FE9F22091680230E0A9 +:104A6000C901019687709927409199024817190644 +:104A700081F4109246040E94A70F109268021092CF +:104A8000990286E0E2E6F2E0DF011D928A95E9F7FD +:104A9000C1CF96E0929FD001939FB00D1124A759EA +:104AA000BD4FFE01319601900D929A95E1F78093EA +:104AB00068020E94F30BAECF819FC0011124875979 +:104AC0009D4F0E946423882309F4ABCF8091990203 +:104AD00090E0019687709927809399029CCF0F935D +:104AE0001F93CF93DF93CDB7DEB7A8970FB6F89497 +:104AF000DEBF0FBECDBF81114DC006E0662359F168 +:104B00000CA311E01DA31EA30E94031B8160782F3C +:104B100098A78FA34CA15DA16EA188A50E94DD245A +:104B20000F8F18A319A20E94031B8160782F9BA3EB +:104B30008AA34F8D58A169A18BA10E94DD2481E039 +:104B4000A8960FB6F894DEBF0FBECDBFDF91CF9110 +:104B50001F910F9108950A8F13E01B8F81E08C8FB6 +:104B60000E94031B8160782F9E8F8D8F4A8D5B8DF5 +:104B70006C8D8E8D0E94DD240D8B1E8B1F8A0E94F2 +:104B8000031B8160782F998F888F4D895E896F898B +:104B9000898DD3CF813099F66623F1F016E0188B1A +:104BA000198B8A8B0E94031B8160782F9C8B8B8BC7 +:104BB000488959896A898C890E94DD241B871C8752 +:104BC0001D860E94031B8160782F9F878E874B85EF +:104BD0005C856D858F85B1CF06E00E8318E01F835D +:104BE00088870E94031B8160782F9A8789874E816E +:104BF0005F8168858A850E94DD2409831A831B8270 +:104C00000E94031B8160782F9D838C8349815A8188 +:104C10006B818D8192CFCF92DF92EF92FF920F93B3 +:104C20001F93CF93DF930F92CDB7DEB7EE24E394BB +:104C3000F12C00EC12E09E012F5F3F4F45EB52E05C +:104C400063E082E00E94BE18082F882321F1C09003 +:104C5000F4028C2D90E09C0129503D4F790119817F +:104C6000F9018081181BD12E80E00AC0DA94F70187 +:104C700080818F5F808360E08C2D0E946F25802F64 +:104C80001D14A4F3912F17FD90E0191B11110EC0F4 +:104C900081110E94DA0B802F0F90DF91CF911F912D +:104CA0000F91FF90EF90DF90CF9008951F5FF70175 +:104CB00080818150808361E08C2D0E946F25802F40 +:104CC000E5CF1F921FB61F9211248F939F93AF932E +:104CD000BF9380913D04811113C080913E04909157 +:104CE0003F04A0914004B09141044196A11DB11D23 +:104CF00080933E0490933F04A0934004B0934104FA +:104D0000BF91AF919F918F911F901FBE1F901895DB +:104D1000CDB7DEB7E0970FB6F894DEBF0FBECDBFBC +:104D200084B7877F84BF0FB6F894A8958091600000 +:104D3000886180936000109260000FBE80E890E070 +:104D40000FB6F89480936100909361000FBE85B711 +:104D5000806885BF85B7806885BF84E19AE09093BD +:104D60003902809338020E9470070E943B088091AC +:104D7000E20084608093E200789480915304882359 +:104D8000A1F01091E9001F709091EC00892F8170C3 +:104D900090FD80E8182B1092E9008091E80083FDD7 +:104DA0000E94B00F1F701093E90082E084BD93E071 +:104DB00095BD9AEF97BD80936E001092E10210921C +:104DC000E2021092E3021092E4020E947514811133 +:104DD00002C00E94D1130E944C0E80936101809109 +:104DE0006101882309F4C6C01092760185E28093A0 +:104DF00077010E944C0E81110E94C32F80916101A6 +:104E000081112FC0FE01359686E0DF011D928A9543 +:104E1000E9F786E6898387E98A8386EC8B8384E3D6 +:104E20008C8385E38D833497A7E5B1E0CE010B96A3 +:104E300021912D938E179F07D9F787E0ECE7F1E0DA +:104E4000DE01919601900D928A95E1F7FE01B196EF +:104E5000A0E5B1E0CE01889621912D938E179F0792 +:104E6000D9F78091610195E0811190E09093F20271 +:104E700085E0891B8093F10207E511E08CE5E82EBF +:104E800081E0F82EF80181918F018F3F11F00E948F +:104E9000180AE016F106B1F700E511E0B7E5EB2ED0 +:104EA000B1E0FB2ED8018D918D018F3F11F00E9452 +:104EB000180AE016F106B1F7E7EEF2E081EF92E0B2 +:104EC000ACE3B3E011921D928E179F07D9F70E94B1 +:104ED000AA19811102C00E940A1782E090E00E9484 +:104EE000EE348093310384E090E00E94EE34182F7A +:104EF00082E290E00E94EE34982F812F9093E60298 +:104F00008093E5020E940F1BEFE7FBEB3197F1F76F +:104F100000C000000E940F1B80913C0380FF2EC048 +:104F20006FEF7FEF90E080E00E94203581E080937A +:104F3000E00080E28093D8001092C9008FE19EE4E7 +:104F40000197F1F700C0000087E090EBDC0180934F +:104F5000670690936806A0936906B0936A0688E195 +:104F60009CE00FB6F894A895809360000FBE9093D4 +:104F70006000FFCF85E28093760139CF83E090E037 +:104F80000E94EE340E945F0C80915D040E941E1608 +:104F90000E944C0E811102C00E94C62F83E08093B4 +:104FA0002C0380E280932A040E945B2E6DE070E067 +:104FB00083E592E00E94360D892BE9F580912C0360 +:104FC00063E070E081FDFCC180E592E00E94360D57 +:104FD000892B89F56DE070E080E492E00E94360D47 +:104FE000892B49F50E94FE086058774C8E4F9F4FE1 +:104FF00060933104709332048093330490933404AB +:10500000E5E6F4E080E092E0DF019C011D92215092 +:105010003040E1F7F0936606E09365068FEF9FEF6F +:10502000909364048093630481E0809336048093BA +:10503000350410922D038091F302811136C00E9435 +:10504000AA19811104C00E940A170E94F21688E072 +:1050500090E00E94F63460935E0470935F04809346 +:1050600060049093610480914803836080934803B7 +:105070006E7F71F40E94F21688E090E00E94F63490 +:1050800060935E0470935F04809360049093610466 +:105090000E94680980915E0480FF04C060E08695EC +:1050A0000E94B71581E08093F30280916101811124 +:1050B00006C084EF80936D0185EF80936C01209191 +:1050C0006D01A22FA295AF70B0E091963C9191979F +:1050D0002F7081E090E0BC01022E01C0660F0A949F +:1050E000EAF7462F4095432391964C9391979296D9 +:1050F0003C919297362B92963C93929740916C01FB +:10510000E42FE295EF70F0E031A14F70042E01C062 +:10511000880F0A94EAF7982F9095932391A392A170 +:10512000892B82A390968C9190E002C095958795EB +:105130002A95E2F7817020A130E002C035952795CD +:105140004A95E2F792E020FF90E0892B8093FB02E2 +:105150009091610181E098279093FA02891B8093D6 +:10516000F40280E692E090934B0380934A0360E060 +:105170008AE00E94B71582E691E090933A0480930A +:105180003904A0E46A2ECE0101967C01809153047B +:10519000DD24D39400E112E1853009F45EC10E9460 +:1051A0000F1BC82E81110E94FE08E2E3F3E0ACE37E +:1051B000B3E010E000E0902EBD9081918B1509F4D2 +:1051C0006FC18B25A12CDD24D3949D2D982309F448 +:1051D00062C10E944C0E882399F0A9A29AA2BD2018 +:1051E00081E009F480E08BA30E94031B8160782F8B +:1051F0009DA38CA349A15AA16BA18DA10E94DD247E +:10520000F801EE5CFC4F8081D826D0828091FB02B1 +:10521000E82FEE0FEE0F90916D01A92FA295AF70C0 +:10522000B0E090962C9130E09F7002C035952795A4 +:105230009A95E2F72170332790916C01A92FA295DE +:10524000AF70B0E090964C9150E09F7002C05595C1 +:1052500047959A95E2F7CA018170992740FF02C0ED +:1052600082E090E0822B8E2B8093FB021091FA0259 +:105270008F70E82FF0E0EC5FFD4F80819091F90294 +:10528000890F8093F902D12C84306CF0E12FF0E08B +:10529000E950FD4F80818F5F808360E0812F0E9405 +:1052A0006F25DD24D3948091F9028D3F6CF4E12FBA +:1052B000F0E0E950FD4F80818150808361E0812FD3 +:1052C0000E946F25DD24D3948091F902082E000CF2 +:1052D000990B64E070E00E94A4318093F902D11030 +:1052E0000E94DA0B80913604882351F180912E03BD +:1052F00090912F030E94F41AC29708F0E8C0209101 +:105300006304309164042115310509F046C280918F +:1053100035048823A9F00E94FE0800913104109101 +:1053200032042091330430913404601B710B820BE2 +:10533000930B6F3F7F4F8F4F9F4710F40E94660D76 +:10534000C11001C0D1100E94810D0E946F0E90917A +:105350003003891731F00E946F0E809330030E9452 +:10536000061680915304843009F010CF83E08093B7 +:10537000E9008091E80082FF09CF8091E80090E089 +:1053800085FF0CC00E948F0730E2C32ED12C8E0106 +:105390000F5F1F4F882309F4E1C291E08091E8007C +:1053A0008B778093E800992309F4F0CEE981E150EE +:1053B000E33108F035C3F0E0E55BF84C0C94D731ED +:1053C0008DE492E003CE80915304843009F435C01B +:1053D0000E94660D80E00E9406168091F6028111FF +:1053E00009C0D092F60280915E0481708093F5022C +:1053F0000E94920F10923D04A8E1B0E00FB6F8941D +:10540000A895A09360000FBE6092600083B7817F73 +:10541000846083BF83B7816083BF7894889583B7A6 +:105420008E7F83BF0FB6F894A89580916000886145 +:1054300080936000109260000FBE80915204882318 +:1054400061F00E940F1BECE3F3E08191811112C423 +:1054500026E433E02E173F07C1F7809153048530CF +:1054600009F4B1CF109246040E94A70F0E946F0E5C +:105470000E9406161092F6028091F502882309F424 +:105480008ECE80915E04816080935E0460E086959C +:105490000E94B71584CEA394DD0C37E0A31295CEFD +:1054A0000F5F1F4F0A30110509F085CE8FEF88A7D7 +:1054B00089A71AA60E94031B8160782F9CA78BA73F +:1054C00048A559A56AA58CA50E94DD249FCE0E94FF +:1054D000031B90932F0380932E0360E080E00E94D3 +:1054E00036098091FC0290E090930B0380930A03AD +:1054F0000E946F0E809309030E944C0E882331F1A5 +:1055000040910503509106036091070370910803D1 +:105510002FB7F89480913E0490913F04A0914004ED +:10552000B09141042FBF841B950BA60BB70B8133A1 +:105530009547A105B10540F00E94660D80913604A3 +:10554000882309F4E4CEDBCE0E94810D0E944C0E2C +:1055500062E0882309F4E2C080E00E94360960E03E +:1055600083E891E00E94381363E080E00E943609EE +:1055700080915D040E94250D823009F499C008F0E5 +:105580008EC0882309F494C0813009F497C066E086 +:1055900080E00E94360960E081EA91E00E943813C1 +:1055A00067E080E00E9436096091090366956170AA +:1055B00086EA91E00E94381368E080E00E94360994 +:1055C00060910903609561708BEA91E00E94381345 +:1055D00069E080E00E9436096091090362FB66275A +:1055E00060F98FEA91E00E943813409101035091D5 +:1055F000020360910303709104032FB7F894809124 +:105600003E0490913F04A0914004B09141042FBF0B +:10561000841B950BA60BB70B8D329140A105B105EC +:1056200008F48CCF0E94FE0860930103709302037C +:10563000809303039093040380910003811104C0BD +:1056400080916E01811142C06FE080E00E943609B6 +:1056500060E084EB91E00E9438136CE080E00E94EF +:10566000360981E080936E018091FF0290E00196FF +:10567000817099278093FF0221E030E0281B390BCD +:1056800040E6429FC001439F900D11242091FE02ED +:10569000222351F18E589A4F0E942D074FCF83300D +:1056A00089F0843009F073CF60E085E991E003C0B0 +:1056B00060E089E891E00E94381369CF60E08FE8EC +:1056C00091E0F9CF60E08BE991E0F5CF6CE080E00C +:1056D0000E94360960E084EB91E00E9438136DE08F +:1056E00080E00E943609C0CF2091FD02222319F0EC +:1056F0008E549B4FD1CF20910A0330910B032B3056 +:1057000031051CF48E509C4FC7CF293231051CF453 +:105710008E5C9C4FC1CF8E589D4FBECF80E00E94C3 +:10572000360960E08AEB91E00E94381363E080E084 +:105730000E94360960E080EC91E00E94381367E037 +:1057400080E00E94360982E396E00E942D076DE01A +:1057500080E00E94360980910B038F9380910A03A9 +:105760008F9386EC91E09F938F93FF92EF920E942C +:105770005C3260E0C7010E9438136EE080E00E9456 +:10578000360960E08CEC91E00E9438130F900F9086 +:105790000F900F900F900F90D1CE80912D0361E06C +:1057A00070E08111B4CD082F10E01B01082E02C05B +:1057B000220C331C0A94E2F7A90142215321452B04 +:1057C00009F448C090912C0390FD46C08295880F43 +:1057D00080768093710198013695279536952795A7 +:1057E00020937401815E809372011092750124E60A +:1057F00030E047E050E06FE671E088E70E940A2F52 +:10580000892B09F084CDA801E5E0440F551FEA95E6 +:10581000E1F780912C0380FD2DC04B595B4F04E6CE +:1058200010E020E230E060E488E70E94312F892B0D +:1058300009F06DCD0E94810DC10180959095209059 +:105840006304309064042822392230926404209248 +:1058500063045DCD8F5FA7CF880F880F880F80937B +:10586000710110927401895F8093720183E08093CB +:105870007501BDCFECE0F3E080E2DF011D928A9577 +:10588000E9F7E8E1F2E0F8ABEFA764E1462E62E069 +:10589000562E77E0A72E99249394AFA5B8A96D91C1 +:1058A000B8ABAFA7F20181912F01840F952F911D05 +:1058B0009C012B593B4F3EA72DA7E62FF0E0E45F5C +:1058C000FC4F30E020E07A2C721AB92C022E01C075 +:1058D000BB0C0A94EAF70DA51EA590E0D8018D91A6 +:1058E0008D018B21672D691B6770862E062E000C9B +:1058F000770BB82F01C0BB0F8A94EAF78B2E7195F6 +:10590000619571096770772701C086956A95EAF7F6 +:10591000882A8081882A80829F5F9830F9F62F5FDD +:105920003F4F31962830310571F6ECE1F2E02FA5BA +:1059300038A9E217F30709F0B0CF04E610E020E23F +:1059400030E04CE053E06FCF8091F100D8018D93AF +:105950008D01B1E0CB1AD10809F41FCD8091E80088 +:1059600085FDF2CF8091E8008B778093E8000E945C +:105970008F07882399F311CD1A8289E08B8311C098 +:105980008A81823009F48EC1833089F1813009F037 +:1059900047C00E94FE080E94DD316B837C838D83AB +:1059A0009E8380915304843009F0F0CB1091E9007C +:1059B0001F709091EC00892F817090FD80E8182B6A +:1059C00082E08093E9008091E80080FF0CC050E005 +:1059D00040E060E270E0C7010E94C0078091E800EB +:1059E0008E778093E8001F701093E900CFCBDE0123 +:1059F0001396ECE3F3E081918D9323E0E634F20714 +:105A0000D1F7CFCF8A81823059F46B817C818D812F +:105A10009E810E94DD3186E290E00E940235C1CF76 +:105A20008FEF8983BECF4C816B818A810E94E01306 +:105A30009827892798279E838D83B3CF0D811E8158 +:105A40001027012710278A81CB803EE0C39E60018A +:105A500011249CE8899FC00CD11C11248C8190E0FA +:105A6000880F991FC80ED91E612FC60187960E9404 +:105A70000235602FC6018896D0CF0E94641391CF63 +:105A80008A818138C1F060F4803809F08ACF20E043 +:105A90004B816091600480915F040E94A01481CFCB +:105AA0008238E9F0833809F07CCF20E0409161042E +:105AB0006C818B81F2CF60E08B810E94B7158B8166 +:105AC000811103C00E94920F6CCF80915E048160AF +:105AD00080935E0460E086950E94B71562CF8B814B +:105AE000809362045ECF8A81813899F030F48038E7 +:105AF00009F057CF8091610441CF823891F083380B +:105B000009F04FCF80915F048B83809160048C8378 +:105B100048CF80915E0480FF02C086952FCF80E041 +:105B20002DCF809162042ACF60915E0470915F0452 +:105B300080916004909161040E948E1432CF80E1C4 +:105B40008A832FCF81E08A838DE118CFAA80BB8022 +:105B5000BA24AB24BA248E010F5F1F4FCC80C00E35 +:105B6000D12ED11CC5018D519D4F0C151D0509F479 +:105B700018CFADE1AA16A1E0BA0650F40E94EE34A7 +:105B8000F8018483BFEFAB1ABB0A0F5F1F4FEACF48 +:105B9000D80114961C92F6CF0A811B811027012789 +:105BA0001027FE0131965F01CC80C00ED12ED11C92 +:105BB000C8018D519D4FC016D10609F4F2CE0D31AA +:105BC000F1E01F0728F4D50114966C910E9402356C +:105BD000BFEFAB1ABB0A0F5F1F4FEACF0E945413EF +:105BE000E0CE85E0ADCFAA80BB80BA24AB24BA2436 +:105BF0008E010F5F1F4FCC80C00ED12ED11CC5016E +:105C00008796C016D10609F4CCCEECEBAE16E2E0D6 +:105C1000BE0658F40E94EE34D80114968C93FFEF20 +:105C2000AF1ABF0A0F5F1F4FEACFF8011482F7CFF8 +:105C30000A811B811027012710279E012F5F3F4FEC +:105C40005901CC80C00ED12ED11CC8018796C01638 +:105C5000D10609F4A6CE0C3B32E0130728F4D50197 +:105C600014966C910E940235BFEFAB1ABB0A0F5F0E +:105C70001F4FEBCF09BD19BD09B400FEFDCF8091C8 +:105C8000D8008F7D8093D8008091E000826080935F +:105C9000E0008091E00081FDFCCF109246040E945C +:105CA000A70FDBCB86E290E00E94EE341B821C82C1 +:105CB0001D828E8376CE1092B9008CE08093B8005E +:105CC00008959F92AF92BF92CF92DF92EF92FF9290 +:105CD0000F931F93CF93DF93B82EEB010E94031B0A +:105CE0006C01EE24E394F12CC431D10560F025E081 +:105CF000E22EF12CCF3FDC0731F0CE0164E170E001 +:105D00000E9484317B0184EAA82E94E8992E109297 +:105D1000BC00A092BC000E94031B8C018091BC00BF +:105D200087FF0DC08091B900887F883039F180915C +:105D3000B900887F803111F10FEF1FEF09C00E9479 +:105D4000031B801B910B8E159F0540F30EEF1FEF79 +:105D5000CF3FDC07E1F2C6010E94F41A8C179D07C1 +:105D6000B0F2C801DF91CF911F910F91FF90EF909A +:105D7000DF90CF90BF90AF909F900895B092BB00FE +:105D80009092BC000E94031B8C018091BC0087FF95 +:105D90000AC08091B900887F883111F0803461F6A3 +:105DA00010E000E0DECF0E94031B801B910B8E15DC +:105DB0009F0558F3CBCF0F931F93CF93DF93EB0146 +:105DC0008093BB0084E88093BC000E94031B8C017D +:105DD0008091BC0087FF11C02091B900287F81E02D +:105DE00090E0283211F490E080E09195819591093E +:105DF000DF91CF911F910F910895CF3FDC0741F3C1 +:105E00000E94031B801B910B8C179D0708F38EEFDC +:105E10009FEFEECFCF92DF92EF92FF920F931F93FF +:105E2000CF93DF936B018A017901B9010E94612E42 +:105E3000E6010C0D1D1DC017D10761F424E9209364 +:105E4000BC00DF91CF911F910F91FF90EF90DF90F9 +:105E5000CF90089597FDF2CFB70189910E94DB2E74 +:105E6000EACFCF92DF92EF92FF920F931F93CF93DF +:105E7000DF93C62F6A017901B8010E94612E97FD58 +:105E80000CC0B8018C2F0E94DB2EE601EC0CFD1C2F +:105E9000CE15DF0511F097FF0CC024E92093BC005C +:105EA000DF91CF911F910F91FF90EF90DF90CF90F6 +:105EB0000895B80189910E94DB2EEACF84E980938E +:105EC000BC0008958EE14A9B02C08150E1F74A9BD5 +:105ED000FECF08955A9880E28A95F1F75A9A08956C +:105EE000FC013BE03A95F1F798E020E080E031E0FA +:105EF00040E14A95F1F7880F4A9B02C08160232751 +:105F000042E04A95F1F7000040E14A95F1F79150DF +:105F100079F790E19A95F1F799B132E03A95F1F776 +:105F2000000040E14A95F1F792FB992790F99227FA +:105F30002081920F90830895EF92FF920F931F9309 +:105F4000CF93DF930F92CDB7DEB719828C017C011E +:105F5000E60EF11C0E151F0561F481E09981911187 +:105F600080E00F90DF91CF911F910F91FF90EF9004 +:105F700008950E94622FCE0101960E94702FF801B1 +:105F800081938F01E7CF529A5A9A089552985A9A5C +:105F9000EA9AE9E6F0E080818F7C80830895615081 +:105FA000770B91E001C0990F6A95EAF720E031E0A4 +:105FB000911108C0222391F05A9A80E28A95F1F754 +:105FC0005A980895492F482339F05A9A232740E2D6 +:105FD0004A95F1F79695ECCF5A98F9CF5A98EDCFAC +:105FE000FF920F931F93CF93DF93EC018C01060F69 +:105FF000111DC017D10731F4DF91CF911F910F917F +:10600000FF900895F9900E946A2F68E08F2D0E94FA +:10601000CF2FEFCF1F920F920FB60F921124EF9256 +:10602000FF920F931F932F933F934F935F936F9321 +:106030007F938F939F93AF93BF93EF93FF93CF93F0 +:10604000DF930F92CDB7DEB719820E94622FCE0187 +:1060500001960E94702FA82FA695A695A695282F89 +:10606000229525709A2F9570290F922F937026955F +:106070002695920F982797708981982B09F075C003 +:10608000A93008F072C080E18A95F1F75A9A529AC5 +:10609000B2E0BA95F1F700C05A98EA2EF12CEAE086 +:1060A000AE9FD0011124A050BF4F1896ED91FC91E6 +:1060B00019973097B1F06091020270910302169621 +:1060C0002D913C911797260F371F13968D919C9118 +:1060D0001497680F791F15964C91159712968C910D +:1060E00009958AE08E9DF0018F9DF00D1124E050FE +:1060F000FF4F6581662351F0209102023091030227 +:1061000086819781820F931F0E94F02F0E946A2F31 +:10611000F0E1FA95F1F75A9852985A9A80E18A95E7 +:10612000F1F78AE08E9D80018F9D100D11240050A3 +:106130001F4FD80112966C911297662371F120912E +:1061400002023091030213968D919C91820F931F4E +:106150000E949C2FD801ED91FC91882311F088E0DA +:1061600001C082E080830E94622F0F90DF91CF9167 +:10617000FF91EF91BF91AF919F918F917F916F911F +:106180005F914F913F912F911F910F91FF90EF9051 +:106190000F900FBE0F901F901895ED91FC91DFCFDF +:1061A0000F931F93CF93DF93EC0109970CF0A9C0D5 +:1061B0008AE08C9FF0018D9FF00D1124E050FF4F7D +:1061C00080819181892B09F49CC0F894529A5A9845 +:1061D00085E08A95F1F700008C2F869585709C2FBD +:1061E0009570890F982F937086958695890F8E01EB +:1061F00093E0000F111F9A95E1F7082B0E946A2F78 +:1062000000C068E0802F0E94CF2FA0E1AA95F1F78F +:1062100052985A9A4A9B27C087E090E04A9925C035 +:106220008AE08C9F80018D9F100D112400501F4F1C +:10623000F80165816623A1F12091020230910302E9 +:1062400086819781820F931F0E949C2F811128C005 +:10625000529A5A9AD801ED91FC9182E08083789409 +:1062600082E090E016C000C0D5CF0197B9F4529AF1 +:106270005A9A8AE08C9FF0018D9FF00D1124E05016 +:10628000FF4F0190F081E02D81E08083789481E0E0 +:1062900090E0DF91CF911F910F91089500C0BECF84 +:1062A0000E94622FB0E2BA95F1F75A98529AE0E153 +:1062B000EA95F1F78AE08C9FF0018D9FF00D112493 +:1062C000E050FF4F6281662351F02091020230912D +:1062D000030283819481820F931F0E94F02F0E94FA +:1062E0006A2F8AE08C9FF0018D9FF00D1124E05001 +:1062F000FF4F0190F081E02D1082789490E080E0D3 +:10630000C8CF84E090E0C5CFAA1BBB1B51E107C0FA +:10631000AA1FBB1FA617B70710F0A61BB70B881F35 +:10632000991F5A95A9F780959095BC01CD010895C4 +:10633000991B79E004C0991F961708F0961B881FD7 +:106340007A95C9F78095089597FB072E16F4009467 +:1063500007D077FD09D00E94843107FC05D03EF4B8 +:10636000909581959F4F0895709561957F4F089501 +:10637000052E97FB1EF400940E94CF3157FD07D0E5 +:106380000E94E43107FC03D04EF40C94CF315095B9 +:106390004095309521953F4F4F4F5F4F0895909511 +:1063A0008095709561957F4F8F4F9F4F0895EE0FA9 +:1063B000FF1F0590F491E02D09946927962769271E +:1063C0007827872778270895A1E21A2EAA1BBB1BDE +:1063D000FD010DC0AA1FBB1FEE1FFF1FA217B307B1 +:1063E000E407F50720F0A21BB30BE40BF50B661FC7 +:1063F000771F881F991F1A9469F76095709580958B +:1064000090959B01AC01BD01CF0108952F923F9261 +:106410004F925F926F927F928F929F92AF92BF92B4 +:10642000CF92DF92EF92FF920F931F93CF93DF9360 +:10643000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEBD +:10644000CDBF09942A88398848885F846E847D840A +:106450008C849B84AA84B984C884DF80EE80FD800C +:106460000C811B81AA81B981CE0FD11D0FB6F89482 +:10647000DEBF0FBECDBFED010895FB01DC0102C000 +:1064800005900D9241505040D8F70895FB01DC0172 +:1064900004C08D910190801921F441505040C8F7FB +:1064A000881B990B0895FB01DC0102C001900D923D +:1064B00041505040D8F70895AEE0B0E0E2E6F2E394 +:1064C0000C9414320D891E8986E08C831A8309830B +:1064D0008FEF9FE79E838D83AE01475E5F4F6F898D +:1064E000788DCE0101960E947F322F813885020F70 +:1064F000131FF80110822E96E4E00C943032ABE0CA +:10650000B0E0E5E8F2E30C9406327C013B018A013D +:10651000FC0117821682838181FFB9C19AE0292E7E +:10652000CE0101965C01F7019381F30193FD859102 +:1065300093FF81913F01882309F446C1853239F4E4 +:1065400093FD859193FF81913F01853229F4B70135 +:1065500090E00E946034E7CF912C412C512CFFE158 +:10656000F51538F08B3209F188F4803201F183326D +:1065700021F157FC3AC020ED280F2A3040F556FE95 +:106580001FC0929C200D1124922E06C08D3291F0D6 +:10659000803379F7689450F8F30193FD859193FF68 +:1065A00081913F018111DBCF20C0689451F868943C +:1065B00052F8F2CF689453F8EFCF689454F8ECCFC8 +:1065C000429C200D1124422E689455F8E5CF8E325E +:1065D00029F456FCF9C0689456F8DECF8C3619F4CD +:1065E000689457F8D9CF8836B9F2982F9F7D955483 +:1065F0009330C0F08336A1F18337C1F1833509F0C0 +:106600005BC0F801C190D1908F01692D70E056FCFC +:1066100002C06FEF7FEFC6010E944A344C016894BC +:1066200057F80AC00C5F1F4F2FE3298388248394F7 +:10663000912C6501E89457F853FC04C048141904E0 +:1066400009F018F5342C8114910431F5332009F444 +:106650006ACFB70180E290E00E9460343A94F6CFAE +:10666000F801808189830E5F1F4FE0CFF801C19050 +:10667000D1908F01692D70E056FC02C06FEF7FEF63 +:10668000C6010E9455344C01D5CFB70180E290E09D +:106690000E9460344A94D2CFF60157FC859157FE90 +:1066A00081916F01B70190E00E94603431103A94FB +:1066B000F1E08F1A9108C7CF843619F0893609F0B6 +:1066C00074C0F80157FE6AC06191719181919191F6 +:1066D0008F01252D2F76D22E97FF09C0909580959A +:1066E000709561957F4F8F4F9F4F6894D7F82AE040 +:1066F00030E0A5010E949034C82ECA188C2C5D2C65 +:10670000D6FE0CC0E89450F8C91440F4D4FE05C07D +:10671000D2FC03C0FD2DFE7E5F2E892C54FE8FC05F +:10672000FE01EC0DF11D8081803309F081C0252D23 +:10673000297E522E852D8870382E53FC8FC050FE36 +:1067400089C09C2C841418F44C0C942C981854FE7A +:106750008BC0B70180E390E00E94603452FE09C014 +:1067600088E790E051FE02C088E590E0B7010E9402 +:106770006034C91408F484C0CA94D12C9FEFC91A9C +:10678000D90ACA0CDB1CF60182916F01B70190E0B7 +:106790000E946034AC14BD04B1F758CF619171917F +:1067A000072E000C880B990B93CFD52CE894D4F8C6 +:1067B0002AE030E0853739F1952D997FD92E8F3633 +:1067C00001F148F48835A9F0F701868197812B966D +:1067D000E2E10C942232803749F08837A9F7D4FEE1 +:1067E00002C06894D2F820E130E00DC06894D4F87B +:1067F000F6CF54FE03C0E92FE660DE2E20E132E042 +:1068000002C028E030E0F801D7FE0DC0619171911F +:10681000819191918F01A5010E949034C82ECA18D0 +:10682000E894D7F86BCF6191719190E080E0F2CF5E +:1068300052FC02C083947ECF839483947BCF852DBA +:10684000867809F477CFF6CFB70180E290E00E9416 +:10685000603483948414C0F3312C79CF342C3818ED +:10686000841408F474CFF8CF852D867809F481CF8D +:106870008BE251FE80E257FC8DE2B70190E077CFCA +:10688000B70180E390E00E9460349A9472CF8FEF5A +:106890009FEF9DCFFC010590615070400110D8F72B +:1068A000809590958E0F9F1F0895FC016150704058 +:1068B00001900110D8F7809590958E0F9F1F089535 +:1068C0000F931F93CF93DF93182F092FEB018B8129 +:1068D00081FD09C01FEF0FEF812F902FDF91CF9126 +:1068E0001F910F91089582FF14C02E813F818C81EA +:1068F0009D81281739073CF4E881F981CF01019681 +:106900009983888310838E819F8101969F838E83D4 +:10691000E3CFE885F985812F0995892BA1F3DACF9B +:10692000FA01AA27283051F1203181F1E8946F93C0 +:106930006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED066 +:10694000B4E03CD0670F781F891F9A1FA11D680F04 +:10695000791F8A1F911DA11D6A0F711D811D911D37 +:10696000A11D20D009F468943F912AE0269F1124AC +:106970003019305D3193DEF6CF010895462F477010 +:10698000405D4193B3E00FD0C9F7F6CF462F4F706B +:10699000405D4A3318F0495D31FD4052419302D0C9 +:1069A000A9F7EACFB4E0A69597958795779567956F +:1069B000BA95C9F700976105710508959B01AC016F +:1069C0000A2E06945795479537952795BA95C9F796 +:1069D000620F731F841F951FA01D0895F999FECFA4 +:1069E00092BD81BDF89A992780B50895A6E1B0E0DF +:1069F00044E050E00C942835A8E1B0E042E050E0DB +:106A00000C942835262FF999FECF92BD81BDF89AB6 +:106A1000019700B4021639F01FBA20BD0FB6F894E2 +:106A2000FA9AF99A0FBE08950396272F0E9403350C +:106A30000E940235252F0E940335242F0C94033524 +:106A40000196272F0E9403350C940235DC01CB01FF +:106A5000FC01F999FECF06C0F2BDE1BDF89A31966E +:106A600000B40D9241505040B8F708955058BB27DC +:106A7000AA270E944E350C9466360E94583638F08C +:106A80000E945F3620F039F49F3F19F426F40C94ED +:106A900055360EF4E095E7FB0C942636E92F0E945C +:106AA000773658F3BA17620773078407950720F003 +:106AB00079F4A6F50C94B1360EF4E0950B2EBA2FAE +:106AC000A02D0B01B90190010C01CA01A0011124F4 +:106AD000FF27591B99F0593F50F4503E68F11A16A0 +:106AE000F040A22F232F342F4427585FF3CF469531 +:106AF00037952795A795F0405395C9F77EF41F1653 +:106B0000BA0B620B730B840BBAF09150A1F0FF0F1C +:106B1000BB1F661F771F881FC2F70EC0BA0F621F08 +:106B2000731F841F48F4879577956795B795F795F8 +:106B30009E3F08F0B0CF9395880F08F09927EE0F8D +:106B40009795879508950E94993690F09F3748F45D +:106B5000911116F40C94B23660E070E080E89FE387 +:106B6000089526F01B16611D711D811D0C942C3695 +:106B70000C9447360E947F3688F09F5798F0B92FC3 +:106B80009927B751B0F0E1F0660F771F881F991F62 +:106B90001AF0BA95C9F714C0B13091F00E94B1361D +:106BA000B1E008950C94B136672F782F8827B85F2D +:106BB00039F0B93FCCF3869577956795B395D9F7BA +:106BC0003EF490958095709561957F4F8F4F9F4FC4 +:106BD0000895E89409C097FB3EF4909580957095D0 +:106BE00061957F4F8F4F9F4F9923A9F0F92F96E919 +:106BF000BB279395F695879577956795B795F1118E +:106C0000F8CFFAF4BB0F11F460FF1BC06F5F7F4F2A +:106C10008F4F9F4F16C0882311F096E911C077233C +:106C200021F09EE8872F762F05C0662371F096E845 +:106C3000862F70E060E02AF09A95660F771F881F14 +:106C4000DAF7880F9695879597F9089597F99F67D2 +:106C500080E870E060E00895882371F4772321F0E4 +:106C60009850872B762F07C0662311F499270DC003 +:106C70009051862B70E060E02AF09A95660F771F9E +:106C8000881FDAF7880F9695879597F908959F3FA3 +:106C900031F0915020F4879577956795B795880FD7 +:106CA000911D9695879597F908959FEF80EC08952B +:106CB00000240A94161617061806090608950024DB +:106CC0000A9412161306140605060895092E039455 +:106CD000000C11F4882352F0BB0F40F4BF2B11F4C9 +:106CE00060FF04C06F5F7F4F8F4F9F4F089557FD28 +:106CF0009058440F551F59F05F3F71F04795880F2A +:106D000097FB991F61F09F3F79F0879508951216C0 +:106D100013061406551FF2CF4695F1DF08C016166C +:106D200017061806991FF1CF86957105610508941D +:106D300008950E947F36A0F0BEE7B91788F4BB27FC +:106D40009F3860F41616B11D672F782F8827985F3B +:106D5000F7CF869577956795B11D93959639C8F3CA +:106D60000895E894BB2766277727CB0197F9089504 +:106D70000E94CB360C9466360E94583638F00E943A +:106D80005F3620F0952311F00C9426360C9455367E +:106D900011240C94B2360E94773670F3959FC1F39C +:106DA000950F50E0551F629FF001729FBB27F00DB9 +:106DB000B11D639FAA27F00DB11DAA1F649F66270E +:106DC000B00DA11D661F829F2227B00DA11D621F5D +:106DD000739FB00DA11D621F839FA00D611D221F17 +:106DE000749F3327A00D611D231F849F600D211DFB +:106DF000822F762F6A2F11249F5750409AF0F1F07E +:106E000088234AF0EE0FFF1FBB1F661F771F881FE6 +:106E100091505040A9F79E3F510580F00C942636C2 +:106E20000C94B2365F3FE4F3983ED4F386957795A1 +:106E30006795B795F795E7959F5FC1F7FE2B880F8C +:106E4000911D9695879597F90895F894FFCF97101F +:106E5000BF101211BF101211F2102A1112112712B5 +:106E6000341260146014691469146B146914691481 +:106E70006914601460147014691469147014072183 +:106E800007216021602192213A213A213A21AC2147 +:106E90001D222D222D22BC2CC02C022D132D1E2D87 +:106EA0003D2D402D732D942D102D102D9F2DA22D95 +:0C6EB000A62DCC2DEE2DF12DF32D182E6B +:106EBC004202000000010000000042020000000538 +:106ECC000100000042020000000106000000420226 +:106EDC00000000010700000042020408000000004E +:106EEC0000004202090C00000000000042020115E3 +:106EFC00000000000000420201160000000000002B +:106F0C0036323331F7F6676697C634350000000029 +:106F1C000001FB08DB0DFA08D70DD30DF4F50100C9 +:106F2C0021007F220003004A004A4A01F6F7313360 +:106F3C003236674C41594552004261736520004717 +:106F4C00616D6520005261697365004C6F776572E5 +:106F5C00004C4F434B0043617073004E756D0053F2 +:106F6C0063726C00202020202000534F4C415200B3 +:106F7C00544D505354002025303364002077706DED +:106F8C0000818283E200E900EA00B500B600B70098 +:106F9C00CD008301CC008A019201940121022302CD +:106FAC0024022502260227022A02B300B4006F0035 +:106FBC007000B90200FF0100010000FFFF0000019A +:106FCC000001FF0000081018181008000001020250 +:106FDC00020202020202020240223250012E01FC85 +:086FEC0000370D500D700D007F :00000001FF From ea722b9e5183407e3697bcf720c4c9f0665ce912 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 16 Sep 2021 23:59:21 -0400 Subject: [PATCH 21/94] Updated encoder function and disabled rainbow RGB --- .../pro/ansi/keymaps/solartempest/config.h | 12 ++++++--- .../gmmk_pro_ansi_solartempest.bin | Bin 36480 -> 36412 bytes .../pro/ansi/keymaps/solartempest/jonavin.c | 24 ++++++++++++++---- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h index ef211e1334e1..d8618ea074c6 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h @@ -29,7 +29,7 @@ #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_SOLID_COLOR + #define DISABLE_RGB_MATRIX_SOLID_COLOR #define DISABLE_RGB_MATRIX_BREATHING #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN @@ -41,8 +41,8 @@ #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT - #define DISABLE_ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON @@ -56,12 +56,18 @@ #define DISABLE_RGB_MATRIX_HUE_BREATHING #define DISABLE_RGB_MATRIX_HUE_PENDULUM //#define DISABLE_RGB_MATRIX_HUE_WAVE + //#define DISABLE_RGB_MATRIX_PIXEL_RAIN + //#define DISABLE_RGB_MATRIX_PIXEL_FLOW + //#define DISABLE_RGB_MATRIX_PIXEL_FRACTAL + #define DISABLE_RGB_MATRIX_TYPING_HEATMAP + #define DISABLE_RGB_MATRIX_DIGITAL_RAIN #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define DISABLE_RGB_MATRIX_SOLID_REACTIVE #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + //#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS #define DISABLE_RGB_MATRIX_SPLASH #define DISABLE_RGB_MATRIX_MULTISPLASH #define DISABLE_RGB_MATRIX_SOLID_SPLASH diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin index c07d4f2fe74825593fbfff7605d766b5dcf2d481..26bd2c82cbb83577c0f24a5920dde9ceccb94bac 100644 GIT binary patch delta 4643 zcma)AdstJ)wx8MAF*_iT073#jb`q2z*s6#?Rpg=J5fl+0_`3C3vC3%_Yol#H@LBA` z$~V1MkM+@W^j@uPEu`^=Rz$1T>N%$uTKS6C`npPk`qi@$b%(GYckK}Q&b{ZKyT9)@ z`!{Q?nZ0J#%$iAR4p65*p?0TG=a$sHkQKMxftY=OF97ENZGig#(NXupNb1h|x-(1b z*nxWeTEq+oWCErEmXI-c0#2%{PbG)(di5|-&8diy%6~x=)SORk|d9LceX8Gv& z+Wa0b#r@K&FV_DrnVRc3O?FW+RQtQ+->4aydy?c;a|ek?CE+AjqG|=DXm+XN=C!|z z7?l$zt6J3dc<1#2RNEaEadF>fLOHt$HD53z_Mi1^Kz}i)r;4I#L+kN`s2WH9l!1t4 z+%(rn@PM4;1LE{&FI)EJ4!9NqHaIn^hURvO)*4Igg!%zRk+px!RsG!5nUSsH2&o*9 zR$bhJx#_|dO=w%8-Qc9G>UKQ(Y=gmpxsQA)HrD27!d#ZHb%3^w1^@mkPFG4n;Z5Qr zFXl!I-)rc$?8hZK#C_@S07;@SMHACTgN0jEM&=goLfIgcKzTAyrih9pNzqnwBSe~Q z_l|^*V=L7v^XugE-s7OI6`P?mEYxVUZ5GfXtEUBL^tqPrYXDt$@8+Oen?*ac*c@GD8%Cm^~hC|+L|6t|QJ z;bg@vy}Z%;8OSGzuaj!c%7{nOJ@3?KD`s?fqw8h9l|0p0256lqjx` zK&;M9+i31rKN-iEtCtJdZm3}(h)z(YL(tCob2PDS$a2jro940<7c2Mi1;F(|UJg7o z$QJ@v%QSb?uj8;PwpD4D$6`WpehKeaYBsQV668~WKML}Ema67DC7P@CZ_&KiX0jYL zUo#bg!A+@;7Xxn(@)^K?3i2}Ge+}{?;NJ)NG~j20ycGC1K|Txk*HUF*ZL48uaW>f$ z3bM~6GD|xG?;&q$jqy9BXilb|w9cPKCk*o8P-KzKH6}cf;@%=BwMP6JxvU)$zc^?$ zWmURfK?g6Ax3N?@gc_e%%D~3H0}SfN+Bg7@pvd%4OaS~)zJPg)|np#`l899 z5Mwnj_IVUNjS2ShT>l`biTEeYji6?Yw{P3N1yMa)gP30crvX0#t^>S)zXLF<;?8?u zdvj+!$IVAf2&N^r`S8=4Di=u){Xji05;5D!<ZBua_QW9)t z6^F>EFyq(|8Cknp`Xn(TvOWy*SAll~d6tB%w}Sjs4{?Th!rQkZ#setdhL|6=lC1Cy zO7;CKBN`ixR%>69qKGwl# z;z*8e&`VdO?=XtNCDY4=g?pSkPRzOm^#{ zaVR;e%QK!hgSyI9*BfGz2edOqO`W>zvA!sz;!YB*kJVRzzlVr9JgiL(E9JU7129MAON6{fjuq)vXW3cmt6m|AuFgzeNoT%M@$8 z!|N|}YvBVHS5MSFjMow}=o0g|S7|5rx|YUlP(@Ael^b~PBIhTAZ+MrpcrwjRbv-n$ zqS-?pSS?`?dpounDpXv3unxHaY8O1N^+R{#$VoB-iRGruRw%=vxb8C~hHar*JfxF- zq^|T)+%9t6G{pFZOxX>K6);WFI>Z_PjGN+C6TNvdUO`IDmauf0;!1poo6w8717x## zEsi1G=43pA46`JsJ&>|FjK1&ysgjaGF;^JyVTK%1jJN{=#Z3?`&aJtc z7K$5Bsx4!v3)@@`mOVIP4@|Je{e_R#;e8Z0#x-~N4Lta;fH>ZVA#52wl}6nr^N#{c z7E;w|G9z(*++-OtA%amabmXJvR!EqRd=*UKywjv5(Lin|G60%%CbIZ_qP0#Qa1TCn zVH=rl9S6bNYF+hQ@YuQ#Um+z)C6PyZLt!E;&g6P6OeV!$=p|nzS;LZgm8{tZqpKr{ zP`He2OtDaxJmg?XE>0kKQsQxpOH4Vh!7Mp9Zk}sLnhqxxH&X?Sd9VrM06F_t@bGy( z<4j*&V~?|GNz?dYIECC8pNe%vpB@F}@bqR}NyK!b50%e$Yx2HpfYQXmj+{z9%}Apr zNu)i)p>Irsq+p|p5G(Vun^7|+^D@)%d!#NiZ^8))kL!TMqI`BKEEjCwUtxfW(rrh~ zsQYrh+J@_*Z4zH8Xl%$jxdrb_sHZ-&!Y4M6h?nBW{3y^}T0GX4G)3K|MFRi5pnf<7 zuS3Q$>MkSH&wySZ)a#*siY$2Pwdw?WLQy;fS#67JwG>769(WHs3+nqUWPX_p({@{5AoFpu z#feibj*P}|J7tb@{K*;F7}lr)meHgI{T%60lve}fne@P`hPPk(4JLrBnNVyzB&ohy zG0~Or#eGn>lnlkJ4!HAjDx$( zZgOIxJv~GSFVMjeiF`)8z^ep_ALTbRO8hA}w|^64{;HsXQ!9!SB2=x)rjz;Wr*%y_ zGHTMWK^G;)&J+!CFko@M8>^yVkWU%?yP?z-a^8rd@WS7rj3|8I4KE5S^g;u_KjRtD+gT!X?&n<2Y{>(|J~d8I=V{VFqM!mPl5DRje-M1Ewy z3IfPru(J9wnm?P0t#bAk_DIIBG^J*G0nljuFQ+cpWZ8L^Qe4%uwp<=LdSC;s^ zGvxEB#gwmx_@|mFjYNjpQgAo1+veg6uX+I$P{9*WQGA2JZdacMb;)(Yfa9X=J&4!N&e2736 z=4aroQPWolko5 zyYNi%u)sK=R1o-3nS>M`#NU$Rg{$#)GN>reuuQVRGCmu*g~Qa+?n_ad0uu$_brcQ7 zZ;=m+;xh;PMgE>2Zm>=9PLv$ooW>@>TpIn#oIdf^K$LZEY=O(ghU_;*ev$t$lpCPU z6>_)8l(f%>EtV=>lk!W3YGrB#ez%88#;palJzhxj{nGtplszq!^&f-Qnb3MWskB#7 zYCrjJdvTb*XK|ItAMZH~<#( z0>>Caj9X`>3y{gr?;&?*cVH*EJZCa?y0mjQ;*Yz*(|;k4UmlC!Aj22u;5n|9i_>X* z&~<3}QH=lMn)=EpJmg0SSuWhisgVENteLiL>DJfgEJmh*qkH(XRfhU# zGcxt?n_Te~X>`~)_)gC&h#3v!9XO9%sMov!HCRr?y{qI4IlY*-J{-M$J6duX#VH+2rx` z%eDk%4$lw$GG|csil@C__J^Qsp{H{vIkomT%D0moTz61;WmP>;FIorxA-G1Ze@H{- zH*P#cVXLe0&HdW2i;x+QXCtNqaMZPAdpw2%;_V$4Tt`0L5uesJ3;u(ciI~}Ch|$7( z@jHlF4sZhK$VhY%B774d0a%c|5BSp6wc}e{y&0mt7Vs&c4zM5a9^g&DY5;;KWfx)+ z5)u0xN?nmZfBv6!9oPr(5B4#EKK?<_S0_0;|m0x${=Y&Q)+= ztU=7BHDu1aS3+Dxh`9{7Rpc7^-Z#oo+424|{0=GnAkoyjK=G3ebg2|nkg0<2Oj7s3 l`IO6Z;J+O}s(~a^TV5nr)k+yBD|2^gkSacEJDu delta 4629 zcma)AdstIfw%_|Cha5mi!b6CFoFq_!phy*g0p+C$NkE}!#n;$Utyp!4TKlClcEATM zwbf5%&-D7Jk9KrQTkRE69B7SkYFpc>egmys(fX*j+W4sUpsgp6^SCP*nYnZSx##4|F2JkED*O&zBGOzc(NUHO$-u^lF%>bDhe{O}X8V*0EtWwq#U1u* zE42ShMsq4R*+z|~5?>>Kp{i6NvgD?&1!CgpI23 zzRC7@CuO4h@x&7y@ea&A=gTy+W``SdF~X*h&^{K%_qI4QkO~1##JgV1g$SRklzqkb zW@!+&dFVPwME`V^qVIjMSTA1kCPS;(MD@yiv;1G)ciH=3@uR;<71|dM8uV+^nI4?? zu*1iFr$BkxzaiM!O3@CDtQ_uak=PBo9{(rM*{q-29Eh7abOa=){AJMDA+R%xZC)if z6c!me%a`BszQ^7t->8uCKNYO#=8S0GgyoZ^69`+g51JVjoetMdUj}|DyvU#JZLzt zw}L^8{E$}wj|}oE;7pL$0H=c723(LH+E)U95aiXsxgehn{Fbz8I1Fi++8DE}4+q(I z5@`#444)?d2-W3yq!>Api zm+)%PYT8Ks7Ytj5>#rvbVY=LgpnlRwE06SbLCweB^vcL!53Po~!*yp9Pnd3sC1^2r zr0qxgUj;R~kyamR#!DnJJbp17G*DME|JHPLP_xqea5Jul08nl~OacG_q5#Q&48SA+ zW))mSH*8uitovQV0X+f_&Lhp?gr=hqlTDIFrNzYoD;tfNK#a+Jk38$=-#Tb+6In2- z8Vls`s8=dw*?og4#@u{2)2ZM-50>V-9Tuh&ai0n@KO~#)wP|P$4+Sih+>(#-I?w zM%aXyHz6OjnfxI#kFpPv(~-s0xIq%B9)s7Bbae^#lNFF&AcxfnAo)_=NoC5UNfWd5 zSzq8J3xf%0iV^pPXOk(iSHX>zKT*v;TLYS3B*eMp(t8?kK$WkCz2V(FY(dLqD(hJb zSX={(LqUropM^c=RV07gu|FfSKgo{G@%0LBE*aF6VV+FY#-;m@|74=iWA3UD=n-@6 zZjJlX2*e(O@q_D3wLKe6Y8b&`@{-nwcayiYI=qd1thL1c@i-c&rM~VMJx2Ja{OnB<6NvB{g-{^|Wtq~ID{l`%Upb`x*xDQ21wsAm^k zM@PS)h~DLwJ9zIR=bMR_yh~VIq~uy%MPrsL+1p(ZO)xAfI0Z3ShGPaMr0I5jF?KtS zdR1oNjJhnd^?}JyT#<)7$M#T(-K0=|m+tma+y#W zDQ>q9aRq+N-6Va6)wqsWj2XC|tTkp(Q)IH=7?YeOVD3-DT~x_o6^Pp-P~0n`(YdKq z)kAR`$v4JqifML*q`ZOE7r=k2&ci;X2JfV}mt60sUc!k#3W(!<7#1ndr%=&-GJkhC zQYp^tCI`~y0S+{-LY zatu{i!<_{#yDiGOy>$G=CvVY;@E)r@zJ=oIT-D=Gs_+sLn=?<7nH^@w+oOHjiMz&Z z^(k3WH6?MZ!(xUTbn_9sJ-i&t zaA`a$Q^y~cRrWDvSd1yj*g-yx@>wt2j#zjUK`YFp}d!5{HmeR zWH;FoAcSahLT{Qi+8OFpa0SSYDMi#=xo8JA-^7e-|GG8Zyd%ue*mwBCRbmB=yM_zZ7oidDZyzPwYj_6hZ z%X5zcz11k)^@ahlOSilX+dIC&o{qQMj25dGA@(jlf6PYAg*H5sdjI5i80xW-T0jqwWdWznRZ*CeHx?M56e zqZHQcbBC5M&h_r`#cL*-5qA?xH+vEH6Ui=4#jRv+@doT9=Zlxo zl|3TgNoJH}HReYTe`v;oMKya$8Bd_qJU94DL@9&b7+Va)14MTiLnGy@g^E&<#Crc>aPNkr+Xj3qB4W<87GS!-k^eu}I&;T|ZtQ=pV3 zhnjr7sldj``v({zm&WF@GRlncgz9B|z(NP5cn_lw_@D8}`hcz46Szko1E!K0_uo1K zj3)N7c}d?6Dh!k!vjSfyz~ht^`O71cdE{?p`*1UPdiwbZVUm)nPn7r&=|Bft*3^;b z&g+zUubgP6&AKp&7saa`^@)L}wZ!voQa_`DD%?Ph&M;6Pi{!$LO#BW}ndic4EH;lX zSt8=eI0t;$S$xk6{zrN|S>or3AO6zR!1rq0Y7-9+1-8HVo;*?FZDM~n*rlHB#(%_V zCfL9wBfcEI&e26-6SXNkp;q|-9Mh6vA8%y; z!t_>DrNtUV1|C)t?+_8|=aDJxsY;4a!?yLo-ukXXS@%Kn{bu~WhT3WppQ~DZm;fY%OIhj;*6IYX@ z*^T&5WY6sHlb?r>-U0Y960u2eJUc81F`XKNvK;A$_~*&KIoI(q()?r*KIZ!D$rmwo z;TS2d9ZlU5NNw%7u-E+}e|AvdFAC)K+RZv1S~?Br2V4Z)0Q?Mi!j(QxjYHd7;JlxY znANV5`572qGpiP4U>)zrQUt2vQx{I?uZN!y zaCmmTJ|g=fC_CEq=7{WgP)x$8%w zUmZP77}0DDY8+jowmce_GbnquD{(~jo1koASLPP7X7vwL;TAG~&E7yZwB{E5)*ARb z!F6-(Z6z*u^*Q%Zc%^II?{}C*sb5} osoZ)pGh#0Mn*(SEhyc14Ch Date: Fri, 17 Sep 2021 20:22:52 -0400 Subject: [PATCH 22/94] Added define for OLED_LOGO in config.h for those looking to save space --- keyboards/solartempest/sofle/config.h | 1 + .../solartempest/sofle/keymaps/via/snakey.c | 31 ++++++++++--------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 72b2962c3db4..1bb5c21f14cb 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -73,6 +73,7 @@ #define OLED_BRIGHTNESS 90 // Default 100. #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). + #define OLED_LOGO //Enable to print custom logo on slave side, disable to save space. #endif // Combo settings diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index 642f6adec6fa..a9ea055b0cd1 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -46,19 +46,20 @@ bool showedJump = true; bool isBarking = false; - - static void render_logo(int LUNA_X, int LUNA_Y) { - static const char PROGMEM luna_logo[] = { - 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, - 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, - 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, - 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, - }; - oled_set_cursor(LUNA_X,LUNA_Y); - oled_write_raw_P(luna_logo, sizeof(luna_logo)); - } + #ifdef OLED_LOGO + static void render_logo(int LUNA_X, int LUNA_Y) { + static const char PROGMEM luna_logo[] = { + 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, + 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, + }; + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + #endif /* logic */ static void render_luna(int LUNA_X, int LUNA_Y) { @@ -235,7 +236,9 @@ oled_set_cursor(0,3); oled_write("TMPST", false); - render_logo(0,7); + #ifdef OLED_LOGO + render_logo(0,7); //Not defining this in config.h will save 112 bytes. + #endif /* wpm counter */ char wpm_str[8]; From 331422f7d52bc8a26daa7cd19d0dca6cf0622038 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 00:38:56 -0400 Subject: [PATCH 23/94] Custom functions work in progress. --- .../pro/ansi/keymaps/solartempest/config.h | 2 +- .../solartempest/gmmk_pro VIA layout.json | 10 +- .../pro/ansi/keymaps/solartempest/jonavin.c | 150 ++++++++++++------ .../pro/ansi/keymaps/solartempest/jonavin.h | 6 +- .../pro/ansi/keymaps/solartempest/keymap.c | 15 +- 5 files changed, 126 insertions(+), 57 deletions(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h index d8618ea074c6..1e3dddd33e83 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h @@ -17,12 +17,12 @@ #pragma once #define TAPPING_TOGGLE 2 // TT set to two taps +#define TAPPING_TERM 180 /* Handle GRAVESC combo keys */ //#define GRAVE_ESC_ALT_OVERRIDE //Always send Escape if Alt is pressed //#define GRAVE_ESC_CTRL_OVERRIDE //Always send Escape if Control is pressed -#define TAPPING_TERM 180 #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json index 40a86c5ba5c4..50c89c1494a0 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro VIA layout.json @@ -114,13 +114,13 @@ "KC_CAPS", "RGB_VAD", "KC_NO", - "RGB_HUI", + "KC_TRNS", "KC_END", "KC_MYCM", "KC_TRNS", - "KC_TRNS", + "RGB_HUI", "KC_CALC", - "KC_TRNS", + "RGB_HUD", "KC_MSEL", "KC_TRNS", "RGB_MOD", @@ -146,7 +146,7 @@ "KC_TRNS", "KC_TRNS", "KC_MNXT", - "KC_NO", + "KC_NLCK", "RGB_TOG", "KC_TRNS", "KC_TRNS", @@ -154,7 +154,7 @@ "KC_MPLY", "KC_TRNS", "RGB_RMOD", - "KC_NO", + "KC_SLCK", "KC_TRNS", "KC_MSTP", "KC_TRNS", diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c index fc00790b137e..cd7e366b8f5c 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.c @@ -1,5 +1,6 @@ /* Copyright 2021 Jonavin Eng @Jonavin + Copyright 2021 solartempest 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 @@ -19,6 +20,10 @@ along with this program. If not, see . #include QMK_KEYBOARD_H #include "jonavin.h" +bool spam_arrow; +uint16_t spam_timer = false; +uint16_t spam_interval = 1000; // (1000ms == 1s) +bool teams_muted; #ifdef TD_LSFT_CAPSLOCK_ENABLE // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled @@ -96,13 +101,19 @@ along with this program. If not, see . } __attribute__((weak)) void matrix_scan_keymap(void) {} - - void matrix_scan_user(void) { - timeout_tick_timer(); - matrix_scan_keymap(); - } #endif // IDLE_TIMEOUT_ENABLE +void matrix_scan_user(void) { + #ifdef IDLE_TIMEOUT_ENABLE + timeout_tick_timer(); + matrix_scan_keymap(); + #endif + if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { + spam_timer = timer_read(); + tap_code(KC_F24); + } +} + #if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality #ifndef DYNAMIC_KEYMAP_LAYER_COUNT @@ -197,50 +208,91 @@ __attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (!process_record_keymap(keycode, record)) { return false; } - switch (keycode) { - case KC_00: - if (record->event.pressed) { - // when keycode KC_00 is pressed - SEND_STRING("00"); - } else unregister_code16(keycode); - break; - case KC_WINLCK: - if (record->event.pressed) { - keymap_config.no_gui = !keymap_config.no_gui; //toggle status - } else unregister_code16(keycode); - break; - -#ifdef IDLE_TIMEOUT_ENABLE - case RGB_TOI: - if(record->event.pressed) { - timeout_update_threshold(true); - } else unregister_code16(keycode); - break; - case RGB_TOD: - if(record->event.pressed) { - timeout_update_threshold(false); //decrease timeout - } else unregister_code16(keycode); - break; -#endif // IDLE_TIMEOUT_ENABLE -#ifdef RGB_MATRIX_ENABLE - case RGB_NITE: - if(record->event.pressed) { - rgb_nightmode = !rgb_nightmode; - } else unregister_code16(keycode); - break; -#endif // RGB_MATRIX_ENABLE - default: - if (record->event.pressed) { - #ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable_noeeprom(); - #endif - #ifdef IDLE_TIMEOUT_ENABLE - timeout_reset_timer(); //reset activity timer - #endif - } - break; - } - return true; + switch (keycode) { + case KC_00: + if (record->event.pressed) { + // when keycode KC_00 is pressed + SEND_STRING("00"); + } else unregister_code16(keycode); + break; + case KC_WINLCK: + if (record->event.pressed) { + keymap_config.no_gui = !keymap_config.no_gui; //toggle status + } else unregister_code16(keycode); + break; + + #ifdef IDLE_TIMEOUT_ENABLE + case RGB_TOI: + if(record->event.pressed) { + timeout_update_threshold(true); + } else unregister_code16(keycode); + break; + case RGB_TOD: + if(record->event.pressed) { + timeout_update_threshold(false); //decrease timeout + } else unregister_code16(keycode); + break; + #endif // IDLE_TIMEOUT_ENABLE + #ifdef RGB_MATRIX_ENABLE + case RGB_NITE: + if(record->event.pressed) { + rgb_nightmode = !rgb_nightmode; + } else unregister_code16(keycode); + break; + #endif // RGB_MATRIX_ENABLE + + case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case SPAMARROW: // Moves arrow up and down + if (record->event.pressed) { + spam_arrow ^= 1; + spam_timer = timer_read(); + } + return false; + + case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour + if (record->event.pressed) { + register_code(KC_LCTRL); + register_code(KC_LSFT); + register_code(KC_M); + unregister_code(KC_M); + unregister_code(KC_LSFT); + unregister_code(KC_LCTRL); + teams_muted ^= 1; + } + return true; + + default: + if (record->event.pressed) { + #ifdef RGB_MATRIX_ENABLE + rgb_matrix_enable_noeeprom(); + #endif + #ifdef IDLE_TIMEOUT_ENABLE + timeout_reset_timer(); //reset activity timer + #endif + } + break; + } + return true; }; diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h index e2b53eee128d..47e1cfa42073 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h @@ -36,7 +36,11 @@ enum custom_user_keycodes { KC_WINLCK, //Toggles Win key on and off RGB_TOI, // Timeout idle time up RGB_TOD, // Timeout idle time down - RGB_NITE // Turns off all rgb but allow rgb indicators to work + RGB_NITE, // Turns off all rgb but allow rgb indicators to work + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SPAMARROW, //Spam F24. + TEAMSMUTE //MS Teams mute shortcut and simple LED status }; #define KC_CAD LALT(LCTL(KC_DEL)) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c index 020087532d60..58f816b8b6e0 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c @@ -19,6 +19,8 @@ along with this program. If not, see . #include "rgb_matrix_map.h" #include "jonavin.h" +bool spam_arrow; +bool teams_muted; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -97,9 +99,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (keymap_config.no_gui) { rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled } + if(spam_arrow==1) { //Change LED colour on nav cluster to indicate on + for (uint8_t i=0; i Date: Mon, 27 Sep 2021 00:50:04 -0400 Subject: [PATCH 24/94] Updated VIA layout. --- keyboards/solartempest/9e/9e VIA layout.json | 28 +-- keyboards/solartempest/9e/A9e.c | 45 ++++ keyboards/solartempest/9e/A9e.h | 12 +- keyboards/solartempest/9e/config.h | 178 +++++++++------ .../solartempest/9e/keymaps/default/keymap.c | 208 +++++++++++++++++ .../solartempest/9e/keymaps/via/keymap.c | 216 +++++++----------- .../9e/qmk_firmware - Shortcut.lnk | Bin 0 -> 1154 bytes keyboards/solartempest/9e/readme.md | 4 +- keyboards/solartempest/9e/rules.mk | 32 +-- 9 files changed, 486 insertions(+), 237 deletions(-) create mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk diff --git a/keyboards/solartempest/9e/9e VIA layout.json b/keyboards/solartempest/9e/9e VIA layout.json index aa58163c6e9b..cfcaec6e88ed 100644 --- a/keyboards/solartempest/9e/9e VIA layout.json +++ b/keyboards/solartempest/9e/9e VIA layout.json @@ -14,22 +14,22 @@ "KC_P8", "KC_P9", "KC_WWW_BACK", - "KC_F13", + "KC_MSTP", "KC_WWW_FORWARD", - "USER01", - "RGB_TOG", - "USER00", + "KC_VOLD", + "KC_F14", + "KC_VOLU", "KC_CAPS", "KC_NLCK", "KC_MINS", "KC_P4", "KC_P5", "KC_P6", - "KC_VOLD", - "KC_F14", - "KC_VOLU", + "USER01", + "RGB_TOG", + "USER00", "USER03", - "KC_MSTP", + "KC_F13", "USER02", "KC_WWW_REFRESH", "KC_BSPC", @@ -37,21 +37,21 @@ "KC_P1", "KC_P2", "KC_P3", - "KC_MS_WH_UP", + "C(S(KC_TAB))", "C(KC_W)", - "KC_MS_WH_DOWN", + "C(KC_TAB)", "KC_NO", "KC_NO", "KC_NO", - "KC_MS_WH_DOWN", + "KC_PGDN", "KC_HOME", - "KC_MS_WH_UP", + "KC_PGUP", "C(KC_PMNS)", "C(KC_0)", "C(KC_PPLS)", - "C(S(KC_TAB))", + "KC_MS_WH_UP", "C(KC_T)", - "C(KC_TAB)" + "KC_MS_WH_DOWN" ], [ "KC_RBRC", diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c index 584df4ba0beb..3fc20a1961c1 100644 --- a/keyboards/solartempest/9e/A9e.c +++ b/keyboards/solartempest/9e/A9e.c @@ -17,3 +17,48 @@ */ #include "A9e.h" + +/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ + 1, 30, 4, 5, 6, 7, 8, 9, \ + 0, 3, 10, 11, 12, 13, 14, 15, \ + 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ + 40, 39, 22, 25, \ + 24, \ + 38, 27, 37, \ + 26, 29, \ + 28 )*/ +// E2 Keys Row 1 E4 E5 +// E1 Keys Row 2 E6 +// E3 Keys Row 3 +// E8 E9 E7 + +#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations + led_config_t g_led_config = { { + //Key matrix to LED index + { 36, 35, 34, 33, 32, }, + {18, 37, 5, 4, 3, 2, 1, 0, }, + {19, 21, 11, 10, 9, 8, 7, 6, }, + {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, + { 39, 40, 23, 25, }, + { 24, }, + { 41, 26, 30, }, + { 27, 29, }, + { 28, NO_LED, NO_LED, NO_LED, } + }, { + // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} + {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, + {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, + {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, + + {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, + {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, + + {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, + {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} + }, { // LED Index to Flag. + 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. + 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. + 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. + } }; +#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h index e70c429d6179..cc6481b19bb5 100644 --- a/keyboards/solartempest/9e/A9e.h +++ b/keyboards/solartempest/9e/A9e.h @@ -16,18 +16,20 @@ * along with this program. If not, see . */ -#pragma once -#include "quantum.h" +#ifndef A9E_H + #define A9E_H - #define LAYOUT( \ + #include "quantum.h" + + #define KEYMAP( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ K303, K304, K305, K306, K307, K308, K309, K310, K311 \ - ) \ - { \ + ) { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } +#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h index a839aee2d30b..a74b280bfb3b 100644 --- a/keyboards/solartempest/9e/config.h +++ b/keyboards/solartempest/9e/config.h @@ -16,81 +16,125 @@ * along with this program. If not, see . */ -#pragma once -#include "config_common.h" +#ifndef CONFIG_H + #define CONFIG_H -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x414B // AK -#define PRODUCT_ID 0x0009 // 9e -#define DEVICE_VER 0x0001 -#define MANUFACTURER Atlantis -#define PRODUCT A9e -#define DESCRIPTION Keyboard + #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 + /* USB Device descriptor parameter */ + #define VENDOR_ID 0x414B // AK + #define PRODUCT_ID 0x0009 // 9e + #define DEVICE_VER 0x0001 + #define MANUFACTURER Atlantis + #define PRODUCT A9e + #define DESCRIPTION Keyboard -/* key matrix pins */ -#define MATRIX_ROW_PINS { F0, F1, F2, F3 } -#define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. -#define UNUSED_PINS + /* key matrix size */ + #define MATRIX_ROWS 4 + #define MATRIX_COLS 12 -/* encoder pins */ -#define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. -#define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } -#define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. -//#define ENCODER_RESOLUTION 4 + /* key matrix pins */ + #define MATRIX_ROW_PINS { F0, F1, F2, F3 } + #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. + #define UNUSED_PINS -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW + /* encoder pins */ + #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. + #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } + #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. + //#define ENCODER_RESOLUTION 4 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 + /* COL2ROW or ROW2COL */ + #define DIODE_DIRECTION COL2ROW -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE + /* Set 0 if debouncing isn't needed */ + #define DEBOUNCE 5 -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE + /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ + #define LOCKING_SUPPORT_ENABLE + /* Locking resynchronize hack */ + #define LOCKING_RESYNC_ENABLE -#define RGB_DI_PIN E6 -#define RGBLIGHT_ANIMATIONS -#define RGBLIGHT_EFFECT_SNAKE_LENGTH 1 //Default 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 -#define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys -#define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT -#define RGBLIGHT_LIMIT_VAL 180 -//RGB LED Conversion macro from physical array to electric array -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -#define LED_LAYOUT( \ - L01, L03, L05, L07, L08, \ - L10, L11, L12, L13, L14, L15, L16, L17, \ - L20, L21, L22, L23, L24, L25, L26, L27, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ - L41, L46, L47, L49, \ - L58, \ - L67, L68, L69, \ - L77, L79, \ - L88 )\ - { \ - L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L11,L31,L41,L46,L67, \ - } -//RGB LED logical order map -//Left encoder -> keys -> right encoders -> backlight -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ -3, 30, 4, 5, 6, 7, 8, 9, \ -0, 2, 10, 11, 12, 13, 14, 15, \ -1, 41, 16, 17, 18, 19, 20, 21, 25, 36, \ - 40, 39, 22, 24, \ - 23, \ - 38, 29, 37, \ - 26, 28, \ - 27 ) + #define RGB_DI_PIN E6 + #ifdef RGB_DI_PIN + #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_LAYERS + #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys + #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT + #define RGBLIGHT_LIMIT_VAL 180 + + //RGB LED Conversion macro from physical array to electric array + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L01, L03, L05, L07, L08, \ + L10, L11, L12, L13, L14, L15, L16, L17, \ + L20, L21, L22, L23, L24, L25, L26, L27, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ + L41, L46, L47, L49, \ + L58, \ + L67, L68, L69, \ + L77, L79, \ + L88 )\ + { \ + L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ + } + //RGB LED logical order map + //Left encoder -> keys -> right encoders -> backlight + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ + 1, 30, 4, 5, 6, 7, 8, 9, \ + 0, 3, 10, 11, 12, 13, 14, 15, \ + 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ + 40, 39, 22, 25, \ + 24, \ + 38, 27, 37, \ + 26, 29, \ + 28 ) + #endif + + #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects + #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow + #define RGB_MATRIX_CENTER { 110, 110 }; + #define RGB_MATRIX_KEYPRESSES + #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #define DISABLE_RGB_MATRIX_BAND_SAT + #define DISABLE_RGB_MATRIX_BAND_VAL + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #define DISABLE_RGB_MATRIX_CYCLE_ALL + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN + #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + #define DISABLE_RGB_MATRIX_DUAL_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #define DISABLE_RGB_MATRIX_RAINDROPS + #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #define DISABLE_RGB_MATRIX_HUE_BREATHING + #define DISABLE_RGB_MATRIX_HUE_PENDULUM + #define DISABLE_RGB_MATRIX_HUE_WAVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define DISABLE_RGB_MATRIX_SPLASH + #define DISABLE_RGB_MATRIX_MULTISPLASH + #define DISABLE_RGB_MATRIX_SOLID_SPLASH + #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + #endif + + +#endif diff --git a/keyboards/solartempest/9e/keymaps/default/keymap.c b/keyboards/solartempest/9e/keymaps/default/keymap.c new file mode 100644 index 000000000000..916fa70260df --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/default/keymap.c @@ -0,0 +1,208 @@ +#include "A9e.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_L, KC_1, KC_R, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_L, KC_4, KC_R, + KC_L, KC_2, KC_R, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_L, KC_5, KC_R, + KC_L, KC_3, KC_R, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_L, KC_6, KC_R, + KC_UP, KC_8, KC_DOWN, RGB_VAI, KC_9, RGB_VAD, KC_L, KC_7, KC_R), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) +{ + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 2)); + }} else if (index == 2) { /* 3 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 2)); + }} else if (index == 3) { /* 4 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 11)); + }} else if (index == 4) { /* 5 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 11)); + }} else if (index == 5) { /* 6 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 11)); + }} else if (index == 6) { /* 7 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 11)); + }} else if (index == 7) { /* 8 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 3)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 5)); + }} else if (index == 8) { /* 9 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 6)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 8)); + } + } +} + + + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} \ No newline at end of file diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 0f44b1bea9f8..6b53279aa6bd 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -1,32 +1,8 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - #include "A9e.h" +#include QMK_KEYBOARD_H #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT - - bool is_encoder1_rotate = false; // For encoder animated LEDs - bool is_encoder6_rotate = false; - bool is_encoder7_rotate = false; - bool encoder_effect = false; - uint16_t encoder_timer = 0; - uint16_t encoder_interval = 500; #endif @@ -55,7 +31,7 @@ uint16_t alt_tab_timer = 0; // E3 Keys Row 3 // E8 E9 E7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( + KEYMAP( KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 @@ -69,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 ), - [1] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -83,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [2] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -97,7 +73,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [3] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -111,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [4] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -125,7 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [5] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -139,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [6] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -153,7 +129,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [7] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -167,7 +143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [8] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -181,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - [9] = LAYOUT( + KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -198,6 +174,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; +/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required + switch (id) { + } + return MACRO_NONE; +}*/ + void matrix_init_user(void) { } @@ -208,36 +190,6 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } - - #ifdef RGBLIGHT_ENABLE //Add rotation animations underneath rotary encoders when turning - if (!encoder_effect && is_encoder1_rotate) { //Turn on the effect for encoder 1 - rgblight_set_effect_range(0, 4); - rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); - is_encoder1_rotate = false; - encoder_effect = true; - } else if (!encoder_effect && is_encoder6_rotate) { //Turn on the effect for encoder 6 - rgblight_set_effect_range(22, 4); - rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); - is_encoder6_rotate = false; - encoder_effect = true; - } else if (!encoder_effect && is_encoder7_rotate) { //Turn on the effect for encoder 7 - rgblight_set_effect_range(26, 4); - rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); - is_encoder7_rotate = false; - encoder_effect = true; - } else if (!is_encoder1_rotate && !is_encoder6_rotate && !is_encoder7_rotate && timer_elapsed(encoder_timer) > encoder_interval) { //Turn off the effect - rgblight_set_effect_range(0, 41); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); - is_encoder1_rotate = false; - is_encoder6_rotate = false; - is_encoder7_rotate = false; - encoder_effect = false; - } else { - is_encoder1_rotate = false; //Wait until encoder is turned again - is_encoder6_rotate = false; - is_encoder7_rotate = false; - } - #endif } bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -300,14 +252,10 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder1_rotate = true; - encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder1_rotate = true; - encoder_timer = timer_read(); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); } } else if (index == 1) { /* 2 encoder */ @@ -354,28 +302,20 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder6_rotate = true; - encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder6_rotate = true; - encoder_timer = timer_read(); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); } } else if (index == 6) { /* 7 encoder */ if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder7_rotate = true; - encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder7_rotate = true; - encoder_timer = timer_read(); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); } } else if (index == 7) { /* 8 encoder */ @@ -402,66 +342,76 @@ bool encoder_update_user(uint8_t index, bool clockwise) } -// RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta -const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) -const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) -const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - - -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer -); - +#ifdef RGBLIGHT_ENABLE + // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green + const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange + const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan + const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta + const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) + const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) + const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) + const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_capslock_layer, //Highest status indicators override other layers + my_numlock_layer, + my_scrollock_layer + ); +#endif void keyboard_post_init_user(void) { + #ifdef RGB_MATRIX_ENABLE + //NOTE 1: Layer lighting doesn't work in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode + //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode + rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow + #endif + #ifdef RGBLIGHT_ENABLE rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 layer_move(0); //start on layer 0 to get the lighting activated + #endif } -layer_state_t layer_state_set_user(layer_state_t state) -{ - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,30); - break; - case 1: - rgblight_sethsv_noeeprom(30,255,30); - break; - case 2: - rgblight_sethsv_noeeprom(106,255,30); - break; - case 3: - rgblight_sethsv_noeeprom(215,255,30); - break; - default: - rgblight_sethsv_noeeprom(64,255,30); - } - return state; -} - +#ifdef RGBLIGHT_ENABLE + layer_state_t layer_state_set_user(layer_state_t state) + { + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,30); + break; + case 1: + rgblight_sethsv_noeeprom(30,255,30); + break; + case 2: + rgblight_sethsv_noeeprom(106,255,30); + break; + case 3: + rgblight_sethsv_noeeprom(215,255,30); + break; + default: + rgblight_sethsv_noeeprom(64,255,30); + } + return state; + } -bool led_update_user(led_t led_state) -{ - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; -} + bool led_update_user(led_t led_state) + { + rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + return true; + } +#endif diff --git a/keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk b/keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk new file mode 100644 index 0000000000000000000000000000000000000000..15ada1df2412f92d8cb088807b89bf4901fcdffa GIT binary patch literal 1154 zcma)5Yesr$ zS=Ye%4CGy_rq-8Nt8<6v?~MGox4I*9)i}H>Xd&$EQegd+iI$uHS}(;55`_7!m`lc% zu-~Q6KB=HhJNR=tqK~WEU4(v`7{nuJJRCT|&JWa$BXvL>at@DJ0(wwEE-0ZG5tU{F2`7Z3iER5?v#!S;ari0*nqcVR_+W22*wDI+% z+(cOjYT$mfLp{_{ryJBMBz-x@+hfsRLjgL3$4~gWHRNm9nUdyOXRVbU(K`JBrRN6) literal 0 HcmV?d00001 diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md index 30353b2d00a1..38b472d3326a 100644 --- a/keyboards/solartempest/9e/readme.md +++ b/keyboards/solartempest/9e/readme.md @@ -12,9 +12,8 @@ For detailed instructions on using VIA and flashing, please refer to the section # Custom Features: -- 9 remappable rotary encoder controlling a variety of different things! +- 9 remappable rotary encoder controling a variety of different things! - RGB underglow support and remapped to physical locations. -- When turning the 3 large rotary encoders the RGB LEDs underneath animate. - Adds custom layer lighting with custom gradients for each and static colours for the switches. - Adds white caps lock, scroll lock, and num lock key indicators on the top row. - VIA support included by default. @@ -33,7 +32,6 @@ Make example for this keyboard (after setting up your build environment): - You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. - I used Prog ISP V2.0 but other AVR programmers will also work. - Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. -- Plug in the ribbon cable with the data pins facing away from the PCB. ## Using with VIA diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk index 5c83fafe8829..782755a42c25 100644 --- a/keyboards/solartempest/9e/rules.mk +++ b/keyboards/solartempest/9e/rules.mk @@ -44,18 +44,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -RGBLIGHT_ENABLE = yes # RGB LEDs -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -KEY_LOCK_ENABLE = no # Key lock functionality -ENCODER_ENABLE = yes # Encoders -LTO_ENABLE = yes # Save space -LEADER_ENABLE = no # Leader keys -COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode \ No newline at end of file +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +TERMINAL_ENABLE = no # Terminal interface feature, very large. +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +RGBLIGHT_ENABLE = no # RGB LEDs +RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver +RGBLIGHT_SLEEP = yes # LEDs off when sleeping +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +KEY_LOCK_ENABLE = no # Key lock functionality +ENCODER_ENABLE = yes # Encoders +LTO_ENABLE = yes # Save space +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +UNICODE_ENABLE = no # Unicode From 1cd834573683ec1bff6e30411e97972f22058a2d Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 00:56:29 -0400 Subject: [PATCH 25/94] Small file correction. --- .../ps17/qmk_firmware - Shortcut.lnk | Bin 0 -> 1154 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk diff --git a/keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk b/keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk new file mode 100644 index 0000000000000000000000000000000000000000..15ada1df2412f92d8cb088807b89bf4901fcdffa GIT binary patch literal 1154 zcma)5Yesr$ zS=Ye%4CGy_rq-8Nt8<6v?~MGox4I*9)i}H>Xd&$EQegd+iI$uHS}(;55`_7!m`lc% zu-~Q6KB=HhJNR=tqK~WEU4(v`7{nuJJRCT|&JWa$BXvL>at@DJ0(wwEE-0ZG5tU{F2`7Z3iER5?v#!S;ari0*nqcVR_+W22*wDI+% z+(cOjYT$mfLp{_{ryJBMBz-x@+hfsRLjgL3$4~gWHRNm9nUdyOXRVbU(K`JBrRN6) literal 0 HcmV?d00001 From aa9e899f8c79f612f205d43b37cc4a22663a53b7 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 01:02:56 -0400 Subject: [PATCH 26/94] Remove file with issues. --- .../ps17/solartempest_ps17_via.hex | 1549 ----------------- 1 file changed, 1549 deletions(-) delete mode 100644 keyboards/solartempest/ps17/solartempest_ps17_via.hex diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex deleted file mode 100644 index b9d0957dd893..000000000000 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ /dev/null @@ -1,1549 +0,0 @@ -:100000000C94BD030C9404040C9404040C94040498 -:100010000C9404040C9404040C9404040C94040440 -:100020000C9404040C9404040C9477270C94332748 -:100030000C9472280C9404040C9404040C9404048E -:100040000C9404040C9404040C9404040C94040410 -:100050000C9404040C944E280C9404040C94040492 -:100060000C9404040C9404040C9404040C940404F0 -:100070000C9404040C9404040C9404040C940404E0 -:100080000C9404040C9404040C9404040C940404D0 -:100090000C9404040C9404040C9404040C940404C0 -:1000A0000C9404040C9404040C94040400000FFF4A -:1000B00078FF000000000000D7FF78FF000000007C -:1000C000000080FF64FF00000000000005FF78FFD3 -:1000D0000000000000005FFF5AFF00000000580011 -:1000E0006000000058005E00000058005D00000045 -:1000F00058005C00000057006000000057005F00DF -:10010000000005010902A10185020901A1000509FC -:1001100019012908150025019508750181020501BD -:10012000093009311581257F950275088106093846 -:100130001581257F950175088106050C0A38021581 -:1001400081257F950175088106C0C005010980A140 -:1001500001850319012AB700150126B7009501751D -:10016000108100C0050C0901A101850419012AA014 -:1001700002150126A002950175108100C005010934 -:1001800006A1018505050719E029E7150025019558 -:1001900008750181020507190029EF150025019551 -:1001A000F075018102050819012905950575019170 -:1001B00002950175039101C00660FF0961A1010963 -:1001C00062150026FF00952075088102096315005D -:1001D00026FF00952075089102C005010906A101BE -:1001E000050719E029E71500250195087501810229 -:1001F0009501750881010507190029FF150026FFE3 -:1002000000950675088100050819012905950575F1 -:10021000019102950175039101C0000000000000EA -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000007E0F31 -:1002400000D4FFFFFFC7000000780000000000009E -:1002500000002A2B28000000000000000000000021 -:10026000000000000029000000002C1E3420212284 -:1002700024342627252E362D3738271E1F202122ED -:10028000232425263333362E37381F040506070866 -:10029000090A0B0C0D0E0F10111213141516171856 -:1002A000191A1B1C1D2F3130232D35040506070894 -:1002B000090A0B0C0D0E0F10111213141516171836 -:1002C000191A1B1C1D2F3130354CD400CA00C00038 -:1002D000B600AC00000000047F3F1F64321464329B -:1002E00014783C1E1E140A050001010101010101E0 -:1002F00001010202020202020202020303030303DB -:1003000003030304040404040404050505050506A9 -:100310000606060607070707070808080809090967 -:10032000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E10 -:100330000F0F0F10101111111212131314141515A1 -:1003400016161717181819191A1A1B1B1C1D1D1E13 -:100350001E1F202021222223242425262627282967 -:10036000292A2B2C2D2D2E2F303132323334353695 -:100370003738393A3B3C3D3E3F4041424344454695 -:100380004748494A4C4D4E4F505153545556585971 -:100390005A5B5D5E5F616264656668696B6C6D6F18 -:1003A0007072737577787A7B7D7E8082838587888B -:1003B0008A8C8E8F91939596989A9C9EA0A2A3A5C5 -:1003C000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6C6 -:1003D000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EB82 -:1003E000EEF0F3F5F8FAFDFFFFAA7F554008070687 -:1003F000050D0C0B0A11100F161514131A181B12E9 -:100400000903010002040E17192223252628292A90 -:100410002C2D2F3032333536383A3B3D3E40424367 -:100420004547494A4C4E5051535557595A5C5E60A6 -:1004300062646668696B6D6F71737577797B7D7FB8 -:1004400081838587898A8C8E90929496989A9C9EB7 -:100450009FA1A3A5A7A8AAACAEAFB1B3B4B6B8B9D3 -:10046000BBBCBEBFC1C2C3C5C6C7C9CACBCCCDCE3B -:10047000D0D1D2D2D3D4D5D6D7D7D8D9D9DADADB1E -:10048000DBDBDCDCDCDCDCDDDDDDDDDCDCDCDCDCAA -:10049000DBDBDBDADAD9D9D8D7D7D6D5D4D3D2D2E9 -:1004A000D1D0CECDCCCBCAC9C7C6C5C3C2C1BFBED1 -:1004B000BCBBB9B8B6B4B3B1AFAEACAAA8A7A5A33C -:1004C000A19F9E9C9A98969492908E8C8A898785FB -:1004D00083817F7D7B79777573716F6D6B696866DA -:1004E0006462605E5C5A5957555351504E4C4A49AC -:1004F00047454342403E3D3B3A3836353332302F54 -:100500002D2C2A2928262523224E007F004B00006F -:100510000001515400550056005F00600061005713 -:10052000005C005D005E00000059005A005B00584E -:100530000062000000630000004F00010050000056 -:10054000000100AD002C0053001450025303532A45 -:100550000001000100010000000100010001000095 -:100560005C005C000001000000300001002F000072 -:100570000010500500170011030D00160007002D94 -:1005800001060119011000000011011D03E10057CF -:10059000012C000000E2000000805F0100815F008C -:1005A000001050B9004A0017012B0352002B011A0A -:1005B00001500051004F000000B6002C00B7002889 -:1005C000004E0000004B000000805F0100815F00D2 -:1005D0000010500100010001000100520001000163 -:1005E00000500051004F00000010033D080100536F -:1005F0000068000000690000000100010001000027 -:1006000000010001000100010001000100010001E2 -:1006100000010001000100000001000100010001D3 -:1006200000010000000100000001000100010000C5 -:1006300000010001000100010001000100010001B2 -:1006400000010001000100000001000100010001A3 -:100650000001000000010000000100010001000095 -:100660000001000100010001000100010001000182 -:100670000001000100010000000100010001000173 -:100680000001000000010000000100010001000065 -:100690000001000100010001000100010001000152 -:1006A0000001000100010000000100010001000143 -:1006B0000001000000010000000100010001000035 -:1006C0000001000100010001000100010001000122 -:1006D0000001000100010000000100010001000113 -:1006E00000010000000100000009025B000301009E -:1006F000A0FA090400000103010100092111010011 -:10070000012240000705810308000A0904010002D4 -:1007100003000000092111010001222200070582C7 -:100720000320000107050303200001090402000162 -:100730000300000009211101000122B60007058411 -:100740000320000A12010002000000084B411500BE -:100750000200010200010A0350005300310037007B -:1007600000001203410054004C0041004E005400B0 -:100770004900530000000403090411241FBECFEFF9 -:10078000DAE0DEBFCDBF04B603FE27C0809196033A -:1007900090919703A0919803B09199038730904B63 -:1007A000A740B04BD1F41092960310929703109289 -:1007B00098031092990314BE84B7877F84BF0FB645 -:1007C000F894A895809160008861809360001092F1 -:1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 -:1007E000E4EEFFE502C005900D92A43CB107D9F7F5 -:1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 -:100800000E9499280C94B92F0C940000E8EDF0E0B8 -:1008100080818E7F80831092E2001092DA00109225 -:10082000E100A0EEB0E08C9181608C9380818F77A5 -:10083000808319BCA7EDB0E08C918E7F8C93808172 -:100840008F7E80831092090308952091E4003091F7 -:10085000E50095E6A9012091EC00822F817020FF30 -:1008600006C08091E80080FF06C080E008952091D6 -:10087000E80022FD1AC080912E03882389F085307C -:1008800089F08091EB0085FD0FC02091E40030914C -:10089000E50042175307F9F29150E1F684E008951C -:1008A00082E0089583E0089581E00895EF92FF9239 -:1008B0000F931F93CF937C018B010E942504C82FB7 -:1008C000811117C08091E80085FD0BC08091E80080 -:1008D0008E778093E8000E942504882399F3C82F1F -:1008E00008C0F70181917F018093F1000150110947 -:1008F00049F78C2FCF911F910F91FF90EF900895A2 -:100900008091300387FF13C08091E80082FF06C00A -:100910008091E8008B778093E80004C080912E03DB -:100920008111F2CF089580912E038823D9F380910D -:10093000E80080FFF8CF8091E8008E77ECCF982F09 -:100940009093E900242F762F50E0891731F07091B1 -:10095000EC002091ED005091F00021FD07C09F5F59 -:10096000973071F78093E90081E008953091EB00B2 -:100970003E7F3093EB003091ED003D7F3093ED00F2 -:100980003091EB0031603093EB007093EC002093DA -:10099000ED005093F0002091EE0027FDE0CF80E0C5 -:1009A0000895CF92DF92EF92FF920F931F93CF9310 -:1009B000DF93C8EDD0E088818F7E8883E7EDF0E09B -:1009C00080818160808384E082BF81E0809309031D -:1009D00088818E7F888302EE10E0F80110821092E9 -:1009E000DA0081EEC82ED12CF601108288818F7733 -:1009F000888388818068888388818F7D888319BCFB -:100A000010922E0310922F0310922D0310922C039C -:100A100090EEE92EF12CF70180818B7F8083888115 -:100A20008160888342E060E080E00E949F04F601DC -:100A300080818E7F8083F8018081816080838081C6 -:100A400088608083F70180818E7F808388818061C8 -:100A50008883DF91CF911F910F91FF90EF90DF90EE -:100A6000CF900895FC01809136039091370386174B -:100A70009707A0F06115710529F49091E8009E7721 -:100A80009093E80090E06115710551F4911108C050 -:100A90008091E80082FF34C080E00895BC01F2CF6D -:100AA00080912E038823C1F18530C1F18091E80047 -:100AB00083FD30C08091E80082FDEACF8091E8009C -:100AC00080FFE1CF8091F3002091F200382F611573 -:100AD000710519F02830310558F091E028303105C2 -:100AE00009F090E02091E8002E772093E800CBCF2A -:100AF00081918093F100615071092F5F3F4FE7CFE3 -:100B000080912E03882341F0853041F08091E800E8 -:100B100083FFBECF81E0089582E0089583E00895C9 -:100B200080910B0308959C014FB7F89480910003C6 -:100B300090910103A0910203B09103034FBF821B68 -:100B4000930B08952FB7F8948091000390910103BF -:100B5000A0910203B09103032FBF08952091FD02DD -:100B60003091FE022817390771F09093FE028093AE -:100B7000FD02E091FB02F091FC02309721F000842D -:100B8000F185E02D099408952091F9023091FA023F -:100B90002817390771F09093FA028093F902E091D7 -:100BA000FB02F091FC02309721F00680F781E02DE6 -:100BB00009940895E091FB02F091FC02309721F036 -:100BC0000190F081E02D099480E00895DC016091AE -:100BD000F5028091F602962F891301C00895292FFE -:100BE00030E0F901EE0FFF1FE351FD4F40815181CD -:100BF0004A175B07A1F487E08A9FA0018B9F500DE5 -:100C00001124485E5E4F81E0FA0184839613E6CF9B -:100C10002F5F3F4F237033272093F50208952F5FF6 -:100C20003F4F922F9370D8CF10928A021092890270 -:100C3000E8E1F1E08581811102C0148216823796C5 -:100C400081E0E234F807B1F70895FA01811101C09B -:100C5000FB010994089580918E03982F9E7F61F483 -:100C60008170826080938E0380919103853B18F0A0 -:100C700084EB8093910308958A34B0F38170886483 -:100C8000F1CFAF92BF92DF92EF92FF920F931F933B -:100C9000CF93DF93182F062FE901453B08F044EB73 -:100CA000E42FF0E0E851FD4F011110C0E4915E2FF8 -:100CB0004E2F4983E8835A83DF91CF911F910F9183 -:100CC000FF90EF90DF90BF90AF900895202F30E01D -:100CD0004491D42EE42EF12C56E0159FC00111242E -:100CE000EFEFF0E0BF010E94BA2E812F90E0880F55 -:100CF000991F55E5569FD001579FB00D11248A1BAF -:100D00009B0B982F990F890F5F01A21AB30AAE9C13 -:100D1000D001AF9CB00DBE9CB00D11245B2F089F7D -:100D200080011124012F11275F01A01AB10AAE9C86 -:100D30008001AF9C100DBE9C100D11245F01A81AFC -:100D4000B108A29EC001A39E900DB29E900D1124E9 -:100D5000892F9927E81BF90BEE9DC001EF9D900D9F -:100D6000FE9D900D1124E92F62307105A1F050F421 -:100D70006115710509F49DCF6130710581F0EB2F8C -:100D8000512F97CF6430710569F080F0663071059E -:100D900009F48FCFF4CFE42F4B2F592F8ACFE42FB4 -:100DA000412F87CFEB2F542F492F83CF4B2F5D2D12 -:100DB000E12F7FCF0E94A2059C0190917602809145 -:100DC0007702982B21F03093730220937202909156 -:100DD000780280917902982B21F030937102209350 -:100DE0007002E091FB02F091FC02309749F082E042 -:100DF000809374020480F581E02D84E792E00994E9 -:100E0000089540917602803F59F48091770287FFE0 -:100E10000DC01092770241110BC010926E0208C0F3 -:100E2000813F81F48091770218169CF3442381F06E -:100E30008091780290917902892B09F05AC0109222 -:100E40006D020895823F49F447FFF0CF1092760279 -:100E5000809177028111ECCFE0CF833F19F4141613 -:100E6000ACF3E4CF90917802893F29F41916F4F697 -:100E700010927802DBCF8A3F19F497FFD7CFF8CFD3 -:100E8000909179028B3F29F497FFD0CF109279028D -:100E9000CDCF8C3F19F41916CCF3C8CF9CE0980F36 -:100EA000953090F4845F990B21E030E0B90102C0E5 -:100EB000660F771F8A95E2F7CB01809590917502B6 -:100EC000892380937502B2CF8D3F31F480916F02F8 -:100ED0008E7F80936F02AACF8E3F21F480916F02A4 -:100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D -:100EF000F0CF089580916F0280FD16C081FD16C06D -:100F000082FD16C080916D028823A1F0883280F4A2 -:100F100028E0829FC001112468E270E00E94CE2E7A -:100F2000862F672B39F0089582E0089584E00895B4 -:100F300088E0089581E0089580916F0280FD14C0DB -:100F400081FD14C082FD16C080916E02882381F05D -:100F5000843180F422E3829FC001112464E170E0B7 -:100F60000E94CE2E862F08958CE0089589E1089581 -:100F700085E0089582E30895803F31F40E949C0744 -:100F80008195809377020895813F19F40E949C0710 -:100F9000F8CF823F31F40E949C07819580937602BE -:100FA0000895833F19F40E949C07F8CF893F29F4E4 -:100FB0000E947A078093780208958A3F21F40E9464 -:100FC0007A078195F7CF8B3F31F40E947A0781959C -:100FD0008093790208958C3F19F40E947A07F8CF24 -:100FE0009CE0980F953070F4845F990B21E030E01D -:100FF00001C0220F8A95EAF780917502822B8093B7 -:10100000750208958D3F31F480916F028160809365 -:101010006F0208958E3F21F480916F028260F7CFB6 -:101020008F3FB9F780916F028460F1CF80E008951F -:10103000F894E82FE295EF70F0E031A1282F2F709F -:1010400081E090E001C0880F2A95EAF7982F9095EB -:10105000932391A392A1892B82A3789408959091D0 -:10106000040392FF06C0282F28712830F9F4877FE7 -:10107000846093FF06C0282F28712831F1F4877E01 -:1010800084612091050320FF06C0382F3871383065 -:10109000D9F4877F816021FF06C0282F287128316D -:1010A000D1F4877E816194FD877E0895282F247175 -:1010B0002430F9F68B7F8860DCCF282F247124310F -:1010C00001F78B7E8861DDCF382F3171313019F710 -:1010D0008E7F8860E0CF282F2171213121F78E7E0D -:1010E0008861E1CFCF93DF93EC0182389105A9F1BC -:1010F000D8F58133910509F496C048F589329105F8 -:1011000009F48AC08A9709F495C0C11521E5D20770 -:1011100008F0BCC0C11530E5D30708F014C1C83EC3 -:10112000D10508F09CC0C03ED10560F5C83AD10594 -:1011300008F087C0C53AD10508F0FDC0C130D1051F -:1011400009F12097F9F0C430D105E0F440C08533AF -:10115000910509F45AC0C997C1F6809104038370C0 -:1011600089F0C0EED0E00EC0833E910599F170F495 -:10117000803E910501F1823E910539F6809104038C -:1011800082FD21C0CE01DF91CF910895863E910569 -:1011900061F1873E910571F1843E910509F0B5CF6B -:1011A0008091050381FFEECF80910403C7EED0E06C -:1011B00084FD0DC0E7CF8091040380FD12C19091A2 -:1011C000050390FFDFCFC3EED0E084FFDBCFD0E09C -:1011D000C0E0D8CF8091040382FD06C19091050341 -:1011E00090FDBFCF84FFCECFF2CF8091040383FD6B -:1011F000DDCFC8CF8091040383FDF9C09091050332 -:1012000091FFF0CFC4EED0E0BDCF8091040385FF05 -:10121000B9CFC9E2D0E0B6CF8091040385FFB2CF49 -:10122000C5E3D0E0AFCF8091040386FFABCFCAE225 -:10123000D0E0A8CF8091040386FFA4CFC1E3D0E023 -:10124000A1CFCF3BD10518F6C85AD0E0CC0FDD1F97 -:10125000C95BDE4F0990D881C02DD46493CFC115EE -:1012600040E2D40758F4C11581E0D80708F08ACFCE -:10127000C03FD10508F4ABCFD06584CFC11590E451 -:10128000D90708F4A4CFDF70D06A7CCFC11525E55B -:10129000D20700F5C11534E5D30708F08AC0C1159F -:1012A00043E5D40708F071C0C11582E5D80708F4FA -:1012B00067C0CE018370992721E030E002C0220F81 -:1012C000331F8A95E2F7C695C69580E2C89FE00174 -:1012D000112452C0C11599E5D907A8F4C11528E514 -:1012E000D20708F06BC0C11536E5D30708F06FCF01 -:1012F0008C2F0E942F08C82FD0E0DC2FCC27CC27C2 -:10130000DF71D0623FCFC1154AE5D40708F45BC056 -:10131000CE0190568115904208F059CF8D2F8F71D4 -:101320000E942F0890E0982F882788279F719C01A2 -:101330002C2BE901E6CFC55AD0E0CC5BDE4FC8814B -:10134000D0E0D0641FCFCE01E4E096958795EA9572 -:10135000E1F783702C2F26952695237040E2249F79 -:1013600090011124382B8C2F8370C1E0D0E002C093 -:10137000CC0FDD1F8A95E2F7C22BD32BDC6802CF9E -:10138000DC2FCC27C16FD06AFDCECE0183709927A8 -:1013900021E030E002C0220F331F8A95E2F7C695A4 -:1013A000C69590E2C99FE0011124C22BD32BDA68C5 -:1013B000E9CEDC2FCC27C46FD06AE4CEDC2FCC275B -:1013C000C06FD06ADFCE8C2F8F700E942F0834E060 -:1013D000D695C7953A95E1F7CF709C2FEC01D0696F -:1013E000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EEB9 -:1013F000D0E0C8CE80914402811110924402089539 -:101400008091430290914202892B90914102892B55 -:101410008093C601909144029923A1F0892B809377 -:10142000C60180914301882341F18091040387FF25 -:1014300024C08EE1E8ECF1E090E0815000F59111DC -:101440000E94FA09E091FB02F091FC023097E1F072 -:1014500080914301882359F08091040387FF07C0DE -:101460008091C6018093C70185E08093C601028008 -:10147000F381E02D86EC91E0099486E0DBCF2191A9 -:101480002223D9F29F5FD9CF0895909143019923E8 -:10149000D1F09091040397FF16C0E82FE695E695EA -:1014A000E695EE31E0F4F0E0EA53FE4F282F277086 -:1014B00081E090E001C0880F2A95EAF7809592813B -:1014C000892382830895E8ECF1E09191891303C0A8 -:1014D000DF0111971C9291E0EE3CF907B1F70895F6 -:1014E000909143019923C1F09091040397FF14C098 -:1014F000E82FE695E695E695EE31F8F4F0E0EA534C -:10150000FE4F877021E030E001C0220F8A95EAF794 -:101510008281822B82830895A8ECB1E0EFEF90E006 -:101520002D91821751F0EF3F19F4211101C0E92FDD -:101530009F5F9630A9F7EF3F09F408950E2E000C37 -:10154000FF0BEA53FE4FE6CF80913F029091FE01E0 -:10155000981301C008958F5F8770FACF990F990F84 -:10156000890F982F977086958695869524E0829F9F -:10157000F0011124E651FE4F50E040E080E021915F -:1015800030E0092E02C0369527950A94E2F72170C3 -:101590003327042E01C0220F0A94EAF7822B4F5FF3 -:1015A0005F4F4430510559F70895990F990F890FEE -:1015B000982F977041E001C0440F9A95EAF78695FD -:1015C0008695869594E0899FF0011124E651FE4F9F -:1015D00030E020E070E05191DF011197CB01022E45 -:1015E00002C0969587950A94E2F7817081958527C8 -:1015F000842385278C932F5F3F4F2430310559F783 -:10160000089590E080E00E94C40590E080E00E9490 -:10161000AE0510924202109241020E94000A86E03A -:10162000E4E7F2E0DF011D928A95E9F710926E027D -:1016300010926D0210926F020C94DA06909346029B -:10164000809345020C94010B882341F08095909182 -:1016500042028923809342020C94000A0895882351 -:1016600039F090914202982B909342020C94000A18 -:101670000895882341F080959091430289238093B7 -:1016800043020C94000A0895882339F09091430294 -:10169000982B909343020C94000A0895882309F430 -:1016A00059C0823871F40E94DA0581FF53C089E382 -:1016B0000E94700A0E94000A89E30E94450A0C9465 -:1016C000000A833859F40E94DA0580FF43C083E59D -:1016D0000E94700A0E94000A83E5EFCF843859F413 -:1016E0000E94DA0582FF36C087E40E94700A0E94D9 -:1016F000000A87E4E2CF9CEF980F913AF0F290E273 -:10170000980F983088F4877021E030E0A90102C07A -:10171000440F551F8A95E2F7CA01809590914302C4 -:10172000892380934302CBCF9BE5980F933020F41D -:1017300090E080E00C94C40598E5980F973120F470 -:1017400090E080E00C94AE05803F20F00E940107FD -:101750000C94DA060895809580FF08C0589A81FF9E -:1017600007C05D9A82FF06C05C9A08955898F7CF2B -:101770005D98F8CF5C98089590912E03943029F5E8 -:101780008093060370930803609307039093E90026 -:101790008FEF9091E800815095FD06C095ED9A95E8 -:1017A000F1F700008111F5CF8091E80085FF0DC0B1 -:1017B00050E040E063E070E086E093E00E94560471 -:1017C0008091E8008E778093E8000895BC0184E062 -:1017D0000C94BC0BBC0183E00C94BC0B9C0184E01A -:1017E0008093E9009FEF8091E800915085FD06C04D -:1017F00085ED8A95F1F700009111F5CF8091E80011 -:1018000085FF0CC050E040E066E070E0C9010E9436 -:1018100056048091E8008E778093E8000895CF9376 -:10182000DF93EC01809143018823B1F1809104039F -:1018300087FF32C060E284E08093E9008FEF9091EF -:10184000E800815095FD06C095ED9A95F1F70000EE -:101850008111F5CF8091E80085FF1BC08091430185 -:1018600070E050E040E0811104C050E040E068E0EA -:1018700070E0CE010E9456048091E8008E7780933C -:10188000E80080E2FE01ACE0B3E001900D928A95A1 -:10189000E1F7DF91CF91089568E081E0CDCF81E05D -:1018A0008093E00080E28093D8001092C9008FE11D -:1018B0009EE40197F1F700C0000087E090EBDC01A7 -:1018C0008093960390939703A0939803B093990302 -:1018D00088E19CE00FB6F894A895809360000FBE55 -:1018E00090936000FFCFCF93C82F882309F4AEC038 -:1018F0008238C1F40E94DA0581FDA8C089E30E9404 -:10190000700A0E94000A2FEF81EE94E0215080407F -:101910009040E1F700C0000089E30E94450ACF91A2 -:101920000C94000A8338A1F40E94DA0580FD8EC071 -:1019300083E50E94700A0E94000A2FEF81EE94E076 -:10194000215080409040E1F700C0000083E5E5CFE2 -:101950008438A1F40E94DA0582FD78C087E40E94F1 -:10196000700A0E94000A2FEF81EE94E0215080401F -:101970009040E1F700C0000087E4CFCF8CEF8C0FE0 -:10198000813A88F580914301882301F18091040315 -:1019900087FF1CC0EC2FE695E695E695F0E0EA534C -:1019A000FE4F828190E04C2F477021E030E002C072 -:1019B000220F331F4A95E2F782239323892B79F074 -:1019C0008C2F0E94450A0E94000A09C0E8ECF1E051 -:1019D0008191C817A9F321E0EE3CF207C9F78C2FDB -:1019E0000E94700A9CCF80E28C0F883068F4C77028 -:1019F00021E030E001C0220FCA95EAF7809143024E -:101A0000822B809343028BCFEBE5EC0FE33040F465 -:101A1000F0E0EC5BFE4F808190E0CF910C94C40528 -:101A2000E8E5EC0FE73150F4F0E0EE0FFF1FE95B63 -:101A3000FE4F80819181CF910C94AE05C03F30F074 -:101A40008C2F0E94BC07CF910C94DA06CF91089599 -:101A50001F93CF93DF93182FD0E0C0E0893311F4A8 -:101A6000C0E5D0E0812F0E94730C209731F4812FC4 -:101A7000DF91CF911F910C944E0B8FE99FE001975E -:101A8000F1F700C000002197F0CF0F931F93CF9381 -:101A9000DF93C62FD42F022FFC0182818823A1F06F -:101AA000609395030E94A2059093940380939303FF -:101AB000C77081E001C0880FCA95EAF7DF91CF9126 -:101AC0001F910F910C94440B80919503681335C0BE -:101AD00080919303909194030E949305883C910513 -:101AE00060F510E21D0FCD17B9F080E28C0F883041 -:101AF00040F4C77081E001C0880FCA95EAF70E94E0 -:101B0000390B183048F481E09D2F977001C0880F81 -:101B10009A95EAF70E94440B802F0E94280D1830F6 -:101B200098F4D77081E001C0880FDA95EAF7DF9169 -:101B3000CF911F910F910C94390BC77081E001C0B8 -:101B4000880FCA95EAF7F3CFDF91CF911F910F91DC -:101B50000895DF92EF92FF920F931F93CF93DF933D -:101B6000E82FF0E0E65BFD4FD490282F26952695D0 -:101B7000269530E0F901E65CFD4F0491877010E096 -:101B8000082E02C0159507950A94E2F701701127F7 -:101B9000F901E65DFD4FE490F12C082E02C0F594AA -:101BA000E7940A94E2F791E0E922FF24F901E65E66 -:101BB000FD4FC491D0E002C0D595C7958A95E2F754 -:101BC000C170DD270115110519F081EE0E94730C1B -:101BD000E114F10419F086EE0E94730C8D2D0E9421 -:101BE000280DEF2819F086EE0E944E0B012B19F0FC -:101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 -:101C00001F910F91FF90EF90DF900C94280DDF91C2 -:101C1000CF911F910F91FF90EF90DF900895CF9398 -:101C2000DF93C7E0D2E060E0CE010E94852F2196CD -:101C3000C11584E0D807B9F7DF91CF9108956F926D -:101C40007F928F929F92AF92BF92CF92DF92EF924C -:101C5000FF920F931F93CF93DF9389E0C82E85E007 -:101C6000D82E0FE510E0E801E09736011CC0F50121 -:101C700085909490692DC7010E94852F682DC7011A -:101C800001960E94852F82E0A80EB11C82E0E80E2A -:101C9000F11CCE15DF0559F788E0680E711C2896F7 -:101CA0000C171D0731F07E0188E0E81AF108530196 -:101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 -:101CC000180789F6DF91CF911F910F91FF90EF9048 -:101CD000DF90CF90BF90AF909F908F907F906F904C -:101CE0000895CF93C82F6FEF811161E283E290E0F6 -:101CF0000E94852F6FEFC11169E084E290E00E949D -:101D0000852F6FEFC11163E185E290E0CF910C94D4 -:101D1000852F80E00E94710E60E086E290E00E94D4 -:101D2000852F0E941F0E0E940F0E81E00C94710EF1 -:101D3000CF93C0910503C2FB992790F9981781F0C2 -:101D400080FBC2F9C09305036091040384E090E036 -:101D50000E94852F6C2F82E290E0CF910C94852F0A -:101D6000CF9108950F931F93CF93DF9328E0629F45 -:101D7000E001112450E0440F551FC40FD51F30E37C -:101D8000839FC00DD11D1124CE0187960E94712F13 -:101D9000082F10E0102F0027CE0188960E94712F87 -:101DA0009801282BC901DF91CF911F910F910895C0 -:101DB000462F8A3038F4763028F4643018F4672FD0 -:101DC0000C94B20E90E080E00895BF92CF92DF9223 -:101DD000EF92FF920F931F93CF93DF937C010091BB -:101DE0003803109139038091450290914602082BE7 -:101DF000192BCFE0D0E0CC24C394D12CBC2EC6014B -:101E00000C2E02C0880F991F0A94E2F780239123B9 -:101E1000892B71F4219790F7B12C8B2DDF91CF9105 -:101E20001F910F91FF90EF90DF90CF90BF9008959A -:101E3000B7018C2F0E94D80E0E947208019751F3AF -:101E4000ECCFCF93DF93EC010E94E50EBE010E9420 -:101E5000D80EDF91CF910C947208FC018681978196 -:101E6000009779F00E947208292F2F7092959F7029 -:101E700092509E30A0F4E92FF0E0E554F04D0C9420 -:101E8000042F808191810E94210FEECF803F19F0B5 -:101E900020F4883E20F481E00895843FE1F380E05F -:101EA0000895883EC0F3813FD1F7F5CF822F869504 -:101EB0008695869508951F93CF93DF9300D000D029 -:101EC0000F92CDB7DEB7FC01268137812115310590 -:101ED00041F525E0DE01119601900D922A95E1F77A -:101EE000FC01228189819A812223B9F06623A9F01D -:101EF0000E94E50E182F682F89819A810E94D50AC9 -:101F000069817A81812F0F900F900F900F900F9021 -:101F1000DF91CF911F910C94D80E0E94AE0A182F1A -:101F2000EFCFC9010F900F900F900F900F90DF919E -:101F3000CF911F91089583E290E00E94712F81322A -:101F400089F484E290E00E94712F893059F485E28F -:101F500090E00E94712F91E0833109F090E0892F89 -:101F60008170089580E0FCCFCF9384E090E00E94E0 -:101F7000712FC82F82E290E00E94712F982F8C2F32 -:101F8000CF91089560918E03669570E04BE050E02C -:101F90008AE091E00E94572F892B19F481E0809309 -:101FA00084020E94A20590937E0280937D02089590 -:101FB0005F926F927F928F929F92AF92BF92CF92D9 -:101FC000DF92EF92FF920F931F93CF93DF93CDB7E2 -:101FD000DEB7C455D1090FB6F894DEBF0FBECDBF32 -:101FE00080918E0380FD0AC0EAE3F3E01182108243 -:101FF0001282339623E0EE38F207C1F780907B021D -:1020000090907C028114910409F459C080917A0265 -:10201000811155C0D12CC12C66246394712C13E01E -:10202000512E8091850293010C2C01C0220F0A943D -:10203000EAF7822309F43BC0F601EE0FFF1FE80D1B -:10204000F91DE590F490E114F104C9F145E050E088 -:10205000B701CE0101960E944E2F09810F3F39F141 -:102060008A81800F9927991F8D31910514F08CE199 -:1020700090E05C01AA0CBB1C8A0D9B1DFC01E65C78 -:10208000FC4F5F01059D80011124065C1C4F0A1561 -:102090001B0520F0F5E0EF0EF11CD8CF98014D8123 -:1020A0006C818B810E9441060D5F1F4FF0CF2FEF97 -:1020B000C21AD20A38E0C316D10409F0B2CF7DEEBD -:1020C000A72E73E0B72EDE011196AE014B5A5F4F7B -:1020D0001A2F7B2FF5018491282F30E0C901880F3A -:1020E000991F820F931F865C9C4FFC01C080D1809A -:1020F000E280CD92DD92ED92FFEFAF1ABF0AA417F6 -:10210000B50741F7279A35B13F7725B120686FB7FA -:10211000F894812F972FFC017191CF01E8E025B948 -:10212000000000C077FF35B9770F000000C000C085 -:1021300000C035B900C0EA9591F78417950759F7A3 -:102140006FBF8FE594E00197F1F700C00000CC5A13 -:10215000DF4F0FB6F894DEBF0FBECDBFDF91CF913A -:102160001F910F91FF90EF90DF90CF90BF90AF90B5 -:102170009F908F907F906F905F9008951F93CF9363 -:10218000DF9300D00F92CDB7DEB7162F90918E035C -:1021900090FF18C09E012F5F3F4F48E76FEF0E94EE -:1021A00041068B819981612F70E0FB01EE0FFF1FCB -:1021B000E60FF71FE65CFC4F2A8121839083828320 -:1021C0000E94D80F0F900F900F90DF91CF911F9129 -:1021D0000895EF92FF920F931F93CF93DF938C019B -:1021E000CAE3D3E0F12CE12CF801948160919003D3 -:1021F00080918F03FEE0EF16F104FCF49923F9F0CF -:102200009E01409191030E9441062FEFE21AF20ACB -:1022100023968CE1E816F10439F70E94D80FF801F3 -:10222000848190E00196817099278483DF91CF911A -:102230001F910F91FF90EF900895992309F39E014C -:1022400040E0E1CF8F929F92AF92BF92CF92DF9208 -:10225000EF92FF920F931F93CF93DF93EC014C818A -:10226000042F10E09801D8010E94192F9B01AC01A6 -:102270000E942F2F4B015C01E0E2F0E0E01BF10B2C -:10228000A5E5B0E0AC019B010E942F2F6B017C0102 -:102290009F01DF010E94112F9B01AC010E943A2F88 -:1022A0009B01AC01280D391D4A1D5B1DC701B601FC -:1022B0000E94E22EF22E822F90E039E23F15D8F1F3 -:1022C00043E0249F9001112435952795122F1095F6 -:1022D0009AE3C92E93E0D92E00E085E5E82EEF18A9 -:1022E0008E2D01FD8F2D9601412F609190030E944C -:1022F00041060F5F53E0C50ED11C0C3189F70E94D7 -:10230000D80F9C8181E0992319F0903219F48FEF56 -:102310008093170180911701890F8C83DF91CF91F2 -:102320001F910F91FF90EF90DF90CF90BF90AF90F3 -:102330009F908F90089525E530E0A901481B590B27 -:10234000CA019A01220F331F280F391F37FFBCCF54 -:102350002F5F3F4FB9CF0F931F93CF93DF93CAE304 -:10236000D3E0FE01118210821282339683E0EE38B0 -:10237000F807C1F710E000E080918702082E000CFA -:10238000990B081719078CF180911601082E000C83 -:10239000990B801791074CF19E0140919103609138 -:1023A000900380918F030E9441060F5F1F4F239679 -:1023B0000C31110509F70E94D80F809115019091F9 -:1023C0008702980F9093870220911601280F20937F -:1023D0001601121614F49B311CF08195809315019F -:1023E000DF91CF911F910F910895198218821A825F -:1023F000DCCFBF92CF92DF92EF92FF920F931F93A9 -:10240000CF93DF93FC018281DD24DA9480FD02C04A -:10241000DD24D3940AE313E0D0E0C0E02CE1B22E37 -:10242000F80111821082128294E0E92EF12CC12C65 -:10243000809186028C0D8D310CF43DC06B2D0E9475 -:10244000AC2E892F082E000C990B8C179D0791F448 -:10245000809191038E9DA0018F9D500D1124559563 -:1024600047955595479598016091900380918F030A -:102470000E944106CD0CF1E0EF1AF108C9F6219651 -:102480000D5F1F4FCC31D10559F60E94D80F8091B6 -:10249000860291E0D91215C0811111C08BE18093A1 -:1024A0008602DF91CF911F910F91FF90EF90DF9007 -:1024B000CF90BF90089587FFC5CF845EC3CF815072 -:1024C000EECF90E00196BE010E94CE2EE8CFEF92B3 -:1024D000FF921F93CF93DF93EC018AE3E82E83E012 -:1024E000F82E10E08C819701409191036091900348 -:1024F000810F0E944106175F83E0E80EF11C1C3F2C -:1025000089F70E94D80F9A818C8190FF08C08F5F55 -:102510008C83DF91CF911F91FF90EF9008958150B0 -:10252000F7CF90918E0390FF0CC0EAE3F3E0818334 -:1025300060834283339693E0EE38F907C1F70C9439 -:10254000D80F08950F931F93CF93DF9300D00F926E -:10255000CDB7DEB78C018091880281110AC09E013F -:102560002F5F3F4F44EB6FEF0E9441068A818093BB -:102570008802F8016481613069F08091880240E04E -:10258000662361F040E0623011F44091880280E0FF -:1025900060E004C06091880240E080E00E949112F7 -:1025A000F801848190E0019663E070E00E94CE2EF5 -:1025B00084830F900F900F90DF91CF911F910F9117 -:1025C0000895CF93DF9300D00F92CDB7DEB79091EF -:1025D0008E0390FF0AC09E012F5F3F4F0E9441066D -:1025E0004B8169818A810E9491120F900F900F9008 -:1025F000DF91CF910895CF93DF93EC01EEE8F3E004 -:10260000438162818C810E94E1128C818F5F8C8377 -:10261000DF91CF910895CF93DF93EC01EC81F0E04F -:10262000E75FFB4F4491EEE8F3E0628181810E9415 -:10263000E1128C818F5F8C83DF91CF910895CF92CF -:10264000DF92EF92FF926B017C010E942B06B70193 -:10265000A60188E090E0FF90EF90DF90CF900C947F -:10266000972F5F926F927F928F929F92AF92BF92BD -:10267000CF92DF92EF92FF920F931F93CF93DF934E -:1026800000D00F92CDB7DEB7182F762E042F622E12 -:1026900090918E0390FF29C0E92FE695AE2FB0E010 -:1026A000A157BE4F8C91809383029E7F923081F51B -:1026B0009E012F5F3F4F812F0E9441064B81698110 -:1026C0008A810E94911210938F037092900300935D -:1026D0009103662051F060918E0370918F03809179 -:1026E0009003909191030E941F130F900F900F90F1 -:1026F000DF91CF911F910F91FF90EF90DF90CF90DE -:10270000BF90AF909F908F907F906F905F90089553 -:10271000823019F400919103D6CF863019F41091CC -:102720008F03D1CF8930D9F3893169F6E9518E2FE2 -:102730008170582EE695F0E0E851FC4FA590B490DA -:10274000BB248AE3E82E83E0F82ED12CC12C9CE137 -:10275000892E912CC601B4010E94BA2E812F5110EE -:1027600013C0860F9701402F672D0E944106CA0CA7 -:10277000DB1C83E0E80EF11C8EE8E81683E0F80627 -:1027800049F70E94D80F9FCF861BECCFEEE8F3E00D -:10279000438128E0421B08F440E021E0628181810E -:1027A0000C943113EEE8F3E0438128E0420F08F483 -:1027B0004FEF21E0628181810C943113EEE8F3E068 -:1027C000628128E0621B08F460E021E0438181819E -:1027D0000C943113EEE8F3E0628128E0620F08F414 -:1027E0006FEF21E0438181810C943113EEE8F3E037 -:1027F000818121E04381628188500C943113EEE89D -:10280000F3E0818121E043816281885F0C94311380 -:1028100080919203882319F08150809392036091F4 -:102820008E0370918F0380919003909191030C948B -:102830001F1380919203833018F48F5F809392036B -:1028400060918E0370918F0380919003909191031A -:102850000C941F1390918E0390FF36C091708111DC -:1028600029C0926090938E03662351F060918E038D -:1028700070918F0380919003909191030E941F1398 -:1028800060918E03669570E04BE050E08AE091E045 -:102890000E94572F892BA9F01092840281E0809327 -:1028A000800220E0409191036091900380918F031A -:1028B0000C943113853210F09864D4CF880F982B84 -:1028C000D1CF0E94C20FEACF089521E030E0A901E4 -:1028D00002C0440F551F8A95E2F7CA012091850274 -:1028E000662399F0822B8093850280918402811166 -:1028F00006C080918E0360E086950E942A14809124 -:102900008E0380FD05C00C94D80F80958223EBCFF9 -:1029100008950F931F93CF93DF93EC0161E000972D -:1029200009F0682F617080E00E94651460E02097D4 -:1029300021F0BE0176956795617081E00E94651473 -:1029400060E0209731F0BE017695679576956795A2 -:10295000617082E00E94651460E0209739F0BE014A -:1029600013E0769567951A95E1F7617083E00E9410 -:10297000651460E0209739F0BE01B4E07695679564 -:10298000BA95E1F7617084E00E946514AE0170E0D1 -:1029900060E0BB27A72F962F852F0097A105B105D3 -:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 -:1029B000279517950795FA95D1F70115110521056A -:1029C000310519F08C5FB901A8018A019B01E2E091 -:1029D0003695279517950795EA95D1F701151105B5 -:1029E0002105310519F08E5FB901A801769567952B -:1029F00057954795452B462B472B09F08F5F823023 -:102A000011F160F4882399F08130C1F0CE01DF919B -:102A1000CF911F910F91089580E0C6CF8330C1F010 -:102A20008430A1F720E044E66FEF8FE004C020E09F -:102A300044E66FEF82E30E943113E8CF20E044E6E2 -:102A40006FEF85E0F8CF20E044E66FEF80E8F3CF4A -:102A500020E044E66FEF87EDEECF0E94891490935B -:102A60003903809338030C94010B809138039091C3 -:102A700039039C01267033272630310519F488600C -:102A80000C942D15877FFCCF21E030E002C0220F8F -:102A9000331F8A95E2F72095309580913803909105 -:102AA0003903822393230C942D1590914002809535 -:102AB000892380934002282F277039F4282F082E6D -:102AC000000C330B9217130621F49091050392FF2B -:102AD00007C08595859585950E9444151092400202 -:102AE000089521E030E002C0220F331F8A95E2F7FB -:102AF0008091380390913903822B932B0C942D15E0 -:102B000080918E038695815009F484E261E00C94F3 -:102B10002A1480918E0386958F5F853208F081E0BC -:102B200061E00C942A1490918E0390FF07C0969553 -:102B3000981720F0961710F40C94891561E00C9406 -:102B40002A14EEE8F3E083E0808311828FEF828322 -:102B500088E28383148260817181828193810C94E5 -:102B60001F1369EE7EEF90E080E00E94A32F60E0EB -:102B700082E090E00E94852F60E083E090E00E9478 -:102B8000852F109246021092450260E084E090E0AA -:102B90000E94852F60E082E290E00E94852F60E035 -:102BA00085E090E00E94852F60E086E090E00E9442 -:102BB000852F6FEF87E090E00E94852F40E050E086 -:102BC000BA0188E090E00E94972F60E08DE090E0ED -:102BD0000E94852F40E050E0BA0188E190E00E9419 -:102BE000972F60E087E190E00E94852F40E050E061 -:102BF000BA018CE190E00E94972F70E060E080E2E3 -:102C000090E00E94A32F40E050E0BA0188E190E0FC -:102C10000E94972F80E00E94710E0E94890E40E072 -:102C200050E0BA018FE090E00E94972F40E050E022 -:102C3000BA0183E190E00C94972F90E080E00E942D -:102C40007F2F893E9E4F11F40C949B0F80E00895D6 -:102C50001092430280914301E8ECF1E0882359F09F -:102C60008091040387FF07C08EE1DF011D928A95E2 -:102C7000E9F70C94010B86E0F8CF1F93CF93DF9315 -:102C8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA3 -:102C900080E393E02091F100DC012D93CD01B3E0BE -:102CA00088339B07B9F780913103833009F471C0F1 -:102CB000B8F4813009F448C0823009F4B2C0809180 -:102CC000E80083FF3AC180913003909131039A303C -:102CD00008F033C1E92FF0E0E753F04D0C94042FD6 -:102CE0008A3009F48DC08B3009F470C0893039F70F -:102CF00080913003813219F780913403909135032C -:102D0000009711F00297D9F68091E800877F8093B1 -:102D1000E8008091E80082FF37C09091F300809135 -:102D2000F200029729F48091F1008B7F813021F429 -:102D30008091F10080930B038091E8008B77809362 -:102D4000E8000E948004BBCF80913003813A09F0F3 -:102D5000B6CF8091E800877F8093E80080913403AC -:102D600090913503892B61F460E28CE093E070E090 -:102D70000E9432058091E8008B778093E8009FCF16 -:102D800060E090E080E0F3CF80912E038111C1CF0D -:102D900096CF80913003813A09F091CF809134032E -:102DA00090913503892B09F08ACF8091E800877FC5 -:102DB0008093E8008091E80080FFFCCF8091430180 -:102DC0008093F1008091E8008E77B9CF8091300335 -:102DD000813209F074CF8091340390913503892BAF -:102DE00009F06DCF8091E800877F8093E8000E9412 -:102DF000800480913203809343010E9428165FCFA4 -:102E000080913003813209F05ACF8091E800877FAA -:102E10008093E8000E9480048091330380930A032A -:102E20004ECF80913003813A09F049CF8091E8007C -:102E3000877F8093E8008091E80080FFFCCF80913D -:102E40000A03BECF803899F0823809F076C08091AD -:102E500034038F70873008F070C08093E900809150 -:102E6000EB0085FB882780F91092E90006C080916D -:102E70002C0390912D03911182609091E800977F2F -:102E80009093E8008093F1001092F1008091E800A7 -:102E90008E77B5C1882309F4A2C1823009F04DC0F4 -:102EA000809132038111A6C1809134038F702FEF7E -:102EB000280F263008F041C08093E9002091EB00F4 -:102EC00020FF98C1933031F48091EB0080628093B1 -:102ED000EB0090C19091EB0090619093EB0021E0AA -:102EE00030E001C0220F8A95EAF72093EA001092A1 -:102EF000EA008091EB008860EACF81111EC010913A -:102F000032031F778091E3008078812B8093E30068 -:102F10008091E800877F8093E8000E948004809180 -:102F2000E80080FFFCCF8091E30080688093E3009D -:102F300082E0111183E080932E038091E80083FFEB -:102F40000AC08091E800877F8093E8008091EB00C1 -:102F500080628093EB00AA960FB6F894DEBF0FBE96 -:102F6000CDBFDF91CF911F9108958058823028F70F -:102F700020913203309133032C3DE3E03E07A1F56D -:102F800083E08A838AE289834FB7F894DE0113963F -:102F900020E03EE051E2E32FF0E050935700E4914F -:102FA00020FF03C0E295EF703F5FEF708E2F90E03F -:102FB000EA30C0F0C7968D939D932F5F243159F767 -:102FC0004FBF8091E800877F8093E8006AE270E05D -:102FD000CE0101960E9432058091E8008B778093A4 -:102FE000E800ABCFC096E7CF8091340390913503D2 -:102FF000432F55274330510509F44AC078F5413035 -:10300000510509F47AC08BE590E0E9EEF6E0423034 -:10301000510509F092CF2091E800277F2093E80026 -:1030200020913603309137038217930708F49C01EF -:1030300040E02115310509F065C0411163C0809160 -:10304000E80082FDC9CF80912E03882329F28530C4 -:1030500019F28091E80083FFF2CFBECF41325105D3 -:1030600009F43CC04232510509F067CF8330910525 -:1030700008F063CFFC01EE0FFF1FE954FE4F0190F3 -:10308000F081E02D8C549E4FDC018C9190E01AC0B1 -:10309000332721303105D1F02115310561F022307F -:1030A000310509F04ACFE6E5F7E0E4918E2F90E094 -:1030B000E6E5F7E007C0E6E7F7E0E4918E2F90E061 -:1030C000E6E7F7E0009709F438CFA5CFE2E6F7E0AE -:1030D000E4918E2F90E0E2E6F7E0F4CF83309105A3 -:1030E00008F02BCF880F991FFC01E354FE4F01908D -:1030F000F081E02D89E090E08ECF82E190E0E4E481 -:10310000F7E089CF80912E03882309F465CF8530BD -:1031100009F462CF8091E80083FD5ECF8091E800E2 -:1031200082FD8DCF8091E80080FF83CF9091F300E6 -:103130008091F2002115310519F08830910550F089 -:1031400041E0089709F040E08091E8008E77809395 -:10315000E8006FCF44914093F1003196215031093E -:103160000196E8CF803809F0E8CE8091E800877FAB -:103170008093E80080912F038093F10087CE811126 -:10318000DCCE10913203123008F0D7CE8091E800E7 -:10319000877F8093E80010932F030E9480041123FF -:1031A00011F084E005C08091E30087FDFACF81E053 -:1031B00080932E0342E061EC81E00E949F0442E292 -:1031C00061EC84E00E949F0442E261EC82E00E9494 -:1031D0009F0442E260EC83E00E949F04AECE8091A7 -:1031E0003203813009F0A9CE81E0933009F080E00C -:1031F00080932D031092E9008091E800877F8093EF -:10320000E8000E94800499CE9F92AF92BF92CF9225 -:10321000DF92EF92FF920F931F93CF93DF9300D033 -:1032200000D0CDB7DEB77C01FC0183819481892B6E -:1032300031F08081918189238F3F09F0F0C50F9093 -:103240000F900F900F90DF91CF911F910F91FF90F2 -:10325000EF90DF90CF90BF90AF909F90089598012E -:1032600022513F452031310508F0CEC58FEF93E064 -:103270000E94712F025167E0C62E62E0D62E88238D -:1032800039F1809140028770D1F2F7018281882361 -:10329000B1F282E00F900F900F900F90DF91CF91DD -:1032A0001F910F91FF90EF90DF90CF90BF90AF9064 -:1032B0009F900C945515C114F4E0DF0611F3C6017C -:1032C0000E94712F811101C001502FEFC21AD20A42 -:1032D0000111F1CF1C821B82BB24B3945AE0A52EAE -:1032E00086010F5F1F4FC6010E94712F89831A82CA -:1032F000882339F29FEF980F933008F58A83B982BB -:1033000032E0C30ED11CC8010E94712F8B83882329 -:1033100009F4B7CF8E010F5F1F4FF801808188231A -:10332000F9F2813009F043C091818281913049F4F2 -:103330000E5F1F4F0E94280D0F5F1F4FEECF6801D9 -:10334000E9CF923029F40E5F1F4F0E94730CF4CF27 -:10335000933029F40E5F1F4F0E944E0BEDCF943037 -:1033600019F00F5F1F4FE8CF0E5F1F4F30E020E0D6 -:10337000B8016F5F7F4FF80141818053990B8A300C -:10338000910550F021503109B8F28FE99FE0019783 -:10339000F1F700C00000F6CFA29EF001A39EF00D51 -:1033A00011249C012E0F3F1F842F8B01E1CF0E941F -:1033B000A90DC2CF81E00E9471150E94351561CF21 -:1033C00081E00E944415F9CF82E0FBCF04389FE5ED -:1033D000190709F483C008F473C00538FFE51F0717 -:1033E00009F041C5882309F43EC580EE0E94730CA4 -:1033F00081EE0E94730C80E10E94730C80E10E94B8 -:103400004E0B81EE0E944E0B80EE0E944E0B80917F -:10341000E60191E062E189278093E601882309F4BF -:103420008DC08FE00E94BE1066E18FE00E94BE104A -:103430001AC5882369F180914F02811106C081E08D -:1034400080934F0282EE0E94730C0E94A20590931B -:103450004E0280934D028BE20E94730C04C58823B8 -:10346000A1F080914F02811106C081E080934F024C -:1034700082EE0E94730C0E94A20590934E028093EC -:103480004D0281EE0E94730CE6CF81EE0E944E0B3E -:103490008BE20E944E0BE7C4882309F4E4C481EE5A -:1034A0000E94730C83EE0E94730C8FE40E94730CD5 -:1034B0008FE40E944E0B83EE0E944E0B81EEE9CF0B -:1034C000882309F4D0C481EE0E94730C83EE0E941D -:1034D000730C80E50E94730C80E5EBCF882309F420 -:1034E000D0CE10914C0281E0182710934C020E941C -:1034F000A20590934B0280934A0268E1112381F068 -:103500008FE00E94BE1069E18FE00E94BE106AE168 -:103510008FE00E94BE106BE18FE00E94BE10B1CE22 -:1035200084EB0E94BE1069E184EB0E94BE106AE148 -:1035300084EB0E94BE106BE184EBEFCF8FEA0E9418 -:10354000BE1066E18FEA72CF82EE0E94730CC6C491 -:1035500083E00E942F0B88E10E94730C88E10E9497 -:103560004E0B83E00E94240BB9C482EE0E94730CC0 -:1035700087E50E94280DB2C486EE0E94280D88E1DE -:10358000F8CF895AC5C482EE0E944E0BD9C48CE292 -:103590000E94280D8091E801882309F4D1C489E3B1 -:1035A0000E94280DCDC488E2FBCF033FFCE51F0736 -:1035B00039F1A0F4083D3CE51307F1F0093D8CE535 -:1035C000180751F1073D9CE5190709F0BDC426E233 -:1035D00041EE61EEC7010E94450D53CE053FECE57B -:1035E0001E07B1F088F0063F2CE5120709F0ACC4C5 -:1035F00027E245EE66EEEECF27E245EE65EEEACF36 -:1036000026E241EE60EEE6CF27E245EE64EEE2CF41 -:1036100026E241EE62EEDECF28E241E0EFCF80917C -:103620000403806106309CE5190709F48CC0809181 -:103630000403886007301C4508F485C080910403AA -:10364000806281C0809104038D7F0C30FCE51F07F0 -:1036500009F479C070F4809104038C600A303CE571 -:10366000130709F470C008F481C0809104038E7FB1 -:103670006AC080910403877F0E309CE5190709F426 -:1036800062C0809104038B7F0F301C4508F45BC03F -:10369000809104038F7E57C00B3FFCE51F0709F4A0 -:1036A0005DC030F503313CE5130709F46DC078F4D3 -:1036B00001319CE5190709F463C002311C4509F08A -:1036C0007EC40E942816809104038F773CC0053188 -:1036D000FCE51F0709F460C008F474C0809105037D -:1036E00081600A3F1C4509F06AC48093050367C4E2 -:1036F0000F3F8CE5180709F44BC088F4809105034F -:103700008D7F0D3FECE51E0781F3809105038E7FD1 -:103710000E3F1C4550F3809105038360E6CF0130D6 -:103720002DE5120709F457C008F442C060E00230EA -:103730001D4509F044C48EE090E00E94852F3FC4EF -:103740008091040381608093040339C48091040351 -:103750008260F9CF809104038460F5CF80910503E6 -:103760008260C3CF809104038064EDCF0E9428164D -:10377000809104038068E7CF809104038F7DE3CFBD -:10378000809104038F7BDFCF80910403837FDBCFA5 -:10379000809105038C7FA9CF8091040382FB992738 -:1037A00090F921E0922790FB82F990FB83F9CBCF2F -:1037B00080910503982F909591708E7F892B90FBB7 -:1037C00081F993CF0E94281690910403892F97FBCB -:1037D00087F98058B8CF61E0AECF882309F402C4DE -:1037E000809143028A7A91E009F490E09093E90194 -:1037F000811106C089E20E94700A0E94000A41CD30 -:1038000085E3F9CF85E3F3C3043CFCE51F0709F426 -:1038100093C046EF53E16FEF73E1053C2CE51207CF -:1038200009F00AC40E9425062CCD093C3CE513078B -:1038300009F491C070F4073CECE51E0709F486C05A -:103840004AEE53E16EED73E1083CFCE51F0751F3CE -:10385000F3C30A3C2CE5120709F482C048E054E1A6 -:1038600069E174E10B3C3CE51307E1F2E5C3013D7E -:103870008CE5180709F487C0B0F40E3CECE51E0790 -:1038800009F47BC008F476C00F3C2CE5120709F45C -:1038900077C06EE089E0003D3CE5130709F0CCC33A -:1038A0000E949315EECC043D8CE5180709F471C015 -:1038B00078F4023DECE51E0709F468C061E088E198 -:1038C000033DFCE51F0709F0B7C30E942A14D9CCB9 -:1038D000053D2CE5120709F45FC00D35100709F40A -:1038E000D0CCAAC380918E0380FF1BC08E7F8093B3 -:1038F0008E0360918E0370918F038091900390915D -:1039000091030E941F13109284028FEF90E7E2E070 -:1039100081509040E040E1F700C000000E94D80FC5 -:10392000B0CC816080938E0361E08695CECF40E875 -:1039300055E169E875E176CF49E855E160E875E160 -:1039400071CF4FEF53E166EF73E16CCF4EED53E172 -:103950006AEE73E167CF46EC53E162ED73E162CF4B -:1039600042ED53E166EC73E15DCF49E154E168E07B -:1039700074E158CF61E081E0A8CF65E082E090CFAC -:1039800068E086E08DCF64E18FE08ACF67E185E172 -:1039900087CF62E289E184CF61E083E296CF0B3585 -:1039A0009DE5190701F10C351D4509F055C38091BE -:1039B000050382FB882780F991E089270E94980EF1 -:1039C0004BC30E942816FFEF24E33CE0F150204057 -:1039D0003040E1F700C000000E944F0C0E94B1157A -:1039E00050CC81E0EBCF80E0E9CF82810081118172 -:1039F000882369F0C8010E94E50ED82E682FC801FF -:103A00000E94D50AB8018D2D0E94D80E2BC3C80183 -:103A10000E94AE0AD82EF6CF212F2F70C22E107F13 -:103A200019F0C29490EFC922DD20C9F0CC2069F0D2 -:103A300080E2800F883010F001110BC080914302AA -:103A4000C82AC09243020E94000A802F0E94730C71 -:103A500019C080914202C82AC0924202F4CF802F3E -:103A60000E944E0BCC2071F0C09480E2800F883011 -:103A700010F001113AC080914302C822C092430263 -:103A80000E94000AE92DE850FF0B349720F40E94B1 -:103A9000DA050E94AB0BAA20A9F08091400280FDBC -:103AA00011C0F70112828595859585950E94711543 -:103AB000C7010E94041980914002859585958595DE -:103AC0000E94441560E0C7010F900F900F900F9077 -:103AD000DF91CF911F910F91FF90EF90DF90CF90EA -:103AE000BF90AF909F900C945B0F80914202C822D0 -:103AF000C0924202C5CF312F3F70B32E107F1032DB -:103B000019F0B29480EFB822002369F0013081F1FE -:103B1000DD20D9F1CC2091F1F701858180FF95CF8F -:103B20008F7085832BC0DD20B1F0909144028B2DE6 -:103B3000892BC11003C00E94440BA4CFE1E0CE1238 -:103B4000FACF2091050322FD9DCF891709F49ACF62 -:103B50008093440297CFC11006C00E94FA098B2DB2 -:103B60000E94390B8FCFF1E0CF1609F48BCFF5CF40 -:103B7000DD2031F025E02C1508F484CF8B2DDBCF30 -:103B800034E03C1508F47ECFEACFCC2041F3093372 -:103B900049F4FFEF27EE33E0F15020403040E1F7E9 -:103BA00000C00000802F0E944E0B6CCF812F8695A5 -:103BB0008695837061F0813009F064CFC8019370FD -:103BC000D11002C090E080E00E94AE055BCFC8013A -:103BD0009370D11002C090E080E00E94C40552CFE3 -:103BE000802FDD2029F00E94BC070E94DA064ACF10 -:103BF0000E940107FACF812F837009F03FC0D110D6 -:103C000041CF402F429546954770440F440F802F77 -:103C10008F7090E0042E02C0880F991F0A94E2F77B -:103C200030E020E004FF09C02FE030E002C0220FA6 -:103C3000331F4A95E2F72095309516951695137027 -:103C4000123099F078F440914502509146021130BB -:103C500039F0822B932B842395230E941E0B12CFC5 -:103C6000842B952B822B932BF8CF822B932B209197 -:103C700045023091460282279327EFCF8695DD20BB -:103C800011F0812F8170882309F4FCCE402F4295DA -:103C900046954770440F440F802F8F7090E0042E9C -:103CA00002C0880F991F0A94E2F730E020E004FF79 -:103CB00009C02FE030E002C0220F331F4A95E2F71F -:103CC00020953095169516951370123099F078F46A -:103CD0004091380350913903113039F0822B932BE6 -:103CE000842395230E942D15CDCE842B952B822BDA -:103CF000932BF8CF822B932B2091380330913903EB -:103D000082279327EFCF1F70DD2029F0812F0E949B -:103D10007115802F10CF802F0E94390B812F0E94A8 -:103D20004415B0CE023F09F441C060F4003F11F1E8 -:103D3000013FA1F1DD2009F457C0C11086CE812FCB -:103D40008F7131C0033FB9F1043FA1F7DD2009F4C1 -:103D500040C01F71812F0E9471158091050382FD63 -:103D600007C0E8E01E9FC0011124836080934002D9 -:103D7000812F19C0DD2069F084E08C1508F482CE13 -:103D80001F7181E090E002C0880F991F1A95E2F739 -:103D9000B3CF95E09C1508F475CEF2CF812F8F71CB -:103DA000DD2009F4BCCF0E9471156CCE812F8F717C -:103DB000DD20C9F3B4CF90E080E0DD2009F492CF9C -:103DC0001F7181E090E002C0880F991F1A95E2F7F9 -:103DD00089CF81E00E945515F1E0FC1508F052CE24 -:103DE00082E00E9455154ECECC2059F0093309F0DF -:103DF000D9CE2FEF37EE83E0215030408040E1F7FD -:103E0000CFCE812F8F718BCF00313FE5130709F49F -:103E1000D1CA01319FE51907A9F482E0CCCA61E05B -:103E2000C7010E945B0F8C01F7018281811117CAC3 -:103E30000031FFE51F0709F4C3CA01312FE512075E -:103E400009F4C2CA0238EFE51E0709F425CB08F0D1 -:103E5000BDCA00382FE5120709F4EBCA01383FE567 -:103E6000130709F4FCCAF7018281882369F0C801AD -:103E7000815E9C45059740F46FE1600F60935002AE -:103E80008CE090E00E94852F17FF8FCBF701828195 -:103E9000882309F459C00E94DA05869581708093C1 -:103EA000E80190915002913029F4882319F089E3B8 -:103EB0000E94280D809143028093E70110924302F3 -:103EC00080915002813009F443CB882309F43CCB24 -:103ED000823009F44ACB843009F44ECB8FE39CE95D -:103EE0000197F1F700C000005801E894B7F84CE0E2 -:103EF000C42ED12CC5010C2C02C0969587950A942E -:103F0000E2F78F7096EF980F963008F43ACB805D09 -:103F10000E94A90D94E0C91AD108ECEFCE16EFEF7C -:103F2000DE0641F780915002813009F430CB8823BE -:103F300009F429CB823009F426CB843009F433CB41 -:103F40008091E70180934302F7018281882309F47D -:103F500046C0109295030230FCE51F0708F44AC0E2 -:103F600006312CE5120738F098012A5F3C452930CC -:103F7000310508F03FC00E94B40F90930503809371 -:103F8000040300313CE5130709F4F6CB08F084CBB9 -:103F900008309CE5190709F4E5CB08F053CB043051 -:103FA000FCE51F0709F4D6CB08F039CB02303CE51D -:103FB000130709F4C5CB03301C4509F4C7CB609146 -:103FC00004031091050384E090E00E94852F612F87 -:103FD00082E290E00E94852F0E94281652C9063185 -:103FE0001C45D1F58091E90181110CCC89E20E9438 -:103FF000450A03CC06312CE5120709F4EECB80917B -:10400000430282720C3C9CE5190709F4AECC08F01F -:104010002ECC063CFCE51F0709F493CC08F005CC38 -:10402000033C3CE5130709F482CC08F0EDCB023CDD -:10403000ECE51E0709F456CC0A35FDE51F0709F427 -:10404000D0CC08F0ACCC01153CE5130709F4B9CC91 -:104050000E3D1C4509F4C2CCF7018681978100977B -:1040600009F4C3CC0E9472088C01F701D280C5808C -:10407000C2943FE0C322809140028770A1F0AD2C32 -:10408000DD2091F0812F807F803421F080E2800F4D -:10409000883048F082E00E94551580914002877078 -:1040A000AA24A3948111A12C912E92942FE0922204 -:1040B000FBE0F91508F4E6CCE92DF0E0ED52F04D07 -:1040C0000C94042FCF93DF938091FB01807FA1F4A8 -:1040D0008091F801882381F080913F02D091FE0108 -:1040E0006091F6017091F701A091F901B091FA0188 -:1040F000C62FC723D81303C0DF91CF91089590E056 -:10410000109711F0CF3F19F401968770F3CF9C01FF -:1041100043E0220F331F4A95E1F7F901E150FE4FCA -:1041200041814713F1CF40814613EECF42814111C7 -:10413000EBCF438154814A1B5B0B483C510520F770 -:104140008091FB018F7080618093FB01F901EC5F2E -:10415000FD4F80818F708061808386EF91E00E94A7 -:104160000419DF91CF910C94A40AAF92BF92CF9221 -:10417000DF92EF92FF920F931F93CF93DF93CDB710 -:10418000DEB765970FB6F894DEBF0FBECDBF8C01CA -:1041900085E0F801DE01519601900D928A95E1F7D4 -:1041A000F801E28066EFA62E61E0B62E6091F9017B -:1041B0007091FA016115710509F468C19091F601D9 -:1041C0004091F701892F84238F3F09F45FC120813B -:1041D0003181C380D480F090F801F601E61BF70B23 -:1041E000FF2009F41DC18091FB01582F507FE83C4E -:1041F000F10508F0D0C0511181C0FE2C43132BC033 -:10420000921329C06091FC017091FD01F801468173 -:10421000578164177507F9F4E1101DC08F70806134 -:104220008093FB01C5010E9404198091FB01F801F4 -:1042300085838F2D65960FB6F894DEBF0FBECDBF78 -:10424000DF91CF911F910F91FF90EF90DF90CF9072 -:10425000BF90AF900895CD2829F0822F83238F3F00 -:1042600009F02FC180E0F82FF170DF2E80FF3CC0F5 -:1042700080913F024091FE01841315C0298B3A8B37 -:1042800089899A890E94210F292F22952F70223027 -:10429000F8F0243020F59F70F9F0F8019581907FB7 -:1042A000D9F4D12C1FC090E0FC0153E0EE0FFF1FAA -:1042B0005A95E1F7E150FE4F5181351306C0508108 -:1042C000251303C05281E5120FC001968770D4CF29 -:1042D0009F7011F0882329F3805E883010F3C801A5 -:1042E0000E940419FD2CA5CFEE2009F4A2CF8091E5 -:1042F000FB0181608093FB01F12C9BCF43131BC01A -:10430000921319C04091FC015091FD01F8012681E2 -:1043100037814217530779F4E1100DC08583C80136 -:104320000E94041988E0F801A6EFB1E001900D9217 -:104330008A95E1F77ECFC8010E942D0F882339F1BD -:10434000EE2029F18091FB018032A0F02091F6014E -:104350003091F7013A8729871B86DD86CC868E87C8 -:104360008091FC019091FD01988B8F87CE01099679 -:104370000E94041988E0F801A6EFB1E001900D92C7 -:104380008A95E1F70E946220FF24F39452CFC8017E -:104390000E940419F9CF51110AC086EF91E00E94E2 -:1043A000041988E0F50111928A95E9F7A5CF431326 -:1043B00018C0921316C04091FC015091FD01F80104 -:1043C000268137814217530761F4E1100AC08583C3 -:1043D000C8010E94041988E0F50111928A95E9F755 -:1043E00028CFC8010E942D0F882389F2EE2079F290 -:1043F0008091FB01803208F4BDCF2091F60130910D -:10440000F7013A8329831B82DD82CC828E838091DF -:10441000FC019091FD0198878F83CE010196A8CF72 -:10442000E83CF105C0F6FE2CEE2009F4B0CF4313B2 -:104430001FC092131DC02091FC013091FD01F801B5 -:10444000868197812817390799F49091FB0190FD97 -:1044500069CF907F09F466CF8091FB018583903FFF -:1044600009F45DCF982F907F905F8F70892B56CF86 -:10447000C8010E942D0F81117DCF8091FB018160C9 -:104480008093FB01C8010E940419D3CEEE2009F4E9 -:104490007ECFC8010E942D0FF82E882309F477CF14 -:1044A00088E0F801A6EFB1E001900D928A95E1F75E -:1044B0008091F6019091F7010E94210F0E946220E5 -:1044C000B8CE81E08E25CFCECF93DF93CDB7DEB7C8 -:1044D00060970FB6F894DEBF0FBECDBF29873A872D -:1044E0004B875C876D877E878F87988BCE01099677 -:1044F0000E94B520811112C088E0FE013996DE01CC -:10450000119601900D928A95E1F78C859D85892BF6 -:1045100029F089859A8589238F3FA9F580913F02EB -:104520009091FE0189131CC060960FB6F894DEBF0F -:104530000FBECDBFDF91CF91089593E0AA0FBB1FAF -:104540009A95E1F7A150BE4F98E0FE013196019097 -:104550000D929A95E1F78093FE010E94A40ADECFA6 -:10456000B8E08B9FC001112481509E4F0E94B5205E -:104570008823D1F280913F0290E0019687709927BD -:1045800080933F02CBCFA091FE01B0E0CD01019618 -:104590008770992720913F022817190671F60E940B -:1045A00028161092FE0110923F0288E0E6EFF1E03B -:1045B000DF011D928A95E9F7B1CF0F931F93CF9337 -:1045C000DF9380918C02E0918B02CCE081111AC0C4 -:1045D000DF91CF911F910F910895D1E0DE0FD0931D -:1045E0008B020E2F10E0EC9FF0011124E357FD4FDA -:1045F00083819481892B29F08081918189238F3F48 -:1046000051F4ED2F80918C02E81738F310928C0250 -:1046100010928B02DDCFC09FD001C19FB00D11243D -:10462000A357BD4F16968D919C911797892B29F40E -:1046300018968D919C91019651F42081318142818F -:10464000538164817581868197810E946422C09F15 -:10465000F001C19FF00D1124E357FD4F1482138226 -:10466000D0CF1092F8021092F7021092420180917E -:10467000F6028093F5020E9414060C94DD222F921C -:104680003F924F925F926F927F928F929F92AF92E2 -:10469000BF92CF92DF92EF92FF920F931F93CF932F -:1046A000DF93C091F502E7E0FE2E01E010E0FCE0B0 -:1046B0002F2EAEEFEA2E8091F6028C1316C00E94C8 -:1046C000DD22DF91CF911F910F91FF90EF90DF904E -:1046D000CF90BF90AF909F908F907F906F905F90A2 -:1046E0004F903F902F900C941406D0E0FE01EE0FF7 -:1046F000FF1FE351FD4F80819181F89EF001F99EEB -:10470000F00D1124E85EFE4F2481211158C0309035 -:104710008C02ADE8B2E030E020E0412C5F012315CF -:1047200008F04BC01A966D907C901B97F501808025 -:1047300091804FEF5FEF512CC52CD12CF601EE0F7D -:10474000FF1FE80DF91D659174916616770609F44F -:10475000A601672B11F05394EFCF4F3F5407B1F1EF -:10476000B80102C0660F771F4A95E2F7462AA801F2 -:1047700002C0440F551F5A94E2F7415051094416A4 -:10478000150601F5229EF001239EF00D1124E3573A -:10479000FD4FF89ED001F99EB00D1124A85EBE4FCA -:1047A00012962D913C91139737832683E082E18204 -:1047B0009187808771E015967C930E94E60521968B -:1047C000C37079CF14961C921E9213972F5F3F4FA0 -:1047D0001C96A5CF9F92AF92BF92CF92DF92EF929D -:1047E000FF920F931F93CF93DF9300D000D000D0A0 -:1047F000CDB7DEB78E010F5F1F4F86E0F801119233 -:104800008A95E9F785E7C82E81E0D82EF12CE12CB6 -:10481000AA24A394B12CF60181916F018F3F09F472 -:1048200049C0F894E82FE295EF70F0E021A18F7075 -:10483000A50102C0440F551F8A95E2F7CA01922FC5 -:10484000982B91A392A18095892382A3789400C08C -:10485000EBE7F1E030E020E0912C41914F3F09F48B -:1048600073C0A42FA295AF70B0E090968C9190E0A9 -:104870004F7002C0959587954A95E2F780FD64C018 -:104880008A2D022E01C0880F0A94EAF7982A2F5F1A -:104890003F4F2430310509F7F601319780818F3F72 -:1048A00011F00E94180850EA5A95F1F7F801EE0D40 -:1048B000FF1D90828FEFE81AF80AE6E0EE16F10489 -:1048C00009F0A9CF46E050E0B80184E592E00E94EB -:1048D000642FFF24F394009709F4F12C892BB1F194 -:1048E00086E0F801A4E5B2E001900D928A95E1F727 -:1048F00081E0809349020E94A20590934802809330 -:10490000470280914702909148020E9493050597C3 -:1049100008F1809154028093670280915502809340 -:1049200068028091560280936902809157028093B9 -:104930006A028091580280936B02809159028093A1 -:104940006C021092490206C080E0A0CF809149021B -:104950008111D7CF80914201882301F18091F70224 -:104960009091F8020097D1F00E949305209189025E -:1049700030918A022817390788F49091F5028091C6 -:10498000F602981709F445C00E943F2310928A024C -:10499000109289021092F8021092F70280914F0251 -:1049A000882371F080914D0290914E020E949305F0 -:1049B000893E934028F082EE0E944E0B10924F02E7 -:1049C00080914C02882391F080914A0290914B0291 -:1049D0000E949305883E934048F00E94A205909360 -:1049E0004B0280934A0283E70E94280D8F2D269662 -:1049F0000FB6F894DEBF0FBECDBFDF91CF911F91F0 -:104A00000F91FF90EF90DF90CF90BF90AF909F906D -:104A100008950E94DD221092F8021092F7020E947F -:104A20001406BCCF2F923F924F925F926F927F926B -:104A30008F929F92AF92BF92CF92DF92EF92FF92AE -:104A40000F931F93CF93DF93CDB7DEB769970FB660 -:104A5000F894DEBF0FBECDBF498B5A8B6B8B7C8B1E -:104A60008D8B6111109242021D861E861F86188A48 -:104A700085E0FE017196DE01199601900D928A95EE -:104A8000E1F78C859D85892B31F089859A8589236D -:104A90008F3F09F0D4C129853A854B855C856D85AA -:104AA0007E858F8598890E946422C3C028EFC21634 -:104AB0002CE5D20629F4882379F00E943123EBCF2C -:104AC00039EFC3163CE5D30639F4882329F08091E9 -:104AD00042018111F2CFC3C108E111E0E12CB12CF8 -:104AE000A12C88248394912C9EEF592E4424439426 -:104AF000F8016081718166246A94762C20E0422F4F -:104B000050E0FA01EE0FFF1FE60FF71F8591949119 -:104B1000C816D90609F43A01892B11F02F5FEFCF9F -:104B2000F12CFFEF6F167F0609F445C0F8014481B0 -:104B3000F09042018F2D411180E0F82FF170FF2E8F -:104B4000F801258086819B85992309F408C1FF20FF -:104B500009F405C1211014C0A40101C0440F6A94D6 -:104B6000EAF7842B86838091890290918A028039AA -:104B7000914030F440E951E050938A024093890219 -:104B8000C40102C0880F991F2A95E2F70197F80126 -:104B900026812817190679F48091F7029091F8027E -:104BA000009709F45FC00E9493058139914008F491 -:104BB00059C0F8014482EF28FFEFAF1ABF0A095F1E -:104BC0001F4F26E0A216B10409F092CF8B858823EF -:104BD00009F420C1EE2009F41DC10E94A2059093A2 -:104BE000F8028093F70280918C02883010F591E0F2 -:104BF000980F90938C0298E0FE013996DE01119691 -:104C000001900D929A95E1F73CE0839FC001112439 -:104C100083579D4F28E0FE013196DC0101900D92F3 -:104C20002A95E1F72FEF3FEFFC0131872087D386EC -:104C3000C28669960FB6F894DEBF0FBECDBFDF9176 -:104C4000CF911F910F91FF90EF90DF90CF90BF9089 -:104C5000AF909F908F907F906F905F904F903F901C -:104C60002F9008958091F5026090F602982FF0E061 -:104C7000E0E0861114C09093F5020E171F0709F4A7 -:104C80009ACF90E0FC01EE0FFF1FE351FD4FB18280 -:104C9000A0820196837099278093F6028CCF282EEC -:104CA000312CF101EE0FFF1FE351FD4F20813181C7 -:104CB000F7E0F29FD001F39FB00D1124A85EBE4F24 -:104CC0002D913C911197398F288F712C60E070E005 -:104CD000E72FF0E0EE0FFF1F288D398DE20FF31F55 -:104CE0002591349121153105E1F0F8010190F08111 -:104CF000E02DFF8BEE8B60E005C02417350709F42B -:104D00007F2C6F5FE62FF0E0EE0FFF1F4E895F896B -:104D1000E40FF51F459154914115510571F77F5FDF -:104D2000D7CF7720C9F0F801671708F0FD0144825A -:104D30000E171F0721F49093F502F72C3CCF981320 -:104D400005C0AE17BF0711F49F5F937091012F5FED -:104D50003F4F822F83708DCFF0E0E0E0F7CF90E0FF -:104D600021101FC0B40102C0660F771F2A95E2F719 -:104D70009B01215031092817390731F4442309F4E4 -:104D800047C0C5010E94E605C40101C0880F6A94AE -:104D9000EAF7982F9095F801868189238683F22C73 -:104DA0000ACF9C01062C02C0359527950A94E2F79C -:104DB000A90141705527BC016150710986239723D1 -:104DC000892B11F5452B01F1F80182819381892B03 -:104DD000C1F01B821C821D821E8259825A820E944F -:104DE000A2058160582F9D838C83F8018281938175 -:104DF0008F83988729813A814B816D817E810E94C2 -:104E00006422F8011582C0CFF22FF1702F2EBCCF93 -:104E10002F2CBACF9091F5028091F602981731F0BD -:104E20000E943F23EE2009F436CE03CF0E94DD22FC -:104E30001092F8021092F7020E941406F3CF61E07C -:104E4000CE0109960E945B0F6C018B85F7EFCF16A0 -:104E5000FCE5DF0609F02ACE882309F43DCE81E087 -:104E60008093420118CE1F920F920FB60F92112419 -:104E70002F933F934F935F936F937F938F939F9362 -:104E8000AF93BF93CF93DF93EF93FF93D091E9005C -:104E9000DF708091EC00C82FC17080FDC0E81092D7 -:104EA000E9008091F000877F8093F00078940E9461 -:104EB0003D161092E9008091F00088608093F00028 -:104EC000CD2BCF70C093E900FF91EF91DF91CF918F -:104ED000BF91AF919F918F917F916F915F914F9112 -:104EE0003F912F910F900FBE0F901F9018951F921A -:104EF0000F920FB60F9211242F933F934F935F930E -:104F00006F937F938F939F93AF93BF93EF93FF9391 -:104F10008091E10082FF09C08091E20082FF05C01C -:104F20008091E1008B7F8093E1008091DA0080FF27 -:104F300024C08091D80080FF20C08091DA008E7F4D -:104F40008093DA008091D90080FF9BC080E189BD09 -:104F500082E189BD09B400FEFDCF81E080932E037C -:104F600080910903811109C00E9406040E94D104A6 -:104F70008091E20084608093E2008091E10080FFF4 -:104F800017C08091E20080FF13C08091E2008E7F05 -:104F90008093E2008091E20080618093E200809142 -:104FA000D80080628093D80019BC85E080932E03DE -:104FB0008091E10084FF29C08091E20084FF25C038 -:104FC00080E189BD82E189BD89B5982F917080FF0C -:104FD000FBCF8091D8008F7D8093D8008091E10035 -:104FE0008F7E8093E1008091E2008F7E8093E200CB -:104FF0008091E20081608093E20080912F038823FA -:1050000009F445C084E080932E038091E10083FF82 -:1050100027C08091E20083FF23C08091E100877F59 -:105020008093E10082E080932E0310922F03809101 -:10503000E1008E7F8093E1008091E2008E7F80937B -:10504000E2008091E20080618093E20042E060E053 -:1050500080E00E949F048091F00088608093F000BF -:10506000FF91EF91BF91AF919F918F917F916F9140 -:105070005F914F913F912F910F900FBE0F901F9016 -:10508000189519BC10922E031092090376CF8091C7 -:10509000E30087FD93E090932E03B7CF78941F929F -:1050A0001FB61F9211248F939F93AF93BF9380914C -:1050B000000390910103A0910203B09103030196B4 -:1050C000A11DB11D8093000390930103A0930203DF -:1050D000B0930303BF91AF919F918F911F901FBE1B -:1050E0001F9018951F921FB61F9211248F939F93A4 -:1050F000AF93BF938091FF02811113C08091000391 -:1051000090910103A0910203B09103034196A11D68 -:10511000B11D8093000390930103A0930203B09309 -:105120000303BF91AF919F918F911F901FBE1F905E -:105130001895CDB7DEB7EE970FB6F894DEBF0FBE69 -:10514000CDBF84B7877F84BF0FB6F894A8958091B0 -:105150006000886180936000109260000FBE80E85C -:1051600090E00FB6F89480936100909361000FBEB9 -:1051700085B7806885BF85B7806885BF86E198E080 -:105180009093C5018093C4010E9406040E94D1043B -:105190008091E20084608093E200789480912E03F5 -:1051A0008823A1F01091E9001F709091EC00892FE5 -:1051B000817090FD80E8182B1092E9008091E80042 -:1051C00083FD0E943D161F701093E90082E084BDAC -:1051D00093E095BD9AEF97BD80936E000E949B0F60 -:1051E000811102C00E94890E05E711E02BE7C22E53 -:1051F00021E0D22EF80181918F018F3F11F00E94A2 -:105200001808C016D106B1F786EF0E94180887EF7C -:105210000E94180883E90E94180886E90E9418086D -:10522000E4E5F2E08AE592E0A7E6B2E011921D9291 -:105230008E179F07D9F70E941D16811102C00E9488 -:10524000B11582E090E00E94712F809360020E946D -:10525000B40F90930503809304030E94EA238FE325 -:105260009CE90197F1F700C000000E94EA238091B9 -:10527000670280FF08C06FEF7FEF90E080E00E9440 -:10528000A32F0E944F0C83E090E00E94712F90E0CA -:105290000E941E0B80913803909139030E9489145B -:1052A000509A589A559A5D9A549A5C9A8CE090E07C -:1052B0000E94712F90E0B0E0A0E0809350029093A4 -:1052C0005102A0935202B093530280915A0281116D -:1052D00033C00E941D16811104C00E94B1150E94A6 -:1052E000A11588E090E00E94792F60938E0370935F -:1052F0008F0380939003909391036E7F71F40E94CB -:10530000A11588E090E00E94792F60938E0370933E -:105310008F0380939003909391030E942B06109229 -:10532000840280918E0380FF04C060E086950E9415 -:105330002A1481E080935A025198599A52985A9AA5 -:1053400089B1869581704A9928C290E0892B809313 -:105350005E028AEC92E090937C0280937B0260E094 -:1053600081E20E942A1481E090E00E942D1580E0E5 -:1053700091E09093FC028093FB0218E1C12ED12CA6 -:1053800000E4A02E87E692E096E0B92EB80E809158 -:105390002E039924939400E112E1853009F451C25F -:1053A0000E94EA23882359F08FB7F89440910003B4 -:1053B0005091010360910203709103038FBFE1E6F6 -:1053C000F2E0A7E6B2E010E000E0302F8D9191917D -:1053D000981709F45FC2292F282790E09924939405 -:1053E000422F492109F451C29DAB3EAB892191E086 -:1053F00009F490E09FAB0E94A2058160782F99AFDD -:1054000088AF4DA95EA96FA989AD0E941225F80148 -:10541000EF59FD4F808198269082809184028823E5 -:10542000D1F180918302E0918E03E695E81BE09331 -:105430007F02823009F045C2F0E0EC51FD4FE4916B -:105440000E2F10E0BBE08B2EB3E19B2E80918002EB -:10545000882361F0109280020E94A20590937E0240 -:1054600080937D0210928202109281020E94A20516 -:10547000E0917D02F0917E028E1B9F0B8F3F9F4734 -:1054800050F4E00FF11FF0937E02E0937D028DE770 -:1054900092E0F4010995E0915E02EE0FEE0FE093C9 -:1054A0005E0289B181FBEE24E0F84A9964C280E093 -:1054B0008E29E82BE0935E02EF70F0E0E158FE4F9A -:1054C000808190915D02890F80935D0220E084309D -:1054D00034F180915C028F5F80935C0212E018AB24 -:1054E00019AA81E08AAB0E94A2058160782F9CAB4B -:1054F0008BAB48A959A96AA98CA90E9412251BA7A0 -:105500001CA61DA60E94A2058160782F9FA78EA7CA -:105510004BA55CA56DA58FA50E94122521E0809169 -:105520005D028D3F2CF580915C02815080935C027E -:105530001EA21FA281E088A70E94A2058160782F89 -:105540009AA789A74EA15FA168A58AA50E941225E6 -:1055500019A21AA21BA20E94A2058160782F9DA306 -:105560008CA349A15AA16BA18DA10E94122521E013 -:1055700080915D02082E000C990B64E070E00E949F -:10558000CE2E80935D02222359F08FB7F89440917C -:1055900000035091010360910203709103038FBFD8 -:1055A00086E0E4E7F2E0DE01119601900D928A9523 -:1055B000E1F7909076028090770210917802009146 -:1055C000790210927602109277021092780210926D -:1055D0007902892D882909F448C08091720290913E -:1055E00073020E9493059C0190916E02992309F425 -:1055F000AEC323333105C8F19F3F19F09F5F9093ED -:105600006E02992059F00E949C079FEF19140CF428 -:1056100091E0899F802D112480937602882059F093 -:105620000E949C079FEF18140CF491E0899F802D35 -:10563000112480937702309176023323B1F02091C8 -:105640007702222391F045EB3403C0011124992302 -:1056500009F494C19093760245EB24039001112440 -:10566000332309F48FC130937702812F802B09F403 -:1056700048C080917002909171020E9493059C0134 -:1056800090916D02992309F45DC325363105C8F167 -:105690009F3F19F09F5F90936D02112359F00E9474 -:1056A0007A079FEF11160CF491E0899F802D112449 -:1056B00080937802002359F00E947A079FEF10161A -:1056C0000CF491E0899F802D112480937902309110 -:1056D00078023323B1F020917902222391F045EB37 -:1056E0003403C0011124992309F450C19093780226 -:1056F00045EB240390011124332309F44BC130936B -:1057000079028091760290917702892B90917802AC -:10571000892B90917902892B11F00E94DA0686E09C -:10572000FE013196A4E7B2E001900D928A95E1F76F -:105730000E94DA0590915F02891731F00E94DA0524 -:1057400080935F020E94AB0B80912E03843009F09E -:105750001ECE83E08093E9008091E80082FF17CE9F -:105760008091E80090E085FF06C00E942504882310 -:1057700009F414C191E08091E8008B778093E800F0 -:10578000992309F404CEE981E150E33108F088C19E -:10579000F0E0E152F04D0C94042F92E0D7CD8091CF -:1057A0002E03843009F440C080E00E94AB0B1092BD -:1057B000840280917A02811116C090927A028091BF -:1057C0008E03982F917090935B028E7F80938E034F -:1057D0009FEFE0E7F2E09150E040F040E1F700C0D9 -:1057E00000000E94D80F1092FF020FB6F894A895FF -:1057F000C09260000FBEA092600083B7817F84607A -:1058000083BF83B7816083BF7894889583B78E7F89 -:1058100083BF0FB6F894A89580916000886180934B -:105820006000109260000FBE80912D03882349F024 -:105830000E94EA23E7E6F2E08191811164C2BE1280 -:10584000FBCF80912E03853009F4A9CF0E94281642 -:105850000E94DA050E94AB0B10927A0280915B02E3 -:10586000882361F080918E03816080938E0360E0D5 -:1058700086950E942A140E94C20F92CD80918502C3 -:105880008823C9F30E94D80FF6CF9F5F990C9430FC -:1058900009F0A6CD0F5F1F4F0630110509F095CD19 -:1058A0008FEF8AAF8BAF1CAE0E94A2058160782F6C -:1058B0009EAF8DAF4AAD5BAD6CAD8EAD0E94122533 -:1058C000ACCD863059F4F0E0EF51FD4FE4910E2F4E -:1058D00010E0ABEF8A2EA2E19A2EB8CD893061F4A8 -:1058E000E695F0E0E252FD4FE4910E2F10E0F7E66E -:1058F0008F2EF2E19F2EAACD8F3061F4E695F0E075 -:10590000E552FD4FE4910E2F10E0E9EF8E2EE1E11C -:105910009E2E9CCD853159F4F0E0E852FD4FE49184 -:105920000E2F10E07BEA872E71E1972E8FCD08E2D3 -:1059300010E042E2842E41E1942E883109F486CDB4 -:10594000833249F4E6EDF2E00591149162EA862E85 -:1059500062E1962E7BCD04EF11E059EE852E50E1E9 -:10596000952E843209F472CD00ED17E03AE2832ED1 -:1059700036E0932E6BCD82E090E09ACD81E080936B -:1059800076026ACE81E0809377026FCE81E08093C9 -:105990007802AECE81E080937902B3CE00E210E0CF -:1059A000CE0101964C018091E80085FD0AC08091EE -:1059B000E8008B778093E8000E942504882399F300 -:1059C000D9CE8091F100F40181934F01015011096A -:1059D00051F7D0CE1A8289E08B832DC08A81823024 -:1059E00009F4A7C18330A9F0813009F059C02FB75D -:1059F000F8946091000370910103809102039091EB -:105A000003032FBF0E940A2F6B837C838D839E83A9 -:105A100012C0809167028B83809168028C83809191 -:105A200069028D8380916A028E8380916B028F83DD -:105A300080916C02888780912E03843009F0A7CC76 -:105A40001091E9001F709091EC00892F817090FDFA -:105A500080E8182B82E08093E9008091E80080FFC5 -:105A60000DC050E040E060E270E0CE0101960E947F -:105A700056048091E8008E778093E8001F701093A1 -:105A8000E90085CC8A81823059F46B817C818D81DB -:105A90009E810E940A2F86E290E00E94852FCBCF44 -:105AA0008FEF8983C8CF4C816B818A810E94B20EAF -:105AB0009827892798279E838D83BDCF8D809E80D0 -:105AC0009824892498248A810B81F8E00F9F800113 -:105AD000112420E3829F000D111D11248C8190E080 -:105AE000880F991F080F191F692DC80187960E94FA -:105AF000852F682DC8018896D0CF0E941F0E9BCF9E -:105B00008A818138C1F060F4803809F094CF20E0B8 -:105B10004B816091900380918F030E9431138BCF52 -:105B2000823859F1833809F086CF20E04091910303 -:105B30006C818B81F2CF60E08B810E942A149B8163 -:105B400080918E03911111C08E7F80938E031092ED -:105B500084024FEF80E792E0415080409040E1F7AF -:105B600000C000000E94D80F66CF816080938E0332 -:105B700060E086950E942A145ECF8B818093920309 -:105B80005ACF8A81813899F030F4803809F053CFA8 -:105B90008091910321CF823891F0833809F04BCF67 -:105BA00080918F038B83809190038C8344CF80916D -:105BB0008E0380FF02C086950FCF80E00DCF8091CD -:105BC00092030ACF60918E0370918F0380919003AE -:105BD000909191030E941F132ECF80E18A832BCFD7 -:105BE00081E08A8389EFF8CE0A811B811027012783 -:105BF0001027FE0131963F018C80CF01880D911D49 -:105C00004C01C801895F9D4F8614970409F413CF96 -:105C1000093FE1E01E0750F40E94712FF3018483D5 -:105C20000F5F1F4FFFEF6F1A7F0AEBCFF301148254 -:105C3000F7CF0A811B81102701271027CE0101967B -:105C40003C018C80800E912E911CC801895F9D4F74 -:105C50008016910609F4EFCE093FE1E01E0720F41B -:105C6000F30164810E94852FFFEF6F1A7F0A0F5F97 -:105C70001F4FEBCF0E940F0EDECE8AE0AFCF0A811E -:105C80001B81102701271027CE0101963C018C8033 -:105C9000FC01E80DF11D4F01C80187968614970499 -:105CA00009F4C9CE003EF1E01F0750F40E94712FA5 -:105CB000F30184830F5F1F4FFFEF6F1A7F0AECCF52 -:105CC000F3011482F7CF0A811B81102701271027C7 -:105CD000CE0101963C018C80800E912E911CC80152 -:105CE00087968016910609F4A6CE003EE1E01E07D5 -:105CF00020F4F30164810E94852FFFEF6F1A7F0A61 -:105D00000F5F1F4FECCF09BD19BD09B400FEFDCFD9 -:105D10008091D8008F7D8093D8008091E0008260D0 -:105D20008093E0008091E00081FDFCCF0E94281666 -:105D300088CD86E290E00E94712F1B821C821D821A -:105D40008E8379CE2D32314008F0A4CCDACC2D32BE -:105D5000314008F053CC89CC87FB082E062687FDFE -:105D6000819567FD61950E94422F0EF4919507FC85 -:105D700081950895AA1BBB1B51E107C0AA1FBB1F39 -:105D8000A617B70710F0A61BB70B881F991F5A95C7 -:105D9000A9F780959095BC01CD01089597FB072E3A -:105DA00016F4009407D077FD09D00E94BA2E07FCA4 -:105DB00005D03EF4909581959F4F0895709561951B -:105DC0007F4F0895A1E21A2EAA1BBB1BFD010DC037 -:105DD000AA1FBB1FEE1FFF1FA217B307E407F5079B -:105DE00020F0A21BB30BE40BF50B661F771F881F77 -:105DF000991F1A9469F760957095809590959B010D -:105E0000AC01BD01CF010895EE0FFF1F0590F49185 -:105E1000E02D09946927962769277827872778270F -:105E200008950E94192F332312F48A1B9B0B0C94A4 -:105E30002A2FA29FB001B39FC001A39F700D811DA7 -:105E40001124911DB29F700D811D1124911D089583 -:105E50000E94192FB7FF0895821B930B08950E948B -:105E6000192FA59F900DB49F900DA49F800D911D9B -:105E700011240895B7FF0C942F2F0E942F2F821BFF -:105E8000930B0895991B79E004C0991F961708F0A9 -:105E9000961B881F7A95C9F780950895FB01DC0150 -:105EA00002C005900D9241505040D8F70895FC0172 -:105EB0004150504030F001900616D1F73197CF0194 -:105EC0000895882799270895FB01DC0104C08D916E -:105ED0000190801921F441505040C8F7881B990B5C -:105EE0000895F999FECF92BD81BDF89A992780B5A2 -:105EF0000895A6E1B0E044E050E00C94AB2FA8E197 -:105F0000B0E042E050E00C94AB2F262FF999FECF81 -:105F100092BD81BDF89A019700B4021639F01FBAFC -:105F200020BD0FB6F894FA9AF99A0FBE0895039619 -:105F3000272F0E94862F0E94852F252F0E94862FB3 -:105F4000242F0C94862F0196272F0E94862F0C94C5 -:105F5000852FDC01CB01FC01F999FECF06C0F2BD13 -:105F6000E1BDF89A319600B40D9241505040B8F717 -:105F70000895F894FFCF460F460F4F0F4F0F510F64 -:105F80004F0F4F0F4F0F460F460F560F4F0F4F0F2C -:105F9000560F22174A179D174A179D177D17B517D9 -:105FA0009D17B218BF180C1D0C1D7B1D7B1DD61D27 -:105FB000F01D421D421DFB1D831E921E921EEA2CE7 -:105FC000EE2C422D532D5E2D7D2D802DC12DE22DE9 -:105FD000502D502DED2DF02DF42D192E3A2E3D2E55 -:045FE0003F2E632EBF -:105FE40090050F0CEE0BEA0BE60B01191A1B1C1D96 -:105FF4001E1F202122010201FC002A00000000F6DD -:10600400004C00000000F0005000000000EA0051C5 -:1060140000000000E4004F00000000DE0052000019 -:1060240000000101818283E200E900EA00B500B6C4 -:1060340000B700CD008301CC008A019201940121B4 -:1060440002230224022502260227022A02B300B4F4 -:10605400006F007000F03435366667F6F7939600EB -:10606400FF0100010000FFFF0000010001FF00002C -:1060740001020202020606060909090909090F0FAD -:106084000F0F0F0F151515181919191919191919B1 -:10609400191923244022B6DA01B8010201FB0614BF -:0460A40007340700B6 -:00000001FF From f1af31c88e5454d636b358583361176ab5b5feb4 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 01:03:14 -0400 Subject: [PATCH 27/94] Remove file with issues. --- .../ps17/solartempest_ps17_via.hex | 1549 ----------------- 1 file changed, 1549 deletions(-) delete mode 100644 keyboards/solartempest/ps17/solartempest_ps17_via.hex diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex deleted file mode 100644 index b9d0957dd893..000000000000 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ /dev/null @@ -1,1549 +0,0 @@ -:100000000C94BD030C9404040C9404040C94040498 -:100010000C9404040C9404040C9404040C94040440 -:100020000C9404040C9404040C9477270C94332748 -:100030000C9472280C9404040C9404040C9404048E -:100040000C9404040C9404040C9404040C94040410 -:100050000C9404040C944E280C9404040C94040492 -:100060000C9404040C9404040C9404040C940404F0 -:100070000C9404040C9404040C9404040C940404E0 -:100080000C9404040C9404040C9404040C940404D0 -:100090000C9404040C9404040C9404040C940404C0 -:1000A0000C9404040C9404040C94040400000FFF4A -:1000B00078FF000000000000D7FF78FF000000007C -:1000C000000080FF64FF00000000000005FF78FFD3 -:1000D0000000000000005FFF5AFF00000000580011 -:1000E0006000000058005E00000058005D00000045 -:1000F00058005C00000057006000000057005F00DF -:10010000000005010902A10185020901A1000509FC -:1001100019012908150025019508750181020501BD -:10012000093009311581257F950275088106093846 -:100130001581257F950175088106050C0A38021581 -:1001400081257F950175088106C0C005010980A140 -:1001500001850319012AB700150126B7009501751D -:10016000108100C0050C0901A101850419012AA014 -:1001700002150126A002950175108100C005010934 -:1001800006A1018505050719E029E7150025019558 -:1001900008750181020507190029EF150025019551 -:1001A000F075018102050819012905950575019170 -:1001B00002950175039101C00660FF0961A1010963 -:1001C00062150026FF00952075088102096315005D -:1001D00026FF00952075089102C005010906A101BE -:1001E000050719E029E71500250195087501810229 -:1001F0009501750881010507190029FF150026FFE3 -:1002000000950675088100050819012905950575F1 -:10021000019102950175039101C0000000000000EA -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000007E0F31 -:1002400000D4FFFFFFC7000000780000000000009E -:1002500000002A2B28000000000000000000000021 -:10026000000000000029000000002C1E3420212284 -:1002700024342627252E362D3738271E1F202122ED -:10028000232425263333362E37381F040506070866 -:10029000090A0B0C0D0E0F10111213141516171856 -:1002A000191A1B1C1D2F3130232D35040506070894 -:1002B000090A0B0C0D0E0F10111213141516171836 -:1002C000191A1B1C1D2F3130354CD400CA00C00038 -:1002D000B600AC00000000047F3F1F64321464329B -:1002E00014783C1E1E140A050001010101010101E0 -:1002F00001010202020202020202020303030303DB -:1003000003030304040404040404050505050506A9 -:100310000606060607070707070808080809090967 -:10032000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E10 -:100330000F0F0F10101111111212131314141515A1 -:1003400016161717181819191A1A1B1B1C1D1D1E13 -:100350001E1F202021222223242425262627282967 -:10036000292A2B2C2D2D2E2F303132323334353695 -:100370003738393A3B3C3D3E3F4041424344454695 -:100380004748494A4C4D4E4F505153545556585971 -:100390005A5B5D5E5F616264656668696B6C6D6F18 -:1003A0007072737577787A7B7D7E8082838587888B -:1003B0008A8C8E8F91939596989A9C9EA0A2A3A5C5 -:1003C000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6C6 -:1003D000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EB82 -:1003E000EEF0F3F5F8FAFDFFFFAA7F554008070687 -:1003F000050D0C0B0A11100F161514131A181B12E9 -:100400000903010002040E17192223252628292A90 -:100410002C2D2F3032333536383A3B3D3E40424367 -:100420004547494A4C4E5051535557595A5C5E60A6 -:1004300062646668696B6D6F71737577797B7D7FB8 -:1004400081838587898A8C8E90929496989A9C9EB7 -:100450009FA1A3A5A7A8AAACAEAFB1B3B4B6B8B9D3 -:10046000BBBCBEBFC1C2C3C5C6C7C9CACBCCCDCE3B -:10047000D0D1D2D2D3D4D5D6D7D7D8D9D9DADADB1E -:10048000DBDBDCDCDCDCDCDDDDDDDDDCDCDCDCDCAA -:10049000DBDBDBDADAD9D9D8D7D7D6D5D4D3D2D2E9 -:1004A000D1D0CECDCCCBCAC9C7C6C5C3C2C1BFBED1 -:1004B000BCBBB9B8B6B4B3B1AFAEACAAA8A7A5A33C -:1004C000A19F9E9C9A98969492908E8C8A898785FB -:1004D00083817F7D7B79777573716F6D6B696866DA -:1004E0006462605E5C5A5957555351504E4C4A49AC -:1004F00047454342403E3D3B3A3836353332302F54 -:100500002D2C2A2928262523224E007F004B00006F -:100510000001515400550056005F00600061005713 -:10052000005C005D005E00000059005A005B00584E -:100530000062000000630000004F00010050000056 -:10054000000100AD002C0053001450025303532A45 -:100550000001000100010000000100010001000095 -:100560005C005C000001000000300001002F000072 -:100570000010500500170011030D00160007002D94 -:1005800001060119011000000011011D03E10057CF -:10059000012C000000E2000000805F0100815F008C -:1005A000001050B9004A0017012B0352002B011A0A -:1005B00001500051004F000000B6002C00B7002889 -:1005C000004E0000004B000000805F0100815F00D2 -:1005D0000010500100010001000100520001000163 -:1005E00000500051004F00000010033D080100536F -:1005F0000068000000690000000100010001000027 -:1006000000010001000100010001000100010001E2 -:1006100000010001000100000001000100010001D3 -:1006200000010000000100000001000100010000C5 -:1006300000010001000100010001000100010001B2 -:1006400000010001000100000001000100010001A3 -:100650000001000000010000000100010001000095 -:100660000001000100010001000100010001000182 -:100670000001000100010000000100010001000173 -:100680000001000000010000000100010001000065 -:100690000001000100010001000100010001000152 -:1006A0000001000100010000000100010001000143 -:1006B0000001000000010000000100010001000035 -:1006C0000001000100010001000100010001000122 -:1006D0000001000100010000000100010001000113 -:1006E00000010000000100000009025B000301009E -:1006F000A0FA090400000103010100092111010011 -:10070000012240000705810308000A0904010002D4 -:1007100003000000092111010001222200070582C7 -:100720000320000107050303200001090402000162 -:100730000300000009211101000122B60007058411 -:100740000320000A12010002000000084B411500BE -:100750000200010200010A0350005300310037007B -:1007600000001203410054004C0041004E005400B0 -:100770004900530000000403090411241FBECFEFF9 -:10078000DAE0DEBFCDBF04B603FE27C0809196033A -:1007900090919703A0919803B09199038730904B63 -:1007A000A740B04BD1F41092960310929703109289 -:1007B00098031092990314BE84B7877F84BF0FB645 -:1007C000F894A895809160008861809360001092F1 -:1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 -:1007E000E4EEFFE502C005900D92A43CB107D9F7F5 -:1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 -:100800000E9499280C94B92F0C940000E8EDF0E0B8 -:1008100080818E7F80831092E2001092DA00109225 -:10082000E100A0EEB0E08C9181608C9380818F77A5 -:10083000808319BCA7EDB0E08C918E7F8C93808172 -:100840008F7E80831092090308952091E4003091F7 -:10085000E50095E6A9012091EC00822F817020FF30 -:1008600006C08091E80080FF06C080E008952091D6 -:10087000E80022FD1AC080912E03882389F085307C -:1008800089F08091EB0085FD0FC02091E40030914C -:10089000E50042175307F9F29150E1F684E008951C -:1008A00082E0089583E0089581E00895EF92FF9239 -:1008B0000F931F93CF937C018B010E942504C82FB7 -:1008C000811117C08091E80085FD0BC08091E80080 -:1008D0008E778093E8000E942504882399F3C82F1F -:1008E00008C0F70181917F018093F1000150110947 -:1008F00049F78C2FCF911F910F91FF90EF900895A2 -:100900008091300387FF13C08091E80082FF06C00A -:100910008091E8008B778093E80004C080912E03DB -:100920008111F2CF089580912E038823D9F380910D -:10093000E80080FFF8CF8091E8008E77ECCF982F09 -:100940009093E900242F762F50E0891731F07091B1 -:10095000EC002091ED005091F00021FD07C09F5F59 -:10096000973071F78093E90081E008953091EB00B2 -:100970003E7F3093EB003091ED003D7F3093ED00F2 -:100980003091EB0031603093EB007093EC002093DA -:10099000ED005093F0002091EE0027FDE0CF80E0C5 -:1009A0000895CF92DF92EF92FF920F931F93CF9310 -:1009B000DF93C8EDD0E088818F7E8883E7EDF0E09B -:1009C00080818160808384E082BF81E0809309031D -:1009D00088818E7F888302EE10E0F80110821092E9 -:1009E000DA0081EEC82ED12CF601108288818F7733 -:1009F000888388818068888388818F7D888319BCFB -:100A000010922E0310922F0310922D0310922C039C -:100A100090EEE92EF12CF70180818B7F8083888115 -:100A20008160888342E060E080E00E949F04F601DC -:100A300080818E7F8083F8018081816080838081C6 -:100A400088608083F70180818E7F808388818061C8 -:100A50008883DF91CF911F910F91FF90EF90DF90EE -:100A6000CF900895FC01809136039091370386174B -:100A70009707A0F06115710529F49091E8009E7721 -:100A80009093E80090E06115710551F4911108C050 -:100A90008091E80082FF34C080E00895BC01F2CF6D -:100AA00080912E038823C1F18530C1F18091E80047 -:100AB00083FD30C08091E80082FDEACF8091E8009C -:100AC00080FFE1CF8091F3002091F200382F611573 -:100AD000710519F02830310558F091E028303105C2 -:100AE00009F090E02091E8002E772093E800CBCF2A -:100AF00081918093F100615071092F5F3F4FE7CFE3 -:100B000080912E03882341F0853041F08091E800E8 -:100B100083FFBECF81E0089582E0089583E00895C9 -:100B200080910B0308959C014FB7F89480910003C6 -:100B300090910103A0910203B09103034FBF821B68 -:100B4000930B08952FB7F8948091000390910103BF -:100B5000A0910203B09103032FBF08952091FD02DD -:100B60003091FE022817390771F09093FE028093AE -:100B7000FD02E091FB02F091FC02309721F000842D -:100B8000F185E02D099408952091F9023091FA023F -:100B90002817390771F09093FA028093F902E091D7 -:100BA000FB02F091FC02309721F00680F781E02DE6 -:100BB00009940895E091FB02F091FC02309721F036 -:100BC0000190F081E02D099480E00895DC016091AE -:100BD000F5028091F602962F891301C00895292FFE -:100BE00030E0F901EE0FFF1FE351FD4F40815181CD -:100BF0004A175B07A1F487E08A9FA0018B9F500DE5 -:100C00001124485E5E4F81E0FA0184839613E6CF9B -:100C10002F5F3F4F237033272093F50208952F5FF6 -:100C20003F4F922F9370D8CF10928A021092890270 -:100C3000E8E1F1E08581811102C0148216823796C5 -:100C400081E0E234F807B1F70895FA01811101C09B -:100C5000FB010994089580918E03982F9E7F61F483 -:100C60008170826080938E0380919103853B18F0A0 -:100C700084EB8093910308958A34B0F38170886483 -:100C8000F1CFAF92BF92DF92EF92FF920F931F933B -:100C9000CF93DF93182F062FE901453B08F044EB73 -:100CA000E42FF0E0E851FD4F011110C0E4915E2FF8 -:100CB0004E2F4983E8835A83DF91CF911F910F9183 -:100CC000FF90EF90DF90BF90AF900895202F30E01D -:100CD0004491D42EE42EF12C56E0159FC00111242E -:100CE000EFEFF0E0BF010E94BA2E812F90E0880F55 -:100CF000991F55E5569FD001579FB00D11248A1BAF -:100D00009B0B982F990F890F5F01A21AB30AAE9C13 -:100D1000D001AF9CB00DBE9CB00D11245B2F089F7D -:100D200080011124012F11275F01A01AB10AAE9C86 -:100D30008001AF9C100DBE9C100D11245F01A81AFC -:100D4000B108A29EC001A39E900DB29E900D1124E9 -:100D5000892F9927E81BF90BEE9DC001EF9D900D9F -:100D6000FE9D900D1124E92F62307105A1F050F421 -:100D70006115710509F49DCF6130710581F0EB2F8C -:100D8000512F97CF6430710569F080F0663071059E -:100D900009F48FCFF4CFE42F4B2F592F8ACFE42FB4 -:100DA000412F87CFEB2F542F492F83CF4B2F5D2D12 -:100DB000E12F7FCF0E94A2059C0190917602809145 -:100DC0007702982B21F03093730220937202909156 -:100DD000780280917902982B21F030937102209350 -:100DE0007002E091FB02F091FC02309749F082E042 -:100DF000809374020480F581E02D84E792E00994E9 -:100E0000089540917602803F59F48091770287FFE0 -:100E10000DC01092770241110BC010926E0208C0F3 -:100E2000813F81F48091770218169CF3442381F06E -:100E30008091780290917902892B09F05AC0109222 -:100E40006D020895823F49F447FFF0CF1092760279 -:100E5000809177028111ECCFE0CF833F19F4141613 -:100E6000ACF3E4CF90917802893F29F41916F4F697 -:100E700010927802DBCF8A3F19F497FFD7CFF8CFD3 -:100E8000909179028B3F29F497FFD0CF109279028D -:100E9000CDCF8C3F19F41916CCF3C8CF9CE0980F36 -:100EA000953090F4845F990B21E030E0B90102C0E5 -:100EB000660F771F8A95E2F7CB01809590917502B6 -:100EC000892380937502B2CF8D3F31F480916F02F8 -:100ED0008E7F80936F02AACF8E3F21F480916F02A4 -:100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D -:100EF000F0CF089580916F0280FD16C081FD16C06D -:100F000082FD16C080916D028823A1F0883280F4A2 -:100F100028E0829FC001112468E270E00E94CE2E7A -:100F2000862F672B39F0089582E0089584E00895B4 -:100F300088E0089581E0089580916F0280FD14C0DB -:100F400081FD14C082FD16C080916E02882381F05D -:100F5000843180F422E3829FC001112464E170E0B7 -:100F60000E94CE2E862F08958CE0089589E1089581 -:100F700085E0089582E30895803F31F40E949C0744 -:100F80008195809377020895813F19F40E949C0710 -:100F9000F8CF823F31F40E949C07819580937602BE -:100FA0000895833F19F40E949C07F8CF893F29F4E4 -:100FB0000E947A078093780208958A3F21F40E9464 -:100FC0007A078195F7CF8B3F31F40E947A0781959C -:100FD0008093790208958C3F19F40E947A07F8CF24 -:100FE0009CE0980F953070F4845F990B21E030E01D -:100FF00001C0220F8A95EAF780917502822B8093B7 -:10100000750208958D3F31F480916F028160809365 -:101010006F0208958E3F21F480916F028260F7CFB6 -:101020008F3FB9F780916F028460F1CF80E008951F -:10103000F894E82FE295EF70F0E031A1282F2F709F -:1010400081E090E001C0880F2A95EAF7982F9095EB -:10105000932391A392A1892B82A3789408959091D0 -:10106000040392FF06C0282F28712830F9F4877FE7 -:10107000846093FF06C0282F28712831F1F4877E01 -:1010800084612091050320FF06C0382F3871383065 -:10109000D9F4877F816021FF06C0282F287128316D -:1010A000D1F4877E816194FD877E0895282F247175 -:1010B0002430F9F68B7F8860DCCF282F247124310F -:1010C00001F78B7E8861DDCF382F3171313019F710 -:1010D0008E7F8860E0CF282F2171213121F78E7E0D -:1010E0008861E1CFCF93DF93EC0182389105A9F1BC -:1010F000D8F58133910509F496C048F589329105F8 -:1011000009F48AC08A9709F495C0C11521E5D20770 -:1011100008F0BCC0C11530E5D30708F014C1C83EC3 -:10112000D10508F09CC0C03ED10560F5C83AD10594 -:1011300008F087C0C53AD10508F0FDC0C130D1051F -:1011400009F12097F9F0C430D105E0F440C08533AF -:10115000910509F45AC0C997C1F6809104038370C0 -:1011600089F0C0EED0E00EC0833E910599F170F495 -:10117000803E910501F1823E910539F6809104038C -:1011800082FD21C0CE01DF91CF910895863E910569 -:1011900061F1873E910571F1843E910509F0B5CF6B -:1011A0008091050381FFEECF80910403C7EED0E06C -:1011B00084FD0DC0E7CF8091040380FD12C19091A2 -:1011C000050390FFDFCFC3EED0E084FFDBCFD0E09C -:1011D000C0E0D8CF8091040382FD06C19091050341 -:1011E00090FDBFCF84FFCECFF2CF8091040383FD6B -:1011F000DDCFC8CF8091040383FDF9C09091050332 -:1012000091FFF0CFC4EED0E0BDCF8091040385FF05 -:10121000B9CFC9E2D0E0B6CF8091040385FFB2CF49 -:10122000C5E3D0E0AFCF8091040386FFABCFCAE225 -:10123000D0E0A8CF8091040386FFA4CFC1E3D0E023 -:10124000A1CFCF3BD10518F6C85AD0E0CC0FDD1F97 -:10125000C95BDE4F0990D881C02DD46493CFC115EE -:1012600040E2D40758F4C11581E0D80708F08ACFCE -:10127000C03FD10508F4ABCFD06584CFC11590E451 -:10128000D90708F4A4CFDF70D06A7CCFC11525E55B -:10129000D20700F5C11534E5D30708F08AC0C1159F -:1012A00043E5D40708F071C0C11582E5D80708F4FA -:1012B00067C0CE018370992721E030E002C0220F81 -:1012C000331F8A95E2F7C695C69580E2C89FE00174 -:1012D000112452C0C11599E5D907A8F4C11528E514 -:1012E000D20708F06BC0C11536E5D30708F06FCF01 -:1012F0008C2F0E942F08C82FD0E0DC2FCC27CC27C2 -:10130000DF71D0623FCFC1154AE5D40708F45BC056 -:10131000CE0190568115904208F059CF8D2F8F71D4 -:101320000E942F0890E0982F882788279F719C01A2 -:101330002C2BE901E6CFC55AD0E0CC5BDE4FC8814B -:10134000D0E0D0641FCFCE01E4E096958795EA9572 -:10135000E1F783702C2F26952695237040E2249F79 -:1013600090011124382B8C2F8370C1E0D0E002C093 -:10137000CC0FDD1F8A95E2F7C22BD32BDC6802CF9E -:10138000DC2FCC27C16FD06AFDCECE0183709927A8 -:1013900021E030E002C0220F331F8A95E2F7C695A4 -:1013A000C69590E2C99FE0011124C22BD32BDA68C5 -:1013B000E9CEDC2FCC27C46FD06AE4CEDC2FCC275B -:1013C000C06FD06ADFCE8C2F8F700E942F0834E060 -:1013D000D695C7953A95E1F7CF709C2FEC01D0696F -:1013E000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EEB9 -:1013F000D0E0C8CE80914402811110924402089539 -:101400008091430290914202892B90914102892B55 -:101410008093C601909144029923A1F0892B809377 -:10142000C60180914301882341F18091040387FF25 -:1014300024C08EE1E8ECF1E090E0815000F59111DC -:101440000E94FA09E091FB02F091FC023097E1F072 -:1014500080914301882359F08091040387FF07C0DE -:101460008091C6018093C70185E08093C601028008 -:10147000F381E02D86EC91E0099486E0DBCF2191A9 -:101480002223D9F29F5FD9CF0895909143019923E8 -:10149000D1F09091040397FF16C0E82FE695E695EA -:1014A000E695EE31E0F4F0E0EA53FE4F282F277086 -:1014B00081E090E001C0880F2A95EAF7809592813B -:1014C000892382830895E8ECF1E09191891303C0A8 -:1014D000DF0111971C9291E0EE3CF907B1F70895F6 -:1014E000909143019923C1F09091040397FF14C098 -:1014F000E82FE695E695E695EE31F8F4F0E0EA534C -:10150000FE4F877021E030E001C0220F8A95EAF794 -:101510008281822B82830895A8ECB1E0EFEF90E006 -:101520002D91821751F0EF3F19F4211101C0E92FDD -:101530009F5F9630A9F7EF3F09F408950E2E000C37 -:10154000FF0BEA53FE4FE6CF80913F029091FE01E0 -:10155000981301C008958F5F8770FACF990F990F84 -:10156000890F982F977086958695869524E0829F9F -:10157000F0011124E651FE4F50E040E080E021915F -:1015800030E0092E02C0369527950A94E2F72170C3 -:101590003327042E01C0220F0A94EAF7822B4F5FF3 -:1015A0005F4F4430510559F70895990F990F890FEE -:1015B000982F977041E001C0440F9A95EAF78695FD -:1015C0008695869594E0899FF0011124E651FE4F9F -:1015D00030E020E070E05191DF011197CB01022E45 -:1015E00002C0969587950A94E2F7817081958527C8 -:1015F000842385278C932F5F3F4F2430310559F783 -:10160000089590E080E00E94C40590E080E00E9490 -:10161000AE0510924202109241020E94000A86E03A -:10162000E4E7F2E0DF011D928A95E9F710926E027D -:1016300010926D0210926F020C94DA06909346029B -:10164000809345020C94010B882341F08095909182 -:1016500042028923809342020C94000A0895882351 -:1016600039F090914202982B909342020C94000A18 -:101670000895882341F080959091430289238093B7 -:1016800043020C94000A0895882339F09091430294 -:10169000982B909343020C94000A0895882309F430 -:1016A00059C0823871F40E94DA0581FF53C089E382 -:1016B0000E94700A0E94000A89E30E94450A0C9465 -:1016C000000A833859F40E94DA0580FF43C083E59D -:1016D0000E94700A0E94000A83E5EFCF843859F413 -:1016E0000E94DA0582FF36C087E40E94700A0E94D9 -:1016F000000A87E4E2CF9CEF980F913AF0F290E273 -:10170000980F983088F4877021E030E0A90102C07A -:10171000440F551F8A95E2F7CA01809590914302C4 -:10172000892380934302CBCF9BE5980F933020F41D -:1017300090E080E00C94C40598E5980F973120F470 -:1017400090E080E00C94AE05803F20F00E940107FD -:101750000C94DA060895809580FF08C0589A81FF9E -:1017600007C05D9A82FF06C05C9A08955898F7CF2B -:101770005D98F8CF5C98089590912E03943029F5E8 -:101780008093060370930803609307039093E90026 -:101790008FEF9091E800815095FD06C095ED9A95E8 -:1017A000F1F700008111F5CF8091E80085FF0DC0B1 -:1017B00050E040E063E070E086E093E00E94560471 -:1017C0008091E8008E778093E8000895BC0184E062 -:1017D0000C94BC0BBC0183E00C94BC0B9C0184E01A -:1017E0008093E9009FEF8091E800915085FD06C04D -:1017F00085ED8A95F1F700009111F5CF8091E80011 -:1018000085FF0CC050E040E066E070E0C9010E9436 -:1018100056048091E8008E778093E8000895CF9376 -:10182000DF93EC01809143018823B1F1809104039F -:1018300087FF32C060E284E08093E9008FEF9091EF -:10184000E800815095FD06C095ED9A95F1F70000EE -:101850008111F5CF8091E80085FF1BC08091430185 -:1018600070E050E040E0811104C050E040E068E0EA -:1018700070E0CE010E9456048091E8008E7780933C -:10188000E80080E2FE01ACE0B3E001900D928A95A1 -:10189000E1F7DF91CF91089568E081E0CDCF81E05D -:1018A0008093E00080E28093D8001092C9008FE11D -:1018B0009EE40197F1F700C0000087E090EBDC01A7 -:1018C0008093960390939703A0939803B093990302 -:1018D00088E19CE00FB6F894A895809360000FBE55 -:1018E00090936000FFCFCF93C82F882309F4AEC038 -:1018F0008238C1F40E94DA0581FDA8C089E30E9404 -:10190000700A0E94000A2FEF81EE94E0215080407F -:101910009040E1F700C0000089E30E94450ACF91A2 -:101920000C94000A8338A1F40E94DA0580FD8EC071 -:1019300083E50E94700A0E94000A2FEF81EE94E076 -:10194000215080409040E1F700C0000083E5E5CFE2 -:101950008438A1F40E94DA0582FD78C087E40E94F1 -:10196000700A0E94000A2FEF81EE94E0215080401F -:101970009040E1F700C0000087E4CFCF8CEF8C0FE0 -:10198000813A88F580914301882301F18091040315 -:1019900087FF1CC0EC2FE695E695E695F0E0EA534C -:1019A000FE4F828190E04C2F477021E030E002C072 -:1019B000220F331F4A95E2F782239323892B79F074 -:1019C0008C2F0E94450A0E94000A09C0E8ECF1E051 -:1019D0008191C817A9F321E0EE3CF207C9F78C2FDB -:1019E0000E94700A9CCF80E28C0F883068F4C77028 -:1019F00021E030E001C0220FCA95EAF7809143024E -:101A0000822B809343028BCFEBE5EC0FE33040F465 -:101A1000F0E0EC5BFE4F808190E0CF910C94C40528 -:101A2000E8E5EC0FE73150F4F0E0EE0FFF1FE95B63 -:101A3000FE4F80819181CF910C94AE05C03F30F074 -:101A40008C2F0E94BC07CF910C94DA06CF91089599 -:101A50001F93CF93DF93182FD0E0C0E0893311F4A8 -:101A6000C0E5D0E0812F0E94730C209731F4812FC4 -:101A7000DF91CF911F910C944E0B8FE99FE001975E -:101A8000F1F700C000002197F0CF0F931F93CF9381 -:101A9000DF93C62FD42F022FFC0182818823A1F06F -:101AA000609395030E94A2059093940380939303FF -:101AB000C77081E001C0880FCA95EAF7DF91CF9126 -:101AC0001F910F910C94440B80919503681335C0BE -:101AD00080919303909194030E949305883C910513 -:101AE00060F510E21D0FCD17B9F080E28C0F883041 -:101AF00040F4C77081E001C0880FCA95EAF70E94E0 -:101B0000390B183048F481E09D2F977001C0880F81 -:101B10009A95EAF70E94440B802F0E94280D1830F6 -:101B200098F4D77081E001C0880FDA95EAF7DF9169 -:101B3000CF911F910F910C94390BC77081E001C0B8 -:101B4000880FCA95EAF7F3CFDF91CF911F910F91DC -:101B50000895DF92EF92FF920F931F93CF93DF933D -:101B6000E82FF0E0E65BFD4FD490282F26952695D0 -:101B7000269530E0F901E65CFD4F0491877010E096 -:101B8000082E02C0159507950A94E2F701701127F7 -:101B9000F901E65DFD4FE490F12C082E02C0F594AA -:101BA000E7940A94E2F791E0E922FF24F901E65E66 -:101BB000FD4FC491D0E002C0D595C7958A95E2F754 -:101BC000C170DD270115110519F081EE0E94730C1B -:101BD000E114F10419F086EE0E94730C8D2D0E9421 -:101BE000280DEF2819F086EE0E944E0B012B19F0FC -:101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 -:101C00001F910F91FF90EF90DF900C94280DDF91C2 -:101C1000CF911F910F91FF90EF90DF900895CF9398 -:101C2000DF93C7E0D2E060E0CE010E94852F2196CD -:101C3000C11584E0D807B9F7DF91CF9108956F926D -:101C40007F928F929F92AF92BF92CF92DF92EF924C -:101C5000FF920F931F93CF93DF9389E0C82E85E007 -:101C6000D82E0FE510E0E801E09736011CC0F50121 -:101C700085909490692DC7010E94852F682DC7011A -:101C800001960E94852F82E0A80EB11C82E0E80E2A -:101C9000F11CCE15DF0559F788E0680E711C2896F7 -:101CA0000C171D0731F07E0188E0E81AF108530196 -:101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 -:101CC000180789F6DF91CF911F910F91FF90EF9048 -:101CD000DF90CF90BF90AF909F908F907F906F904C -:101CE0000895CF93C82F6FEF811161E283E290E0F6 -:101CF0000E94852F6FEFC11169E084E290E00E949D -:101D0000852F6FEFC11163E185E290E0CF910C94D4 -:101D1000852F80E00E94710E60E086E290E00E94D4 -:101D2000852F0E941F0E0E940F0E81E00C94710EF1 -:101D3000CF93C0910503C2FB992790F9981781F0C2 -:101D400080FBC2F9C09305036091040384E090E036 -:101D50000E94852F6C2F82E290E0CF910C94852F0A -:101D6000CF9108950F931F93CF93DF9328E0629F45 -:101D7000E001112450E0440F551FC40FD51F30E37C -:101D8000839FC00DD11D1124CE0187960E94712F13 -:101D9000082F10E0102F0027CE0188960E94712F87 -:101DA0009801282BC901DF91CF911F910F910895C0 -:101DB000462F8A3038F4763028F4643018F4672FD0 -:101DC0000C94B20E90E080E00895BF92CF92DF9223 -:101DD000EF92FF920F931F93CF93DF937C010091BB -:101DE0003803109139038091450290914602082BE7 -:101DF000192BCFE0D0E0CC24C394D12CBC2EC6014B -:101E00000C2E02C0880F991F0A94E2F780239123B9 -:101E1000892B71F4219790F7B12C8B2DDF91CF9105 -:101E20001F910F91FF90EF90DF90CF90BF9008959A -:101E3000B7018C2F0E94D80E0E947208019751F3AF -:101E4000ECCFCF93DF93EC010E94E50EBE010E9420 -:101E5000D80EDF91CF910C947208FC018681978196 -:101E6000009779F00E947208292F2F7092959F7029 -:101E700092509E30A0F4E92FF0E0E554F04D0C9420 -:101E8000042F808191810E94210FEECF803F19F0B5 -:101E900020F4883E20F481E00895843FE1F380E05F -:101EA0000895883EC0F3813FD1F7F5CF822F869504 -:101EB0008695869508951F93CF93DF9300D000D029 -:101EC0000F92CDB7DEB7FC01268137812115310590 -:101ED00041F525E0DE01119601900D922A95E1F77A -:101EE000FC01228189819A812223B9F06623A9F01D -:101EF0000E94E50E182F682F89819A810E94D50AC9 -:101F000069817A81812F0F900F900F900F900F9021 -:101F1000DF91CF911F910C94D80E0E94AE0A182F1A -:101F2000EFCFC9010F900F900F900F900F90DF919E -:101F3000CF911F91089583E290E00E94712F81322A -:101F400089F484E290E00E94712F893059F485E28F -:101F500090E00E94712F91E0833109F090E0892F89 -:101F60008170089580E0FCCFCF9384E090E00E94E0 -:101F7000712FC82F82E290E00E94712F982F8C2F32 -:101F8000CF91089560918E03669570E04BE050E02C -:101F90008AE091E00E94572F892B19F481E0809309 -:101FA00084020E94A20590937E0280937D02089590 -:101FB0005F926F927F928F929F92AF92BF92CF92D9 -:101FC000DF92EF92FF920F931F93CF93DF93CDB7E2 -:101FD000DEB7C455D1090FB6F894DEBF0FBECDBF32 -:101FE00080918E0380FD0AC0EAE3F3E01182108243 -:101FF0001282339623E0EE38F207C1F780907B021D -:1020000090907C028114910409F459C080917A0265 -:10201000811155C0D12CC12C66246394712C13E01E -:10202000512E8091850293010C2C01C0220F0A943D -:10203000EAF7822309F43BC0F601EE0FFF1FE80D1B -:10204000F91DE590F490E114F104C9F145E050E088 -:10205000B701CE0101960E944E2F09810F3F39F141 -:102060008A81800F9927991F8D31910514F08CE199 -:1020700090E05C01AA0CBB1C8A0D9B1DFC01E65C78 -:10208000FC4F5F01059D80011124065C1C4F0A1561 -:102090001B0520F0F5E0EF0EF11CD8CF98014D8123 -:1020A0006C818B810E9441060D5F1F4FF0CF2FEF97 -:1020B000C21AD20A38E0C316D10409F0B2CF7DEEBD -:1020C000A72E73E0B72EDE011196AE014B5A5F4F7B -:1020D0001A2F7B2FF5018491282F30E0C901880F3A -:1020E000991F820F931F865C9C4FFC01C080D1809A -:1020F000E280CD92DD92ED92FFEFAF1ABF0AA417F6 -:10210000B50741F7279A35B13F7725B120686FB7FA -:10211000F894812F972FFC017191CF01E8E025B948 -:10212000000000C077FF35B9770F000000C000C085 -:1021300000C035B900C0EA9591F78417950759F7A3 -:102140006FBF8FE594E00197F1F700C00000CC5A13 -:10215000DF4F0FB6F894DEBF0FBECDBFDF91CF913A -:102160001F910F91FF90EF90DF90CF90BF90AF90B5 -:102170009F908F907F906F905F9008951F93CF9363 -:10218000DF9300D00F92CDB7DEB7162F90918E035C -:1021900090FF18C09E012F5F3F4F48E76FEF0E94EE -:1021A00041068B819981612F70E0FB01EE0FFF1FCB -:1021B000E60FF71FE65CFC4F2A8121839083828320 -:1021C0000E94D80F0F900F900F90DF91CF911F9129 -:1021D0000895EF92FF920F931F93CF93DF938C019B -:1021E000CAE3D3E0F12CE12CF801948160919003D3 -:1021F00080918F03FEE0EF16F104FCF49923F9F0CF -:102200009E01409191030E9441062FEFE21AF20ACB -:1022100023968CE1E816F10439F70E94D80FF801F3 -:10222000848190E00196817099278483DF91CF911A -:102230001F910F91FF90EF900895992309F39E014C -:1022400040E0E1CF8F929F92AF92BF92CF92DF9208 -:10225000EF92FF920F931F93CF93DF93EC014C818A -:10226000042F10E09801D8010E94192F9B01AC01A6 -:102270000E942F2F4B015C01E0E2F0E0E01BF10B2C -:10228000A5E5B0E0AC019B010E942F2F6B017C0102 -:102290009F01DF010E94112F9B01AC010E943A2F88 -:1022A0009B01AC01280D391D4A1D5B1DC701B601FC -:1022B0000E94E22EF22E822F90E039E23F15D8F1F3 -:1022C00043E0249F9001112435952795122F1095F6 -:1022D0009AE3C92E93E0D92E00E085E5E82EEF18A9 -:1022E0008E2D01FD8F2D9601412F609190030E944C -:1022F00041060F5F53E0C50ED11C0C3189F70E94D7 -:10230000D80F9C8181E0992319F0903219F48FEF56 -:102310008093170180911701890F8C83DF91CF91F2 -:102320001F910F91FF90EF90DF90CF90BF90AF90F3 -:102330009F908F90089525E530E0A901481B590B27 -:10234000CA019A01220F331F280F391F37FFBCCF54 -:102350002F5F3F4FB9CF0F931F93CF93DF93CAE304 -:10236000D3E0FE01118210821282339683E0EE38B0 -:10237000F807C1F710E000E080918702082E000CFA -:10238000990B081719078CF180911601082E000C83 -:10239000990B801791074CF19E0140919103609138 -:1023A000900380918F030E9441060F5F1F4F239679 -:1023B0000C31110509F70E94D80F809115019091F9 -:1023C0008702980F9093870220911601280F20937F -:1023D0001601121614F49B311CF08195809315019F -:1023E000DF91CF911F910F910895198218821A825F -:1023F000DCCFBF92CF92DF92EF92FF920F931F93A9 -:10240000CF93DF93FC018281DD24DA9480FD02C04A -:10241000DD24D3940AE313E0D0E0C0E02CE1B22E37 -:10242000F80111821082128294E0E92EF12CC12C65 -:10243000809186028C0D8D310CF43DC06B2D0E9475 -:10244000AC2E892F082E000C990B8C179D0791F448 -:10245000809191038E9DA0018F9D500D1124559563 -:1024600047955595479598016091900380918F030A -:102470000E944106CD0CF1E0EF1AF108C9F6219651 -:102480000D5F1F4FCC31D10559F60E94D80F8091B6 -:10249000860291E0D91215C0811111C08BE18093A1 -:1024A0008602DF91CF911F910F91FF90EF90DF9007 -:1024B000CF90BF90089587FFC5CF845EC3CF815072 -:1024C000EECF90E00196BE010E94CE2EE8CFEF92B3 -:1024D000FF921F93CF93DF93EC018AE3E82E83E012 -:1024E000F82E10E08C819701409191036091900348 -:1024F000810F0E944106175F83E0E80EF11C1C3F2C -:1025000089F70E94D80F9A818C8190FF08C08F5F55 -:102510008C83DF91CF911F91FF90EF9008958150B0 -:10252000F7CF90918E0390FF0CC0EAE3F3E0818334 -:1025300060834283339693E0EE38F907C1F70C9439 -:10254000D80F08950F931F93CF93DF9300D00F926E -:10255000CDB7DEB78C018091880281110AC09E013F -:102560002F5F3F4F44EB6FEF0E9441068A818093BB -:102570008802F8016481613069F08091880240E04E -:10258000662361F040E0623011F44091880280E0FF -:1025900060E004C06091880240E080E00E949112F7 -:1025A000F801848190E0019663E070E00E94CE2EF5 -:1025B00084830F900F900F90DF91CF911F910F9117 -:1025C0000895CF93DF9300D00F92CDB7DEB79091EF -:1025D0008E0390FF0AC09E012F5F3F4F0E9441066D -:1025E0004B8169818A810E9491120F900F900F9008 -:1025F000DF91CF910895CF93DF93EC01EEE8F3E004 -:10260000438162818C810E94E1128C818F5F8C8377 -:10261000DF91CF910895CF93DF93EC01EC81F0E04F -:10262000E75FFB4F4491EEE8F3E0628181810E9415 -:10263000E1128C818F5F8C83DF91CF910895CF92CF -:10264000DF92EF92FF926B017C010E942B06B70193 -:10265000A60188E090E0FF90EF90DF90CF900C947F -:10266000972F5F926F927F928F929F92AF92BF92BD -:10267000CF92DF92EF92FF920F931F93CF93DF934E -:1026800000D00F92CDB7DEB7182F762E042F622E12 -:1026900090918E0390FF29C0E92FE695AE2FB0E010 -:1026A000A157BE4F8C91809383029E7F923081F51B -:1026B0009E012F5F3F4F812F0E9441064B81698110 -:1026C0008A810E94911210938F037092900300935D -:1026D0009103662051F060918E0370918F03809179 -:1026E0009003909191030E941F130F900F900F90F1 -:1026F000DF91CF911F910F91FF90EF90DF90CF90DE -:10270000BF90AF909F908F907F906F905F90089553 -:10271000823019F400919103D6CF863019F41091CC -:102720008F03D1CF8930D9F3893169F6E9518E2FE2 -:102730008170582EE695F0E0E851FC4FA590B490DA -:10274000BB248AE3E82E83E0F82ED12CC12C9CE137 -:10275000892E912CC601B4010E94BA2E812F5110EE -:1027600013C0860F9701402F672D0E944106CA0CA7 -:10277000DB1C83E0E80EF11C8EE8E81683E0F80627 -:1027800049F70E94D80F9FCF861BECCFEEE8F3E00D -:10279000438128E0421B08F440E021E0628181810E -:1027A0000C943113EEE8F3E0438128E0420F08F483 -:1027B0004FEF21E0628181810C943113EEE8F3E068 -:1027C000628128E0621B08F460E021E0438181819E -:1027D0000C943113EEE8F3E0628128E0620F08F414 -:1027E0006FEF21E0438181810C943113EEE8F3E037 -:1027F000818121E04381628188500C943113EEE89D -:10280000F3E0818121E043816281885F0C94311380 -:1028100080919203882319F08150809392036091F4 -:102820008E0370918F0380919003909191030C948B -:102830001F1380919203833018F48F5F809392036B -:1028400060918E0370918F0380919003909191031A -:102850000C941F1390918E0390FF36C091708111DC -:1028600029C0926090938E03662351F060918E038D -:1028700070918F0380919003909191030E941F1398 -:1028800060918E03669570E04BE050E08AE091E045 -:102890000E94572F892BA9F01092840281E0809327 -:1028A000800220E0409191036091900380918F031A -:1028B0000C943113853210F09864D4CF880F982B84 -:1028C000D1CF0E94C20FEACF089521E030E0A901E4 -:1028D00002C0440F551F8A95E2F7CA012091850274 -:1028E000662399F0822B8093850280918402811166 -:1028F00006C080918E0360E086950E942A14809124 -:102900008E0380FD05C00C94D80F80958223EBCFF9 -:1029100008950F931F93CF93DF93EC0161E000972D -:1029200009F0682F617080E00E94651460E02097D4 -:1029300021F0BE0176956795617081E00E94651473 -:1029400060E0209731F0BE017695679576956795A2 -:10295000617082E00E94651460E0209739F0BE014A -:1029600013E0769567951A95E1F7617083E00E9410 -:10297000651460E0209739F0BE01B4E07695679564 -:10298000BA95E1F7617084E00E946514AE0170E0D1 -:1029900060E0BB27A72F962F852F0097A105B105D3 -:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 -:1029B000279517950795FA95D1F70115110521056A -:1029C000310519F08C5FB901A8018A019B01E2E091 -:1029D0003695279517950795EA95D1F701151105B5 -:1029E0002105310519F08E5FB901A801769567952B -:1029F00057954795452B462B472B09F08F5F823023 -:102A000011F160F4882399F08130C1F0CE01DF919B -:102A1000CF911F910F91089580E0C6CF8330C1F010 -:102A20008430A1F720E044E66FEF8FE004C020E09F -:102A300044E66FEF82E30E943113E8CF20E044E6E2 -:102A40006FEF85E0F8CF20E044E66FEF80E8F3CF4A -:102A500020E044E66FEF87EDEECF0E94891490935B -:102A60003903809338030C94010B809138039091C3 -:102A700039039C01267033272630310519F488600C -:102A80000C942D15877FFCCF21E030E002C0220F8F -:102A9000331F8A95E2F72095309580913803909105 -:102AA0003903822393230C942D1590914002809535 -:102AB000892380934002282F277039F4282F082E6D -:102AC000000C330B9217130621F49091050392FF2B -:102AD00007C08595859585950E9444151092400202 -:102AE000089521E030E002C0220F331F8A95E2F7FB -:102AF0008091380390913903822B932B0C942D15E0 -:102B000080918E038695815009F484E261E00C94F3 -:102B10002A1480918E0386958F5F853208F081E0BC -:102B200061E00C942A1490918E0390FF07C0969553 -:102B3000981720F0961710F40C94891561E00C9406 -:102B40002A14EEE8F3E083E0808311828FEF828322 -:102B500088E28383148260817181828193810C94E5 -:102B60001F1369EE7EEF90E080E00E94A32F60E0EB -:102B700082E090E00E94852F60E083E090E00E9478 -:102B8000852F109246021092450260E084E090E0AA -:102B90000E94852F60E082E290E00E94852F60E035 -:102BA00085E090E00E94852F60E086E090E00E9442 -:102BB000852F6FEF87E090E00E94852F40E050E086 -:102BC000BA0188E090E00E94972F60E08DE090E0ED -:102BD0000E94852F40E050E0BA0188E190E00E9419 -:102BE000972F60E087E190E00E94852F40E050E061 -:102BF000BA018CE190E00E94972F70E060E080E2E3 -:102C000090E00E94A32F40E050E0BA0188E190E0FC -:102C10000E94972F80E00E94710E0E94890E40E072 -:102C200050E0BA018FE090E00E94972F40E050E022 -:102C3000BA0183E190E00C94972F90E080E00E942D -:102C40007F2F893E9E4F11F40C949B0F80E00895D6 -:102C50001092430280914301E8ECF1E0882359F09F -:102C60008091040387FF07C08EE1DF011D928A95E2 -:102C7000E9F70C94010B86E0F8CF1F93CF93DF9315 -:102C8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA3 -:102C900080E393E02091F100DC012D93CD01B3E0BE -:102CA00088339B07B9F780913103833009F471C0F1 -:102CB000B8F4813009F448C0823009F4B2C0809180 -:102CC000E80083FF3AC180913003909131039A303C -:102CD00008F033C1E92FF0E0E753F04D0C94042FD6 -:102CE0008A3009F48DC08B3009F470C0893039F70F -:102CF00080913003813219F780913403909135032C -:102D0000009711F00297D9F68091E800877F8093B1 -:102D1000E8008091E80082FF37C09091F300809135 -:102D2000F200029729F48091F1008B7F813021F429 -:102D30008091F10080930B038091E8008B77809362 -:102D4000E8000E948004BBCF80913003813A09F0F3 -:102D5000B6CF8091E800877F8093E80080913403AC -:102D600090913503892B61F460E28CE093E070E090 -:102D70000E9432058091E8008B778093E8009FCF16 -:102D800060E090E080E0F3CF80912E038111C1CF0D -:102D900096CF80913003813A09F091CF809134032E -:102DA00090913503892B09F08ACF8091E800877FC5 -:102DB0008093E8008091E80080FFFCCF8091430180 -:102DC0008093F1008091E8008E77B9CF8091300335 -:102DD000813209F074CF8091340390913503892BAF -:102DE00009F06DCF8091E800877F8093E8000E9412 -:102DF000800480913203809343010E9428165FCFA4 -:102E000080913003813209F05ACF8091E800877FAA -:102E10008093E8000E9480048091330380930A032A -:102E20004ECF80913003813A09F049CF8091E8007C -:102E3000877F8093E8008091E80080FFFCCF80913D -:102E40000A03BECF803899F0823809F076C08091AD -:102E500034038F70873008F070C08093E900809150 -:102E6000EB0085FB882780F91092E90006C080916D -:102E70002C0390912D03911182609091E800977F2F -:102E80009093E8008093F1001092F1008091E800A7 -:102E90008E77B5C1882309F4A2C1823009F04DC0F4 -:102EA000809132038111A6C1809134038F702FEF7E -:102EB000280F263008F041C08093E9002091EB00F4 -:102EC00020FF98C1933031F48091EB0080628093B1 -:102ED000EB0090C19091EB0090619093EB0021E0AA -:102EE00030E001C0220F8A95EAF72093EA001092A1 -:102EF000EA008091EB008860EACF81111EC010913A -:102F000032031F778091E3008078812B8093E30068 -:102F10008091E800877F8093E8000E948004809180 -:102F2000E80080FFFCCF8091E30080688093E3009D -:102F300082E0111183E080932E038091E80083FFEB -:102F40000AC08091E800877F8093E8008091EB00C1 -:102F500080628093EB00AA960FB6F894DEBF0FBE96 -:102F6000CDBFDF91CF911F9108958058823028F70F -:102F700020913203309133032C3DE3E03E07A1F56D -:102F800083E08A838AE289834FB7F894DE0113963F -:102F900020E03EE051E2E32FF0E050935700E4914F -:102FA00020FF03C0E295EF703F5FEF708E2F90E03F -:102FB000EA30C0F0C7968D939D932F5F243159F767 -:102FC0004FBF8091E800877F8093E8006AE270E05D -:102FD000CE0101960E9432058091E8008B778093A4 -:102FE000E800ABCFC096E7CF8091340390913503D2 -:102FF000432F55274330510509F44AC078F5413035 -:10300000510509F47AC08BE590E0E9EEF6E0423034 -:10301000510509F092CF2091E800277F2093E80026 -:1030200020913603309137038217930708F49C01EF -:1030300040E02115310509F065C0411163C0809160 -:10304000E80082FDC9CF80912E03882329F28530C4 -:1030500019F28091E80083FFF2CFBECF41325105D3 -:1030600009F43CC04232510509F067CF8330910525 -:1030700008F063CFFC01EE0FFF1FE954FE4F0190F3 -:10308000F081E02D8C549E4FDC018C9190E01AC0B1 -:10309000332721303105D1F02115310561F022307F -:1030A000310509F04ACFE6E5F7E0E4918E2F90E094 -:1030B000E6E5F7E007C0E6E7F7E0E4918E2F90E061 -:1030C000E6E7F7E0009709F438CFA5CFE2E6F7E0AE -:1030D000E4918E2F90E0E2E6F7E0F4CF83309105A3 -:1030E00008F02BCF880F991FFC01E354FE4F01908D -:1030F000F081E02D89E090E08ECF82E190E0E4E481 -:10310000F7E089CF80912E03882309F465CF8530BD -:1031100009F462CF8091E80083FD5ECF8091E800E2 -:1031200082FD8DCF8091E80080FF83CF9091F300E6 -:103130008091F2002115310519F08830910550F089 -:1031400041E0089709F040E08091E8008E77809395 -:10315000E8006FCF44914093F1003196215031093E -:103160000196E8CF803809F0E8CE8091E800877FAB -:103170008093E80080912F038093F10087CE811126 -:10318000DCCE10913203123008F0D7CE8091E800E7 -:10319000877F8093E80010932F030E9480041123FF -:1031A00011F084E005C08091E30087FDFACF81E053 -:1031B00080932E0342E061EC81E00E949F0442E292 -:1031C00061EC84E00E949F0442E261EC82E00E9494 -:1031D0009F0442E260EC83E00E949F04AECE8091A7 -:1031E0003203813009F0A9CE81E0933009F080E00C -:1031F00080932D031092E9008091E800877F8093EF -:10320000E8000E94800499CE9F92AF92BF92CF9225 -:10321000DF92EF92FF920F931F93CF93DF9300D033 -:1032200000D0CDB7DEB77C01FC0183819481892B6E -:1032300031F08081918189238F3F09F0F0C50F9093 -:103240000F900F900F90DF91CF911F910F91FF90F2 -:10325000EF90DF90CF90BF90AF909F90089598012E -:1032600022513F452031310508F0CEC58FEF93E064 -:103270000E94712F025167E0C62E62E0D62E88238D -:1032800039F1809140028770D1F2F7018281882361 -:10329000B1F282E00F900F900F900F90DF91CF91DD -:1032A0001F910F91FF90EF90DF90CF90BF90AF9064 -:1032B0009F900C945515C114F4E0DF0611F3C6017C -:1032C0000E94712F811101C001502FEFC21AD20A42 -:1032D0000111F1CF1C821B82BB24B3945AE0A52EAE -:1032E00086010F5F1F4FC6010E94712F89831A82CA -:1032F000882339F29FEF980F933008F58A83B982BB -:1033000032E0C30ED11CC8010E94712F8B83882329 -:1033100009F4B7CF8E010F5F1F4FF801808188231A -:10332000F9F2813009F043C091818281913049F4F2 -:103330000E5F1F4F0E94280D0F5F1F4FEECF6801D9 -:10334000E9CF923029F40E5F1F4F0E94730CF4CF27 -:10335000933029F40E5F1F4F0E944E0BEDCF943037 -:1033600019F00F5F1F4FE8CF0E5F1F4F30E020E0D6 -:10337000B8016F5F7F4FF80141818053990B8A300C -:10338000910550F021503109B8F28FE99FE0019783 -:10339000F1F700C00000F6CFA29EF001A39EF00D51 -:1033A00011249C012E0F3F1F842F8B01E1CF0E941F -:1033B000A90DC2CF81E00E9471150E94351561CF21 -:1033C00081E00E944415F9CF82E0FBCF04389FE5ED -:1033D000190709F483C008F473C00538FFE51F0717 -:1033E00009F041C5882309F43EC580EE0E94730CA4 -:1033F00081EE0E94730C80E10E94730C80E10E94B8 -:103400004E0B81EE0E944E0B80EE0E944E0B80917F -:10341000E60191E062E189278093E601882309F4BF -:103420008DC08FE00E94BE1066E18FE00E94BE104A -:103430001AC5882369F180914F02811106C081E08D -:1034400080934F0282EE0E94730C0E94A20590931B -:103450004E0280934D028BE20E94730C04C58823B8 -:10346000A1F080914F02811106C081E080934F024C -:1034700082EE0E94730C0E94A20590934E028093EC -:103480004D0281EE0E94730CE6CF81EE0E944E0B3E -:103490008BE20E944E0BE7C4882309F4E4C481EE5A -:1034A0000E94730C83EE0E94730C8FE40E94730CD5 -:1034B0008FE40E944E0B83EE0E944E0B81EEE9CF0B -:1034C000882309F4D0C481EE0E94730C83EE0E941D -:1034D000730C80E50E94730C80E5EBCF882309F420 -:1034E000D0CE10914C0281E0182710934C020E941C -:1034F000A20590934B0280934A0268E1112381F068 -:103500008FE00E94BE1069E18FE00E94BE106AE168 -:103510008FE00E94BE106BE18FE00E94BE10B1CE22 -:1035200084EB0E94BE1069E184EB0E94BE106AE148 -:1035300084EB0E94BE106BE184EBEFCF8FEA0E9418 -:10354000BE1066E18FEA72CF82EE0E94730CC6C491 -:1035500083E00E942F0B88E10E94730C88E10E9497 -:103560004E0B83E00E94240BB9C482EE0E94730CC0 -:1035700087E50E94280DB2C486EE0E94280D88E1DE -:10358000F8CF895AC5C482EE0E944E0BD9C48CE292 -:103590000E94280D8091E801882309F4D1C489E3B1 -:1035A0000E94280DCDC488E2FBCF033FFCE51F0736 -:1035B00039F1A0F4083D3CE51307F1F0093D8CE535 -:1035C000180751F1073D9CE5190709F0BDC426E233 -:1035D00041EE61EEC7010E94450D53CE053FECE57B -:1035E0001E07B1F088F0063F2CE5120709F0ACC4C5 -:1035F00027E245EE66EEEECF27E245EE65EEEACF36 -:1036000026E241EE60EEE6CF27E245EE64EEE2CF41 -:1036100026E241EE62EEDECF28E241E0EFCF80917C -:103620000403806106309CE5190709F48CC0809181 -:103630000403886007301C4508F485C080910403AA -:10364000806281C0809104038D7F0C30FCE51F07F0 -:1036500009F479C070F4809104038C600A303CE571 -:10366000130709F470C008F481C0809104038E7FB1 -:103670006AC080910403877F0E309CE5190709F426 -:1036800062C0809104038B7F0F301C4508F45BC03F -:10369000809104038F7E57C00B3FFCE51F0709F4A0 -:1036A0005DC030F503313CE5130709F46DC078F4D3 -:1036B00001319CE5190709F463C002311C4509F08A -:1036C0007EC40E942816809104038F773CC0053188 -:1036D000FCE51F0709F460C008F474C0809105037D -:1036E00081600A3F1C4509F06AC48093050367C4E2 -:1036F0000F3F8CE5180709F44BC088F4809105034F -:103700008D7F0D3FECE51E0781F3809105038E7FD1 -:103710000E3F1C4550F3809105038360E6CF0130D6 -:103720002DE5120709F457C008F442C060E00230EA -:103730001D4509F044C48EE090E00E94852F3FC4EF -:103740008091040381608093040339C48091040351 -:103750008260F9CF809104038460F5CF80910503E6 -:103760008260C3CF809104038064EDCF0E9428164D -:10377000809104038068E7CF809104038F7DE3CFBD -:10378000809104038F7BDFCF80910403837FDBCFA5 -:10379000809105038C7FA9CF8091040382FB992738 -:1037A00090F921E0922790FB82F990FB83F9CBCF2F -:1037B00080910503982F909591708E7F892B90FBB7 -:1037C00081F993CF0E94281690910403892F97FBCB -:1037D00087F98058B8CF61E0AECF882309F402C4DE -:1037E000809143028A7A91E009F490E09093E90194 -:1037F000811106C089E20E94700A0E94000A41CD30 -:1038000085E3F9CF85E3F3C3043CFCE51F0709F426 -:1038100093C046EF53E16FEF73E1053C2CE51207CF -:1038200009F00AC40E9425062CCD093C3CE513078B -:1038300009F491C070F4073CECE51E0709F486C05A -:103840004AEE53E16EED73E1083CFCE51F0751F3CE -:10385000F3C30A3C2CE5120709F482C048E054E1A6 -:1038600069E174E10B3C3CE51307E1F2E5C3013D7E -:103870008CE5180709F487C0B0F40E3CECE51E0790 -:1038800009F47BC008F476C00F3C2CE5120709F45C -:1038900077C06EE089E0003D3CE5130709F0CCC33A -:1038A0000E949315EECC043D8CE5180709F471C015 -:1038B00078F4023DECE51E0709F468C061E088E198 -:1038C000033DFCE51F0709F0B7C30E942A14D9CCB9 -:1038D000053D2CE5120709F45FC00D35100709F40A -:1038E000D0CCAAC380918E0380FF1BC08E7F8093B3 -:1038F0008E0360918E0370918F038091900390915D -:1039000091030E941F13109284028FEF90E7E2E070 -:1039100081509040E040E1F700C000000E94D80FC5 -:10392000B0CC816080938E0361E08695CECF40E875 -:1039300055E169E875E176CF49E855E160E875E160 -:1039400071CF4FEF53E166EF73E16CCF4EED53E172 -:103950006AEE73E167CF46EC53E162ED73E162CF4B -:1039600042ED53E166EC73E15DCF49E154E168E07B -:1039700074E158CF61E081E0A8CF65E082E090CFAC -:1039800068E086E08DCF64E18FE08ACF67E185E172 -:1039900087CF62E289E184CF61E083E296CF0B3585 -:1039A0009DE5190701F10C351D4509F055C38091BE -:1039B000050382FB882780F991E089270E94980EF1 -:1039C0004BC30E942816FFEF24E33CE0F150204057 -:1039D0003040E1F700C000000E944F0C0E94B1157A -:1039E00050CC81E0EBCF80E0E9CF82810081118172 -:1039F000882369F0C8010E94E50ED82E682FC801FF -:103A00000E94D50AB8018D2D0E94D80E2BC3C80183 -:103A10000E94AE0AD82EF6CF212F2F70C22E107F13 -:103A200019F0C29490EFC922DD20C9F0CC2069F0D2 -:103A300080E2800F883010F001110BC080914302AA -:103A4000C82AC09243020E94000A802F0E94730C71 -:103A500019C080914202C82AC0924202F4CF802F3E -:103A60000E944E0BCC2071F0C09480E2800F883011 -:103A700010F001113AC080914302C822C092430263 -:103A80000E94000AE92DE850FF0B349720F40E94B1 -:103A9000DA050E94AB0BAA20A9F08091400280FDBC -:103AA00011C0F70112828595859585950E94711543 -:103AB000C7010E94041980914002859585958595DE -:103AC0000E94441560E0C7010F900F900F900F9077 -:103AD000DF91CF911F910F91FF90EF90DF90CF90EA -:103AE000BF90AF909F900C945B0F80914202C822D0 -:103AF000C0924202C5CF312F3F70B32E107F1032DB -:103B000019F0B29480EFB822002369F0013081F1FE -:103B1000DD20D9F1CC2091F1F701858180FF95CF8F -:103B20008F7085832BC0DD20B1F0909144028B2DE6 -:103B3000892BC11003C00E94440BA4CFE1E0CE1238 -:103B4000FACF2091050322FD9DCF891709F49ACF62 -:103B50008093440297CFC11006C00E94FA098B2DB2 -:103B60000E94390B8FCFF1E0CF1609F48BCFF5CF40 -:103B7000DD2031F025E02C1508F484CF8B2DDBCF30 -:103B800034E03C1508F47ECFEACFCC2041F3093372 -:103B900049F4FFEF27EE33E0F15020403040E1F7E9 -:103BA00000C00000802F0E944E0B6CCF812F8695A5 -:103BB0008695837061F0813009F064CFC8019370FD -:103BC000D11002C090E080E00E94AE055BCFC8013A -:103BD0009370D11002C090E080E00E94C40552CFE3 -:103BE000802FDD2029F00E94BC070E94DA064ACF10 -:103BF0000E940107FACF812F837009F03FC0D110D6 -:103C000041CF402F429546954770440F440F802F77 -:103C10008F7090E0042E02C0880F991F0A94E2F77B -:103C200030E020E004FF09C02FE030E002C0220FA6 -:103C3000331F4A95E2F72095309516951695137027 -:103C4000123099F078F440914502509146021130BB -:103C500039F0822B932B842395230E941E0B12CFC5 -:103C6000842B952B822B932BF8CF822B932B209197 -:103C700045023091460282279327EFCF8695DD20BB -:103C800011F0812F8170882309F4FCCE402F4295DA -:103C900046954770440F440F802F8F7090E0042E9C -:103CA00002C0880F991F0A94E2F730E020E004FF79 -:103CB00009C02FE030E002C0220F331F4A95E2F71F -:103CC00020953095169516951370123099F078F46A -:103CD0004091380350913903113039F0822B932BE6 -:103CE000842395230E942D15CDCE842B952B822BDA -:103CF000932BF8CF822B932B2091380330913903EB -:103D000082279327EFCF1F70DD2029F0812F0E949B -:103D10007115802F10CF802F0E94390B812F0E94A8 -:103D20004415B0CE023F09F441C060F4003F11F1E8 -:103D3000013FA1F1DD2009F457C0C11086CE812FCB -:103D40008F7131C0033FB9F1043FA1F7DD2009F4C1 -:103D500040C01F71812F0E9471158091050382FD63 -:103D600007C0E8E01E9FC0011124836080934002D9 -:103D7000812F19C0DD2069F084E08C1508F482CE13 -:103D80001F7181E090E002C0880F991F1A95E2F739 -:103D9000B3CF95E09C1508F475CEF2CF812F8F71CB -:103DA000DD2009F4BCCF0E9471156CCE812F8F717C -:103DB000DD20C9F3B4CF90E080E0DD2009F492CF9C -:103DC0001F7181E090E002C0880F991F1A95E2F7F9 -:103DD00089CF81E00E945515F1E0FC1508F052CE24 -:103DE00082E00E9455154ECECC2059F0093309F0DF -:103DF000D9CE2FEF37EE83E0215030408040E1F7FD -:103E0000CFCE812F8F718BCF00313FE5130709F49F -:103E1000D1CA01319FE51907A9F482E0CCCA61E05B -:103E2000C7010E945B0F8C01F7018281811117CAC3 -:103E30000031FFE51F0709F4C3CA01312FE512075E -:103E400009F4C2CA0238EFE51E0709F425CB08F0D1 -:103E5000BDCA00382FE5120709F4EBCA01383FE567 -:103E6000130709F4FCCAF7018281882369F0C801AD -:103E7000815E9C45059740F46FE1600F60935002AE -:103E80008CE090E00E94852F17FF8FCBF701828195 -:103E9000882309F459C00E94DA05869581708093C1 -:103EA000E80190915002913029F4882319F089E3B8 -:103EB0000E94280D809143028093E70110924302F3 -:103EC00080915002813009F443CB882309F43CCB24 -:103ED000823009F44ACB843009F44ECB8FE39CE95D -:103EE0000197F1F700C000005801E894B7F84CE0E2 -:103EF000C42ED12CC5010C2C02C0969587950A942E -:103F0000E2F78F7096EF980F963008F43ACB805D09 -:103F10000E94A90D94E0C91AD108ECEFCE16EFEF7C -:103F2000DE0641F780915002813009F430CB8823BE -:103F300009F429CB823009F426CB843009F433CB41 -:103F40008091E70180934302F7018281882309F47D -:103F500046C0109295030230FCE51F0708F44AC0E2 -:103F600006312CE5120738F098012A5F3C452930CC -:103F7000310508F03FC00E94B40F90930503809371 -:103F8000040300313CE5130709F4F6CB08F084CBB9 -:103F900008309CE5190709F4E5CB08F053CB043051 -:103FA000FCE51F0709F4D6CB08F039CB02303CE51D -:103FB000130709F4C5CB03301C4509F4C7CB609146 -:103FC00004031091050384E090E00E94852F612F87 -:103FD00082E290E00E94852F0E94281652C9063185 -:103FE0001C45D1F58091E90181110CCC89E20E9438 -:103FF000450A03CC06312CE5120709F4EECB80917B -:10400000430282720C3C9CE5190709F4AECC08F01F -:104010002ECC063CFCE51F0709F493CC08F005CC38 -:10402000033C3CE5130709F482CC08F0EDCB023CDD -:10403000ECE51E0709F456CC0A35FDE51F0709F427 -:10404000D0CC08F0ACCC01153CE5130709F4B9CC91 -:104050000E3D1C4509F4C2CCF7018681978100977B -:1040600009F4C3CC0E9472088C01F701D280C5808C -:10407000C2943FE0C322809140028770A1F0AD2C32 -:10408000DD2091F0812F807F803421F080E2800F4D -:10409000883048F082E00E94551580914002877078 -:1040A000AA24A3948111A12C912E92942FE0922204 -:1040B000FBE0F91508F4E6CCE92DF0E0ED52F04D07 -:1040C0000C94042FCF93DF938091FB01807FA1F4A8 -:1040D0008091F801882381F080913F02D091FE0108 -:1040E0006091F6017091F701A091F901B091FA0188 -:1040F000C62FC723D81303C0DF91CF91089590E056 -:10410000109711F0CF3F19F401968770F3CF9C01FF -:1041100043E0220F331F4A95E1F7F901E150FE4FCA -:1041200041814713F1CF40814613EECF42814111C7 -:10413000EBCF438154814A1B5B0B483C510520F770 -:104140008091FB018F7080618093FB01F901EC5F2E -:10415000FD4F80818F708061808386EF91E00E94A7 -:104160000419DF91CF910C94A40AAF92BF92CF9221 -:10417000DF92EF92FF920F931F93CF93DF93CDB710 -:10418000DEB765970FB6F894DEBF0FBECDBF8C01CA -:1041900085E0F801DE01519601900D928A95E1F7D4 -:1041A000F801E28066EFA62E61E0B62E6091F9017B -:1041B0007091FA016115710509F468C19091F601D9 -:1041C0004091F701892F84238F3F09F45FC120813B -:1041D0003181C380D480F090F801F601E61BF70B23 -:1041E000FF2009F41DC18091FB01582F507FE83C4E -:1041F000F10508F0D0C0511181C0FE2C43132BC033 -:10420000921329C06091FC017091FD01F801468173 -:10421000578164177507F9F4E1101DC08F70806134 -:104220008093FB01C5010E9404198091FB01F801F4 -:1042300085838F2D65960FB6F894DEBF0FBECDBF78 -:10424000DF91CF911F910F91FF90EF90DF90CF9072 -:10425000BF90AF900895CD2829F0822F83238F3F00 -:1042600009F02FC180E0F82FF170DF2E80FF3CC0F5 -:1042700080913F024091FE01841315C0298B3A8B37 -:1042800089899A890E94210F292F22952F70223027 -:10429000F8F0243020F59F70F9F0F8019581907FB7 -:1042A000D9F4D12C1FC090E0FC0153E0EE0FFF1FAA -:1042B0005A95E1F7E150FE4F5181351306C0508108 -:1042C000251303C05281E5120FC001968770D4CF29 -:1042D0009F7011F0882329F3805E883010F3C801A5 -:1042E0000E940419FD2CA5CFEE2009F4A2CF8091E5 -:1042F000FB0181608093FB01F12C9BCF43131BC01A -:10430000921319C04091FC015091FD01F8012681E2 -:1043100037814217530779F4E1100DC08583C80136 -:104320000E94041988E0F801A6EFB1E001900D9217 -:104330008A95E1F77ECFC8010E942D0F882339F1BD -:10434000EE2029F18091FB018032A0F02091F6014E -:104350003091F7013A8729871B86DD86CC868E87C8 -:104360008091FC019091FD01988B8F87CE01099679 -:104370000E94041988E0F801A6EFB1E001900D92C7 -:104380008A95E1F70E946220FF24F39452CFC8017E -:104390000E940419F9CF51110AC086EF91E00E94E2 -:1043A000041988E0F50111928A95E9F7A5CF431326 -:1043B00018C0921316C04091FC015091FD01F80104 -:1043C000268137814217530761F4E1100AC08583C3 -:1043D000C8010E94041988E0F50111928A95E9F755 -:1043E00028CFC8010E942D0F882389F2EE2079F290 -:1043F0008091FB01803208F4BDCF2091F60130910D -:10440000F7013A8329831B82DD82CC828E838091DF -:10441000FC019091FD0198878F83CE010196A8CF72 -:10442000E83CF105C0F6FE2CEE2009F4B0CF4313B2 -:104430001FC092131DC02091FC013091FD01F801B5 -:10444000868197812817390799F49091FB0190FD97 -:1044500069CF907F09F466CF8091FB018583903FFF -:1044600009F45DCF982F907F905F8F70892B56CF86 -:10447000C8010E942D0F81117DCF8091FB018160C9 -:104480008093FB01C8010E940419D3CEEE2009F4E9 -:104490007ECFC8010E942D0FF82E882309F477CF14 -:1044A00088E0F801A6EFB1E001900D928A95E1F75E -:1044B0008091F6019091F7010E94210F0E946220E5 -:1044C000B8CE81E08E25CFCECF93DF93CDB7DEB7C8 -:1044D00060970FB6F894DEBF0FBECDBF29873A872D -:1044E0004B875C876D877E878F87988BCE01099677 -:1044F0000E94B520811112C088E0FE013996DE01CC -:10450000119601900D928A95E1F78C859D85892BF6 -:1045100029F089859A8589238F3FA9F580913F02EB -:104520009091FE0189131CC060960FB6F894DEBF0F -:104530000FBECDBFDF91CF91089593E0AA0FBB1FAF -:104540009A95E1F7A150BE4F98E0FE013196019097 -:104550000D929A95E1F78093FE010E94A40ADECFA6 -:10456000B8E08B9FC001112481509E4F0E94B5205E -:104570008823D1F280913F0290E0019687709927BD -:1045800080933F02CBCFA091FE01B0E0CD01019618 -:104590008770992720913F022817190671F60E940B -:1045A00028161092FE0110923F0288E0E6EFF1E03B -:1045B000DF011D928A95E9F7B1CF0F931F93CF9337 -:1045C000DF9380918C02E0918B02CCE081111AC0C4 -:1045D000DF91CF911F910F910895D1E0DE0FD0931D -:1045E0008B020E2F10E0EC9FF0011124E357FD4FDA -:1045F00083819481892B29F08081918189238F3F48 -:1046000051F4ED2F80918C02E81738F310928C0250 -:1046100010928B02DDCFC09FD001C19FB00D11243D -:10462000A357BD4F16968D919C911797892B29F40E -:1046300018968D919C91019651F42081318142818F -:10464000538164817581868197810E946422C09F15 -:10465000F001C19FF00D1124E357FD4F1482138226 -:10466000D0CF1092F8021092F7021092420180917E -:10467000F6028093F5020E9414060C94DD222F921C -:104680003F924F925F926F927F928F929F92AF92E2 -:10469000BF92CF92DF92EF92FF920F931F93CF932F -:1046A000DF93C091F502E7E0FE2E01E010E0FCE0B0 -:1046B0002F2EAEEFEA2E8091F6028C1316C00E94C8 -:1046C000DD22DF91CF911F910F91FF90EF90DF904E -:1046D000CF90BF90AF909F908F907F906F905F90A2 -:1046E0004F903F902F900C941406D0E0FE01EE0FF7 -:1046F000FF1FE351FD4F80819181F89EF001F99EEB -:10470000F00D1124E85EFE4F2481211158C0309035 -:104710008C02ADE8B2E030E020E0412C5F012315CF -:1047200008F04BC01A966D907C901B97F501808025 -:1047300091804FEF5FEF512CC52CD12CF601EE0F7D -:10474000FF1FE80DF91D659174916616770609F44F -:10475000A601672B11F05394EFCF4F3F5407B1F1EF -:10476000B80102C0660F771F4A95E2F7462AA801F2 -:1047700002C0440F551F5A94E2F7415051094416A4 -:10478000150601F5229EF001239EF00D1124E3573A -:10479000FD4FF89ED001F99EB00D1124A85EBE4FCA -:1047A00012962D913C91139737832683E082E18204 -:1047B0009187808771E015967C930E94E60521968B -:1047C000C37079CF14961C921E9213972F5F3F4FA0 -:1047D0001C96A5CF9F92AF92BF92CF92DF92EF929D -:1047E000FF920F931F93CF93DF9300D000D000D0A0 -:1047F000CDB7DEB78E010F5F1F4F86E0F801119233 -:104800008A95E9F785E7C82E81E0D82EF12CE12CB6 -:10481000AA24A394B12CF60181916F018F3F09F472 -:1048200049C0F894E82FE295EF70F0E021A18F7075 -:10483000A50102C0440F551F8A95E2F7CA01922FC5 -:10484000982B91A392A18095892382A3789400C08C -:10485000EBE7F1E030E020E0912C41914F3F09F48B -:1048600073C0A42FA295AF70B0E090968C9190E0A9 -:104870004F7002C0959587954A95E2F780FD64C018 -:104880008A2D022E01C0880F0A94EAF7982A2F5F1A -:104890003F4F2430310509F7F601319780818F3F72 -:1048A00011F00E94180850EA5A95F1F7F801EE0D40 -:1048B000FF1D90828FEFE81AF80AE6E0EE16F10489 -:1048C00009F0A9CF46E050E0B80184E592E00E94EB -:1048D000642FFF24F394009709F4F12C892BB1F194 -:1048E00086E0F801A4E5B2E001900D928A95E1F727 -:1048F00081E0809349020E94A20590934802809330 -:10490000470280914702909148020E9493050597C3 -:1049100008F1809154028093670280915502809340 -:1049200068028091560280936902809157028093B9 -:104930006A028091580280936B02809159028093A1 -:104940006C021092490206C080E0A0CF809149021B -:104950008111D7CF80914201882301F18091F70224 -:104960009091F8020097D1F00E949305209189025E -:1049700030918A022817390788F49091F5028091C6 -:10498000F602981709F445C00E943F2310928A024C -:10499000109289021092F8021092F70280914F0251 -:1049A000882371F080914D0290914E020E949305F0 -:1049B000893E934028F082EE0E944E0B10924F02E7 -:1049C00080914C02882391F080914A0290914B0291 -:1049D0000E949305883E934048F00E94A205909360 -:1049E0004B0280934A0283E70E94280D8F2D269662 -:1049F0000FB6F894DEBF0FBECDBFDF91CF911F91F0 -:104A00000F91FF90EF90DF90CF90BF90AF909F906D -:104A100008950E94DD221092F8021092F7020E947F -:104A20001406BCCF2F923F924F925F926F927F926B -:104A30008F929F92AF92BF92CF92DF92EF92FF92AE -:104A40000F931F93CF93DF93CDB7DEB769970FB660 -:104A5000F894DEBF0FBECDBF498B5A8B6B8B7C8B1E -:104A60008D8B6111109242021D861E861F86188A48 -:104A700085E0FE017196DE01199601900D928A95EE -:104A8000E1F78C859D85892B31F089859A8589236D -:104A90008F3F09F0D4C129853A854B855C856D85AA -:104AA0007E858F8598890E946422C3C028EFC21634 -:104AB0002CE5D20629F4882379F00E943123EBCF2C -:104AC00039EFC3163CE5D30639F4882329F08091E9 -:104AD00042018111F2CFC3C108E111E0E12CB12CF8 -:104AE000A12C88248394912C9EEF592E4424439426 -:104AF000F8016081718166246A94762C20E0422F4F -:104B000050E0FA01EE0FFF1FE60FF71F8591949119 -:104B1000C816D90609F43A01892B11F02F5FEFCF9F -:104B2000F12CFFEF6F167F0609F445C0F8014481B0 -:104B3000F09042018F2D411180E0F82FF170FF2E8F -:104B4000F801258086819B85992309F408C1FF20FF -:104B500009F405C1211014C0A40101C0440F6A94D6 -:104B6000EAF7842B86838091890290918A028039AA -:104B7000914030F440E951E050938A024093890219 -:104B8000C40102C0880F991F2A95E2F70197F80126 -:104B900026812817190679F48091F7029091F8027E -:104BA000009709F45FC00E9493058139914008F491 -:104BB00059C0F8014482EF28FFEFAF1ABF0A095F1E -:104BC0001F4F26E0A216B10409F092CF8B858823EF -:104BD00009F420C1EE2009F41DC10E94A2059093A2 -:104BE000F8028093F70280918C02883010F591E0F2 -:104BF000980F90938C0298E0FE013996DE01119691 -:104C000001900D929A95E1F73CE0839FC001112439 -:104C100083579D4F28E0FE013196DC0101900D92F3 -:104C20002A95E1F72FEF3FEFFC0131872087D386EC -:104C3000C28669960FB6F894DEBF0FBECDBFDF9176 -:104C4000CF911F910F91FF90EF90DF90CF90BF9089 -:104C5000AF909F908F907F906F905F904F903F901C -:104C60002F9008958091F5026090F602982FF0E061 -:104C7000E0E0861114C09093F5020E171F0709F4A7 -:104C80009ACF90E0FC01EE0FFF1FE351FD4FB18280 -:104C9000A0820196837099278093F6028CCF282EEC -:104CA000312CF101EE0FFF1FE351FD4F20813181C7 -:104CB000F7E0F29FD001F39FB00D1124A85EBE4F24 -:104CC0002D913C911197398F288F712C60E070E005 -:104CD000E72FF0E0EE0FFF1F288D398DE20FF31F55 -:104CE0002591349121153105E1F0F8010190F08111 -:104CF000E02DFF8BEE8B60E005C02417350709F42B -:104D00007F2C6F5FE62FF0E0EE0FFF1F4E895F896B -:104D1000E40FF51F459154914115510571F77F5FDF -:104D2000D7CF7720C9F0F801671708F0FD0144825A -:104D30000E171F0721F49093F502F72C3CCF981320 -:104D400005C0AE17BF0711F49F5F937091012F5FED -:104D50003F4F822F83708DCFF0E0E0E0F7CF90E0FF -:104D600021101FC0B40102C0660F771F2A95E2F719 -:104D70009B01215031092817390731F4442309F4E4 -:104D800047C0C5010E94E605C40101C0880F6A94AE -:104D9000EAF7982F9095F801868189238683F22C73 -:104DA0000ACF9C01062C02C0359527950A94E2F79C -:104DB000A90141705527BC016150710986239723D1 -:104DC000892B11F5452B01F1F80182819381892B03 -:104DD000C1F01B821C821D821E8259825A820E944F -:104DE000A2058160582F9D838C83F8018281938175 -:104DF0008F83988729813A814B816D817E810E94C2 -:104E00006422F8011582C0CFF22FF1702F2EBCCF93 -:104E10002F2CBACF9091F5028091F602981731F0BD -:104E20000E943F23EE2009F436CE03CF0E94DD22FC -:104E30001092F8021092F7020E941406F3CF61E07C -:104E4000CE0109960E945B0F6C018B85F7EFCF16A0 -:104E5000FCE5DF0609F02ACE882309F43DCE81E087 -:104E60008093420118CE1F920F920FB60F92112419 -:104E70002F933F934F935F936F937F938F939F9362 -:104E8000AF93BF93CF93DF93EF93FF93D091E9005C -:104E9000DF708091EC00C82FC17080FDC0E81092D7 -:104EA000E9008091F000877F8093F00078940E9461 -:104EB0003D161092E9008091F00088608093F00028 -:104EC000CD2BCF70C093E900FF91EF91DF91CF918F -:104ED000BF91AF919F918F917F916F915F914F9112 -:104EE0003F912F910F900FBE0F901F9018951F921A -:104EF0000F920FB60F9211242F933F934F935F930E -:104F00006F937F938F939F93AF93BF93EF93FF9391 -:104F10008091E10082FF09C08091E20082FF05C01C -:104F20008091E1008B7F8093E1008091DA0080FF27 -:104F300024C08091D80080FF20C08091DA008E7F4D -:104F40008093DA008091D90080FF9BC080E189BD09 -:104F500082E189BD09B400FEFDCF81E080932E037C -:104F600080910903811109C00E9406040E94D104A6 -:104F70008091E20084608093E2008091E10080FFF4 -:104F800017C08091E20080FF13C08091E2008E7F05 -:104F90008093E2008091E20080618093E200809142 -:104FA000D80080628093D80019BC85E080932E03DE -:104FB0008091E10084FF29C08091E20084FF25C038 -:104FC00080E189BD82E189BD89B5982F917080FF0C -:104FD000FBCF8091D8008F7D8093D8008091E10035 -:104FE0008F7E8093E1008091E2008F7E8093E200CB -:104FF0008091E20081608093E20080912F038823FA -:1050000009F445C084E080932E038091E10083FF82 -:1050100027C08091E20083FF23C08091E100877F59 -:105020008093E10082E080932E0310922F03809101 -:10503000E1008E7F8093E1008091E2008E7F80937B -:10504000E2008091E20080618093E20042E060E053 -:1050500080E00E949F048091F00088608093F000BF -:10506000FF91EF91BF91AF919F918F917F916F9140 -:105070005F914F913F912F910F900FBE0F901F9016 -:10508000189519BC10922E031092090376CF8091C7 -:10509000E30087FD93E090932E03B7CF78941F929F -:1050A0001FB61F9211248F939F93AF93BF9380914C -:1050B000000390910103A0910203B09103030196B4 -:1050C000A11DB11D8093000390930103A0930203DF -:1050D000B0930303BF91AF919F918F911F901FBE1B -:1050E0001F9018951F921FB61F9211248F939F93A4 -:1050F000AF93BF938091FF02811113C08091000391 -:1051000090910103A0910203B09103034196A11D68 -:10511000B11D8093000390930103A0930203B09309 -:105120000303BF91AF919F918F911F901FBE1F905E -:105130001895CDB7DEB7EE970FB6F894DEBF0FBE69 -:10514000CDBF84B7877F84BF0FB6F894A8958091B0 -:105150006000886180936000109260000FBE80E85C -:1051600090E00FB6F89480936100909361000FBEB9 -:1051700085B7806885BF85B7806885BF86E198E080 -:105180009093C5018093C4010E9406040E94D1043B -:105190008091E20084608093E200789480912E03F5 -:1051A0008823A1F01091E9001F709091EC00892FE5 -:1051B000817090FD80E8182B1092E9008091E80042 -:1051C00083FD0E943D161F701093E90082E084BDAC -:1051D00093E095BD9AEF97BD80936E000E949B0F60 -:1051E000811102C00E94890E05E711E02BE7C22E53 -:1051F00021E0D22EF80181918F018F3F11F00E94A2 -:105200001808C016D106B1F786EF0E94180887EF7C -:105210000E94180883E90E94180886E90E9418086D -:10522000E4E5F2E08AE592E0A7E6B2E011921D9291 -:105230008E179F07D9F70E941D16811102C00E9488 -:10524000B11582E090E00E94712F809360020E946D -:10525000B40F90930503809304030E94EA238FE325 -:105260009CE90197F1F700C000000E94EA238091B9 -:10527000670280FF08C06FEF7FEF90E080E00E9440 -:10528000A32F0E944F0C83E090E00E94712F90E0CA -:105290000E941E0B80913803909139030E9489145B -:1052A000509A589A559A5D9A549A5C9A8CE090E07C -:1052B0000E94712F90E0B0E0A0E0809350029093A4 -:1052C0005102A0935202B093530280915A0281116D -:1052D00033C00E941D16811104C00E94B1150E94A6 -:1052E000A11588E090E00E94792F60938E0370935F -:1052F0008F0380939003909391036E7F71F40E94CB -:10530000A11588E090E00E94792F60938E0370933E -:105310008F0380939003909391030E942B06109229 -:10532000840280918E0380FF04C060E086950E9415 -:105330002A1481E080935A025198599A52985A9AA5 -:1053400089B1869581704A9928C290E0892B809313 -:105350005E028AEC92E090937C0280937B0260E094 -:1053600081E20E942A1481E090E00E942D1580E0E5 -:1053700091E09093FC028093FB0218E1C12ED12CA6 -:1053800000E4A02E87E692E096E0B92EB80E809158 -:105390002E039924939400E112E1853009F451C25F -:1053A0000E94EA23882359F08FB7F89440910003B4 -:1053B0005091010360910203709103038FBFE1E6F6 -:1053C000F2E0A7E6B2E010E000E0302F8D9191917D -:1053D000981709F45FC2292F282790E09924939405 -:1053E000422F492109F451C29DAB3EAB892191E086 -:1053F00009F490E09FAB0E94A2058160782F99AFDD -:1054000088AF4DA95EA96FA989AD0E941225F80148 -:10541000EF59FD4F808198269082809184028823E5 -:10542000D1F180918302E0918E03E695E81BE09331 -:105430007F02823009F045C2F0E0EC51FD4FE4916B -:105440000E2F10E0BBE08B2EB3E19B2E80918002EB -:10545000882361F0109280020E94A20590937E0240 -:1054600080937D0210928202109281020E94A20516 -:10547000E0917D02F0917E028E1B9F0B8F3F9F4734 -:1054800050F4E00FF11FF0937E02E0937D028DE770 -:1054900092E0F4010995E0915E02EE0FEE0FE093C9 -:1054A0005E0289B181FBEE24E0F84A9964C280E093 -:1054B0008E29E82BE0935E02EF70F0E0E158FE4F9A -:1054C000808190915D02890F80935D0220E084309D -:1054D00034F180915C028F5F80935C0212E018AB24 -:1054E00019AA81E08AAB0E94A2058160782F9CAB4B -:1054F0008BAB48A959A96AA98CA90E9412251BA7A0 -:105500001CA61DA60E94A2058160782F9FA78EA7CA -:105510004BA55CA56DA58FA50E94122521E0809169 -:105520005D028D3F2CF580915C02815080935C027E -:105530001EA21FA281E088A70E94A2058160782F89 -:105540009AA789A74EA15FA168A58AA50E941225E6 -:1055500019A21AA21BA20E94A2058160782F9DA306 -:105560008CA349A15AA16BA18DA10E94122521E013 -:1055700080915D02082E000C990B64E070E00E949F -:10558000CE2E80935D02222359F08FB7F89440917C -:1055900000035091010360910203709103038FBFD8 -:1055A00086E0E4E7F2E0DE01119601900D928A9523 -:1055B000E1F7909076028090770210917802009146 -:1055C000790210927602109277021092780210926D -:1055D0007902892D882909F448C08091720290913E -:1055E00073020E9493059C0190916E02992309F425 -:1055F000AEC323333105C8F19F3F19F09F5F9093ED -:105600006E02992059F00E949C079FEF19140CF428 -:1056100091E0899F802D112480937602882059F093 -:105620000E949C079FEF18140CF491E0899F802D35 -:10563000112480937702309176023323B1F02091C8 -:105640007702222391F045EB3403C0011124992302 -:1056500009F494C19093760245EB24039001112440 -:10566000332309F48FC130937702812F802B09F403 -:1056700048C080917002909171020E9493059C0134 -:1056800090916D02992309F45DC325363105C8F167 -:105690009F3F19F09F5F90936D02112359F00E9474 -:1056A0007A079FEF11160CF491E0899F802D112449 -:1056B00080937802002359F00E947A079FEF10161A -:1056C0000CF491E0899F802D112480937902309110 -:1056D00078023323B1F020917902222391F045EB37 -:1056E0003403C0011124992309F450C19093780226 -:1056F00045EB240390011124332309F44BC130936B -:1057000079028091760290917702892B90917802AC -:10571000892B90917902892B11F00E94DA0686E09C -:10572000FE013196A4E7B2E001900D928A95E1F76F -:105730000E94DA0590915F02891731F00E94DA0524 -:1057400080935F020E94AB0B80912E03843009F09E -:105750001ECE83E08093E9008091E80082FF17CE9F -:105760008091E80090E085FF06C00E942504882310 -:1057700009F414C191E08091E8008B778093E800F0 -:10578000992309F404CEE981E150E33108F088C19E -:10579000F0E0E152F04D0C94042F92E0D7CD8091CF -:1057A0002E03843009F440C080E00E94AB0B1092BD -:1057B000840280917A02811116C090927A028091BF -:1057C0008E03982F917090935B028E7F80938E034F -:1057D0009FEFE0E7F2E09150E040F040E1F700C0D9 -:1057E00000000E94D80F1092FF020FB6F894A895FF -:1057F000C09260000FBEA092600083B7817F84607A -:1058000083BF83B7816083BF7894889583B78E7F89 -:1058100083BF0FB6F894A89580916000886180934B -:105820006000109260000FBE80912D03882349F024 -:105830000E94EA23E7E6F2E08191811164C2BE1280 -:10584000FBCF80912E03853009F4A9CF0E94281642 -:105850000E94DA050E94AB0B10927A0280915B02E3 -:10586000882361F080918E03816080938E0360E0D5 -:1058700086950E942A140E94C20F92CD80918502C3 -:105880008823C9F30E94D80FF6CF9F5F990C9430FC -:1058900009F0A6CD0F5F1F4F0630110509F095CD19 -:1058A0008FEF8AAF8BAF1CAE0E94A2058160782F6C -:1058B0009EAF8DAF4AAD5BAD6CAD8EAD0E94122533 -:1058C000ACCD863059F4F0E0EF51FD4FE4910E2F4E -:1058D00010E0ABEF8A2EA2E19A2EB8CD893061F4A8 -:1058E000E695F0E0E252FD4FE4910E2F10E0F7E66E -:1058F0008F2EF2E19F2EAACD8F3061F4E695F0E075 -:10590000E552FD4FE4910E2F10E0E9EF8E2EE1E11C -:105910009E2E9CCD853159F4F0E0E852FD4FE49184 -:105920000E2F10E07BEA872E71E1972E8FCD08E2D3 -:1059300010E042E2842E41E1942E883109F486CDB4 -:10594000833249F4E6EDF2E00591149162EA862E85 -:1059500062E1962E7BCD04EF11E059EE852E50E1E9 -:10596000952E843209F472CD00ED17E03AE2832ED1 -:1059700036E0932E6BCD82E090E09ACD81E080936B -:1059800076026ACE81E0809377026FCE81E08093C9 -:105990007802AECE81E080937902B3CE00E210E0CF -:1059A000CE0101964C018091E80085FD0AC08091EE -:1059B000E8008B778093E8000E942504882399F300 -:1059C000D9CE8091F100F40181934F01015011096A -:1059D00051F7D0CE1A8289E08B832DC08A81823024 -:1059E00009F4A7C18330A9F0813009F059C02FB75D -:1059F000F8946091000370910103809102039091EB -:105A000003032FBF0E940A2F6B837C838D839E83A9 -:105A100012C0809167028B83809168028C83809191 -:105A200069028D8380916A028E8380916B028F83DD -:105A300080916C02888780912E03843009F0A7CC76 -:105A40001091E9001F709091EC00892F817090FDFA -:105A500080E8182B82E08093E9008091E80080FFC5 -:105A60000DC050E040E060E270E0CE0101960E947F -:105A700056048091E8008E778093E8001F701093A1 -:105A8000E90085CC8A81823059F46B817C818D81DB -:105A90009E810E940A2F86E290E00E94852FCBCF44 -:105AA0008FEF8983C8CF4C816B818A810E94B20EAF -:105AB0009827892798279E838D83BDCF8D809E80D0 -:105AC0009824892498248A810B81F8E00F9F800113 -:105AD000112420E3829F000D111D11248C8190E080 -:105AE000880F991F080F191F692DC80187960E94FA -:105AF000852F682DC8018896D0CF0E941F0E9BCF9E -:105B00008A818138C1F060F4803809F094CF20E0B8 -:105B10004B816091900380918F030E9431138BCF52 -:105B2000823859F1833809F086CF20E04091910303 -:105B30006C818B81F2CF60E08B810E942A149B8163 -:105B400080918E03911111C08E7F80938E031092ED -:105B500084024FEF80E792E0415080409040E1F7AF -:105B600000C000000E94D80F66CF816080938E0332 -:105B700060E086950E942A145ECF8B818093920309 -:105B80005ACF8A81813899F030F4803809F053CFA8 -:105B90008091910321CF823891F0833809F04BCF67 -:105BA00080918F038B83809190038C8344CF80916D -:105BB0008E0380FF02C086950FCF80E00DCF8091CD -:105BC00092030ACF60918E0370918F0380919003AE -:105BD000909191030E941F132ECF80E18A832BCFD7 -:105BE00081E08A8389EFF8CE0A811B811027012783 -:105BF0001027FE0131963F018C80CF01880D911D49 -:105C00004C01C801895F9D4F8614970409F413CF96 -:105C1000093FE1E01E0750F40E94712FF3018483D5 -:105C20000F5F1F4FFFEF6F1A7F0AEBCFF301148254 -:105C3000F7CF0A811B81102701271027CE0101967B -:105C40003C018C80800E912E911CC801895F9D4F74 -:105C50008016910609F4EFCE093FE1E01E0720F41B -:105C6000F30164810E94852FFFEF6F1A7F0A0F5F97 -:105C70001F4FEBCF0E940F0EDECE8AE0AFCF0A811E -:105C80001B81102701271027CE0101963C018C8033 -:105C9000FC01E80DF11D4F01C80187968614970499 -:105CA00009F4C9CE003EF1E01F0750F40E94712FA5 -:105CB000F30184830F5F1F4FFFEF6F1A7F0AECCF52 -:105CC000F3011482F7CF0A811B81102701271027C7 -:105CD000CE0101963C018C80800E912E911CC80152 -:105CE00087968016910609F4A6CE003EE1E01E07D5 -:105CF00020F4F30164810E94852FFFEF6F1A7F0A61 -:105D00000F5F1F4FECCF09BD19BD09B400FEFDCFD9 -:105D10008091D8008F7D8093D8008091E0008260D0 -:105D20008093E0008091E00081FDFCCF0E94281666 -:105D300088CD86E290E00E94712F1B821C821D821A -:105D40008E8379CE2D32314008F0A4CCDACC2D32BE -:105D5000314008F053CC89CC87FB082E062687FDFE -:105D6000819567FD61950E94422F0EF4919507FC85 -:105D700081950895AA1BBB1B51E107C0AA1FBB1F39 -:105D8000A617B70710F0A61BB70B881F991F5A95C7 -:105D9000A9F780959095BC01CD01089597FB072E3A -:105DA00016F4009407D077FD09D00E94BA2E07FCA4 -:105DB00005D03EF4909581959F4F0895709561951B -:105DC0007F4F0895A1E21A2EAA1BBB1BFD010DC037 -:105DD000AA1FBB1FEE1FFF1FA217B307E407F5079B -:105DE00020F0A21BB30BE40BF50B661F771F881F77 -:105DF000991F1A9469F760957095809590959B010D -:105E0000AC01BD01CF010895EE0FFF1F0590F49185 -:105E1000E02D09946927962769277827872778270F -:105E200008950E94192F332312F48A1B9B0B0C94A4 -:105E30002A2FA29FB001B39FC001A39F700D811DA7 -:105E40001124911DB29F700D811D1124911D089583 -:105E50000E94192FB7FF0895821B930B08950E948B -:105E6000192FA59F900DB49F900DA49F800D911D9B -:105E700011240895B7FF0C942F2F0E942F2F821BFF -:105E8000930B0895991B79E004C0991F961708F0A9 -:105E9000961B881F7A95C9F780950895FB01DC0150 -:105EA00002C005900D9241505040D8F70895FC0172 -:105EB0004150504030F001900616D1F73197CF0194 -:105EC0000895882799270895FB01DC0104C08D916E -:105ED0000190801921F441505040C8F7881B990B5C -:105EE0000895F999FECF92BD81BDF89A992780B5A2 -:105EF0000895A6E1B0E044E050E00C94AB2FA8E197 -:105F0000B0E042E050E00C94AB2F262FF999FECF81 -:105F100092BD81BDF89A019700B4021639F01FBAFC -:105F200020BD0FB6F894FA9AF99A0FBE0895039619 -:105F3000272F0E94862F0E94852F252F0E94862FB3 -:105F4000242F0C94862F0196272F0E94862F0C94C5 -:105F5000852FDC01CB01FC01F999FECF06C0F2BD13 -:105F6000E1BDF89A319600B40D9241505040B8F717 -:105F70000895F894FFCF460F460F4F0F4F0F510F64 -:105F80004F0F4F0F4F0F460F460F560F4F0F4F0F2C -:105F9000560F22174A179D174A179D177D17B517D9 -:105FA0009D17B218BF180C1D0C1D7B1D7B1DD61D27 -:105FB000F01D421D421DFB1D831E921E921EEA2CE7 -:105FC000EE2C422D532D5E2D7D2D802DC12DE22DE9 -:105FD000502D502DED2DF02DF42D192E3A2E3D2E55 -:045FE0003F2E632EBF -:105FE40090050F0CEE0BEA0BE60B01191A1B1C1D96 -:105FF4001E1F202122010201FC002A00000000F6DD -:10600400004C00000000F0005000000000EA0051C5 -:1060140000000000E4004F00000000DE0052000019 -:1060240000000101818283E200E900EA00B500B6C4 -:1060340000B700CD008301CC008A019201940121B4 -:1060440002230224022502260227022A02B300B4F4 -:10605400006F007000F03435366667F6F7939600EB -:10606400FF0100010000FFFF0000010001FF00002C -:1060740001020202020606060909090909090F0FAD -:106084000F0F0F0F151515181919191919191919B1 -:10609400191923244022B6DA01B8010201FB0614BF -:0460A40007340700B6 -:00000001FF From 24349ceeb17ae6d53801fe7346129a8844d726a8 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 01:15:03 -0400 Subject: [PATCH 28/94] Restore hex file. --- .../ps17/solartempest_ps17_via.hex | 1549 +++++++++++++++++ 1 file changed, 1549 insertions(+) create mode 100644 keyboards/solartempest/ps17/solartempest_ps17_via.hex diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex new file mode 100644 index 000000000000..ee4f5cf5db02 --- /dev/null +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -0,0 +1,1549 @@ +:100000000C94BD030C9404040C9404040C94040498 +:100010000C9404040C9404040C9404040C94040440 +:100020000C9404040C9404040C9477270C94332748 +:100030000C9472280C9404040C9404040C9404048E +:100040000C9404040C9404040C9404040C94040410 +:100050000C9404040C944E280C9404040C94040492 +:100060000C9404040C9404040C9404040C940404F0 +:100070000C9404040C9404040C9404040C940404E0 +:100080000C9404040C9404040C9404040C940404D0 +:100090000C9404040C9404040C9404040C940404C0 +:1000A0000C9404040C9404040C94040400000FFF4A +:1000B00078FF000000000000D7FF78FF000000007C +:1000C000000080FF64FF00000000000005FF78FFD3 +:1000D0000000000000005FFF5AFF00000000580011 +:1000E0006000000058005E00000058005D00000045 +:1000F00058005C00000057006000000057005F00DF +:10010000000005010902A10185020901A1000509FC +:1001100019012908150025019508750181020501BD +:10012000093009311581257F950275088106093846 +:100130001581257F950175088106050C0A38021581 +:1001400081257F950175088106C0C005010980A140 +:1001500001850319012AB700150126B7009501751D +:10016000108100C0050C0901A101850419012AA014 +:1001700002150126A002950175108100C005010934 +:1001800006A1018505050719E029E7150025019558 +:1001900008750181020507190029EF150025019551 +:1001A000F075018102050819012905950575019170 +:1001B00002950175039101C00660FF0961A1010963 +:1001C00062150026FF00952075088102096315005D +:1001D00026FF00952075089102C005010906A101BE +:1001E000050719E029E71500250195087501810229 +:1001F0009501750881010507190029FF150026FFE3 +:1002000000950675088100050819012905950575F1 +:10021000019102950175039101C0000000000000EA +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000007E0F31 +:1002400000D4FFFFFFC7000000780000000000009E +:1002500000002A2B28000000000000000000000021 +:10026000000000000029000000002C1E3420212284 +:1002700024342627252E362D3738271E1F202122ED +:10028000232425263333362E37381F040506070866 +:10029000090A0B0C0D0E0F10111213141516171856 +:1002A000191A1B1C1D2F3130232D35040506070894 +:1002B000090A0B0C0D0E0F10111213141516171836 +:1002C000191A1B1C1D2F3130354CD400CA00C00038 +:1002D000B600AC00000000047F3F1F64321464329B +:1002E00014783C1E1E140A050001010101010101E0 +:1002F00001010202020202020202020303030303DB +:1003000003030304040404040404050505050506A9 +:100310000606060607070707070808080809090967 +:10032000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E10 +:100330000F0F0F10101111111212131314141515A1 +:1003400016161717181819191A1A1B1B1C1D1D1E13 +:100350001E1F202021222223242425262627282967 +:10036000292A2B2C2D2D2E2F303132323334353695 +:100370003738393A3B3C3D3E3F4041424344454695 +:100380004748494A4C4D4E4F505153545556585971 +:100390005A5B5D5E5F616264656668696B6C6D6F18 +:1003A0007072737577787A7B7D7E8082838587888B +:1003B0008A8C8E8F91939596989A9C9EA0A2A3A5C5 +:1003C000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6C6 +:1003D000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EB82 +:1003E000EEF0F3F5F8FAFDFFFFAA7F554008070687 +:1003F000050D0C0B0A11100F161514131A181B12E9 +:100400000903010002040E17192223252628292A90 +:100410002C2D2F3032333536383A3B3D3E40424367 +:100420004547494A4C4E5051535557595A5C5E60A6 +:1004300062646668696B6D6F71737577797B7D7FB8 +:1004400081838587898A8C8E90929496989A9C9EB7 +:100450009FA1A3A5A7A8AAACAEAFB1B3B4B6B8B9D3 +:10046000BBBCBEBFC1C2C3C5C6C7C9CACBCCCDCE3B +:10047000D0D1D2D2D3D4D5D6D7D7D8D9D9DADADB1E +:10048000DBDBDCDCDCDCDCDDDDDDDDDCDCDCDCDCAA +:10049000DBDBDBDADAD9D9D8D7D7D6D5D4D3D2D2E9 +:1004A000D1D0CECDCCCBCAC9C7C6C5C3C2C1BFBED1 +:1004B000BCBBB9B8B6B4B3B1AFAEACAAA8A7A5A33C +:1004C000A19F9E9C9A98969492908E8C8A898785FB +:1004D00083817F7D7B79777573716F6D6B696866DA +:1004E0006462605E5C5A5957555351504E4C4A49AC +:1004F00047454342403E3D3B3A3836353332302F54 +:100500002D2C2A2928262523224E007F004B00006F +:100510000001515400550056005F00600061005713 +:10052000005C005D005E00000059005A005B00584E +:100530000062000000630000004F00010050000056 +:10054000000100AD002C0053001450025303532A45 +:100550000001000100010000000100010001000095 +:100560005C005C000001000000300001002F000072 +:100570000010500500170011030D00160007002D94 +:1005800001060119011000000011011D03E10057CF +:10059000012C000000E2000000805F0100815F008C +:1005A000001050B9004A0017012B0352002B011A0A +:1005B00001500051004F000000B6002C00B7002889 +:1005C000004E0000004B000000805F0100815F00D2 +:1005D0000010500100010001000100520001000163 +:1005E00000500051004F00000010033D080100536F +:1005F0000068000000690000000100010001000027 +:1006000000010001000100010001000100010001E2 +:1006100000010001000100000001000100010001D3 +:1006200000010000000100000001000100010000C5 +:1006300000010001000100010001000100010001B2 +:1006400000010001000100000001000100010001A3 +:100650000001000000010000000100010001000095 +:100660000001000100010001000100010001000182 +:100670000001000100010000000100010001000173 +:100680000001000000010000000100010001000065 +:100690000001000100010001000100010001000152 +:1006A0000001000100010000000100010001000143 +:1006B0000001000000010000000100010001000035 +:1006C0000001000100010001000100010001000122 +:1006D0000001000100010000000100010001000113 +:1006E00000010000000100000009025B000301009E +:1006F000A0FA090400000103010100092111010011 +:10070000012240000705810308000A0904010002D4 +:1007100003000000092111010001222200070582C7 +:100720000320000107050303200001090402000162 +:100730000300000009211101000122B60007058411 +:100740000320000A12010002000000084B411500BE +:100750000200010200010A0350005300310037007B +:1007600000001203410054004C0041004E005400B0 +:100770004900530000000403090411241FBECFEFF9 +:10078000DAE0DEBFCDBF04B603FE27C0809196033A +:1007900090919703A0919803B09199038730904B63 +:1007A000A740B04BD1F41092960310929703109289 +:1007B00098031092990314BE84B7877F84BF0FB645 +:1007C000F894A895809160008861809360001092F1 +:1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 +:1007E000E4EEFFE502C005900D92A43CB107D9F7F5 +:1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 +:100800000E9499280C94B92F0C940000E8EDF0E0B8 +:1008100080818E7F80831092E2001092DA00109225 +:10082000E100A0EEB0E08C9181608C9380818F77A5 +:10083000808319BCA7EDB0E08C918E7F8C93808172 +:100840008F7E80831092090308952091E4003091F7 +:10085000E50095E6A9012091EC00822F817020FF30 +:1008600006C08091E80080FF06C080E008952091D6 +:10087000E80022FD1AC080912E03882389F085307C +:1008800089F08091EB0085FD0FC02091E40030914C +:10089000E50042175307F9F29150E1F684E008951C +:1008A00082E0089583E0089581E00895EF92FF9239 +:1008B0000F931F93CF937C018B010E942504C82FB7 +:1008C000811117C08091E80085FD0BC08091E80080 +:1008D0008E778093E8000E942504882399F3C82F1F +:1008E00008C0F70181917F018093F1000150110947 +:1008F00049F78C2FCF911F910F91FF90EF900895A2 +:100900008091300387FF13C08091E80082FF06C00A +:100910008091E8008B778093E80004C080912E03DB +:100920008111F2CF089580912E038823D9F380910D +:10093000E80080FFF8CF8091E8008E77ECCF982F09 +:100940009093E900242F762F50E0891731F07091B1 +:10095000EC002091ED005091F00021FD07C09F5F59 +:10096000973071F78093E90081E008953091EB00B2 +:100970003E7F3093EB003091ED003D7F3093ED00F2 +:100980003091EB0031603093EB007093EC002093DA +:10099000ED005093F0002091EE0027FDE0CF80E0C5 +:1009A0000895CF92DF92EF92FF920F931F93CF9310 +:1009B000DF93C8EDD0E088818F7E8883E7EDF0E09B +:1009C00080818160808384E082BF81E0809309031D +:1009D00088818E7F888302EE10E0F80110821092E9 +:1009E000DA0081EEC82ED12CF601108288818F7733 +:1009F000888388818068888388818F7D888319BCFB +:100A000010922E0310922F0310922D0310922C039C +:100A100090EEE92EF12CF70180818B7F8083888115 +:100A20008160888342E060E080E00E949F04F601DC +:100A300080818E7F8083F8018081816080838081C6 +:100A400088608083F70180818E7F808388818061C8 +:100A50008883DF91CF911F910F91FF90EF90DF90EE +:100A6000CF900895FC01809136039091370386174B +:100A70009707A0F06115710529F49091E8009E7721 +:100A80009093E80090E06115710551F4911108C050 +:100A90008091E80082FF34C080E00895BC01F2CF6D +:100AA00080912E038823C1F18530C1F18091E80047 +:100AB00083FD30C08091E80082FDEACF8091E8009C +:100AC00080FFE1CF8091F3002091F200382F611573 +:100AD000710519F02830310558F091E028303105C2 +:100AE00009F090E02091E8002E772093E800CBCF2A +:100AF00081918093F100615071092F5F3F4FE7CFE3 +:100B000080912E03882341F0853041F08091E800E8 +:100B100083FFBECF81E0089582E0089583E00895C9 +:100B200080910B0308959C014FB7F89480910003C6 +:100B300090910103A0910203B09103034FBF821B68 +:100B4000930B08952FB7F8948091000390910103BF +:100B5000A0910203B09103032FBF08952091FD02DD +:100B60003091FE022817390771F09093FE028093AE +:100B7000FD02E091FB02F091FC02309721F000842D +:100B8000F185E02D099408952091F9023091FA023F +:100B90002817390771F09093FA028093F902E091D7 +:100BA000FB02F091FC02309721F00680F781E02DE6 +:100BB00009940895E091FB02F091FC02309721F036 +:100BC0000190F081E02D099480E00895DC016091AE +:100BD000F5028091F602962F891301C00895292FFE +:100BE00030E0F901EE0FFF1FE351FD4F40815181CD +:100BF0004A175B07A1F487E08A9FA0018B9F500DE5 +:100C00001124485E5E4F81E0FA0184839613E6CF9B +:100C10002F5F3F4F237033272093F50208952F5FF6 +:100C20003F4F922F9370D8CF10928A021092890270 +:100C3000E8E1F1E08581811102C0148216823796C5 +:100C400081E0E234F807B1F70895FA01811101C09B +:100C5000FB010994089580918E03982F9E7F61F483 +:100C60008170826080938E0380919103853B18F0A0 +:100C700084EB8093910308958A34B0F38170886483 +:100C8000F1CFAF92BF92DF92EF92FF920F931F933B +:100C9000CF93DF93182F062FE901453B08F044EB73 +:100CA000E42FF0E0E851FD4F011110C0E4915E2FF8 +:100CB0004E2F4983E8835A83DF91CF911F910F9183 +:100CC000FF90EF90DF90BF90AF900895202F30E01D +:100CD0004491D42EE42EF12C56E0159FC00111242E +:100CE000EFEFF0E0BF010E94BA2E812F90E0880F55 +:100CF000991F55E5569FD001579FB00D11248A1BAF +:100D00009B0B982F990F890F5F01A21AB30AAE9C13 +:100D1000D001AF9CB00DBE9CB00D11245B2F089F7D +:100D200080011124012F11275F01A01AB10AAE9C86 +:100D30008001AF9C100DBE9C100D11245F01A81AFC +:100D4000B108A29EC001A39E900DB29E900D1124E9 +:100D5000892F9927E81BF90BEE9DC001EF9D900D9F +:100D6000FE9D900D1124E92F62307105A1F050F421 +:100D70006115710509F49DCF6130710581F0EB2F8C +:100D8000512F97CF6430710569F080F0663071059E +:100D900009F48FCFF4CFE42F4B2F592F8ACFE42FB4 +:100DA000412F87CFEB2F542F492F83CF4B2F5D2D12 +:100DB000E12F7FCF0E94A2059C0190917602809145 +:100DC0007702982B21F03093730220937202909156 +:100DD000780280917902982B21F030937102209350 +:100DE0007002E091FB02F091FC02309749F082E042 +:100DF000809374020480F581E02D84E792E00994E9 +:100E0000089540917602803F59F48091770287FFE0 +:100E10000DC01092770241110BC010926E0208C0F3 +:100E2000813F81F48091770218169CF3442381F06E +:100E30008091780290917902892B09F05AC0109222 +:100E40006D020895823F49F447FFF0CF1092760279 +:100E5000809177028111ECCFE0CF833F19F4141613 +:100E6000ACF3E4CF90917802893F29F41916F4F697 +:100E700010927802DBCF8A3F19F497FFD7CFF8CFD3 +:100E8000909179028B3F29F497FFD0CF109279028D +:100E9000CDCF8C3F19F41916CCF3C8CF9CE0980F36 +:100EA000953090F4845F990B21E030E0B90102C0E5 +:100EB000660F771F8A95E2F7CB01809590917502B6 +:100EC000892380937502B2CF8D3F31F480916F02F8 +:100ED0008E7F80936F02AACF8E3F21F480916F02A4 +:100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D +:100EF000F0CF089580916F0280FD16C081FD16C06D +:100F000082FD16C080916D028823A1F0883280F4A2 +:100F100028E0829FC001112468E270E00E94CE2E7A +:100F2000862F672B39F0089582E0089584E00895B4 +:100F300088E0089581E0089580916F0280FD14C0DB +:100F400081FD14C082FD16C080916E02882381F05D +:100F5000843180F422E3829FC001112464E170E0B7 +:100F60000E94CE2E862F08958CE0089589E1089581 +:100F700085E0089582E30895803F31F40E949C0744 +:100F80008195809377020895813F19F40E949C0710 +:100F9000F8CF823F31F40E949C07819580937602BE +:100FA0000895833F19F40E949C07F8CF893F29F4E4 +:100FB0000E947A078093780208958A3F21F40E9464 +:100FC0007A078195F7CF8B3F31F40E947A0781959C +:100FD0008093790208958C3F19F40E947A07F8CF24 +:100FE0009CE0980F953070F4845F990B21E030E01D +:100FF00001C0220F8A95EAF780917502822B8093B7 +:10100000750208958D3F31F480916F028160809365 +:101010006F0208958E3F21F480916F028260F7CFB6 +:101020008F3FB9F780916F028460F1CF80E008951F +:10103000F894E82FE295EF70F0E031A1282F2F709F +:1010400081E090E001C0880F2A95EAF7982F9095EB +:10105000932391A392A1892B82A3789408959091D0 +:10106000040392FF06C0282F28712830F9F4877FE7 +:10107000846093FF06C0282F28712831F1F4877E01 +:1010800084612091050320FF06C0382F3871383065 +:10109000D9F4877F816021FF06C0282F287128316D +:1010A000D1F4877E816194FD877E0895282F247175 +:1010B0002430F9F68B7F8860DCCF282F247124310F +:1010C00001F78B7E8861DDCF382F3171313019F710 +:1010D0008E7F8860E0CF282F2171213121F78E7E0D +:1010E0008861E1CFCF93DF93EC0182389105A9F1BC +:1010F000D8F58133910509F496C048F589329105F8 +:1011000009F48AC08A9709F495C0C11521E5D20770 +:1011100008F0BCC0C11530E5D30708F014C1C83EC3 +:10112000D10508F09CC0C03ED10560F5C83AD10594 +:1011300008F087C0C53AD10508F0FDC0C130D1051F +:1011400009F12097F9F0C430D105E0F440C08533AF +:10115000910509F45AC0C997C1F6809104038370C0 +:1011600089F0C0EED0E00EC0833E910599F170F495 +:10117000803E910501F1823E910539F6809104038C +:1011800082FD21C0CE01DF91CF910895863E910569 +:1011900061F1873E910571F1843E910509F0B5CF6B +:1011A0008091050381FFEECF80910403C7EED0E06C +:1011B00084FD0DC0E7CF8091040380FD12C19091A2 +:1011C000050390FFDFCFC3EED0E084FFDBCFD0E09C +:1011D000C0E0D8CF8091040382FD06C19091050341 +:1011E00090FDBFCF84FFCECFF2CF8091040383FD6B +:1011F000DDCFC8CF8091040383FDF9C09091050332 +:1012000091FFF0CFC4EED0E0BDCF8091040385FF05 +:10121000B9CFC9E2D0E0B6CF8091040385FFB2CF49 +:10122000C5E3D0E0AFCF8091040386FFABCFCAE225 +:10123000D0E0A8CF8091040386FFA4CFC1E3D0E023 +:10124000A1CFCF3BD10518F6C85AD0E0CC0FDD1F97 +:10125000C95BDE4F0990D881C02DD46493CFC115EE +:1012600040E2D40758F4C11581E0D80708F08ACFCE +:10127000C03FD10508F4ABCFD06584CFC11590E451 +:10128000D90708F4A4CFDF70D06A7CCFC11525E55B +:10129000D20700F5C11534E5D30708F08AC0C1159F +:1012A00043E5D40708F071C0C11582E5D80708F4FA +:1012B00067C0CE018370992721E030E002C0220F81 +:1012C000331F8A95E2F7C695C69580E2C89FE00174 +:1012D000112452C0C11599E5D907A8F4C11528E514 +:1012E000D20708F06BC0C11536E5D30708F06FCF01 +:1012F0008C2F0E942F08C82FD0E0DC2FCC27CC27C2 +:10130000DF71D0623FCFC1154AE5D40708F45BC056 +:10131000CE0190568115904208F059CF8D2F8F71D4 +:101320000E942F0890E0982F882788279F719C01A2 +:101330002C2BE901E6CFC55AD0E0CC5BDE4FC8814B +:10134000D0E0D0641FCFCE01E4E096958795EA9572 +:10135000E1F783702C2F26952695237040E2249F79 +:1013600090011124382B8C2F8370C1E0D0E002C093 +:10137000CC0FDD1F8A95E2F7C22BD32BDC6802CF9E +:10138000DC2FCC27C16FD06AFDCECE0183709927A8 +:1013900021E030E002C0220F331F8A95E2F7C695A4 +:1013A000C69590E2C99FE0011124C22BD32BDA68C5 +:1013B000E9CEDC2FCC27C46FD06AE4CEDC2FCC275B +:1013C000C06FD06ADFCE8C2F8F700E942F0834E060 +:1013D000D695C7953A95E1F7CF709C2FEC01D0696F +:1013E000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EEB9 +:1013F000D0E0C8CE80914402811110924402089539 +:101400008091430290914202892B90914102892B55 +:101410008093C601909144029923A1F0892B809377 +:10142000C60180914301882341F18091040387FF25 +:1014300024C08EE1E8ECF1E090E0815000F59111DC +:101440000E94FA09E091FB02F091FC023097E1F072 +:1014500080914301882359F08091040387FF07C0DE +:101460008091C6018093C70185E08093C601028008 +:10147000F381E02D86EC91E0099486E0DBCF2191A9 +:101480002223D9F29F5FD9CF0895909143019923E8 +:10149000D1F09091040397FF16C0E82FE695E695EA +:1014A000E695EE31E0F4F0E0EA53FE4F282F277086 +:1014B00081E090E001C0880F2A95EAF7809592813B +:1014C000892382830895E8ECF1E09191891303C0A8 +:1014D000DF0111971C9291E0EE3CF907B1F70895F6 +:1014E000909143019923C1F09091040397FF14C098 +:1014F000E82FE695E695E695EE31F8F4F0E0EA534C +:10150000FE4F877021E030E001C0220F8A95EAF794 +:101510008281822B82830895A8ECB1E0EFEF90E006 +:101520002D91821751F0EF3F19F4211101C0E92FDD +:101530009F5F9630A9F7EF3F09F408950E2E000C37 +:10154000FF0BEA53FE4FE6CF80913F029091FE01E0 +:10155000981301C008958F5F8770FACF990F990F84 +:10156000890F982F977086958695869524E0829F9F +:10157000F0011124E651FE4F50E040E080E021915F +:1015800030E0092E02C0369527950A94E2F72170C3 +:101590003327042E01C0220F0A94EAF7822B4F5FF3 +:1015A0005F4F4430510559F70895990F990F890FEE +:1015B000982F977041E001C0440F9A95EAF78695FD +:1015C0008695869594E0899FF0011124E651FE4F9F +:1015D00030E020E070E05191DF011197CB01022E45 +:1015E00002C0969587950A94E2F7817081958527C8 +:1015F000842385278C932F5F3F4F2430310559F783 +:10160000089590E080E00E94C40590E080E00E9490 +:10161000AE0510924202109241020E94000A86E03A +:10162000E4E7F2E0DF011D928A95E9F710926E027D +:1016300010926D0210926F020C94DA06909346029B +:10164000809345020C94010B882341F08095909182 +:1016500042028923809342020C94000A0895882351 +:1016600039F090914202982B909342020C94000A18 +:101670000895882341F080959091430289238093B7 +:1016800043020C94000A0895882339F09091430294 +:10169000982B909343020C94000A0895882309F430 +:1016A00059C0823871F40E94DA0581FF53C089E382 +:1016B0000E94700A0E94000A89E30E94450A0C9465 +:1016C000000A833859F40E94DA0580FF43C083E59D +:1016D0000E94700A0E94000A83E5EFCF843859F413 +:1016E0000E94DA0582FF36C087E40E94700A0E94D9 +:1016F000000A87E4E2CF9CEF980F913AF0F290E273 +:10170000980F983088F4877021E030E0A90102C07A +:10171000440F551F8A95E2F7CA01809590914302C4 +:10172000892380934302CBCF9BE5980F933020F41D +:1017300090E080E00C94C40598E5980F973120F470 +:1017400090E080E00C94AE05803F20F00E940107FD +:101750000C94DA060895809580FF08C0589A81FF9E +:1017600007C05D9A82FF06C05C9A08955898F7CF2B +:101770005D98F8CF5C98089590912E03943029F5E8 +:101780008093060370930803609307039093E90026 +:101790008FEF9091E800815095FD06C095ED9A95E8 +:1017A000F1F700008111F5CF8091E80085FF0DC0B1 +:1017B00050E040E063E070E086E093E00E94560471 +:1017C0008091E8008E778093E8000895BC0184E062 +:1017D0000C94BC0BBC0183E00C94BC0B9C0184E01A +:1017E0008093E9009FEF8091E800915085FD06C04D +:1017F00085ED8A95F1F700009111F5CF8091E80011 +:1018000085FF0CC050E040E066E070E0C9010E9436 +:1018100056048091E8008E778093E8000895CF9376 +:10182000DF93EC01809143018823B1F1809104039F +:1018300087FF32C060E284E08093E9008FEF9091EF +:10184000E800815095FD06C095ED9A95F1F70000EE +:101850008111F5CF8091E80085FF1BC08091430185 +:1018600070E050E040E0811104C050E040E068E0EA +:1018700070E0CE010E9456048091E8008E7780933C +:10188000E80080E2FE01ACE0B3E001900D928A95A1 +:10189000E1F7DF91CF91089568E081E0CDCF81E05D +:1018A0008093E00080E28093D8001092C9008FE11D +:1018B0009EE40197F1F700C0000087E090EBDC01A7 +:1018C0008093960390939703A0939803B093990302 +:1018D00088E19CE00FB6F894A895809360000FBE55 +:1018E00090936000FFCFCF93C82F882309F4AEC038 +:1018F0008238C1F40E94DA0581FDA8C089E30E9404 +:10190000700A0E94000A2FEF81EE94E0215080407F +:101910009040E1F700C0000089E30E94450ACF91A2 +:101920000C94000A8338A1F40E94DA0580FD8EC071 +:1019300083E50E94700A0E94000A2FEF81EE94E076 +:10194000215080409040E1F700C0000083E5E5CFE2 +:101950008438A1F40E94DA0582FD78C087E40E94F1 +:10196000700A0E94000A2FEF81EE94E0215080401F +:101970009040E1F700C0000087E4CFCF8CEF8C0FE0 +:10198000813A88F580914301882301F18091040315 +:1019900087FF1CC0EC2FE695E695E695F0E0EA534C +:1019A000FE4F828190E04C2F477021E030E002C072 +:1019B000220F331F4A95E2F782239323892B79F074 +:1019C0008C2F0E94450A0E94000A09C0E8ECF1E051 +:1019D0008191C817A9F321E0EE3CF207C9F78C2FDB +:1019E0000E94700A9CCF80E28C0F883068F4C77028 +:1019F00021E030E001C0220FCA95EAF7809143024E +:101A0000822B809343028BCFEBE5EC0FE33040F465 +:101A1000F0E0EC5BFE4F808190E0CF910C94C40528 +:101A2000E8E5EC0FE73150F4F0E0EE0FFF1FE95B63 +:101A3000FE4F80819181CF910C94AE05C03F30F074 +:101A40008C2F0E94BC07CF910C94DA06CF91089599 +:101A50001F93CF93DF93182FD0E0C0E0893311F4A8 +:101A6000C0E5D0E0812F0E94730C209731F4812FC4 +:101A7000DF91CF911F910C944E0B8FE99FE001975E +:101A8000F1F700C000002197F0CF0F931F93CF9381 +:101A9000DF93C62FD42F022FFC0182818823A1F06F +:101AA000609395030E94A2059093940380939303FF +:101AB000C77081E001C0880FCA95EAF7DF91CF9126 +:101AC0001F910F910C94440B80919503681335C0BE +:101AD00080919303909194030E949305883C910513 +:101AE00060F510E21D0FCD17B9F080E28C0F883041 +:101AF00040F4C77081E001C0880FCA95EAF70E94E0 +:101B0000390B183048F481E09D2F977001C0880F81 +:101B10009A95EAF70E94440B802F0E94280D1830F6 +:101B200098F4D77081E001C0880FDA95EAF7DF9169 +:101B3000CF911F910F910C94390BC77081E001C0B8 +:101B4000880FCA95EAF7F3CFDF91CF911F910F91DC +:101B50000895DF92EF92FF920F931F93CF93DF933D +:101B6000E82FF0E0E65BFD4FD490282F26952695D0 +:101B7000269530E0F901E65CFD4F0491877010E096 +:101B8000082E02C0159507950A94E2F701701127F7 +:101B9000F901E65DFD4FE490F12C082E02C0F594AA +:101BA000E7940A94E2F791E0E922FF24F901E65E66 +:101BB000FD4FC491D0E002C0D595C7958A95E2F754 +:101BC000C170DD270115110519F081EE0E94730C1B +:101BD000E114F10419F086EE0E94730C8D2D0E9421 +:101BE000280DEF2819F086EE0E944E0B012B19F0FC +:101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 +:101C00001F910F91FF90EF90DF900C94280DDF91C2 +:101C1000CF911F910F91FF90EF90DF900895CF9398 +:101C2000DF93C7E0D2E060E0CE010E94852F2196CD +:101C3000C11584E0D807B9F7DF91CF9108956F926D +:101C40007F928F929F92AF92BF92CF92DF92EF924C +:101C5000FF920F931F93CF93DF9389E0C82E85E007 +:101C6000D82E0FE510E0E801E09736011CC0F50121 +:101C700085909490692DC7010E94852F682DC7011A +:101C800001960E94852F82E0A80EB11C82E0E80E2A +:101C9000F11CCE15DF0559F788E0680E711C2896F7 +:101CA0000C171D0731F07E0188E0E81AF108530196 +:101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 +:101CC000180789F6DF91CF911F910F91FF90EF9048 +:101CD000DF90CF90BF90AF909F908F907F906F904C +:101CE0000895CF93C82F6FEF811161E283E290E0F6 +:101CF0000E94852F6FEFC11169E084E290E00E949D +:101D0000852F6FEFC11167E285E290E0CF910C94CF +:101D1000852F80E00E94710E60E086E290E00E94D4 +:101D2000852F0E941F0E0E940F0E81E00C94710EF1 +:101D3000CF93C0910503C2FB992790F9981781F0C2 +:101D400080FBC2F9C09305036091040384E090E036 +:101D50000E94852F6C2F82E290E0CF910C94852F0A +:101D6000CF9108950F931F93CF93DF9328E0629F45 +:101D7000E001112450E0440F551FC40FD51F30E37C +:101D8000839FC00DD11D1124CE0187960E94712F13 +:101D9000082F10E0102F0027CE0188960E94712F87 +:101DA0009801282BC901DF91CF911F910F910895C0 +:101DB000462F8A3038F4763028F4643018F4672FD0 +:101DC0000C94B20E90E080E00895BF92CF92DF9223 +:101DD000EF92FF920F931F93CF93DF937C010091BB +:101DE0003803109139038091450290914602082BE7 +:101DF000192BCFE0D0E0CC24C394D12CBC2EC6014B +:101E00000C2E02C0880F991F0A94E2F780239123B9 +:101E1000892B71F4219790F7B12C8B2DDF91CF9105 +:101E20001F910F91FF90EF90DF90CF90BF9008959A +:101E3000B7018C2F0E94D80E0E947208019751F3AF +:101E4000ECCFCF93DF93EC010E94E50EBE010E9420 +:101E5000D80EDF91CF910C947208FC018681978196 +:101E6000009779F00E947208292F2F7092959F7029 +:101E700092509E30A0F4E92FF0E0E554F04D0C9420 +:101E8000042F808191810E94210FEECF803F19F0B5 +:101E900020F4883E20F481E00895843FE1F380E05F +:101EA0000895883EC0F3813FD1F7F5CF822F869504 +:101EB0008695869508951F93CF93DF9300D000D029 +:101EC0000F92CDB7DEB7FC01268137812115310590 +:101ED00041F525E0DE01119601900D922A95E1F77A +:101EE000FC01228189819A812223B9F06623A9F01D +:101EF0000E94E50E182F682F89819A810E94D50AC9 +:101F000069817A81812F0F900F900F900F900F9021 +:101F1000DF91CF911F910C94D80E0E94AE0A182F1A +:101F2000EFCFC9010F900F900F900F900F90DF919E +:101F3000CF911F91089583E290E00E94712F81322A +:101F400089F484E290E00E94712F893059F485E28F +:101F500090E00E94712F91E0873209F090E0892F84 +:101F60008170089580E0FCCFCF9384E090E00E94E0 +:101F7000712FC82F82E290E00E94712F982F8C2F32 +:101F8000CF91089560918E03669570E04BE050E02C +:101F90008AE091E00E94572F892B19F481E0809309 +:101FA00084020E94A20590937E0280937D02089590 +:101FB0005F926F927F928F929F92AF92BF92CF92D9 +:101FC000DF92EF92FF920F931F93CF93DF93CDB7E2 +:101FD000DEB7C455D1090FB6F894DEBF0FBECDBF32 +:101FE00080918E0380FD0AC0EAE3F3E01182108243 +:101FF0001282339623E0EE38F207C1F780907B021D +:1020000090907C028114910409F459C080917A0265 +:10201000811155C0D12CC12C66246394712C13E01E +:10202000512E8091850293010C2C01C0220F0A943D +:10203000EAF7822309F43BC0F601EE0FFF1FE80D1B +:10204000F91DE590F490E114F104C9F145E050E088 +:10205000B701CE0101960E944E2F09810F3F39F141 +:102060008A81800F9927991F8D31910514F08CE199 +:1020700090E05C01AA0CBB1C8A0D9B1DFC01E65C78 +:10208000FC4F5F01059D80011124065C1C4F0A1561 +:102090001B0520F0F5E0EF0EF11CD8CF98014D8123 +:1020A0006C818B810E9441060D5F1F4FF0CF2FEF97 +:1020B000C21AD20A38E0C316D10409F0B2CF7DEEBD +:1020C000A72E73E0B72EDE011196AE014B5A5F4F7B +:1020D0001A2F7B2FF5018491282F30E0C901880F3A +:1020E000991F820F931F865C9C4FFC01C080D1809A +:1020F000E280CD92DD92ED92FFEFAF1ABF0AA417F6 +:10210000B50741F7279A35B13F7725B120686FB7FA +:10211000F894812F972FFC017191CF01E8E025B948 +:10212000000000C077FF35B9770F000000C000C085 +:1021300000C035B900C0EA9591F78417950759F7A3 +:102140006FBF8FE594E00197F1F700C00000CC5A13 +:10215000DF4F0FB6F894DEBF0FBECDBFDF91CF913A +:102160001F910F91FF90EF90DF90CF90BF90AF90B5 +:102170009F908F907F906F905F9008951F93CF9363 +:10218000DF9300D00F92CDB7DEB7162F90918E035C +:1021900090FF18C09E012F5F3F4F48E76FEF0E94EE +:1021A00041068B819981612F70E0FB01EE0FFF1FCB +:1021B000E60FF71FE65CFC4F2A8121839083828320 +:1021C0000E94D80F0F900F900F90DF91CF911F9129 +:1021D0000895EF92FF920F931F93CF93DF938C019B +:1021E000CAE3D3E0F12CE12CF801948160919003D3 +:1021F00080918F03FEE0EF16F104FCF49923F9F0CF +:102200009E01409191030E9441062FEFE21AF20ACB +:1022100023968CE1E816F10439F70E94D80FF801F3 +:10222000848190E00196817099278483DF91CF911A +:102230001F910F91FF90EF900895992309F39E014C +:1022400040E0E1CF8F929F92AF92BF92CF92DF9208 +:10225000EF92FF920F931F93CF93DF93EC014C818A +:10226000042F10E09801D8010E94192F9B01AC01A6 +:102270000E942F2F4B015C01E0E2F0E0E01BF10B2C +:10228000A5E5B0E0AC019B010E942F2F6B017C0102 +:102290009F01DF010E94112F9B01AC010E943A2F88 +:1022A0009B01AC01280D391D4A1D5B1DC701B601FC +:1022B0000E94E22EF22E822F90E039E23F15D8F1F3 +:1022C00043E0249F9001112435952795122F1095F6 +:1022D0009AE3C92E93E0D92E00E085E5E82EEF18A9 +:1022E0008E2D01FD8F2D9601412F609190030E944C +:1022F00041060F5F53E0C50ED11C0C3189F70E94D7 +:10230000D80F9C8181E0992319F0903219F48FEF56 +:102310008093170180911701890F8C83DF91CF91F2 +:102320001F910F91FF90EF90DF90CF90BF90AF90F3 +:102330009F908F90089525E530E0A901481B590B27 +:10234000CA019A01220F331F280F391F37FFBCCF54 +:102350002F5F3F4FB9CF0F931F93CF93DF93CAE304 +:10236000D3E0FE01118210821282339683E0EE38B0 +:10237000F807C1F710E000E080918702082E000CFA +:10238000990B081719078CF180911601082E000C83 +:10239000990B801791074CF19E0140919103609138 +:1023A000900380918F030E9441060F5F1F4F239679 +:1023B0000C31110509F70E94D80F809115019091F9 +:1023C0008702980F9093870220911601280F20937F +:1023D0001601121614F49B311CF08195809315019F +:1023E000DF91CF911F910F910895198218821A825F +:1023F000DCCFBF92CF92DF92EF92FF920F931F93A9 +:10240000CF93DF93FC018281DD24DA9480FD02C04A +:10241000DD24D3940AE313E0D0E0C0E02CE1B22E37 +:10242000F80111821082128294E0E92EF12CC12C65 +:10243000809186028C0D8D310CF43DC06B2D0E9475 +:10244000AC2E892F082E000C990B8C179D0791F448 +:10245000809191038E9DA0018F9D500D1124559563 +:1024600047955595479598016091900380918F030A +:102470000E944106CD0CF1E0EF1AF108C9F6219651 +:102480000D5F1F4FCC31D10559F60E94D80F8091B6 +:10249000860291E0D91215C0811111C08BE18093A1 +:1024A0008602DF91CF911F910F91FF90EF90DF9007 +:1024B000CF90BF90089587FFC5CF845EC3CF815072 +:1024C000EECF90E00196BE010E94CE2EE8CFEF92B3 +:1024D000FF921F93CF93DF93EC018AE3E82E83E012 +:1024E000F82E10E08C819701409191036091900348 +:1024F000810F0E944106175F83E0E80EF11C1C3F2C +:1025000089F70E94D80F9A818C8190FF08C08F5F55 +:102510008C83DF91CF911F91FF90EF9008958150B0 +:10252000F7CF90918E0390FF0CC0EAE3F3E0818334 +:1025300060834283339693E0EE38F907C1F70C9439 +:10254000D80F08950F931F93CF93DF9300D00F926E +:10255000CDB7DEB78C018091880281110AC09E013F +:102560002F5F3F4F44EB6FEF0E9441068A818093BB +:102570008802F8016481613069F08091880240E04E +:10258000662361F040E0623011F44091880280E0FF +:1025900060E004C06091880240E080E00E949112F7 +:1025A000F801848190E0019663E070E00E94CE2EF5 +:1025B00084830F900F900F90DF91CF911F910F9117 +:1025C0000895CF93DF9300D00F92CDB7DEB79091EF +:1025D0008E0390FF0AC09E012F5F3F4F0E9441066D +:1025E0004B8169818A810E9491120F900F900F9008 +:1025F000DF91CF910895CF93DF93EC01EEE8F3E004 +:10260000438162818C810E94E1128C818F5F8C8377 +:10261000DF91CF910895CF93DF93EC01EC81F0E04F +:10262000E75FFB4F4491EEE8F3E0628181810E9415 +:10263000E1128C818F5F8C83DF91CF910895CF92CF +:10264000DF92EF92FF926B017C010E942B06B70193 +:10265000A60188E090E0FF90EF90DF90CF900C947F +:10266000972F5F926F927F928F929F92AF92BF92BD +:10267000CF92DF92EF92FF920F931F93CF93DF934E +:1026800000D00F92CDB7DEB7182F762E042F622E12 +:1026900090918E0390FF29C0E92FE695AE2FB0E010 +:1026A000A157BE4F8C91809383029E7F923081F51B +:1026B0009E012F5F3F4F812F0E9441064B81698110 +:1026C0008A810E94911210938F037092900300935D +:1026D0009103662051F060918E0370918F03809179 +:1026E0009003909191030E941F130F900F900F90F1 +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:10270000BF90AF909F908F907F906F905F90089553 +:10271000823019F400919103D6CF863019F41091CC +:102720008F03D1CF8930D9F3893169F6E9518E2FE2 +:102730008170582EE695F0E0E851FC4FA590B490DA +:10274000BB248AE3E82E83E0F82ED12CC12C9CE137 +:10275000892E912CC601B4010E94BA2E812F5110EE +:1027600013C0860F9701402F672D0E944106CA0CA7 +:10277000DB1C83E0E80EF11C8EE8E81683E0F80627 +:1027800049F70E94D80F9FCF861BECCFEEE8F3E00D +:10279000438128E0421B08F440E021E0628181810E +:1027A0000C943113EEE8F3E0438128E0420F08F483 +:1027B0004FEF21E0628181810C943113EEE8F3E068 +:1027C000628128E0621B08F460E021E0438181819E +:1027D0000C943113EEE8F3E0628128E0620F08F414 +:1027E0006FEF21E0438181810C943113EEE8F3E037 +:1027F000818121E04381628188500C943113EEE89D +:10280000F3E0818121E043816281885F0C94311380 +:1028100080919203882319F08150809392036091F4 +:102820008E0370918F0380919003909191030C948B +:102830001F1380919203833018F48F5F809392036B +:1028400060918E0370918F0380919003909191031A +:102850000C941F1390918E0390FF36C091708111DC +:1028600029C0926090938E03662351F060918E038D +:1028700070918F0380919003909191030E941F1398 +:1028800060918E03669570E04BE050E08AE091E045 +:102890000E94572F892BA9F01092840281E0809327 +:1028A000800220E0409191036091900380918F031A +:1028B0000C943113853210F09864D4CF880F982B84 +:1028C000D1CF0E94C20FEACF089521E030E0A901E4 +:1028D00002C0440F551F8A95E2F7CA012091850274 +:1028E000662399F0822B8093850280918402811166 +:1028F00006C080918E0360E086950E942A14809124 +:102900008E0380FD05C00C94D80F80958223EBCFF9 +:1029100008950F931F93CF93DF93EC0161E000972D +:1029200009F0682F617080E00E94651460E02097D4 +:1029300021F0BE0176956795617081E00E94651473 +:1029400060E0209731F0BE017695679576956795A2 +:10295000617082E00E94651460E0209739F0BE014A +:1029600013E0769567951A95E1F7617083E00E9410 +:10297000651460E0209739F0BE01B4E07695679564 +:10298000BA95E1F7617084E00E946514AE0170E0D1 +:1029900060E0BB27A72F962F852F0097A105B105D3 +:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 +:1029B000279517950795FA95D1F70115110521056A +:1029C000310519F08C5FB901A8018A019B01E2E091 +:1029D0003695279517950795EA95D1F701151105B5 +:1029E0002105310519F08E5FB901A801769567952B +:1029F00057954795452B462B472B09F08F5F823023 +:102A000011F160F4882399F08130C1F0CE01DF919B +:102A1000CF911F910F91089580E0C6CF8330C1F010 +:102A20008430A1F720E044E66FEF8FE004C020E09F +:102A300044E66FEF82E30E943113E8CF20E044E6E2 +:102A40006FEF85E0F8CF20E044E66FEF80E8F3CF4A +:102A500020E044E66FEF87EDEECF0E94891490935B +:102A60003903809338030C94010B809138039091C3 +:102A700039039C01267033272630310519F488600C +:102A80000C942D15877FFCCF21E030E002C0220F8F +:102A9000331F8A95E2F72095309580913803909105 +:102AA0003903822393230C942D1590914002809535 +:102AB000892380934002282F277039F4282F082E6D +:102AC000000C330B9217130621F49091050392FF2B +:102AD00007C08595859585950E9444151092400202 +:102AE000089521E030E002C0220F331F8A95E2F7FB +:102AF0008091380390913903822B932B0C942D15E0 +:102B000080918E038695815009F484E261E00C94F3 +:102B10002A1480918E0386958F5F853208F081E0BC +:102B200061E00C942A1490918E0390FF07C0969553 +:102B3000981720F0961710F40C94891561E00C9406 +:102B40002A14EEE8F3E083E0808311828FEF828322 +:102B500088E28383148260817181828193810C94E5 +:102B60001F1369EE7EEF90E080E00E94A32F60E0EB +:102B700082E090E00E94852F60E083E090E00E9478 +:102B8000852F109246021092450260E084E090E0AA +:102B90000E94852F60E082E290E00E94852F60E035 +:102BA00085E090E00E94852F60E086E090E00E9442 +:102BB000852F6FEF87E090E00E94852F40E050E086 +:102BC000BA0188E090E00E94972F60E08DE090E0ED +:102BD0000E94852F40E050E0BA0188E190E00E9419 +:102BE000972F60E087E190E00E94852F40E050E061 +:102BF000BA018CE190E00E94972F70E060E080E2E3 +:102C000090E00E94A32F40E050E0BA0188E190E0FC +:102C10000E94972F80E00E94710E0E94890E40E072 +:102C200050E0BA018FE090E00E94972F40E050E022 +:102C3000BA0183E190E00C94972F90E080E00E942D +:102C40007F2F893E9E4F11F40C949B0F80E00895D6 +:102C50001092430280914301E8ECF1E0882359F09F +:102C60008091040387FF07C08EE1DF011D928A95E2 +:102C7000E9F70C94010B86E0F8CF1F93CF93DF9315 +:102C8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA3 +:102C900080E393E02091F100DC012D93CD01B3E0BE +:102CA00088339B07B9F780913103833009F471C0F1 +:102CB000B8F4813009F448C0823009F4B2C0809180 +:102CC000E80083FF3AC180913003909131039A303C +:102CD00008F033C1E92FF0E0E753F04D0C94042FD6 +:102CE0008A3009F48DC08B3009F470C0893039F70F +:102CF00080913003813219F780913403909135032C +:102D0000009711F00297D9F68091E800877F8093B1 +:102D1000E8008091E80082FF37C09091F300809135 +:102D2000F200029729F48091F1008B7F813021F429 +:102D30008091F10080930B038091E8008B77809362 +:102D4000E8000E948004BBCF80913003813A09F0F3 +:102D5000B6CF8091E800877F8093E80080913403AC +:102D600090913503892B61F460E28CE093E070E090 +:102D70000E9432058091E8008B778093E8009FCF16 +:102D800060E090E080E0F3CF80912E038111C1CF0D +:102D900096CF80913003813A09F091CF809134032E +:102DA00090913503892B09F08ACF8091E800877FC5 +:102DB0008093E8008091E80080FFFCCF8091430180 +:102DC0008093F1008091E8008E77B9CF8091300335 +:102DD000813209F074CF8091340390913503892BAF +:102DE00009F06DCF8091E800877F8093E8000E9412 +:102DF000800480913203809343010E9428165FCFA4 +:102E000080913003813209F05ACF8091E800877FAA +:102E10008093E8000E9480048091330380930A032A +:102E20004ECF80913003813A09F049CF8091E8007C +:102E3000877F8093E8008091E80080FFFCCF80913D +:102E40000A03BECF803899F0823809F076C08091AD +:102E500034038F70873008F070C08093E900809150 +:102E6000EB0085FB882780F91092E90006C080916D +:102E70002C0390912D03911182609091E800977F2F +:102E80009093E8008093F1001092F1008091E800A7 +:102E90008E77B5C1882309F4A2C1823009F04DC0F4 +:102EA000809132038111A6C1809134038F702FEF7E +:102EB000280F263008F041C08093E9002091EB00F4 +:102EC00020FF98C1933031F48091EB0080628093B1 +:102ED000EB0090C19091EB0090619093EB0021E0AA +:102EE00030E001C0220F8A95EAF72093EA001092A1 +:102EF000EA008091EB008860EACF81111EC010913A +:102F000032031F778091E3008078812B8093E30068 +:102F10008091E800877F8093E8000E948004809180 +:102F2000E80080FFFCCF8091E30080688093E3009D +:102F300082E0111183E080932E038091E80083FFEB +:102F40000AC08091E800877F8093E8008091EB00C1 +:102F500080628093EB00AA960FB6F894DEBF0FBE96 +:102F6000CDBFDF91CF911F9108958058823028F70F +:102F700020913203309133032C3DE3E03E07A1F56D +:102F800083E08A838AE289834FB7F894DE0113963F +:102F900020E03EE051E2E32FF0E050935700E4914F +:102FA00020FF03C0E295EF703F5FEF708E2F90E03F +:102FB000EA30C0F0C7968D939D932F5F243159F767 +:102FC0004FBF8091E800877F8093E8006AE270E05D +:102FD000CE0101960E9432058091E8008B778093A4 +:102FE000E800ABCFC096E7CF8091340390913503D2 +:102FF000432F55274330510509F44AC078F5413035 +:10300000510509F47AC08BE590E0E9EEF6E0423034 +:10301000510509F092CF2091E800277F2093E80026 +:1030200020913603309137038217930708F49C01EF +:1030300040E02115310509F065C0411163C0809160 +:10304000E80082FDC9CF80912E03882329F28530C4 +:1030500019F28091E80083FFF2CFBECF41325105D3 +:1030600009F43CC04232510509F067CF8330910525 +:1030700008F063CFFC01EE0FFF1FE954FE4F0190F3 +:10308000F081E02D8C549E4FDC018C9190E01AC0B1 +:10309000332721303105D1F02115310561F022307F +:1030A000310509F04ACFE6E5F7E0E4918E2F90E094 +:1030B000E6E5F7E007C0E6E7F7E0E4918E2F90E061 +:1030C000E6E7F7E0009709F438CFA5CFE2E6F7E0AE +:1030D000E4918E2F90E0E2E6F7E0F4CF83309105A3 +:1030E00008F02BCF880F991FFC01E354FE4F01908D +:1030F000F081E02D89E090E08ECF82E190E0E4E481 +:10310000F7E089CF80912E03882309F465CF8530BD +:1031100009F462CF8091E80083FD5ECF8091E800E2 +:1031200082FD8DCF8091E80080FF83CF9091F300E6 +:103130008091F2002115310519F08830910550F089 +:1031400041E0089709F040E08091E8008E77809395 +:10315000E8006FCF44914093F1003196215031093E +:103160000196E8CF803809F0E8CE8091E800877FAB +:103170008093E80080912F038093F10087CE811126 +:10318000DCCE10913203123008F0D7CE8091E800E7 +:10319000877F8093E80010932F030E9480041123FF +:1031A00011F084E005C08091E30087FDFACF81E053 +:1031B00080932E0342E061EC81E00E949F0442E292 +:1031C00061EC84E00E949F0442E261EC82E00E9494 +:1031D0009F0442E260EC83E00E949F04AECE8091A7 +:1031E0003203813009F0A9CE81E0933009F080E00C +:1031F00080932D031092E9008091E800877F8093EF +:10320000E8000E94800499CE9F92AF92BF92CF9225 +:10321000DF92EF92FF920F931F93CF93DF9300D033 +:1032200000D0CDB7DEB77C01FC0183819481892B6E +:1032300031F08081918189238F3F09F0F0C50F9093 +:103240000F900F900F90DF91CF911F910F91FF90F2 +:10325000EF90DF90CF90BF90AF909F90089598012E +:1032600022513F452031310508F0CEC58FEF93E064 +:103270000E94712F025167E0C62E62E0D62E88238D +:1032800039F1809140028770D1F2F7018281882361 +:10329000B1F282E00F900F900F900F90DF91CF91DD +:1032A0001F910F91FF90EF90DF90CF90BF90AF9064 +:1032B0009F900C945515C114F4E0DF0611F3C6017C +:1032C0000E94712F811101C001502FEFC21AD20A42 +:1032D0000111F1CF1C821B82BB24B3945AE0A52EAE +:1032E00086010F5F1F4FC6010E94712F89831A82CA +:1032F000882339F29FEF980F933008F58A83B982BB +:1033000032E0C30ED11CC8010E94712F8B83882329 +:1033100009F4B7CF8E010F5F1F4FF801808188231A +:10332000F9F2813009F043C091818281913049F4F2 +:103330000E5F1F4F0E94280D0F5F1F4FEECF6801D9 +:10334000E9CF923029F40E5F1F4F0E94730CF4CF27 +:10335000933029F40E5F1F4F0E944E0BEDCF943037 +:1033600019F00F5F1F4FE8CF0E5F1F4F30E020E0D6 +:10337000B8016F5F7F4FF80141818053990B8A300C +:10338000910550F021503109B8F28FE99FE0019783 +:10339000F1F700C00000F6CFA29EF001A39EF00D51 +:1033A00011249C012E0F3F1F842F8B01E1CF0E941F +:1033B000A90DC2CF81E00E9471150E94351561CF21 +:1033C00081E00E944415F9CF82E0FBCF04389FE5ED +:1033D000190709F483C008F473C00538FFE51F0717 +:1033E00009F041C5882309F43EC580EE0E94730CA4 +:1033F00081EE0E94730C80E10E94730C80E10E94B8 +:103400004E0B81EE0E944E0B80EE0E944E0B80917F +:10341000E60191E062E189278093E601882309F4BF +:103420008DC08FE00E94BE1066E18FE00E94BE104A +:103430001AC5882369F180914F02811106C081E08D +:1034400080934F0282EE0E94730C0E94A20590931B +:103450004E0280934D028BE20E94730C04C58823B8 +:10346000A1F080914F02811106C081E080934F024C +:1034700082EE0E94730C0E94A20590934E028093EC +:103480004D0281EE0E94730CE6CF81EE0E944E0B3E +:103490008BE20E944E0BE7C4882309F4E4C481EE5A +:1034A0000E94730C83EE0E94730C8FE40E94730CD5 +:1034B0008FE40E944E0B83EE0E944E0B81EEE9CF0B +:1034C000882309F4D0C481EE0E94730C83EE0E941D +:1034D000730C80E50E94730C80E5EBCF882309F420 +:1034E000D0CE10914C0281E0182710934C020E941C +:1034F000A20590934B0280934A0268E1112381F068 +:103500008FE00E94BE1069E18FE00E94BE106AE168 +:103510008FE00E94BE106BE18FE00E94BE10B1CE22 +:1035200084EB0E94BE1069E184EB0E94BE106AE148 +:1035300084EB0E94BE106BE184EBEFCF8FEA0E9418 +:10354000BE1066E18FEA72CF82EE0E94730CC6C491 +:1035500083E00E942F0B88E10E94730C88E10E9497 +:103560004E0B83E00E94240BB9C482EE0E94730CC0 +:1035700087E50E94280DB2C486EE0E94280D88E1DE +:10358000F8CF895AC5C482EE0E944E0BD9C48CE292 +:103590000E94280D8091E801882309F4D1C489E3B1 +:1035A0000E94280DCDC488E2FBCF033FFCE51F0736 +:1035B00039F1A0F4083D3CE51307F1F0093D8CE535 +:1035C000180751F1073D9CE5190709F0BDC426E233 +:1035D00041EE61EEC7010E94450D53CE053FECE57B +:1035E0001E07B1F088F0063F2CE5120709F0ACC4C5 +:1035F00027E245EE66EEEECF27E245EE65EEEACF36 +:1036000026E241EE60EEE6CF27E245EE64EEE2CF41 +:1036100026E241EE62EEDECF28E241E0EFCF80917C +:103620000403806106309CE5190709F48CC0809181 +:103630000403886007301C4508F485C080910403AA +:10364000806281C0809104038D7F0C30FCE51F07F0 +:1036500009F479C070F4809104038C600A303CE571 +:10366000130709F470C008F481C0809104038E7FB1 +:103670006AC080910403877F0E309CE5190709F426 +:1036800062C0809104038B7F0F301C4508F45BC03F +:10369000809104038F7E57C00B3FFCE51F0709F4A0 +:1036A0005DC030F503313CE5130709F46DC078F4D3 +:1036B00001319CE5190709F463C002311C4509F08A +:1036C0007EC40E942816809104038F773CC0053188 +:1036D000FCE51F0709F460C008F474C0809105037D +:1036E00081600A3F1C4509F06AC48093050367C4E2 +:1036F0000F3F8CE5180709F44BC088F4809105034F +:103700008D7F0D3FECE51E0781F3809105038E7FD1 +:103710000E3F1C4550F3809105038360E6CF0130D6 +:103720002DE5120709F457C008F442C060E00230EA +:103730001D4509F044C48EE090E00E94852F3FC4EF +:103740008091040381608093040339C48091040351 +:103750008260F9CF809104038460F5CF80910503E6 +:103760008260C3CF809104038064EDCF0E9428164D +:10377000809104038068E7CF809104038F7DE3CFBD +:10378000809104038F7BDFCF80910403837FDBCFA5 +:10379000809105038C7FA9CF8091040382FB992738 +:1037A00090F921E0922790FB82F990FB83F9CBCF2F +:1037B00080910503982F909591708E7F892B90FBB7 +:1037C00081F993CF0E94281690910403892F97FBCB +:1037D00087F98058B8CF61E0AECF882309F402C4DE +:1037E000809143028A7A91E009F490E09093E90194 +:1037F000811106C089E20E94700A0E94000A41CD30 +:1038000085E3F9CF85E3F3C3043CFCE51F0709F426 +:1038100093C046EF53E16FEF73E1053C2CE51207CF +:1038200009F00AC40E9425062CCD093C3CE513078B +:1038300009F491C070F4073CECE51E0709F486C05A +:103840004AEE53E16EED73E1083CFCE51F0751F3CE +:10385000F3C30A3C2CE5120709F482C048E054E1A6 +:1038600069E174E10B3C3CE51307E1F2E5C3013D7E +:103870008CE5180709F487C0B0F40E3CECE51E0790 +:1038800009F47BC008F476C00F3C2CE5120709F45C +:1038900077C06EE089E0003D3CE5130709F0CCC33A +:1038A0000E949315EECC043D8CE5180709F471C015 +:1038B00078F4023DECE51E0709F468C061E088E198 +:1038C000033DFCE51F0709F0B7C30E942A14D9CCB9 +:1038D000053D2CE5120709F45FC00D35100709F40A +:1038E000D0CCAAC380918E0380FF1BC08E7F8093B3 +:1038F0008E0360918E0370918F038091900390915D +:1039000091030E941F13109284028FEF90E7E2E070 +:1039100081509040E040E1F700C000000E94D80FC5 +:10392000B0CC816080938E0361E08695CECF40E875 +:1039300055E169E875E176CF49E855E160E875E160 +:1039400071CF4FEF53E166EF73E16CCF4EED53E172 +:103950006AEE73E167CF46EC53E162ED73E162CF4B +:1039600042ED53E166EC73E15DCF49E154E168E07B +:1039700074E158CF61E081E0A8CF65E082E090CFAC +:1039800068E086E08DCF64E18FE08ACF67E185E172 +:1039900087CF62E289E184CF61E083E296CF0B3585 +:1039A0009DE5190701F10C351D4509F055C38091BE +:1039B000050382FB882780F991E089270E94980EF1 +:1039C0004BC30E942816FFEF24E33CE0F150204057 +:1039D0003040E1F700C000000E944F0C0E94B1157A +:1039E00050CC81E0EBCF80E0E9CF82810081118172 +:1039F000882369F0C8010E94E50ED82E682FC801FF +:103A00000E94D50AB8018D2D0E94D80E2BC3C80183 +:103A10000E94AE0AD82EF6CF212F2F70C22E107F13 +:103A200019F0C29490EFC922DD20C9F0CC2069F0D2 +:103A300080E2800F883010F001110BC080914302AA +:103A4000C82AC09243020E94000A802F0E94730C71 +:103A500019C080914202C82AC0924202F4CF802F3E +:103A60000E944E0BCC2071F0C09480E2800F883011 +:103A700010F001113AC080914302C822C092430263 +:103A80000E94000AE92DE850FF0B349720F40E94B1 +:103A9000DA050E94AB0BAA20A9F08091400280FDBC +:103AA00011C0F70112828595859585950E94711543 +:103AB000C7010E94041980914002859585958595DE +:103AC0000E94441560E0C7010F900F900F900F9077 +:103AD000DF91CF911F910F91FF90EF90DF90CF90EA +:103AE000BF90AF909F900C945B0F80914202C822D0 +:103AF000C0924202C5CF312F3F70B32E107F1032DB +:103B000019F0B29480EFB822002369F0013081F1FE +:103B1000DD20D9F1CC2091F1F701858180FF95CF8F +:103B20008F7085832BC0DD20B1F0909144028B2DE6 +:103B3000892BC11003C00E94440BA4CFE1E0CE1238 +:103B4000FACF2091050322FD9DCF891709F49ACF62 +:103B50008093440297CFC11006C00E94FA098B2DB2 +:103B60000E94390B8FCFF1E0CF1609F48BCFF5CF40 +:103B7000DD2031F025E02C1508F484CF8B2DDBCF30 +:103B800034E03C1508F47ECFEACFCC2041F3093372 +:103B900049F4FFEF27EE33E0F15020403040E1F7E9 +:103BA00000C00000802F0E944E0B6CCF812F8695A5 +:103BB0008695837061F0813009F064CFC8019370FD +:103BC000D11002C090E080E00E94AE055BCFC8013A +:103BD0009370D11002C090E080E00E94C40552CFE3 +:103BE000802FDD2029F00E94BC070E94DA064ACF10 +:103BF0000E940107FACF812F837009F03FC0D110D6 +:103C000041CF402F429546954770440F440F802F77 +:103C10008F7090E0042E02C0880F991F0A94E2F77B +:103C200030E020E004FF09C02FE030E002C0220FA6 +:103C3000331F4A95E2F72095309516951695137027 +:103C4000123099F078F440914502509146021130BB +:103C500039F0822B932B842395230E941E0B12CFC5 +:103C6000842B952B822B932BF8CF822B932B209197 +:103C700045023091460282279327EFCF8695DD20BB +:103C800011F0812F8170882309F4FCCE402F4295DA +:103C900046954770440F440F802F8F7090E0042E9C +:103CA00002C0880F991F0A94E2F730E020E004FF79 +:103CB00009C02FE030E002C0220F331F4A95E2F71F +:103CC00020953095169516951370123099F078F46A +:103CD0004091380350913903113039F0822B932BE6 +:103CE000842395230E942D15CDCE842B952B822BDA +:103CF000932BF8CF822B932B2091380330913903EB +:103D000082279327EFCF1F70DD2029F0812F0E949B +:103D10007115802F10CF802F0E94390B812F0E94A8 +:103D20004415B0CE023F09F441C060F4003F11F1E8 +:103D3000013FA1F1DD2009F457C0C11086CE812FCB +:103D40008F7131C0033FB9F1043FA1F7DD2009F4C1 +:103D500040C01F71812F0E9471158091050382FD63 +:103D600007C0E8E01E9FC0011124836080934002D9 +:103D7000812F19C0DD2069F084E08C1508F482CE13 +:103D80001F7181E090E002C0880F991F1A95E2F739 +:103D9000B3CF95E09C1508F475CEF2CF812F8F71CB +:103DA000DD2009F4BCCF0E9471156CCE812F8F717C +:103DB000DD20C9F3B4CF90E080E0DD2009F492CF9C +:103DC0001F7181E090E002C0880F991F1A95E2F7F9 +:103DD00089CF81E00E945515F1E0FC1508F052CE24 +:103DE00082E00E9455154ECECC2059F0093309F0DF +:103DF000D9CE2FEF37EE83E0215030408040E1F7FD +:103E0000CFCE812F8F718BCF00313FE5130709F49F +:103E1000D1CA01319FE51907A9F482E0CCCA61E05B +:103E2000C7010E945B0F8C01F7018281811117CAC3 +:103E30000031FFE51F0709F4C3CA01312FE512075E +:103E400009F4C2CA0238EFE51E0709F425CB08F0D1 +:103E5000BDCA00382FE5120709F4EBCA01383FE567 +:103E6000130709F4FCCAF7018281882369F0C801AD +:103E7000815E9C45059740F46FE1600F60935002AE +:103E80008CE090E00E94852F17FF8FCBF701828195 +:103E9000882309F459C00E94DA05869581708093C1 +:103EA000E80190915002913029F4882319F089E3B8 +:103EB0000E94280D809143028093E70110924302F3 +:103EC00080915002813009F443CB882309F43CCB24 +:103ED000823009F44ACB843009F44ECB8FE39CE95D +:103EE0000197F1F700C000005801E894B7F84CE0E2 +:103EF000C42ED12CC5010C2C02C0969587950A942E +:103F0000E2F78F7096EF980F963008F43ACB805D09 +:103F10000E94A90D94E0C91AD108ECEFCE16EFEF7C +:103F2000DE0641F780915002813009F430CB8823BE +:103F300009F429CB823009F426CB843009F433CB41 +:103F40008091E70180934302F7018281882309F47D +:103F500046C0109295030230FCE51F0708F44AC0E2 +:103F600006312CE5120738F098012A5F3C452930CC +:103F7000310508F03FC00E94B40F90930503809371 +:103F8000040300313CE5130709F4F6CB08F084CBB9 +:103F900008309CE5190709F4E5CB08F053CB043051 +:103FA000FCE51F0709F4D6CB08F039CB02303CE51D +:103FB000130709F4C5CB03301C4509F4C7CB609146 +:103FC00004031091050384E090E00E94852F612F87 +:103FD00082E290E00E94852F0E94281652C9063185 +:103FE0001C45D1F58091E90181110CCC89E20E9438 +:103FF000450A03CC06312CE5120709F4EECB80917B +:10400000430282720C3C9CE5190709F4AECC08F01F +:104010002ECC063CFCE51F0709F493CC08F005CC38 +:10402000033C3CE5130709F482CC08F0EDCB023CDD +:10403000ECE51E0709F456CC0A35FDE51F0709F427 +:10404000D0CC08F0ACCC01153CE5130709F4B9CC91 +:104050000E3D1C4509F4C2CCF7018681978100977B +:1040600009F4C3CC0E9472088C01F701D280C5808C +:10407000C2943FE0C322809140028770A1F0AD2C32 +:10408000DD2091F0812F807F803421F080E2800F4D +:10409000883048F082E00E94551580914002877078 +:1040A000AA24A3948111A12C912E92942FE0922204 +:1040B000FBE0F91508F4E6CCE92DF0E0ED52F04D07 +:1040C0000C94042FCF93DF938091FB01807FA1F4A8 +:1040D0008091F801882381F080913F02D091FE0108 +:1040E0006091F6017091F701A091F901B091FA0188 +:1040F000C62FC723D81303C0DF91CF91089590E056 +:10410000109711F0CF3F19F401968770F3CF9C01FF +:1041100043E0220F331F4A95E1F7F901E150FE4FCA +:1041200041814713F1CF40814613EECF42814111C7 +:10413000EBCF438154814A1B5B0B483C510520F770 +:104140008091FB018F7080618093FB01F901EC5F2E +:10415000FD4F80818F708061808386EF91E00E94A7 +:104160000419DF91CF910C94A40AAF92BF92CF9221 +:10417000DF92EF92FF920F931F93CF93DF93CDB710 +:10418000DEB765970FB6F894DEBF0FBECDBF8C01CA +:1041900085E0F801DE01519601900D928A95E1F7D4 +:1041A000F801E28066EFA62E61E0B62E6091F9017B +:1041B0007091FA016115710509F468C19091F601D9 +:1041C0004091F701892F84238F3F09F45FC120813B +:1041D0003181C380D480F090F801F601E61BF70B23 +:1041E000FF2009F41DC18091FB01582F507FE83C4E +:1041F000F10508F0D0C0511181C0FE2C43132BC033 +:10420000921329C06091FC017091FD01F801468173 +:10421000578164177507F9F4E1101DC08F70806134 +:104220008093FB01C5010E9404198091FB01F801F4 +:1042300085838F2D65960FB6F894DEBF0FBECDBF78 +:10424000DF91CF911F910F91FF90EF90DF90CF9072 +:10425000BF90AF900895CD2829F0822F83238F3F00 +:1042600009F02FC180E0F82FF170DF2E80FF3CC0F5 +:1042700080913F024091FE01841315C0298B3A8B37 +:1042800089899A890E94210F292F22952F70223027 +:10429000F8F0243020F59F70F9F0F8019581907FB7 +:1042A000D9F4D12C1FC090E0FC0153E0EE0FFF1FAA +:1042B0005A95E1F7E150FE4F5181351306C0508108 +:1042C000251303C05281E5120FC001968770D4CF29 +:1042D0009F7011F0882329F3805E883010F3C801A5 +:1042E0000E940419FD2CA5CFEE2009F4A2CF8091E5 +:1042F000FB0181608093FB01F12C9BCF43131BC01A +:10430000921319C04091FC015091FD01F8012681E2 +:1043100037814217530779F4E1100DC08583C80136 +:104320000E94041988E0F801A6EFB1E001900D9217 +:104330008A95E1F77ECFC8010E942D0F882339F1BD +:10434000EE2029F18091FB018032A0F02091F6014E +:104350003091F7013A8729871B86DD86CC868E87C8 +:104360008091FC019091FD01988B8F87CE01099679 +:104370000E94041988E0F801A6EFB1E001900D92C7 +:104380008A95E1F70E946220FF24F39452CFC8017E +:104390000E940419F9CF51110AC086EF91E00E94E2 +:1043A000041988E0F50111928A95E9F7A5CF431326 +:1043B00018C0921316C04091FC015091FD01F80104 +:1043C000268137814217530761F4E1100AC08583C3 +:1043D000C8010E94041988E0F50111928A95E9F755 +:1043E00028CFC8010E942D0F882389F2EE2079F290 +:1043F0008091FB01803208F4BDCF2091F60130910D +:10440000F7013A8329831B82DD82CC828E838091DF +:10441000FC019091FD0198878F83CE010196A8CF72 +:10442000E83CF105C0F6FE2CEE2009F4B0CF4313B2 +:104430001FC092131DC02091FC013091FD01F801B5 +:10444000868197812817390799F49091FB0190FD97 +:1044500069CF907F09F466CF8091FB018583903FFF +:1044600009F45DCF982F907F905F8F70892B56CF86 +:10447000C8010E942D0F81117DCF8091FB018160C9 +:104480008093FB01C8010E940419D3CEEE2009F4E9 +:104490007ECFC8010E942D0FF82E882309F477CF14 +:1044A00088E0F801A6EFB1E001900D928A95E1F75E +:1044B0008091F6019091F7010E94210F0E946220E5 +:1044C000B8CE81E08E25CFCECF93DF93CDB7DEB7C8 +:1044D00060970FB6F894DEBF0FBECDBF29873A872D +:1044E0004B875C876D877E878F87988BCE01099677 +:1044F0000E94B520811112C088E0FE013996DE01CC +:10450000119601900D928A95E1F78C859D85892BF6 +:1045100029F089859A8589238F3FA9F580913F02EB +:104520009091FE0189131CC060960FB6F894DEBF0F +:104530000FBECDBFDF91CF91089593E0AA0FBB1FAF +:104540009A95E1F7A150BE4F98E0FE013196019097 +:104550000D929A95E1F78093FE010E94A40ADECFA6 +:10456000B8E08B9FC001112481509E4F0E94B5205E +:104570008823D1F280913F0290E0019687709927BD +:1045800080933F02CBCFA091FE01B0E0CD01019618 +:104590008770992720913F022817190671F60E940B +:1045A00028161092FE0110923F0288E0E6EFF1E03B +:1045B000DF011D928A95E9F7B1CF0F931F93CF9337 +:1045C000DF9380918C02E0918B02CCE081111AC0C4 +:1045D000DF91CF911F910F910895D1E0DE0FD0931D +:1045E0008B020E2F10E0EC9FF0011124E357FD4FDA +:1045F00083819481892B29F08081918189238F3F48 +:1046000051F4ED2F80918C02E81738F310928C0250 +:1046100010928B02DDCFC09FD001C19FB00D11243D +:10462000A357BD4F16968D919C911797892B29F40E +:1046300018968D919C91019651F42081318142818F +:10464000538164817581868197810E946422C09F15 +:10465000F001C19FF00D1124E357FD4F1482138226 +:10466000D0CF1092F8021092F7021092420180917E +:10467000F6028093F5020E9414060C94DD222F921C +:104680003F924F925F926F927F928F929F92AF92E2 +:10469000BF92CF92DF92EF92FF920F931F93CF932F +:1046A000DF93C091F502E7E0FE2E01E010E0FCE0B0 +:1046B0002F2EAEEFEA2E8091F6028C1316C00E94C8 +:1046C000DD22DF91CF911F910F91FF90EF90DF904E +:1046D000CF90BF90AF909F908F907F906F905F90A2 +:1046E0004F903F902F900C941406D0E0FE01EE0FF7 +:1046F000FF1FE351FD4F80819181F89EF001F99EEB +:10470000F00D1124E85EFE4F2481211158C0309035 +:104710008C02ADE8B2E030E020E0412C5F012315CF +:1047200008F04BC01A966D907C901B97F501808025 +:1047300091804FEF5FEF512CC52CD12CF601EE0F7D +:10474000FF1FE80DF91D659174916616770609F44F +:10475000A601672B11F05394EFCF4F3F5407B1F1EF +:10476000B80102C0660F771F4A95E2F7462AA801F2 +:1047700002C0440F551F5A94E2F7415051094416A4 +:10478000150601F5229EF001239EF00D1124E3573A +:10479000FD4FF89ED001F99EB00D1124A85EBE4FCA +:1047A00012962D913C91139737832683E082E18204 +:1047B0009187808771E015967C930E94E60521968B +:1047C000C37079CF14961C921E9213972F5F3F4FA0 +:1047D0001C96A5CF9F92AF92BF92CF92DF92EF929D +:1047E000FF920F931F93CF93DF9300D000D000D0A0 +:1047F000CDB7DEB78E010F5F1F4F86E0F801119233 +:104800008A95E9F785E7C82E81E0D82EF12CE12CB6 +:10481000AA24A394B12CF60181916F018F3F09F472 +:1048200049C0F894E82FE295EF70F0E021A18F7075 +:10483000A50102C0440F551F8A95E2F7CA01922FC5 +:10484000982B91A392A18095892382A3789400C08C +:10485000EBE7F1E030E020E0912C41914F3F09F48B +:1048600073C0A42FA295AF70B0E090968C9190E0A9 +:104870004F7002C0959587954A95E2F780FD64C018 +:104880008A2D022E01C0880F0A94EAF7982A2F5F1A +:104890003F4F2430310509F7F601319780818F3F72 +:1048A00011F00E94180850EA5A95F1F7F801EE0D40 +:1048B000FF1D90828FEFE81AF80AE6E0EE16F10489 +:1048C00009F0A9CF46E050E0B80184E592E00E94EB +:1048D000642FFF24F394009709F4F12C892BB1F194 +:1048E00086E0F801A4E5B2E001900D928A95E1F727 +:1048F00081E0809349020E94A20590934802809330 +:10490000470280914702909148020E9493050597C3 +:1049100008F1809154028093670280915502809340 +:1049200068028091560280936902809157028093B9 +:104930006A028091580280936B02809159028093A1 +:104940006C021092490206C080E0A0CF809149021B +:104950008111D7CF80914201882301F18091F70224 +:104960009091F8020097D1F00E949305209189025E +:1049700030918A022817390788F49091F5028091C6 +:10498000F602981709F445C00E943F2310928A024C +:10499000109289021092F8021092F70280914F0251 +:1049A000882371F080914D0290914E020E949305F0 +:1049B000893E934028F082EE0E944E0B10924F02E7 +:1049C00080914C02882391F080914A0290914B0291 +:1049D0000E949305883E934048F00E94A205909360 +:1049E0004B0280934A0283E70E94280D8F2D269662 +:1049F0000FB6F894DEBF0FBECDBFDF91CF911F91F0 +:104A00000F91FF90EF90DF90CF90BF90AF909F906D +:104A100008950E94DD221092F8021092F7020E947F +:104A20001406BCCF2F923F924F925F926F927F926B +:104A30008F929F92AF92BF92CF92DF92EF92FF92AE +:104A40000F931F93CF93DF93CDB7DEB769970FB660 +:104A5000F894DEBF0FBECDBF498B5A8B6B8B7C8B1E +:104A60008D8B6111109242021D861E861F86188A48 +:104A700085E0FE017196DE01199601900D928A95EE +:104A8000E1F78C859D85892B31F089859A8589236D +:104A90008F3F09F0D4C129853A854B855C856D85AA +:104AA0007E858F8598890E946422C3C028EFC21634 +:104AB0002CE5D20629F4882379F00E943123EBCF2C +:104AC00039EFC3163CE5D30639F4882329F08091E9 +:104AD00042018111F2CFC3C108E111E0E12CB12CF8 +:104AE000A12C88248394912C9EEF592E4424439426 +:104AF000F8016081718166246A94762C20E0422F4F +:104B000050E0FA01EE0FFF1FE60FF71F8591949119 +:104B1000C816D90609F43A01892B11F02F5FEFCF9F +:104B2000F12CFFEF6F167F0609F445C0F8014481B0 +:104B3000F09042018F2D411180E0F82FF170FF2E8F +:104B4000F801258086819B85992309F408C1FF20FF +:104B500009F405C1211014C0A40101C0440F6A94D6 +:104B6000EAF7842B86838091890290918A028039AA +:104B7000914030F440E951E050938A024093890219 +:104B8000C40102C0880F991F2A95E2F70197F80126 +:104B900026812817190679F48091F7029091F8027E +:104BA000009709F45FC00E9493058139914008F491 +:104BB00059C0F8014482EF28FFEFAF1ABF0A095F1E +:104BC0001F4F26E0A216B10409F092CF8B858823EF +:104BD00009F420C1EE2009F41DC10E94A2059093A2 +:104BE000F8028093F70280918C02883010F591E0F2 +:104BF000980F90938C0298E0FE013996DE01119691 +:104C000001900D929A95E1F73CE0839FC001112439 +:104C100083579D4F28E0FE013196DC0101900D92F3 +:104C20002A95E1F72FEF3FEFFC0131872087D386EC +:104C3000C28669960FB6F894DEBF0FBECDBFDF9176 +:104C4000CF911F910F91FF90EF90DF90CF90BF9089 +:104C5000AF909F908F907F906F905F904F903F901C +:104C60002F9008958091F5026090F602982FF0E061 +:104C7000E0E0861114C09093F5020E171F0709F4A7 +:104C80009ACF90E0FC01EE0FFF1FE351FD4FB18280 +:104C9000A0820196837099278093F6028CCF282EEC +:104CA000312CF101EE0FFF1FE351FD4F20813181C7 +:104CB000F7E0F29FD001F39FB00D1124A85EBE4F24 +:104CC0002D913C911197398F288F712C60E070E005 +:104CD000E72FF0E0EE0FFF1F288D398DE20FF31F55 +:104CE0002591349121153105E1F0F8010190F08111 +:104CF000E02DFF8BEE8B60E005C02417350709F42B +:104D00007F2C6F5FE62FF0E0EE0FFF1F4E895F896B +:104D1000E40FF51F459154914115510571F77F5FDF +:104D2000D7CF7720C9F0F801671708F0FD0144825A +:104D30000E171F0721F49093F502F72C3CCF981320 +:104D400005C0AE17BF0711F49F5F937091012F5FED +:104D50003F4F822F83708DCFF0E0E0E0F7CF90E0FF +:104D600021101FC0B40102C0660F771F2A95E2F719 +:104D70009B01215031092817390731F4442309F4E4 +:104D800047C0C5010E94E605C40101C0880F6A94AE +:104D9000EAF7982F9095F801868189238683F22C73 +:104DA0000ACF9C01062C02C0359527950A94E2F79C +:104DB000A90141705527BC016150710986239723D1 +:104DC000892B11F5452B01F1F80182819381892B03 +:104DD000C1F01B821C821D821E8259825A820E944F +:104DE000A2058160582F9D838C83F8018281938175 +:104DF0008F83988729813A814B816D817E810E94C2 +:104E00006422F8011582C0CFF22FF1702F2EBCCF93 +:104E10002F2CBACF9091F5028091F602981731F0BD +:104E20000E943F23EE2009F436CE03CF0E94DD22FC +:104E30001092F8021092F7020E941406F3CF61E07C +:104E4000CE0109960E945B0F6C018B85F7EFCF16A0 +:104E5000FCE5DF0609F02ACE882309F43DCE81E087 +:104E60008093420118CE1F920F920FB60F92112419 +:104E70002F933F934F935F936F937F938F939F9362 +:104E8000AF93BF93CF93DF93EF93FF93D091E9005C +:104E9000DF708091EC00C82FC17080FDC0E81092D7 +:104EA000E9008091F000877F8093F00078940E9461 +:104EB0003D161092E9008091F00088608093F00028 +:104EC000CD2BCF70C093E900FF91EF91DF91CF918F +:104ED000BF91AF919F918F917F916F915F914F9112 +:104EE0003F912F910F900FBE0F901F9018951F921A +:104EF0000F920FB60F9211242F933F934F935F930E +:104F00006F937F938F939F93AF93BF93EF93FF9391 +:104F10008091E10082FF09C08091E20082FF05C01C +:104F20008091E1008B7F8093E1008091DA0080FF27 +:104F300024C08091D80080FF20C08091DA008E7F4D +:104F40008093DA008091D90080FF9BC080E189BD09 +:104F500082E189BD09B400FEFDCF81E080932E037C +:104F600080910903811109C00E9406040E94D104A6 +:104F70008091E20084608093E2008091E10080FFF4 +:104F800017C08091E20080FF13C08091E2008E7F05 +:104F90008093E2008091E20080618093E200809142 +:104FA000D80080628093D80019BC85E080932E03DE +:104FB0008091E10084FF29C08091E20084FF25C038 +:104FC00080E189BD82E189BD89B5982F917080FF0C +:104FD000FBCF8091D8008F7D8093D8008091E10035 +:104FE0008F7E8093E1008091E2008F7E8093E200CB +:104FF0008091E20081608093E20080912F038823FA +:1050000009F445C084E080932E038091E10083FF82 +:1050100027C08091E20083FF23C08091E100877F59 +:105020008093E10082E080932E0310922F03809101 +:10503000E1008E7F8093E1008091E2008E7F80937B +:10504000E2008091E20080618093E20042E060E053 +:1050500080E00E949F048091F00088608093F000BF +:10506000FF91EF91BF91AF919F918F917F916F9140 +:105070005F914F913F912F910F900FBE0F901F9016 +:10508000189519BC10922E031092090376CF8091C7 +:10509000E30087FD93E090932E03B7CF78941F929F +:1050A0001FB61F9211248F939F93AF93BF9380914C +:1050B000000390910103A0910203B09103030196B4 +:1050C000A11DB11D8093000390930103A0930203DF +:1050D000B0930303BF91AF919F918F911F901FBE1B +:1050E0001F9018951F921FB61F9211248F939F93A4 +:1050F000AF93BF938091FF02811113C08091000391 +:1051000090910103A0910203B09103034196A11D68 +:10511000B11D8093000390930103A0930203B09309 +:105120000303BF91AF919F918F911F901FBE1F905E +:105130001895CDB7DEB7EE970FB6F894DEBF0FBE69 +:10514000CDBF84B7877F84BF0FB6F894A8958091B0 +:105150006000886180936000109260000FBE80E85C +:1051600090E00FB6F89480936100909361000FBEB9 +:1051700085B7806885BF85B7806885BF86E198E080 +:105180009093C5018093C4010E9406040E94D1043B +:105190008091E20084608093E200789480912E03F5 +:1051A0008823A1F01091E9001F709091EC00892FE5 +:1051B000817090FD80E8182B1092E9008091E80042 +:1051C00083FD0E943D161F701093E90082E084BDAC +:1051D00093E095BD9AEF97BD80936E000E949B0F60 +:1051E000811102C00E94890E05E711E02BE7C22E53 +:1051F00021E0D22EF80181918F018F3F11F00E94A2 +:105200001808C016D106B1F786EF0E94180887EF7C +:105210000E94180883E90E94180886E90E9418086D +:10522000E4E5F2E08AE592E0A7E6B2E011921D9291 +:105230008E179F07D9F70E941D16811102C00E9488 +:10524000B11582E090E00E94712F809360020E946D +:10525000B40F90930503809304030E94EA238FE325 +:105260009CE90197F1F700C000000E94EA238091B9 +:10527000670280FF08C06FEF7FEF90E080E00E9440 +:10528000A32F0E944F0C83E090E00E94712F90E0CA +:105290000E941E0B80913803909139030E9489145B +:1052A000509A589A559A5D9A549A5C9A8CE090E07C +:1052B0000E94712F90E0B0E0A0E0809350029093A4 +:1052C0005102A0935202B093530280915A0281116D +:1052D00033C00E941D16811104C00E94B1150E94A6 +:1052E000A11588E090E00E94792F60938E0370935F +:1052F0008F0380939003909391036E7F71F40E94CB +:10530000A11588E090E00E94792F60938E0370933E +:105310008F0380939003909391030E942B06109229 +:10532000840280918E0380FF04C060E086950E9415 +:105330002A1481E080935A025198599A52985A9AA5 +:1053400089B1869581704A9928C290E0892B809313 +:105350005E028AEC92E090937C0280937B0260E094 +:1053600081E20E942A1481E090E00E942D1580E0E5 +:1053700091E09093FC028093FB0218E1C12ED12CA6 +:1053800000E4A02E87E692E096E0B92EB80E809158 +:105390002E039924939400E112E1853009F451C25F +:1053A0000E94EA23882359F08FB7F89440910003B4 +:1053B0005091010360910203709103038FBFE1E6F6 +:1053C000F2E0A7E6B2E010E000E0302F8D9191917D +:1053D000981709F45FC2292F282790E09924939405 +:1053E000422F492109F451C29DAB3EAB892191E086 +:1053F00009F490E09FAB0E94A2058160782F99AFDD +:1054000088AF4DA95EA96FA989AD0E941225F80148 +:10541000EF59FD4F808198269082809184028823E5 +:10542000D1F180918302E0918E03E695E81BE09331 +:105430007F02823009F045C2F0E0EC51FD4FE4916B +:105440000E2F10E0BBE08B2EB3E19B2E80918002EB +:10545000882361F0109280020E94A20590937E0240 +:1054600080937D0210928202109281020E94A20516 +:10547000E0917D02F0917E028E1B9F0B8F3F9F4734 +:1054800050F4E00FF11FF0937E02E0937D028DE770 +:1054900092E0F4010995E0915E02EE0FEE0FE093C9 +:1054A0005E0289B181FBEE24E0F84A9964C280E093 +:1054B0008E29E82BE0935E02EF70F0E0E158FE4F9A +:1054C000808190915D02890F80935D0220E084309D +:1054D00034F180915C028F5F80935C0212E018AB24 +:1054E00019AA81E08AAB0E94A2058160782F9CAB4B +:1054F0008BAB48A959A96AA98CA90E9412251BA7A0 +:105500001CA61DA60E94A2058160782F9FA78EA7CA +:105510004BA55CA56DA58FA50E94122521E0809169 +:105520005D028D3F2CF580915C02815080935C027E +:105530001EA21FA281E088A70E94A2058160782F89 +:105540009AA789A74EA15FA168A58AA50E941225E6 +:1055500019A21AA21BA20E94A2058160782F9DA306 +:105560008CA349A15AA16BA18DA10E94122521E013 +:1055700080915D02082E000C990B64E070E00E949F +:10558000CE2E80935D02222359F08FB7F89440917C +:1055900000035091010360910203709103038FBFD8 +:1055A00086E0E4E7F2E0DE01119601900D928A9523 +:1055B000E1F7909076028090770210917802009146 +:1055C000790210927602109277021092780210926D +:1055D0007902892D882909F448C08091720290913E +:1055E00073020E9493059C0190916E02992309F425 +:1055F000AEC323333105C8F19F3F19F09F5F9093ED +:105600006E02992059F00E949C079FEF19140CF428 +:1056100091E0899F802D112480937602882059F093 +:105620000E949C079FEF18140CF491E0899F802D35 +:10563000112480937702309176023323B1F02091C8 +:105640007702222391F045EB3403C0011124992302 +:1056500009F494C19093760245EB24039001112440 +:10566000332309F48FC130937702812F802B09F403 +:1056700048C080917002909171020E9493059C0134 +:1056800090916D02992309F45DC325363105C8F167 +:105690009F3F19F09F5F90936D02112359F00E9474 +:1056A0007A079FEF11160CF491E0899F802D112449 +:1056B00080937802002359F00E947A079FEF10161A +:1056C0000CF491E0899F802D112480937902309110 +:1056D00078023323B1F020917902222391F045EB37 +:1056E0003403C0011124992309F450C19093780226 +:1056F00045EB240390011124332309F44BC130936B +:1057000079028091760290917702892B90917802AC +:10571000892B90917902892B11F00E94DA0686E09C +:10572000FE013196A4E7B2E001900D928A95E1F76F +:105730000E94DA0590915F02891731F00E94DA0524 +:1057400080935F020E94AB0B80912E03843009F09E +:105750001ECE83E08093E9008091E80082FF17CE9F +:105760008091E80090E085FF06C00E942504882310 +:1057700009F414C191E08091E8008B778093E800F0 +:10578000992309F404CEE981E150E33108F088C19E +:10579000F0E0E152F04D0C94042F92E0D7CD8091CF +:1057A0002E03843009F440C080E00E94AB0B1092BD +:1057B000840280917A02811116C090927A028091BF +:1057C0008E03982F917090935B028E7F80938E034F +:1057D0009FEFE0E7F2E09150E040F040E1F700C0D9 +:1057E00000000E94D80F1092FF020FB6F894A895FF +:1057F000C09260000FBEA092600083B7817F84607A +:1058000083BF83B7816083BF7894889583B78E7F89 +:1058100083BF0FB6F894A89580916000886180934B +:105820006000109260000FBE80912D03882349F024 +:105830000E94EA23E7E6F2E08191811164C2BE1280 +:10584000FBCF80912E03853009F4A9CF0E94281642 +:105850000E94DA050E94AB0B10927A0280915B02E3 +:10586000882361F080918E03816080938E0360E0D5 +:1058700086950E942A140E94C20F92CD80918502C3 +:105880008823C9F30E94D80FF6CF9F5F990C9430FC +:1058900009F0A6CD0F5F1F4F0630110509F095CD19 +:1058A0008FEF8AAF8BAF1CAE0E94A2058160782F6C +:1058B0009EAF8DAF4AAD5BAD6CAD8EAD0E94122533 +:1058C000ACCD863059F4F0E0EF51FD4FE4910E2F4E +:1058D00010E0ABEF8A2EA2E19A2EB8CD893061F4A8 +:1058E000E695F0E0E252FD4FE4910E2F10E0F7E66E +:1058F0008F2EF2E19F2EAACD8F3061F4E695F0E075 +:10590000E552FD4FE4910E2F10E0E9EF8E2EE1E11C +:105910009E2E9CCD853159F4F0E0E852FD4FE49184 +:105920000E2F10E07BEA872E71E1972E8FCD08E2D3 +:1059300010E042E2842E41E1942E883109F486CDB4 +:10594000833249F4E6EDF2E00591149162EA862E85 +:1059500062E1962E7BCD04EF11E059EE852E50E1E9 +:10596000952E843209F472CD00ED17E03AE2832ED1 +:1059700036E0932E6BCD82E090E09ACD81E080936B +:1059800076026ACE81E0809377026FCE81E08093C9 +:105990007802AECE81E080937902B3CE00E210E0CF +:1059A000CE0101964C018091E80085FD0AC08091EE +:1059B000E8008B778093E8000E942504882399F300 +:1059C000D9CE8091F100F40181934F01015011096A +:1059D00051F7D0CE1A8289E08B832DC08A81823024 +:1059E00009F4A7C18330A9F0813009F059C02FB75D +:1059F000F8946091000370910103809102039091EB +:105A000003032FBF0E940A2F6B837C838D839E83A9 +:105A100012C0809167028B83809168028C83809191 +:105A200069028D8380916A028E8380916B028F83DD +:105A300080916C02888780912E03843009F0A7CC76 +:105A40001091E9001F709091EC00892F817090FDFA +:105A500080E8182B82E08093E9008091E80080FFC5 +:105A60000DC050E040E060E270E0CE0101960E947F +:105A700056048091E8008E778093E8001F701093A1 +:105A8000E90085CC8A81823059F46B817C818D81DB +:105A90009E810E940A2F86E290E00E94852FCBCF44 +:105AA0008FEF8983C8CF4C816B818A810E94B20EAF +:105AB0009827892798279E838D83BDCF8D809E80D0 +:105AC0009824892498248A810B81F8E00F9F800113 +:105AD000112420E3829F000D111D11248C8190E080 +:105AE000880F991F080F191F692DC80187960E94FA +:105AF000852F682DC8018896D0CF0E941F0E9BCF9E +:105B00008A818138C1F060F4803809F094CF20E0B8 +:105B10004B816091900380918F030E9431138BCF52 +:105B2000823859F1833809F086CF20E04091910303 +:105B30006C818B81F2CF60E08B810E942A149B8163 +:105B400080918E03911111C08E7F80938E031092ED +:105B500084024FEF80E792E0415080409040E1F7AF +:105B600000C000000E94D80F66CF816080938E0332 +:105B700060E086950E942A145ECF8B818093920309 +:105B80005ACF8A81813899F030F4803809F053CFA8 +:105B90008091910321CF823891F0833809F04BCF67 +:105BA00080918F038B83809190038C8344CF80916D +:105BB0008E0380FF02C086950FCF80E00DCF8091CD +:105BC00092030ACF60918E0370918F0380919003AE +:105BD000909191030E941F132ECF80E18A832BCFD7 +:105BE00081E08A8389EFF8CE0A811B811027012783 +:105BF0001027FE0131963F018C80CF01880D911D49 +:105C00004C01C801895F9D4F8614970409F413CF96 +:105C1000093FE1E01E0750F40E94712FF3018483D5 +:105C20000F5F1F4FFFEF6F1A7F0AEBCFF301148254 +:105C3000F7CF0A811B81102701271027CE0101967B +:105C40003C018C80800E912E911CC801895F9D4F74 +:105C50008016910609F4EFCE093FE1E01E0720F41B +:105C6000F30164810E94852FFFEF6F1A7F0A0F5F97 +:105C70001F4FEBCF0E940F0EDECE8AE0AFCF0A811E +:105C80001B81102701271027CE0101963C018C8033 +:105C9000FC01E80DF11D4F01C80187968614970499 +:105CA00009F4C9CE003EF1E01F0750F40E94712FA5 +:105CB000F30184830F5F1F4FFFEF6F1A7F0AECCF52 +:105CC000F3011482F7CF0A811B81102701271027C7 +:105CD000CE0101963C018C80800E912E911CC80152 +:105CE00087968016910609F4A6CE003EE1E01E07D5 +:105CF00020F4F30164810E94852FFFEF6F1A7F0A61 +:105D00000F5F1F4FECCF09BD19BD09B400FEFDCFD9 +:105D10008091D8008F7D8093D8008091E0008260D0 +:105D20008093E0008091E00081FDFCCF0E94281666 +:105D300088CD86E290E00E94712F1B821C821D821A +:105D40008E8379CE2D32314008F0A4CCDACC2D32BE +:105D5000314008F053CC89CC87FB082E062687FDFE +:105D6000819567FD61950E94422F0EF4919507FC85 +:105D700081950895AA1BBB1B51E107C0AA1FBB1F39 +:105D8000A617B70710F0A61BB70B881F991F5A95C7 +:105D9000A9F780959095BC01CD01089597FB072E3A +:105DA00016F4009407D077FD09D00E94BA2E07FCA4 +:105DB00005D03EF4909581959F4F0895709561951B +:105DC0007F4F0895A1E21A2EAA1BBB1BFD010DC037 +:105DD000AA1FBB1FEE1FFF1FA217B307E407F5079B +:105DE00020F0A21BB30BE40BF50B661F771F881F77 +:105DF000991F1A9469F760957095809590959B010D +:105E0000AC01BD01CF010895EE0FFF1F0590F49185 +:105E1000E02D09946927962769277827872778270F +:105E200008950E94192F332312F48A1B9B0B0C94A4 +:105E30002A2FA29FB001B39FC001A39F700D811DA7 +:105E40001124911DB29F700D811D1124911D089583 +:105E50000E94192FB7FF0895821B930B08950E948B +:105E6000192FA59F900DB49F900DA49F800D911D9B +:105E700011240895B7FF0C942F2F0E942F2F821BFF +:105E8000930B0895991B79E004C0991F961708F0A9 +:105E9000961B881F7A95C9F780950895FB01DC0150 +:105EA00002C005900D9241505040D8F70895FC0172 +:105EB0004150504030F001900616D1F73197CF0194 +:105EC0000895882799270895FB01DC0104C08D916E +:105ED0000190801921F441505040C8F7881B990B5C +:105EE0000895F999FECF92BD81BDF89A992780B5A2 +:105EF0000895A6E1B0E044E050E00C94AB2FA8E197 +:105F0000B0E042E050E00C94AB2F262FF999FECF81 +:105F100092BD81BDF89A019700B4021639F01FBAFC +:105F200020BD0FB6F894FA9AF99A0FBE0895039619 +:105F3000272F0E94862F0E94852F252F0E94862FB3 +:105F4000242F0C94862F0196272F0E94862F0C94C5 +:105F5000852FDC01CB01FC01F999FECF06C0F2BD13 +:105F6000E1BDF89A319600B40D9241505040B8F717 +:105F70000895F894FFCF460F460F4F0F4F0F510F64 +:105F80004F0F4F0F4F0F460F460F560F4F0F4F0F2C +:105F9000560F22174A179D174A179D177D17B517D9 +:105FA0009D17B218BF180C1D0C1D7B1D7B1DD61D27 +:105FB000F01D421D421DFB1D831E921E921EEA2CE7 +:105FC000EE2C422D532D5E2D7D2D802DC12DE22DE9 +:105FD000502D502DED2DF02DF42D192E3A2E3D2E55 +:045FE0003F2E632EBF +:105FE40090050F0CEE0BEA0BE60B01191A1B1C1D96 +:105FF4001E1F202122010201FC002A00000000F6DD +:10600400004C00000000F0005000000000EA0051C5 +:1060140000000000E4004F00000000DE0052000019 +:1060240000000101818283E200E900EA00B500B6C4 +:1060340000B700CD008301CC008A019201940121B4 +:1060440002230224022502260227022A02B300B4F4 +:10605400006F007000F03435366667F6F7939600EB +:10606400FF0100010000FFFF0000010001FF00002C +:1060740001020202020606060909090909090F0FAD +:106084000F0F0F0F151515181919191919191919B1 +:10609400191923244022B6DA01B8010201FB0614BF +:0460A40007340700B6 +:00000001FF From 910c5ebac9520f161ced71d8446b75336fcabf47 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 27 Sep 2021 01:37:04 -0400 Subject: [PATCH 29/94] Remove extra file --- .../ps17/qmk_firmware - Shortcut.lnk | Bin 1154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk diff --git a/keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk b/keyboards/solartempest/ps17/qmk_firmware - Shortcut.lnk deleted file mode 100644 index 15ada1df2412f92d8cb088807b89bf4901fcdffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcma)5Yesr$ zS=Ye%4CGy_rq-8Nt8<6v?~MGox4I*9)i}H>Xd&$EQegd+iI$uHS}(;55`_7!m`lc% zu-~Q6KB=HhJNR=tqK~WEU4(v`7{nuJJRCT|&JWa$BXvL>at@DJ0(wwEE-0ZG5tU{F2`7Z3iER5?v#!S;ari0*nqcVR_+W22*wDI+% z+(cOjYT$mfLp{_{ryJBMBz-x@+hfsRLjgL3$4~gWHRNm9nUdyOXRVbU(K`JBrRN6) From 80616dc950a7d1a0ffa38995193e02486dec0619 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 31 Oct 2021 02:16:26 -0400 Subject: [PATCH 30/94] Add pimoroni trackball support. --- keyboards/solartempest/sofle/config.h | 14 +- .../solartempest/sofle/keymaps/via/keymap.c | 190 +- .../sofle/keymaps/via/pimoroni_trackball.c | 201 + .../sofle/keymaps/via/pimoroni_trackball.h | 37 + .../solartempest/sofle/keymaps/via/snakey.c | 66 +- .../sofle/keymaps/via/snakey_minimal.c | 317 ++ keyboards/solartempest/sofle/rules.mk | 38 +- .../solartempest/sofle/sofle VIA keymap.json | 10 + .../sofle/sofle VIA layout trackball.json | 367 ++ .../sofle/solartempest_sofle_via.hex | 3494 ++++++++--------- 10 files changed, 2840 insertions(+), 1894 deletions(-) create mode 100644 keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h create mode 100644 keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c create mode 100644 keyboards/solartempest/sofle/sofle VIA layout trackball.json diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 1bb5c21f14cb..a62b250b40a1 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -71,8 +71,11 @@ #ifdef OLED_ENABLE #define OLED_TIMEOUT 80000 //120000 = 2 minutes in ms. #define OLED_BRIGHTNESS 90 // Default 100. - #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). + //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). + //#define SPLIT_LAYER_STATE_ENABLE + //#define SPLIT_LED_STATE_ENABLE + //#define SPLIT_MODS_ENABLE #define OLED_LOGO //Enable to print custom logo on slave side, disable to save space. #endif @@ -82,6 +85,15 @@ #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. #endif +// Pimoroni trackball settings +#ifdef POINTING_DEVICE_ENABLE + #define PIMORONI_TRACKBALL_ROTATE + #define PIMORONI_TRACKBALL_INVERT_Y + //#define PIMORONI_TRACKBALL_INVERT_X + //#define PIMORONI_TRACKBALL_CLICK //Not compatible with having mouse keys on keymap +#endif + + // Add RGB underglow #define RGB_DI_PIN D3 #define RGBLED_NUM 74 diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index dcaefa44fe92..d51ae53124a4 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -24,14 +24,21 @@ //Note that the keyboard animations below take a large amount of space! //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. Disable RGBLIGHT to make enough space. //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. - #include "snakey.c" //OLED code for Snakey, customized from Luna. + //#include "snakey.c" //OLED code for Snakey, customized from Luna. + #include "snakey_minimal.c" //OLED code for Snakey, without WPM/related animations to save space. +#endif + +#ifdef POINTING_DEVICE_ENABLE + //#include "drivers/sensors/pimoroni_trackball.h" //Normally this is included, but the master code has an issue with the rotation code. + #include "pimoroni_trackball.c" //This is the master code with a workaround for scrolling rotation with inversion (line 146 only). + #include "pimoroni_trackball.h" + bool was_scrolling = true; //Remember last state of trackball scrolling #endif #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT #endif - bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; bool lshift_held = false; // LShift Backspace Delete whole Word Code @@ -39,52 +46,34 @@ bool rshift_held = false; // RShift Backspace Delete whole Word Code static uint16_t held_shift = 0; #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) + PM_SCROLL, //Toggle trackball scrolling mode + PM_PRECISION //Toggle trackball precision mode }; #else enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) + PM_SCROLL, //Toggle trackball scrolling mode + PM_PRECISION //Toggle trackball precision mode }; #endif -/*#ifdef COMBO_ENABLE //(+42 firmware size for this combo). SBS takes care of this combo, so it is an example only and can be replaced with others as required. - enum combo_events { - sbs_delword - }; - - const uint16_t PROGMEM delword_combo[] = {KC_LSFT, KC_BSPC, COMBO_END}; //Shift-Backspace to delete whole words - combo_t key_combos[COMBO_COUNT] = { - [sbs_delword] = COMBO_ACTION(delword_combo) - }; - - void process_combo_event(uint16_t combo_index, bool pressed) { - switch(combo_index) { - case sbs_delword: - if (pressed) { - tap_code16(LCTL(KC_BSPC)); - } - break; - } - } -#endif*/ - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these layouts to save space when using only VIA. /* QWERTY * ,-----------------------------------------. ,-----------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| + * | ESC | Q | W | E | R | T |-------. | Y | U | I | O | P | Bspc | + * |------+------+------+------+------+------| Trkbl | |------+------+------+------+------+------| * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | * |------+------+------+------+------+------| Enc | | Enc |------+------+------+------+------+------| * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| @@ -92,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | * | | | | |/ / \ \ | | | | | * `----------------------------------' '------''---------------------------' - */ +*/ /*[0] = LAYOUT( KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC__VOLUP, KC_PGUP,KC_Y, KC_U, KC_I, KC_O, KC_P, SBS, @@ -125,11 +114,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these }; -void matrix_init_user(void) { -} +#ifdef POINTING_DEVICE_ENABLE + void run_trackball_cleanup(void) { //Code by Drasnha. Sets colour of trackball LED. + if (trackball_is_scrolling()) { + trackball_set_rgbw(43, 153, 103, 0x00); + } else if (trackball_get_precision() != 1.0) { + trackball_set_rgbw(0, 27, 199, 0x00); + } else { + trackball_set_rgbw(RGB_GOLDENROD, 0x00); + } + } + + #if !defined(MOUSEKEY_ENABLE) //Allows for button clicks on keymap even though mousekeys is not defined. + static bool mouse_button_one, trackball_button_one; + #endif + + void trackball_register_button(bool pressed, enum mouse_buttons button) { //Allows for clicking with mousekey and dragging with trackball. + report_mouse_t currentReport = pointing_device_get_report(); + if (pressed) { + currentReport.buttons |= button; + } else { + currentReport.buttons &= ~button; + } + pointing_device_set_report(currentReport); + } +#endif + void matrix_scan_user(void) { - if (is_alt_tab_active) { + if (is_alt_tab_active) { //Allows for use of super alt tab. if (timer_elapsed(alt_tab_timer) > 1000) { unregister_code(KC_LALT); is_alt_tab_active = false; @@ -139,8 +152,8 @@ void matrix_scan_user(void) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { - #ifdef KEYBOARD_PET - if (record->event.pressed) { //Drashna's OLED timeout off code for animations + #if defined(KEYBOARD_PET) || defined(OLED_LOGO) + if (record->event.pressed) { //OLED timeout code oled_timer = timer_read32(); } #endif @@ -194,11 +207,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; - case KC_RSFT: //Shift Backspace to Delete Whole Word. Inspired by Hellsingcoder. + case KC_RSFT: //Shift Backspace to Delete Whole Word. Inspired by Hellsingcoder. rshift_held = record->event.pressed; held_shift = keycode; - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS if (record->event.pressed) { isBarking = true; } else { @@ -209,8 +221,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_LSFT: lshift_held = record->event.pressed; held_shift = keycode; - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS if (record->event.pressed) { isBarking = true; } else { @@ -219,12 +230,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif return true; case SBS: - if (record->event.pressed) { + if (record->event.pressed) { //When left shift is held and backspace pressed, one whole word will be deleted (left). if (lshift_held) { unregister_code(held_shift); register_code(KC_LCTL); register_code(KC_BSPC); - } else if (rshift_held) { + } else if (rshift_held) { //When left shift is held and backspace pressed, one whole word will be deleted (right). unregister_code(held_shift); register_code(KC_LCTL); register_code(KC_DEL); @@ -241,18 +252,58 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET + #ifdef POINTING_DEVICE_ENABLE //Allow modes when trackball is enabled. + case PM_SCROLL: + if (record->event.pressed) { + if (trackball_is_scrolling()){ //Enable toggling for trackball scrolling + trackball_set_scrolling(false); + was_scrolling=false; //Tracks status of scrolling setting. Works with holding of layer key for mouse mode. + }else if(was_scrolling==true){ + trackball_set_scrolling(false); + was_scrolling=false; + } + else{ + trackball_set_scrolling(true); + was_scrolling=true; + } + run_trackball_cleanup(); + break; + } + case PM_PRECISION: + if (record->event.pressed) { + if (trackball_get_precision()==1){ //Enable toggling for trackball precision + trackball_set_precision(1.8); + } else{ + trackball_set_precision(1); + } + run_trackball_cleanup(); + break; + } + # if !defined(MOUSEKEY_ENABLE) //Allow for using mouse buttons in the keymap when mouse keys is not enabled. + case KC_MS_BTN1: + mouse_button_one = record->event.pressed; + trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + break; + case KC_MS_BTN2: + trackball_register_button(record->event.pressed, MOUSE_BTN2); + break; + case KC_MS_BTN3: + trackball_register_button(record->event.pressed, MOUSE_BTN3); + break; + # endif + #endif + + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS case KC_LCTL: case KC_RCTL: - if (record->event.pressed) { + if (record->event.pressed) { //Pet sneaks when control held. isSneaking = true; } else { isSneaking = false; } return true; case KC_SPC: - if (record->event.pressed) { + if (record->event.pressed) { //Pet jumps when enter is pressed. isJumping = true; showedJump = false; } else { @@ -265,9 +316,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } -#ifdef OLED_ENABLE - void suspend_power_down_user(void) { //turn off OLEDs when computer is sleeping - oled_off(); +#if defined(OLED_ENABLE) || defined(POINTING_DEVICE_ENABLE) + void suspend_power_down_user(void) { + #ifdef OLED_ENABLE //Turn off OLEDs when computer is sleeping + oled_off(); + #endif + #ifdef POINTING_DEVICE_ENABLE + trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is sleeping + #endif + } +#endif +#ifdef POINTING_DEVICE_ENABLE + void suspend_wakeup_init_user(void) { //turn on Pimoroni LED when awoken + run_trackball_cleanup(); } #endif @@ -298,7 +359,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { { rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - //layer_move(0); //start on layer 0 to get the lighting activated in all cases + layer_move(0); //start on layer 0 to get the lighting activated in all cases. Remove to save a very small amount of space. + #ifdef POINTING_DEVICE_ENABLE + trackball_set_precision(1.8); + trackball_set_scrolling(true); + run_trackball_cleanup(); + #endif } @@ -310,9 +376,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_set_layer_state(3, layer_state_cmp(state, 3)); rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,80); + if (was_scrolling==true){ //Check if was scrolling when layer was left + trackball_set_scrolling(true); + run_trackball_cleanup(); + } else{ + trackball_set_scrolling(false); + run_trackball_cleanup(); + } break; case 1: rgblight_sethsv_noeeprom(252,255,80); @@ -325,6 +399,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case 4: rgblight_sethsv_noeeprom(218,255,80); + if (was_scrolling==true){ //Check if was scrolling when layer is activated + trackball_set_scrolling(false); + run_trackball_cleanup(); + } } return state; } diff --git a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c new file mode 100644 index 000000000000..a706db9c804c --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c @@ -0,0 +1,201 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2021 Dasky (@daskygit) + * + * 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 . + */ +#include "pimoroni_trackball.h" +#include "i2c_master.h" +#include "print.h" + +#ifndef PIMORONI_TRACKBALL_ADDRESS +# define PIMORONI_TRACKBALL_ADDRESS 0x0A +#endif +#ifndef PIMORONI_TRACKBALL_INTERVAL_MS +# define PIMORONI_TRACKBALL_INTERVAL_MS 8 +#endif +#ifndef PIMORONI_TRACKBALL_MOUSE_SCALE +# define PIMORONI_TRACKBALL_MOUSE_SCALE 5 +#endif +#ifndef PIMORONI_TRACKBALL_SCROLL_SCALE +# define PIMORONI_TRACKBALL_SCROLL_SCALE 1 +#endif +#ifndef PIMORONI_TRACKBALL_DEBOUNCE_CYCLES +# define PIMORONI_TRACKBALL_DEBOUNCE_CYCLES 20 +#endif +#ifndef PIMORONI_TRACKBALL_ERROR_COUNT +# define PIMORONI_TRACKBALL_ERROR_COUNT 10 +#endif + +#define TRACKBALL_TIMEOUT 100 +#define TRACKBALL_REG_LED_RED 0x00 +#define TRACKBALL_REG_LED_GRN 0x01 +#define TRACKBALL_REG_LED_BLU 0x02 +#define TRACKBALL_REG_LED_WHT 0x03 +#define TRACKBALL_REG_LEFT 0x04 +#define TRACKBALL_REG_RIGHT 0x05 +#define TRACKBALL_REG_UP 0x06 +#define TRACKBALL_REG_DOWN 0x07 + +static pimoroni_data current_pimoroni_data; +static report_mouse_t mouse_report; +static bool scrolling = false; +static int16_t x_offset = 0; +static int16_t y_offset = 0; +static int16_t h_offset = 0; +static int16_t v_offset = 0; +static uint16_t precision = 128; +static uint8_t error_count = 0; + +float trackball_get_precision(void) { return ((float)precision / 128); } +void trackball_set_precision(float floatprecision) { precision = (floatprecision * 128); } +bool trackball_is_scrolling(void) { return scrolling; } +void trackball_set_scrolling(bool scroll) { scrolling = scroll; } + +void trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { + uint8_t data[4] = {r, g, b, w}; + __attribute__((unused)) i2c_status_t status = i2c_writeReg(PIMORONI_TRACKBALL_ADDRESS << 1, TRACKBALL_REG_LED_RED, data, sizeof(data), TRACKBALL_TIMEOUT); +#ifdef TRACKBALL_DEBUG + dprintf("Trackball RGBW i2c_status_t: %d\n", status); +#endif +} + +i2c_status_t read_pimoroni_trackball(pimoroni_data* data) { + i2c_status_t status = i2c_readReg(PIMORONI_TRACKBALL_ADDRESS << 1, TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), TRACKBALL_TIMEOUT); +#ifdef TRACKBALL_DEBUG + dprintf("Trackball READ i2c_status_t: %d\nLeft: %d\nRight: %d\nUp: %d\nDown: %d\nSwtich: %d\n", status, data->left, data->right, data->up, data->down, data->click); +#endif + return status; +} + +__attribute__((weak)) void pointing_device_init(void) { + i2c_init(); + trackball_set_rgbw(0x00, 0x00, 0x00, 0x00); +} + +int16_t trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale) { + uint8_t offset = 0; + bool isnegative = false; + if (negative_dir > positive_dir) { + offset = negative_dir - positive_dir; + isnegative = true; + } else { + offset = positive_dir - negative_dir; + } + uint16_t magnitude = (scale * offset * offset * precision) >> 7; + return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude); +} + +void trackball_adapt_values(int8_t* mouse, int16_t* offset) { + if (*offset > 127) { + *mouse = 127; + *offset -= 127; + } else if (*offset < -127) { + *mouse = -127; + *offset += 127; + } else { + *mouse = *offset; + *offset = 0; + } +} + +__attribute__((weak)) void trackball_click(bool pressed, report_mouse_t* mouse) { +#ifdef PIMORONI_TRACKBALL_CLICK + if (pressed) { + mouse->buttons |= MOUSE_BTN1; + } else { + mouse->buttons &= ~MOUSE_BTN1; + } +#endif +} + +__attribute__((weak)) bool pointing_device_task_user(pimoroni_data* trackball_data) { return true; }; + +__attribute__((weak)) void pointing_device_task() { + static fast_timer_t throttle = 0; + static uint16_t debounce = 0; + + if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT && timer_elapsed_fast(throttle) >= PIMORONI_TRACKBALL_INTERVAL_MS) { + i2c_status_t status = read_pimoroni_trackball(¤t_pimoroni_data); + + if (status == I2C_STATUS_SUCCESS) { + error_count = 0; + + if (pointing_device_task_user(¤t_pimoroni_data)) { + mouse_report = pointing_device_get_report(); + + if (!(current_pimoroni_data.click & 128)) { + trackball_click(false, &mouse_report); + if (!debounce) { + if (scrolling) { +#ifdef PIMORONI_TRACKBALL_INVERT_X + h_offset += trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_SCROLL_SCALE); +#else + h_offset -= trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_SCROLL_SCALE); +#endif +#if defined(PIMORONI_TRACKBALL_INVERT_Y) && !defined(PIMORONI_TRACKBALL_ROTATE) //This line was customized to correct the scroll rotation inversion issue. + v_offset += trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_SCROLL_SCALE); +#else + v_offset -= trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_SCROLL_SCALE); +#endif + } else { +#ifdef PIMORONI_TRACKBALL_INVERT_X + x_offset -= trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_MOUSE_SCALE); +#else + x_offset += trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_MOUSE_SCALE); +#endif +#ifdef PIMORONI_TRACKBALL_INVERT_Y + y_offset -= trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_MOUSE_SCALE); +#else + y_offset += trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_MOUSE_SCALE); +#endif + } + if (scrolling) { +#ifndef PIMORONI_TRACKBALL_ROTATE + trackball_adapt_values(&mouse_report.h, &h_offset); + trackball_adapt_values(&mouse_report.v, &v_offset); +#else + trackball_adapt_values(&mouse_report.h, &v_offset); + trackball_adapt_values(&mouse_report.v, &h_offset); +#endif + mouse_report.x = 0; + mouse_report.y = 0; + } else { +#ifndef PIMORONI_TRACKBALL_ROTATE + trackball_adapt_values(&mouse_report.x, &x_offset); + trackball_adapt_values(&mouse_report.y, &y_offset); +#else + trackball_adapt_values(&mouse_report.x, &y_offset); + trackball_adapt_values(&mouse_report.y, &x_offset); +#endif + mouse_report.h = 0; + mouse_report.v = 0; + } + } else { + debounce--; + } + } else { + trackball_click(true, &mouse_report); + debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; + } + } + } else { + error_count++; + } + + pointing_device_set_report(mouse_report); + pointing_device_send(); + + throttle = timer_read_fast(); + } +} diff --git a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h new file mode 100644 index 000000000000..6b2a41425d41 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h @@ -0,0 +1,37 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2021 Dasky (@daskygit) + * + * 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 . + */ +#pragma once + +#include "quantum.h" +#include "pointing_device.h" + +typedef struct pimoroni_data { + uint8_t left; + uint8_t right; + uint8_t up; + uint8_t down; + uint8_t click; +} pimoroni_data; + +void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); +void trackball_click(bool pressed, report_mouse_t* mouse); +int16_t trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); +void trackball_adapt_values(int8_t* mouse, int16_t* offset); +float trackball_get_precision(void); +void trackball_set_precision(float precision); +bool trackball_is_scrolling(void); +void trackball_set_scrolling(bool scroll); diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index a9ea055b0cd1..de47c3c01f63 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -19,28 +19,28 @@ //SSD1306 OLED update loop #ifdef OLED_ENABLE + uint32_t oled_timer = 0; //OLED timeout + led_t led_usb_state; + + // KEYBOARD PET START #define KEYBOARD_PET - /* KEYBOARD PET START */ - /* settings */ + // settings #define MIN_WALK_SPEED 10 #define MIN_RUN_SPEED 40 - /* advanced settings */ + // advanced settings #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 - /* timers */ + // timers uint32_t anim_timer = 0; - /* current frame */ + // current frame uint8_t current_frame = 0; - /* status variables */ + // status variables int current_wpm_read = 0; - uint32_t oled_timer = 0; //For Keyboard pet OLED timeout with animations, code by Drashna. - led_t led_usb_state; - bool isSneaking = false; bool isJumping = false; bool showedJump = true; @@ -61,12 +61,12 @@ } #endif - /* logic */ + // logic static void render_luna(int LUNA_X, int LUNA_Y) { - /* Sit */ + // Sit static const char PROGMEM sit[2][ANIM_SIZE] = { - /* 'sit1', 32x22px */ + // 'sit1', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -76,7 +76,7 @@ 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - /* 'sit2', 32x22px */ + // 'sit2', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -87,9 +87,9 @@ } }; - /* Walk */ + // Walk static const char PROGMEM walk[2][ANIM_SIZE] = { - /* 'walk1', 32x22px */ + // 'walk1', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -99,7 +99,7 @@ 0x78, 0xf0, 0xf1, 0xff, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - /* 'walk2', 32x22px */ + // 'walk2', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, @@ -110,9 +110,9 @@ } }; - /* Run */ + // Run static const char PROGMEM run[2][ANIM_SIZE] = { - /* 'run1', 32x22px */ + // 'run1', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, 0x00, @@ -122,7 +122,7 @@ 0x1e, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - /* 'run2', 32x22px */ + // 'run2', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, @@ -133,9 +133,9 @@ } }; - /* Bark */ + // Bark static const char PROGMEM bark[2][ANIM_SIZE] = { - /* 'bark1', 32x22px */ + // 'bark1', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -145,7 +145,7 @@ 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - /* 'bark2', 32x22px */ + // 'bark2', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, @@ -156,9 +156,9 @@ } }; - /* Sneak */ + // Sneak static const char PROGMEM sneak[2][ANIM_SIZE] = { - /* 'sneak1', 32x22px */ + // 'sneak1', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -168,7 +168,7 @@ 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, }, - /* 'sneak2', 32x22px */ + // 'sneak2', 32x22px { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -179,13 +179,13 @@ } }; - /* animation */ + // animation void animate_luna(void) { - /* jump */ + // jump if (isJumping || !showedJump) { - /* clear */ + // clear oled_set_cursor(LUNA_X,LUNA_Y +2); oled_write(" ", false); @@ -194,17 +194,17 @@ showedJump = true; } else { - /* clear */ + // clear oled_set_cursor(LUNA_X,LUNA_Y -1); oled_write(" ", false); oled_set_cursor(LUNA_X,LUNA_Y); } - /* switch frame */ + // switch frame current_frame = (current_frame + 1) % 2; - /* current status */ + // current status if(isBarking) { oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); @@ -222,13 +222,13 @@ } } - /* animation timer */ + // animation timer if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { anim_timer = timer_read32(); animate_luna(); } } - /* KEYBOARD PET END */ + // KEYBOARD PET END static void print_logo_narrow(void) { oled_set_cursor(0,2); diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c new file mode 100644 index 000000000000..b5457bb280f1 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -0,0 +1,317 @@ +/* Copyright + * 2021 solartempest + * 2021 Luna code adapted from HellSingCoder and Jackasaur + * 2021 QMK + * + * 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 o + * 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 . + */ + +//SSD1306 OLED update loop +#ifdef OLED_ENABLE + uint32_t oled_timer = 0; //OLED timeout + led_t led_usb_state; + + #define KEYBOARD_PET + // KEYBOARD PET START + + // settings + #define MIN_WALK_SPEED 10 + #define MIN_RUN_SPEED 40 + + // advanced settings + #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. + #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + + // timers + uint32_t anim_timer = 0; + + // current frame + uint8_t current_frame = 0; + + // status variables + bool isSneaking = false; + bool isJumping = false; + bool showedJump = true; + bool isBarking = false; + + #ifdef OLED_LOGO + static void render_logo(int LUNA_X, int LUNA_Y) { + static const char PROGMEM luna_logo[] = { + 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, + 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, + }; + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + #endif + + // logic + static void render_luna(int LUNA_X, int LUNA_Y) { + + // Sit + static const char PROGMEM sit[2][ANIM_SIZE] = { + // 'sit1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'sit2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x01, 0x01, 0x02, 0x06, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + /* + // Walk + static const char PROGMEM walk[2][ANIM_SIZE] = { + // 'walk1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xfc, 0xfe, 0xfe, 0x1f, 0x3f, 0x39, 0x39, 0x3f, 0x3f, 0x1e, 0x1e, 0x0c, 0x00, + 0x00, 0x00, 0x01, 0x0f, 0x3e, 0x78, 0x70, 0xf8, 0xfc, 0xfe, 0x7e, 0x3e, 0x3c, 0x3c, 0x78, 0x78, + 0x78, 0xf0, 0xf1, 0xff, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'walk2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x7f, 0xff, 0xff, 0xe7, 0xc7, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3e, 0x78, 0xf0, 0xfc, 0x7e, 0x1e, 0x1f, 0x0f, 0x0e, + 0x1e, 0x1c, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // Run + static const char PROGMEM run[2][ANIM_SIZE] = { + // 'run1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, + 0x87, 0x7f, 0xff, 0xff, 0xf1, 0xc3, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1f, 0x3e, 0x78, 0xf7, 0xff, 0x7f, 0x3d, 0x03, 0x07, 0x0f, + 0x1e, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'run2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0x3e, 0xde, 0xfe, 0xfc, 0xf8, 0x00, 0x00, + 0xe0, 0xfe, 0xff, 0x7f, 0x07, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x1e, 0x3c, 0x78, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x07, 0x1f, 0x3f, 0x7c, 0x78, 0xff, + 0xff, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + };*/ + + // Bark + static const char PROGMEM bark[2][ANIM_SIZE] = { + // 'bark1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe7, 0xe7, 0xef, 0xef, 0xcf, 0xcb, 0x83, 0x83, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x1c, 0x38, 0x78, 0xf1, 0xe3, 0xe3, 0xe7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'bark2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x9f, + 0x0f, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e, 0xe6, 0x83, 0x03, 0x0f, 0x43, 0x43, 0x90, 0x88, 0x08, + 0x00, 0x00, 0x03, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xfb, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // Sneak + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // animation + void animate_luna(void) { + + // jump + if (isJumping || !showedJump) { + + // clear + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y -1); + + showedJump = true; + } else { + + // clear + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + + oled_set_cursor(LUNA_X,LUNA_Y); + } + + // switch frame + current_frame = (current_frame + 1) % 2; + + // current status + if(isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + /* + } else if(current_wpm_read <= MIN_WALK_SPEED) { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + + } else if(current_wpm_read <= MIN_RUN_SPEED) { + oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); + + } else { + oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); + }*/ + } else { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + } + + } + + // animation timer + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } + } + // KEYBOARD PET END + + static void print_logo_narrow(void) { + oled_set_cursor(0,4); + oled_write("SOLAR", false); + oled_set_cursor(0,5); + oled_write("TMPST", false); + + #ifdef OLED_LOGO + render_logo(0,9); //Not defining this in config.h will save 112 bytes. + #endif + } + + static void print_status_narrow(void) { + /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. + case 0: + oled_write("SOLAR", false); + break; + case 1: + oled_write("GAME", false); + break; + default: + oled_write("UNDEF", false); + }*/ + + // Print current layer + oled_set_cursor(0,1); + oled_write("LAYER", false); + + oled_set_cursor(0,2); + switch (get_highest_layer(layer_state)) { + case 0: + case 2: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 4: + oled_write("Raise", false); + break; + case 3: + oled_write("Lower", false); + break; + } + + // lock status + oled_set_cursor(0,5); + oled_write("LOCK", false); + oled_set_cursor(0,6); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,7); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,8); + oled_write("Scrl", led_usb_state.scroll_lock); + + /* KEYBOARD PET RENDER START */ + render_luna(0,11); + /* KEYBOARD PET RENDER END */ + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_270; + } + + void oled_task_user(void) { + led_usb_state = host_keyboard_led_state(); + + if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations + if (timer_elapsed32(oled_timer) > 30000) { + oled_off(); + return; + } else { + oled_on(); + } + } + + if (is_keyboard_master()) { + print_status_narrow(); + } else { + print_logo_narrow(); + } + } +#endif diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index a6d0a766b59a..d33293be4db1 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -4,22 +4,26 @@ BOOTLOADER = atmel-dfu # Build Options # Comment out to disable the options. -SPLIT_KEYBOARD = yes # Split keyboard -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -EXTRAKEY_ENABLE = yes # Audio control and System control (+450) -RGBLIGHT_ENABLE = yes # RGB lighting (+2350) -ENCODER_ENABLE = yes # Encoders -MOUSEKEY_ENABLE = no # Mouse keys (+1482) -NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work -LTO_ENABLE = yes # Save space +SPLIT_KEYBOARD = yes # Split keyboard +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +CONSOLE_ENABLE = no # Console for debug +EXTRAKEY_ENABLE = yes # Audio control and System control (+450) +RGBLIGHT_ENABLE = yes # RGB lighting (+2350) +ENCODER_ENABLE = yes # Encoders +MOUSEKEY_ENABLE = no # Mouse keys (+1482) +NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work +LTO_ENABLE = yes # Save space -OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608) -OLED_DRIVER = SSD1306 # Specify OLED driver -WPM_ENABLE = yes # WPM counter for keyboard pets (+1298) -COMBO_ENABLE = no # Tap combo chording, may run into space issue if also using keyboard pets (+952) - # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. +OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608) +OLED_DRIVER = SSD1306 # Specify OLED driver +WPM_ENABLE = no # WPM counter for keyboard pets (+1298) +COMBO_ENABLE = no # Tap combo chording, may run into space issue if also using keyboard pets (+952) + # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. -GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) -MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) -SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) +GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) +MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) +SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) + +POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball +QUANTUM_LIB_SRC += i2c_master.c +#SRC += drivers/sensors/pimoroni_trackball.c # There is an issue with the rotation code in the current master. Modified version included in keymap.c instead. \ No newline at end of file diff --git a/keyboards/solartempest/sofle/sofle VIA keymap.json b/keyboards/solartempest/sofle/sofle VIA keymap.json index 163a23ab1b15..3620b3b1e23e 100644 --- a/keyboards/solartempest/sofle/sofle VIA keymap.json +++ b/keyboards/solartempest/sofle/sofle VIA keymap.json @@ -29,6 +29,16 @@ "name": "Shift-BSPC", "title": "Shift-Backspace to Delete Whole Words", "shortName": "SBS" + }, + { + "name": "Trackball Scroll", + "title": "Pimoroni Trackball Scroll Mode", + "shortName": "PM_SCROLL" + }, + { + "name": "Trackball Precision", + "title": "Pimoroni Trackball Precision Mode", + "shortName": "PM_PRECISION" } ], "layouts": diff --git a/keyboards/solartempest/sofle/sofle VIA layout trackball.json b/keyboards/solartempest/sofle/sofle VIA layout trackball.json new file mode 100644 index 000000000000..f794311887be --- /dev/null +++ b/keyboards/solartempest/sofle/sofle VIA layout trackball.json @@ -0,0 +1,367 @@ +{ + "name": "Solarius_Sofle", + "vendorProductId": 4231139975, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_NO", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_VOLU", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_F", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_VOLD", + "KC_MUTE", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "TT(3)", + "KC_ENT", + "KC_LALT", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_0", + "USER04", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_LEFT", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_NO", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_RGHT", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "TT(4)", + "KC_SPC", + "C(KC_W)", + "KC_N" + ], + [ + "KC_PSCR", + "KC_5", + "KC_1", + "KC_2", + "KC_3", + "KC_G", + "KC_SPC", + "KC_F12", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_TRNS", + "KC_TAB", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_NO", + "KC_LSFT", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_TRNS", + "KC_TRNS", + "KC_LALT", + "KC_B", + "KC_TRNS", + "KC_F22", + "KC_SPC", + "KC_NO", + "KC_F4", + "KC_F11", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F12", + "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_NO", + "KC_RALT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "TO(0)", + "KC_RALT", + "MO(4)", + "MO(2)", + "KC_ENT", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_NO", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_VOLU", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_F", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_VOLD", + "KC_MUTE", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "TT(2)", + "KC_SPC", + "KC_LALT", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_0", + "USER04", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_PGUP", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_NO", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_PGDN", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "TT(3)", + "KC_ENT", + "C(KC_W)", + "KC_N" + ], + [ + "KC_GRV", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_NO", + "KC_ESC", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "C(KC_TAB)", + "KC_TRNS", + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_NO", + "KC_TRNS", + "KC_EQL", + "KC_MINS", + "KC_PLUS", + "KC_LCBR", + "KC_RCBR", + "C(S(KC_TAB))", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_F11", + "KC_F10", + "KC_F9", + "KC_F8", + "KC_F7", + "KC_F6", + "KC_NO", + "KC_F12", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "C(KC_MINS)", + "KC_PIPE", + "KC_RPRN", + "KC_LPRN", + "KC_ASTR", + "KC_AMPR", + "KC_CIRC", + "KC_NO", + "KC_TRNS", + "KC_BSLS", + "KC_COLN", + "KC_DOT", + "KC_RBRC", + "KC_LBRC", + "C(KC_PPLS)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "KC_TRNS", + "C(KC_T)", + "KC_NO" + ], + [ + "KC_TRNS", + "C(KC_MINS)", + "C(KC_PPLS)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_INS", + "KC_PSCR", + "KC_APP", + "C(KC_UP)", + "C(KC_DOWN)", + "USER00", + "KC_TRNS", + "KC_LALT", + "KC_LCTL", + "KC_LSFT", + "C(KC_LEFT)", + "C(KC_RGHT)", + "KC_NO", + "KC_TRNS", + "C(KC_Z)", + "C(KC_X)", + "C(KC_C)", + "C(KC_V)", + "KC_TRNS", + "USER01", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_MYCM", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_F14", + "KC_F13", + "KC_NO", + "KC_DEL", + "KC_INS", + "KC_END", + "KC_UP", + "KC_HOME", + "KC_WWW_FORWARD", + "USER03", + "KC_BSPC", + "KC_NLCK", + "KC_RGHT", + "KC_DOWN", + "KC_LEFT", + "KC_WWW_BACK", + "KC_NO", + "KC_TRNS", + "KC_CAPS", + "KC_MS_BTN2", + "KC_MS_BTN1", + "USER05", + "USER06", + "USER02", + "KC_TRNS", + "KC_TRNS", + "KC_WWW_REFRESH", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index ace3db77edbb..8628e6281948 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,1793 +1,1713 @@ -:100000000C94E4060C942B070C942B070C940A30E8 -:100010000C942B070C942B070C942B070C942B0798 -:100020000C942B070C942B070C94F9190C94B5190C -:100030000C9461260C942B070C942B070C942B0723 -:100040000C942B070C942B070C942B070C942B0768 -:100050000C942B070C94D01A0C942B070C942B07A0 -:100060000C942B070C942B070C942B070C942B0748 -:100070000C942B070C942B070C942B070C942B0738 -:100080000C942B070C942B070C942B070C942B0728 -:100090000C942B070C942B070C942B070C942B0718 -:1000A0000C942B070C942B070C942B0737032B6411 +:100000000C9449060C9490060C9490060C9469315B +:100010000C9490060C9490060C9490060C94900608 +:100020000C9490060C9490060C943C1A0C94F819BD +:100030000C9438260C9490060C9490060C94900620 +:100040000C9490060C9490060C9490060C949006D8 +:100050000C9490060C94131B0C9490060C94900630 +:100060000C9490060C9490060C9490060C949006B8 +:100070000C9490060C9490060C9490060C949006A8 +:100080000C9490060C9490060C9490060C94900698 +:100090000C9490060C9490060C9490060C94900688 +:1000A0000C9490060C9490060C94900637032B64E5 :1000B000AAFF000000001C032B64AAFF0000000040 :1000C00004032B64AAFF000000000000D7FF78FFA4 :1000D00000000000000080FF64FF0000000000003E :1000E0005FFF5AFF000000000000FCFF7DFF0000E2 -:1000F000000000005FFF5AFF0000000005010980BA -:10010000A101850319012AB700150126B700950141 -:1001100075108100C0050C0901A101850419012A8F -:10012000A002150126A002950175108100C006608D -:10013000FF0961A1010962150026FF0095207508DD -:1001400081020963150026FF00952075089102C001 -:1001500005010906A101050719E029E71500250198 -:10016000950875018102950175088101050719003F -:1001700029FF150026FF009506750881000508195E -:10018000012905950575019102950175039101C03D -:10019000000000000000000000000000000000005F -:1001A000000000000000000000000000000000004F -:1001B000000000007E0F00D4FFFFFFC700000078A2 -:1001C00000000000000000002A2B280000000000B2 -:1001D00000000000000000000000002900000000F6 -:1001E0002C1E3420212224342627252E362D373864 -:1001F000271E1F202122232425263333362E37386D -:100200001F0405060708090A0B0C0D0E0F1011122A -:10021000131415161718191A1B1C1D2F3130232DF6 -:10022000350405060708090A0B0C0D0E0F101112F4 -:10023000131415161718191A1B1C1D2F3130354CA5 -:1002400000DA02815AD9F1DB20A4A62EAF00A0C0AB -:1002500000A1C800AED580A81FD300408D14200097 -:10026000F200E800DE00D400CA00C000B600AC0016 -:10027000000000000000000000000000000000007E -:10028000000080C0E0F0F0F898F8F8F8F070200076 -:10029000000000000060C08000000000C0F0F0F02E -:1002A000E0C0877FFFFFF1C30303030101000000EB -:1002B00000000000000103071F3E78F7FF7F3D03A9 -:1002C000070F1E3D7FFFFFFFFC78000000000000CD -:1002D000000000000000000000000000000000001E -:1002E0000000000080E0F0F0F898F8F8F8F07020D6 -:1002F0000000008000000000C0F8FC3EDEFEFCF8BC -:100300000000E0FEFF7F070103030301010000007E -:10031000000000071E3C78FFFF7F0100071F3F7CA5 -:1003200078FFFF7F070000000000000000000000D1 -:1003300000000000000000000000000000000000BD -:1003400000000000000000000000808000000000AD -:1003500000000000C00000000000000000000000DD -:1003600000000000F8FCFEFE1F3F39393F3F1E1E13 -:100370000C000000010F3E7870F8FCFE7E3E3C3C15 -:10038000787878F0F1FF7F7F3E00000000000000E9 -:10039000000000000000000000000000000000005D -:1003A000000000008080C0C06060C0C0C08000004D -:1003B000000000002060C08000000000000000007D -:1003C00000003E7FFFFFE7C70E0E0F0F0707030079 -:1003D00000000000000001071F3E78F0FC7E1E1F99 -:1003E0000F0E1E1C3D7FFFFFFFFC78000000000089 -:1003F000000000000000000000000000E0F0F0F845 -:10040000F8CCCCF8F8F0F06000000000000000002C -:100410000000000000000000000000000F3F7FFC13 -:10042000F9F1E1C1810000000000000000000000BF -:10043000000000000000000C387060E0E0F0F0F810 -:10044000F9FFFFFFFFFF7E1C00000000000000001E -:10045000000000000000000000000000E0F0F0F8E4 -:10046000F8CCCCF8F8F0F0600000000000000000CC -:100470000000000000000000000000000F3F7FFCB3 -:10048000F9F1E1C1810000010102060C0400000045 -:100490000000000000000000387C60E0E0F0F0F8B0 -:1004A000F9FFFFFFFFFF7E1C0000000000000000BE -:1004B000000000000000000000000000000000003C -:1004C000000000000000000000000000000000002C -:1004D0000000000000CCF870000000000000C0F038 -:1004E000F8F87CFCEEE6FCFC7878B0000000000038 -:1004F000000000003F7FF1F8F87C7CF8F0F0F1E7B5 -:10050000EFEFFEFEFEFCFCF8F060000103060200C7 -:1005100000000000000000000000000000000000DB -:1005200000000000000000000000000000000000CB -:100530000000000080E0F81C000000000000C0F097 -:10054000F8F87CFCEEE6FCFC787830000000000057 -:10055000000000003F7FF0F8F87C7CF8F0F0F1E755 -:10056000EFEFFEFEFEFCFCF8F06000000000000073 -:100570000000000000000080C0C0E0E03070E0E05B -:10058000C0C080000000000000000000000000006B -:100590000000000000001F7FFFFFE7E7EFEFCFCB79 -:1005A0008383010000000000000000000000000044 -:1005B00000000000061C3878F1E3E3E7F7F7FFFFDF -:1005C000FFFF7F3E00000000000000000000000070 -:1005D000000000000000000000000000000000001B -:1005E0000000000080C0E0E060E0C0C0808000004B -:1005F000000000000000000000000020F8FEFFFFE7 -:10060000FF9F0F0E1F1F3F3F7EE683030F43439064 -:1006100088080000031E3C78F0E0E0F0F0FBFFFFEC -:10062000FF7F7F3800000000000000000000000095 -:100630000000000004F6B8F8D8F0E0C00000008028 -:10064000C0E0E0F0F0F0F0E0E0C08000000000006A -:1006500000000080C0E1F3FB7F1F0F0000F0FFFFF0 -:100660003F030100000080C1F3FF7F1F000080C036 -:10067000E0301E3F3F7FF9F0F070783C3F1F0F03E2 -:10068000000000001C3F7F7FFBF1F0783C1E0F0351 -:100690000000000101010101010101010202020249 -:1006A000020202020203030303030303030404041C -:1006B00004040404050505050506060606060707E5 -:1006C00007070708080808090909090A0A0A0B0B9D -:1006D0000B0C0C0C0D0D0D0E0E0E0F0F0F1010113C -:1006E00011111212131314141515161617171818C2 -:1006F00019191A1A1B1B1C1D1D1E1E1F202021222A -:1007000022232424252626272829292A2B2C2D2D6F -:100710002E2F30313232333435363738393A3B3C8C -:100720003D3E3F404142434445464748494A4C4D7F -:100730004E4F50515354555658595A5B5D5E5F6148 -:100740006264656668696B6C6D6F707273757778DB -:100750007A7B7D7E8082838587888A8C8E8F919339 -:100760009596989A9C9EA0A2A3A5A7A9ABADAFB160 -:10077000B3B5B7BABCBEC0C2C4C6C9CBCDCFD1D445 -:10078000D6D8DBDDDFE2E4E7E9EBEEF0F3F5F8FAEB -:10079000FDFFFFAA7F55401C1004010D190A2423F8 -:1007A0002221201F1E1D1B1A1817161514131211B3 -:1007B0000F0E0C0B09080706050302002D394548EA -:1007C0003C303F25262728292A2B2C2E2F31323347 -:1007D00034353637383A3B3D3E4041424344464744 -:1007E0004907087F0807003E5B4F5B3E003E6B4FAA -:1007F0006B3E001C3E7C3E1C00183C7E3C18001CDE -:10080000577D571C001C5E7F5E1C0000183C1800C2 -:1008100000FFE7C3E7FF00001824180000FFE7DB34 -:10082000E7FF0030483A060E0026297929260040C5 -:100830007F05050700407F05253F005A3CE73C5AED -:10084000007F3E1C1C0800081C1C3E7F0014227FF9 -:100850002214005F5F005F5F0006097F017F0000D8 -:100860006689956A0060606060600094A2FFA2944F -:100870000008047E04080010207E20100008082ACA -:100880001C0800081C2A0808001E10101010000C7C -:100890001E0C1E0C0030383E383000060E3E0E0690 -:1008A0000000000000000000005F000000000700E2 -:1008B000070000147F147F1400242A7F2A120023CB -:1008C00013086462003649562050000008070300F0 -:1008D00000001C224100000041221C00002A1C7F55 -:1008E0001C2A0008083E080800008070300000083C -:1008F00008080808000000606000002010080402DA -:10090000003E5149453E0000427F40000072494987 -:100910004946002141494D33001814127F10002729 -:1009200045454539003C4A494931004121110907F3 -:1009300000364949493600464949291E000000143D -:1009400000000000403400000000081422410014A0 -:10095000141414140000412214080002015909065D -:10096000003E415D594E007C1211127C007F4949C6 -:100970004936003E41414122007F4141413E007FD6 -:1009800049494941007F09090901003E414151732C -:10099000007F0808087F0000417F4100002040419F -:1009A0003F01007F08142241007F40404040007F0B -:1009B000021C027F007F0408107F003E4141413E3F -:1009C000007F09090906003E4151215E007F091997 -:1009D00029460026494949320003017F0103003FAF -:1009E0004040403F001F2040201F003F4038403F14 -:1009F0000063140814630003047804030061594978 -:100A00004D4300007F4141410002040810200000D6 -:100A10004141417F00040201020400404040404047 -:100A2000000003070800002054547840007F284449 -:100A3000443800384444442800384444287F00386F -:100A4000545454180000087E09020018A4A49C788D -:100A5000007F080404780000447D400000204040EE -:100A60003D00007F102844000000417F4000007CD2 -:100A700004780478007C080404780038444444383E -:100A800000FC182424180018242418FC007C0804F6 -:100A900004080048545454240004043F4424003CF7 -:100AA0004040207C001C2040201C003C4030403C4A -:100AB000004428102844004C9090907C00446454DA -:100AC0004C440000083641000000007700000000A0 -:100AD00041360800000201020402003C2623263CA5 -:100AE00000000000000000404040F0F8F8FF38FF30 -:100AF000F8F83FF8F8FF38FFF8F8F0404040000001 -:100B00000000000080C0C0C0800000C0C0800000A5 -:100B10000080C0C000C0C0000080C0C00000000055 -:100B200000C0C0C0C0C000C0C00000000000000085 -:100B300000000000000000000000000000000000B5 -:100B400000000000000000000000000000000000A5 -:100B50000000000000000000000000000000000095 -:100B6000C0F0F8FC3E1E06010000007F4141417FBD -:100B7000007F4141417F000080C0E07E5B4F5BFE13 -:100B8000C00000C000DCD7DEDEDED7DC00C0000025 +:1000F000000000005FFF5AFF000000000501090238 +:10010000A10185020901A1000509190129081500AD +:100110002501950875018102050109300931158114 +:10012000257F95027508810609381581257F95017F +:1001300075088106050C0A38021581257F95017521 +:10014000088106C0C005010980A101850319012AA3 +:10015000B700150126B700950175108100C0050C88 +:100160000901A101850419012AA002150126A00296 +:10017000950175108100C00660FF0961A101096247 +:10018000150026FF009520750881020963150026D9 +:10019000FF00952075089102C005010906A101051F +:1001A0000719E029E71500250195087501810295D9 +:1001B00001750881010507190029FF150026FF00B8 +:1001C0009506750881000508190129059505750131 +:1001D0009102950175039101C0000000000000002C +:1001E000000000000000000000000000000000000F +:1001F000000000000000000000000000007E0F0072 +:10020000D4FFFFFFC70000007800000000000000DE +:10021000002A2B2800000000000000000000000061 +:100220000000000029000000002C1E3420212224A0 +:10023000342627252E362D3738271E1F202122232E +:100240002425263333362E37381F040506070809C0 +:100250000A0B0C0D0E0F1011121314151617181986 +:100260001A1B1C1D2F3130232D35040506070809E4 +:100270000A0B0C0D0E0F1011121314151617181966 +:100280001A1B1C1D2F3130354C00DA02815AD9F16E +:10029000DB20A4A62EAF00A0C000A1C800AED58070 +:1002A000A81FD300408D142000F200E800DE00D427 +:1002B00000CA00C000B600AC000000000000000052 +:1002C0000000000000E0F0F0F8F8CCCCF8F8F0F016 +:1002D00060000000000000000000000000000000BE +:1002E00000000000000F3F7FFCF9F1E1C181000038 +:1002F00000000000000000000000000000000000FE +:100300000C387060E0E0F0F0F8F9FFFFFFFFFF7ECF +:100310001C000000000000000000000000000000C1 +:100320000000000000E0F0F0F8F8CCCCF8F8F0F0B5 +:10033000600000000000000000000000000000005D +:1003400000000000000F3F7FFCF9F1E1C1810000D7 +:10035000010102060C040000000000000000000083 +:1003600000387C60E0E0F0F0F8F9FFFFFFFFFF7E6F +:100370001C00000000000000000000000000000061 +:10038000000000000000000000000000000000006D +:100390000000000000000000000000000000CCF899 +:1003A00070000000000000C0F0F8F87CFCEEE6FCF5 +:1003B000FC7878B00000000000000000003F7FF1F2 +:1003C000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCC5 +:1003D000F8F06000010306020000000000000000C9 +:1003E000000000000000000000000000000000000D +:1003F0000000000000000000000000000080E0F8A5 +:100400001C000000000000C0F0F8F87CFCEEE6FCE8 +:10041000FC7878300000000000000000003F7FF012 +:10042000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC64 +:10043000F8F0600000000000000000000000000074 +:1004400080C0C0E0E03070E0E0C0C080000000008C +:100450000000000000000000000000000000001F7D +:100460007FFFFFE7E7EFEFCFCB83830100000000C2 +:1004700000000000000000000000000000061C3822 +:1004800078F1E3E3E7F7F7FFFFFFFF7F3E000000AF +:10049000000000000000000000000000000000005C +:1004A0000000000000000000000000000080C0E02C +:1004B000E060E0C0C080800000000000000000009C +:1004C0000000000020F8FEFFFFFF9F0F0E1F1F3FE0 +:1004D0003F7EE683030F43439088080000031E3CE1 +:1004E00078F0E0E0F0F0FBFFFFFF7F7F38000000D6 +:1004F0000000000000000000000000000004F6B84A +:10050000F8D8F0E0C000000080C0E0E0F0F0F0F0CB +:10051000E0E0C080000000000000000080C0E1F3C7 +:10052000FB7F1F0F0000F0FFFF3F03010000008072 +:10053000C1F3FF7F1F000080C0E0301E3F3F7FF906 +:10054000F0F070783C3F1F0F03000000001C3F7F5D +:100550007FFBF1F0783C1E0F030000000101010158 +:10056000010101010102020202020202020203036E +:10057000030303030303040404040404040505053E +:100580000505060606060607070707070808080800 +:10059000090909090A0A0A0B0B0B0C0C0C0D0D0DAD +:1005A0000E0E0E0F0F0F1010111111121213131443 +:1005B00014151516161717181819191A1A1B1B1CBB +:1005C0001D1D1E1E1F202021222223242425262615 +:1005D000272829292A2B2C2D2D2E2F30313232334A +:1005E0003435363738393A3B3C3D3E3F4041424353 +:1005F0004445464748494A4C4D4E4F505153545537 +:100600005658595A5B5D5E5F616264656668696BE6 +:100610006C6D6F7072737577787A7B7D7E80828364 +:100620008587888A8C8E8F91939596989A9C9EA0A8 +:10063000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0B5 +:10064000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E47E +:10065000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55406E +:100660001C1004010D190A24232221201F1E1D1B0A +:100670001A18171615141312110F0E0C0B09080770 +:1006800006050302002D3945483C303F2526272822 +:10069000292A2B2C2E2F31323334353637383A3B3A +:1006A0003D3E404142434446474907087F08070012 +:1006B0003E5B4F5B3E003E6B4F6B3E001C3E7C3E04 +:1006C0001C00183C7E3C18001C577D571C001C5E0B +:1006D0007F5E1C0000183C180000FFE7C3E7FF0026 +:1006E000001824180000FFE7DBE7FF0030483A0657 +:1006F0000E00262979292600407F05050700407F46 +:1007000005253F005A3CE73C5A007F3E1C1C080070 +:10071000081C1C3E7F0014227F2214005F5F005FD4 +:100720005F0006097F017F00006689956A006060AE +:100730006060600094A2FFA2940008047E04080098 +:1007400010207E20100008082A1C0800081C2A0817 +:1007500008001E10101010000C1E0C1E0C0030386B +:100760003E383000060E3E0E06000000000000007D +:1007700000005F000000000700070000147F147FE6 +:100780001400242A7F2A12002313086462003649C9 +:1007900056205000000807030000001C2241000002 +:1007A0000041221C00002A1C7F1C2A0008083E0869 +:1007B00008000080703000000808080808000000E9 +:1007C000606000002010080402003E5149453E00D0 +:1007D00000427F4000007249494946002141494D8D +:1007E00033001814127F10002745454539003C4A54 +:1007F000494931004121110907003649494936006C +:10080000464949291E000000140000000040340041 +:1008100000000008142241001414141414000041B4 +:10082000221408000201590906003E415D594E009C +:100830007C1211127C007F49494936003E414141FA +:1008400022007F4141413E007F49494941007F09E3 +:10085000090901003E41415173007F0808087F00EB +:1008600000417F4100002040413F01007F081422E9 +:1008700041007F40404040007F021C027F007F0417 +:1008800008107F003E4141413E007F0909090600F2 +:100890003E4151215E007F091929460026494949F8 +:1008A000320003017F0103003F4040403F001F2012 +:1008B00040201F003F4038403F006314081463008D +:1008C0000304780403006159494D4300007F41410E +:1008D0004100020408102000004141417F00040251 +:1008E00001020400404040404000000307080000AF +:1008F0002054547840007F2844443800384444440D +:100900002800384444287F00385454541800000804 +:100910007E09020018A4A49C78007F0804047800D3 +:1009200000447D4000002040403D00007F102844EE +:10093000000000417F4000007C04780478007C08BF +:1009400004047800384444443800FC182424180077 +:1009500018242418FC007C0804040800485454544B +:10096000240004043F4424003C4040207C001C2020 +:1009700040201C003C4030403C00442810284400EB +:100980004C9090907C004464544C440000083641E4 +:10099000000000007700000000413608000002015E +:1009A000020402003C2623263C0000000000000058 +:1009B000404040F0F8F8FF38FFF8F83FF8F8FF380B +:1009C000FFF8F8F040404000000000000080C0C088 +:1009D000C0800000C0C08000000080C0C000C0C057 +:1009E000000080C0C00000000000C0C0C0C0C00047 +:1009F000C0C0000000000000000000000000000077 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A2000000000000000000000C0F0F8FC3E1E06C0 +:100A3000010000007F4141417F007F4141417F0033 +:100A40000080C0E07E5B4F5BFEC00000C000DCD7D2 +:100A5000DEDEDED7DC00C000000000000000000089 +:100A60000000000000000000000000000000000086 +:100A7000494949FFFFFFFFE0DFBFBF00BFBFDFE025 +:100A8000FFFFFFFF49494900000000001F3F606071 +:100A9000E0BF1F007F7F071E381E077F7F007F7F1C +:100AA0000E1F3B716000000000007F7F0C0C0C00EB +:100AB0007E7E007F7E0303007F7E03037E7E030332 +:100AC0007F7E000F3E703C063C703E0F00327B493B +:100AD000493F7E007F7E0303001E3F69696F260049 +:100AE000000000000000000000030F1F3F3C787072 +:100AF000600000007F4141417F007F4141417F0014 +:100B0000307B7F7830202030787F3B0003000F7FE0 +:100B10000F0F0F7F0F000300000000000000000017 +:100B200000000000000000000000000000000000C5 +:100B3000010101070F0F7F0F7F0F0F7E0F0F7F0F38 +:100B40007F0F0F07010101000000000000000000FE +:100B50000001010000000000000000000000000093 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 :100B90000000000000000000000000000000000055 -:100BA00000000000000000494949FFFFFFFFE0DFAF -:100BB000BFBF00BFBFDFE0FFFFFFFF4949490000A3 -:100BC0000000001F3F6060E0BF1F007F7F071E38EE -:100BD0001E077F7F007F7F0E1F3B716000000000BB -:100BE000007F7F0C0C0C007E7E007F7E0303007F65 -:100BF0007E03037E7E03037F7E000F3E703C063C37 -:100C0000703E0F00327B49493F7E007F7E03030028 -:100C10001E3F69696F260000000000000000000010 -:100C2000030F1F3F3C7870600000007F4141417F0F -:100C3000007F4141417F00307B7F78302020307839 -:100C40007F3B0003000F7F0F0F0F7F0F000300009B -:100C50000000000000000000000000000000000094 -:100C600000000000000000010101070F0F7F0F7F4F -:100C70000F0F7E0F0F7F0F7F0F0F07010101000085 -:100C80000000000000000000010100000000000062 -:100C90000000000000000000000000000000000054 -:100CA0000000000000000000000000000000000044 -:100CB0000000000000000000000000000000000034 -:100CC0000000000000000000000000000000000024 -:100CD0000000000000000000000000000000000014 -:100CE0000000000000000000000000000000000004 -:100CF00000000000000000000000000000000000F4 -:100D000000000000000000000000000000000000E3 -:100D100000000000000000000000000000000000D3 -:100D20000000AF00AE09025B00030100A0FA090455 -:100D3000000001030101000921110100012240000E -:100D40000705810308000A090401000203000000EE -:100D50000921110100012222000705820320000160 -:100D6000070503032000010904020001030000003D -:100D70000921110100012232000705840320000A25 -:100D8000120100020000000832FC8712020001027A -:100D900000011E0353006F006C00610072006900C7 -:100DA000750073005F0053006F0066006C00650003 -:100DB000000010034B0065007900680069007600B0 -:100DC000650000000403090411241FBECFEFDAE020 -:100DD000DEBFCDBF04B603FE27C0809167069091A9 -:100DE0006806A0916906B0916A068730904BA740CB -:100DF000B04BD1F410926706109268061092690603 -:100E000010926A0614BE84B7877F84BF0FB6F89429 -:100E1000A8958091600088618093600010926000C6 -:100E20000FBEE0E0F8E3099512E0A0E0B1E0ECEBE2 -:100E3000FEE602C005900D92A833B107D9F726E06F -:100E4000A8E3B2E001C01D92A736B207E1F70E9405 -:100E500088260C9425370C940000CF93DF934091A3 -:100E6000650650916606455654409A01205A3F4FF8 -:100E700021303240C0F020E032E0241B350B60917D -:100E8000630470916404FC01CA01240F351FC1E0A2 -:100E9000D0E08217930750F070936404609363046A -:100EA000DF91CF91089520E630E0E9CF4491DC0155 -:100EB000AB59BB4F5C91451781F04C93AC01A5E059 -:100EC00056954795AA95E1F7DE0102C0AA0FBB1F10 -:100ED0004A95E2F7AD016A2B752B01963196D9CF71 -:100EE000E8EDF0E080818E7F80831092E200109226 -:100EF000DA001092E100A0EEB0E08C9181608C935A -:100F000080818F77808319BCA7EDB0E08C918E7FB4 -:100F10008C9380818F7E8083109245040895209168 -:100F2000E4003091E50095E6A9012091EC00822FC4 -:100F3000817020FF06C08091E80080FF06C080E03D -:100F400008952091E80022FD1AC08091530488235F -:100F500089F0853089F08091EB0085FD0FC02091EC -:100F6000E4003091E50042175307F9F29150E1F6A1 -:100F700084E0089582E0089583E0089581E0089573 -:100F8000EF92FF920F931F93CF937C018B010E94EE -:100F90008F07C82F811117C08091E80085FD0BC015 -:100FA0008091E8008E778093E8000E948F07882365 -:100FB00099F3C82F08C0F70181917F018093F10058 -:100FC0000150110949F78C2FCF911F910F91FF907C -:100FD000EF9008958091550487FF13C08091E80039 -:100FE00082FF06C08091E8008B778093E80004C000 -:100FF000809153048111F2CF089580915304882386 -:10100000D9F38091E80080FFF8CF8091E8008E77D7 -:10101000ECCF982F9093E900242F762F50E089177A -:1010200031F07091EC002091ED005091F00021FD25 -:1010300007C09F5F973071F78093E90081E00895C2 -:101040003091EB003E7F3093EB003091ED003D7F1F -:101050003093ED003091EB0031603093EB007093F2 -:10106000EC002093ED005093F0002091EE0027FD5E -:10107000E0CF80E00895CF92DF92EF92FF920F933E -:101080001F93CF93DF93C8EDD0E088818F7E888354 -:10109000E7EDF0E080818160808384E082BF81E0C1 -:1010A0008093450488818E7F888302EE10E0F801EA -:1010B00010821092DA0081EEC82ED12CF601108237 -:1010C00088818F77888388818068888388818F7DF5 -:1010D000888319BC10925304109254041092520445 -:1010E0001092510490EEE92EF12CF70180818B7F54 -:1010F000808388818160888342E060E080E00E9494 -:101100000908F60180818E7F8083F80180818160EB -:101110008083808188608083F70180818E7F8083D7 -:10112000888180618883DF91CF911F910F91FF901B -:10113000EF90DF90CF900895FC0180915B04909137 -:101140005C0486179707A0F06115710529F490914A -:10115000E8009E779093E80090E06115710551F4E6 -:10116000911108C08091E80082FF34C080E00895AA -:10117000BC01F2CF809153048823C1F18530C1F1C5 -:101180008091E80083FD30C08091E80082FDEACFC5 -:101190008091E80080FFE1CF8091F3002091F20080 -:1011A000382F6115710519F02830310558F091E09C -:1011B0002830310509F090E02091E8002E77209347 -:1011C000E800CBCF81918093F100615071092F5FCE -:1011D0003F4FE7CF80915304882341F0853041F0A1 -:1011E0008091E80083FFBECF81E0089582E00895FA -:1011F00083E0089508958091480408952FB7F894E6 -:1012000060913E0470913F048091400490914104AC -:101210002FBF089520913B0430913C0428173907D3 -:1012200071F090933C0480933B04E0913904F09179 -:101230003A04309721F00084F185E02D0994089557 -:1012400020913704309138042817390771F09093B2 -:10125000380480933704E0913904F0913A043097D0 -:1012600021F00680F781E02D0994089520912A0449 -:1012700036E0839FC0011124629F800D911D1124CF -:10128000811522E0920714F090E080E08B599B4F8B -:1012900090936606809365060895FC01680F791F98 -:1012A0008FEF91E32191822728E030E087FF09C08A -:1012B000880F892721503109C9F7E617F70791F7F9 -:1012C0000895880FF7CFFA01811101C0FB0109943D -:1012D00080915E04982F9E7F61F48170826080937C -:1012E0005E0480916104813A18F080EA8093610481 -:1012F00008958831B0F381708661F1CFAF92BF92CB -:10130000DF92EF92FF920F931F93CF93DF93082FFB -:10131000162FE901E42FF0E0EE56F94F611110C0ED -:10132000E4915E2F4E2F4983E8835A83DF91CF915A -:101330001F910F91FF90EF90DF90BF90AF900895B5 -:10134000E62EF12C4491D42EE42FF0E026E0829F8B -:10135000C00111242FEF30E0B9010E948431802FA9 -:1013600090E0880F991F55E5569FD001579FB00D0B -:1013700011248A1B9B0B982F990F890F5901AE18C6 -:10138000BF08AE9ED001AF9EB00DBE9EB00D112421 -:101390005B2F189F80011124012F11275901A01ADA -:1013A000B10AAE9E8001AF9E100DBE9E100D11249D -:1013B0005901A81AB108AE9CC001AF9C900DBE9C0B -:1013C000900D1124892F9927281B390B2E9FC001BE -:1013D0002F9F900D3E9F900D1124E92F62307105D3 -:1013E000A1F050F46115710509F49DCF61307105CC -:1013F00081F0EB2F512F97CF6430710569F080F0A9 -:101400006630710509F48FCFF4CFE42F4B2F592F9D -:101410008ACFE42F412F87CFEB2F542F492F83CF33 -:101420004B2F5D2DE12F7FCF80E0089578940895B4 -:10143000F894E82FE295EF70F0E031A1282F2F709B -:1014400081E090E001C0880F2A95EAF7982F9095E7 -:10145000932391A392A1892B82A30C94160A9091B5 -:10146000E50292FF06C0282F28712830F9F4877F03 -:10147000846093FF06C0282F28712831F1F4877EFD -:1014800084612091E60220FF06C0382F3871383081 -:10149000D9F4877F816021FF06C0282F2871283169 -:1014A000D1F4877E816194FD877E0895282F247171 -:1014B0002430F9F68B7F8860DCCF282F247124310B -:1014C00001F78B7E8861DDCF382F3171313019F70C -:1014D0008E7F8860E0CF282F2171213121F78E7E09 -:1014E0008861E1CFCF93DF93EC018238910581F1E0 -:1014F000B0F58133910509F491C020F58932910549 -:1015000009F485C08A9709F490C0C11521E5D20776 -:1015100008F0AAC0C11530E5D30708F0F2C0CF3BF0 -:10152000D10508F089C0C83AD10508F0DFC0C53A36 -:10153000D10508F0D3C0C430D105F8F4C130D105CD -:10154000E1F040C08533910509F45AC0C997E9F626 -:101550008091E502837089F0C0EED0E00EC0833E3A -:10156000910599F170F4803E910501F1823E91055B -:1015700061F68091E50282FD21C0CE01DF91CF911D -:101580000895863E910561F1873E910571F1843E93 -:10159000910509F0BACF8091E60281FFEECF8091EC -:1015A000E502C7EED0E084FD0DC0E7CF8091E502F3 -:1015B00080FDF7C09091E60290FFDFCFC3EED0E050 -:1015C00084FFDBCFD0E0C0E0D8CF8091E50282FD80 -:1015D000EBC09091E60290FDBFCF84FFCECFF2CF5B -:1015E0008091E50283FDDDCFC8CF8091E50283FDC8 -:1015F000DEC09091E60291FFF0CFC4EED0E0BDCF07 -:101600008091E50285FFB9CFC9E2D0E0B6CF8091E5 -:10161000E50285FFB2CFC5E3D0E0AFCF8091E50210 -:1016200086FFABCFCAE2D0E0A8CF8091E50286FF6B -:10163000A4CFC1E3D0E0A1CFC11540E2D40760F44C -:10164000C11581E0D80708F098CFCE01815E9109DD -:10165000079708F492CFB6CFC11590E4D90708F4E4 -:10166000B1CFDF70D06A89CFC11524E5D20778F4F5 -:10167000C11533E5D30708F072C0C11542E5D407A0 -:1016800008F05CC0DC2FCC27C16FD06A76CFC115C3 -:101690008AE5D80778F4C11599E5D90708F073C031 -:1016A000C11528E5D20708F48DCFDC2FCC27C06FF9 -:1016B000D06A63CFCE0190568115904208F082CF58 -:1016C0008D2F8F710E942F0A90E0982F88278827EE -:1016D0009F719C012C2BE901D0624FCFC55AD0E0FD -:1016E000CF52DE4FC881D0E0D06447CFC85AD0E097 -:1016F000CC0FDD1FCC52DE4F0990D881C02DD464B1 -:101700003CCFCE0164E0969587956A95E1F78370AA -:101710002C2F26952695237040E2249F90011124BA -:10172000382B8C2F8370C1E0D0E002C0CC0FDD1FBE -:101730008A95E2F7C22BD32BDC681FCFCE018370D2 -:10174000992721E030E002C0220F331F8A95E2F78B -:10175000C695C69580E2C89FE0011124EBCFCE016B -:101760008370992721E030E002C0220F331F8A9551 -:10177000E2F7C695C69590E2C99FE0011124C22BFD -:10178000D32BDA68FACE8C2F8F700E942F0A34E0A8 -:10179000D695C7953A95E1F7CF709C2FEC01D069AB -:1017A000ECCEC9E3D0E0E9CEC2EED0E0E6CEC6EEA4 -:1017B000D0E0E3CE0C94FE088091460490919B0209 -:1017C000892B90919A02892B80933A02E0913904F7 -:1017D000F0913A04309731F00280F381E02D8AE3F2 -:1017E00092E009940895809199029091680298136B -:1017F00001C008958F5F8770FACF27E0929F800D18 -:101800001124982F977086958695869523E0829F60 -:10181000F0011124E95BFD4F50E040E080E02191B0 -:1018200030E0092E02C0369527950A94E2F7217020 -:101830003327042E01C0220F0A94EAF7822B4F5F50 -:101840005F4F4330510559F7089527E0929F800D6F -:101850001124982F977041E001C0440F9A95EAF740 -:1018600086958695869593E0899FF0011124E95B22 -:10187000FD4F90E080E070E05191DF0111979B01F6 -:10188000082E02C0369527950A94E2F7217021951B -:101890002527242325272C9301968330910561F772 -:1018A000089590E080E00E94200990E080E00E948E -:1018B0000A0910929B0210929A020C94DC0B8093FE -:1018C0009C020C94510C882341F080959091460421 -:1018D0008923809346040C94DC0B0895882339F007 -:1018E00090914604982B909346040C94DC0B089539 -:1018F0008823B1F19CEF980F913A70F4ECE3F2E099 -:101900009191891303C0DF0111971C9242E0E234E8 -:10191000F407B1F70C94DC0B90E2980F983088F440 -:10192000877021E030E0A90102C0440F551F8A955D -:10193000E2F7CA018095909146048923809346047A -:10194000E9CF9BE5980F933020F490E080E00C9471 -:101950002009885A873120F490E080E00C940A092D -:1019600008950F931F93CF93C82F882309F469C05C -:101970008CEF8C0F813AB0F50CE312E082E492E038 -:10198000F8012191C21701F122E0E234F207C9F710 -:10199000EFEF80E0D8019D918D01C91781F0EF3FF5 -:1019A00019F4911101C0E82F8F5F863099F7EF3F4E -:1019B00031F00E2E000CFF0BE65CFD4FC283CF9181 -:1019C0001F910F910C94DC0BECE3F2E02191C21318 -:1019D00003C0DF0111971C928E179F07B9F70E9471 -:1019E000DC0BD6CF80E28C0F883068F4C77021E022 -:1019F00030E001C0220FCA95EAF780914604822B9D -:101A000080934604DCCFEBE5EC0FE33050F4F0E0DC -:101A1000EF52FE4F808190E0CF911F910F910C9477 -:101A20002009C85AC73168F4EC2FF0E0EE0FFF1F11 -:101A3000EC52FE4F80819181CF911F910F910C94B8 -:101A40000A09CF911F910F910895982F92959F7039 -:101A500011F0892F94E0282F2695269511F09E5F8E -:101A6000822F869509F09F5F892F0895CF92DF928C -:101A7000EF92FF920F931F93CF93DF936C017B0143 -:101A800064E670E088E70E94612EEC0197FD12C0C9 -:101A900010E000E0F601E00FF11F849164E670E0D1 -:101AA0000E94DB2EEC01892B29F40F5F1F4F0E15CE -:101AB0001F0581F70E945E2FCE01DF91CF911F910C -:101AC0000F91FF90EF90DF90CF90089580913504B3 -:101AD00090913604911103C091E0892708958823DD -:101AE00069F062E070E083E29DE00E94360D892B90 -:101AF00019F08091350408951092350480913504D1 -:101B0000EBCFCF93C0913504809136048823D1F078 -:101B10000E94FE086058774C8E4F9F4F60933104AF -:101B2000709332048093330490933404C11108C03D -:101B300062E070E081E29DE00E94360D892B29F081 -:101B4000C09135048C2FCF91089581E080933504A6 -:101B5000F7CF90915304943029F580934204709309 -:101B60004404609343049093E9008FEF9091E80060 -:101B7000815095FD06C095ED9A95F1F70000811111 -:101B8000F5CF8091E80085FF0DC050E040E063E0B4 -:101B900070E082E494E00E94C0078091E8008E77B4 -:101BA0008093E8000895BC0184E00C94A90DBC0169 -:101BB00083E00C94A90DCF93DF93EC0181E0809337 -:101BC000E9008FEF9091E800815095FD06C095EDFA -:101BD0009A95F1F700008111F5CF8091E80085FF1B -:101BE00014C050E040E068E070E0CE010E94C00701 -:101BF0008091E8008E778093E80088E0FE01A9E4F8 -:101C0000B4E001900D928A95E1F7DF91CF910895AC -:101C10009F92AF92BF92CF92DF92EF92FF920F937B -:101C20001F93CF93DF937C015B016A018091E002F7 -:101C300001E010E08A3010F40AE010E0C1E0D0E0EA -:101C4000F894B501C701F6010995982E0E94160A6D -:101C5000911004C021960C171D076CF4892DDF919B -:101C6000CF911F910F91FF90EF90DF90CF90BF9099 -:101C7000AF909F900895CC9F9001CD9F300D300D77 -:101C8000112490E080E045E34A95F1F700000196C9 -:101C900082179307C1F7D4CF8091AB02811110C096 -:101CA0008091D80080618093D8008AE18A95F1F70D -:101CB00000C08091D90080FF0AC081E08093AB0210 -:101CC00081E09091AB02913009F080E0089582E0CC -:101CD0008093AB020E94700710925304F1CF0E94D0 -:101CE0004C0E882351F0E0913904F0913A0430977A -:101CF00021F00190F081E02D099480E008951F9378 -:101D0000CF93DF93182FEB010E94B10C8FE99FE076 -:101D10000197F1F700C000002197C1F7812FDF91F3 -:101D2000CF911F910C94780C4F925F926F927F929B -:101D30008F929F92AF92BF92CF92DF92EF92FF92DB -:101D40000F931F93CF93DF93CDB7DEB7CE5DD1094D -:101D50000FB6F894DEBF0FBECDBF509077019091C3 -:101D60005E0490FF5DC080904A0390904B03811405 -:101D7000910409F068C0E7E9F7E09E012F5F3F4F4B -:101D8000BE0161527F4FC901A4914A2F50E0DA0190 -:101D9000AA0FBB1FA40FB51FA45BBC4FCD90DD9055 -:101DA000EC90D901CD92DD92ED929D0131966A17AA -:101DB0007B0751F72091760143E0249F800D911D10 -:101DC0001124539A2BB1277F3BB138605FB7F89449 -:101DD000BC01549E600D711D11248617970709F0F0 -:101DE0008EC05FBF8FE594E00197F1F700C000005F -:101DF000C252DF4F0FB6F894DEBF0FBECDBFDF91EA -:101E0000CF911F910F91FF90EF90DF90CF90BF90F7 -:101E1000AF909F908F907F906F905F904F900895BC -:101E2000809178012091790133E0839FF0011124A2 -:101E3000E45BFC4F821708F096CF11821082128269 -:101E40008F5F3396F7CF90FF96CFD12CC12C6624AD -:101E50006394712C53E0452E8091490393010C2C1F -:101E600001C0220F0A94EAF7822309F43FC0F60169 -:101E7000EE0FFF1FE80DF91DE590F490E114F10459 -:101E800009F479CF45E050E0B701CE0101960E94F8 -:101E90003D3209810F3F51F18A81800F9927991FA7 -:101EA0008B34910514F08AE490E05C01AA0CBB1C11 -:101EB0008A0D9B1DDC01A45BBC4F5D01049D80016C -:101EC0001124045B1C4F0A151B0520F0B5E0EB0E36 -:101ED000F11CD8CF4D81413A08F040EA98016C815D -:101EE0008B810E947E090D5F1F4FEDCFEFEFCE1A61 -:101EF000DE0AF8E0CF16D10409F0AECF3CCFFC01EA -:101F00004191CF01E8E03BB9000000C047FF2BB989 -:101F1000440F000000C000C000C02BB900C0EA950B -:101F200091F75BCFEEE5F4E080818E7F8083E6E47D -:101F3000F3E08281816082832FEF80E792E021507D -:101F400080409040E1F700C000000C94940EECE358 -:101F5000F2E086E0DF011D928A95E9F70C94510CBE -:101F60001F93CF93DF93CDB7DEB7AA970FB6F89440 -:101F7000DEBF0FBECDBF85E594E02091F100DC010E -:101F80002D93CD01B4E08D359B07B9F780915604B0 -:101F9000833009F471C0B8F4813009F448C082304C -:101FA00009F4B4C08091E80083FF3CC180915504DE -:101FB000909156049A3008F035C1E92FF0E0E95DC0 -:101FC000F84C0C94D7318A3009F48FC08B3009F467 -:101FD00070C0893039F780915504813219F78091AA -:101FE000590490915A04009711F00297D9F6809104 -:101FF000E800877F8093E8008091E80082FF37C087 -:102000009091F3008091F200029729F48091F10001 -:102010008B7F813021F48091F1008093480480917E -:10202000E8008B778093E8000E94EA07BBCF80919D -:102030005504813A09F0B6CF8091E800877F8093FC -:10204000E8008091590490915A04892B61F468E06A -:1020500089E494E070E00E949C088091E8008B770E -:102060008093E8009FCF60E090E080E0F3CF809124 -:1020700053048111C1CF96CF80915504813A09F064 -:1020800091CF8091590490915A04892B09F08ACFFD -:102090008091E800877F8093E8008091E80080FFCE -:1020A000FCCF80917B018093F1008091E8008E77D6 -:1020B000B9CF80915504813209F074CF80915904D1 -:1020C00090915A04892B09F06DCF8091E800877FA9 -:1020D0008093E8000E94EA078091570480937B0177 -:1020E000109246040E94A70F5DCF80915504813263 -:1020F00009F058CF8091E800877F8093E8000E9424 -:10210000EA0780915804809347044CCF809155048E -:10211000813A09F047CF8091E800877F8093E800FB -:102120008091E80080FFFCCF80914704BCCF8038CD -:1021300099F0823809F076C0809159048F70873009 -:1021400008F070C08093E9008091EB0085FB882740 -:1021500080F91092E90006C08091510490915204D8 -:10216000911182609091E800977F9093E8008093AE -:10217000F1001092F1008091E8008E77B5C18823BC -:1021800009F4A2C1823009F04DC080915704811139 -:10219000A6C1809159048F702FEF280F263008F0C8 -:1021A00041C08093E9002091EB0020FF98C193305B -:1021B00031F48091EB0080628093EB0090C19091AC -:1021C000EB0090619093EB0021E030E001C0220F22 -:1021D0008A95EAF72093EA001092EA008091EB00DA -:1021E0008860EACF81111EC0109157041F7780913B -:1021F000E3008078812B8093E3008091E800877F63 -:102200008093E8000E94EA078091E80080FFFCCFFD -:102210008091E30080688093E30082E0111183E005 -:10222000809353048091E80083FF0AC08091E80006 -:10223000877F8093E8008091EB0080628093EB00C1 -:10224000AA960FB6F894DEBF0FBECDBFDF91CF9137 -:102250001F9108958058823028F7209157043091BB -:1022600058042C3DE3E03E07A1F583E08A838AE22F -:1022700089834FB7F894DE01139620E03EE051E2E7 -:10228000E32FF0E050935700E49120FF03C0E29564 -:10229000EF703F5FEF708E2F90E0EA30C0F0C7968E -:1022A0008D939D932F5F243159F74FBF8091E800A4 -:1022B000877F8093E8006AE270E0CE0101960E9479 -:1022C0009C088091E8008B778093E800ABCFC096A4 -:1022D000E7CF8091590490915A04432F55274330FA -:1022E000510509F44AC078F54130510509F47AC026 -:1022F0008BE590E0E5E2FDE04230510509F092CF38 -:102300002091E800277F2093E80020915B04309122 -:102310005C048217930708F49C0140E02115310505 -:1023200009F065C0411163C08091E80082FDC9CF0A -:1023300080915304882329F2853019F28091E800B6 -:1023400083FFF2CFBECF4132510509F43CC0423287 -:10235000510509F067CF8330910508F063CFFC0188 -:10236000EE0FFF1FE55DFD4F0190F081E02D885DD0 -:102370009D4FDC018C9190E01AC03327213031054C -:10238000D1F02115310561F02230310509F04ACF35 -:10239000E2E9FDE0E4918E2F90E0E2E9FDE007C084 -:1023A000E4ECFDE0E4918E2F90E0E4ECFDE000979A -:1023B00009F438CFA5CFE2EBFDE0E4918E2F90E059 -:1023C000E2EBFDE0F4CF8330910508F02BCF880FCE -:1023D000991FFC01EF5CFD4F0190F081E02D89E039 -:1023E00090E08ECF82E190E0E0E8FDE089CF80913F -:1023F0005304882309F465CF853009F462CF8091B6 -:10240000E80083FD5ECF8091E80082FD8DCF809152 -:10241000E80080FF83CF9091F3008091F2002115B6 -:10242000310519F08830910550F041E0089709F026 -:1024300040E08091E8008E778093E8006FCF449170 -:102440004093F1003196215031090196E8CF803850 -:1024500009F0E8CE8091E800877F8093E8008091C2 -:1024600054048093F10087CE8111DCCE1091570483 -:10247000123008F0D7CE8091E800877F8093E80083 -:10248000109354040E94EA07112311F084E005C060 -:102490008091E30087FDFACF81E08093530442E00E -:1024A00061EC81E00E94090842E261EC84E00E9454 -:1024B000090842E261EC82E00E94090842E260EC15 -:1024C00083E00E940908AECE80915704813009F064 -:1024D000A9CE81E0933009F080E0809352041092FD -:1024E000E9008091E800877F8093E8000E94EA0776 -:1024F00099CE1F93CF93DF93162FC0916506D0918D -:1025000066068A30D1F420912A04CE018556944083 -:10251000622F70E00E948431281B822F66E00E94A7 -:102520009831C82FC15020F4DF91CF911F910895A9 -:1025300060E080E20E947912F5CF8D30E9F4C55653 -:10254000D44020912A04622F70E0CE010E94843191 -:10255000281B822F9E01280F311D2115324018F0B3 -:1025600080E0D0E0C0E0C80FD11DCB59DB4FD09345 -:102570006606C0936506D8CF96E0FE01ABE2B4E0F4 -:1025800001900D929A95E1F7803E90F186E0FE0170 -:1025900011928A95E9F7C0916506D09166061111EE -:1025A00033C046E050E0BE018BE294E00E94463228 -:1025B0009E0125563440892B91F52A5F3F4F40916B -:1025C0002A04642F70E0C9010E948431481B463000 -:1025D00010F4240F311D211572E0370710F030E0A0 -:1025E00020E02B593B4F30936606209365069CCF25 -:1025F000F6E08F9FB00111246F51784F46E050E014 -:10260000CE010E943D32C7CF9E012A5F3F4FFE019F -:102610002E173F0731F2808180958193F9CFC90150 -:1026200045E0969587954A95E1F741E050E0BA017B -:1026300002C0660F771F8A95E2F7CB0160916304B1 -:1026400070916404862B972BB9016B5F7F4FE5E097 -:1026500076956795EA95E1F702C0440F551F6A9594 -:10266000E2F7842B952B9093640480936304A5CFA9 -:10267000FF920F931F93CF93DF93EC01F62EFC0193 -:1026800001900020E9F78F0101501109C017D1070F -:1026900030F0DF91CF911F910F91FF9008956F2D32 -:1026A00089910E947912F2CFCF93DF93C3EED2E0EB -:1026B00060E0CE010E9402352196C11584E0D80762 -:1026C000B9F7DF91CF9108956F927F928F929F9289 -:1026D000AF92BF92CF92DF92EF92FF920F931F9330 -:1026E000CF93DF9381EEC82E87E0D82E91ECE92EB0 -:1026F000F12CE701CC58D10936011BC0F5018590BA -:102700009490692DC8010E940235682DC801019678 -:102710000E94023582E0A80EB11C0E5F1F4FC01749 -:10272000D10761F78EE0680E711C2E96CE15DF057D -:1027300029F08E010E5011095301E0CF7E018CE883 -:10274000E80EF11C8CE8C80ED11C8DE7E81683E07A -:10275000F80679F6DF91CF911F910F91FF90EF90DE -:10276000DF90CF90BF90AF909F908F907F906F90B1 -:102770000895CF93C82F6FEF811161E283E290E05B -:102780000E9402356FEFC11169E084E290E00E947F -:1027900002356FEFC11164E185E290E0CF910C94B6 -:1027A000023580E00E94B91360E086E290E00E946A -:1027B00002350E9464130E94541381E00C94B913F3 -:1027C0000F931F93CF93DF93C42FD0E0CC0FDD1F67 -:1027D0002EE0629FC00DD11D11243CE8839FC00DE7 -:1027E000D11D1124CE0187960E94EE34082F10E0EF -:1027F000102F0027CE0188960E94EE349801282BD6 -:10280000C901DF91CF911F910F910895462F853017 -:1028100038F47A3028F4673018F4672F0C94E013FA -:1028200090E080E00895CF92DF92FF920F931F9384 -:10283000CF93DF936C0100915D0480919C02082B83 -:10284000C7E0D0E010E0FC2EC8010C2E02C0959528 -:1028500087950A94E2F780FD0CC02197A0F7F12C30 -:102860008F2DDF91CF911F910F91FF90DF90CF902F -:102870000895B6018C2F0E9406140E94720A0197D7 -:1028800061F3EECFCF93DF93EC010E941314BE01EE -:102890000E940614DF91CF910C94720AFC01808192 -:1028A00091810E944214292F2F7092959F7092500F -:1028B0009E3078F4E92FF0E0EF5CF84C0C94D731BF -:1028C000803F19F020F4883E20F481E00895843F91 -:1028D000E1F380E00895883EC0F3813FD1F7F5CF62 -:1028E000822F869586958695089583E290E00E94D2 -:1028F000EE34813289F484E290E00E94EE34893033 -:1029000059F485E290E00E94EE3491E0843109F0C0 -:1029100090E0892F8170089580E0FCCFCF92DF9204 -:10292000EF92FF926B017C010E946809B701A6013A -:1029300088E090E0FF90EF90DF90CF900C941435FA -:10294000AF92BF92CF92DF92EF92FF920F931F93BD -:10295000CF93DF9300D00F92CDB7DEB7082FF62EBE -:10296000142FE22E80915E0480FF4FC0E82FE69581 -:10297000AE2FB0E0A45EBD4F9C91909346038E7F36 -:10298000823009F056C0413A08F040EA9E012F5FBC -:102990003F4F6F2D802F0E947E0980915E0480FF43 -:1029A00011C02B8139814A81809178019091790100 -:1029B00053E0859FF0011124E45BFC4F891798F1E7 -:1029C0000E94940E80915F04801308C0809160047F -:1029D0008F1104C080916104811729F08091480310 -:1029E00082608093480300935F04F0926004109328 -:1029F0006104EE2051F060915E0470915F0480915B -:102A00006004909161040E948E140F900F900F90BB -:102A1000DF91CF911F910F91FF90EF90DF90CF90BA -:102A2000BF90AF9008954183308322838F5F3396A8 -:102A3000C5CF923039F6E2508E2F8170D82EE695B0 -:102A4000F0E0EE56F84FA590B490C12CBB246091F5 -:102A50007A01C61608F0B4CF2C2D30E0A29EC0013A -:102A6000A39E900DB29E900D112470E00E948431BF -:102A7000802FD11016C0860F40917801420F532F3E -:102A8000511D9A01220F331F240F351F245B3C4F29 -:102A9000412F113A08F040EA6F2D0E947E09C3943D -:102AA000D6CF861BE9CFEEE5F4E0438121E1421B5E -:102AB00008F440E021E0628181810C94A014EEE5ED -:102AC000F4E0438121E1420F08F44FEF21E06281FD -:102AD00081810C94A014EEE5F4E0628121E1621B97 -:102AE00008F460E021E0438181810C94A014EEE5BC -:102AF000F4E0628121E1620F08F46FEF21E043818D -:102B000081810C94A014EEE5F4E0818121E0438101 -:102B1000628188500C94A014EEE5F4E0818121E0FC -:102B200043816281885F0C94A014809162048823A1 -:102B300019F081508093620460915E0470915F048B -:102B400080916004909161040C948E1480916204D1 -:102B5000833018F48F5F8093620460915E047091FB -:102B60005F0480916004909161040C948E149091A4 -:102B70005E0490FF27C0917081111DC092609093F8 -:102B80005E0480914803816080934803662351F07E -:102B900060915E0470915F04809160049091610483 -:102BA0000E948E1420E04091610460916004809145 -:102BB0005F040C94A0148C3010F09661E0CF880F65 -:102BC000982BDDCF089521E030E0A90102C0440F29 -:102BD000551F8A95E2F7CA0120914903662391F0B7 -:102BE000822B80934903809148038061809348033E -:102BF00080914703811109C080915E0460E0869551 -:102C00000C94B71580958223ECCF0895CF93DF9372 -:102C1000C82FC17082FBDD27D0F981FB662760F9E0 -:102C200085E00E94E31561E06C2786E00E94E315D1 -:102C30006D2F87E0DF91CF910C94E3150F931F93D5 -:102C4000CF93C82F61E08111682F617080E00E94EE -:102C5000E315C1FB662760F9C11101C060E081E0A6 -:102C60000E94E315C2FB662760F9C11101C060E054 -:102C700082E00E94E315C3FB662760F9C11101C021 -:102C800060E083E00E94E315C4FB662760F9C11190 -:102C900001C060E084E00E94E3154C2F50E070E03A -:102CA00060E0DB01CA01F4E0B695A795979587959A -:102CB000FA95D1F70097A105B10549F1AC01BD0125 -:102CC00084E08A019B01E2E03695279517950795E8 -:102CD000EA95D1F7011511052105310519F08E5F2F -:102CE000B901A8017695679557954795452B462BD1 -:102CF000472B09F08F5F823009F158F4882391F057 -:102D00008130B9F08C2FCF911F910F91089580E001 -:102D1000D8CF8330C1F08430A9F720E040E56FEFD1 -:102D20008AED04C020E040E56FEF82E30E94A0142A -:102D3000E9CF20E040E56FEF8CEFF8CF20E040E5F1 -:102D40006FEF80E5F3CF20E040E56FEF86E7EECF51 -:102D50000E941E1680935D040C94510C80915D04BA -:102D6000982F9670963019F488600C94A816877F77 -:102D7000FCCF21E030E001C0220F8A95EAF72095D0 -:102D800080915D0482230C94A81621E030E001C0FC -:102D9000220F8A95EAF780915D04822B0C94A81685 -:102DA00080915E048695815009F48BE061E00C947B -:102DB000B71580915E0486958F5F8C3008F081E0B6 -:102DC00061E00C94B71580915E0480FF07C0869582 -:102DD00082588F77893010F40C94D91661E082E024 -:102DE0000C94B715EEE5F4E083E0808311828FEF59 -:102DF000828380EA83831482A6E4B3E012968C91E6 -:102E00001297836012968C93608171818281938185 -:102E10000C948E1469EE7EEF90E080E00E942035E5 -:102E200060E082E090E00E94023560E083E090E0A4 -:102E30000E94023510929C0260E084E090E00E94C3 -:102E4000023560E082E290E00E94023560E085E0B9 -:102E500090E00E94023560E086E090E00E9402353A -:102E60006FEF87E090E00E94023540E050E0BA0149 -:102E700088E090E00E94143560E08DE090E00E94D0 -:102E8000023540E050E0BA0188E190E00E9414353C -:102E900060E087E190E00E94023540E050E0BA0136 -:102EA0008CE190E00E94143570E060E080E290E0F8 -:102EB0000E94203540E050E0BA0188E190E00E9495 -:102EC000143580E00E94B9130E94D11340E050E015 -:102ED000BA018FE090E00E94143540E050E0BA0162 -:102EE00083E190E00C9414350F931F93CF93DF93FD -:102EF00000D000D0CDB7DEB74091D0025091D102C2 -:102F00006091D2027091D3022FB7F89480913E0461 -:102F100090913F04A0914004B09141042FBF841BC5 -:102F2000950BA60BB70B84369105A105B10588F169 -:102F30000E944C0E882379F10E94FE086E5F7F4F3D -:102F40008F4F9F4F69837A838B839C8380912B0162 -:102F500090912C0187549D4F40912A0150E04530BB -:102F6000510510F044E050E0BE016F5F7F4F0E94BA -:102F7000533284E090E00E94D030892BD9F40E9433 -:102F8000FE086093D0027093D1028093D202909396 -:102F9000D30281E010C00E94FE080091E10210916E -:102FA000E2022091E3023091E402600F711F821F60 -:102FB000931FC4CF80E00F900F900F900F90DF9180 -:102FC000CF911F910F9108958F929F92AF92BF92D0 -:102FD000CF92DF92EF92FF920F931F93CF93DF93E5 -:102FE000EB0188809980AA80BB809FB7F894C0903D -:102FF0003E04D0903F04E0904004F09041049FBF15 -:10300000C818D908EA08FB0894E6C916D104E104F7 -:10301000F10410F4442311F1E82E082E000CFF08EF -:103020009AE08902F0011124E050FF4F83819481DE -:1030300087549D4F428150E00417150708F4A801FA -:10304000B9010E945332C7010E94D030892BA1F4EC -:103050000E94FE08688379838A839B8381E0DF91E5 -:10306000CF911F910F91FF90EF90DF90CF90BF9085 -:10307000AF909F908F90089580E0F1CF0F931F93B2 -:10308000CF93DF930F92CDB7DEB78091350489835C -:103090002091CF0290E041E02817190609F440E0A2 -:1030A00001E010E09E012F5F3F4F6CED72E087E082 -:1030B0000E94E4170F90DF91CF911F910F91089517 -:1030C0000F931F93CF93DF930F92CDB7DEB780910D -:1030D000FC02898341E09091CE02981301C040E048 -:1030E00001E010E09E012F5F3F4F68ED72E086E047 -:1030F0000E94E4170F90DF91CF911F910F910895D7 -:103100000F931F93CF93DF93CDB7DEB729970FB6F9 -:10311000F894DEBF0FBECDBF85E0EEE5F4E0DE0142 -:10312000119601900D928A95E1F780914603909156 -:103130004703A0914803B09149038E839F83A887DA -:10314000B98741E08885811101C040E009E010E0C5 -:103150009E012F5F3F4F64ED72E085E00E94E4170F -:1031600081111092480329960FB6F894DEBF0FBE66 -:10317000CDBFDF91CF911F910F9108956F927F92F4 -:103180008F929F92AF92BF92CF92DF92EF92FF9277 -:103190000F931F93CF93DF930F92CDB7DEB7862E99 -:1031A0005A016901682E880F7708C3010E94D03048 -:1031B000892B09F088C08AE0869DF001879DF00D7B -:1031C0001124E050FF4F458150E04115510511F0A9 -:1031D00041E050E08AE0869DF001879DF00D1124CA -:1031E000E050FF4F6681778167547D4FCE01019695 -:1031F0000E945332F50140815181628173812FB762 -:10320000F89480913E0490913F04A0914004B091C5 -:1032100041042FBF841B950BA60BB70B8436910579 -:10322000A105B10540F4B701C8010E944D0999817B -:10323000891709F44FC0082C000C9908C4010E949A -:10324000D030892B91F0B12C8B2D0F90DF91CF9145 -:103250001F910F91FF90EF90DF90CF90BF90AF90B4 -:103260009F908F907F906F9008958AE0889DF001E5 -:10327000899DF00D1124E050FF4F458150E0E41688 -:10328000F50608F4A7018AE0889DF001899DF00DFC -:103290001124E050FF4F6681778167547D4FC6014E -:1032A0000E945332B701C8010E944D0999818913C8 -:1032B000CACF0E94FE08F5016083718382839383E5 -:1032C000BB24B394C1CFB12CA701B801C6010E94A1 -:1032D0005332BACFBB24B394F7CFCF92DF92EF92A1 -:1032E000FF920F931F93CF93DF9300D000D00F92E4 -:1032F000CDB7DEB76B0185E0E82EF12C0AEB12E0CA -:103300009E012F5F3F4F41EB52E061E080E00E9461 -:10331000BE18882349F095E0FE013196ACEAB2E090 -:1033200001900D929A95E1F795E0ECEAF2E0D60172 -:1033300001900D929A95E1F70F900F900F900F90DA -:103340000F90DF91CF911F910F91FF90EF90DF9041 -:10335000CF90089590E080E00E94FC34893E9E4F1B -:1033600011F40C94751480E008951F920F920FB61B -:103370000F9211242F933F934F935F936F937F93FB -:103380008F939F93AF93BF93CF93DF93EF93FF936D -:10339000D091E900DF708091EC00C82FC17080FDF2 -:1033A000C0E81092E9008091F000877F8093F000E0 -:1033B00078940E94B00F1092E9008091F00088602C -:1033C0008093F000CD2BCF70C093E900FF91EF9177 -:1033D000DF91CF91BF91AF919F918F917F916F912D -:1033E0005F914F913F912F910F900FBE0F901F90C3 -:1033F00018951F920F920FB60F9211242F933F939F -:103400004F935F936F937F938F939F93AF93BF93EC -:10341000EF93FF938091E10082FF09C08091E20069 -:1034200082FF05C08091E1008B7F8093E100809155 -:10343000DA0080FF24C08091D80080FF20C08091F6 -:10344000DA008E7F8093DA008091D90080FF9BC0E4 -:1034500080E189BD82E189BD09B400FEFDCF81E034 -:103460008093530480914504811109C00E94700724 -:103470000E943B088091E20084608093E20080918A -:10348000E10080FF17C08091E20080FF13C08091AF -:10349000E2008E7F8093E2008091E2008061809361 -:1034A000E2008091D80080628093D80019BC85E04A -:1034B000809353048091E10084FF29C08091E20051 -:1034C00084FF25C080E189BD82E189BD89B5982F3F -:1034D000917080FFFBCF8091D8008F7D8093D800C2 -:1034E0008091E1008F7E8093E1008091E2008F7EE9 -:1034F0008093E2008091E20081608093E2008091FD -:103500005404882309F445C084E0809353048091D7 -:10351000E10083FF27C08091E20083FF23C08091F8 -:10352000E100877F8093E10082E080935304109252 -:1035300054048091E1008E7F8093E1008091E2004D -:103540008E7F8093E2008091E20080618093E200B0 -:1035500042E060E080E00E9409088091F00088600D -:103560008093F000FF91EF91BF91AF919F918F9168 -:103570007F916F915F914F913F912F910F900FBE6F -:103580000F901F90189519BC109253041092450487 -:1035900076CF8091E30087FD93E090935304B7CFFB -:1035A00078941F921FB61F9211248F939F93AF930D -:1035B000BF9380913E0490913F04A0914004B0914C -:1035C00041040196A11DB11D80933E0490933F04D8 -:1035D000A0934004B0934104BF91AF919F918F910C -:1035E0001F901FBE1F9018959C014FB7F8948091B3 -:1035F0003E0490913F04A0914004B09141044FBF1C -:10360000821B930B08952FB7F89480913E049091FC -:103610003F04A0914004B09141042FBF08958F92C0 -:103620009F92AF92BF92CF92DF92EF92FF920F9351 -:103630001F93CF93DF93CDB7DEB72F970FB6F894D4 -:10364000DEBF0FBECDBF8E010F5F1F4F8AE0D801D6 -:103650001D928A95E9F787E5C82E81E0D82EF12CD6 -:10366000E12CAA24A394B12CF60181916F018F3F24 -:1036700009F44AC0F894E82FE295EF70F0E021A138 -:103680008F70A50102C0440F551F8A95E2F7CA0149 -:10369000922F982B91A392A18095892382A30E94B7 -:1036A000160A00C0E0E5F1E030E020E0912C419105 -:1036B0004F3F09F47FC0A42FA295AF70B0E0909661 -:1036C0008C9190E04F7002C0959587954A95E2F7EE -:1036D00080FD70C08A2D022E01C0880F0A94EAF77F -:1036E000982A2F5F3F4F2730310509F7F6013197B0 -:1036F00080818F3F11F00E94180A50EA5A95F1F725 -:10370000F801EE0DFF1D90828FEFE81AF80A95E0A0 -:10371000E916F10409F0A8CF4AE050E0B80187EEBD -:1037200092E00E9446327C01892B41F08AE0F80148 -:10373000A7EEB2E001900D928A95E1F71091F202A6 -:10374000E114F104C9F181E080939F020E94031B00 -:1037500090939E0280939D0280919D0290919E0283 -:103760000E94F41A069778F0A7EEB2E0E12FF0E09D -:10377000E45CFC4F8CEE92E02D9121938A179B071D -:10378000D9F710929F0281E090E0EF28C9F02F96C0 -:103790000FB6F894DEBF0FBECDBFDF91CF911F9162 -:1037A0000F91FF90EF90DF90CF90BF90AF909F90E0 -:1037B0008F90089580E094CF80919F028111CCCFAB -:1037C0000E944C0EB82EE091F2028E01055F1F4F51 -:1037D000882309F4D3C085E0D8011D928A95E9F7C2 -:1037E000F0E09F01245C3C4F79018091E002AE0142 -:1037F000405F5F4F6A018A3008F098C04DE659E19A -:10380000B801C7010E94080E882309F4A6C04BE046 -:1038100056E2B801C7010E94080E882309F49DC032 -:1038200044E757E1B801C7010E94080E882309F454 -:1038300094C040E858E1B801C7010E94080E8823EF -:1038400009F48BC040E658E1B801C7010E94080E98 -:10385000882309F482C04EE358E1B801C7010E94F1 -:10386000080E882309F479C01092E002E091F10279 -:10387000F0E0AF01445C5C4FD80110E0FA01919197 -:10388000AF018D91981731F09F0121503109F90155 -:1038900080831B2DAC15BD0589F78091A202909104 -:1038A000A3020E94F41A893E934060F16091FC02E9 -:1038B000E62EF12C662777276E197F09072E000C5C -:1038C000880B990B0E94EB3527EA39E747E45DE363 -:1038D0000E94B8364B015C01B701FF0C880B990BB5 -:1038E0000E94EB359B01AC01C501B4010E94373544 -:1038F0000E94BA356093FC020E94031B9093A302BE -:103900008093A2028091A602882371F08091A40284 -:103910009091A5020E94F41A893E934028F082EE0D -:103920000E94780C1092A602812F31CF8091A002C4 -:103930009091A1020E94F41A843F914008F05ECF5A -:10394000E091F102F0E0E45CFC4FD80111921D928D -:10395000AC15BD05D9F71B2DA0CF8091E0028F3F9C -:1039600031F08F5F8093E0028A3008F47FCF0E94AD -:10397000031B9093A1028093A002E2CFF0E0E45CED -:10398000FC4FF89485E0AAEBB2E001900D928A9585 -:10399000E1F765E070E08AEB92E00E944D098093C8 -:1039A000B9020E94160AF894E091FA02F0E0E95098 -:1039B000FD4F80818B878093C00261E070E0C80179 -:1039C0000E944D098093BF020E94160AF894C0908D -:1039D000C102D090C202E090C302F090C402809174 -:1039E000A7029091A802A091A902B091AA02C816BC -:1039F000D906EA06FB06D1F0C092A702D092A8022F -:103A0000E092A902F092AA020E944C0E81110EC00F -:103A10000E94FE08C61AD70AE80AF90AC092E10213 -:103A2000D092E202E092E302F092E4020E94160ACF -:103A3000F8948091CC02882321F184FF04C09091F6 -:103A4000CD029093490380FF0DC08091C50280FF95 -:103A50002CC090915E04916090935E0460E0869526 -:103A60000E94B7158091CC0281FF09C020E04091EF -:103A7000C8026091C7028091C6020E94A0141092F1 -:103A8000CC020E94160AF8948091CE028093FC0228 -:103A90000E94160AF8948091CF02882349F00E9470 -:103AA000810D0E94160A80E072CE0E94920FDACF3A -:103AB0000E94660DF6CF5F926F927F928F929F92D7 -:103AC000AF92BF92CF92DF92EF92FF920F931F932C -:103AD000CF93DF9300D000D00F92CDB7DEB76C014B -:103AE000FC0183819481892B31F08081918189232C -:103AF0008F3F09F082C50F900F900F900F900F909D -:103B0000DF91CF911F910F91FF90EF90DF90CF90B9 -:103B1000BF90AF909F908F907F906F905F9008952F -:103B20000E941314182F682F89819A810E94250CF6 -:103B300069817A81812F0E9406148C01F6018281AD -:103B4000882309F463C0C80190568115F0E29F07ED -:103B500050F0905E811520E1920728F0915C81156C -:103B60009F4108F0A5C0C80199279C012450310944 -:103B70002432310520F08B970E9708F047C08091D2 -:103B8000A2029091A3020097D9F10E94F41A9C011D -:103B900050E040E060E67AEE80E090E00E94B831CC -:103BA000CA01B90125E030E040E050E00E94B831A0 -:103BB000E090FC022F3F310519F010F02FEF30E0BC -:103BC000F12C2E193F09B90190E080E00E94E935FF -:103BD00027EA39E747E45DE30E94B8360E94A3353F -:103BE0004B015C01B701FF0C880B990B0E94EB3570 -:103BF000A50194010E9437350E94BA356093FC02FA -:103C00000E94031B9093A3028093A202F60182817B -:103C1000882309F4E6C4C80182519F45409708F003 -:103C200071C48FEF93E00E94EE34025193EEA92EFF -:103C300092E0B92E81115FCF011143C01C821B821B -:103C4000662463948AE0582E85010F5F1F4FC501DB -:103C50000E94EE3489831A82882309F44CCF9FEFA7 -:103C6000980F9330E8F58A83698232E0A30EB11C85 -:103C7000C8010E94EE348B83882309F43CCF8E0167 -:103C80000F5F1F4FF80120812223F1F2213009F04C -:103C900061C091818281913029F50E5F1F4F6AE0EA -:103CA00070E0893311F460E570E00E947F0E20C05F -:103CB00090E080E00F3F110511F008F056CFC801E9 -:103CC00054CFA114F4E0BF0609F415CFC5010E943A -:103CD000EE34811101C001502FEFA21AB20AACCF0D -:103CE0005801CDCF923039F40E5F1F4F0E94B10CB6 -:103CF0000F5F1F4FC7CF933029F40E5F1F4F0E94F5 -:103D0000780CF6CF943019F00F5F1F4FF1CF0E5F94 -:103D10001F4F30E020E0B8016F5F7F4FF801418115 -:103D20008053990B8A30910550F02150310900F3EE -:103D30008FE99FE00197F1F700C00000F6CF529E97 -:103D4000F001539EF00D11249C012E0F3F1F842F74 -:103D50008B01E1CFE22FF0E0E054FE4F7490822F10 -:103D600086958695869590E0FC01E055FE4FE4909F -:103D70002770F12C022E02C0F594E7940A94E2F722 -:103D8000E1E0EE22FF24FC01E056FE4FC490D12C6E -:103D9000022E02C0D594C7940A94E2F7F1E0CF2234 -:103DA000DD24FC01E057FE4F8490912C02C09594D5 -:103DB00087942A95E2F721E082229924E114F10404 -:103DC00019F081EE0E94B10CC114D10419F086EEF5 -:103DD0000E94B10C39E36AE070E0731202C060E542 -:103DE00070E0872D0E947F0ECD2819F086EE0E948C -:103DF000780CEF2819F081EE0E94780C892809F4DC -:103E000077CF6AE070E08CE250CF81E00E94C51667 -:103E100003C081E00E94B9160F900F900F900F9091 -:103E20000F90DF91CF911F910F91FF90EF90DF9056 -:103E3000CF90BF90AF909F908F907F906F905F904A -:103E40000C94AE1682E0E2CF013E110509F49AC04F -:103E5000043E110509F07CC3882309F4CEC081E03B -:103E60008093FD0275C30238FFE51F0709F459C0AE -:103E700000F500383FE51307B9F101384FE51407A5 -:103E800009F066C3882309F445C08091A602811118 -:103E900006C081E08093A60282EE0E94B10C0E94CF -:103EA000031B9093A5028093A40281EE0E94B10CA3 -:103EB0002DC003385FE5150709F447C004389FE5B6 -:103EC000190709F045C3882309F482C08091430291 -:103ED000882309F45AC0809144020E94780C80EE35 -:103EE0000E94B10C8AE25EC08823B9F08091A602DC -:103EF000811106C081E08093A60282EE0E94B10C7F -:103F00000E94031B9093A5028093A4028BE20E945F -:103F1000B10C1EC381EE0E94780C8BE20E94780CDB -:103F200017C3882309F414C381EE0E94B10C83EEF9 -:103F30000E94B10C8FE40E94B10C8FE40E94780CB7 -:103F400083EE0E94780C81EEE9CF882309F400C348 -:103F500081EE0E94B10C83EE0E94B10C80E50E94BC -:103F6000B10C80E5EBCF809346021093450200939D -:103F70004402882321F081E08093FE02E9C210927E -:103F8000FE02E6C280934302F0CF8091460288236E -:103F900009F4A8CF809144020E94780C80EE0E9420 -:103FA000B10C8CE40F900F900F900F900F90DF9159 -:103FB000CF911F910F91FF90EF90DF90CF90BF9026 -:103FC000AF909F908F907F906F905F900C94B10C0A -:103FD0008AE20E94780C8CE40E94780C80EE0E94A9 -:103FE000780C80914302811105C08091460288239C -:103FF00009F481CD80914402D5CF1092FD02A8C270 -:10400000882331F081E08093000310926E01A0C2FA -:10401000109200039DC2073C2CE5120709F4AEC0C4 -:1040200008F4A7C0083C4CE5140709F4ACC0093CEF -:104030001C4509F0ADC243E555E16FE575E179C076 -:10404000043DECE51E07A8F40E3CFCE51F0708F054 -:1040500052CD0C3C2CE5120709F49FC045E955E10F -:1040600066EA75E10D3C1C4508F463C061E081E03F -:1040700046C0053D4CE5140709F43DCD08F492C057 -:104080000D351D4509F437CD83C280915E0480FF54 -:1040900031C08E7F80935E0460915E0470915F04F6 -:1040A00080916004909161040E948E148091480375 -:1040B0008160809348039FEFE0E7F2E09150E04099 -:1040C000F040E1F700C000000F900F900F900F90AC -:1040D0000F90DF91CF911F910F91FF90EF90DF90A4 -:1040E000CF90BF90AF909F908F907F906F905F9098 -:1040F0000C94940E816080935E0461E086950F902D -:104100000F900F900F900F90DF91CF911F910F9113 -:10411000FF90EF90DF90CF90BF90AF909F908F90E7 -:104120007F906F905F900C94B71540ED56E169ED6C -:1041300076E10F900F900F900F900F90DF91CF913D -:104140001F910F91FF90EF90DF90CF90BF90AF90B5 -:104150009F908F907F906F905F900C94630949EDD2 -:1041600056E160ED76E1E5CF43E855E16CE875E1B5 -:10417000E0CF4CE855E163E875E1DBCF4BE655E174 -:1041800067E775E1D6CF47E755E16BE675E1D1CF3B -:104190004FE555E163E575E1CCCF46EA55E165E9C8 -:1041A00075E1C7CF0F900F900F900F900F90DF9198 -:1041B000CF911F910F91FF90EF90DF90CF90BF9024 -:1041C000AF909F908F907F906F905F900C94E316CC -:1041D0000E3D1C4509F0DCC10F900F900F900F9021 -:1041E0000F90DF91CF911F910F91FF90EF90DF9093 -:1041F000CF90BF90AF909F908F907F906F905F9087 -:104200000C940A17C8010E94FD0BF82ECFC1092F8C -:104210000F70907F11F00295007F812F2223C9F04B -:10422000002369F090E2910F983010F011110BC04B -:1042300080914604082B009346040E94DC0B812FDA -:104240000E94B10C17C080919B02082B00939B0227 -:10425000F4CF0E94780C002369F00095105E1830AE -:1042600010F0B11027C08091460408230093460443 -:104270000E94DC0B98E0E91AF108E4E0EE16F10484 -:1042800008F039CC0E946F0E0F900F900F900F9096 -:104290000F90DF91CF911F910F91FF90EF90DF90E2 -:1042A000CF90BF90AF909F908F907F906F905F90D6 -:1042B0000C94061680919B02082300939B02D8CF92 -:1042C000892F8F70907F903211F08295807FF1E07E -:1042D000BF120CC0222329F0333060F60E946E0C0E -:1042E000C9CF323038F60E94630CC4CF222341F08C -:1042F0003323A1F340FFA3CF4F70F6014583EECFE8 -:10430000332389F3193309F0F5C0FFEF27EE33E0CB -:10431000F15020403040E1F700C00000812F0E94A2 -:10432000780CA8CF892F86958695837061F08130AF -:1043300009F0A0CF812F9370211102C090E080E09E -:104340000E940A0997CF812F9370211102C090E03B -:1043500080E00E9420098ECF892F8370A1F5211162 -:1043600089CF812F829586958770880F880F412F7E -:104370004F70082E01C0440F0A94EAF7212F2071D4 -:1043800014FF07C02FE030E001C0220F8A95EAF742 -:104390002095969596959370923081F0822F842B7C -:1043A000933030F480919C02913029F0242B8223A9 -:1043B0000E945F0C5FCF842B822BFACF242B80913D -:1043C0009C028227F5CF8695222311F0892F8170D8 -:1043D000882309F44FCF812F829586958770880FA7 -:1043E000880F412F4F70082E01C0440F0A94EAF73E -:1043F000212F207114FF07C02FE030E001C0220FF1 -:104400008A95EAF72095969596959370923081F06B -:10441000822F842B933030F480915D04913029F009 -:10442000242B82230E94A81625CF842B822BFACF1F -:10443000242B80915D048227F5CF092F0F70222352 -:1044400029F0802F0E94C516812F48CF812F0E940E -:10445000630C802F0E94B9160DCF812FE1EF1E173C -:1044600089F1E11750F0F0EF1F17B9F02223B1F1F5 -:104470003111E5CE892F8F7129C042EF141749F110 -:1044800053EF1513F3CF80E0222361F29F7181E097 -:1044900001C0880F9A95EAF7C5CF222379F0323010 -:1044A00008F0E8CE292F2F7181E090E001C0880F3D -:1044B0002A95EAF790915D048927B4CF333008F04C -:1044C000D9CEF0CF892F8F71222321F20E94C516F9 -:1044D000D1CE892F8F712223C9F3BCCF332379F03A -:1044E000893341F48FEF97EEE3E081509040E04054 -:1044F000E1F712CF8FE39CE90197F1F70DCF892FF8 -:104500008F71A8CF0031FFE51F0709F47ECC013180 -:104510002FE5120709F496CC0E94FE08609305036C -:10452000709306038093070390930803F60182813A -:10453000053E110509F417CD08F095CC003E110594 -:1045400009F48ACC08F080CC0C32110509F458CD5E -:10455000F601928191113CCE8091460482720A3C10 -:10456000FCE51F0709F414CE08F06ACD053C3CE5D4 -:10457000130709F4F9CD08F04ECD033C5CE51507AF -:1045800009F4D3CD08F0EBCD023C1C4509F47DCDF8 -:10459000F60100811181992309F434CEC8010E94EB -:1045A0001314F82E682FC8010E94250CB8018F2D16 -:1045B0000E9406140E94720A182FB82EF60122815A -:1045C0004581342F32953F70892F82958F70E82E68 -:1045D000F12C8C3008F04ECEF701E15CF84C0C94D5 -:1045E000D73100313FE5130709F413CC01314FE512 -:1045F000140709F09BCF82E00DCC85E0DE01119617 -:1046000001900D928A95E1F7F601228189819A81C4 -:10461000211186CA0E94FD0B182F8ACA1F93CF93BF -:10462000DF9380916702807FA9F4809164028823E0 -:1046300089F080919902D091680260916202709134 -:104640006302A0916502B0916602C62FC72316E0EF -:10465000D81304C0DF91CF911F91089590E0109777 -:1046600011F0CF3F19F401968770F2CF189F900197 -:10467000199F300D1124F901E759FD4F418147136E -:10468000F2CF40814613EFCF42814111ECCF4381FD -:1046900054814A1B5B0B403A510528F78091670211 -:1046A0008F70806180936702F901E259FD4F80812C -:1046B0008F708061808382E692E00E945B1DDF91B3 -:1046C000CF911F910C94F30BAF92BF92CF92DF92D8 -:1046D000EF92FF920F931F93CF93DF93CDB7DEB787 -:1046E00061970FB6F894DEBF0FBECDBF8C0185E099 -:1046F000F801DE011D9601900D928A95E1F7F8010F -:10470000E28082E6A82E82E0B82E60916502709168 -:1047100066026115710509F432C1909162024091FF -:104720006302892F84238F3F09F429C120813181BD -:10473000C380D480F0906402F601E61BF70BFF20E3 -:1047400009F4E8C080916702582F507FE03AF105E4 -:1047500008F0ABC0511177C0FE2C431321C0921357 -:104760001FC0E1101DC08F70806180936702C5017A -:104770000E945B1D80916702F80185838F2D6196F1 -:104780000FB6F894DEBF0FBECDBFDF91CF911F9162 -:104790000F91FF90EF90DF90CF90BF90AF90089572 -:1047A000CD2829F0822F83238F3F09F003C180E0B9 -:1047B000F82FF170DF2E80FF3CC08091990240916C -:1047C000680256E0841315C02D873E878D859E852F -:1047D0000E944214292F22952F702230F0F02430AD -:1047E00018F59F70F1F0F8019581907FD1F4D12CEC -:1047F0001EC090E0589FF001599FF00D1124E75919 -:10480000FD4F6181361306C06081261303C06281AB -:10481000E6120FC001968770D5CF9F7011F08823E4 -:1048200031F3805E883018F3C8010E945B1DFD2CB7 -:10483000A5CFEE2009F4A2CF80916702816080931A -:104840006702F12C9BCF431306C0921304C0F801FA -:10485000EE2009F479C0C8010E944E14882309F1A2 -:10486000EE20F9F080916702803270F020916202B0 -:104870003091630238872F831986DB86CA868C873E -:10488000CE0107960E945B1D86E0F801A2E6B2E029 -:1048900001900D928A95E1F70E940E23FF24F39474 -:1048A0006DCFC8010E945B1DF9CF51110AC082E68D -:1048B00092E00E945B1D86E0F50111928A95E9F76E -:1048C000C0CF43130FC092130DC0E1100BC0F8010D -:1048D0008583C8010E945B1D86E0F50111928A95CF -:1048E000E9F74CCFC8010E944E148823D1F2EE2084 -:1048F000C1F280916702803238F2209162023091D9 -:1049000063023A8329831B82DD82CC828E83CE01AF -:104910000196B8CFE03AF105F8F6FE2CEE2009F248 -:1049200043131FC092131DC08091670280FD10C009 -:10493000982F907F69F0F8018583903F31F0982F90 -:10494000907F905F8F70892B8583C8010E945B1DCB -:1049500086E0F801A2E6B2E001900D928A95E1F7B7 -:104960000DCFC8010E944E1481118ECF8091670235 -:10497000816080936702C8010E945B1DFFCEEE201C -:1049800009F48FCFC8010E944E14F82E882309F431 -:1049900088CF86E0F801A2E6B2E001900D928A95F8 -:1049A000E1F780916202909163020E9442140E949A -:1049B0000E23E4CE81E08E25FBCE1F93CF93DF93B1 -:1049C000CDB7DEB767970FB6F894DEBF0FBECDBF89 -:1049D0004B8B5C8B6D8B7E8B8F8B611110929B024E -:1049E0001A8A198A85E0FE017396DE011D960190F0 -:1049F0000D928A95E1F786E0FE013D96DE0117965D -:104A000001900D928A95E1F7CE0107960E946423EA -:104A1000882389F016E080919902909168028913A9 -:104A20004BC067960FB6F894DEBF0FBECDBFDF91C7 -:104A3000CF911F91089586E0FE013796DE01119611 -:104A400001900D928A95E1F78A859B85892B11F358 -:104A50008F81988589238F3FE9F22091680230E0A9 -:104A6000C901019687709927409199024817190644 -:104A700081F4109246040E94A70F109268021092CF -:104A8000990286E0E2E6F2E0DF011D928A95E9F7FD -:104A9000C1CF96E0929FD001939FB00D1124A759EA -:104AA000BD4FFE01319601900D929A95E1F78093EA -:104AB00068020E94F30BAECF819FC0011124875979 -:104AC0009D4F0E946423882309F4ABCF8091990203 -:104AD00090E0019687709927809399029CCF0F935D -:104AE0001F93CF93DF93CDB7DEB7A8970FB6F89497 -:104AF000DEBF0FBECDBF81114DC006E0662359F168 -:104B00000CA311E01DA31EA30E94031B8160782F3C -:104B100098A78FA34CA15DA16EA188A50E94DD245A -:104B20000F8F18A319A20E94031B8160782F9BA3EB -:104B30008AA34F8D58A169A18BA10E94DD2481E039 -:104B4000A8960FB6F894DEBF0FBECDBFDF91CF9110 -:104B50001F910F9108950A8F13E01B8F81E08C8FB6 -:104B60000E94031B8160782F9E8F8D8F4A8D5B8DF5 -:104B70006C8D8E8D0E94DD240D8B1E8B1F8A0E94F2 -:104B8000031B8160782F998F888F4D895E896F898B -:104B9000898DD3CF813099F66623F1F016E0188B1A -:104BA000198B8A8B0E94031B8160782F9C8B8B8BC7 -:104BB000488959896A898C890E94DD241B871C8752 -:104BC0001D860E94031B8160782F9F878E874B85EF -:104BD0005C856D858F85B1CF06E00E8318E01F835D -:104BE00088870E94031B8160782F9A8789874E816E -:104BF0005F8168858A850E94DD2409831A831B8270 -:104C00000E94031B8160782F9D838C8349815A8188 -:104C10006B818D8192CFCF92DF92EF92FF920F93B3 -:104C20001F93CF93DF930F92CDB7DEB7EE24E394BB -:104C3000F12C00EC12E09E012F5F3F4F45EB52E05C -:104C400063E082E00E94BE18082F882321F1C09003 -:104C5000F4028C2D90E09C0129503D4F790119817F -:104C6000F9018081181BD12E80E00AC0DA94F70187 -:104C700080818F5F808360E08C2D0E946F25802F64 -:104C80001D14A4F3912F17FD90E0191B11110EC0F4 -:104C900081110E94DA0B802F0F90DF91CF911F912D -:104CA0000F91FF90EF90DF90CF9008951F5FF70175 -:104CB00080818150808361E08C2D0E946F25802F40 -:104CC000E5CF1F921FB61F9211248F939F93AF932E -:104CD000BF9380913D04811113C080913E04909157 -:104CE0003F04A0914004B09141044196A11DB11D23 -:104CF00080933E0490933F04A0934004B0934104FA -:104D0000BF91AF919F918F911F901FBE1F901895DB -:104D1000CDB7DEB7E0970FB6F894DEBF0FBECDBFBC -:104D200084B7877F84BF0FB6F894A8958091600000 -:104D3000886180936000109260000FBE80E890E070 -:104D40000FB6F89480936100909361000FBE85B711 -:104D5000806885BF85B7806885BF84E19AE09093BD -:104D60003902809338020E9470070E943B088091AC -:104D7000E20084608093E200789480915304882359 -:104D8000A1F01091E9001F709091EC00892F8170C3 -:104D900090FD80E8182B1092E9008091E80083FDD7 -:104DA0000E94B00F1F701093E90082E084BD93E071 -:104DB00095BD9AEF97BD80936E001092E10210921C -:104DC000E2021092E3021092E4020E947514811133 -:104DD00002C00E94D1130E944C0E80936101809109 -:104DE0006101882309F4C6C01092760185E28093A0 -:104DF00077010E944C0E81110E94C32F80916101A6 -:104E000081112FC0FE01359686E0DF011D928A9543 -:104E1000E9F786E6898387E98A8386EC8B8384E3D6 -:104E20008C8385E38D833497A7E5B1E0CE010B96A3 -:104E300021912D938E179F07D9F787E0ECE7F1E0DA -:104E4000DE01919601900D928A95E1F7FE01B196EF -:104E5000A0E5B1E0CE01889621912D938E179F0792 -:104E6000D9F78091610195E0811190E09093F20271 -:104E700085E0891B8093F10207E511E08CE5E82EBF -:104E800081E0F82EF80181918F018F3F11F00E948F -:104E9000180AE016F106B1F700E511E0B7E5EB2ED0 -:104EA000B1E0FB2ED8018D918D018F3F11F00E9452 -:104EB000180AE016F106B1F7E7EEF2E081EF92E0B2 -:104EC000ACE3B3E011921D928E179F07D9F70E94B1 -:104ED000AA19811102C00E940A1782E090E00E9484 -:104EE000EE348093310384E090E00E94EE34182F7A -:104EF00082E290E00E94EE34982F812F9093E60298 -:104F00008093E5020E940F1BEFE7FBEB3197F1F76F -:104F100000C000000E940F1B80913C0380FF2EC048 -:104F20006FEF7FEF90E080E00E94203581E080937A -:104F3000E00080E28093D8001092C9008FE19EE4E7 -:104F40000197F1F700C0000087E090EBDC0180934F -:104F5000670690936806A0936906B0936A0688E195 -:104F60009CE00FB6F894A895809360000FBE9093D4 -:104F70006000FFCF85E28093760139CF83E090E037 -:104F80000E94EE340E945F0C80915D040E941E1608 -:104F90000E944C0E811102C00E94C62F83E08093B4 -:104FA0002C0380E280932A040E945B2E6DE070E067 -:104FB00083E592E00E94360D892BE9F580912C0360 -:104FC00063E070E081FDFCC180E592E00E94360D57 -:104FD000892B89F56DE070E080E492E00E94360D47 -:104FE000892B49F50E94FE086058774C8E4F9F4FE1 -:104FF00060933104709332048093330490933404AB -:10500000E5E6F4E080E092E0DF019C011D92215092 -:105010003040E1F7F0936606E09365068FEF9FEF6F -:10502000909364048093630481E0809336048093BA -:10503000350410922D038091F302811136C00E9435 -:10504000AA19811104C00E940A170E94F21688E072 -:1050500090E00E94F63460935E0470935F04809346 -:1050600060049093610480914803836080934803B7 -:105070006E7F71F40E94F21688E090E00E94F63490 -:1050800060935E0470935F04809360049093610466 -:105090000E94680980915E0480FF04C060E08695EC -:1050A0000E94B71581E08093F30280916101811124 -:1050B00006C084EF80936D0185EF80936C01209191 -:1050C0006D01A22FA295AF70B0E091963C9191979F -:1050D0002F7081E090E0BC01022E01C0660F0A949F -:1050E000EAF7462F4095432391964C9391979296D9 -:1050F0003C919297362B92963C93929740916C01FB -:10510000E42FE295EF70F0E031A14F70042E01C062 -:10511000880F0A94EAF7982F9095932391A392A170 -:10512000892B82A390968C9190E002C095958795EB -:105130002A95E2F7817020A130E002C035952795CD -:105140004A95E2F792E020FF90E0892B8093FB02E2 -:105150009091610181E098279093FA02891B8093D6 -:10516000F40280E692E090934B0380934A0360E060 -:105170008AE00E94B71582E691E090933A0480930A -:105180003904A0E46A2ECE0101967C01809153047B -:10519000DD24D39400E112E1853009F45EC10E9460 -:1051A0000F1BC82E81110E94FE08E2E3F3E0ACE37E -:1051B000B3E010E000E0902EBD9081918B1509F4D2 -:1051C0006FC18B25A12CDD24D3949D2D982309F448 -:1051D00062C10E944C0E882399F0A9A29AA2BD2018 -:1051E00081E009F480E08BA30E94031B8160782F8B -:1051F0009DA38CA349A15AA16BA18DA10E94DD247E -:10520000F801EE5CFC4F8081D826D0828091FB02B1 -:10521000E82FEE0FEE0F90916D01A92FA295AF70C0 -:10522000B0E090962C9130E09F7002C035952795A4 -:105230009A95E2F72170332790916C01A92FA295DE -:10524000AF70B0E090964C9150E09F7002C05595C1 -:1052500047959A95E2F7CA018170992740FF02C0ED -:1052600082E090E0822B8E2B8093FB021091FA0259 -:105270008F70E82FF0E0EC5FFD4F80819091F90294 -:10528000890F8093F902D12C84306CF0E12FF0E08B -:10529000E950FD4F80818F5F808360E0812F0E9405 -:1052A0006F25DD24D3948091F9028D3F6CF4E12FBA -:1052B000F0E0E950FD4F80818150808361E0812FD3 -:1052C0000E946F25DD24D3948091F902082E000CF2 -:1052D000990B64E070E00E94A4318093F902D11030 -:1052E0000E94DA0B80913604882351F180912E03BD -:1052F00090912F030E94F41AC29708F0E8C0209101 -:105300006304309164042115310509F046C280918F -:1053100035048823A9F00E94FE0800913104109101 -:1053200032042091330430913404601B710B820BE2 -:10533000930B6F3F7F4F8F4F9F4710F40E94660D76 -:10534000C11001C0D1100E94810D0E946F0E90917A -:105350003003891731F00E946F0E809330030E9452 -:10536000061680915304843009F010CF83E08093B7 -:10537000E9008091E80082FF09CF8091E80090E089 -:1053800085FF0CC00E948F0730E2C32ED12C8E0106 -:105390000F5F1F4F882309F4E1C291E08091E8007C -:1053A0008B778093E800992309F4F0CEE981E150EE -:1053B000E33108F035C3F0E0E55BF84C0C94D731ED -:1053C0008DE492E003CE80915304843009F435C01B -:1053D0000E94660D80E00E9406168091F6028111FF -:1053E00009C0D092F60280915E0481708093F5022C -:1053F0000E94920F10923D04A8E1B0E00FB6F8941D -:10540000A895A09360000FBE6092600083B7817F73 -:10541000846083BF83B7816083BF7894889583B7A6 -:105420008E7F83BF0FB6F894A89580916000886145 -:1054300080936000109260000FBE80915204882318 -:1054400061F00E940F1BECE3F3E08191811112C423 -:1054500026E433E02E173F07C1F7809153048530CF -:1054600009F4B1CF109246040E94A70F0E946F0E5C -:105470000E9406161092F6028091F502882309F424 -:105480008ECE80915E04816080935E0460E086959C -:105490000E94B71584CEA394DD0C37E0A31295CEFD -:1054A0000F5F1F4F0A30110509F085CE8FEF88A7D7 -:1054B00089A71AA60E94031B8160782F9CA78BA73F -:1054C00048A559A56AA58CA50E94DD249FCE0E94FF -:1054D000031B90932F0380932E0360E080E00E94D3 -:1054E00036098091FC0290E090930B0380930A03AD -:1054F0000E946F0E809309030E944C0E882331F1A5 -:1055000040910503509106036091070370910803D1 -:105510002FB7F89480913E0490913F04A0914004ED -:10552000B09141042FBF841B950BA60BB70B8133A1 -:105530009547A105B10540F00E94660D80913604A3 -:10554000882309F4E4CEDBCE0E94810D0E944C0E2C -:1055500062E0882309F4E2C080E00E94360960E03E -:1055600083E891E00E94381363E080E00E943609EE -:1055700080915D040E94250D823009F499C008F0E5 -:105580008EC0882309F494C0813009F497C066E086 -:1055900080E00E94360960E081EA91E00E943813C1 -:1055A00067E080E00E9436096091090366956170AA -:1055B00086EA91E00E94381368E080E00E94360994 -:1055C00060910903609561708BEA91E00E94381345 -:1055D00069E080E00E9436096091090362FB66275A -:1055E00060F98FEA91E00E943813409101035091D5 -:1055F000020360910303709104032FB7F894809124 -:105600003E0490913F04A0914004B09141042FBF0B -:10561000841B950BA60BB70B8D329140A105B105EC -:1056200008F48CCF0E94FE0860930103709302037C -:10563000809303039093040380910003811104C0BD -:1056400080916E01811142C06FE080E00E943609B6 -:1056500060E084EB91E00E9438136CE080E00E94EF -:10566000360981E080936E018091FF0290E00196FF -:10567000817099278093FF0221E030E0281B390BCD -:1056800040E6429FC001439F900D11242091FE02ED -:10569000222351F18E589A4F0E942D074FCF83300D -:1056A00089F0843009F073CF60E085E991E003C0B0 -:1056B00060E089E891E00E94381369CF60E08FE8EC -:1056C00091E0F9CF60E08BE991E0F5CF6CE080E00C -:1056D0000E94360960E084EB91E00E9438136DE08F -:1056E00080E00E943609C0CF2091FD02222319F0EC -:1056F0008E549B4FD1CF20910A0330910B032B3056 -:1057000031051CF48E509C4FC7CF293231051CF453 -:105710008E5C9C4FC1CF8E589D4FBECF80E00E94C3 -:10572000360960E08AEB91E00E94381363E080E084 -:105730000E94360960E080EC91E00E94381367E037 -:1057400080E00E94360982E396E00E942D076DE01A -:1057500080E00E94360980910B038F9380910A03A9 -:105760008F9386EC91E09F938F93FF92EF920E942C -:105770005C3260E0C7010E9438136EE080E00E9456 -:10578000360960E08CEC91E00E9438130F900F9086 -:105790000F900F900F900F90D1CE80912D0361E06C -:1057A00070E08111B4CD082F10E01B01082E02C05B -:1057B000220C331C0A94E2F7A90142215321452B04 -:1057C00009F448C090912C0390FD46C08295880F43 -:1057D00080768093710198013695279536952795A7 -:1057E00020937401815E809372011092750124E60A -:1057F00030E047E050E06FE671E088E70E940A2F52 -:10580000892B09F084CDA801E5E0440F551FEA95E6 -:10581000E1F780912C0380FD2DC04B595B4F04E6CE -:1058200010E020E230E060E488E70E94312F892B0D -:1058300009F06DCD0E94810DC10180959095209059 -:105840006304309064042822392230926404209248 -:1058500063045DCD8F5FA7CF880F880F880F80937B -:10586000710110927401895F8093720183E08093CB -:105870007501BDCFECE0F3E080E2DF011D928A9577 -:10588000E9F7E8E1F2E0F8ABEFA764E1462E62E069 -:10589000562E77E0A72E99249394AFA5B8A96D91C1 -:1058A000B8ABAFA7F20181912F01840F952F911D05 -:1058B0009C012B593B4F3EA72DA7E62FF0E0E45F5C -:1058C000FC4F30E020E07A2C721AB92C022E01C075 -:1058D000BB0C0A94EAF70DA51EA590E0D8018D91A6 -:1058E0008D018B21672D691B6770862E062E000C9B -:1058F000770BB82F01C0BB0F8A94EAF78B2E7195F6 -:10590000619571096770772701C086956A95EAF7F6 -:10591000882A8081882A80829F5F9830F9F62F5FDD -:105920003F4F31962830310571F6ECE1F2E02FA5BA -:1059300038A9E217F30709F0B0CF04E610E020E23F -:1059400030E04CE053E06FCF8091F100D8018D93AF -:105950008D01B1E0CB1AD10809F41FCD8091E80088 -:1059600085FDF2CF8091E8008B778093E8000E945C -:105970008F07882399F311CD1A8289E08B8311C098 -:105980008A81823009F48EC1833089F1813009F037 -:1059900047C00E94FE080E94DD316B837C838D83AB -:1059A0009E8380915304843009F0F0CB1091E9007C -:1059B0001F709091EC00892F817090FD80E8182B6A -:1059C00082E08093E9008091E80080FF0CC050E005 -:1059D00040E060E270E0C7010E94C0078091E800EB -:1059E0008E778093E8001F701093E900CFCBDE0123 -:1059F0001396ECE3F3E081918D9323E0E634F20714 -:105A0000D1F7CFCF8A81823059F46B817C818D812F -:105A10009E810E94DD3186E290E00E940235C1CF76 -:105A20008FEF8983BECF4C816B818A810E94E01306 -:105A30009827892798279E838D83B3CF0D811E8158 -:105A40001027012710278A81CB803EE0C39E60018A -:105A500011249CE8899FC00CD11C11248C8190E0FA -:105A6000880F991FC80ED91E612FC60187960E9404 -:105A70000235602FC6018896D0CF0E94641391CF63 -:105A80008A818138C1F060F4803809F08ACF20E043 -:105A90004B816091600480915F040E94A01481CFCB -:105AA0008238E9F0833809F07CCF20E0409161042E -:105AB0006C818B81F2CF60E08B810E94B7158B8166 -:105AC000811103C00E94920F6CCF80915E048160AF -:105AD00080935E0460E086950E94B71562CF8B814B -:105AE000809362045ECF8A81813899F030F48038E7 -:105AF00009F057CF8091610441CF823891F083380B -:105B000009F04FCF80915F048B83809160048C8378 -:105B100048CF80915E0480FF02C086952FCF80E041 -:105B20002DCF809162042ACF60915E0470915F0452 -:105B300080916004909161040E948E1432CF80E1C4 -:105B40008A832FCF81E08A838DE118CFAA80BB8022 -:105B5000BA24AB24BA248E010F5F1F4FCC80C00E35 -:105B6000D12ED11CC5018D519D4F0C151D0509F479 -:105B700018CFADE1AA16A1E0BA0650F40E94EE34A7 -:105B8000F8018483BFEFAB1ABB0A0F5F1F4FEACF48 -:105B9000D80114961C92F6CF0A811B811027012789 -:105BA0001027FE0131965F01CC80C00ED12ED11C92 -:105BB000C8018D519D4FC016D10609F4F2CE0D31AA -:105BC000F1E01F0728F4D50114966C910E9402356C -:105BD000BFEFAB1ABB0A0F5F1F4FEACF0E945413EF -:105BE000E0CE85E0ADCFAA80BB80BA24AB24BA2436 -:105BF0008E010F5F1F4FCC80C00ED12ED11CC5016E -:105C00008796C016D10609F4CCCEECEBAE16E2E0D6 -:105C1000BE0658F40E94EE34D80114968C93FFEF20 -:105C2000AF1ABF0A0F5F1F4FEACFF8011482F7CFF8 -:105C30000A811B811027012710279E012F5F3F4FEC -:105C40005901CC80C00ED12ED11CC8018796C01638 -:105C5000D10609F4A6CE0C3B32E0130728F4D50197 -:105C600014966C910E940235BFEFAB1ABB0A0F5F0E -:105C70001F4FEBCF09BD19BD09B400FEFDCF8091C8 -:105C8000D8008F7D8093D8008091E000826080935F -:105C9000E0008091E00081FDFCCF109246040E945C -:105CA000A70FDBCB86E290E00E94EE341B821C82C1 -:105CB0001D828E8376CE1092B9008CE08093B8005E -:105CC00008959F92AF92BF92CF92DF92EF92FF9290 -:105CD0000F931F93CF93DF93B82EEB010E94031B0A -:105CE0006C01EE24E394F12CC431D10560F025E081 -:105CF000E22EF12CCF3FDC0731F0CE0164E170E001 -:105D00000E9484317B0184EAA82E94E8992E109297 -:105D1000BC00A092BC000E94031B8C018091BC00BF -:105D200087FF0DC08091B900887F883039F180915C -:105D3000B900887F803111F10FEF1FEF09C00E9479 -:105D4000031B801B910B8E159F0540F30EEF1FEF79 -:105D5000CF3FDC07E1F2C6010E94F41A8C179D07C1 -:105D6000B0F2C801DF91CF911F910F91FF90EF909A -:105D7000DF90CF90BF90AF909F900895B092BB00FE -:105D80009092BC000E94031B8C018091BC0087FF95 -:105D90000AC08091B900887F883111F0803461F6A3 -:105DA00010E000E0DECF0E94031B801B910B8E15DC -:105DB0009F0558F3CBCF0F931F93CF93DF93EB0146 -:105DC0008093BB0084E88093BC000E94031B8C017D -:105DD0008091BC0087FF11C02091B900287F81E02D -:105DE00090E0283211F490E080E09195819591093E -:105DF000DF91CF911F910F910895CF3FDC0741F3C1 -:105E00000E94031B801B910B8C179D0708F38EEFDC -:105E10009FEFEECFCF92DF92EF92FF920F931F93FF -:105E2000CF93DF936B018A017901B9010E94612E42 -:105E3000E6010C0D1D1DC017D10761F424E9209364 -:105E4000BC00DF91CF911F910F91FF90EF90DF90F9 -:105E5000CF90089597FDF2CFB70189910E94DB2E74 -:105E6000EACFCF92DF92EF92FF920F931F93CF93DF -:105E7000DF93C62F6A017901B8010E94612E97FD58 -:105E80000CC0B8018C2F0E94DB2EE601EC0CFD1C2F -:105E9000CE15DF0511F097FF0CC024E92093BC005C -:105EA000DF91CF911F910F91FF90EF90DF90CF90F6 -:105EB0000895B80189910E94DB2EEACF84E980938E -:105EC000BC0008958EE14A9B02C08150E1F74A9BD5 -:105ED000FECF08955A9880E28A95F1F75A9A08956C -:105EE000FC013BE03A95F1F798E020E080E031E0FA -:105EF00040E14A95F1F7880F4A9B02C08160232751 -:105F000042E04A95F1F7000040E14A95F1F79150DF -:105F100079F790E19A95F1F799B132E03A95F1F776 -:105F2000000040E14A95F1F792FB992790F99227FA -:105F30002081920F90830895EF92FF920F931F9309 -:105F4000CF93DF930F92CDB7DEB719828C017C011E -:105F5000E60EF11C0E151F0561F481E09981911187 -:105F600080E00F90DF91CF911F910F91FF90EF9004 -:105F700008950E94622FCE0101960E94702FF801B1 -:105F800081938F01E7CF529A5A9A089552985A9A5C -:105F9000EA9AE9E6F0E080818F7C80830895615081 -:105FA000770B91E001C0990F6A95EAF720E031E0A4 -:105FB000911108C0222391F05A9A80E28A95F1F754 -:105FC0005A980895492F482339F05A9A232740E2D6 -:105FD0004A95F1F79695ECCF5A98F9CF5A98EDCFAC -:105FE000FF920F931F93CF93DF93EC018C01060F69 -:105FF000111DC017D10731F4DF91CF911F910F917F -:10600000FF900895F9900E946A2F68E08F2D0E94FA -:10601000CF2FEFCF1F920F920FB60F921124EF9256 -:10602000FF920F931F932F933F934F935F936F9321 -:106030007F938F939F93AF93BF93EF93FF93CF93F0 -:10604000DF930F92CDB7DEB719820E94622FCE0187 -:1060500001960E94702FA82FA695A695A695282F89 -:10606000229525709A2F9570290F922F937026955F -:106070002695920F982797708981982B09F075C003 -:10608000A93008F072C080E18A95F1F75A9A529AC5 -:10609000B2E0BA95F1F700C05A98EA2EF12CEAE086 -:1060A000AE9FD0011124A050BF4F1896ED91FC91E6 -:1060B00019973097B1F06091020270910302169621 -:1060C0002D913C911797260F371F13968D919C9118 -:1060D0001497680F791F15964C91159712968C910D -:1060E00009958AE08E9DF0018F9DF00D1124E050FE -:1060F000FF4F6581662351F0209102023091030227 -:1061000086819781820F931F0E94F02F0E946A2F31 -:10611000F0E1FA95F1F75A9852985A9A80E18A95E7 -:10612000F1F78AE08E9D80018F9D100D11240050A3 -:106130001F4FD80112966C911297662371F120912E -:1061400002023091030213968D919C91820F931F4E -:106150000E949C2FD801ED91FC91882311F088E0DA -:1061600001C082E080830E94622F0F90DF91CF9167 -:10617000FF91EF91BF91AF919F918F917F916F911F -:106180005F914F913F912F911F910F91FF90EF9051 -:106190000F900FBE0F901F901895ED91FC91DFCFDF -:1061A0000F931F93CF93DF93EC0109970CF0A9C0D5 -:1061B0008AE08C9FF0018D9FF00D1124E050FF4F7D -:1061C00080819181892B09F49CC0F894529A5A9845 -:1061D00085E08A95F1F700008C2F869585709C2FBD -:1061E0009570890F982F937086958695890F8E01EB -:1061F00093E0000F111F9A95E1F7082B0E946A2F78 -:1062000000C068E0802F0E94CF2FA0E1AA95F1F78F -:1062100052985A9A4A9B27C087E090E04A9925C035 -:106220008AE08C9F80018D9F100D112400501F4F1C -:10623000F80165816623A1F12091020230910302E9 -:1062400086819781820F931F0E949C2F811128C005 -:10625000529A5A9AD801ED91FC9182E08083789409 -:1062600082E090E016C000C0D5CF0197B9F4529AF1 -:106270005A9A8AE08C9FF0018D9FF00D1124E05016 -:10628000FF4F0190F081E02D81E08083789481E0E0 -:1062900090E0DF91CF911F910F91089500C0BECF84 -:1062A0000E94622FB0E2BA95F1F75A98529AE0E153 -:1062B000EA95F1F78AE08C9FF0018D9FF00D112493 -:1062C000E050FF4F6281662351F02091020230912D -:1062D000030283819481820F931F0E94F02F0E94FA -:1062E0006A2F8AE08C9FF0018D9FF00D1124E05001 -:1062F000FF4F0190F081E02D1082789490E080E0D3 -:10630000C8CF84E090E0C5CFAA1BBB1B51E107C0FA -:10631000AA1FBB1FA617B70710F0A61BB70B881F35 -:10632000991F5A95A9F780959095BC01CD010895C4 -:10633000991B79E004C0991F961708F0961B881FD7 -:106340007A95C9F78095089597FB072E16F4009467 -:1063500007D077FD09D00E94843107FC05D03EF4B8 -:10636000909581959F4F0895709561957F4F089501 -:10637000052E97FB1EF400940E94CF3157FD07D0E5 -:106380000E94E43107FC03D04EF40C94CF315095B9 -:106390004095309521953F4F4F4F5F4F0895909511 -:1063A0008095709561957F4F8F4F9F4F0895EE0FA9 -:1063B000FF1F0590F491E02D09946927962769271E -:1063C0007827872778270895A1E21A2EAA1BBB1BDE -:1063D000FD010DC0AA1FBB1FEE1FFF1FA217B307B1 -:1063E000E407F50720F0A21BB30BE40BF50B661FC7 -:1063F000771F881F991F1A9469F76095709580958B -:1064000090959B01AC01BD01CF0108952F923F9261 -:106410004F925F926F927F928F929F92AF92BF92B4 -:10642000CF92DF92EF92FF920F931F93CF93DF9360 -:10643000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEBD -:10644000CDBF09942A88398848885F846E847D840A -:106450008C849B84AA84B984C884DF80EE80FD800C -:106460000C811B81AA81B981CE0FD11D0FB6F89482 -:10647000DEBF0FBECDBFED010895FB01DC0102C000 -:1064800005900D9241505040D8F70895FB01DC0172 -:1064900004C08D910190801921F441505040C8F7FB -:1064A000881B990B0895FB01DC0102C001900D923D -:1064B00041505040D8F70895AEE0B0E0E2E6F2E394 -:1064C0000C9414320D891E8986E08C831A8309830B -:1064D0008FEF9FE79E838D83AE01475E5F4F6F898D -:1064E000788DCE0101960E947F322F813885020F70 -:1064F000131FF80110822E96E4E00C943032ABE0CA -:10650000B0E0E5E8F2E30C9406327C013B018A013D -:10651000FC0117821682838181FFB9C19AE0292E7E -:10652000CE0101965C01F7019381F30193FD859102 -:1065300093FF81913F01882309F446C1853239F4E4 -:1065400093FD859193FF81913F01853229F4B70135 -:1065500090E00E946034E7CF912C412C512CFFE158 -:10656000F51538F08B3209F188F4803201F183326D -:1065700021F157FC3AC020ED280F2A3040F556FE95 -:106580001FC0929C200D1124922E06C08D3291F0D6 -:10659000803379F7689450F8F30193FD859193FF68 -:1065A00081913F018111DBCF20C0689451F868943C -:1065B00052F8F2CF689453F8EFCF689454F8ECCFC8 -:1065C000429C200D1124422E689455F8E5CF8E325E -:1065D00029F456FCF9C0689456F8DECF8C3619F4CD -:1065E000689457F8D9CF8836B9F2982F9F7D955483 -:1065F0009330C0F08336A1F18337C1F1833509F0C0 -:106600005BC0F801C190D1908F01692D70E056FCFC -:1066100002C06FEF7FEFC6010E944A344C016894BC -:1066200057F80AC00C5F1F4F2FE3298388248394F7 -:10663000912C6501E89457F853FC04C048141904E0 -:1066400009F018F5342C8114910431F5332009F444 -:106650006ACFB70180E290E00E9460343A94F6CFAE -:10666000F801808189830E5F1F4FE0CFF801C19050 -:10667000D1908F01692D70E056FC02C06FEF7FEF63 -:10668000C6010E9455344C01D5CFB70180E290E09D -:106690000E9460344A94D2CFF60157FC859157FE90 -:1066A00081916F01B70190E00E94603431103A94FB -:1066B000F1E08F1A9108C7CF843619F0893609F0B6 -:1066C00074C0F80157FE6AC06191719181919191F6 -:1066D0008F01252D2F76D22E97FF09C0909580959A -:1066E000709561957F4F8F4F9F4F6894D7F82AE040 -:1066F00030E0A5010E949034C82ECA188C2C5D2C65 -:10670000D6FE0CC0E89450F8C91440F4D4FE05C07D -:10671000D2FC03C0FD2DFE7E5F2E892C54FE8FC05F -:10672000FE01EC0DF11D8081803309F081C0252D23 -:10673000297E522E852D8870382E53FC8FC050FE36 -:1067400089C09C2C841418F44C0C942C981854FE7A -:106750008BC0B70180E390E00E94603452FE09C014 -:1067600088E790E051FE02C088E590E0B7010E9402 -:106770006034C91408F484C0CA94D12C9FEFC91A9C -:10678000D90ACA0CDB1CF60182916F01B70190E0B7 -:106790000E946034AC14BD04B1F758CF619171917F -:1067A000072E000C880B990B93CFD52CE894D4F8C6 -:1067B0002AE030E0853739F1952D997FD92E8F3633 -:1067C00001F148F48835A9F0F701868197812B966D -:1067D000E2E10C942232803749F08837A9F7D4FEE1 -:1067E00002C06894D2F820E130E00DC06894D4F87B -:1067F000F6CF54FE03C0E92FE660DE2E20E132E042 -:1068000002C028E030E0F801D7FE0DC0619171911F -:10681000819191918F01A5010E949034C82ECA18D0 -:10682000E894D7F86BCF6191719190E080E0F2CF5E -:1068300052FC02C083947ECF839483947BCF852DBA -:10684000867809F477CFF6CFB70180E290E00E9416 -:10685000603483948414C0F3312C79CF342C3818ED -:10686000841408F474CFF8CF852D867809F481CF8D -:106870008BE251FE80E257FC8DE2B70190E077CFCA -:10688000B70180E390E00E9460349A9472CF8FEF5A -:106890009FEF9DCFFC010590615070400110D8F72B -:1068A000809590958E0F9F1F0895FC016150704058 -:1068B00001900110D8F7809590958E0F9F1F089535 -:1068C0000F931F93CF93DF93182F092FEB018B8129 -:1068D00081FD09C01FEF0FEF812F902FDF91CF9126 -:1068E0001F910F91089582FF14C02E813F818C81EA -:1068F0009D81281739073CF4E881F981CF01019681 -:106900009983888310838E819F8101969F838E83D4 -:10691000E3CFE885F985812F0995892BA1F3DACF9B -:10692000FA01AA27283051F1203181F1E8946F93C0 -:106930006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED066 -:10694000B4E03CD0670F781F891F9A1FA11D680F04 -:10695000791F8A1F911DA11D6A0F711D811D911D37 -:10696000A11D20D009F468943F912AE0269F1124AC -:106970003019305D3193DEF6CF010895462F477010 -:10698000405D4193B3E00FD0C9F7F6CF462F4F706B -:10699000405D4A3318F0495D31FD4052419302D0C9 -:1069A000A9F7EACFB4E0A69597958795779567956F -:1069B000BA95C9F700976105710508959B01AC016F -:1069C0000A2E06945795479537952795BA95C9F796 -:1069D000620F731F841F951FA01D0895F999FECFA4 -:1069E00092BD81BDF89A992780B50895A6E1B0E0DF -:1069F00044E050E00C942835A8E1B0E042E050E0DB -:106A00000C942835262FF999FECF92BD81BDF89AB6 -:106A1000019700B4021639F01FBA20BD0FB6F894E2 -:106A2000FA9AF99A0FBE08950396272F0E9403350C -:106A30000E940235252F0E940335242F0C94033524 -:106A40000196272F0E9403350C940235DC01CB01FF -:106A5000FC01F999FECF06C0F2BDE1BDF89A31966E -:106A600000B40D9241505040B8F708955058BB27DC -:106A7000AA270E944E350C9466360E94583638F08C -:106A80000E945F3620F039F49F3F19F426F40C94ED -:106A900055360EF4E095E7FB0C942636E92F0E945C -:106AA000773658F3BA17620773078407950720F003 -:106AB00079F4A6F50C94B1360EF4E0950B2EBA2FAE -:106AC000A02D0B01B90190010C01CA01A0011124F4 -:106AD000FF27591B99F0593F50F4503E68F11A16A0 -:106AE000F040A22F232F342F4427585FF3CF469531 -:106AF00037952795A795F0405395C9F77EF41F1653 -:106B0000BA0B620B730B840BBAF09150A1F0FF0F1C -:106B1000BB1F661F771F881FC2F70EC0BA0F621F08 -:106B2000731F841F48F4879577956795B795F795F8 -:106B30009E3F08F0B0CF9395880F08F09927EE0F8D -:106B40009795879508950E94993690F09F3748F45D -:106B5000911116F40C94B23660E070E080E89FE387 -:106B6000089526F01B16611D711D811D0C942C3695 -:106B70000C9447360E947F3688F09F5798F0B92FC3 -:106B80009927B751B0F0E1F0660F771F881F991F62 -:106B90001AF0BA95C9F714C0B13091F00E94B1361D -:106BA000B1E008950C94B136672F782F8827B85F2D -:106BB00039F0B93FCCF3869577956795B395D9F7BA -:106BC0003EF490958095709561957F4F8F4F9F4FC4 -:106BD0000895E89409C097FB3EF4909580957095D0 -:106BE00061957F4F8F4F9F4F9923A9F0F92F96E919 -:106BF000BB279395F695879577956795B795F1118E -:106C0000F8CFFAF4BB0F11F460FF1BC06F5F7F4F2A -:106C10008F4F9F4F16C0882311F096E911C077233C -:106C200021F09EE8872F762F05C0662371F096E845 -:106C3000862F70E060E02AF09A95660F771F881F14 -:106C4000DAF7880F9695879597F9089597F99F67D2 -:106C500080E870E060E00895882371F4772321F0E4 -:106C60009850872B762F07C0662311F499270DC003 -:106C70009051862B70E060E02AF09A95660F771F9E -:106C8000881FDAF7880F9695879597F908959F3FA3 -:106C900031F0915020F4879577956795B795880FD7 -:106CA000911D9695879597F908959FEF80EC08952B -:106CB00000240A94161617061806090608950024DB -:106CC0000A9412161306140605060895092E039455 -:106CD000000C11F4882352F0BB0F40F4BF2B11F4C9 -:106CE00060FF04C06F5F7F4F8F4F9F4F089557FD28 -:106CF0009058440F551F59F05F3F71F04795880F2A -:106D000097FB991F61F09F3F79F0879508951216C0 -:106D100013061406551FF2CF4695F1DF08C016166C -:106D200017061806991FF1CF86957105610508941D -:106D300008950E947F36A0F0BEE7B91788F4BB27FC -:106D40009F3860F41616B11D672F782F8827985F3B -:106D5000F7CF869577956795B11D93959639C8F3CA -:106D60000895E894BB2766277727CB0197F9089504 -:106D70000E94CB360C9466360E94583638F00E943A -:106D80005F3620F0952311F00C9426360C9455367E -:106D900011240C94B2360E94773670F3959FC1F39C -:106DA000950F50E0551F629FF001729FBB27F00DB9 -:106DB000B11D639FAA27F00DB11DAA1F649F66270E -:106DC000B00DA11D661F829F2227B00DA11D621F5D -:106DD000739FB00DA11D621F839FA00D611D221F17 -:106DE000749F3327A00D611D231F849F600D211DFB -:106DF000822F762F6A2F11249F5750409AF0F1F07E -:106E000088234AF0EE0FFF1FBB1F661F771F881FE6 -:106E100091505040A9F79E3F510580F00C942636C2 -:106E20000C94B2365F3FE4F3983ED4F386957795A1 -:106E30006795B795F795E7959F5FC1F7FE2B880F8C -:106E4000911D9695879597F90895F894FFCF97101F -:106E5000BF101211BF101211F2102A1112112712B5 -:106E6000341260146014691469146B146914691481 -:106E70006914601460147014691469147014072183 -:106E800007216021602192213A213A213A21AC2147 -:106E90001D222D222D22BC2CC02C022D132D1E2D87 -:106EA0003D2D402D732D942D102D102D9F2DA22D95 -:0C6EB000A62DCC2DEE2DF12DF32D182E6B -:106EBC004202000000010000000042020000000538 -:106ECC000100000042020000000106000000420226 -:106EDC00000000010700000042020408000000004E -:106EEC0000004202090C00000000000042020115E3 -:106EFC00000000000000420201160000000000002B -:106F0C0036323331F7F6676697C634350000000029 -:106F1C000001FB08DB0DFA08D70DD30DF4F50100C9 -:106F2C0021007F220003004A004A4A01F6F7313360 -:106F3C003236674C41594552004261736520004717 -:106F4C00616D6520005261697365004C6F776572E5 -:106F5C00004C4F434B0043617073004E756D0053F2 -:106F6C0063726C00202020202000534F4C415200B3 -:106F7C00544D505354002025303364002077706DED -:106F8C0000818283E200E900EA00B500B600B70098 -:106F9C00CD008301CC008A019201940121022302CD -:106FAC0024022502260227022A02B300B4006F0035 -:106FBC007000B90200FF0100010000FFFF0000019A -:106FCC000001FF0000081018181008000001020250 -:106FDC00020202020202020240223250012E01FC85 -:086FEC0000370D500D700D007F +:100BA0000000000000000000000000000000000045 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000AF00AE09029D +:100BF0005B00030100A0FA090400000103010100E9 +:100C00000921110100012240000705810308000AA3 +:100C10000904010002030000000921110100012262 +:100C200022000705820320000107050303200001BD +:100C30000904020001030000000921110100012242 +:100C40007B000705840320000A1201000200000057 +:100C50000832FC87120200010200011E0353006FDC +:100C6000006C00610072006900750073005F005342 +:100C7000006F0066006C006500000010034B00650B +:100C8000007900680069007600650000000403092F +:100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 +:100CA00003FE27C08091700690917106A091720694 +:100CB000B09173068730904BA740B04BD1F410929F +:100CC000700610927106109272061092730614BE8E +:100CD00084B7877F84BF0FB6F894A8958091600091 +:100CE000886180936000109260000FBEE0E0F8E33E +:100CF000099512E0A0E0B1E0E0EDF9E602C0059050 +:100D00000D92A632B107D9F726E0A6E2B2E001C003 +:100D10001D92A037B207E1F70E945F260C94AF3412 +:100D20000C940000CF93DF9340916E0650916F06B4 +:100D30004E5654409A01205A3F4F21303240C0F065 +:100D400020E032E0241B350B60916C0470916D043F +:100D5000FC01CA01240F351FC1E0D0E082179307C0 +:100D600050F070936D0460936C04DF91CF910895FF +:100D700020E630E0E9CF4491DC01A259BB4F5C9101 +:100D8000451781F04C93AC01A5E056954795AA957F +:100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 +:100DA0006A2B752B01963196D9CFE8EDF0E0808162 +:100DB0008E7F80831092E2001092DA001092E100A0 +:100DC000A0EEB0E08C9181608C9380818F778083DE +:100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 +:100DE000808310924E0408952091E4003091E50034 +:100DF00095E6A9012091EC00822F817020FF06C0AA +:100E00008091E80080FF06C080E008952091E8000E +:100E100022FD1AC080915C04882389F0853089F016 +:100E20008091EB0085FD0FC02091E4003091E5003A +:100E300042175307F9F29150E1F684E0089582E0F9 +:100E4000089583E0089581E00895EF92FF920F9353 +:100E50001F93CF937C018B010E94F406C82F811150 +:100E600017C08091E80085FD0BC08091E8008E7767 +:100E70008093E8000E94F406882399F3C82F08C0E5 +:100E8000F70181917F018093F1000150110949F729 +:100E90008C2FCF911F910F91FF90EF90089580912B +:100EA0005E0487FF13C08091E80082FF06C0809136 +:100EB000E8008B778093E80004C080915C04811186 +:100EC000F2CF089580915C048823D9F38091E800E3 +:100ED00080FFF8CF8091E8008E77ECCF982F909329 +:100EE000E900242F762F50E0891731F07091EC0043 +:100EF0002091ED005091F00021FD07C09F5F9730D9 +:100F000071F78093E90081E008953091EB003E7F16 +:100F10003093EB003091ED003D7F3093ED00309148 +:100F2000EB0031603093EB007093EC002093ED0008 +:100F30005093F0002091EE0027FDE0CF80E008956F +:100F4000CF92DF92EF92FF920F931F93CF93DF9395 +:100F5000C8EDD0E088818F7E8883E7EDF0E0808166 +:100F60008160808384E082BF81E080934E04888129 +:100F70008E7F888302EE10E0F80110821092DA0072 +:100F800081EEC82ED12CF601108288818F7788835C +:100F900088818068888388818F7D888319BC1092BE +:100FA0005C0410925D0410925B0410925A0490EE5F +:100FB000E92EF12CF70180818B7F8083888181600D +:100FC000888342E060E080E00E946E07F601808145 +:100FD0008E7F8083F801808181608083808188603A +:100FE0008083F70180818E7F808388818061888300 +:100FF000DF91CF911F910F91FF90EF90DF90CF90F5 +:101000000895FC0180916404909165048617970708 +:10101000A0F06115710529F49091E8009E779093F6 +:10102000E80090E06115710551F4911108C08091BC +:10103000E80082FF34C080E00895BC01F2CF8091C7 +:101040005C048823C1F18530C1F18091E80083FD03 +:1010500030C08091E80082FDEACF8091E80080FFF7 +:10106000E1CF8091F3002091F200382F61157105D6 +:1010700019F02830310558F091E02830310509F099 +:1010800090E02091E8002E772093E800CBCF81916B +:101090008093F100615071092F5F3F4FE7CF80913E +:1010A0005C04882341F0853041F08091E80083FFA3 +:1010B000BECF81E0089582E0089583E00895809195 +:1010C000510408952FB7F894609147047091480433 +:1010D0008091490490914A042FBF089520914404BF +:1010E000309145042817390771F090934504809397 +:1010F0004404E0914204F0914304309721F00084CD +:10110000F185E02D09940895209140043091410427 +:101110002817390771F09093410480934004E091BF +:101120004204F0914304309721F00680F781E02DCE +:10113000099408952091330436E0839FC00111245F +:10114000629F800D911D1124811522E0920714F0F9 +:1011500090E080E082599B4F90936F0680936E06DB +:101160000895FC01680F791F8FEF91E32191822789 +:1011700028E030E087FF09C0880F89272150310916 +:10118000C9F7E617F70791F70895880FF7CFFA0127 +:10119000811101C0FB01099480916704982F9E7F03 +:1011A00061F4817082608093670480916A04813A5F +:1011B00018F080EA80936A0408958831B0F3817052 +:1011C0008661F1CFAF92BF92DF92EF92FF920F93C1 +:1011D0001F93CF93DF93082F162FE901E42FF0E040 +:1011E000E55AFA4F611110C0E4915E2F4E2F4983EA +:1011F000E8835A83DF91CF911F910F91FF90EF9079 +:10120000DF90BF90AF900895E62EF12C4491D42E3C +:10121000E42FF0E026E0829FC00111242FEF30E0A0 +:10122000B9010E94E332802F90E0880F991F55E5A5 +:10123000569FD001579FB00D11248A1B9B0B982FEE +:10124000990F890F5901AE18BF08AE9ED001AF9E0D +:10125000B00DBE9EB00D11245B2F189F800111248C +:10126000012F11275901A01AB10AAE9E8001AF9E2D +:10127000100DBE9E100D11245901A81AB108AE9C84 +:10128000C001AF9C900DBE9C900D1124892F992711 +:10129000281B390B2E9FC0012F9F900D3E9F900D54 +:1012A0001124E92F62307105A1F050F46115710528 +:1012B00009F49DCF6130710581F0EB2F512F97CF4D +:1012C0006430710569F080F06630710509F48FCFE4 +:1012D000F4CFE42F4B2F592F8ACFE42F412F87CF04 +:1012E000EB2F542F492F83CF4B2F5D2DE12F7FCF35 +:1012F00080E0089578940895F894E82FE295EF70CF +:10130000F0E031A1282F2F7081E090E001C0880F1C +:101310002A95EAF7982F9095932391A392A1892B70 +:1013200082A30C947A099091CC0292FF06C0282FD8 +:1013300028712830F9F4877F846093FF06C0282F36 +:1013400028712831F1F4877E84612091CD0220FF3D +:1013500006C0382F38713830D9F4877F816021FF7B +:1013600006C0282F28712831D1F4877E816194FD31 +:10137000877E0895282F24712430F9F68B7F8860AA +:10138000DCCF282F2471243101F78B7E8861DDCFDB +:10139000382F3171313019F78E7F8860E0CF282FD8 +:1013A0002171213121F78E7E8861E1CFCF93DF93C8 +:1013B000EC018238910581F1B0F58133910509F492 +:1013C00091C020F58932910509F485C08A9709F406 +:1013D00090C0C11521E5D20708F0AAC0C11530E5BB +:1013E000D30708F0F2C0CF3BD10508F089C0C83A56 +:1013F000D10508F0DFC0C53AD10508F0D3C0C4302C +:10140000D105F8F4C130D105E1F040C08533910534 +:1014100009F45AC0C997E9F68091CC02837089F02B +:10142000C0EED0E00EC0833E910599F170F4803E8D +:10143000910501F1823E910561F68091CC0282FD19 +:1014400021C0CE01DF91CF910895863E910561F1D3 +:10145000873E910571F1843E910509F0BACF8091E4 +:10146000CD0281FFEECF8091CC02C7EED0E084FDAB +:101470000DC0E7CF8091CC0280FDF7C09091CD02E6 +:1014800090FFDFCFC3EED0E084FFDBCFD0E0C0E041 +:10149000D8CF8091CC0282FDEBC09091CD0290FD1F +:1014A000BFCF84FFCECFF2CF8091CC0283FDDDCFC2 +:1014B000C8CF8091CC0283FDDEC09091CD0291FF18 +:1014C000F0CFC4EED0E0BDCF8091CC0285FFB9CF84 +:1014D000C9E2D0E0B6CF8091CC0285FFB2CFC5E3A0 +:1014E000D0E0AFCF8091CC0286FFABCFCAE2D0E094 +:1014F000A8CF8091CC0286FFA4CFC1E3D0E0A1CFDA +:10150000C11540E2D40760F4C11581E0D80708F0A6 +:1015100098CFCE01815E9109079708F492CFB6CF9C +:10152000C11590E4D90708F4B1CFDF70D06A89CF34 +:10153000C11524E5D20778F4C11533E5D30708F0C7 +:1015400072C0C11542E5D40708F05CC0DC2FCC277F +:10155000C16FD06A76CFC1158AE5D80778F4C11576 +:1015600099E5D90708F073C0C11528E5D20708F43A +:101570008DCFDC2FCC27C06FD06A63CFCE019056C1 +:101580008115904208F082CF8D2F8F710E949309B0 +:1015900090E0982F882788279F719C012C2BE901C8 +:1015A000D0624FCFC55AD0E0C154DE4FC881D0E0E1 +:1015B000D06447CFC85AD0E0CC0FDD1FCE53DE4FEA +:1015C0000990D881C02DD4643CCFCE0164E09695BB +:1015D00087956A95E1F783702C2F269526952370C1 +:1015E00040E2249F90011124382B8C2F8370C1E09E +:1015F000D0E002C0CC0FDD1F8A95E2F7C22BD32BBF +:10160000DC681FCFCE018370992721E030E002C053 +:10161000220F331F8A95E2F7C695C69580E2C89FD0 +:10162000E0011124EBCFCE018370992721E030E057 +:1016300002C0220F331F8A95E2F7C695C69590E245 +:10164000C99FE0011124C22BD32BDA68FACE8C2F6C +:101650008F700E94930934E0D695C7953A95E1F7CB +:10166000CF709C2FEC01D069ECCEC9E3D0E0E9CE7D +:10167000C2EED0E0E6CEC6EED0E0E3CE0C94620837 +:1016800080914F0490918902892B90918802892B37 +:1016900080932802E0914204F0914304309731F0A6 +:1016A0000280F381E02D88E292E009940895809110 +:1016B000870290915602981301C008958F5F87703A +:1016C000FACF27E0929F800D1124982F977086956E +:1016D0008695869523E0829FF0011124EB5CFD4FF7 +:1016E00050E040E080E0219130E0092E02C03695C4 +:1016F00027950A94E2F721703327042E01C0220FA8 +:101700000A94EAF7822B4F5F5F4F4330510559F738 +:10171000089527E0929F800D1124982F977041E043 +:1017200001C0440F9A95EAF786958695869593E0D1 +:10173000899FF0011124EB5CFD4F90E080E070E0A8 +:101740005191DF0111979B01082E02C03695279514 +:101750000A94E2F7217021952527242325272C932D +:1017600001968330910561F7089590E080E00E9432 +:10177000840890E080E00E946E0810928902109226 +:1017800088020C94400B80938A020C94B50B88233A +:1017900041F0809590914F04892380934F040C94DD +:1017A000400B0895882339F090914F04982B909323 +:1017B0004F040C94400B08958823B1F19CEF980FCF +:1017C000913A70F4EAE2F2E09191891303C0DF01EB +:1017D00011971C9242E0E033F407B1F70C94400BF0 +:1017E00090E2980F983088F4877021E030E0A901EA +:1017F00002C0440F551F8A95E2F7CA018095909167 +:101800004F04892380934F04E9CF9BE5980F9330D1 +:1018100020F490E080E00C948408885A873120F40A +:1018200090E080E00C946E0808950F931F93CF937F +:10183000C82F882309F469C08CEF8C0F813AB0F56A +:101840000AE212E080E392E0F8012191C21701F16F +:1018500022E0E033F207C9F7EFEF80E0D8019D9175 +:101860008D01C91781F0EF3F19F4911101C0E82FE4 +:101870008F5F863099F7EF3F31F00E2E000CFF0B93 +:10188000E85DFD4FC283CF911F910F910C94400BE7 +:10189000EAE2F2E02191C21303C0DF0111971C922A +:1018A0008E179F07B9F70E94400BD6CF80E28C0FAE +:1018B000883068F4C77021E030E001C0220FCA957B +:1018C000EAF780914F04822B80934F04DCCFEBE545 +:1018D000EC0FE33050F4F0E0E154FE4F808190E0F3 +:1018E000CF911F910F910C948408C85AC73168F4A6 +:1018F000EC2FF0E0EE0FFF1FEE53FE4F8081918141 +:10190000CF911F910F910C946E08CF911F910F9161 +:101910000895982F92959F7011F0892F94E0282FA9 +:101920002695269511F09E5F822F869509F09F5F80 +:10193000892F0895CF93DF93CDB7DEB762970FB6A7 +:10194000F894DEBF0FBECDBF96E0EAE1F3E0DE0122 +:10195000179601900D929A95E1F796E0FE01379661 +:10196000DE011D9601900D929A95E1F798858823E6 +:10197000E9F0962B9E8786E0FE013D96DE011196EA +:1019800001900D928A95E1F786E0FE013196AAE179 +:10199000B3E001900D928A95E1F762960FB6F89444 +:1019A000DEBF0FBECDBFDF91CF9108956095962326 +:1019B000E1CFDC01FB0180819181803891054CF001 +:1019C0008FE78C93808191818F57910991838083D8 +:1019D000089581382FEF92073CF481E88C93808141 +:1019E000918181589F4FF2CF8C931182108208957C +:1019F000681708F5861B682F21E0469FA001112477 +:101A0000649FF001659FF00D1124409159015091A0 +:101A10005A01E49FC001E59F900DF49F900D1124A1 +:101A2000880F892F881F990B9195222319F0919582 +:101A3000819591090895681B20E0DFCF0F931F93D4 +:101A4000CF93DF9300D000D0CDB7DEB789836A8310 +:101A50004B831C8204E610E024E030E0AE014F5FCF +:101A60005F4F60E084E10E9441300F900F900F9033 +:101A70000F90DF91CF911F910F91089580912803CE +:101A8000882329F047E669E98BE20C941E0D6091EA +:101A9000590170915A0190E080E00E94903320E05B +:101AA00030E040E05CE30E94F13320E030E040E8C9 +:101AB0005FE30E948B33882321F047EC6BE180E0E9 +:101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 +:101AD000FF920F931F93CF93DF936C017B0164E61A +:101AE00070E088E70E94292FEC0197FD12C010E0FA +:101AF00000E0F601E00FF11F849164E670E00E94BF +:101B0000A32FEC01892B29F40F5F1F4F0E151F0522 +:101B100081F70E94BD30CE01DF91CF911F910F91CF +:101B2000FF90EF90DF90CF90089580913E049091C8 +:101B30003F04911103C091E089270895882369F03B +:101B400062E070E08CEE9BE00E94650D892B19F03D +:101B500080913E04089510923E0480913E04EBCFA4 +:101B6000CF93C0913E0480913F048823D1F00E941E +:101B700062086058774C8E4F9F4F60933A04709381 +:101B80003B0480933C0490933D04C11108C062E083 +:101B900070E08AEE9BE00E94650D892B29F0C091D0 +:101BA0003E048C2FCF91089581E080933E04F7CFBF +:101BB00090915C04943029F580934B0470934D040C +:101BC00060934C049093E9008FEF9091E80081506E +:101BD00095FD06C095ED9A95F1F700008111F5CFBE +:101BE0008091E80085FF0DC050E040E063E070E0C8 +:101BF0008BE494E00E9425078091E8008E77809323 +:101C0000E8000895BC0184E00C94D80DBC0183E089 +:101C10000C94D80D9C0184E08093E9009FEF8091A3 +:101C2000E800915085FD06C085ED8A95F1F700002A +:101C30009111F5CF8091E80085FF0CC050E040E0A5 +:101C400066E070E0C9010E9425078091E8008E7768 +:101C50008093E8000895CF93DF93EC0181E08093B7 +:101C6000E9008FEF9091E800815095FD06C095ED59 +:101C70009A95F1F700008111F5CF8091E80085FF7A +:101C800014C050E040E068E070E0CE010E942507FB +:101C90008091E8008E778093E80088E0FE01A2E55D +:101CA000B4E001900D928A95E1F7DF91CF9108950C +:101CB0009F92AF92BF92CF92DF92EF92FF920F93DB +:101CC0001F93CF93DF937C015B016A018091C70270 +:101CD00001E010E08A3010F40AE010E0C1E0D0E04A +:101CE000F894B501C701F6010995982E0E947A096A +:101CF000911004C021960C171D076CF4892DDF91FB +:101D0000CF911F910F91FF90EF90DF90CF90BF90F8 +:101D1000AF909F900895CC9F9001CD9F300D300DD6 +:101D2000112490E080E045E34A95F1F70000019628 +:101D300082179307C1F7D4CF80919702811110C009 +:101D40008091D80080618093D8008AE18A95F1F76C +:101D500000C08091D90080FF0AC081E08093970283 +:101D600081E090919702913009F080E0089582E03F +:101D7000809397020E94D50610925C04F1CF0E94D6 +:101D80009C0E882351F0E0914204F0914304309777 +:101D900021F00190F081E02D099480E008951F93D7 +:101DA000CF93DF93182FEB010E94150C8FE99FE072 +:101DB0000197F1F700C000002197C1F7812FDF9153 +:101DC000CF911F910C94DC0B4F925F926F927F9298 +:101DD0008F929F92AF92BF92CF92DF92EF92FF923B +:101DE0000F931F93CF93DF93CDB7DEB7CE5DD109AD +:101DF0000FB6F894DEBF0FBECDBF5090700190912A +:101E0000670490FF5DC08090530390905403811449 +:101E1000910409F068C0E0E6F6E09E012F5F3F4FB5 +:101E2000BE0161527F4FC901A4914A2F50E0DA01EF +:101E3000AA0FBB1FA40FB51FAB5ABC4FCD90DD90AE +:101E4000EC90D901CD92DD92ED929D0131966A1709 +:101E50007B0751F720916F0143E0249F800D911D76 +:101E60001124539A2BB1277F3BB138605FB7F894A8 +:101E7000BC01549E600D711D11248617970709F04F +:101E80008EC05FBF8FE594E00197F1F700C00000BE +:101E9000C252DF4F0FB6F894DEBF0FBECDBFDF9149 +:101EA000CF911F910F91FF90EF90DF90CF90BF9057 +:101EB000AF909F908F907F906F905F904F9008951C +:101EC000809171012091720133E0839FF001112410 +:101ED000EB5AFC4F821708F096CF118210821282C3 +:101EE0008F5F3396F7CF90FF96CFD12CC12C66240D +:101EF0006394712C53E0452E8091520393010C2C76 +:101F000001C0220F0A94EAF7822309F43FC0F601C8 +:101F1000EE0FFF1FE80DF91DE590F490E114F104B8 +:101F200009F479CF45E050E0B701CE0101960E9457 +:101F3000243309810F3F51F18A81800F9927991F1E +:101F40008B34910514F08AE490E05C01AA0CBB1C70 +:101F50008A0D9B1DDC01AB5ABC4F5D01049D8001C5 +:101F600011240B5A1C4F0A151B0520F0B5E0EB0E8F +:101F7000F11CD8CF4D81413A08F040EA98016C81BC +:101F80008B810E94E2080D5F1F4FEDCFEFEFCE1A5D +:101F9000DE0AF8E0CF16D10409F0AECF3CCFFC0149 +:101FA0004191CF01E8E03BB9000000C047FF2BB9E9 +:101FB000440F000000C000C000C02BB900C0EA956B +:101FC00091F75BCFE7E6F4E080818E7F8083EFE4DA +:101FD000F3E08281816082832FEF80E792E02150DD +:101FE00080409040E1F700C000000C94E40EEAE26B +:101FF000F2E086E0DF011D928A95E9F70C94B50BBB +:102000001F93CF93DF93CDB7DEB7AA970FB6F8949F +:10201000DEBF0FBECDBF8EE594E02091F100DC0164 +:102020002D93CD01B4E086369B07B9F780915F040C +:10203000833009F471C0B8F4813009F448C08230AB +:1020400009F4B4C08091E80083FF3CC180915E0434 +:1020500090915F049A3008F035C1E92FF0E0EF5419 +:10206000FB4C0C9417338A3009F48FC08B3009F481 +:1020700070C0893039F780915E04813219F7809100 +:10208000620490916304009711F00297D9F6809151 +:10209000E800877F8093E8008091E80082FF37C0E6 +:1020A0009091F3008091F200029729F48091F10061 +:1020B0008B7F813021F48091F100809351048091D5 +:1020C000E8008B778093E8000E944F07BBCF809198 +:1020D0005E04813A09F0B6CF8091E800877F809353 +:1020E000E8008091620490916304892B61F468E0B8 +:1020F00082E594E070E00E9401088091E8008B770F +:102100008093E8009FCF60E090E080E0F3CF809183 +:102110005C048111C1CF96CF80915E04813A09F0B1 +:1021200091CF8091620490916304892B09F08ACF4A +:102130008091E800877F8093E8008091E80080FF2D +:10214000FCCF809174018093F1008091E8008E773C +:10215000B9CF80915E04813209F074CF809162041E +:1021600090916304892B09F06DCF8091E800877FFF +:102170008093E8000E944F0780916004809374016F +:1021800010924F040E94F70F5DCF80915E04813260 +:1021900009F058CF8091E800877F8093E8000E9483 +:1021A0004F0780916104809350044CCF80915E046E +:1021B000813A09F047CF8091E800877F8093E8005B +:1021C0008091E80080FFFCCF80915004BCCF803824 +:1021D00099F0823809F076C0809162048F70873060 +:1021E00008F070C08093E9008091EB0085FB8827A0 +:1021F00080F91092E90006C080915A0490915B0426 +:10220000911182609091E800977F9093E80080930D +:10221000F1001092F1008091E8008E77B5C188231B +:1022200009F4A2C1823009F04DC08091600481118F +:10223000A6C1809162048F702FEF280F263008F01E +:1022400041C08093E9002091EB0020FF98C19330BA +:1022500031F48091EB0080628093EB0090C190910B +:10226000EB0090619093EB0021E030E001C0220F81 +:102270008A95EAF72093EA001092EA008091EB0039 +:102280008860EACF81111EC0109160041F77809191 +:10229000E3008078812B8093E3008091E800877FC2 +:1022A0008093E8000E944F078091E80080FFFCCFF8 +:1022B0008091E30080688093E30082E0111183E065 +:1022C00080935C048091E80083FF0AC08091E8005D +:1022D000877F8093E8008091EB0080628093EB0021 +:1022E000AA960FB6F894DEBF0FBECDBFDF91CF9197 +:1022F0001F9108958058823028F720916004309112 +:1023000061042C3DE3E03E07A1F583E08A838AE285 +:1023100089834FB7F894DE01139620E03EE051E246 +:10232000E32FF0E050935700E49120FF03C0E295C3 +:10233000EF703F5FEF708E2F90E0EA30C0F0C796ED +:102340008D939D932F5F243159F74FBF8091E80003 +:10235000877F8093E8006AE270E0CE0101960E94D8 +:1023600001088091E8008B778093E800ABCFC0969E +:10237000E7CF8091620490916304432F5527433047 +:10238000510509F44AC078F54130510509F47AC085 +:102390008BE590E0EEEEFBE04230510509F092CF84 +:1023A0002091E800277F2093E80020916404309179 +:1023B00065048217930708F49C0140E0211531055C +:1023C00009F065C0411163C08091E80082FDC9CF6A +:1023D00080915C04882329F2853019F28091E8000D +:1023E00083FFF2CFBECF4132510509F43CC04232E7 +:1023F000510509F067CF8330910508F063CFFC01E8 +:10240000EE0FFF1FE75EFD4F0190F081E02D8A5E29 +:102410009D4FDC018C9190E01AC0332721303105AB +:10242000D1F02115310561F02230310509F04ACF94 +:10243000EBE5FCE0E4918E2F90E0EBE5FCE007C0DB +:10244000EDE8FCE0E4918E2F90E0EDE8FCE00097F1 +:1024500009F438CFA5CFEBE7FCE0E4918E2F90E0B4 +:10246000EBE7FCE0F4CF8330910508F02BCF880F29 +:10247000991FFC01E15EFD4F0190F081E02D89E0A4 +:1024800090E08ECF82E190E0E9E4FCE089CF80919A +:102490005C04882309F465CF853009F462CF80910C +:1024A000E80083FD5ECF8091E80082FD8DCF8091B2 +:1024B000E80080FF83CF9091F3008091F200211516 +:1024C000310519F08830910550F041E0089709F086 +:1024D00040E08091E8008E778093E8006FCF4491D0 +:1024E0004093F1003196215031090196E8CF8038B0 +:1024F00009F0E8CE8091E800877F8093E800809122 +:102500005D048093F10087CE8111DCCE10916004D0 +:10251000123008F0D7CE8091E800877F8093E800E2 +:1025200010935D040E944F07112311F084E005C051 +:102530008091E30087FDFACF81E080935C0442E064 +:1025400061EC81E00E946E0742E261EC84E00E944F +:102550006E0742E261EC82E00E946E0742E260ECAC +:1025600083E00E946E07AECE80916004813009F056 +:10257000A9CE81E0933009F080E080935B04109253 +:10258000E9008091E800877F8093E8000E944F0770 +:1025900099CE1F93CF93DF93162FC0916E06D091E3 +:1025A0006F068A30D1F420913304CE018E569440C8 +:1025B000622F70E00E94E332281B822F66E00E94A7 +:1025C000F732C82FC15020F4DF91CF911F910895A9 +:1025D00060E080E20E94C912F5CF8D30E9F4CE565A +:1025E000D44020913304622F70E0CE010E94E33288 +:1025F000281B822F9E01280F311D2115324018F013 +:1026000080E0D0E0C0E0C80FD11DC259DB4FD093AD +:102610006F06C0936E06D8CF96E0FE01A4E3B4E047 +:1026200001900D929A95E1F7803E90F186E0FE01CF +:1026300011928A95E9F7C0916E06D0916F0611113B +:1026400033C046E050E0BE0184E394E00E942D33A5 +:102650009E012E563440892B91F52A5F3F4F4091C1 +:102660003304642F70E0C9010E94E332481B4630F6 +:1026700010F4240F311D211572E0370710F030E0FF +:1026800020E022593B4F30936F0620936E069CCF7B +:10269000F6E08F9FB00111246655794F46E050E077 +:1026A000CE010E942433C7CF9E012A5F3F4FFE0117 +:1026B0002E173F0731F2808180958193F9CFC901B0 +:1026C00045E0969587954A95E1F741E050E0BA01DB +:1026D00002C0660F771F8A95E2F7CB0160916C0408 +:1026E00070916D04862B972BB9016B5F7F4FE5E0EE +:1026F00076956795EA95E1F702C0440F551F6A95F4 +:10270000E2F7842B952B90936D0480936C04A5CFF6 +:10271000FF920F931F93CF93DF93EC01F62EFC01F2 +:1027200001900020E9F78F0101501109C017D1076E +:1027300030F0DF91CF911F910F91FF9008956F2D91 +:1027400089910E94C912F2CFCF93DF93C3EED2E0FA +:1027500060E0CE010E9457332196C11584E0D8076E +:10276000B9F7DF91CF9108956F927F928F929F92E8 +:10277000AF92BF92CF92DF92EF92FF920F931F938F +:10278000CF93DF938AEAC82E86E0D82E91ECE92E0B +:10279000F12CE701CC58D10936011BC0F501859019 +:1027A0009490692DC8010E945733682DC801019685 +:1027B0000E94573382E0A80EB11C0E5F1F4FC01756 +:1027C000D10761F78EE0680E711C2E96CE15DF05DD +:1027D00029F08E010E5011095301E0CF7E018CE8E3 +:1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA +:1027F000F80679F6DF91CF911F910F91FF90EF903E +:10280000DF90CF90BF90AF909F908F907F906F9010 +:102810000895CF93C82F6FEF811161E283E290E0BA +:102820000E9457336FEFC11160E184E290E00E9493 +:1028300057336FEFC11161E385E290E0CF910C94C3 +:10284000573380E00E94091460E086E290E00E9425 +:1028500057330E94B4130E94A41381E00C9409140E +:102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 +:102870002EE0629FC00DD11D11243CE8839FC00D46 +:10288000D11D1124CE0187960E944333082F10E0FA +:10289000102F0027CE0188960E9443339801282BE1 +:1028A000C901DF91CF911F910F910895462F853077 +:1028B00038F47A3028F4673018F4672F0C94301409 +:1028C00090E080E00895CF92DF92FF920F931F93E4 +:1028D000CF93DF936C010091660480918A02082BEC +:1028E000C7E0D0E010E0FC2EC8010C2E02C0959588 +:1028F00087950A94E2F780FD0CC02197A0F7F12C90 +:102900008F2DDF91CF911F910F91FF90DF90CF908E +:102910000895B6018C2F0E9456140E94D609019783 +:1029200061F3EECFCF93DF93EC010E946314BE01FD +:102930000E945614DF91CF910C94D609FC0180813E +:1029400091810E949214292F2F7092959F7092501E +:102950009E3078F4E92FF0E0E554FB4C0C941733EB +:10296000803F19F020F4883E20F481E00895843FF0 +:10297000E1F380E00895883EC0F3813FD1F7F5CFC1 +:10298000822F869586958695089583E290E00E9431 +:102990004333813289F484E290E00E9443338031F2 +:1029A00059F485E290E00E94433391E0813309F0CD +:1029B00090E0892F8170089580E0FCCFCF92DF9264 +:1029C000EF92FF926B017C010E94CC08B701A60137 +:1029D00088E090E0FF90EF90DF90CF900C94693307 +:1029E000AF92BF92CF92DF92EF92FF920F931F931D +:1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E +:102A0000142FE22E8091670480FF4FC0E82FE695D7 +:102A1000AE2FB0E0A65FBD4F9C9190934F038E7F89 +:102A2000823009F056C0413A08F040EA9E012F5F1B +:102A30003F4F6F2D802F0E94E2088091670480FF36 +:102A400011C02B8139814A8180917101909172016D +:102A500053E0859FF0011124EB5AFC4F891798F140 +:102A60000E94E40E80916804801308C0809169047C +:102A70008F1104C080916A04811729F0809151035D +:102A800082608093510300936804F092690410936C +:102A90006A04EE2051F0609167047091680480919F +:102AA000690490916A040E94DE140F900F900F90B9 +:102AB000DF91CF911F910F91FF90EF90DF90CF901A +:102AC000BF90AF9008954183308322838F5F339608 +:102AD000C5CF923039F6E2508E2F8170D82EE69510 +:102AE000F0E0E55AF94FA590B490C12CBB24609159 +:102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 +:102B0000A39E900DB29E900D112470E00E94E332BE +:102B1000802FD11016C0860F40917101420F532FA4 +:102B2000511D9A01220F331F240F351F2B5A3C4F82 +:102B3000412F113A08F040EA6F2D0E94E208C39439 +:102B4000D6CF861BE9CFE7E6F4E0438121E1421BC3 +:102B500008F440E021E0628181810C94F014E7E602 +:102B6000F4E0438121E1420F08F44FEF21E062815C +:102B700081810C94F014E7E6F4E0628121E1621BAC +:102B800008F460E021E0438181810C94F014E7E6D1 +:102B9000F4E0628121E1620F08F46FEF21E04381EC +:102BA00081810C94F014E7E6F4E0818121E0438117 +:102BB000628188500C94F014E7E6F4E0818121E012 +:102BC00043816281885F0C94F01480916B048823A8 +:102BD00019F0815080936B046091670470916804D0 +:102BE0008091690490916A040C94DE1480916B04C6 +:102BF000833018F48F5F80936B0460916704709149 +:102C000068048091690490916A040C94DE14909198 +:102C1000670490FF27C0917081111DC0926090934E +:102C2000670480915103816080935103662351F0C2 +:102C300060916704709168048091690490916A04BE +:102C40000E94DE1420E040916A0460916904809142 +:102C500068040C94F0148C3010F09661E0CF880F6B +:102C6000982BDDCF089521E030E0A90102C0440F88 +:102C7000551F8A95E2F7CA0120915203662391F00D +:102C8000822B809352038091510380618093510382 +:102C900080915003811109C08091670460E086959E +:102CA0000C94071680958223ECCF0895CF93DF9381 +:102CB000C82FC17082FBDD27D0F981FB662760F940 +:102CC00085E00E94331661E06C2786E00E9433168F +:102CD0006D2F87E0DF91CF910C9433160F931F93E4 +:102CE000CF93C82F61E08111682F617080E00E944E +:102CF0003316C1FB662760F9C11101C060E081E0B5 +:102D00000E943316C2FB662760F9C11101C060E062 +:102D100082E00E943316C3FB662760F9C11101C02F +:102D200060E083E00E943316C4FB662760F9C1119E +:102D300001C060E084E00E9433164C2F50E070E048 +:102D400060E0DB01CA01F4E0B695A79597958795F9 +:102D5000FA95D1F70097A105B10549F1AC01BD0184 +:102D600084E08A019B01E2E0369527951795079547 +:102D7000EA95D1F7011511052105310519F08E5F8E +:102D8000B901A8017695679557954795452B462B30 +:102D9000472B09F08F5F8230A1F158F48823D1F0DE +:102DA000813041F18C2FCF911F910F91089580E0D8 +:102DB000D8CF833059F18430A9F720E040E56FEF98 +:102DC0008AED0E94F01480910001882359F310923B +:102DD00028030DC020E040E56FEF82E30E94F0146D +:102DE00080910001882399F381E0809328030E9459 +:102DF0003E0DD8CF20E040E56FEF8CEF0E94F0143D +:102E0000D1CF20E040E56FEF80E5F8CF20E040E54E +:102E10006FEF86E7F3CF0E946E16809366040C94E2 +:102E2000B50B80916604982F9670963019F48860DF +:102E30000C940B17877FFCCF21E030E001C0220FFC +:102E40008A95EAF720958091660482230C940B17EB +:102E500021E030E001C0220F8A95EAF780916604F4 +:102E6000822B0C940B17809167048695815009F48E +:102E70008BE061E00C9407168091670486958F5F64 +:102E80008C3008F081E061E00C94071680916704B3 +:102E900080FF07C0869582588F77893010F40C9494 +:102EA0003C1761E082E00C940716E7E6F4E083E06B +:102EB000808311828FEF828380EA83831482AFE460 +:102EC000B3E012968C911297836012968C93608176 +:102ED0007181828193810C94DE1469EE7EEF90E023 +:102EE00080E00E94753360E082E090E00E945733FA +:102EF00060E083E090E00E94573310928A0260E025 +:102F000084E090E00E94573360E082E290E00E940B +:102F1000573360E085E090E00E94573360E086E040 +:102F200090E00E9457336FEF87E090E00E945733A4 +:102F300040E050E0BA0188E090E00E94693360E030 +:102F40008DE090E00E94573340E050E0BA0188E104 +:102F500090E00E94693360E087E190E00E9457337F +:102F600040E050E0BA018CE190E00E94693370E0EB +:102F700060E080E290E00E94753340E050E0BA01EA +:102F800088E190E00E94693380E00E9409140E9469 +:102F9000211440E050E0BA018FE090E00E946933D4 +:102FA00040E050E0BA0183E190E00C9469330F9364 +:102FB0001F93CF93DF9300D000D0CDB7DEB7409101 +:102FC000BB025091BC026091BD027091BE022FB74E +:102FD000F8948091470490914804A0914904B091DD +:102FE0004A042FBF841B950BA60BB70B84369105A3 +:102FF000A105B10588F10E949C0E882379F10E94F9 +:1030000062086E5F7F4F8F4F9F4F69837A838B83F8 +:103010009C8380912C0190912D018B559D4F409167 +:103020002B0150E04530510510F044E050E0BE0166 +:103030006F5F7F4F0E943A3384E090E00E942F320E +:10304000892BD9F40E9462086093BB027093BC0282 +:103050008093BD029093BE0281E010C00E9462087E +:103060000091C8021091C9022091CA023091CB028E +:10307000600F711F821F931FC4CF80E00F900F90CD +:103080000F900F90DF91CF911F910F9108958F9224 +:103090009F92AF92BF92CF92DF92EF92FF920F93E7 +:1030A0001F93CF93DF93EB0188809980AA80BB8028 +:1030B0009FB7F894C0904704D0904804E09049042A +:1030C000F0904A049FBFC818D908EA08FB0894E6A4 +:1030D000C916D104E104F10410F4442311F1E82EDF +:1030E000082E000CFF089AE08902F0011124EF5F1E +:1030F000FE4F838194818B559D4F428150E0041790 +:10310000150708F4A801B9010E943A33C7010E94CB +:103110002F32892BA1F40E946208688379838A8305 +:103120009B8381E0DF91CF911F910F91FF90EF90F2 +:10313000DF90CF90BF90AF909F908F90089580E0E8 +:10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD +:1031500080913E0489832091BA0290E041E02817D3 +:10316000190609F440E001E010E09E012F5F3F4F97 +:1031700063EC72E086E00E9447180F90DF91CF91D8 +:103180001F910F9108950F931F93CF93DF93CDB7A6 +:10319000DEB729970FB6F894DEBF0FBECDBF85E02E +:1031A000E7E6F4E0DE01119601900D928A95E1F7D1 +:1031B00080914F0390915003A0915103B09152031D +:1031C0008E839F83A887B98741E08885811101C0DC +:1031D00040E009E010E09E012F5F3F4F6FEB72E08F +:1031E00085E00E94471881111092510329960FB66D +:1031F000F894DEBF0FBECDBFDF91CF911F910F912D +:1032000008956F927F928F929F92AF92BF92CF92CA +:10321000DF92EF92FF920F931F93CF93DF930F9262 +:10322000CDB7DEB7862E5A016901682E880F770860 +:10323000C3010E942F32892B09F088C08AE0869D45 +:10324000F001879DF00D1124EF5FFE4F458150E0A6 +:103250004115510511F041E050E08AE0869DF001F2 +:10326000879DF00D1124EF5FFE4F668177816B55CE +:103270007D4FCE0101960E943A33F5014081518184 +:10328000628173812FB7F89480914704909148042C +:10329000A0914904B0914A042FBF841B950BA60B43 +:1032A000B70B84369105A105B10540F4B701C801FB +:1032B0000E94B1089981891709F44FC0082C000CAD +:1032C0009908C4010E942F32892B91F0B12C8B2DCB +:1032D0000F90DF91CF911F910F91FF90EF90DF90B2 +:1032E000CF90BF90AF909F908F907F906F900895F8 +:1032F0008AE0889DF001899DF00D1124EF5FFE4F5B +:10330000458150E0E416F50608F4A7018AE0889D9F +:10331000F001899DF00D1124EF5FFE4F66817781EA +:103320006B557D4FC6010E943A33B701C8010E9418 +:10333000B10899818913CACF0E946208F5016083A0 +:10334000718382839383BB24B394C1CFB12CA70133 +:10335000B801C6010E943A33BACFBB24B394F7CF69 +:10336000CF92DF92EF92FF920F931F93CF93DF9351 +:1033700000D000D00F92CDB7DEB76B0185E0E82E0C +:10338000F12C06EA12E09E012F5F3F4F4DE952E01B +:1033900061E080E00E940119882349F095E0FE0178 +:1033A0003196A8E9B2E001900D929A95E1F795E087 +:1033B000E8E9F2E0D60101900D929A95E1F70F90BD +:1033C0000F900F900F900F90DF91CF911F910F9161 +:1033D000FF90EF90DF90CF90089590E080E00E9402 +:1033E0005133893E9E4F11F40C94C51480E008952A +:1033F0001F920F920FB60F9211242F933F934F936A +:103400005F936F937F938F939F93AF93BF93CF936C +:10341000DF93EF93FF93D091E900DF708091EC0090 +:10342000C82FC17080FDC0E81092E9008091F000C3 +:10343000877F8093F00078940E9400101092E9003A +:103440008091F00088608093F000CD2BCF70C09306 +:10345000E900FF91EF91DF91CF91BF91AF919F91E3 +:103460008F917F916F915F914F913F912F910F902D +:103470000FBE0F901F9018951F920F920FB60F92CC +:1034800011242F933F934F935F936F937F938F9369 +:103490009F93AF93BF93EF93FF938091E10082FFDF +:1034A00009C08091E20082FF05C08091E1008B7F1E +:1034B0008093E1008091DA0080FF24C08091D800E1 +:1034C00080FF20C08091DA008E7F8093DA008091A7 +:1034D000D90080FF9BC080E189BD82E189BD09B42C +:1034E00000FEFDCF81E080935C0480914E04811149 +:1034F00009C00E94D5060E94A0078091E200846066 +:103500008093E2008091E10080FF17C08091E2008B +:1035100080FF13C08091E2008E7F8093E200809153 +:10352000E20080618093E2008091D8008062809305 +:10353000D80019BC85E080935C048091E10084FF91 +:1035400029C08091E20084FF25C080E189BD82E12D +:1035500089BD89B5982F917080FFFBCF8091D800ED +:103560008F7D8093D8008091E1008F7E8093E10071 +:103570008091E2008F7E8093E2008091E200816082 +:103580008093E20080915D04882309F445C084E0C3 +:1035900080935C048091E10083FF27C08091E2006A +:1035A00083FF23C08091E100877F8093E10082E068 +:1035B00080935C0410925D048091E1008E7F809383 +:1035C000E1008091E2008E7F8093E2008091E20032 +:1035D00080618093E20042E060E080E00E946E073C +:1035E0008091F00088608093F000FF91EF91BF918F +:1035F000AF919F918F917F916F915F914F913F918B +:103600002F910F900FBE0F901F90189519BC10921C +:103610005C0410924E0476CF8091E30087FD93E026 +:1036200090935C04B7CF78941F921FB61F92112419 +:103630008F939F93AF93BF938091470490914804D9 +:10364000A0914904B0914A040196A11DB11D809337 +:10365000470490934804A0934904B0934A04BF914F +:10366000AF919F918F911F901FBE1F9018959C0145 +:103670004FB7F8948091470490914804A091490471 +:10368000B0914A044FBF821B930B08952FB7F89453 +:103690008091470490914804A0914904B0914A0454 +:1036A0002FBF08959F92AF92BF92CF92DF92EF9279 +:1036B000FF920F931F93CF93DF93CDB7DEB72F9772 +:1036C0000FB6F894DEBF0FBECDBF8E010F5F1F4F48 +:1036D0008AE0D8011D928A95E9F78EE4C82E81E030 +:1036E000D82EF12CE12CAA24A394B12CF6018191BF +:1036F0006F018F3F09F44AC0F894E82FE295EF700C +:10370000F0E021A18F70A50102C0440F551F8A95DA +:10371000E2F7CA01922F982B91A392A18095892359 +:1037200082A30E947A0900C0E7E4F1E030E020E0E3 +:10373000912C41914F3F09F47DC0A42FA295AF7009 +:10374000B0E090968C9190E04F7002C0959587956F +:103750004A95E2F780FD6EC08A2D022E01C0880FC7 +:103760000A94EAF7982A2F5F3F4F2730310509F76F +:10377000F601319780818F3F11F00E947C0950EA59 +:103780005A95F1F7F801EE0DFF1D90828FEFE81AC0 +:10379000F80A95E0E916F10409F0A8CF4AE050E0F4 +:1037A000B8018EEC92E00E942D337C01892B41F010 +:1037B0008AE0F801AEECB2E001900D928A95E1F753 +:1037C0001091D902E114F104B9F181E080938D02E6 +:1037D0000E94461B90938C0280938B0280918B02F7 +:1037E00090918C020E94371B069770F0AEECB2E00D +:1037F000E12FF0E0EB5BFC4F8D91819322E0A33D44 +:10380000B207D1F710928D0281E090E0EF28C1F06D +:103810002F960FB6F894DEBF0FBECDBFDF91CF91CC +:103820001F910F91FF90EF90DF90CF90BF90AF90DE +:103830009F90089580E096CF80918D028111CECF28 +:103840000E949C0EB82EE091D9028E01055F1F4F99 +:10385000882309F495C085E0D8011D928A95E9F77F +:10386000F0E09F012B5B3C4F79018091C702AE01D4 +:10387000405F5F4F6A018A3008F05AC040EB59E15F +:10388000B801C7010E94580E882309F468C042EEAF +:1038900055E2B801C7010E94580E882309F45FC0A1 +:1038A00047ED57E1B801C7010E94580E882309F47B +:1038B00056C043EC58E1B801C7010E94580E882356 +:1038C00009F44DC041EA58E1B801C7010E94580E01 +:1038D000882309F444C01092C702E091D802F0E0B6 +:1038E000AF014B5B5C4FD80110E0FA019191AF0141 +:1038F0008D91981731F09F0121503109F901808392 +:103900001B2DAC15BD0589F780919202882371F0BB +:1039100080919002909191020E94371B893E9340C2 +:1039200028F082EE0E94DC0B10929202812F70CF61 +:1039300080918E0290918F020E94371B843F9140AC +:1039400008F09CCFE091D802F0E0EB5BFC4FD8018F +:1039500011921D92AC15BD05D9F71B2DD5CF8091C5 +:10396000C7028F3F31F08F5F8093C7028A3008F41F +:10397000B4CF0E94461B90938F0280938E02E2CFB9 +:10398000F0E0EB5BFC4FF89485E0A6EAB2E0019032 +:103990000D928A95E1F765E070E086EA92E00E9478 +:1039A000B1088093A5020E947A09F894E091E1029F +:1039B000F0E0E252FD4F80818B878093AC0261E0A2 +:1039C00070E0C8010E94B1088093AB020E947A099E +:1039D000F894C090AD02D090AE02E090AF02F090AB +:1039E000B0028091930290919402A0919502B091BF +:1039F0009602C816D906EA06FB06D1F0C0929302D9 +:103A0000D0929402E0929502F09296020E949C0E4F +:103A100081110EC00E946208C61AD70AE80AF90A84 +:103A2000C092C802D092C902E092CA02F092CB02C0 +:103A30000E947A09F8948091B802882321F184FFCA +:103A400004C09091B9029093520380FF0DC0809101 +:103A5000B10280FF25C09091670491609093670444 +:103A600060E086950E9407168091B80281FF09C028 +:103A700020E04091B4026091B3028091B2020E94B2 +:103A8000F0141092B8020E947A09F8948091BA0258 +:103A9000882349F00E94B00D0E947A0980E0B8CED8 +:103AA0000E94E20FE1CF0E94950DF6CF5F926F92D8 +:103AB0007F928F929F92AF92BF92CF92DF92EF92BE +:103AC000FF920F931F93CF93DF9300D000D00F92FC +:103AD000CDB7DEB76C01FC0183819481892B31F075 +:103AE0008081918189238F3F09F05EC50F900F90EF +:103AF0000F900F900F90DF91CF911F910F91FF903A +:103B0000EF90DF90CF90BF90AF909F908F907F907D +:103B10006F905F9008950E946314182F682F898119 +:103B20009A810E94890B69817A81812F0E945614A3 +:103B30008C01F6018281882309F42BC5C8018251CA +:103B40009F45409708F0EEC48FEF93E00E94433307 +:103B5000025193EEA92E92E0B92E8111C7CF011127 +:103B60003AC01C821B82662463948AE0582E850129 +:103B70000F5F1F4FC5010E94433389831A82882338 +:103B800009F4B4CF9FEF980F9330A0F58A83698230 +:103B900032E0A30EB11CC8010E9443338B838823FB +:103BA00009F4A4CF8E010F5F1F4FF801208122235B +:103BB000F1F2213009F058C0918182819130E1F415 +:103BC0000E5F1F4F6AE070E0893311F460E570E02A +:103BD0000E94CF0E17C0A114F4E0BF0609F486CFEF +:103BE000C5010E944333811101C001502FEFA21A79 +:103BF000B20AB5CF5801D6CF923039F40E5F1F4FBD +:103C00000E94150C0F5F1F4FD0CF933029F40E5F29 +:103C10001F4F0E94DC0BF6CF943019F00F5F1F4F3F +:103C2000F1CF0E5F1F4F30E020E0B8016F5F7F4F94 +:103C3000F80141818053990B8A30910550F0215051 +:103C4000310900F38FE99FE00197F1F700C0000010 +:103C5000F6CF529EF001539EF00D11249C012E0FC1 +:103C60003F1F842F8B01E1CFE22FF0E0E75FFD4F94 +:103C70007490822F86958695869590E0FC01E7509A +:103C8000FE4FE4902770F12C022E02C0F594E794C9 +:103C90000A94E2F7E1E0EE22FF24FC01E751FE4F37 +:103CA000C490D12C022E02C0D594C7940A94E2F796 +:103CB000F1E0CF22DD24FC01E752FE4F8490912CED +:103CC00002C0959487942A95E2F721E082229924F4 +:103CD000E114F10419F081EE0E94150CC114D10415 +:103CE00019F086EE0E94150C39E36AE070E0731259 +:103CF00002C060E570E0872D0E94CF0ECD2819F03C +:103D000086EE0E94DC0BEF2819F081EE0E94DC0B9E +:103D1000892809F477CF6AE070E08CE259CF81E01E +:103D20000E94281703C081E00E941C170F900F907B +:103D30000F900F900F90DF91CF911F910F91FF90F7 +:103D4000EF90DF90CF90BF90AF909F908F907F903B +:103D50006F905F900C94111782E0E2CF043F110541 +:103D600009F455C108F057C1053E110509F4DDC03D +:103D7000F601928191113CC280914F0482720A3CFB +:103D8000FCE51F0709F414C208F06AC1053C3CE5D4 +:103D9000130709F4F9C108F04EC1033C5CE51507AF +:103DA00009F4D3C108F0EBC1023C1C4509F47DC104 +:103DB000F60100811181992309F434C2C8010E94DF +:103DC0006314F82E682FC8010E94890BB8018F2D4B +:103DD0000E9456140E94D609182FB82EF60122818F +:103DE0004581342F32953F70892F82958F70E82E50 +:103DF000F12C8C3008F04EC2F701E753FB4C0C94C9 +:103E000017330338FFE51F0709F481C018F501389F +:103E10003FE5130709F44AC008F065C000385FE5C4 +:103E2000150709F0A5CF882309F459C080919202A3 +:103E3000811106C081E08093920282EE0E94150CEF +:103E40000E94461B90939102809390028BE20E9405 +:103E5000150C8ECF05389FE5190709F4BEC008F48C +:103E600076C00638FFE51F0709F082CF882309F4E2 +:103E7000CEC06091590170915A0190E080E00E949B +:103E8000903320E030E040E05CE30E94F13320E03A +:103E900030E040E85FE30E948B338111B5C086EECD +:103EA00090E090935A0180935901A1C08823A1F01A +:103EB00080919202811106C081E08093920282EE8D +:103EC0000E94150C0E94461B9093910280939002D1 +:103ED00081EE0E94150CBACF81EE0E94DC0B8BE2C2 +:103EE0000E94DC0B45CF882309F442CF81EE0E946B +:103EF000150C83EE0E94150C8FE40E94150C8FE4C4 +:103F00000E94DC0B83EE0E94DC0B81EEE9CF88235C +:103F100009F42ECF81EE0E94150C83EE0E94150C41 +:103F200080E50E94150C80E5EBCF8093340210935E +:103F3000330200933202882321F081E08093E4026F +:103F400017CF1092E40214CF80933102F0CF882370 +:103F500079F180913102882349F0809132020E94E8 +:103F6000DC0B80EE0E94150C8AE20CC080913402BA +:103F70008823D1F3809132020E94DC0B80EE0E94F4 +:103F8000150C8CE40F900F900F900F900F90DF9115 +:103F9000CF911F910F91FF90EF90DF90CF90BF9046 +:103FA000AF909F908F907F906F905F900C94150CC6 +:103FB0008AE20E94DC0B8CE40E94DC0B80EE0E9403 +:103FC000DC0B80913102811105C08091340288237D +:103FD00009F48CCD80913202D5CF8823C1F0809135 +:103FE0002803882339F010922803109200010E94C0 +:103FF0003E0DBECE809100018111F7CF81E080930C +:10400000280380930001F3CF80E890E04ACF61E07D +:104010000E949A0CADCE62E0FBCF64E0F9CF88231A +:1040200021F081E08093E302A3CE1092E302A0CEC0 +:104030001092E6029DCE073C2CE5120709F4AEC0B3 +:1040400008F4A7C0083C4CE5140709F4ACC0093CCF +:104050001C4509F0ADCE43EA55E16FEA75E179C040 +:10406000043DECE51E07A8F40E3CFCE51F0708F034 +:104070003DCD0C3C2CE5120709F49FC045EE55E1FF +:1040800066EF75E10D3C1C4508F463C061E081E01A +:1040900046C0053D4CE5140709F428CD08F492C04C +:1040A0000D351D4509F422CD83CE8091670480FF34 +:1040B00031C08E7F809367046091670470916804BB +:1040C0008091690490916A040E94DE1480915103EA +:1040D0008160809351039FEFE0E7F2E09150E04070 +:1040E000F040E1F700C000000F900F900F900F908C +:1040F0000F90DF91CF911F910F91FF90EF90DF9084 +:10410000CF90BF90AF909F908F907F906F905F9077 +:104110000C94E40E81608093670461E086950F90B3 +:104120000F900F900F900F90DF91CF911F910F91F3 +:10413000FF90EF90DF90CF90BF90AF909F908F90C7 +:104140007F906F905F900C94071643E357E16CE308 +:1041500077E10F900F900F900F900F90DF91CF911C +:104160001F910F91FF90EF90DF90CF90BF90AF9095 +:104170009F908F907F906F905F900C94C7084CE356 +:1041800057E163E377E1E5CF43ED55E16CED75E190 +:10419000E0CF4CED55E163ED75E1DBCF4BEB55E145 +:1041A00067EC75E1D6CF47EC55E16BEB75E1D1CF0C +:1041B0004FEA55E163EA75E1CCCF46EF55E165EE94 +:1041C00075E1C7CF0F900F900F900F900F90DF9178 +:1041D000CF911F910F91FF90EF90DF90CF90BF9004 +:1041E000AF909F908F907F906F905F900C94461748 +:1041F0000E3D1C4509F0DCCD0F900F900F900F90F5 +:104200000F90DF91CF911F910F91FF90EF90DF9072 +:10421000CF90BF90AF909F908F907F906F905F9066 +:104220000C946D17C8010E94610BF82ECFCD092F99 +:104230000F70907F11F00295007F812F2223C9F02B +:10424000002369F090E2910F983010F011110BC02B +:1042500080914F04082B00934F040E94400B812F44 +:104260000E94150C17C080918902082B00938902C7 +:10427000F4CF0E94DC0B002369F00095105E18302B +:1042800010F0B11027C080914F04082300934F0411 +:104290000E94400B98E0E91AF108E4E0EE16F10400 +:1042A00008F024CC0E94BF0E0F900F900F900F903B +:1042B0000F90DF91CF911F910F91FF90EF90DF90C2 +:1042C000CF90BF90AF909F908F907F906F905F90B6 +:1042D0000C94561680918902082300938902D8CF46 +:1042E000892F8F70907F903211F08295807FF1E05E +:1042F000BF120CC0222329F0333060F60E94D20B8B +:10430000C9CF323038F60E94C70BC4CF222341F008 +:104310003323A1F340FFA3CF4F70F6014583EECFC7 +:10432000332389F3193309F0F5C0FFEF27EE33E0AB +:10433000F15020403040E1F700C00000812F0E9482 +:10434000DC0BA8CF892F86958695837061F081302C +:1043500009F0A0CF812F9370211102C090E080E07E +:104360000E946E0897CF812F9370211102C090E0B8 +:1043700080E00E9484088ECF892F8370A1F52111DF +:1043800089CF812F829586958770880F880F412F5E +:104390004F70082E01C0440F0A94EAF7212F2071B4 +:1043A00014FF07C02FE030E001C0220F8A95EAF722 +:1043B0002095969596959370923081F0822F842B5C +:1043C000933030F480918A02913029F0242B82239B +:1043D0000E94C30B5FCF842B822BFACF242B8091BA +:1043E0008A028227F5CF8695222311F0892F8170CA +:1043F000882309F44FCF812F829586958770880F87 +:10440000880F412F4F70082E01C0440F0A94EAF71D +:10441000212F207114FF07C02FE030E001C0220FD0 +:104420008A95EAF72095969596959370923081F04B +:10443000822F842B933030F480916604913029F0E0 +:10444000242B82230E940B1725CF842B822BFACF9B +:10445000242B809166048227F5CF092F0F70222329 +:1044600029F0802F0E942817812F48CF812F0E948A +:10447000C70B802F0E941C170DCF812FE1EF1E1755 +:1044800089F1E11750F0F0EF1F17B9F02223B1F1D5 +:104490003111E5CE892F8F7129C042EF141749F1F0 +:1044A00053EF1513F3CF80E0222361F29F7181E077 +:1044B00001C0880F9A95EAF7C5CF222379F03230F0 +:1044C00008F0E8CE292F2F7181E090E001C0880F1D +:1044D0002A95EAF7909166048927B4CF333008F023 +:1044E000D9CEF0CF892F8F71222321F20E94281775 +:1044F000D1CE892F8F712223C9F3BCCF332379F01A +:10450000893341F48FEF97EEE3E081509040E04033 +:10451000E1F712CF8FE39CE90197F1F70DCF892FD7 +:104520008F71A8CF0031FFE51F0709F4F8CB0131E7 +:104530002FE5120709F410CC0E9462086093EB0289 +:104540007093EC028093ED029093EE02F60182816B +:10455000063F110509F461CD08F053CC043E110566 +:1045600009F45DCD08F0FACB003E110509F457CDF2 +:10457000013E110509F4E8CC0C32110509F0F8CB25 +:10458000882309F455CD81E08093E60210926701FB +:10459000EFCB00313FE5130709F4C5CB01314FE5FF +:1045A0001407A1F682E0C0CB85E0DE0111960190F0 +:1045B0000D928A95E1F7F601228189819A81211174 +:1045C000AACA0E94610B182FAECA1F93CF93DF9324 +:1045D00080915502807FA9F480915202882389F04E +:1045E00080918702D09156026091500270915102E1 +:1045F000A0915302B0915402C62FC72316E0D813DE +:1046000004C0DF91CF911F91089590E0109711F0B1 +:10461000CF3F19F401968770F2CF189F9001199F30 +:10462000300D1124F901E95AFD4F41814713F2CFB2 +:1046300040814613EFCF42814111ECCF4381548139 +:104640004A1B5B0B403A510528F7809155028F7049 +:10465000806180935502F901E45AFD4F80818F708B +:104660008061808380E592E00E94561DDF91CF91AA +:104670001F910C94570BAF92BF92CF92DF92EF92A3 +:10468000FF920F931F93CF93DF93CDB7DEB7619760 +:104690000FB6F894DEBF0FBECDBF8C0185E0F801E8 +:1046A000DE011D9601900D928A95E1F7F801E280F6 +:1046B00080E5A82E82E0B82E6091530270915402DA +:1046C0006115710509F432C1909150024091510277 +:1046D000892F84238F3F09F429C120813181C38030 +:1046E000D480F0905202F601E61BF70BFF2009F48C +:1046F000E8C080915502582F507FE03AF10508F04C +:10470000ABC0511177C0FE2C431321C092131FC0C0 +:10471000E1101DC08F70806180935502C5010E9419 +:10472000561D80915502F80185838F2D61960FB635 +:10473000F894DEBF0FBECDBFDF91CF911F910F91D7 +:10474000FF90EF90DF90CF90BF90AF900895CD286D +:1047500029F0822F83238F3F09F003C180E0F82FD7 +:10476000F170DF2E80FF3CC080918702409156029D +:1047700056E0841315C02D873E878D859E850E9447 +:104780009214292F22952F702230F0F0243018F542 +:104790009F70F1F0F8019581907FD1F4D12C1EC06B +:1047A00090E0589FF001599FF00D1124E95AFD4FF8 +:1047B0006181361306C06081261303C06281E61250 +:1047C0000FC001968770D5CF9F7011F0882331F309 +:1047D000805E883018F3C8010E94561DFD2CA5CFBD +:1047E000EE2009F4A2CF809155028160809355029A +:1047F000F12C9BCF431306C0921304C0F801EE20A6 +:1048000009F479C0C8010E949E14882309F1EE20A2 +:10481000F9F080915502803270F020915002309171 +:10482000510238872F831986DB86CA868C87CE0192 +:1048300007960E94561D86E0F801A0E5B2E00190BF +:104840000D928A95E1F70E94E522FF24F3946DCF43 +:10485000C8010E94561DF9CF51110AC080E592E0AF +:104860000E94561D86E0F50111928A95E9F7C0CFA6 +:1048700043130FC092130DC0E1100BC0F8018583E4 +:10488000C8010E94561D86E0F50111928A95E9F74C +:104890004CCFC8010E949E148823D1F2EE20C1F2B1 +:1048A00080915502803238F22091500230915102AD +:1048B0003A8329831B82DD82CC828E83CE010196CE +:1048C000B8CFE03AF105F8F6FE2CEE2009F24313DA +:1048D0001FC092131DC08091550280FD10C0982FFB +:1048E000907F69F0F8018583903F31F0982F907F99 +:1048F000905F8F70892B8583C8010E94561D86E0CA +:10490000F801A0E5B2E001900D928A95E1F70DCF94 +:10491000C8010E949E1481118ECF80915502816042 +:1049200080935502C8010E94561DFFCEEE2009F467 +:104930008FCFC8010E949E14F82E882309F488CFD7 +:1049400086E0F801A0E5B2E001900D928A95E1F7CA +:1049500080915002909151020E9492140E94E5228F +:10496000E4CE81E08E25FBCE1F93CF93DF93CDB7AE +:10497000DEB767970FB6F894DEBF0FBECDBF4B8B87 +:104980005C8B6D8B7E8B8F8B6111109289021A8AE2 +:10499000198A85E0FE017396DE011D9601900D9245 +:1049A0008A95E1F786E0FE013D96DE0117960190BB +:1049B0000D928A95E1F7CE0107960E943B2388234A +:1049C00089F016E0809187029091560289134BC0BE +:1049D00067960FB6F894DEBF0FBECDBFDF91CF91C3 +:1049E0001F91089586E0FE013796DE011196019031 +:1049F0000D928A95E1F78A859B85892B11F38F812A +:104A0000988589238F3FE9F22091560230E0C90151 +:104A1000019687709927409187024817190681F4FB +:104A200010924F040E94F70F1092560210928702C4 +:104A300086E0E0E5F2E0DF011D928A95E9F7C1CF5B +:104A400096E0929FD001939FB00D1124A95ABD4FBB +:104A5000FE01319601900D929A95E1F780935602EE +:104A60000E94570BAECF819FC0011124895A9D4FE0 +:104A70000E943B23882309F4ABCF8091870290E00A +:104A8000019687709927809387029CCF0F931F937D +:104A9000CF93DF93CDB7DEB7A8970FB6F894DEBFFC +:104AA0000FBECDBF81114DC006E0662359F10CA3A6 +:104AB00011E01DA31EA30E94461B8160782F98A7BA +:104AC0008FA34CA15DA16EA188A50E94B4240F8F75 +:104AD00018A319A20E94461B8160782F9BA38AA36A +:104AE0004F8D58A169A18BA10E94B42481E0A896A2 +:104AF0000FB6F894DEBF0FBECDBFDF91CF911F91EF +:104B00000F9108950A8F13E01B8F81E08C8F0E9414 +:104B1000461B8160782F9E8F8D8F4A8D5B8D6C8DAB +:104B20008E8D0E94B4240D8B1E8B1F8A0E94461B03 +:104B30008160782F998F888F4D895E896F89898DE3 +:104B4000D3CF813099F66623F1F016E0188B198BDC +:104B50008A8B0E94461B8160782F9C8B8B8B4889A7 +:104B600059896A898C890E94B4241B871C871D86F9 +:104B70000E94461B8160782F9F878E874B855C85BE +:104B80006D858F85B1CF06E00E8318E01F8388877F +:104B90000E94461B8160782F9A8789874E815F81AA +:104BA00068858A850E94B42409831A831B820E9427 +:104BB000461B8160782F9D838C8349815A816B814C +:104BC0008D8192CFCF92DF92EF92FF920F931F933E +:104BD000CF93DF930F92CDB7DEB7EE24E394F12CA1 +:104BE0000CEA12E09E012F5F3F4F41EA52E063E082 +:104BF00082E00E940119082F882321F1C090DB0276 +:104C00008C2D90E09C0122523D4F79011981F901D0 +:104C10008081181BD12E80E00AC0DA94F7018081D0 +:104C20008F5F808360E08C2D0E944625802F1D14AD +:104C3000A4F3912F17FD90E0191B11110EC08111E3 +:104C40000E943E0B802F0F90DF91CF911F910F910B +:104C5000FF90EF90DF90CF9008951F5FF701808164 +:104C60008150808361E08C2D0E944625802FE5CF06 +:104C70001F921FB61F9211248F939F93AF93BF93E0 +:104C800080914604811113C080914704909148049B +:104C9000A0914904B0914A044196A11DB11D809391 +:104CA000470490934804A0934904B0934A04BF91E9 +:104CB000AF919F918F911F901FBE1F901895CDB7F8 +:104CC000DEB7E3970FB6F894DEBF0FBECDBF84B753 +:104CD000877F84BF0FB6F894A895809160008861A3 +:104CE00080936000109260000FBE80E890E00FB6E5 +:104CF000F89480936100909361000FBE85B780683F +:104D000085BF85B7806885BF88E799E090932702C3 +:104D1000809326020E94D5060E94A0078091E2009F +:104D200084608093E200789480915C048823A1F0F1 +:104D30001091E9001F709091EC00892F817090FD17 +:104D400080E8182B1092E9008091E80083FD0E9412 +:104D500000101F701093E90082E084BD93E095BDC0 +:104D60009AEF97BD80936E001092C8021092C9020C +:104D70001092CA021092CB020E94C514811102C087 +:104D80000E9421140E949C0E80935801809158012A +:104D9000882309F4C6C010926F0185E280937001E8 +:104DA0000E949C0E81110E94223180915801811134 +:104DB0002FC0FE01359686E0DF011D928A95E9F746 +:104DC00086E6898387E98A8386EC8B8384E38C83F8 +:104DD00085E38D833497AEE4B1E0CE010B9621914B +:104DE0002D938E179F07D9F787E0E5E7F1E0DE0105 +:104DF000919601900D928A95E1F7FE01B196A7E494 +:104E0000B1E0CE01889621912D938E179F07D9F797 +:104E10008091580195E0811190E09093D90285E04E +:104E2000891B8093D8020EE411E0A3E5EA2EA1E0ED +:104E3000FA2EF80181918F018F3F11F00E947C09B9 +:104E4000E016F106B1F707E411E0FEE4EF2EF1E021 +:104E5000FF2ED8018D918D018F3F11F00E947C09AA +:104E6000E016F106B1F7EEECF2E088ED92E0A5E491 +:104E7000B3E011921D928E179F07D9F70E94ED198A +:104E8000811102C00E946D1782E090E00E944333BE +:104E900080933A0384E090E00E944333182F82E22B +:104EA00090E00E944333982F812F9093CD028093FE +:104EB000CC020E94521BEFE7FBEB3197F1F700C0E9 +:104EC00000000E94521B8091450380FF2EC06FEFAF +:104ED0007FEF90E080E00E94753381E08093E000F6 +:104EE00080E28093D8001092C9008FE19EE4019780 +:104EF000F1F700C0000087E090EBDC0180937006C2 +:104F000090937106A0937206B093730688E19CE0BB +:104F10000FB6F894A895809360000FBE9093600040 +:104F2000FFCF85E280936F0139CF83E090E00E944C +:104F300043330E94C30B809166040E946E160E9448 +:104F40009C0E811102C00E94253183E080931003E2 +:104F500080E2809333040E94232F6DE070E08CE99F +:104F600092E00E94650D892BE9F58091100363E0C2 +:104F700070E081FD8AC289E992E00E94650D892B6B +:104F800089F56DE070E089E892E00E94650D892B5B +:104F900049F50E9462086058774C8E4F9F4F60938E +:104FA0003A0470933B0480933C0490933D04EEE6F6 +:104FB000F4E080E092E0DF019C011D92215030403E +:104FC000E1F7F0936F06E0936E068FEF9FEF9093FB +:104FD0006D0480936C0481E080933F0480933E04D1 +:104FE000109211038091DA02811136C00E94ED19EE +:104FF000811104C00E946D170E94551788E090E04F +:105000000E944B3360936704709368048093690433 +:1050100090936A04809151038360809351036E7F63 +:1050200071F40E94551788E090E00E944B33609322 +:105030006704709368048093690490936A040E94E3 +:10504000CC088091670480FF04C060E086950E94D0 +:10505000071681E08093DA0280915801811106C021 +:1050600084EF8093660185EF80936501209166014E +:10507000A22FA295AF70B0E091963C9191972F70BE +:1050800081E090E0BC01022E01C0660F0A94EAF7AD +:10509000462F4095432391964C93919792963C913D +:1050A0009297362B92963C93929740916501E42F0C +:1050B000E295EF70F0E031A14F70042E01C0880F2F +:1050C0000A94EAF7982F9095932391A392A1892BA4 +:1050D00082A390968C9190E002C0959587952A9531 +:1050E000E2F7817020A130E002C0359527954A95FE +:1050F000E2F792E020FF90E0892B8093E20280911A +:10510000580111E081278093E102312F381B309341 +:10511000DB020E94232F40E060E080E00E941E0D31 +:1051200089EA92E0909354038093530360E08AE00D +:105130000E94071681E00E940B1786EE90E0909384 +:105140005A0180935901109328030E943E0D8BE56C +:1051500091E09093430480934204E0E46E2E8091AA +:105160005C04FF24F39400E112E1853009F4DFC10F +:105170000E94521BE82E81110E946208EBE3F3E0CB +:10518000A5E4B3E010E000E0B02EDD9081918D1534 +:1051900009F4F1C18D25C12CFF24F3949F2D982390 +:1051A00009F4E4C10E949C0E882399F0C8A6B9A610 +:1051B000DF2081E009F480E08AA70E94461B81601D +:1051C000782F9CA78BA748A559A56AA58CA50E94F6 +:1051D000B424F801E55CFC4F8081F826F0828091D0 +:1051E000E202E82FEE0FEE0F90916601A92FA29533 +:1051F000AF70B0E090962C9130E09F7002C0359572 +:1052000027959A95E2F72170332790916501A92F90 +:10521000A295AF70B0E090964C9150E09F7002C0A4 +:10522000559547959A95E2F7CA018170992740FFF5 +:1052300002C082E090E0822B8E2B8093E2021091DC +:10524000E1028F70E82FF0E0EE50FE4F80819091E8 +:10525000E002890F8093E002F12C84306CF0E12FA2 +:10526000F0E0E252FD4F80818F5F808360E0812F0C +:105270000E944625FF24F3948091E0028D3F6CF458 +:10528000E12FF0E0E252FD4F80818150808361E0A8 +:10529000812F0E944625FF24F3948091E002082E7E +:1052A000000C990B64E070E00E9403338093E002ED +:1052B000F1100E943E0B80913F04882351F18091B0 +:1052C0001203909113030E94371BC29708F06AC122 +:1052D00020916C0430916D042115310509F08BC2C9 +:1052E00080913E048823A9F00E94620800913A044C +:1052F00010913B0420913C0430913D04601B710BE4 +:10530000820B930B6F3F7F4F8F4F9F4710F40E948C +:10531000950DE11001C0F1100E94B00D809138038D +:105320008A3008F0A0C380913603909137030E9421 +:10533000371B089708F497C304E610E025E030E037 +:1053400041E353E064E084E10E946E30892B09F070 +:105350005BC31092380386E0EAE1F3E0DE01919648 +:1053600001900D928A95E1F786E0FE01B196DE018B +:10537000119601900D928A95E1F786E0FE01319633 +:10538000ABE2B3E001900D928A95E1F7809135038D +:1053900087FD37C38091290390912A03009709F074 +:1053A0002AC360913103809132030091330310913D +:1053B000340390912803992309F4F0C241E00E943C +:1053C000F80C2091260330912703281B390B3093CA +:1053D00027032093260341E0602F812F0E94F80CC1 +:1053E0002091240330912503281B390B309325038A +:1053F0002093240364E273E080E393E00E94D90CDD +:1054000066E273E08FE293E00E94D90C10922D03C4 +:1054100010922E0386E0EBE2F3E0DE01119601909C +:105420000D928A95E1F786E0FE013196AAE1B3E09C +:1054300001900D928A95E1F730911C0320911D0394 +:1054400090911E0380911F037091160360911703C2 +:105450004091180350911903F0911B03E09115033B +:10546000FE13D8C2332311F07313D4C2222311F0D8 +:105470002613D0C2882311F08513CCC2992319F0CA +:1054800081E04913C8C280E0C6C286E992E075CDCA +:1054900080915C04843009F43AC00E94950D40E08C +:1054A00060E080E00E941E0D80E00E945616809110 +:1054B000DD02811109C0F092DD02809167048170E4 +:1054C0008093DC020E94E20F1092460488E190E093 +:1054D0000FB6F894A895809360000FBE60926000AC +:1054E00083B7817F846083BF83B7816083BF7894F3 +:1054F000889583B78E7F83BF0FB6F894A895809167 +:105500006000886180936000109260000FBE8091FF +:105510005B04882361F00E94521BE5E4F3E0819173 +:10552000811170C4AFE4B3E0AE17BF07C1F780913B +:105530005C04853009F4ACCF10924F040E94F70F41 +:105540000E94BF0E0E9456161092DD028091DC026E +:10555000882349F08091670481608093670460E04C +:1055600086950E9407160E943E0D02CEC394FF0C42 +:1055700027E0C21213CE0F5F1F4F0A30110509F04A +:1055800003CE8FEF8DA78EA71FA60E94461B8160BA +:10559000782F99AB88AB4DA55EA56FA589A90E9410 +:1055A000B4241DCE0E94461B9093130380931203D4 +:1055B00060E080E00E949A080E94BF0E8093EF0294 +:1055C0000E949C0E882331F14091EB025091EC0235 +:1055D0006091ED027091EE022FB7F894809147042C +:1055E00090914804A0914904B0914A042FBF841BB4 +:1055F000950BA60BB70B81339547A105B10540F07C +:105600000E94950D80913F04882309F469CE60CEF5 +:105610000E94B00D0E949C0E882309F4D3C061E063 +:1056200080E00E949A0860E08CE791E00E94881375 +:1056300062E080E00E949A08809166040E94890CD2 +:10564000823009F499C008F08EC0882309F494C010 +:10565000813009F497C065E080E00E949A0860E01C +:105660008AE991E00E94881366E080E00E949A082F +:105670006091EF02669561708FE991E00E94881356 +:1056800067E080E00E949A086091EF026095617087 +:1056900084EA91E00E94881368E080E00E949A0802 +:1056A0006091EF0262FB662760F988EA91E00E9450 +:1056B00088134091E7025091E8026091E9027091ED +:1056C000EA022FB7F8948091470490914804A09182 +:1056D0004904B0914A042FBF841B950BA60BB70B4E +:1056E0008D329140A105B10508F48CCF0E9462086B +:1056F0006093E7027093E8028093E9029093EA02D4 +:105700008091E602811104C080916701811142C03D +:105710006DE080E00E949A0860E08DEA91E00E94CE +:1057200088136AE080E00E949A0881E08093670114 +:105730008091E50290E00196817099278093E502BF +:1057400021E030E0281B390B40E6429FC001439F17 +:10575000900D11242091E402222351F1855C9B4F8E +:105760000E9492064FCF833089F0843009F073CFC6 +:1057700060E08EE891E003C060E082E891E00E9482 +:10578000881369CF60E088E891E0F9CF60E084E9B0 +:1057900091E0F5CF6AE080E00E949A0860E08DEA2F +:1057A00091E00E9488136BE080E00E949A08C0CFCD +:1057B0002091E302222319F085589C4FD1CF8554C4 +:1057C0009D4FCECF64E080E00E949A0860E083EBBA +:1057D00091E00E94881365E080E00E949A0860E0F2 +:1057E00089EB91E00E94881369E080E00E949A08AA +:1057F0008BEF94E0B5CF8091110361E070E08111EF +:105800006FCD082F10E02B01082E02C0440C551C50 +:105810000A94E2F7A90144215521452B09F448C017 +:105820009091100390FD46C08295880F80768093FA +:105830006A019801369527953695279520936D0135 +:10584000815E80936B0110926E0124E630E047E0A8 +:1058500050E068E671E088E70E941A30892B09F071 +:105860003FCDA80165E0440F551F6A95E1F780918F +:10587000100380FD2DC042595B4F04E610E020E28A +:1058800030E060E488E70E944130892B09F028CDA0 +:105890000E94B00DC2018095909540906C0450908C +:1058A0006D044822592250926D0440926C0418CD28 +:1058B0008F5FA7CF880F880F880F80936A0110929F +:1058C0006D01895F80936B0183E080936E01BDCF92 +:1058D000E0EFF2E080E2DF011D928A95E9F7E6E071 +:1058E000F2E0FBABEAAB02E012E037E0A32E992432 +:1058F0009394AAA9BBA92D91BBABAAABF8012190A7 +:105900008F01240E352E311CC10182599B4F1C0181 +:10591000E22FF0E0E051FD4F30E020E07A2C721AE7 +:10592000B92C022E01C0BB0C0A94EAF7610190E089 +:10593000D6018D916D018B21672D691B6770862EB5 +:10594000062E000C770BB82F01C0BB0F8A94EAF724 +:105950008B2E7195619571096770772701C08695C7 +:105960006A95EAF7882A8081882A80829F5F98302A +:10597000F9F62F5F3F4F31962830310579F6EAE08E +:10598000F2E02AA93BA9E217F30709F0B2CF04E637 +:1059900010E020E230E040EF52E073CF45E00E949B +:1059A000F80C2091220330912303820F931F9093D0 +:1059B00023038093220345E0602F812F0E94F80C7F +:1059C0002091200330912103281B390B30932103B0 +:1059D0002093200360E273E08DE293E00E94D90CF3 +:1059E00062E273E08EE293E00E94D90C10923003E1 +:1059F00010922F030FCD019790932A0380932903D0 +:105A000009CD84E190E0F8CF809138038F5F8093D7 +:105A1000380300CD81E080FF0FC0E0914204F09197 +:105A20004304309749F082E080931A030480F581A3 +:105A3000E02D8AE193E0099510921C0310921D035A +:105A400010921E0310921F0386E0EAE1F3E0A4E146 +:105A5000B3E001900D928A95E1F70E94461B909366 +:105A60003703809336030E94BF0E90913903891744 +:105A700031F00E94BF0E809339030E945616809128 +:105A80005C04843009F06BCB83E08093E900809163 +:105A9000E80082FF64CB8091E80090E085FF05C0BC +:105AA0000E94F406882399F091E08091E8008B77BA +:105AB0008093E800992309F452CBE981E150E33166 +:105AC00008F076C0F0E0EB52FB4C0C94173300E288 +:105AD00010E0CE0101967C018091E80085FD0AC0AE +:105AE0008091E8008B778093E8000E94F406882379 +:105AF00099F3DACF8091F100D7018D937D010150A8 +:105B0000110951F7D1CF1A8289E08B8311C08A81A4 +:105B1000823009F48FC1833091F1813009F048C09F +:105B20000E9462080E941D336B837C838D839E8359 +:105B300080915C04843009F012CB1091E9001F7051 +:105B40009091EC00892F817090FD80E8182B82E005 +:105B50008093E9008091E80080FF0DC050E040E0B4 +:105B600060E270E0CE0101960E9425078091E80076 +:105B70008E778093E8001F701093E900F0CADE0171 +:105B80001396E5E4F3E081918D9323E0EF34F2077F +:105B9000D1F7CECF8A81823059F46B817C818D819F +:105BA0009E810E941D3386E290E00E945733C0CF51 +:105BB0008FEF8983BDCF4C816B818A810E94301425 +:105BC0009827892798279E838D83B2CFED80FE800A +:105BD000FE24EF24FE248A810B813EE0039F800196 +:105BE00011249CE8899F000D111D11248C8190E0E7 +:105BF000880F991F080F191F6F2DC80187960E94E3 +:105C000057336E2DC8018896D0CF0E94B41390CF21 +:105C10008A818138C1F060F4803809F089CF20E0B2 +:105C20004B8160916904809168040E94F01480CFD8 +:105C30008238E9F0833809F07BCF20E040916A0494 +:105C40006C818B81F2CF60E08B810E9407168B8183 +:105C5000811103C00E94E20F6BCF809167048160C5 +:105C60008093670460E086950E94071661CF8B8160 +:105C700080936B045DCF8A81813899F030F480384D +:105C800009F056CF80916A0440CF823891F0833872 +:105C900009F04ECF809168048B83809169048C83D6 +:105CA00047CF8091670480FF02C086952ECF80E0A9 +:105CB0002CCF80916B0429CF6091670470916804A8 +:105CC0008091690490916A040E94DE1431CF80E1D2 +:105CD0008A832ECF81E08A838DE117CFCA80DB8053 +:105CE000DC24CD24DC248E010F5F1F4FEC80E00EFE +:105CF000F12EF11CC6018D519D4F0E151F0509F4A3 +:105D000017CFADE1CA16A1E0DA0650F40E94433382 +:105D1000F8018483BFEFCB1ADB0A0F5F1F4FEACF76 +:105D2000D80114961C92F6CF0A811B8110270127F7 +:105D30001027FE0131966F01EC80E00EF12EF11C70 +:105D4000C8018D519D4FE016F10609F4F1CE0D31D9 +:105D5000F1E01F0728F4D60114966C910E94573386 +:105D6000BFEFCB1ADB0A0F5F1F4FEACF0E94A413CD +:105D7000DFCE85E0ADCFCA80DB80DC24CD24DC24FF +:105D80008E010F5F1F4FEC80E00EF12EF11CC6015B +:105D90008796E016F10609F4CBCEECEBCE16E2E0E6 +:105DA000DE0658F40E944333D80114968C93FFEF1B +:105DB000CF1ADF0A0F5F1F4FEACFF8011482F7CF27 +:105DC0000A811B811027012710279E012F5F3F4F5B +:105DD0006901EC80E00EF12EF11CC8018796E016F7 +:105DE000F10609F4A5CE0C3B32E0130728F4D601E6 +:105DF00014966C910E945733BFEFCB1ADB0A0F5FEA +:105E00001F4FEBCF09BD19BD09B400FEFDCF809136 +:105E1000D8008F7D8093D8008091E00082608093CD +:105E2000E0008091E00081FDFCCF10924F040E94C1 +:105E3000F70F7DCB86E290E00E9443331B821C82E9 +:105E40001D828E8375CE1092B9008CE08093B800CD +:105E500008959F92AF92BF92CF92DF92EF92FF92FE +:105E60000F931F93CF93DF93B82EEB010E94461B35 +:105E70006C01EE24E394F12CC431D10560F025E0EF +:105E8000E22EF12CCF3FDC0731F0CE0164E170E06F +:105E90000E94E3327B0184EAA82E94E8992E1092A6 +:105EA000BC00A092BC000E94461B8C018091BC00EB +:105EB00087FF0DC08091B900887F883039F18091CB +:105EC000B900887F803111F10FEF1FEF09C00E94E8 +:105ED000461B801B910B8E159F0540F30EEF1FEFA5 +:105EE000CF3FDC07E1F2C6010E94371B8C179D07EC +:105EF000B0F2C801DF91CF911F910F91FF90EF9009 +:105F0000DF90CF90BF90AF909F900895B092BB006C +:105F10009092BC000E94461B8C018091BC0087FFC0 +:105F20000AC08091B900887F883111F0803461F611 +:105F300010E000E0DECF0E94461B801B910B8E1507 +:105F40009F0558F3CBCF0F931F93CF93DF93EB01B4 +:105F50008093BB0084E88093BC000E94461B8C01A8 +:105F60008091BC0087FF11C02091B900287F81E09B +:105F700090E0283211F490E080E0919581959109AC +:105F8000DF91CF911F910F910895CF3FDC0741F32F +:105F90000E94461B801B910B8C179D0708F38EEF08 +:105FA0009FEFEECF0F931F93CF93DF93EC0184EC21 +:105FB0008093BC000E94461B8C018091BC0087FF2F +:105FC00008C08091BB0090E0DF91CF911F910F91AD +:105FD0000895CF3FDC0789F30E94461B801B910B7D +:105FE0008C179D0750F38EEF9FEFEECF0F931F930B +:105FF000CF93DF93EC0184E88093BC000E94461BA2 +:106000008C018091BC0087FF08C08091BB0090E0AC +:10601000DF91CF911F910F910895CF3FDC0789F356 +:106020000E94461B801B910B8C179D0750F38EEF2F +:106030009FEFEECFCF92DF92EF92FF920F931F93DD +:10604000CF93DF936B018A017901B9010E94292F57 +:10605000E6010C0D1D1DC017D10761F424E9209342 +:10606000BC00DF91CF911F910F91FF90EF90DF90D7 +:10607000CF90089597FDF2CFB70189910E94A32F89 +:10608000EACFCF92DF92EF92FF920F931F93CF93BD +:10609000DF93C62F6A017901B8010E94292F97FD6D +:1060A0000CC0B8018C2F0E94A32FE601EC0CFD1C44 +:1060B000CE15DF0511F097FF0CC024E92093BC003A +:1060C000DF91CF911F910F91FF90EF90DF90CF90D4 +:1060D0000895B80189910E94A32FEACFCF92DF9251 +:1060E000EF92FF920F931F93CF93DF93F82EE62E3C +:1060F000EA016901B8010E94292F97FD15C0B80176 +:106100008E2D0E94A32F97FD0FC0B8018F2D8160A7 +:106110000E94292FF12CE12C21E0C21AD108EC14A5 +:10612000FD0400F597FF11C024E92093BC00181668 +:10613000190614F490E080E0DF91CF911F910F9148 +:10614000FF90EF90DF90CF900895C8010E94D22F6A +:1061500097FD04C0FE01EE0DFF1D80832FEFE21AB4 +:10616000F20ADDCF97FDE0CFC8010E94F62F97FD20 +:10617000DBCFCC0DDD1D8883D7CF84E98093BC00B5 +:1061800008958EE14A9B02C08150E1F74A9BFECF01 +:1061900008955A9880E28A95F1F75A9A0895FC0179 +:1061A0003BE03A95F1F798E020E080E031E040E113 +:1061B0004A95F1F7880F4A9B02C08160232742E08D +:1061C0004A95F1F7000040E14A95F1F7915079F7CF +:1061D00090E19A95F1F799B132E03A95F1F7000024 +:1061E00040E14A95F1F792FB992790F99227208197 +:1061F000920F90830895EF92FF920F931F93CF9386 +:10620000DF930F92CDB7DEB719828C017C01E60EC9 +:10621000F11C0E151F0561F481E09981911180E058 +:106220000F90DF91CF911F910F91FF90EF90089504 +:106230000E94C130CE0101960E94CF30F8018193B7 +:106240008F01E7CF529A5A9A089552985A9AEA9A29 +:10625000E9E6F0E080818F7C808308956150770BC0 +:1062600091E001C0990F6A95EAF720E031E09111C1 +:1062700008C0222391F05A9A80E28A95F1F75A9841 +:106280000895492F482339F05A9A232740E24A9526 +:10629000F1F79695ECCF5A98F9CF5A98EDCFFF9237 +:1062A0000F931F93CF93DF93EC018C01060F111D09 +:1062B000C017D10731F4DF91CF911F910F91FF905B +:1062C0000895F9900E94C93068E08F2D0E942E3108 +:1062D000EFCF1F920F920FB60F921124EF92FF9201 +:1062E0000F931F932F933F934F935F936F937F93DE +:1062F0008F939F93AF93BF93EF93FF93CF93DF93CE +:106300000F92CDB7DEB719820E94C130CE0101963F +:106310000E94CF30A82FA695A695A695282F229546 +:1063200025709A2F9570290F922F93702695269598 +:10633000920F982797708981982B09F075C0A83023 +:1063400008F072C080E18A95F1F75A9A529AB2E049 +:10635000BA95F1F700C05A98EA2EF12CEAE0AE9F08 +:10636000D0011124AF5FBE4F1896ED91FC911997A3 +:106370003097B1F06091F0017091F10116962D9176 +:106380003C911797260F371F13968D919C91149768 +:10639000680F791F15964C91159712968C91099557 +:1063A0008AE08E9DF0018F9DF00D1124EF5FFE4F6E +:1063B0006581662351F02091F0013091F1018681D1 +:1063C0009781820F931F0E944F310E94C930F0E1E4 +:1063D000FA95F1F75A9852985A9A80E18A95F1F70E +:1063E0008AE08E9D80018F9D100D11240F5F1E4F3E +:1063F000D80112966C911297662371F12091F001E9 +:106400003091F10113968D919C91820F931F0E9400 +:10641000FB30D801ED91FC91882311F088E001C098 +:1064200082E080830E94C1300F90DF91CF91FF9175 +:10643000EF91BF91AF919F918F917F916F915F91FC +:106440004F913F912F911F910F91FF90EF900F90DF +:106450000FBE0F901F901895ED91FC91DFCF0F9319 +:106460001F93CF93DF93EC0108970CF0A9C08AE04B +:106470008C9FF0018D9FF00D1124EF5FFE4F808106 +:106480009181892B09F49CC0F894529A5A9885E01E +:106490008A95F1F700008C2F869585709C2F95705A +:1064A000890F982F937086958695890F8E0193E0BA +:1064B000000F111F9A95E1F7082B0E94C93000C008 +:1064C00068E0802F0E942E31A0E1AA95F1F7529842 +:1064D0005A9A4A9B27C087E090E04A9925C08AE0F3 +:1064E0008C9F80018D9F100D11240F5F1E4FF801AE +:1064F00065816623A1F12091F0013091F10186813F +:106500009781820F931F0E94FB30811128C0529AFD +:106510005A9AD801ED91FC9182E08083789482E0D0 +:1065200090E016C000C0D5CF0197B9F4529A5A9A9C +:106530008AE08C9FF0018D9FF00D1124EF5FFE4FDC +:106540000190F081E02D81E08083789481E090E0FB +:10655000DF91CF911F910F91089500C0BECF0E948F +:10656000C130B0E2BA95F1F75A98529AE0E1EA9553 +:10657000F1F78AE08C9FF0018D9FF00D1124EF5F01 +:10658000FE4F6281662351F02091F0013091F101BC +:1065900083819481820F931F0E944F310E94C930E2 +:1065A0008AE08C9FF0018D9FF00D1124EF5FFE4F6C +:1065B0000190F081E02D1082789490E080E0C8CFC7 +:1065C00084E090E0C5CFAA1BBB1B51E107C0AA1F06 +:1065D000BB1FA617B70710F0A61BB70B881F991F84 +:1065E0005A95A9F780959095BC01CD010895991B06 +:1065F00079E004C0991F961708F0961B881F7A95BA +:10660000C9F78095089597FB072E16F4009407D0DC +:1066100077FD09D00E94E33207FC05D03EF4909547 +:1066200081959F4F0895709561957F4F0895EE0F66 +:10663000FF1F0590F491E02D09946927962769279B +:106640007827872778270895FB01DC0102C0059091 +:106650000D9241505040D8F70895FB01DC0104C071 +:106660008D910190801921F441505040C8F7881B4A +:10667000990B0895FB01DC0102C001900D9241507D +:106680005040D8F70895F999FECF92BD81BDF89A90 +:10669000992780B50895A6E1B0E044E050E00C945D +:1066A0007D33A8E1B0E042E050E00C947D33262F2A +:1066B000F999FECF92BD81BDF89A019700B40216F8 +:1066C00039F01FBA20BD0FB6F894FA9AF99A0FBEA6 +:1066D00008950396272F0E9458330E945733252F81 +:1066E0000E945833242F0C9458330196272F0E9470 +:1066F00058330C945733DC01CB01FC01F999FECFE0 +:1067000006C0F2BDE1BDF89A319600B40D92415039 +:106710005040B8F708950E94CD3308F481E0089501 +:10672000E89409C097FB3EF490958095709561952B +:106730007F4F8F4F9F4F9923A9F0F92F96E9BB27E1 +:106740009395F695879577956795B795F111F8CF5D +:10675000FAF4BB0F11F460FF1BC06F5F7F4F8F4FC8 +:106760009F4F16C0882311F096E911C0772321F0BE +:106770009EE8872F762F05C0662371F096E8862F56 +:1067800070E060E02AF09A95660F771F881FDAF7AD +:10679000880F9695879597F90895990F0008550FDA +:1067A000AA0BE0E8FEEF16161706E807F907C0F097 +:1067B00012161306E407F50798F0621B730B840B9F +:1067C000950B39F40A2661F0232B242B252B21F479 +:1067D00008950A2609F4A140A6958FEF811D811D19 +:1067E00008950E9404340C9475340E94673438F084 +:1067F0000E946E3420F0952311F00C945E340C94BA +:10680000643411240C94A9340E94863470F3959F4B +:10681000C1F3950F50E0551F629FF001729FBB2797 +:10682000F00DB11D639FAA27F00DB11DAA1F649F33 +:106830006627B00DA11D661F829F2227B00DA11DE6 +:10684000621F739FB00DA11D621F839FA00D611D6C +:10685000221F749F3327A00D611D231F849F600D8D +:10686000211D822F762F6A2F11249F5750409AF0B6 +:10687000F1F088234AF0EE0FFF1FBB1F661F771F42 +:10688000881F91505040A9F79E3F510580F00C940D +:106890005E340C94A9345F3FE4F3983ED4F38695BC +:1068A00077956795B795F795E7959F5FC1F7FE2BAD +:1068B000880F911D9695879597F9089597F99F6789 +:1068C00080E870E060E008959FEF80EC0895002478 +:1068D0000A941616170618060906089500240A9445 +:1068E00012161306140605060895092E0394000CCB +:1068F00011F4882352F0BB0F40F4BF2B11F460FF5A +:1069000004C06F5F7F4F8F4F9F4F089557FD905882 +:10691000440F551F59F05F3F71F04795880F97FB63 +:10692000991F61F09F3F79F087950895121613061D +:106930001406551FF2CF4695F1DF08C0161617064C +:106940001806991FF1CF8695710561050894089581 +:10695000E894BB2766277727CB0197F90895F89429 +:10696000FFCFE7100F1162110F11621142117A115E +:10697000621177128412B014B014B914B914BB1494 +:10698000B914B914B914B014B014C014B914B914AA +:10699000C0141721172170217021A2214A214A21F8 +:1069A0004A21BC212D223D223D22832D872DCA2D37 +:1069B000DB2DE62D052E082E3B2E5C2ED82DD82D56 +:1069C000672E6A2E6E2E942EB62EB92EBB2EE02E7A +:1069D0000130020000000100000000300200000051 +:1069E0000501000000300200000001060000003038 +:1069F000020000000107000000300204080000004F +:106A00000000003002090C0000000000003002010C +:106A10001500000000000036323331F7F667669744 +:106A2000C6343500000000000180005F082B0E0A0C +:106A30000E060E020EF4F5010021007F2200030075 +:106A40004A004A4A01F6F731333236674C4159451C +:106A5000520042617365200047616D6520005261FC +:106A6000697365004C6F776572004C4F434B004370 +:106A7000617073004E756D005363726C00202020AE +:106A8000202000534F4C415200544D50535400812C +:106A90008283E200E900EA00B500B600B700CD004D +:106AA0008301CC008A019201940121022302240275 +:106AB0002502260227022A02B300B4006F007000EC +:106AC000A50200FF0100010000FFFF00000100011E +:106AD000FF0000081018181008000001020202024E +:106AE00002020202020240227B99017701FC0000AF +:066AF0000C190C390C002A :00000001FF From dba1037080c81fb1301f867ff7312e6242ff2188 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 31 Oct 2021 12:16:26 -0400 Subject: [PATCH 31/94] Simpler fix for trackball rotation issue. Updated readme. --- .../solartempest/sofle/keymaps/via/keymap.c | 13 +- .../sofle/keymaps/via/pimoroni_trackball.c | 201 ---- .../sofle/keymaps/via/pimoroni_trackball.h | 37 - keyboards/solartempest/sofle/readme.md | 10 +- keyboards/solartempest/sofle/rules.mk | 2 +- .../sofle/solartempest_sofle_via.hex | 932 +++++++++--------- 6 files changed, 486 insertions(+), 709 deletions(-) delete mode 100644 keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index d51ae53124a4..862f76185eba 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -29,9 +29,7 @@ #endif #ifdef POINTING_DEVICE_ENABLE - //#include "drivers/sensors/pimoroni_trackball.h" //Normally this is included, but the master code has an issue with the rotation code. - #include "pimoroni_trackball.c" //This is the master code with a workaround for scrolling rotation with inversion (line 146 only). - #include "pimoroni_trackball.h" + #include "drivers/sensors/pimoroni_trackball.h" bool was_scrolling = true; //Remember last state of trackball scrolling #endif @@ -138,6 +136,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these } pointing_device_set_report(currentReport); } + + bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. + if (trackball_is_scrolling()) { + pimoroni_data temp = *trackball_data; + trackball_data->up = temp.down; + trackball_data->down = temp.up; + } + return true; + } #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c deleted file mode 100644 index a706db9c804c..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.c +++ /dev/null @@ -1,201 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2021 Dasky (@daskygit) - * - * 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 . - */ -#include "pimoroni_trackball.h" -#include "i2c_master.h" -#include "print.h" - -#ifndef PIMORONI_TRACKBALL_ADDRESS -# define PIMORONI_TRACKBALL_ADDRESS 0x0A -#endif -#ifndef PIMORONI_TRACKBALL_INTERVAL_MS -# define PIMORONI_TRACKBALL_INTERVAL_MS 8 -#endif -#ifndef PIMORONI_TRACKBALL_MOUSE_SCALE -# define PIMORONI_TRACKBALL_MOUSE_SCALE 5 -#endif -#ifndef PIMORONI_TRACKBALL_SCROLL_SCALE -# define PIMORONI_TRACKBALL_SCROLL_SCALE 1 -#endif -#ifndef PIMORONI_TRACKBALL_DEBOUNCE_CYCLES -# define PIMORONI_TRACKBALL_DEBOUNCE_CYCLES 20 -#endif -#ifndef PIMORONI_TRACKBALL_ERROR_COUNT -# define PIMORONI_TRACKBALL_ERROR_COUNT 10 -#endif - -#define TRACKBALL_TIMEOUT 100 -#define TRACKBALL_REG_LED_RED 0x00 -#define TRACKBALL_REG_LED_GRN 0x01 -#define TRACKBALL_REG_LED_BLU 0x02 -#define TRACKBALL_REG_LED_WHT 0x03 -#define TRACKBALL_REG_LEFT 0x04 -#define TRACKBALL_REG_RIGHT 0x05 -#define TRACKBALL_REG_UP 0x06 -#define TRACKBALL_REG_DOWN 0x07 - -static pimoroni_data current_pimoroni_data; -static report_mouse_t mouse_report; -static bool scrolling = false; -static int16_t x_offset = 0; -static int16_t y_offset = 0; -static int16_t h_offset = 0; -static int16_t v_offset = 0; -static uint16_t precision = 128; -static uint8_t error_count = 0; - -float trackball_get_precision(void) { return ((float)precision / 128); } -void trackball_set_precision(float floatprecision) { precision = (floatprecision * 128); } -bool trackball_is_scrolling(void) { return scrolling; } -void trackball_set_scrolling(bool scroll) { scrolling = scroll; } - -void trackball_set_rgbw(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { - uint8_t data[4] = {r, g, b, w}; - __attribute__((unused)) i2c_status_t status = i2c_writeReg(PIMORONI_TRACKBALL_ADDRESS << 1, TRACKBALL_REG_LED_RED, data, sizeof(data), TRACKBALL_TIMEOUT); -#ifdef TRACKBALL_DEBUG - dprintf("Trackball RGBW i2c_status_t: %d\n", status); -#endif -} - -i2c_status_t read_pimoroni_trackball(pimoroni_data* data) { - i2c_status_t status = i2c_readReg(PIMORONI_TRACKBALL_ADDRESS << 1, TRACKBALL_REG_LEFT, (uint8_t*)data, sizeof(*data), TRACKBALL_TIMEOUT); -#ifdef TRACKBALL_DEBUG - dprintf("Trackball READ i2c_status_t: %d\nLeft: %d\nRight: %d\nUp: %d\nDown: %d\nSwtich: %d\n", status, data->left, data->right, data->up, data->down, data->click); -#endif - return status; -} - -__attribute__((weak)) void pointing_device_init(void) { - i2c_init(); - trackball_set_rgbw(0x00, 0x00, 0x00, 0x00); -} - -int16_t trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale) { - uint8_t offset = 0; - bool isnegative = false; - if (negative_dir > positive_dir) { - offset = negative_dir - positive_dir; - isnegative = true; - } else { - offset = positive_dir - negative_dir; - } - uint16_t magnitude = (scale * offset * offset * precision) >> 7; - return isnegative ? -(int16_t)(magnitude) : (int16_t)(magnitude); -} - -void trackball_adapt_values(int8_t* mouse, int16_t* offset) { - if (*offset > 127) { - *mouse = 127; - *offset -= 127; - } else if (*offset < -127) { - *mouse = -127; - *offset += 127; - } else { - *mouse = *offset; - *offset = 0; - } -} - -__attribute__((weak)) void trackball_click(bool pressed, report_mouse_t* mouse) { -#ifdef PIMORONI_TRACKBALL_CLICK - if (pressed) { - mouse->buttons |= MOUSE_BTN1; - } else { - mouse->buttons &= ~MOUSE_BTN1; - } -#endif -} - -__attribute__((weak)) bool pointing_device_task_user(pimoroni_data* trackball_data) { return true; }; - -__attribute__((weak)) void pointing_device_task() { - static fast_timer_t throttle = 0; - static uint16_t debounce = 0; - - if (error_count < PIMORONI_TRACKBALL_ERROR_COUNT && timer_elapsed_fast(throttle) >= PIMORONI_TRACKBALL_INTERVAL_MS) { - i2c_status_t status = read_pimoroni_trackball(¤t_pimoroni_data); - - if (status == I2C_STATUS_SUCCESS) { - error_count = 0; - - if (pointing_device_task_user(¤t_pimoroni_data)) { - mouse_report = pointing_device_get_report(); - - if (!(current_pimoroni_data.click & 128)) { - trackball_click(false, &mouse_report); - if (!debounce) { - if (scrolling) { -#ifdef PIMORONI_TRACKBALL_INVERT_X - h_offset += trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_SCROLL_SCALE); -#else - h_offset -= trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_SCROLL_SCALE); -#endif -#if defined(PIMORONI_TRACKBALL_INVERT_Y) && !defined(PIMORONI_TRACKBALL_ROTATE) //This line was customized to correct the scroll rotation inversion issue. - v_offset += trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_SCROLL_SCALE); -#else - v_offset -= trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_SCROLL_SCALE); -#endif - } else { -#ifdef PIMORONI_TRACKBALL_INVERT_X - x_offset -= trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_MOUSE_SCALE); -#else - x_offset += trackball_get_offsets(current_pimoroni_data.right, current_pimoroni_data.left, PIMORONI_TRACKBALL_MOUSE_SCALE); -#endif -#ifdef PIMORONI_TRACKBALL_INVERT_Y - y_offset -= trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_MOUSE_SCALE); -#else - y_offset += trackball_get_offsets(current_pimoroni_data.down, current_pimoroni_data.up, PIMORONI_TRACKBALL_MOUSE_SCALE); -#endif - } - if (scrolling) { -#ifndef PIMORONI_TRACKBALL_ROTATE - trackball_adapt_values(&mouse_report.h, &h_offset); - trackball_adapt_values(&mouse_report.v, &v_offset); -#else - trackball_adapt_values(&mouse_report.h, &v_offset); - trackball_adapt_values(&mouse_report.v, &h_offset); -#endif - mouse_report.x = 0; - mouse_report.y = 0; - } else { -#ifndef PIMORONI_TRACKBALL_ROTATE - trackball_adapt_values(&mouse_report.x, &x_offset); - trackball_adapt_values(&mouse_report.y, &y_offset); -#else - trackball_adapt_values(&mouse_report.x, &y_offset); - trackball_adapt_values(&mouse_report.y, &x_offset); -#endif - mouse_report.h = 0; - mouse_report.v = 0; - } - } else { - debounce--; - } - } else { - trackball_click(true, &mouse_report); - debounce = PIMORONI_TRACKBALL_DEBOUNCE_CYCLES; - } - } - } else { - error_count++; - } - - pointing_device_set_report(mouse_report); - pointing_device_send(); - - throttle = timer_read_fast(); - } -} diff --git a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h b/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h deleted file mode 100644 index 6b2a41425d41..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/pimoroni_trackball.h +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) - * Copyright 2021 Dasky (@daskygit) - * - * 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 . - */ -#pragma once - -#include "quantum.h" -#include "pointing_device.h" - -typedef struct pimoroni_data { - uint8_t left; - uint8_t right; - uint8_t up; - uint8_t down; - uint8_t click; -} pimoroni_data; - -void trackball_set_rgbw(uint8_t red, uint8_t green, uint8_t blue, uint8_t white); -void trackball_click(bool pressed, report_mouse_t* mouse); -int16_t trackball_get_offsets(uint8_t negative_dir, uint8_t positive_dir, uint8_t scale); -void trackball_adapt_values(int8_t* mouse, int16_t* offset); -float trackball_get_precision(void); -void trackball_set_precision(float precision); -bool trackball_is_scrolling(void); -void trackball_set_scrolling(bool scroll); diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 42a25fa17a43..78a5482c741b 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,6 +1,6 @@ # Sofle Keyboard -![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWu.jpg) +![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/utkZbYS.jpeg) Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. @@ -15,7 +15,6 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j * Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) # Custom Features: - ### OLED Features: - Includes Snakey keyboard pet! Slithers according to WPM, bites, and sticks its tongue out at you! - OLED displays current layer, lock key status, WPM, custom logo, and custom name. @@ -24,6 +23,13 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j - Includes working Bongocat (disable RGB for sufficient space). - Includes stock OLED code as well. +### Trackball Features: +- Supports Pimoroni Trackball installed on master side. +- Default action is scrolling. Hold Raise layer for mouse mode. +- Mouse mode and precision mode are toggleable with trackball LED indication. +- Trackball LED shuts off when computer is sleeping. +- Clicking and dragging is enabled using mouse keys on keymap. + ### RGB Features: - Adds custom layer lighting with custom gradients for each layer. - RGB underglow support and remapped to physical locations (nicer gradients and effects). diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index d33293be4db1..206552b12257 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -26,4 +26,4 @@ SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball QUANTUM_LIB_SRC += i2c_master.c -#SRC += drivers/sensors/pimoroni_trackball.c # There is an issue with the rotation code in the current master. Modified version included in keymap.c instead. \ No newline at end of file +SRC += drivers/sensors/pimoroni_trackball.c \ No newline at end of file diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 8628e6281948..ff3709b3aa6b 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,4 +1,4 @@ -:100000000C9449060C9490060C9490060C9469315B +:100000000C9449060C9490060C9490060C9476314E :100010000C9490060C9490060C9490060C94900608 :100020000C9490060C9490060C943C1A0C94F819BD :100030000C9438260C9490060C9490060C94900620 @@ -205,9 +205,9 @@ :100CC000700610927106109272061092730614BE8E :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0E0EDF9E602C0059050 +:100CF000099512E0A0E0B1E0EAEEF9E602C0059045 :100D00000D92A632B107D9F726E0A6E2B2E001C003 -:100D10001D92A037B207E1F70E945F260C94AF3412 +:100D10001D92A037B207E1F70E945F260C94BC3405 :100D20000C940000CF93DF9340916E0650916F06B4 :100D30004E5654409A01205A3F4F21303240C0F065 :100D400020E032E0241B350B60916C0470916D043F @@ -288,7 +288,7 @@ :1011F000E8835A83DF91CF911F910F91FF90EF9079 :10120000DF90BF90AF900895E62EF12C4491D42E3C :10121000E42FF0E026E0829FC00111242FEF30E0A0 -:10122000B9010E94E332802F90E0880F991F55E5A5 +:10122000B9010E94F032802F90E0880F991F55E598 :10123000569FD001579FB00D11248A1B9B0B982FEE :10124000990F890F5901AE18BF08AE9ED001AF9E0D :10125000B00DBE9EB00D11245B2F189F800111248C @@ -420,18 +420,18 @@ :101A3000819591090895681B20E0DFCF0F931F93D4 :101A4000CF93DF9300D000D0CDB7DEB789836A8310 :101A50004B831C8204E610E024E030E0AE014F5FCF -:101A60005F4F60E084E10E9441300F900F900F9033 +:101A60005F4F60E084E10E944E300F900F900F9026 :101A70000F90DF91CF911F910F91089580912803CE :101A8000882329F047E669E98BE20C941E0D6091EA -:101A9000590170915A0190E080E00E94903320E05B -:101AA00030E040E05CE30E94F13320E030E040E8C9 -:101AB0005FE30E948B33882321F047EC6BE180E0E9 +:101A9000590170915A0190E080E00E949D3320E04E +:101AA00030E040E05CE30E94FE3320E030E040E8BC +:101AB0005FE30E949833882321F047EC6BE180E0DC :101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 :101AD000FF920F931F93CF93DF936C017B0164E61A -:101AE00070E088E70E94292FEC0197FD12C010E0FA +:101AE00070E088E70E94362FEC0197FD12C010E0ED :101AF00000E0F601E00FF11F849164E670E00E94BF -:101B0000A32FEC01892B29F40F5F1F4F0E151F0522 -:101B100081F70E94BD30CE01DF91CF911F910F91CF +:101B0000B02FEC01892B29F40F5F1F4F0E151F0515 +:101B100081F70E94CA30CE01DF91CF911F910F91C2 :101B2000FF90EF90DF90CF90089580913E049091C8 :101B30003F04911103C091E089270895882369F03B :101B400062E070E08CEE9BE00E94650D892B19F03D @@ -497,7 +497,7 @@ :101F000001C0220F0A94EAF7822309F43FC0F601C8 :101F1000EE0FFF1FE80DF91DE590F490E114F104B8 :101F200009F479CF45E050E0B701CE0101960E9457 -:101F3000243309810F3F51F18A81800F9927991F1E +:101F3000313309810F3F51F18A81800F9927991F11 :101F40008B34910514F08AE490E05C01AA0CBB1C70 :101F50008A0D9B1DDC01AB5ABC4F5D01049D8001C5 :101F600011240B5A1C4F0A151B0520F0B5E0EB0E8F @@ -515,8 +515,8 @@ :102020002D93CD01B4E086369B07B9F780915F040C :10203000833009F471C0B8F4813009F448C08230AB :1020400009F4B4C08091E80083FF3CC180915E0434 -:1020500090915F049A3008F035C1E92FF0E0EF5419 -:10206000FB4C0C9417338A3009F48FC08B3009F481 +:1020500090915F049A3008F035C1E92FF0E0E25426 +:10206000FB4C0C9424338A3009F48FC08B3009F474 :1020700070C0893039F780915E04813219F7809100 :10208000620490916304009711F00297D9F6809151 :10209000E800877F8093E8008091E80082FF37C0E6 @@ -601,22 +601,22 @@ :10258000E9008091E800877F8093E8000E944F0770 :1025900099CE1F93CF93DF93162FC0916E06D091E3 :1025A0006F068A30D1F420913304CE018E569440C8 -:1025B000622F70E00E94E332281B822F66E00E94A7 -:1025C000F732C82FC15020F4DF91CF911F910895A9 +:1025B000622F70E00E94F032281B822F66E00E949A +:1025C0000433C82FC15020F4DF91CF911F9108959B :1025D00060E080E20E94C912F5CF8D30E9F4CE565A -:1025E000D44020913304622F70E0CE010E94E33288 +:1025E000D44020913304622F70E0CE010E94F0327B :1025F000281B822F9E01280F311D2115324018F013 :1026000080E0D0E0C0E0C80FD11DC259DB4FD093AD :102610006F06C0936E06D8CF96E0FE01A4E3B4E047 :1026200001900D929A95E1F7803E90F186E0FE01CF :1026300011928A95E9F7C0916E06D0916F0611113B -:1026400033C046E050E0BE0184E394E00E942D33A5 +:1026400033C046E050E0BE0184E394E00E943A3398 :102650009E012E563440892B91F52A5F3F4F4091C1 -:102660003304642F70E0C9010E94E332481B4630F6 +:102660003304642F70E0C9010E94F032481B4630E9 :1026700010F4240F311D211572E0370710F030E0FF :1026800020E022593B4F30936F0620936E069CCF7B :10269000F6E08F9FB00111246655794F46E050E077 -:1026A000CE010E942433C7CF9E012A5F3F4FFE0117 +:1026A000CE010E943133C7CF9E012A5F3F4FFE010A :1026B0002E173F0731F2808180958193F9CFC901B0 :1026C00045E0969587954A95E1F741E050E0BA01DB :1026D00002C0660F771F8A95E2F7CB0160916C0408 @@ -627,27 +627,27 @@ :1027200001900020E9F78F0101501109C017D1076E :1027300030F0DF91CF911F910F91FF9008956F2D91 :1027400089910E94C912F2CFCF93DF93C3EED2E0FA -:1027500060E0CE010E9457332196C11584E0D8076E +:1027500060E0CE010E9464332196C11584E0D80761 :10276000B9F7DF91CF9108956F927F928F929F92E8 :10277000AF92BF92CF92DF92EF92FF920F931F938F :10278000CF93DF938AEAC82E86E0D82E91ECE92E0B :10279000F12CE701CC58D10936011BC0F501859019 -:1027A0009490692DC8010E945733682DC801019685 -:1027B0000E94573382E0A80EB11C0E5F1F4FC01756 +:1027A0009490692DC8010E946433682DC801019678 +:1027B0000E94643382E0A80EB11C0E5F1F4FC01749 :1027C000D10761F78EE0680E711C2E96CE15DF05DD :1027D00029F08E010E5011095301E0CF7E018CE8E3 :1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA :1027F000F80679F6DF91CF911F910F91FF90EF903E :10280000DF90CF90BF90AF909F908F907F906F9010 :102810000895CF93C82F6FEF811161E283E290E0BA -:102820000E9457336FEFC11160E184E290E00E9493 -:1028300057336FEFC11161E385E290E0CF910C94C3 -:10284000573380E00E94091460E086E290E00E9425 -:1028500057330E94B4130E94A41381E00C9409140E +:102820000E9464336FEFC11160E184E290E00E9486 +:1028300064336FEFC11161E385E290E0CF910C94B6 +:10284000643380E00E94091460E086E290E00E9418 +:1028500064330E94B4130E94A41381E00C94091401 :102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 :102870002EE0629FC00DD11D11243CE8839FC00D46 -:10288000D11D1124CE0187960E944333082F10E0FA -:10289000102F0027CE0188960E9443339801282BE1 +:10288000D11D1124CE0187960E945033082F10E0ED +:10289000102F0027CE0188960E9450339801282BD4 :1028A000C901DF91CF911F910F910895462F853077 :1028B00038F47A3028F4673018F4672F0C94301409 :1028C00090E080E00895CF92DF92FF920F931F93E4 @@ -659,15 +659,15 @@ :1029200061F3EECFCF93DF93EC010E946314BE01FD :102930000E945614DF91CF910C94D609FC0180813E :1029400091810E949214292F2F7092959F7092501E -:102950009E3078F4E92FF0E0E554FB4C0C941733EB +:102950009E3078F4E92FF0E0E853FB4C0C942433DC :10296000803F19F020F4883E20F481E00895843FF0 :10297000E1F380E00895883EC0F3813FD1F7F5CFC1 :10298000822F869586958695089583E290E00E9431 -:102990004333813289F484E290E00E9443338031F2 -:1029A00059F485E290E00E94433391E0813309F0CD +:102990005033813289F484E290E00E9450338031D8 +:1029A00059F485E290E00E94503391E0813309F0C0 :1029B00090E0892F8170089580E0FCCFCF92DF9264 :1029C000EF92FF926B017C010E94CC08B701A60137 -:1029D00088E090E0FF90EF90DF90CF900C94693307 +:1029D00088E090E0FF90EF90DF90CF900C947633FA :1029E000AF92BF92CF92DF92EF92FF920F931F931D :1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E :102A0000142FE22E8091670480FF4FC0E82FE695D7 @@ -686,7 +686,7 @@ :102AD000C5CF923039F6E2508E2F8170D82EE69510 :102AE000F0E0E55AF94FA590B490C12CBB24609159 :102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 -:102B0000A39E900DB29E900D112470E00E94E332BE +:102B0000A39E900DB29E900D112470E00E94F032B1 :102B1000802FD11016C0860F40917101420F532FA4 :102B2000511D9A01220F331F240F351F2B5A3C4F82 :102B3000412F113A08F040EA6F2D0E94E208C39439 @@ -748,19 +748,19 @@ :102EB000808311828FEF828380EA83831482AFE460 :102EC000B3E012968C911297836012968C93608176 :102ED0007181828193810C94DE1469EE7EEF90E023 -:102EE00080E00E94753360E082E090E00E945733FA -:102EF00060E083E090E00E94573310928A0260E025 -:102F000084E090E00E94573360E082E290E00E940B -:102F1000573360E085E090E00E94573360E086E040 -:102F200090E00E9457336FEF87E090E00E945733A4 -:102F300040E050E0BA0188E090E00E94693360E030 -:102F40008DE090E00E94573340E050E0BA0188E104 -:102F500090E00E94693360E087E190E00E9457337F -:102F600040E050E0BA018CE190E00E94693370E0EB -:102F700060E080E290E00E94753340E050E0BA01EA -:102F800088E190E00E94693380E00E9409140E9469 -:102F9000211440E050E0BA018FE090E00E946933D4 -:102FA00040E050E0BA0183E190E00C9469330F9364 +:102EE00080E00E94823360E082E090E00E946433E0 +:102EF00060E083E090E00E94643310928A0260E018 +:102F000084E090E00E94643360E082E290E00E94FE +:102F1000643360E085E090E00E94643360E086E026 +:102F200090E00E9464336FEF87E090E00E9464338A +:102F300040E050E0BA0188E090E00E94763360E023 +:102F40008DE090E00E94643340E050E0BA0188E1F7 +:102F500090E00E94763360E087E190E00E94643365 +:102F600040E050E0BA018CE190E00E94763370E0DE +:102F700060E080E290E00E94823340E050E0BA01DD +:102F800088E190E00E94763380E00E9409140E945C +:102F9000211440E050E0BA018FE090E00E947633C7 +:102FA00040E050E0BA0183E190E00C9476330F9357 :102FB0001F93CF93DF9300D000D0CDB7DEB7409101 :102FC000BB025091BC026091BD027091BE022FB74E :102FD000F8948091470490914804A0914904B091DD @@ -769,7 +769,7 @@ :1030000062086E5F7F4F8F4F9F4F69837A838B83F8 :103010009C8380912C0190912D018B559D4F409167 :103020002B0150E04530510510F044E050E0BE0166 -:103030006F5F7F4F0E943A3384E090E00E942F320E +:103030006F5F7F4F0E94473384E090E00E943C32F4 :10304000892BD9F40E9462086093BB027093BC0282 :103050008093BD029093BE0281E010C00E9462087E :103060000091C8021091C9022091CA023091CB028E @@ -782,8 +782,8 @@ :1030D000C916D104E104F10410F4442311F1E82EDF :1030E000082E000CFF089AE08902F0011124EF5F1E :1030F000FE4F838194818B559D4F428150E0041790 -:10310000150708F4A801B9010E943A33C7010E94CB -:103110002F32892BA1F40E946208688379838A8305 +:10310000150708F4A801B9010E944733C7010E94BE +:103110003C32892BA1F40E946208688379838A83F8 :103120009B8381E0DF91CF911F910F91FF90EF90F2 :10313000DF90CF90BF90AF909F908F90089580E0E8 :10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD @@ -801,25 +801,25 @@ :1032000008956F927F928F929F92AF92BF92CF92CA :10321000DF92EF92FF920F931F93CF93DF930F9262 :10322000CDB7DEB7862E5A016901682E880F770860 -:10323000C3010E942F32892B09F088C08AE0869D45 +:10323000C3010E943C32892B09F088C08AE0869D38 :10324000F001879DF00D1124EF5FFE4F458150E0A6 :103250004115510511F041E050E08AE0869DF001F2 :10326000879DF00D1124EF5FFE4F668177816B55CE -:103270007D4FCE0101960E943A33F5014081518184 +:103270007D4FCE0101960E944733F5014081518177 :10328000628173812FB7F89480914704909148042C :10329000A0914904B0914A042FBF841B950BA60B43 :1032A000B70B84369105A105B10540F4B701C801FB :1032B0000E94B1089981891709F44FC0082C000CAD -:1032C0009908C4010E942F32892B91F0B12C8B2DCB +:1032C0009908C4010E943C32892B91F0B12C8B2DBE :1032D0000F90DF91CF911F910F91FF90EF90DF90B2 :1032E000CF90BF90AF909F908F907F906F900895F8 :1032F0008AE0889DF001899DF00D1124EF5FFE4F5B :10330000458150E0E416F50608F4A7018AE0889D9F :10331000F001899DF00D1124EF5FFE4F66817781EA -:103320006B557D4FC6010E943A33B701C8010E9418 +:103320006B557D4FC6010E944733B701C8010E940B :10333000B10899818913CACF0E946208F5016083A0 :10334000718382839383BB24B394C1CFB12CA70133 -:10335000B801C6010E943A33BACFBB24B394F7CF69 +:10335000B801C6010E944733BACFBB24B394F7CF5C :10336000CF92DF92EF92FF920F931F93CF93DF9351 :1033700000D000D00F92CDB7DEB76B0185E0E82E0C :10338000F12C06EA12E09E012F5F3F4F4DE952E01B @@ -828,7 +828,7 @@ :1033B000E8E9F2E0D60101900D929A95E1F70F90BD :1033C0000F900F900F900F90DF91CF911F910F9161 :1033D000FF90EF90DF90CF90089590E080E00E9402 -:1033E0005133893E9E4F11F40C94C51480E008952A +:1033E0005E33893E9E4F11F40C94C51480E008951D :1033F0001F920F920FB60F9211242F933F934F936A :103400005F936F937F938F939F93AF93BF93CF936C :10341000DF93EF93FF93D091E900DF708091EC0090 @@ -888,7 +888,7 @@ :10377000F601319780818F3F11F00E947C0950EA59 :103780005A95F1F7F801EE0DFF1D90828FEFE81AC0 :10379000F80A95E0E916F10409F0A8CF4AE050E0F4 -:1037A000B8018EEC92E00E942D337C01892B41F010 +:1037A000B8018EEC92E00E943A337C01892B41F003 :1037B0008AE0F801AEECB2E001900D928A95E1F753 :1037C0001091D902E114F104B9F181E080938D02E6 :1037D0000E94461B90938C0280938B0280918B02F7 @@ -946,17 +946,17 @@ :103B10006F905F9008950E946314182F682F898119 :103B20009A810E94890B69817A81812F0E945614A3 :103B30008C01F6018281882309F42BC5C8018251CA -:103B40009F45409708F0EEC48FEF93E00E94433307 +:103B40009F45409708F0EEC48FEF93E00E945033FA :103B5000025193EEA92E92E0B92E8111C7CF011127 :103B60003AC01C821B82662463948AE0582E850129 -:103B70000F5F1F4FC5010E94433389831A82882338 +:103B70000F5F1F4FC5010E94503389831A8288232B :103B800009F4B4CF9FEF980F9330A0F58A83698230 -:103B900032E0A30EB11CC8010E9443338B838823FB +:103B900032E0A30EB11CC8010E9450338B838823EE :103BA00009F4A4CF8E010F5F1F4FF801208122235B :103BB000F1F2213009F058C0918182819130E1F415 :103BC0000E5F1F4F6AE070E0893311F460E570E02A :103BD0000E94CF0E17C0A114F4E0BF0609F486CFEF -:103BE000C5010E944333811101C001502FEFA21A79 +:103BE000C5010E945033811101C001502FEFA21A6C :103BF000B20AB5CF5801D6CF923039F40E5F1F4FBD :103C00000E94150C0F5F1F4FD0CF933029F40E5F29 :103C10001F4F0E94DC0BF6CF943019F00F5F1F4F3F @@ -989,8 +989,8 @@ :103DC0006314F82E682FC8010E94890BB8018F2D4B :103DD0000E9456140E94D609182FB82EF60122818F :103DE0004581342F32953F70892F82958F70E82E50 -:103DF000F12C8C3008F04EC2F701E753FB4C0C94C9 -:103E000017330338FFE51F0709F481C018F501389F +:103DF000F12C8C3008F04EC2F701EA52FB4C0C94C7 +:103E000024330338FFE51F0709F481C018F5013892 :103E10003FE5130709F44AC008F065C000385FE5C4 :103E2000150709F0A5CF882309F459C080919202A3 :103E3000811106C081E08093920282EE0E94150CEF @@ -998,8 +998,8 @@ :103E5000150C8ECF05389FE5190709F4BEC008F48C :103E600076C00638FFE51F0709F082CF882309F4E2 :103E7000CEC06091590170915A0190E080E00E949B -:103E8000903320E030E040E05CE30E94F13320E03A -:103E900030E040E85FE30E948B338111B5C086EECD +:103E80009D3320E030E040E05CE30E94FE3320E020 +:103E900030E040E85FE30E9498338111B5C086EEC0 :103EA00090E090935A0180935901A1C08823A1F01A :103EB00080919202811106C081E08093920282EE8D :103EC0000E94150C0E94461B9093910280939002D1 @@ -1240,7 +1240,7 @@ :104D70001092CA021092CB020E94C514811102C087 :104D80000E9421140E949C0E80935801809158012A :104D9000882309F4C6C010926F0185E280937001E8 -:104DA0000E949C0E81110E94223180915801811134 +:104DA0000E949C0E81110E942F3180915801811127 :104DB0002FC0FE01359686E0DF011D928A95E9F746 :104DC00086E6898387E98A8386EC8B8384E38C83F8 :104DD00085E38D833497AEE4B1E0CE010B9621914B @@ -1254,22 +1254,22 @@ :104E5000FF2ED8018D918D018F3F11F00E947C09AA :104E6000E016F106B1F7EEECF2E088ED92E0A5E491 :104E7000B3E011921D928E179F07D9F70E94ED198A -:104E8000811102C00E946D1782E090E00E944333BE -:104E900080933A0384E090E00E944333182F82E22B -:104EA00090E00E944333982F812F9093CD028093FE +:104E8000811102C00E946D1782E090E00E945033B1 +:104E900080933A0384E090E00E945033182F82E21E +:104EA00090E00E945033982F812F9093CD028093F1 :104EB000CC020E94521BEFE7FBEB3197F1F700C0E9 :104EC00000000E94521B8091450380FF2EC06FEFAF -:104ED0007FEF90E080E00E94753381E08093E000F6 +:104ED0007FEF90E080E00E94823381E08093E000E9 :104EE00080E28093D8001092C9008FE19EE4019780 :104EF000F1F700C0000087E090EBDC0180937006C2 :104F000090937106A0937206B093730688E19CE0BB :104F10000FB6F894A895809360000FBE9093600040 :104F2000FFCF85E280936F0139CF83E090E00E944C -:104F300043330E94C30B809166040E946E160E9448 -:104F40009C0E811102C00E94253183E080931003E2 -:104F500080E2809333040E94232F6DE070E08CE99F +:104F300050330E94C30B809166040E946E160E943B +:104F40009C0E811102C00E94323183E080931003D5 +:104F500080E2809333040E94302F6DE070E08CE992 :104F600092E00E94650D892BE9F58091100363E0C2 -:104F700070E081FD8AC289E992E00E94650D892B6B +:104F700070E081FD97C289E992E00E94650D892B5E :104F800089F56DE070E089E892E00E94650D892B5B :104F900049F50E9462086058774C8E4F9F4F60938E :104FA0003A0470933B0480933C0490933D04EEE6F6 @@ -1278,9 +1278,9 @@ :104FD0006D0480936C0481E080933F0480933E04D1 :104FE000109211038091DA02811136C00E94ED19EE :104FF000811104C00E946D170E94551788E090E04F -:105000000E944B3360936704709368048093690433 +:105000000E94583360936704709368048093690426 :1050100090936A04809151038360809351036E7F63 -:1050200071F40E94551788E090E00E944B33609322 +:1050200071F40E94551788E090E00E945833609315 :105030006704709368048093690490936A040E94E3 :10504000CC088091670480FF04C060E086950E94D0 :10505000071681E08093DA0280915801811106C021 @@ -1295,16 +1295,16 @@ :1050E000E2F7817020A130E002C0359527954A95FE :1050F000E2F792E020FF90E0892B8093E20280911A :10510000580111E081278093E102312F381B309341 -:10511000DB020E94232F40E060E080E00E941E0D31 +:10511000DB020E94302F40E060E080E00E941E0D24 :1051200089EA92E0909354038093530360E08AE00D :105130000E94071681E00E940B1786EE90E0909384 :105140005A0180935901109328030E943E0D8BE56C :1051500091E09093430480934204E0E46E2E8091AA -:105160005C04FF24F39400E112E1853009F4DFC10F +:105160005C04FF24F39400E112E1853009F4ECC102 :105170000E94521BE82E81110E946208EBE3F3E0CB :10518000A5E4B3E010E000E0B02EDD9081918D1534 -:1051900009F4F1C18D25C12CFF24F3949F2D982390 -:1051A00009F4E4C10E949C0E882399F0C8A6B9A610 +:1051900009F4FEC18D25C12CFF24F394982F9F2183 +:1051A00009F4F1C10E949C0E882399F0C8A6B9A603 :1051B000DF2081E009F480E08AA70E94461B81601D :1051C000782F9CA78BA748A559A56AA58CA50E94F6 :1051D000B424F801E55CFC4F8081F826F0828091D0 @@ -1320,394 +1320,396 @@ :105270000E944625FF24F3948091E0028D3F6CF458 :10528000E12FF0E0E252FD4F80818150808361E0A8 :10529000812F0E944625FF24F3948091E002082E7E -:1052A000000C990B64E070E00E9403338093E002ED +:1052A000000C990B64E070E00E9410338093E002E0 :1052B000F1100E943E0B80913F04882351F18091B0 -:1052C0001203909113030E94371BC29708F06AC122 -:1052D00020916C0430916D042115310509F08BC2C9 +:1052C0001203909113030E94371BC29708F077C115 +:1052D00020916C0430916D042115310509F098C2BC :1052E00080913E048823A9F00E94620800913A044C :1052F00010913B0420913C0430913D04601B710BE4 :10530000820B930B6F3F7F4F8F4F9F4710F40E948C :10531000950DE11001C0F1100E94B00D809138038D -:105320008A3008F0A0C380913603909137030E9421 -:10533000371B089708F497C304E610E025E030E037 -:1053400041E353E064E084E10E946E30892B09F070 -:105350005BC31092380386E0EAE1F3E0DE01919648 -:1053600001900D928A95E1F786E0FE01B196DE018B -:10537000119601900D928A95E1F786E0FE01319633 -:10538000ABE2B3E001900D928A95E1F7809135038D -:1053900087FD37C38091290390912A03009709F074 -:1053A0002AC360913103809132030091330310913D -:1053B000340390912803992309F4F0C241E00E943C -:1053C000F80C2091260330912703281B390B3093CA -:1053D00027032093260341E0602F812F0E94F80CC1 -:1053E0002091240330912503281B390B309325038A -:1053F0002093240364E273E080E393E00E94D90CDD -:1054000066E273E08FE293E00E94D90C10922D03C4 -:1054100010922E0386E0EBE2F3E0DE01119601909C -:105420000D928A95E1F786E0FE013196AAE1B3E09C -:1054300001900D928A95E1F730911C0320911D0394 -:1054400090911E0380911F037091160360911703C2 -:105450004091180350911903F0911B03E09115033B -:10546000FE13D8C2332311F07313D4C2222311F0D8 -:105470002613D0C2882311F08513CCC2992319F0CA -:1054800081E04913C8C280E0C6C286E992E075CDCA -:1054900080915C04843009F43AC00E94950D40E08C -:1054A00060E080E00E941E0D80E00E945616809110 -:1054B000DD02811109C0F092DD02809167048170E4 -:1054C0008093DC020E94E20F1092460488E190E093 -:1054D0000FB6F894A895809360000FBE60926000AC -:1054E00083B7817F846083BF83B7816083BF7894F3 -:1054F000889583B78E7F83BF0FB6F894A895809167 -:105500006000886180936000109260000FBE8091FF -:105510005B04882361F00E94521BE5E4F3E0819173 -:10552000811170C4AFE4B3E0AE17BF07C1F780913B -:105530005C04853009F4ACCF10924F040E94F70F41 -:105540000E94BF0E0E9456161092DD028091DC026E -:10555000882349F08091670481608093670460E04C -:1055600086950E9407160E943E0D02CEC394FF0C42 -:1055700027E0C21213CE0F5F1F4F0A30110509F04A -:1055800003CE8FEF8DA78EA71FA60E94461B8160BA -:10559000782F99AB88AB4DA55EA56FA589A90E9410 -:1055A000B4241DCE0E94461B9093130380931203D4 -:1055B00060E080E00E949A080E94BF0E8093EF0294 -:1055C0000E949C0E882331F14091EB025091EC0235 -:1055D0006091ED027091EE022FB7F894809147042C -:1055E00090914804A0914904B0914A042FBF841BB4 -:1055F000950BA60BB70B81339547A105B10540F07C -:105600000E94950D80913F04882309F469CE60CEF5 -:105610000E94B00D0E949C0E882309F4D3C061E063 -:1056200080E00E949A0860E08CE791E00E94881375 -:1056300062E080E00E949A08809166040E94890CD2 -:10564000823009F499C008F08EC0882309F494C010 -:10565000813009F497C065E080E00E949A0860E01C -:105660008AE991E00E94881366E080E00E949A082F -:105670006091EF02669561708FE991E00E94881356 -:1056800067E080E00E949A086091EF026095617087 -:1056900084EA91E00E94881368E080E00E949A0802 -:1056A0006091EF0262FB662760F988EA91E00E9450 -:1056B00088134091E7025091E8026091E9027091ED -:1056C000EA022FB7F8948091470490914804A09182 -:1056D0004904B0914A042FBF841B950BA60BB70B4E -:1056E0008D329140A105B10508F48CCF0E9462086B -:1056F0006093E7027093E8028093E9029093EA02D4 -:105700008091E602811104C080916701811142C03D -:105710006DE080E00E949A0860E08DEA91E00E94CE -:1057200088136AE080E00E949A0881E08093670114 -:105730008091E50290E00196817099278093E502BF -:1057400021E030E0281B390B40E6429FC001439F17 -:10575000900D11242091E402222351F1855C9B4F8E -:105760000E9492064FCF833089F0843009F073CFC6 -:1057700060E08EE891E003C060E082E891E00E9482 -:10578000881369CF60E088E891E0F9CF60E084E9B0 -:1057900091E0F5CF6AE080E00E949A0860E08DEA2F -:1057A00091E00E9488136BE080E00E949A08C0CFCD -:1057B0002091E302222319F085589C4FD1CF8554C4 -:1057C0009D4FCECF64E080E00E949A0860E083EBBA -:1057D00091E00E94881365E080E00E949A0860E0F2 -:1057E00089EB91E00E94881369E080E00E949A08AA -:1057F0008BEF94E0B5CF8091110361E070E08111EF -:105800006FCD082F10E02B01082E02C0440C551C50 -:105810000A94E2F7A90144215521452B09F448C017 -:105820009091100390FD46C08295880F80768093FA -:105830006A019801369527953695279520936D0135 -:10584000815E80936B0110926E0124E630E047E0A8 -:1058500050E068E671E088E70E941A30892B09F071 -:105860003FCDA80165E0440F551F6A95E1F780918F -:10587000100380FD2DC042595B4F04E610E020E28A -:1058800030E060E488E70E944130892B09F028CDA0 -:105890000E94B00DC2018095909540906C0450908C -:1058A0006D044822592250926D0440926C0418CD28 -:1058B0008F5FA7CF880F880F880F80936A0110929F -:1058C0006D01895F80936B0183E080936E01BDCF92 -:1058D000E0EFF2E080E2DF011D928A95E9F7E6E071 -:1058E000F2E0FBABEAAB02E012E037E0A32E992432 -:1058F0009394AAA9BBA92D91BBABAAABF8012190A7 -:105900008F01240E352E311CC10182599B4F1C0181 -:10591000E22FF0E0E051FD4F30E020E07A2C721AE7 -:10592000B92C022E01C0BB0C0A94EAF7610190E089 -:10593000D6018D916D018B21672D691B6770862EB5 -:10594000062E000C770BB82F01C0BB0F8A94EAF724 -:105950008B2E7195619571096770772701C08695C7 -:105960006A95EAF7882A8081882A80829F5F98302A -:10597000F9F62F5F3F4F31962830310579F6EAE08E -:10598000F2E02AA93BA9E217F30709F0B2CF04E637 -:1059900010E020E230E040EF52E073CF45E00E949B -:1059A000F80C2091220330912303820F931F9093D0 -:1059B00023038093220345E0602F812F0E94F80C7F -:1059C0002091200330912103281B390B30932103B0 -:1059D0002093200360E273E08DE293E00E94D90CF3 -:1059E00062E273E08EE293E00E94D90C10923003E1 -:1059F00010922F030FCD019790932A0380932903D0 -:105A000009CD84E190E0F8CF809138038F5F8093D7 -:105A1000380300CD81E080FF0FC0E0914204F09197 -:105A20004304309749F082E080931A030480F581A3 -:105A3000E02D8AE193E0099510921C0310921D035A -:105A400010921E0310921F0386E0EAE1F3E0A4E146 -:105A5000B3E001900D928A95E1F70E94461B909366 -:105A60003703809336030E94BF0E90913903891744 -:105A700031F00E94BF0E809339030E945616809128 -:105A80005C04843009F06BCB83E08093E900809163 -:105A9000E80082FF64CB8091E80090E085FF05C0BC -:105AA0000E94F406882399F091E08091E8008B77BA -:105AB0008093E800992309F452CBE981E150E33166 -:105AC00008F076C0F0E0EB52FB4C0C94173300E288 -:105AD00010E0CE0101967C018091E80085FD0AC0AE -:105AE0008091E8008B778093E8000E94F406882379 -:105AF00099F3DACF8091F100D7018D937D010150A8 -:105B0000110951F7D1CF1A8289E08B8311C08A81A4 -:105B1000823009F48FC1833091F1813009F048C09F -:105B20000E9462080E941D336B837C838D839E8359 -:105B300080915C04843009F012CB1091E9001F7051 -:105B40009091EC00892F817090FD80E8182B82E005 -:105B50008093E9008091E80080FF0DC050E040E0B4 -:105B600060E270E0CE0101960E9425078091E80076 -:105B70008E778093E8001F701093E900F0CADE0171 -:105B80001396E5E4F3E081918D9323E0EF34F2077F -:105B9000D1F7CECF8A81823059F46B817C818D819F -:105BA0009E810E941D3386E290E00E945733C0CF51 -:105BB0008FEF8983BDCF4C816B818A810E94301425 -:105BC0009827892798279E838D83B2CFED80FE800A -:105BD000FE24EF24FE248A810B813EE0039F800196 -:105BE00011249CE8899F000D111D11248C8190E0E7 -:105BF000880F991F080F191F6F2DC80187960E94E3 -:105C000057336E2DC8018896D0CF0E94B41390CF21 -:105C10008A818138C1F060F4803809F089CF20E0B2 -:105C20004B8160916904809168040E94F01480CFD8 -:105C30008238E9F0833809F07BCF20E040916A0494 -:105C40006C818B81F2CF60E08B810E9407168B8183 -:105C5000811103C00E94E20F6BCF809167048160C5 -:105C60008093670460E086950E94071661CF8B8160 -:105C700080936B045DCF8A81813899F030F480384D -:105C800009F056CF80916A0440CF823891F0833872 -:105C900009F04ECF809168048B83809169048C83D6 -:105CA00047CF8091670480FF02C086952ECF80E0A9 -:105CB0002CCF80916B0429CF6091670470916804A8 -:105CC0008091690490916A040E94DE1431CF80E1D2 -:105CD0008A832ECF81E08A838DE117CFCA80DB8053 -:105CE000DC24CD24DC248E010F5F1F4FEC80E00EFE -:105CF000F12EF11CC6018D519D4F0E151F0509F4A3 -:105D000017CFADE1CA16A1E0DA0650F40E94433382 -:105D1000F8018483BFEFCB1ADB0A0F5F1F4FEACF76 -:105D2000D80114961C92F6CF0A811B8110270127F7 -:105D30001027FE0131966F01EC80E00EF12EF11C70 -:105D4000C8018D519D4FE016F10609F4F1CE0D31D9 -:105D5000F1E01F0728F4D60114966C910E94573386 -:105D6000BFEFCB1ADB0A0F5F1F4FEACF0E94A413CD -:105D7000DFCE85E0ADCFCA80DB80DC24CD24DC24FF -:105D80008E010F5F1F4FEC80E00EF12EF11CC6015B -:105D90008796E016F10609F4CBCEECEBCE16E2E0E6 -:105DA000DE0658F40E944333D80114968C93FFEF1B -:105DB000CF1ADF0A0F5F1F4FEACFF8011482F7CF27 -:105DC0000A811B811027012710279E012F5F3F4F5B -:105DD0006901EC80E00EF12EF11CC8018796E016F7 -:105DE000F10609F4A5CE0C3B32E0130728F4D601E6 -:105DF00014966C910E945733BFEFCB1ADB0A0F5FEA -:105E00001F4FEBCF09BD19BD09B400FEFDCF809136 -:105E1000D8008F7D8093D8008091E00082608093CD -:105E2000E0008091E00081FDFCCF10924F040E94C1 -:105E3000F70F7DCB86E290E00E9443331B821C82E9 -:105E40001D828E8375CE1092B9008CE08093B800CD -:105E500008959F92AF92BF92CF92DF92EF92FF92FE -:105E60000F931F93CF93DF93B82EEB010E94461B35 -:105E70006C01EE24E394F12CC431D10560F025E0EF -:105E8000E22EF12CCF3FDC0731F0CE0164E170E06F -:105E90000E94E3327B0184EAA82E94E8992E1092A6 -:105EA000BC00A092BC000E94461B8C018091BC00EB -:105EB00087FF0DC08091B900887F883039F18091CB -:105EC000B900887F803111F10FEF1FEF09C00E94E8 -:105ED000461B801B910B8E159F0540F30EEF1FEFA5 -:105EE000CF3FDC07E1F2C6010E94371B8C179D07EC -:105EF000B0F2C801DF91CF911F910F91FF90EF9009 -:105F0000DF90CF90BF90AF909F900895B092BB006C -:105F10009092BC000E94461B8C018091BC0087FFC0 -:105F20000AC08091B900887F883111F0803461F611 -:105F300010E000E0DECF0E94461B801B910B8E1507 -:105F40009F0558F3CBCF0F931F93CF93DF93EB01B4 -:105F50008093BB0084E88093BC000E94461B8C01A8 -:105F60008091BC0087FF11C02091B900287F81E09B -:105F700090E0283211F490E080E0919581959109AC -:105F8000DF91CF911F910F910895CF3FDC0741F32F -:105F90000E94461B801B910B8C179D0708F38EEF08 -:105FA0009FEFEECF0F931F93CF93DF93EC0184EC21 -:105FB0008093BC000E94461B8C018091BC0087FF2F -:105FC00008C08091BB0090E0DF91CF911F910F91AD -:105FD0000895CF3FDC0789F30E94461B801B910B7D -:105FE0008C179D0750F38EEF9FEFEECF0F931F930B -:105FF000CF93DF93EC0184E88093BC000E94461BA2 -:106000008C018091BC0087FF08C08091BB0090E0AC -:10601000DF91CF911F910F910895CF3FDC0789F356 -:106020000E94461B801B910B8C179D0750F38EEF2F -:106030009FEFEECFCF92DF92EF92FF920F931F93DD -:10604000CF93DF936B018A017901B9010E94292F57 -:10605000E6010C0D1D1DC017D10761F424E9209342 -:10606000BC00DF91CF911F910F91FF90EF90DF90D7 -:10607000CF90089597FDF2CFB70189910E94A32F89 -:10608000EACFCF92DF92EF92FF920F931F93CF93BD -:10609000DF93C62F6A017901B8010E94292F97FD6D -:1060A0000CC0B8018C2F0E94A32FE601EC0CFD1C44 -:1060B000CE15DF0511F097FF0CC024E92093BC003A -:1060C000DF91CF911F910F91FF90EF90DF90CF90D4 -:1060D0000895B80189910E94A32FEACFCF92DF9251 -:1060E000EF92FF920F931F93CF93DF93F82EE62E3C -:1060F000EA016901B8010E94292F97FD15C0B80176 -:106100008E2D0E94A32F97FD0FC0B8018F2D8160A7 -:106110000E94292FF12CE12C21E0C21AD108EC14A5 -:10612000FD0400F597FF11C024E92093BC00181668 -:10613000190614F490E080E0DF91CF911F910F9148 -:10614000FF90EF90DF90CF900895C8010E94D22F6A -:1061500097FD04C0FE01EE0DFF1D80832FEFE21AB4 -:10616000F20ADDCF97FDE0CFC8010E94F62F97FD20 -:10617000DBCFCC0DDD1D8883D7CF84E98093BC00B5 -:1061800008958EE14A9B02C08150E1F74A9BFECF01 -:1061900008955A9880E28A95F1F75A9A0895FC0179 -:1061A0003BE03A95F1F798E020E080E031E040E113 -:1061B0004A95F1F7880F4A9B02C08160232742E08D -:1061C0004A95F1F7000040E14A95F1F7915079F7CF -:1061D00090E19A95F1F799B132E03A95F1F7000024 -:1061E00040E14A95F1F792FB992790F99227208197 -:1061F000920F90830895EF92FF920F931F93CF9386 -:10620000DF930F92CDB7DEB719828C017C01E60EC9 -:10621000F11C0E151F0561F481E09981911180E058 -:106220000F90DF91CF911F910F91FF90EF90089504 -:106230000E94C130CE0101960E94CF30F8018193B7 -:106240008F01E7CF529A5A9A089552985A9AEA9A29 -:10625000E9E6F0E080818F7C808308956150770BC0 -:1062600091E001C0990F6A95EAF720E031E09111C1 -:1062700008C0222391F05A9A80E28A95F1F75A9841 -:106280000895492F482339F05A9A232740E24A9526 -:10629000F1F79695ECCF5A98F9CF5A98EDCFFF9237 -:1062A0000F931F93CF93DF93EC018C01060F111D09 -:1062B000C017D10731F4DF91CF911F910F91FF905B -:1062C0000895F9900E94C93068E08F2D0E942E3108 -:1062D000EFCF1F920F920FB60F921124EF92FF9201 -:1062E0000F931F932F933F934F935F936F937F93DE -:1062F0008F939F93AF93BF93EF93FF93CF93DF93CE -:106300000F92CDB7DEB719820E94C130CE0101963F -:106310000E94CF30A82FA695A695A695282F229546 -:1063200025709A2F9570290F922F93702695269598 -:10633000920F982797708981982B09F075C0A83023 -:1063400008F072C080E18A95F1F75A9A529AB2E049 -:10635000BA95F1F700C05A98EA2EF12CEAE0AE9F08 -:10636000D0011124AF5FBE4F1896ED91FC911997A3 -:106370003097B1F06091F0017091F10116962D9176 -:106380003C911797260F371F13968D919C91149768 -:10639000680F791F15964C91159712968C91099557 -:1063A0008AE08E9DF0018F9DF00D1124EF5FFE4F6E -:1063B0006581662351F02091F0013091F1018681D1 -:1063C0009781820F931F0E944F310E94C930F0E1E4 -:1063D000FA95F1F75A9852985A9A80E18A95F1F70E -:1063E0008AE08E9D80018F9D100D11240F5F1E4F3E -:1063F000D80112966C911297662371F12091F001E9 -:106400003091F10113968D919C91820F931F0E9400 -:10641000FB30D801ED91FC91882311F088E001C098 -:1064200082E080830E94C1300F90DF91CF91FF9175 -:10643000EF91BF91AF919F918F917F916F915F91FC -:106440004F913F912F911F910F91FF90EF900F90DF -:106450000FBE0F901F901895ED91FC91DFCF0F9319 -:106460001F93CF93DF93EC0108970CF0A9C08AE04B -:106470008C9FF0018D9FF00D1124EF5FFE4F808106 -:106480009181892B09F49CC0F894529A5A9885E01E -:106490008A95F1F700008C2F869585709C2F95705A -:1064A000890F982F937086958695890F8E0193E0BA -:1064B000000F111F9A95E1F7082B0E94C93000C008 -:1064C00068E0802F0E942E31A0E1AA95F1F7529842 -:1064D0005A9A4A9B27C087E090E04A9925C08AE0F3 -:1064E0008C9F80018D9F100D11240F5F1E4FF801AE -:1064F00065816623A1F12091F0013091F10186813F -:106500009781820F931F0E94FB30811128C0529AFD -:106510005A9AD801ED91FC9182E08083789482E0D0 -:1065200090E016C000C0D5CF0197B9F4529A5A9A9C -:106530008AE08C9FF0018D9FF00D1124EF5FFE4FDC -:106540000190F081E02D81E08083789481E090E0FB -:10655000DF91CF911F910F91089500C0BECF0E948F -:10656000C130B0E2BA95F1F75A98529AE0E1EA9553 -:10657000F1F78AE08C9FF0018D9FF00D1124EF5F01 -:10658000FE4F6281662351F02091F0013091F101BC -:1065900083819481820F931F0E944F310E94C930E2 -:1065A0008AE08C9FF0018D9FF00D1124EF5FFE4F6C -:1065B0000190F081E02D1082789490E080E0C8CFC7 -:1065C00084E090E0C5CFAA1BBB1B51E107C0AA1F06 -:1065D000BB1FA617B70710F0A61BB70B881F991F84 -:1065E0005A95A9F780959095BC01CD010895991B06 -:1065F00079E004C0991F961708F0961B881F7A95BA -:10660000C9F78095089597FB072E16F4009407D0DC -:1066100077FD09D00E94E33207FC05D03EF4909547 -:1066200081959F4F0895709561957F4F0895EE0F66 -:10663000FF1F0590F491E02D09946927962769279B -:106640007827872778270895FB01DC0102C0059091 -:106650000D9241505040D8F70895FB01DC0104C071 -:106660008D910190801921F441505040C8F7881B4A -:10667000990B0895FB01DC0102C001900D9241507D -:106680005040D8F70895F999FECF92BD81BDF89A90 -:10669000992780B50895A6E1B0E044E050E00C945D -:1066A0007D33A8E1B0E042E050E00C947D33262F2A -:1066B000F999FECF92BD81BDF89A019700B40216F8 -:1066C00039F01FBA20BD0FB6F894FA9AF99A0FBEA6 -:1066D00008950396272F0E9458330E945733252F81 -:1066E0000E945833242F0C9458330196272F0E9470 -:1066F00058330C945733DC01CB01FC01F999FECFE0 -:1067000006C0F2BDE1BDF89A319600B40D92415039 -:106710005040B8F708950E94CD3308F481E0089501 -:10672000E89409C097FB3EF490958095709561952B -:106730007F4F8F4F9F4F9923A9F0F92F96E9BB27E1 -:106740009395F695879577956795B795F111F8CF5D -:10675000FAF4BB0F11F460FF1BC06F5F7F4F8F4FC8 -:106760009F4F16C0882311F096E911C0772321F0BE -:106770009EE8872F762F05C0662371F096E8862F56 -:1067800070E060E02AF09A95660F771F881FDAF7AD -:10679000880F9695879597F90895990F0008550FDA -:1067A000AA0BE0E8FEEF16161706E807F907C0F097 -:1067B00012161306E407F50798F0621B730B840B9F -:1067C000950B39F40A2661F0232B242B252B21F479 -:1067D00008950A2609F4A140A6958FEF811D811D19 -:1067E00008950E9404340C9475340E94673438F084 -:1067F0000E946E3420F0952311F00C945E340C94BA -:10680000643411240C94A9340E94863470F3959F4B -:10681000C1F3950F50E0551F629FF001729FBB2797 -:10682000F00DB11D639FAA27F00DB11DAA1F649F33 -:106830006627B00DA11D661F829F2227B00DA11DE6 -:10684000621F739FB00DA11D621F839FA00D611D6C -:10685000221F749F3327A00D611D231F849F600D8D -:10686000211D822F762F6A2F11249F5750409AF0B6 -:10687000F1F088234AF0EE0FFF1FBB1F661F771F42 -:10688000881F91505040A9F79E3F510580F00C940D -:106890005E340C94A9345F3FE4F3983ED4F38695BC -:1068A00077956795B795F795E7959F5FC1F7FE2BAD -:1068B000880F911D9695879597F9089597F99F6789 -:1068C00080E870E060E008959FEF80EC0895002478 -:1068D0000A941616170618060906089500240A9445 -:1068E00012161306140605060895092E0394000CCB -:1068F00011F4882352F0BB0F40F4BF2B11F460FF5A -:1069000004C06F5F7F4F8F4F9F4F089557FD905882 -:10691000440F551F59F05F3F71F04795880F97FB63 -:10692000991F61F09F3F79F087950895121613061D -:106930001406551FF2CF4695F1DF08C0161617064C -:106940001806991FF1CF8695710561050894089581 -:10695000E894BB2766277727CB0197F90895F89429 -:10696000FFCFE7100F1162110F11621142117A115E -:10697000621177128412B014B014B914B914BB1494 -:10698000B914B914B914B014B014C014B914B914AA -:10699000C0141721172170217021A2214A214A21F8 -:1069A0004A21BC212D223D223D22832D872DCA2D37 -:1069B000DB2DE62D052E082E3B2E5C2ED82DD82D56 -:1069C000672E6A2E6E2E942EB62EB92EBB2EE02E7A -:1069D0000130020000000100000000300200000051 -:1069E0000501000000300200000001060000003038 -:1069F000020000000107000000300204080000004F -:106A00000000003002090C0000000000003002010C -:106A10001500000000000036323331F7F667669744 -:106A2000C6343500000000000180005F082B0E0A0C -:106A30000E060E020EF4F5010021007F2200030075 -:106A40004A004A4A01F6F731333236674C4159451C -:106A5000520042617365200047616D6520005261FC -:106A6000697365004C6F776572004C4F434B004370 -:106A7000617073004E756D005363726C00202020AE -:106A8000202000534F4C415200544D50535400812C -:106A90008283E200E900EA00B500B600B700CD004D -:106AA0008301CC008A019201940121022302240275 -:106AB0002502260227022A02B300B4006F007000EC -:106AC000A50200FF0100010000FFFF00000100011E -:106AD000FF0000081018181008000001020202024E -:106AE00002020202020240227B99017701FC0000AF -:066AF0000C190C390C002A +:105320008A3008F0ADC380913603909137030E9414 +:10533000371B089708F4A4C304E610E025E030E02A +:1053400041E353E064E084E10E947B30892B09F063 +:1053500068C31092380320912803222359F08091CA +:105360003303909134039827892798279093340327 +:105370008093330386E0EAE1F3E0DE019196019049 +:105380000D928A95E1F786E0FE01B196DE01119655 +:1053900001900D928A95E1F786E0FE013196ABE22D +:1053A000B3E001900D928A95E1F78091350387FD76 +:1053B00035C38091290390912A03009709F028C3EF +:1053C00060913103809132030091330310913403D3 +:1053D000222309F4F0C241E00E94F80C2091260338 +:1053E00030912703281B390B309327032093260382 +:1053F00041E0602F812F0E94F80C2091240330910E +:105400002503820F931F909325038093240364E266 +:1054100073E080E393E00E94D90C66E273E08FE2D0 +:1054200093E00E94D90C10922D0310922E0386E077 +:10543000EBE2F3E0DE01119601900D928A95E1F71F +:1054400086E0FE013196AAE1B3E001900D928A95C3 +:10545000E1F730911C0320911D0390911E03809170 +:105460001F03709116036091170340911803509128 +:105470001903F0911B03E0911503FE13D8C23323E7 +:1054800011F07313D4C2222311F02613D0C2882343 +:1054900011F08513CCC2992319F081E04913C8C2D9 +:1054A00080E0C6C286E992E068CD80915C048430D9 +:1054B00009F43AC00E94950D40E060E080E00E944F +:1054C0001E0D80E00E9456168091DD02811109C0F8 +:1054D000F092DD028091670481708093DC020E946B +:1054E000E20F1092460488E190E00FB6F894A89578 +:1054F000809360000FBE6092600083B7817F8460FC +:1055000083BF83B7816083BF7894889583B78E7F8C +:1055100083BF0FB6F894A89580916000886180934E +:105520006000109260000FBE80915B04882361F0E0 +:105530000E94521BE5E4F3E08191811170C4AFE455 +:10554000B3E0AE17BF07C1F780915C04853009F462 +:10555000ACCF10924F040E94F70F0E94BF0E0E9422 +:1055600056161092DD028091DC02882349F080916A +:10557000670481608093670460E086950E94071647 +:105580000E943E0DF5CDC394FF0C27E0C21206CE5B +:105590000F5F1F4F0A30110509F0F6CD8FEF8DA771 +:1055A0008EA71FA60E94461B8160782F99AB88ABFF +:1055B0004DA55EA56FA589A90E94B42410CE0E94B6 +:1055C000461B909313038093120360E080E00E94D7 +:1055D0009A080E94BF0E8093EF020E949C0E8823BF +:1055E00031F14091EB025091EC026091ED0270912B +:1055F000EE022FB7F8948091470490914804A0914F +:105600004904B0914A042FBF841B950BA60BB70B1E +:1056100081339547A105B10540F00E94950D809119 +:105620003F04882309F45CCE53CE0E94B00D0E9443 +:105630009C0E882309F4D3C061E080E00E949A08A0 +:1056400060E08CE791E00E94881362E080E00E94B5 +:105650009A08809166040E94890C823009F499C0EE +:1056600008F08EC0882309F494C0813009F497C0F3 +:1056700065E080E00E949A0860E08AE991E00E947B +:10568000881366E080E00E949A086091EF026695B8 +:1056900061708FE991E00E94881367E080E00E94CA +:1056A0009A086091EF026095617084EA91E00E942F +:1056B000881368E080E00E949A086091EF0262FB24 +:1056C000662760F988EA91E00E9488134091E7021A +:1056D0005091E8026091E9027091EA022FB7F894C4 +:1056E0008091470490914804A0914904B0914A04E4 +:1056F0002FBF841B950BA60BB70B8D329140A105D4 +:10570000B10508F48CCF0E9462086093E7027093A1 +:10571000E8028093E9029093EA028091E602811107 +:1057200004C080916701811142C06DE080E00E9459 +:105730009A0860E08DEA91E00E9488136AE080E0B8 +:105740000E949A0881E0809367018091E50290E0D1 +:105750000196817099278093E50221E030E0281BB3 +:10576000390B40E6429FC001439F900D11242091C8 +:10577000E402222351F1855C9B4F0E9492064FCF99 +:10578000833089F0843009F073CF60E08EE891E0D7 +:1057900003C060E082E891E00E94881369CF60E076 +:1057A00088E891E0F9CF60E084E991E0F5CF6AE024 +:1057B00080E00E949A0860E08DEA91E00E948813E0 +:1057C0006BE080E00E949A08C0CF2091E302222380 +:1057D00019F085589C4FD1CF85549D4FCECF64E0B2 +:1057E00080E00E949A0860E083EB91E00E948813B9 +:1057F00065E080E00E949A0860E089EB91E00E94F9 +:10580000881369E080E00E949A088BEF94E0B5CF9E +:105810008091110361E070E0811162CD082F10E0EA +:105820002B01082E02C0440C551C0A94E2F7A90172 +:1058300044215521452B09F448C09091100390FD57 +:1058400046C08295880F807680936A0198013695CC +:1058500027953695279520936D01815E80936B0186 +:1058600010926E0124E630E047E050E068E671E017 +:1058700088E70E942730892B09F032CDA80165E026 +:10588000440F551F6A95E1F78091100380FD2DC0EC +:1058900042595B4F04E610E020E230E060E488E724 +:1058A0000E944E30892B09F01BCD0E94B00DC20121 +:1058B0008095909540906C0450906D044822592238 +:1058C00050926D0440926C040BCD8F5FA7CF880F70 +:1058D000880F880F80936A0110926D01895F809311 +:1058E0006B0183E080936E01BDCFE0EFF2E080E2D8 +:1058F000DF011D928A95E9F7E6E0F2E0FBABEAAB47 +:1059000002E012E037E0A32E99249394AAA9BBA940 +:105910002D91BBABAAABF80121908F01240E352E3F +:10592000311CC10182599B4F1C01E22FF0E0E05174 +:10593000FD4F30E020E07A2C721AB92C022E01C003 +:10594000BB0C0A94EAF7610190E0D6018D916D01DC +:105950008B21672D691B6770862E062E000C770B36 +:10596000B82F01C0BB0F8A94EAF78B2E7195619511 +:1059700071096770772701C086956A95EAF7882ACA +:105980008081882A80829F5F9830F9F62F5F3F4F91 +:1059900031962830310579F6EAE0F2E02AA93BA9F0 +:1059A000E217F30709F0B2CF04E610E020E230E09E +:1059B00040EF52E073CF45E00E94F80C20912203A3 +:1059C00030912303820F931F90932303809322032C +:1059D00045E0602F812F0E94F80C20912003309128 +:1059E0002103281B390B309321032093200360E20D +:1059F00073E08DE293E00E94D90C62E273E08EE2E4 +:105A000093E00E94D90C1092300310922F030FCD17 +:105A1000019790932A038093290309CD84E190E0B4 +:105A2000F8CF809138038F5F8093380300CD81E0F9 +:105A300080FF0FC0E0914204F0914304309749F099 +:105A400082E080931A030480F581E02D8AE193E0DF +:105A5000099510921C0310921D0310921E031092C0 +:105A60001F0386E0EAE1F3E0A4E1B3E001900D92C8 +:105A70008A95E1F70E94461B909337038093360383 +:105A80000E94BF0E90913903891731F00E94BF0E1A +:105A9000809339030E94561680915C04843009F08B +:105AA0005ECB83E08093E9008091E80082FF57CBD2 +:105AB0008091E80090E085FF05C00E94F4068823ED +:105AC00099F091E08091E8008B778093E80099232A +:105AD00009F445CBE981E150E33108F076C0F0E00C +:105AE000EE51FB4C0C94243300E210E0CE01019601 +:105AF0007C018091E80085FD0AC08091E8008B77E9 +:105B00008093E8000E94F406882399F3DACF80910D +:105B1000F100D7018D937D010150110951F7D1CFCB +:105B20001A8289E08B8311C08A81823009F48FC187 +:105B3000833091F1813009F048C00E9462080E94D0 +:105B40002A336B837C838D839E8380915C048430B5 +:105B500009F005CB1091E9001F709091EC00892F9E +:105B6000817090FD80E8182B82E08093E90080919D +:105B7000E80080FF0DC050E040E060E270E0CE0140 +:105B800001960E9425078091E8008E778093E800B7 +:105B90001F701093E900E3CADE011396E5E4F3E019 +:105BA00081918D9323E0EF34F207D1F7CECF8A8134 +:105BB000823059F46B817C818D819E810E942A33D1 +:105BC00086E290E00E946433C0CF8FEF8983BDCF1F +:105BD0004C816B818A810E943014982789279827ED +:105BE0009E838D83B2CFED80FE80FE24EF24FE24C1 +:105BF0008A810B813EE0039F800111249CE8899FEC +:105C0000000D111D11248C8190E0880F991F080F41 +:105C1000191F6F2DC80187960E9464336E2DC8012D +:105C20008896D0CF0E94B41390CF8A818138C1F07A +:105C300060F4803809F089CF20E04B8160916904DD +:105C4000809168040E94F01480CF8238E9F0833894 +:105C500009F07BCF20E040916A046C818B81F2CF08 +:105C600060E08B810E9407168B81811103C00E9426 +:105C7000E20F6BCF8091670481608093670460E0DE +:105C800086950E94071661CF8B8180936B045DCF50 +:105C90008A81813899F030F4803809F056CF8091AC +:105CA0006A0440CF823891F0833809F04ECF80915A +:105CB00068048B83809169048C8347CF809167044B +:105CC00080FF02C086952ECF80E02CCF80916B04A0 +:105CD00029CF609167047091680480916904909164 +:105CE0006A040E94DE1431CF80E18A832ECF81E0E6 +:105CF0008A838DE117CFCA80DB80DC24CD24DC24AD +:105D00008E010F5F1F4FEC80E00EF12EF11CC601DB +:105D10008D519D4F0E151F0509F417CFADE1CA1621 +:105D2000A1E0DA0650F40E945033F8018483BFEFFB +:105D3000CB1ADB0A0F5F1F4FEACFD80114961C92D3 +:105D4000F6CF0A811B81102701271027FE0131960B +:105D50006F01EC80E00EF12EF11CC8018D519D4FBA +:105D6000E016F10609F4F1CE0D31F1E01F0728F439 +:105D7000D60114966C910E946433BFEFCB1ADB0AF4 +:105D80000F5F1F4FEACF0E94A413DFCE85E0ADCF97 +:105D9000CA80DB80DC24CD24DC248E010F5F1F4F02 +:105DA000EC80E00EF12EF11CC6018796E016F1069C +:105DB00009F4CBCEECEBCE16E2E0DE0658F40E94FE +:105DC0005033D80114968C93FFEFCF1ADF0A0F5F80 +:105DD0001F4FEACFF8011482F7CF0A811B811027E9 +:105DE000012710279E012F5F3F4F6901EC80E00ED5 +:105DF000F12EF11CC8018796E016F10609F4A5CE34 +:105E00000C3B32E0130728F4D60114966C910E94E3 +:105E10006433BFEFCB1ADB0A0F5F1F4FEBCF09BD17 +:105E200019BD09B400FEFDCF8091D8008F7D80930D +:105E3000D8008091E00082608093E0008091E000D3 +:105E400081FDFCCF10924F040E94F70F7DCB86E2BC +:105E500090E00E9450331B821C821D828E8375CE7F +:105E60001092B9008CE08093B80008959F92AF9291 +:105E7000BF92CF92DF92EF92FF920F931F93CF9337 +:105E8000DF93B82EEB010E94461B6C01EE24E394D5 +:105E9000F12CC431D10560F025E0E22EF12CCF3F8A +:105EA000DC0731F0CE0164E170E00E94F0327B014A +:105EB00084EAA82E94E8992E1092BC00A092BC000F +:105EC0000E94461B8C018091BC0087FF0DC0809111 +:105ED000B900887F883039F18091B900887F80319E +:105EE00011F10FEF1FEF09C00E94461B801B910BA1 +:105EF0008E159F0540F30EEF1FEFCF3FDC07E1F259 +:105F0000C6010E94371B8C179D07B0F2C801DF91B4 +:105F1000CF911F910F91FF90EF90DF90CF90BF90A6 +:105F2000AF909F900895B092BB009092BC000E94E9 +:105F3000461B8C018091BC0087FF0AC08091B9008C +:105F4000887F883111F0803461F610E000E0DECF08 +:105F50000E94461B801B910B8E159F0558F3CBCFDB +:105F60000F931F93CF93DF93EB018093BB0084E8E3 +:105F70008093BC000E94461B8C018091BC0087FF6F +:105F800011C02091B900287F81E090E0283211F4FF +:105F900090E080E0919581959109DF91CF911F91DB +:105FA0000F910895CF3FDC0741F30E94461B801BF1 +:105FB000910B8C179D0708F38EEF9FEFEECF0F9399 +:105FC0001F93CF93DF93EC0184EC8093BC000E947D +:105FD000461B8C018091BC0087FF08C08091BB00EC +:105FE00090E0DF91CF911F910F910895CF3FDC0793 +:105FF00089F30E94461B801B910B8C179D0750F361 +:106000008EEF9FEFEECF0F931F93CF93DF93EC01B3 +:1060100084E88093BC000E94461B8C018091BC00E8 +:1060200087FF08C08091BB0090E0DF91CF911F9166 +:106030000F910895CF3FDC0789F30E94461B801B18 +:10604000910B8C179D0750F38EEF9FEFEECFCF9201 +:10605000DF92EF92FF920F931F93CF93DF936B0129 +:106060008A017901B9010E94362FE6010C0D1D1D30 +:10607000C017D10761F424E92093BC00DF91CF91D0 +:106080001F910F91FF90EF90DF90CF90089597FDB3 +:10609000F2CFB70189910E94B02FEACFCF92DF9261 +:1060A000EF92FF920F931F93CF93DF93C62F6A0156 +:1060B0007901B8010E94362F97FD0CC0B8018C2FD2 +:1060C0000E94B02FE601EC0CFD1CCE15DF0511F08F +:1060D00097FF0CC024E92093BC00DF91CF911F9162 +:1060E0000F91FF90EF90DF90CF900895B8018991C4 +:1060F0000E94B02FEACFCF92DF92EF92FF920F93E0 +:106100001F93CF93DF93F82EE62EEA016901B801C1 +:106110000E94362F97FD15C0B8018E2D0E94B02F1A +:1061200097FD0FC0B8018F2D81600E94362FF12C92 +:10613000E12C21E0C21AD108EC14FD0400F597FF10 +:1061400011C024E92093BC001816190614F490E03D +:1061500080E0DF91CF911F910F91FF90EF90DF9042 +:10616000CF900895C8010E94DF2F97FD04C0FE0163 +:10617000EE0DFF1D80832FEFE21AF20ADDCF97FDAF +:10618000E0CFC8010E94033097FDDBCFCC0DDD1DB1 +:106190008883D7CF84E98093BC0008958EE14A9B21 +:1061A00002C08150E1F74A9BFECF08955A9880E2E1 +:1061B0008A95F1F75A9A0895FC013BE03A95F1F778 +:1061C00098E020E080E031E040E14A95F1F7880F67 +:1061D0004A9B02C08160232742E04A95F1F7000004 +:1061E00040E14A95F1F7915079F790E19A95F1F7EE +:1061F00099B132E03A95F1F7000040E14A95F1F7A4 +:1062000092FB992790F992272081920F908308950D +:10621000EF92FF920F931F93CF93DF930F92CDB71F +:10622000DEB719828C017C01E60EF11C0E151F05EC +:1062300061F481E09981911180E00F90DF91CF911D +:106240001F910F91FF90EF9008950E94CE30CE01E4 +:1062500001960E94DC30F80181938F01E7CF529ABA +:106260005A9A089552985A9AEA9AE9E6F0E080819B +:106270008F7C808308956150770B91E001C0990F66 +:106280006A95EAF720E031E0911108C0222391F0ED +:106290005A9A80E28A95F1F75A980895492F48232F +:1062A00039F05A9A232740E24A95F1F79695ECCFB8 +:1062B0005A98F9CF5A98EDCFFF920F931F93CF932F +:1062C000DF93EC018C01060F111DC017D10731F4CB +:1062D000DF91CF911F910F91FF900895F9900E9447 +:1062E000D63068E08F2D0E943B31EFCF1F920F9286 +:1062F0000FB60F921124EF92FF920F931F932F93DB +:106300003F934F935F936F937F938F939F93AF933D +:10631000BF93EF93FF93CF93DF930F92CDB7DEB789 +:1063200019820E94CE30CE0101960E94DC30A82F47 +:10633000A695A695A695282F229525709A2F95703B +:10634000290F922F937026952695920F9827977074 +:106350008981982B09F075C0A83008F072C080E1DF +:106360008A95F1F75A9A529AB2E0BA95F1F700C0BD +:106370005A98EA2EF12CEAE0AE9FD0011124AF5FCB +:10638000BE4F1896ED91FC9119973097B1F060913E +:10639000F0017091F10116962D913C911797260FFF +:1063A000371F13968D919C911497680F791F15963E +:1063B0004C91159712968C9109958AE08E9DF0016B +:1063C0008F9DF00D1124EF5FFE4F6581662351F024 +:1063D0002091F0013091F10186819781820F931F06 +:1063E0000E945C310E94D630F0E1FA95F1F75A989C +:1063F00052985A9A80E18A95F1F78AE08E9D800141 +:106400008F9D100D11240F5F1E4FD80112966C91B5 +:106410001297662371F12091F0013091F1011396EA +:106420008D919C91820F931F0E940831D801ED91AC +:10643000FC91882311F088E001C082E080830E94F3 +:10644000CE300F90DF91CF91FF91EF91BF91AF913F +:106450009F918F917F916F915F914F913F912F917C +:106460001F910F91FF90EF900F900FBE0F901F9014 +:106470001895ED91FC91DFCF0F931F93CF93DF938E +:10648000EC0108970CF0A9C08AE08C9FF0018D9F69 +:10649000F00D1124EF5FFE4F80819181892B09F46B +:1064A0009CC0F894529A5A9885E08A95F1F70000BA +:1064B0008C2F869585709C2F9570890F982F9370DF +:1064C00086958695890F8E0193E0000F111F9A958E +:1064D000E1F7082B0E94D63000C068E0802F0E94B0 +:1064E0003B31A0E1AA95F1F752985A9A4A9B27C0EE +:1064F00087E090E04A9925C08AE08C9F80018D9FBB +:10650000100D11240F5F1E4FF80165816623A1F164 +:106510002091F0013091F10186819781820F931FC4 +:106520000E940831811128C0529A5A9AD801ED91DF +:10653000FC9182E08083789482E090E016C000C0F5 +:10654000D5CF0197B9F4529A5A9A8AE08C9FF001FC +:106550008D9FF00D1124EF5FFE4F0190F081E02D33 +:1065600081E08083789481E090E0DF91CF911F916A +:106570000F91089500C0BECF0E94CE30B0E2BA9510 +:10658000F1F75A98529AE0E1EA95F1F78AE08C9F88 +:10659000F0018D9FF00D1124EF5FFE4F62816623A5 +:1065A00051F02091F0013091F10183819481820FAB +:1065B000931F0E945C310E94D6308AE08C9FF001CC +:1065C0008D9FF00D1124EF5FFE4F0190F081E02DC3 +:1065D0001082789490E080E0C8CF84E090E0C5CF4E +:1065E000AA1BBB1B51E107C0AA1FBB1FA617B707F9 +:1065F00010F0A61BB70B881F991F5A95A9F7809515 +:106600009095BC01CD010895991B79E004C0991FB4 +:10661000961708F0961B881F7A95C9F780950895FC +:1066200097FB072E16F4009407D077FD09D00E943F +:10663000F03207FC05D03EF4909581959F4F089568 +:10664000709561957F4F0895EE0FFF1F0590F491AF +:10665000E02D0994692796276927782787277827C7 +:106660000895FB01DC0102C005900D92415050409D +:10667000D8F70895FB01DC0104C08D9101908019C9 +:1066800021F441505040C8F7881B990B0895FB0135 +:10669000DC0102C001900D9241505040D8F708959E +:1066A000F999FECF92BD81BDF89A992780B50895DA +:1066B000A6E1B0E044E050E00C948A33A8E1B0E0F9 +:1066C00042E050E00C948A33262FF999FECF92BD18 +:1066D00081BDF89A019700B4021639F01FBA20BDA7 +:1066E0000FB6F894FA9AF99A0FBE08950396272FD9 +:1066F0000E9465330E946433252F0E946533242F46 +:106700000C9465330196272F0E9465330C946433F3 +:10671000DC01CB01FC01F999FECF06C0F2BDE1BD61 +:10672000F89A319600B40D9241505040B8F7089550 +:106730000E94DA3308F481E00895E89409C097FBD9 +:106740003EF490958095709561957F4F8F4F9F4F48 +:106750009923A9F0F92F96E9BB279395F69587958C +:1067600077956795B795F111F8CFFAF4BB0F11F44F +:1067700060FF1BC06F5F7F4F8F4F9F4F16C08823F6 +:1067800011F096E911C0772321F09EE8872F762F2C +:1067900005C0662371F096E8862F70E060E02AF06D +:1067A0009A95660F771F881FDAF7880F9695879559 +:1067B00097F90895990F0008550FAA0BE0E8FEEF2E +:1067C00016161706E807F907C0F012161306E407B5 +:1067D000F50798F0621B730B840B950B39F40A26AE +:1067E00061F0232B242B252B21F408950A2609F48C +:1067F000A140A6958FEF811D811D08950E9411343F +:106800000C9482340E94743438F00E947B3420F05F +:10681000952311F00C946B340C94713411240C9466 +:10682000B6340E94933470F3959FC1F3950F50E0F6 +:10683000551F629FF001729FBB27F00DB11D639F32 +:10684000AA27F00DB11DAA1F649F6627B00DA11DD8 +:10685000661F829F2227B00DA11D621F739FB00D7E +:10686000A11D621F839FA00D611D221F749F3327EE +:10687000A00D611D231F849F600D211D822F762F87 +:106880006A2F11249F5750409AF0F1F088234AF064 +:10689000EE0FFF1FBB1F661F771F881F91505040D0 +:1068A000A9F79E3F510580F00C946B340C94B634DC +:1068B0005F3FE4F3983ED4F3869577956795B79557 +:1068C000F795E7959F5FC1F7FE2B880F911D969571 +:1068D000879597F9089597F99F6780E870E060E0E1 +:1068E00008959FEF80EC089500240A941616170669 +:1068F00018060906089500240A94121613061406B1 +:1069000005060895092E0394000C11F4882352F013 +:10691000BB0F40F4BF2B11F460FF04C06F5F7F4FCB +:106920008F4F9F4F089557FD9058440F551F59F0B2 +:106930005F3F71F04795880F97FB991F61F09F3F6C +:1069400079F087950895121613061406551FF2CF95 +:106950004695F1DF08C0161617061806991FF1CFE5 +:1069600086957105610508940895E894BB2766270C +:106970007727CB0197F90895F894FFCFE7100F110F +:1069800062110F11621142117A1162117712841291 +:10699000B014B014B914B914BB14B914B914B9149F +:1069A000B014B014C014B914B914C01417211721AD +:1069B00070217021A2214A214A214A21BC212D2285 +:1069C0003D223D22902D942DD72DE82DF32D122E12 +:1069D000152E482E692EE52DE52D742E772E7B2E53 +:0A69E000A12EC32EC62EC82EED2EE8 +:1069EA000130020000000100000000300200000037 +:1069FA00050100000030020000000106000000301E +:106A0A000200000001070000003002040800000034 +:106A1A000000003002090C000000000000300201F2 +:106A2A001500000000000036323331F7F66766972A +:106A3A00C6343500000000000180005F082B0E0AF2 +:106A4A000E060E020EF4F5010021007F220003005B +:106A5A004A004A4A01F6F731333236674C41594502 +:106A6A00520042617365200047616D6520005261E2 +:106A7A00697365004C6F776572004C4F434B004356 +:106A8A00617073004E756D005363726C0020202094 +:106A9A00202000534F4C415200544D505354008112 +:106AAA008283E200E900EA00B500B600B700CD0033 +:106ABA008301CC008A01920194012102230224025B +:106ACA002502260227022A02B300B4006F007000D2 +:106ADA00A50200FF0100010000FFFF000001000104 +:106AEA00FF00000810181810080000010202020234 +:106AFA0002020202020240227B99017701FC000095 +:066B0A000C190C390C000F :00000001FF From 4fbaac918f954a0f20548fa3ad815ccab6cebcae Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 4 Nov 2021 17:31:59 -0400 Subject: [PATCH 32/94] Adjusted trackball precision. --- keyboards/solartempest/sofle/config.h | 2 +- .../solartempest/sofle/keymaps/via/keymap.c | 10 +- .../sofle/solartempest_sofle_via.hex | 2249 +++++++++-------- 3 files changed, 1159 insertions(+), 1102 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index a62b250b40a1..9abf1e2a6824 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -76,7 +76,7 @@ //#define SPLIT_LAYER_STATE_ENABLE //#define SPLIT_LED_STATE_ENABLE //#define SPLIT_MODS_ENABLE - #define OLED_LOGO //Enable to print custom logo on slave side, disable to save space. + #define OLED_LOGO //Enable to print snakey custom logo on slave side, disable to save space. #endif // Combo settings diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 862f76185eba..2b10e5887ebf 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -24,8 +24,8 @@ //Note that the keyboard animations below take a large amount of space! //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. Disable RGBLIGHT to make enough space. //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. - //#include "snakey.c" //OLED code for Snakey, customized from Luna. - #include "snakey_minimal.c" //OLED code for Snakey, without WPM/related animations to save space. + //#include "snakey.c" //OLED code for Snakey, customized from Luna. If not used, do not use OLED_LOGO in config.h. + #include "snakey_minimal.c" //OLED code for Snakey, without WPM/related animations to save space. If not used, do not use OLED_LOGO in config.h. #endif #ifdef POINTING_DEVICE_ENABLE @@ -279,7 +279,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case PM_PRECISION: if (record->event.pressed) { if (trackball_get_precision()==1){ //Enable toggling for trackball precision - trackball_set_precision(1.8); + trackball_set_precision(1.75); } else{ trackball_set_precision(1); } @@ -368,8 +368,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 layer_move(0); //start on layer 0 to get the lighting activated in all cases. Remove to save a very small amount of space. #ifdef POINTING_DEVICE_ENABLE - trackball_set_precision(1.8); - trackball_set_scrolling(true); + trackball_set_precision(1.75); //Start trackball with less precision + trackball_set_scrolling(true); //Start trackball in scrolling mode run_trackball_cleanup(); #endif } diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index ff3709b3aa6b..d0f6e145a720 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,7 +1,7 @@ -:100000000C9449060C9490060C9490060C9476314E +:100000000C9449060C9490060C9490060C940732BC :100010000C9490060C9490060C9490060C94900608 :100020000C9490060C9490060C943C1A0C94F819BD -:100030000C9438260C9490060C9490060C94900620 +:100030000C94D5260C9490060C9490060C94900683 :100040000C9490060C9490060C9490060C949006D8 :100050000C9490060C94131B0C9490060C94900630 :100060000C9490060C9490060C9490060C949006B8 @@ -200,30 +200,30 @@ :100C7000006F0066006C006500000010034B00650B :100C8000007900680069007600650000000403092F :100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 -:100CA00003FE27C08091700690917106A091720694 -:100CB000B09173068730904BA740B04BD1F410929F -:100CC000700610927106109272061092730614BE8E +:100CA00003FE27C080916F0690917006A091710697 +:100CB000B09172068730904BA740B04BD1F41092A0 +:100CC0006F0610927006109271061092720614BE92 :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0EAEEF9E602C0059045 +:100CF000099512E0A0E0B1E0E6E7FDE602C005904C :100D00000D92A632B107D9F726E0A6E2B2E001C003 -:100D10001D92A037B207E1F70E945F260C94BC3405 -:100D20000C940000CF93DF9340916E0650916F06B4 -:100D30004E5654409A01205A3F4F21303240C0F065 -:100D400020E032E0241B350B60916C0470916D043F +:100D10001D92AF36B207E1F70E94FC260C94823692 +:100D20000C940000CF93DF9340916D0650916E06B6 +:100D30004D5654409A01205A3F4F21303240C0F066 +:100D400020E032E0241B350B60916B0470916C0441 :100D5000FC01CA01240F351FC1E0D0E082179307C0 -:100D600050F070936D0460936C04DF91CF910895FF -:100D700020E630E0E9CF4491DC01A259BB4F5C9101 +:100D600050F070936C0460936B04DF91CF91089501 +:100D700020E630E0E9CF4491DC01A359BB4F5C9100 :100D8000451781F04C93AC01A5E056954795AA957F :100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 :100DA0006A2B752B01963196D9CFE8EDF0E0808162 :100DB0008E7F80831092E2001092DA001092E100A0 :100DC000A0EEB0E08C9181608C9380818F778083DE :100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 -:100DE000808310924E0408952091E4003091E50034 +:100DE000808310924D0408952091E4003091E50035 :100DF00095E6A9012091EC00822F817020FF06C0AA :100E00008091E80080FF06C080E008952091E8000E -:100E100022FD1AC080915C04882389F0853089F016 +:100E100022FD1AC080915B04882389F0853089F017 :100E20008091EB0085FD0FC02091E4003091E5003A :100E300042175307F9F29150E1F684E0089582E0F9 :100E4000089583E0089581E00895EF92FF920F9353 @@ -232,9 +232,9 @@ :100E70008093E8000E94F406882399F3C82F08C0E5 :100E8000F70181917F018093F1000150110949F729 :100E90008C2FCF911F910F91FF90EF90089580912B -:100EA0005E0487FF13C08091E80082FF06C0809136 -:100EB000E8008B778093E80004C080915C04811186 -:100EC000F2CF089580915C048823D9F38091E800E3 +:100EA0005D0487FF13C08091E80082FF06C0809137 +:100EB000E8008B778093E80004C080915B04811187 +:100EC000F2CF089580915B048823D9F38091E800E4 :100ED00080FFF8CF8091E8008E77ECCF982F909329 :100EE000E900242F762F50E0891731F07091EC0043 :100EF0002091ED005091F00021FD07C09F5F9730D9 @@ -244,51 +244,51 @@ :100F30005093F0002091EE0027FDE0CF80E008956F :100F4000CF92DF92EF92FF920F931F93CF93DF9395 :100F5000C8EDD0E088818F7E8883E7EDF0E0808166 -:100F60008160808384E082BF81E080934E04888129 +:100F60008160808384E082BF81E080934D0488812A :100F70008E7F888302EE10E0F80110821092DA0072 :100F800081EEC82ED12CF601108288818F7788835C :100F900088818068888388818F7D888319BC1092BE -:100FA0005C0410925D0410925B0410925A0490EE5F +:100FA0005B0410925C0410925A041092590490EE63 :100FB000E92EF12CF70180818B7F8083888181600D :100FC000888342E060E080E00E946E07F601808145 :100FD0008E7F8083F801808181608083808188603A :100FE0008083F70180818E7F808388818061888300 :100FF000DF91CF911F910F91FF90EF90DF90CF90F5 -:101000000895FC0180916404909165048617970708 +:101000000895FC018091630490916404861797070A :10101000A0F06115710529F49091E8009E779093F6 :10102000E80090E06115710551F4911108C08091BC :10103000E80082FF34C080E00895BC01F2CF8091C7 -:101040005C048823C1F18530C1F18091E80083FD03 +:101040005B048823C1F18530C1F18091E80083FD04 :1010500030C08091E80082FDEACF8091E80080FFF7 :10106000E1CF8091F3002091F200382F61157105D6 :1010700019F02830310558F091E02830310509F099 :1010800090E02091E8002E772093E800CBCF81916B :101090008093F100615071092F5F3F4FE7CF80913E -:1010A0005C04882341F0853041F08091E80083FFA3 +:1010A0005B04882341F0853041F08091E80083FFA4 :1010B000BECF81E0089582E0089583E00895809195 -:1010C000510408952FB7F894609147047091480433 -:1010D0008091490490914A042FBF089520914404BF -:1010E000309145042817390771F090934504809397 -:1010F0004404E0914204F0914304309721F00084CD -:10110000F185E02D09940895209140043091410427 -:101110002817390771F09093410480934004E091BF -:101120004204F0914304309721F00680F781E02DCE -:10113000099408952091330436E0839FC00111245F +:1010C000500408952FB7F894609146047091470436 +:1010D00080914804909149042FBF089520914304C2 +:1010E000309144042817390771F090934404809399 +:1010F0004304E0914104F0914204309721F00084D0 +:10110000F185E02D0994089520913F043091400429 +:101110002817390771F09093400480933F04E091C1 +:101120004104F0914204309721F00680F781E02DD0 +:10113000099408952091320436E0839FC001112460 :10114000629F800D911D1124811522E0920714F0F9 -:1011500090E080E082599B4F90936F0680936E06DB +:1011500090E080E083599B4F90936E0680936D06DC :101160000895FC01680F791F8FEF91E32191822789 :1011700028E030E087FF09C0880F89272150310916 :10118000C9F7E617F70791F70895880FF7CFFA0127 -:10119000811101C0FB01099480916704982F9E7F03 -:1011A00061F4817082608093670480916A04813A5F -:1011B00018F080EA80936A0408958831B0F3817052 +:10119000811101C0FB01099480916604982F9E7F04 +:1011A00061F4817082608093660480916904813A61 +:1011B00018F080EA8093690408958831B0F3817053 :1011C0008661F1CFAF92BF92DF92EF92FF920F93C1 :1011D0001F93CF93DF93082F162FE901E42FF0E040 :1011E000E55AFA4F611110C0E4915E2F4E2F4983EA :1011F000E8835A83DF91CF911F910F91FF90EF9079 :10120000DF90BF90AF900895E62EF12C4491D42E3C :10121000E42FF0E026E0829FC00111242FEF30E0A0 -:10122000B9010E94F032802F90E0880F991F55E598 +:10122000B9010E948133802F90E0880F991F55E506 :10123000569FD001579FB00D11248A1B9B0B982FEE :10124000990F890F5901AE18BF08AE9ED001AF9E0D :10125000B00DBE9EB00D11245B2F189F800111248C @@ -304,9 +304,9 @@ :1012F00080E0089578940895F894E82FE295EF70CF :10130000F0E031A1282F2F7081E090E001C0880F1C :101310002A95EAF7982F9095932391A392A1892B70 -:1013200082A30C947A099091CC0292FF06C0282FD8 +:1013200082A30C947A099091CF0292FF06C0282FD5 :1013300028712830F9F4877F846093FF06C0282F36 -:1013400028712831F1F4877E84612091CD0220FF3D +:1013400028712831F1F4877E84612091D00220FF3A :1013500006C0382F38713830D9F4877F816021FF7B :1013600006C0282F28712831D1F4877E816194FD31 :10137000877E0895282F24712430F9F68B7F8860AA @@ -319,21 +319,21 @@ :1013E000D30708F0F2C0CF3BD10508F089C0C83A56 :1013F000D10508F0DFC0C53AD10508F0D3C0C4302C :10140000D105F8F4C130D105E1F040C08533910534 -:1014100009F45AC0C997E9F68091CC02837089F02B +:1014100009F45AC0C997E9F68091CF02837089F028 :10142000C0EED0E00EC0833E910599F170F4803E8D -:10143000910501F1823E910561F68091CC0282FD19 +:10143000910501F1823E910561F68091CF0282FD16 :1014400021C0CE01DF91CF910895863E910561F1D3 :10145000873E910571F1843E910509F0BACF8091E4 -:10146000CD0281FFEECF8091CC02C7EED0E084FDAB -:101470000DC0E7CF8091CC0280FDF7C09091CD02E6 +:10146000D00281FFEECF8091CF02C7EED0E084FDA5 +:101470000DC0E7CF8091CF0280FDF7C09091D002E0 :1014800090FFDFCFC3EED0E084FFDBCFD0E0C0E041 -:10149000D8CF8091CC0282FDEBC09091CD0290FD1F -:1014A000BFCF84FFCECFF2CF8091CC0283FDDDCFC2 -:1014B000C8CF8091CC0283FDDEC09091CD0291FF18 -:1014C000F0CFC4EED0E0BDCF8091CC0285FFB9CF84 -:1014D000C9E2D0E0B6CF8091CC0285FFB2CFC5E3A0 -:1014E000D0E0AFCF8091CC0286FFABCFCAE2D0E094 -:1014F000A8CF8091CC0286FFA4CFC1E3D0E0A1CFDA +:10149000D8CF8091CF0282FDEBC09091D00290FD19 +:1014A000BFCF84FFCECFF2CF8091CF0283FDDDCFBF +:1014B000C8CF8091CF0283FDDEC09091D00291FF12 +:1014C000F0CFC4EED0E0BDCF8091CF0285FFB9CF81 +:1014D000C9E2D0E0B6CF8091CF0285FFB2CFC5E39D +:1014E000D0E0AFCF8091CF0286FFABCFCAE2D0E091 +:1014F000A8CF8091CF0286FFA4CFC1E3D0E0A1CFD7 :10150000C11540E2D40760F4C11581E0D80708F0A6 :1015100098CFCE01815E9109079708F492CFB6CF9C :10152000C11590E4D90708F4B1CFDF70D06A89CF34 @@ -358,8 +358,8 @@ :101650008F700E94930934E0D695C7953A95E1F7CB :10166000CF709C2FEC01D069ECCEC9E3D0E0E9CE7D :10167000C2EED0E0E6CEC6EED0E0E3CE0C94620837 -:1016800080914F0490918902892B90918802892B37 -:1016900080932802E0914204F0914304309731F0A6 +:1016800080914E0490918902892B90918802892B38 +:1016900080932802E0914104F0914204309731F0A8 :1016A0000280F381E02D88E292E009940895809110 :1016B000870290915602981301C008958F5F87703A :1016C000FACF27E0929F800D1124982F977086956E @@ -375,14 +375,14 @@ :1017600001968330910561F7089590E080E00E9432 :10177000840890E080E00E946E0810928902109226 :1017800088020C94400B80938A020C94B50B88233A -:1017900041F0809590914F04892380934F040C94DD -:1017A000400B0895882339F090914F04982B909323 -:1017B0004F040C94400B08958823B1F19CEF980FCF +:1017900041F0809590914E04892380934E040C94DF +:1017A000400B0895882339F090914E04982B909324 +:1017B0004E040C94400B08958823B1F19CEF980FD0 :1017C000913A70F4EAE2F2E09191891303C0DF01EB :1017D00011971C9242E0E033F407B1F70C94400BF0 :1017E00090E2980F983088F4877021E030E0A901EA :1017F00002C0440F551F8A95E2F7CA018095909167 -:101800004F04892380934F04E9CF9BE5980F9330D1 +:101800004E04892380934E04E9CF9BE5980F9330D3 :1018100020F490E080E00C948408885A873120F40A :1018200090E080E00C946E0808950F931F93CF937F :10183000C82F882309F469C08CEF8C0F813AB0F56A @@ -394,7 +394,7 @@ :10189000EAE2F2E02191C21303C0DF0111971C922A :1018A0008E179F07B9F70E94400BD6CF80E28C0FAE :1018B000883068F4C77021E030E001C0220FCA957B -:1018C000EAF780914F04822B80934F04DCCFEBE545 +:1018C000EAF780914E04822B80934E04DCCFEBE547 :1018D000EC0FE33050F4F0E0E154FE4F808190E0F3 :1018E000CF911F910F910C948408C85AC73168F4A6 :1018F000EC2FF0E0EE0FFF1FEE53FE4F8081918141 @@ -402,11 +402,11 @@ :101910000895982F92959F7011F0892F94E0282FA9 :101920002695269511F09E5F822F869509F09F5F80 :10193000892F0895CF93DF93CDB7DEB762970FB6A7 -:10194000F894DEBF0FBECDBF96E0EAE1F3E0DE0122 +:10194000F894DEBF0FBECDBF96E0E9E1F3E0DE0123 :10195000179601900D929A95E1F796E0FE01379661 :10196000DE011D9601900D929A95E1F798858823E6 :10197000E9F0962B9E8786E0FE013D96DE011196EA -:1019800001900D928A95E1F786E0FE013196AAE179 +:1019800001900D928A95E1F786E0FE013196A9E17A :10199000B3E001900D928A95E1F762960FB6F89444 :1019A000DEBF0FBECDBFDF91CF9108956095962326 :1019B000E1CFDC01FB0180819181803891054CF001 @@ -420,32 +420,32 @@ :101A3000819591090895681B20E0DFCF0F931F93D4 :101A4000CF93DF9300D000D0CDB7DEB789836A8310 :101A50004B831C8204E610E024E030E0AE014F5FCF -:101A60005F4F60E084E10E944E300F900F900F9026 -:101A70000F90DF91CF911F910F91089580912803CE +:101A60005F4F60E084E10E94DF300F900F900F9095 +:101A70000F90DF91CF911F910F91089580912703CF :101A8000882329F047E669E98BE20C941E0D6091EA -:101A9000590170915A0190E080E00E949D3320E04E -:101AA00030E040E05CE30E94FE3320E030E040E8BC -:101AB0005FE30E949833882321F047EC6BE180E0DC +:101A9000590170915A0190E080E00E94223520E0C7 +:101AA00030E040E05CE30E94153620E030E040E8A2 +:101AB0005FE30E94EE34882321F047EC6BE180E085 :101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 :101AD000FF920F931F93CF93DF936C017B0164E61A -:101AE00070E088E70E94362FEC0197FD12C010E0ED +:101AE00070E088E70E94C72FEC0197FD12C010E05C :101AF00000E0F601E00FF11F849164E670E00E94BF -:101B0000B02FEC01892B29F40F5F1F4F0E151F0515 -:101B100081F70E94CA30CE01DF91CF911F910F91C2 -:101B2000FF90EF90DF90CF90089580913E049091C8 -:101B30003F04911103C091E089270895882369F03B +:101B00004130EC01892B29F40F5F1F4F0E151F0583 +:101B100081F70E945B31CE01DF91CF911F910F9130 +:101B2000FF90EF90DF90CF90089580913D049091C9 +:101B30003E04911103C091E089270895882369F03C :101B400062E070E08CEE9BE00E94650D892B19F03D -:101B500080913E04089510923E0480913E04EBCFA4 -:101B6000CF93C0913E0480913F048823D1F00E941E -:101B700062086058774C8E4F9F4F60933A04709381 -:101B80003B0480933C0490933D04C11108C062E083 +:101B500080913D04089510923D0480913D04EBCFA7 +:101B6000CF93C0913D0480913E048823D1F00E9420 +:101B700062086058774C8E4F9F4F60933904709382 +:101B80003A0480933B0490933C04C11108C062E086 :101B900070E08AEE9BE00E94650D892B29F0C091D0 -:101BA0003E048C2FCF91089581E080933E04F7CFBF -:101BB00090915C04943029F580934B0470934D040C -:101BC00060934C049093E9008FEF9091E80081506E +:101BA0003D048C2FCF91089581E080933D04F7CFC1 +:101BB00090915B04943029F580934A0470934C040F +:101BC00060934B049093E9008FEF9091E80081506F :101BD00095FD06C095ED9A95F1F700008111F5CFBE :101BE0008091E80085FF0DC050E040E063E070E0C8 -:101BF0008BE494E00E9425078091E8008E77809323 +:101BF0008AE494E00E9425078091E8008E77809324 :101C0000E8000895BC0184E00C94D80DBC0183E089 :101C10000C94D80D9C0184E08093E9009FEF8091A3 :101C2000E800915085FD06C085ED8A95F1F700002A @@ -455,22 +455,22 @@ :101C6000E9008FEF9091E800815095FD06C095ED59 :101C70009A95F1F700008111F5CF8091E80085FF7A :101C800014C050E040E068E070E0CE010E942507FB -:101C90008091E8008E778093E80088E0FE01A2E55D +:101C90008091E8008E778093E80088E0FE01A1E55E :101CA000B4E001900D928A95E1F7DF91CF9108950C :101CB0009F92AF92BF92CF92DF92EF92FF920F93DB -:101CC0001F93CF93DF937C015B016A018091C70270 +:101CC0001F93CF93DF937C015B016A018091CA026D :101CD00001E010E08A3010F40AE010E0C1E0D0E04A :101CE000F894B501C701F6010995982E0E947A096A :101CF000911004C021960C171D076CF4892DDF91FB :101D0000CF911F910F91FF90EF90DF90CF90BF90F8 :101D1000AF909F900895CC9F9001CD9F300D300DD6 :101D2000112490E080E045E34A95F1F70000019628 -:101D300082179307C1F7D4CF80919702811110C009 +:101D300082179307C1F7D4CF80919A02811110C006 :101D40008091D80080618093D8008AE18A95F1F76C -:101D500000C08091D90080FF0AC081E08093970283 -:101D600081E090919702913009F080E0089582E03F -:101D7000809397020E94D50610925C04F1CF0E94D6 -:101D80009C0E882351F0E0914204F0914304309777 +:101D500000C08091D90080FF0AC081E080939A0280 +:101D600081E090919A02913009F080E0089582E03C +:101D700080939A020E94D50610925B04F1CF0E94D4 +:101D80009C0E882351F0E0914104F0914204309779 :101D900021F00190F081E02D099480E008951F93D7 :101DA000CF93DF93182FEB010E94150C8FE99FE072 :101DB0000197F1F700C000002197C1F7812FDF9153 @@ -478,10 +478,10 @@ :101DD0008F929F92AF92BF92CF92DF92EF92FF923B :101DE0000F931F93CF93DF93CDB7DEB7CE5DD109AD :101DF0000FB6F894DEBF0FBECDBF5090700190912A -:101E0000670490FF5DC08090530390905403811449 +:101E0000660490FF5DC0809052039090530381144C :101E1000910409F068C0E0E6F6E09E012F5F3F4FB5 :101E2000BE0161527F4FC901A4914A2F50E0DA01EF -:101E3000AA0FBB1FA40FB51FAB5ABC4FCD90DD90AE +:101E3000AA0FBB1FA40FB51FAC5ABC4FCD90DD90AD :101E4000EC90D901CD92DD92ED929D0131966A1709 :101E50007B0751F720916F0143E0249F800D911D76 :101E60001124539A2BB1277F3BB138605FB7F894A8 @@ -491,87 +491,87 @@ :101EA000CF911F910F91FF90EF90DF90CF90BF9057 :101EB000AF909F908F907F906F905F904F9008951C :101EC000809171012091720133E0839FF001112410 -:101ED000EB5AFC4F821708F096CF118210821282C3 +:101ED000EC5AFC4F821708F096CF118210821282C2 :101EE0008F5F3396F7CF90FF96CFD12CC12C66240D -:101EF0006394712C53E0452E8091520393010C2C76 +:101EF0006394712C53E0452E8091510393010C2C77 :101F000001C0220F0A94EAF7822309F43FC0F601C8 :101F1000EE0FFF1FE80DF91DE590F490E114F104B8 :101F200009F479CF45E050E0B701CE0101960E9457 -:101F3000313309810F3F51F18A81800F9927991F11 +:101F3000033409810F3F51F18A81800F9927991F3E :101F40008B34910514F08AE490E05C01AA0CBB1C70 -:101F50008A0D9B1DDC01AB5ABC4F5D01049D8001C5 -:101F600011240B5A1C4F0A151B0520F0B5E0EB0E8F +:101F50008A0D9B1DDC01AC5ABC4F5D01049D8001C4 +:101F600011240C5A1C4F0A151B0520F0B5E0EB0E8E :101F7000F11CD8CF4D81413A08F040EA98016C81BC :101F80008B810E94E2080D5F1F4FEDCFEFEFCE1A5D :101F9000DE0AF8E0CF16D10409F0AECF3CCFFC0149 :101FA0004191CF01E8E03BB9000000C047FF2BB9E9 :101FB000440F000000C000C000C02BB900C0EA956B -:101FC00091F75BCFE7E6F4E080818E7F8083EFE4DA +:101FC00091F75BCFE6E6F4E080818E7F8083EEE4DC :101FD000F3E08281816082832FEF80E792E02150DD :101FE00080409040E1F700C000000C94E40EEAE26B :101FF000F2E086E0DF011D928A95E9F70C94B50BBB :102000001F93CF93DF93CDB7DEB7AA970FB6F8949F -:10201000DEBF0FBECDBF8EE594E02091F100DC0164 -:102020002D93CD01B4E086369B07B9F780915F040C +:10201000DEBF0FBECDBF8DE594E02091F100DC0165 +:102020002D93CD01B4E085369B07B9F780915E040E :10203000833009F471C0B8F4813009F448C08230AB -:1020400009F4B4C08091E80083FF3CC180915E0434 -:1020500090915F049A3008F035C1E92FF0E0E25426 -:10206000FB4C0C9424338A3009F48FC08B3009F474 -:1020700070C0893039F780915E04813219F7809100 -:10208000620490916304009711F00297D9F6809151 +:1020400009F4B4C08091E80083FF3CC180915D0435 +:1020500090915E049A3008F035C1E92FF0E0EC571A +:10206000F94C0C94D4338A3009F48FC08B3009F4C6 +:1020700070C0893039F780915D04813219F7809101 +:10208000610490916204009711F00297D9F6809153 :10209000E800877F8093E8008091E80082FF37C0E6 :1020A0009091F3008091F200029729F48091F10061 -:1020B0008B7F813021F48091F100809351048091D5 +:1020B0008B7F813021F48091F100809350048091D6 :1020C000E8008B778093E8000E944F07BBCF809198 -:1020D0005E04813A09F0B6CF8091E800877F809353 -:1020E000E8008091620490916304892B61F468E0B8 -:1020F00082E594E070E00E9401088091E8008B770F +:1020D0005D04813A09F0B6CF8091E800877F809354 +:1020E000E8008091610490916204892B61F468E0BA +:1020F00081E594E070E00E9401088091E8008B7710 :102100008093E8009FCF60E090E080E0F3CF809183 -:102110005C048111C1CF96CF80915E04813A09F0B1 -:1021200091CF8091620490916304892B09F08ACF4A +:102110005B048111C1CF96CF80915D04813A09F0B3 +:1021200091CF8091610490916204892B09F08ACF4C :102130008091E800877F8093E8008091E80080FF2D :10214000FCCF809174018093F1008091E8008E773C -:10215000B9CF80915E04813209F074CF809162041E -:1021600090916304892B09F06DCF8091E800877FFF -:102170008093E8000E944F0780916004809374016F -:1021800010924F040E94F70F5DCF80915E04813260 +:10215000B9CF80915D04813209F074CF8091610420 +:1021600090916204892B09F06DCF8091E800877F00 +:102170008093E8000E944F0780915F048093740170 +:1021800010924E040E94F70F5DCF80915D04813262 :1021900009F058CF8091E800877F8093E8000E9483 -:1021A0004F0780916104809350044CCF80915E046E +:1021A0004F078091600480934F044CCF80915D0471 :1021B000813A09F047CF8091E800877F8093E8005B -:1021C0008091E80080FFFCCF80915004BCCF803824 -:1021D00099F0823809F076C0809162048F70873060 +:1021C0008091E80080FFFCCF80914F04BCCF803825 +:1021D00099F0823809F076C0809161048F70873061 :1021E00008F070C08093E9008091EB0085FB8827A0 -:1021F00080F91092E90006C080915A0490915B0426 +:1021F00080F91092E90006C08091590490915A0428 :10220000911182609091E800977F9093E80080930D :10221000F1001092F1008091E8008E77B5C188231B -:1022200009F4A2C1823009F04DC08091600481118F -:10223000A6C1809162048F702FEF280F263008F01E +:1022200009F4A2C1823009F04DC080915F04811190 +:10223000A6C1809161048F702FEF280F263008F01F :1022400041C08093E9002091EB0020FF98C19330BA :1022500031F48091EB0080628093EB0090C190910B :10226000EB0090619093EB0021E030E001C0220F81 :102270008A95EAF72093EA001092EA008091EB0039 -:102280008860EACF81111EC0109160041F77809191 +:102280008860EACF81111EC010915F041F77809192 :10229000E3008078812B8093E3008091E800877FC2 :1022A0008093E8000E944F078091E80080FFFCCFF8 :1022B0008091E30080688093E30082E0111183E065 -:1022C00080935C048091E80083FF0AC08091E8005D +:1022C00080935B048091E80083FF0AC08091E8005E :1022D000877F8093E8008091EB0080628093EB0021 :1022E000AA960FB6F894DEBF0FBECDBFDF91CF9197 -:1022F0001F9108958058823028F720916004309112 -:1023000061042C3DE3E03E07A1F583E08A838AE285 +:1022F0001F9108958058823028F720915F04309113 +:1023000060042C3DE3E03E07A1F583E08A838AE286 :1023100089834FB7F894DE01139620E03EE051E246 :10232000E32FF0E050935700E49120FF03C0E295C3 :10233000EF703F5FEF708E2F90E0EA30C0F0C796ED :102340008D939D932F5F243159F74FBF8091E80003 :10235000877F8093E8006AE270E0CE0101960E94D8 :1023600001088091E8008B778093E800ABCFC0969E -:10237000E7CF8091620490916304432F5527433047 +:10237000E7CF8091610490916204432F5527433049 :10238000510509F44AC078F54130510509F47AC085 :102390008BE590E0EEEEFBE04230510509F092CF84 -:1023A0002091E800277F2093E80020916404309179 -:1023B00065048217930708F49C0140E0211531055C +:1023A0002091E800277F2093E8002091630430917A +:1023B00064048217930708F49C0140E0211531055D :1023C00009F065C0411163C08091E80082FDC9CF6A -:1023D00080915C04882329F2853019F28091E8000D +:1023D00080915B04882329F2853019F28091E8000E :1023E00083FFF2CFBECF4132510509F43CC04232E7 :1023F000510509F067CF8330910508F063CFFC01E8 :10240000EE0FFF1FE75EFD4F0190F081E02D8A5E29 @@ -583,75 +583,75 @@ :10246000EBE7FCE0F4CF8330910508F02BCF880F29 :10247000991FFC01E15EFD4F0190F081E02D89E0A4 :1024800090E08ECF82E190E0E9E4FCE089CF80919A -:102490005C04882309F465CF853009F462CF80910C +:102490005B04882309F465CF853009F462CF80910D :1024A000E80083FD5ECF8091E80082FD8DCF8091B2 :1024B000E80080FF83CF9091F3008091F200211516 :1024C000310519F08830910550F041E0089709F086 :1024D00040E08091E8008E778093E8006FCF4491D0 :1024E0004093F1003196215031090196E8CF8038B0 :1024F00009F0E8CE8091E800877F8093E800809122 -:102500005D048093F10087CE8111DCCE10916004D0 +:102500005C048093F10087CE8111DCCE10915F04D2 :10251000123008F0D7CE8091E800877F8093E800E2 -:1025200010935D040E944F07112311F084E005C051 -:102530008091E30087FDFACF81E080935C0442E064 +:1025200010935C040E944F07112311F084E005C052 +:102530008091E30087FDFACF81E080935B0442E065 :1025400061EC81E00E946E0742E261EC84E00E944F :102550006E0742E261EC82E00E946E0742E260ECAC -:1025600083E00E946E07AECE80916004813009F056 -:10257000A9CE81E0933009F080E080935B04109253 +:1025600083E00E946E07AECE80915F04813009F057 +:10257000A9CE81E0933009F080E080935A04109254 :10258000E9008091E800877F8093E8000E944F0770 -:1025900099CE1F93CF93DF93162FC0916E06D091E3 -:1025A0006F068A30D1F420913304CE018E569440C8 -:1025B000622F70E00E94F032281B822F66E00E949A -:1025C0000433C82FC15020F4DF91CF911F9108959B -:1025D00060E080E20E94C912F5CF8D30E9F4CE565A -:1025E000D44020913304622F70E0CE010E94F0327B +:1025900099CE1F93CF93DF93162FC0916D06D091E4 +:1025A0006E068A30D1F420913204CE018D569440CB +:1025B000622F70E00E948133281B822F66E00E9408 +:1025C0009533C82FC15020F4DF91CF911F9108950A +:1025D00060E080E20E94C912F5CF8D30E9F4CD565B +:1025E000D44020913204622F70E0CE010E948133EA :1025F000281B822F9E01280F311D2115324018F013 -:1026000080E0D0E0C0E0C80FD11DC259DB4FD093AD -:102610006F06C0936E06D8CF96E0FE01A4E3B4E047 +:1026000080E0D0E0C0E0C80FD11DC359DB4FD093AC +:102610006E06C0936D06D8CF96E0FE01A3E3B4E04A :1026200001900D929A95E1F7803E90F186E0FE01CF -:1026300011928A95E9F7C0916E06D0916F0611113B -:1026400033C046E050E0BE0184E394E00E943A3398 -:102650009E012E563440892B91F52A5F3F4F4091C1 -:102660003304642F70E0C9010E94F032481B4630E9 +:1026300011928A95E9F7C0916D06D0916E0611113D +:1026400033C046E050E0BE0183E394E00E940C34C6 +:102650009E012D563440892B91F52A5F3F4F4091C2 +:102660003204642F70E0C9010E948133481B463058 :1026700010F4240F311D211572E0370710F030E0FF -:1026800020E022593B4F30936F0620936E069CCF7B +:1026800020E023593B4F30936E0620936D069CCF7C :10269000F6E08F9FB00111246655794F46E050E077 -:1026A000CE010E943133C7CF9E012A5F3F4FFE010A +:1026A000CE010E940334C7CF9E012A5F3F4FFE0137 :1026B0002E173F0731F2808180958193F9CFC901B0 :1026C00045E0969587954A95E1F741E050E0BA01DB -:1026D00002C0660F771F8A95E2F7CB0160916C0408 -:1026E00070916D04862B972BB9016B5F7F4FE5E0EE +:1026D00002C0660F771F8A95E2F7CB0160916B0409 +:1026E00070916C04862B972BB9016B5F7F4FE5E0EF :1026F00076956795EA95E1F702C0440F551F6A95F4 -:10270000E2F7842B952B90936D0480936C04A5CFF6 +:10270000E2F7842B952B90936C0480936B04A5CFF8 :10271000FF920F931F93CF93DF93EC01F62EFC01F2 :1027200001900020E9F78F0101501109C017D1076E :1027300030F0DF91CF911F910F91FF9008956F2D91 :1027400089910E94C912F2CFCF93DF93C3EED2E0FA -:1027500060E0CE010E9464332196C11584E0D80761 +:1027500060E0CE010E9436342196C11584E0D8078E :10276000B9F7DF91CF9108956F927F928F929F92E8 :10277000AF92BF92CF92DF92EF92FF920F931F938F :10278000CF93DF938AEAC82E86E0D82E91ECE92E0B :10279000F12CE701CC58D10936011BC0F501859019 -:1027A0009490692DC8010E946433682DC801019678 -:1027B0000E94643382E0A80EB11C0E5F1F4FC01749 +:1027A0009490692DC8010E943634682DC8010196A5 +:1027B0000E94363482E0A80EB11C0E5F1F4FC01776 :1027C000D10761F78EE0680E711C2E96CE15DF05DD :1027D00029F08E010E5011095301E0CF7E018CE8E3 :1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA :1027F000F80679F6DF91CF911F910F91FF90EF903E :10280000DF90CF90BF90AF909F908F907F906F9010 :102810000895CF93C82F6FEF811161E283E290E0BA -:102820000E9464336FEFC11160E184E290E00E9486 -:1028300064336FEFC11161E385E290E0CF910C94B6 -:10284000643380E00E94091460E086E290E00E9418 -:1028500064330E94B4130E94A41381E00C94091401 +:102820000E9436346FEFC11161E184E290E00E94B2 +:1028300036346FEFC11163E085E290E0CF910C94E4 +:10284000363480E00E94091460E086E290E00E9445 +:1028500036340E94B4130E94A41381E00C9409142E :102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 :102870002EE0629FC00DD11D11243CE8839FC00D46 -:10288000D11D1124CE0187960E945033082F10E0ED -:10289000102F0027CE0188960E9450339801282BD4 +:10288000D11D1124CE0187960E942234082F10E01A +:10289000102F0027CE0188960E9422349801282B01 :1028A000C901DF91CF911F910F910895462F853077 :1028B00038F47A3028F4673018F4672F0C94301409 :1028C00090E080E00895CF92DF92FF920F931F93E4 -:1028D000CF93DF936C010091660480918A02082BEC +:1028D000CF93DF936C010091650480918A02082BED :1028E000C7E0D0E010E0FC2EC8010C2E02C0959588 :1028F00087950A94E2F780FD0CC02197A0F7F12C90 :102900008F2DDF91CF911F910F91FF90DF90CF908E @@ -659,59 +659,59 @@ :1029200061F3EECFCF93DF93EC010E946314BE01FD :102930000E945614DF91CF910C94D609FC0180813E :1029400091810E949214292F2F7092959F7092501E -:102950009E3078F4E92FF0E0E853FB4C0C942433DC +:102950009E3078F4E92FF0E0E257F94C0C94D43330 :10296000803F19F020F4883E20F481E00895843FF0 :10297000E1F380E00895883EC0F3813FD1F7F5CFC1 :10298000822F869586958695089583E290E00E9431 -:102990005033813289F484E290E00E9450338031D8 -:1029A00059F485E290E00E94503391E0813309F0C0 +:102990002234813289F484E290E00E942234813131 +:1029A00059F485E290E00E94223491E0833009F0EE :1029B00090E0892F8170089580E0FCCFCF92DF9264 :1029C000EF92FF926B017C010E94CC08B701A60137 -:1029D00088E090E0FF90EF90DF90CF900C947633FA +:1029D00088E090E0FF90EF90DF90CF900C94483427 :1029E000AF92BF92CF92DF92EF92FF920F931F931D :1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E -:102A0000142FE22E8091670480FF4FC0E82FE695D7 -:102A1000AE2FB0E0A65FBD4F9C9190934F038E7F89 +:102A0000142FE22E8091660480FF4FC0E82FE695D8 +:102A1000AE2FB0E0A65FBD4F9C9190934E038E7F8A :102A2000823009F056C0413A08F040EA9E012F5F1B -:102A30003F4F6F2D802F0E94E2088091670480FF36 +:102A30003F4F6F2D802F0E94E2088091660480FF37 :102A400011C02B8139814A8180917101909172016D -:102A500053E0859FF0011124EB5AFC4F891798F140 -:102A60000E94E40E80916804801308C0809169047C -:102A70008F1104C080916A04811729F0809151035D -:102A800082608093510300936804F092690410936C -:102A90006A04EE2051F0609167047091680480919F -:102AA000690490916A040E94DE140F900F900F90B9 +:102A500053E0859FF0011124EC5AFC4F891798F13F +:102A60000E94E40E80916704801308C0809168047E +:102A70008F1104C080916904811729F0809150035F +:102A800082608093500300936704F092680410936F +:102A90006904EE2051F060916604709167048091A2 +:102AA0006804909169040E94DE140F900F900F90BB :102AB000DF91CF911F910F91FF90EF90DF90CF901A :102AC000BF90AF9008954183308322838F5F339608 :102AD000C5CF923039F6E2508E2F8170D82EE69510 :102AE000F0E0E55AF94FA590B490C12CBB24609159 :102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 -:102B0000A39E900DB29E900D112470E00E94F032B1 +:102B0000A39E900DB29E900D112470E00E9481331F :102B1000802FD11016C0860F40917101420F532FA4 -:102B2000511D9A01220F331F240F351F2B5A3C4F82 +:102B2000511D9A01220F331F240F351F2C5A3C4F81 :102B3000412F113A08F040EA6F2D0E94E208C39439 -:102B4000D6CF861BE9CFE7E6F4E0438121E1421BC3 -:102B500008F440E021E0628181810C94F014E7E602 +:102B4000D6CF861BE9CFE6E6F4E0438121E1421BC4 +:102B500008F440E021E0628181810C94F014E6E603 :102B6000F4E0438121E1420F08F44FEF21E062815C -:102B700081810C94F014E7E6F4E0628121E1621BAC -:102B800008F460E021E0438181810C94F014E7E6D1 +:102B700081810C94F014E6E6F4E0628121E1621BAD +:102B800008F460E021E0438181810C94F014E6E6D2 :102B9000F4E0628121E1620F08F46FEF21E04381EC -:102BA00081810C94F014E7E6F4E0818121E0438117 -:102BB000628188500C94F014E7E6F4E0818121E012 -:102BC00043816281885F0C94F01480916B048823A8 -:102BD00019F0815080936B046091670470916804D0 -:102BE0008091690490916A040C94DE1480916B04C6 -:102BF000833018F48F5F80936B0460916704709149 -:102C000068048091690490916A040C94DE14909198 -:102C1000670490FF27C0917081111DC0926090934E -:102C2000670480915103816080935103662351F0C2 -:102C300060916704709168048091690490916A04BE -:102C40000E94DE1420E040916A0460916904809142 -:102C500068040C94F0148C3010F09661E0CF880F6B +:102BA00081810C94F014E6E6F4E0818121E0438118 +:102BB000628188500C94F014E6E6F4E0818121E013 +:102BC00043816281885F0C94F01480916A048823A9 +:102BD00019F0815080936A046091660470916704D3 +:102BE00080916804909169040C94DE1480916A04C9 +:102BF000833018F48F5F80936A046091660470914B +:102C0000670480916804909169040C94DE1490919B +:102C1000660490FF27C0917081111DC0926090934F +:102C2000660480915003816080935003662351F0C5 +:102C300060916604709167048091680490916904C2 +:102C40000E94DE1420E04091690460916804809144 +:102C500067040C94F0148C3010F09661E0CF880F6C :102C6000982BDDCF089521E030E0A90102C0440F88 -:102C7000551F8A95E2F7CA0120915203662391F00D -:102C8000822B809352038091510380618093510382 -:102C900080915003811109C08091670460E086959E +:102C7000551F8A95E2F7CA0120915103662391F00E +:102C8000822B809351038091500380618093500385 +:102C900080914F03811109C08091660460E08695A0 :102CA0000C94071680958223ECCF0895CF93DF9381 :102CB000C82FC17082FBDD27D0F981FB662760F940 :102CC00085E00E94331661E06C2786E00E9433168F @@ -731,104 +731,104 @@ :102DA000813041F18C2FCF911F910F91089580E0D8 :102DB000D8CF833059F18430A9F720E040E56FEF98 :102DC0008AED0E94F01480910001882359F310923B -:102DD00028030DC020E040E56FEF82E30E94F0146D -:102DE00080910001882399F381E0809328030E9459 +:102DD00027030DC020E040E56FEF82E30E94F0146E +:102DE00080910001882399F381E0809327030E945A :102DF0003E0DD8CF20E040E56FEF8CEF0E94F0143D :102E0000D1CF20E040E56FEF80E5F8CF20E040E54E -:102E10006FEF86E7F3CF0E946E16809366040C94E2 -:102E2000B50B80916604982F9670963019F48860DF +:102E10006FEF86E7F3CF0E946E16809365040C94E3 +:102E2000B50B80916504982F9670963019F48860E0 :102E30000C940B17877FFCCF21E030E001C0220FFC -:102E40008A95EAF720958091660482230C940B17EB -:102E500021E030E001C0220F8A95EAF780916604F4 -:102E6000822B0C940B17809167048695815009F48E -:102E70008BE061E00C9407168091670486958F5F64 -:102E80008C3008F081E061E00C94071680916704B3 +:102E40008A95EAF720958091650482230C940B17EC +:102E500021E030E001C0220F8A95EAF780916504F5 +:102E6000822B0C940B17809166048695815009F48F +:102E70008BE061E00C9407168091660486958F5F65 +:102E80008C3008F081E061E00C94071680916604B4 :102E900080FF07C0869582588F77893010F40C9494 -:102EA0003C1761E082E00C940716E7E6F4E083E06B -:102EB000808311828FEF828380EA83831482AFE460 +:102EA0003C1761E082E00C940716E6E6F4E083E06C +:102EB000808311828FEF828380EA83831482AEE461 :102EC000B3E012968C911297836012968C93608176 :102ED0007181828193810C94DE1469EE7EEF90E023 -:102EE00080E00E94823360E082E090E00E946433E0 -:102EF00060E083E090E00E94643310928A0260E018 -:102F000084E090E00E94643360E082E290E00E94FE -:102F1000643360E085E090E00E94643360E086E026 -:102F200090E00E9464336FEF87E090E00E9464338A -:102F300040E050E0BA0188E090E00E94763360E023 -:102F40008DE090E00E94643340E050E0BA0188E1F7 -:102F500090E00E94763360E087E190E00E94643365 -:102F600040E050E0BA018CE190E00E94763370E0DE -:102F700060E080E290E00E94823340E050E0BA01DD -:102F800088E190E00E94763380E00E9409140E945C -:102F9000211440E050E0BA018FE090E00E947633C7 -:102FA00040E050E0BA0183E190E00C9476330F9357 +:102EE00080E00E94543460E082E090E00E9436343A +:102EF00060E083E090E00E94363410928A0260E045 +:102F000084E090E00E94363460E082E290E00E942B +:102F1000363460E085E090E00E94363460E086E080 +:102F200090E00E9436346FEF87E090E00E943634E4 +:102F300040E050E0BA0188E090E00E94483460E050 +:102F40008DE090E00E94363440E050E0BA0188E124 +:102F500090E00E94483460E087E190E00E943634BF +:102F600040E050E0BA018CE190E00E94483470E00B +:102F700060E080E290E00E94543440E050E0BA010A +:102F800088E190E00E94483480E00E9409140E9489 +:102F9000211440E050E0BA018FE090E00E944834F4 +:102FA00040E050E0BA0183E190E00C9448340F9384 :102FB0001F93CF93DF9300D000D0CDB7DEB7409101 -:102FC000BB025091BC026091BD027091BE022FB74E -:102FD000F8948091470490914804A0914904B091DD -:102FE0004A042FBF841B950BA60BB70B84369105A3 +:102FC000BE025091BF026091C0027091C1022FB742 +:102FD000F8948091460490914704A0914804B091E0 +:102FE00049042FBF841B950BA60BB70B84369105A4 :102FF000A105B10588F10E949C0E882379F10E94F9 :1030000062086E5F7F4F8F4F9F4F69837A838B83F8 -:103010009C8380912C0190912D018B559D4F409167 +:103010009C8380912C0190912D0188559D4F40916A :103020002B0150E04530510510F044E050E0BE0166 -:103030006F5F7F4F0E94473384E090E00E943C32F4 -:10304000892BD9F40E9462086093BB027093BC0282 -:103050008093BD029093BE0281E010C00E9462087E -:103060000091C8021091C9022091CA023091CB028E +:103030006F5F7F4F0E94193484E090E00E94CD3290 +:10304000892BD9F40E9462086093BE027093BF027C +:103050008093C0029093C10281E010C00E94620878 +:103060000091CB021091CC022091CD023091CE0282 :10307000600F711F821F931FC4CF80E00F900F90CD :103080000F900F90DF91CF911F910F9108958F9224 :103090009F92AF92BF92CF92DF92EF92FF920F93E7 :1030A0001F93CF93DF93EB0188809980AA80BB8028 -:1030B0009FB7F894C0904704D0904804E09049042A -:1030C000F0904A049FBFC818D908EA08FB0894E6A4 +:1030B0009FB7F894C0904604D0904704E09048042D +:1030C000F09049049FBFC818D908EA08FB0894E6A5 :1030D000C916D104E104F10410F4442311F1E82EDF :1030E000082E000CFF089AE08902F0011124EF5F1E -:1030F000FE4F838194818B559D4F428150E0041790 -:10310000150708F4A801B9010E944733C7010E94BE -:103110003C32892BA1F40E946208688379838A83F8 +:1030F000FE4F8381948188559D4F428150E0041793 +:10310000150708F4A801B9010E941934C7010E94EB +:10311000CD32892BA1F40E946208688379838A8367 :103120009B8381E0DF91CF911F910F91FF90EF90F2 :10313000DF90CF90BF90AF909F908F90089580E0E8 :10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD -:1031500080913E0489832091BA0290E041E02817D3 +:1031500080913D0489832091BD0290E041E02817D1 :10316000190609F440E001E010E09E012F5F3F4F97 -:1031700063EC72E086E00E9447180F90DF91CF91D8 +:1031700066EC72E086E00E9447180F90DF91CF91D5 :103180001F910F9108950F931F93CF93DF93CDB7A6 :10319000DEB729970FB6F894DEBF0FBECDBF85E02E -:1031A000E7E6F4E0DE01119601900D928A95E1F7D1 -:1031B00080914F0390915003A0915103B09152031D +:1031A000E6E6F4E0DE01119601900D928A95E1F7D2 +:1031B00080914E0390914F03A0915003B091510321 :1031C0008E839F83A887B98741E08885811101C0DC -:1031D00040E009E010E09E012F5F3F4F6FEB72E08F -:1031E00085E00E94471881111092510329960FB66D +:1031D00040E009E010E09E012F5F3F4F62EC72E09B +:1031E00085E00E94471881111092500329960FB66E :1031F000F894DEBF0FBECDBFDF91CF911F910F912D :1032000008956F927F928F929F92AF92BF92CF92CA :10321000DF92EF92FF920F931F93CF93DF930F9262 :10322000CDB7DEB7862E5A016901682E880F770860 -:10323000C3010E943C32892B09F088C08AE0869D38 +:10323000C3010E94CD32892B09F088C08AE0869DA7 :10324000F001879DF00D1124EF5FFE4F458150E0A6 :103250004115510511F041E050E08AE0869DF001F2 -:10326000879DF00D1124EF5FFE4F668177816B55CE -:103270007D4FCE0101960E944733F5014081518177 -:10328000628173812FB7F89480914704909148042C -:10329000A0914904B0914A042FBF841B950BA60B43 +:10326000879DF00D1124EF5FFE4F668177816855D1 +:103270007D4FCE0101960E941934F50140815181A4 +:10328000628173812FB7F89480914604909147042E +:10329000A0914804B09149042FBF841B950BA60B45 :1032A000B70B84369105A105B10540F4B701C801FB :1032B0000E94B1089981891709F44FC0082C000CAD -:1032C0009908C4010E943C32892B91F0B12C8B2DBE +:1032C0009908C4010E94CD32892B91F0B12C8B2D2D :1032D0000F90DF91CF911F910F91FF90EF90DF90B2 :1032E000CF90BF90AF909F908F907F906F900895F8 :1032F0008AE0889DF001899DF00D1124EF5FFE4F5B :10330000458150E0E416F50608F4A7018AE0889D9F :10331000F001899DF00D1124EF5FFE4F66817781EA -:103320006B557D4FC6010E944733B701C8010E940B +:1033200068557D4FC6010E941934B701C8010E943B :10333000B10899818913CACF0E946208F5016083A0 :10334000718382839383BB24B394C1CFB12CA70133 -:10335000B801C6010E944733BACFBB24B394F7CF5C +:10335000B801C6010E941934BACFBB24B394F7CF89 :10336000CF92DF92EF92FF920F931F93CF93DF9351 :1033700000D000D00F92CDB7DEB76B0185E0E82E0C -:10338000F12C06EA12E09E012F5F3F4F4DE952E01B +:10338000F12C09EA12E09E012F5F3F4F40EA52E024 :1033900061E080E00E940119882349F095E0FE0178 -:1033A0003196A8E9B2E001900D929A95E1F795E087 -:1033B000E8E9F2E0D60101900D929A95E1F70F90BD +:1033A0003196ABE9B2E001900D929A95E1F795E084 +:1033B000EBE9F2E0D60101900D929A95E1F70F90BA :1033C0000F900F900F900F90DF91CF911F910F9161 :1033D000FF90EF90DF90CF90089590E080E00E9402 -:1033E0005E33893E9E4F11F40C94C51480E008951D +:1033E0003034893E9E4F11F40C94C51480E008954A :1033F0001F920F920FB60F9211242F933F934F936A :103400005F936F937F938F939F93AF93BF93CF936C :10341000DF93EF93FF93D091E900DF708091EC0090 @@ -844,872 +844,929 @@ :1034B0008093E1008091DA0080FF24C08091D800E1 :1034C00080FF20C08091DA008E7F8093DA008091A7 :1034D000D90080FF9BC080E189BD82E189BD09B42C -:1034E00000FEFDCF81E080935C0480914E04811149 +:1034E00000FEFDCF81E080935B0480914D0481114B :1034F00009C00E94D5060E94A0078091E200846066 :103500008093E2008091E10080FF17C08091E2008B :1035100080FF13C08091E2008E7F8093E200809153 :10352000E20080618093E2008091D8008062809305 -:10353000D80019BC85E080935C048091E10084FF91 +:10353000D80019BC85E080935B048091E10084FF92 :1035400029C08091E20084FF25C080E189BD82E12D :1035500089BD89B5982F917080FFFBCF8091D800ED :103560008F7D8093D8008091E1008F7E8093E10071 :103570008091E2008F7E8093E2008091E200816082 -:103580008093E20080915D04882309F445C084E0C3 -:1035900080935C048091E10083FF27C08091E2006A +:103580008093E20080915C04882309F445C084E0C4 +:1035900080935B048091E10083FF27C08091E2006B :1035A00083FF23C08091E100877F8093E10082E068 -:1035B00080935C0410925D048091E1008E7F809383 +:1035B00080935B0410925C048091E1008E7F809385 :1035C000E1008091E2008E7F8093E2008091E20032 :1035D00080618093E20042E060E080E00E946E073C :1035E0008091F00088608093F000FF91EF91BF918F :1035F000AF919F918F917F916F915F914F913F918B :103600002F910F900FBE0F901F90189519BC10921C -:103610005C0410924E0476CF8091E30087FD93E026 -:1036200090935C04B7CF78941F921FB61F92112419 -:103630008F939F93AF93BF938091470490914804D9 -:10364000A0914904B0914A040196A11DB11D809337 -:10365000470490934804A0934904B0934A04BF914F +:103610005B0410924D0476CF8091E30087FD93E028 +:1036200090935B04B7CF78941F921FB61F9211241A +:103630008F939F93AF93BF938091460490914704DB +:10364000A0914804B09149040196A11DB11D809339 +:10365000460490934704A0934804B0934904BF9153 :10366000AF919F918F911F901FBE1F9018959C0145 -:103670004FB7F8948091470490914804A091490471 -:10368000B0914A044FBF821B930B08952FB7F89453 -:103690008091470490914804A0914904B0914A0454 -:1036A0002FBF08959F92AF92BF92CF92DF92EF9279 -:1036B000FF920F931F93CF93DF93CDB7DEB72F9772 -:1036C0000FB6F894DEBF0FBECDBF8E010F5F1F4F48 -:1036D0008AE0D8011D928A95E9F78EE4C82E81E030 -:1036E000D82EF12CE12CAA24A394B12CF6018191BF -:1036F0006F018F3F09F44AC0F894E82FE295EF700C -:10370000F0E021A18F70A50102C0440F551F8A95DA -:10371000E2F7CA01922F982B91A392A18095892359 -:1037200082A30E947A0900C0E7E4F1E030E020E0E3 -:10373000912C41914F3F09F47DC0A42FA295AF7009 -:10374000B0E090968C9190E04F7002C0959587956F -:103750004A95E2F780FD6EC08A2D022E01C0880FC7 -:103760000A94EAF7982A2F5F3F4F2730310509F76F -:10377000F601319780818F3F11F00E947C0950EA59 -:103780005A95F1F7F801EE0DFF1D90828FEFE81AC0 -:10379000F80A95E0E916F10409F0A8CF4AE050E0F4 -:1037A000B8018EEC92E00E943A337C01892B41F003 -:1037B0008AE0F801AEECB2E001900D928A95E1F753 -:1037C0001091D902E114F104B9F181E080938D02E6 -:1037D0000E94461B90938C0280938B0280918B02F7 -:1037E00090918C020E94371B069770F0AEECB2E00D -:1037F000E12FF0E0EB5BFC4F8D91819322E0A33D44 -:10380000B207D1F710928D0281E090E0EF28C1F06D -:103810002F960FB6F894DEBF0FBECDBFDF91CF91CC -:103820001F910F91FF90EF90DF90CF90BF90AF90DE -:103830009F90089580E096CF80918D028111CECF28 -:103840000E949C0EB82EE091D9028E01055F1F4F99 -:10385000882309F495C085E0D8011D928A95E9F77F -:10386000F0E09F012B5B3C4F79018091C702AE01D4 -:10387000405F5F4F6A018A3008F05AC040EB59E15F -:10388000B801C7010E94580E882309F468C042EEAF -:1038900055E2B801C7010E94580E882309F45FC0A1 -:1038A00047ED57E1B801C7010E94580E882309F47B -:1038B00056C043EC58E1B801C7010E94580E882356 -:1038C00009F44DC041EA58E1B801C7010E94580E01 -:1038D000882309F444C01092C702E091D802F0E0B6 -:1038E000AF014B5B5C4FD80110E0FA019191AF0141 -:1038F0008D91981731F09F0121503109F901808392 -:103900001B2DAC15BD0589F780919202882371F0BB -:1039100080919002909191020E94371B893E9340C2 -:1039200028F082EE0E94DC0B10929202812F70CF61 -:1039300080918E0290918F020E94371B843F9140AC -:1039400008F09CCFE091D802F0E0EB5BFC4FD8018F -:1039500011921D92AC15BD05D9F71B2DD5CF8091C5 -:10396000C7028F3F31F08F5F8093C7028A3008F41F -:10397000B4CF0E94461B90938F0280938E02E2CFB9 -:10398000F0E0EB5BFC4FF89485E0A6EAB2E0019032 -:103990000D928A95E1F765E070E086EA92E00E9478 -:1039A000B1088093A5020E947A09F894E091E1029F -:1039B000F0E0E252FD4F80818B878093AC0261E0A2 -:1039C00070E0C8010E94B1088093AB020E947A099E -:1039D000F894C090AD02D090AE02E090AF02F090AB -:1039E000B0028091930290919402A0919502B091BF -:1039F0009602C816D906EA06FB06D1F0C0929302D9 -:103A0000D0929402E0929502F09296020E949C0E4F -:103A100081110EC00E946208C61AD70AE80AF90A84 -:103A2000C092C802D092C902E092CA02F092CB02C0 -:103A30000E947A09F8948091B802882321F184FFCA -:103A400004C09091B9029093520380FF0DC0809101 -:103A5000B10280FF25C09091670491609093670444 -:103A600060E086950E9407168091B80281FF09C028 -:103A700020E04091B4026091B3028091B2020E94B2 -:103A8000F0141092B8020E947A09F8948091BA0258 -:103A9000882349F00E94B00D0E947A0980E0B8CED8 -:103AA0000E94E20FE1CF0E94950DF6CF5F926F92D8 -:103AB0007F928F929F92AF92BF92CF92DF92EF92BE -:103AC000FF920F931F93CF93DF9300D000D00F92FC -:103AD000CDB7DEB76C01FC0183819481892B31F075 -:103AE0008081918189238F3F09F05EC50F900F90EF -:103AF0000F900F900F90DF91CF911F910F91FF903A -:103B0000EF90DF90CF90BF90AF909F908F907F907D -:103B10006F905F9008950E946314182F682F898119 -:103B20009A810E94890B69817A81812F0E945614A3 -:103B30008C01F6018281882309F42BC5C8018251CA -:103B40009F45409708F0EEC48FEF93E00E945033FA -:103B5000025193EEA92E92E0B92E8111C7CF011127 -:103B60003AC01C821B82662463948AE0582E850129 -:103B70000F5F1F4FC5010E94503389831A8288232B -:103B800009F4B4CF9FEF980F9330A0F58A83698230 -:103B900032E0A30EB11CC8010E9450338B838823EE -:103BA00009F4A4CF8E010F5F1F4FF801208122235B -:103BB000F1F2213009F058C0918182819130E1F415 -:103BC0000E5F1F4F6AE070E0893311F460E570E02A -:103BD0000E94CF0E17C0A114F4E0BF0609F486CFEF -:103BE000C5010E945033811101C001502FEFA21A6C -:103BF000B20AB5CF5801D6CF923039F40E5F1F4FBD -:103C00000E94150C0F5F1F4FD0CF933029F40E5F29 -:103C10001F4F0E94DC0BF6CF943019F00F5F1F4F3F -:103C2000F1CF0E5F1F4F30E020E0B8016F5F7F4F94 -:103C3000F80141818053990B8A30910550F0215051 -:103C4000310900F38FE99FE00197F1F700C0000010 -:103C5000F6CF529EF001539EF00D11249C012E0FC1 -:103C60003F1F842F8B01E1CFE22FF0E0E75FFD4F94 -:103C70007490822F86958695869590E0FC01E7509A -:103C8000FE4FE4902770F12C022E02C0F594E794C9 -:103C90000A94E2F7E1E0EE22FF24FC01E751FE4F37 -:103CA000C490D12C022E02C0D594C7940A94E2F796 -:103CB000F1E0CF22DD24FC01E752FE4F8490912CED -:103CC00002C0959487942A95E2F721E082229924F4 -:103CD000E114F10419F081EE0E94150CC114D10415 -:103CE00019F086EE0E94150C39E36AE070E0731259 -:103CF00002C060E570E0872D0E94CF0ECD2819F03C -:103D000086EE0E94DC0BEF2819F081EE0E94DC0B9E -:103D1000892809F477CF6AE070E08CE259CF81E01E -:103D20000E94281703C081E00E941C170F900F907B -:103D30000F900F900F90DF91CF911F910F91FF90F7 -:103D4000EF90DF90CF90BF90AF909F908F907F903B -:103D50006F905F900C94111782E0E2CF043F110541 -:103D600009F455C108F057C1053E110509F4DDC03D -:103D7000F601928191113CC280914F0482720A3CFB -:103D8000FCE51F0709F414C208F06AC1053C3CE5D4 -:103D9000130709F4F9C108F04EC1033C5CE51507AF -:103DA00009F4D3C108F0EBC1023C1C4509F47DC104 -:103DB000F60100811181992309F434C2C8010E94DF -:103DC0006314F82E682FC8010E94890BB8018F2D4B -:103DD0000E9456140E94D609182FB82EF60122818F -:103DE0004581342F32953F70892F82958F70E82E50 -:103DF000F12C8C3008F04EC2F701EA52FB4C0C94C7 -:103E000024330338FFE51F0709F481C018F5013892 -:103E10003FE5130709F44AC008F065C000385FE5C4 -:103E2000150709F0A5CF882309F459C080919202A3 -:103E3000811106C081E08093920282EE0E94150CEF -:103E40000E94461B90939102809390028BE20E9405 -:103E5000150C8ECF05389FE5190709F4BEC008F48C -:103E600076C00638FFE51F0709F082CF882309F4E2 -:103E7000CEC06091590170915A0190E080E00E949B -:103E80009D3320E030E040E05CE30E94FE3320E020 -:103E900030E040E85FE30E9498338111B5C086EEC0 -:103EA00090E090935A0180935901A1C08823A1F01A -:103EB00080919202811106C081E08093920282EE8D -:103EC0000E94150C0E94461B9093910280939002D1 -:103ED00081EE0E94150CBACF81EE0E94DC0B8BE2C2 -:103EE0000E94DC0B45CF882309F442CF81EE0E946B -:103EF000150C83EE0E94150C8FE40E94150C8FE4C4 -:103F00000E94DC0B83EE0E94DC0B81EEE9CF88235C -:103F100009F42ECF81EE0E94150C83EE0E94150C41 -:103F200080E50E94150C80E5EBCF8093340210935E -:103F3000330200933202882321F081E08093E4026F -:103F400017CF1092E40214CF80933102F0CF882370 -:103F500079F180913102882349F0809132020E94E8 -:103F6000DC0B80EE0E94150C8AE20CC080913402BA -:103F70008823D1F3809132020E94DC0B80EE0E94F4 -:103F8000150C8CE40F900F900F900F900F90DF9115 -:103F9000CF911F910F91FF90EF90DF90CF90BF9046 -:103FA000AF909F908F907F906F905F900C94150CC6 -:103FB0008AE20E94DC0B8CE40E94DC0B80EE0E9403 -:103FC000DC0B80913102811105C08091340288237D -:103FD00009F48CCD80913202D5CF8823C1F0809135 -:103FE0002803882339F010922803109200010E94C0 -:103FF0003E0DBECE809100018111F7CF81E080930C -:10400000280380930001F3CF80E890E04ACF61E07D -:104010000E949A0CADCE62E0FBCF64E0F9CF88231A -:1040200021F081E08093E302A3CE1092E302A0CEC0 -:104030001092E6029DCE073C2CE5120709F4AEC0B3 -:1040400008F4A7C0083C4CE5140709F4ACC0093CCF -:104050001C4509F0ADCE43EA55E16FEA75E179C040 -:10406000043DECE51E07A8F40E3CFCE51F0708F034 -:104070003DCD0C3C2CE5120709F49FC045EE55E1FF -:1040800066EF75E10D3C1C4508F463C061E081E01A -:1040900046C0053D4CE5140709F428CD08F492C04C -:1040A0000D351D4509F422CD83CE8091670480FF34 -:1040B00031C08E7F809367046091670470916804BB -:1040C0008091690490916A040E94DE1480915103EA -:1040D0008160809351039FEFE0E7F2E09150E04070 -:1040E000F040E1F700C000000F900F900F900F908C -:1040F0000F90DF91CF911F910F91FF90EF90DF9084 -:10410000CF90BF90AF909F908F907F906F905F9077 -:104110000C94E40E81608093670461E086950F90B3 -:104120000F900F900F900F90DF91CF911F910F91F3 -:10413000FF90EF90DF90CF90BF90AF909F908F90C7 -:104140007F906F905F900C94071643E357E16CE308 -:1041500077E10F900F900F900F900F90DF91CF911C -:104160001F910F91FF90EF90DF90CF90BF90AF9095 -:104170009F908F907F906F905F900C94C7084CE356 -:1041800057E163E377E1E5CF43ED55E16CED75E190 -:10419000E0CF4CED55E163ED75E1DBCF4BEB55E145 -:1041A00067EC75E1D6CF47EC55E16BEB75E1D1CF0C -:1041B0004FEA55E163EA75E1CCCF46EF55E165EE94 -:1041C00075E1C7CF0F900F900F900F900F90DF9178 -:1041D000CF911F910F91FF90EF90DF90CF90BF9004 -:1041E000AF909F908F907F906F905F900C94461748 -:1041F0000E3D1C4509F0DCCD0F900F900F900F90F5 -:104200000F90DF91CF911F910F91FF90EF90DF9072 -:10421000CF90BF90AF909F908F907F906F905F9066 -:104220000C946D17C8010E94610BF82ECFCD092F99 -:104230000F70907F11F00295007F812F2223C9F02B -:10424000002369F090E2910F983010F011110BC02B -:1042500080914F04082B00934F040E94400B812F44 -:104260000E94150C17C080918902082B00938902C7 -:10427000F4CF0E94DC0B002369F00095105E18302B -:1042800010F0B11027C080914F04082300934F0411 -:104290000E94400B98E0E91AF108E4E0EE16F10400 -:1042A00008F024CC0E94BF0E0F900F900F900F903B -:1042B0000F90DF91CF911F910F91FF90EF90DF90C2 -:1042C000CF90BF90AF909F908F907F906F905F90B6 -:1042D0000C94561680918902082300938902D8CF46 -:1042E000892F8F70907F903211F08295807FF1E05E -:1042F000BF120CC0222329F0333060F60E94D20B8B -:10430000C9CF323038F60E94C70BC4CF222341F008 -:104310003323A1F340FFA3CF4F70F6014583EECFC7 -:10432000332389F3193309F0F5C0FFEF27EE33E0AB -:10433000F15020403040E1F700C00000812F0E9482 -:10434000DC0BA8CF892F86958695837061F081302C -:1043500009F0A0CF812F9370211102C090E080E07E -:104360000E946E0897CF812F9370211102C090E0B8 -:1043700080E00E9484088ECF892F8370A1F52111DF -:1043800089CF812F829586958770880F880F412F5E -:104390004F70082E01C0440F0A94EAF7212F2071B4 -:1043A00014FF07C02FE030E001C0220F8A95EAF722 -:1043B0002095969596959370923081F0822F842B5C -:1043C000933030F480918A02913029F0242B82239B -:1043D0000E94C30B5FCF842B822BFACF242B8091BA -:1043E0008A028227F5CF8695222311F0892F8170CA -:1043F000882309F44FCF812F829586958770880F87 -:10440000880F412F4F70082E01C0440F0A94EAF71D -:10441000212F207114FF07C02FE030E001C0220FD0 -:104420008A95EAF72095969596959370923081F04B -:10443000822F842B933030F480916604913029F0E0 -:10444000242B82230E940B1725CF842B822BFACF9B -:10445000242B809166048227F5CF092F0F70222329 -:1044600029F0802F0E942817812F48CF812F0E948A -:10447000C70B802F0E941C170DCF812FE1EF1E1755 -:1044800089F1E11750F0F0EF1F17B9F02223B1F1D5 -:104490003111E5CE892F8F7129C042EF141749F1F0 -:1044A00053EF1513F3CF80E0222361F29F7181E077 -:1044B00001C0880F9A95EAF7C5CF222379F03230F0 -:1044C00008F0E8CE292F2F7181E090E001C0880F1D -:1044D0002A95EAF7909166048927B4CF333008F023 -:1044E000D9CEF0CF892F8F71222321F20E94281775 -:1044F000D1CE892F8F712223C9F3BCCF332379F01A -:10450000893341F48FEF97EEE3E081509040E04033 -:10451000E1F712CF8FE39CE90197F1F70DCF892FD7 -:104520008F71A8CF0031FFE51F0709F4F8CB0131E7 -:104530002FE5120709F410CC0E9462086093EB0289 -:104540007093EC028093ED029093EE02F60182816B -:10455000063F110509F461CD08F053CC043E110566 -:1045600009F45DCD08F0FACB003E110509F457CDF2 -:10457000013E110509F4E8CC0C32110509F0F8CB25 -:10458000882309F455CD81E08093E60210926701FB -:10459000EFCB00313FE5130709F4C5CB01314FE5FF -:1045A0001407A1F682E0C0CB85E0DE0111960190F0 -:1045B0000D928A95E1F7F601228189819A81211174 -:1045C000AACA0E94610B182FAECA1F93CF93DF9324 -:1045D00080915502807FA9F480915202882389F04E -:1045E00080918702D09156026091500270915102E1 -:1045F000A0915302B0915402C62FC72316E0D813DE -:1046000004C0DF91CF911F91089590E0109711F0B1 -:10461000CF3F19F401968770F2CF189F9001199F30 -:10462000300D1124F901E95AFD4F41814713F2CFB2 -:1046300040814613EFCF42814111ECCF4381548139 -:104640004A1B5B0B403A510528F7809155028F7049 -:10465000806180935502F901E45AFD4F80818F708B -:104660008061808380E592E00E94561DDF91CF91AA -:104670001F910C94570BAF92BF92CF92DF92EF92A3 -:10468000FF920F931F93CF93DF93CDB7DEB7619760 -:104690000FB6F894DEBF0FBECDBF8C0185E0F801E8 -:1046A000DE011D9601900D928A95E1F7F801E280F6 -:1046B00080E5A82E82E0B82E6091530270915402DA -:1046C0006115710509F432C1909150024091510277 -:1046D000892F84238F3F09F429C120813181C38030 -:1046E000D480F0905202F601E61BF70BFF2009F48C -:1046F000E8C080915502582F507FE03AF10508F04C -:10470000ABC0511177C0FE2C431321C092131FC0C0 -:10471000E1101DC08F70806180935502C5010E9419 -:10472000561D80915502F80185838F2D61960FB635 -:10473000F894DEBF0FBECDBFDF91CF911F910F91D7 -:10474000FF90EF90DF90CF90BF90AF900895CD286D -:1047500029F0822F83238F3F09F003C180E0F82FD7 -:10476000F170DF2E80FF3CC080918702409156029D -:1047700056E0841315C02D873E878D859E850E9447 -:104780009214292F22952F702230F0F0243018F542 -:104790009F70F1F0F8019581907FD1F4D12C1EC06B -:1047A00090E0589FF001599FF00D1124E95AFD4FF8 -:1047B0006181361306C06081261303C06281E61250 -:1047C0000FC001968770D5CF9F7011F0882331F309 -:1047D000805E883018F3C8010E94561DFD2CA5CFBD -:1047E000EE2009F4A2CF809155028160809355029A -:1047F000F12C9BCF431306C0921304C0F801EE20A6 -:1048000009F479C0C8010E949E14882309F1EE20A2 -:10481000F9F080915502803270F020915002309171 -:10482000510238872F831986DB86CA868C87CE0192 -:1048300007960E94561D86E0F801A0E5B2E00190BF -:104840000D928A95E1F70E94E522FF24F3946DCF43 -:10485000C8010E94561DF9CF51110AC080E592E0AF -:104860000E94561D86E0F50111928A95E9F7C0CFA6 -:1048700043130FC092130DC0E1100BC0F8018583E4 -:10488000C8010E94561D86E0F50111928A95E9F74C -:104890004CCFC8010E949E148823D1F2EE20C1F2B1 -:1048A00080915502803238F22091500230915102AD -:1048B0003A8329831B82DD82CC828E83CE010196CE -:1048C000B8CFE03AF105F8F6FE2CEE2009F24313DA -:1048D0001FC092131DC08091550280FD10C0982FFB -:1048E000907F69F0F8018583903F31F0982F907F99 -:1048F000905F8F70892B8583C8010E94561D86E0CA -:10490000F801A0E5B2E001900D928A95E1F70DCF94 -:10491000C8010E949E1481118ECF80915502816042 -:1049200080935502C8010E94561DFFCEEE2009F467 -:104930008FCFC8010E949E14F82E882309F488CFD7 -:1049400086E0F801A0E5B2E001900D928A95E1F7CA -:1049500080915002909151020E9492140E94E5228F -:10496000E4CE81E08E25FBCE1F93CF93DF93CDB7AE -:10497000DEB767970FB6F894DEBF0FBECDBF4B8B87 -:104980005C8B6D8B7E8B8F8B6111109289021A8AE2 -:10499000198A85E0FE017396DE011D9601900D9245 -:1049A0008A95E1F786E0FE013D96DE0117960190BB -:1049B0000D928A95E1F7CE0107960E943B2388234A -:1049C00089F016E0809187029091560289134BC0BE -:1049D00067960FB6F894DEBF0FBECDBFDF91CF91C3 -:1049E0001F91089586E0FE013796DE011196019031 -:1049F0000D928A95E1F78A859B85892B11F38F812A -:104A0000988589238F3FE9F22091560230E0C90151 -:104A1000019687709927409187024817190681F4FB -:104A200010924F040E94F70F1092560210928702C4 -:104A300086E0E0E5F2E0DF011D928A95E9F7C1CF5B -:104A400096E0929FD001939FB00D1124A95ABD4FBB -:104A5000FE01319601900D929A95E1F780935602EE -:104A60000E94570BAECF819FC0011124895A9D4FE0 -:104A70000E943B23882309F4ABCF8091870290E00A -:104A8000019687709927809387029CCF0F931F937D -:104A9000CF93DF93CDB7DEB7A8970FB6F894DEBFFC -:104AA0000FBECDBF81114DC006E0662359F10CA3A6 -:104AB00011E01DA31EA30E94461B8160782F98A7BA -:104AC0008FA34CA15DA16EA188A50E94B4240F8F75 -:104AD00018A319A20E94461B8160782F9BA38AA36A -:104AE0004F8D58A169A18BA10E94B42481E0A896A2 -:104AF0000FB6F894DEBF0FBECDBFDF91CF911F91EF -:104B00000F9108950A8F13E01B8F81E08C8F0E9414 -:104B1000461B8160782F9E8F8D8F4A8D5B8D6C8DAB -:104B20008E8D0E94B4240D8B1E8B1F8A0E94461B03 -:104B30008160782F998F888F4D895E896F89898DE3 -:104B4000D3CF813099F66623F1F016E0188B198BDC -:104B50008A8B0E94461B8160782F9C8B8B8B4889A7 -:104B600059896A898C890E94B4241B871C871D86F9 -:104B70000E94461B8160782F9F878E874B855C85BE -:104B80006D858F85B1CF06E00E8318E01F8388877F -:104B90000E94461B8160782F9A8789874E815F81AA -:104BA00068858A850E94B42409831A831B820E9427 -:104BB000461B8160782F9D838C8349815A816B814C -:104BC0008D8192CFCF92DF92EF92FF920F931F933E -:104BD000CF93DF930F92CDB7DEB7EE24E394F12CA1 -:104BE0000CEA12E09E012F5F3F4F41EA52E063E082 -:104BF00082E00E940119082F882321F1C090DB0276 -:104C00008C2D90E09C0122523D4F79011981F901D0 -:104C10008081181BD12E80E00AC0DA94F7018081D0 -:104C20008F5F808360E08C2D0E944625802F1D14AD -:104C3000A4F3912F17FD90E0191B11110EC08111E3 -:104C40000E943E0B802F0F90DF91CF911F910F910B -:104C5000FF90EF90DF90CF9008951F5FF701808164 -:104C60008150808361E08C2D0E944625802FE5CF06 -:104C70001F921FB61F9211248F939F93AF93BF93E0 -:104C800080914604811113C080914704909148049B -:104C9000A0914904B0914A044196A11DB11D809391 -:104CA000470490934804A0934904B0934A04BF91E9 -:104CB000AF919F918F911F901FBE1F901895CDB7F8 -:104CC000DEB7E3970FB6F894DEBF0FBECDBF84B753 -:104CD000877F84BF0FB6F894A895809160008861A3 -:104CE00080936000109260000FBE80E890E00FB6E5 -:104CF000F89480936100909361000FBE85B780683F -:104D000085BF85B7806885BF88E799E090932702C3 -:104D1000809326020E94D5060E94A0078091E2009F -:104D200084608093E200789480915C048823A1F0F1 -:104D30001091E9001F709091EC00892F817090FD17 -:104D400080E8182B1092E9008091E80083FD0E9412 -:104D500000101F701093E90082E084BD93E095BDC0 -:104D60009AEF97BD80936E001092C8021092C9020C -:104D70001092CA021092CB020E94C514811102C087 -:104D80000E9421140E949C0E80935801809158012A -:104D9000882309F4C6C010926F0185E280937001E8 -:104DA0000E949C0E81110E942F3180915801811127 -:104DB0002FC0FE01359686E0DF011D928A95E9F746 -:104DC00086E6898387E98A8386EC8B8384E38C83F8 -:104DD00085E38D833497AEE4B1E0CE010B9621914B -:104DE0002D938E179F07D9F787E0E5E7F1E0DE0105 -:104DF000919601900D928A95E1F7FE01B196A7E494 -:104E0000B1E0CE01889621912D938E179F07D9F797 -:104E10008091580195E0811190E09093D90285E04E -:104E2000891B8093D8020EE411E0A3E5EA2EA1E0ED -:104E3000FA2EF80181918F018F3F11F00E947C09B9 -:104E4000E016F106B1F707E411E0FEE4EF2EF1E021 -:104E5000FF2ED8018D918D018F3F11F00E947C09AA -:104E6000E016F106B1F7EEECF2E088ED92E0A5E491 -:104E7000B3E011921D928E179F07D9F70E94ED198A -:104E8000811102C00E946D1782E090E00E945033B1 -:104E900080933A0384E090E00E945033182F82E21E -:104EA00090E00E945033982F812F9093CD028093F1 -:104EB000CC020E94521BEFE7FBEB3197F1F700C0E9 -:104EC00000000E94521B8091450380FF2EC06FEFAF -:104ED0007FEF90E080E00E94823381E08093E000E9 -:104EE00080E28093D8001092C9008FE19EE4019780 -:104EF000F1F700C0000087E090EBDC0180937006C2 -:104F000090937106A0937206B093730688E19CE0BB -:104F10000FB6F894A895809360000FBE9093600040 -:104F2000FFCF85E280936F0139CF83E090E00E944C -:104F300050330E94C30B809166040E946E160E943B -:104F40009C0E811102C00E94323183E080931003D5 -:104F500080E2809333040E94302F6DE070E08CE992 -:104F600092E00E94650D892BE9F58091100363E0C2 -:104F700070E081FD97C289E992E00E94650D892B5E -:104F800089F56DE070E089E892E00E94650D892B5B -:104F900049F50E9462086058774C8E4F9F4F60938E -:104FA0003A0470933B0480933C0490933D04EEE6F6 -:104FB000F4E080E092E0DF019C011D92215030403E -:104FC000E1F7F0936F06E0936E068FEF9FEF9093FB -:104FD0006D0480936C0481E080933F0480933E04D1 -:104FE000109211038091DA02811136C00E94ED19EE -:104FF000811104C00E946D170E94551788E090E04F -:105000000E94583360936704709368048093690426 -:1050100090936A04809151038360809351036E7F63 -:1050200071F40E94551788E090E00E945833609315 -:105030006704709368048093690490936A040E94E3 -:10504000CC088091670480FF04C060E086950E94D0 -:10505000071681E08093DA0280915801811106C021 -:1050600084EF8093660185EF80936501209166014E -:10507000A22FA295AF70B0E091963C9191972F70BE -:1050800081E090E0BC01022E01C0660F0A94EAF7AD -:10509000462F4095432391964C93919792963C913D -:1050A0009297362B92963C93929740916501E42F0C -:1050B000E295EF70F0E031A14F70042E01C0880F2F -:1050C0000A94EAF7982F9095932391A392A1892BA4 -:1050D00082A390968C9190E002C0959587952A9531 -:1050E000E2F7817020A130E002C0359527954A95FE -:1050F000E2F792E020FF90E0892B8093E20280911A -:10510000580111E081278093E102312F381B309341 -:10511000DB020E94302F40E060E080E00E941E0D24 -:1051200089EA92E0909354038093530360E08AE00D -:105130000E94071681E00E940B1786EE90E0909384 -:105140005A0180935901109328030E943E0D8BE56C -:1051500091E09093430480934204E0E46E2E8091AA -:105160005C04FF24F39400E112E1853009F4ECC102 -:105170000E94521BE82E81110E946208EBE3F3E0CB -:10518000A5E4B3E010E000E0B02EDD9081918D1534 -:1051900009F4FEC18D25C12CFF24F394982F9F2183 -:1051A00009F4F1C10E949C0E882399F0C8A6B9A603 -:1051B000DF2081E009F480E08AA70E94461B81601D -:1051C000782F9CA78BA748A559A56AA58CA50E94F6 -:1051D000B424F801E55CFC4F8081F826F0828091D0 -:1051E000E202E82FEE0FEE0F90916601A92FA29533 -:1051F000AF70B0E090962C9130E09F7002C0359572 -:1052000027959A95E2F72170332790916501A92F90 -:10521000A295AF70B0E090964C9150E09F7002C0A4 -:10522000559547959A95E2F7CA018170992740FFF5 -:1052300002C082E090E0822B8E2B8093E2021091DC -:10524000E1028F70E82FF0E0EE50FE4F80819091E8 -:10525000E002890F8093E002F12C84306CF0E12FA2 -:10526000F0E0E252FD4F80818F5F808360E0812F0C -:105270000E944625FF24F3948091E0028D3F6CF458 -:10528000E12FF0E0E252FD4F80818150808361E0A8 -:10529000812F0E944625FF24F3948091E002082E7E -:1052A000000C990B64E070E00E9410338093E002E0 -:1052B000F1100E943E0B80913F04882351F18091B0 -:1052C0001203909113030E94371BC29708F077C115 -:1052D00020916C0430916D042115310509F098C2BC -:1052E00080913E048823A9F00E94620800913A044C -:1052F00010913B0420913C0430913D04601B710BE4 -:10530000820B930B6F3F7F4F8F4F9F4710F40E948C -:10531000950DE11001C0F1100E94B00D809138038D -:105320008A3008F0ADC380913603909137030E9414 -:10533000371B089708F4A4C304E610E025E030E02A -:1053400041E353E064E084E10E947B30892B09F063 -:1053500068C31092380320912803222359F08091CA -:105360003303909134039827892798279093340327 -:105370008093330386E0EAE1F3E0DE019196019049 -:105380000D928A95E1F786E0FE01B196DE01119655 -:1053900001900D928A95E1F786E0FE013196ABE22D -:1053A000B3E001900D928A95E1F78091350387FD76 -:1053B00035C38091290390912A03009709F028C3EF -:1053C00060913103809132030091330310913403D3 -:1053D000222309F4F0C241E00E94F80C2091260338 -:1053E00030912703281B390B309327032093260382 -:1053F00041E0602F812F0E94F80C2091240330910E -:105400002503820F931F909325038093240364E266 -:1054100073E080E393E00E94D90C66E273E08FE2D0 -:1054200093E00E94D90C10922D0310922E0386E077 -:10543000EBE2F3E0DE01119601900D928A95E1F71F -:1054400086E0FE013196AAE1B3E001900D928A95C3 -:10545000E1F730911C0320911D0390911E03809170 -:105460001F03709116036091170340911803509128 -:105470001903F0911B03E0911503FE13D8C23323E7 -:1054800011F07313D4C2222311F02613D0C2882343 -:1054900011F08513CCC2992319F081E04913C8C2D9 -:1054A00080E0C6C286E992E068CD80915C048430D9 -:1054B00009F43AC00E94950D40E060E080E00E944F -:1054C0001E0D80E00E9456168091DD02811109C0F8 -:1054D000F092DD028091670481708093DC020E946B -:1054E000E20F1092460488E190E00FB6F894A89578 -:1054F000809360000FBE6092600083B7817F8460FC -:1055000083BF83B7816083BF7894889583B78E7F8C -:1055100083BF0FB6F894A89580916000886180934E -:105520006000109260000FBE80915B04882361F0E0 -:105530000E94521BE5E4F3E08191811170C4AFE455 -:10554000B3E0AE17BF07C1F780915C04853009F462 -:10555000ACCF10924F040E94F70F0E94BF0E0E9422 -:1055600056161092DD028091DC02882349F080916A -:10557000670481608093670460E086950E94071647 -:105580000E943E0DF5CDC394FF0C27E0C21206CE5B -:105590000F5F1F4F0A30110509F0F6CD8FEF8DA771 -:1055A0008EA71FA60E94461B8160782F99AB88ABFF -:1055B0004DA55EA56FA589A90E94B42410CE0E94B6 -:1055C000461B909313038093120360E080E00E94D7 -:1055D0009A080E94BF0E8093EF020E949C0E8823BF -:1055E00031F14091EB025091EC026091ED0270912B -:1055F000EE022FB7F8948091470490914804A0914F -:105600004904B0914A042FBF841B950BA60BB70B1E -:1056100081339547A105B10540F00E94950D809119 -:105620003F04882309F45CCE53CE0E94B00D0E9443 -:105630009C0E882309F4D3C061E080E00E949A08A0 -:1056400060E08CE791E00E94881362E080E00E94B5 -:105650009A08809166040E94890C823009F499C0EE -:1056600008F08EC0882309F494C0813009F497C0F3 -:1056700065E080E00E949A0860E08AE991E00E947B -:10568000881366E080E00E949A086091EF026695B8 -:1056900061708FE991E00E94881367E080E00E94CA -:1056A0009A086091EF026095617084EA91E00E942F -:1056B000881368E080E00E949A086091EF0262FB24 -:1056C000662760F988EA91E00E9488134091E7021A -:1056D0005091E8026091E9027091EA022FB7F894C4 -:1056E0008091470490914804A0914904B0914A04E4 -:1056F0002FBF841B950BA60BB70B8D329140A105D4 -:10570000B10508F48CCF0E9462086093E7027093A1 -:10571000E8028093E9029093EA028091E602811107 -:1057200004C080916701811142C06DE080E00E9459 -:105730009A0860E08DEA91E00E9488136AE080E0B8 -:105740000E949A0881E0809367018091E50290E0D1 -:105750000196817099278093E50221E030E0281BB3 -:10576000390B40E6429FC001439F900D11242091C8 -:10577000E402222351F1855C9B4F0E9492064FCF99 -:10578000833089F0843009F073CF60E08EE891E0D7 -:1057900003C060E082E891E00E94881369CF60E076 -:1057A00088E891E0F9CF60E084E991E0F5CF6AE024 -:1057B00080E00E949A0860E08DEA91E00E948813E0 -:1057C0006BE080E00E949A08C0CF2091E302222380 -:1057D00019F085589C4FD1CF85549D4FCECF64E0B2 -:1057E00080E00E949A0860E083EB91E00E948813B9 -:1057F00065E080E00E949A0860E089EB91E00E94F9 -:10580000881369E080E00E949A088BEF94E0B5CF9E -:105810008091110361E070E0811162CD082F10E0EA -:105820002B01082E02C0440C551C0A94E2F7A90172 -:1058300044215521452B09F448C09091100390FD57 -:1058400046C08295880F807680936A0198013695CC -:1058500027953695279520936D01815E80936B0186 -:1058600010926E0124E630E047E050E068E671E017 -:1058700088E70E942730892B09F032CDA80165E026 -:10588000440F551F6A95E1F78091100380FD2DC0EC -:1058900042595B4F04E610E020E230E060E488E724 -:1058A0000E944E30892B09F01BCD0E94B00DC20121 -:1058B0008095909540906C0450906D044822592238 -:1058C00050926D0440926C040BCD8F5FA7CF880F70 -:1058D000880F880F80936A0110926D01895F809311 -:1058E0006B0183E080936E01BDCFE0EFF2E080E2D8 -:1058F000DF011D928A95E9F7E6E0F2E0FBABEAAB47 -:1059000002E012E037E0A32E99249394AAA9BBA940 -:105910002D91BBABAAABF80121908F01240E352E3F -:10592000311CC10182599B4F1C01E22FF0E0E05174 -:10593000FD4F30E020E07A2C721AB92C022E01C003 -:10594000BB0C0A94EAF7610190E0D6018D916D01DC -:105950008B21672D691B6770862E062E000C770B36 -:10596000B82F01C0BB0F8A94EAF78B2E7195619511 -:1059700071096770772701C086956A95EAF7882ACA -:105980008081882A80829F5F9830F9F62F5F3F4F91 -:1059900031962830310579F6EAE0F2E02AA93BA9F0 -:1059A000E217F30709F0B2CF04E610E020E230E09E -:1059B00040EF52E073CF45E00E94F80C20912203A3 -:1059C00030912303820F931F90932303809322032C -:1059D00045E0602F812F0E94F80C20912003309128 -:1059E0002103281B390B309321032093200360E20D -:1059F00073E08DE293E00E94D90C62E273E08EE2E4 -:105A000093E00E94D90C1092300310922F030FCD17 -:105A1000019790932A038093290309CD84E190E0B4 -:105A2000F8CF809138038F5F8093380300CD81E0F9 -:105A300080FF0FC0E0914204F0914304309749F099 -:105A400082E080931A030480F581E02D8AE193E0DF -:105A5000099510921C0310921D0310921E031092C0 -:105A60001F0386E0EAE1F3E0A4E1B3E001900D92C8 -:105A70008A95E1F70E94461B909337038093360383 -:105A80000E94BF0E90913903891731F00E94BF0E1A -:105A9000809339030E94561680915C04843009F08B -:105AA0005ECB83E08093E9008091E80082FF57CBD2 -:105AB0008091E80090E085FF05C00E94F4068823ED -:105AC00099F091E08091E8008B778093E80099232A -:105AD00009F445CBE981E150E33108F076C0F0E00C -:105AE000EE51FB4C0C94243300E210E0CE01019601 -:105AF0007C018091E80085FD0AC08091E8008B77E9 -:105B00008093E8000E94F406882399F3DACF80910D -:105B1000F100D7018D937D010150110951F7D1CFCB -:105B20001A8289E08B8311C08A81823009F48FC187 -:105B3000833091F1813009F048C00E9462080E94D0 -:105B40002A336B837C838D839E8380915C048430B5 -:105B500009F005CB1091E9001F709091EC00892F9E -:105B6000817090FD80E8182B82E08093E90080919D -:105B7000E80080FF0DC050E040E060E270E0CE0140 -:105B800001960E9425078091E8008E778093E800B7 -:105B90001F701093E900E3CADE011396E5E4F3E019 -:105BA00081918D9323E0EF34F207D1F7CECF8A8134 -:105BB000823059F46B817C818D819E810E942A33D1 -:105BC00086E290E00E946433C0CF8FEF8983BDCF1F -:105BD0004C816B818A810E943014982789279827ED -:105BE0009E838D83B2CFED80FE80FE24EF24FE24C1 -:105BF0008A810B813EE0039F800111249CE8899FEC -:105C0000000D111D11248C8190E0880F991F080F41 -:105C1000191F6F2DC80187960E9464336E2DC8012D -:105C20008896D0CF0E94B41390CF8A818138C1F07A -:105C300060F4803809F089CF20E04B8160916904DD -:105C4000809168040E94F01480CF8238E9F0833894 -:105C500009F07BCF20E040916A046C818B81F2CF08 -:105C600060E08B810E9407168B81811103C00E9426 -:105C7000E20F6BCF8091670481608093670460E0DE -:105C800086950E94071661CF8B8180936B045DCF50 -:105C90008A81813899F030F4803809F056CF8091AC -:105CA0006A0440CF823891F0833809F04ECF80915A -:105CB00068048B83809169048C8347CF809167044B -:105CC00080FF02C086952ECF80E02CCF80916B04A0 -:105CD00029CF609167047091680480916904909164 -:105CE0006A040E94DE1431CF80E18A832ECF81E0E6 -:105CF0008A838DE117CFCA80DB80DC24CD24DC24AD -:105D00008E010F5F1F4FEC80E00EF12EF11CC601DB -:105D10008D519D4F0E151F0509F417CFADE1CA1621 -:105D2000A1E0DA0650F40E945033F8018483BFEFFB -:105D3000CB1ADB0A0F5F1F4FEACFD80114961C92D3 -:105D4000F6CF0A811B81102701271027FE0131960B -:105D50006F01EC80E00EF12EF11CC8018D519D4FBA -:105D6000E016F10609F4F1CE0D31F1E01F0728F439 -:105D7000D60114966C910E946433BFEFCB1ADB0AF4 -:105D80000F5F1F4FEACF0E94A413DFCE85E0ADCF97 -:105D9000CA80DB80DC24CD24DC248E010F5F1F4F02 -:105DA000EC80E00EF12EF11CC6018796E016F1069C -:105DB00009F4CBCEECEBCE16E2E0DE0658F40E94FE -:105DC0005033D80114968C93FFEFCF1ADF0A0F5F80 -:105DD0001F4FEACFF8011482F7CF0A811B811027E9 -:105DE000012710279E012F5F3F4F6901EC80E00ED5 -:105DF000F12EF11CC8018796E016F10609F4A5CE34 -:105E00000C3B32E0130728F4D60114966C910E94E3 -:105E10006433BFEFCB1ADB0A0F5F1F4FEBCF09BD17 -:105E200019BD09B400FEFDCF8091D8008F7D80930D -:105E3000D8008091E00082608093E0008091E000D3 -:105E400081FDFCCF10924F040E94F70F7DCB86E2BC -:105E500090E00E9450331B821C821D828E8375CE7F -:105E60001092B9008CE08093B80008959F92AF9291 -:105E7000BF92CF92DF92EF92FF920F931F93CF9337 -:105E8000DF93B82EEB010E94461B6C01EE24E394D5 -:105E9000F12CC431D10560F025E0E22EF12CCF3F8A -:105EA000DC0731F0CE0164E170E00E94F0327B014A -:105EB00084EAA82E94E8992E1092BC00A092BC000F -:105EC0000E94461B8C018091BC0087FF0DC0809111 -:105ED000B900887F883039F18091B900887F80319E -:105EE00011F10FEF1FEF09C00E94461B801B910BA1 -:105EF0008E159F0540F30EEF1FEFCF3FDC07E1F259 -:105F0000C6010E94371B8C179D07B0F2C801DF91B4 -:105F1000CF911F910F91FF90EF90DF90CF90BF90A6 -:105F2000AF909F900895B092BB009092BC000E94E9 -:105F3000461B8C018091BC0087FF0AC08091B9008C -:105F4000887F883111F0803461F610E000E0DECF08 -:105F50000E94461B801B910B8E159F0558F3CBCFDB -:105F60000F931F93CF93DF93EB018093BB0084E8E3 -:105F70008093BC000E94461B8C018091BC0087FF6F -:105F800011C02091B900287F81E090E0283211F4FF -:105F900090E080E0919581959109DF91CF911F91DB -:105FA0000F910895CF3FDC0741F30E94461B801BF1 -:105FB000910B8C179D0708F38EEF9FEFEECF0F9399 -:105FC0001F93CF93DF93EC0184EC8093BC000E947D -:105FD000461B8C018091BC0087FF08C08091BB00EC -:105FE00090E0DF91CF911F910F910895CF3FDC0793 -:105FF00089F30E94461B801B910B8C179D0750F361 -:106000008EEF9FEFEECF0F931F93CF93DF93EC01B3 -:1060100084E88093BC000E94461B8C018091BC00E8 -:1060200087FF08C08091BB0090E0DF91CF911F9166 -:106030000F910895CF3FDC0789F30E94461B801B18 -:10604000910B8C179D0750F38EEF9FEFEECFCF9201 -:10605000DF92EF92FF920F931F93CF93DF936B0129 -:106060008A017901B9010E94362FE6010C0D1D1D30 -:10607000C017D10761F424E92093BC00DF91CF91D0 -:106080001F910F91FF90EF90DF90CF90089597FDB3 -:10609000F2CFB70189910E94B02FEACFCF92DF9261 -:1060A000EF92FF920F931F93CF93DF93C62F6A0156 -:1060B0007901B8010E94362F97FD0CC0B8018C2FD2 -:1060C0000E94B02FE601EC0CFD1CCE15DF0511F08F -:1060D00097FF0CC024E92093BC00DF91CF911F9162 -:1060E0000F91FF90EF90DF90CF900895B8018991C4 -:1060F0000E94B02FEACFCF92DF92EF92FF920F93E0 -:106100001F93CF93DF93F82EE62EEA016901B801C1 -:106110000E94362F97FD15C0B8018E2D0E94B02F1A -:1061200097FD0FC0B8018F2D81600E94362FF12C92 -:10613000E12C21E0C21AD108EC14FD0400F597FF10 -:1061400011C024E92093BC001816190614F490E03D -:1061500080E0DF91CF911F910F91FF90EF90DF9042 -:10616000CF900895C8010E94DF2F97FD04C0FE0163 -:10617000EE0DFF1D80832FEFE21AF20ADDCF97FDAF -:10618000E0CFC8010E94033097FDDBCFCC0DDD1DB1 -:106190008883D7CF84E98093BC0008958EE14A9B21 -:1061A00002C08150E1F74A9BFECF08955A9880E2E1 -:1061B0008A95F1F75A9A0895FC013BE03A95F1F778 -:1061C00098E020E080E031E040E14A95F1F7880F67 -:1061D0004A9B02C08160232742E04A95F1F7000004 -:1061E00040E14A95F1F7915079F790E19A95F1F7EE -:1061F00099B132E03A95F1F7000040E14A95F1F7A4 -:1062000092FB992790F992272081920F908308950D -:10621000EF92FF920F931F93CF93DF930F92CDB71F -:10622000DEB719828C017C01E60EF11C0E151F05EC -:1062300061F481E09981911180E00F90DF91CF911D -:106240001F910F91FF90EF9008950E94CE30CE01E4 -:1062500001960E94DC30F80181938F01E7CF529ABA -:106260005A9A089552985A9AEA9AE9E6F0E080819B -:106270008F7C808308956150770B91E001C0990F66 -:106280006A95EAF720E031E0911108C0222391F0ED -:106290005A9A80E28A95F1F75A980895492F48232F -:1062A00039F05A9A232740E24A95F1F79695ECCFB8 -:1062B0005A98F9CF5A98EDCFFF920F931F93CF932F -:1062C000DF93EC018C01060F111DC017D10731F4CB -:1062D000DF91CF911F910F91FF900895F9900E9447 -:1062E000D63068E08F2D0E943B31EFCF1F920F9286 -:1062F0000FB60F921124EF92FF920F931F932F93DB -:106300003F934F935F936F937F938F939F93AF933D -:10631000BF93EF93FF93CF93DF930F92CDB7DEB789 -:1063200019820E94CE30CE0101960E94DC30A82F47 -:10633000A695A695A695282F229525709A2F95703B -:10634000290F922F937026952695920F9827977074 -:106350008981982B09F075C0A83008F072C080E1DF -:106360008A95F1F75A9A529AB2E0BA95F1F700C0BD -:106370005A98EA2EF12CEAE0AE9FD0011124AF5FCB -:10638000BE4F1896ED91FC9119973097B1F060913E -:10639000F0017091F10116962D913C911797260FFF -:1063A000371F13968D919C911497680F791F15963E -:1063B0004C91159712968C9109958AE08E9DF0016B -:1063C0008F9DF00D1124EF5FFE4F6581662351F024 -:1063D0002091F0013091F10186819781820F931F06 -:1063E0000E945C310E94D630F0E1FA95F1F75A989C -:1063F00052985A9A80E18A95F1F78AE08E9D800141 -:106400008F9D100D11240F5F1E4FD80112966C91B5 -:106410001297662371F12091F0013091F1011396EA -:106420008D919C91820F931F0E940831D801ED91AC -:10643000FC91882311F088E001C082E080830E94F3 -:10644000CE300F90DF91CF91FF91EF91BF91AF913F -:106450009F918F917F916F915F914F913F912F917C -:106460001F910F91FF90EF900F900FBE0F901F9014 -:106470001895ED91FC91DFCF0F931F93CF93DF938E -:10648000EC0108970CF0A9C08AE08C9FF0018D9F69 -:10649000F00D1124EF5FFE4F80819181892B09F46B -:1064A0009CC0F894529A5A9885E08A95F1F70000BA -:1064B0008C2F869585709C2F9570890F982F9370DF -:1064C00086958695890F8E0193E0000F111F9A958E -:1064D000E1F7082B0E94D63000C068E0802F0E94B0 -:1064E0003B31A0E1AA95F1F752985A9A4A9B27C0EE -:1064F00087E090E04A9925C08AE08C9F80018D9FBB -:10650000100D11240F5F1E4FF80165816623A1F164 -:106510002091F0013091F10186819781820F931FC4 -:106520000E940831811128C0529A5A9AD801ED91DF -:10653000FC9182E08083789482E090E016C000C0F5 -:10654000D5CF0197B9F4529A5A9A8AE08C9FF001FC -:106550008D9FF00D1124EF5FFE4F0190F081E02D33 -:1065600081E08083789481E090E0DF91CF911F916A -:106570000F91089500C0BECF0E94CE30B0E2BA9510 -:10658000F1F75A98529AE0E1EA95F1F78AE08C9F88 -:10659000F0018D9FF00D1124EF5FFE4F62816623A5 -:1065A00051F02091F0013091F10183819481820FAB -:1065B000931F0E945C310E94D6308AE08C9FF001CC -:1065C0008D9FF00D1124EF5FFE4F0190F081E02DC3 -:1065D0001082789490E080E0C8CF84E090E0C5CF4E -:1065E000AA1BBB1B51E107C0AA1FBB1FA617B707F9 -:1065F00010F0A61BB70B881F991F5A95A9F7809515 -:106600009095BC01CD010895991B79E004C0991FB4 -:10661000961708F0961B881F7A95C9F780950895FC -:1066200097FB072E16F4009407D077FD09D00E943F -:10663000F03207FC05D03EF4909581959F4F089568 -:10664000709561957F4F0895EE0FFF1F0590F491AF -:10665000E02D0994692796276927782787277827C7 -:106660000895FB01DC0102C005900D92415050409D -:10667000D8F70895FB01DC0104C08D9101908019C9 -:1066800021F441505040C8F7881B990B0895FB0135 -:10669000DC0102C001900D9241505040D8F708959E -:1066A000F999FECF92BD81BDF89A992780B50895DA -:1066B000A6E1B0E044E050E00C948A33A8E1B0E0F9 -:1066C00042E050E00C948A33262FF999FECF92BD18 -:1066D00081BDF89A019700B4021639F01FBA20BDA7 -:1066E0000FB6F894FA9AF99A0FBE08950396272FD9 -:1066F0000E9465330E946433252F0E946533242F46 -:106700000C9465330196272F0E9465330C946433F3 -:10671000DC01CB01FC01F999FECF06C0F2BDE1BD61 -:10672000F89A319600B40D9241505040B8F7089550 -:106730000E94DA3308F481E00895E89409C097FBD9 -:106740003EF490958095709561957F4F8F4F9F4F48 -:106750009923A9F0F92F96E9BB279395F69587958C -:1067600077956795B795F111F8CFFAF4BB0F11F44F -:1067700060FF1BC06F5F7F4F8F4F9F4F16C08823F6 -:1067800011F096E911C0772321F09EE8872F762F2C -:1067900005C0662371F096E8862F70E060E02AF06D -:1067A0009A95660F771F881FDAF7880F9695879559 -:1067B00097F90895990F0008550FAA0BE0E8FEEF2E -:1067C00016161706E807F907C0F012161306E407B5 -:1067D000F50798F0621B730B840B950B39F40A26AE -:1067E00061F0232B242B252B21F408950A2609F48C -:1067F000A140A6958FEF811D811D08950E9411343F -:106800000C9482340E94743438F00E947B3420F05F -:10681000952311F00C946B340C94713411240C9466 -:10682000B6340E94933470F3959FC1F3950F50E0F6 -:10683000551F629FF001729FBB27F00DB11D639F32 -:10684000AA27F00DB11DAA1F649F6627B00DA11DD8 -:10685000661F829F2227B00DA11D621F739FB00D7E -:10686000A11D621F839FA00D611D221F749F3327EE -:10687000A00D611D231F849F600D211D822F762F87 -:106880006A2F11249F5750409AF0F1F088234AF064 -:10689000EE0FFF1FBB1F661F771F881F91505040D0 -:1068A000A9F79E3F510580F00C946B340C94B634DC -:1068B0005F3FE4F3983ED4F3869577956795B79557 -:1068C000F795E7959F5FC1F7FE2B880F911D969571 -:1068D000879597F9089597F99F6780E870E060E0E1 -:1068E00008959FEF80EC089500240A941616170669 -:1068F00018060906089500240A94121613061406B1 -:1069000005060895092E0394000C11F4882352F013 -:10691000BB0F40F4BF2B11F460FF04C06F5F7F4FCB -:106920008F4F9F4F089557FD9058440F551F59F0B2 -:106930005F3F71F04795880F97FB991F61F09F3F6C -:1069400079F087950895121613061406551FF2CF95 -:106950004695F1DF08C0161617061806991FF1CFE5 -:1069600086957105610508940895E894BB2766270C -:106970007727CB0197F90895F894FFCFE7100F110F -:1069800062110F11621142117A1162117712841291 -:10699000B014B014B914B914BB14B914B914B9149F -:1069A000B014B014C014B914B914C01417211721AD -:1069B00070217021A2214A214A214A21BC212D2285 -:1069C0003D223D22902D942DD72DE82DF32D122E12 -:1069D000152E482E692EE52DE52D742E772E7B2E53 -:0A69E000A12EC32EC62EC82EED2EE8 -:1069EA000130020000000100000000300200000037 -:1069FA00050100000030020000000106000000301E -:106A0A000200000001070000003002040800000034 -:106A1A000000003002090C000000000000300201F2 -:106A2A001500000000000036323331F7F66766972A -:106A3A00C6343500000000000180005F082B0E0AF2 -:106A4A000E060E020EF4F5010021007F220003005B -:106A5A004A004A4A01F6F731333236674C41594502 -:106A6A00520042617365200047616D6520005261E2 -:106A7A00697365004C6F776572004C4F434B004356 -:106A8A00617073004E756D005363726C0020202094 -:106A9A00202000534F4C415200544D505354008112 -:106AAA008283E200E900EA00B500B600B700CD0033 -:106ABA008301CC008A01920194012102230224025B -:106ACA002502260227022A02B300B4006F007000D2 -:106ADA00A50200FF0100010000FFFF000001000104 -:106AEA00FF00000810181810080000010202020234 -:106AFA0002020202020240227B99017701FC000095 -:066B0A000C190C390C000F +:103670004FB7F8948091460490914704A091480474 +:10368000B09149044FBF821B930B08952FB7F89454 +:103690008091460490914704A0914804B091490458 +:1036A0002FBF08958F929F92AF92BF92CF92DF92D9 +:1036B000EF92FF920F931F93CF93DF93CDB7DEB7B7 +:1036C0002F970FB6F894DEBF0FBECDBF8E010F5FF0 +:1036D0001F4F8AE0D8011D928A95E9F78EE4C82E23 +:1036E00081E0D82EF12CE12CAA24A394B12CF60170 +:1036F00081916F018F3F09F44AC0F894E82FE29559 +:10370000EF70F0E021A18F70A50102C0440F551F9A +:103710008A95E2F7CA01922F982B91A392A18095E6 +:10372000892382A30E947A0900C0E7E4F1E030E037 +:1037300020E0912C41914F3F09F47EC0A42FA29527 +:10374000AF70B0E090968C9190E04F7002C095956C +:1037500087954A95E2F780FD6FC08A2D022E01C041 +:10376000880F0A94EAF7982A2F5F3F4F27303105D8 +:1037700009F7F601319780818F3F11F00E947C0993 +:1037800050EA5A95F1F7F801EE0DFF1D90828FEF88 +:10379000E81AF80A95E0E916F10409F0A8CF4AE022 +:1037A00050E0B80181ED92E00E940C347C01892B3D +:1037B00041F08AE0F801A1EDB2E001900D928A9506 +:1037C000E1F71091DC02E114F104C1F181E0809392 +:1037D0008D020E94461B90938C0280938B028091F5 +:1037E0008B0290918C020E94371B069770F0A1ED1E +:1037F000B2E0E12FF0E0EC5BFC4F8D91819322E091 +:10380000A63DB207D1F710928D0281E090E0EF283B +:10381000C9F02F960FB6F894DEBF0FBECDBFDF9173 +:10382000CF911F910F91FF90EF90DF90CF90BF90BD +:10383000AF909F908F90089580E095CF80918D02FA +:103840008111CDCF0E949C0EB82EE091DC028E013A +:10385000055F1F4F882309F4CAC085E0D8011D9277 +:103860008A95E9F7F0E09F012C5B3C4F790180914C +:10387000CA02AE01405F5F4F6A018A3008F08FC014 +:1038800040EB59E1B801C7010E94580E882309F4A2 +:103890009DC04FE756E2B801C7010E94580E882329 +:1038A00009F494C047ED57E1B801C7010E94580ED2 +:1038B000882309F48BC043EC58E1B801C7010E948A +:1038C000580E882309F482C041EA58E1B801C701C3 +:1038D0000E94580E882309F479C01092CA02E09120 +:1038E000DB02F0E0AF014C5B5C4FD80110E0FA0165 +:1038F0009191AF018D91981731F09F0121503109BD +:10390000F90180831B2DAC15BD0589F780919102CB +:10391000909192020E94371B893E934060F1609122 +:103920009002E62EF12C662777276E197F09072E65 +:10393000000C880B990B0E94243527EA39E747E4ED +:103940005DE30E9415364B015C01B701FF0C880B4B +:10395000990B0E9424359B01AC01C501B4010E9462 +:103960006B340E94F334609390020E94461B909344 +:1039700092028093910280919502882371F0809148 +:103980009302909194020E94371B893E934028F045 +:1039900082EE0E94DC0B10929502812F3ACF80912B +:1039A0008E0290918F020E94371B843F914008F055 +:1039B00067CFE091DB02F0E0EC5BFC4FD8011192A5 +:1039C0001D92AC15BD05D9F71B2DA0CF8091CA0261 +:1039D0008F3F31F08F5F8093CA028A3008F47FCF27 +:1039E0000E94461B90938F0280938E02E2CFF0E0FC +:1039F000EC5BFC4FF89485E0A9EAB2E001900D92EF +:103A00008A95E1F765E070E089EA92E00E94B108EA +:103A10008093A8020E947A09F894E091E402F0E011 +:103A2000EF51FD4F80818B878093AF0261E070E0A2 +:103A3000C8010E94B1088093AE020E947A09F894EE +:103A4000C090B002D090B102E090B202F090B30208 +:103A50008091960290919702A0919802B09199025C +:103A6000C816D906EA06FB06D1F0C0929602D0929B +:103A70009702E0929802F09299020E949C0E8111A6 +:103A80000EC00E946208C61AD70AE80AF90AC09254 +:103A9000CB02D092CC02E092CD02F092CE020E94F4 +:103AA0007A09F8948091BB02882321F184FF04C035 +:103AB0009091BC029093510380FF0DC08091B4029D +:103AC00080FF25C09091660491609093660460E049 +:103AD00086950E9407168091BB0281FF09C020E0F5 +:103AE0004091B7026091B6028091B5020E94F01435 +:103AF0001092BB020E947A09F8948091BD0288233B +:103B000049F00E94B00D0E947A0980E082CE0E94A6 +:103B1000E20FE1CF0E94950DF6CF5F926F927F92F8 +:103B20008F929F92AF92BF92CF92DF92EF92FF92CD +:103B30000F931F93CF93DF9300D000D00F92CDB798 +:103B4000DEB76C01FC0183819481892B31F0808187 +:103B5000918189238F3F09F0C4C50F900F900F907A +:103B60000F900F90DF91CF911F910F91FF90EF90E9 +:103B7000DF90CF90BF90AF909F908F907F906F908D +:103B80005F9008950E946314182F682F89819A818D +:103B90000E94890B69817A81812F0E9456148C01C1 +:103BA000F6018281882309F463C0C801905681150B +:103BB000F0E29F0750F0905E811520E1920728F017 +:103BC000915C81159F4108F0A6C0C80199279C010E +:103BD000245031092432310520F08B970E9708F0DC +:103BE00047C080919102909192020097D9F10E9472 +:103BF000371B9C0150E040E060E67AEE80E090E008 +:103C00000E94B533CA01B90125E030E040E050E040 +:103C10000E94B533E09090022F3F310519F010F06B +:103C20002FEF30E0F12C2E193F09B90190E080E030 +:103C30000E94223527EA39E747E45DE30E94153602 +:103C40000E94D7344B015C01B701FF0C880B990B24 +:103C50000E942435A50194010E946B340E94F33424 +:103C6000609390020E94461B90939202809391026F +:103C7000F6018281882309F429C5980122513F4524 +:103C80002031310508F0F7C48FEF93E00E94223411 +:103C9000025193EEA92E92E0B92E81115ECF01114F +:103CA00043C01C821B82662463948AE0582E8501DF +:103CB0000F5F1F4FC5010E94223489831A82882317 +:103CC00009F44BCF9FEF980F9330E8F58A83698210 +:103CD00032E0A30EB11CC8010E9422348B838823DA +:103CE00009F43BCF8E010F5F1F4FF8012081222383 +:103CF000F1F2213009F061C091818281913029F582 +:103D00000E5F1F4F6AE070E0893311F460E570E0E8 +:103D10000E94CF0E20C090E080E00F3F110511F00F +:103D200008F055CFC80153CFA114F4E0BF0609F441 +:103D300014CFC5010E942234811101C001502FEF20 +:103D4000A21AB20AACCF5801CDCF923039F40E5F2F +:103D50001F4F0E94150C0F5F1F4FC7CF933029F4E0 +:103D60000E5F1F4F0E94DC0BF6CF943019F00F5FEF +:103D70001F4FF1CF0E5F1F4F30E020E0B8016F5FA3 +:103D80007F4FF80141818053990B8A30910550F0A3 +:103D90002150310900F38FE99FE00197F1F700C04E +:103DA0000000F6CF529EF001539EF00D11249C01AD +:103DB0002E0F3F1F842F8B01E1CFE22FF0E0E75F52 +:103DC000FD4F7490822F86958695869590E0FC0134 +:103DD000E750FE4FE4902770F12C022E02C0F594BC +:103DE000E7940A94E2F7E1E0EE22FF24FC01E751B8 +:103DF000FE4FC490D12C022E02C0D594C7940A94D1 +:103E0000E2F7F1E0CF22DD24FC01E752FE4F84907F +:103E1000912C02C0959487942A95E2F721E08222A2 +:103E20009924E114F10419F081EE0E94150CC114DB +:103E3000D10419F086EE0E94150C39E36AE070E0B7 +:103E4000731202C060E570E0872D0E94CF0ECD286E +:103E500019F086EE0E94DC0BEF2819F081EE0E942B +:103E6000DC0B892809F477CF6AE070E08CE250CF50 +:103E700081E00E94281703C081E00E941C170F9068 +:103E80000F900F900F900F90DF91CF911F910F9196 +:103E9000FF90EF90DF90CF90BF90AF909F908F906A +:103EA0007F906F905F900C94111782E0E2CF043FF7 +:103EB000110509F455C108F057C1053E110509F473 +:103EC000DDC0F601928191113CC280914E04827254 +:103ED0000A3CFCE51F0709F414C208F06AC1053C5E +:103EE0003CE5130709F4F9C108F04EC1033C5CE559 +:103EF000150709F4D3C108F0EBC1023C1C4509F4D5 +:103F00007DC1F60100811181992309F434C2C801F1 +:103F10000E946314F82E682FC8010E94890BB80113 +:103F20008F2D0E9456140E94D609182FB82EF60124 +:103F300022814581342F32953F70892F82958F7071 +:103F4000E82EF12C8C3008F04EC2F701E456F94C03 +:103F50000C94D43303384FE5140709F481C018F5E5 +:103F600001389FE5190709F44AC008F065C0003818 +:103F7000FFE51F0709F0A5CF882309F459C08091F8 +:103F80009502811106C081E08093950282EE0E9425 +:103F9000150C0E94461B90939402809393028BE22F +:103FA0000E94150C8ECF05382FE5120709F4BEC00C +:103FB00008F476C006384FE5140709F082CF88234D +:103FC00009F4CEC06091590170915A0190E080E0EF +:103FD0000E94223520E030E040E05CE30E9415368C +:103FE00020E030E040E85FE30E94EE348111B5C08C +:103FF00080EE90E090935A0180935901A1C08823EC +:10400000A1F080919502811106C081E08093950214 +:1040100082EE0E94150C0E94461B9093940280939E +:10402000930281EE0E94150CBACF81EE0E94DC0B48 +:104030008BE20E94DC0B45CF882309F442CF81EE4E +:104040000E94150C83EE0E94150C8FE40E94150C43 +:104050008FE40E94DC0B83EE0E94DC0B81EEE9CF43 +:10406000882309F42ECF81EE0E94150C83EE0E9466 +:10407000150C80E50E94150C80E5EBCF809334028F +:104080001093330200933202882321F081E0809361 +:10409000E70217CF1092E70214CF80933102F0CFDE +:1040A000882379F180913102882349F0809132028E +:1040B0000E94DC0B80EE0E94150C8AE20CC08091FD +:1040C00034028823D1F3809132020E94DC0B80EE0F +:1040D0000E94150C8CE40F900F900F900F900F9092 +:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 +:1040F000BF90AF909F908F907F906F905F900C9447 +:10410000150C8AE20E94DC0B8CE40E94DC0B80EE32 +:104110000E94DC0B80913102811105C08091340234 +:10412000882309F41ACD80913202D5CF8823C1F0BB +:1041300080912703882339F0109227031092000101 +:104140000E943E0DBECE809100018111F7CF81E02B +:104150008093270380930001F3CF80E890E04ACF5B +:1041600061E00E949A0CADCE62E0FBCF64E0F9CF33 +:10417000882321F081E08093E602A3CE1092E6022C +:10418000A0CE1092E9029DCE073C2CE5120709F45F +:10419000AEC008F4A7C0083C4CE5140709F4ACC055 +:1041A000093C1C4509F0ADCE43EA55E16FEA75E1E3 +:1041B00079C0043DECE51E07A8F40E3CFCE51F07A2 +:1041C00008F0CBCC0C3C2CE5120709F49FC045EE5F +:1041D00055E166EF75E10D3C1C4508F463C061E0F4 +:1041E00081E046C0053D4CE5140709F4B6CC08F45F +:1041F00092C00D351D4509F4B0CC83CE8091660484 +:1042000080FF31C08E7F8093660460916604709158 +:10421000670480916804909169040E94DE14809183 +:1042200050038160809350039FEFE0E7F2E09150EC +:10423000E040F040E1F700C000000F900F900F90B9 +:104240000F900F90DF91CF911F910F91FF90EF9002 +:10425000DF90CF90BF90AF909F908F907F906F90A6 +:104260005F900C94E40E81608093660461E0869513 +:104270000F900F900F900F900F90DF91CF911F91A3 +:104280000F91FF90EF90DF90CF90BF90AF909F90F5 +:104290008F907F906F905F900C94071643E357E1E7 +:1042A0006CE377E10F900F900F900F900F90DF91DC +:1042B000CF911F910F91FF90EF90DF90CF90BF9023 +:1042C000AF909F908F907F906F905F900C94C708F5 +:1042D0004CE357E163E377E1E5CF43ED55E16CED66 +:1042E00075E1E0CF4CED55E163ED75E1DBCF4BEBD4 +:1042F00055E167EC75E1D6CF47EC55E16BEB75E125 +:10430000D1CF4FEA55E163EA75E1CCCF46EF55E1F5 +:1043100065EE75E1C7CF0F900F900F900F900F9043 +:10432000DF91CF911F910F91FF90EF90DF90CF9091 +:10433000BF90AF909F908F907F906F905F900C9404 +:1043400046170E3D1C4509F0DCCD0F900F900F90E5 +:104350000F900F90DF91CF911F910F91FF90EF90F1 +:10436000DF90CF90BF90AF909F908F907F906F9095 +:104370005F900C946D17C8010E94610BF82ECFCD91 +:10438000092F0F70907F11F00295007F812F22235B +:10439000C9F0002369F090E2910F983010F01111EC +:1043A0000BC080914E04082B00934E040E94400BDA +:1043B000812F0E94150C17C080918902082B009351 +:1043C0008902F4CF0E94DC0B002369F00095105E97 +:1043D000183010F0B11027C080914E0408230093CC +:1043E0004E040E94400B98E0E91AF108E4E0EE1652 +:1043F000F10408F0B2CB0E94BF0E0F900F900F9007 +:104400000F900F90DF91CF911F910F91FF90EF9040 +:10441000DF90CF90BF90AF909F908F907F906F90E4 +:104420005F900C94561680918902082300938902AC +:10443000D8CF892F8F70907F903211F08295807F36 +:10444000F1E0BF120CC0222329F0333060F60E9445 +:10445000D20BC9CF323038F60E94C70BC4CF22230B +:1044600041F03323A1F340FFA3CF4F70F601458302 +:10447000EECF332389F3193309F0F5C0FFEF27EEB0 +:1044800033E0F15020403040E1F700C00000812FC0 +:104490000E94DC0BA8CF892F86958695837061F0EA +:1044A000813009F0A0CF812F9370211102C090E0DC +:1044B00080E00E946E0897CF812F9370211102C077 +:1044C00090E080E00E9484088ECF892F8370A1F550 +:1044D000211189CF812F829586958770880F880F4B +:1044E000412F4F70082E01C0440F0A94EAF7212F84 +:1044F000207114FF07C02FE030E001C0220F8A9521 +:10450000EAF72095969596959370923081F0822FD8 +:10451000842B933030F480918A02913029F0242B3F +:1045200082230E94C30B5FCF842B822BFACF242BD4 +:1045300080918A028227F5CF8695222311F0892F58 +:104540008170882309F44FCF812F829586958770DB +:10455000880F880F412F4F70082E01C0440F0A9416 +:10456000EAF7212F207114FF07C02FE030E001C0CF +:10457000220F8A95EAF7209596959695937092303A +:1045800081F0822F842B933030F480916504913038 +:1045900029F0242B82230E940B1725CF842B822BFA +:1045A000FACF242B809165048227F5CF092F0F7055 +:1045B000222329F0802F0E942817812F48CF812F96 +:1045C0000E94C70B802F0E941C170DCF812FE1EF97 +:1045D0001E1789F1E11750F0F0EF1F17B9F02223F1 +:1045E000B1F13111E5CE892F8F7129C042EF141737 +:1045F00049F153EF1513F3CF80E0222361F29F714D +:1046000081E001C0880F9A95EAF7C5CF222379F09F +:10461000323008F0E8CE292F2F7181E090E001C000 +:10462000880F2A95EAF7909165048927B4CF333033 +:1046300008F0D9CEF0CF892F8F71222321F20E946A +:104640002817D1CE892F8F712223C9F3BCCF3323F2 +:1046500079F0893341F48FEF97EEE3E08150904099 +:10466000E040E1F712CF8FE39CE90197F1F70DCF1E +:10467000892F8F71A8CF0031FFE51F0709F4F8CB10 +:1046800001312FE5120709F410CC063F110509F49A +:104690006DCD08F05FCC043E110509F469CD08F03A +:1046A00006CC003E110509F463CD013E110509F465 +:1046B000F4CC0C32110509F004CC882309F461CD47 +:1046C00081E08093E90210926701FBCB00313FE566 +:1046D000130709F4D1CB01314FE51407B1F682E09D +:1046E000CCCB85E0DE01119601900D928A95E1F721 +:1046F000F601228189819A81211144CA0E94610BAD +:10470000182F48CA1F93CF93DF9380915502807F63 +:10471000A9F480915202882389F080918702D09178 +:1047200056026091500270915102A0915302B091D3 +:104730005402C62FC72316E0D81304C0DF91CF91CF +:104740001F91089590E0109711F0CF3F19F4019652 +:104750008770F2CF189F9001199F300D1124F90135 +:10476000E95AFD4F41814713F2CF40814613EFCF05 +:1047700042814111ECCF438154814A1B5B0B403A8B +:10478000510528F7809155028F7080618093550202 +:10479000F901E45AFD4F80818F708061808380E54C +:1047A00092E00E948D1DDF91CF911F910C94570BC9 +:1047B000AF92BF92CF92DF92EF92FF920F931F932F +:1047C000CF93DF93CDB7DEB761970FB6F894DEBF16 +:1047D0000FBECDBF8C0185E0F801DE011D96019072 +:1047E0000D928A95E1F7F801E28080E5A82E82E03B +:1047F000B82E60915302709154026115710509F44D +:1048000032C19091500240915102892F84238F3FF1 +:1048100009F429C120813181C380D480F0905202F3 +:10482000F601E61BF70BFF2009F4E8C08091550262 +:10483000582F507FE03AF10508F0ABC0511177C016 +:10484000FE2C431321C092131FC0E1101DC08F70B6 +:10485000806180935502C5010E948D1D8091550293 +:10486000F80185838F2D61960FB6F894DEBF0FBED9 +:10487000CDBFDF91CF911F910F91FF90EF90DF900F +:10488000CF90BF90AF900895CD2829F0822F832339 +:104890008F3F09F003C180E0F82FF170DF2E80FF19 +:1048A0003CC0809187024091560256E0841315C0A7 +:1048B0002D873E878D859E850E949214292F2295F3 +:1048C0002F702230F0F0243018F59F70F1F0F801CD +:1048D0009581907FD1F4D12C1EC090E0589FF001BB +:1048E000599FF00D1124E95AFD4F6181361306C01E +:1048F0006081261303C06281E6120FC001968770A3 +:10490000D5CF9F7011F0882331F3805E883018F383 +:10491000C8010E948D1DFD2CA5CFEE2009F4A2CF69 +:1049200080915502816080935502F12C9BCF4313F7 +:1049300006C0921304C0F801EE2009F479C0C80142 +:104940000E949E14882309F1EE20F9F0809155020F +:10495000803270F0209150023091510238872F83BD +:104960001986DB86CA868C87CE0107960E948D1D2C +:1049700086E0F801A0E5B2E001900D928A95E1F79A +:104980000E948223FF24F3946DCFC8010E948D1DE5 +:10499000F9CF51110AC080E592E00E948D1D86E09A +:1049A000F50111928A95E9F7C0CF43130FC0921316 +:1049B0000DC0E1100BC0F8018583C8010E948D1D58 +:1049C00086E0F50111928A95E9F74CCFC8010E9463 +:1049D0009E148823D1F2EE20C1F2809155028032DC +:1049E00038F220915002309151023A8329831B8280 +:1049F000DD82CC828E83CE010196B8CFE03AF105FC +:104A0000F8F6FE2CEE2009F243131FC092131DC0CE +:104A10008091550280FD10C0982F907F69F0F801B9 +:104A20008583903F31F0982F907F905F8F70892B16 +:104A30008583C8010E948D1D86E0F801A0E5B2E0E3 +:104A400001900D928A95E1F70DCFC8010E949E1446 +:104A500081118ECF80915502816080935502C801EB +:104A60000E948D1DFFCEEE2009F48FCFC8010E9459 +:104A70009E14F82E882309F488CF86E0F801A0E57B +:104A8000B2E001900D928A95E1F7809150029091E9 +:104A900051020E9492140E948223E4CE81E08E256E +:104AA000FBCE1F93CF93DF93CDB7DEB767970FB6DB +:104AB000F894DEBF0FBECDBF4B8B5C8B6D8B7E8BB6 +:104AC0008F8B6111109289021A8A198A85E0FE0182 +:104AD0007396DE011D9601900D928A95E1F786E0AE +:104AE000FE013D96DE01179601900D928A95E1F741 +:104AF000CE0107960E94D823882389F016E0809182 +:104B000087029091560289134BC067960FB6F894AE +:104B1000DEBF0FBECDBFDF91CF911F91089586E01C +:104B2000FE013796DE01119601900D928A95E1F70C +:104B30008A859B85892B11F38F81988589238F3FE7 +:104B4000E9F22091560230E0C90101968770992759 +:104B5000409187024817190681F410924E040E9472 +:104B6000F70F109256021092870286E0E0E5F2E01D +:104B7000DF011D928A95E9F7C1CF96E0929FD0019F +:104B8000939FB00D1124A95ABD4FFE01319601909B +:104B90000D929A95E1F7809356020E94570BAECF83 +:104BA000819FC0011124895A9D4F0E94D8238823D8 +:104BB00009F4ABCF8091870290E001968770992726 +:104BC000809387029CCF0F931F93CF93DF93CDB732 +:104BD000DEB7A8970FB6F894DEBF0FBECDBF811128 +:104BE0004DC006E0662359F10CA311E01DA31EA3DE +:104BF0000E94461B8160782F98A78FA34CA15DA1CE +:104C00006EA188A50E9451250F8F18A319A20E949A +:104C1000461B8160782F9BA38AA34F8D58A169A161 +:104C20008BA10E94512581E0A8960FB6F894DEBFB3 +:104C30000FBECDBFDF91CF911F910F9108950A8FC5 +:104C400013E01B8F81E08C8F0E94461B8160782FC0 +:104C50009E8F8D8F4A8D5B8D6C8D8E8D0E94512520 +:104C60000D8B1E8B1F8A0E94461B8160782F998FA7 +:104C7000888F4D895E896F89898DD3CF813099F670 +:104C80006623F1F016E0188B198B8A8B0E94461B65 +:104C90008160782F9C8B8B8B488959896A898C8994 +:104CA0000E9451251B871C871D860E94461B816020 +:104CB000782F9F878E874B855C856D858F85B1CFDB +:104CC00006E00E8318E01F8388870E94461B8160E0 +:104CD000782F9A8789874E815F8168858A850E94AF +:104CE000512509831A831B820E94461B8160782FFD +:104CF0009D838C8349815A816B818D8192CFCF9224 +:104D0000DF92EF92FF920F931F93CF93DF930F9257 +:104D1000CDB7DEB7EE24E394F12C0FEA12E09E014A +:104D20002F5F3F4F44EA52E063E082E00E940119A6 +:104D3000082F882321F1C090DE028C2D90E09C0189 +:104D40002F513D4F79011981F9018081181BD12E16 +:104D500080E00AC0DA94F70180818F5F808360E091 +:104D60008C2D0E94E325802F1D14A4F3912F17FD95 +:104D700090E0191B11110EC081110E943E0B802F73 +:104D80000F90DF91CF911F910F91FF90EF90DF90E7 +:104D9000CF9008951F5FF70180818150808361E08B +:104DA0008C2D0E94E325802FE5CF1F921FB61F9206 +:104DB00011248F939F93AF93BF93809145048111EA +:104DC00013C08091460490914704A0914804B0918B +:104DD00049044196A11DB11D809346049093470458 +:104DE000A0934804B0934904BF91AF919F918F91D4 +:104DF0001F901FBE1F901895CDB7DEB7E3970FB673 +:104E0000F894DEBF0FBECDBF84B7877F84BF0FB6D7 +:104E1000F894A8958091600088618093600010925A +:104E200060000FBE80E890E00FB6F89480936100B8 +:104E3000909361000FBE85B7806885BF85B7806895 +:104E400085BF88E799E090932702809326020E940D +:104E5000D5060E94A0078091E20084608093E20062 +:104E6000789480915B048823A1F01091E9001F7071 +:104E70009091EC00892F817090FD80E8182B1092A2 +:104E8000E9008091E80083FD0E9400101F701093DC +:104E9000E90082E084BD93E095BD9AEF97BD8093D1 +:104EA0006E001092CB021092CC021092CD021092A2 +:104EB000CE020E94C514811102C00E9421140E94DA +:104EC0009C0E8093580180915801882309F4C6C034 +:104ED00010926F0185E2809370010E949C0E8111F7 +:104EE0000E94C0318091580181112FC0FE0135967A +:104EF00086E0DF011D928A95E9F786E6898387E9D6 +:104F00008A8386EC8B8384E38C8385E38D8334975B +:104F1000AEE4B1E0CE010B9621912D938E179F0741 +:104F2000D9F787E0E5E7F1E0DE01919601900D9277 +:104F30008A95E1F7FE01B196A7E4B1E0CE0188962B +:104F400021912D938E179F07D9F78091580195E0F5 +:104F5000811190E09093DC0285E0891B8093DB0255 +:104F60000EE411E0A3E5EA2EA1E0FA2EF80181910A +:104F70008F018F3F11F00E947C09E016F106B1F716 +:104F800007E411E0FEE4EF2EF1E0FF2ED8018D9151 +:104F90008D018F3F11F00E947C09E016F106B1F7F8 +:104FA000E1EDF2E08BED92E0A4E4B3E011921D920A +:104FB0008E179F07D9F70E94ED19811102C00E9438 +:104FC0006D1782E090E00E9422348093390384E0E0 +:104FD00090E00E942234182F82E290E00E94223456 +:104FE000982F812F9093D0028093CF020E94521B62 +:104FF000EFE7FBEB3197F1F700C000000E94521B76 +:105000008091440380FF2EC06FEF7FEF90E080E03F +:105010000E94543481E08093E00080E28093D800C5 +:105020001092C9008FE19EE40197F1F700C00000E3 +:1050300087E090EBDC0180936F0690937006A0935D +:105040007106B093720688E19CE00FB6F894A895BB +:10505000809360000FBE90936000FFCF85E2809345 +:105060006F0139CF83E090E00E9422340E94C30B8D +:10507000809165040E946E160E949C0E811102C0F0 +:105080000E94C33183E080930F0380E28093320457 +:105090000E94C12F6DE070E08CE992E00E94650DE6 +:1050A000892BE9F580910F0363E070E081FD97C2E1 +:1050B00089E992E00E94650D892B89F56DE070E029 +:1050C00089E892E00E94650D892B49F50E946208EB +:1050D0006058774C8E4F9F4F6093390470933A0419 +:1050E00080933B0490933C04EDE6F4E080E092E092 +:1050F000DF019C011D9221503040E1F7F0936E06D4 +:10510000E0936D068FEF9FEF90936C0480936B0498 +:1051100081E080933E0480933D04109210038091BF +:10512000DD02811136C00E94ED19811104C00E9478 +:105130006D170E94551788E090E00E942A34609312 +:105140006604709367048093680490936904809167 +:1051500050038360809350036E7F71F40E94551753 +:1051600088E090E00E942A3460936604709367049C +:1051700080936804909369040E94CC08809166042F +:1051800080FF04C060E086950E94071681E080934E +:10519000DD0280915801811106C084EF8093660181 +:1051A00085EF8093650120916601A22FA295AF70D3 +:1051B000B0E091963C9191972F7081E090E0BC0116 +:1051C000022E01C0660F0A94EAF7462F409543234A +:1051D00091964C93919792963C919297362B9296FA +:1051E0003C93929740916501E42FE295EF70F0E0D7 +:1051F00031A14F70042E01C0880F0A94EAF7982F4E +:105200009095932391A392A1892B82A390968C9140 +:1052100090E002C0959587952A95E2F7817020A1CC +:1052200030E002C0359527954A95E2F792E020FFDD +:1052300090E0892B8093E5028091580111E081274D +:105240008093E402312F381B3093DE020E94C12F7D +:1052500040E060E080E00E941E0D89EA92E09093B9 +:1052600053038093520360E08AE00E94071681E0B6 +:105270000E940B1780EE90E090935A0180935901A1 +:10528000109327030E943E0D8BE591E0909342041A +:1052900080934104E0E46E2E80915B04FF24F3943C +:1052A00000E112E1853009F4ECC10E94521BE82EA6 +:1052B00081110E946208EAE3F3E0A4E4B3E010E0A5 +:1052C00000E0B02EDD9081918D1509F4FEC18D2591 +:1052D000C12CFF24F394982F9F2109F4F1C10E945F +:1052E0009C0E882399F0C8A6B9A6DF2081E009F4B6 +:1052F00080E08AA70E94461B8160782F9CA78BA71D +:1053000048A559A56AA58CA50E945125F801E65C1F +:10531000FC4F8081F826F0828091E502E82FEE0FA5 +:10532000EE0F90916601A92FA295AF70B0E0909614 +:105330002C9130E09F7002C0359527959A95E2F741 +:105340002170332790916501A92FA295AF70B0E02D +:1053500090964C9150E09F7002C0559547959A9554 +:10536000E2F7CA018170992740FF02C082E090E015 +:10537000822B8E2B8093E5021091E4028F70E82F30 +:10538000F0E0EE50FE4F80819091E302890F809310 +:10539000E302F12C84306CF0E12FF0E0EF51FD4F8F +:1053A00080818F5F808360E0812F0E94E325FF244E +:1053B000F3948091E3028D3F6CF4E12FF0E0EF5124 +:1053C000FD4F80818150808361E0812F0E94E32521 +:1053D000FF24F3948091E302082E000C990B64E003 +:1053E00070E00E94A1338093E302F1100E943E0B13 +:1053F00080913E04882351F1809111039091120312 +:105400000E94371BC29708F077C120916B0430913E +:105410006C042115310509F08CC280913D0488236C +:10542000A9F00E9462080091390410913A04209179 +:105430003B0430913C04601B710B820B930B6F3F5C +:105440007F4F8F4F9F4710F40E94950DE11001C0D0 +:10545000F1100E94B00D809137038A3008F0A1C38B +:1054600080913503909136030E94371B089708F40A +:1054700098C304E610E025E030E040E353E064E048 +:1054800084E10E940C31892B09F05CC31092370330 +:1054900020912703222359F0809132039091330306 +:1054A000982789279827909333038093320386E0C7 +:1054B000E9E1F3E0DE01919601900D928A95E1F722 +:1054C00086E0FE01B196DE01119601900D928A955B +:1054D000E1F786E0FE013196AAE2B3E001900D9279 +:1054E0008A95E1F78091340387FD29C380912803D1 +:1054F00090912903009709F01CC3609130038091BB +:1055000031030091320310913303222309F4E4C2E2 +:1055100041E00E94F80C2091250330912603281BBE +:10552000390B309326032093250341E0602F812F10 +:105530000E94F80C2091230330912403820F931FC3 +:10554000909324038093230363E273E08FE293E05C +:105550000E94D90C65E273E08EE293E00E94D90CC0 +:1055600010922C0310922D0386E0EAE2F3E0DE01B4 +:10557000119601900D928A95E1F786E0FE01319631 +:10558000A9E1B3E001900D928A95E1F730911B03F8 +:1055900020911C0390911D0380911E0370911503AF +:1055A000609116034091170350911803F0911A036C +:1055B000E0911403FE13CCC2332311F07313C8C25D +:1055C000222311F02613C4C2882311F08513C0C210 +:1055D000992319F081E04913BCC280E0BAC286E980 +:1055E00092E068CD80915B04843009F43AC00E9457 +:1055F000950D40E060E080E00E941E0D80E00E947A +:1056000056168091E002811109C0F092E00280916B +:10561000660481708093DF020E94E20F10924504BD +:1056200088E190E00FB6F894A895809360000FBED3 +:105630006092600083B7817F846083BF83B781609D +:1056400083BF7894889583B78E7F83BF0FB6F89415 +:10565000A89580916000886180936000109260003E +:105660000FBE80915A04882361F00E94521BE4E42B +:10567000F3E08191811164C4AEE4B3E0AE17BF07DB +:10568000C1F780915B04853009F4ACCF10924E04D1 +:105690000E94F70F0E94BF0E0E9456161092E00261 +:1056A0008091DF02882349F08091660481608093B5 +:1056B000660460E086950E9407160E943E0DF5CDB7 +:1056C000C394FF0C27E0C21206CE0F5F1F4F0A30B3 +:1056D000110509F0F6CD8FEF8DA78EA71FA60E94AA +:1056E000461B8160782F99AB88AB4DA55EA56FA551 +:1056F00089A90E94512510CE0E94461B9093120347 +:105700008093110360E080E00E949A080E94BF0E1F +:105710008093EE020E949C0E8823D1F02FB7F8945C +:105720008091460490914704A0914804B0914904A7 +:105730002FBF81339547A105B10540F00E94950D1B +:1057400080913E04882309F468CE5FCE0E94B00D9C +:105750000E949C0E882309F4D3C061E080E00E947F +:105760009A0860E08CE791E00E94881362E080E094 +:105770000E949A08809165040E94890C823009F485 +:1057800099C008F08EC0882309F494C0813009F4D0 +:1057900097C065E080E00E949A0860E08AE991E0A5 +:1057A0000E94881366E080E00E949A086091EE02F1 +:1057B000669561708FE991E00E94881367E080E050 +:1057C0000E949A086091EE026095617084EA91E00F +:1057D0000E94881368E080E00E949A086091EE02BF +:1057E00062FB662760F988EA91E00E948813409185 +:1057F000EA025091EB026091EC027091ED022FB73A +:10580000F8948091460490914704A0914804B09187 +:1058100049042FBF841B950BA60BB70B8D3291400B +:10582000A105B10508F48CCF0E9462086093EA02DA +:105830007093EB028093EC029093ED028091E90269 +:10584000811104C080916701811142C06DE080E048 +:105850000E949A0860E08DEA91E00E9488136AE055 +:1058600080E00E949A0881E0809367018091E802BD +:1058700090E00196817099278093E80221E030E062 +:10588000281B390B40E6429FC001439F900D112415 +:105890002091E702222351F1855C9B4F0E949206E2 +:1058A0004FCF833089F0843009F073CF60E08EE809 +:1058B00091E003C060E082E891E00E94881369CF24 +:1058C00060E088E891E0F9CF60E084E991E0F5CF0D +:1058D0006AE080E00E949A0860E08DEA91E00E9410 +:1058E00088136BE080E00E949A08C0CF2091E60206 +:1058F000222319F085589C4FD1CF85549D4FCECF90 +:1059000064E080E00E949A0860E083EB91E00E94EE +:10591000881365E080E00E949A0860E089EB91E0DE +:105920000E94881369E080E00E949A088BEF94E05F +:10593000B5CF8091100361E070E081116ECD082F2A +:1059400010E02B01082E02C0440C551C0A94E2F70B +:10595000A90144215521452B09F448C090910F031A +:1059600090FD46C08295880F807680936A019801E9 +:10597000369527953695279520936D01815E809306 +:105980006B0110926E0124E630E047E050E068E6DB +:1059900071E088E70E94B830892B09F03ECDA8015C +:1059A00065E0440F551F6A95E1F780910F0380FD74 +:1059B0002DC043595B4F04E610E020E230E060E484 +:1059C00088E70E94DF30892B09F027CD0E94B00DB7 +:1059D000C2018095909540906B0450906C044822D1 +:1059E000592250926C0440926B0417CD8F5FA7CF61 +:1059F000880F880F880F80936A0110926D01895F6C +:105A000080936B0183E080936E01BDCFEFEEF2E0F7 +:105A100080E2DF011D928A95E9F7E6E0F2E0FBAB58 +:105A2000EAAB02E012E037E0A32E99249394AAA9EE +:105A3000BBA92D91BBABAAABF80121908F01240E1D +:105A4000352E311CC10183599B4F1C01E22FF0E020 +:105A5000E151FD4F30E020E07A2C721AB92C022E71 +:105A600001C0BB0C0A94EAF7610190E0D6018D9168 +:105A70006D018B21672D691B6770862E062E000C29 +:105A8000770BB82F01C0BB0F8A94EAF78B2E719564 +:105A9000619571096770772701C086956A95EAF765 +:105AA000882A8081882A80829F5F9830F9F62F5F4C +:105AB0003F4F31962830310579F6EAE0F2E02AA925 +:105AC0003BA9E217F30709F0B2CF04E610E020E2A9 +:105AD00030E04FEE52E073CF45E00E94F80C209189 +:105AE000210330912203820F931F9093220380930E +:105AF000210345E0602F812F0E94F80C20911F03A5 +:105B000030912003281B390B3093200320931F036F +:105B10006FE173E08CE293E00E94D90C61E273E0E4 +:105B20008DE293E00E94D90C10922F0310922E0365 +:105B30001BCD0197909329038093280315CD84E111 +:105B400090E0F8CF809137038F5F809337030CCDBF +:105B500081E080FF0FC0E0914104F0914204309752 +:105B600049F082E0809319030480F581E02D89E1FA +:105B700093E0099510921B0310921C0310921D03D1 +:105B800010921E0386E0E9E1F3E0A3E1B3E00190A7 +:105B90000D928A95E1F70E94461B909336038093FD +:105BA00035030E94BF0E90913803891731F00E948F +:105BB000BF0E809338030E94561680915B04843098 +:105BC00009F06ACB83E08093E9008091E80082FFCE +:105BD00063CB8091E80090E085FF05C00E94F40649 +:105BE000882399F091E08091E8008B778093E8001A +:105BF000992309F451CBE981E150E33108F076C0F3 +:105C0000F0E0E855F94C0C94D43300E210E0CE01FA +:105C100001967C018091E80085FD0AC08091E80032 +:105C20008B778093E8000E94F406882399F3DACFFB +:105C30008091F100D7018D937D010150110951F739 +:105C4000D1CF1A8289E08B8311C08A81823009F416 +:105C50008FC1833091F1813009F048C00E94620801 +:105C60000E94DA336B837C838D839E8380915B04F7 +:105C7000843009F011CB1091E9001F709091EC0075 +:105C8000892F817090FD80E8182B82E08093E900D5 +:105C90008091E80080FF0DC050E040E060E270E0DD +:105CA000CE0101960E9425078091E8008E778093AF +:105CB000E8001F701093E900EFCADE011396E4E4D8 +:105CC000F3E081918D9323E0EE34F207D1F7CECF4C +:105CD0008A81823059F46B817C818D819E810E9402 +:105CE000DA3386E290E00E943634C0CF8FEF8983AA +:105CF000BDCF4C816B818A810E94301498278927FF +:105D000098279E838D83B2CFED80FE80FE24EF2402 +:105D1000FE248A810B813EE0039F800111249CE8D0 +:105D2000899F000D111D11248C8190E0880F991F0F +:105D3000080F191F6F2DC80187960E9436346E2DEB +:105D4000C8018896D0CF0E94B41390CF8A81813841 +:105D5000C1F060F4803809F089CF20E04B81609178 +:105D60006804809167040E94F01480CF8238E9F0C3 +:105D7000833809F07BCF20E0409169046C818B81EE +:105D8000F2CF60E08B810E9407168B81811103C0E6 +:105D90000E94E20F6BCF809166048160809366045D +:105DA00060E086950E94071661CF8B8180936A041C +:105DB0005DCF8A81813899F030F4803809F056CF70 +:105DC0008091690440CF823891F0833809F04ECF3A +:105DD000809167048B83809168048C8347CF809186 +:105DE000660480FF02C086952ECF80E02CCF809184 +:105DF0006A0429CF609166047091670480916804F9 +:105E0000909169040E94DE1431CF80E18A832ECF05 +:105E100081E08A838DE117CFCA80DB80DC24CD242A +:105E2000DC248E010F5F1F4FEC80E00EF12EF11C81 +:105E3000C6018D519D4F0E151F0509F417CFADE119 +:105E4000CA16A1E0DA0650F40E942234F8018483D5 +:105E5000BFEFCB1ADB0A0F5F1F4FEACFD8011496B2 +:105E60001C92F6CF0A811B81102701271027FE0103 +:105E700031966F01EC80E00EF12EF11CC8018D51BE +:105E80009D4FE016F10609F4F1CE0D31F1E01F0748 +:105E900028F4D60114966C910E943634BFEFCB1AC9 +:105EA000DB0A0F5F1F4FEACF0E94A413DFCE85E00D +:105EB000ADCFCA80DB80DC24CD24DC248E010F5FD3 +:105EC0001F4FEC80E00EF12EF11CC6018796E01604 +:105ED000F10609F4CBCEECEBCE16E2E0DE0658F488 +:105EE0000E942234D80114968C93FFEFCF1ADF0A58 +:105EF0000F5F1F4FEACFF8011482F7CF0A811B8191 +:105F00001027012710279E012F5F3F4F6901EC806A +:105F1000E00EF12EF11CC8018796E016F10609F497 +:105F2000A5CE0C3B32E0130728F4D60114966C91F1 +:105F30000E943634BFEFCB1ADB0A0F5F1F4FEBCF47 +:105F400009BD19BD09B400FEFDCF8091D8008F7D39 +:105F50008093D8008091E00082608093E00080917F +:105F6000E00081FDFCCF10924E040E94F70F89CB18 +:105F700086E290E00E9422341B821C821D828E8366 +:105F800075CE1092B9008CE08093B80008959F926E +:105F9000AF92BF92CF92DF92EF92FF920F931F9337 +:105FA000CF93DF93B82EEB010E94461B6C01EE24C9 +:105FB000E394F12CC431D10560F025E0E22EF12C00 +:105FC000CF3FDC0731F0CE0164E170E00E94813305 +:105FD0007B0184EAA82E94E8992E1092BC00A0922E +:105FE000BC000E94461B8C018091BC0087FF0DC045 +:105FF0008091B900887F883039F18091B900887F1D +:10600000803111F10FEF1FEF09C00E94461B801B6A +:10601000910B8E159F0540F30EEF1FEFCF3FDC076E +:10602000E1F2C6010E94371B8C179D07B0F2C80130 +:10603000DF91CF911F910F91FF90EF90DF90CF9064 +:10604000BF90AF909F900895B092BB009092BC001B +:106050000E94461B8C018091BC0087FF0AC0809182 +:10606000B900887F883111F0803461F610E000E0DB +:10607000DECF0E94461B801B910B8E159F0558F3A7 +:10608000CBCF0F931F93CF93DF93EB018093BB0094 +:1060900084E88093BC000E94461B8C018091BC0068 +:1060A00087FF11C02091B900287F81E090E028325D +:1060B00011F490E080E0919581959109DF91CF9165 +:1060C0001F910F910895CF3FDC0741F30E94461BBB +:1060D000801B910B8C179D0708F38EEF9FEFEECF7F +:1060E0000F931F93CF93DF93EC0184EC8093BC005C +:1060F0000E94461B8C018091BC0087FF08C08091E4 +:10610000BB0090E0DF91CF911F910F910895CF3F99 +:10611000DC0789F30E94461B801B910B8C179D079F +:1061200050F38EEF9FEFEECF0F931F93CF93DF933C +:10613000EC0184E88093BC000E94461B8C01809196 +:10614000BC0087FF08C08091BB0090E0DF91CF9139 +:106150001F910F910895CF3FDC0789F30E94461BE2 +:10616000801B910B8C179D0750F38EEF9FEFEECFA6 +:10617000CF92DF92EF92FF920F931F93CF93DF9313 +:106180006B018A017901B9010E94C72FE6010C0D4C +:106190001D1DC017D10761F424E92093BC00DF91D5 +:1061A000CF911F910F91FF90EF90DF90CF900895C6 +:1061B00097FDF2CFB70189910E944130EACFCF928B +:1061C000DF92EF92FF920F931F93CF93DF93C62F2F +:1061D0006A017901B8010E94C72F97FD0CC0B80170 +:1061E0008C2F0E944130E601EC0CFD1CCE15DF0522 +:1061F00011F097FF0CC024E92093BC00DF91CF91F0 +:106200001F910F91FF90EF90DF90CF900895B8010C +:1062100089910E944130EACFCF92DF92EF92FF92B4 +:106220000F931F93CF93DF93F82EE62EEA016901B7 +:10623000B8010E94C72F97FD15C0B8018E2D0E948E +:10624000413097FD0FC0B8018F2D81600E94C72F8C +:10625000F12CE12C21E0C21AD108EC14FD0400F568 +:1062600097FF11C024E92093BC001816190614F4F6 +:1062700090E080E0DF91CF911F910F91FF90EF9020 +:10628000DF90CF900895C8010E94703097FD04C040 +:10629000FE01EE0DFF1D80832FEFE21AF20ADDCF23 +:1062A00097FDE0CFC8010E94943097FDDBCFCC0D65 +:1062B000DD1D8883D7CF84E98093BC0008958EE1EB +:1062C0004A9B02C08150E1F74A9BFECF08955A983D +:1062D00080E28A95F1F75A9A0895FC013BE03A95DD +:1062E000F1F798E020E080E031E040E14A95F1F7F5 +:1062F000880F4A9B02C08160232742E04A95F1F74C +:10630000000040E14A95F1F7915079F790E19A95B4 +:10631000F1F799B132E03A95F1F7000040E14A9582 +:10632000F1F792FB992790F992272081920F9083A1 +:106330000895EF92FF920F931F93CF93DF930F92E5 +:10634000CDB7DEB719828C017C01E60EF11C0E156B +:106350001F0561F481E09981911180E00F90DF9138 +:10636000CF911F910F91FF90EF9008950E945F31A0 +:10637000CE0101960E946D31F80181938F01E7CF24 +:10638000529A5A9A089552985A9AEA9AE9E6F0E08F +:1063900080818F7C808308956150770B91E001C0EC +:1063A000990F6A95EAF720E031E0911108C02223A5 +:1063B00091F05A9A80E28A95F1F75A980895492FF8 +:1063C000482339F05A9A232740E24A95F1F79695E7 +:1063D000ECCF5A98F9CF5A98EDCFFF920F931F93B5 +:1063E000CF93DF93EC018C01060F111DC017D1076D +:1063F00031F4DF91CF911F910F91FF900895F990A3 +:106400000E94673168E08F2D0E94CC31EFCF1F9240 +:106410000F920FB60F921124EF92FF920F931F93DA +:106420002F933F934F935F936F937F938F939F939C +:10643000AF93BF93EF93FF93CF93DF930F92CDB7BB +:10644000DEB719820E945F31CE0101960E946D3144 +:10645000A82FA695A695A695282F229525709A2F48 +:106460009570290F922F937026952695920F982755 +:1064700097708981982B09F075C0A83008F072C018 +:1064800080E18A95F1F75A9A529AB2E0BA95F1F7FB +:1064900000C05A98EA2EF12CEAE0AE9FD0011124F8 +:1064A000AF5FBE4F1896ED91FC9119973097B1F000 +:1064B0006091F0017091F10116962D913C91179722 +:1064C000260F371F13968D919C911497680F791F93 +:1064D00015964C91159712968C9109958AE08E9D90 +:1064E000F0018F9DF00D1124EF5FFE4F6581662353 +:1064F00051F02091F0013091F10186819781820F56 +:10650000931F0E94ED310E946731F0E1FA95F1F797 +:106510005A9852985A9A80E18A95F1F78AE08E9DAE +:1065200080018F9D100D11240F5F1E4FD801129610 +:106530006C911297662371F12091F0013091F10175 +:1065400013968D919C91820F931F0E949931D801CF +:10655000ED91FC91882311F088E001C082E08083F6 +:106560000E945F310F90DF91CF91FF91EF91BF912A +:10657000AF919F918F917F916F915F914F913F91DB +:106580002F911F910F91FF90EF900F900FBE0F90E2 +:106590001F901895ED91FC91DFCF0F931F93CF9330 +:1065A000DF93EC0108970CF0A9C08AE08C9FF00102 +:1065B0008D9FF00D1124EF5FFE4F80819181892B1B +:1065C00009F49CC0F894529A5A9885E08A95F1F79C +:1065D00000008C2F869585709C2F9570890F982FC1 +:1065E000937086958695890F8E0193E0000F111F99 +:1065F0009A95E1F7082B0E94673100C068E0802F70 +:106600000E94CC31A0E1AA95F1F752985A9A4A9B80 +:1066100027C087E090E04A9925C08AE08C9F8001DE +:106620008D9F100D11240F5F1E4FF80165816623A9 +:10663000A1F12091F0013091F10186819781820FC3 +:10664000931F0E949931811128C0529A5A9AD801F9 +:10665000ED91FC9182E08083789482E090E016C016 +:1066600000C0D5CF0197B9F4529A5A9A8AE08C9F0C +:10667000F0018D9FF00D1124EF5FFE4F0190F0812E +:10668000E02D81E08083789481E090E0DF91CF91EC +:106690001F910F91089500C0BECF0E945F31B0E2FC +:1066A000BA95F1F75A98529AE0E1EA95F1F78AE043 +:1066B0008C9FF0018D9FF00D1124EF5FFE4F6281E2 +:1066C000662351F02091F0013091F1018381948192 +:1066D000820F931F0E94ED310E9467318AE08C9FE8 +:1066E000F0018D9FF00D1124EF5FFE4F0190F081BE +:1066F000E02D1082789490E080E0C8CF84E090E0B4 +:10670000C5CFAA1BBB1B51E107C0AA1FBB1FA61701 +:10671000B70710F0A61BB70B881F991F5A95A9F74A +:1067200080959095BC01CD010895991B79E004C036 +:10673000991F961708F0961B881F7A95C9F78095C0 +:10674000089597FB072E16F4009407D077FD09D023 +:106750000E94813307FC05D03EF4909581959F4FB0 +:106760000895709561957F4F0895052E97FB1EF44F +:1067700000940E94CC3357FD07D00E94E13307FC00 +:1067800003D04EF40C94CC33509540953095219520 +:106790003F4F4F4F5F4F089590958095709561954D +:1067A0007F4F8F4F9F4F0895EE0FFF1F0590F4917D +:1067B000E02D099469279627692778278727782766 +:1067C0000895A1E21A2EAA1BBB1BFD010DC0AA1F32 +:1067D000BB1FEE1FFF1FA217B307E407F50720F04A +:1067E000A21BB30BE40BF50B661F771F881F991FC5 +:1067F0001A9469F760957095809590959B01AC010E +:10680000BD01CF010895FB01DC0102C005900D928E +:1068100041505040D8F70895FB01DC0104C08D9130 +:106820000190801921F441505040C8F7881B990B02 +:106830000895FB01DC0102C001900D9241505040CF +:10684000D8F70895F999FECF92BD81BDF89A99279E +:1068500080B50895A6E1B0E044E050E00C945C34CB +:10686000A8E1B0E042E050E00C945C34262FF999A6 +:10687000FECF92BD81BDF89A019700B4021639F09F +:106880001FBA20BD0FB6F894FA9AF99A0FBE089570 +:106890000396272F0E9437340E943634252F0E94FA +:1068A0003734242F0C9437340196272F0E94373425 +:1068B0000C943634DC01CB01FC01F999FECF06C003 +:1068C000F2BDE1BDF89A319600B40D9241505040AE +:1068D000B8F708955058BB27AA270E9482340C9419 +:1068E000C3350E94B53538F00E94BC3520F039F42C +:1068F0009F3F19F426F40C94B2350EF4E095E7FBB3 +:106900000C948335E92F0E94D43558F3BA176207E7 +:1069100073078407950720F079F4A6F50C940E36DA +:106920000EF4E0950B2EBA2FA02D0B01B9019001AA +:106930000C01CA01A0011124FF27591B99F0593FEE +:1069400050F4503E68F11A16F040A22F232F342F36 +:106950004427585FF3CF469537952795A795F04084 +:106960005395C9F77EF41F16BA0B620B730B840B99 +:10697000BAF09150A1F0FF0FBB1F661F771F881F51 +:10698000C2F70EC0BA0F621F731F841F48F48795A9 +:1069900077956795B795F7959E3F08F0B0CF93959B +:1069A000880F08F09927EE0F9795879508950E9414 +:1069B000F63590F09F3748F4911116F40C940F3689 +:1069C00060E070E080E89FE3089526F01B16611DEB +:1069D000711D811D0C9489350C94A4350E945F357E +:1069E00008F481E008950E94DC3588F09F5798F004 +:1069F000B92F9927B751B0F0E1F0660F771F881FC4 +:106A0000991F1AF0BA95C9F714C0B13091F00E94DD +:106A10000E36B1E008950C940E36672F782F882734 +:106A2000B85F39F0B93FCCF3869577956795B39504 +:106A3000D9F73EF490958095709561957F4F8F4F73 +:106A40009F4F0895E89409C097FB3EF49095809578 +:106A5000709561957F4F8F4F9F4F9923A9F0F92F24 +:106A600096E9BB279395F695879577956795B795A2 +:106A7000F111F8CFFAF4BB0F11F460FF1BC06F5F88 +:106A80007F4F8F4F9F4F16C0882311F096E911C09A +:106A9000772321F09EE8872F762F05C0662371F0BB +:106AA00096E8862F70E060E02AF09A95660F771FCF +:106AB000881FDAF7880F9695879597F90895990FAB +:106AC0000008550FAA0BE0E8FEEF16161706E807B8 +:106AD000F907C0F012161306E407F50798F0621BD9 +:106AE000730B840B950B39F40A2661F0232B242BAE +:106AF000252B21F408950A2609F4A140A6958FEFCD +:106B0000811D811D089597F99F6780E870E060E01E +:106B10000895882371F4772321F09850872B762FDE +:106B200007C0662311F499270DC09051862B70E0A1 +:106B300060E02AF09A95660F771F881FDAF7880FB2 +:106B40009695879597F908959F3F31F0915020F4DD +:106B5000879577956795B795880F911D9695879539 +:106B600097F908959FEF80EC089500240A94161673 +:106B7000170618060906089500240A94121613062B +:106B8000140605060895092E0394000C11F48823B9 +:106B900052F0BB0F40F4BF2B11F460FF04C06F5FD5 +:106BA0007F4F8F4F9F4F089557FD9058440F551FAB +:106BB00059F05F3F71F04795880F97FB991F61F07F +:106BC0009F3F79F087950895121613061406551FF6 +:106BD000F2CF4695F1DF08C0161617061806991F62 +:106BE000F1CF869571056105089408950E94DC3502 +:106BF000A0F0BEE7B91788F4BB279F3860F41616DB +:106C0000B11D672F782F8827985FF7CF86957795E6 +:106C10006795B11D93959639C8F30895E894BB27FD +:106C200066277727CB0197F908950E9428360C94A0 +:106C3000C3350E94B53538F00E94BC3520F095234D +:106C400011F00C9483350C94B23511240C940F364A +:106C50000E94D43570F3959FC1F3950F50E0551FF6 +:106C6000629FF001729FBB27F00DB11D639FAA27A1 +:106C7000F00DB11DAA1F649F6627B00DA11D661FF0 +:106C8000829F2227B00DA11D621F739FB00DA11D11 +:106C9000621F839FA00D611D221F749F3327A00DCB +:106CA000611D231F849F600D211D822F762F6A2F67 +:106CB00011249F5750409AF0F1F088234AF0EE0FCC +:106CC000FF1FBB1F661F771F881F91505040A9F7F9 +:106CD0009E3F510580F00C9483350C940F365F3F36 +:106CE000E4F3983ED4F3869577956795B795F79535 +:106CF000E7959F5FC1F7FE2B880F911D96958795AD +:106D000097F90895F894FFCFE7100F1162110F1152 +:106D1000621142117A11621177128412B014B01408 +:106D2000B914B914BB14B914B914B914B014B0140B +:106D3000C014B914B914C014C021C02119221922D9 +:106D40004B22F321F321F3216522D622E622E6220B +:106D5000212E252E682E792E842EA32EA62ED92EF6 +:106D6000FA2E762E762E052F082F0C2F322F542F29 +:066D7000572F592F7E2F62 +:106D760001300200000001000000003002000000A7 +:106D8600050100000030020000000106000000308E +:106D960002000000010700000030020408000000A5 +:106DA6000000003002090C00000000000030020163 +:106DB6001500000000000036323331F7F66766979B +:106DC600C6343500000000000180005F082B0E0A63 +:106DD6000E060E020EF4F5010021007F22000300CC +:106DE6004A004A4A01F6F731333236674C41594573 +:106DF600520042617365200047616D652000526153 +:106E0600697365004C6F776572004C4F434B0043C6 +:106E1600617073004E756D005363726C0020202004 +:106E2600202000534F4C415200544D505354008182 +:106E36008283E200E900EA00B500B600B700CD00A3 +:106E46008301CC008A0192019401210223022402CB +:106E56002502260227022A02B300B4006F00700042 +:106E6600A80200FF0100010000FFFF000001000171 +:106E7600FF000008101818100800000102020202A4 +:106E860002020202020240227B99017701FC000005 +:066E96000C190C390C0080 :00000001FF From 806e168df26e91d2432bae528435b6aac0a346ad Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 5 Nov 2021 01:29:14 -0400 Subject: [PATCH 33/94] Added rotary encoder LED animation and stretch timer first iteration. --- keyboards/solartempest/9e/9e VIA keymap.json | 5 + keyboards/solartempest/9e/9e VIA layout.json | 2 +- keyboards/solartempest/9e/A9e.c | 45 - keyboards/solartempest/9e/A9e.h | 12 +- keyboards/solartempest/9e/config.h | 178 +- .../solartempest/9e/keymaps/via/keymap.c | 281 +- keyboards/solartempest/9e/readme.md | 4 +- keyboards/solartempest/9e/rules.mk | 32 +- .../solartempest/9e/solartempest_9e_via.hex | 2430 +++++++++-------- 9 files changed, 1509 insertions(+), 1480 deletions(-) diff --git a/keyboards/solartempest/9e/9e VIA keymap.json b/keyboards/solartempest/9e/9e VIA keymap.json index 21498184e2bd..4e0b8486d73f 100644 --- a/keyboards/solartempest/9e/9e VIA keymap.json +++ b/keyboards/solartempest/9e/9e VIA keymap.json @@ -24,6 +24,11 @@ "name": "Move Window Left", "title": "Move Window Left in Windows", "shortName": "MWL" + }, + { + "name": "Stretch Timer", + "title": "Activate Stretch Timer", + "shortName": "STRT" } ], "layouts": diff --git a/keyboards/solartempest/9e/9e VIA layout.json b/keyboards/solartempest/9e/9e VIA layout.json index cfcaec6e88ed..51cd2f2e6925 100644 --- a/keyboards/solartempest/9e/9e VIA layout.json +++ b/keyboards/solartempest/9e/9e VIA layout.json @@ -32,7 +32,7 @@ "KC_F13", "USER02", "KC_WWW_REFRESH", - "KC_BSPC", + "USER04", "KC_P0", "KC_P1", "KC_P2", diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c index 3fc20a1961c1..584df4ba0beb 100644 --- a/keyboards/solartempest/9e/A9e.c +++ b/keyboards/solartempest/9e/A9e.c @@ -17,48 +17,3 @@ */ #include "A9e.h" - -/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 )*/ -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { 36, 35, 34, 33, 32, }, - {18, 37, 5, 4, 3, 2, 1, 0, }, - {19, 21, 11, 10, 9, 8, 7, 6, }, - {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, - { 39, 40, 23, 25, }, - { 24, }, - { 41, 26, 30, }, - { 27, 29, }, - { 28, NO_LED, NO_LED, NO_LED, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} - {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, - {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, - {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, - - {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, - {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, - - {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, - {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} - }, { // LED Index to Flag. - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. - 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. - 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. - } }; -#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h index cc6481b19bb5..e70c429d6179 100644 --- a/keyboards/solartempest/9e/A9e.h +++ b/keyboards/solartempest/9e/A9e.h @@ -16,20 +16,18 @@ * along with this program. If not, see . */ -#ifndef A9E_H - #define A9E_H +#pragma once +#include "quantum.h" - #include "quantum.h" - - #define KEYMAP( \ + #define LAYOUT( \ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ K303, K304, K305, K306, K307, K308, K309, K310, K311 \ - ) { \ + ) \ + { \ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ } -#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h index a74b280bfb3b..a839aee2d30b 100644 --- a/keyboards/solartempest/9e/config.h +++ b/keyboards/solartempest/9e/config.h @@ -16,125 +16,81 @@ * along with this program. If not, see . */ -#ifndef CONFIG_H - #define CONFIG_H +#pragma once +#include "config_common.h" - #include "config_common.h" +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x414B // AK +#define PRODUCT_ID 0x0009 // 9e +#define DEVICE_VER 0x0001 +#define MANUFACTURER Atlantis +#define PRODUCT A9e +#define DESCRIPTION Keyboard - /* USB Device descriptor parameter */ - #define VENDOR_ID 0x414B // AK - #define PRODUCT_ID 0x0009 // 9e - #define DEVICE_VER 0x0001 - #define MANUFACTURER Atlantis - #define PRODUCT A9e - #define DESCRIPTION Keyboard +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 - /* key matrix size */ - #define MATRIX_ROWS 4 - #define MATRIX_COLS 12 +/* key matrix pins */ +#define MATRIX_ROW_PINS { F0, F1, F2, F3 } +#define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. +#define UNUSED_PINS - /* key matrix pins */ - #define MATRIX_ROW_PINS { F0, F1, F2, F3 } - #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. - #define UNUSED_PINS +/* encoder pins */ +#define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. +#define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } +#define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. +//#define ENCODER_RESOLUTION 4 - /* encoder pins */ - #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. - #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } - #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. - //#define ENCODER_RESOLUTION 4 +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW - /* COL2ROW or ROW2COL */ - #define DIODE_DIRECTION COL2ROW +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 - /* Set 0 if debouncing isn't needed */ - #define DEBOUNCE 5 +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ - #define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE - /* Locking resynchronize hack */ - #define LOCKING_RESYNC_ENABLE +#define RGB_DI_PIN E6 +#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 1 //Default 4 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF +#define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys +#define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT +#define RGBLIGHT_LIMIT_VAL 180 - #define RGB_DI_PIN E6 - #ifdef RGB_DI_PIN - #define RGBLIGHT_ANIMATIONS - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys - #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT - #define RGBLIGHT_LIMIT_VAL 180 - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L01, L03, L05, L07, L08, \ - L10, L11, L12, L13, L14, L15, L16, L17, \ - L20, L21, L22, L23, L24, L25, L26, L27, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ - L41, L46, L47, L49, \ - L58, \ - L67, L68, L69, \ - L77, L79, \ - L88 )\ - { \ - L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ - } - //RGB LED logical order map - //Left encoder -> keys -> right encoders -> backlight - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 ) - #endif - - #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow - #define RGB_MATRIX_CENTER { 110, 110 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH - #endif - - -#endif +//RGB LED Conversion macro from physical array to electric array +//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping +#define LED_LAYOUT( \ + L01, L03, L05, L07, L08, \ + L10, L11, L12, L13, L14, L15, L16, L17, \ + L20, L21, L22, L23, L24, L25, L26, L27, \ + L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ + L41, L46, L47, L49, \ + L58, \ + L67, L68, L69, \ + L77, L79, \ + L88 )\ + { \ + L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L11,L31,L41,L46,L67, \ + } +//RGB LED logical order map +//Left encoder -> keys -> right encoders -> backlight +#define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 31, 32, 33, 34, 35, \ +3, 30, 4, 5, 6, 7, 8, 9, \ +0, 2, 10, 11, 12, 13, 14, 15, \ +1, 41, 16, 17, 18, 19, 20, 21, 25, 36, \ + 40, 39, 22, 24, \ + 23, \ + 38, 29, 37, \ + 26, 28, \ + 27 ) diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 6b53279aa6bd..7d77a1d9e281 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -1,26 +1,57 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + #include "A9e.h" -#include QMK_KEYBOARD_H #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT + + bool is_encoder1_rotate = false; // For encoder animated LEDs + bool is_encoder6_rotate = false; + bool is_encoder7_rotate = false; + bool encoder_effect = false; + uint16_t encoder_timer = 0; + uint16_t encoder_interval = 500; #endif bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; + +bool is_stretch_active = false; // Stretch Timer Code +bool is_stretch_time = false; +uint32_t stretch_timer = 0; + #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + STRT //Stretch Timer }; #else enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + STRT //Stretch Timer }; #endif @@ -31,7 +62,7 @@ uint16_t alt_tab_timer = 0; // E3 Keys Row 3 // E8 E9 E7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( + [0] = LAYOUT( KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 @@ -45,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 ), - KEYMAP( + [1] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -59,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [2] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -73,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [3] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -87,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [4] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -101,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [5] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -115,7 +146,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [6] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -129,7 +160,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [7] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -143,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [8] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -157,7 +188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 ), - KEYMAP( + [9] = LAYOUT( KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 @@ -174,12 +205,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required - switch (id) { - } - return MACRO_NONE; -}*/ - void matrix_init_user(void) { } @@ -190,6 +215,52 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } + + + #ifdef RGBLIGHT_ENABLE //Add rotation animations underneath rotary encoders when turning + if (!encoder_effect && is_encoder1_rotate) { //Turn on the effect for encoder 1 + rgblight_set_effect_range(0, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder1_rotate = false; + encoder_effect = true; + } else if (!encoder_effect && is_encoder6_rotate) { //Turn on the effect for encoder 6 + rgblight_set_effect_range(22, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder6_rotate = false; + encoder_effect = true; + } else if (!encoder_effect && is_encoder7_rotate) { //Turn on the effect for encoder 7 + rgblight_set_effect_range(26, 4); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_encoder7_rotate = false; + encoder_effect = true; + } else if (!is_encoder1_rotate && !is_encoder6_rotate && !is_encoder7_rotate && timer_elapsed(encoder_timer) > encoder_interval) { //Turn off the animated LED effect + if(encoder_effect){ + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + if(is_stretch_time){ + rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on + } + } + is_encoder1_rotate = false; + is_encoder6_rotate = false; + is_encoder7_rotate = false; + encoder_effect = false; + } else { + is_encoder1_rotate = false; //Wait until encoder is turned again + is_encoder6_rotate = false; + is_encoder7_rotate = false; + } + #endif + + #ifdef RGBLIGHT_ENABLE //Stretch timer code + if (is_stretch_active && !is_stretch_time) { + if (timer_elapsed(stretch_timer) > 2700000) { //Change RGB after 5s (Configurable. Test for 5s. 45 minutes is 2,700,000. 1 hour is 3,600,000) + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_stretch_time = true; + } + } + #endif } bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -241,6 +312,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_LSFT); } return true; + + case STRT: //Stretch timer + if (record->event.pressed) { + is_stretch_active ^= 1; + stretch_timer = timer_read(); + //rgblight_sethsv_at(75,215,80,41); + if(is_stretch_time==1) { //Check if it is time to stretch, then dismiss the animation. + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on + is_stretch_active = 1; + is_stretch_time = 0; + } + else if(is_stretch_active==1) { + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on + is_stretch_time = 0; + } + else { + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set back to layer colours + is_stretch_time = 0; + } + } + return false; } return true; } @@ -252,10 +349,14 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder1_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder1_rotate = true; + encoder_timer = timer_read(); } } else if (index == 1) { /* 2 encoder */ @@ -302,20 +403,28 @@ bool encoder_update_user(uint8_t index, bool clockwise) if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder6_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder6_rotate = true; + encoder_timer = timer_read(); } } else if (index == 6) { /* 7 encoder */ if (clockwise) { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder7_rotate = true; + encoder_timer = timer_read(); } else { action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); + is_encoder7_rotate = true; + encoder_timer = timer_read(); } } else if (index == 7) { /* 8 encoder */ @@ -342,76 +451,66 @@ bool encoder_update_user(uint8_t index, bool clockwise) } -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); -#endif +// RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green +const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan +const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) +const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) +const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) + + +const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers + my_layer0_layer, + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_capslock_layer, //Highest status indicators override other layers + my_numlock_layer, + my_scrollock_layer +); + void keyboard_post_init_user(void) { - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 layer_move(0); //start on layer 0 to get the lighting activated - #endif } -#ifdef RGBLIGHT_ENABLE - layer_state_t layer_state_set_user(layer_state_t state) - { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,30); - break; - case 1: - rgblight_sethsv_noeeprom(30,255,30); - break; - case 2: - rgblight_sethsv_noeeprom(106,255,30); - break; - case 3: - rgblight_sethsv_noeeprom(215,255,30); - break; - default: - rgblight_sethsv_noeeprom(64,255,30); - } - return state; - } +layer_state_t layer_state_set_user(layer_state_t state) +{ + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(1, layer_state_cmp(state, 1)); + rgblight_set_layer_state(2, layer_state_cmp(state, 2)); + rgblight_set_layer_state(3, layer_state_cmp(state, 3)); + + switch(biton32(state)){ // Change all other LEDs based on layer state as well + case 0: + rgblight_sethsv_noeeprom(50,255,30); + break; + case 1: + rgblight_sethsv_noeeprom(30,255,30); + break; + case 2: + rgblight_sethsv_noeeprom(106,255,30); + break; + case 3: + rgblight_sethsv_noeeprom(215,255,30); + break; + default: + rgblight_sethsv_noeeprom(64,255,30); + } + return state; +} - bool led_update_user(led_t led_state) - { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; - } -#endif + +bool led_update_user(led_t led_state) +{ + rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer + rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". + rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer + return true; +} diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md index 38b472d3326a..30353b2d00a1 100644 --- a/keyboards/solartempest/9e/readme.md +++ b/keyboards/solartempest/9e/readme.md @@ -12,8 +12,9 @@ For detailed instructions on using VIA and flashing, please refer to the section # Custom Features: -- 9 remappable rotary encoder controling a variety of different things! +- 9 remappable rotary encoder controlling a variety of different things! - RGB underglow support and remapped to physical locations. +- When turning the 3 large rotary encoders the RGB LEDs underneath animate. - Adds custom layer lighting with custom gradients for each and static colours for the switches. - Adds white caps lock, scroll lock, and num lock key indicators on the top row. - VIA support included by default. @@ -32,6 +33,7 @@ Make example for this keyboard (after setting up your build environment): - You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. - I used Prog ISP V2.0 but other AVR programmers will also work. - Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. +- Plug in the ribbon cable with the data pins facing away from the PCB. ## Using with VIA diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk index 782755a42c25..5c83fafe8829 100644 --- a/keyboards/solartempest/9e/rules.mk +++ b/keyboards/solartempest/9e/rules.mk @@ -44,20 +44,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -RGBLIGHT_ENABLE = no # RGB LEDs -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -KEY_LOCK_ENABLE = no # Key lock functionality -ENCODER_ENABLE = yes # Encoders -LTO_ENABLE = yes # Save space -LEADER_ENABLE = no # Leader keys -COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +TERMINAL_ENABLE = no # Terminal interface feature, very large. +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +RGBLIGHT_ENABLE = yes # RGB LEDs +RGBLIGHT_SLEEP = yes # LEDs off when sleeping +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +KEY_LOCK_ENABLE = no # Key lock functionality +ENCODER_ENABLE = yes # Encoders +LTO_ENABLE = yes # Save space +LEADER_ENABLE = no # Leader keys +COMBO_ENABLE = no # Combo keys +UNICODE_ENABLE = no # Unicode \ No newline at end of file diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index 2a587000b62c..d2c99f66aa0c 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C94F8280C94B42878 -:100030000C94F3290C94EA040C94EA040C94EA045A +:100020000C94EA040C94EA040C947A290C94362972 +:100030000C94752A0C94EA040C94EA040C94EA04D7 :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C94CF290C94EA040C94EA045E +:100050000C94EA040C94512A0C94EA040C94EA04DB :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -147,22 +147,22 @@ :100920000200010803410039006500000012034184 :100930000074006C0061006E0074006900730000B8 :1009400000040309040011241FBECFEFD0E1DEBF75 -:10095000CDBF04B603FE27C080915E0390915F0374 -:10096000A0916003B09161038730904BA740B04BDA -:10097000D1F410925E0310925F0310926003109204 -:10098000610314BE84B7877F84BF0FB6F894A8951F +:10095000CDBF04B603FE27C0809164039091650368 +:10096000A0916603B09167038730904BA740B04BCE +:10097000D1F41092640310926503109266031092F2 +:10098000670314BE84B7877F84BF0FB6F894A89519 :1009900080916000886180936000109260000FBEBB :1009A000E0E0F8E7099523E0AEEBB1E001C01D926D -:1009B000AE35B207E1F711E0A0E0B1E0E6EFF3E613 -:1009C00002C005900D92AE3BB107D9F70E941A2ADA -:1009D0000C94C2310C940000E8EDF0E080818C7F33 +:1009B000A436B207E1F711E0A0E0B1E0EAEFF4E617 +:1009C00002C005900D92AE3BB107D9F70E949C2A58 +:1009D0000C9444320C940000E8EDF0E080818C7FB0 :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 -:100A100010922A0308952091E4003091E50095E6B4 +:100A10001092AD0208952091E4003091E50095E632 :100A2000A9012091EC00822F817020FF06C08091E7 :100A3000E80080FF06C080E008952091E80022FDD4 -:100A40001AC080914F03882389F0853089F0809106 +:100A40001AC08091D202882389F0853089F0809184 :100A5000EB0085FD0FC02091E4003091E5004217C6 :100A60005307F9F29150E1F684E0089582E0089589 :100A700083E0089581E00895EF92FF920F931F9312 @@ -170,10 +170,10 @@ :100A90008091E80085FD0BC08091E8008E778093FF :100AA000E8000E940B05882399F3C82F08C0F701BE :100AB00081917F018093F1000150110949F78C2F3A -:100AC000CF911F910F91FF90EF9008958091510366 +:100AC000CF911F910F91FF90EF9008958091D402E4 :100AD00087FF13C08091E80082FF06C08091E80084 -:100AE0008B778093E80004C080914F038111F2CF8F -:100AF000089580914F038823D9F38091E80080FF07 +:100AE0008B778093E80004C08091D2028111F2CF0D +:100AF00008958091D2028823D9F38091E80080FF85 :100B0000F8CF8091E8008E77ECCF982F9093E90092 :100B1000242F762F50E0891731F07091EC0020914E :100B2000ED005091F00021FD07C09F5F973071F7F5 @@ -183,49 +183,49 @@ :100B6000F0002091EE0027FDE0CF80E00895CF92C5 :100B7000DF92EF92FF920F931F93CF93DF93C8ED15 :100B8000D0E088818F7E8883E7EDF0E0808181600E -:100B9000808381E080932A0388818C7F888302EEA2 +:100B9000808381E08093AD0288818C7F888302EE20 :100BA00010E0D8011C921092DA0081EEC82ED12CF0 :100BB000D6011C9288818F7788838881806888839A :100BC00088818F7D888380818068808319BC1092A2 -:100BD0004F031092500310924E0310924D0390EE6B +:100BD000D2021092D3021092D1021092D00290EE63 :100BE000E92EF12CF70180818B7F808388818160E1 :100BF000888342E060E080E00E948505D6018C9108 :100C00008E7F8C93F80180818160808380818860F1 :100C10008083D7018C918E7F8C93888180618883BB :100C2000DF91CF911F910F91FF90EF90DF90CF90C8 -:100C30000895FC01809157039091580386179707F8 +:100C30000895FC018091DA029091DB0286179707F4 :100C4000A0F06115710529F49091E8009E779093CA :100C5000E80090E06115710551F4911108C0809190 :100C6000E80082FF33C080E00895BC01F2CF80919C -:100C70004F038823B9F18530B9F18091E80083FDF5 +:100C7000D2028823B9F18530B9F18091E80083FD73 :100C80002FC08091E80082FDEACF8091E80080FFCC :100C9000E1CF2091F2003091F3006115710519F058 :100CA0002830310558F091E02830310509F090E006 :100CB0002091E8002E772093E800CCCF819180939B -:100CC000F100615071092F5F3F4FE7CF80914F03D3 +:100CC000F100615071092F5F3F4FE7CF8091D20251 :100CD000882341F0853041F08091E80083FFBFCF49 -:100CE00081E0089582E0089583E0089580912C03C7 -:100CF00008959C014FB7F8948091210390912203AD -:100D0000A0912303B09124034FBF821B930B08953E -:100D10002FB7F8948091210390912203A09123038F -:100D2000B09124032FBF089520911E0330911F031B -:100D30002817390771F090931F0380931E03E091E9 -:100D40001C03F0911D03309721F00084F185E02D04 -:100D50000994089520911A0330911B03281739072D -:100D600071F090931B0380931A03E0911C03F091A0 -:100D70001D03309721F00680F781E02D0994089536 -:100D8000E0911C03F0911D03309721F00190F08158 +:100CE00081E0089582E0089583E008958091AF0245 +:100CF00008959C014FB7F8948091A4029091A502A9 +:100D0000A091A602B091A7024FBF821B930B08953A +:100D10002FB7F8948091A4029091A502A091A60209 +:100D2000B091A7022FBF08952091A1023091A20295 +:100D30002817390771F09093A2028093A102E091E5 +:100D40009F02F091A002309721F00084F185E02D00 +:100D50000994089520919D0230919E022817390729 +:100D600071F090939E0280939D02E0919F02F0911A +:100D7000A002309721F00680F781E02D09940895B4 +:100D8000E0919F02F091A002309721F00190F08154 :100D9000E02D099480E00895FA01811101C0FB0162 -:100DA0000994089580911503982F9E7F61F48170B6 -:100DB00082608093150380911803853B18F084EBC3 -:100DC0008093180308958A34B0F381708864F1CF5A +:100DA0000994089580915F03982F9E7F61F481706C +:100DB000826080935F0380916203853B18F084EB2F +:100DC0008093620308958A34B0F381708864F1CF10 :100DD000AF92BF92DF92EF92FF920F931F93CF9348 :100DE000DF93182F062FE901453B08F044EBE42F71 :100DF000F0E0E853FD4F011110C0E4915E2F4E2F3B :100E00004983E8835A83DF91CF911F910F91FF901F :100E1000EF90DF90BF90AF900895202F30E0449185 :100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E94C330812F90E0880F991F1E +:100E3000F0E0BF010E944531812F90E0880F991F9B :100E400055E5569FD001579FB00D11248A1B9B0B6F :100E5000982F990F890F5F01A21AB30AAE9CD00197 :100E6000AF9CB00DBE9CB00D11245B2F089F80017C @@ -238,52 +238,52 @@ :100ED00097CF6430710569F080F06630710509F4D0 :100EE0008FCFF4CFE42F4B2F592F8ACFE42F412FF0 :100EF00087CFEB2F542F492F83CF4B2F5D2DE12F21 -:100F00007FCF0E9488069C01909184028091850287 -:100F1000982B21F0309381022093800290918602D9 -:100F200080918702982B21F030937F0220937E02DC -:100F3000E0911C03F0911D03309749F082E080930B -:100F400082020480F581E02D82E892E00994089500 -:100F500040918402803F59F48091850287FF0DC043 -:100F60001092850241110BC010927C0208C0813F93 -:100F700081F48091850218169CF3442381F08091BE -:100F8000860290918702892B09F05AC010927B0249 -:100F90000895823F49F447FFF0CF10928402809178 -:100FA00085028111ECCFE0CF833F19F41416ACF326 -:100FB000E4CF90918602893F29F41916F4F6109235 -:100FC0008602DBCF8A3F19F497FFD7CFF8CF9091F5 -:100FD00087028B3F29F497FFD0CF10928702CDCFA5 +:100F00007FCF0E9488069C0190918A0280918B027B +:100F1000982B21F0309387022093860290918C02C7 +:100F200080918D02982B21F03093850220938402CA +:100F3000E0919F02F091A002309749F082E0809307 +:100F400088020480F581E02D88E892E009940895F4 +:100F500040918A02803F59F480918B0287FF0DC037 +:100F600010928B0241110BC01092820208C0813F87 +:100F700081F480918B0218169CF3442381F08091B8 +:100F80008C0290918D02892B09F05AC01092810237 +:100F90000895823F49F447FFF0CF10928A02809172 +:100FA0008B028111ECCFE0CF833F19F41416ACF320 +:100FB000E4CF90918C02893F29F41916F4F610922F +:100FC0008C02DBCF8A3F19F497FFD7CFF8CF9091EF +:100FD0008D028B3F29F497FFD0CF10928D02CDCF99 :100FE0008C3F19F41916CCF3C8CF9CE0980F9530BC :100FF00090F4845F990B21E030E0B90102C0660FE4 -:10100000771F8A95E2F7CB0180959091830289231F -:1010100080938302B2CF8D3F31F480917D028E7F29 -:1010200080937D02AACF8E3F21F480917D028D7F37 -:10103000F7CF8F3F09F0A1CF80917D028B7FF0CF5A -:10104000089580917D0280FD16C081FD16C082FD4D -:1010500016C080917B028823A1F0883280F428E0BA -:10106000829FC001112468E270E00E94D730862F71 +:10100000771F8A95E2F7CB01809590918902892319 +:1010100080938902B2CF8D3F31F4809183028E7F1D +:1010200080938302AACF8E3F21F4809183028D7F2B +:10103000F7CF8F3F09F0A1CF809183028B7FF0CF54 +:1010400008958091830280FD16C081FD16C082FD47 +:1010500016C0809181028823A1F0883280F428E0B4 +:10106000829FC001112468E270E00E945931862FEE :10107000672B39F0089582E0089584E0089588E0B0 -:10108000089581E0089580917D0280FD14C081FD66 -:1010900014C082FD16C080917C02882381F08431C7 +:10108000089581E008958091830280FD14C081FD60 +:1010900014C082FD16C080918202882381F08431C1 :1010A00080F422E3829FC001112464E170E00E9479 -:1010B000D730862F08958CE0089589E1089585E062 +:1010B0005931862F08958CE0089589E1089585E0DF :1010C000089582E30895803F31F40E94430881959A -:1010D000809385020895813F19F40E944308F8CF58 -:1010E000823F31F40E9443088195809384020895E1 +:1010D00080938B020895813F19F40E944308F8CF52 +:1010E000823F31F40E944308819580938A020895DB :1010F000833F19F40E944308F8CF893F29F40E94E6 -:1011000021088093860208958A3F21F40E942108D5 +:10110000210880938C0208958A3F21F40E942108CF :101110008195F7CF8B3F31F40E9421088195809310 -:10112000870208958C3F19F40E942108F8CF9CE0B3 +:101120008D0208958C3F19F40E942108F8CF9CE0AD :10113000980F953070F4845F990B21E030E001C086 -:10114000220F8A95EAF780918302822B8093830293 -:1011500008958D3F31F480917D02816080937D02FE -:1011600008958E3F21F480917D028260F7CF8F3FFA -:10117000B9F780917D028460F1CF80E00895F89402 +:10114000220F8A95EAF780918902822B8093890287 +:1011500008958D3F31F480918302816080938302F2 +:1011600008958E3F21F4809183028260F7CF8F3FF4 +:10117000B9F7809183028460F1CF80E00895F894FC :10118000E82FE295EF70F0E031A1282F2F7081E079 :1011900090E001C0880F2A95EAF7982F9095932345 -:1011A00091A392A1892B82A378940895909125030D +:1011A00091A392A1892B82A3789408959091A8028B :1011B00092FF06C0282F28712830F9F4877F8460B9 :1011C00093FF06C0282F28712831F1F4877E8461AF -:1011D0002091260320FF06C0382F38713830D9F40B +:1011D0002091A90220FF06C0382F38713830D9F489 :1011E000877F816021FF06C0282F28712831D1F424 :1011F000877E816194FD877E0895282F2471243095 :10120000F9F68B7F8860DCCF282F2471243101F719 @@ -296,21 +296,21 @@ :1012700008F09CC0C03ED10560F5C83AD10508F021 :1012800087C0C53AD10508F0FDC0C130D10509F1CC :101290002097F9F0C430D105E0F440C085339105C2 -:1012A00009F45AC0C997C1F680912503837089F06B +:1012A00009F45AC0C997C1F68091A802837089F0E9 :1012B000C0EED0E00EC0833E910599F170F4803EFF -:1012C000910501F1823E910539F68091250382FD59 +:1012C000910501F1823E910539F68091A80282FDD7 :1012D00021C0CE01DF91CF910895863E910561F145 :1012E000873E910571F1843E910509F0B5CF80915B -:1012F000260381FFEECF80912503C7EED0E084FD69 -:101300000DC0E7CF8091250380FD12C19091260387 +:1012F000A90281FFEECF8091A802C7EED0E084FD65 +:101300000DC0E7CF8091A80280FD12C19091A90283 :1013100090FFDFCFC3EED0E084FFDBCFD0E0C0E0B2 -:10132000D8CF8091250382FD06C19091260390FDC0 -:10133000BFCF84FFCECFF2CF8091250383FDDDCFD9 -:10134000C8CF8091250383FDF9C09091260391FFBA -:10135000F0CFC4EED0E0BDCF8091250385FFB9CF9B -:10136000C9E2D0E0B6CF8091250385FFB2CFC5E3B7 -:10137000D0E0AFCF8091250386FFABCFCAE2D0E0AB -:10138000A8CF8091250386FFA4CFC1E3D0E0A1CFF1 +:10132000D8CF8091A80282FD06C19091A90290FDBC +:10133000BFCF84FFCECFF2CF8091A80283FDDDCF57 +:10134000C8CF8091A80283FDF9C09091A90291FFB6 +:10135000F0CFC4EED0E0BDCF8091A80285FFB9CF19 +:10136000C9E2D0E0B6CF8091A80285FFB2CFC5E335 +:10137000D0E0AFCF8091A80286FFABCFCAE2D0E029 +:10138000A8CF8091A80286FFA4CFC1E3D0E0A1CF6F :10139000CF3BD10518F6C85AD0E0CC0FDD1FCF5D8A :1013A000DE4F0990D881C02DD46493CFC11540E29F :1013B000D40758F4C11581E0D80708F08ACFC03FA0 @@ -341,19 +341,19 @@ :10154000C8CE8091350281111092350208958091A4 :10155000340290913302892B90913202892B80932F :10156000C001909135029923A1F0892B8093C0018D -:1015700080911D01882341F18091250387FF24C0BC +:1015700080911D01882341F18091A80287FF24C03A :101580008EE1E2ECF1E090E0815000F591110E94D3 -:10159000A10AE0911C03F0911D033097E1F08091C6 -:1015A0001D01882359F08091250387FF07C0809192 +:10159000A10AE0919F02F091A0023097E1F08091C2 +:1015A0001D01882359F08091A80287FF07C0809110 :1015B000C0018093C10185E08093C0010280F38166 :1015C000E02D80EC91E0099486E0DBCF219122238D :1015D000D9F29F5FD9CF089590911D019923D1F041 -:1015E0009091250397FF16C0E82FE695E695E695BE +:1015E0009091A80297FF16C0E82FE695E695E6953C :1015F000EE31E0F4F0E0E054FE4F282F277081E058 :1016000090E001C0880F2A95EAF78095928189239E :1016100082830895E2ECF1E09191891303C0DF0128 :1016200011971C9291E0E83CF907B1F70895909169 -:101630001D019923C1F09091250397FF14C0E82F55 +:101630001D019923C1F09091A80297FF14C0E82FD3 :10164000E695E695E695EE31F8F4F0E0E054FE4FCD :10165000877021E030E001C0220F8A95EAF782818D :10166000822B82830895A2ECB1E0EFEF90E02D9100 @@ -373,8 +373,8 @@ :101740002527242325272C9301968430910561F7C2 :10175000089590E080E00E94AA0690E080E00E9458 :10176000940610923302109232020E94A70A86E079 -:10177000E2E8F2E0DF011D928A95E9F710927C021F -:1017800010927B0210927D020C9481079093370295 +:10177000E8E8F2E0DF011D928A95E9F71092820213 +:1017800010928102109283020C9481079093370289 :10179000809336020C94A90B882341F08095909198 :1017A00034028923809334020C94A70A0895882375 :1017B00039F090913402982B909334020C94A70A3C @@ -389,11 +389,11 @@ :10184000809590913402892380933402CBCF9BE51D :10185000980F933020F490E080E00C94AA0698E56D :10186000980F973120F490E080E00C949406803F2C -:1018700020F00E94A8070C948107089590914F03CF -:10188000943029F5809327037093290360932803EC +:1018700020F00E94A8070C94810708959091D2024D +:10188000943029F58093AA027093AC026093AB0266 :101890009093E9008FEF9091E800815095FD06C08C :1018A00095ED9A95F1F700008111F5CF8091E80050 -:1018B00085FF0DC050E040E063E070E087E293E018 +:1018B00085FF0DC050E040E063E070E08AEA92E00E :1018C0000E943C058091E8008E778093E80008959F :1018D000BC0184E00C943E0CBC0183E00C943E0CF3 :1018E0009C0184E08093E9009FEF8091E800915093 @@ -401,17 +401,17 @@ :101900008091E80085FF0CC050E040E066E070E0A8 :10191000C9010E943C058091E8008E778093E80021 :101920000895CF93DF93EC0180911D018823B1F1DD -:101930008091250387FF32C060E284E08093E90054 +:101930008091A80287FF32C060E284E08093E900D2 :101940008FEF9091E800815095FD06C095ED9A9536 :10195000F1F700008111F5CF8091E80085FF1BC0F1 :1019600080911D0170E050E040E0811104C050E022 :1019700040E068E070E0CE010E943C058091E80004 -:101980008E778093E80080E2FE01ADE2B3E0019043 +:101980008E778093E80080E2FE01A0EBB2E0019048 :101990000D928A95E1F7DF91CF91089568E081E09B :1019A000CDCF81E08093E00080E28093D800109258 :1019B000C9008FE19EE40197F1F700C0000087E0C5 -:1019C00090EBDC0180935E0390935F03A093600330 -:1019D000B093610388E19CE00FB6F894A8958093DA +:1019C00090EBDC018093640390936503A09366031E +:1019D000B093670388E19CE00FB6F894A8958093D4 :1019E00060000FBE90936000FFCFCF93C82F882375 :1019F00009F4AEC08238C1F40E94C00681FDA8C0BF :101A000089E30E94170B0E94A70A2FEF81EE94E052 @@ -423,7 +423,7 @@ :101A600087E40E94170B0E94A70A2FEF81EE94E0F3 :101A7000215080409040E1F700C0000087E4CFCFC4 :101A80008CEF8C0F813A88F580911D01882301F13C -:101A90008091250387FF1CC0EC2FE695E695E6951F +:101A90008091A80287FF1CC0EC2FE695E695E6959D :101AA000F0E0E054FE4F828190E04C2F477021E03F :101AB00030E002C0220F331F4A95E2F782239323BE :101AC000892B79F08C2F0E94EC0A0E94A70A09C08A @@ -440,10 +440,10 @@ :101B700031F4812FDF91CF911F910C94E10B8FE90C :101B80009FE00197F1F700C000002197F0CF0F937D :101B90001F93CF93DF93C62FD42F022FFC01828196 -:101BA0008823A1F060935D030E94880690935C03F4 -:101BB00080935B03C77081E001C0880FCA95EAF784 -:101BC000DF91CF911F910F910C94D70B80915D0302 -:101BD000681335C080915B0390915C030E94790685 +:101BA0008823A1F06093E0020E9488069093DF02F0 +:101BB0008093DE02C77081E001C0880FCA95EAF702 +:101BC000DF91CF911F910F910C94D70B8091E00280 +:101BD000681335C08091DE029091DF020E94790681 :101BE000883C910560F510E21D0FCD17B9F080E239 :101BF0008C0F883040F4C77081E001C0880FCA950F :101C0000EAF70E94CC0B183048F481E09D2F9770C2 @@ -452,35 +452,35 @@ :101C3000EAF7DF91CF911F910F910C94CC0BC770F5 :101C400081E001C0880FCA95EAF7F3CFDF91CF9109 :101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E944A312196C11588E0D807B9F704 +:101C6000CE010E94CC312196C11588E0D807B9F782 :101C7000DF91CF9108956F927F928F929F92AF9252 :101C8000BF92CF92DF92EF92FF920F931F93CF9369 :101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 :101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E944A31682DC80101960E9411 -:101CC0004A3182E0A80EB11C0E5F1F4FC017D1072A +:101CB000692DC8010E94CC31682DC80101960E948F +:101CC000CC3182E0A80EB11C0E5F1F4FC017D107A8 :101CD00061F788E1680E711C6896CE15DF0529F062 :101CE0008E01085111095301E0CF7E0180E6E80E14 :101CF000F11C80E6C80ED11C8FE5E81684E0F806DA :101D000079F6DF91CF911F910F91FF90EF90DF90C7 :101D1000CF90BF90AF909F908F907F906F900895DD :101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D30004A316FEFC11169E084E290E00E944A31BC -:101D40006FEFC11161E185E290E0CF910C944A31CF -:101D500080E00E94900E60E086E290E00E944A31AE +:101D3000CC316FEFC11161E184E290E00E94CC31BF +:101D40006FEFC11165E085E290E0CF910C94CC314A +:101D500080E00E94900E60E086E290E00E94CC312C :101D60000E943B0E0E942B0E81E00C94900ECF93AC -:101D7000C0912603C2FB992790F9981781F080FB48 -:101D8000C2F9C09326036091250384E090E00E948D -:101D90004A316C2F82E290E0CF910C944A31CF917E +:101D7000C091A902C2FB992790F9981781F080FBC6 +:101D8000C2F9C093A9026091A80284E090E00E9489 +:101D9000CC316C2F82E290E0CF910C94CC31CF917A :101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 :101DB000DD1F28E1629FC00DD11D112430E6839FF5 -:101DC000C00DD11D1124CE0187960E943631082FF7 -:101DD00010E0102F0027CE0188960E94363198011E +:101DC000C00DD11D1124CE0187960E94B831082F75 +:101DD00010E0102F0027CE0188960E94B83198019C :101DE000282BC901DF91CF911F910F910895462FA4 :101DF0008A3038F4743028F46C3018F4672F0C945F :101E0000D10E90E080E00895BF92CF92DF92EF92E2 -:101E1000FF920F931F93CF93DF937C01009159039F -:101E200010915A038091360290913702082B192B9A +:101E1000FF920F931F93CF93DF937C010091DC021D +:101E20001091DD028091360290913702082B192B18 :101E3000CFE0D0E0CC24C394D12CBC2EC6010C2E14 :101E400002C0880F991F0A94E2F780239123892BFF :101E500071F4219790F7B12C8B2DDF91CF911F91C9 @@ -489,25 +489,25 @@ :101E8000CF93DF93EC010E94040FBE010E94F70E76 :101E9000DF91CF910C941909FC01808191810E94FE :101EA000400F292F2F7092959F7092509E3078F49A -:101EB000E92FF0E0EC53FE4C0C94EB30803F19F02E +:101EB000E92FF0E0EA5BFD4C0C946D31803F19F0A6 :101EC00020F4883E20F481E00895843FE1F380E02F :101ED0000895883EC0F3813FD1F7F5CF822F8695D4 -:101EE00086958695089583E290E00E94363181328E -:101EF00089F484E290E00E943631893059F485E219 -:101F000090E00E94363191E0813109F090E0892F14 +:101EE00086958695089583E290E00E94B83181320C +:101EF00089F484E290E00E94B831813159F485E29E +:101F000090E00E94B83191E0853009F090E0892F8F :101F10008170089580E0FCCFCF9384E090E00E9430 -:101F20003631C82F82E290E00E943631982F8C2FF4 -:101F3000CF91089560911503669570E04BE050E0F5 -:101F40008AE091E00E941C31892B19F481E0809392 -:101F500092020E94880690938C0280938B020895CF +:101F2000B831C82F82E290E00E94B831982F8C2FF0 +:101F3000CF91089560915F03669570E04BE050E0AB +:101F40008AE091E00E949E31892B19F481E0809310 +:101F500098020E94880690939202809391020895BD :101F60004F925F926F927F928F929F92AF92BF92A9 :101F7000CF92DF92EF92FF920F931F93CF93DF9355 :101F8000CDB7DEB7CE57D1090FB6F894DEBF0FBE7E -:101F9000CDBF509019018091150380FF5DC08090E6 -:101FA000890290908A028114910409F068C0EDECD6 +:101F9000CDBF5090190180915F0380FF5DC080909C +:101FA0008F02909090028114910409F068C0EDECCA :101FB000F3E09E012F5F3F4FBE0161587F4FC90183 :101FC000A4914A2F50E0DA01AA0FBB1FA40FB51F3E -:101FD000A956BD4FCD90DD90EC90D901CD92DD9208 +:101FD000AF51BD4FCD90DD90EC90D901CD92DD9207 :101FE000ED929D0131966A177B0751F720911801F8 :101FF00043E0249F800D911D11246E9A2EB12F7BFA :102000003EB130645FB7F894BC01549E600D711D01 @@ -516,1098 +516,1114 @@ :10203000DEBF0FBECDBFDF91CF911F910F91FF90FB :10204000EF90DF90CF90BF90AF909F908F907F9058 :102050006F905F904F90089580911A0190911B01AD -:1020600023E0829FF0011124E956FD4F891708F003 +:1020600023E0829FF0011124EF51FD4F891708F002 :1020700096CF1182108212828F5F3396F7CF8091B4 -:102080008802811194CFD12CC12C66246394712CC9 -:1020900053E0452E8091930293010C2C01C0220F36 +:102080008E02811194CFD12CC12C66246394712CC3 +:1020900053E0452E8091990293010C2C01C0220F30 :1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 :1020B000E80DF91DE590F490E114F10409F477CFEF -:1020C00045E050E0B701CE0101960E94133109812D +:1020C00045E050E0B701CE0101960E9495310981AB :1020D0000F3F39F18A81800F9927991F8B32910523 :1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 -:1020F000DC01A956BD4F5D01049D800111240956E4 +:1020F000DC01AF51BD4F5D01049D800111240F51E2 :102100001D4F0A151B0520F0B5E0EB0EF11CD8CFD2 :1021100098014D816C818B810E94E8060D5F1F4FF5 :10212000F0CFEFEFCE1ADE0AF8E0CF16D10409F0B7 :10213000B1CF3DCFFC014191CF01E8E03EB90000B5 :1021400000C047FF2EB9440F000000C000C000C00F -:102150002EB900C0EA9591F75CCF0F931F93CF93F0 -:10216000DF93EC0110E000E090911C019017110644 -:1021700009F06CF40E94B00F8C8190E001968170A0 -:1021800099278C83DF91CF911F910F910895209112 -:102190001A01A801420F511D9A01220F331F240F6B -:1021A000351F29563D4F4C816091170380911603CE -:1021B00096959017110651F04CF0442349F0409148 -:1021C00018030E94E8060F5F1F4FCECF4423B9F3D8 -:1021D00040E0F7CF8F929F92AF92BF92CF92DF9263 -:1021E000EF92FF920F931F93CF93DF93EC014C81FB -:1021F000042F10E09801D8010E94B3319B01AC017B -:102200000E947E314B015C01E0E2F0E0E01BF10B4B -:10221000A5E5B0E0AC019B010E947E316B017C0121 -:102220009F01DF010E94F8309B01AC010E948931BF -:102230009B01AC01280D391D4A1D5B1DC701B6016C -:102240000E949131F22E822F90E039E23F1560F129 -:1022500043E0249F9001112435952795122F109566 -:1022600000E085E5E82EEF1880911C01081758F171 -:102270000E94B00F9C8181E0992319F0903219F4EB -:102280008FEF8093170180911701890F8C83DF9165 -:10229000CF911F910F91FF90EF90DF90CF90BF9063 -:1022A000AF909F908F90089525E530E0B901681BAD -:1022B000790B9B01220F331F260F371F37FFCCCF1F -:1022C0002F5F3F4FC9CF8E2D01FD8F2D20911A0119 -:1022D000622F600F7727771F9B01220F331F260F76 -:1022E000371F29563D4F412F609117030E94E80682 -:1022F0000F5FBACF0F931F93CF93DF9380911A0193 -:1023000090911B0123E0829FF0011124E956FD4FBB -:10231000891740F1C0E0D3E060911C01C61740F17D -:102320000E94B00F2091150180919502820F809339 -:10233000950290911601920F90931601191654F47C -:10234000082E000C990B40911C014150550B84172D -:1023500095071CF0219520931501DF91CF911F91D6 -:102360000F9108951182108212828F5F3396D0CF21 -:102370000C2F10E070E0C8010E94D73020911A01A4 -:10238000820F482F50E020919502022E000C330B53 -:1023900002171307BCF020911601022E000C330B1C -:1023A000201731077CF08D9F9001112429563D4F55 -:1023B0004091180360911703809116030E94E8066C -:1023C000CF5FAACFFA01EE0FFF1FE40FF51FE9560A -:1023D000FD4F118210821282F3CF1F93CF93DF93B0 -:1023E000FC018281DFEF80FFD1E0C0E01AE2909132 -:1023F0001C01C91788F00E94B00F80919402D1305F -:10240000C9F5811102C080911C0181508093940212 -:10241000DF91CF911F910895E0911A014C2F50E068 -:102420009A012E0F311DF901EE0FFF1FE20FF31F6E -:10243000E956FD4F118210821282809194028B32F4 -:10244000ACF0612F0E94B530892F082E000C990B3B -:102450004817590749F49F014091180360911703E9 -:10246000809116030E94E806CF5FC1CF87FFEDCFB2 -:10247000890FEBCF90E0019660911C0170E00E9403 -:10248000D730C4CFEF92FF921F93CF93DF93EC012D -:1024900010E0EE24EA94F12C60911C01161770F004 -:1024A0000E94B00F9A818C8190FF27C08F5F8C8330 -:1024B000DF91CF911F91FF90EF90089520911A0125 -:1024C000422F410F5527551FCA019A01220F331F72 -:1024D000280F391F29563D4F70E0C7010E94D730A1 -:1024E000962F8C814091180360911703199F800DDE -:1024F00011240E94E8061F5FCFCF8150D8CF909162 -:10250000150390FF14C090911A0120911B0133E034 -:10251000939FF0011124E956FD4F921710F00C948F -:10252000B00F8183608342839F5F3396F6CF089517 -:102530000F931F93CF93DF9300D00F92CDB7DEB7E9 -:102540008C018091960281110AC09E012F5F3F4F3E -:1025500044EB6FEF0E94E8068A8180939602F801AF -:102560006481613069F08091960240E0662361F0F9 -:1025700040E0623011F44091960280E060E004C0D7 -:102580006091960240E080E00E947F12F801848111 -:1025900090E0019663E070E00E94D73084830F9052 -:1025A0000F900F90DF91CF911F910F910895CF93CE -:1025B000DF9300D00F92CDB7DEB79091150390FF57 -:1025C0000AC09E012F5F3F4F0E94E8064B81698140 -:1025D0008A810E947F120F900F900F90DF91CF9110 -:1025E0000895CF93DF93EC01E5E1F3E0438162814D -:1025F0008C810E94D7128C818F5F8C83DF91CF9169 -:102600000895CF93DF93EC01EC81F0E0EA50FC4FAA -:102610004491E5E1F3E0628181810E94D7128C81CF -:102620008F5F8C83DF91CF910895CF92DF92EF92ED -:10263000FF926B017C010E94D206B701A60188E0DF -:1026400090E0FF90EF90DF90CF900C945C31AF92D0 -:10265000BF92CF92DF92EF92FF920F931F93CF938F -:10266000DF9300D00F92CDB7DEB7182FF62E042FD0 -:10267000E22E9091150390FF29C0E92FE695AE2F29 -:10268000B0E0A657BE4F8C91809391029E7F92300E -:1026900059F59E012F5F3F4F812F0E94E8064B8125 -:1026A00069818A810E947F1210931603F0921703AA -:1026B00000931803EE2051F06091150370911603FA -:1026C00080911703909118030E9415130F900F909B -:1026D0000F90DF91CF911F910F91FF90EF90DF90BE -:1026E000CF90BF90AF900895823019F400911803F5 -:1026F000DBCF863019F410911603D6CF8930D9F389 -:10270000893191F6E9518E2F8170D82EE695F0E04F -:10271000E853FC4FA590B490C12CBB2460911C01E0 -:10272000C61618F00E94B00FBFCF2C2D30E0A29E2D -:10273000C001A39E900DB29E900D112470E00E94E6 -:10274000C330812FD11013C0860F40911A01420F60 -:10275000532F511D9A01220F331F240F351F295665 -:102760003D4F402F6F2D0E94E806C394D7CF861BA4 -:10277000ECCFE5E1F3E0438128E0421B08F440E0C0 -:1027800021E0628181810C942713E5E1F3E043812C -:1027900028E0420F08F44FEF21E0628181810C9420 -:1027A0002713E5E1F3E0628128E0621B08F460E0B2 -:1027B00021E0438181810C942713E5E1F3E06281FC -:1027C00028E0620F08F46FEF21E0438181810C94CF -:1027D0002713E5E1F3E0818121E0438162818850A4 -:1027E0000C942713E5E1F3E0818121E043816281CC -:1027F000885F0C94271380911903882319F0815066 -:10280000809319036091150370911603809117034B -:10281000909118030C94151380911903833018F4C8 -:102820008F5F809319036091150370911603809157 -:102830001703909118030C9415139091150390FFB2 -:1028400036C09170811129C0926090931503662360 -:1028500051F06091150370911603809117039091C8 -:1028600018030E94151360911503669570E04BE004 -:1028700050E08AE091E00E941C31892BA9F010926F -:10288000920281E080938E0220E0409118036091D3 -:102890001703809116030C942713853210F0986467 -:1028A000D4CF880F982BD1CF0E949A0FEACF0895EA -:1028B00060E00C941D1421E030E0A90102C0440F37 -:1028C000551F8A95E2F7CA0120919302662391F081 -:1028D000822B8093930280919202811105C0809196 -:1028E000150386950E9458148091150380FD05C03C -:1028F0000C94B00F80958223ECCF0895CF93DF9393 -:10290000C82FC17082FBDD27D0F981FB662760F9F3 -:1029100084E00E945B1461E06C2785E00E945B14F8 -:102920006D2F86E0DF91CF910C945B140F931F9372 -:10293000CF93DF93EC0161E0009709F0682F61709D -:1029400080E00E945B1460E0209721F0BE01769544 -:102950006795617081E00E945B1460E0209731F020 -:10296000BE017695679576956795617082E00E94C5 -:102970005B1460E0209739F0BE01B3E0769567956F -:10298000BA95E1F7617083E00E945B14AE0170E0DC -:1029900060E0BB27A72F962F852F0097A105B105D3 -:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 -:1029B000279517950795FA95D1F70115110521056A -:1029C000310519F08C5FB901A8018A019B01E2E091 -:1029D0003695279517950795EA95D1F701151105B5 -:1029E0002105310519F08E5FB901A801769567952B -:1029F00057954795452B462B472B09F08F5F813024 -:102A0000C9F0882359F08230D1F08330E9F020E01A -:102A10004EE16FEF80E406C080E0C6CF20E04EE1DB -:102A20006FEF82E30E942713CE01DF91CF911F91B8 -:102A30000F91089520E04EE16FEF8EE1F3CF20E09B -:102A40004EE16FEF8AE6EECF20E04EE16FEF87EDCB -:102A5000E9CF0E94961490935A03809359030C94E3 -:102A6000A90B8091590390915A039C01267033273A -:102A70002630310519F488600C942915877FFCCF26 -:102A800021E030E002C0220F331F8A95E2F7209543 -:102A900030958091590390915A03822393230C948B -:102AA0002915909131028095892380933102282F36 -:102AB000277039F4282F082E000C330B92171306B9 -:102AC00021F49091260392FF07C085958595859501 -:102AD0000E94401510923102089521E030E002C0BA -:102AE000220F331F8A95E2F78091590390915A0380 -:102AF000822B932B0C942915809115038695815078 -:102B000009F484E261E00C941D148091150386950C -:102B10008F5F853208F081E061E00C941D14909184 -:102B2000150390FF07C09695981720F0961710F49C -:102B30000C94851561E00C941D14E5E1F3E083E04D -:102B4000808311828FEF828384EB83831482608180 -:102B50007181828193810C94151369EE7EEF90E070 -:102B600080E00E94683160E082E090E00E944A319B -:102B700060E083E090E00E944A31109237021092A8 -:102B8000360260E084E090E00E944A3160E082E238 -:102B900090E00E944A3160E085E090E00E944A3176 -:102BA00060E086E090E00E944A316FEF87E090E0BD -:102BB0000E944A3140E050E0BA0188E090E00E9473 -:102BC0005C3160E08DE090E00E944A3140E050E0EE -:102BD000BA0188E190E00E945C3160E087E190E01A -:102BE0000E944A3140E050E0BA018CE190E00E943E -:102BF0005C3170E060E080E290E00E94683140E08B -:102C000050E0BA0188E190E00E945C3180E00E94CF -:102C1000900E0E94A80E40E050E0BA018FE090E0D4 -:102C20000E945C3140E050E0BA0183E190E00C94F6 -:102C30005C318F929F92AF92BF92CF92DF92EF92D0 -:102C4000FF920F931F93CF93DF93CDB7DEB72897F3 -:102C50000FB6F894DEBF0FBECDBF8E010F5F1F4FC2 -:102C600088E0F80111928A95E9F78FE4E82E81E077 -:102C7000F82E6801AA24A394B12CF70181917F0159 -:102C80008F3F09F44BC0F894E82FE295EF70F0E025 -:102C900021A18F70A50102C0440F551F8A95E2F74C -:102CA000CA01922F982B91A392A18095892382A388 -:102CB000789400C0E3E5F1E030E020E0912C812C35 -:102CC00081918F3F09F47EC0A82FA295AF70B0E02C -:102CD00090964C9150E08F7002C0559547958A951B -:102CE000E2F740FD6FC0C501022E02C0880F991F98 -:102CF0000A94E2F7882A992A2F5F3F4F2C3031053A -:102D0000F9F6F701319780818F3F11F00E94BF08DB -:102D100050EA5A95F1F7F60191828082F2E0CF0EE7 -:102D2000D11C23E5E21621E0F20609F0A6CF48E027 -:102D300050E0B80184E492E00E942931FF24F3942A -:102D4000009709F4F12C892B09F43FC088E0F801C1 -:102D5000A4E4B2E001900D928A95E1F781E08093BE -:102D60003A020E948806909339028093380280913B -:102D70003802909139020E947906059750F18091AE -:102D80004402909145029093740280937302809163 -:102D9000460290914702909376028093750280914B -:102DA0004802909149029093780280937702809133 -:102DB0004A0290914B0290937A028093790210928A -:102DC0003A0207C090E080E095CF80913A028111ED -:102DD000CECF80914302882371F08091410290917F -:102DE00042020E947906893E934028F082EE0E94BA -:102DF000E10B1092430280913F02909140029111A9 -:102E00004BC0882319F110921A0184E080931B01B2 -:102E100080931C018FE00E94581410923F0281E0C1 -:102E2000809340028F2D28960FB6F894DEBF0FBE18 -:102E3000CDBFDF91CF911F910F91FF90EF90DF9069 -:102E4000CF90BF90AF909F908F90089580913E0259 -:102E5000882379F086E180931A018AE180931B012F -:102E600084E080931C018FE00E94581410923E026F -:102E7000D6CF80913D028823A9F08AE180931A0180 -:102E80008EE180931B0184E080931C018FE00E94FF -:102E9000581410923D02C3CF811124C080913E028C -:102EA000811120C080913D0281111CC080913B02A4 -:102EB00090913C020E947906853F914098F01092D3 -:102EC0001A0189E280931B0180931C0181E20E9418 -:102ED000581410923F0210923E0210923D0210923E -:102EE0004002A0CF10923F0210923E0210923D028B -:102EF00099CF90E080E00E944431893E9E4F11F4CA -:102F00000C94730F80E008951092340280911D019B -:102F1000E2ECF1E0882359F08091250387FF07C098 -:102F20008EE1DF011D928A95E9F70C94A90B86E0EA -:102F3000F8CF1F93CF93DF93CDB7DEB7AA970FB625 -:102F4000F894DEBF0FBECDBF81E593E02091F10084 -:102F5000DC012D93CD01B3E089359B07B9F7809152 -:102F60005203833009F471C0B8F4813009F448C0C9 -:102F7000823009F4B2C08091E80083FF3AC18091A9 -:102F80005103909152039A3008F033C1E92FF0E0D9 -:102F9000EE52FE4C0C94EB308A3009F48DC08B302D -:102FA00009F470C0893039F780915103813219F7E3 -:102FB0008091550390915603009711F00297D9F62E -:102FC0008091E800877F8093E8008091E80082FF8D -:102FD00037C08091F2009091F300029729F480911C -:102FE000F1008B7F813021F48091F10080932C03DC -:102FF0008091E8008B778093E8000E946605BBCF44 -:1030000080915103813A09F0B6CF8091E800877F23 -:103010008093E8008091550390915603892B61F4C9 -:1030200060E28DE293E070E00E9419068091E80072 -:103030008B778093E8009FCF60E090E080E0F3CF53 -:1030400080914F038111C1CF96CF80915103813A76 -:1030500009F091CF8091550390915603892B09F087 -:103060008ACF8091E800877F8093E8008091E80014 -:1030700080FFFCCF80911D018093F1008091E800DA -:103080008E77B9CF80915103813209F074CF80914E -:10309000550390915603892B09F06DCF8091E8007C -:1030A000877F8093E8000E94660580915303809398 -:1030B0001D010E9484175FCF80915103813209F076 -:1030C0005ACF8091E800877F8093E8000E946605D0 -:1030D0008091540380932B034ECF80915103813A0A -:1030E00009F049CF8091E800877F8093E8008091C4 -:1030F000E80080FFFCCF80912B03BECF803899F091 -:10310000823809F076C0809155038F70873008F0BF -:1031100070C08093E9008091EB0085FB882780F9DF -:103120001092E90006C080914D0390914E039111D9 -:1031300082609091E800977F9093E8008093F1007F -:103140001092F1008091E8008E77B5C1882309F4D0 -:10315000A2C1823009F04DC0809153038111A6C1F4 -:10316000809155038F702FEF280F263008F041C053 -:103170008093E9002091EB0020FF98C1933031F457 -:103180008091EB0080628093EB0090C19091EB0006 -:1031900090619093EB0021E030E001C0220F8A950E -:1031A000EAF72093EA001092EA008091EB00886031 -:1031B000EACF81111EC0109153031F778091E30065 -:1031C0008078812B8093E3008091E800877F809353 -:1031D000E8000E9466058091E80080FFFCCF8091A6 -:1031E000E30080688093E30082E0111183E0809324 -:1031F0004F038091E80083FF0AC08091E800877F39 -:103200008093E8008091EB0080628093EB00AA96A7 -:103210000FB6F894DEBF0FBECDBFDF91CF911F91E7 -:1032200008958058823028F7209153033091540339 -:103230002C3DE3E03E07A1F583E08A838AE289839F -:103240004FB7F894DE01139620E03EE051E2E32F01 -:10325000F0E050935700E49120FF03C0E295EF7037 -:103260003F5FEF708E2F90E0EA30C0F0C7968D93ED -:103270009D932F5F243159F74FBF8091E800877FDE -:103280008093E8006AE270E0CE0101960E94190680 -:103290008091E8008B778093E800ABCFC096E7CFB2 -:1032A0008091550390915603432F55274330510584 -:1032B00009F44AC078F54130510509F47AC08BE52C -:1032C00090E0E6EBF8E04230510509F092CF209112 -:1032D000E800277F2093E80020915703309158039E -:1032E0008217930708F49C0140E02115310509F08D -:1032F00065C0411163C08091E80082FDC9CF809113 -:103300004F03882329F2853019F28091E80083FF6A -:10331000F2CFBECF4132510509F43CC042325105D3 -:1033200009F067CF8330910508F063CFFC01EE0F01 -:10333000FF1FEE54FE4F0190F081E02D81559E4F0E -:10334000DC018C9190E01AC0332721303105D1F097 -:103350002115310561F02230310509F04ACFE3E251 -:10336000F9E0E4918E2F90E0E3E2F9E007C0E1E4B8 -:10337000F9E0E4918E2F90E0E1E4F9E0009709F4A0 -:1033800038CFA5CFEDE2F9E0E4918E2F90E0EDE2A9 -:10339000F9E0F4CF8330910508F02BCF880F991F07 -:1033A000FC01E854FE4F0190F081E02D89E090E0AF -:1033B0008ECF82E190E0E1E1F9E089CF80914F0387 -:1033C000882309F465CF853009F462CF8091E80045 -:1033D00083FD5ECF8091E80082FD8DCF8091E80073 -:1033E00080FF83CF8091F2009091F3002115310589 -:1033F00019F08830910550F041E0089709F040E05D -:103400008091E8008E778093E8006FCF44914093DD -:10341000F1003196215031090196E8CF803809F04A -:10342000E8CE8091E800877F8093E8008091500388 -:103430008093F10087CE8111DCCE109153031230BE -:1034400008F0D7CE8091E800877F8093E800109342 -:1034500050030E946605112311F084E005C080919D -:10346000E30087FDFACF81E080934F0342E061ECF7 -:1034700081E00E94850542E261EC84E00E948505BE -:1034800042E261EC82E00E94850542E260EC83E06A -:103490000E948505AECE80915303813009F0A9CEFC -:1034A00081E0933009F080E080934E031092E900B0 -:1034B0008091E800877F8093E8000E94660599CE9E -:1034C0003F924F925F926F927F928F929F92AF92B4 -:1034D000BF92CF92DF92EF92FF920F931F93CF9301 -:1034E000DF9300D000D00F92CDB7DEB78C01FC0186 -:1034F00083819481892B31F08081918189238F3F51 -:1035000009F010C60F900F900F900F900F90DF9161 -:10351000CF911F910F91FF90EF90DF90CF90BF90D0 -:10352000AF909F908F907F906F905F904F903F9063 -:1035300008950E94040FF82E682F89819A810E94B5 -:103540007D0B69817A818F2D0E94F70E7C01F80135 -:103550008281882309F4D9C5970122513F45203142 -:10356000310508F09AC58FEF97E00E943631FEEEE4 -:10357000EF0E57EE852E53E0952E882381F1809132 -:103580003102877009F4BECFF8018281882309F4E3 -:10359000B9CF82E00F900F900F900F900F90DF91B6 -:1035A000CF911F910F91FF90EF90DF90CF90BF9040 -:1035B000AF909F908F907F906F905F904F903F90D3 -:1035C0000C945115811428E09206C9F2C4010E949E -:1035D0003631811101C0EA943FEF831A930AE1105A -:1035E000F1CF1C821B82442443944AE0342E7401A0 -:1035F0004FEFE41AF40AC4010E94363189831A821B -:10360000882309F4BCCF9FEF980F933000F58A838D -:10361000498252E0850E911CC7010E9436318B838E -:10362000882309F4ACCFCE0101967C01F7012081FB -:103630002223E9F2213009F049C091818281913041 -:1036400041F4F2E0EF0EF11C0E94AA0D09C04701FF -:10365000EACF923049F422E0E20EF11C0E94F50C10 -:103660003FEFE31AF30AE2CF933031F432E0E30E96 -:10367000F11C0E94E10BF4CF943021F04FEFE41ADB -:10368000F40AEECF52E0E50EF11C30E020E0B70185 -:103690006F5F7F4FF70141818053990B8A3091050D -:1036A00050F021503109E0F28FE99FE00197F1F7E6 -:1036B00000C00000F6CF329EF001339EF00D1124C1 -:1036C0009C012E0F3F1F842F7B01E1CFE22FF0E002 -:1036D000EA5DFD4F5490822F86958695869590E001 -:1036E000FC01EA5EFD4F64902770712C022E02C02F -:1036F000759467940A94E2F7E1E06E227724FC0166 -:10370000EA5FFD4FA490B12C022E02C0B594A7949D -:103710000A94E2F7F1E0AF22BB24FC01EA50FE4F2D -:10372000C490D12C02C0D594C7942A95E2F721E029 -:10373000C222DD246114710419F081EE0E94F50C9F -:10374000A114B10419F086EE0E94F50C852D0E949B -:10375000AA0DAB2819F086EE0E94E10B672819F03C -:1037600081EE0E94E10BCD2809F47ACF8CE26CCF78 -:1037700081E00E946D150E94311501CF81E00E9409 -:103780004015F9CF82E0F5CFE2E8EE16EFE5FE0650 -:1037900009F49BC0F3E8EF16FFE5FF0609F097C4B4 -:1037A000882309F181EE0E94F50C83EE0E94F50C4E -:1037B00080E50E94F50C80E595C0882309F481C05E -:1037C00080914302811106C081E08093430282EE22 -:1037D0000E94F50C0E948806909342028093410259 -:1037E0008BE20E94F50CF8018281882309F4ABC4B6 -:1037F00010925D03F2E0EF16FCE5FF0608F491C1BC -:1038000026E1E2162CE5F20630F0C7018A5F9C45FE -:10381000099708F086C10E948C0F9093260380932D -:10382000250330E1E3163CE5F30609F449C108F04D -:10383000CBC058E0E5165CE5F50609F433C108F0A5 -:1038400094C094E0E9169CE5F90609F423C108F058 -:1038500076C0F2E0EF16FCE5FF0609F415C1809191 -:103860002503826023E0E2162CE5F20609F40FC17D -:1038700060912503F090260384E090E00E944A3195 -:103880006F2D82E290E00E944A310E94841777CE29 -:103890008823A1F080914302811106C081E08093CA -:1038A000430282EE0E94F50C0E9488069093420229 -:1038B0008093410281EE0E94F50C92CF81EE0E942E -:1038C000E10B8BE20E94E10B8ECF882309F48BCFB2 -:1038D00081EE0E94F50C83EE0E94F50C8FE40E94AD -:1038E000F50C8FE40E94E10B83EE0E94E10B81EE68 -:1038F000E9CF95EFE9169CE5F906D1F0A8F027E2AB -:1039000045EE66EEF6EFEF16FCE5FF0609F06BCF2D -:10391000C8010E94C70D33CE27E245EE65EEF8CF11 -:1039200026E241EE60EEF4CF27E245EE64EEF0CF02 -:1039300026E241EE62EEECCF28E241E0EFCF80914B -:103940002503806136E0E3163CE5F30609F49FC0E9 -:1039500080912503886047E0E4164CE5F40608F4FE -:1039600096C080912503806292C0809125038D7F4F -:103970005CE0E5165CE5F50609F489C078F4809111 -:1039800025038C609AE0E9169CE5F90609F47FC0EE -:1039900008F48CC0809125038E7F79C08091250327 -:1039A000877FFEE0EF16FCE5FF0609F470C080910A -:1039B00025038B7F2FE0E2162CE5F20608F467C0A2 -:1039C000809125038F7E63C03BEFE3163CE5F30651 -:1039D00009F464C068F553E1E5165CE5F50609F401 -:1039E00077C090F491E1E9169CE5F90609F46CC002 -:1039F000E2E1EE16ECE5FE0609F03ACF0E948417EC -:103A0000809125038F7743C0F5E1EF16FCE5FF06B3 -:103A100009F466C008F47AC08091260381603AEF09 -:103A2000E3163CE5F30609F023CF8093260320CF6D -:103A30004FEFE4164CE5F40609F44EC088F48DEF20 -:103A4000E8168CE5F806C1F1809126038E7F9EEF83 -:103A5000E9169CE5F90648F3809126038360E5CFDB -:103A6000E1E0EE16EDE5FE0609F459C008F444C0A5 -:103A700060E022E0E2162DE5F20609F0F9CE8EE0D4 -:103A800090E00E944A31F4CE8091250381608093BA -:103A90002503EECE809125038460F9CF8091260323 -:103AA0008260C3CF809125038064F1CF0E94841788 -:103AB000809125038068EBCF809126038D7FB5CF61 -:103AC000809125038F7DE3CF809125038F7BDFCF0E -:103AD00080912503837FDBCF809126038C7FA5CF48 -:103AE0008091250382FB992790F921E0922790FB92 -:103AF00082F990FB83F9CBCF80912603982F909584 -:103B000091708E7F892B90FB81F98FCF0E94841753 -:103B100090912503892F97FB87F98058B8CF61E0F2 -:103B2000AECF8091340236E1E3163CE5F30609F0AE -:103B300017C38A7A91E009F490E09093E001811133 -:103B400006C089E20E94170B0E94A70A18CD85E3E0 -:103B5000F9CF85E302C38091150380FF1BC08E7FE0 -:103B600080931503609115037091160380911703DC -:103B7000909118030E941513109292024FEF50E794 -:103B800082E0415050408040E1F700C000000E94B8 -:103B9000B00FF5CC81608093150361E086950E949B -:103BA0001D14EDCC4CE755E165E875E10E94CC06AB -:103BB000E6CC45E855E16CE775E1F8CF42EF53E11B -:103BC00069EE73E1F3CF41ED53E16DED73E1EECFBB -:103BD00049EB53E165EC73E1E9CF45EC53E169EB67 -:103BE00073E1E4CF4CE054E16BEF73E1DFCF61E0D0 -:103BF00081E0D5CF65E082E00E948F15C0CC68E0FF -:103C000086E0FACF64E18FE0F7CF67E185E1F4CF9A -:103C100062E289E1F1CF61E083E2C1CF3BE5E316E7 -:103C20003DE5F30611F14CE5E4164DE5F40609F027 -:103C3000C9C28091260382FB882780F991E08927F9 -:103C40000E94B70EBFC20E9484175FEF84E39CE01E -:103C5000515080409040E1F700C000000E94D10C1C -:103C60000E94AD158CCC81E0EBCF80E0E9CFC7019D -:103C70000E94550BD82EB5C22F2D2F70C22E8F2D1E -:103C8000807F19F0C29490EFC922DD20C9F0CC20CA -:103C900069F080E28E0D883010F081100BC08091A9 -:103CA0003402C82AC09234020E94A70A8E2D0E94B4 -:103CB000F50C19C080913302C82AC0923302F4CFA8 -:103CC0008E2D0E94E10BCC2071F0C09480E28E0D0D -:103CD000883010F081103EC080913402C822C0921A -:103CE00034020E94A70AE92DE850FF0B349720F414 -:103CF0000E94C0060E947E14AA2009F403CC809181 -:103D0000310280FDFFCBF80112828595859585955E -:103D10000E946D15C8010E94601A8091310285953C -:103D2000859585950F900F900F900F900F90DF91D4 -:103D3000CF911F910F91FF90EF90DF90CF90BF90A8 -:103D4000AF909F908F907F906F905F904F903F903B -:103D50000C94401580913302C822C0923302C1CF27 -:103D60003F2D3F70B32E8F2D807F803219F0B2949B -:103D700080EFB822882071F041E0841681F1DD20C7 -:103D8000D9F1CC2091F1F801858180FF8FCF8F7020 -:103D900085832BC0DD20B1F0909135028B2D892BCE -:103DA000C11003C00E94D70B9ECF51E0C512FACFBD -:103DB0002091260322FD97CF981709F494CF809382 -:103DC000350291CFC11006C00E94A10A8B2D0E941E -:103DD000CC0B89CF81E0C81609F485CFF5CFDD2063 -:103DE00031F095E09C1508F47ECF8B2DDBCFE4E01D -:103DF000EC1508F478CFEACFCC2041F3F9E38F1229 -:103E000009C02FEF37EE43E0215030404040E1F74A -:103E100000C000008E2D0E94E10B65CF8F2D86958E -:103E20008695837061F0813009F05DCFC701937092 -:103E3000D11002C090E080E00E94940654CFC701E8 -:103E40009370D11002C090E080E00E94AA064BCF90 -:103E50008E2DDD2029F00E9463080E94810743CF48 -:103E60000E94A807FACF8F2D837009F040C0D110AF -:103E70003ACF4E2D429546954770440F440F8E2DF4 -:103E80008F7090E0042E02C0880F991F0A94E2F709 -:103E900030E020E0E4FE09C02FE030E002C0220F55 -:103EA000331F4A95E2F7209530954F2D469546955C -:103EB0004370423099F078F4609136027091370285 -:103EC000413039F0822B932B862397230E94C60B17 -:103ED0000ACF862B972B822B932BF8CF822B932BF9 -:103EE000209136023091370282279327EFCF8695B3 -:103EF000DD2011F08F2D8170882309F4F4CE4E2D32 -:103F0000429546954770440F440F8E2D8F7090E078 -:103F1000042E02C0880F991F0A94E2F730E020E0D7 -:103F2000E4FE09C02FE030E002C0220F331F4A95A3 -:103F3000E2F7209530954F2D4695469543704230D7 -:103F400099F078F46091590370915A03413039F037 -:103F5000822B932B862397230E942915C4CE862B70 -:103F6000972B822B932BF8CF822B932B20915903E5 -:103F700030915A0382279327EFCF5F2D5F70F52E84 -:103F8000DD2029F0852F0E946D158E2D0BCF8E2DF3 -:103F90000E94CC0B8F2D0E944015A5CE8E2D92EF46 -:103FA000891609F449C0981570F0E0EF8E1639F1C2 -:103FB000F1EF8F16C9F1DD2009F45FC0C11076CE94 -:103FC0008F2D8F7136C023EF8216D9F134EF831213 -:103FD000F2CFDD2009F446C0FF2DFF71FF2E8F2F99 -:103FE0000E946D158091260382FD07C028E0F29E95 -:103FF000C00111248360809331028F2D1AC0DD200F -:1040000071F044E04C1508F46ECE2F2D2F7181E035 -:1040100090E002C0880F991F2A95E2F7A7CF55E0DC -:104020005C1508F460CEF1CF8F2D8F71DD2009F47F -:10403000B2CF0E946D1557CE8F2D8F71DD20C9F341 -:10404000AACF90E080E0DD2009F486CF9F2D9F71FC -:1040500021E030E0F90102C0EE0FFF1F9A95E2F770 -:10406000CF017ACF81E00E94511531E03C1508F074 -:104070003ACE82E00E94511536CECC2059F08933D9 -:1040800009F0C8CE4FEF57EE83E0415050408040DA -:10409000E1F7BECE8F2D8F717ECFF0E1EF16FFE5F9 -:1040A000FF0609F465CB21E1E2162FE5F20609F4DB -:1040B00069CB41E8E4164FE5F40609F4E9CB08F0D2 -:1040C00063CB90E8E9169FE5F90609F476CB23EF78 -:1040D000E2162CE5F20609F423CC08F00ACC48EDF0 -:1040E000E4164CE5F40609F417CC59EDE5165CE549 -:1040F000F50609F421CC87EDE8168CE5F80609F001 -:1041000072CB26E241EE61EE03CC30E1E3163FE5EF -:10411000F30609F433CB41E1E4164FE5F40649F622 -:1041200082E02DCB85E0DE01119601900D928A95FB -:10413000E1F7F801228189819A812111FAC90E944F -:10414000550BF82EFEC9F6E1EF16FCE5FF06D1F59A -:104150008091E0018111FDCC89E20E94EC0AF4CC4F -:1041600082722CECE2162CE5F20609F43BCD08F045 -:10417000A7C046ECE4164CE5F40609F41FCD08F0A0 -:1041800076C093ECE9169CE5F90609F40BCD08F02E -:104190005DC0F2ECEF16FCE5FF0609F4DCCC9AE515 -:1041A000E9169DE5F90609F45ECD08F037CDE11476 -:1041B000FCE5FF0609F447CD2EEDE2162CE5F206EC -:1041C00009F44ECDF8018281E080F180882309F462 -:1041D0004ECDC7010E94040FD82E682FC7010E9440 -:1041E0007D0BB7018D2D0E94F70E0E9419097C01ED -:1041F000882EF801D280C580C2943FE0C32280910E -:1042000031028770A1F0AD2CDD2091F08F2D807FE1 -:10421000803421F080E28E0D883048F082E00E94E8 -:104220005115809131028770AA24A3948111A12C89 -:104230009F2C92942FE09222FBE0F91508F453CDC5 -:10424000E92DF0E0E452FE4C0C94EB3024ECE21645 -:104250002CE5F20609F4ADCC49EE53E162EF73E1CF -:1042600035ECE3163CE5F30609F4A0CC98CF49EC15 -:10427000E4164CE5F40609F4ABCC88F497ECE916A7 -:104280009CE5F90609F49FCC4DED53E161ED73E136 -:10429000E8ECEE16ECE5FE0609F488CC80CFFAECEB -:1042A000EF16FCE5FF0609F498CC4BEF53E16CE008 -:1042B00074E12BECE2162CE5F20609F477CC6FCF13 -:1042C00031EDE3163CE5F30609F49CCCB8F45EEC62 -:1042D000E5165CE5F50609F48DCC08F488CC9FEC76 -:1042E000E9169CE5F90609F48ACC6EE089E0E0ED78 -:1042F000EE16ECE5FE0609F47FCC51CFF4EDEF1697 -:10430000FCE5FF0609F484CC78F432EDE3163CE5D5 -:10431000F30609F47ACC61E088E143EDE4164CE55C -:10432000F40609F43CCC3BCF55EDE5165CE5F5060B -:1043300009F471CC8DE5E816F80609F420C92FCFF1 -:104340001F93CF93DF938091FE01807FA9F480912A -:10435000FB01882389F080913002D091FF016091A8 -:10436000F9017091FA01A091FC01B091FD01C62FF5 -:10437000C72316E0D81304C0DF91CF911F91089591 -:1043800090E0109711F0CF3F19F401968770F2CFAB -:10439000189F9001199F300D1124F901E050FE4F34 -:1043A00041814713F2CF40814613EFCF4281411143 -:1043B000ECCF438154814A1B5B0B483C510528F7E5 -:1043C0008091FE018F7080618093FE01F901EB5FA7 -:1043D000FD4F80818F708061808389EF91E00E9422 -:1043E000601ADF91CF911F910C944B0BAF92BF924B -:1043F000CF92DF92EF92FF920F931F93CF93DF93B1 -:10440000CDB7DEB761970FB6F894DEBF0FBECDBF54 -:104410008C0185E0F801DE011D9601900D928A95D0 -:10442000E1F7F801E28089EFA82E81E0B82E6091D3 -:10443000FC017091FD016115710509F432C1909183 -:10444000F9014091FA01892F84238F3F09F429C192 -:1044500020813181C380D480F090FB01F601E61BFE -:10446000F70BFF2009F4E8C08091FE01582F507F20 -:10447000E83CF10508F0ABC0511177C0FE2C4313A6 -:1044800021C092131FC0E1101DC08F708061809306 -:10449000FE01C5010E94601A8091FE01F80185832A -:1044A0008F2D61960FB6F894DEBF0FBECDBFDF91A2 -:1044B000CF911F910F91FF90EF90DF90CF90BF9021 -:1044C000AF900895CD2829F0822F83238F3F09F0E4 -:1044D00003C180E0F82FF170DF2E80FF3CC0809197 -:1044E00030024091FF0156E0841315C02D873E87AE -:1044F0008D859E850E94400F292F22952F70223096 -:10450000F0F0243018F59F70F1F0F8019581907F5C -:10451000D1F4D12C1EC090E0589FF001599FF00DAE -:104520001124E050FE4F6181361306C060812613CE -:1045300003C06281E6120FC001968770D5CF9F70CD -:1045400011F0882331F3805E883018F3C8010E948F -:10455000601AFD2CA5CFEE2009F4A2CF8091FE01B8 -:1045600081608093FE01F12C9BCF431306C0921310 -:1045700004C0F801EE2009F479C0C8010E944C0F74 -:10458000882309F1EE20F9F08091FE01803270F06D -:104590002091F9013091FA0138872F831986DB8643 -:1045A000CA868C87CE0107960E94601A86E0F801C1 -:1045B000A9EFB1E001900D928A95E1F70E94A02148 -:1045C000FF24F3946DCFC8010E94601AF9CF5111F6 -:1045D0000AC089EF91E00E94601A86E0F50111920D -:1045E0008A95E9F7C0CF43130FC092130DC0E110B5 -:1045F0000BC0F8018583C8010E94601A86E0F501AE -:1046000011928A95E9F74CCFC8010E944C0F88237C -:10461000D1F2EE20C1F28091FE01803238F2209179 -:10462000F9013091FA013A8329831B82DD82CC8221 -:104630008E83CE010196B8CFE83CF105F8F6FE2C4A -:10464000EE2009F243131FC092131DC08091FE019A -:1046500080FD10C0982F907F69F0F8018583903F0E -:1046600031F0982F907F905F8F70892B8583C801E0 -:104670000E94601A86E0F801A9EFB1E001900D9266 -:104680008A95E1F70DCFC8010E944C0F81118ECFA2 -:104690008091FE0181608093FE01C8010E94601A32 -:1046A000FFCEEE2009F48FCFC8010E944C0FF82EE8 -:1046B000882309F488CF86E0F801A9EFB1E00190E2 -:1046C0000D928A95E1F78091F9019091FA010E948B -:1046D000400F0E94A021E4CE81E08E25FBCE1F93E7 -:1046E000CF93DF93CDB7DEB767970FB6F894DEBFF1 -:1046F0000FBECDBF4B8B5C8B6D8B7E8B8F8B611117 -:10470000109233021A8A198A85E0FE017396DE013F -:104710001D9601900D928A95E1F786E0FE013D9687 -:10472000DE01179601900D928A95E1F7CE0107966A -:104730000E94F621882389F016E080913002909142 -:10474000FF01891349C067960FB6F894DEBF0FBE0C -:10475000CDBFDF91CF911F91089586E0FE0137967E -:10476000DE01119601900D928A95E1F78A859B856D -:10477000892B11F38F81988589238F3FE9F220914E -:10478000FF0130E0C90101968770992740913002FE -:104790004817190671F40E9484171092FF011092B5 -:1047A000300286E0E9EFF1E0DF011D928A95E9F73A -:1047B000C3CF96E0929FD001939FB00D1124A050DB -:1047C000BE4FFE01319601900D929A95E1F78093CC -:1047D000FF010E944B0BB0CF819FC001112480507C -:1047E0009E4F0E94F621882309F4ADCF80913002BC -:1047F00090E0019687709927809330029ECFFF92B8 -:104800000F931F93CF93DF93CDB7DEB7C45BD1096E -:104810000FB6F894DEBF0FBECDBF182F8111D7C0E1 -:10482000662309F475C0C055DF4F1882C05BD040C5 -:10483000CF54DF4F1882C15BD04011E0CE54DF4F20 -:104840001883C25BD0400E9488068160782FCD54C7 -:10485000DF4F99838883C35BD040C055DF4F4881C9 -:10486000C05BD040CF54DF4F5881C15BD040CE54A5 -:10487000DF4F6881C25BD040CC54DF4F8881C45B7E -:10488000D0400E946F23C555DF4F1882CB5AD040CD -:10489000C455DF4F1882CC5AD040C355DF4F188221 -:1048A000CD5AD0400E9488068160782FC255DF4FD4 -:1048B00099838883CE5AD040C555DF4F4881CB5A63 -:1048C000D040C455DF4F5881CC5AD040C355DF4F3C -:1048D0006881CD5AD040C155DF4F8881CF5AD04032 -:1048E0000E946F2310933F020E94880690933C021F -:1048F00080933B0281E0CC54DF4F0FB6F894DEBFCB -:104900000FBECDBFDF91CF911F910F91FF90089502 -:1049100002E0CA55DF4F0883C65AD040C955DF4F61 -:104920001882C75AD04011E0C855DF4F1883C85AC3 -:10493000D0400E9488068160782FC755DF4F998349 -:104940008883C95AD040CA55DF4F4881C65AD040E3 -:10495000C955DF4F5881C75AD040C855DF4F6881CD -:10496000C85AD040C655DF4F8881CA5AD0400E94ED -:104970006F23CF55DF4F0883C15AD040CE55DF4F4C -:104980001882C25AD040CD55DF4F1882C35AD0404A -:104990000E9488068160782FCC55DF4F99838883E9 -:1049A000C45AD040CF55DF4F4881C15AD040CE5570 -:1049B000DF4F5881C25AD040CD55DF4F6881C35A6E -:1049C000D040CB55DF4F8881C55AD04089CF813048 -:1049D00009F0C0C0662309F45FC0C456DF4F1882D7 -:1049E000CC59D040C356DF4F8883CD59D040C256F2 -:1049F000DF4F8883CE59D0400E9488068160782F8F -:104A0000C156DF4F99838883CF59D040C456DF4FBA -:104A10004881CC59D040C356DF4F5881CD59D04042 -:104A2000C256DF4F6881CE59D040C056DF4F8881D3 -:104A3000C05AD0400E946F23C956DF4F1882C75911 -:104A4000D040C856DF4F1883C859D040C756DF4FF3 -:104A50001882C959D0400E9488068160782FC656B6 -:104A6000DF4F99838883CA59D040C956DF4F4881A8 -:104A7000C759D040C856DF4F5881C859D040C75693 -:104A8000DF4F6881C959D040C556DF4F8881CB5967 -:104A9000D0400E946F232ECF02E0CE56DF4F088316 -:104AA000C259D040CD56DF4F8883C359D040CC5631 -:104AB000DF4F8883C459D0400E9488068160782FD8 -:104AC000CB56DF4F99838883C559D040CE56DF4FF0 -:104AD0004881C259D040CD56DF4F5881C359D0408C -:104AE000CC56DF4F6881C459D040CA56DF4F888109 -:104AF000C659D0400E946F23C357DF4F0883CD585B -:104B0000D040C257DF4F1883CE58D040C157DF4F37 -:104B10001882CF58D0400E9488068160782FC057F5 -:104B2000DF4F99838883C059D040C357DF4F4881F6 -:104B3000CD58D040C257DF4F5881CE58D040C157D2 -:104B4000DF4F6881CF58D040CF56DF4F8881C159A1 -:104B5000D0409FCF823009F0ABC0662309F45EC01D -:104B6000C857DF4F1882C858D040C757DF4F8883D7 -:104B7000C958D04081E0C657DF4F8883CA58D0401B -:104B80000E9488068160782FC557DF4F99838883FC -:104B9000CB58D040C857DF4F4881C858D040C7577E -:104BA000DF4F5881C958D040C657DF4F6881CA5877 -:104BB000D040C457DF4F8881CC58D0400E946F232B -:104BC000CD57DF4F1882C358D040CC57DF4F1883E2 -:104BD000C458D040CB57DF4F1882C558D0400E94F0 -:104BE00088068160782FCA57DF4F99838883C6581B -:104BF000D040CD57DF4F4881C358D040CC57DF4F0E -:104C00005881C458D040CB57DF4F6881C558D04039 -:104C1000C957DF4F8881C758D0403BCFEF968FAF41 -:104C2000EF97C158DF4F8883CF57D04081E0C058FD -:104C3000DF4F8883C058D0400E9488068160782F5B -:104C4000CF57DF4F99838883C158D040EF964FAD3F -:104C5000EF97C158DF4F5881CF57D040C058DF4F32 -:104C60006881C058D040CE57DF4F8881C258D040AD -:104C70000E946F23EA961FAFEA97EB961FAFEB9760 -:104C8000EC961FAEEC970E9488068160782FEE9616 -:104C90009FAF8EAFEE97EA964FADEA97EB965FAD7A -:104CA000EB97EC966FADEC97EE968FADEE97F1CE5D -:104CB000833009F081C0662309F43FC019E0E5960E -:104CC0001FAFE597E6961FAEE69781E0E7968FAFB8 -:104CD000E7970E9488068160782FE9969FAF8EAF94 -:104CE000E997E5964FADE597E6965FADE697E796CF -:104CF0006FADE797E9968FADE9970E946F23E09635 -:104D00001FAFE097E1961FAEE197E2961FAEE297E4 -:104D10000E9488068160782FE4969FAF8EAFE4975B -:104D2000E0964FADE097E1965FADE197E2966FAD0B -:104D3000E297E4968FADE497ACCE1BE0AB961FAF45 -:104D4000AB97AC961FAEAC9781E0AD968FAFAD97A9 -:104D50000E9488068160782FAF969FAF8EAFAF9785 -:104D6000AB964FADAB97AC965FADAC97AD966FADD4 -:104D7000AD97AF968FADAF970E946F23A6961FAFEA -:104D8000A697A7961FAEA797A8961FAEA8970E94B2 -:104D900088068160782FAA969FAF8EAFAA97A696B5 -:104DA0004FADA697A7965FADA797A8966FADA897AA -:104DB000AA968FADAA976DCE843009F081C0662384 -:104DC00009F43FC009E0A1960FAFA19711E0A296A8 -:104DD0001FAFA297A3961FAFA3970E94880681607A -:104DE000782FA5969FAF8EAFA597A1964FADA197AF -:104DF000A2965FADA297A3966FADA397A5968FAD30 -:104E0000A5970E946F236C960FAF6C976D961FAF9E -:104E10006D976E961FAE6E970E9488068160782F00 -:104E2000A0969FAF8EAFA0976C964FAD6C976D9686 -:104E30005FAD6D976E966FAD6E97A0968FADA09794 -:104E400028CE0BE067960FAF679711E068961FAF0B -:104E5000689769961FAF69970E9488068160782FCE -:104E60006B969FAF8EAF6B9767964FAD67976896BF -:104E70005FAD689769966FAD69976B968FAD6B97CD -:104E80000E946F2362960FAF629763961FAF63977E -:104E900064961FAE64970E9488068160782F66969C -:104EA0009FAF8EAF669762964FAD629763965FAD88 -:104EB000639764966FAD649766968FAD6697E9CDFC -:104EC000853009F07DC0662309F445C039E0F32E32 -:104ED0002D96FFAE2D9702E02E960FAF2E9711E084 -:104EE0002F961FAF2F970E9488068160782F6196BA -:104EF0009FAF8EAF61972D964FAD2D972E965FADDC -:104F00002E972F966FAD2F9761968FAD61970E9468 -:104F10006F232896FFAE289729960FAF29972A96D8 -:104F20001FAE2A970E9488068160782F2C969FAF2B -:104F30008EAF2C9728964FAD289729965FAD29976D -:104F40002A966FAD2A972C968FAD2C970E946F23CF -:104F500010933E02C9CC2BE0F22E2396FFAE23978E -:104F600002E024960FAF249711E025961FAF2597F6 -:104F70000E9488068160782F27969FAF8EAF279773 -:104F800023964FAD239724965FAD249725966FAD5A -:104F9000259727968FAD27970E946F23FDAE0EAF02 -:104FA0001FAE0E9488068160782F22969FAF8EAF39 -:104FB00022974DAD5EAD6FAD22968FAD2297C6CFD5 -:104FC000863009F048C0662329F199E0F92EF8AE41 -:104FD00003E009AF11E01AAF0E9488068160782FC4 -:104FE0009CAF8BAF48AD59AD6AAD8CAD0E946F23BD -:104FF000FBAA0CAB1DAA0E9488068160782F9FAB8C -:105000008EAB4BA95CA96DA98FA90E946F23109349 -:105010003D026ACC8BE0F82EFEA603E00FA711E05C -:1050200018AB0E9488068160782F9AAB89AB4EA599 -:105030005FA568A98AA90E946F23F9A60AA71BA6E3 -:105040000E9488068160782F9DA78CA749A55AA544 -:105050006BA58DA5DACF873009F041C06623F9F042 -:1050600013E01CA31DA381E08EA30E94880681602B -:10507000782F98A78FA34CA15DA16EA188A50E944F -:105080006F231F8F18A319A20E9488068160782FB2 -:105090009BA38AA34F8D58A169A18BA1FACC05E0EF -:1050A0000A8F13E01B8F81E08C8F0E94880681603D -:1050B000782F9E8F8D8F4A8D5B8D6C8D8E8D0E948B -:1050C0006F230D8B1E8B1F8A0E9488068160782FAC -:1050D000998F888F4D895E896F89898DDACC883068 -:1050E00009F008CC662301F106E0088B13E0198B68 -:1050F00081E08A8B0E9488068160782F9C8B8B8B45 -:10510000488959896A898C890E946F230B871C877B -:105110001D860E9488068160782F9F878E874B8529 -:105120005C856D858F85B5CC08E00E8313E01F8309 -:1051300081E088870E9488068160782F9A87898716 -:105140004E815F8168858A850E946F2309831A8357 -:105150001B820E9488068160782F9D838C83498101 -:105160005A816B818D8195CC1F920F920FB60F9251 -:1051700011242F933F934F935F936F937F938F935C -:105180009F93AF93BF93CF93DF93EF93FF93D09110 -:10519000E900DF708091EC00C82FC17080FDC0E88D -:1051A0001092E9008091F000877F8093F00078945E -:1051B0000E9499171092E9008091F0008860809316 -:1051C000F000CD2BCF70C093E900FF91EF91DF91FC -:1051D000CF91BF91AF919F918F917F916F915F918F -:1051E0004F913F912F910F900FBE0F901F901895E8 -:1051F0001F920F920FB60F9211242F933F934F934C -:105200005F936F937F938F939F93AF93BF93EF932E -:10521000FF938091E10082FF09C08091E20082FF4C -:1052200005C08091E1008B7F8093E1008091DA00DE -:1052300080FF24C08091D80080FF20C08091DA00D8 -:105240008E7F8093DA008091D90080FF9BC088E137 -:1052500089BD8AE189BD09B400FEFDCF81E080935C -:105260004F0380912A03811109C00E94EC040E941F -:10527000B7058091E20084608093E2008091E100B4 -:1052800080FF17C08091E20080FF13C08091E20090 -:105290008E7F8093E2008091E20080618093E20043 -:1052A0008091D80080628093D80019BC85E08093FB -:1052B0004F038091E10084FF29C08091E20084FFC8 -:1052C00025C088E189BD8AE189BD89B5982F917093 -:1052D00080FFFBCF8091D8008F7D8093D800809194 -:1052E000E1008F7E8093E1008091E2008F7E8093C9 -:1052F000E2008091E20081608093E200809150039F -:10530000882309F445C084E080934F038091E10035 -:1053100083FF27C08091E20083FF23C08091E100DA -:10532000877F8093E10082E080934F0310925003C7 -:105330008091E1008E7F8093E1008091E2008E7F7A -:105340008093E2008091E20080618093E20042E07D -:1053500060E080E00E9485058091F0008860809385 -:10536000F000FF91EF91BF91AF919F918F917F914D -:105370006F915F914F913F912F910F900FBE0F90C2 -:105380001F90189519BC10924F0310922A0376CFE4 -:105390008091E30087FD93E090934F03B7CF78941B -:1053A0001F921FB61F9211248F939F93AF93BF93A9 -:1053B0008091210390912203A0912303B0912403B3 -:1053C0000196A11DB11D8093210390932203A09308 -:1053D0002303B0932403BF91AF919F918F911F90AE -:1053E0001FBE1F9018951F921FB61F9211248F93F6 -:1053F0009F93AF93BF9380912003811113C080913D -:10540000210390912203A0912303B091240341969C -:10541000A11DB11D8093210390932203A093230328 -:10542000B0932403BF91AF919F918F911F901FBEA6 -:105430001F901895CDB7DEB7AA970FB6F894DEBFC8 -:105440000FBECDBF84B7877F84BF0FB6F894A895F1 -:1054500080916000886180936000109260000FBEB0 -:1054600080E890E00FB6F89480936100909361001B -:105470000FBE85B7806885BF85B7806885BF8DEB17 -:1054800098E09093BF018093BE010E94EC040E94BB -:10549000B7058091E20084608093E2007894809167 -:1054A0004F038823A1F01091E9001F709091EC0048 -:1054B000892F817090FD80E8182B1092E90080916F -:1054C000E80083FD0E9499171F701093E90082E0A5 -:1054D00084BD93E095BD9AEF97BD80936E000E94C6 -:1054E000730F811102C00E94A80E80EF0E94BF08B6 -:1054F00081EF0E94BF0882EF0E94BF0883EF0E94E5 -:10550000BF0803E511E06FE5E62E61E0F62ED80155 -:105510008D918D018F3F11F00E94BF08E016F106BA -:10552000B1F7109245021092440210927402109248 -:105530007302109247021092460210927602109265 -:10554000750210924902109248021092780210924D -:10555000770210924B0210924A0210927A02109235 -:1055600079020E947917811102C00E94AD1582E074 -:1055700090E00E94363180936A020E948C0F9093D3 -:105580002603809325030E941916EFE3FCE9319767 -:10559000F1F700C000000E9419168091730280FF8D -:1055A00008C06FEF7FEF90E080E00E9468310E94BA -:1055B000D10C83E090E00E94363190E00E94C60B4F -:1055C0008091590390915A030E94961480914C0245 -:1055D000811132C00E947917811104C00E94AD155B -:1055E0000E949D1588E090E00E943E316093150373 -:1055F0007093160380931703909318036E7F71F4D2 -:105600000E949D1588E090E00E943E316093150352 -:105610007093160380931703909318030E94D20689 -:10562000109292028091150380FF03C086950E941C -:10563000581481E080934C026AE871E050E6852EB0 -:1056400052E0952E28E731E0E1E8F1E041E050E05A -:105650001191812F82958F7090E0DC019196FC90E2 -:1056600091971F70E12E6A0101C0CC0C1A95EAF7E0 -:105670000C2D00950F2191960C93919792961C9169 -:1056800092971C2992961C93D901FD909D010F2D94 -:1056900002950F7010E0D8019196BC90BF2DBF709D -:1056A000FB2E6A0101C0CC0CBA95EAF7DC2CD09431 -:1056B000DB20D8019196DC9291979296DC9092979C -:1056C000DC289296DC92DC0190968C9190E002C0EE -:1056D00095958795EA94E2F78170D80190960C91A0 -:1056E00010E002C015950795FA94E2F790E000FDEE -:1056F00092E0892BD4018D934D016E177F0709F03D -:10570000A7CF86EA92E090938A028093890281E291 -:105710000E94581481E090E00E94291580E091E0F9 -:1057200090931D0380931C0380914F03FF24F394F7 -:1057300008E11AE1853009F47CC20E941916882319 -:1057400059F08FB7F8944091210350912203609152 -:105750002303709124038FBFA3E7B2E0EBE6F2E0EE -:1057600010E000E0702F8D919D91219131912817CB -:10577000390709F487C22827392760E0EE24E3942B -:10578000F12CA9014E215F21452B09F475C269A3B3 -:105790007AA39C012E213F2191E0232B09F490E074 -:1057A0009BA30E9488068160782F9DA38CA349A1AA -:1057B0005AA16BA18DA10E946F23000F111FF80148 -:1057C000E559FD4F80819181E826F926F182E0823A -:1057D000809192028823D1F180919102E09115038A -:1057E000E695E81BE0938D02823009F062C2F0E09A -:1057F000EC53FD4FE4910E2F10E041E0E42E43E125 -:10580000F42E80918E02882361F010928E020E9405 -:10581000880690938C0280938B02109290021092D3 -:105820008F020E948806E0918B02F0918C028E1B01 -:105830009F0B8F3F9F4750F4E00FF11FF0938C02B6 -:10584000E0938B028BE892E0F701099537E5E32EB0 -:1058500032E0F32E0EE412E04FE6442E41E0542EE7 -:1058600058E7652E51E0752E61E8862E61E0962E90 -:1058700070E6A72E72E0B72E212C312CD501ED91C8 -:105880005D01EE0FEE0FD4012D914D01A22FA295D7 -:10589000AF70B0E090968C9190E02F7002C095951B -:1058A00087952A95E2F781709927D3014D913D01A3 -:1058B000A42FA295AF70B0E090962C9130E04F707D -:1058C00002C0359527954A95E2F7A9014170552701 -:1058D00020FF02C042E050E0842BE82BD501119755 -:1058E000EC93D201CD902D01EF70F0E0E15AFE4F24 -:1058F0008081F7019081890F8083D12C082E000CC4 -:10590000990B20E08C159D054CF0D8018C918F5F90 -:105910008C9360E0832D0E94FF2321E0F7018081BA -:10592000082E000C990B442755274C195D09481780 -:1059300059074CF0D8018C9181508C9361E0832DF4 -:105940000E94FF2321E0F7018081082E000C990BB3 -:10595000B6010E94D730D7018D937D01222A33945E -:105960000F5F1F4FB9E03B1289CF222059F08FB74C -:10597000F894409121035091220360912303709188 -:1059800024038FBF86E0E2E8F2E0DE011196019089 -:105990000D928A95E1F7F0908402E09085021091D3 -:1059A0008602009187021092840210928502109262 -:1059B0008602109287028F2D8E2909F448C08091AB -:1059C0008002909181020E9479069C0190917C0254 -:1059D000992309F4C5C323333105C8F19F3F19F05A -:1059E0009F5F90937C02FF2059F00E9443089FEF35 -:1059F0001F140CF491E0899F802D11248093840260 -:105A0000EE2059F00E9443089FEF1E140CF491E021 -:105A1000899F802D11248093850230918402332345 -:105A2000B1F020918502222391F045EB3403C001AF -:105A30001124992309F497C19093840245EB240320 -:105A400090011124332309F492C130938502812FF0 -:105A5000802B09F448C080917E0290917F020E94C1 -:105A600079069C0190917B02992309F474C3253631 -:105A70003105C8F19F3F19F09F5F90937B0211237E -:105A800059F00E9421089FEF11160CF491E0899FB4 -:105A9000802D112480938602002359F00E94210852 -:105AA0009FEF10160CF491E0899F802D11248093B4 -:105AB0008702309186023323B1F02091870222239E -:105AC00091F045EB3403C0011124992309F453C12B -:105AD0009093860245EB240390011124332309F4AB -:105AE0004EC1309387028091840290918502892B68 -:105AF00090918602892B90918702892B11F00E9448 -:105B0000810786E0FE013196A2E8B2E001900D9295 -:105B10008A95E1F70E94C00690916902891731F0D9 -:105B20000E94C006809369020E947E1480914F03F8 -:105B3000843009F0F9CD83E08093E9008091E8009A -:105B400082FFF2CD8091E80090E085FF06C00E94C0 -:105B50000B05882309F417C191E08091E8008B7749 -:105B60008093E800992309F4DFCDE981E150E33126 -:105B700008F09DC1F0E0E851FE4C0C94EB308091B0 -:105B80004F03843009F443C080E00E947E141092D9 -:105B9000920280918802811116C0F0928802809151 -:105BA0001503982F917090934D028E7F809315036B -:105BB000BFEFE0E7F2E0B150E040F040E1F700C0B5 -:105BC00000000E94B00F1092200388E190E0A0E452 -:105BD0000FB6F894A895809360000FBEA093600064 -:105BE00083B7817F846083BF83B7816083BF7894EC -:105BF000889583B78E7F83BF0FB6F894A895809160 -:105C00006000886180936000109260000FBE8091F8 -:105C10004E03882371F00E941916E3E7F2E08191A8 -:105C20009191892B09F078C28BE792E08E179F073C -:105C3000B1F780914F03853009F4A1CF0E948417FA -:105C40000E94C0060E947E141092880280914D022C -:105C5000882359F080911503816080931503869500 -:105C60000E9458140E949A0F68CD80919302882355 -:105C7000C9F30E94B00FF6CF6F5FEE0CFF1C6C30C3 -:105C800009F07FCD0F5F1F4F0430110509F06ACD79 -:105C90008FEF8EA38FA318A60E9488068160782FAD -:105CA0009AA789A74EA15FA168A58AA50E946F2324 -:105CB0008FCD863059F4F0E0EF53FD4FE4910E2F75 -:105CC00010E031EFE32E32E1F32E9BCD893061F409 -:105CD000E695F0E0E254FD4FE4910E2F10E022E44F -:105CE000E22E22E1F22E8DCD8F3061F4E695F0E0C8 -:105CF000E554FD4FE4910E2F10E09DEEE92E91E169 -:105D0000F92E7FCD853159F4F0E0E854FD4FE49150 -:105D10000E2F10E08AE7E82E81E1F82E72CD08E21E -:105D200010E0FAEEEF2EF0E1FF2E883109F469CD94 -:105D3000833249F4E6EBF2E005911491B8E9EB2ED9 -:105D4000B2E1FB2E5ECD04EF11E0ADEAEA2EA0E158 -:105D5000FA2E843209F455CD00ED17E0E1EDEE2E78 -:105D6000E6E0FE2E4ECD81E08093840267CE81E096 -:105D7000809385026CCE81E080938602ABCE81E079 -:105D800080938702B0CE00E210E0CE0101967C0144 -:105D90008091E80085FD0AC08091E8008B778093B0 -:105DA000E8000E940B05882399F3D6CE8091F1007C -:105DB000D7018D937D010150110951F7CDCE1A8283 -:105DC00089E08B833FC08A81823009F4BBC1833074 -:105DD000A9F0813009F06BC02FB7F89460912103CE -:105DE0007091220380912303909124032FBF0E947E -:105DF000F1306B837C838D839E8324C080917302FA -:105E0000909174029827892798279C838B8380918F -:105E10007502909176029827892798279E838D8313 -:105E20008091770290917802982789279827988700 -:105E30008F838091790290917A02982789279827F9 -:105E40009A87898780914F03843009F06DCC109137 -:105E5000E9001F709091EC00892F817090FD80E81F -:105E6000182B82E08093E9008091E80080FF0DC04C -:105E700050E040E060E270E0CE0101960E943C05F7 -:105E80008091E8008E778093E8001F701093E900FE -:105E90004BCC8A81823059F46B817C818D819E81CB -:105EA0000E94F13086E290E00E944A31CBCF8FEF22 -:105EB0008983C8CF4C816B818A810E94D10E98273B -:105EC000892798279E838D83BDCFED80FE80FE2499 -:105ED000EF24FE248A810B81B8E10B9F80011124FD -:105EE000E0E68E9F000D111D11248C8190E0880F3B -:105EF000991F080F191F6F2DC80187960E944A31FC -:105F00006E2DC8018896D0CF0E943B0E9BCF8A8110 -:105F10008138C1F060F4803809F094CF20E04B81E3 -:105F200060911703809116030E9427138BCF82384C -:105F300049F1833809F086CF20E0409118036C8145 -:105F40008B81F2CF8B810E9458149B818091150325 -:105F5000911111C08E7F8093150310929202FFEF72 -:105F600020E742E0F15020404040E1F700C000004F -:105F70000E94B00F67CF81608093150386950E94C1 -:105F8000581460CF8B81809319035CCF8A8181384C -:105F900099F030F4803809F055CF8091180311CF73 -:105FA000823891F0833809F04DCF809116038B83AE -:105FB000809117038C8346CF8091150380FF02C028 -:105FC0008695FFCE80E0FDCE80911903FACE6091D8 -:105FD00015037091160380911703909118030E9486 -:105FE000151330CF80E18A832DCF84E08A8389E145 -:105FF000E8CE0A811B81102701271027CE010196C8 -:106000006C01EC80DC01AE0DB11D7D01C801895130 -:106010009C4FEC14FD0409F415CF0931B4E01B07C3 -:1060200050F40E943631F60184830F5F1F4FBFEF9B -:10603000CB1ADB0AEBCFD60114961C92F6CF0A815D -:106040001B81102701271027FE0131966F01EC807C -:10605000E00EF12EF11CC80189519C4FE016F106AB -:1060600009F4F0CE0931F4E01F0728F4D6011496A4 -:106070006C910E944A31BFEFCB1ADB0A0F5F1F4FB2 -:10608000EACF0E942B0EDECE8AE0ADCF0A811B81C3 -:10609000102701271027FE0131966F01EC80CF01F8 -:1060A0008E0D911D7C01C8018796EC14FD0409F446 -:1060B000C9CE003CA3E01A0750F40E943631F60125 -:1060C00084830F5F1F4FBFEFCB1ADB0AECCFD601E3 -:1060D00014961C92F6CF0A811B81102701271027E6 -:1060E000FE0131966F01EC80E00EF12EF11CC8012B -:1060F0008796E016F10609F4A5CE003CF3E01F07F1 -:1061000028F4D60114966C910E944A31BFEFCB1A45 -:10611000DB0A0F5F1F4FEBCF09BD19BD09B400FEAD -:10612000FDCF8091D8008F7D8093D8008091E000D2 -:1061300082608093E0008091E00081FDFCCF0E94AE -:10614000841777CD86E290E00E9436311B821C8254 -:106150001D828E8377CE2D32314008F08DCCC3CC9A -:106160002D32314008F03CCC72CC87FB082E06263D -:1061700087FD819567FD61950E9407310EF4919529 -:1061800007FC81950895AA1BBB1B51E107C0AA1FFC -:10619000BB1FA617B70710F0A61BB70B881F991FC8 -:1061A0005A95A9F780959095BC01CD01089597FB6C -:1061B000072E16F4009407D077FD09D00E94C33053 -:1061C00007FC05D03EF4909581959F4F08957095FA -:1061D00061957F4F0895EE0FFF1F0590F491E02D1C -:1061E00009946927962769277827872778270895AC -:1061F0000E94B331332312F48A1B9B0B0C9402319F -:106200000E94B331B7FF0895821B930B0895991B29 -:1062100079E004C0991F961708F0961B881F7A959D -:10622000C9F780950895FB01DC0102C005900D922D -:1062300041505040D8F70895FC014150504030F093 -:1062400001900616D1F73197CF0108958827992735 -:106250000895FB01DC0104C08D910190801921F4A7 -:1062600041505040C8F7881B990B0895F999FECF0B -:1062700092BD81BDF89A992780B50895A6E1B0E056 -:1062800044E050E00C947031A8E1B0E042E050E00E -:106290000C947031262FF999FECF92BD81BDF89AEA -:1062A000019700B4021639F01FBA20BD0FB6F8945A -:1062B000FA9AF99A0FBE08950396272F0E944B3140 -:1062C0000E944A31252F0E944B31242F0C944B31D0 -:1062D0000196272F0E944B310C944A31DC01CB01EF -:1062E000FC01F999FECF06C0F2BDE1BDF89A3196E6 -:1062F00000B40D9241505040B8F708950E94B33158 -:10630000A59F900DB49F900DA49F800D911D112409 -:106310000895B7FF0C947E310E947E31821B930B4F -:106320000895A1E21A2EAA1BBB1BFD010DC0AA1FD6 -:10633000BB1FEE1FFF1FA217B307E407F50720F0EE -:10634000A21BB30BE40BF50B661F771F881F991F69 -:106350001A9469F760957095809590959B01AC01B2 -:10636000BD01CF010895A29FB001B39FC001A39FBB -:10637000700D811D1124911DB29F700D811D11247E -:10638000911D0895F894FFCF5E0F5E0F670F670FA2 -:10639000690F670F670F670F5E0F5E0F6E0F670F56 -:1063A000670F6E0F7E18A618F918A618F918D918D5 -:1063B0001119F9180E1A1B1A3C1E3C1EB01EB01EF5 -:1063C0000E1F281F731E731E331FBD1FCE1FCE1F2F -:1063D000DF2EE32E492F5A2F652F842F872FC62FAC -:1063E000E72F572F572FF22FF52FF92F1F3041305E -:0663F000443046306B3022 -:1063F6007606910C700C6C0C680C01191A1B1C1D8E -:106406001E1F202122010201002A002A2A01818260 -:1064160083E200E900EA00B500B600B700CD0083CC -:1064260001CC008A01920194012102230224022553 -:1064360002260227022A02B300B4006F007000F0A1 -:10644600F1F2F3F5F6F700010203040537363500DD -:10645600FF0100010000FFFF0000010001FF000432 -:106466000404040404040202616264669092949730 -:106476000660636567919395960700010202020222 -:106486000606060909090909090F0F0F0F0F0F154F -:106496001515181919191919191919191923244033 -:0E64A60022B6B6019401DE00C808E108010923 +:102150002EB900C0EA9591F75CCFCF93DF9300D002 +:102160000F92CDB7DEB780915F0380FF13C09E0151 +:102170002F5F3F4F44E666EE80E00E94E8068B81C9 +:1021800099812A8120935A039093590380935B038A +:102190000E94B00F0F900F900F90DF91CF91089594 +:1021A0000F931F93CF93DF93EC0110E000E0909129 +:1021B0001C019017110609F06CF40E94B00F8C817D +:1021C00090E00196817099278C83DF91CF911F91C8 +:1021D0000F91089520911A01A801420F511D9A01F3 +:1021E000220F331F240F351F2F513D4F4C8160911B +:1021F00061038091600396959017110651F04CF0A1 +:10220000442349F0409162030E94E8060F5F1F4F8C +:10221000CECF4423B9F340E0F7CF8F929F92AF9295 +:10222000BF92CF92DF92EF92FF920F931F93CF93C3 +:10223000DF93EC014C81042F10E09801D8010E943B +:1022400035329B01AC010E9400324B015C01E0E29F +:10225000F0E0E01BF10BA5E5B0E0AC019B010E94B2 +:1022600000326B017C019F01DF010E947A319B01EA +:10227000AC010E940B329B01AC01280D391D4A1D97 +:102280005B1DC701B6010E941332F22E822F90E02F +:1022900039E23F1560F143E0249F90011124359508 +:1022A0002795122F109500E085E5E82EEF18809114 +:1022B0001C01081758F10E94B00F9C8181E09923FE +:1022C00019F0903219F48FEF809317018091170164 +:1022D000890F8C83DF91CF911F910F91FF90EF9029 +:1022E000DF90CF90BF90AF909F908F90089525E59D +:1022F00030E0B901681B790B9B01220F331F260FB9 +:10230000371F37FFCCCF2F5F3F4FC9CF8E2D01FD39 +:102310008F2D20911A01622F600F7727771F9B0165 +:10232000220F331F260F371F2F513D4F412F609132 +:1023300061030E94E8060F5FBACF0F931F93CF93FC +:10234000DF9380911A0190911B0123E0829FF0019D +:102350001124EF51FD4F891740F1C0E0D3E06091A7 +:102360001C01C61740F10E94B00F20911501809109 +:102370009B02820F80939B0290911601920F909383 +:102380001601191654F4082E000C990B40911C01EB +:102390004150550B841795071CF02195209315018A +:1023A000DF91CF911F910F910895118210821282B7 +:1023B0008F5F3396D0CF0C2F10E070E0C8010E94E1 +:1023C000593120911A01820F482F50E020919B0231 +:1023D000022E000C330B02171307BCF020911601DC +:1023E000022E000C330B201731077CF08D9F9001DB +:1023F00011242F513D4F4091620360916103809100 +:1024000060030E94E806CF5FAACFFA01EE0FFF1F1C +:10241000E40FF51FEF51FD4F118210821282F3CFAE +:102420001F93CF93DF93FC018281DFEF80FFD1E028 +:10243000C0E01AE290911C01C91788F00E94B00F09 +:1024400080919A02D130C9F5811102C080911C019E +:10245000815080939A02DF91CF911F910895E0916E +:102460001A014C2F50E09A012E0F311DF901EE0F89 +:10247000FF1FE20FF31FEF51FD4F118210821282F6 +:1024800080919A028B32ACF0612F0E943731892FF4 +:10249000082E000C990B4817590749F49F014091E9 +:1024A000620360916103809160030E94E806CF5F40 +:1024B000C1CF87FFEDCF890FEBCF90E00196609100 +:1024C0001C0170E00E945931C4CFEF92FF921F931C +:1024D000CF93DF93EC0110E0EE24EA94F12C6091AD +:1024E0001C01161770F00E94B00F9A818C8190FF2A +:1024F00027C08F5F8C83DF91CF911F91FF90EF906A +:10250000089520911A01422F410F5527551FCA01E6 +:102510009A01220F331F280F391F2F513D4F70E0B2 +:10252000C7010E945931962F8C81409162036091BE +:102530006103199F800D11240E94E8061F5FCFCF11 +:102540008150D8CF90915F0390FF14C090911A01F1 +:1025500020911B0133E0939FF0011124EF51FD4FB7 +:10256000921710F00C94B00F8183608342839F5FB9 +:102570003396F6CF08950F931F93CF93DF9300D038 +:102580000F92CDB7DEB78C0180919C0281110AC0F9 +:102590009E012F5F3F4F44EB6FEF0E94E8068A8158 +:1025A00080939C02F8016481613069F080919C0203 +:1025B00040E0662361F040E0623011F440919C02FB +:1025C00080E060E004C060919C0240E080E00E94F6 +:1025D000A212F801848190E0019663E070E00E940D +:1025E000593184830F900F900F90DF91CF911F91FD +:1025F0000F910895CF93DF9300D00F92CDB7DEB740 +:1026000090915F0390FF0AC09E012F5F3F4F0E9491 +:10261000E8064B8169818A810E94A2120F900F9077 +:102620000F90DF91CF910895CF93DF93EC01EFE509 +:10263000F3E0438162818C810E94FA128C818F5F6A +:102640008C83DF91CF910895CF93DF93EC01EC81E0 +:10265000F0E0EA50FC4F4491EFE5F3E062818181C4 +:102660000E94FA128C818F5F8C83DF91CF91089545 +:10267000CF92DF92EF92FF926B017C010E94D20613 +:10268000B701A60188E090E0FF90EF90DF90CF9037 +:102690000C94DE31AF92BF92CF92DF92EF92FF9215 +:1026A0000F931F93CF93DF9300D00F92CDB7DEB778 +:1026B000182FF62E042FE22E90915F0390FF29C071 +:1026C000E92FE695AE2FB0E0A657BE4F8C918093D0 +:1026D00097029E7F923059F59E012F5F3F4F812FC9 +:1026E0000E94E8064B8169818A810E94A2121093A0 +:1026F0006003F092610300936203EE2051F0609159 +:102700005F037091600380916103909162030E9466 +:1027100038130F900F900F90DF91CF911F910F9171 +:10272000FF90EF90DF90CF90BF90AF9008958230F0 +:1027300019F400916203DBCF863019F41091600325 +:10274000D6CF8930D9F3893191F6E9518E2F817036 +:10275000D82EE695F0E0E853FC4FA590B490C12C3C +:10276000BB2460911C01C61618F00E94B00FBFCFA9 +:102770002C2D30E0A29EC001A39E900DB29E900D24 +:10278000112470E00E944531812FD11013C0860FB3 +:1027900040911A01420F532F511D9A01220F331FEE +:1027A000240F351F2F513D4F402F6F2D0E94E806FB +:1027B000C394D7CF861BECCFEFE5F3E0438128E04D +:1027C000421B08F440E021E0628181810C944A13AD +:1027D000EFE5F3E0438128E0420F08F44FEF21E0FA +:1027E000628181810C944A13EFE5F3E0628128E075 +:1027F000621B08F460E021E0438181810C944A135C +:10280000EFE5F3E0628128E0620F08F46FEF21E06A +:10281000438181810C944A13EFE5F3E0818121E04B +:102820004381628188500C944A13EFE5F3E0818183 +:1028300021E043816281885F0C944A138091630395 +:10284000882319F081508093630360915F03709136 +:10285000600380916103909162030C94381380911E +:102860006303833018F48F5F8093630360915F0389 +:102870007091600380916103909162030C9438130E +:1028800090915F0390FF36C09170811129C09260D2 +:1028900090935F03662351F060915F037091600332 +:1028A00080916103909162030E94381360915F03ED +:1028B000669570E04BE050E08AE091E00E949E3126 +:1028C000892BA9F01092980281E08093940220E075 +:1028D0004091620360916103809160030C944A13FC +:1028E000853210F09864D4CF880F982BD1CF0E94F6 +:1028F0009A0FEACF089560E00C94401421E030E094 +:10290000A90102C0440F551F8A95E2F7CA01209120 +:102910009902662391F0822B80939902809198020C +:10292000811105C080915F0386950E947B14809180 +:102930005F0380FD05C00C94B00F80958223ECCF1F +:102940000895CF93DF93C82FC17082FBDD27D0F9A4 +:1029500081FB662760F984E00E947E1461E06C27A9 +:1029600085E00E947E146D2F86E0DF91CF910C945C +:102970007E140F931F93CF93DF93EC0161E00097D8 +:1029800009F0682F617080E00E947E1460E020975B +:1029900021F0BE0176956795617081E00E947E14FA +:1029A00060E0209731F0BE01769567957695679542 +:1029B000617082E00E947E1460E0209739F0BE01D1 +:1029C000B3E076956795BA95E1F7617083E00E9470 +:1029D0007E14AE0170E060E0BB27A72F962F852FF5 +:1029E0000097A105B105D9F1AC01BD0188E08A01CC +:1029F0009B01F4E03695279517950795FA95D1F741 +:102A0000011511052105310519F08C5FB901A801E7 +:102A10008A019B01E2E03695279517950795EA957F +:102A2000D1F7011511052105310519F08E5FB901A6 +:102A3000A8017695679557954795452B462B472BCB +:102A400009F08F5F8130C9F0882359F08230D1F0CE +:102A50008330E9F020E04EE16FEF80E406C080E0D3 +:102A6000C6CF20E04EE16FEF82E30E944A13CE0111 +:102A7000DF91CF911F910F91089520E04EE16FEF0C +:102A80008EE1F3CF20E04EE16FEF8AE6EECF20E05B +:102A90004EE16FEF87EDE9CF0E94B9149093DD020C +:102AA0008093DC020C94A90B8091DC029091DD02F2 +:102AB0009C01267033272630310519F488600C9468 +:102AC0004C15877FFCCF21E030E002C0220F331F7E +:102AD0008A95E2F7209530958091DC029091DD0295 +:102AE000822393230C944C15909131028095892375 +:102AF00080933102282F277039F4282F082E000CDC +:102B0000330B9217130621F49091A90292FF07C08C +:102B10008595859585950E946315109231020895DB +:102B200021E030E002C0220F331F8A95E2F7809146 +:102B3000DC029091DD02822B932B0C944C1580913A +:102B40005F038695815009F484E261E00C9440149F +:102B500080915F0386958F5F853208F081E061E0A8 +:102B60000C94401490915F0390FF07C096959817BE +:102B700020F0961710F40C94A81561E00C94401402 +:102B8000EFE5F3E083E0808311828FEF828384EBB3 +:102B90008383148260817181828193810C943813C4 +:102BA00069EE7EEF90E080E00E94EA3160E082E032 +:102BB00090E00E94CC3160E083E090E00E94CC3154 +:102BC000109237021092360260E084E090E00E949A +:102BD000CC3160E082E290E00E94CC3160E085E0A0 +:102BE00090E00E94CC3160E086E090E00E94CC3121 +:102BF0006FEF87E090E00E94CC3140E050E0BA01F6 +:102C000088E090E00E94DE3160E08DE090E00E947C +:102C1000CC3140E050E0BA0188E190E00E94DE3122 +:102C200060E087E190E00E94CC3140E050E0BA01E2 +:102C30008CE190E00E94DE3170E060E080E290E0A4 +:102C40000E94EA3140E050E0BA0188E190E00E9441 +:102C5000DE3180E00E94900E0E94A80E40E050E01D +:102C6000BA018FE090E00E94DE3140E050E0BA010E +:102C700083E190E00C94DE316F927F928F929F926D +:102C8000AF92BF92CF92DF92EF92FF920F931F937A +:102C9000CF93DF93CDB7DEB728970FB6F894DEBF9A +:102CA0000FBECDBF8E010F5F1F4F88E0F80111925C +:102CB0008A95E9F78FE4E82E81E0F82E680193E524 +:102CC000692E91E0792E88248394912CF7018191CB +:102CD0007F018F3F09F44BC0F894E82FE295EF7025 +:102CE000F0E021A18F70A40102C0440F551F8A9506 +:102CF000E2F7CA01922F982B91A392A18095892384 +:102D000082A3789400C0E3E5F1E030E020E0B12C4C +:102D1000A12C81918F3F09F47CC0A82FA295AF70A0 +:102D2000B0E090964C9150E08F7002C05595479559 +:102D30008A95E2F740FD6DC0C401022E02C0880FE3 +:102D4000991F0A94E2F7A82AB92A2F5F3F4F2C3027 +:102D50003105F9F6F701319780818F3F11F00E941C +:102D6000BF0850EA5A95F1F7F601B182A082F2E06D +:102D7000CF0ED11C6E147F0409F0A8CF48E050E0BC +:102D8000B8018AE492E00E94AB31FF24F3940097EB +:102D900009F4F12C892B09F43FC088E0F801AAE47A +:102DA000B2E001900D928A95E1F781E080933A02BA +:102DB0000E948806909339028093380280913802ED +:102DC000909139020E947906059750F180914A024C +:102DD00090914B0290937A028093790280914C02F9 +:102DE00090914D0290937C0280937B0280914E02E1 +:102DF00090914F0290937E0280937D0280915002C9 +:102E0000909151029093800280937F0210923A0237 +:102E100007C090E080E097CF80913A028111CECF39 +:102E200080914902882371F0809147029091480275 +:102E30000E947906893E934028F082EE0E94E10BC1 +:102E400010924902109146028091450211115BC017 +:102E5000882399F110921A0184E080931B018093DA +:102E60001C018FE00E947B141092450281E0809348 +:102E7000460280913F02882351F0809140028111E7 +:102E800006C080913B0290913C020E9479068F2DF2 +:102E900028960FB6F894DEBF0FBECDBFDF91CF915D +:102EA0001F910F91FF90EF90DF90CF90BF90AF9068 +:102EB0009F908F907F906F90089580914402882317 +:102EC00079F086E180931A018AE180931B0184E006 +:102ED00080931C018FE00E947B1410924402C6CFA5 +:102EE000809143028823A9F08AE180931A018EE140 +:102EF00080931B0184E080931C018FE00E947B146F +:102F000010924302B3CF81112BC0809144028111F2 +:102F100027C080914302811123C08091410290918A +:102F200042020E947906853F9140D0F0112379F04A +:102F300010921A018AE280931B0180931C0181E2A6 +:102F40000E947B148091400281110E94AD1010926A +:102F5000450210924402109243021092460289CF19 +:102F600010924502109244021092430282CF90E0E8 +:102F700080E00E94C631893E9E4F11F40C94730F7D +:102F800080E008951092340280911D01E2ECF1E09E +:102F9000882359F08091A80287FF07C08EE1DF01E6 +:102FA0001D928A95E9F70C94A90B86E0F8CF1F9340 +:102FB000CF93DF93CDB7DEB7AA970FB6F894DEBFF5 +:102FC0000FBECDBF84ED92E02091F100DC012D9386 +:102FD000CD01B2E08C3D9B07B9F78091D5028330DB +:102FE00009F471C0B8F4813009F448C0823009F4A2 +:102FF000B2C08091E80083FF3AC18091D4029091E1 +:10300000D5029A3008F033C1E92FF0E0EC5AFD4CBC +:103010000C946D318A3009F48DC08B3009F470C086 +:10302000893039F78091D402813219F78091D80222 +:103030009091D902009711F00297D9F68091E8009B +:10304000877F8093E8008091E80082FF37C08091FD +:10305000F2009091F300029729F48091F1008B7FA8 +:10306000813021F48091F1008093AF028091E800DB +:103070008B778093E8000E946605BBCF8091D402D5 +:10308000813A09F0B6CF8091E800877F8093E8000D +:103090008091D8029091D902892B61F460E280EB93 +:1030A00092E070E00E9419068091E8008B7780938F +:1030B000E8009FCF60E090E080E0F3CF8091D20203 +:1030C0008111C1CF96CF8091D402813A09F091CF7E +:1030D0008091D8029091D902892B09F08ACF8091F2 +:1030E000E800877F8093E8008091E80080FFFCCFB4 +:1030F00080911D018093F1008091E8008E77B9CF17 +:103100008091D402813209F074CF8091D8029091DD +:10311000D902892B09F06DCF8091E800877F8093D9 +:10312000E8000E9466058091D60280931D010E94EE +:10313000C2175FCF8091D402813209F05ACF8091BB +:10314000E800877F8093E8000E9466058091D7029F +:103150008093AE024ECF8091D402813A09F049CFDC +:103160008091E800877F8093E8008091E80080FFED +:10317000FCCF8091AE02BECF803899F0823809F042 +:1031800076C08091D8028F70873008F070C080932D +:10319000E9008091EB0085FB882780F91092E90017 +:1031A00006C08091D0029091D102911182609091DD +:1031B000E800977F9093E8008093F1001092F1006F +:1031C0008091E8008E77B5C1882309F4A2C18230CE +:1031D00009F04DC08091D6028111A6C18091D8021C +:1031E0008F702FEF280F263008F041C08093E90040 +:1031F0002091EB0020FF98C1933031F48091EB00D7 +:1032000080628093EB0090C19091EB00906190936D +:10321000EB0021E030E001C0220F8A95EAF720930D +:10322000EA001092EA008091EB008860EACF8111F9 +:103230001EC01091D6021F778091E3008078812B09 +:103240008093E3008091E800877F8093E8000E94EC +:1032500066058091E80080FFFCCF8091E3008068E4 +:103260008093E30082E0111183E08093D202809189 +:10327000E80083FF0AC08091E800877F8093E80020 +:103280008091EB0080628093EB00AA960FB6F894D1 +:10329000DEBF0FBECDBFDF91CF911F910895805843 +:1032A000823028F72091D6023091D7022C3DE3E0FE +:1032B0003E07A1F583E08A838AE289834FB7F894B9 +:1032C000DE01139620E03EE051E2E32FF0E0509360 +:1032D0005700E49120FF03C0E295EF703F5FEF706D +:1032E0008E2F90E0EA30C0F0C7968D939D932F5FAC +:1032F000243159F74FBF8091E800877F8093E80021 +:103300006AE270E0CE0101960E9419068091E80001 +:103310008B778093E800ABCFC096E7CF8091D8023F +:103320009091D902432F55274330510509F44AC0E3 +:1033300078F54130510509F47AC08BE590E0E6EB71 +:10334000F8E04230510509F092CF2091E800277F44 +:103350002093E8002091DA023091DB028217930774 +:1033600008F49C0140E02115310509F065C04111C8 +:1033700063C08091E80082FDC9CF8091D20288238A +:1033800029F2853019F28091E80083FFF2CFBECF99 +:103390004132510509F43CC04232510509F067CF72 +:1033A0008330910508F063CFFC01EE0FFF1FEE5450 +:1033B000FE4F0190F081E02D81559E4FDC018C91F4 +:1033C00090E01AC0332721303105D1F021153105A5 +:1033D00061F02230310509F04ACFE3E2F9E0E491EF +:1033E0008E2F90E0E3E2F9E007C0E1E4F9E0E49138 +:1033F0008E2F90E0E1E4F9E0009709F438CFA5CFF3 +:10340000EDE2F9E0E4918E2F90E0EDE2F9E0F4CF07 +:103410008330910508F02BCF880F991FFC01E854E9 +:10342000FE4F0190F081E02D89E090E08ECF82E1A7 +:1034300090E0E1E1F9E089CF8091D202882309F49C +:1034400065CF853009F462CF8091E80083FD5ECFBF +:103450008091E80082FD8DCF8091E80080FF83CFCE +:103460008091F2009091F3002115310519F0883018 +:10347000910550F041E0089709F040E08091E800A4 +:103480008E778093E8006FCF44914093F10031969E +:10349000215031090196E8CF803809F0E8CE8091BB +:1034A000E800877F8093E8008091D3028093F10049 +:1034B00087CE8111DCCE1091D602123008F0D7CE23 +:1034C0008091E800877F8093E8001093D3020E94E8 +:1034D0006605112311F084E005C08091E30087FDAB +:1034E000FACF81E08093D20242E061EC81E00E9459 +:1034F000850542E261EC84E00E94850542E261ECD0 +:1035000082E00E94850542E260EC83E00E9485052E +:10351000AECE8091D602813009F0A9CE81E0933001 +:1035200009F080E08093D1021092E9008091E800D8 +:10353000877F8093E8000E94660599CE3F924F9264 +:103540005F926F927F928F929F92AF92BF92CF9233 +:10355000DF92EF92FF920F931F93CF93DF9300D0F0 +:1035600000D00F92CDB7DEB78C01FC01838194812E +:10357000892B31F08081918189238F3F09F054C6D6 +:103580000F900F900F900F900F90DF91CF911F91A0 +:103590000F91FF90EF90DF90CF90BF90AF909F90F2 +:1035A0008F907F906F905F904F903F9008950E9412 +:1035B000040FF82E682F89819A810E947D0B698102 +:1035C0007A818F2D0E94F70E7C01F8018281882379 +:1035D00009F41CC6970122513F452031310508F0FE +:1035E000D4C58FEF97E00E94B831FEEEEF0E57EE94 +:1035F000852E53E0952E882381F1809131028770CA +:1036000009F4BECFF8018281882309F4B9CF82E0A2 +:103610000F900F900F900F900F90DF91CF911F910F +:103620000F91FF90EF90DF90CF90BF90AF909F9061 +:103630008F907F906F905F904F903F900C94741597 +:10364000811428E09206C9F2C4010E94B8318111A8 +:1036500001C0EA943FEF831A930AE110F1CF1C8274 +:103660001B82442443944AE0342E74014FEFE41A41 +:10367000F40AC4010E94B83189831A82882309F4AC +:10368000BCCF9FEF980F933000F58A83498252E0B8 +:10369000850E911CC7010E94B8318B83882309F4E1 +:1036A000ACCFCE0101967C01F70120812223E9F203 +:1036B000213009F049C091818281913041F4F2E0DA +:1036C000EF0EF11C0E94AA0D09C04701EACF92300B +:1036D00049F422E0E20EF11C0E94F50C3FEFE31AE0 +:1036E000F30AE2CF933031F432E0E30EF11C0E9492 +:1036F000E10BF4CF943021F04FEFE41AF40AEECF4F +:1037000052E0E50EF11C30E020E0B7016F5F7F4F23 +:10371000F70141818053990B8A30910550F0215077 +:103720003109E0F28FE99FE00197F1F700C0000056 +:10373000F6CF329EF001339EF00D11249C012E0F26 +:103740003F1F842F7B01E1CFE22FF0E0EA5DFD4FC8 +:103750005490822F86958695869590E0FC01EA5ECE +:10376000FD4F64902770712C022E02C075946794EF +:103770000A94E2F7E1E06E227724FC01EA5FFD4F54 +:10378000A490B12C022E02C0B594A7940A94E2F73B +:10379000F1E0AF22BB24FC01EA50FE4FC490D12CD3 +:1037A00002C0D594C7942A95E2F721E0C222DD2415 +:1037B0006114710419F081EE0E94F50CA114B1049A +:1037C00019F086EE0E94F50C852D0E94AA0DAB28FB +:1037D00019F086EE0E94E10B672819F081EE0E9435 +:1037E000E10BCD2809F47ACF8CE26CCF81E00E9406 +:1037F00090150E94541501CF81E00E946315F9CF06 +:1038000082E0F5CFF3E8EF16FFE5FF0609F4CEC03E +:1038100024E8E2162FE5F20609F0D7C4882309F45C +:10382000ECCEF0903F02EE24E394FE24F0923F02AF +:103830000E948806B0E0A0E080933B0290933C0297 +:10384000A0933D02B0933E028091400210921A0173 +:10385000882309F4B9C08AE280931B0180931C017C +:1038600081E20E947B140E94AD10E0923F02109210 +:103870004002C3CE882309F481C08091490281119E +:1038800006C081E08093490282EE0E94F50C0E94FE +:10389000880690934802809347028BE20E94F50CC1 +:1038A000F8018281882309F4D0C41092E002F2E08A +:1038B000EF16FCE5FF0608F4ACC126E1E2162CE5A4 +:1038C000F20630F0C7018A5F9C45099708F0A1C154 +:1038D0000E948C0F9093A9028093A80230E1E31616 +:1038E0003CE5F30609F464C108F0E6C058E0E516CB +:1038F0005CE5F50609F44EC108F0AFC094E0E916A6 +:103900009CE5F90609F43EC108F091C0F2E0EF161B +:10391000FCE5FF0609F430C18091A802826023E033 +:10392000E2162CE5F20609F42AC16091A802F09093 +:10393000A90284E090E00E94CC316F2D82E290E0F9 +:103940000E94CC310E94C21758CE8823A1F08091EA +:103950004902811106C081E08093490282EE0E94F3 +:10396000F50C0E948806909348028093470281EEEE +:103970000E94F50C92CF81EE0E94E10B8BE20E9437 +:10398000E10B8ECF882309F48BCF81EE0E94F50CDA +:1039900083EE0E94F50C8FE40E94F50C8FE40E94E8 +:1039A000E10B83EE0E94E10B81EEE9CF882309F45D +:1039B00077CF81EE0E94F50C83EE0E94F50C80E536 +:1039C0000E94F50C80E5EBCF8AE280931B01809387 +:1039D0001C0181E2FF2029F00E947B140E94AD109F +:1039E00046CF0E947B1443CFE5EFEE16ECE5FE06D2 +:1039F000B9F090F026EFE2162CE5F20609F050CF70 +:103A000027E245EE66EEFEC327E245EE65EEFAC319 +:103A100026E241EE60EEF6C327E245EE64EEF2C325 +:103A200026E241EE62EEEEC328E241E0EFCF809164 +:103A3000A802806136E0E3163CE5F30609F49FC076 +:103A40008091A802886047E0E4164CE5F40608F48B +:103A500096C08091A802806292C08091A8028D7F5A +:103A60005CE0E5165CE5F50609F489C078F4809120 +:103A7000A8028C609AE0E9169CE5F90609F47FC07B +:103A800008F48CC08091A8028E7F79C08091A80232 +:103A9000877FFEE0EF16FCE5FF0609F470C0809119 +:103AA000A8028B7F2FE0E2162CE5F20608F467C02F +:103AB0008091A8028F7E63C03BEFE3163CE5F306DE +:103AC00009F464C068F553E1E5165CE5F50609F410 +:103AD00077C090F491E1E9169CE5F90609F46CC011 +:103AE000E2E1EE16ECE5FE0609F01FCF0E94C217D8 +:103AF0008091A8028F7743C0F5E1EF16FCE5FF0641 +:103B000009F466C008F47AC08091A90281603AEF96 +:103B1000E3163CE5F30609F008CF8093A90205CF30 +:103B20004FEFE4164CE5F40609F44EC088F48DEF2F +:103B3000E8168CE5F806C1F18091A9028E7F9EEF10 +:103B4000E9169CE5F90648F38091A9028360E5CF68 +:103B5000E1E0EE16EDE5FE0609F459C008F444C0B4 +:103B600060E022E0E2162DE5F20609F0DECE8EE0FE +:103B700090E00E94CC31D9CE8091A80281608093E0 +:103B8000A802D3CE8091A8028460F9CF8091A902C7 +:103B90008260C3CF8091A8028064F1CF0E94C217D7 +:103BA0008091A8028068EBCF8091A9028D7FB5CF6C +:103BB0008091A8028F7DE3CF8091A8028F7BDFCF19 +:103BC0008091A802837FDBCF8091A9028C7FA5CF53 +:103BD0008091A80282FB992790F921E0922790FB1F +:103BE00082F990FB83F9CBCF8091A902982F909511 +:103BF00091708E7F892B90FB81F98FCF0E94C21725 +:103C00009091A802892F97FB87F98058B8CF61E07F +:103C1000AECF8091340236E1E3163CE5F30609F0BD +:103C200021C38A7A91E009F490E09093E001811138 +:103C300006C089E20E94170B0E94A70ADECC85E32A +:103C4000F9CF85E30CC380915F0380FF1BC08E7F9B +:103C500080935F0360915F037091600380916103C3 +:103C6000909162030E943813109298024FEF50E730 +:103C700082E0415050408040E1F700C000000E94C7 +:103C8000B00FBBCC816080935F0361E086950E949A +:103C90004014B3CC4FE955E168EA75E10E94CC06C7 +:103CA000ACCC48EA55E16FE975E1F8CF45E154E164 +:103CB0006CE074E1F3CF44EF53E160E074E1EECFE8 +:103CC0004CED53E168EE73E1E9CF48EE53E16CED62 +:103CD00073E1E4CF4FE254E16EE174E1DFCF61E0E4 +:103CE00081E0D5CF65E082E00E94B21586CC68E025 +:103CF00086E0FACF64E18FE0F7CF67E185E1F4CFAA +:103D000062E289E1F1CF61E083E2C1CF3BE5E316F6 +:103D10003DE5F30611F14CE5E4164DE5F40609F036 +:103D2000D3C28091A90282FB882780F991E089277C +:103D30000E94B70EC9C20E94C2175FEF84E39CE0E5 +:103D4000515080409040E1F700C000000E94D10C2B +:103D50000E94D01552CC81E0EBCF80E0E9CFC701C3 +:103D60000E94550BD82EBFC22F2D2F70C22E8F2D23 +:103D7000807F19F0C29490EFC922DD20C9F0CC20D9 +:103D800069F080E28E0D883010F081100BC08091B8 +:103D90003402C82AC09234020E94A70A8E2D0E94C3 +:103DA000F50C19C080913302C82AC0923302F4CFB7 +:103DB0008E2D0E94E10BCC2071F0C09480E28E0D1C +:103DC000883010F081103EC080913402C822C09229 +:103DD00034020E94A70AE92DE850FF0B349720F423 +:103DE0000E94C0060E94A114AA2009F4C9CB8091A8 +:103DF000310280FDC5CBF8011282859585958595A8 +:103E00000E949015C8010E949E1A809131028595EA +:103E1000859585950F900F900F900F900F90DF91E3 +:103E2000CF911F910F91FF90EF90DF90CF90BF90B7 +:103E3000AF909F908F907F906F905F904F903F904A +:103E40000C94631580913302C822C0923302C1CF13 +:103E50003F2D3F70B32E8F2D807F803219F0B294AA +:103E600080EFB822882071F041E0841681F1DD20D6 +:103E7000D9F1CC2091F1F801858180FF8FCF8F702F +:103E800085832BC0DD20B1F0909135028B2D892BDD +:103E9000C11003C00E94D70B9ECF51E0C512FACFCC +:103EA0002091A90222FD97CF981709F494CF80930F +:103EB000350291CFC11006C00E94A10A8B2D0E942D +:103EC000CC0B89CF81E0C81609F485CFF5CFDD2072 +:103ED00031F095E09C1508F47ECF8B2DDBCFE4E02C +:103EE000EC1508F478CFEACFCC2041F3F9E38F1238 +:103EF00009C02FEF37EE43E0215030404040E1F75A +:103F000000C000008E2D0E94E10B65CF8F2D86959D +:103F10008695837061F0813009F05DCFC7019370A1 +:103F2000D11002C090E080E00E94940654CFC701F7 +:103F30009370D11002C090E080E00E94AA064BCF9F +:103F40008E2DDD2029F00E9463080E94810743CF57 +:103F50000E94A807FACF8F2D837009F040C0D110BE +:103F60003ACF4E2D429546954770440F440F8E2D03 +:103F70008F7090E0042E02C0880F991F0A94E2F718 +:103F800030E020E0E4FE09C02FE030E002C0220F64 +:103F9000331F4A95E2F7209530954F2D469546956B +:103FA0004370423099F078F4609136027091370294 +:103FB000413039F0822B932B862397230E94C60B26 +:103FC0000ACF862B972B822B932BF8CF822B932B08 +:103FD000209136023091370282279327EFCF8695C2 +:103FE000DD2011F08F2D8170882309F4F4CE4E2D41 +:103FF000429546954770440F440F8E2D8F7090E088 +:10400000042E02C0880F991F0A94E2F730E020E0E6 +:10401000E4FE09C02FE030E002C0220F331F4A95B2 +:10402000E2F7209530954F2D4695469543704230E6 +:1040300099F078F46091DC027091DD02413039F042 +:10404000822B932B862397230E944C15C4CE862B5C +:10405000972B822B932BF8CF822B932B2091DC0272 +:104060003091DD0282279327EFCF5F2D5F70F52E11 +:10407000DD2029F0852F0E9490158E2D0BCF8E2DDF +:104080000E94CC0B8F2D0E946315A5CE8E2D92EF32 +:10409000891609F449C0981570F0E0EF8E1639F1D1 +:1040A000F1EF8F16C9F1DD2009F45FC0C11076CEA3 +:1040B0008F2D8F7136C023EF8216D9F134EF831222 +:1040C000F2CFDD2009F446C0FF2DFF71FF2E8F2FA8 +:1040D0000E9490158091A90282FD07C028E0F29EFF +:1040E000C00111248360809331028F2D1AC0DD201E +:1040F00071F044E04C1508F46ECE2F2D2F7181E045 +:1041000090E002C0880F991F2A95E2F7A7CF55E0EB +:104110005C1508F460CEF1CF8F2D8F71DD2009F48E +:10412000B2CF0E94901557CE8F2D8F71DD20C9F32D +:10413000AACF90E080E0DD2009F486CF9F2D9F710B +:1041400021E030E0F90102C0EE0FFF1F9A95E2F77F +:10415000CF017ACF81E00E94741531E03C1508F060 +:104160003ACE82E00E94741536CECC2059F08933C5 +:1041700009F0C8CE4FEF57EE83E0415050408040E9 +:10418000E1F7BECE8F2D8F717ECFF0E1EF16FFE508 +:10419000FF0609F42BCB21E1E2162FE5F20609F424 +:1041A0002FCB42E8E4164FE5F40609F4EBCB08F018 +:1041B00029CB90E8E9169FE5F90609F45BCBE1E825 +:1041C000EE16EFE5FE0609F4C0CB33EFE3163CE54F +:1041D000F30609F41DCC08F007CC58EDE5165CE5B4 +:1041E000F50609F411CC89EDE8168CE5F80609F41A +:1041F0001BCC97EDE9169CE5F90609F051CB26E2B8 +:1042000041EE61EEC8010E94C70DF7C930E1E31627 +:104210003FE5F30609F4F0CA41E1E4164FE5F40680 +:1042200009F0BFCF82E0E9CA85E0DE011196019076 +:104230000D928A95E1F7F801228189819A812111F5 +:10424000B6C90E94550BF82EBAC9F6E1EF16FCE587 +:10425000FF06D1F58091E0018111F3CC89E20E9443 +:10426000EC0AEACC82722CECE2162CE5F20609F498 +:1042700031CD08F0A7C046ECE4164CE5F40609F48D +:1042800015CD08F076C093ECE9169CE5F90609F423 +:1042900001CD08F05DC0F2ECEF16FCE5FF0609F475 +:1042A000D2CC9AE5E9169DE5F90609F454CD08F05B +:1042B0002DCDE114FCE5FF0609F43DCD2EEDE2160F +:1042C0002CE5F20609F444CDF8018281E080F1800A +:1042D000882309F444CDC7010E94040FD82E682F0B +:1042E000C7010E947D0BB7018D2D0E94F70E0E9421 +:1042F00019097C01882EF801D280C580C2943FE064 +:10430000C322809131028770A1F0AD2CDD2091F0A5 +:104310008F2D807F803421F080E28E0D883048F030 +:1043200082E00E947415809131028770AA24A394C0 +:104330008111A12C9F2C92942FE09222FBE0F91581 +:1043400008F449CDE92DF0E0E25AFD4C0C946D31B2 +:1043500024ECE2162CE5F20609F4A3CC4CE054E17F +:1043600065E174E135ECE3163CE5F30609F496CC1F +:1043700098CF49ECE4164CE5F40609F4A1CC88F496 +:1043800097ECE9169CE5F90609F495CC40E054E178 +:1043900064EF73E1E8ECEE16ECE5FE0609F47ECC82 +:1043A00080CFFAECEF16FCE5FF0609F48ECC4EE167 +:1043B00054E16FE274E12BECE2162CE5F20609F40D +:1043C0006DCC6FCF31EDE3163CE5F30609F492CCEA +:1043D000B8F45EECE5165CE5F50609F483CC08F468 +:1043E0007ECC9FECE9169CE5F90609F480CC6EE0E2 +:1043F00089E0E0EDEE16ECE5FE0609F475CC51CF50 +:10440000F4EDEF16FCE5FF0609F47ACC78F432ED12 +:10441000E3163CE5F30609F470CC61E088E143ED76 +:10442000E4164CE5F40609F432CC3BCF55EDE51625 +:104430005CE5F50609F467CC8DE5E816F80609F4A5 +:10444000DCC82FCF1F93CF93DF938091FE01807F35 +:10445000A9F48091FB01882389F080913002D091EA +:10446000FF016091F9017091FA01A091FC01B091F6 +:10447000FD01C62FC72316E0D81304C0DF91CF91EA +:104480001F91089590E0109711F0CF3F19F4019615 +:104490008770F2CF189F9001199F300D1124F901F8 +:1044A000E050FE4F41814713F2CF40814613EFCFDA +:1044B00042814111ECCF438154814A1B5B0B483C44 +:1044C000510528F78091FE018F7080618093FE0175 +:1044D000F901EB5FFD4F80818F708061808389EFF0 +:1044E00091E00E949E1ADF91CF911F910C944B0B8B +:1044F000AF92BF92CF92DF92EF92FF920F931F93F2 +:10450000CF93DF93CDB7DEB761970FB6F894DEBFD8 +:104510000FBECDBF8C0185E0F801DE011D96019034 +:104520000D928A95E1F7F801E28089EFA82E81E0EB +:10453000B82E6091FC017091FD016115710509F4BF +:1045400032C19091F9014091FA01892F84238F3F64 +:1045500009F429C120813181C380D480F090FB010E +:10456000F601E61BF70BFF2009F4E8C08091FE017D +:10457000582F507FE83CF10508F0ABC0511177C0CF +:10458000FE2C431321C092131FC0E1101DC08F7079 +:1045900080618093FE01C5010E949E1A8091FE01F8 +:1045A000F80185838F2D61960FB6F894DEBF0FBE9C +:1045B000CDBFDF91CF911F910F91FF90EF90DF90D2 +:1045C000CF90BF90AF900895CD2829F0822F8323FC +:1045D0008F3F09F003C180E0F82FF170DF2E80FFDC +:1045E0003CC0809130024091FF0156E0841315C019 +:1045F0002D873E878D859E850E94400F292F22950D +:104600002F702230F0F0243018F59F70F1F0F8018F +:104610009581907FD1F4D12C1EC090E0589FF0017D +:10462000599FF00D1124E050FE4F6181361306C0F2 +:104630006081261303C06281E6120FC00196877065 +:10464000D5CF9F7011F0882331F3805E883018F346 +:10465000C8010E949E1AFD2CA5CFEE2009F4A2CF1E +:104660008091FE0181608093FE01F12C9BCF43136A +:1046700006C0921304C0F801EE2009F479C0C80105 +:104680000E944C0F882309F1EE20F9F08091FE0181 +:10469000803270F02091F9013091FA0138872F8330 +:1046A0001986DB86CA868C87CE0107960E949E1AE1 +:1046B00086E0F801A9EFB1E001900D928A95E1F74B +:1046C0000E942222FF24F3946DCFC8010E949E1AFB +:1046D000F9CF51110AC089EF91E00E949E1A86E03D +:1046E000F50111928A95E9F7C0CF43130FC09213D9 +:1046F0000DC0E1100BC0F8018583C8010E949E1A0D +:1047000086E0F50111928A95E9F74CCFC8010E9425 +:104710004C0F8823D1F2EE20C1F28091FE0180324D +:1047200038F22091F9013091FA013A8329831B82F2 +:10473000DD82CC828E83CE010196B8CFE83CF105B4 +:10474000F8F6FE2CEE2009F243131FC092131DC091 +:104750008091FE0180FD10C0982F907F69F0F801D4 +:104760008583903F31F0982F907F905F8F70892BD9 +:104770008583C8010E949E1A86E0F801A9EFB1E086 +:1047800001900D928A95E1F70DCFC8010E944C0F60 +:1047900081118ECF8091FE0181608093FE01C8015E +:1047A0000E949E1AFFCEEE2009F48FCFC8010E940E +:1047B0004C0FF82E882309F488CF86E0F801A9EF82 +:1047C000B1E001900D928A95E1F78091F901909105 +:1047D000FA010E94400F0E942222E4CE81E08E2541 +:1047E000FBCE1F93CF93DF93CDB7DEB767970FB69E +:1047F000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B79 +:104800008F8B6111109233021A8A198A85E0FE019A +:104810007396DE011D9601900D928A95E1F786E070 +:10482000FE013D96DE01179601900D928A95E1F703 +:10483000CE0107960E947822882389F016E08091A5 +:1048400030029091FF01891349C067960FB6F89422 +:10485000DEBF0FBECDBFDF91CF911F91089586E0DF +:10486000FE013796DE01119601900D928A95E1F7CF +:104870008A859B85892B11F38F81988589238F3FAA +:10488000E9F22091FF0130E0C90101968770992774 +:10489000409130024817190671F40E94C217109215 +:1048A000FF011092300286E0E9EFF1E0DF011D9296 +:1048B0008A95E9F7C3CF96E0929FD001939FB00D00 +:1048C0001124A050BE4FFE01319601900D929A9591 +:1048D000E1F78093FF010E944B0BB0CF819FC00195 +:1048E000112480509E4F0E947822882309F4ADCF76 +:1048F0008091300290E00196877099278093300272 +:104900009ECFFF920F931F93CF93DF93CDB7DEB768 +:10491000C45BD1090FB6F894DEBF0FBECDBF182F10 +:104920008111D7C0662309F475C0C055DF4F1882C6 +:10493000C05BD040CF54DF4F1882C15BD04011E044 +:10494000CE54DF4F1883C25BD0400E94880681603E +:10495000782FCD54DF4F99838883C35BD040C055F7 +:10496000DF4F4881C05BD040CF54DF4F5881C15BDF +:10497000D040CE54DF4F6881C25BD040CC54DF4F73 +:104980008881C45BD0400E94F123C555DF4F188257 +:10499000CB5AD040C455DF4F1882CC5AD040C355B3 +:1049A000DF4F1882CD5AD0400E9488068160782F50 +:1049B000C255DF4F99838883CE5AD040C555DF4F0B +:1049C0004881CB5AD040C455DF4F5881CC5AD04093 +:1049D000C355DF4F6881CD5AD040C155DF4F888124 +:1049E000CF5AD0400E94F123109345020E948806BE +:1049F000909342028093410281E0CC54DF4F0FB686 +:104A0000F894DEBF0FBECDBFDF91CF911F910F9104 +:104A1000FF90089502E0CA55DF4F0883C65AD04080 +:104A2000C955DF4F1882C75AD04011E0C855DF4F33 +:104A30001883C85AD0400E9488068160782FC755D5 +:104A4000DF4F99838883C95AD040CA55DF4F4881C8 +:104A5000C65AD040C955DF4F5881C75AD040C855B3 +:104A6000DF4F6881C85AD040C655DF4F8881CA5A87 +:104A7000D0400E94F123CF55DF4F0883C15AD04068 +:104A8000CE55DF4F1882C25AD040CD55DF4F188225 +:104A9000C35AD0400E9488068160782FCC55DF4FE2 +:104AA00099838883C45AD040CF55DF4F4881C15A7B +:104AB000D040CE55DF4F5881C25AD040CD55DF4F40 +:104AC0006881C35AD040CB55DF4F8881C55AD0404A +:104AD00089CF813009F0C0C0662309F45FC0C45695 +:104AE000DF4F1882CC59D040C356DF4F8883CD5951 +:104AF000D040C256DF4F8883CE59D0400E948806EE +:104B00008160782FC156DF4F99838883CF59D04079 +:104B1000C456DF4F4881CC59D040C356DF4F58812F +:104B2000CD59D040C256DF4F6881CE59D040C056D3 +:104B3000DF4F8881C05AD0400E94F123C956DF4F11 +:104B40001882C759D040C856DF4F1883C859D04083 +:104B5000C756DF4F1882C959D0400E94880681602D +:104B6000782FC656DF4F99838883CA59D040C956DB +:104B7000DF4F4881C759D040C856DF4F5881C859C8 +:104B8000D040C756DF4F6881C959D040C556DF4F66 +:104B90008881CB59D0400E94F1232ECF02E0CE561F +:104BA000DF4F0883C259D040CD56DF4F8883C359A9 +:104BB000D040CC56DF4F8883C459D0400E9488062D +:104BC0008160782FCB56DF4F99838883C559D040B9 +:104BD000CE56DF4F4881C259D040CD56DF4F588165 +:104BE000C359D040CC56DF4F6881C459D040CA5613 +:104BF000DF4F8881C659D0400E94F123C357DF4F51 +:104C00000883CD58D040C257DF4F1883CE58D040CC +:104C1000C157DF4F1882CF58D0400E94880681606C +:104C2000782FC057DF4F99838883C059D040C3572E +:104C3000DF4F4881CD58D040C257DF4F5881CE5802 +:104C4000D040C157DF4F6881CF58D040CF56DF4F9B +:104C50008881C159D0409FCF823009F0ABC0662314 +:104C600009F45EC0C857DF4F1882C858D040C757F4 +:104C7000DF4F8883C958D04081E0C657DF4F888313 +:104C8000CA58D0400E9488068160782FC557DF4FF0 +:104C900099838883CB58D040C857DF4F4881C85884 +:104CA000D040C757DF4F5881C958D040C657DF4F53 +:104CB0006881CA58D040C457DF4F8881CC58D04053 +:104CC0000E94F123CD57DF4F1882C358D040CC57F4 +:104CD000DF4F1883C458D040CB57DF4F1882C558D8 +:104CE000D0400E9488068160782FCA57DF4F998391 +:104CF0008883C658D040CD57DF4F4881C358D04035 +:104D0000CC57DF4F5881C458D040CB57DF4F688114 +:104D1000C558D040C957DF4F8881C758D0403BCFD6 +:104D2000EF968FAFEF97C158DF4F8883CF57D040B2 +:104D300081E0C058DF4F8883C058D0400E94880669 +:104D40008160782FCF57DF4F99838883C158D04037 +:104D5000EF964FADEF97C158DF4F5881CF57D040F6 +:104D6000C058DF4F6881C058D040CE57DF4F888190 +:104D7000C258D0400E94F123EA961FAFEA97EB9603 +:104D80001FAFEB97EC961FAEEC970E9488068160F0 +:104D9000782FEE969FAF8EAFEE97EA964FADEA97DB +:104DA000EB965FADEB97EC966FADEC97EE968FAD13 +:104DB000EE97F1CE833009F081C0662309F43FC03D +:104DC00019E0E5961FAFE597E6961FAEE69781E0FE +:104DD000E7968FAFE7970E9488068160782FE99663 +:104DE0009FAF8EAFE997E5964FADE597E6965FAD3D +:104DF000E697E7966FADE797E9968FADE9970E9442 +:104E0000F123E0961FAFE097E1961FAEE197E2969F +:104E10001FAEE2970E9488068160782FE4969FAFCC +:104E20008EAFE497E0964FADE097E1965FADE197E6 +:104E3000E2966FADE297E4968FADE497ACCE1BE0BF +:104E4000AB961FAFAB97AC961FAEAC9781E0AD961B +:104E50008FAFAD970E9488068160782FAF969FAF85 +:104E60008EAFAF97AB964FADAB97AC965FADAC97AF +:104E7000AD966FADAD97AF968FADAF970E94F12312 +:104E8000A6961FAFA697A7961FAEA797A8961FAE88 +:104E9000A8970E9488068160782FAA969FAF8EAF50 +:104EA000AA97A6964FADA697A7965FADA797A89687 +:104EB0006FADA897AA968FADAA976DCE843009F0F2 +:104EC00081C0662309F43FC009E0A1960FAFA19706 +:104ED00011E0A2961FAFA297A3961FAFA3970E94BF +:104EE00088068160782FA5969FAF8EAFA597A19673 +:104EF0004FADA197A2965FADA297A3966FADA39772 +:104F0000A5968FADA5970E94F1236C960FAF6C9775 +:104F10006D961FAF6D976E961FAE6E970E948806B6 +:104F20008160782FA0969FAF8EAFA0976C964FAD03 +:104F30006C976D965FAD6D976E966FAD6E97A09600 +:104F40008FADA09728CE0BE067960FAF679711E063 +:104F500068961FAF689769961FAF69970E94880689 +:104F60008160782F6B969FAF8EAF6B9767964FAD32 +:104F7000679768965FAD689769966FAD69976B960E +:104F80008FAD6B970E94F12362960FAF6297639685 +:104F90001FAF639764961FAE64970E948806816076 +:104FA000782F66969FAF8EAF669762964FAD6297E9 +:104FB00063965FAD639764966FAD649766968FADA9 +:104FC0006697E9CD853009F07DC0662309F445C0B8 +:104FD00039E0F32E2D96FFAE2D9702E02E960FAFFF +:104FE0002E9711E02F961FAF2F970E9488068160A1 +:104FF000782F61969FAF8EAF61972D964FAD2D970D +:105000002E965FAD2E972F966FAD2F9761968FAD31 +:1050100061970E94F1232896FFAE289729960FAF3B +:1050200029972A961FAE2A970E9488068160782FBA +:105030002C969FAF8EAF2C9728964FAD2897299628 +:105040005FAD29972A966FAD2A972C968FAD2C9736 +:105050000E94F12310934402C9CC2BE0F22E239638 +:10506000FFAE239702E024960FAF249711E0259618 +:105070001FAF25970E9488068160782F27969FAFE3 +:105080008EAF279723964FAD239724965FAD249735 +:1050900025966FAD259727968FAD27970E94F12310 +:1050A000FDAE0EAF1FAE0E9488068160782F22965B +:1050B0009FAF8EAF22974DAD5EAD6FAD22968FAD97 +:1050C0002297C6CF863009F048C0662329F199E0BF +:1050D000F92EF8AE03E009AF11E01AAF0E9488067E +:1050E0008160782F9CAF8BAF48AD59AD6AAD8CAD68 +:1050F0000E94F123FBAA0CAB1DAA0E9488068160C6 +:10510000782F9FAB8EAB4BA95CA96DA98FA90E948C +:10511000F123109343026ACC8BE0F82EFEA603E045 +:105120000FA711E018AB0E9488068160782F9AAB18 +:1051300089AB4EA55FA568A98AA90E94F123F9A6AB +:105140000AA71BA60E9488068160782F9DA78CA7BE +:1051500049A55AA56BA58DA5DACF873009F041C0C6 +:105160006623F9F013E01CA31DA381E08EA30E9427 +:1051700088068160782F98A78FA34CA15DA16EA1AE +:1051800088A50E94F1231F8F18A319A20E948806E8 +:105190008160782F9BA38AA34F8D58A169A18BA111 +:1051A000FACC05E00A8F13E01B8F81E08C8F0E9400 +:1051B00088068160782F9E8F8D8F4A8D5B8D6C8DD8 +:1051C0008E8D0E94F1230D8B1E8B1F8A0E948806F4 +:1051D0008160782F998F888F4D895E896F89898D3D +:1051E000DACC883009F008CC662301F106E0088BA0 +:1051F00013E0198B81E08A8B0E9488068160782FEA +:105200009C8B8B8B488959896A898C890E94F123F0 +:105210000B871C871D860E9488068160782F9F87D8 +:105220008E874B855C856D858F85B5CC08E00E83B8 +:1052300013E01F8381E088870E9488068160782FB1 +:105240009A8789874E815F8168858A850E94F123CC +:1052500009831A831B820E9488068160782F9D83B0 +:105260008C8349815A816B818D8195CC1F920F92DD +:105270000FB60F9211242F933F934F935F936F9329 +:105280007F938F939F93AF93BF93CF93DF93EF93CE +:10529000FF93D091E900DF708091EC00C82FC170BE +:1052A00080FDC0E81092E9008091F000877F809334 +:1052B000F00078940E94D7171092E9008091F000D6 +:1052C00088608093F000CD2BCF70C093E900FF91F0 +:1052D000EF91DF91CF91BF91AF919F918F917F918E +:1052E0006F915F914F913F912F910F900FBE0F9053 +:1052F0001F9018951F920F920FB60F9211242F93A3 +:105300003F934F935F936F937F938F939F93AF934D +:10531000BF93EF93FF938091E10082FF09C08091DA +:10532000E20082FF05C08091E1008B7F8093E10065 +:105330008091DA0080FF24C08091D80080FF20C0D7 +:105340008091DA008E7F8093DA008091D90080FF0F +:105350009BC088E189BD8AE189BD09B400FEFDCF0B +:1053600081E08093D2028091AD02811109C00E9438 +:10537000EC040E94B7058091E20084608093E20013 +:105380008091E10080FF17C08091E20080FF13C090 +:105390008091E2008E7F8093E2008091E200806144 +:1053A0008093E2008091D80080628093D80019BC7D +:1053B00085E08093D2028091E10084FF29C0809132 +:1053C000E20084FF25C088E189BD8AE189BD89B5F5 +:1053D000982F917080FFFBCF8091D8008F7D8093B4 +:1053E000D8008091E1008F7E8093E1008091E200FF +:1053F0008F7E8093E2008091E20081608093E200E2 +:105400008091D302882309F445C084E08093D202BE +:105410008091E10083FF27C08091E20083FF23C0D9 +:105420008091E100877F8093E10082E08093D20247 +:105430001092D3028091E1008E7F8093E1008091F1 +:10544000E2008E7F8093E2008091E2008061809391 +:10545000E20042E060E080E00E9485058091F0007B +:1054600088608093F000FF91EF91BF91AF919F9181 +:105470008F917F916F915F914F913F912F910F90FD +:105480000FBE0F901F90189519BC1092D202109267 +:10549000AD0276CF8091E30087FD93E09093D20236 +:1054A000B7CF78941F921FB61F9211248F939F93AA +:1054B000AF93BF938091A4029091A502A091A60200 +:1054C000B091A7020196A11DB11D8093A4029093F3 +:1054D000A502A093A602B093A702BF91AF919F919E +:1054E0008F911F901FBE1F9018951F921FB61F927D +:1054F00011248F939F93AF93BF938091A302811147 +:1055000013C08091A4029091A502A091A602B0912F +:10551000A7024196A11DB11D8093A4029093A502FC +:10552000A093A602B093A702BF91AF919F918F91D4 +:105530001F901FBE1F901895CDB7DEB7AA970FB664 +:10554000F894DEBF0FBECDBF84B7877F84BF0FB690 +:10555000F894A89580916000886180936000109213 +:1055600060000FBE80E890E00FB6F8948093610071 +:10557000909361000FBE85B7806885BF85B780684E +:1055800085BF8DEB98E09093BF018093BE010E9490 +:10559000EC040E94B7058091E20084608093E200F1 +:1055A00078948091D2028823A1F01091E9001F70B5 +:1055B0009091EC00892F817090FD80E8182B10925B +:1055C000E9008091E80083FD0E94D7171F701093B7 +:1055D000E90082E084BD93E095BD9AEF97BD80938A +:1055E0006E000E94730F811102C00E94A80E80EF0E +:1055F0000E94BF0881EF0E94BF0882EF0E94BF088F +:1056000083EF0E94BF0803E511E06FE5E62E61E03D +:10561000F62ED8018D918D018F3F11F00E94BF08A9 +:10562000E016F106B1F710924B0210924A02109266 +:105630007A021092790210924D0210924C0210924E +:105640007C0210927B0210924F0210924E02109236 +:105650007E0210927D02109251021092500210921E +:10566000800210927F020E94B717811102C00E942F +:10567000D01582E090E00E94B831809370020E94C1 +:105680008C0F9093A9028093A8020E943C16EFE32E +:10569000FCE93197F1F700C000000E943C168091B0 +:1056A000790280FF08C06FEF7FEF90E080E00E94FA +:1056B000EA310E94D10C83E090E00E94B83190E082 +:1056C0000E94C60B8091DC029091DD020E94B91409 +:1056D00080915202811132C00E94B717811104C01B +:1056E0000E94D0150E94C01588E090E00E94C03151 +:1056F00060935F03709360038093610390936203F0 +:105700006E7F71F40E94C01588E090E00E94C03165 +:1057100060935F03709360038093610390936203CF +:105720000E94D2061092980280915F0380FF03C00E +:1057300086950E947B1481E0809352026AE871E0B2 +:1057400056E6852E52E0952E28E731E0E1E8F1E0BB +:1057500041E050E01191812F82958F7090E0DC0143 +:105760009196FC9091971F70E12E6A0101C0CC0CBC +:105770001A95EAF70C2D00950F2191960C939197AD +:1057800092961C9192971C2992961C93D901FD9098 +:105790009D010F2D02950F7010E0D8019196BC90DD +:1057A000BF2DBF70FB2E6A0101C0CC0CBA95EAF781 +:1057B000DC2CD094DB20D8019196DC9291979296C4 +:1057C000DC909297DC289296DC92DC0190968C918A +:1057D00090E002C095958795EA94E2F78170D80130 +:1057E00090960C9110E002C015950795FA94E2F797 +:1057F00090E000FD92E0892BD4018D934D016E174E +:105800007F0709F0A7CF86EA92E0909390028093F9 +:105810008F0281E20E947B1481E090E00E944C158F +:1058200080E091E09093A00280939F028091D20249 +:10583000FF24F39408E11AE1853009F47CC20E9448 +:105840003C16882359F08FB7F8944091A4025091E8 +:10585000A5026091A6027091A7028FBFA9E7B2E0EE +:10586000E1E7F2E010E000E0702F8D919D91219131 +:1058700031912817390709F487C22827392760E0B2 +:10588000EE24E394F12CA9014E215F21452B09F46C +:1058900075C269A37AA39C012E213F2191E0232B9D +:1058A00009F490E09BA30E9488068160782F9DA355 +:1058B0008CA349A15AA16BA18DA10E94F123000FD5 +:1058C000111FF801EF58FD4F80819181E826F926DC +:1058D000F182E082809198028823D1F18091970231 +:1058E000E0915F03E695E81BE0939302823009F0B4 +:1058F00062C2F0E0EC53FD4FE4910E2F10E044E261 +:10590000E42E43E1F42E80919402882361F01092FA +:1059100094020E94880690939202809391021092C2 +:105920009602109295020E948806E0919102F091F1 +:1059300092028E1B9F0B8F3F9F4750F4E00FF11F89 +:10594000F0939202E093910281E992E0F7010995C8 +:105950003DE5E32E32E0F32E04E512E04FE6442E5F +:1059600041E0542E58E7652E51E0752E61E8862EF1 +:1059700061E0962E76E6A72E72E0B72E212C312C10 +:10598000D501ED915D01EE0FEE0FD4012D914D018A +:10599000A22FA295AF70B0E090968C9190E02F70FE +:1059A00002C0959587952A95E2F781709927D301D2 +:1059B0004D913D01A42FA295AF70B0E090962C912F +:1059C00030E04F7002C0359527954A95E2F7A9015E +:1059D0004170552720FF02C042E050E0842BE82BA5 +:1059E000D5011197EC93D201CD902D01EF70F0E02D +:1059F000E15AFE4F8081F7019081890F8083D12C7D +:105A0000082E000C990B20E08C159D054CF0D80158 +:105A10008C918F5F8C9360E0832D0E94812421E024 +:105A2000F7018081082E000C990B442755274C194B +:105A30005D09481759074CF0D8018C9181508C931F +:105A400061E0832D0E94812421E0F7018081082EEE +:105A5000000C990BB6010E945931D7018D937D013D +:105A6000222A33940F5F1F4FB9E03B1289CF2220C7 +:105A700059F08FB7F8944091A4025091A50260911B +:105A8000A6027091A7028FBF86E0E8E8F2E0DE018F +:105A9000119601900D928A95E1F7F0908A02E090BC +:105AA0008B0210918C0200918D0210928A0210924A +:105AB0008B0210928C0210928D028F2D8E2909F488 +:105AC00048C080918602909187020E9479069C01CD +:105AD00090918202992309F4C5C323333105C8F19B +:105AE0009F3F19F09F5F90938202FF2059F00E9420 +:105AF00043089FEF1F140CF491E0899F802D11241F +:105B000080938A02EE2059F00E9443089FEF1E14F2 +:105B10000CF491E0899F802D112480938B023091A9 +:105B20008A023323B1F020918B02222391F045EBBE +:105B30003403C0011124992309F497C190938A0278 +:105B400045EB240390011124332309F492C13093CF +:105B50008B02812F802B09F448C0809184029091A0 +:105B600085020E9479069C0190918102992309F493 +:105B700074C325363105C8F19F3F19F09F5F90939C +:105B80008102112359F00E9421089FEF11160CF495 +:105B900091E0899F802D112480938C02002359F07D +:105BA0000E9421089FEF10160CF491E0899F802D30 +:105BB000112480938D0230918C023323B1F0209117 +:105BC0008D02222391F045EB3403C0011124992367 +:105BD00009F453C190938C0245EB240390011124E6 +:105BE000332309F44EC130938D0280918A02909143 +:105BF0008B02892B90918C02892B90918D02892B9D +:105C000011F00E94810786E0FE013196A8E8B2E01B +:105C100001900D928A95E1F70E94C00690916F0263 +:105C2000891731F00E94C00680936F020E94A11470 +:105C30008091D202843009F0F9CD83E08093E900AD +:105C40008091E80082FFF2CD8091E80090E085FF2E +:105C500006C00E940B05882309F417C191E08091CA +:105C6000E8008B778093E800992309F4DFCDE98180 +:105C7000E150E33108F09DC1F0E0E659FD4C0C9491 +:105C80006D318091D202843009F443C080E00E94DB +:105C9000A1141092980280918E02811116C0F09288 +:105CA0008E0280915F03982F9170909353028E7FA4 +:105CB00080935F03BFEFE0E7F2E0B150E040F040D7 +:105CC000E1F700C000000E94B00F1092A30288E12B +:105CD00090E0A0E40FB6F894A895809360000FBE02 +:105CE000A093600083B7817F846083BF83B78160A6 +:105CF00083BF7894889583B78E7F83BF0FB6F8945F +:105D0000A895809160008861809360001092600087 +:105D10000FBE8091D102882371F00E943C16E9E702 +:105D2000F2E081919191892B09F078C281E892E0AB +:105D30008E179F07B1F78091D202853009F4A1CF69 +:105D40000E94C2170E94C0060E94A11410928E02E7 +:105D500080915302882359F080915F038160809382 +:105D60005F0386950E947B140E949A0F68CD8091F4 +:105D700099028823C9F30E94B00FF6CF6F5FEE0C33 +:105D8000FF1C6C3009F07FCD0F5F1F4F04301105F1 +:105D900009F06ACD8FEF8EA38FA318A60E94880604 +:105DA0008160782F9AA789A74EA15FA168A58AA5CF +:105DB0000E94F1238FCD863059F4F0E0EF53FD4F70 +:105DC000E4910E2F10E034E1E32E33E1F32E9BCD6E +:105DD000893061F4E695F0E0E254FD4FE4910E2F36 +:105DE00010E025E6E22E22E1F22E8DCD8F3061F417 +:105DF000E695F0E0E554FD4FE4910E2F10E090E1C0 +:105E0000E92E92E1F92E7FCD853159F4F0E0E85486 +:105E1000FD4FE4910E2F10E08DE9E82E81E1F82E80 +:105E200072CD08E210E0FDE0EF2EF1E1FF2E8831A7 +:105E300009F469CD833249F4E6EBF2E0059114915F +:105E4000BBEBEB2EB2E1FB2E5ECD04EF11E0A0ED3B +:105E5000EA2EA0E1FA2E843209F455CD00ED17E0C8 +:105E6000E1EDEE2EE6E0FE2E4ECD81E080938A023B +:105E700067CE81E080938B026CCE81E080938C02B0 +:105E8000ABCE81E080938D02B0CE00E210E0CE0177 +:105E900001967C018091E80085FD0AC08091E800B0 +:105EA0008B778093E8000E940B05882399F3D6CE68 +:105EB0008091F100D7018D937D010150110951F7B7 +:105EC000CDCE1A8289E08B833FC08A81823009F46B +:105ED000BBC18330A9F0813009F06BC02FB7F894B3 +:105EE0006091A4027091A5028091A6029091A702F0 +:105EF0002FBF0E9473316B837C838D839E8324C06C +:105F00008091790290917A029827892798279C831B +:105F10008B8380917B0290917C0298278927982718 +:105F20009E838D8380917D0290917E0298278927A0 +:105F3000982798878F8380917F029091800298277D +:105F4000892798279A8789878091D202843009F01F +:105F50006DCC1091E9001F709091EC00892F817039 +:105F600090FD80E8182B82E08093E9008091E800A2 +:105F700080FF0DC050E040E060E270E0CE0101968D +:105F80000E943C058091E8008E778093E8001F70A6 +:105F90001093E9004BCC8A81823059F46B817C816B +:105FA0008D819E810E94733186E290E00E94CC3107 +:105FB000CBCF8FEF8983C8CF4C816B818A810E94C0 +:105FC000D10E9827892798279E838D83BDCFED809A +:105FD000FE80FE24EF24FE248A810B81B8E10B9F12 +:105FE00080011124E0E68E9F000D111D11248C818B +:105FF00090E0880F991F080F191F6F2DC801879611 +:106000000E94CC316E2DC8018896D0CF0E943B0EE5 +:106010009BCF8A818138C1F060F4803809F094CF39 +:1060200020E04B8160916103809160030E944A13DC +:106030008BCF823849F1833809F086CF20E0409138 +:1060400062036C818B81F2CF8B810E947B149B81D8 +:1060500080915F03911111C08E7F80935F03109236 +:106060009802FFEF20E742E0F15020404040E1F786 +:1060700000C000000E94B00F67CF816080935F0373 +:1060800086950E947B1460CF8B81809363035CCFE5 +:106090008A81813899F030F4803809F055CF8091A9 +:1060A000620311CF823891F0833809F04DCF80918F +:1060B00060038B83809161038C8346CF80915F0363 +:1060C00080FF02C08695FFCE80E0FDCE8091630305 +:1060D000FACE60915F0370916003809161039091AB +:1060E00062030E94381330CF80E18A832DCF84E091 +:1060F0008A8389E1E8CE0A811B81102701271027B6 +:10610000CE0101966C01EC80DC01AE0DB11D7D016C +:10611000C80189519C4FEC14FD0409F415CF0931D5 +:10612000B4E01B0750F40E94B831F60184830F5F7E +:106130001F4FBFEFCB1ADB0AEBCFD60114961C9290 +:10614000F6CF0A811B81102701271027FE01319607 +:106150006F01EC80E00EF12EF11CC80189519C4FBB +:10616000E016F10609F4F0CE0931F4E01F0728F437 +:10617000D60114966C910E94CC31BFEFCB1ADB0A8A +:106180000F5F1F4FEACF0E942B0EDECE8AE0ADCF0D +:106190000A811B81102701271027FE0131966F010C +:1061A000EC80CF018E0D911D7C01C8018796EC1407 +:1061B000FD0409F4C9CE003CA3E01A0750F40E9484 +:1061C000B831F60184830F5F1F4FBFEFCB1ADB0A94 +:1061D000ECCFD60114961C92F6CF0A811B811027B2 +:1061E00001271027FE0131966F01EC80E00EF12EA1 +:1061F000F11CC8018796E016F10609F4A5CE003C13 +:10620000F3E01F0728F4D60114966C910E94CC315C +:10621000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BDD4 +:1062200009B400FEFDCF8091D8008F7D8093D80007 +:106230008091E00082608093E0008091E00081FD29 +:10624000FCCF0E94C21777CD86E290E00E94B83161 +:106250001B821C821D828E8377CE2D32314008F046 +:106260008DCCC3CC2D32314008F03CCC72CC87FBB6 +:10627000082E062687FD819567FD61950E9489316C +:106280000EF4919507FC81950895AA1BBB1B51E163 +:1062900007C0AA1FBB1FA617B70710F0A61BB70B96 +:1062A000881F991F5A95A9F780959095BC01CD013B +:1062B000089597FB072E16F4009407D077FD09D0B8 +:1062C0000E94453107FC05D03EF4909581959F4F83 +:1062D0000895709561957F4F0895EE0FFF1F05900B +:1062E000F491E02D09946927962769277827872755 +:1062F000782708950E943532332312F48A1B9B0BB2 +:106300000C9484310E943532B7FF0895821B930BA1 +:106310000895991B79E004C0991F961708F0961B01 +:10632000881F7A95C9F780950895FB01DC0102C0AA +:1063300005900D9241505040D8F70895FC0141500E +:10634000504030F001900616D1F73197CF010895F3 +:10635000882799270895FB01DC0104C08D910190E5 +:10636000801921F441505040C8F7881B990B0895BB +:10637000F999FECF92BD81BDF89A992780B508950D +:10638000A6E1B0E044E050E00C94F231A8E1B0E0C6 +:1063900042E050E00C94F231262FF999FECF92BDE5 +:1063A00081BDF89A019700B4021639F01FBA20BDDA +:1063B0000FB6F894FA9AF99A0FBE08950396272F0C +:1063C0000E94CD310E94CC31252F0E94CD31242F47 +:1063D0000C94CD310196272F0E94CD310C94CC31F5 +:1063E000DC01CB01FC01F999FECF06C0F2BDE1BD95 +:1063F000F89A319600B40D9241505040B8F7089584 +:106400000E943532A59F900DB49F900DA49F800DE2 +:10641000911D11240895B7FF0C9400320E940032A0 +:10642000821B930B0895A1E21A2EAA1BBB1BFD0130 +:106430000DC0AA1FBB1FEE1FFF1FA217B307E40763 +:10644000F50720F0A21BB30BE40BF50B661F771FBB +:10645000881F991F1A9469F760957095809590959B +:106460009B01AC01BD01CF010895A29FB001B39F74 +:10647000C001A39F700D811D1124911DB29F700D4D +:10648000811D1124911D0895F894FFCF5E0F5E0FBA +:10649000670F670F690F670F670F670F5E0F5E0F5C +:1064A0006E0F670F670F6E0FBC18E4183719E418EA +:1064B000371917194F1937194C1A591AB41EB41E27 +:1064C000281F281F861FA01FEB1EEB1EAB1F3520A9 +:1064D00046204620612F652FCB2FDC2FE72F06307B +:1064E000093048306930D92FD92F743077307B305C +:0A64F000A130C330C630C830ED30D3 +:1064FA007606910C700C6C0C680C01191A1B1C1D89 +:10650A001E1F202122010201002A002A2A0181825B +:10651A0083E200E900EA00B500B600B700CD0083C7 +:10652A0001CC008A0192019401210223022402254E +:10653A0002260227022A02B300B4006F007000F09C +:10654A00F1F2F3F5F6F700010203040537363500D8 +:10655A00FF0100010000FFFF0000010001FF00042D +:10656A00040404040404020261626466909294972B +:10657A00066063656791939596070001020202021D +:10658A000606060909090909090F0F0F0F0F0F154A +:10659A00151518191919191919191919192324402E +:0E65AA0022B6B6019401DE00C808E10801091E :00000001FF From 6b786caf45b76ef5b71ae41c217014fed77eff33 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 5 Nov 2021 13:03:25 -0400 Subject: [PATCH 34/94] Update stretch timer code for max timer limitations. --- .../solartempest/9e/keymaps/via/keymap.c | 13 +- .../solartempest/9e/solartempest_9e_via.hex | 1883 +++++++++-------- 2 files changed, 955 insertions(+), 941 deletions(-) diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 7d77a1d9e281..4158b582c0b6 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -35,7 +35,8 @@ uint16_t alt_tab_timer = 0; bool is_stretch_active = false; // Stretch Timer Code bool is_stretch_time = false; -uint32_t stretch_timer = 0; +uint16_t stretch_timer = 0; +uint16_t stretch_minutes = 0; #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. @@ -254,10 +255,15 @@ void matrix_scan_user(void) { #ifdef RGBLIGHT_ENABLE //Stretch timer code if (is_stretch_active && !is_stretch_time) { - if (timer_elapsed(stretch_timer) > 2700000) { //Change RGB after 5s (Configurable. Test for 5s. 45 minutes is 2,700,000. 1 hour is 3,600,000) + if(timer_elapsed(stretch_timer)>60000) { //1 minute has passed. Timer is uint16 max. + stretch_minutes++; + stretch_timer = timer_read(); + } + if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); is_stretch_time = true; + stretch_minutes = 0; } } #endif @@ -324,17 +330,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on is_stretch_active = 1; is_stretch_time = 0; + stretch_minutes = 0; } else if(is_stretch_active==1) { rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on is_stretch_time = 0; + stretch_minutes = 0; } else { rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set back to layer colours is_stretch_time = 0; + stretch_minutes = 0; } } return false; diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index d2c99f66aa0c..1dd8a7b014c4 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C947A290C94362972 -:100030000C94752A0C94EA040C94EA040C94EA04D7 +:100020000C94EA040C94EA040C94A2290C945E2922 +:100030000C949D2A0C94EA040C94EA040C94EA04AF :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C94512A0C94EA040C94EA04DB +:100050000C94EA040C94792A0C94EA040C94EA04B3 :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -153,9 +153,9 @@ :10098000670314BE84B7877F84BF0FB6F894A89519 :1009900080916000886180936000109260000FBEBB :1009A000E0E0F8E7099523E0AEEBB1E001C01D926D -:1009B000A436B207E1F711E0A0E0B1E0EAEFF4E617 -:1009C00002C005900D92AE3BB107D9F70E949C2A58 -:1009D0000C9444320C940000E8EDF0E080818C7FB0 +:1009B000A436B207E1F711E0A0E0B1E0EAE4F5E621 +:1009C00002C005900D92AE3BB107D9F70E94C42A30 +:1009D0000C946C320C940000E8EDF0E080818C7F88 :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 @@ -225,7 +225,7 @@ :100E00004983E8835A83DF91CF911F910F91FF901F :100E1000EF90DF90BF90AF900895202F30E0449185 :100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E944531812F90E0880F991F9B +:100E3000F0E0BF010E946D31812F90E0880F991F73 :100E400055E5569FD001579FB00D11248A1B9B0B6F :100E5000982F990F890F5F01A21AB30AAE9CD00197 :100E6000AF9CB00DBE9CB00D11245B2F089F80017C @@ -260,12 +260,12 @@ :10103000F7CF8F3F09F0A1CF809183028B7FF0CF54 :1010400008958091830280FD16C081FD16C082FD47 :1010500016C0809181028823A1F0883280F428E0B4 -:10106000829FC001112468E270E00E945931862FEE +:10106000829FC001112468E270E00E948131862FC6 :10107000672B39F0089582E0089584E0089588E0B0 :10108000089581E008958091830280FD14C081FD60 :1010900014C082FD16C080918202882381F08431C1 :1010A00080F422E3829FC001112464E170E00E9479 -:1010B0005931862F08958CE0089589E1089585E0DF +:1010B0008131862F08958CE0089589E1089585E0B7 :1010C000089582E30895803F31F40E94430881959A :1010D00080938B020895813F19F40E944308F8CF52 :1010E000823F31F40E944308819580938A020895DB @@ -452,30 +452,30 @@ :101C3000EAF7DF91CF911F910F910C94CC0BC770F5 :101C400081E001C0880FCA95EAF7F3CFDF91CF9109 :101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E94CC312196C11588E0D807B9F782 +:101C6000CE010E94F4312196C11588E0D807B9F75A :101C7000DF91CF9108956F927F928F929F92AF9252 :101C8000BF92CF92DF92EF92FF920F931F93CF9369 :101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 :101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E94CC31682DC80101960E948F -:101CC000CC3182E0A80EB11C0E5F1F4FC017D107A8 +:101CB000692DC8010E94F431682DC80101960E9467 +:101CC000F43182E0A80EB11C0E5F1F4FC017D10780 :101CD00061F788E1680E711C6896CE15DF0529F062 :101CE0008E01085111095301E0CF7E0180E6E80E14 :101CF000F11C80E6C80ED11C8FE5E81684E0F806DA :101D000079F6DF91CF911F910F91FF90EF90DF90C7 :101D1000CF90BF90AF909F908F907F906F900895DD :101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D3000CC316FEFC11161E184E290E00E94CC31BF -:101D40006FEFC11165E085E290E0CF910C94CC314A -:101D500080E00E94900E60E086E290E00E94CC312C +:101D3000F4316FEFC11161E184E290E00E94F4316F +:101D40006FEFC11165E085E290E0CF910C94F43122 +:101D500080E00E94900E60E086E290E00E94F43104 :101D60000E943B0E0E942B0E81E00C94900ECF93AC :101D7000C091A902C2FB992790F9981781F080FBC6 :101D8000C2F9C093A9026091A80284E090E00E9489 -:101D9000CC316C2F82E290E0CF910C94CC31CF917A +:101D9000F4316C2F82E290E0CF910C94F431CF912A :101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 :101DB000DD1F28E1629FC00DD11D112430E6839FF5 -:101DC000C00DD11D1124CE0187960E94B831082F75 -:101DD00010E0102F0027CE0188960E94B83198019C +:101DC000C00DD11D1124CE0187960E94E031082F4D +:101DD00010E0102F0027CE0188960E94E031980174 :101DE000282BC901DF91CF911F910F910895462FA4 :101DF0008A3038F4743028F46C3018F4672F0C945F :101E0000D10E90E080E00895BF92CF92DF92EF92E2 @@ -489,16 +489,16 @@ :101E8000CF93DF93EC010E94040FBE010E94F70E76 :101E9000DF91CF910C941909FC01808191810E94FE :101EA000400F292F2F7092959F7092509E3078F49A -:101EB000E92FF0E0EA5BFD4C0C946D31803F19F0A6 +:101EB000E92FF0E0E259FD4C0C949531803F19F088 :101EC00020F4883E20F481E00895843FE1F380E02F :101ED0000895883EC0F3813FD1F7F5CF822F8695D4 -:101EE00086958695089583E290E00E94B83181320C -:101EF00089F484E290E00E94B831813159F485E29E -:101F000090E00E94B83191E0853009F090E0892F8F +:101EE00086958695089583E290E00E94E0318132E4 +:101EF00089F484E290E00E94E031813159F485E276 +:101F000090E00E94E03191E0853009F090E0892F67 :101F10008170089580E0FCCFCF9384E090E00E9430 -:101F2000B831C82F82E290E00E94B831982F8C2FF0 +:101F2000E031C82F82E290E00E94E031982F8C2FA0 :101F3000CF91089560915F03669570E04BE050E0AB -:101F40008AE091E00E949E31892B19F481E0809310 +:101F40008AE091E00E94C631892B19F481E08093E8 :101F500098020E94880690939202809391020895BD :101F60004F925F926F927F928F929F92AF92BF92A9 :101F7000CF92DF92EF92FF920F931F93CF93DF9355 @@ -522,7 +522,7 @@ :1020900053E0452E8091990293010C2C01C0220F30 :1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 :1020B000E80DF91DE590F490E114F10409F477CFEF -:1020C00045E050E0B701CE0101960E9495310981AB +:1020C00045E050E0B701CE0101960E94BD31098183 :1020D0000F3F39F18A81800F9927991F8B32910523 :1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 :1020F000DC01AF51BD4F5D01049D800111240F51E2 @@ -546,11 +546,11 @@ :10221000CECF4423B9F340E0F7CF8F929F92AF9295 :10222000BF92CF92DF92EF92FF920F931F93CF93C3 :10223000DF93EC014C81042F10E09801D8010E943B -:1022400035329B01AC010E9400324B015C01E0E29F +:102240005D329B01AC010E9428324B015C01E0E24F :10225000F0E0E01BF10BA5E5B0E0AC019B010E94B2 -:1022600000326B017C019F01DF010E947A319B01EA -:10227000AC010E940B329B01AC01280D391D4A1D97 -:102280005B1DC701B6010E941332F22E822F90E02F +:1022600028326B017C019F01DF010E94A2319B019A +:10227000AC010E9433329B01AC01280D391D4A1D6F +:102280005B1DC701B6010E943B32F22E822F90E007 :1022900039E23F1560F143E0249F90011124359508 :1022A0002795122F109500E085E5E82EEF18809114 :1022B0001C01081758F10E94B00F9C8181E09923FE @@ -570,7 +570,7 @@ :102390004150550B841795071CF02195209315018A :1023A000DF91CF911F910F910895118210821282B7 :1023B0008F5F3396D0CF0C2F10E070E0C8010E94E1 -:1023C000593120911A01820F482F50E020919B0231 +:1023C000813120911A01820F482F50E020919B0209 :1023D000022E000C330B02171307BCF020911601DC :1023E000022E000C330B201731077CF08D9F9001DB :1023F00011242F513D4F4091620360916103809100 @@ -582,17 +582,17 @@ :10245000815080939A02DF91CF911F910895E0916E :102460001A014C2F50E09A012E0F311DF901EE0F89 :10247000FF1FE20FF31FEF51FD4F118210821282F6 -:1024800080919A028B32ACF0612F0E943731892FF4 +:1024800080919A028B32ACF0612F0E945F31892FCC :10249000082E000C990B4817590749F49F014091E9 :1024A000620360916103809160030E94E806CF5F40 :1024B000C1CF87FFEDCF890FEBCF90E00196609100 -:1024C0001C0170E00E945931C4CFEF92FF921F931C +:1024C0001C0170E00E948131C4CFEF92FF921F93F4 :1024D000CF93DF93EC0110E0EE24EA94F12C6091AD :1024E0001C01161770F00E94B00F9A818C8190FF2A :1024F00027C08F5F8C83DF91CF911F91FF90EF906A :10250000089520911A01422F410F5527551FCA01E6 :102510009A01220F331F280F391F2F513D4F70E0B2 -:10252000C7010E945931962F8C81409162036091BE +:10252000C7010E948131962F8C8140916203609196 :102530006103199F800D11240E94E8061F5FCFCF11 :102540008150D8CF90915F0390FF14C090911A01F1 :1025500020911B0133E0939FF0011124EF51FD4FB7 @@ -604,7 +604,7 @@ :1025B00040E0662361F040E0623011F440919C02FB :1025C00080E060E004C060919C0240E080E00E94F6 :1025D000A212F801848190E0019663E070E00E940D -:1025E000593184830F900F900F90DF91CF911F91FD +:1025E000813184830F900F900F90DF91CF911F91D5 :1025F0000F910895CF93DF9300D00F92CDB7DEB740 :1026000090915F0390FF0AC09E012F5F3F4F0E9491 :10261000E8064B8169818A810E94A2120F900F9077 @@ -615,7 +615,7 @@ :102660000E94FA128C818F5F8C83DF91CF91089545 :10267000CF92DF92EF92FF926B017C010E94D20613 :10268000B701A60188E090E0FF90EF90DF90CF9037 -:102690000C94DE31AF92BF92CF92DF92EF92FF9215 +:102690000C940632AF92BF92CF92DF92EF92FF92EC :1026A0000F931F93CF93DF9300D00F92CDB7DEB778 :1026B000182FF62E042FE22E90915F0390FF29C071 :1026C000E92FE695AE2FB0E0A657BE4F8C918093D0 @@ -630,7 +630,7 @@ :10275000D82EE695F0E0E853FC4FA590B490C12C3C :10276000BB2460911C01C61618F00E94B00FBFCFA9 :102770002C2D30E0A29EC001A39E900DB29E900D24 -:10278000112470E00E944531812FD11013C0860FB3 +:10278000112470E00E946D31812FD11013C0860F8B :1027900040911A01420F532F511D9A01220F331FEE :1027A000240F351F2F513D4F402F6F2D0E94E806FB :1027B000C394D7CF861BECCFEFE5F3E0438128E04D @@ -649,7 +649,7 @@ :1028800090915F0390FF36C09170811129C09260D2 :1028900090935F03662351F060915F037091600332 :1028A00080916103909162030E94381360915F03ED -:1028B000669570E04BE050E08AE091E00E949E3126 +:1028B000669570E04BE050E08AE091E00E94C631FE :1028C000892BA9F01092980281E08093940220E075 :1028D0004091620360916103809160030C944A13FC :1028E000853210F09864D4CF880F982BD1CF0E94F6 @@ -696,20 +696,20 @@ :102B700020F0961710F40C94A81561E00C94401402 :102B8000EFE5F3E083E0808311828FEF828384EBB3 :102B90008383148260817181828193810C943813C4 -:102BA00069EE7EEF90E080E00E94EA3160E082E032 -:102BB00090E00E94CC3160E083E090E00E94CC3154 +:102BA00069EE7EEF90E080E00E94123260E082E009 +:102BB00090E00E94F43160E083E090E00E94F43104 :102BC000109237021092360260E084E090E00E949A -:102BD000CC3160E082E290E00E94CC3160E085E0A0 -:102BE00090E00E94CC3160E086E090E00E94CC3121 -:102BF0006FEF87E090E00E94CC3140E050E0BA01F6 -:102C000088E090E00E94DE3160E08DE090E00E947C -:102C1000CC3140E050E0BA0188E190E00E94DE3122 -:102C200060E087E190E00E94CC3140E050E0BA01E2 -:102C30008CE190E00E94DE3170E060E080E290E0A4 -:102C40000E94EA3140E050E0BA0188E190E00E9441 -:102C5000DE3180E00E94900E0E94A80E40E050E01D -:102C6000BA018FE090E00E94DE3140E050E0BA010E -:102C700083E190E00C94DE316F927F928F929F926D +:102BD000F43160E082E290E00E94F43160E085E050 +:102BE00090E00E94F43160E086E090E00E94F431D1 +:102BF0006FEF87E090E00E94F43140E050E0BA01CE +:102C000088E090E00E94063260E08DE090E00E9453 +:102C1000F43140E050E0BA0188E190E00E940632D1 +:102C200060E087E190E00E94F43140E050E0BA01BA +:102C30008CE190E00E94063270E060E080E290E07B +:102C40000E94123240E050E0BA0188E190E00E9418 +:102C5000063280E00E94900E0E94A80E40E050E0F4 +:102C6000BA018FE090E00E94063240E050E0BA01E5 +:102C700083E190E00C9406326F927F928F929F9244 :102C8000AF92BF92CF92DF92EF92FF920F931F937A :102C9000CF93DF93CDB7DEB728970FB6F894DEBF9A :102CA0000FBECDBF8E010F5F1F4F88E0F80111925C @@ -726,7 +726,7 @@ :102D50003105F9F6F701319780818F3F11F00E941C :102D6000BF0850EA5A95F1F7F601B182A082F2E06D :102D7000CF0ED11C6E147F0409F0A8CF48E050E0BC -:102D8000B8018AE492E00E94AB31FF24F3940097EB +:102D8000B8018AE492E00E94D331FF24F3940097C3 :102D900009F4F12C892B09F43FC088E0F801AAE47A :102DA000B2E001900D928A95E1F781E080933A02BA :102DB0000E948806909339028093380280913802ED @@ -738,892 +738,897 @@ :102E100007C090E080E097CF80913A028111CECF39 :102E200080914902882371F0809147029091480275 :102E30000E947906893E934028F082EE0E94E10BC1 -:102E400010924902109146028091450211115BC017 -:102E5000882399F110921A0184E080931B018093DA -:102E60001C018FE00E947B141092450281E0809348 -:102E7000460280913F02882351F0809140028111E7 -:102E800006C080913B0290913C020E9479068F2DF2 -:102E900028960FB6F894DEBF0FBECDBFDF91CF915D -:102EA0001F910F91FF90EF90DF90CF90BF90AF9068 -:102EB0009F908F907F906F90089580914402882317 -:102EC00079F086E180931A018AE180931B0184E006 -:102ED00080931C018FE00E947B1410924402C6CFA5 -:102EE000809143028823A9F08AE180931A018EE140 -:102EF00080931B0184E080931C018FE00E947B146F -:102F000010924302B3CF81112BC0809144028111F2 -:102F100027C080914302811123C08091410290918A -:102F200042020E947906853F9140D0F0112379F04A -:102F300010921A018AE280931B0180931C0181E2A6 -:102F40000E947B148091400281110E94AD1010926A -:102F5000450210924402109243021092460289CF19 -:102F600010924502109244021092430282CF90E0E8 -:102F700080E00E94C631893E9E4F11F40C94730F7D -:102F800080E008951092340280911D01E2ECF1E09E -:102F9000882359F08091A80287FF07C08EE1DF01E6 -:102FA0001D928A95E9F70C94A90B86E0F8CF1F9340 -:102FB000CF93DF93CDB7DEB7AA970FB6F894DEBFF5 -:102FC0000FBECDBF84ED92E02091F100DC012D9386 -:102FD000CD01B2E08C3D9B07B9F78091D5028330DB -:102FE00009F471C0B8F4813009F448C0823009F4A2 -:102FF000B2C08091E80083FF3AC18091D4029091E1 -:10300000D5029A3008F033C1E92FF0E0EC5AFD4CBC -:103010000C946D318A3009F48DC08B3009F470C086 -:10302000893039F78091D402813219F78091D80222 -:103030009091D902009711F00297D9F68091E8009B -:10304000877F8093E8008091E80082FF37C08091FD -:10305000F2009091F300029729F48091F1008B7FA8 -:10306000813021F48091F1008093AF028091E800DB -:103070008B778093E8000E946605BBCF8091D402D5 -:10308000813A09F0B6CF8091E800877F8093E8000D -:103090008091D8029091D902892B61F460E280EB93 -:1030A00092E070E00E9419068091E8008B7780938F -:1030B000E8009FCF60E090E080E0F3CF8091D20203 -:1030C0008111C1CF96CF8091D402813A09F091CF7E -:1030D0008091D8029091D902892B09F08ACF8091F2 -:1030E000E800877F8093E8008091E80080FFFCCFB4 -:1030F00080911D018093F1008091E8008E77B9CF17 -:103100008091D402813209F074CF8091D8029091DD -:10311000D902892B09F06DCF8091E800877F8093D9 -:10312000E8000E9466058091D60280931D010E94EE -:10313000C2175FCF8091D402813209F05ACF8091BB -:10314000E800877F8093E8000E9466058091D7029F -:103150008093AE024ECF8091D402813A09F049CFDC -:103160008091E800877F8093E8008091E80080FFED -:10317000FCCF8091AE02BECF803899F0823809F042 -:1031800076C08091D8028F70873008F070C080932D -:10319000E9008091EB0085FB882780F91092E90017 -:1031A00006C08091D0029091D102911182609091DD -:1031B000E800977F9093E8008093F1001092F1006F -:1031C0008091E8008E77B5C1882309F4A2C18230CE -:1031D00009F04DC08091D6028111A6C18091D8021C -:1031E0008F702FEF280F263008F041C08093E90040 -:1031F0002091EB0020FF98C1933031F48091EB00D7 -:1032000080628093EB0090C19091EB00906190936D -:10321000EB0021E030E001C0220F8A95EAF720930D -:10322000EA001092EA008091EB008860EACF8111F9 -:103230001EC01091D6021F778091E3008078812B09 -:103240008093E3008091E800877F8093E8000E94EC -:1032500066058091E80080FFFCCF8091E3008068E4 -:103260008093E30082E0111183E08093D202809189 -:10327000E80083FF0AC08091E800877F8093E80020 -:103280008091EB0080628093EB00AA960FB6F894D1 -:10329000DEBF0FBECDBFDF91CF911F910895805843 -:1032A000823028F72091D6023091D7022C3DE3E0FE -:1032B0003E07A1F583E08A838AE289834FB7F894B9 -:1032C000DE01139620E03EE051E2E32FF0E0509360 -:1032D0005700E49120FF03C0E295EF703F5FEF706D -:1032E0008E2F90E0EA30C0F0C7968D939D932F5FAC -:1032F000243159F74FBF8091E800877F8093E80021 -:103300006AE270E0CE0101960E9419068091E80001 -:103310008B778093E800ABCFC096E7CF8091D8023F -:103320009091D902432F55274330510509F44AC0E3 -:1033300078F54130510509F47AC08BE590E0E6EB71 -:10334000F8E04230510509F092CF2091E800277F44 -:103350002093E8002091DA023091DB028217930774 -:1033600008F49C0140E02115310509F065C04111C8 -:1033700063C08091E80082FDC9CF8091D20288238A -:1033800029F2853019F28091E80083FFF2CFBECF99 -:103390004132510509F43CC04232510509F067CF72 -:1033A0008330910508F063CFFC01EE0FFF1FEE5450 -:1033B000FE4F0190F081E02D81559E4FDC018C91F4 -:1033C00090E01AC0332721303105D1F021153105A5 -:1033D00061F02230310509F04ACFE3E2F9E0E491EF -:1033E0008E2F90E0E3E2F9E007C0E1E4F9E0E49138 -:1033F0008E2F90E0E1E4F9E0009709F438CFA5CFF3 -:10340000EDE2F9E0E4918E2F90E0EDE2F9E0F4CF07 -:103410008330910508F02BCF880F991FFC01E854E9 -:10342000FE4F0190F081E02D89E090E08ECF82E1A7 -:1034300090E0E1E1F9E089CF8091D202882309F49C -:1034400065CF853009F462CF8091E80083FD5ECFBF -:103450008091E80082FD8DCF8091E80080FF83CFCE -:103460008091F2009091F3002115310519F0883018 -:10347000910550F041E0089709F040E08091E800A4 -:103480008E778093E8006FCF44914093F10031969E -:10349000215031090196E8CF803809F0E8CE8091BB -:1034A000E800877F8093E8008091D3028093F10049 -:1034B00087CE8111DCCE1091D602123008F0D7CE23 -:1034C0008091E800877F8093E8001093D3020E94E8 -:1034D0006605112311F084E005C08091E30087FDAB -:1034E000FACF81E08093D20242E061EC81E00E9459 -:1034F000850542E261EC84E00E94850542E261ECD0 -:1035000082E00E94850542E260EC83E00E9485052E -:10351000AECE8091D602813009F0A9CE81E0933001 -:1035200009F080E08093D1021092E9008091E800D8 -:10353000877F8093E8000E94660599CE3F924F9264 -:103540005F926F927F928F929F92AF92BF92CF9233 -:10355000DF92EF92FF920F931F93CF93DF9300D0F0 -:1035600000D00F92CDB7DEB78C01FC01838194812E -:10357000892B31F08081918189238F3F09F054C6D6 -:103580000F900F900F900F900F90DF91CF911F91A0 -:103590000F91FF90EF90DF90CF90BF90AF909F90F2 -:1035A0008F907F906F905F904F903F9008950E9412 -:1035B000040FF82E682F89819A810E947D0B698102 -:1035C0007A818F2D0E94F70E7C01F8018281882379 -:1035D00009F41CC6970122513F452031310508F0FE -:1035E000D4C58FEF97E00E94B831FEEEEF0E57EE94 -:1035F000852E53E0952E882381F1809131028770CA -:1036000009F4BECFF8018281882309F4B9CF82E0A2 -:103610000F900F900F900F900F90DF91CF911F910F -:103620000F91FF90EF90DF90CF90BF90AF909F9061 -:103630008F907F906F905F904F903F900C94741597 -:10364000811428E09206C9F2C4010E94B8318111A8 -:1036500001C0EA943FEF831A930AE110F1CF1C8274 -:103660001B82442443944AE0342E74014FEFE41A41 -:10367000F40AC4010E94B83189831A82882309F4AC -:10368000BCCF9FEF980F933000F58A83498252E0B8 -:10369000850E911CC7010E94B8318B83882309F4E1 -:1036A000ACCFCE0101967C01F70120812223E9F203 -:1036B000213009F049C091818281913041F4F2E0DA -:1036C000EF0EF11C0E94AA0D09C04701EACF92300B -:1036D00049F422E0E20EF11C0E94F50C3FEFE31AE0 -:1036E000F30AE2CF933031F432E0E30EF11C0E9492 -:1036F000E10BF4CF943021F04FEFE41AF40AEECF4F -:1037000052E0E50EF11C30E020E0B7016F5F7F4F23 -:10371000F70141818053990B8A30910550F0215077 -:103720003109E0F28FE99FE00197F1F700C0000056 -:10373000F6CF329EF001339EF00D11249C012E0F26 -:103740003F1F842F7B01E1CFE22FF0E0EA5DFD4FC8 -:103750005490822F86958695869590E0FC01EA5ECE -:10376000FD4F64902770712C022E02C075946794EF -:103770000A94E2F7E1E06E227724FC01EA5FFD4F54 -:10378000A490B12C022E02C0B594A7940A94E2F73B -:10379000F1E0AF22BB24FC01EA50FE4FC490D12CD3 -:1037A00002C0D594C7942A95E2F721E0C222DD2415 -:1037B0006114710419F081EE0E94F50CA114B1049A -:1037C00019F086EE0E94F50C852D0E94AA0DAB28FB -:1037D00019F086EE0E94E10B672819F081EE0E9435 -:1037E000E10BCD2809F47ACF8CE26CCF81E00E9406 -:1037F00090150E94541501CF81E00E946315F9CF06 -:1038000082E0F5CFF3E8EF16FFE5FF0609F4CEC03E -:1038100024E8E2162FE5F20609F0D7C4882309F45C -:10382000ECCEF0903F02EE24E394FE24F0923F02AF -:103830000E948806B0E0A0E080933B0290933C0297 -:10384000A0933D02B0933E028091400210921A0173 -:10385000882309F4B9C08AE280931B0180931C017C -:1038600081E20E947B140E94AD10E0923F02109210 -:103870004002C3CE882309F481C08091490281119E -:1038800006C081E08093490282EE0E94F50C0E94FE -:10389000880690934802809347028BE20E94F50CC1 -:1038A000F8018281882309F4D0C41092E002F2E08A -:1038B000EF16FCE5FF0608F4ACC126E1E2162CE5A4 -:1038C000F20630F0C7018A5F9C45099708F0A1C154 -:1038D0000E948C0F9093A9028093A80230E1E31616 -:1038E0003CE5F30609F464C108F0E6C058E0E516CB -:1038F0005CE5F50609F44EC108F0AFC094E0E916A6 -:103900009CE5F90609F43EC108F091C0F2E0EF161B -:10391000FCE5FF0609F430C18091A802826023E033 -:10392000E2162CE5F20609F42AC16091A802F09093 -:10393000A90284E090E00E94CC316F2D82E290E0F9 -:103940000E94CC310E94C21758CE8823A1F08091EA -:103950004902811106C081E08093490282EE0E94F3 -:10396000F50C0E948806909348028093470281EEEE -:103970000E94F50C92CF81EE0E94E10B8BE20E9437 -:10398000E10B8ECF882309F48BCF81EE0E94F50CDA -:1039900083EE0E94F50C8FE40E94F50C8FE40E94E8 -:1039A000E10B83EE0E94E10B81EEE9CF882309F45D -:1039B00077CF81EE0E94F50C83EE0E94F50C80E536 -:1039C0000E94F50C80E5EBCF8AE280931B01809387 -:1039D0001C0181E2FF2029F00E947B140E94AD109F -:1039E00046CF0E947B1443CFE5EFEE16ECE5FE06D2 -:1039F000B9F090F026EFE2162CE5F20609F050CF70 -:103A000027E245EE66EEFEC327E245EE65EEFAC319 -:103A100026E241EE60EEF6C327E245EE64EEF2C325 -:103A200026E241EE62EEEEC328E241E0EFCF809164 -:103A3000A802806136E0E3163CE5F30609F49FC076 -:103A40008091A802886047E0E4164CE5F40608F48B -:103A500096C08091A802806292C08091A8028D7F5A -:103A60005CE0E5165CE5F50609F489C078F4809120 -:103A7000A8028C609AE0E9169CE5F90609F47FC07B -:103A800008F48CC08091A8028E7F79C08091A80232 -:103A9000877FFEE0EF16FCE5FF0609F470C0809119 -:103AA000A8028B7F2FE0E2162CE5F20608F467C02F -:103AB0008091A8028F7E63C03BEFE3163CE5F306DE -:103AC00009F464C068F553E1E5165CE5F50609F410 -:103AD00077C090F491E1E9169CE5F90609F46CC011 -:103AE000E2E1EE16ECE5FE0609F01FCF0E94C217D8 -:103AF0008091A8028F7743C0F5E1EF16FCE5FF0641 -:103B000009F466C008F47AC08091A90281603AEF96 -:103B1000E3163CE5F30609F008CF8093A90205CF30 -:103B20004FEFE4164CE5F40609F44EC088F48DEF2F -:103B3000E8168CE5F806C1F18091A9028E7F9EEF10 -:103B4000E9169CE5F90648F38091A9028360E5CF68 -:103B5000E1E0EE16EDE5FE0609F459C008F444C0B4 -:103B600060E022E0E2162DE5F20609F0DECE8EE0FE -:103B700090E00E94CC31D9CE8091A80281608093E0 -:103B8000A802D3CE8091A8028460F9CF8091A902C7 -:103B90008260C3CF8091A8028064F1CF0E94C217D7 -:103BA0008091A8028068EBCF8091A9028D7FB5CF6C -:103BB0008091A8028F7DE3CF8091A8028F7BDFCF19 -:103BC0008091A802837FDBCF8091A9028C7FA5CF53 -:103BD0008091A80282FB992790F921E0922790FB1F -:103BE00082F990FB83F9CBCF8091A902982F909511 -:103BF00091708E7F892B90FB81F98FCF0E94C21725 -:103C00009091A802892F97FB87F98058B8CF61E07F -:103C1000AECF8091340236E1E3163CE5F30609F0BD -:103C200021C38A7A91E009F490E09093E001811138 -:103C300006C089E20E94170B0E94A70ADECC85E32A -:103C4000F9CF85E30CC380915F0380FF1BC08E7F9B -:103C500080935F0360915F037091600380916103C3 -:103C6000909162030E943813109298024FEF50E730 -:103C700082E0415050408040E1F700C000000E94C7 -:103C8000B00FBBCC816080935F0361E086950E949A -:103C90004014B3CC4FE955E168EA75E10E94CC06C7 -:103CA000ACCC48EA55E16FE975E1F8CF45E154E164 -:103CB0006CE074E1F3CF44EF53E160E074E1EECFE8 -:103CC0004CED53E168EE73E1E9CF48EE53E16CED62 -:103CD00073E1E4CF4FE254E16EE174E1DFCF61E0E4 -:103CE00081E0D5CF65E082E00E94B21586CC68E025 -:103CF00086E0FACF64E18FE0F7CF67E185E1F4CFAA -:103D000062E289E1F1CF61E083E2C1CF3BE5E316F6 -:103D10003DE5F30611F14CE5E4164DE5F40609F036 -:103D2000D3C28091A90282FB882780F991E089277C -:103D30000E94B70EC9C20E94C2175FEF84E39CE0E5 -:103D4000515080409040E1F700C000000E94D10C2B -:103D50000E94D01552CC81E0EBCF80E0E9CFC701C3 -:103D60000E94550BD82EBFC22F2D2F70C22E8F2D23 -:103D7000807F19F0C29490EFC922DD20C9F0CC20D9 -:103D800069F080E28E0D883010F081100BC08091B8 -:103D90003402C82AC09234020E94A70A8E2D0E94C3 -:103DA000F50C19C080913302C82AC0923302F4CFB7 -:103DB0008E2D0E94E10BCC2071F0C09480E28E0D1C -:103DC000883010F081103EC080913402C822C09229 -:103DD00034020E94A70AE92DE850FF0B349720F423 -:103DE0000E94C0060E94A114AA2009F4C9CB8091A8 -:103DF000310280FDC5CBF8011282859585958595A8 -:103E00000E949015C8010E949E1A809131028595EA -:103E1000859585950F900F900F900F900F90DF91E3 -:103E2000CF911F910F91FF90EF90DF90CF90BF90B7 -:103E3000AF909F908F907F906F905F904F903F904A -:103E40000C94631580913302C822C0923302C1CF13 -:103E50003F2D3F70B32E8F2D807F803219F0B294AA -:103E600080EFB822882071F041E0841681F1DD20D6 -:103E7000D9F1CC2091F1F801858180FF8FCF8F702F -:103E800085832BC0DD20B1F0909135028B2D892BDD -:103E9000C11003C00E94D70B9ECF51E0C512FACFCC -:103EA0002091A90222FD97CF981709F494CF80930F -:103EB000350291CFC11006C00E94A10A8B2D0E942D -:103EC000CC0B89CF81E0C81609F485CFF5CFDD2072 -:103ED00031F095E09C1508F47ECF8B2DDBCFE4E02C -:103EE000EC1508F478CFEACFCC2041F3F9E38F1238 -:103EF00009C02FEF37EE43E0215030404040E1F75A -:103F000000C000008E2D0E94E10B65CF8F2D86959D -:103F10008695837061F0813009F05DCFC7019370A1 -:103F2000D11002C090E080E00E94940654CFC701F7 -:103F30009370D11002C090E080E00E94AA064BCF9F -:103F40008E2DDD2029F00E9463080E94810743CF57 -:103F50000E94A807FACF8F2D837009F040C0D110BE -:103F60003ACF4E2D429546954770440F440F8E2D03 -:103F70008F7090E0042E02C0880F991F0A94E2F718 -:103F800030E020E0E4FE09C02FE030E002C0220F64 -:103F9000331F4A95E2F7209530954F2D469546956B -:103FA0004370423099F078F4609136027091370294 -:103FB000413039F0822B932B862397230E94C60B26 -:103FC0000ACF862B972B822B932BF8CF822B932B08 -:103FD000209136023091370282279327EFCF8695C2 -:103FE000DD2011F08F2D8170882309F4F4CE4E2D41 -:103FF000429546954770440F440F8E2D8F7090E088 -:10400000042E02C0880F991F0A94E2F730E020E0E6 -:10401000E4FE09C02FE030E002C0220F331F4A95B2 -:10402000E2F7209530954F2D4695469543704230E6 -:1040300099F078F46091DC027091DD02413039F042 -:10404000822B932B862397230E944C15C4CE862B5C -:10405000972B822B932BF8CF822B932B2091DC0272 -:104060003091DD0282279327EFCF5F2D5F70F52E11 -:10407000DD2029F0852F0E9490158E2D0BCF8E2DDF -:104080000E94CC0B8F2D0E946315A5CE8E2D92EF32 -:10409000891609F449C0981570F0E0EF8E1639F1D1 -:1040A000F1EF8F16C9F1DD2009F45FC0C11076CEA3 -:1040B0008F2D8F7136C023EF8216D9F134EF831222 -:1040C000F2CFDD2009F446C0FF2DFF71FF2E8F2FA8 -:1040D0000E9490158091A90282FD07C028E0F29EFF -:1040E000C00111248360809331028F2D1AC0DD201E -:1040F00071F044E04C1508F46ECE2F2D2F7181E045 -:1041000090E002C0880F991F2A95E2F7A7CF55E0EB -:104110005C1508F460CEF1CF8F2D8F71DD2009F48E -:10412000B2CF0E94901557CE8F2D8F71DD20C9F32D -:10413000AACF90E080E0DD2009F486CF9F2D9F710B -:1041400021E030E0F90102C0EE0FFF1F9A95E2F77F -:10415000CF017ACF81E00E94741531E03C1508F060 -:104160003ACE82E00E94741536CECC2059F08933C5 -:1041700009F0C8CE4FEF57EE83E0415050408040E9 -:10418000E1F7BECE8F2D8F717ECFF0E1EF16FFE508 -:10419000FF0609F42BCB21E1E2162FE5F20609F424 -:1041A0002FCB42E8E4164FE5F40609F4EBCB08F018 -:1041B00029CB90E8E9169FE5F90609F45BCBE1E825 -:1041C000EE16EFE5FE0609F4C0CB33EFE3163CE54F -:1041D000F30609F41DCC08F007CC58EDE5165CE5B4 -:1041E000F50609F411CC89EDE8168CE5F80609F41A -:1041F0001BCC97EDE9169CE5F90609F051CB26E2B8 -:1042000041EE61EEC8010E94C70DF7C930E1E31627 -:104210003FE5F30609F4F0CA41E1E4164FE5F40680 -:1042200009F0BFCF82E0E9CA85E0DE011196019076 -:104230000D928A95E1F7F801228189819A812111F5 -:10424000B6C90E94550BF82EBAC9F6E1EF16FCE587 -:10425000FF06D1F58091E0018111F3CC89E20E9443 -:10426000EC0AEACC82722CECE2162CE5F20609F498 -:1042700031CD08F0A7C046ECE4164CE5F40609F48D -:1042800015CD08F076C093ECE9169CE5F90609F423 -:1042900001CD08F05DC0F2ECEF16FCE5FF0609F475 -:1042A000D2CC9AE5E9169DE5F90609F454CD08F05B -:1042B0002DCDE114FCE5FF0609F43DCD2EEDE2160F -:1042C0002CE5F20609F444CDF8018281E080F1800A -:1042D000882309F444CDC7010E94040FD82E682F0B -:1042E000C7010E947D0BB7018D2D0E94F70E0E9421 -:1042F00019097C01882EF801D280C580C2943FE064 -:10430000C322809131028770A1F0AD2CDD2091F0A5 -:104310008F2D807F803421F080E28E0D883048F030 -:1043200082E00E947415809131028770AA24A394C0 -:104330008111A12C9F2C92942FE09222FBE0F91581 -:1043400008F449CDE92DF0E0E25AFD4C0C946D31B2 -:1043500024ECE2162CE5F20609F4A3CC4CE054E17F -:1043600065E174E135ECE3163CE5F30609F496CC1F -:1043700098CF49ECE4164CE5F40609F4A1CC88F496 -:1043800097ECE9169CE5F90609F495CC40E054E178 -:1043900064EF73E1E8ECEE16ECE5FE0609F47ECC82 -:1043A00080CFFAECEF16FCE5FF0609F48ECC4EE167 -:1043B00054E16FE274E12BECE2162CE5F20609F40D -:1043C0006DCC6FCF31EDE3163CE5F30609F492CCEA -:1043D000B8F45EECE5165CE5F50609F483CC08F468 -:1043E0007ECC9FECE9169CE5F90609F480CC6EE0E2 -:1043F00089E0E0EDEE16ECE5FE0609F475CC51CF50 -:10440000F4EDEF16FCE5FF0609F47ACC78F432ED12 -:10441000E3163CE5F30609F470CC61E088E143ED76 -:10442000E4164CE5F40609F432CC3BCF55EDE51625 -:104430005CE5F50609F467CC8DE5E816F80609F4A5 -:10444000DCC82FCF1F93CF93DF938091FE01807F35 -:10445000A9F48091FB01882389F080913002D091EA -:10446000FF016091F9017091FA01A091FC01B091F6 -:10447000FD01C62FC72316E0D81304C0DF91CF91EA -:104480001F91089590E0109711F0CF3F19F4019615 -:104490008770F2CF189F9001199F300D1124F901F8 -:1044A000E050FE4F41814713F2CF40814613EFCFDA -:1044B00042814111ECCF438154814A1B5B0B483C44 -:1044C000510528F78091FE018F7080618093FE0175 -:1044D000F901EB5FFD4F80818F708061808389EFF0 -:1044E00091E00E949E1ADF91CF911F910C944B0B8B -:1044F000AF92BF92CF92DF92EF92FF920F931F93F2 -:10450000CF93DF93CDB7DEB761970FB6F894DEBFD8 -:104510000FBECDBF8C0185E0F801DE011D96019034 -:104520000D928A95E1F7F801E28089EFA82E81E0EB -:10453000B82E6091FC017091FD016115710509F4BF -:1045400032C19091F9014091FA01892F84238F3F64 -:1045500009F429C120813181C380D480F090FB010E -:10456000F601E61BF70BFF2009F4E8C08091FE017D -:10457000582F507FE83CF10508F0ABC0511177C0CF -:10458000FE2C431321C092131FC0E1101DC08F7079 -:1045900080618093FE01C5010E949E1A8091FE01F8 -:1045A000F80185838F2D61960FB6F894DEBF0FBE9C -:1045B000CDBFDF91CF911F910F91FF90EF90DF90D2 -:1045C000CF90BF90AF900895CD2829F0822F8323FC -:1045D0008F3F09F003C180E0F82FF170DF2E80FFDC -:1045E0003CC0809130024091FF0156E0841315C019 -:1045F0002D873E878D859E850E94400F292F22950D -:104600002F702230F0F0243018F59F70F1F0F8018F -:104610009581907FD1F4D12C1EC090E0589FF0017D -:10462000599FF00D1124E050FE4F6181361306C0F2 -:104630006081261303C06281E6120FC00196877065 -:10464000D5CF9F7011F0882331F3805E883018F346 -:10465000C8010E949E1AFD2CA5CFEE2009F4A2CF1E -:104660008091FE0181608093FE01F12C9BCF43136A -:1046700006C0921304C0F801EE2009F479C0C80105 -:104680000E944C0F882309F1EE20F9F08091FE0181 -:10469000803270F02091F9013091FA0138872F8330 -:1046A0001986DB86CA868C87CE0107960E949E1AE1 -:1046B00086E0F801A9EFB1E001900D928A95E1F74B -:1046C0000E942222FF24F3946DCFC8010E949E1AFB -:1046D000F9CF51110AC089EF91E00E949E1A86E03D -:1046E000F50111928A95E9F7C0CF43130FC09213D9 -:1046F0000DC0E1100BC0F8018583C8010E949E1A0D -:1047000086E0F50111928A95E9F74CCFC8010E9425 -:104710004C0F8823D1F2EE20C1F28091FE0180324D -:1047200038F22091F9013091FA013A8329831B82F2 -:10473000DD82CC828E83CE010196B8CFE83CF105B4 -:10474000F8F6FE2CEE2009F243131FC092131DC091 -:104750008091FE0180FD10C0982F907F69F0F801D4 -:104760008583903F31F0982F907F905F8F70892BD9 -:104770008583C8010E949E1A86E0F801A9EFB1E086 -:1047800001900D928A95E1F70DCFC8010E944C0F60 -:1047900081118ECF8091FE0181608093FE01C8015E -:1047A0000E949E1AFFCEEE2009F48FCFC8010E940E -:1047B0004C0FF82E882309F488CF86E0F801A9EF82 -:1047C000B1E001900D928A95E1F78091F901909105 -:1047D000FA010E94400F0E942222E4CE81E08E2541 -:1047E000FBCE1F93CF93DF93CDB7DEB767970FB69E -:1047F000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B79 -:104800008F8B6111109233021A8A198A85E0FE019A -:104810007396DE011D9601900D928A95E1F786E070 -:10482000FE013D96DE01179601900D928A95E1F703 -:10483000CE0107960E947822882389F016E08091A5 -:1048400030029091FF01891349C067960FB6F89422 -:10485000DEBF0FBECDBFDF91CF911F91089586E0DF -:10486000FE013796DE01119601900D928A95E1F7CF -:104870008A859B85892B11F38F81988589238F3FAA -:10488000E9F22091FF0130E0C90101968770992774 -:10489000409130024817190671F40E94C217109215 -:1048A000FF011092300286E0E9EFF1E0DF011D9296 -:1048B0008A95E9F7C3CF96E0929FD001939FB00D00 -:1048C0001124A050BE4FFE01319601900D929A9591 -:1048D000E1F78093FF010E944B0BB0CF819FC00195 -:1048E000112480509E4F0E947822882309F4ADCF76 -:1048F0008091300290E00196877099278093300272 -:104900009ECFFF920F931F93CF93DF93CDB7DEB768 -:10491000C45BD1090FB6F894DEBF0FBECDBF182F10 -:104920008111D7C0662309F475C0C055DF4F1882C6 -:10493000C05BD040CF54DF4F1882C15BD04011E044 -:10494000CE54DF4F1883C25BD0400E94880681603E -:10495000782FCD54DF4F99838883C35BD040C055F7 -:10496000DF4F4881C05BD040CF54DF4F5881C15BDF -:10497000D040CE54DF4F6881C25BD040CC54DF4F73 -:104980008881C45BD0400E94F123C555DF4F188257 -:10499000CB5AD040C455DF4F1882CC5AD040C355B3 -:1049A000DF4F1882CD5AD0400E9488068160782F50 -:1049B000C255DF4F99838883CE5AD040C555DF4F0B -:1049C0004881CB5AD040C455DF4F5881CC5AD04093 -:1049D000C355DF4F6881CD5AD040C155DF4F888124 -:1049E000CF5AD0400E94F123109345020E948806BE -:1049F000909342028093410281E0CC54DF4F0FB686 -:104A0000F894DEBF0FBECDBFDF91CF911F910F9104 -:104A1000FF90089502E0CA55DF4F0883C65AD04080 -:104A2000C955DF4F1882C75AD04011E0C855DF4F33 -:104A30001883C85AD0400E9488068160782FC755D5 -:104A4000DF4F99838883C95AD040CA55DF4F4881C8 -:104A5000C65AD040C955DF4F5881C75AD040C855B3 -:104A6000DF4F6881C85AD040C655DF4F8881CA5A87 -:104A7000D0400E94F123CF55DF4F0883C15AD04068 -:104A8000CE55DF4F1882C25AD040CD55DF4F188225 -:104A9000C35AD0400E9488068160782FCC55DF4FE2 -:104AA00099838883C45AD040CF55DF4F4881C15A7B -:104AB000D040CE55DF4F5881C25AD040CD55DF4F40 -:104AC0006881C35AD040CB55DF4F8881C55AD0404A -:104AD00089CF813009F0C0C0662309F45FC0C45695 -:104AE000DF4F1882CC59D040C356DF4F8883CD5951 -:104AF000D040C256DF4F8883CE59D0400E948806EE -:104B00008160782FC156DF4F99838883CF59D04079 -:104B1000C456DF4F4881CC59D040C356DF4F58812F -:104B2000CD59D040C256DF4F6881CE59D040C056D3 -:104B3000DF4F8881C05AD0400E94F123C956DF4F11 -:104B40001882C759D040C856DF4F1883C859D04083 -:104B5000C756DF4F1882C959D0400E94880681602D -:104B6000782FC656DF4F99838883CA59D040C956DB -:104B7000DF4F4881C759D040C856DF4F5881C859C8 -:104B8000D040C756DF4F6881C959D040C556DF4F66 -:104B90008881CB59D0400E94F1232ECF02E0CE561F -:104BA000DF4F0883C259D040CD56DF4F8883C359A9 -:104BB000D040CC56DF4F8883C459D0400E9488062D -:104BC0008160782FCB56DF4F99838883C559D040B9 -:104BD000CE56DF4F4881C259D040CD56DF4F588165 -:104BE000C359D040CC56DF4F6881C459D040CA5613 -:104BF000DF4F8881C659D0400E94F123C357DF4F51 -:104C00000883CD58D040C257DF4F1883CE58D040CC -:104C1000C157DF4F1882CF58D0400E94880681606C -:104C2000782FC057DF4F99838883C059D040C3572E -:104C3000DF4F4881CD58D040C257DF4F5881CE5802 -:104C4000D040C157DF4F6881CF58D040CF56DF4F9B -:104C50008881C159D0409FCF823009F0ABC0662314 -:104C600009F45EC0C857DF4F1882C858D040C757F4 -:104C7000DF4F8883C958D04081E0C657DF4F888313 -:104C8000CA58D0400E9488068160782FC557DF4FF0 -:104C900099838883CB58D040C857DF4F4881C85884 -:104CA000D040C757DF4F5881C958D040C657DF4F53 -:104CB0006881CA58D040C457DF4F8881CC58D04053 -:104CC0000E94F123CD57DF4F1882C358D040CC57F4 -:104CD000DF4F1883C458D040CB57DF4F1882C558D8 -:104CE000D0400E9488068160782FCA57DF4F998391 -:104CF0008883C658D040CD57DF4F4881C358D04035 -:104D0000CC57DF4F5881C458D040CB57DF4F688114 -:104D1000C558D040C957DF4F8881C758D0403BCFD6 -:104D2000EF968FAFEF97C158DF4F8883CF57D040B2 -:104D300081E0C058DF4F8883C058D0400E94880669 -:104D40008160782FCF57DF4F99838883C158D04037 -:104D5000EF964FADEF97C158DF4F5881CF57D040F6 -:104D6000C058DF4F6881C058D040CE57DF4F888190 -:104D7000C258D0400E94F123EA961FAFEA97EB9603 -:104D80001FAFEB97EC961FAEEC970E9488068160F0 -:104D9000782FEE969FAF8EAFEE97EA964FADEA97DB -:104DA000EB965FADEB97EC966FADEC97EE968FAD13 -:104DB000EE97F1CE833009F081C0662309F43FC03D -:104DC00019E0E5961FAFE597E6961FAEE69781E0FE -:104DD000E7968FAFE7970E9488068160782FE99663 -:104DE0009FAF8EAFE997E5964FADE597E6965FAD3D -:104DF000E697E7966FADE797E9968FADE9970E9442 -:104E0000F123E0961FAFE097E1961FAEE197E2969F -:104E10001FAEE2970E9488068160782FE4969FAFCC -:104E20008EAFE497E0964FADE097E1965FADE197E6 -:104E3000E2966FADE297E4968FADE497ACCE1BE0BF -:104E4000AB961FAFAB97AC961FAEAC9781E0AD961B -:104E50008FAFAD970E9488068160782FAF969FAF85 -:104E60008EAFAF97AB964FADAB97AC965FADAC97AF -:104E7000AD966FADAD97AF968FADAF970E94F12312 -:104E8000A6961FAFA697A7961FAEA797A8961FAE88 -:104E9000A8970E9488068160782FAA969FAF8EAF50 -:104EA000AA97A6964FADA697A7965FADA797A89687 -:104EB0006FADA897AA968FADAA976DCE843009F0F2 -:104EC00081C0662309F43FC009E0A1960FAFA19706 -:104ED00011E0A2961FAFA297A3961FAFA3970E94BF -:104EE00088068160782FA5969FAF8EAFA597A19673 -:104EF0004FADA197A2965FADA297A3966FADA39772 -:104F0000A5968FADA5970E94F1236C960FAF6C9775 -:104F10006D961FAF6D976E961FAE6E970E948806B6 -:104F20008160782FA0969FAF8EAFA0976C964FAD03 -:104F30006C976D965FAD6D976E966FAD6E97A09600 -:104F40008FADA09728CE0BE067960FAF679711E063 -:104F500068961FAF689769961FAF69970E94880689 -:104F60008160782F6B969FAF8EAF6B9767964FAD32 -:104F7000679768965FAD689769966FAD69976B960E -:104F80008FAD6B970E94F12362960FAF6297639685 -:104F90001FAF639764961FAE64970E948806816076 -:104FA000782F66969FAF8EAF669762964FAD6297E9 -:104FB00063965FAD639764966FAD649766968FADA9 -:104FC0006697E9CD853009F07DC0662309F445C0B8 -:104FD00039E0F32E2D96FFAE2D9702E02E960FAFFF -:104FE0002E9711E02F961FAF2F970E9488068160A1 -:104FF000782F61969FAF8EAF61972D964FAD2D970D -:105000002E965FAD2E972F966FAD2F9761968FAD31 -:1050100061970E94F1232896FFAE289729960FAF3B -:1050200029972A961FAE2A970E9488068160782FBA -:105030002C969FAF8EAF2C9728964FAD2897299628 -:105040005FAD29972A966FAD2A972C968FAD2C9736 -:105050000E94F12310934402C9CC2BE0F22E239638 -:10506000FFAE239702E024960FAF249711E0259618 -:105070001FAF25970E9488068160782F27969FAFE3 -:105080008EAF279723964FAD239724965FAD249735 -:1050900025966FAD259727968FAD27970E94F12310 -:1050A000FDAE0EAF1FAE0E9488068160782F22965B -:1050B0009FAF8EAF22974DAD5EAD6FAD22968FAD97 -:1050C0002297C6CF863009F048C0662329F199E0BF -:1050D000F92EF8AE03E009AF11E01AAF0E9488067E -:1050E0008160782F9CAF8BAF48AD59AD6AAD8CAD68 -:1050F0000E94F123FBAA0CAB1DAA0E9488068160C6 -:10510000782F9FAB8EAB4BA95CA96DA98FA90E948C -:10511000F123109343026ACC8BE0F82EFEA603E045 -:105120000FA711E018AB0E9488068160782F9AAB18 -:1051300089AB4EA55FA568A98AA90E94F123F9A6AB -:105140000AA71BA60E9488068160782F9DA78CA7BE -:1051500049A55AA56BA58DA5DACF873009F041C0C6 -:105160006623F9F013E01CA31DA381E08EA30E9427 -:1051700088068160782F98A78FA34CA15DA16EA1AE -:1051800088A50E94F1231F8F18A319A20E948806E8 -:105190008160782F9BA38AA34F8D58A169A18BA111 -:1051A000FACC05E00A8F13E01B8F81E08C8F0E9400 -:1051B00088068160782F9E8F8D8F4A8D5B8D6C8DD8 -:1051C0008E8D0E94F1230D8B1E8B1F8A0E948806F4 -:1051D0008160782F998F888F4D895E896F89898D3D -:1051E000DACC883009F008CC662301F106E0088BA0 -:1051F00013E0198B81E08A8B0E9488068160782FEA -:105200009C8B8B8B488959896A898C890E94F123F0 -:105210000B871C871D860E9488068160782F9F87D8 -:105220008E874B855C856D858F85B5CC08E00E83B8 -:1052300013E01F8381E088870E9488068160782FB1 -:105240009A8789874E815F8168858A850E94F123CC -:1052500009831A831B820E9488068160782F9D83B0 -:105260008C8349815A816B818D8195CC1F920F92DD -:105270000FB60F9211242F933F934F935F936F9329 -:105280007F938F939F93AF93BF93CF93DF93EF93CE -:10529000FF93D091E900DF708091EC00C82FC170BE -:1052A00080FDC0E81092E9008091F000877F809334 -:1052B000F00078940E94D7171092E9008091F000D6 -:1052C00088608093F000CD2BCF70C093E900FF91F0 -:1052D000EF91DF91CF91BF91AF919F918F917F918E -:1052E0006F915F914F913F912F910F900FBE0F9053 -:1052F0001F9018951F920F920FB60F9211242F93A3 -:105300003F934F935F936F937F938F939F93AF934D -:10531000BF93EF93FF938091E10082FF09C08091DA -:10532000E20082FF05C08091E1008B7F8093E10065 -:105330008091DA0080FF24C08091D80080FF20C0D7 -:105340008091DA008E7F8093DA008091D90080FF0F -:105350009BC088E189BD8AE189BD09B400FEFDCF0B -:1053600081E08093D2028091AD02811109C00E9438 -:10537000EC040E94B7058091E20084608093E20013 -:105380008091E10080FF17C08091E20080FF13C090 -:105390008091E2008E7F8093E2008091E200806144 -:1053A0008093E2008091D80080628093D80019BC7D -:1053B00085E08093D2028091E10084FF29C0809132 -:1053C000E20084FF25C088E189BD8AE189BD89B5F5 -:1053D000982F917080FFFBCF8091D8008F7D8093B4 -:1053E000D8008091E1008F7E8093E1008091E200FF -:1053F0008F7E8093E2008091E20081608093E200E2 -:105400008091D302882309F445C084E08093D202BE -:105410008091E10083FF27C08091E20083FF23C0D9 -:105420008091E100877F8093E10082E08093D20247 -:105430001092D3028091E1008E7F8093E1008091F1 -:10544000E2008E7F8093E2008091E2008061809391 -:10545000E20042E060E080E00E9485058091F0007B -:1054600088608093F000FF91EF91BF91AF919F9181 -:105470008F917F916F915F914F913F912F910F90FD -:105480000FBE0F901F90189519BC1092D202109267 -:10549000AD0276CF8091E30087FD93E09093D20236 -:1054A000B7CF78941F921FB61F9211248F939F93AA -:1054B000AF93BF938091A4029091A502A091A60200 -:1054C000B091A7020196A11DB11D8093A4029093F3 -:1054D000A502A093A602B093A702BF91AF919F919E -:1054E0008F911F901FBE1F9018951F921FB61F927D -:1054F00011248F939F93AF93BF938091A302811147 -:1055000013C08091A4029091A502A091A602B0912F -:10551000A7024196A11DB11D8093A4029093A502FC -:10552000A093A602B093A702BF91AF919F918F91D4 -:105530001F901FBE1F901895CDB7DEB7AA970FB664 -:10554000F894DEBF0FBECDBF84B7877F84BF0FB690 -:10555000F894A89580916000886180936000109213 -:1055600060000FBE80E890E00FB6F8948093610071 -:10557000909361000FBE85B7806885BF85B780684E -:1055800085BF8DEB98E09093BF018093BE010E9490 -:10559000EC040E94B7058091E20084608093E200F1 -:1055A00078948091D2028823A1F01091E9001F70B5 -:1055B0009091EC00892F817090FD80E8182B10925B -:1055C000E9008091E80083FD0E94D7171F701093B7 -:1055D000E90082E084BD93E095BD9AEF97BD80938A -:1055E0006E000E94730F811102C00E94A80E80EF0E -:1055F0000E94BF0881EF0E94BF0882EF0E94BF088F -:1056000083EF0E94BF0803E511E06FE5E62E61E03D -:10561000F62ED8018D918D018F3F11F00E94BF08A9 -:10562000E016F106B1F710924B0210924A02109266 -:105630007A021092790210924D0210924C0210924E -:105640007C0210927B0210924F0210924E02109236 -:105650007E0210927D02109251021092500210921E -:10566000800210927F020E94B717811102C00E942F -:10567000D01582E090E00E94B831809370020E94C1 -:105680008C0F9093A9028093A8020E943C16EFE32E -:10569000FCE93197F1F700C000000E943C168091B0 -:1056A000790280FF08C06FEF7FEF90E080E00E94FA -:1056B000EA310E94D10C83E090E00E94B83190E082 -:1056C0000E94C60B8091DC029091DD020E94B91409 -:1056D00080915202811132C00E94B717811104C01B -:1056E0000E94D0150E94C01588E090E00E94C03151 -:1056F00060935F03709360038093610390936203F0 -:105700006E7F71F40E94C01588E090E00E94C03165 -:1057100060935F03709360038093610390936203CF -:105720000E94D2061092980280915F0380FF03C00E -:1057300086950E947B1481E0809352026AE871E0B2 -:1057400056E6852E52E0952E28E731E0E1E8F1E0BB -:1057500041E050E01191812F82958F7090E0DC0143 -:105760009196FC9091971F70E12E6A0101C0CC0CBC -:105770001A95EAF70C2D00950F2191960C939197AD -:1057800092961C9192971C2992961C93D901FD9098 -:105790009D010F2D02950F7010E0D8019196BC90DD -:1057A000BF2DBF70FB2E6A0101C0CC0CBA95EAF781 -:1057B000DC2CD094DB20D8019196DC9291979296C4 -:1057C000DC909297DC289296DC92DC0190968C918A -:1057D00090E002C095958795EA94E2F78170D80130 -:1057E00090960C9110E002C015950795FA94E2F797 -:1057F00090E000FD92E0892BD4018D934D016E174E -:105800007F0709F0A7CF86EA92E0909390028093F9 -:105810008F0281E20E947B1481E090E00E944C158F -:1058200080E091E09093A00280939F028091D20249 -:10583000FF24F39408E11AE1853009F47CC20E9448 -:105840003C16882359F08FB7F8944091A4025091E8 -:10585000A5026091A6027091A7028FBFA9E7B2E0EE -:10586000E1E7F2E010E000E0702F8D919D91219131 -:1058700031912817390709F487C22827392760E0B2 -:10588000EE24E394F12CA9014E215F21452B09F46C -:1058900075C269A37AA39C012E213F2191E0232B9D -:1058A00009F490E09BA30E9488068160782F9DA355 -:1058B0008CA349A15AA16BA18DA10E94F123000FD5 -:1058C000111FF801EF58FD4F80819181E826F926DC -:1058D000F182E082809198028823D1F18091970231 -:1058E000E0915F03E695E81BE0939302823009F0B4 -:1058F00062C2F0E0EC53FD4FE4910E2F10E044E261 -:10590000E42E43E1F42E80919402882361F01092FA -:1059100094020E94880690939202809391021092C2 -:105920009602109295020E948806E0919102F091F1 -:1059300092028E1B9F0B8F3F9F4750F4E00FF11F89 -:10594000F0939202E093910281E992E0F7010995C8 -:105950003DE5E32E32E0F32E04E512E04FE6442E5F -:1059600041E0542E58E7652E51E0752E61E8862EF1 -:1059700061E0962E76E6A72E72E0B72E212C312C10 -:10598000D501ED915D01EE0FEE0FD4012D914D018A -:10599000A22FA295AF70B0E090968C9190E02F70FE -:1059A00002C0959587952A95E2F781709927D301D2 -:1059B0004D913D01A42FA295AF70B0E090962C912F -:1059C00030E04F7002C0359527954A95E2F7A9015E -:1059D0004170552720FF02C042E050E0842BE82BA5 -:1059E000D5011197EC93D201CD902D01EF70F0E02D -:1059F000E15AFE4F8081F7019081890F8083D12C7D -:105A0000082E000C990B20E08C159D054CF0D80158 -:105A10008C918F5F8C9360E0832D0E94812421E024 -:105A2000F7018081082E000C990B442755274C194B -:105A30005D09481759074CF0D8018C9181508C931F -:105A400061E0832D0E94812421E0F7018081082EEE -:105A5000000C990BB6010E945931D7018D937D013D -:105A6000222A33940F5F1F4FB9E03B1289CF2220C7 -:105A700059F08FB7F8944091A4025091A50260911B -:105A8000A6027091A7028FBF86E0E8E8F2E0DE018F -:105A9000119601900D928A95E1F7F0908A02E090BC -:105AA0008B0210918C0200918D0210928A0210924A -:105AB0008B0210928C0210928D028F2D8E2909F488 -:105AC00048C080918602909187020E9479069C01CD -:105AD00090918202992309F4C5C323333105C8F19B -:105AE0009F3F19F09F5F90938202FF2059F00E9420 -:105AF00043089FEF1F140CF491E0899F802D11241F -:105B000080938A02EE2059F00E9443089FEF1E14F2 -:105B10000CF491E0899F802D112480938B023091A9 -:105B20008A023323B1F020918B02222391F045EBBE -:105B30003403C0011124992309F497C190938A0278 -:105B400045EB240390011124332309F492C13093CF -:105B50008B02812F802B09F448C0809184029091A0 -:105B600085020E9479069C0190918102992309F493 -:105B700074C325363105C8F19F3F19F09F5F90939C -:105B80008102112359F00E9421089FEF11160CF495 -:105B900091E0899F802D112480938C02002359F07D -:105BA0000E9421089FEF10160CF491E0899F802D30 -:105BB000112480938D0230918C023323B1F0209117 -:105BC0008D02222391F045EB3403C0011124992367 -:105BD00009F453C190938C0245EB240390011124E6 -:105BE000332309F44EC130938D0280918A02909143 -:105BF0008B02892B90918C02892B90918D02892B9D -:105C000011F00E94810786E0FE013196A8E8B2E01B -:105C100001900D928A95E1F70E94C00690916F0263 -:105C2000891731F00E94C00680936F020E94A11470 -:105C30008091D202843009F0F9CD83E08093E900AD -:105C40008091E80082FFF2CD8091E80090E085FF2E -:105C500006C00E940B05882309F417C191E08091CA -:105C6000E8008B778093E800992309F4DFCDE98180 -:105C7000E150E33108F09DC1F0E0E659FD4C0C9491 -:105C80006D318091D202843009F443C080E00E94DB -:105C9000A1141092980280918E02811116C0F09288 -:105CA0008E0280915F03982F9170909353028E7FA4 -:105CB00080935F03BFEFE0E7F2E0B150E040F040D7 -:105CC000E1F700C000000E94B00F1092A30288E12B -:105CD00090E0A0E40FB6F894A895809360000FBE02 -:105CE000A093600083B7817F846083BF83B78160A6 -:105CF00083BF7894889583B78E7F83BF0FB6F8945F -:105D0000A895809160008861809360001092600087 -:105D10000FBE8091D102882371F00E943C16E9E702 -:105D2000F2E081919191892B09F078C281E892E0AB -:105D30008E179F07B1F78091D202853009F4A1CF69 -:105D40000E94C2170E94C0060E94A11410928E02E7 -:105D500080915302882359F080915F038160809382 -:105D60005F0386950E947B140E949A0F68CD8091F4 -:105D700099028823C9F30E94B00FF6CF6F5FEE0C33 -:105D8000FF1C6C3009F07FCD0F5F1F4F04301105F1 -:105D900009F06ACD8FEF8EA38FA318A60E94880604 -:105DA0008160782F9AA789A74EA15FA168A58AA5CF -:105DB0000E94F1238FCD863059F4F0E0EF53FD4F70 -:105DC000E4910E2F10E034E1E32E33E1F32E9BCD6E -:105DD000893061F4E695F0E0E254FD4FE4910E2F36 -:105DE00010E025E6E22E22E1F22E8DCD8F3061F417 -:105DF000E695F0E0E554FD4FE4910E2F10E090E1C0 -:105E0000E92E92E1F92E7FCD853159F4F0E0E85486 -:105E1000FD4FE4910E2F10E08DE9E82E81E1F82E80 -:105E200072CD08E210E0FDE0EF2EF1E1FF2E8831A7 -:105E300009F469CD833249F4E6EBF2E0059114915F -:105E4000BBEBEB2EB2E1FB2E5ECD04EF11E0A0ED3B -:105E5000EA2EA0E1FA2E843209F455CD00ED17E0C8 -:105E6000E1EDEE2EE6E0FE2E4ECD81E080938A023B -:105E700067CE81E080938B026CCE81E080938C02B0 -:105E8000ABCE81E080938D02B0CE00E210E0CE0177 -:105E900001967C018091E80085FD0AC08091E800B0 -:105EA0008B778093E8000E940B05882399F3D6CE68 -:105EB0008091F100D7018D937D010150110951F7B7 -:105EC000CDCE1A8289E08B833FC08A81823009F46B -:105ED000BBC18330A9F0813009F06BC02FB7F894B3 -:105EE0006091A4027091A5028091A6029091A702F0 -:105EF0002FBF0E9473316B837C838D839E8324C06C -:105F00008091790290917A029827892798279C831B -:105F10008B8380917B0290917C0298278927982718 -:105F20009E838D8380917D0290917E0298278927A0 -:105F3000982798878F8380917F029091800298277D -:105F4000892798279A8789878091D202843009F01F -:105F50006DCC1091E9001F709091EC00892F817039 -:105F600090FD80E8182B82E08093E9008091E800A2 -:105F700080FF0DC050E040E060E270E0CE0101968D -:105F80000E943C058091E8008E778093E8001F70A6 -:105F90001093E9004BCC8A81823059F46B817C816B -:105FA0008D819E810E94733186E290E00E94CC3107 -:105FB000CBCF8FEF8983C8CF4C816B818A810E94C0 -:105FC000D10E9827892798279E838D83BDCFED809A -:105FD000FE80FE24EF24FE248A810B81B8E10B9F12 -:105FE00080011124E0E68E9F000D111D11248C818B -:105FF00090E0880F991F080F191F6F2DC801879611 -:106000000E94CC316E2DC8018896D0CF0E943B0EE5 -:106010009BCF8A818138C1F060F4803809F094CF39 -:1060200020E04B8160916103809160030E944A13DC -:106030008BCF823849F1833809F086CF20E0409138 -:1060400062036C818B81F2CF8B810E947B149B81D8 -:1060500080915F03911111C08E7F80935F03109236 -:106060009802FFEF20E742E0F15020404040E1F786 -:1060700000C000000E94B00F67CF816080935F0373 -:1060800086950E947B1460CF8B81809363035CCFE5 -:106090008A81813899F030F4803809F055CF8091A9 -:1060A000620311CF823891F0833809F04DCF80918F -:1060B00060038B83809161038C8346CF80915F0363 -:1060C00080FF02C08695FFCE80E0FDCE8091630305 -:1060D000FACE60915F0370916003809161039091AB -:1060E00062030E94381330CF80E18A832DCF84E091 -:1060F0008A8389E1E8CE0A811B81102701271027B6 -:10610000CE0101966C01EC80DC01AE0DB11D7D016C -:10611000C80189519C4FEC14FD0409F415CF0931D5 -:10612000B4E01B0750F40E94B831F60184830F5F7E -:106130001F4FBFEFCB1ADB0AEBCFD60114961C9290 -:10614000F6CF0A811B81102701271027FE01319607 -:106150006F01EC80E00EF12EF11CC80189519C4FBB -:10616000E016F10609F4F0CE0931F4E01F0728F437 -:10617000D60114966C910E94CC31BFEFCB1ADB0A8A -:106180000F5F1F4FEACF0E942B0EDECE8AE0ADCF0D -:106190000A811B81102701271027FE0131966F010C -:1061A000EC80CF018E0D911D7C01C8018796EC1407 -:1061B000FD0409F4C9CE003CA3E01A0750F40E9484 -:1061C000B831F60184830F5F1F4FBFEFCB1ADB0A94 -:1061D000ECCFD60114961C92F6CF0A811B811027B2 -:1061E00001271027FE0131966F01EC80E00EF12EA1 -:1061F000F11CC8018796E016F10609F4A5CE003C13 -:10620000F3E01F0728F4D60114966C910E94CC315C -:10621000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BDD4 -:1062200009B400FEFDCF8091D8008F7D8093D80007 -:106230008091E00082608093E0008091E00081FD29 -:10624000FCCF0E94C21777CD86E290E00E94B83161 -:106250001B821C821D828E8377CE2D32314008F046 -:106260008DCCC3CC2D32314008F03CCC72CC87FBB6 -:10627000082E062687FD819567FD61950E9489316C -:106280000EF4919507FC81950895AA1BBB1B51E163 -:1062900007C0AA1FBB1FA617B70710F0A61BB70B96 -:1062A000881F991F5A95A9F780959095BC01CD013B -:1062B000089597FB072E16F4009407D077FD09D0B8 -:1062C0000E94453107FC05D03EF4909581959F4F83 -:1062D0000895709561957F4F0895EE0FFF1F05900B -:1062E000F491E02D09946927962769277827872755 -:1062F000782708950E943532332312F48A1B9B0BB2 -:106300000C9484310E943532B7FF0895821B930BA1 -:106310000895991B79E004C0991F961708F0961B01 -:10632000881F7A95C9F780950895FB01DC0102C0AA -:1063300005900D9241505040D8F70895FC0141500E -:10634000504030F001900616D1F73197CF010895F3 -:10635000882799270895FB01DC0104C08D910190E5 -:10636000801921F441505040C8F7881B990B0895BB -:10637000F999FECF92BD81BDF89A992780B508950D -:10638000A6E1B0E044E050E00C94F231A8E1B0E0C6 -:1063900042E050E00C94F231262FF999FECF92BDE5 -:1063A00081BDF89A019700B4021639F01FBA20BDDA -:1063B0000FB6F894FA9AF99A0FBE08950396272F0C -:1063C0000E94CD310E94CC31252F0E94CD31242F47 -:1063D0000C94CD310196272F0E94CD310C94CC31F5 -:1063E000DC01CB01FC01F999FECF06C0F2BDE1BD95 -:1063F000F89A319600B40D9241505040B8F7089584 -:106400000E943532A59F900DB49F900DA49F800DE2 -:10641000911D11240895B7FF0C9400320E940032A0 -:10642000821B930B0895A1E21A2EAA1BBB1BFD0130 -:106430000DC0AA1FBB1FEE1FFF1FA217B307E40763 -:10644000F50720F0A21BB30BE40BF50B661F771FBB -:10645000881F991F1A9469F760957095809590959B -:106460009B01AC01BD01CF010895A29FB001B39F74 -:10647000C001A39F700D811D1124911DB29F700D4D -:10648000811D1124911D0895F894FFCF5E0F5E0FBA -:10649000670F670F690F670F670F670F5E0F5E0F5C -:1064A0006E0F670F670F6E0FBC18E4183719E418EA -:1064B000371917194F1937194C1A591AB41EB41E27 -:1064C000281F281F861FA01FEB1EEB1EAB1F3520A9 -:1064D00046204620612F652FCB2FDC2FE72F06307B -:1064E000093048306930D92FD92F743077307B305C -:0A64F000A130C330C630C830ED30D3 -:1064FA007606910C700C6C0C680C01191A1B1C1D89 -:10650A001E1F202122010201002A002A2A0181825B -:10651A0083E200E900EA00B500B600B700CD0083C7 -:10652A0001CC008A0192019401210223022402254E -:10653A0002260227022A02B300B4006F007000F09C -:10654A00F1F2F3F5F6F700010203040537363500D8 -:10655A00FF0100010000FFFF0000010001FF00042D -:10656A00040404040404020261626466909294972B -:10657A00066063656791939596070001020202021D -:10658A000606060909090909090F0F0F0F0F0F154A -:10659A00151518191919191919191919192324402E -:0E65AA0022B6B6019401DE00C808E10801091E +:102E4000109249021091460280914502111185C0ED +:102E5000882309F45CC010921A0184E080931B015E +:102E600080931C018FE00E947B141092450281E048 +:102E70008093460280913F02882399F1809140021D +:102E800081112FC080913D0290913E020E947906EF +:102E900081369A4E78F080913B0290913C020196E7 +:102EA00090933C0280933B020E94880690933E02DE +:102EB00080933D0280913B0290913C024F9788F0B5 +:102EC00010921A018AE280931B0180931C018FE00B +:102ED0000E947B1481E08093400210923C02109289 +:102EE0003B028F2D28960FB6F894DEBF0FBECDBFE4 +:102EF000DF91CF911F910F91FF90EF90DF90CF90D6 +:102F0000BF90AF909F908F907F906F900895809129 +:102F10004402882379F086E180931A018AE1809344 +:102F20001B0184E080931C018FE00E947B141092AF +:102F300044029DCF809143028823A9F08AE18093C7 +:102F40001A018EE180931B0184E080931C018FE0C5 +:102F50000E947B14109243028ACF81112BC0809172 +:102F60004402811127C080914302811123C08091C6 +:102F70004102909142020E947906853F9140D0F033 +:102F8000112379F010921A018AE280931B01809339 +:102F90001C0181E20E947B148091400281110E94F9 +:102FA000AD1010924502109244021092430210920A +:102FB000460260CF109245021092440210924302E2 +:102FC00059CF90E080E00E94EE31893E9E4F11F48F +:102FD0000C94730F80E008951092340280911D01CB +:102FE000E2ECF1E0882359F08091A80287FF07C046 +:102FF0008EE1DF011D928A95E9F70C94A90B86E01A +:10300000F8CF1F93CF93DF93CDB7DEB7AA970FB654 +:10301000F894DEBF0FBECDBF84ED92E02091F100A9 +:10302000DC012D93CD01B2E08C3D9B07B9F7809177 +:10303000D502833009F471C0B8F4813009F448C076 +:10304000823009F4B2C08091E80083FF3AC18091D8 +:10305000D4029091D5029A3008F033C1E92FF0E004 +:10306000E458FD4C0C9495318A3009F48DC08B30B6 +:1030700009F470C0893039F78091D402813219F790 +:103080008091D8029091D902009711F00297D9F659 +:103090008091E800877F8093E8008091E80082FFBC +:1030A00037C08091F2009091F300029729F480914B +:1030B000F1008B7F813021F48091F1008093AF0289 +:1030C0008091E8008B778093E8000E946605BBCF73 +:1030D0008091D402813A09F0B6CF8091E800877FD1 +:1030E0008093E8008091D8029091D902892B61F4F5 +:1030F00060E280EB92E070E00E9419068091E800A7 +:103100008B778093E8009FCF60E090E080E0F3CF82 +:103110008091D2028111C1CF96CF8091D402813AA1 +:1031200009F091CF8091D8029091D902892B09F0B2 +:103130008ACF8091E800877F8093E8008091E80043 +:1031400080FFFCCF80911D018093F1008091E80009 +:103150008E77B9CF8091D402813209F074CF8091FB +:10316000D8029091D902892B09F06DCF8091E800A7 +:10317000877F8093E8000E9466058091D602809345 +:103180001D010E94EC175FCF8091D402813209F0BB +:103190005ACF8091E800877F8093E8000E946605FF +:1031A0008091D7028093AE024ECF8091D402813AB3 +:1031B00009F049CF8091E800877F8093E8008091F3 +:1031C000E80080FFFCCF8091AE02BECF803899F03E +:1031D000823809F076C08091D8028F70873008F06D +:1031E00070C08093E9008091EB0085FB882780F90F +:1031F0001092E90006C08091D0029091D102911105 +:1032000082609091E800977F9093E8008093F100AE +:103210001092F1008091E8008E77B5C1882309F4FF +:10322000A2C1823009F04DC08091D6028111A6C1A1 +:103230008091D8028F702FEF280F263008F041C000 +:103240008093E9002091EB0020FF98C1933031F486 +:103250008091EB0080628093EB0090C19091EB0035 +:1032600090619093EB0021E030E001C0220F8A953D +:10327000EAF72093EA001092EA008091EB00886060 +:10328000EACF81111EC01091D6021F778091E30012 +:103290008078812B8093E3008091E800877F809382 +:1032A000E8000E9466058091E80080FFFCCF8091D5 +:1032B000E30080688093E30082E0111183E0809353 +:1032C000D2028091E80083FF0AC08091E800877FE6 +:1032D0008093E8008091EB0080628093EB00AA96D7 +:1032E0000FB6F894DEBF0FBECDBFDF91CF911F9117 +:1032F00008958058823028F72091D6023091D70265 +:103300002C3DE3E03E07A1F583E08A838AE28983CE +:103310004FB7F894DE01139620E03EE051E2E32F30 +:10332000F0E050935700E49120FF03C0E295EF7066 +:103330003F5FEF708E2F90E0EA30C0F0C7968D931C +:103340009D932F5F243159F74FBF8091E800877F0D +:103350008093E8006AE270E0CE0101960E941906AF +:103360008091E8008B778093E800ABCFC096E7CFE1 +:103370008091D8029091D902432F552743305105AF +:1033800009F44AC078F54130510509F47AC08BE55B +:1033900090E0E6EBF8E04230510509F092CF209141 +:1033A000E800277F2093E8002091DA023091DB02C9 +:1033B0008217930708F49C0140E02115310509F0BC +:1033C00065C0411163C08091E80082FDC9CF809142 +:1033D000D202882329F2853019F28091E80083FF18 +:1033E000F2CFBECF4132510509F43CC04232510503 +:1033F00009F067CF8330910508F063CFFC01EE0F31 +:10340000FF1FEE54FE4F0190F081E02D81559E4F3D +:10341000DC018C9190E01AC0332721303105D1F0C6 +:103420002115310561F02230310509F04ACFE3E280 +:10343000F9E0E4918E2F90E0E3E2F9E007C0E1E4E7 +:10344000F9E0E4918E2F90E0E1E4F9E0009709F4CF +:1034500038CFA5CFEDE2F9E0E4918E2F90E0EDE2D8 +:10346000F9E0F4CF8330910508F02BCF880F991F36 +:10347000FC01E854FE4F0190F081E02D89E090E0DE +:103480008ECF82E190E0E1E1F9E089CF8091D20234 +:10349000882309F465CF853009F462CF8091E80074 +:1034A00083FD5ECF8091E80082FD8DCF8091E800A2 +:1034B00080FF83CF8091F2009091F30021153105B8 +:1034C00019F08830910550F041E0089709F040E08C +:1034D0008091E8008E778093E8006FCF449140930D +:1034E000F1003196215031090196E8CF803809F07A +:1034F000E8CE8091E800877F8093E8008091D30236 +:103500008093F10087CE8111DCCE1091D60212306B +:1035100008F0D7CE8091E800877F8093E800109371 +:10352000D3020E946605112311F084E005C080914A +:10353000E30087FDFACF81E08093D20242E061ECA4 +:1035400081E00E94850542E261EC84E00E948505ED +:1035500042E261EC82E00E94850542E260EC83E099 +:103560000E948505AECE8091D602813009F0A9CEA9 +:1035700081E0933009F080E08093D1021092E9005D +:103580008091E800877F8093E8000E94660599CECD +:103590003F924F925F926F927F928F929F92AF92E3 +:1035A000BF92CF92DF92EF92FF920F931F93CF9330 +:1035B000DF9300D000D00F92CDB7DEB78C01FC01B5 +:1035C00083819481892B31F08081918189238F3F80 +:1035D00009F052C60F900F900F900F900F90DF914F +:1035E000CF911F910F91FF90EF90DF90CF90BF9000 +:1035F000AF909F908F907F906F905F904F903F9093 +:1036000008950E94040FF82E682F89819A810E94E4 +:103610007D0B69817A818F2D0E94F70E7C01F80164 +:103620008281882309F41AC6970122513F4520312F +:10363000310508F0D2C58FEF97E00E94E031FEEE31 +:10364000EF0E57EE852E53E0952E882381F1809161 +:103650003102877009F4BECFF8018281882309F412 +:10366000B9CF82E00F900F900F900F900F90DF91E5 +:10367000CF911F910F91FF90EF90DF90CF90BF906F +:10368000AF909F908F907F906F905F904F903F9002 +:103690000C947415811428E09206C9F2C4010E94AA +:1036A000E031811101C0EA943FEF831A930AE110DF +:1036B000F1CF1C821B82442443944AE0342E7401CF +:1036C0004FEFE41AF40AC4010E94E03189831A82A0 +:1036D000882309F4BCCF9FEF980F933000F58A83BD +:1036E000498252E0850E911CC7010E94E0318B8314 +:1036F000882309F4ACCFCE0101967C01F70120812B +:103700002223E9F2213009F049C091818281913070 +:1037100041F4F2E0EF0EF11C0E94AA0D09C047012E +:10372000EACF923049F422E0E20EF11C0E94F50C3F +:103730003FEFE31AF30AE2CF933031F432E0E30EC5 +:10374000F11C0E94E10BF4CF943021F04FEFE41A0A +:10375000F40AEECF52E0E50EF11C30E020E0B701B4 +:103760006F5F7F4FF70141818053990B8A3091053C +:1037700050F021503109E0F28FE99FE00197F1F715 +:1037800000C00000F6CF329EF001339EF00D1124F0 +:103790009C012E0F3F1F842F7B01E1CFE22FF0E031 +:1037A000EA5DFD4F5490822F86958695869590E030 +:1037B000FC01EA5EFD4F64902770712C022E02C05E +:1037C000759467940A94E2F7E1E06E227724FC0195 +:1037D000EA5FFD4FA490B12C022E02C0B594A794CD +:1037E0000A94E2F7F1E0AF22BB24FC01EA50FE4F5D +:1037F000C490D12C02C0D594C7942A95E2F721E059 +:10380000C222DD246114710419F081EE0E94F50CCE +:10381000A114B10419F086EE0E94F50C852D0E94CA +:10382000AA0DAB2819F086EE0E94E10B672819F06B +:1038300081EE0E94E10BCD2809F47ACF8CE26CCFA7 +:1038400081E00E9490150E94541501CF81E00E94F2 +:103850006315F9CF82E0F5CFF3E8EF16FFE5FF0639 +:1038600009F4CCC024E8E2162FE5F20609F0D5C42D +:10387000882309F4ECCEF0903F02EE24E394FE247A +:10388000F0923F020E94880690933E0280933D0290 +:103890008091400210921A01882309F4BDC08AE287 +:1038A00080931B0180931C0181E20E947B140E9483 +:1038B000AD10E0923F021092400210923C02109232 +:1038C0003B02C5CE882309F481C080914902811151 +:1038D00006C081E08093490282EE0E94F50C0E94AE +:1038E000880690934802809347028BE20E94F50C71 +:1038F000F8018281882309F4D0C41092E002F2E03A +:10390000EF16FCE5FF0608F4ACC126E1E2162CE553 +:10391000F20630F0C7018A5F9C45099708F0A1C103 +:103920000E948C0F9093A9028093A80230E1E316C5 +:103930003CE5F30609F464C108F0E6C058E0E5167A +:103940005CE5F50609F44EC108F0AFC094E0E91655 +:103950009CE5F90609F43EC108F091C0F2E0EF16CB +:10396000FCE5FF0609F430C18091A802826023E0E3 +:10397000E2162CE5F20609F42AC16091A802F09043 +:10398000A90284E090E00E94F4316F2D82E290E081 +:103990000E94F4310E94EC175ACE8823A1F0809146 +:1039A0004902811106C081E08093490282EE0E94A3 +:1039B000F50C0E948806909348028093470281EE9E +:1039C0000E94F50C92CF81EE0E94E10B8BE20E94E7 +:1039D000E10B8ECF882309F48BCF81EE0E94F50C8A +:1039E00083EE0E94F50C8FE40E94F50C8FE40E9498 +:1039F000E10B83EE0E94E10B81EEE9CF882309F40D +:103A000077CF81EE0E94F50C83EE0E94F50C80E5E5 +:103A10000E94F50C80E5EBCF8AE280931B01809336 +:103A20001C0181E2FF2029F00E947B140E94AD104E +:103A300042CF0E947B143FCFE5EFEE16ECE5FE0689 +:103A4000B9F090F026EFE2162CE5F20609F050CF1F +:103A500027E245EE66EEFEC327E245EE65EEFAC3C9 +:103A600026E241EE60EEF6C327E245EE64EEF2C3D5 +:103A700026E241EE62EEEEC328E241E0EFCF809114 +:103A8000A802806136E0E3163CE5F30609F49FC026 +:103A90008091A802886047E0E4164CE5F40608F43B +:103AA00096C08091A802806292C08091A8028D7F0A +:103AB0005CE0E5165CE5F50609F489C078F48091D0 +:103AC000A8028C609AE0E9169CE5F90609F47FC02B +:103AD00008F48CC08091A8028E7F79C08091A802E2 +:103AE000877FFEE0EF16FCE5FF0609F470C08091C9 +:103AF000A8028B7F2FE0E2162CE5F20608F467C0DF +:103B00008091A8028F7E63C03BEFE3163CE5F3068D +:103B100009F464C068F553E1E5165CE5F50609F4BF +:103B200077C090F491E1E9169CE5F90609F46CC0C0 +:103B3000E2E1EE16ECE5FE0609F01FCF0E94EC175D +:103B40008091A8028F7743C0F5E1EF16FCE5FF06F0 +:103B500009F466C008F47AC08091A90281603AEF46 +:103B6000E3163CE5F30609F008CF8093A90205CFE0 +:103B70004FEFE4164CE5F40609F44EC088F48DEFDF +:103B8000E8168CE5F806C1F18091A9028E7F9EEFC0 +:103B9000E9169CE5F90648F38091A9028360E5CF18 +:103BA000E1E0EE16EDE5FE0609F459C008F444C064 +:103BB00060E022E0E2162DE5F20609F0DECE8EE0AE +:103BC00090E00E94F431D9CE8091A8028160809368 +:103BD000A802D3CE8091A8028460F9CF8091A90277 +:103BE0008260C3CF8091A8028064F1CF0E94EC175D +:103BF0008091A8028068EBCF8091A9028D7FB5CF1C +:103C00008091A8028F7DE3CF8091A8028F7BDFCFC8 +:103C10008091A802837FDBCF8091A9028C7FA5CF02 +:103C20008091A80282FB992790F921E0922790FBCE +:103C300082F990FB83F9CBCF8091A902982F9095C0 +:103C400091708E7F892B90FB81F98FCF0E94EC17AA +:103C50009091A802892F97FB87F98058B8CF61E02F +:103C6000AECF8091340236E1E3163CE5F30609F06D +:103C700021C38A7A91E009F490E09093E0018111E8 +:103C800006C089E20E94170B0E94A70AE0CC85E3D8 +:103C9000F9CF85E30CC380915F0380FF1BC08E7F4B +:103CA00080935F0360915F03709160038091610373 +:103CB000909162030E943813109298024FEF50E7E0 +:103CC00082E0415050408040E1F700C000000E9477 +:103CD000B00FBDCC816080935F0361E086950E9448 +:103CE0004014B5CC4FE955E168EA75E10E94CC0675 +:103CF000AECC48EA55E16FE975E1F8CF45E154E112 +:103D00006CE074E1F3CF44EF53E160E074E1EECF97 +:103D10004CED53E168EE73E1E9CF48EE53E16CED11 +:103D200073E1E4CF4FE254E16EE174E1DFCF61E093 +:103D300081E0D5CF65E082E00E94B21588CC68E0D2 +:103D400086E0FACF64E18FE0F7CF67E185E1F4CF59 +:103D500062E289E1F1CF61E083E2C1CF3BE5E316A6 +:103D60003DE5F30611F14CE5E4164DE5F40609F0E6 +:103D7000D3C28091A90282FB882780F991E089272C +:103D80000E94B70EC9C20E94EC175FEF84E39CE06B +:103D9000515080409040E1F700C000000E94D10CDB +:103DA0000E94D01554CC81E0EBCF80E0E9CFC70171 +:103DB0000E94550BD82EBFC22F2D2F70C22E8F2DD3 +:103DC000807F19F0C29490EFC922DD20C9F0CC2089 +:103DD00069F080E28E0D883010F081100BC0809168 +:103DE0003402C82AC09234020E94A70A8E2D0E9473 +:103DF000F50C19C080913302C82AC0923302F4CF67 +:103E00008E2D0E94E10BCC2071F0C09480E28E0DCB +:103E1000883010F081103EC080913402C822C092D8 +:103E200034020E94A70AE92DE850FF0B349720F4D2 +:103E30000E94C0060E94A114AA2009F4CBCB809155 +:103E4000310280FDC7CBF801128285958595859555 +:103E50000E949015C8010E94C81A80913102859570 +:103E6000859585950F900F900F900F900F90DF9193 +:103E7000CF911F910F91FF90EF90DF90CF90BF9067 +:103E8000AF909F908F907F906F905F904F903F90FA +:103E90000C94631580913302C822C0923302C1CFC3 +:103EA0003F2D3F70B32E8F2D807F803219F0B2945A +:103EB00080EFB822882071F041E0841681F1DD2086 +:103EC000D9F1CC2091F1F801858180FF8FCF8F70DF +:103ED00085832BC0DD20B1F0909135028B2D892B8D +:103EE000C11003C00E94D70B9ECF51E0C512FACF7C +:103EF0002091A90222FD97CF981709F494CF8093BF +:103F0000350291CFC11006C00E94A10A8B2D0E94DC +:103F1000CC0B89CF81E0C81609F485CFF5CFDD2021 +:103F200031F095E09C1508F47ECF8B2DDBCFE4E0DB +:103F3000EC1508F478CFEACFCC2041F3F9E38F12E7 +:103F400009C02FEF37EE43E0215030404040E1F709 +:103F500000C000008E2D0E94E10B65CF8F2D86954D +:103F60008695837061F0813009F05DCFC701937051 +:103F7000D11002C090E080E00E94940654CFC701A7 +:103F80009370D11002C090E080E00E94AA064BCF4F +:103F90008E2DDD2029F00E9463080E94810743CF07 +:103FA0000E94A807FACF8F2D837009F040C0D1106E +:103FB0003ACF4E2D429546954770440F440F8E2DB3 +:103FC0008F7090E0042E02C0880F991F0A94E2F7C8 +:103FD00030E020E0E4FE09C02FE030E002C0220F14 +:103FE000331F4A95E2F7209530954F2D469546951B +:103FF0004370423099F078F4609136027091370244 +:10400000413039F0822B932B862397230E94C60BD5 +:104010000ACF862B972B822B932BF8CF822B932BB7 +:10402000209136023091370282279327EFCF869571 +:10403000DD2011F08F2D8170882309F4F4CE4E2DF0 +:10404000429546954770440F440F8E2D8F7090E037 +:10405000042E02C0880F991F0A94E2F730E020E096 +:10406000E4FE09C02FE030E002C0220F331F4A9562 +:10407000E2F7209530954F2D469546954370423096 +:1040800099F078F46091DC027091DD02413039F0F2 +:10409000822B932B862397230E944C15C4CE862B0C +:1040A000972B822B932BF8CF822B932B2091DC0222 +:1040B0003091DD0282279327EFCF5F2D5F70F52EC1 +:1040C000DD2029F0852F0E9490158E2D0BCF8E2D8F +:1040D0000E94CC0B8F2D0E946315A5CE8E2D92EFE2 +:1040E000891609F449C0981570F0E0EF8E1639F181 +:1040F000F1EF8F16C9F1DD2009F45FC0C11076CE53 +:104100008F2D8F7136C023EF8216D9F134EF8312D1 +:10411000F2CFDD2009F446C0FF2DFF71FF2E8F2F57 +:104120000E9490158091A90282FD07C028E0F29EAE +:10413000C00111248360809331028F2D1AC0DD20CD +:1041400071F044E04C1508F46ECE2F2D2F7181E0F4 +:1041500090E002C0880F991F2A95E2F7A7CF55E09B +:104160005C1508F460CEF1CF8F2D8F71DD2009F43E +:10417000B2CF0E94901557CE8F2D8F71DD20C9F3DD +:10418000AACF90E080E0DD2009F486CF9F2D9F71BB +:1041900021E030E0F90102C0EE0FFF1F9A95E2F72F +:1041A000CF017ACF81E00E94741531E03C1508F010 +:1041B0003ACE82E00E94741536CECC2059F0893375 +:1041C00009F0C8CE4FEF57EE83E041505040804099 +:1041D000E1F7BECE8F2D8F717ECFF0E1EF16FFE5B8 +:1041E000FF0609F42DCB21E1E2162FE5F20609F4D2 +:1041F00031CB42E8E4164FE5F40609F4EBCB08F0C6 +:104200002BCB90E8E9169FE5F90609F45BCBE1E8D2 +:10421000EE16EFE5FE0609F4C0CB33EFE3163CE5FE +:10422000F30609F41DCC08F007CC58EDE5165CE563 +:10423000F50609F411CC89EDE8168CE5F80609F4C9 +:104240001BCC97EDE9169CE5F90609F051CB26E267 +:1042500041EE61EEC8010E94C70DF9C930E1E316D5 +:104260003FE5F30609F4F2CA41E1E4164FE5F4062E +:1042700009F0BFCF82E0EBCA85E0DE011196019024 +:104280000D928A95E1F7F801228189819A812111A5 +:10429000B8C90E94550BF82EBCC9F6E1EF16FCE533 +:1042A000FF06D1F58091E0018111F3CC89E20E94F3 +:1042B000EC0AEACC82722CECE2162CE5F20609F448 +:1042C00031CD08F0A7C046ECE4164CE5F40609F43D +:1042D00015CD08F076C093ECE9169CE5F90609F4D3 +:1042E00001CD08F05DC0F2ECEF16FCE5FF0609F425 +:1042F000D2CC9AE5E9169DE5F90609F454CD08F00B +:104300002DCDE114FCE5FF0609F43DCD2EEDE216BE +:104310002CE5F20609F444CDF8018281E080F180B9 +:10432000882309F444CDC7010E94040FD82E682FBA +:10433000C7010E947D0BB7018D2D0E94F70E0E94D0 +:1043400019097C01882EF801D280C580C2943FE013 +:10435000C322809131028770A1F0AD2CDD2091F055 +:104360008F2D807F803421F080E28E0D883048F0E0 +:1043700082E00E947415809131028770AA24A39470 +:104380008111A12C9F2C92942FE09222FBE0F91531 +:1043900008F449CDE92DF0E0EA57FD4C0C94953135 +:1043A00024ECE2162CE5F20609F4A3CC4CE054E12F +:1043B00065E174E135ECE3163CE5F30609F496CCCF +:1043C00098CF49ECE4164CE5F40609F4A1CC88F446 +:1043D00097ECE9169CE5F90609F495CC40E054E128 +:1043E00064EF73E1E8ECEE16ECE5FE0609F47ECC32 +:1043F00080CFFAECEF16FCE5FF0609F48ECC4EE117 +:1044000054E16FE274E12BECE2162CE5F20609F4BC +:104410006DCC6FCF31EDE3163CE5F30609F492CC99 +:10442000B8F45EECE5165CE5F50609F483CC08F417 +:104430007ECC9FECE9169CE5F90609F480CC6EE091 +:1044400089E0E0EDEE16ECE5FE0609F475CC51CFFF +:10445000F4EDEF16FCE5FF0609F47ACC78F432EDC2 +:10446000E3163CE5F30609F470CC61E088E143ED26 +:10447000E4164CE5F40609F432CC3BCF55EDE516D5 +:104480005CE5F50609F467CC8DE5E816F80609F455 +:10449000DEC82FCF1F93CF93DF938091FE01807FE3 +:1044A000A9F48091FB01882389F080913002D0919A +:1044B000FF016091F9017091FA01A091FC01B091A6 +:1044C000FD01C62FC72316E0D81304C0DF91CF919A +:1044D0001F91089590E0109711F0CF3F19F40196C5 +:1044E0008770F2CF189F9001199F300D1124F901A8 +:1044F000E050FE4F41814713F2CF40814613EFCF8A +:1045000042814111ECCF438154814A1B5B0B483CF3 +:10451000510528F78091FE018F7080618093FE0124 +:10452000F901EB5FFD4F80818F708061808389EF9F +:1045300091E00E94C81ADF91CF911F910C944B0B10 +:10454000AF92BF92CF92DF92EF92FF920F931F93A1 +:10455000CF93DF93CDB7DEB761970FB6F894DEBF88 +:104560000FBECDBF8C0185E0F801DE011D960190E4 +:104570000D928A95E1F7F801E28089EFA82E81E09B +:10458000B82E6091FC017091FD016115710509F46F +:1045900032C19091F9014091FA01892F84238F3F14 +:1045A00009F429C120813181C380D480F090FB01BE +:1045B000F601E61BF70BFF2009F4E8C08091FE012D +:1045C000582F507FE83CF10508F0ABC0511177C07F +:1045D000FE2C431321C092131FC0E1101DC08F7029 +:1045E00080618093FE01C5010E94C81A8091FE017E +:1045F000F80185838F2D61960FB6F894DEBF0FBE4C +:10460000CDBFDF91CF911F910F91FF90EF90DF9081 +:10461000CF90BF90AF900895CD2829F0822F8323AB +:104620008F3F09F003C180E0F82FF170DF2E80FF8B +:104630003CC0809130024091FF0156E0841315C0C8 +:104640002D873E878D859E850E94400F292F2295BC +:104650002F702230F0F0243018F59F70F1F0F8013F +:104660009581907FD1F4D12C1EC090E0589FF0012D +:10467000599FF00D1124E050FE4F6181361306C0A2 +:104680006081261303C06281E6120FC00196877015 +:10469000D5CF9F7011F0882331F3805E883018F3F6 +:1046A000C8010E94C81AFD2CA5CFEE2009F4A2CFA4 +:1046B0008091FE0181608093FE01F12C9BCF43131A +:1046C00006C0921304C0F801EE2009F479C0C801B5 +:1046D0000E944C0F882309F1EE20F9F08091FE0131 +:1046E000803270F02091F9013091FA0138872F83E0 +:1046F0001986DB86CA868C87CE0107960E94C81A67 +:1047000086E0F801A9EFB1E001900D928A95E1F7FA +:104710000E944A22FF24F3946DCFC8010E94C81A58 +:10472000F9CF51110AC089EF91E00E94C81A86E0C2 +:10473000F50111928A95E9F7C0CF43130FC0921388 +:104740000DC0E1100BC0F8018583C8010E94C81A92 +:1047500086E0F50111928A95E9F74CCFC8010E94D5 +:104760004C0F8823D1F2EE20C1F28091FE018032FD +:1047700038F22091F9013091FA013A8329831B82A2 +:10478000DD82CC828E83CE010196B8CFE83CF10564 +:10479000F8F6FE2CEE2009F243131FC092131DC041 +:1047A0008091FE0180FD10C0982F907F69F0F80184 +:1047B0008583903F31F0982F907F905F8F70892B89 +:1047C0008583C8010E94C81A86E0F801A9EFB1E00C +:1047D00001900D928A95E1F70DCFC8010E944C0F10 +:1047E00081118ECF8091FE0181608093FE01C8010E +:1047F0000E94C81AFFCEEE2009F48FCFC8010E9494 +:104800004C0FF82E882309F488CF86E0F801A9EF31 +:10481000B1E001900D928A95E1F78091F9019091B4 +:10482000FA010E94400F0E944A22E4CE81E08E25C8 +:10483000FBCE1F93CF93DF93CDB7DEB767970FB64D +:10484000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B28 +:104850008F8B6111109233021A8A198A85E0FE014A +:104860007396DE011D9601900D928A95E1F786E020 +:10487000FE013D96DE01179601900D928A95E1F7B3 +:10488000CE0107960E94A022882389F016E080912D +:1048900030029091FF01891349C067960FB6F894D2 +:1048A000DEBF0FBECDBFDF91CF911F91089586E08F +:1048B000FE013796DE01119601900D928A95E1F77F +:1048C0008A859B85892B11F38F81988589238F3F5A +:1048D000E9F22091FF0130E0C90101968770992724 +:1048E000409130024817190671F40E94EC1710929B +:1048F000FF011092300286E0E9EFF1E0DF011D9246 +:104900008A95E9F7C3CF96E0929FD001939FB00DAF +:104910001124A050BE4FFE01319601900D929A9540 +:10492000E1F78093FF010E944B0BB0CF819FC00144 +:10493000112480509E4F0E94A022882309F4ADCFFD +:104940008091300290E00196877099278093300221 +:104950009ECFFF920F931F93CF93DF93CDB7DEB718 +:10496000C45BD1090FB6F894DEBF0FBECDBF182FC0 +:104970008111D7C0662309F475C0C055DF4F188276 +:10498000C05BD040CF54DF4F1882C15BD04011E0F4 +:10499000CE54DF4F1883C25BD0400E9488068160EE +:1049A000782FCD54DF4F99838883C35BD040C055A7 +:1049B000DF4F4881C05BD040CF54DF4F5881C15B8F +:1049C000D040CE54DF4F6881C25BD040CC54DF4F23 +:1049D0008881C45BD0400E941924C555DF4F1882DE +:1049E000CB5AD040C455DF4F1882CC5AD040C35563 +:1049F000DF4F1882CD5AD0400E9488068160782F00 +:104A0000C255DF4F99838883CE5AD040C555DF4FBA +:104A10004881CB5AD040C455DF4F5881CC5AD04042 +:104A2000C355DF4F6881CD5AD040C155DF4F8881D3 +:104A3000CF5AD0400E941924109345020E94880644 +:104A4000909342028093410281E0CC54DF4F0FB635 +:104A5000F894DEBF0FBECDBFDF91CF911F910F91B4 +:104A6000FF90089502E0CA55DF4F0883C65AD04030 +:104A7000C955DF4F1882C75AD04011E0C855DF4FE3 +:104A80001883C85AD0400E9488068160782FC75585 +:104A9000DF4F99838883C95AD040CA55DF4F488178 +:104AA000C65AD040C955DF4F5881C75AD040C85563 +:104AB000DF4F6881C85AD040C655DF4F8881CA5A37 +:104AC000D0400E941924CF55DF4F0883C15AD040EF +:104AD000CE55DF4F1882C25AD040CD55DF4F1882D5 +:104AE000C35AD0400E9488068160782FCC55DF4F92 +:104AF00099838883C45AD040CF55DF4F4881C15A2B +:104B0000D040CE55DF4F5881C25AD040CD55DF4FEF +:104B10006881C35AD040CB55DF4F8881C55AD040F9 +:104B200089CF813009F0C0C0662309F45FC0C45644 +:104B3000DF4F1882CC59D040C356DF4F8883CD5900 +:104B4000D040C256DF4F8883CE59D0400E9488069D +:104B50008160782FC156DF4F99838883CF59D04029 +:104B6000C456DF4F4881CC59D040C356DF4F5881DF +:104B7000CD59D040C256DF4F6881CE59D040C05683 +:104B8000DF4F8881C05AD0400E941924C956DF4F98 +:104B90001882C759D040C856DF4F1883C859D04033 +:104BA000C756DF4F1882C959D0400E9488068160DD +:104BB000782FC656DF4F99838883CA59D040C9568B +:104BC000DF4F4881C759D040C856DF4F5881C85978 +:104BD000D040C756DF4F6881C959D040C556DF4F16 +:104BE0008881CB59D0400E9419242ECF02E0CE56A6 +:104BF000DF4F0883C259D040CD56DF4F8883C35959 +:104C0000D040CC56DF4F8883C459D0400E948806DC +:104C10008160782FCB56DF4F99838883C559D04068 +:104C2000CE56DF4F4881C259D040CD56DF4F588114 +:104C3000C359D040CC56DF4F6881C459D040CA56C2 +:104C4000DF4F8881C659D0400E941924C357DF4FD7 +:104C50000883CD58D040C257DF4F1883CE58D0407C +:104C6000C157DF4F1882CF58D0400E94880681601C +:104C7000782FC057DF4F99838883C059D040C357DE +:104C8000DF4F4881CD58D040C257DF4F5881CE58B2 +:104C9000D040C157DF4F6881CF58D040CF56DF4F4B +:104CA0008881C159D0409FCF823009F0ABC06623C4 +:104CB00009F45EC0C857DF4F1882C858D040C757A4 +:104CC000DF4F8883C958D04081E0C657DF4F8883C3 +:104CD000CA58D0400E9488068160782FC557DF4FA0 +:104CE00099838883CB58D040C857DF4F4881C85834 +:104CF000D040C757DF4F5881C958D040C657DF4F03 +:104D00006881CA58D040C457DF4F8881CC58D04002 +:104D10000E941924CD57DF4F1882C358D040CC577A +:104D2000DF4F1883C458D040CB57DF4F1882C55887 +:104D3000D0400E9488068160782FCA57DF4F998340 +:104D40008883C658D040CD57DF4F4881C358D040E4 +:104D5000CC57DF4F5881C458D040CB57DF4F6881C4 +:104D6000C558D040C957DF4F8881C758D0403BCF86 +:104D7000EF968FAFEF97C158DF4F8883CF57D04062 +:104D800081E0C058DF4F8883C058D0400E94880619 +:104D90008160782FCF57DF4F99838883C158D040E7 +:104DA000EF964FADEF97C158DF4F5881CF57D040A6 +:104DB000C058DF4F6881C058D040CE57DF4F888140 +:104DC000C258D0400E941924EA961FAFEA97EB968A +:104DD0001FAFEB97EC961FAEEC970E9488068160A0 +:104DE000782FEE969FAF8EAFEE97EA964FADEA978B +:104DF000EB965FADEB97EC966FADEC97EE968FADC3 +:104E0000EE97F1CE833009F081C0662309F43FC0EC +:104E100019E0E5961FAFE597E6961FAEE69781E0AD +:104E2000E7968FAFE7970E9488068160782FE99612 +:104E30009FAF8EAFE997E5964FADE597E6965FADEC +:104E4000E697E7966FADE797E9968FADE9970E94F1 +:104E50001924E0961FAFE097E1961FAEE197E29626 +:104E60001FAEE2970E9488068160782FE4969FAF7C +:104E70008EAFE497E0964FADE097E1965FADE19796 +:104E8000E2966FADE297E4968FADE497ACCE1BE06F +:104E9000AB961FAFAB97AC961FAEAC9781E0AD96CB +:104EA0008FAFAD970E9488068160782FAF969FAF35 +:104EB0008EAFAF97AB964FADAB97AC965FADAC975F +:104EC000AD966FADAD97AF968FADAF970E94192499 +:104ED000A6961FAFA697A7961FAEA797A8961FAE38 +:104EE000A8970E9488068160782FAA969FAF8EAF00 +:104EF000AA97A6964FADA697A7965FADA797A89637 +:104F00006FADA897AA968FADAA976DCE843009F0A1 +:104F100081C0662309F43FC009E0A1960FAFA197B5 +:104F200011E0A2961FAFA297A3961FAFA3970E946E +:104F300088068160782FA5969FAF8EAFA597A19622 +:104F40004FADA197A2965FADA297A3966FADA39721 +:104F5000A5968FADA5970E9419246C960FAF6C97FC +:104F60006D961FAF6D976E961FAE6E970E94880666 +:104F70008160782FA0969FAF8EAFA0976C964FADB3 +:104F80006C976D965FAD6D976E966FAD6E97A096B0 +:104F90008FADA09728CE0BE067960FAF679711E013 +:104FA00068961FAF689769961FAF69970E94880639 +:104FB0008160782F6B969FAF8EAF6B9767964FADE2 +:104FC000679768965FAD689769966FAD69976B96BE +:104FD0008FAD6B970E94192462960FAF629763960C +:104FE0001FAF639764961FAE64970E948806816026 +:104FF000782F66969FAF8EAF669762964FAD629799 +:1050000063965FAD639764966FAD649766968FAD58 +:105010006697E9CD853009F07DC0662309F445C067 +:1050200039E0F32E2D96FFAE2D9702E02E960FAFAE +:105030002E9711E02F961FAF2F970E948806816050 +:10504000782F61969FAF8EAF61972D964FAD2D97BC +:105050002E965FAD2E972F966FAD2F9761968FADE1 +:1050600061970E9419242896FFAE289729960FAFC2 +:1050700029972A961FAE2A970E9488068160782F6A +:105080002C969FAF8EAF2C9728964FAD28972996D8 +:105090005FAD29972A966FAD2A972C968FAD2C97E6 +:1050A0000E94192410934402C9CC2BE0F22E2396BF +:1050B000FFAE239702E024960FAF249711E02596C8 +:1050C0001FAF25970E9488068160782F27969FAF93 +:1050D0008EAF279723964FAD239724965FAD2497E5 +:1050E00025966FAD259727968FAD27970E94192497 +:1050F000FDAE0EAF1FAE0E9488068160782F22960B +:105100009FAF8EAF22974DAD5EAD6FAD22968FAD46 +:105110002297C6CF863009F048C0662329F199E06E +:10512000F92EF8AE03E009AF11E01AAF0E9488062D +:105130008160782F9CAF8BAF48AD59AD6AAD8CAD17 +:105140000E941924FBAA0CAB1DAA0E94880681604C +:10515000782F9FAB8EAB4BA95CA96DA98FA90E943C +:105160001924109343026ACC8BE0F82EFEA603E0CC +:105170000FA711E018AB0E9488068160782F9AABC8 +:1051800089AB4EA55FA568A98AA90E941924F9A632 +:105190000AA71BA60E9488068160782F9DA78CA76E +:1051A00049A55AA56BA58DA5DACF873009F041C076 +:1051B0006623F9F013E01CA31DA381E08EA30E94D7 +:1051C00088068160782F98A78FA34CA15DA16EA15E +:1051D00088A50E9419241F8F18A319A20E9488066F +:1051E0008160782F9BA38AA34F8D58A169A18BA1C1 +:1051F000FACC05E00A8F13E01B8F81E08C8F0E94B0 +:1052000088068160782F9E8F8D8F4A8D5B8D6C8D87 +:105210008E8D0E9419240D8B1E8B1F8A0E9488067A +:105220008160782F998F888F4D895E896F89898DEC +:10523000DACC883009F008CC662301F106E0088B4F +:1052400013E0198B81E08A8B0E9488068160782F99 +:105250009C8B8B8B488959896A898C890E94192477 +:105260000B871C871D860E9488068160782F9F8788 +:105270008E874B855C856D858F85B5CC08E00E8368 +:1052800013E01F8381E088870E9488068160782F61 +:105290009A8789874E815F8168858A850E94192453 +:1052A00009831A831B820E9488068160782F9D8360 +:1052B0008C8349815A816B818D8195CC1F920F928D +:1052C0000FB60F9211242F933F934F935F936F93D9 +:1052D0007F938F939F93AF93BF93CF93DF93EF937E +:1052E000FF93D091E900DF708091EC00C82FC1706E +:1052F00080FDC0E81092E9008091F000877F8093E4 +:10530000F00078940E9401181092E9008091F0005A +:1053100088608093F000CD2BCF70C093E900FF919F +:10532000EF91DF91CF91BF91AF919F918F917F913D +:105330006F915F914F913F912F910F900FBE0F9002 +:105340001F9018951F920F920FB60F9211242F9352 +:105350003F934F935F936F937F938F939F93AF93FD +:10536000BF93EF93FF938091E10082FF09C080918A +:10537000E20082FF05C08091E1008B7F8093E10015 +:105380008091DA0080FF24C08091D80080FF20C087 +:105390008091DA008E7F8093DA008091D90080FFBF +:1053A0009BC088E189BD8AE189BD09B400FEFDCFBB +:1053B00081E08093D2028091AD02811109C00E94E8 +:1053C000EC040E94B7058091E20084608093E200C3 +:1053D0008091E10080FF17C08091E20080FF13C040 +:1053E0008091E2008E7F8093E2008091E2008061F4 +:1053F0008093E2008091D80080628093D80019BC2D +:1054000085E08093D2028091E10084FF29C08091E1 +:10541000E20084FF25C088E189BD8AE189BD89B5A4 +:10542000982F917080FFFBCF8091D8008F7D809363 +:10543000D8008091E1008F7E8093E1008091E200AE +:105440008F7E8093E2008091E20081608093E20091 +:105450008091D302882309F445C084E08093D2026E +:105460008091E10083FF27C08091E20083FF23C089 +:105470008091E100877F8093E10082E08093D202F7 +:105480001092D3028091E1008E7F8093E1008091A1 +:10549000E2008E7F8093E2008091E2008061809341 +:1054A000E20042E060E080E00E9485058091F0002B +:1054B00088608093F000FF91EF91BF91AF919F9131 +:1054C0008F917F916F915F914F913F912F910F90AD +:1054D0000FBE0F901F90189519BC1092D202109217 +:1054E000AD0276CF8091E30087FD93E09093D202E6 +:1054F000B7CF78941F921FB61F9211248F939F935A +:10550000AF93BF938091A4029091A502A091A602AF +:10551000B091A7020196A11DB11D8093A4029093A2 +:10552000A502A093A602B093A702BF91AF919F914D +:105530008F911F901FBE1F9018951F921FB61F922C +:1055400011248F939F93AF93BF938091A3028111F6 +:1055500013C08091A4029091A502A091A602B091DF +:10556000A7024196A11DB11D8093A4029093A502AC +:10557000A093A602B093A702BF91AF919F918F9184 +:105580001F901FBE1F901895CDB7DEB7AA970FB614 +:10559000F894DEBF0FBECDBF84B7877F84BF0FB640 +:1055A000F894A895809160008861809360001092C3 +:1055B00060000FBE80E890E00FB6F8948093610021 +:1055C000909361000FBE85B7806885BF85B78068FE +:1055D00085BF8DEB98E09093BF018093BE010E9440 +:1055E000EC040E94B7058091E20084608093E200A1 +:1055F00078948091D2028823A1F01091E9001F7065 +:105600009091EC00892F817090FD80E8182B10920A +:10561000E9008091E80083FD0E9401181F7010933B +:10562000E90082E084BD93E095BD9AEF97BD809339 +:105630006E000E94730F811102C00E94A80E80EFBD +:105640000E94BF0881EF0E94BF0882EF0E94BF083E +:1056500083EF0E94BF0803E511E06FE5E62E61E0ED +:10566000F62ED8018D918D018F3F11F00E94BF0859 +:10567000E016F106B1F710924B0210924A02109216 +:105680007A021092790210924D0210924C021092FE +:105690007C0210927B0210924F0210924E021092E6 +:1056A0007E0210927D0210925102109250021092CE +:1056B000800210927F020E94E117811102C00E94B5 +:1056C000D01582E090E00E94E031809370020E9449 +:1056D0008C0F9093A9028093A8020E943C16EFE3DE +:1056E000FCE93197F1F700C000000E943C16809160 +:1056F000790280FF08C06FEF7FEF90E080E00E94AA +:1057000012320E94D10C83E090E00E94E03190E0E0 +:105710000E94C60B8091DC029091DD020E94B914B8 +:1057200080915202811132C00E94E117811104C0A0 +:105730000E94D0150E94C01588E090E00E94E831D8 +:1057400060935F037093600380936103909362039F +:105750006E7F71F40E94C01588E090E00E94E831ED +:1057600060935F037093600380936103909362037F +:105770000E94D2061092980280915F0380FF03C0BE +:1057800086950E947B1481E0809352026AE871E062 +:1057900056E6852E52E0952E28E731E0E1E8F1E06B +:1057A00041E050E01191812F82958F7090E0DC01F3 +:1057B0009196FC9091971F70E12E6A0101C0CC0C6C +:1057C0001A95EAF70C2D00950F2191960C9391975D +:1057D00092961C9192971C2992961C93D901FD9048 +:1057E0009D010F2D02950F7010E0D8019196BC908D +:1057F000BF2DBF70FB2E6A0101C0CC0CBA95EAF731 +:10580000DC2CD094DB20D8019196DC929197929673 +:10581000DC909297DC289296DC92DC0190968C9139 +:1058200090E002C095958795EA94E2F78170D801DF +:1058300090960C9110E002C015950795FA94E2F746 +:1058400090E000FD92E0892BD4018D934D016E17FD +:105850007F0709F0A7CF86EA92E0909390028093A9 +:105860008F0281E20E947B1481E090E00E944C153F +:1058700080E091E09093A00280939F028091D202F9 +:10588000FF24F39408E11AE1853009F47CC20E94F8 +:105890003C16882359F08FB7F8944091A402509198 +:1058A000A5026091A6027091A7028FBFA9E7B2E09E +:1058B000E1E7F2E010E000E0702F8D919D912191E1 +:1058C00031912817390709F487C22827392760E062 +:1058D000EE24E394F12CA9014E215F21452B09F41C +:1058E00075C269A37AA39C012E213F2191E0232B4D +:1058F00009F490E09BA30E9488068160782F9DA305 +:105900008CA349A15AA16BA18DA10E941924000F5B +:10591000111FF801EF58FD4F80819181E826F9268B +:10592000F182E082809198028823D1F180919702E0 +:10593000E0915F03E695E81BE0939302823009F063 +:1059400062C2F0E0EC53FD4FE4910E2F10E044E210 +:10595000E42E43E1F42E80919402882361F01092AA +:1059600094020E9488069093920280939102109272 +:105970009602109295020E948806E0919102F091A1 +:1059800092028E1B9F0B8F3F9F4750F4E00FF11F39 +:10599000F0939202E093910281E992E0F701099578 +:1059A0003DE5E32E32E0F32E04E512E04FE6442E0F +:1059B00041E0542E58E7652E51E0752E61E8862EA1 +:1059C00061E0962E76E6A72E72E0B72E212C312CC0 +:1059D000D501ED915D01EE0FEE0FD4012D914D013A +:1059E000A22FA295AF70B0E090968C9190E02F70AE +:1059F00002C0959587952A95E2F781709927D30182 +:105A00004D913D01A42FA295AF70B0E090962C91DE +:105A100030E04F7002C0359527954A95E2F7A9010D +:105A20004170552720FF02C042E050E0842BE82B54 +:105A3000D5011197EC93D201CD902D01EF70F0E0DC +:105A4000E15AFE4F8081F7019081890F8083D12C2C +:105A5000082E000C990B20E08C159D054CF0D80108 +:105A60008C918F5F8C9360E0832D0E94A92421E0AC +:105A7000F7018081082E000C990B442755274C19FB +:105A80005D09481759074CF0D8018C9181508C93CF +:105A900061E0832D0E94A92421E0F7018081082E76 +:105AA000000C990BB6010E948131D7018D937D01C5 +:105AB000222A33940F5F1F4FB9E03B1289CF222077 +:105AC00059F08FB7F8944091A4025091A5026091CB +:105AD000A6027091A7028FBF86E0E8E8F2E0DE013F +:105AE000119601900D928A95E1F7F0908A02E0906C +:105AF0008B0210918C0200918D0210928A021092FA +:105B00008B0210928C0210928D028F2D8E2909F437 +:105B100048C080918602909187020E9479069C017C +:105B200090918202992309F4C5C323333105C8F14A +:105B30009F3F19F09F5F90938202FF2059F00E94CF +:105B400043089FEF1F140CF491E0899F802D1124CE +:105B500080938A02EE2059F00E9443089FEF1E14A2 +:105B60000CF491E0899F802D112480938B02309159 +:105B70008A023323B1F020918B02222391F045EB6E +:105B80003403C0011124992309F497C190938A0228 +:105B900045EB240390011124332309F492C130937F +:105BA0008B02812F802B09F448C080918402909150 +:105BB00085020E9479069C0190918102992309F443 +:105BC00074C325363105C8F19F3F19F09F5F90934C +:105BD0008102112359F00E9421089FEF11160CF445 +:105BE00091E0899F802D112480938C02002359F02D +:105BF0000E9421089FEF10160CF491E0899F802DE0 +:105C0000112480938D0230918C023323B1F02091C6 +:105C10008D02222391F045EB3403C0011124992316 +:105C200009F453C190938C0245EB24039001112495 +:105C3000332309F44EC130938D0280918A029091F2 +:105C40008B02892B90918C02892B90918D02892B4C +:105C500011F00E94810786E0FE013196A8E8B2E0CB +:105C600001900D928A95E1F70E94C00690916F0213 +:105C7000891731F00E94C00680936F020E94A11420 +:105C80008091D202843009F0F9CD83E08093E9005D +:105C90008091E80082FFF2CD8091E80090E085FFDE +:105CA00006C00E940B05882309F417C191E080917A +:105CB000E8008B778093E800992309F4DFCDE98130 +:105CC000E150E33108F09DC1F0E0EE56FD4C0C943C +:105CD00095318091D202843009F443C080E00E9463 +:105CE000A1141092980280918E02811116C0F09238 +:105CF0008E0280915F03982F9170909353028E7F54 +:105D000080935F03BFEFE0E7F2E0B150E040F04086 +:105D1000E1F700C000000E94B00F1092A30288E1DA +:105D200090E0A0E40FB6F894A895809360000FBEB1 +:105D3000A093600083B7817F846083BF83B7816055 +:105D400083BF7894889583B78E7F83BF0FB6F8940E +:105D5000A895809160008861809360001092600037 +:105D60000FBE8091D102882371F00E943C16E9E7B2 +:105D7000F2E081919191892B09F078C281E892E05B +:105D80008E179F07B1F78091D202853009F4A1CF19 +:105D90000E94EC170E94C0060E94A11410928E026D +:105DA00080915302882359F080915F038160809332 +:105DB0005F0386950E947B140E949A0F68CD8091A4 +:105DC00099028823C9F30E94B00FF6CF6F5FEE0CE3 +:105DD000FF1C6C3009F07FCD0F5F1F4F04301105A1 +:105DE00009F06ACD8FEF8EA38FA318A60E948806B4 +:105DF0008160782F9AA789A74EA15FA168A58AA57F +:105E00000E9419248FCD863059F4F0E0EF53FD4FF6 +:105E1000E4910E2F10E034E1E32E33E1F32E9BCD1D +:105E2000893061F4E695F0E0E254FD4FE4910E2FE5 +:105E300010E025E6E22E22E1F22E8DCD8F3061F4C6 +:105E4000E695F0E0E554FD4FE4910E2F10E090E16F +:105E5000E92E92E1F92E7FCD853159F4F0E0E85436 +:105E6000FD4FE4910E2F10E08DE9E82E81E1F82E30 +:105E700072CD08E210E0FDE0EF2EF1E1FF2E883157 +:105E800009F469CD833249F4E6EBF2E0059114910F +:105E9000BBEBEB2EB2E1FB2E5ECD04EF11E0A0EDEB +:105EA000EA2EA0E1FA2E843209F455CD00ED17E078 +:105EB000E1EDEE2EE6E0FE2E4ECD81E080938A02EB +:105EC00067CE81E080938B026CCE81E080938C0260 +:105ED000ABCE81E080938D02B0CE00E210E0CE0127 +:105EE00001967C018091E80085FD0AC08091E80060 +:105EF0008B778093E8000E940B05882399F3D6CE18 +:105F00008091F100D7018D937D010150110951F766 +:105F1000CDCE1A8289E08B833FC08A81823009F41A +:105F2000BBC18330A9F0813009F06BC02FB7F89462 +:105F30006091A4027091A5028091A6029091A7029F +:105F40002FBF0E949B316B837C838D839E8324C0F3 +:105F50008091790290917A029827892798279C83CB +:105F60008B8380917B0290917C02982789279827C8 +:105F70009E838D8380917D0290917E029827892750 +:105F8000982798878F8380917F029091800298272D +:105F9000892798279A8789878091D202843009F0CF +:105FA0006DCC1091E9001F709091EC00892F8170E9 +:105FB00090FD80E8182B82E08093E9008091E80052 +:105FC00080FF0DC050E040E060E270E0CE0101963D +:105FD0000E943C058091E8008E778093E8001F7056 +:105FE0001093E9004BCC8A81823059F46B817C811B +:105FF0008D819E810E949B3186E290E00E94F43167 +:10600000CBCF8FEF8983C8CF4C816B818A810E946F +:10601000D10E9827892798279E838D83BDCFED8049 +:10602000FE80FE24EF24FE248A810B81B8E10B9FC1 +:1060300080011124E0E68E9F000D111D11248C813A +:1060400090E0880F991F080F191F6F2DC8018796C0 +:106050000E94F4316E2DC8018896D0CF0E943B0E6D +:106060009BCF8A818138C1F060F4803809F094CFE9 +:1060700020E04B8160916103809160030E944A138C +:106080008BCF823849F1833809F086CF20E04091E8 +:1060900062036C818B81F2CF8B810E947B149B8188 +:1060A00080915F03911111C08E7F80935F031092E6 +:1060B0009802FFEF20E742E0F15020404040E1F736 +:1060C00000C000000E94B00F67CF816080935F0323 +:1060D00086950E947B1460CF8B81809363035CCF95 +:1060E0008A81813899F030F4803809F055CF809159 +:1060F000620311CF823891F0833809F04DCF80913F +:1061000060038B83809161038C8346CF80915F0312 +:1061100080FF02C08695FFCE80E0FDCE80916303B4 +:10612000FACE60915F03709160038091610390915A +:1061300062030E94381330CF80E18A832DCF84E040 +:106140008A8389E1E8CE0A811B8110270127102765 +:10615000CE0101966C01EC80DC01AE0DB11D7D011C +:10616000C80189519C4FEC14FD0409F415CF093185 +:10617000B4E01B0750F40E94E031F60184830F5F06 +:106180001F4FBFEFCB1ADB0AEBCFD60114961C9240 +:10619000F6CF0A811B81102701271027FE013196B7 +:1061A0006F01EC80E00EF12EF11CC80189519C4F6B +:1061B000E016F10609F4F0CE0931F4E01F0728F4E7 +:1061C000D60114966C910E94F431BFEFCB1ADB0A12 +:1061D0000F5F1F4FEACF0E942B0EDECE8AE0ADCFBD +:1061E0000A811B81102701271027FE0131966F01BC +:1061F000EC80CF018E0D911D7C01C8018796EC14B7 +:10620000FD0409F4C9CE003CA3E01A0750F40E9433 +:10621000E031F60184830F5F1F4FBFEFCB1ADB0A1B +:10622000ECCFD60114961C92F6CF0A811B81102761 +:1062300001271027FE0131966F01EC80E00EF12E50 +:10624000F11CC8018796E016F10609F4A5CE003CC2 +:10625000F3E01F0728F4D60114966C910E94F431E4 +:10626000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BD84 +:1062700009B400FEFDCF8091D8008F7D8093D800B7 +:106280008091E00082608093E0008091E00081FDD9 +:10629000FCCF0E94EC1777CD86E290E00E94E031BF +:1062A0001B821C821D828E8377CE2D32314008F0F6 +:1062B0008DCCC3CC2D32314008F03CCC72CC87FB66 +:1062C000082E062687FD819567FD61950E94B131F4 +:1062D0000EF4919507FC81950895AA1BBB1B51E113 +:1062E00007C0AA1FBB1FA617B70710F0A61BB70B46 +:1062F000881F991F5A95A9F780959095BC01CD01EB +:10630000089597FB072E16F4009407D077FD09D067 +:106310000E946D3107FC05D03EF4909581959F4F0A +:106320000895709561957F4F0895EE0FFF1F0590BA +:10633000F491E02D09946927962769277827872704 +:10634000782708950E945D32332312F48A1B9B0B39 +:106350000C94AC310E945D32B7FF0895821B930B01 +:106360000895991B79E004C0991F961708F0961BB1 +:10637000881F7A95C9F780950895FB01DC0102C05A +:1063800005900D9241505040D8F70895FC014150BE +:10639000504030F001900616D1F73197CF010895A3 +:1063A000882799270895FB01DC0104C08D91019095 +:1063B000801921F441505040C8F7881B990B08956B +:1063C000F999FECF92BD81BDF89A992780B50895BD +:1063D000A6E1B0E044E050E00C941A32A8E1B0E04D +:1063E00042E050E00C941A32262FF999FECF92BD6C +:1063F00081BDF89A019700B4021639F01FBA20BD8A +:106400000FB6F894FA9AF99A0FBE08950396272FBB +:106410000E94F5310E94F431252F0E94F531242F7E +:106420000C94F5310196272F0E94F5310C94F4312C +:10643000DC01CB01FC01F999FECF06C0F2BDE1BD44 +:10644000F89A319600B40D9241505040B8F7089533 +:106450000E945D32A59F900DB49F900DA49F800D6A +:10646000911D11240895B7FF0C9428320E94283200 +:10647000821B930B0895A1E21A2EAA1BBB1BFD01E0 +:106480000DC0AA1FBB1FEE1FFF1FA217B307E40713 +:10649000F50720F0A21BB30BE40BF50B661F771F6B +:1064A000881F991F1A9469F760957095809590954B +:1064B0009B01AC01BD01CF010895A29FB001B39F24 +:1064C000C001A39F700D811D1124911DB29F700DFD +:1064D000811D1124911D0895F894FFCF5E0F5E0F6A +:1064E000670F670F690F670F670F670F5E0F5E0F0C +:1064F0006E0F670F670F6E0FE6180E1961190E19F0 +:106500006119411979196119761A831ADC1EDC1E8A +:10651000501F501FAE1FC81F131F131FD31F5D2016 +:106520006E206E20892F8D2FF32F04300F302E30E8 +:10653000313070309130013001309C309F30A330C9 +:0A654000C930EB30EE30F0301531B9 +:10654A007606910C700C6C0C680C01191A1B1C1D38 +:10655A001E1F202122010201002A002A2A0181820B +:10656A0083E200E900EA00B500B600B700CD008377 +:10657A0001CC008A019201940121022302240225FE +:10658A0002260227022A02B300B4006F007000F04C +:10659A00F1F2F3F5F6F70001020304053736350088 +:1065AA00FF0100010000FFFF0000010001FF0004DD +:1065BA0004040404040402026162646690929497DB +:1065CA0006606365679193959607000102020202CD +:1065DA000606060909090909090F0F0F0F0F0F15FA +:1065EA0015151819191919191919191919232440DE +:0E65FA0022B6B6019401DE00C808E1080109CE :00000001FF From 3041f74b4954c87be958016e7ccae8eb1ac780f1 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 6 Nov 2021 00:06:06 -0400 Subject: [PATCH 35/94] Clean up files --- .../solartempest/9e/qmk_firmware - Shortcut.lnk | Bin 1154 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk diff --git a/keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk b/keyboards/solartempest/9e/qmk_firmware - Shortcut.lnk deleted file mode 100644 index 15ada1df2412f92d8cb088807b89bf4901fcdffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcma)5Yesr$ zS=Ye%4CGy_rq-8Nt8<6v?~MGox4I*9)i}H>Xd&$EQegd+iI$uHS}(;55`_7!m`lc% zu-~Q6KB=HhJNR=tqK~WEU4(v`7{nuJJRCT|&JWa$BXvL>at@DJ0(wwEE-0ZG5tU{F2`7Z3iER5?v#!S;ari0*nqcVR_+W22*wDI+% z+(cOjYT$mfLp{_{ryJBMBz-x@+hfsRLjgL3$4~gWHRNm9nUdyOXRVbU(K`JBrRN6) From 4db5c3214bef4bf5d793bfebc8a42c5ac27acaa3 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 6 Nov 2021 23:56:40 -0400 Subject: [PATCH 36/94] Updated rotary encoder code with Drashna's improvements. LED status correction for stretch timer. --- .../solartempest/9e/keymaps/via/keymap.c | 191 ++++++------------ 1 file changed, 62 insertions(+), 129 deletions(-) diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 4158b582c0b6..7d9699ec99bb 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_SLCK, KC_NLCK, KC_P4, KC_P5, KC_P6, //Keys Row 2 RGB_HUD, A(KC_F4), RGB_HUI, //Rotary Encoder 5 ATABR, KC_MSTP, ATABF, //Rotary Encoder 3 - KC_WREF, KC_MYCM, KC_P0, KC_P1, KC_P2, KC_P3, //Keys Row 3 + KC_WREF, STRT, KC_P0, KC_P1, KC_P2, KC_P3, //Keys Row 3 KC_MS_WH_UP, C(KC_W), KC_MS_WH_DOWN, //Rotary Encoder 6 C(S(KC_TAB)), KC_HOME, C(KC_TAB), //Rotary Encoder 8 C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 @@ -206,8 +206,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void matrix_init_user(void) { -} + +#ifdef ENCODER_ENABLE + static uint8_t encoder_state[9] = {0}; + static keypos_t encoder_ccw[9] = {{2, 0}, {2, 1}, {2, 2}, {11, 0}, {11, 1}, {11, 2}, {11, 3}, {5, 3}, {8, 3}}; + static keypos_t encoder_cw[9] = {{0, 0}, {0, 1}, {0, 2}, {9, 0}, {9, 1}, {9, 2}, {9, 3}, {3, 3}, {6, 3}}; + + void encoder_action_unregister(void) { + for (int index = 0; index < 9; ++index) { + if (encoder_state[index]) { + if(index==0){ //Add rotating effect + is_encoder1_rotate = true; + encoder_timer = timer_read(); + } + else if (index==5){ + is_encoder6_rotate = true; + encoder_timer = timer_read(); + } + else if(index==7){ + is_encoder7_rotate = true; + encoder_timer = timer_read(); + } + keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } + } + + void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); + } + + bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return false; + }; +#endif + + void matrix_scan_user(void) { if (is_alt_tab_active) { @@ -216,8 +255,25 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } - + + #ifdef RGBLIGHT_ENABLE //Stretch timer code + if (is_stretch_active && !is_stretch_time) { + if(timer_elapsed(stretch_timer)>60000) { //1 minute has passed. Timer is uint16 max. + stretch_minutes++; + stretch_timer = timer_read(); + } + if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. + rgblight_set_effect_range(0, 42); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_stretch_time = true; + stretch_minutes = 0; + } + } + #endif + + + encoder_action_unregister(); #ifdef RGBLIGHT_ENABLE //Add rotation animations underneath rotary encoders when turning if (!encoder_effect && is_encoder1_rotate) { //Turn on the effect for encoder 1 rgblight_set_effect_range(0, 4); @@ -238,8 +294,8 @@ void matrix_scan_user(void) { if(encoder_effect){ rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); - if(is_stretch_time){ - rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on + if(is_stretch_active){ //Maintain orange LED to indicate stretch timer is still on. + rgblight_sethsv_at(0,230,100,40); } } is_encoder1_rotate = false; @@ -252,21 +308,6 @@ void matrix_scan_user(void) { is_encoder7_rotate = false; } #endif - - #ifdef RGBLIGHT_ENABLE //Stretch timer code - if (is_stretch_active && !is_stretch_time) { - if(timer_elapsed(stretch_timer)>60000) { //1 minute has passed. Timer is uint16 max. - stretch_minutes++; - stretch_timer = timer_read(); - } - if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. - rgblight_set_effect_range(0, 42); - rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); - is_stretch_time = true; - stretch_minutes = 0; - } - } - #endif } bool process_record_user(uint16_t keycode, keyrecord_t *record) { @@ -352,114 +393,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } -bool encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* 1 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder1_rotate = true; - encoder_timer = timer_read(); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder1_rotate = true; - encoder_timer = timer_read(); - } - } - else if (index == 1) { /* 2 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 2) { /* 3 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 3) { /* 4 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 4) { /* 5 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 5) { /* 6 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder6_rotate = true; - encoder_timer = timer_read(); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder6_rotate = true; - encoder_timer = timer_read(); - } - } - else if (index == 6) { /* 7 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder7_rotate = true; - encoder_timer = timer_read(); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - is_encoder7_rotate = true; - encoder_timer = timer_read(); - } - } - else if (index == 7) { /* 8 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 8) { /* 9 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - return true; -} - - // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange From e146857982041a5f51b3aa82314513fa18020920 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 6 Nov 2021 23:57:16 -0400 Subject: [PATCH 37/94] Add firmware file. --- .../solartempest/9e/solartempest_9e_via.hex | 2201 ++++++++--------- 1 file changed, 1035 insertions(+), 1166 deletions(-) diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index 1dd8a7b014c4..4c69b6ed20e3 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C94A2290C945E2922 -:100030000C949D2A0C94EA040C94EA040C94EA04AF +:100020000C94EA040C94EA040C9438250C94F424FF +:100030000C9433260C94EA040C94EA040C94EA041D :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C94792A0C94EA040C94EA04B3 +:100050000C94EA040C940F260C94EA040C94EA0421 :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -80,7 +80,7 @@ :1004F00029282625232250007F004F00115012503A :1005000013505F0060006100CA5C2C00C95CC45CD1 :10051000C25CC35C3900470053005C005D005E00B4 -:10052000C65C3D04C55C815FAD00805FB900B3006F +:10052000C65C3D04C55C815FAD00805FB900845F3F :10053000620059005A005B00F9001A01FA0000003D :10054000000000002B034A002B0156017F005701D9 :100550002B0317012B0101000100010010500100C5 @@ -147,22 +147,22 @@ :100920000200010803410039006500000012034184 :100930000074006C0061006E0074006900730000B8 :1009400000040309040011241FBECFEFD0E1DEBF75 -:10095000CDBF04B603FE27C0809164039091650368 -:10096000A0916603B09167038730904BA740B04BCE -:10097000D1F41092640310926503109266031092F2 -:10098000670314BE84B7877F84BF0FB6F894A89519 +:10095000CDBF04B603FE27C080919103909192030E +:10096000A0919303B09194038730904BA740B04B74 +:10097000D1F410929103109292031092930310926B +:10098000940314BE84B7877F84BF0FB6F894A895EC :1009900080916000886180936000109260000FBEBB -:1009A000E0E0F8E7099523E0AEEBB1E001C01D926D -:1009B000A436B207E1F711E0A0E0B1E0EAE4F5E621 -:1009C00002C005900D92AE3BB107D9F70E94C42A30 -:1009D0000C946C320C940000E8EDF0E080818C7F88 +:1009A000E0E0F8E7099523E0A2EEB1E001C01D9276 +:1009B000A139B207E1F711E0A0E0B1E0EAEEFCE511 +:1009C00002C005900D92A23EB107D9F70E945A26A7 +:1009D0000C943C2E0C940000E8EDF0E080818C7FBC :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 -:100A10001092AD0208952091E4003091E50095E632 +:100A10001092DA0208952091E4003091E50095E605 :100A2000A9012091EC00822F817020FF06C08091E7 :100A3000E80080FF06C080E008952091E80022FDD4 -:100A40001AC08091D202882389F0853089F0809184 +:100A40001AC08091FF02882389F0853089F0809157 :100A5000EB0085FD0FC02091E4003091E5004217C6 :100A60005307F9F29150E1F684E0089582E0089589 :100A700083E0089581E00895EF92FF920F931F9312 @@ -170,10 +170,10 @@ :100A90008091E80085FD0BC08091E8008E778093FF :100AA000E8000E940B05882399F3C82F08C0F701BE :100AB00081917F018093F1000150110949F78C2F3A -:100AC000CF911F910F91FF90EF9008958091D402E4 +:100AC000CF911F910F91FF90EF90089580910103B6 :100AD00087FF13C08091E80082FF06C08091E80084 -:100AE0008B778093E80004C08091D2028111F2CF0D -:100AF00008958091D2028823D9F38091E80080FF85 +:100AE0008B778093E80004C08091FF028111F2CFE0 +:100AF00008958091FF028823D9F38091E80080FF58 :100B0000F8CF8091E8008E77ECCF982F9093E90092 :100B1000242F762F50E0891731F07091EC0020914E :100B2000ED005091F00021FD07C09F5F973071F7F5 @@ -183,49 +183,49 @@ :100B6000F0002091EE0027FDE0CF80E00895CF92C5 :100B7000DF92EF92FF920F931F93CF93DF93C8ED15 :100B8000D0E088818F7E8883E7EDF0E0808181600E -:100B9000808381E08093AD0288818C7F888302EE20 +:100B9000808381E08093DA0288818C7F888302EEF3 :100BA00010E0D8011C921092DA0081EEC82ED12CF0 :100BB000D6011C9288818F7788838881806888839A :100BC00088818F7D888380818068808319BC1092A2 -:100BD000D2021092D3021092D1021092D00290EE63 +:100BD000FF02109200031092FE021092FD0290EEAE :100BE000E92EF12CF70180818B7F808388818160E1 :100BF000888342E060E080E00E948505D6018C9108 :100C00008E7F8C93F80180818160808380818860F1 :100C10008083D7018C918E7F8C93888180618883BB :100C2000DF91CF911F910F91FF90EF90DF90CF90C8 -:100C30000895FC018091DA029091DB0286179707F4 +:100C30000895FC0180910703909108038617970798 :100C4000A0F06115710529F49091E8009E779093CA :100C5000E80090E06115710551F4911108C0809190 :100C6000E80082FF33C080E00895BC01F2CF80919C -:100C7000D2028823B9F18530B9F18091E80083FD73 +:100C7000FF028823B9F18530B9F18091E80083FD46 :100C80002FC08091E80082FDEACF8091E80080FFCC :100C9000E1CF2091F2003091F3006115710519F058 :100CA0002830310558F091E02830310509F090E006 :100CB0002091E8002E772093E800CCCF819180939B -:100CC000F100615071092F5F3F4FE7CF8091D20251 +:100CC000F100615071092F5F3F4FE7CF8091FF0224 :100CD000882341F0853041F08091E80083FFBFCF49 -:100CE00081E0089582E0089583E008958091AF0245 -:100CF00008959C014FB7F8948091A4029091A502A9 -:100D0000A091A602B091A7024FBF821B930B08953A -:100D10002FB7F8948091A4029091A502A091A60209 -:100D2000B091A7022FBF08952091A1023091A20295 -:100D30002817390771F09093A2028093A102E091E5 -:100D40009F02F091A002309721F00084F185E02D00 -:100D50000994089520919D0230919E022817390729 -:100D600071F090939E0280939D02E0919F02F0911A -:100D7000A002309721F00680F781E02D09940895B4 -:100D8000E0919F02F091A002309721F00190F08154 +:100CE00081E0089582E0089583E008958091DC0218 +:100CF00008959C014FB7F8948091D1029091D2024F +:100D0000A091D302B091D4024FBF821B930B0895E0 +:100D10002FB7F8948091D1029091D202A091D30282 +:100D2000B091D4022FBF08952091CE023091CF020E +:100D30002817390771F09093CF028093CE02E0918B +:100D4000CC02F091CD02309721F00084F185E02DA6 +:100D5000099408952091CA023091CB0228173907CF +:100D600071F09093CB028093CA02E091CC02F09193 +:100D7000CD02309721F00680F781E02D0994089587 +:100D8000E091CC02F091CD02309721F00190F081FA :100D9000E02D099480E00895FA01811101C0FB0162 -:100DA0000994089580915F03982F9E7F61F481706C -:100DB000826080935F0380916203853B18F084EB2F -:100DC0008093620308958A34B0F381708864F1CF10 +:100DA0000994089580918903982F9E7F61F4817042 +:100DB00082608093890380918C03853B18F084EBDB +:100DC00080938C0308958A34B0F381708864F1CFE6 :100DD000AF92BF92DF92EF92FF920F931F93CF9348 :100DE000DF93182F062FE901453B08F044EBE42F71 :100DF000F0E0E853FD4F011110C0E4915E2F4E2F3B :100E00004983E8835A83DF91CF911F910F91FF901F :100E1000EF90DF90BF90AF900895202F30E0449185 :100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E946D31812F90E0880F991F73 +:100E3000F0E0BF010E943D2D812F90E0880F991FA7 :100E400055E5569FD001579FB00D11248A1B9B0B6F :100E5000982F990F890F5F01A21AB30AAE9CD00197 :100E6000AF9CB00DBE9CB00D11245B2F089F80017C @@ -238,52 +238,52 @@ :100ED00097CF6430710569F080F06630710509F4D0 :100EE0008FCFF4CFE42F4B2F592F8ACFE42F412FF0 :100EF00087CFEB2F542F492F83CF4B2F5D2DE12F21 -:100F00007FCF0E9488069C0190918A0280918B027B -:100F1000982B21F0309387022093860290918C02C7 -:100F200080918D02982B21F03093850220938402CA -:100F3000E0919F02F091A002309749F082E0809307 -:100F400088020480F581E02D88E892E009940895F4 -:100F500040918A02803F59F480918B0287FF0DC037 -:100F600010928B0241110BC01092820208C0813F87 -:100F700081F480918B0218169CF3442381F08091B8 -:100F80008C0290918D02892B09F05AC01092810237 -:100F90000895823F49F447FFF0CF10928A02809172 -:100FA0008B028111ECCFE0CF833F19F41416ACF320 -:100FB000E4CF90918C02893F29F41916F4F610922F -:100FC0008C02DBCF8A3F19F497FFD7CFF8CF9091EF -:100FD0008D028B3F29F497FFD0CF10928D02CDCF99 +:100F00007FCF0E9488069C019091B7028091B80221 +:100F1000982B21F03093B4022093B3029091B90240 +:100F20008091BA02982B21F03093B2022093B10243 +:100F3000E091CC02F091CD02309749F082E08093AD +:100F4000B5020480F581E02D85EB92E009940895C7 +:100F50004091B702803F59F48091B80287FF0DC0DD +:100F60001092B80241110BC01092AF0208C0813F2D +:100F700081F48091B80218169CF3442381F080918B +:100F8000B9029091BA02892B09F05AC01092AE02B0 +:100F90000895823F49F447FFF0CF1092B702809145 +:100FA000B8028111ECCFE0CF833F19F41416ACF3F3 +:100FB000E4CF9091B902893F29F41916F4F6109202 +:100FC000B902DBCF8A3F19F497FFD7CFF8CF9091C2 +:100FD000BA028B3F29F497FFD0CF1092BA02CDCF3F :100FE0008C3F19F41916CCF3C8CF9CE0980F9530BC :100FF00090F4845F990B21E030E0B90102C0660FE4 -:10100000771F8A95E2F7CB01809590918902892319 -:1010100080938902B2CF8D3F31F4809183028E7F1D -:1010200080938302AACF8E3F21F4809183028D7F2B -:10103000F7CF8F3F09F0A1CF809183028B7FF0CF54 -:1010400008958091830280FD16C081FD16C082FD47 -:1010500016C0809181028823A1F0883280F428E0B4 -:10106000829FC001112468E270E00E948131862FC6 +:10100000771F8A95E2F7CB0180959091B6028923EC +:101010008093B602B2CF8D3F31F48091B0028E7FC3 +:101020008093B002AACF8E3F21F48091B0028D7FD1 +:10103000F7CF8F3F09F0A1CF8091B0028B7FF0CF27 +:1010400008958091B00280FD16C081FD16C082FD1A +:1010500016C08091AE028823A1F0883280F428E087 +:10106000829FC001112468E270E00E94512D862FFA :10107000672B39F0089582E0089584E0089588E0B0 -:10108000089581E008958091830280FD14C081FD60 -:1010900014C082FD16C080918202882381F08431C1 +:10108000089581E008958091B00280FD14C081FD33 +:1010900014C082FD16C08091AF02882381F0843194 :1010A00080F422E3829FC001112464E170E00E9479 -:1010B0008131862F08958CE0089589E1089585E0B7 +:1010B000512D862F08958CE0089589E1089585E0EB :1010C000089582E30895803F31F40E94430881959A -:1010D00080938B020895813F19F40E944308F8CF52 -:1010E000823F31F40E944308819580938A020895DB +:1010D0008093B8020895813F19F40E944308F8CF25 +:1010E000823F31F40E94430881958093B7020895AE :1010F000833F19F40E944308F8CF893F29F40E94E6 -:10110000210880938C0208958A3F21F40E942108CF +:1011000021088093B90208958A3F21F40E942108A2 :101110008195F7CF8B3F31F40E9421088195809310 -:101120008D0208958C3F19F40E942108F8CF9CE0AD +:10112000BA0208958C3F19F40E942108F8CF9CE080 :10113000980F953070F4845F990B21E030E001C086 -:10114000220F8A95EAF780918902822B8093890287 -:1011500008958D3F31F480918302816080938302F2 -:1011600008958E3F21F4809183028260F7CF8F3FF4 -:10117000B9F7809183028460F1CF80E00895F894FC +:10114000220F8A95EAF78091B602822B8093B6022D +:1011500008958D3F31F48091B00281608093B00298 +:1011600008958E3F21F48091B0028260F7CF8F3FC7 +:10117000B9F78091B0028460F1CF80E00895F894CF :10118000E82FE295EF70F0E031A1282F2F7081E079 :1011900090E001C0880F2A95EAF7982F9095932345 -:1011A00091A392A1892B82A3789408959091A8028B +:1011A00091A392A1892B82A3789408959091D5025E :1011B00092FF06C0282F28712830F9F4877F8460B9 :1011C00093FF06C0282F28712831F1F4877E8461AF -:1011D0002091A90220FF06C0382F38713830D9F489 +:1011D0002091D60220FF06C0382F38713830D9F45C :1011E000877F816021FF06C0282F28712831D1F424 :1011F000877E816194FD877E0895282F2471243095 :10120000F9F68B7F8860DCCF282F2471243101F719 @@ -296,21 +296,21 @@ :1012700008F09CC0C03ED10560F5C83AD10508F021 :1012800087C0C53AD10508F0FDC0C130D10509F1CC :101290002097F9F0C430D105E0F440C085339105C2 -:1012A00009F45AC0C997C1F68091A802837089F0E9 +:1012A00009F45AC0C997C1F68091D502837089F0BC :1012B000C0EED0E00EC0833E910599F170F4803EFF -:1012C000910501F1823E910539F68091A80282FDD7 +:1012C000910501F1823E910539F68091D50282FDAA :1012D00021C0CE01DF91CF910895863E910561F145 :1012E000873E910571F1843E910509F0B5CF80915B -:1012F000A90281FFEECF8091A802C7EED0E084FD65 -:101300000DC0E7CF8091A80280FD12C19091A90283 +:1012F000D60281FFEECF8091D502C7EED0E084FD0B +:101300000DC0E7CF8091D50280FD12C19091D60229 :1013100090FFDFCFC3EED0E084FFDBCFD0E0C0E0B2 -:10132000D8CF8091A80282FD06C19091A90290FDBC -:10133000BFCF84FFCECFF2CF8091A80283FDDDCF57 -:10134000C8CF8091A80283FDF9C09091A90291FFB6 -:10135000F0CFC4EED0E0BDCF8091A80285FFB9CF19 -:10136000C9E2D0E0B6CF8091A80285FFB2CFC5E335 -:10137000D0E0AFCF8091A80286FFABCFCAE2D0E029 -:10138000A8CF8091A80286FFA4CFC1E3D0E0A1CF6F +:10132000D8CF8091D50282FD06C19091D60290FD62 +:10133000BFCF84FFCECFF2CF8091D50283FDDDCF2A +:10134000C8CF8091D50283FDF9C09091D60291FF5C +:10135000F0CFC4EED0E0BDCF8091D50285FFB9CFEC +:10136000C9E2D0E0B6CF8091D50285FFB2CFC5E308 +:10137000D0E0AFCF8091D50286FFABCFCAE2D0E0FC +:10138000A8CF8091D50286FFA4CFC1E3D0E0A1CF42 :10139000CF3BD10518F6C85AD0E0CC0FDD1FCF5D8A :1013A000DE4F0990D881C02DD46493CFC11540E29F :1013B000D40758F4C11581E0D80708F08ACFC03FA0 @@ -338,46 +338,46 @@ :10151000D06ADFCE8C2F8F700E94D60834E0D6952B :10152000C7953A95E1F7CF709C2FEC01D069D1CEE9 :10153000C9E3D0E0CECEC2EED0E0CBCEC6EED0E056 -:10154000C8CE8091350281111092350208958091A4 -:10155000340290913302892B90913202892B80932F -:10156000C001909135029923A1F0892B8093C0018D -:1015700080911D01882341F18091A80287FF24C03A -:101580008EE1E2ECF1E090E0815000F591110E94D3 -:10159000A10AE0919F02F091A0023097E1F08091C2 -:1015A0001D01882359F08091A80287FF07C0809110 -:1015B000C0018093C10185E08093C0010280F38166 -:1015C000E02D80EC91E0099486E0DBCF219122238D +:10154000C8CE80915902811110925902089580915C +:10155000580290915702892B90915602892B8093C3 +:10156000E401909159029923A1F0892B8093E40121 +:1015700080911D01882341F18091D50287FF24C00D +:101580008EE1E6EEF1E090E0815000F591110E94CD +:10159000A10AE091CC02F091CD023097E1F0809168 +:1015A0001D01882359F08091D50287FF07C08091E3 +:1015B000E4018093E50185E08093E4010280F381FA +:1015C000E02D84EE91E0099486E0DBCF2191222387 :1015D000D9F29F5FD9CF089590911D019923D1F041 -:1015E0009091A80297FF16C0E82FE695E695E6953C -:1015F000EE31E0F4F0E0E054FE4F282F277081E058 +:1015E0009091D50297FF16C0E82FE695E695E6950F +:1015F000EE31E0F4F0E0EC51FE4F282F277081E04F :1016000090E001C0880F2A95EAF78095928189239E -:1016100082830895E2ECF1E09191891303C0DF0128 -:1016200011971C9291E0E83CF907B1F70895909169 -:101630001D019923C1F09091A80297FF14C0E82FD3 -:10164000E695E695E695EE31F8F4F0E0E054FE4FCD +:1016100082830895E6EEF1E09191891303C0DF0122 +:1016200011971C9291E0EC3EF907B1F70895909163 +:101630001D019923C1F09091D50297FF14C0E82FA6 +:10164000E695E695E695EE31F8F4F0E0EC51FE4FC4 :10165000877021E030E001C0220F8A95EAF782818D -:10166000822B82830895A2ECB1E0EFEF90E02D9100 +:10166000822B82830895A6EEB1E0EFEF90E02D91FA :10167000821751F0EF3F19F4211101C0E92F9F5F4C :101680009630A9F7EF3F09F408950E2E000CFF0BDA -:10169000E054FE4FE6CF809130029091FF01981305 +:10169000EC51FE4FE6CF80915402909123029813B3 :1016A00001C008958F5F8770FACF2CE0929F800D64 :1016B0001124982F977086958695869524E0829FB1 -:1016C000F0011124EF51FE4F50E040E080E0219105 +:1016C000F0011124EB5FFD4F50E040E080E02191FC :1016D00030E0092E02C0369527950A94E2F7217072 :1016E0003327042E01C0220F0A94EAF7822B4F5FA2 :1016F0005F4F4430510559F708952CE0929F800DBB :101700001124982F977041E001C0440F9A95EAF791 -:1017100086958695869594E0899FF0011124EF5176 -:10172000FE4F90E080E070E05191DF0111979B0146 +:1017100086958695869594E0899FF0011124EB5F6C +:10172000FD4F90E080E070E05191DF0111979B0147 :10173000082E02C0369527950A94E2F7217021956C :101740002527242325272C9301968430910561F7C2 :10175000089590E080E00E94AA0690E080E00E9458 -:10176000940610923302109232020E94A70A86E079 -:10177000E8E8F2E0DF011D928A95E9F71092820213 -:1017800010928102109283020C9481079093370289 -:10179000809336020C94A90B882341F08095909198 -:1017A00034028923809334020C94A70A0895882375 -:1017B00039F090913402982B909334020C94A70A3C +:10176000940610925702109256020E94A70A86E031 +:10177000E5EBF2E0DF011D928A95E9F71092AF02E6 +:101780001092AE021092B0020C94810790935B020B +:1017900080935A020C94A90B882341F08095909174 +:1017A00058028923809358020C94A70A089588232D +:1017B00039F090915802982B909358020C94A70AF4 :1017C0000895882309F459C0823871F40E94C00634 :1017D00081FF53C089E30E94170B0E94A70A89E387 :1017E0000E94EC0A0C94A70A833859F40E94C006A0 @@ -386,14 +386,14 @@ :101810000E94170B0E94A70A87E4E2CF9CEF980F63 :10182000913AF0F290E2980F983088F4877021E0B6 :1018300030E0A90102C0440F551F8A95E2F7CA01A2 -:10184000809590913402892380933402CBCF9BE51D +:10184000809590915802892380935802CBCF9BE5D5 :10185000980F933020F490E080E00C94AA0698E56D :10186000980F973120F490E080E00C949406803F2C -:1018700020F00E94A8070C94810708959091D2024D -:10188000943029F58093AA027093AC026093AB0266 +:1018700020F00E94A8070C94810708959091FF0220 +:10188000943029F58093D7027093D9026093D802DF :101890009093E9008FEF9091E800815095FD06C08C :1018A00095ED9A95F1F700008111F5CF8091E80050 -:1018B00085FF0DC050E040E063E070E08AEA92E00E +:1018B00085FF0DC050E040E063E070E087ED92E00E :1018C0000E943C058091E8008E778093E80008959F :1018D000BC0184E00C943E0CBC0183E00C943E0CF3 :1018E0009C0184E08093E9009FEF8091E800915093 @@ -401,17 +401,17 @@ :101900008091E80085FF0CC050E040E066E070E0A8 :10191000C9010E943C058091E8008E778093E80021 :101920000895CF93DF93EC0180911D018823B1F1DD -:101930008091A80287FF32C060E284E08093E900D2 +:101930008091D50287FF32C060E284E08093E900A5 :101940008FEF9091E800815095FD06C095ED9A9536 :10195000F1F700008111F5CF8091E80085FF1BC0F1 :1019600080911D0170E050E040E0811104C050E022 :1019700040E068E070E0CE010E943C058091E80004 -:101980008E778093E80080E2FE01A0EBB2E0019048 +:101980008E778093E80080E2FE01ADEDB2E0019039 :101990000D928A95E1F7DF91CF91089568E081E09B :1019A000CDCF81E08093E00080E28093D800109258 :1019B000C9008FE19EE40197F1F700C0000087E0C5 -:1019C00090EBDC018093640390936503A09366031E -:1019D000B093670388E19CE00FB6F894A8958093D4 +:1019C00090EBDC018093910390939203A093930397 +:1019D000B093940388E19CE00FB6F894A8958093A7 :1019E00060000FBE90936000FFCFCF93C82F882375 :1019F00009F4AEC08238C1F40E94C00681FDA8C0BF :101A000089E30E94170B0E94A70A2FEF81EE94E052 @@ -423,14 +423,14 @@ :101A600087E40E94170B0E94A70A2FEF81EE94E0F3 :101A7000215080409040E1F700C0000087E4CFCFC4 :101A80008CEF8C0F813A88F580911D01882301F13C -:101A90008091A80287FF1CC0EC2FE695E695E6959D -:101AA000F0E0E054FE4F828190E04C2F477021E03F +:101A90008091D50287FF1CC0EC2FE695E695E69570 +:101AA000F0E0EC51FE4F828190E04C2F477021E036 :101AB00030E002C0220F331F4A95E2F782239323BE :101AC000892B79F08C2F0E94EC0A0E94A70A09C08A -:101AD000E2ECF1E08191C817A9F321E0E83CF207BC +:101AD000E6EEF1E08191C817A9F321E0EC3EF207B0 :101AE000C9F78C2F0E94170B9CCF80E28C0F883097 :101AF00068F4C77021E030E001C0220FCA95EAF710 -:101B000080913402822B809334028BCFEBE5EC0F73 +:101B000080915802822B809358028BCFEBE5EC0F2B :101B1000E33040F4F0E0E25EFE4F808190E0CF9150 :101B20000C94AA06E8E5EC0FE73150F4F0E0EE0F74 :101B3000FF1FEF5DFE4F80819181CF910C94940641 @@ -440,10 +440,10 @@ :101B700031F4812FDF91CF911F910C94E10B8FE90C :101B80009FE00197F1F700C000002197F0CF0F937D :101B90001F93CF93DF93C62FD42F022FFC01828196 -:101BA0008823A1F06093E0020E9488069093DF02F0 -:101BB0008093DE02C77081E001C0880FCA95EAF702 -:101BC000DF91CF911F910F910C94D70B8091E00280 -:101BD000681335C08091DE029091DF020E94790681 +:101BA0008823A1F0609390030E94880690938F038E +:101BB00080938E03C77081E001C0880FCA95EAF751 +:101BC000DF91CF911F910F910C94D70B80919003CF +:101BD000681335C080918E0390918F030E9479061F :101BE000883C910560F510E21D0FCD17B9F080E239 :101BF0008C0F883040F4C77081E001C0880FCA950F :101C0000EAF70E94CC0B183048F481E09D2F9770C2 @@ -452,35 +452,35 @@ :101C3000EAF7DF91CF911F910F910C94CC0BC770F5 :101C400081E001C0880FCA95EAF7F3CFDF91CF9109 :101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E94F4312196C11588E0D807B9F75A +:101C6000CE010E94C42D2196C11588E0D807B9F78E :101C7000DF91CF9108956F927F928F929F92AF9252 :101C8000BF92CF92DF92EF92FF920F931F93CF9369 :101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 :101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E94F431682DC80101960E9467 -:101CC000F43182E0A80EB11C0E5F1F4FC017D10780 +:101CB000692DC8010E94C42D682DC80101960E949B +:101CC000C42D82E0A80EB11C0E5F1F4FC017D107B4 :101CD00061F788E1680E711C6896CE15DF0529F062 :101CE0008E01085111095301E0CF7E0180E6E80E14 :101CF000F11C80E6C80ED11C8FE5E81684E0F806DA :101D000079F6DF91CF911F910F91FF90EF90DF90C7 :101D1000CF90BF90AF909F908F907F906F900895DD :101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D3000F4316FEFC11161E184E290E00E94F4316F -:101D40006FEFC11165E085E290E0CF910C94F43122 -:101D500080E00E94900E60E086E290E00E94F43104 +:101D3000C42D6FEFC11161E184E290E00E94C42DD7 +:101D40006FEFC11166E085E290E0CF910C94C42D55 +:101D500080E00E94900E60E086E290E00E94C42D38 :101D60000E943B0E0E942B0E81E00C94900ECF93AC -:101D7000C091A902C2FB992790F9981781F080FBC6 -:101D8000C2F9C093A9026091A80284E090E00E9489 -:101D9000F4316C2F82E290E0CF910C94F431CF912A +:101D7000C091D602C2FB992790F9981781F080FB99 +:101D8000C2F9C093D6026091D50284E090E00E942F +:101D9000C42D6C2F82E290E0CF910C94C42DCF9192 :101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 :101DB000DD1F28E1629FC00DD11D112430E6839FF5 -:101DC000C00DD11D1124CE0187960E94E031082F4D -:101DD00010E0102F0027CE0188960E94E031980174 +:101DC000C00DD11D1124CE0187960E94B02D082F81 +:101DD00010E0102F0027CE0188960E94B02D9801A8 :101DE000282BC901DF91CF911F910F910895462FA4 :101DF0008A3038F4743028F46C3018F4672F0C945F :101E0000D10E90E080E00895BF92CF92DF92EF92E2 -:101E1000FF920F931F93CF93DF937C010091DC021D -:101E20001091DD028091360290913702082B192B18 +:101E1000FF920F931F93CF93DF937C0100910903EF +:101E200010910A0380915A0290915B02082B192BA2 :101E3000CFE0D0E0CC24C394D12CBC2EC6010C2E14 :101E400002C0880F991F0A94E2F780239123892BFF :101E500071F4219790F7B12C8B2DDF91CF911F91C9 @@ -489,25 +489,25 @@ :101E8000CF93DF93EC010E94040FBE010E94F70E76 :101E9000DF91CF910C941909FC01808191810E94FE :101EA000400F292F2F7092959F7092509E3078F49A -:101EB000E92FF0E0E259FD4C0C949531803F19F088 +:101EB000E92FF0E0E25CF14D0C94652D803F19F0C4 :101EC00020F4883E20F481E00895843FE1F380E02F :101ED0000895883EC0F3813FD1F7F5CF822F8695D4 -:101EE00086958695089583E290E00E94E0318132E4 -:101EF00089F484E290E00E94E031813159F485E276 -:101F000090E00E94E03191E0853009F090E0892F67 +:101EE00086958695089583E290E00E94B02D813218 +:101EF00089F484E290E00E94B02D813159F485E2AA +:101F000090E00E94B02D91E0863009F090E0892F9A :101F10008170089580E0FCCFCF9384E090E00E9430 -:101F2000E031C82F82E290E00E94E031982F8C2FA0 -:101F3000CF91089560915F03669570E04BE050E0AB -:101F40008AE091E00E94C631892B19F481E08093E8 -:101F500098020E94880690939202809391020895BD +:101F2000B02DC82F82E290E00E94B02D982F8C2F08 +:101F3000CF91089560918903669570E04BE050E081 +:101F40008AE091E00E94962D892B19F481E080931C +:101F5000C5020E9488069093BF028093BE02089536 :101F60004F925F926F927F928F929F92AF92BF92A9 :101F7000CF92DF92EF92FF920F931F93CF93DF9355 :101F8000CDB7DEB7CE57D1090FB6F894DEBF0FBE7E -:101F9000CDBF5090190180915F0380FF5DC080909C -:101FA0008F02909090028114910409F068C0EDECCA +:101F9000CDBF509019018091890380FF5DC0809072 +:101FA000BC029090BD028114910409F068C0EDEC70 :101FB000F3E09E012F5F3F4FBE0161587F4FC90183 :101FC000A4914A2F50E0DA01AA0FBB1FA40FB51F3E -:101FD000AF51BD4FCD90DD90EC90D901CD92DD9207 +:101FD000A55FBC4FCD90DD90EC90D901CD92DD9204 :101FE000ED929D0131966A177B0751F720911801F8 :101FF00043E0249F800D911D11246E9A2EB12F7BFA :102000003EB130645FB7F894BC01549E600D711D01 @@ -516,41 +516,41 @@ :10203000DEBF0FBECDBFDF91CF911F910F91FF90FB :10204000EF90DF90CF90BF90AF909F908F907F9058 :102050006F905F904F90089580911A0190911B01AD -:1020600023E0829FF0011124EF51FD4F891708F002 +:1020600023E0829FF0011124E55FFC4F891708F0FF :1020700096CF1182108212828F5F3396F7CF8091B4 -:102080008E02811194CFD12CC12C66246394712CC3 -:1020900053E0452E8091990293010C2C01C0220F30 +:10208000BB02811194CFD12CC12C66246394712C96 +:1020900053E0452E8091C60293010C2C01C0220F03 :1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 :1020B000E80DF91DE590F490E114F10409F477CFEF -:1020C00045E050E0B701CE0101960E94BD31098183 +:1020C00045E050E0B701CE0101960E948D2D0981B7 :1020D0000F3F39F18A81800F9927991F8B32910523 :1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 -:1020F000DC01AF51BD4F5D01049D800111240F51E2 -:102100001D4F0A151B0520F0B5E0EB0EF11CD8CFD2 +:1020F000DC01A55FBC4F5D01049D80011124055FDB +:102100001C4F0A151B0520F0B5E0EB0EF11CD8CFD3 :1021100098014D816C818B810E94E8060D5F1F4FF5 :10212000F0CFEFEFCE1ADE0AF8E0CF16D10409F0B7 :10213000B1CF3DCFFC014191CF01E8E03EB90000B5 :1021400000C047FF2EB9440F000000C000C000C00F :102150002EB900C0EA9591F75CCFCF93DF9300D002 -:102160000F92CDB7DEB780915F0380FF13C09E0151 +:102160000F92CDB7DEB78091890380FF13C09E0127 :102170002F5F3F4F44E666EE80E00E94E8068B81C9 -:1021800099812A8120935A039093590380935B038A +:1021800099812A812093840390938303809385030C :102190000E94B00F0F900F900F90DF91CF91089594 :1021A0000F931F93CF93DF93EC0110E000E0909129 :1021B0001C019017110609F06CF40E94B00F8C817D :1021C00090E00196817099278C83DF91CF911F91C8 :1021D0000F91089520911A01A801420F511D9A01F3 -:1021E000220F331F240F351F2F513D4F4C8160911B -:1021F00061038091600396959017110651F04CF0A1 -:10220000442349F0409162030E94E8060F5F1F4F8C +:1021E000220F331F240F351F255F3C4F4C81609118 +:1021F0008B0380918A0396959017110651F04CF04D +:10220000442349F040918C030E94E8060F5F1F4F62 :10221000CECF4423B9F340E0F7CF8F929F92AF9295 :10222000BF92CF92DF92EF92FF920F931F93CF93C3 :10223000DF93EC014C81042F10E09801D8010E943B -:102240005D329B01AC010E9428324B015C01E0E24F +:102240002D2E9B01AC010E94F82D4B015C01E0E2B8 :10225000F0E0E01BF10BA5E5B0E0AC019B010E94B2 -:1022600028326B017C019F01DF010E94A2319B019A -:10227000AC010E9433329B01AC01280D391D4A1D6F -:102280005B1DC701B6010E943B32F22E822F90E007 +:10226000F82D6B017C019F01DF010E94722D9B0103 +:10227000AC010E94032E9B01AC01280D391D4A1DA3 +:102280005B1DC701B6010E940B2EF22E822F90E03B :1022900039E23F1560F143E0249F90011124359508 :1022A0002795122F109500E085E5E82EEF18809114 :1022B0001C01081758F10E94B00F9C8181E09923FE @@ -560,104 +560,104 @@ :1022F00030E0B901681B790B9B01220F331F260FB9 :10230000371F37FFCCCF2F5F3F4FC9CF8E2D01FD39 :102310008F2D20911A01622F600F7727771F9B0165 -:10232000220F331F260F371F2F513D4F412F609132 -:1023300061030E94E8060F5FBACF0F931F93CF93FC +:10232000220F331F260F371F255F3C4F412F60912F +:102330008B030E94E8060F5FBACF0F931F93CF93D2 :10234000DF9380911A0190911B0123E0829FF0019D -:102350001124EF51FD4F891740F1C0E0D3E06091A7 +:102350001124E55FFC4F891740F1C0E0D3E06091A4 :102360001C01C61740F10E94B00F20911501809109 -:102370009B02820F80939B0290911601920F909383 +:10237000C802820F8093C80290911601920F909329 :102380001601191654F4082E000C990B40911C01EB :102390004150550B841795071CF02195209315018A :1023A000DF91CF911F910F910895118210821282B7 :1023B0008F5F3396D0CF0C2F10E070E0C8010E94E1 -:1023C000813120911A01820F482F50E020919B0209 +:1023C000512D20911A01820F482F50E02091C80210 :1023D000022E000C330B02171307BCF020911601DC :1023E000022E000C330B201731077CF08D9F9001DB -:1023F00011242F513D4F4091620360916103809100 -:1024000060030E94E806CF5FAACFFA01EE0FFF1F1C -:10241000E40FF51FEF51FD4F118210821282F3CFAE +:1023F0001124255F3C4F40918C0360918B038091A9 +:102400008A030E94E806CF5FAACFFA01EE0FFF1FF2 +:10241000E40FF51FE55FFC4F118210821282F3CFAB :102420001F93CF93DF93FC018281DFEF80FFD1E028 :10243000C0E01AE290911C01C91788F00E94B00F09 -:1024400080919A02D130C9F5811102C080911C019E -:10245000815080939A02DF91CF911F910895E0916E +:102440008091C702D130C9F5811102C080911C0171 +:1024500081508093C702DF91CF911F910895E09141 :102460001A014C2F50E09A012E0F311DF901EE0F89 -:10247000FF1FE20FF31FEF51FD4F118210821282F6 -:1024800080919A028B32ACF0612F0E945F31892FCC +:10247000FF1FE20FF31FE55FFC4F118210821282F3 +:102480008091C7028B32ACF0612F0E942F2D892FD3 :10249000082E000C990B4817590749F49F014091E9 -:1024A000620360916103809160030E94E806CF5F40 +:1024A0008C0360918B0380918A030E94E806CF5FC2 :1024B000C1CF87FFEDCF890FEBCF90E00196609100 -:1024C0001C0170E00E948131C4CFEF92FF921F93F4 +:1024C0001C0170E00E94512DC4CFEF92FF921F9328 :1024D000CF93DF93EC0110E0EE24EA94F12C6091AD :1024E0001C01161770F00E94B00F9A818C8190FF2A :1024F00027C08F5F8C83DF91CF911F91FF90EF906A :10250000089520911A01422F410F5527551FCA01E6 -:102510009A01220F331F280F391F2F513D4F70E0B2 -:10252000C7010E948131962F8C8140916203609196 -:102530006103199F800D11240E94E8061F5FCFCF11 -:102540008150D8CF90915F0390FF14C090911A01F1 -:1025500020911B0133E0939FF0011124EF51FD4FB7 +:102510009A01220F331F280F391F255F3C4F70E0AF +:10252000C7010E94512D962F8C8140918C036091A0 +:102530008B03199F800D11240E94E8061F5FCFCFE7 +:102540008150D8CF9091890390FF14C090911A01C7 +:1025500020911B0133E0939FF0011124E55FFC4FB4 :10256000921710F00C94B00F8183608342839F5FB9 :102570003396F6CF08950F931F93CF93DF9300D038 -:102580000F92CDB7DEB78C0180919C0281110AC0F9 +:102580000F92CDB7DEB78C018091C90281110AC0CC :102590009E012F5F3F4F44EB6FEF0E94E8068A8158 -:1025A00080939C02F8016481613069F080919C0203 -:1025B00040E0662361F040E0623011F440919C02FB -:1025C00080E060E004C060919C0240E080E00E94F6 +:1025A0008093C902F8016481613069F08091C902A9 +:1025B00040E0662361F040E0623011F44091C902CE +:1025C00080E060E004C06091C90240E080E00E94C9 :1025D000A212F801848190E0019663E070E00E940D -:1025E000813184830F900F900F90DF91CF911F91D5 +:1025E000512D84830F900F900F90DF91CF911F9109 :1025F0000F910895CF93DF9300D00F92CDB7DEB740 -:1026000090915F0390FF0AC09E012F5F3F4F0E9491 +:102600009091890390FF0AC09E012F5F3F4F0E9467 :10261000E8064B8169818A810E94A2120F900F9077 -:102620000F90DF91CF910895CF93DF93EC01EFE509 +:102620000F90DF91CF910895CF93DF93EC01E9E80C :10263000F3E0438162818C810E94FA128C818F5F6A :102640008C83DF91CF910895CF93DF93EC01EC81E0 -:10265000F0E0EA50FC4F4491EFE5F3E062818181C4 +:10265000F0E0EA50FC4F4491E9E8F3E062818181C7 :102660000E94FA128C818F5F8C83DF91CF91089545 :10267000CF92DF92EF92FF926B017C010E94D20613 :10268000B701A60188E090E0FF90EF90DF90CF9037 -:102690000C940632AF92BF92CF92DF92EF92FF92EC +:102690000C94D62DAF92BF92CF92DF92EF92FF9221 :1026A0000F931F93CF93DF9300D00F92CDB7DEB778 -:1026B000182FF62E042FE22E90915F0390FF29C071 -:1026C000E92FE695AE2FB0E0A657BE4F8C918093D0 -:1026D00097029E7F923059F59E012F5F3F4F812FC9 +:1026B000182FF62E042FE22E9091890390FF29C047 +:1026C000E92FE695AE2FB0E0A255BE4F8C918093D6 +:1026D000C4029E7F923059F59E012F5F3F4F812F9C :1026E0000E94E8064B8169818A810E94A2121093A0 -:1026F0006003F092610300936203EE2051F0609159 -:102700005F037091600380916103909162030E9466 +:1026F0008A03F0928B0300938C03EE2051F06091DB +:10270000890370918A0380918B0390918C030E94BE :1027100038130F900F900F90DF91CF911F910F9171 :10272000FF90EF90DF90CF90BF90AF9008958230F0 -:1027300019F400916203DBCF863019F41091600325 +:1027300019F400918C03DBCF863019F410918A03D1 :10274000D6CF8930D9F3893191F6E9518E2F817036 :10275000D82EE695F0E0E853FC4FA590B490C12C3C :10276000BB2460911C01C61618F00E94B00FBFCFA9 :102770002C2D30E0A29EC001A39E900DB29E900D24 -:10278000112470E00E946D31812FD11013C0860F8B +:10278000112470E00E943D2D812FD11013C0860FBF :1027900040911A01420F532F511D9A01220F331FEE -:1027A000240F351F2F513D4F402F6F2D0E94E806FB -:1027B000C394D7CF861BECCFEFE5F3E0438128E04D +:1027A000240F351F255F3C4F402F6F2D0E94E806F8 +:1027B000C394D7CF861BECCFE9E8F3E0438128E050 :1027C000421B08F440E021E0628181810C944A13AD -:1027D000EFE5F3E0438128E0420F08F44FEF21E0FA -:1027E000628181810C944A13EFE5F3E0628128E075 +:1027D000E9E8F3E0438128E0420F08F44FEF21E0FD +:1027E000628181810C944A13E9E8F3E0628128E078 :1027F000621B08F460E021E0438181810C944A135C -:10280000EFE5F3E0628128E0620F08F46FEF21E06A -:10281000438181810C944A13EFE5F3E0818121E04B -:102820004381628188500C944A13EFE5F3E0818183 -:1028300021E043816281885F0C944A138091630395 -:10284000882319F081508093630360915F03709136 -:10285000600380916103909162030C94381380911E -:102860006303833018F48F5F8093630360915F0389 -:102870007091600380916103909162030C9438130E -:1028800090915F0390FF36C09170811129C09260D2 -:1028900090935F03662351F060915F037091600332 -:1028A00080916103909162030E94381360915F03ED -:1028B000669570E04BE050E08AE091E00E94C631FE -:1028C000892BA9F01092980281E08093940220E075 -:1028D0004091620360916103809160030C944A13FC +:10280000E9E8F3E0628128E0620F08F46FEF21E06D +:10281000438181810C944A13E9E8F3E0818121E04E +:102820004381628188500C944A13E9E8F3E0818186 +:1028300021E043816281885F0C944A1380918D036B +:10284000882319F0815080938D03609189037091E2 +:102850008A0380918B0390918C030C9438138091A0 +:102860008D03833018F48F5F80938D03609189030B +:1028700070918A0380918B0390918C030C94381390 +:102880009091890390FF36C09170811129C09260A8 +:1028900090938903662351F06091890370918A03B4 +:1028A00080918B0390918C030E943813609189036F +:1028B000669570E04BE050E08AE091E00E94962D32 +:1028C000892BA9F01092C50281E08093C10220E01B +:1028D00040918C0360918B0380918A030C944A137E :1028E000853210F09864D4CF880F982BD1CF0E94F6 :1028F0009A0FEACF089560E00C94401421E030E094 :10290000A90102C0440F551F8A95E2F7CA01209120 -:102910009902662391F0822B80939902809198020C -:10292000811105C080915F0386950E947B14809180 -:102930005F0380FD05C00C94B00F80958223ECCF1F +:10291000C602662391F0822B8093C6028091C50285 +:10292000811105C08091890386950E947B14809156 +:10293000890380FD05C00C94B00F80958223ECCFF5 :102940000895CF93DF93C82FC17082FBDD27D0F9A4 :1029500081FB662760F984E00E947E1461E06C27A9 :1029600085E00E947E146D2F86E0DF91CF910C945C @@ -679,956 +679,825 @@ :102A6000C6CF20E04EE16FEF82E30E944A13CE0111 :102A7000DF91CF911F910F91089520E04EE16FEF0C :102A80008EE1F3CF20E04EE16FEF8AE6EECF20E05B -:102A90004EE16FEF87EDE9CF0E94B9149093DD020C -:102AA0008093DC020C94A90B8091DC029091DD02F2 +:102A90004EE16FEF87EDE9CF0E94B91490930A03DE +:102AA000809309030C94A90B8091090390910A0368 :102AB0009C01267033272630310519F488600C9468 :102AC0004C15877FFCCF21E030E002C0220F331F7E -:102AD0008A95E2F7209530958091DC029091DD0295 -:102AE000822393230C944C15909131028095892375 -:102AF00080933102282F277039F4282F082E000CDC -:102B0000330B9217130621F49091A90292FF07C08C -:102B10008595859585950E946315109231020895DB +:102AD0008A95E2F7209530958091090390910A0339 +:102AE000822393230C944C15909155028095892351 +:102AF00080935502282F277039F4282F082E000CB8 +:102B0000330B9217130621F49091D60292FF07C05F +:102B10008595859585950E946315109255020895B7 :102B200021E030E002C0220F331F8A95E2F7809146 -:102B3000DC029091DD02822B932B0C944C1580913A -:102B40005F038695815009F484E261E00C9440149F -:102B500080915F0386958F5F853208F081E061E0A8 -:102B60000C94401490915F0390FF07C096959817BE +:102B3000090390910A03822B932B0C944C158091DE +:102B400089038695815009F484E261E00C94401475 +:102B50008091890386958F5F853208F081E061E07E +:102B60000C9440149091890390FF07C09695981794 :102B700020F0961710F40C94A81561E00C94401402 -:102B8000EFE5F3E083E0808311828FEF828384EBB3 +:102B8000E9E8F3E083E0808311828FEF828384EBB6 :102B90008383148260817181828193810C943813C4 -:102BA00069EE7EEF90E080E00E94123260E082E009 -:102BB00090E00E94F43160E083E090E00E94F43104 -:102BC000109237021092360260E084E090E00E949A -:102BD000F43160E082E290E00E94F43160E085E050 -:102BE00090E00E94F43160E086E090E00E94F431D1 -:102BF0006FEF87E090E00E94F43140E050E0BA01CE -:102C000088E090E00E94063260E08DE090E00E9453 -:102C1000F43140E050E0BA0188E190E00E940632D1 -:102C200060E087E190E00E94F43140E050E0BA01BA -:102C30008CE190E00E94063270E060E080E290E07B -:102C40000E94123240E050E0BA0188E190E00E9418 -:102C5000063280E00E94900E0E94A80E40E050E0F4 -:102C6000BA018FE090E00E94063240E050E0BA01E5 -:102C700083E190E00C9406326F927F928F929F9244 -:102C8000AF92BF92CF92DF92EF92FF920F931F937A -:102C9000CF93DF93CDB7DEB728970FB6F894DEBF9A -:102CA0000FBECDBF8E010F5F1F4F88E0F80111925C -:102CB0008A95E9F78FE4E82E81E0F82E680193E524 -:102CC000692E91E0792E88248394912CF7018191CB -:102CD0007F018F3F09F44BC0F894E82FE295EF7025 -:102CE000F0E021A18F70A40102C0440F551F8A9506 -:102CF000E2F7CA01922F982B91A392A18095892384 -:102D000082A3789400C0E3E5F1E030E020E0B12C4C -:102D1000A12C81918F3F09F47CC0A82FA295AF70A0 -:102D2000B0E090964C9150E08F7002C05595479559 -:102D30008A95E2F740FD6DC0C401022E02C0880FE3 -:102D4000991F0A94E2F7A82AB92A2F5F3F4F2C3027 -:102D50003105F9F6F701319780818F3F11F00E941C -:102D6000BF0850EA5A95F1F7F601B182A082F2E06D -:102D7000CF0ED11C6E147F0409F0A8CF48E050E0BC -:102D8000B8018AE492E00E94D331FF24F3940097C3 -:102D900009F4F12C892B09F43FC088E0F801AAE47A -:102DA000B2E001900D928A95E1F781E080933A02BA -:102DB0000E948806909339028093380280913802ED -:102DC000909139020E947906059750F180914A024C -:102DD00090914B0290937A028093790280914C02F9 -:102DE00090914D0290937C0280937B0280914E02E1 -:102DF00090914F0290937E0280937D0280915002C9 -:102E0000909151029093800280937F0210923A0237 -:102E100007C090E080E097CF80913A028111CECF39 -:102E200080914902882371F0809147029091480275 -:102E30000E947906893E934028F082EE0E94E10BC1 -:102E4000109249021091460280914502111185C0ED -:102E5000882309F45CC010921A0184E080931B015E -:102E600080931C018FE00E947B141092450281E048 -:102E70008093460280913F02882399F1809140021D -:102E800081112FC080913D0290913E020E947906EF -:102E900081369A4E78F080913B0290913C020196E7 -:102EA00090933C0280933B020E94880690933E02DE -:102EB00080933D0280913B0290913C024F9788F0B5 -:102EC00010921A018AE280931B0180931C018FE00B -:102ED0000E947B1481E08093400210923C02109289 -:102EE0003B028F2D28960FB6F894DEBF0FBECDBFE4 -:102EF000DF91CF911F910F91FF90EF90DF90CF90D6 -:102F0000BF90AF909F908F907F906F900895809129 -:102F10004402882379F086E180931A018AE1809344 -:102F20001B0184E080931C018FE00E947B141092AF -:102F300044029DCF809143028823A9F08AE18093C7 -:102F40001A018EE180931B0184E080931C018FE0C5 -:102F50000E947B14109243028ACF81112BC0809172 -:102F60004402811127C080914302811123C08091C6 -:102F70004102909142020E947906853F9140D0F033 -:102F8000112379F010921A018AE280931B01809339 -:102F90001C0181E20E947B148091400281110E94F9 -:102FA000AD1010924502109244021092430210920A -:102FB000460260CF109245021092440210924302E2 -:102FC00059CF90E080E00E94EE31893E9E4F11F48F -:102FD0000C94730F80E008951092340280911D01CB -:102FE000E2ECF1E0882359F08091A80287FF07C046 -:102FF0008EE1DF011D928A95E9F70C94A90B86E01A -:10300000F8CF1F93CF93DF93CDB7DEB7AA970FB654 -:10301000F894DEBF0FBECDBF84ED92E02091F100A9 -:10302000DC012D93CD01B2E08C3D9B07B9F7809177 -:10303000D502833009F471C0B8F4813009F448C076 -:10304000823009F4B2C08091E80083FF3AC18091D8 -:10305000D4029091D5029A3008F033C1E92FF0E004 -:10306000E458FD4C0C9495318A3009F48DC08B30B6 -:1030700009F470C0893039F78091D402813219F790 -:103080008091D8029091D902009711F00297D9F659 -:103090008091E800877F8093E8008091E80082FFBC -:1030A00037C08091F2009091F300029729F480914B -:1030B000F1008B7F813021F48091F1008093AF0289 -:1030C0008091E8008B778093E8000E946605BBCF73 -:1030D0008091D402813A09F0B6CF8091E800877FD1 -:1030E0008093E8008091D8029091D902892B61F4F5 -:1030F00060E280EB92E070E00E9419068091E800A7 -:103100008B778093E8009FCF60E090E080E0F3CF82 -:103110008091D2028111C1CF96CF8091D402813AA1 -:1031200009F091CF8091D8029091D902892B09F0B2 -:103130008ACF8091E800877F8093E8008091E80043 -:1031400080FFFCCF80911D018093F1008091E80009 -:103150008E77B9CF8091D402813209F074CF8091FB -:10316000D8029091D902892B09F06DCF8091E800A7 -:10317000877F8093E8000E9466058091D602809345 -:103180001D010E94EC175FCF8091D402813209F0BB -:103190005ACF8091E800877F8093E8000E946605FF -:1031A0008091D7028093AE024ECF8091D402813AB3 -:1031B00009F049CF8091E800877F8093E8008091F3 -:1031C000E80080FFFCCF8091AE02BECF803899F03E -:1031D000823809F076C08091D8028F70873008F06D -:1031E00070C08093E9008091EB0085FB882780F90F -:1031F0001092E90006C08091D0029091D102911105 -:1032000082609091E800977F9093E8008093F100AE -:103210001092F1008091E8008E77B5C1882309F4FF -:10322000A2C1823009F04DC08091D6028111A6C1A1 -:103230008091D8028F702FEF280F263008F041C000 -:103240008093E9002091EB0020FF98C1933031F486 -:103250008091EB0080628093EB0090C19091EB0035 -:1032600090619093EB0021E030E001C0220F8A953D -:10327000EAF72093EA001092EA008091EB00886060 -:10328000EACF81111EC01091D6021F778091E30012 -:103290008078812B8093E3008091E800877F809382 -:1032A000E8000E9466058091E80080FFFCCF8091D5 -:1032B000E30080688093E30082E0111183E0809353 -:1032C000D2028091E80083FF0AC08091E800877FE6 -:1032D0008093E8008091EB0080628093EB00AA96D7 -:1032E0000FB6F894DEBF0FBECDBFDF91CF911F9117 -:1032F00008958058823028F72091D6023091D70265 -:103300002C3DE3E03E07A1F583E08A838AE28983CE -:103310004FB7F894DE01139620E03EE051E2E32F30 -:10332000F0E050935700E49120FF03C0E295EF7066 -:103330003F5FEF708E2F90E0EA30C0F0C7968D931C -:103340009D932F5F243159F74FBF8091E800877F0D -:103350008093E8006AE270E0CE0101960E941906AF -:103360008091E8008B778093E800ABCFC096E7CFE1 -:103370008091D8029091D902432F552743305105AF -:1033800009F44AC078F54130510509F47AC08BE55B -:1033900090E0E6EBF8E04230510509F092CF209141 -:1033A000E800277F2093E8002091DA023091DB02C9 -:1033B0008217930708F49C0140E02115310509F0BC -:1033C00065C0411163C08091E80082FDC9CF809142 -:1033D000D202882329F2853019F28091E80083FF18 -:1033E000F2CFBECF4132510509F43CC04232510503 -:1033F00009F067CF8330910508F063CFFC01EE0F31 -:10340000FF1FEE54FE4F0190F081E02D81559E4F3D -:10341000DC018C9190E01AC0332721303105D1F0C6 -:103420002115310561F02230310509F04ACFE3E280 -:10343000F9E0E4918E2F90E0E3E2F9E007C0E1E4E7 -:10344000F9E0E4918E2F90E0E1E4F9E0009709F4CF -:1034500038CFA5CFEDE2F9E0E4918E2F90E0EDE2D8 -:10346000F9E0F4CF8330910508F02BCF880F991F36 -:10347000FC01E854FE4F0190F081E02D89E090E0DE -:103480008ECF82E190E0E1E1F9E089CF8091D20234 -:10349000882309F465CF853009F462CF8091E80074 -:1034A00083FD5ECF8091E80082FD8DCF8091E800A2 -:1034B00080FF83CF8091F2009091F30021153105B8 -:1034C00019F08830910550F041E0089709F040E08C -:1034D0008091E8008E778093E8006FCF449140930D -:1034E000F1003196215031090196E8CF803809F07A -:1034F000E8CE8091E800877F8093E8008091D30236 -:103500008093F10087CE8111DCCE1091D60212306B -:1035100008F0D7CE8091E800877F8093E800109371 -:10352000D3020E946605112311F084E005C080914A -:10353000E30087FDFACF81E08093D20242E061ECA4 -:1035400081E00E94850542E261EC84E00E948505ED -:1035500042E261EC82E00E94850542E260EC83E099 -:103560000E948505AECE8091D602813009F0A9CEA9 -:1035700081E0933009F080E08093D1021092E9005D -:103580008091E800877F8093E8000E94660599CECD -:103590003F924F925F926F927F928F929F92AF92E3 -:1035A000BF92CF92DF92EF92FF920F931F93CF9330 -:1035B000DF9300D000D00F92CDB7DEB78C01FC01B5 -:1035C00083819481892B31F08081918189238F3F80 -:1035D00009F052C60F900F900F900F900F90DF914F -:1035E000CF911F910F91FF90EF90DF90CF90BF9000 -:1035F000AF909F908F907F906F905F904F903F9093 -:1036000008950E94040FF82E682F89819A810E94E4 -:103610007D0B69817A818F2D0E94F70E7C01F80164 -:103620008281882309F41AC6970122513F4520312F -:10363000310508F0D2C58FEF97E00E94E031FEEE31 -:10364000EF0E57EE852E53E0952E882381F1809161 -:103650003102877009F4BECFF8018281882309F412 -:10366000B9CF82E00F900F900F900F900F90DF91E5 -:10367000CF911F910F91FF90EF90DF90CF90BF906F -:10368000AF909F908F907F906F905F904F903F9002 -:103690000C947415811428E09206C9F2C4010E94AA -:1036A000E031811101C0EA943FEF831A930AE110DF -:1036B000F1CF1C821B82442443944AE0342E7401CF -:1036C0004FEFE41AF40AC4010E94E03189831A82A0 -:1036D000882309F4BCCF9FEF980F933000F58A83BD -:1036E000498252E0850E911CC7010E94E0318B8314 -:1036F000882309F4ACCFCE0101967C01F70120812B -:103700002223E9F2213009F049C091818281913070 -:1037100041F4F2E0EF0EF11C0E94AA0D09C047012E -:10372000EACF923049F422E0E20EF11C0E94F50C3F -:103730003FEFE31AF30AE2CF933031F432E0E30EC5 -:10374000F11C0E94E10BF4CF943021F04FEFE41A0A -:10375000F40AEECF52E0E50EF11C30E020E0B701B4 -:103760006F5F7F4FF70141818053990B8A3091053C -:1037700050F021503109E0F28FE99FE00197F1F715 -:1037800000C00000F6CF329EF001339EF00D1124F0 -:103790009C012E0F3F1F842F7B01E1CFE22FF0E031 -:1037A000EA5DFD4F5490822F86958695869590E030 -:1037B000FC01EA5EFD4F64902770712C022E02C05E -:1037C000759467940A94E2F7E1E06E227724FC0195 -:1037D000EA5FFD4FA490B12C022E02C0B594A794CD -:1037E0000A94E2F7F1E0AF22BB24FC01EA50FE4F5D -:1037F000C490D12C02C0D594C7942A95E2F721E059 -:10380000C222DD246114710419F081EE0E94F50CCE -:10381000A114B10419F086EE0E94F50C852D0E94CA -:10382000AA0DAB2819F086EE0E94E10B672819F06B -:1038300081EE0E94E10BCD2809F47ACF8CE26CCFA7 -:1038400081E00E9490150E94541501CF81E00E94F2 -:103850006315F9CF82E0F5CFF3E8EF16FFE5FF0639 -:1038600009F4CCC024E8E2162FE5F20609F0D5C42D -:10387000882309F4ECCEF0903F02EE24E394FE247A -:10388000F0923F020E94880690933E0280933D0290 -:103890008091400210921A01882309F4BDC08AE287 -:1038A00080931B0180931C0181E20E947B140E9483 -:1038B000AD10E0923F021092400210923C02109232 -:1038C0003B02C5CE882309F481C080914902811151 -:1038D00006C081E08093490282EE0E94F50C0E94AE -:1038E000880690934802809347028BE20E94F50C71 -:1038F000F8018281882309F4D0C41092E002F2E03A -:10390000EF16FCE5FF0608F4ACC126E1E2162CE553 -:10391000F20630F0C7018A5F9C45099708F0A1C103 -:103920000E948C0F9093A9028093A80230E1E316C5 -:103930003CE5F30609F464C108F0E6C058E0E5167A -:103940005CE5F50609F44EC108F0AFC094E0E91655 -:103950009CE5F90609F43EC108F091C0F2E0EF16CB -:10396000FCE5FF0609F430C18091A802826023E0E3 -:10397000E2162CE5F20609F42AC16091A802F09043 -:10398000A90284E090E00E94F4316F2D82E290E081 -:103990000E94F4310E94EC175ACE8823A1F0809146 -:1039A0004902811106C081E08093490282EE0E94A3 -:1039B000F50C0E948806909348028093470281EE9E -:1039C0000E94F50C92CF81EE0E94E10B8BE20E94E7 -:1039D000E10B8ECF882309F48BCF81EE0E94F50C8A -:1039E00083EE0E94F50C8FE40E94F50C8FE40E9498 -:1039F000E10B83EE0E94E10B81EEE9CF882309F40D -:103A000077CF81EE0E94F50C83EE0E94F50C80E5E5 -:103A10000E94F50C80E5EBCF8AE280931B01809336 -:103A20001C0181E2FF2029F00E947B140E94AD104E -:103A300042CF0E947B143FCFE5EFEE16ECE5FE0689 -:103A4000B9F090F026EFE2162CE5F20609F050CF1F -:103A500027E245EE66EEFEC327E245EE65EEFAC3C9 -:103A600026E241EE60EEF6C327E245EE64EEF2C3D5 -:103A700026E241EE62EEEEC328E241E0EFCF809114 -:103A8000A802806136E0E3163CE5F30609F49FC026 -:103A90008091A802886047E0E4164CE5F40608F43B -:103AA00096C08091A802806292C08091A8028D7F0A -:103AB0005CE0E5165CE5F50609F489C078F48091D0 -:103AC000A8028C609AE0E9169CE5F90609F47FC02B -:103AD00008F48CC08091A8028E7F79C08091A802E2 -:103AE000877FFEE0EF16FCE5FF0609F470C08091C9 -:103AF000A8028B7F2FE0E2162CE5F20608F467C0DF -:103B00008091A8028F7E63C03BEFE3163CE5F3068D -:103B100009F464C068F553E1E5165CE5F50609F4BF -:103B200077C090F491E1E9169CE5F90609F46CC0C0 -:103B3000E2E1EE16ECE5FE0609F01FCF0E94EC175D -:103B40008091A8028F7743C0F5E1EF16FCE5FF06F0 -:103B500009F466C008F47AC08091A90281603AEF46 -:103B6000E3163CE5F30609F008CF8093A90205CFE0 -:103B70004FEFE4164CE5F40609F44EC088F48DEFDF -:103B8000E8168CE5F806C1F18091A9028E7F9EEFC0 -:103B9000E9169CE5F90648F38091A9028360E5CF18 -:103BA000E1E0EE16EDE5FE0609F459C008F444C064 -:103BB00060E022E0E2162DE5F20609F0DECE8EE0AE -:103BC00090E00E94F431D9CE8091A8028160809368 -:103BD000A802D3CE8091A8028460F9CF8091A90277 -:103BE0008260C3CF8091A8028064F1CF0E94EC175D -:103BF0008091A8028068EBCF8091A9028D7FB5CF1C -:103C00008091A8028F7DE3CF8091A8028F7BDFCFC8 -:103C10008091A802837FDBCF8091A9028C7FA5CF02 -:103C20008091A80282FB992790F921E0922790FBCE -:103C300082F990FB83F9CBCF8091A902982F9095C0 -:103C400091708E7F892B90FB81F98FCF0E94EC17AA -:103C50009091A802892F97FB87F98058B8CF61E02F -:103C6000AECF8091340236E1E3163CE5F30609F06D -:103C700021C38A7A91E009F490E09093E0018111E8 -:103C800006C089E20E94170B0E94A70AE0CC85E3D8 -:103C9000F9CF85E30CC380915F0380FF1BC08E7F4B -:103CA00080935F0360915F03709160038091610373 -:103CB000909162030E943813109298024FEF50E7E0 -:103CC00082E0415050408040E1F700C000000E9477 -:103CD000B00FBDCC816080935F0361E086950E9448 -:103CE0004014B5CC4FE955E168EA75E10E94CC0675 -:103CF000AECC48EA55E16FE975E1F8CF45E154E112 -:103D00006CE074E1F3CF44EF53E160E074E1EECF97 -:103D10004CED53E168EE73E1E9CF48EE53E16CED11 -:103D200073E1E4CF4FE254E16EE174E1DFCF61E093 -:103D300081E0D5CF65E082E00E94B21588CC68E0D2 -:103D400086E0FACF64E18FE0F7CF67E185E1F4CF59 -:103D500062E289E1F1CF61E083E2C1CF3BE5E316A6 -:103D60003DE5F30611F14CE5E4164DE5F40609F0E6 -:103D7000D3C28091A90282FB882780F991E089272C -:103D80000E94B70EC9C20E94EC175FEF84E39CE06B -:103D9000515080409040E1F700C000000E94D10CDB -:103DA0000E94D01554CC81E0EBCF80E0E9CFC70171 -:103DB0000E94550BD82EBFC22F2D2F70C22E8F2DD3 -:103DC000807F19F0C29490EFC922DD20C9F0CC2089 -:103DD00069F080E28E0D883010F081100BC0809168 -:103DE0003402C82AC09234020E94A70A8E2D0E9473 -:103DF000F50C19C080913302C82AC0923302F4CF67 -:103E00008E2D0E94E10BCC2071F0C09480E28E0DCB -:103E1000883010F081103EC080913402C822C092D8 -:103E200034020E94A70AE92DE850FF0B349720F4D2 -:103E30000E94C0060E94A114AA2009F4CBCB809155 -:103E4000310280FDC7CBF801128285958595859555 -:103E50000E949015C8010E94C81A80913102859570 -:103E6000859585950F900F900F900F900F90DF9193 -:103E7000CF911F910F91FF90EF90DF90CF90BF9067 -:103E8000AF909F908F907F906F905F904F903F90FA -:103E90000C94631580913302C822C0923302C1CFC3 -:103EA0003F2D3F70B32E8F2D807F803219F0B2945A -:103EB00080EFB822882071F041E0841681F1DD2086 -:103EC000D9F1CC2091F1F801858180FF8FCF8F70DF -:103ED00085832BC0DD20B1F0909135028B2D892B8D -:103EE000C11003C00E94D70B9ECF51E0C512FACF7C -:103EF0002091A90222FD97CF981709F494CF8093BF -:103F0000350291CFC11006C00E94A10A8B2D0E94DC -:103F1000CC0B89CF81E0C81609F485CFF5CFDD2021 -:103F200031F095E09C1508F47ECF8B2DDBCFE4E0DB -:103F3000EC1508F478CFEACFCC2041F3F9E38F12E7 -:103F400009C02FEF37EE43E0215030404040E1F709 -:103F500000C000008E2D0E94E10B65CF8F2D86954D -:103F60008695837061F0813009F05DCFC701937051 -:103F7000D11002C090E080E00E94940654CFC701A7 -:103F80009370D11002C090E080E00E94AA064BCF4F -:103F90008E2DDD2029F00E9463080E94810743CF07 -:103FA0000E94A807FACF8F2D837009F040C0D1106E -:103FB0003ACF4E2D429546954770440F440F8E2DB3 -:103FC0008F7090E0042E02C0880F991F0A94E2F7C8 -:103FD00030E020E0E4FE09C02FE030E002C0220F14 -:103FE000331F4A95E2F7209530954F2D469546951B -:103FF0004370423099F078F4609136027091370244 -:10400000413039F0822B932B862397230E94C60BD5 -:104010000ACF862B972B822B932BF8CF822B932BB7 -:10402000209136023091370282279327EFCF869571 -:10403000DD2011F08F2D8170882309F4F4CE4E2DF0 -:10404000429546954770440F440F8E2D8F7090E037 -:10405000042E02C0880F991F0A94E2F730E020E096 -:10406000E4FE09C02FE030E002C0220F331F4A9562 -:10407000E2F7209530954F2D469546954370423096 -:1040800099F078F46091DC027091DD02413039F0F2 -:10409000822B932B862397230E944C15C4CE862B0C -:1040A000972B822B932BF8CF822B932B2091DC0222 -:1040B0003091DD0282279327EFCF5F2D5F70F52EC1 -:1040C000DD2029F0852F0E9490158E2D0BCF8E2D8F -:1040D0000E94CC0B8F2D0E946315A5CE8E2D92EFE2 -:1040E000891609F449C0981570F0E0EF8E1639F181 -:1040F000F1EF8F16C9F1DD2009F45FC0C11076CE53 -:104100008F2D8F7136C023EF8216D9F134EF8312D1 -:10411000F2CFDD2009F446C0FF2DFF71FF2E8F2F57 -:104120000E9490158091A90282FD07C028E0F29EAE -:10413000C00111248360809331028F2D1AC0DD20CD -:1041400071F044E04C1508F46ECE2F2D2F7181E0F4 -:1041500090E002C0880F991F2A95E2F7A7CF55E09B -:104160005C1508F460CEF1CF8F2D8F71DD2009F43E -:10417000B2CF0E94901557CE8F2D8F71DD20C9F3DD -:10418000AACF90E080E0DD2009F486CF9F2D9F71BB -:1041900021E030E0F90102C0EE0FFF1F9A95E2F72F -:1041A000CF017ACF81E00E94741531E03C1508F010 -:1041B0003ACE82E00E94741536CECC2059F0893375 -:1041C00009F0C8CE4FEF57EE83E041505040804099 -:1041D000E1F7BECE8F2D8F717ECFF0E1EF16FFE5B8 -:1041E000FF0609F42DCB21E1E2162FE5F20609F4D2 -:1041F00031CB42E8E4164FE5F40609F4EBCB08F0C6 -:104200002BCB90E8E9169FE5F90609F45BCBE1E8D2 -:10421000EE16EFE5FE0609F4C0CB33EFE3163CE5FE -:10422000F30609F41DCC08F007CC58EDE5165CE563 -:10423000F50609F411CC89EDE8168CE5F80609F4C9 -:104240001BCC97EDE9169CE5F90609F051CB26E267 -:1042500041EE61EEC8010E94C70DF9C930E1E316D5 -:104260003FE5F30609F4F2CA41E1E4164FE5F4062E -:1042700009F0BFCF82E0EBCA85E0DE011196019024 -:104280000D928A95E1F7F801228189819A812111A5 -:10429000B8C90E94550BF82EBCC9F6E1EF16FCE533 -:1042A000FF06D1F58091E0018111F3CC89E20E94F3 -:1042B000EC0AEACC82722CECE2162CE5F20609F448 -:1042C00031CD08F0A7C046ECE4164CE5F40609F43D -:1042D00015CD08F076C093ECE9169CE5F90609F4D3 -:1042E00001CD08F05DC0F2ECEF16FCE5FF0609F425 -:1042F000D2CC9AE5E9169DE5F90609F454CD08F00B -:104300002DCDE114FCE5FF0609F43DCD2EEDE216BE -:104310002CE5F20609F444CDF8018281E080F180B9 -:10432000882309F444CDC7010E94040FD82E682FBA -:10433000C7010E947D0BB7018D2D0E94F70E0E94D0 -:1043400019097C01882EF801D280C580C2943FE013 -:10435000C322809131028770A1F0AD2CDD2091F055 -:104360008F2D807F803421F080E28E0D883048F0E0 -:1043700082E00E947415809131028770AA24A39470 -:104380008111A12C9F2C92942FE09222FBE0F91531 -:1043900008F449CDE92DF0E0EA57FD4C0C94953135 -:1043A00024ECE2162CE5F20609F4A3CC4CE054E12F -:1043B00065E174E135ECE3163CE5F30609F496CCCF -:1043C00098CF49ECE4164CE5F40609F4A1CC88F446 -:1043D00097ECE9169CE5F90609F495CC40E054E128 -:1043E00064EF73E1E8ECEE16ECE5FE0609F47ECC32 -:1043F00080CFFAECEF16FCE5FF0609F48ECC4EE117 -:1044000054E16FE274E12BECE2162CE5F20609F4BC -:104410006DCC6FCF31EDE3163CE5F30609F492CC99 -:10442000B8F45EECE5165CE5F50609F483CC08F417 -:104430007ECC9FECE9169CE5F90609F480CC6EE091 -:1044400089E0E0EDEE16ECE5FE0609F475CC51CFFF -:10445000F4EDEF16FCE5FF0609F47ACC78F432EDC2 -:10446000E3163CE5F30609F470CC61E088E143ED26 -:10447000E4164CE5F40609F432CC3BCF55EDE516D5 -:104480005CE5F50609F467CC8DE5E816F80609F455 -:10449000DEC82FCF1F93CF93DF938091FE01807FE3 -:1044A000A9F48091FB01882389F080913002D0919A -:1044B000FF016091F9017091FA01A091FC01B091A6 -:1044C000FD01C62FC72316E0D81304C0DF91CF919A -:1044D0001F91089590E0109711F0CF3F19F40196C5 -:1044E0008770F2CF189F9001199F300D1124F901A8 -:1044F000E050FE4F41814713F2CF40814613EFCF8A -:1045000042814111ECCF438154814A1B5B0B483CF3 -:10451000510528F78091FE018F7080618093FE0124 -:10452000F901EB5FFD4F80818F708061808389EF9F -:1045300091E00E94C81ADF91CF911F910C944B0B10 -:10454000AF92BF92CF92DF92EF92FF920F931F93A1 -:10455000CF93DF93CDB7DEB761970FB6F894DEBF88 -:104560000FBECDBF8C0185E0F801DE011D960190E4 -:104570000D928A95E1F7F801E28089EFA82E81E09B -:10458000B82E6091FC017091FD016115710509F46F -:1045900032C19091F9014091FA01892F84238F3F14 -:1045A00009F429C120813181C380D480F090FB01BE -:1045B000F601E61BF70BFF2009F4E8C08091FE012D -:1045C000582F507FE83CF10508F0ABC0511177C07F -:1045D000FE2C431321C092131FC0E1101DC08F7029 -:1045E00080618093FE01C5010E94C81A8091FE017E -:1045F000F80185838F2D61960FB6F894DEBF0FBE4C -:10460000CDBFDF91CF911F910F91FF90EF90DF9081 -:10461000CF90BF90AF900895CD2829F0822F8323AB -:104620008F3F09F003C180E0F82FF170DF2E80FF8B -:104630003CC0809130024091FF0156E0841315C0C8 -:104640002D873E878D859E850E94400F292F2295BC -:104650002F702230F0F0243018F59F70F1F0F8013F -:104660009581907FD1F4D12C1EC090E0589FF0012D -:10467000599FF00D1124E050FE4F6181361306C0A2 -:104680006081261303C06281E6120FC00196877015 -:10469000D5CF9F7011F0882331F3805E883018F3F6 -:1046A000C8010E94C81AFD2CA5CFEE2009F4A2CFA4 -:1046B0008091FE0181608093FE01F12C9BCF43131A -:1046C00006C0921304C0F801EE2009F479C0C801B5 -:1046D0000E944C0F882309F1EE20F9F08091FE0131 -:1046E000803270F02091F9013091FA0138872F83E0 -:1046F0001986DB86CA868C87CE0107960E94C81A67 -:1047000086E0F801A9EFB1E001900D928A95E1F7FA -:104710000E944A22FF24F3946DCFC8010E94C81A58 -:10472000F9CF51110AC089EF91E00E94C81A86E0C2 -:10473000F50111928A95E9F7C0CF43130FC0921388 -:104740000DC0E1100BC0F8018583C8010E94C81A92 -:1047500086E0F50111928A95E9F74CCFC8010E94D5 -:104760004C0F8823D1F2EE20C1F28091FE018032FD -:1047700038F22091F9013091FA013A8329831B82A2 -:10478000DD82CC828E83CE010196B8CFE83CF10564 -:10479000F8F6FE2CEE2009F243131FC092131DC041 -:1047A0008091FE0180FD10C0982F907F69F0F80184 -:1047B0008583903F31F0982F907F905F8F70892B89 -:1047C0008583C8010E94C81A86E0F801A9EFB1E00C -:1047D00001900D928A95E1F70DCFC8010E944C0F10 -:1047E00081118ECF8091FE0181608093FE01C8010E -:1047F0000E94C81AFFCEEE2009F48FCFC8010E9494 -:104800004C0FF82E882309F488CF86E0F801A9EF31 -:10481000B1E001900D928A95E1F78091F9019091B4 -:10482000FA010E94400F0E944A22E4CE81E08E25C8 -:10483000FBCE1F93CF93DF93CDB7DEB767970FB64D -:10484000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B28 -:104850008F8B6111109233021A8A198A85E0FE014A -:104860007396DE011D9601900D928A95E1F786E020 -:10487000FE013D96DE01179601900D928A95E1F7B3 -:10488000CE0107960E94A022882389F016E080912D -:1048900030029091FF01891349C067960FB6F894D2 -:1048A000DEBF0FBECDBFDF91CF911F91089586E08F -:1048B000FE013796DE01119601900D928A95E1F77F -:1048C0008A859B85892B11F38F81988589238F3F5A -:1048D000E9F22091FF0130E0C90101968770992724 -:1048E000409130024817190671F40E94EC1710929B -:1048F000FF011092300286E0E9EFF1E0DF011D9246 -:104900008A95E9F7C3CF96E0929FD001939FB00DAF -:104910001124A050BE4FFE01319601900D929A9540 -:10492000E1F78093FF010E944B0BB0CF819FC00144 -:10493000112480509E4F0E94A022882309F4ADCFFD -:104940008091300290E00196877099278093300221 -:104950009ECFFF920F931F93CF93DF93CDB7DEB718 -:10496000C45BD1090FB6F894DEBF0FBECDBF182FC0 -:104970008111D7C0662309F475C0C055DF4F188276 -:10498000C05BD040CF54DF4F1882C15BD04011E0F4 -:10499000CE54DF4F1883C25BD0400E9488068160EE -:1049A000782FCD54DF4F99838883C35BD040C055A7 -:1049B000DF4F4881C05BD040CF54DF4F5881C15B8F -:1049C000D040CE54DF4F6881C25BD040CC54DF4F23 -:1049D0008881C45BD0400E941924C555DF4F1882DE -:1049E000CB5AD040C455DF4F1882CC5AD040C35563 -:1049F000DF4F1882CD5AD0400E9488068160782F00 -:104A0000C255DF4F99838883CE5AD040C555DF4FBA -:104A10004881CB5AD040C455DF4F5881CC5AD04042 -:104A2000C355DF4F6881CD5AD040C155DF4F8881D3 -:104A3000CF5AD0400E941924109345020E94880644 -:104A4000909342028093410281E0CC54DF4F0FB635 -:104A5000F894DEBF0FBECDBFDF91CF911F910F91B4 -:104A6000FF90089502E0CA55DF4F0883C65AD04030 -:104A7000C955DF4F1882C75AD04011E0C855DF4FE3 -:104A80001883C85AD0400E9488068160782FC75585 -:104A9000DF4F99838883C95AD040CA55DF4F488178 -:104AA000C65AD040C955DF4F5881C75AD040C85563 -:104AB000DF4F6881C85AD040C655DF4F8881CA5A37 -:104AC000D0400E941924CF55DF4F0883C15AD040EF -:104AD000CE55DF4F1882C25AD040CD55DF4F1882D5 -:104AE000C35AD0400E9488068160782FCC55DF4F92 -:104AF00099838883C45AD040CF55DF4F4881C15A2B -:104B0000D040CE55DF4F5881C25AD040CD55DF4FEF -:104B10006881C35AD040CB55DF4F8881C55AD040F9 -:104B200089CF813009F0C0C0662309F45FC0C45644 -:104B3000DF4F1882CC59D040C356DF4F8883CD5900 -:104B4000D040C256DF4F8883CE59D0400E9488069D -:104B50008160782FC156DF4F99838883CF59D04029 -:104B6000C456DF4F4881CC59D040C356DF4F5881DF -:104B7000CD59D040C256DF4F6881CE59D040C05683 -:104B8000DF4F8881C05AD0400E941924C956DF4F98 -:104B90001882C759D040C856DF4F1883C859D04033 -:104BA000C756DF4F1882C959D0400E9488068160DD -:104BB000782FC656DF4F99838883CA59D040C9568B -:104BC000DF4F4881C759D040C856DF4F5881C85978 -:104BD000D040C756DF4F6881C959D040C556DF4F16 -:104BE0008881CB59D0400E9419242ECF02E0CE56A6 -:104BF000DF4F0883C259D040CD56DF4F8883C35959 -:104C0000D040CC56DF4F8883C459D0400E948806DC -:104C10008160782FCB56DF4F99838883C559D04068 -:104C2000CE56DF4F4881C259D040CD56DF4F588114 -:104C3000C359D040CC56DF4F6881C459D040CA56C2 -:104C4000DF4F8881C659D0400E941924C357DF4FD7 -:104C50000883CD58D040C257DF4F1883CE58D0407C -:104C6000C157DF4F1882CF58D0400E94880681601C -:104C7000782FC057DF4F99838883C059D040C357DE -:104C8000DF4F4881CD58D040C257DF4F5881CE58B2 -:104C9000D040C157DF4F6881CF58D040CF56DF4F4B -:104CA0008881C159D0409FCF823009F0ABC06623C4 -:104CB00009F45EC0C857DF4F1882C858D040C757A4 -:104CC000DF4F8883C958D04081E0C657DF4F8883C3 -:104CD000CA58D0400E9488068160782FC557DF4FA0 -:104CE00099838883CB58D040C857DF4F4881C85834 -:104CF000D040C757DF4F5881C958D040C657DF4F03 -:104D00006881CA58D040C457DF4F8881CC58D04002 -:104D10000E941924CD57DF4F1882C358D040CC577A -:104D2000DF4F1883C458D040CB57DF4F1882C55887 -:104D3000D0400E9488068160782FCA57DF4F998340 -:104D40008883C658D040CD57DF4F4881C358D040E4 -:104D5000CC57DF4F5881C458D040CB57DF4F6881C4 -:104D6000C558D040C957DF4F8881C758D0403BCF86 -:104D7000EF968FAFEF97C158DF4F8883CF57D04062 -:104D800081E0C058DF4F8883C058D0400E94880619 -:104D90008160782FCF57DF4F99838883C158D040E7 -:104DA000EF964FADEF97C158DF4F5881CF57D040A6 -:104DB000C058DF4F6881C058D040CE57DF4F888140 -:104DC000C258D0400E941924EA961FAFEA97EB968A -:104DD0001FAFEB97EC961FAEEC970E9488068160A0 -:104DE000782FEE969FAF8EAFEE97EA964FADEA978B -:104DF000EB965FADEB97EC966FADEC97EE968FADC3 -:104E0000EE97F1CE833009F081C0662309F43FC0EC -:104E100019E0E5961FAFE597E6961FAEE69781E0AD -:104E2000E7968FAFE7970E9488068160782FE99612 -:104E30009FAF8EAFE997E5964FADE597E6965FADEC -:104E4000E697E7966FADE797E9968FADE9970E94F1 -:104E50001924E0961FAFE097E1961FAEE197E29626 -:104E60001FAEE2970E9488068160782FE4969FAF7C -:104E70008EAFE497E0964FADE097E1965FADE19796 -:104E8000E2966FADE297E4968FADE497ACCE1BE06F -:104E9000AB961FAFAB97AC961FAEAC9781E0AD96CB -:104EA0008FAFAD970E9488068160782FAF969FAF35 -:104EB0008EAFAF97AB964FADAB97AC965FADAC975F -:104EC000AD966FADAD97AF968FADAF970E94192499 -:104ED000A6961FAFA697A7961FAEA797A8961FAE38 -:104EE000A8970E9488068160782FAA969FAF8EAF00 -:104EF000AA97A6964FADA697A7965FADA797A89637 -:104F00006FADA897AA968FADAA976DCE843009F0A1 -:104F100081C0662309F43FC009E0A1960FAFA197B5 -:104F200011E0A2961FAFA297A3961FAFA3970E946E -:104F300088068160782FA5969FAF8EAFA597A19622 -:104F40004FADA197A2965FADA297A3966FADA39721 -:104F5000A5968FADA5970E9419246C960FAF6C97FC -:104F60006D961FAF6D976E961FAE6E970E94880666 -:104F70008160782FA0969FAF8EAFA0976C964FADB3 -:104F80006C976D965FAD6D976E966FAD6E97A096B0 -:104F90008FADA09728CE0BE067960FAF679711E013 -:104FA00068961FAF689769961FAF69970E94880639 -:104FB0008160782F6B969FAF8EAF6B9767964FADE2 -:104FC000679768965FAD689769966FAD69976B96BE -:104FD0008FAD6B970E94192462960FAF629763960C -:104FE0001FAF639764961FAE64970E948806816026 -:104FF000782F66969FAF8EAF669762964FAD629799 -:1050000063965FAD639764966FAD649766968FAD58 -:105010006697E9CD853009F07DC0662309F445C067 -:1050200039E0F32E2D96FFAE2D9702E02E960FAFAE -:105030002E9711E02F961FAF2F970E948806816050 -:10504000782F61969FAF8EAF61972D964FAD2D97BC -:105050002E965FAD2E972F966FAD2F9761968FADE1 -:1050600061970E9419242896FFAE289729960FAFC2 -:1050700029972A961FAE2A970E9488068160782F6A -:105080002C969FAF8EAF2C9728964FAD28972996D8 -:105090005FAD29972A966FAD2A972C968FAD2C97E6 -:1050A0000E94192410934402C9CC2BE0F22E2396BF -:1050B000FFAE239702E024960FAF249711E02596C8 -:1050C0001FAF25970E9488068160782F27969FAF93 -:1050D0008EAF279723964FAD239724965FAD2497E5 -:1050E00025966FAD259727968FAD27970E94192497 -:1050F000FDAE0EAF1FAE0E9488068160782F22960B -:105100009FAF8EAF22974DAD5EAD6FAD22968FAD46 -:105110002297C6CF863009F048C0662329F199E06E -:10512000F92EF8AE03E009AF11E01AAF0E9488062D -:105130008160782F9CAF8BAF48AD59AD6AAD8CAD17 -:105140000E941924FBAA0CAB1DAA0E94880681604C -:10515000782F9FAB8EAB4BA95CA96DA98FA90E943C -:105160001924109343026ACC8BE0F82EFEA603E0CC -:105170000FA711E018AB0E9488068160782F9AABC8 -:1051800089AB4EA55FA568A98AA90E941924F9A632 -:105190000AA71BA60E9488068160782F9DA78CA76E -:1051A00049A55AA56BA58DA5DACF873009F041C076 -:1051B0006623F9F013E01CA31DA381E08EA30E94D7 -:1051C00088068160782F98A78FA34CA15DA16EA15E -:1051D00088A50E9419241F8F18A319A20E9488066F -:1051E0008160782F9BA38AA34F8D58A169A18BA1C1 -:1051F000FACC05E00A8F13E01B8F81E08C8F0E94B0 -:1052000088068160782F9E8F8D8F4A8D5B8D6C8D87 -:105210008E8D0E9419240D8B1E8B1F8A0E9488067A -:105220008160782F998F888F4D895E896F89898DEC -:10523000DACC883009F008CC662301F106E0088B4F -:1052400013E0198B81E08A8B0E9488068160782F99 -:105250009C8B8B8B488959896A898C890E94192477 -:105260000B871C871D860E9488068160782F9F8788 -:105270008E874B855C856D858F85B5CC08E00E8368 -:1052800013E01F8381E088870E9488068160782F61 -:105290009A8789874E815F8168858A850E94192453 -:1052A00009831A831B820E9488068160782F9D8360 -:1052B0008C8349815A816B818D8195CC1F920F928D -:1052C0000FB60F9211242F933F934F935F936F93D9 -:1052D0007F938F939F93AF93BF93CF93DF93EF937E -:1052E000FF93D091E900DF708091EC00C82FC1706E -:1052F00080FDC0E81092E9008091F000877F8093E4 -:10530000F00078940E9401181092E9008091F0005A -:1053100088608093F000CD2BCF70C093E900FF919F -:10532000EF91DF91CF91BF91AF919F918F917F913D -:105330006F915F914F913F912F910F900FBE0F9002 -:105340001F9018951F920F920FB60F9211242F9352 -:105350003F934F935F936F937F938F939F93AF93FD -:10536000BF93EF93FF938091E10082FF09C080918A -:10537000E20082FF05C08091E1008B7F8093E10015 -:105380008091DA0080FF24C08091D80080FF20C087 -:105390008091DA008E7F8093DA008091D90080FFBF -:1053A0009BC088E189BD8AE189BD09B400FEFDCFBB -:1053B00081E08093D2028091AD02811109C00E94E8 -:1053C000EC040E94B7058091E20084608093E200C3 -:1053D0008091E10080FF17C08091E20080FF13C040 -:1053E0008091E2008E7F8093E2008091E2008061F4 -:1053F0008093E2008091D80080628093D80019BC2D -:1054000085E08093D2028091E10084FF29C08091E1 -:10541000E20084FF25C088E189BD8AE189BD89B5A4 -:10542000982F917080FFFBCF8091D8008F7D809363 -:10543000D8008091E1008F7E8093E1008091E200AE -:105440008F7E8093E2008091E20081608093E20091 -:105450008091D302882309F445C084E08093D2026E -:105460008091E10083FF27C08091E20083FF23C089 -:105470008091E100877F8093E10082E08093D202F7 -:105480001092D3028091E1008E7F8093E1008091A1 -:10549000E2008E7F8093E2008091E2008061809341 -:1054A000E20042E060E080E00E9485058091F0002B -:1054B00088608093F000FF91EF91BF91AF919F9131 -:1054C0008F917F916F915F914F913F912F910F90AD -:1054D0000FBE0F901F90189519BC1092D202109217 -:1054E000AD0276CF8091E30087FD93E09093D202E6 -:1054F000B7CF78941F921FB61F9211248F939F935A -:10550000AF93BF938091A4029091A502A091A602AF -:10551000B091A7020196A11DB11D8093A4029093A2 -:10552000A502A093A602B093A702BF91AF919F914D -:105530008F911F901FBE1F9018951F921FB61F922C -:1055400011248F939F93AF93BF938091A3028111F6 -:1055500013C08091A4029091A502A091A602B091DF -:10556000A7024196A11DB11D8093A4029093A502AC -:10557000A093A602B093A702BF91AF919F918F9184 -:105580001F901FBE1F901895CDB7DEB7AA970FB614 -:10559000F894DEBF0FBECDBF84B7877F84BF0FB640 -:1055A000F894A895809160008861809360001092C3 -:1055B00060000FBE80E890E00FB6F8948093610021 -:1055C000909361000FBE85B7806885BF85B78068FE -:1055D00085BF8DEB98E09093BF018093BE010E9440 -:1055E000EC040E94B7058091E20084608093E200A1 -:1055F00078948091D2028823A1F01091E9001F7065 -:105600009091EC00892F817090FD80E8182B10920A -:10561000E9008091E80083FD0E9401181F7010933B -:10562000E90082E084BD93E095BD9AEF97BD809339 -:105630006E000E94730F811102C00E94A80E80EFBD -:105640000E94BF0881EF0E94BF0882EF0E94BF083E -:1056500083EF0E94BF0803E511E06FE5E62E61E0ED -:10566000F62ED8018D918D018F3F11F00E94BF0859 -:10567000E016F106B1F710924B0210924A02109216 -:105680007A021092790210924D0210924C021092FE -:105690007C0210927B0210924F0210924E021092E6 -:1056A0007E0210927D0210925102109250021092CE -:1056B000800210927F020E94E117811102C00E94B5 -:1056C000D01582E090E00E94E031809370020E9449 -:1056D0008C0F9093A9028093A8020E943C16EFE3DE -:1056E000FCE93197F1F700C000000E943C16809160 -:1056F000790280FF08C06FEF7FEF90E080E00E94AA -:1057000012320E94D10C83E090E00E94E03190E0E0 -:105710000E94C60B8091DC029091DD020E94B914B8 -:1057200080915202811132C00E94E117811104C0A0 -:105730000E94D0150E94C01588E090E00E94E831D8 -:1057400060935F037093600380936103909362039F -:105750006E7F71F40E94C01588E090E00E94E831ED -:1057600060935F037093600380936103909362037F -:105770000E94D2061092980280915F0380FF03C0BE -:1057800086950E947B1481E0809352026AE871E062 -:1057900056E6852E52E0952E28E731E0E1E8F1E06B -:1057A00041E050E01191812F82958F7090E0DC01F3 -:1057B0009196FC9091971F70E12E6A0101C0CC0C6C -:1057C0001A95EAF70C2D00950F2191960C9391975D -:1057D00092961C9192971C2992961C93D901FD9048 -:1057E0009D010F2D02950F7010E0D8019196BC908D -:1057F000BF2DBF70FB2E6A0101C0CC0CBA95EAF731 -:10580000DC2CD094DB20D8019196DC929197929673 -:10581000DC909297DC289296DC92DC0190968C9139 -:1058200090E002C095958795EA94E2F78170D801DF -:1058300090960C9110E002C015950795FA94E2F746 -:1058400090E000FD92E0892BD4018D934D016E17FD -:105850007F0709F0A7CF86EA92E0909390028093A9 -:105860008F0281E20E947B1481E090E00E944C153F -:1058700080E091E09093A00280939F028091D202F9 -:10588000FF24F39408E11AE1853009F47CC20E94F8 -:105890003C16882359F08FB7F8944091A402509198 -:1058A000A5026091A6027091A7028FBFA9E7B2E09E -:1058B000E1E7F2E010E000E0702F8D919D912191E1 -:1058C00031912817390709F487C22827392760E062 -:1058D000EE24E394F12CA9014E215F21452B09F41C -:1058E00075C269A37AA39C012E213F2191E0232B4D -:1058F00009F490E09BA30E9488068160782F9DA305 -:105900008CA349A15AA16BA18DA10E941924000F5B -:10591000111FF801EF58FD4F80819181E826F9268B -:10592000F182E082809198028823D1F180919702E0 -:10593000E0915F03E695E81BE0939302823009F063 -:1059400062C2F0E0EC53FD4FE4910E2F10E044E210 -:10595000E42E43E1F42E80919402882361F01092AA -:1059600094020E9488069093920280939102109272 -:105970009602109295020E948806E0919102F091A1 -:1059800092028E1B9F0B8F3F9F4750F4E00FF11F39 -:10599000F0939202E093910281E992E0F701099578 -:1059A0003DE5E32E32E0F32E04E512E04FE6442E0F -:1059B00041E0542E58E7652E51E0752E61E8862EA1 -:1059C00061E0962E76E6A72E72E0B72E212C312CC0 -:1059D000D501ED915D01EE0FEE0FD4012D914D013A -:1059E000A22FA295AF70B0E090968C9190E02F70AE -:1059F00002C0959587952A95E2F781709927D30182 -:105A00004D913D01A42FA295AF70B0E090962C91DE -:105A100030E04F7002C0359527954A95E2F7A9010D -:105A20004170552720FF02C042E050E0842BE82B54 -:105A3000D5011197EC93D201CD902D01EF70F0E0DC -:105A4000E15AFE4F8081F7019081890F8083D12C2C -:105A5000082E000C990B20E08C159D054CF0D80108 -:105A60008C918F5F8C9360E0832D0E94A92421E0AC -:105A7000F7018081082E000C990B442755274C19FB -:105A80005D09481759074CF0D8018C9181508C93CF -:105A900061E0832D0E94A92421E0F7018081082E76 -:105AA000000C990BB6010E948131D7018D937D01C5 -:105AB000222A33940F5F1F4FB9E03B1289CF222077 -:105AC00059F08FB7F8944091A4025091A5026091CB -:105AD000A6027091A7028FBF86E0E8E8F2E0DE013F -:105AE000119601900D928A95E1F7F0908A02E0906C -:105AF0008B0210918C0200918D0210928A021092FA -:105B00008B0210928C0210928D028F2D8E2909F437 -:105B100048C080918602909187020E9479069C017C -:105B200090918202992309F4C5C323333105C8F14A -:105B30009F3F19F09F5F90938202FF2059F00E94CF -:105B400043089FEF1F140CF491E0899F802D1124CE -:105B500080938A02EE2059F00E9443089FEF1E14A2 -:105B60000CF491E0899F802D112480938B02309159 -:105B70008A023323B1F020918B02222391F045EB6E -:105B80003403C0011124992309F497C190938A0228 -:105B900045EB240390011124332309F492C130937F -:105BA0008B02812F802B09F448C080918402909150 -:105BB00085020E9479069C0190918102992309F443 -:105BC00074C325363105C8F19F3F19F09F5F90934C -:105BD0008102112359F00E9421089FEF11160CF445 -:105BE00091E0899F802D112480938C02002359F02D -:105BF0000E9421089FEF10160CF491E0899F802DE0 -:105C0000112480938D0230918C023323B1F02091C6 -:105C10008D02222391F045EB3403C0011124992316 -:105C200009F453C190938C0245EB24039001112495 -:105C3000332309F44EC130938D0280918A029091F2 -:105C40008B02892B90918C02892B90918D02892B4C -:105C500011F00E94810786E0FE013196A8E8B2E0CB -:105C600001900D928A95E1F70E94C00690916F0213 -:105C7000891731F00E94C00680936F020E94A11420 -:105C80008091D202843009F0F9CD83E08093E9005D -:105C90008091E80082FFF2CD8091E80090E085FFDE -:105CA00006C00E940B05882309F417C191E080917A -:105CB000E8008B778093E800992309F4DFCDE98130 -:105CC000E150E33108F09DC1F0E0EE56FD4C0C943C -:105CD00095318091D202843009F443C080E00E9463 -:105CE000A1141092980280918E02811116C0F09238 -:105CF0008E0280915F03982F9170909353028E7F54 -:105D000080935F03BFEFE0E7F2E0B150E040F04086 -:105D1000E1F700C000000E94B00F1092A30288E1DA -:105D200090E0A0E40FB6F894A895809360000FBEB1 -:105D3000A093600083B7817F846083BF83B7816055 -:105D400083BF7894889583B78E7F83BF0FB6F8940E -:105D5000A895809160008861809360001092600037 -:105D60000FBE8091D102882371F00E943C16E9E7B2 -:105D7000F2E081919191892B09F078C281E892E05B -:105D80008E179F07B1F78091D202853009F4A1CF19 -:105D90000E94EC170E94C0060E94A11410928E026D -:105DA00080915302882359F080915F038160809332 -:105DB0005F0386950E947B140E949A0F68CD8091A4 -:105DC00099028823C9F30E94B00FF6CF6F5FEE0CE3 -:105DD000FF1C6C3009F07FCD0F5F1F4F04301105A1 -:105DE00009F06ACD8FEF8EA38FA318A60E948806B4 -:105DF0008160782F9AA789A74EA15FA168A58AA57F -:105E00000E9419248FCD863059F4F0E0EF53FD4FF6 -:105E1000E4910E2F10E034E1E32E33E1F32E9BCD1D -:105E2000893061F4E695F0E0E254FD4FE4910E2FE5 -:105E300010E025E6E22E22E1F22E8DCD8F3061F4C6 -:105E4000E695F0E0E554FD4FE4910E2F10E090E16F -:105E5000E92E92E1F92E7FCD853159F4F0E0E85436 -:105E6000FD4FE4910E2F10E08DE9E82E81E1F82E30 -:105E700072CD08E210E0FDE0EF2EF1E1FF2E883157 -:105E800009F469CD833249F4E6EBF2E0059114910F -:105E9000BBEBEB2EB2E1FB2E5ECD04EF11E0A0EDEB -:105EA000EA2EA0E1FA2E843209F455CD00ED17E078 -:105EB000E1EDEE2EE6E0FE2E4ECD81E080938A02EB -:105EC00067CE81E080938B026CCE81E080938C0260 -:105ED000ABCE81E080938D02B0CE00E210E0CE0127 -:105EE00001967C018091E80085FD0AC08091E80060 -:105EF0008B778093E8000E940B05882399F3D6CE18 -:105F00008091F100D7018D937D010150110951F766 -:105F1000CDCE1A8289E08B833FC08A81823009F41A -:105F2000BBC18330A9F0813009F06BC02FB7F89462 -:105F30006091A4027091A5028091A6029091A7029F -:105F40002FBF0E949B316B837C838D839E8324C0F3 -:105F50008091790290917A029827892798279C83CB -:105F60008B8380917B0290917C02982789279827C8 -:105F70009E838D8380917D0290917E029827892750 -:105F8000982798878F8380917F029091800298272D -:105F9000892798279A8789878091D202843009F0CF -:105FA0006DCC1091E9001F709091EC00892F8170E9 -:105FB00090FD80E8182B82E08093E9008091E80052 -:105FC00080FF0DC050E040E060E270E0CE0101963D -:105FD0000E943C058091E8008E778093E8001F7056 -:105FE0001093E9004BCC8A81823059F46B817C811B -:105FF0008D819E810E949B3186E290E00E94F43167 -:10600000CBCF8FEF8983C8CF4C816B818A810E946F -:10601000D10E9827892798279E838D83BDCFED8049 -:10602000FE80FE24EF24FE248A810B81B8E10B9FC1 -:1060300080011124E0E68E9F000D111D11248C813A -:1060400090E0880F991F080F191F6F2DC8018796C0 -:106050000E94F4316E2DC8018896D0CF0E943B0E6D -:106060009BCF8A818138C1F060F4803809F094CFE9 -:1060700020E04B8160916103809160030E944A138C -:106080008BCF823849F1833809F086CF20E04091E8 -:1060900062036C818B81F2CF8B810E947B149B8188 -:1060A00080915F03911111C08E7F80935F031092E6 -:1060B0009802FFEF20E742E0F15020404040E1F736 -:1060C00000C000000E94B00F67CF816080935F0323 -:1060D00086950E947B1460CF8B81809363035CCF95 -:1060E0008A81813899F030F4803809F055CF809159 -:1060F000620311CF823891F0833809F04DCF80913F -:1061000060038B83809161038C8346CF80915F0312 -:1061100080FF02C08695FFCE80E0FDCE80916303B4 -:10612000FACE60915F03709160038091610390915A -:1061300062030E94381330CF80E18A832DCF84E040 -:106140008A8389E1E8CE0A811B8110270127102765 -:10615000CE0101966C01EC80DC01AE0DB11D7D011C -:10616000C80189519C4FEC14FD0409F415CF093185 -:10617000B4E01B0750F40E94E031F60184830F5F06 -:106180001F4FBFEFCB1ADB0AEBCFD60114961C9240 -:10619000F6CF0A811B81102701271027FE013196B7 -:1061A0006F01EC80E00EF12EF11CC80189519C4F6B -:1061B000E016F10609F4F0CE0931F4E01F0728F4E7 -:1061C000D60114966C910E94F431BFEFCB1ADB0A12 -:1061D0000F5F1F4FEACF0E942B0EDECE8AE0ADCFBD -:1061E0000A811B81102701271027FE0131966F01BC -:1061F000EC80CF018E0D911D7C01C8018796EC14B7 -:10620000FD0409F4C9CE003CA3E01A0750F40E9433 -:10621000E031F60184830F5F1F4FBFEFCB1ADB0A1B -:10622000ECCFD60114961C92F6CF0A811B81102761 -:1062300001271027FE0131966F01EC80E00EF12E50 -:10624000F11CC8018796E016F10609F4A5CE003CC2 -:10625000F3E01F0728F4D60114966C910E94F431E4 -:10626000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BD84 -:1062700009B400FEFDCF8091D8008F7D8093D800B7 -:106280008091E00082608093E0008091E00081FDD9 -:10629000FCCF0E94EC1777CD86E290E00E94E031BF -:1062A0001B821C821D828E8377CE2D32314008F0F6 -:1062B0008DCCC3CC2D32314008F03CCC72CC87FB66 -:1062C000082E062687FD819567FD61950E94B131F4 -:1062D0000EF4919507FC81950895AA1BBB1B51E113 -:1062E00007C0AA1FBB1FA617B70710F0A61BB70B46 -:1062F000881F991F5A95A9F780959095BC01CD01EB -:10630000089597FB072E16F4009407D077FD09D067 -:106310000E946D3107FC05D03EF4909581959F4F0A -:106320000895709561957F4F0895EE0FFF1F0590BA -:10633000F491E02D09946927962769277827872704 -:10634000782708950E945D32332312F48A1B9B0B39 -:106350000C94AC310E945D32B7FF0895821B930B01 -:106360000895991B79E004C0991F961708F0961BB1 -:10637000881F7A95C9F780950895FB01DC0102C05A -:1063800005900D9241505040D8F70895FC014150BE -:10639000504030F001900616D1F73197CF010895A3 -:1063A000882799270895FB01DC0104C08D91019095 -:1063B000801921F441505040C8F7881B990B08956B -:1063C000F999FECF92BD81BDF89A992780B50895BD -:1063D000A6E1B0E044E050E00C941A32A8E1B0E04D -:1063E00042E050E00C941A32262FF999FECF92BD6C -:1063F00081BDF89A019700B4021639F01FBA20BD8A -:106400000FB6F894FA9AF99A0FBE08950396272FBB -:106410000E94F5310E94F431252F0E94F531242F7E -:106420000C94F5310196272F0E94F5310C94F4312C -:10643000DC01CB01FC01F999FECF06C0F2BDE1BD44 -:10644000F89A319600B40D9241505040B8F7089533 -:106450000E945D32A59F900DB49F900DA49F800D6A -:10646000911D11240895B7FF0C9428320E94283200 -:10647000821B930B0895A1E21A2EAA1BBB1BFD01E0 -:106480000DC0AA1FBB1FEE1FFF1FA217B307E40713 -:10649000F50720F0A21BB30BE40BF50B661F771F6B -:1064A000881F991F1A9469F760957095809590954B -:1064B0009B01AC01BD01CF010895A29FB001B39F24 -:1064C000C001A39F700D811D1124911DB29F700DFD -:1064D000811D1124911D0895F894FFCF5E0F5E0F6A -:1064E000670F670F690F670F670F670F5E0F5E0F0C -:1064F0006E0F670F670F6E0FE6180E1961190E19F0 -:106500006119411979196119761A831ADC1EDC1E8A -:10651000501F501FAE1FC81F131F131FD31F5D2016 -:106520006E206E20892F8D2FF32F04300F302E30E8 -:10653000313070309130013001309C309F30A330C9 -:0A654000C930EB30EE30F0301531B9 -:10654A007606910C700C6C0C680C01191A1B1C1D38 -:10655A001E1F202122010201002A002A2A0181820B -:10656A0083E200E900EA00B500B600B700CD008377 -:10657A0001CC008A019201940121022302240225FE -:10658A0002260227022A02B300B4006F007000F04C -:10659A00F1F2F3F5F6F70001020304053736350088 -:1065AA00FF0100010000FFFF0000010001FF0004DD -:1065BA0004040404040402026162646690929497DB -:1065CA0006606365679193959607000102020202CD -:1065DA000606060909090909090F0F0F0F0F0F15FA -:1065EA0015151819191919191919191919232440DE -:0E65FA0022B6B6019401DE00C808E1080109CE +:102BA00069EE7EEF90E080E00E94E22D60E082E03E +:102BB00090E00E94C42D60E083E090E00E94C42D6C +:102BC00010925B0210925A0260E084E090E00E9452 +:102BD000C42D60E082E290E00E94C42D60E085E0B8 +:102BE00090E00E94C42D60E086E090E00E94C42D39 +:102BF0006FEF87E090E00E94C42D40E050E0BA0102 +:102C000088E090E00E94D62D60E08DE090E00E9488 +:102C1000C42D40E050E0BA0188E190E00E94D62D3A +:102C200060E087E190E00E94C42D40E050E0BA01EE +:102C30008CE190E00E94D62D70E060E080E290E0B0 +:102C40000E94E22D40E050E0BA0188E190E00E944D +:102C5000D62D80E00E94900E0E94A80E40E050E029 +:102C6000BA018FE090E00E94D62D40E050E0BA011A +:102C700083E190E00C94D62D90E080E00E94BE2D80 +:102C8000893E9E4F11F40C94730F80E008951092CA +:102C9000580280911D01E6EEF1E0882359F0809101 +:102CA000D50287FF07C08EE1DF011D928A95E9F703 +:102CB0000C94A90B86E0F8CF1F93CF93DF93CDB789 +:102CC000DEB7AA970FB6F894DEBF0FBECDBF81E086 +:102CD00093E02091F100DC012D93CD01B3E0893028 +:102CE0009B07B9F780910203833009F471C0B8F4EF +:102CF000813009F448C0823009F4B2C08091E80004 +:102D000083FF3AC180910103909102039A3008F049 +:102D100033C1E92FF0E0E45BF14D0C94652D8A306E +:102D200009F48DC08B3009F470C0893039F7809177 +:102D30000103813219F780910503909106030097F2 +:102D400011F00297D9F68091E800877F8093E80020 +:102D50008091E80082FF37C08091F2009091F300EB +:102D6000029729F48091F1008B7F813021F48091CA +:102D7000F1008093DC028091E8008B778093E8007B +:102D80000E946605BBCF80910103813A09F0B6CF5E +:102D90008091E800877F8093E800809105039091FF +:102DA0000603892B61F460E28DED92E070E00E94F1 +:102DB00019068091E8008B778093E8009FCF60E050 +:102DC00090E080E0F3CF8091FF028111C1CF96CFD8 +:102DD00080910103813A09F091CF80910503909190 +:102DE0000603892B09F08ACF8091E800877F8093C2 +:102DF000E8008091E80080FFFCCF80911D01809366 +:102E0000F1008091E8008E77B9CF80910103813283 +:102E100009F074CF8091050390910603892B09F086 +:102E20006DCF8091E800877F8093E8000E9466055F +:102E30008091030380931D010E9447165FCF80910C +:102E40000103813209F05ACF8091E800877F809397 +:102E5000E8000E946605809104038093DB024ECF58 +:102E600080910103813A09F049CF8091E800877F82 +:102E70008093E8008091E80080FFFCCF8091DB0226 +:102E8000BECF803899F0823809F076C08091050372 +:102E90008F70873008F070C08093E9008091EB005C +:102EA00085FB882780F91092E90006C08091FD0219 +:102EB0009091FE02911182609091E800977F90932B +:102EC000E8008093F1001092F1008091E8008E7785 +:102ED000B5C1882309F4A2C1823009F04DC08091A8 +:102EE00003038111A6C1809105038F702FEF280F76 +:102EF000263008F041C08093E9002091EB0020FFCC +:102F000098C1933031F48091EB0080628093EB00A4 +:102F100090C19091EB0090619093EB0021E030E044 +:102F200001C0220F8A95EAF72093EA001092EA0086 +:102F30008091EB008860EACF81111EC010910303DD +:102F40001F778091E3008078812B8093E30080914C +:102F5000E800877F8093E8000E9466058091E80082 +:102F600080FFFCCF8091E30080688093E30082E0E3 +:102F7000111183E08093FF028091E80083FF0AC073 +:102F80008091E800877F8093E8008091EB00806269 +:102F90008093EB00AA960FB6F894DEBF0FBECDBFAC +:102FA000DF91CF911F9108958058823028F72091AA +:102FB0000303309104032C3DE3E03E07A1F583E0D9 +:102FC0008A838AE289834FB7F894DE01139620E062 +:102FD0003EE051E2E32FF0E050935700E49120FFF0 +:102FE00003C0E295EF703F5FEF708E2F90E0EA3004 +:102FF000C0F0C7968D939D932F5F243159F74FBF33 +:103000008091E800877F8093E8006AE270E0CE015B +:1030100001960E9419068091E8008B778093E80062 +:10302000ABCFC096E7CF8091050390910603432F65 +:1030300055274330510509F44AC078F54130510510 +:1030400009F47AC08BE590E0E6EBF8E042305105F8 +:1030500009F092CF2091E800277F2093E80020918B +:103060000703309108038217930708F49C0140E09E +:103070002115310509F065C0411163C08091E80058 +:1030800082FDC9CF8091FF02882329F2853019F291 +:103090008091E80083FFF2CFBECF4132510509F4A1 +:1030A0003CC04232510509F067CF8330910508F0EA +:1030B00063CFFC01EE0FFF1FEA52FE4F0190F0813B +:1030C000E02D8D529E4FDC018C9190E01AC0332789 +:1030D00021303105D1F02115310561F02230310563 +:1030E00009F04ACFE3E2F9E0E4918E2F90E0E3E2C9 +:1030F000F9E007C0E1E4F9E0E4918E2F90E0E1E42B +:10310000F9E0009709F438CFA5CFEDE2F9E0E491BA +:103110008E2F90E0EDE2F9E0F4CF8330910508F0D6 +:103120002BCF880F991FFC01E452FE4F0190F081D4 +:10313000E02D89E090E08ECF82E190E0E1E1F9E0DE +:1031400089CF8091FF02882309F465CF853009F487 +:1031500062CF8091E80083FD5ECF8091E80082FD20 +:103160008DCF8091E80080FF83CF8091F200909115 +:10317000F3002115310519F08830910550F041E038 +:10318000089709F040E08091E8008E778093E8008E +:103190006FCF44914093F10031962150310901964F +:1031A000E8CF803809F0E8CE8091E800877F8093EF +:1031B000E800809100038093F10087CE8111DCCE7E +:1031C00010910303123008F0D7CE8091E800877F7A +:1031D0008093E800109300030E946605112311F00C +:1031E00084E005C08091E30087FDFACF81E0809301 +:1031F000FF0242E061EC81E00E94850542E261EC61 +:1032000084E00E94850542E261EC82E00E9485052F +:1032100042E260EC83E00E948505AECE809103031C +:10322000813009F0A9CE81E0933009F080E08093ED +:10323000FE021092E9008091E800877F8093E80009 +:103240000E94660599CE3F924F925F926F927F9255 +:103250008F929F92AF92BF92CF92DF92EF92FF92A6 +:103260000F931F93CF93DF9300D000D00F92CDB771 +:10327000DEB78C01FC0183819481892B31F0808140 +:10328000918189238F3F09F052C60F900F900F90C4 +:103290000F900F90DF91CF911F910F91FF90EF90C2 +:1032A000DF90CF90BF90AF909F908F907F906F9066 +:1032B0005F904F903F9008950E94040FF82E682F62 +:1032C00089819A810E947D0B69817A818F2D0E946C +:1032D000F70E7C01F8018281882309F41AC6970150 +:1032E00022513F452031310508F0D2C58FEF97E0DC +:1032F0000E94B02DFEEEEF0E57EE852E53E0952E78 +:10330000882381F180915502877009F4BECFF801BE +:103310008281882309F4B9CF82E00F900F900F903B +:103320000F900F90DF91CF911F910F91FF90EF9031 +:10333000DF90CF90BF90AF909F908F907F906F90D5 +:103340005F904F903F900C947415811428E0920682 +:10335000C9F2C4010E94B02D811101C0EA943FEF6F +:10336000831A930AE110F1CF1C821B8244244394F8 +:103370004AE0342E74014FEFE41AF40AC4010E94AB +:10338000B02D89831A82882309F4BCCF9FEF980F50 +:10339000933000F58A83498252E0850E911CC70163 +:1033A0000E94B02D8B83882309F4ACCFCE01019607 +:1033B0007C01F70120812223E9F2213009F049C084 +:1033C00091818281913041F4F2E0EF0EF11C0E9474 +:1033D000AA0D09C04701EACF923049F422E0E20E7B +:1033E000F11C0E94F50C3FEFE31AF30AE2CF933091 +:1033F00031F432E0E30EF11C0E94E10BF4CF943083 +:1034000021F04FEFE41AF40AEECF52E0E50EF11C82 +:1034100030E020E0B7016F5F7F4FF70141818053BB +:10342000990B8A30910550F021503109E0F28FE973 +:103430009FE00197F1F700C00000F6CF329EF00147 +:10344000339EF00D11249C012E0F3F1F842F7B0112 +:10345000E1CFE22FF0E0EA5DFD4F5490822F869598 +:103460008695869590E0FC01EA5EFD4F649027709A +:10347000712C022E02C0759467940A94E2F7E1E081 +:103480006E227724FC01EA5FFD4FA490B12C022E3E +:1034900002C0B594A7940A94E2F7F1E0AF22BB24EE +:1034A000FC01EA50FE4FC490D12C02C0D594C794C1 +:1034B0002A95E2F721E0C222DD246114710419F09B +:1034C00081EE0E94F50CA114B10419F086EE0E9461 +:1034D000F50C852D0E94AA0DAB2819F086EE0E94EE +:1034E000E10B672819F081EE0E94E10BCD2809F469 +:1034F0007ACF8CE26CCF81E00E9490150E94541527 +:1035000001CF81E00E946315F9CF82E0F5CFF3E8A7 +:10351000EF16FFE5FF0609F4CCC024E8E2162FE51C +:10352000F20609F0D5C4882309F4ECCEF0906A02C3 +:10353000EE24E394FE24F0926A020E94880690939F +:103540006802809367028091690210921A018823B1 +:1035500009F4BDC08AE280931B0180931C0181E2C3 +:103560000E947B140E94AD10E0926A0210926902E0 +:103570001092660210926502C5CE882309F481C0BC +:1035800080916D02811106C081E080936D0282EE10 +:103590000E94F50C0E94880690936C0280936B0247 +:1035A0008BE20E94F50CF8018281882309F4D0C4D3 +:1035B00010929003F2E0EF16FCE5FF0608F4ACC1B0 +:1035C00026E1E2162CE5F20630F0C7018A5F9C4541 +:1035D000099708F0A1C10E948C0F9093D6028093A6 +:1035E000D50230E1E3163CE5F30609F464C108F0C6 +:1035F000E6C058E0E5165CE5F50609F44EC108F0B2 +:10360000AFC094E0E9169CE5F90609F43EC108F064 +:1036100091C0F2E0EF16FCE5FF0609F430C180919D +:10362000D502826023E0E2162CE5F20609F42AC1F5 +:103630006091D502F090D60284E090E00E94C42D03 +:103640006F2D82E290E00E94C42D0E9447165ACE50 +:103650008823A1F080916D02811106C081E08093E2 +:103660006D0282EE0E94F50C0E94880690936C0217 +:1036700080936B0281EE0E94F50C92CF81EE0E9446 +:10368000E10B8BE20E94E10B8ECF882309F48BCFF4 +:1036900081EE0E94F50C83EE0E94F50C8FE40E94EF +:1036A000F50C8FE40E94E10B83EE0E94E10B81EEAA +:1036B000E9CF882309F477CF81EE0E94F50C83EEE1 +:1036C0000E94F50C80E50E94F50C80E5EBCF8AE2C4 +:1036D00080931B0180931C0181E2FF2029F00E944E +:1036E0007B140E94AD1042CF0E947B143FCFE5EFC8 +:1036F000EE16ECE5FE06B9F090F026EFE2162CE5AA +:10370000F20609F050CF27E245EE66EEFEC327E24F +:1037100045EE65EEFAC326E241EE60EEF6C327E21F +:1037200045EE64EEF2C326E241EE62EEEEC328E21D +:1037300041E0EFCF8091D502806136E0E3163CE5B1 +:10374000F30609F49FC08091D502886047E0E41633 +:103750004CE5F40608F496C08091D502806292C0D0 +:103760008091D5028D7F5CE0E5165CE5F50609F4F5 +:1037700089C078F48091D5028C609AE0E9169CE5C6 +:10378000F90609F47FC008F48CC08091D5028E7FC1 +:1037900079C08091D502877FFEE0EF16FCE5FF0639 +:1037A00009F470C08091D5028B7F2FE0E2162CE5E2 +:1037B000F20608F467C08091D5028F7E63C03BEFAC +:1037C000E3163CE5F30609F464C068F553E1E51639 +:1037D0005CE5F50609F477C090F491E1E9169CE503 +:1037E000F90609F46CC0E2E1EE16ECE5FE0609F01C +:1037F0001FCF0E9447168091D5028F7743C0F5E115 +:10380000EF16FCE5FF0609F466C008F47AC0809163 +:10381000D60281603AEFE3163CE5F30609F008CFE3 +:103820008093D60205CF4FEFE4164CE5F40609F479 +:103830004EC088F48DEFE8168CE5F806C1F1809152 +:10384000D6028E7F9EEFE9169CE5F90648F380913B +:10385000D6028360E5CFE1E0EE16EDE5FE0609F461 +:1038600059C008F444C060E022E0E2162DE5F206FB +:1038700009F0DECE8EE090E00E94C42DD9CE80917A +:10388000D50281608093D502D3CE8091D502846029 +:10389000F9CF8091D6028260C3CF8091D502806437 +:1038A000F1CF0E9447168091D5028068EBCF8091BE +:1038B000D6028D7FB5CF8091D5028F7DE3CF8091E9 +:1038C000D5028F7BDFCF8091D502837FDBCF8091C4 +:1038D000D6028C7FA5CF8091D50282FB992790F9E3 +:1038E00021E0922790FB82F990FB83F9CBCF809166 +:1038F000D602982F909591708E7F892B90FB81F93D +:103900008FCF0E9447169091D502892F97FB87F998 +:103910008058B8CF61E0AECF8091580236E1E3160F +:103920003CE5F30609F021C38A7A91E009F490E0BE +:1039300090930402811106C089E20E94170B0E9435 +:10394000A70AE0CC85E3F9CF85E30CC38091890316 +:1039500080FF1BC08E7F80938903609189037091E3 +:103960008A0380918B0390918C030E9438131092EC +:10397000C5024FEF50E782E0415050408040E1F7F0 +:1039800000C000000E94B00FBDCC8160809389030D +:1039900061E086950E944014B5CC4FE955E168EA94 +:1039A00075E10E94CC06AECC48EA55E16FE975E1BD +:1039B000F8CF45E154E16CE074E1F3CF44EF53E11B +:1039C00060E074E1EECF4CED53E168EE73E1E9CFD6 +:1039D00048EE53E16CED73E1E4CF4FE254E16EE168 +:1039E00074E1DFCF61E081E0D5CF65E082E00E9445 +:1039F000B21588CC68E086E0FACF64E18FE0F7CFBB +:103A000067E185E1F4CF62E289E1F1CF61E083E231 +:103A1000C1CF3BE5E3163DE5F30611F14CE5E416B5 +:103A20004DE5F40609F0D3C28091D60282FB8827C7 +:103A300080F991E089270E94B70EC9C20E944716FB +:103A40005FEF84E39CE0515080409040E1F700C07C +:103A500000000E94D10C0E94D01554CC81E0EBCF25 +:103A600080E0E9CFC7010E94550BD82EBFC22F2D91 +:103A70002F70C22E8F2D807F19F0C29490EFC92233 +:103A8000DD20C9F0CC2069F080E28E0D883010F086 +:103A900081100BC080915802C82AC09258020E941F +:103AA000A70A8E2D0E94F50C19C080915702C82AD2 +:103AB000C0925702F4CF8E2D0E94E10BCC2071F002 +:103AC000C09480E28E0D883010F081103EC080914D +:103AD0005802C822C09258020E94A70AE92DE85055 +:103AE000FF0B349720F40E94C0060E94A114AA2064 +:103AF00009F4CBCB8091550280FDC7CBF80112822F +:103B00008595859585950E949015C8010E94231979 +:103B1000809155028595859585950F900F900F9012 +:103B20000F900F90DF91CF911F910F91FF90EF9029 +:103B3000DF90CF90BF90AF909F908F907F906F90CD +:103B40005F904F903F900C94631580915702C8226C +:103B5000C0925702C1CF3F2D3F70B32E8F2D807F73 +:103B6000803219F0B29480EFB822882071F041E0E1 +:103B7000841681F1DD20D9F1CC2091F1F801858105 +:103B800080FF8FCF8F7085832BC0DD20B1F09091A7 +:103B900059028B2D892BC11003C00E94D70B9ECFD9 +:103BA00051E0C512FACF2091D60222FD97CF981787 +:103BB00009F494CF8093590291CFC11006C00E949E +:103BC000A10A8B2D0E94CC0B89CF81E0C81609F485 +:103BD00085CFF5CFDD2031F095E09C1508F47ECF40 +:103BE0008B2DDBCFE4E0EC1508F478CFEACFCC20C6 +:103BF00041F3F9E38F1209C02FEF37EE43E0215074 +:103C000030404040E1F700C000008E2D0E94E10BE3 +:103C100065CF8F2D86958695837061F0813009F090 +:103C20005DCFC7019370D11002C090E080E00E9488 +:103C3000940654CFC7019370D11002C090E080E089 +:103C40000E94AA064BCF8E2DDD2029F00E9463082A +:103C50000E94810743CF0E94A807FACF8F2D83705F +:103C600009F040C0D1103ACF4E2D4295469547708D +:103C7000440F440F8E2D8F7090E0042E02C0880FE9 +:103C8000991F0A94E2F730E020E0E4FE09C02FE03B +:103C900030E002C0220F331F4A95E2F7209530959D +:103CA0004F2D469546954370423099F078F46091D7 +:103CB0005A0270915B02413039F0822B932B86239C +:103CC00097230E94C60B0ACF862B972B822B932B10 +:103CD000F8CF822B932B20915A0230915B028227DE +:103CE0009327EFCF8695DD2011F08F2D81708823EB +:103CF00009F4F4CE4E2D429546954770440F440F7B +:103D00008E2D8F7090E0042E02C0880F991F0A94A8 +:103D1000E2F730E020E0E4FE09C02FE030E002C02E +:103D2000220F331F4A95E2F7209530954F2D469587 +:103D300046954370423099F078F460910903709190 +:103D40000A03413039F0822B932B862397230E945C +:103D50004C15C4CE862B972B822B932BF8CF822B1E +:103D6000932B2091090330910A0382279327EFCFE9 +:103D70005F2D5F70F52EDD2029F0852F0E949015B4 +:103D80008E2D0BCF8E2D0E94CC0B8F2D0E94631594 +:103D9000A5CE8E2D92EF891609F449C0981570F0C2 +:103DA000E0EF8E1639F1F1EF8F16C9F1DD2009F43D +:103DB0005FC0C11076CE8F2D8F7136C023EF821673 +:103DC000D9F134EF8312F2CFDD2009F446C0FF2D84 +:103DD000FF71FF2E8F2F0E9490158091D60282FDD9 +:103DE00007C028E0F29EC001112483608093550231 +:103DF0008F2D1AC0DD2071F044E04C1508F46ECE12 +:103E00002F2D2F7181E090E002C0880F991F2A9515 +:103E1000E2F7A7CF55E05C1508F460CEF1CF8F2D07 +:103E20008F71DD2009F4B2CF0E94901557CE8F2DEF +:103E30008F71DD20C9F3AACF90E080E0DD2009F486 +:103E400086CF9F2D9F7121E030E0F90102C0EE0F77 +:103E5000FF1F9A95E2F7CF017ACF81E00E94741597 +:103E600031E03C1508F03ACE82E00E94741536CE5F +:103E7000CC2059F0893309F0C8CE4FEF57EE83E0DC +:103E8000415050408040E1F7BECE8F2D8F717ECFE4 +:103E9000F0E1EF16FFE5FF0609F42DCB21E1E21674 +:103EA0002FE5F20609F431CB42E8E4164FE5F406BB +:103EB00009F4EBCB08F02BCB90E8E9169FE5F90667 +:103EC00009F45BCBE1E8EE16EFE5FE0609F4C0CBA2 +:103ED00033EFE3163CE5F30609F41DCC08F007CCFC +:103EE00058EDE5165CE5F50609F411CC89EDE81608 +:103EF0008CE5F80609F41BCC97EDE9169CE5F9066C +:103F000009F051CB26E241EE61EEC8010E94C70DD7 +:103F1000F9C930E1E3163FE5F30609F4F2CA41E1DD +:103F2000E4164FE5F40609F0BFCF82E0EBCA85E066 +:103F3000DE01119601900D928A95E1F7F801228138 +:103F400089819A812111B8C90E94550BF82EBCC9EC +:103F5000F6E1EF16FCE5FF06D1F580910402811130 +:103F6000F3CC89E20E94EC0AEACC82722CECE216D5 +:103F70002CE5F20609F431CD08F0A7C046ECE416B2 +:103F80004CE5F40609F415CD08F076C093ECE9167B +:103F90009CE5F90609F401CD08F05DC0F2ECEF16DE +:103FA000FCE5FF0609F4D2CC9AE5E9169DE5F90691 +:103FB00009F454CD08F02DCDE114FCE5FF0609F419 +:103FC0003DCD2EEDE2162CE5F20609F444CDF801C4 +:103FD0008281E080F180882309F444CDC7010E94EA +:103FE000040FD82E682FC7010E947D0BB7018D2DBD +:103FF0000E94F70E0E9419097C01882EF801D280D8 +:10400000C580C2943FE0C322809155028770A1F021 +:10401000AD2CDD2091F08F2D807F803421F080E267 +:104020008E0D883048F082E00E9474158091550210 +:104030008770AA24A3948111A12C9F2C92942FE025 +:104040009222FBE0F91508F449CDE92DF0E0EA5A97 +:10405000F14D0C94652D24ECE2162CE5F20609F4E2 +:10406000A3CC4CE054E165E174E135ECE3163CE5AA +:10407000F30609F496CC98CF49ECE4164CE5F40627 +:1040800009F4A1CC88F497ECE9169CE5F90609F44B +:1040900095CC40E054E164EF73E1E8ECEE16ECE51A +:1040A000FE0609F47ECC80CFFAECEF16FCE5FF06A5 +:1040B00009F48ECC4EE154E16FE274E12BECE21690 +:1040C0002CE5F20609F46DCC6FCF31EDE3163CE53B +:1040D000F30609F492CCB8F45EECE5165CE5F5065F +:1040E00009F483CC08F47ECC9FECE9169CE5F90634 +:1040F00009F480CC6EE089E0E0EDEE16ECE5FE061A +:1041000009F475CC51CFF4EDEF16FCE5FF0609F488 +:104110007ACC78F432EDE3163CE5F30609F470CC82 +:1041200061E088E143EDE4164CE5F40609F432CC95 +:104130003BCF55EDE5165CE5F50609F467CC8DE55A +:10414000E816F80609F4DEC82FCF1F93CF93DF934C +:1041500080912202807FA9F480911F02882389F038 +:1041600080915402D091230260911D0270911E0231 +:10417000A0912002B0912102C62FC72316E0D813C8 +:1041800004C0DF91CF911F91089590E0109711F036 +:10419000CF3F19F401968770F2CF189F9001199FB5 +:1041A000300D1124F901EC5DFD4F41814713F2CF31 +:1041B00040814613EFCF42814111ECCF43815481BE +:1041C0004A1B5B0B483C510528F7809122028F70F7 +:1041D000806180932202F901E75DFD4F80818F703D +:1041E000806180838DE192E00E942319DF91CF915D +:1041F0001F910C944B0BAF92BF92CF92DF92EF9234 +:10420000FF920F931F93CF93DF93CDB7DEB76197E4 +:104210000FB6F894DEBF0FBECDBF8C0185E0F8016C +:10422000DE011D9601900D928A95E1F7F801E2807A +:104230008DE1A82E82E0B82E6091200270912102BB +:104240006115710509F432C190911D0240911E0261 +:10425000892F84238F3F09F429C120813181C380B4 +:10426000D480F0901F02F601E61BF70BFF2009F443 +:10427000E8C080912202582F507FE83CF10508F0F9 +:10428000ABC0511177C0FE2C431321C092131FC045 +:10429000E1101DC08F70806180932202C5010E94D1 +:1042A000231980912202F80185838F2D61960FB624 +:1042B000F894DEBF0FBECDBFDF91CF911F910F915C +:1042C000FF90EF90DF90CF90BF90AF900895CD28F2 +:1042D00029F0822F83238F3F09F003C180E0F82F5C +:1042E000F170DF2E80FF3CC0809154024091230288 +:1042F00056E0841315C02D873E878D859E850E94CC +:10430000400F292F22952F702230F0F0243018F51D +:104310009F70F1F0F8019581907FD1F4D12C1EC0EF +:1043200090E0589FF001599FF00D1124EC5DFD4F76 +:104330006181361306C06081261303C06281E612D4 +:104340000FC001968770D5CF9F7011F0882331F38D +:10435000805E883018F3C8010E942319FD2CA5CF78 +:10436000EE2009F4A2CF8091220281608093220284 +:10437000F12C9BCF431306C0921304C0F801EE202A +:1043800009F479C0C8010E944C0F882309F1EE207E +:10439000F9F080912202803270F020911D0230915C +:1043A0001E0238872F831986DB86CA868C87CE014A +:1043B00007960E94231986E0F801ADE1B2E0019072 +:1043C0000D928A95E1F70E94A520FF24F3946DCF0A +:1043D000C8010E942319F9CF51110AC08DE192E062 +:1043E0000E94231986E0F50111928A95E9F7C0CF62 +:1043F00043130FC092130DC0E1100BC0F801858369 +:10440000C8010E94231986E0F50111928A95E9F707 +:104410004CCFC8010E944C0F8823D1F2EE20C1F28C +:1044200080912202803238F220911D0230911E02CA +:104430003A8329831B82DD82CC828E83CE01019652 +:10444000B8CFE83CF105F8F6FE2CEE2009F2431354 +:104450001FC092131DC08091220280FD10C0982FB2 +:10446000907F69F0F8018583903F31F0982F907F1D +:10447000905F8F70892B8583C8010E94231986E085 +:10448000F801ADE1B2E001900D928A95E1F70DCF10 +:10449000C8010E944C0F81118ECF80912202816051 +:1044A00080932202C8010E942319FFCEEE2009F456 +:1044B0008FCFC8010E944C0FF82E882309F488CFB3 +:1044C00086E0F801ADE1B2E001900D928A95E1F746 +:1044D00080911D0290911E020E94400F0E94A52013 +:1044E000E4CE81E08E25FBCE1F93CF93DF93CDB733 +:1044F000DEB767970FB6F894DEBF0FBECDBF4B8B0C +:104500005C8B6D8B7E8B8F8B6111109257021A8A98 +:10451000198A85E0FE017396DE011D9601900D92C9 +:104520008A95E1F786E0FE013D96DE01179601903F +:104530000D928A95E1F7CE0107960E94FB20882311 +:1045400089F016E08091540290912302891349C0AA +:1045500067960FB6F894DEBF0FBECDBFDF91CF9147 +:104560001F91089586E0FE013796DE0111960190B5 +:104570000D928A95E1F78A859B85892B11F38F81AE +:10458000988589238F3FE9F22091230230E0C90109 +:10459000019687709927409154024817190671F4C3 +:1045A0000E944716109223021092540286E0EDE119 +:1045B000F2E0DF011D928A95E9F7C3CF96E0929F62 +:1045C000D001939FB00D1124AC5DBD4FFE0131961B +:1045D00001900D929A95E1F7809323020E944B0B74 +:1045E000B0CF819FC00111248C5D9D4F0E94FB20A4 +:1045F000882309F4ADCF8091540290E00196877032 +:104600009927809354029ECF6F927F928F929F92B0 +:10461000AF92BF92CF92DF92EF92FF920F931F93D0 +:10462000CF93DF93CDB7DEB72D970FB6F894DEBFEB +:104630000FBECDBF8E010F5F1F4F88E0F8011192B2 +:104640008A95E9F74FE4E42E41E0F42E680153E542 +:10465000652E51E0752E88248394912CF701819169 +:104660007F018F3F09F44BC0F894E82FE295EF707B +:10467000F0E021A18F70A40102C0440F551F8A955C +:10468000E2F7CA01922F982B91A392A180958923DA +:1046900082A3789400C0E3E5F1E030E020E0B12CA3 +:1046A000A12C81918F3F09F47CC0A82FA295AF70F7 +:1046B000B0E090964C9150E08F7002C055954795B0 +:1046C0008A95E2F740FD6DC0C401022E02C0880F3A +:1046D000991F0A94E2F7A82AB92A2F5F3F4F2C307E +:1046E0003105F9F6F701319780818F3F11F00E9473 +:1046F000BF0850EA5A95F1F7F601B182A082F2E0C4 +:10470000CF0ED11C6E147F0409F0A8CF48E050E012 +:10471000B8018EE692E00E94A32DCC24C3940097AA +:1047200009F4C12C892B09F43FC088E0F801AEE6FA +:10473000B2E001900D928A95E1F781E080935E02EC +:104740000E94880690935D0280935C0280915C02D7 +:1047500090915D020E947906059750F180916E025A +:1047600090916F029093A7028093A60280917002AD +:10477000909171029093A9028093A8028091720295 +:10478000909173029093AB028093AA02809174027D +:10479000909175029093AD028093AC0210925E02EC +:1047A00007C090E080E097CF80915E028111CECF6C +:1047B00080916D02882371F080916B0290916C0260 +:1047C0000E947906893E934028F082EE0E94E10B18 +:1047D00010926D0280916A02882399F1809169029A +:1047E00081112FC080916702909168020E94790622 +:1047F00081369A4E78F0809165029091660201961A +:1048000090936602809365020E94880690936802E6 +:104810008093670280916502909166024F9788F0BD +:1048200010921A018AE280931B0180931C018FE091 +:104830000E947B1481E080936902109266021092BC +:10484000650238E7E32E32E0F32E10E000E0BB24EF +:10485000B394F701D1907F01DD2051F101151105CD +:1048600009F058C0B09263020E94880690936002DB +:1048700080935F02D694C801880F991FDD2009F448 +:1048800056C08F589E4FFC01808191819A878987FD +:104890001B860E9488068160782F9D878C87F70190 +:1048A0003197108249855A856B858D850E947422C7 +:1048B0000F5F1F4F0930110561F61091640280915E +:1048C000630211115DC08823A9F110921A0184E0DE +:1048D00080931B0180931C018FE00E947B14109237 +:1048E000630281E0809364028C2D2D960FB6F894BC +:1048F000DEBF0FBECDBFDF91CF911F910F91FF9013 +:10490000EF90DF90CF90BF90AF909F908F907F906F +:104910006F9008950530110519F4B0926202A4CF8A +:104920000730110509F0A6CFB09261029DCF815AE0 +:104930009E4FA9CF80916202882379F086E180930F +:104940001A018AE180931B0184E080931C018FE0AF +:104950000E947B1410926202C4CF8091610288236E +:10496000A9F08AE180931A018EE180931B0184E013 +:1049700080931C018FE00E947B1410926102B1CFE2 +:1049800081112BC080916202811127C08091610248 +:10499000811123C080915F02909160020E9479068C +:1049A000853F9140D0F0112379F010921A018AE2EC +:1049B00080931B0180931C0181E20E947B148091F3 +:1049C0006A0281110E94AD1010926302109262027D +:1049D000109261021092640287CF109263021092CB +:1049E00062021092610280CF1F920F920FB60F9257 +:1049F00011242F933F934F935F936F937F938F93E4 +:104A00009F93AF93BF93CF93DF93EF93FF93D09197 +:104A1000E900DF708091EC00C82FC17080FDC0E814 +:104A20001092E9008091F000877F8093F0007894E5 +:104A30000E945C161092E9008091F00088608093DB +:104A4000F000CD2BCF70C093E900FF91EF91DF9183 +:104A5000CF91BF91AF919F918F917F916F915F9116 +:104A60004F913F912F910F900FBE0F901F9018956F +:104A70001F920F920FB60F9211242F933F934F93D3 +:104A80005F936F937F938F939F93AF93BF93EF93B6 +:104A9000FF938091E10082FF09C08091E20082FFD4 +:104AA00005C08091E1008B7F8093E1008091DA0066 +:104AB00080FF24C08091D80080FF20C08091DA0060 +:104AC0008E7F8093DA008091D90080FF9BC088E1BF +:104AD00089BD8AE189BD09B400FEFDCF81E08093E4 +:104AE000FF028091DA02811109C00E94EC040E9449 +:104AF000B7058091E20084608093E2008091E1003C +:104B000080FF17C08091E20080FF13C08091E20017 +:104B10008E7F8093E2008091E20080618093E200CA +:104B20008091D80080628093D80019BC85E0809382 +:104B3000FF028091E10084FF29C08091E20084FFA0 +:104B400025C088E189BD8AE189BD89B5982F91701A +:104B500080FFFBCF8091D8008F7D8093D80080911B +:104B6000E1008F7E8093E1008091E2008F7E809350 +:104B7000E2008091E20081608093E2008091000376 +:104B8000882309F445C084E08093FF028091E1000E +:104B900083FF27C08091E20083FF23C08091E10062 +:104BA000877F8093E10082E08093FF0210920003F0 +:104BB0008091E1008E7F8093E1008091E2008E7F02 +:104BC0008093E2008091E20080618093E20042E005 +:104BD00060E080E00E9485058091F000886080930D +:104BE000F000FF91EF91BF91AF919F918F917F91D5 +:104BF0006F915F914F913F912F910F900FBE0F904A +:104C00001F90189519BC1092FF021092DA0276CF0D +:104C10008091E30087FD93E09093FF02B7CF7894F3 +:104C20001F921FB61F9211248F939F93AF93BF9330 +:104C30008091D1029091D202A091D302B091D4027E +:104C40000196A11DB11D8093D1029093D202A09331 +:104C5000D302B093D402BF91AF919F918F911F90D7 +:104C60001FBE1F9018951F921FB61F9211248F937D +:104C70009F93AF93BF938091D002811113C0809115 +:104C8000D1029091D202A091D302B091D402419668 +:104C9000A11DB11D8093D1029093D202A093D302A3 +:104CA000B093D402BF91AF919F918F911F901FBE7F +:104CB0001F901895CDB7DEB7E0970FB6F894DEBF1A +:104CC0000FBECDBF84B7877F84BF0FB6F894A89579 +:104CD00080916000886180936000109260000FBE38 +:104CE00080E890E00FB6F8948093610090936100A3 +:104CF0000FBE85B7806885BF85B7806885BF8DEB9F +:104D000098E09093E3018093E2010E94EC040E94FA +:104D1000B7058091E20084608093E20078948091EE +:104D2000FF028823A1F01091E9001F709091EC0020 +:104D3000892F817090FD80E8182B1092E9008091F6 +:104D4000E80083FD0E945C161F701093E90082E06A +:104D500084BD93E095BD9AEF97BD80936E000E944D +:104D6000730F811102C00E94A80E80EF0E94BF083D +:104D700081EF0E94BF0882EF0E94BF0883EF0E946C +:104D8000BF0803E511E0FFE5EF2EF1E0FF2ED801AB +:104D90008D918D018F3F11F00E94BF08E016F10642 +:104DA000B1F710926F0210926E021092A702109249 +:104DB000A60210927102109270021092A902109233 +:104DC000A80210927302109272021092AB0210921B +:104DD000AA0210927502109274021092AD02109203 +:104DE000AC020E943C16811102C00E94D01582E0E4 +:104DF00090E00E94B02D80939D020E948C0F9093B2 +:104E0000D6028093D5020E940423EFE3FCE9319798 +:104E1000F1F700C000000E9404238091A60280FFE9 +:104E200008C06FEF7FEF90E080E00E94E22D0E94CB +:104E3000D10C83E090E00E94B02D90E00E94C60B60 +:104E40008091090390910A030E94B914809176021F +:104E5000811132C00E943C16811104C00E94D015FD +:104E60000E94C01588E090E00E94B82D60938903ED +:104E700070938A0380938B0390938C036E7F71F4FD +:104E80000E94C01588E090E00E94B82D60938903CD +:104E900070938A0380938B0390938C030E94D206B5 +:104EA0001092C5028091890380FF03C086950E94FD +:104EB0007B1481E0809376026EEA71E0E3E98E2E46 +:104EC000E2E09E2E2CE931E0E5EAF1E041E050E03D +:104ED0001191812F82958F7090E0DC019196FC906A +:104EE00091971F70E12E6A0101C0CC0C1A95EAF768 +:104EF0000C2D00950F2191960C93919792961C91F1 +:104F000092971C2992961C93D901FD909D010F2D1B +:104F100002950F7010E0D8019196BC90BF2DBF7024 +:104F2000FB2E6A0101C0CC0CBA95EAF7DC2CD094B8 +:104F3000DB20D8019196DC9291979296DC90929723 +:104F4000DC289296DC92DC0190968C9190E002C075 +:104F500095958795EA94E2F78170D80190960C9127 +:104F600010E002C015950795FA94E2F790E000FD75 +:104F700092E0892BD4018D934D016E177F0709F0C4 +:104F8000A7CF86EA92E09093BD028093BC0281E2B3 +:104F90000E947B1481E090E00E944C1580E091E03B +:104FA0009093CD028093CC0258E1252E312C809134 +:104FB000FF02FF24F39408E11AE1853009F4B3C23B +:104FC0000E940423882359F08FB7F8944091D102AE +:104FD0005091D2026091D3027091D4028FBFA6EAA1 +:104FE000B2E0EEE9F2E010E000E0702F8D919D91CB +:104FF000219131912817390709F4BEC22827392792 +:1050000060E0EE24E394F12CA9014E215F21452BB1 +:1050100009F4ACC269A37AA39C012E213F2191E03F +:10502000232B09F490E09BA30E9488068160782FCF +:105030009DA38CA349A15AA16BA18DA10E947422AA +:10504000000F111FF801E256FD4F80819181E82683 +:10505000F926F182E0828091C5028823D1F1809106 +:10506000C402E0918903E695E81BE093C002823018 +:1050700009F099C2F0E0EC53FD4FE4910E2F10E0DF +:1050800024E2E22E23E1F22E8091C102882361F016 +:105090001092C1020E9488069093BF028093BE02C4 +:1050A0001092C3021092C2020E948806E091BE02D2 +:1050B000F091BF028E1B9F0B8F3F9F4750F4E00F74 +:1050C000F11FF093BF02E093BE028EEB92E0F70176 +:1050D00009953AE8E32E32E0F32E01E812E048E7C2 +:1050E000842E42E0942E83E991E09CA78BA7D12CDB +:1050F000C12CACE9B1E0BEA7ADA7E5EAF1E0F8ABA1 +:10510000EFA753E9652E52E0752E512C44244394A9 +:10511000D301ED913D01EE0FEE0FAFA5B8A92D9192 +:10512000B8ABAFA7A22FA295AF70B0E090968C91CC +:1051300090E02F7002C0959587952A95E2F78170CF +:105140009927ADA5BEA54D91BEA7ADA7A42FA29549 +:10515000AF70B0E090962C9130E04F7002C0359562 +:1051600027954A95E2F7A9014170552720FF02C013 +:1051700042E050E0842BE82BD3011197EC93ABA5D0 +:10518000BCA5AD90BCA7ABA7EF70F0E0ED57FE4F0C +:105190008081F7019081890F8083B12C082E000C4B +:1051A000990B20E08A159B05DCF0D8018C918F5F6C +:1051B0008C93F601E15AFE4F808191819A83898315 +:1051C0004B820E9488068160782F9D838C83F40136 +:1051D000408249815A816B818D810E94742221E035 +:1051E000D7018C91082E000C990B442755274A199A +:1051F0005B0948175907E4F0F801808181508083EA +:10520000F601EF58FE4F808191819A8389834B820A +:105210000E9488068160782F9D838C83E2E0D40110 +:10522000EC9349815A816B818D810E94742221E027 +:10523000D7018C91082E000C990BB5010E94512DBD +:10524000F70181937F01522A0F5F1F4FFFEF8F1AE3 +:105250009F0A22E0C20ED11C42E1C416D10409F01B +:1052600057CF552059F08FB7F8944091D102509103 +:10527000D2026091D3027091D4028FBF86E0E5EB39 +:10528000F2E0DE01119601900D928A95E1F7F0901F +:10529000B702E090B8021091B9020091BA021092E0 +:1052A000B7021092B8021092B9021092BA028F2D72 +:1052B0008E2909F448C08091B3029091B4020E94F3 +:1052C00079069C019091AF02992309F4C3C323335B +:1052D0003105C8F19F3F19F09F5F9093AF02FF2007 +:1052E00059F00E9443089FEF1F140CF491E0899F2E +:1052F000802D11248093B702EE2059F00E944308BC +:105300009FEF1E140CF491E0899F802D112480934F +:10531000B8023091B7023323B1F02091B8022223B2 +:1053200091F045EB3403C0011124992309F495C190 +:105330009093B70245EB240390011124332309F421 +:1053400090C13093B802812F802B09F448C080911E +:10535000B1029091B2020E9479069C019091AE0236 +:10536000992309F472C325363105C8F19F3F19F01E +:105370009F5F9093AE02112359F00E9421089FEF86 +:1053800011160CF491E0899F802D11248093B902AD +:10539000002359F00E9421089FEF10160CF491E0B1 +:1053A000899F802D11248093BA023091B902332352 +:1053B000B1F02091BA02222391F045EB3403C001F1 +:1053C0001124992309F451C19093B90245EB2403A8 +:1053D00090011124332309F44CC13093BA02809117 +:1053E000B7029091B802892B9091B902892B9091C4 +:1053F000BA02892B11F00E94810786E0FE013196E6 +:10540000A5EBB2E001900D928A95E1F70E94C006EB +:1054100090919C02891731F00E94C00680939C02F3 +:105420000E94A1148091FF02843009F0C0CD83E076 +:105430008093E9008091E80082FFB9CD8091E80077 +:1054400090E085FF06C00E940B05882309F415C172 +:1054500091E08091E8008B778093E800992309F42C +:10546000A6CDE981E150E33108F09BC1F0E0EE59AF +:10547000F14D0C94652D8091FF02843009F441C0F8 +:1054800080E00E94A1141092C5028091BB0281119C +:1054900016C0F092BB0280918903982F917090936F +:1054A00077028E7F80938903BFEFE0E7F2E0B1508F +:1054B000E040F040E1F700C000000E94B00F109201 +:1054C000D00220E40FB6F894A895209260000FBE99 +:1054D0002093600083B7817F846083BF83B781603E +:1054E00083BF7894889583B78E7F83BF0FB6F89477 +:1054F000A8958091600088618093600010926000A0 +:105500000FBE8091FE02882371F00E940423E6EA18 +:10551000F2E081919191892B09F078C28EEA92E0B4 +:105520008E179F07B1F78091FF02853009F4A3CF52 +:105530000E9447160E94C0060E94A1141092BB024E +:1055400080917702882359F080918903816080934C +:10555000890386950E947B140E949A0F31CD809119 +:10556000C6028823C9F30E94B00FF6CF6F5FEE0C1E +:10557000FF1C6C3009F048CD0F5F1F4F0430110540 +:1055800009F033CD8FEF8EA38FA318A60E94880653 +:105590008160782F9AA789A74EA15FA168A58AA5E7 +:1055A0000E94742258CD863059F4F0E0EF53FD4F3D +:1055B000E4910E2F10E094E1E92E93E1F92E64CDF1 +:1055C000893061F4E695F0E0E254FD4FE4910E2F4E +:1055D00010E085E6E82E82E1F82E56CD8F3061F49A +:1055E000E695F0E0E554FD4FE4910E2F10E0B0E1B8 +:1055F000EB2EB2E1FB2E48CD853159F4F0E0E854B2 +:10560000FD4FE4910E2F10E0ADE9EA2EA1E1FA2E54 +:105610003BCD08E210E07DE0E72E71E1F72E883106 +:1056200009F432CD833249F4E6EBF2E005911491AE +:10563000FBEBEF2EF2E1FF2E27CD04EF11E0E0EDC2 +:10564000EE2EE0E1FE2E843209F41ECD00ED17E0CF +:1056500061EDE62E66E0F62E17CD81E08093B7026D +:1056600069CE81E08093B8026ECE81E08093B9026A +:10567000ADCE81E08093BA02B2CE00E210E0CE015E +:1056800001967C018091E80085FD0AC08091E800C8 +:105690008B778093E8000E940B05882399F3D8CE7E +:1056A0008091F100D7018D937D010150110951F7CF +:1056B000CFCE1A8289E08B833FC08A81823009F481 +:1056C000BBC18330A9F0813009F06BC02FB7F894CB +:1056D0006091D1027091D2028091D3029091D40254 +:1056E0002FBF0E946B2D6B837C838D839E8324C090 +:1056F0008091A6029091A7029827892798279C83DA +:105700008B838091A8029091A902982789279827D6 +:105710009E838D838091AA029091AB02982789275E +:10572000982798878F838091AC029091AD0298273B +:10573000892798279A8789878091FF02843009F00A +:1057400036CC1091E9001F709091EC00892F817088 +:1057500090FD80E8182B82E08093E9008091E800BA +:1057600080FF0DC050E040E060E270E0CE010196A5 +:105770000E943C058091E8008E778093E8001F70BE +:105780001093E90014CC8A81823059F46B817C81BA +:105790008D819E810E946B2D86E290E00E94C42D37 +:1057A000CBCF8FEF8983C8CF4C816B818A810E94D8 +:1057B000D10E9827892798279E838D83BDCFED80B2 +:1057C000FE80FE24EF24FE248A810B81B8E10B9F2A +:1057D00080011124E0E68E9F000D111D11248C81A3 +:1057E00090E0880F991F080F191F6F2DC801879629 +:1057F0000E94C42D6E2DC8018896D0CF0E943B0E0A +:105800009BCF8A818138C1F060F4803809F094CF51 +:1058100020E04B8160918B0380918A030E944A13A0 +:105820008BCF823849F1833809F086CF20E0409150 +:105830008C036C818B81F2CF8B810E947B149B81C6 +:1058400080918903911111C08E7F809389031092FA +:10585000C502FFEF20E742E0F15020404040E1F771 +:1058600000C000000E94B00F67CF81608093890361 +:1058700086950E947B1460CF8B8180938D035CCFD3 +:105880008A81813899F030F4803809F055CF8091C1 +:105890008C0311CF823891F0833809F04DCF80917D +:1058A0008A038B8380918B038C8346CF80918903FD +:1058B00080FF02C08695FFCE80E0FDCE80918D03F3 +:1058C000FACE6091890370918A0380918B03909145 +:1058D0008C030E94381330CF80E18A832DCF84E07F +:1058E0008A8389E1E8CE0A811B81102701271027CE +:1058F000CE0101966C01EC80DC01AE0DB11D7D0185 +:10590000C80189519C4FEC14FD0409F415CF0931ED +:10591000B4E01B0750F40E94B02DF60184830F5FA2 +:105920001F4FBFEFCB1ADB0AEBCFD60114961C92A8 +:10593000F6CF0A811B81102701271027FE0131961F +:105940006F01EC80E00EF12EF11CC80189519C4FD3 +:10595000E016F10609F4F0CE0931F4E01F0728F44F +:10596000D60114966C910E94C42DBFEFCB1ADB0AAE +:105970000F5F1F4FEACF0E942B0EDECE8AE0ADCF25 +:105980000A811B81102701271027FE0131966F0124 +:10599000EC80CF018E0D911D7C01C8018796EC141F +:1059A000FD0409F4C9CE003CA3E01A0750F40E949C +:1059B000B02DF60184830F5F1F4FBFEFCB1ADB0AB8 +:1059C000ECCFD60114961C92F6CF0A811B811027CA +:1059D00001271027FE0131966F01EC80E00EF12EB9 +:1059E000F11CC8018796E016F10609F4A5CE003C2B +:1059F000F3E01F0728F4D60114966C910E94C42D81 +:105A0000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BDEC +:105A100009B400FEFDCF8091D8008F7D8093D8001F +:105A20008091E00082608093E0008091E00081FD41 +:105A3000FCCF0E94471677CD86E290E00E94B02D01 +:105A40001B821C821D828E8377CE2D32314008F05E +:105A50008FCCC5CC2D32314008F03ECC74CC87FBC6 +:105A6000082E062687FD819567FD61950E94812D90 +:105A70000EF4919507FC81950895AA1BBB1B51E17B +:105A800007C0AA1FBB1FA617B70710F0A61BB70BAE +:105A9000881F991F5A95A9F780959095BC01CD0153 +:105AA000089597FB072E16F4009407D077FD09D0D0 +:105AB0000E943D2D07FC05D03EF4909581959F4FA7 +:105AC0000895709561957F4F0895EE0FFF1F059023 +:105AD000F491E02D0994692796276927782787276D +:105AE000782708950E942D2E332312F48A1B9B0BD6 +:105AF0000C947C2D0E942D2EB7FF0895821B930BD2 +:105B00000895991B79E004C0991F961708F0961B19 +:105B1000881F7A95C9F780950895FB01DC0102C0C2 +:105B200005900D9241505040D8F70895FC01415026 +:105B3000504030F001900616D1F73197CF0108950B +:105B4000882799270895FB01DC0104C08D910190FD +:105B5000801921F441505040C8F7881B990B0895D3 +:105B6000F999FECF92BD81BDF89A992780B5089525 +:105B7000A6E1B0E044E050E00C94EA2DA8E1B0E0EA +:105B800042E050E00C94EA2D262FF999FECF92BD09 +:105B900081BDF89A019700B4021639F01FBA20BDF2 +:105BA0000FB6F894FA9AF99A0FBE08950396272F24 +:105BB0000E94C52D0E94C42D252F0E94C52D242F83 +:105BC0000C94C52D0196272F0E94C52D0C94C42D31 +:105BD000DC01CB01FC01F999FECF06C0F2BDE1BDAD +:105BE000F89A319600B40D9241505040B8F708959C +:105BF0000E942D2EA59F900DB49F900DA49F800D07 +:105C0000911D11240895B7FF0C94F82D0E94F82DD2 +:105C1000821B930B0895A1E21A2EAA1BBB1BFD0148 +:105C20000DC0AA1FBB1FEE1FFF1FA217B307E4077B +:105C3000F50720F0A21BB30BE40BF50B661F771FD3 +:105C4000881F991F1A9469F76095709580959095B3 +:105C50009B01AC01BD01CF010895A29FB001B39F8C +:105C6000C001A39F700D811D1124911DB29F700D65 +:105C7000811D1124911D0895F894FFCF5E0F5E0FD2 +:105C8000670F670F690F670F670F670F5E0F5E0F74 +:105C90006E0F670F670F6E0F41176917BC176917F3 +:105CA000BC179C17D417BC17D118DE18371D371D29 +:105CB000AB1DAB1D091E231E6E1D6E1D2E1EB81EB4 +:105CC000C91EC91E592B5D2BC32BD42BDF2BFE2BDA +:105CD000012C402C612CD12BD12B6C2C6F2C732CD4 +:0A5CE000992CBB2CBE2CC02CE52C27 +:105CEA007606910C700C6C0C680C01191A1B1C1DA1 +:105CFA001E1F202122010201002A002A2A01818274 +:105D0A0083E200E900EA00B500B600B700CD0083DF +:105D1A0001CC008A01920194012102230224022566 +:105D2A0002260227022A02B300B4006F007000F0B4 +:105D3A00F1F2F3F5F6F700010203040537363502EE +:105D4A0000020102020B000B010B020B0305030800 +:105D5A000300000001000209000901090209030306 +:105D6A0003060300FF0100010000FFFF000001001D +:105D7A0001FF00040404040404040202616264666C +:105D8A0090929497066063656791939596070001D0 +:105D9A00020202020606060909090909090F0F0F7C +:105DAA000F0F0F1515151819191919191919191984 +:105DBA001923244022B6B6019401DE00C808E1087E +:025DCA000109CD :00000001FF From 35fd55b6f23bd21837431aebc19febfa8b25f2bc Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 00:36:34 -0400 Subject: [PATCH 38/94] Updated rotary encoder code with Drashna's improvements. Tweaked trackball interval. --- keyboards/solartempest/9e/9e VIA ayout.json | 507 ---- keyboards/solartempest/9e/9e VIA keymap.json | 39 - keyboards/solartempest/9e/A9e.c | 64 - keyboards/solartempest/9e/A9e.h | 35 - keyboards/solartempest/9e/config.h | 140 - keyboards/solartempest/9e/info.json | 12 - .../solartempest/9e/keymaps/default/keymap.c | 208 -- .../solartempest/9e/keymaps/via/config.h | 22 - .../solartempest/9e/keymaps/via/keymap.c | 417 --- .../solartempest/9e/keymaps/via/rules.mk | 1 - keyboards/solartempest/9e/readme.md | 42 - keyboards/solartempest/9e/rules.mk | 63 - keyboards/solartempest/ps17/config.h | 145 -- keyboards/solartempest/ps17/info.json | 38 - .../ps17/keymaps/default/keymap.c | 365 --- .../solartempest/ps17/keymaps/via/config.h | 22 - .../solartempest/ps17/keymaps/via/keymap.c | 507 ---- .../solartempest/ps17/keymaps/via/rules.mk | 1 - .../ps17/keymaps/via_bright/config.h | 22 - .../ps17/keymaps/via_bright/keymap.c | 332 --- .../ps17/keymaps/via_bright/rules.mk | 1 - .../solartempest/ps17/ps17 VIA keymap.json | 51 - .../solartempest/ps17/ps17 VIA layout.json | 267 -- keyboards/solartempest/ps17/ps17.c | 68 - keyboards/solartempest/ps17/ps17.h | 61 - keyboards/solartempest/ps17/readme.md | 39 - keyboards/solartempest/ps17/rules.mk | 25 - keyboards/solartempest/sofle/config.h | 1 + .../solartempest/sofle/keymaps/via/encoder.c | 47 +- .../solartempest/sofle/keymaps/via/keymap.c | 3 + .../sofle/solartempest_sofle_via.hex | 2275 ++++++++--------- 31 files changed, 1135 insertions(+), 4685 deletions(-) delete mode 100644 keyboards/solartempest/9e/9e VIA ayout.json delete mode 100644 keyboards/solartempest/9e/9e VIA keymap.json delete mode 100644 keyboards/solartempest/9e/A9e.c delete mode 100644 keyboards/solartempest/9e/A9e.h delete mode 100644 keyboards/solartempest/9e/config.h delete mode 100644 keyboards/solartempest/9e/info.json delete mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/9e/keymaps/via/config.h delete mode 100644 keyboards/solartempest/9e/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/9e/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/9e/readme.md delete mode 100644 keyboards/solartempest/9e/rules.mk delete mode 100644 keyboards/solartempest/ps17/config.h delete mode 100644 keyboards/solartempest/ps17/info.json delete mode 100644 keyboards/solartempest/ps17/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/rules.mk delete mode 100644 keyboards/solartempest/ps17/ps17 VIA keymap.json delete mode 100644 keyboards/solartempest/ps17/ps17 VIA layout.json delete mode 100644 keyboards/solartempest/ps17/ps17.c delete mode 100644 keyboards/solartempest/ps17/ps17.h delete mode 100644 keyboards/solartempest/ps17/readme.md delete mode 100644 keyboards/solartempest/ps17/rules.mk diff --git a/keyboards/solartempest/9e/9e VIA ayout.json b/keyboards/solartempest/9e/9e VIA ayout.json deleted file mode 100644 index aa58163c6e9b..000000000000 --- a/keyboards/solartempest/9e/9e VIA ayout.json +++ /dev/null @@ -1,507 +0,0 @@ -{ - "name": "A9e", - "vendorProductId": 1095434249, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "KC_RGHT", - "KC_MUTE", - "KC_LEFT", - "TO(1)", - "TO(2)", - "TO(3)", - "KC_P7", - "KC_P8", - "KC_P9", - "KC_WWW_BACK", - "KC_F13", - "KC_WWW_FORWARD", - "USER01", - "RGB_TOG", - "USER00", - "KC_CAPS", - "KC_NLCK", - "KC_MINS", - "KC_P4", - "KC_P5", - "KC_P6", - "KC_VOLD", - "KC_F14", - "KC_VOLU", - "USER03", - "KC_MSTP", - "USER02", - "KC_WWW_REFRESH", - "KC_BSPC", - "KC_P0", - "KC_P1", - "KC_P2", - "KC_P3", - "KC_MS_WH_UP", - "C(KC_W)", - "KC_MS_WH_DOWN", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_MS_WH_DOWN", - "KC_HOME", - "KC_MS_WH_UP", - "C(KC_PMNS)", - "C(KC_0)", - "C(KC_PPLS)", - "C(S(KC_TAB))", - "C(KC_T)", - "C(KC_TAB)" - ], - [ - "KC_RBRC", - "KC_I", - "KC_LBRC", - "TO(0)", - "KC_T", - "KC_M", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_LEFT", - "C(S(KC_B))", - "KC_RGHT", - "KC_LCBR", - "C(KC_I)", - "KC_RCBR", - "KC_B", - "KC_J", - "KC_S", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "C(S(KC_TAB))", - "C(KC_S)", - "C(KC_TAB)", - "C(KC_Z)", - "KC_X", - "C(S(KC_Z))", - "KC_LALT", - "KC_SPC", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_DOWN", - "KC_TRNS", - "KC_UP", - "KC_NO", - "KC_NO", - "KC_NO", - "C(KC_LBRC)", - "KC_DEL", - "C(KC_RBRC)", - "A(KC_LBRC)", - "C(KC_F10)", - "A(KC_RBRC)", - "C(KC_MINS)", - "C(KC_0)", - "C(KC_PPLS)" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_UP", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_MS_BTN2", - "KC_PAUS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS" - ], - [ - "KC_NO", - "KC_NO", - "KC_NO", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO" - ], - [ - "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", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/9e VIA keymap.json b/keyboards/solartempest/9e/9e VIA keymap.json deleted file mode 100644 index 21498184e2bd..000000000000 --- a/keyboards/solartempest/9e/9e VIA keymap.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "A9e" , - "vendorId": "0x414B", - "productId": "0x0009", - "lighting": "qmk_rgblight", - "matrix": { "rows": 4, "cols": 12 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - } - ], - "layouts": - { - "keymap": - [ - [{"x": 0.25},"0,0", {"x": 1}, "1,0",{"h": 1.5},"1,1","1,2", {"x": 1}, "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", {"x": 1}, "0,9", {"h": 1.5},"0,10","0,11", {"x": 1}, "1,9",{"h": 1.5},"1,10","1,11"], - [{"w": 1.5},"0,1",{"x": 4.75}, "1,3", "1,4", "1,5", "1,6", "1,7", "1,8"], - [{"x": 0.25},"0,2", {"x": 1}, "2,0",{"h": 1.5},"2,1","2,2", {"x": 1}, "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", {"x": 3}, "2,9",{"h": 1.5},"2,10","2,11"], - [{"x": 6.25, "y": 0.5}, "3,3",{"h": 1.5},"3,4","3,5", "3,6",{"h": 1.5},"3,7", "3,8", {"x": 3,"y": 1},"3,9",{"h": 1.5},"3,10","3,11"] - ] - } -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c deleted file mode 100644 index 3fc20a1961c1..000000000000 --- a/keyboards/solartempest/9e/A9e.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#include "A9e.h" - -/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 )*/ -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { 36, 35, 34, 33, 32, }, - {18, 37, 5, 4, 3, 2, 1, 0, }, - {19, 21, 11, 10, 9, 8, 7, 6, }, - {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, - { 39, 40, 23, 25, }, - { 24, }, - { 41, 26, 30, }, - { 27, 29, }, - { 28, NO_LED, NO_LED, NO_LED, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} - {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, - {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, - {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, - - {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, - {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, - - {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, - {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} - }, { // LED Index to Flag. - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. - 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. - 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. - } }; -#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h deleted file mode 100644 index cc6481b19bb5..000000000000 --- a/keyboards/solartempest/9e/A9e.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#ifndef A9E_H - #define A9E_H - - #include "quantum.h" - - #define KEYMAP( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K303, K304, K305, K306, K307, K308, K309, K310, K311 \ - ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ - } -#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h deleted file mode 100644 index a74b280bfb3b..000000000000 --- a/keyboards/solartempest/9e/config.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#ifndef CONFIG_H - #define CONFIG_H - - #include "config_common.h" - - /* USB Device descriptor parameter */ - #define VENDOR_ID 0x414B // AK - #define PRODUCT_ID 0x0009 // 9e - #define DEVICE_VER 0x0001 - #define MANUFACTURER Atlantis - #define PRODUCT A9e - #define DESCRIPTION Keyboard - - /* key matrix size */ - #define MATRIX_ROWS 4 - #define MATRIX_COLS 12 - - /* key matrix pins */ - #define MATRIX_ROW_PINS { F0, F1, F2, F3 } - #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. - #define UNUSED_PINS - - /* encoder pins */ - #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. - #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } - #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. - //#define ENCODER_RESOLUTION 4 - - /* COL2ROW or ROW2COL */ - #define DIODE_DIRECTION COL2ROW - - /* Set 0 if debouncing isn't needed */ - #define DEBOUNCE 5 - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ - #define LOCKING_SUPPORT_ENABLE - - /* Locking resynchronize hack */ - #define LOCKING_RESYNC_ENABLE - - - #define RGB_DI_PIN E6 - #ifdef RGB_DI_PIN - #define RGBLIGHT_ANIMATIONS - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys - #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT - #define RGBLIGHT_LIMIT_VAL 180 - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L01, L03, L05, L07, L08, \ - L10, L11, L12, L13, L14, L15, L16, L17, \ - L20, L21, L22, L23, L24, L25, L26, L27, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ - L41, L46, L47, L49, \ - L58, \ - L67, L68, L69, \ - L77, L79, \ - L88 )\ - { \ - L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ - } - //RGB LED logical order map - //Left encoder -> keys -> right encoders -> backlight - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 ) - #endif - - #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow - #define RGB_MATRIX_CENTER { 110, 110 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH - #endif - - -#endif diff --git a/keyboards/solartempest/9e/info.json b/keyboards/solartempest/9e/info.json deleted file mode 100644 index 82c46121d321..000000000000 --- a/keyboards/solartempest/9e/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "A9e", - "url": "", - "maintainer": "solartempest", - "width": 20.25, - "height": 5.5, - "layouts": { - "LAYOUT": { - "layout": [{"label":"0,0", "x":0.25, "y":0}, {"label":"1,0", "x":2.25, "y":0}, {"label":"1,1", "x":3.25, "y":0, "h":1.5}, {"label":"1,2", "x":4.25, "y":0}, {"label":"0,3", "x":6.25, "y":0}, {"label":"0,4", "x":7.25, "y":0}, {"label":"0,5", "x":8.25, "y":0}, {"label":"0,6", "x":9.25, "y":0}, {"label":"0,7", "x":10.25, "y":0}, {"label":"0,8", "x":11.25, "y":0}, {"label":"0,9", "x":13.25, "y":0}, {"label":"0,10", "x":14.25, "y":0, "h":1.5}, {"label":"0,11", "x":15.25, "y":0}, {"label":"1,9", "x":17.25, "y":0}, {"label":"1,10", "x":18.25, "y":0, "h":1.5}, {"label":"1,11", "x":19.25, "y":0}, {"label":"0,1", "x":0, "y":1, "w":1.5}, {"label":"1,3", "x":6.25, "y":1}, {"label":"1,4", "x":7.25, "y":1}, {"label":"1,5", "x":8.25, "y":1}, {"label":"1,6", "x":9.25, "y":1}, {"label":"1,7", "x":10.25, "y":1}, {"label":"1,8", "x":11.25, "y":1}, {"label":"0,2", "x":0.25, "y":2}, {"label":"2,0", "x":2.25, "y":2}, {"label":"2,1", "x":3.25, "y":2, "h":1.5}, {"label":"2,2", "x":4.25, "y":2}, {"label":"2,3", "x":6.25, "y":2}, {"label":"2,4", "x":7.25, "y":2}, {"label":"2,5", "x":8.25, "y":2}, {"label":"2,6", "x":9.25, "y":2}, {"label":"2,7", "x":10.25, "y":2}, {"label":"2,8", "x":11.25, "y":2}, {"label":"2,9", "x":15.25, "y":2}, {"label":"2,10", "x":16.25, "y":2, "h":1.5}, {"label":"2,11", "x":17.25, "y":2}, {"label":"3,3", "x":6.25, "y":3.5}, {"label":"3,4", "x":7.25, "y":3.5, "h":1.5}, {"label":"3,5", "x":8.25, "y":3.5}, {"label":"3,6", "x":9.25, "y":3.5}, {"label":"3,7", "x":10.25, "y":3.5, "h":1.5}, {"label":"3,8", "x":11.25, "y":3.5}, {"label":"3,9", "x":15.25, "y":4.5}, {"label":"3,10", "x":16.25, "y":4.5, "h":1.5}, {"label":"3,11", "x":17.25, "y":4.5}] - } - } -} diff --git a/keyboards/solartempest/9e/keymaps/default/keymap.c b/keyboards/solartempest/9e/keymaps/default/keymap.c deleted file mode 100644 index 916fa70260df..000000000000 --- a/keyboards/solartempest/9e/keymaps/default/keymap.c +++ /dev/null @@ -1,208 +0,0 @@ -#include "A9e.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - KEYMAP( - KC_L, KC_1, KC_R, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_L, KC_4, KC_R, - KC_L, KC_2, KC_R, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_L, KC_5, KC_R, - KC_L, KC_3, KC_R, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_L, KC_6, KC_R, - KC_UP, KC_8, KC_DOWN, RGB_VAI, KC_9, RGB_VAD, KC_L, KC_7, KC_R), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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) - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - - - switch (id) { - - } - return MACRO_NONE; -} - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); - } - } else if (index == 1) { /* Second encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 2)); - }} else if (index == 2) { /* 3 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 2)); - }} else if (index == 3) { /* 4 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 11)); - }} else if (index == 4) { /* 5 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 11)); - }} else if (index == 5) { /* 6 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 11)); - }} else if (index == 6) { /* 7 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 11)); - }} else if (index == 7) { /* 8 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 5)); - }} else if (index == 8) { /* 9 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 6)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 8)); - } - } -} - - - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/keymaps/via/config.h b/keyboards/solartempest/9e/keymaps/via/config.h deleted file mode 100644 index 8c2aeca25c0e..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c deleted file mode 100644 index 6b53279aa6bd..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ /dev/null @@ -1,417 +0,0 @@ -#include "A9e.h" -#include QMK_KEYBOARD_H - -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left - }; -#endif - - -//Keymap physical layout as follows: -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 - TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 - RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 - RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_FORWARD, //Rotary Encoder 2 - KC_CAPS, KC_SLCK, KC_NLCK, KC_P4, KC_P5, KC_P6, //Keys Row 2 - RGB_HUD, A(KC_F4), RGB_HUI, //Rotary Encoder 5 - ATABR, KC_MSTP, ATABF, //Rotary Encoder 3 - KC_WREF, KC_MYCM, KC_P0, KC_P1, KC_P2, KC_P3, //Keys Row 3 - KC_MS_WH_UP, C(KC_W), KC_MS_WH_DOWN, //Rotary Encoder 6 - C(S(KC_TAB)), KC_HOME, C(KC_TAB), //Rotary Encoder 8 - C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 - C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), -}; - - -/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required - switch (id) { - } - return MACRO_NONE; -}*/ - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - } - return true; -} - - -bool encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* 1 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 1) { /* 2 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 2) { /* 3 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 3) { /* 4 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 4) { /* 5 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 5) { /* 6 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 6) { /* 7 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 7) { /* 8 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 8) { /* 9 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - return true; -} - - -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); -#endif - -void keyboard_post_init_user(void) -{ - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -} - - -#ifdef RGBLIGHT_ENABLE - layer_state_t layer_state_set_user(layer_state_t state) - { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,30); - break; - case 1: - rgblight_sethsv_noeeprom(30,255,30); - break; - case 2: - rgblight_sethsv_noeeprom(106,255,30); - break; - case 3: - rgblight_sethsv_noeeprom(215,255,30); - break; - default: - rgblight_sethsv_noeeprom(64,255,30); - } - return state; - } - - bool led_update_user(led_t led_state) - { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; - } -#endif diff --git a/keyboards/solartempest/9e/keymaps/via/rules.mk b/keyboards/solartempest/9e/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md deleted file mode 100644 index 38b472d3326a..000000000000 --- a/keyboards/solartempest/9e/readme.md +++ /dev/null @@ -1,42 +0,0 @@ -# Atlantis 9e Macropad - -![Atlantis 9e](https://i.imgur.com/hFuZyXU.jpg) - -A 18-key macro pad with 9 pushbutton rotary encoders and underglow RGB per key RGB and for the case. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -* Keyboard Maintainer: solartempest -* Hardware Supported: Atlantis 9e -* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) - -# Custom Features: - -- 9 remappable rotary encoder controling a variety of different things! -- RGB underglow support and remapped to physical locations. -- Adds custom layer lighting with custom gradients for each and static colours for the switches. -- Adds white caps lock, scroll lock, and num lock key indicators on the top row. -- VIA support included by default. -- Allows for remapping of per-layer rotary encoder functions in VIA. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. - - -## Flashing - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb solartempest/9e -km via - -- Please note that QMK toolbox and configurator cannot be used to flash this board. -- You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. -- I used Prog ISP V2.0 but other AVR programmers will also work. -- Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "9e VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "9e VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk deleted file mode 100644 index 782755a42c25..000000000000 --- a/keyboards/solartempest/9e/rules.mk +++ /dev/null @@ -1,63 +0,0 @@ -# MCU name -MCU = at90usb646 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. - -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -RGBLIGHT_ENABLE = no # RGB LEDs -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -KEY_LOCK_ENABLE = no # Key lock functionality -ENCODER_ENABLE = yes # Encoders -LTO_ENABLE = yes # Save space -LEADER_ENABLE = no # Leader keys -COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h deleted file mode 100644 index a22d17fcb719..000000000000 --- a/keyboards/solartempest/ps17/config.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "config_common.h" - -// USB Device descriptor parameter -#define VENDOR_ID 0x414B // "AK" -#define PRODUCT_ID 0x0015 -#define DEVICE_VER 0x0002 // Ver2 -#define MANUFACTURER ATLANTIS -#define PRODUCT PS17 - -//#define ENCODER_RESOLUTION 2 // default is 4 - -// key matrix size -#ifdef RGBLIGHT_ENABLE - #define MATRIX_ROWS 6 -#endif -#ifdef RGB_MATRIX_ENABLE - #define MATRIX_ROWS 11 //Numpad actually has 6 rows. 5 rows were added for underglow RGB matrix to work together -#endif -#define MATRIX_COLS 4 - -// Encoder matrix -#define ENCODERS_PAD_A { D1 } -#define ENCODERS_PAD_B { D2 } -//#define ENCODER_DIRECTION_FLIP - -#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 -#define MATRIX_COL_PINS { F6, F7, D3, D6 } -#define UNUSED_PINS - -// COL2ROW or ROW2COL -#define DIODE_DIRECTION COL2ROW - -// For LED status indicators -#define LED_NUM_LOCK_PIN D0 -#define LED_CAPS_LOCK_PIN D5 -#define LED_SCROLL_LOCK_PIN D4 -#define LED_PIN_ON_STATE 0 - -#define RGB_DI_PIN B7 -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 28 // 17 key + 11 underglow for RGBLIGHT - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM - #define RGBLIGHT_LIMIT_VAL 180 // brightness level max is 255 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping - #define RGBLIGHT_ANIMATIONS - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L00, L05, \ - L10, L15, \ - L20, L21, L22, L23, L24, L25, \ - L31, L32, L33, L34, \ - L40, L41, L42, L43, L45, \ - L51, L52, L53, L54, \ - L60, L61, L62, L63, L65 ) \ - { \ - L21,L22,L23,L24,L31,L32,L33,L34,L41,L42,L43,L51,L52,L53,L54,L61,L63,L60,L40,L20,L10,L00,L05,L15,L25,L45,L65,L62, \ - } - //RGB LED logical order map - //Right->Left, Top->Bottom - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14, \ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 ) -#endif - -#ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow - #define RGB_MATRIX_CENTER { 126, 126 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define COMBO_COUNT 6 //Number of tap combos used -#define COMBO_TERM 350 //Default combo time is 200ms - -#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/info.json b/keyboards/solartempest/ps17/info.json deleted file mode 100644 index 2806bc0128d6..000000000000 --- a/keyboards/solartempest/ps17/info.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "keyboard_name": "Atlantis PS17 Macropad", - "url": "", - "maintainer": "solartempest", - "width": 4, - "height": 6, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":0, "y":0, "h":1.5}, - {"x":0, "y":1}, - {"x":0, "y":2, "h":1.5}, - - {"x":1, "y":0}, - {"x":1, "y":1}, - {"x":1, "y":2}, - {"x":1, "y":3}, - - {"x":2, "y":0}, - {"x":2, "y":1}, - {"x":2, "y":2}, - {"x":2, "y":3, "h":2}, - - {"x":3, "y":0}, - {"x":3, "y":1}, - {"x":3, "y":2}, - - {"x":4, "y":0}, - {"x":4, "y":1}, - {"x":4, "y":2}, - {"x":4, "y":3, "h":2}, - - {"x":5, "y":0, "w":2}, - {"x":5, "y":2}, - ] - } - } -} diff --git a/keyboards/solartempest/ps17/keymaps/default/keymap.c b/keyboards/solartempest/ps17/keymaps/default/keymap.c deleted file mode 100644 index 3dc48708a4ef..000000000000 --- a/keyboards/solartempest/ps17/keymaps/default/keymap.c +++ /dev/null @@ -1,365 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. Don't forget to update the VIA json as well. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use SAFE_RANGE when Via is disabled. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; - -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGUP, KC__MUTE, KC_PGDOWN, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, TD(TD_MINUS_NUMLOCK), - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_LEFT, KC_TRNS, KC_RIGHT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, - TO(0), KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO - ), - [_LAYER3] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_SCROLLLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 140; - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 15; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: //Photoshop custom layer (macros and keys all done in VIA) - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3) { //Underglow LEDs - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } - else if (i == 6) {rgblight_sethsv_at(148,255,perkey_brightness+15,i);} //Text - light blue - else if (i == 5) {rgblight_sethsv_at(140,255,perkey_brightness+15,i);} //New Layer - light blue - else if (i == 15) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Marquee - rose - else if (i == 9) {rgblight_sethsv_at(190,255,underglow_brightness,i);} //Underglow to match - else if (i == 13) {rgblight_sethsv_at(180,255,perkey_brightness+15,i);} //Healing Brush - purple - else if (i == 12) {rgblight_sethsv_at(185,255,perkey_brightness+15,i);} //Clone - else if (i == 11) {rgblight_sethsv_at(190,255,perkey_brightness+15,i);} //Default - else if (i == 7) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Brush - else if (i == 18) {rgblight_sethsv_at(230,255,underglow_brightness,i);} //Underglow to match - else if (i == 17) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //copy - red - else if (i == 16) {rgblight_sethsv_at(3,255,perkey_brightness+15,i);} //Paste - else if (i == 22) {rgblight_sethsv_at(5,255,perkey_brightness+15,i);} //Undo - else if (i == 21) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //Redo - else if (i == 26) {rgblight_sethsv_at(200,255,lastrow_brightness+15,i);} //Space - blue - else if (i == 24) {rgblight_sethsv_at(195,255,lastrow_brightness+15,i);} //Alt - else if (i == 20) {rgblight_sethsv_at(190,255,lastrow_brightness+15,i);} //Shift - else if (i == 27) {rgblight_sethsv_at(200,255,underglow_brightness,i);} //Underglow to match - else if (i == 10) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom in - else if (i == 19) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom out - else if (i == 25) {rgblight_sethsv_at(180,255,underglow_brightness,i);} //Underglow to match - else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c deleted file mode 100644 index b75dc6fc7272..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ /dev/null @@ -1,507 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -// IDLE TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes - #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) - - //prototype functions - uint16_t get_timeout_threshold(void); - void timeout_reset_timer(void); - void timeout_update_threshold(bool increase); - void timeout_tick_timer(void); -#endif //IDLE_TIMEOUT_ENABLE - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#endif - -#ifdef COMBO_ENABLE //Tap combos - enum combos { - kppls_7, //Hold plus and 7 to backspace - kppls_8, //Hold plus and 8 to delete - kpent_4, //Hold enter and 4 for left arrow - kpent_5, //Hold enter and 5 for down arrow - kpent_6, //Hold enter and 6 for right arrow - kpent_8, //Hold enter and 4'8 for up arrow - }; - const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; - const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; - const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; - const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; - const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; - combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE), - [kpent_4] = COMBO(kpent4_combo, KC_LEFT), - [kpent_5] = COMBO(kpent5_combo, KC_DOWN), - [kpent_6] = COMBO(kpent6_combo, KC_RGHT), - [kpent_8] = COMBO(kpent8_combo, KC_UP) - }; -#endif - -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. - enum { - TD_MINUS_NUMLOCK, - }; - qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), - }; - //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) -#endif - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - - -// TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - static uint16_t timeout_timer = 0; - static uint16_t timeout_counter = 0; //in minute intervals - static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - - uint16_t get_timeout_threshold(void) { - return timeout_threshold; - } - - void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; - }; - - void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; - }; - - void timeout_tick_timer(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - #ifdef RGBLIGHT_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgblight_toggle_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout - } - - __attribute__((weak)) void matrix_scan_keymap(void) {} -#endif // IDLE_TIMEOUT_ENABLE - - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - //tap_code(KC_UP); - //tap_code(KC_DOWN); - tap_code(KC_F24); - } - - #ifdef IDLE_TIMEOUT_ENABLE - timeout_tick_timer(); - matrix_scan_keymap(); - #endif // IDLE_TIMEOUT_ENABLE -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } - } - return true; - } - return true; -} - - -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - /*static uint16_t underglow_brightness = 140; //This code can be used to have edge and underglow LEDs selectively brighter - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 50; //for less shine-through at case edges (brighter is okay for FR4 plate) - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - */ - // This is what the LED layout is. - // 1, 0, - // 3, 2, - // 9, 8, 7, 6, 5, 4, - // 13, 12, 11, 10, - // 18, 17, 16, 15, 14, - // 22, 21, 20, 19, - // 27, 26, 25, 24, 23 - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 1: - rgblight_sethsv_noeeprom(5,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 2: - rgblight_sethsv_noeeprom(128,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 3: - rgblight_sethsv_noeeprom(215,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 4: - rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/config.h b/keyboards/solartempest/ps17/keymaps/via_bright/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c deleted file mode 100644 index 6c422f8be38d..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c +++ /dev/null @@ -1,332 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions. Not VIA compatible. -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 100); //Set lower default brightness when connected as the right side dimming is not yet in effect - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 120; - static uint16_t perkey_brightness = 120; - static uint16_t lastrow_brightness = 30; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk b/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json deleted file mode 100644 index d906b47dbb7a..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA keymap.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "PS17" , - "vendorId": "0x414B", - "productId": "0x0015", - "lighting": "qmk_rgblight", - "matrix": { "rows": 6, "cols": 4 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - }, - { - "name": "Spam Arrow", - "title": "Toggle F24 on interval timer with Orange LED", - "shortName": "SA" - }, - { - "name": "Teams Muted", - "title": "Simply Change LED of 1 to show if muted or not", - "shortName": "TM" - } - ], - "layouts": - { - "keymap": - [ - [{"w": 1, "h":1.5},"0,0", "0,1", {"w": 1, "h":1.5},"0,2"], - [{"y":0.75}, "1,0", "1,1", "1,2", "1,3"], - [ "2,0", "2,1", "2,2", {"h":2},"2,3"], - [ "3,0","3,1","3,2"], - [ "4,0", "4,1", "4,2", {"h":2},"4,3"], - [{"w": 2},"5,0", "5,2"] - ] - } -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json deleted file mode 100644 index 6671cee90952..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA layout.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "name": "PS17", - "vendorProductId": 1095434261, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "C(KC_TAB)", - "C(KC_W)", - "C(S(KC_TAB))", - "KC_NO", - "TO(2)", - "KC_PSLS", - "KC_PAST", - "KC_PMNS", - "KC_P7", - "KC_P8", - "KC_P9", - "KC_PPLS", - "KC_P4", - "KC_P5", - "KC_P6", - "KC_NO", - "KC_P1", - "KC_P2", - "KC_P3", - "KC_PENT", - "KC_P0", - "KC_NO", - "KC_PDOT", - "KC_NO" - ], - [ - "KC_RGHT", - "KC_TRNS", - "KC_LEFT", - "KC_NO", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_NLCK", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_BSPC", - "TO(5)", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "TO(2)", - "TO(3)", - "TO(4)", - "KC_TRNS", - "RESET", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_VOLU", - "KC_TRNS", - "KC_VOLD", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_WWW_HOME", - "C(S(KC_B))", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "USER04", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "USER05", - "KC_TRNS", - "KC_SLCK", - "KC_NLCK", - "KC_F13", - "KC_NO", - "KC_F14", - "KC_NO" - ], - [ - "USER00", - "KC_TRNS", - "USER01", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_HOME", - "C(KC_T)", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "C(KC_W)", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "KC_WWW_BACK", - "KC_SPC", - "KC_WWW_FORWARD", - "KC_ENT", - "KC_PGDN", - "KC_NO", - "KC_PGUP", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c deleted file mode 100644 index 54ae3f8ab053..000000000000 --- a/keyboards/solartempest/ps17/ps17.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include "ps17.h" - -bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality - #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - } - } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ - #endif - return true; -} - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { NO_LED, NO_LED, NO_LED, NO_LED, }, - { 0, 1, 2, 3, }, - { 4, 5, 6, 7, }, - { 8, 9, 10, NO_LED, }, - { 11, 12, 13, 14, }, - { 15, NO_LED, 16, NO_LED, }, - - //Underglow matrix to LED index - { 21, NO_LED, NO_LED, 22, }, - { 20, NO_LED, NO_LED, 23, }, - { 19, NO_LED, NO_LED, 24, }, - { 18, NO_LED, NO_LED, 25, }, - { 17, 27, NO_LED, 26, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {126,126} - {74,165},{108,165},{144,165},{179,165},{74,129},{109,129},{143,129},{188,121},{74,95},{109,95},{143,95},{73,60},{109,60},{144,60},{188,51},{91,25},{144,25}, - - // LED underglow - {61,26},{61,88},{61,158},{61,197},{61,232},{192,232},{192,196},{192,158},{192,87},{183,26},{127,24} - }, { - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // LED Index to Flag. 4 for key backlight. - 2,2,2,2,2,2,2,2,2,2,2 // 2 for case underglow. - } }; -#endif diff --git a/keyboards/solartempest/ps17/ps17.h b/keyboards/solartempest/ps17/ps17.h deleted file mode 100644 index 64ebc5766887..000000000000 --- a/keyboards/solartempest/ps17/ps17.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "quantum.h" - -#ifdef RGBLIGHT_ENABLE - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - } -#endif - -#ifdef RGB_MATRIX_ENABLE // Five empty rows of keys were added for RGB Matrix purposes. You must map to a key otherwise it will not work. - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - } -#endif diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md deleted file mode 100644 index bd9504222899..000000000000 --- a/keyboards/solartempest/ps17/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Atlantis PS17 Macropad - -![Atlantis PS17](https://i.imgur.com/Y0rkPgA.jpg) - -A 17-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -* Keyboard Maintainer: solartempest -* Hardware Supported: Atlantis PS17 v2 -* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) - -# Custom Features: - -- Remappable rotary encoder controls volume up/down/mute. -- Allows for remapping of per-layer rotary encoder functions in VIA. -- VIA support included by default. -- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). -- Adds custom layer lighting with custom gradients for each. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. -- Adds key combo functionality for backspace, delete, and arrow keys. - -## Make and Flashing - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb solartempest/ps17 -km via - -To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. -Flash with QMK toolbox, auto-flash. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "ps17 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "ps17 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk deleted file mode 100644 index 0b5dd1c97afa..000000000000 --- a/keyboards/solartempest/ps17/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# - -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -UNICODE_ENABLE = yes # Unicode -ENCODER_ENABLE = yes # For encoder -LTO_ENABLE = yes # Reduce firmware size -COMBO_ENABLE = yes # Combos -TAP_DANCE_ENABLE = no # Tap dance - -IDLE_TIMEOUT_ENABLE = yes # Turn LEDs off after inactive time diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 9abf1e2a6824..08fd837bc965 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -89,6 +89,7 @@ #ifdef POINTING_DEVICE_ENABLE #define PIMORONI_TRACKBALL_ROTATE #define PIMORONI_TRACKBALL_INVERT_Y + #define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms //#define PIMORONI_TRACKBALL_INVERT_X //#define PIMORONI_TRACKBALL_CLICK //Not compatible with having mouse keys on keymap #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/encoder.c b/keyboards/solartempest/sofle/keymaps/via/encoder.c index 58bffb8e91c3..3ecbfe5d39f1 100644 --- a/keyboards/solartempest/sofle/keymaps/via/encoder.c +++ b/keyboards/solartempest/sofle/keymaps/via/encoder.c @@ -16,27 +16,30 @@ * along with this program. If not, see . */ + #ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { //Allows for remapping of rotary encoder functions in VIA - if (index == 0) { - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - } else if (index == 1) { - if (clockwise) { //Double check rotation on new flash versus via mapping - action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - } - return true; -} + static uint8_t encoder_state[2] = {0}; //Thanks to Drashna for this improved code with better extensibility. + static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}}; + static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}}; + + void encoder_action_unregister(void) { + for (int index = 0; index < 2; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } + } + + void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); + } + + bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return false; + }; #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 2b10e5887ebf..ad9286c30fde 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -155,6 +155,9 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } + #ifdef ENCODER_ENABLE + encoder_action_unregister(); + #endif } diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index d0f6e145a720..94f281e936ba 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,7 +1,7 @@ -:100000000C9449060C9490060C9490060C940732BC +:100000000C9449060C9490060C9490060C9447317D :100010000C9490060C9490060C9490060C94900608 :100020000C9490060C9490060C943C1A0C94F819BD -:100030000C94D5260C9490060C9490060C94900683 +:100030000C9409260C9490060C9490060C9490064F :100040000C9490060C9490060C9490060C949006D8 :100050000C9490060C94131B0C9490060C94900630 :100060000C9490060C9490060C9490060C949006B8 @@ -200,30 +200,30 @@ :100C7000006F0066006C006500000010034B00650B :100C8000007900680069007600650000000403092F :100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 -:100CA00003FE27C080916F0690917006A091710697 -:100CB000B09172068730904BA740B04BD1F41092A0 -:100CC0006F0610927006109271061092720614BE92 +:100CA00003FE27C080917A0690917B06A0917C0676 +:100CB000B0917D068730904BA740B04BD1F4109295 +:100CC0007A0610927B0610927C0610927D0614BE66 :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0E6E7FDE602C005904C -:100D00000D92A632B107D9F726E0A6E2B2E001C003 -:100D10001D92AF36B207E1F70E94FC260C94823692 -:100D20000C940000CF93DF9340916D0650916E06B6 -:100D30004D5654409A01205A3F4F21303240C0F066 -:100D400020E032E0241B350B60916B0470916C0441 +:100CF000099512E0A0E0B1E0ECE8F9E602C0059049 +:100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 +:100D10001D92AA37B207E1F70E9430260C948D3459 +:100D20000C940000CF93DF934091780650917906A0 +:100D3000485754409A01205A3F4F21303240C0F06A +:100D400020E032E0241B350B60917604709177042B :100D5000FC01CA01240F351FC1E0D0E082179307C0 -:100D600050F070936C0460936B04DF91CF91089501 -:100D700020E630E0E9CF4491DC01A359BB4F5C9100 +:100D600050F07093770460937604DF91CF910895EB +:100D700020E630E0E9CF4491DC01A858BB4F5C91FC :100D8000451781F04C93AC01A5E056954795AA957F :100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 :100DA0006A2B752B01963196D9CFE8EDF0E0808162 :100DB0008E7F80831092E2001092DA001092E100A0 :100DC000A0EEB0E08C9181608C9380818F778083DE :100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 -:100DE000808310924D0408952091E4003091E50035 +:100DE00080831092580408952091E4003091E5002A :100DF00095E6A9012091EC00822F817020FF06C0AA :100E00008091E80080FF06C080E008952091E8000E -:100E100022FD1AC080915B04882389F0853089F017 +:100E100022FD1AC080916604882389F0853089F00C :100E20008091EB0085FD0FC02091E4003091E5003A :100E300042175307F9F29150E1F684E0089582E0F9 :100E4000089583E0089581E00895EF92FF920F9353 @@ -232,9 +232,9 @@ :100E70008093E8000E94F406882399F3C82F08C0E5 :100E8000F70181917F018093F1000150110949F729 :100E90008C2FCF911F910F91FF90EF90089580912B -:100EA0005D0487FF13C08091E80082FF06C0809137 -:100EB000E8008B778093E80004C080915B04811187 -:100EC000F2CF089580915B048823D9F38091E800E4 +:100EA000680487FF13C08091E80082FF06C080912C +:100EB000E8008B778093E80004C08091660481117C +:100EC000F2CF0895809166048823D9F38091E800D9 :100ED00080FFF8CF8091E8008E77ECCF982F909329 :100EE000E900242F762F50E0891731F07091EC0043 :100EF0002091ED005091F00021FD07C09F5F9730D9 @@ -244,51 +244,51 @@ :100F30005093F0002091EE0027FDE0CF80E008956F :100F4000CF92DF92EF92FF920F931F93CF93DF9395 :100F5000C8EDD0E088818F7E8883E7EDF0E0808166 -:100F60008160808384E082BF81E080934D0488812A +:100F60008160808384E082BF81E08093580488811F :100F70008E7F888302EE10E0F80110821092DA0072 :100F800081EEC82ED12CF601108288818F7788835C :100F900088818068888388818F7D888319BC1092BE -:100FA0005B0410925C0410925A041092590490EE63 +:100FA000660410926704109265041092640490EE37 :100FB000E92EF12CF70180818B7F8083888181600D :100FC000888342E060E080E00E946E07F601808145 :100FD0008E7F8083F801808181608083808188603A :100FE0008083F70180818E7F808388818061888300 :100FF000DF91CF911F910F91FF90EF90DF90CF90F5 -:101000000895FC018091630490916404861797070A +:101000000895FC0180916E0490916F0486179707F4 :10101000A0F06115710529F49091E8009E779093F6 :10102000E80090E06115710551F4911108C08091BC :10103000E80082FF34C080E00895BC01F2CF8091C7 -:101040005B048823C1F18530C1F18091E80083FD04 +:1010400066048823C1F18530C1F18091E80083FDF9 :1010500030C08091E80082FDEACF8091E80080FFF7 :10106000E1CF8091F3002091F200382F61157105D6 :1010700019F02830310558F091E02830310509F099 :1010800090E02091E8002E772093E800CBCF81916B :101090008093F100615071092F5F3F4FE7CF80913E -:1010A0005B04882341F0853041F08091E80083FFA4 +:1010A0006604882341F0853041F08091E80083FF99 :1010B000BECF81E0089582E0089583E00895809195 -:1010C000500408952FB7F894609146047091470436 -:1010D00080914804909149042FBF089520914304C2 -:1010E000309144042817390771F090934404809399 -:1010F0004304E0914104F0914204309721F00084D0 -:10110000F185E02D0994089520913F043091400429 -:101110002817390771F09093400480933F04E091C1 -:101120004104F0914204309721F00680F781E02DD0 -:10113000099408952091320436E0839FC001112460 +:1010C0005B0408952FB7F894609151047091520415 +:1010D00080915304909154042FBF089520914E04A1 +:1010E00030914F042817390771F090934F04809383 +:1010F0004E04E0914C04F0914D04309721F00084AF +:10110000F185E02D0994089520914A0430914B0413 +:101110002817390771F090934B0480934A04E091AB +:101120004C04F0914D04309721F00680F781E02DBA +:101130000994089520913D0436E0839FC001112455 :10114000629F800D911D1124811522E0920714F0F9 -:1011500090E080E083599B4F90936E0680936D06DC +:1011500090E080E088589B4F9093790680937806C2 :101160000895FC01680F791F8FEF91E32191822789 :1011700028E030E087FF09C0880F89272150310916 :10118000C9F7E617F70791F70895880FF7CFFA0127 -:10119000811101C0FB01099480916604982F9E7F04 -:1011A00061F4817082608093660480916904813A61 -:1011B00018F080EA8093690408958831B0F3817053 +:10119000811101C0FB01099480917104982F9E7FF9 +:1011A00061F4817082608093710480917404813A4B +:1011B00018F080EA8093740408958831B0F3817048 :1011C0008661F1CFAF92BF92DF92EF92FF920F93C1 :1011D0001F93CF93DF93082F162FE901E42FF0E040 :1011E000E55AFA4F611110C0E4915E2F4E2F4983EA :1011F000E8835A83DF91CF911F910F91FF90EF9079 :10120000DF90BF90AF900895E62EF12C4491D42E3C :10121000E42FF0E026E0829FC00111242FEF30E0A0 -:10122000B9010E948133802F90E0880F991F55E506 +:10122000B9010E94C132802F90E0880F991F55E5C7 :10123000569FD001579FB00D11248A1B9B0B982FEE :10124000990F890F5901AE18BF08AE9ED001AF9E0D :10125000B00DBE9EB00D11245B2F189F800111248C @@ -304,9 +304,9 @@ :1012F00080E0089578940895F894E82FE295EF70CF :10130000F0E031A1282F2F7081E090E001C0880F1C :101310002A95EAF7982F9095932391A392A1892B70 -:1013200082A30C947A099091CF0292FF06C0282FD5 +:1013200082A30C947A099091D60292FF06C0282FCE :1013300028712830F9F4877F846093FF06C0282F36 -:1013400028712831F1F4877E84612091D00220FF3A +:1013400028712831F1F4877E84612091D70220FF33 :1013500006C0382F38713830D9F4877F816021FF7B :1013600006C0282F28712831D1F4877E816194FD31 :10137000877E0895282F24712430F9F68B7F8860AA @@ -319,21 +319,21 @@ :1013E000D30708F0F2C0CF3BD10508F089C0C83A56 :1013F000D10508F0DFC0C53AD10508F0D3C0C4302C :10140000D105F8F4C130D105E1F040C08533910534 -:1014100009F45AC0C997E9F68091CF02837089F028 +:1014100009F45AC0C997E9F68091D602837089F021 :10142000C0EED0E00EC0833E910599F170F4803E8D -:10143000910501F1823E910561F68091CF0282FD16 +:10143000910501F1823E910561F68091D60282FD0F :1014400021C0CE01DF91CF910895863E910561F1D3 :10145000873E910571F1843E910509F0BACF8091E4 -:10146000D00281FFEECF8091CF02C7EED0E084FDA5 -:101470000DC0E7CF8091CF0280FDF7C09091D002E0 +:10146000D70281FFEECF8091D602C7EED0E084FD97 +:101470000DC0E7CF8091D60280FDF7C09091D702D2 :1014800090FFDFCFC3EED0E084FFDBCFD0E0C0E041 -:10149000D8CF8091CF0282FDEBC09091D00290FD19 -:1014A000BFCF84FFCECFF2CF8091CF0283FDDDCFBF -:1014B000C8CF8091CF0283FDDEC09091D00291FF12 -:1014C000F0CFC4EED0E0BDCF8091CF0285FFB9CF81 -:1014D000C9E2D0E0B6CF8091CF0285FFB2CFC5E39D -:1014E000D0E0AFCF8091CF0286FFABCFCAE2D0E091 -:1014F000A8CF8091CF0286FFA4CFC1E3D0E0A1CFD7 +:10149000D8CF8091D60282FDEBC09091D70290FD0B +:1014A000BFCF84FFCECFF2CF8091D60283FDDDCFB8 +:1014B000C8CF8091D60283FDDEC09091D70291FF04 +:1014C000F0CFC4EED0E0BDCF8091D60285FFB9CF7A +:1014D000C9E2D0E0B6CF8091D60285FFB2CFC5E396 +:1014E000D0E0AFCF8091D60286FFABCFCAE2D0E08A +:1014F000A8CF8091D60286FFA4CFC1E3D0E0A1CFD0 :10150000C11540E2D40760F4C11581E0D80708F0A6 :1015100098CFCE01815E9109079708F492CFB6CF9C :10152000C11590E4D90708F4B1CFDF70D06A89CF34 @@ -358,43 +358,43 @@ :101650008F700E94930934E0D695C7953A95E1F7CB :10166000CF709C2FEC01D069ECCEC9E3D0E0E9CE7D :10167000C2EED0E0E6CEC6EED0E0E3CE0C94620837 -:1016800080914E0490918902892B90918802892B38 -:1016900080932802E0914104F0914204309731F0A8 -:1016A0000280F381E02D88E292E009940895809110 -:1016B000870290915602981301C008958F5F87703A +:101680008091590490919102892B90919002892B1D +:1016900080933002E0914C04F0914D04309731F08A +:1016A0000280F381E02D80E392E009940895809117 +:1016B0008F0290915E02981301C008958F5F87702A :1016C000FACF27E0929F800D1124982F977086956E -:1016D0008695869523E0829FF0011124EB5CFD4FF7 +:1016D0008695869523E0829FF0011124E35CFD4FFF :1016E00050E040E080E0219130E0092E02C03695C4 :1016F00027950A94E2F721703327042E01C0220FA8 :101700000A94EAF7822B4F5F5F4F4330510559F738 :10171000089527E0929F800D1124982F977041E043 :1017200001C0440F9A95EAF786958695869593E0D1 -:10173000899FF0011124EB5CFD4F90E080E070E0A8 +:10173000899FF0011124E35CFD4F90E080E070E0B0 :101740005191DF0111979B01082E02C03695279514 :101750000A94E2F7217021952527242325272C932D :1017600001968330910561F7089590E080E00E9432 -:10177000840890E080E00E946E0810928902109226 -:1017800088020C94400B80938A020C94B50B88233A -:1017900041F0809590914E04892380934E040C94DF -:1017A000400B0895882339F090914E04982B909324 -:1017B0004E040C94400B08958823B1F19CEF980FD0 -:1017C000913A70F4EAE2F2E09191891303C0DF01EB -:1017D00011971C9242E0E033F407B1F70C94400BF0 +:10177000840890E080E00E946E081092910210921E +:1017800090020C94400B809392020C94B50B88232A +:1017900041F08095909159048923809359040C94C9 +:1017A000400B0895882339F090915904982B909319 +:1017B00059040C94400B08958823B1F19CEF980FC5 +:1017C000913A70F4E2E3F2E09191891303C0DF01F2 +:1017D00011971C9242E0E833F407B1F70C94400BE8 :1017E00090E2980F983088F4877021E030E0A901EA :1017F00002C0440F551F8A95E2F7CA018095909167 -:101800004E04892380934E04E9CF9BE5980F9330D3 +:101800005904892380935904E9CF9BE5980F9330BD :1018100020F490E080E00C948408885A873120F40A :1018200090E080E00C946E0808950F931F93CF937F :10183000C82F882309F469C08CEF8C0F813AB0F56A -:101840000AE212E080E392E0F8012191C21701F16F -:1018500022E0E033F207C9F7EFEF80E0D8019D9175 +:1018400002E312E088E392E0F8012191C21701F16E +:1018500022E0E833F207C9F7EFEF80E0D8019D916D :101860008D01C91781F0EF3F19F4911101C0E82FE4 :101870008F5F863099F7EF3F31F00E2E000CFF0B93 -:10188000E85DFD4FC283CF911F910F910C94400BE7 -:10189000EAE2F2E02191C21303C0DF0111971C922A +:10188000E05DFD4FC283CF911F910F910C94400BEF +:10189000E2E3F2E02191C21303C0DF0111971C9231 :1018A0008E179F07B9F70E94400BD6CF80E28C0FAE :1018B000883068F4C77021E030E001C0220FCA957B -:1018C000EAF780914E04822B80934E04DCCFEBE547 +:1018C000EAF780915904822B80935904DCCFEBE531 :1018D000EC0FE33050F4F0E0E154FE4F808190E0F3 :1018E000CF911F910F910C948408C85AC73168F4A6 :1018F000EC2FF0E0EE0FFF1FEE53FE4F8081918141 @@ -402,11 +402,11 @@ :101910000895982F92959F7011F0892F94E0282FA9 :101920002695269511F09E5F822F869509F09F5F80 :10193000892F0895CF93DF93CDB7DEB762970FB6A7 -:10194000F894DEBF0FBECDBF96E0E9E1F3E0DE0123 +:10194000F894DEBF0FBECDBF96E0E4E2F3E0DE0127 :10195000179601900D929A95E1F796E0FE01379661 :10196000DE011D9601900D929A95E1F798858823E6 :10197000E9F0962B9E8786E0FE013D96DE011196EA -:1019800001900D928A95E1F786E0FE013196A9E17A +:1019800001900D928A95E1F786E0FE013196A4E27E :10199000B3E001900D928A95E1F762960FB6F89444 :1019A000DEBF0FBECDBFDF91CF9108956095962326 :1019B000E1CFDC01FB0180819181803891054CF001 @@ -420,32 +420,32 @@ :101A3000819591090895681B20E0DFCF0F931F93D4 :101A4000CF93DF9300D000D0CDB7DEB789836A8310 :101A50004B831C8204E610E024E030E0AE014F5FCF -:101A60005F4F60E084E10E94DF300F900F900F9095 -:101A70000F90DF91CF911F910F91089580912703CF +:101A60005F4F60E084E10E941F300F900F900F9055 +:101A70000F90DF91CF911F910F91089580913203C4 :101A8000882329F047E669E98BE20C941E0D6091EA -:101A9000590170915A0190E080E00E94223520E0C7 -:101AA00030E040E05CE30E94153620E030E040E8A2 -:101AB0005FE30E94EE34882321F047EC6BE180E085 +:101A9000590170915A0190E080E00E946E3320E07D +:101AA00030E040E05CE30E94CF3320E030E040E8EB +:101AB0005FE30E946933882321F047EC6BE180E00B :101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 :101AD000FF920F931F93CF93DF936C017B0164E61A -:101AE00070E088E70E94C72FEC0197FD12C010E05C +:101AE00070E088E70E94072FEC0197FD12C010E01C :101AF00000E0F601E00FF11F849164E670E00E94BF -:101B00004130EC01892B29F40F5F1F4F0E151F0583 -:101B100081F70E945B31CE01DF91CF911F910F9130 -:101B2000FF90EF90DF90CF90089580913D049091C9 -:101B30003E04911103C091E089270895882369F03C +:101B0000812FEC01892B29F40F5F1F4F0E151F0544 +:101B100081F70E949B30CE01DF91CF911F910F91F1 +:101B2000FF90EF90DF90CF900895809148049091BE +:101B30004904911103C091E089270895882369F031 :101B400062E070E08CEE9BE00E94650D892B19F03D -:101B500080913D04089510923D0480913D04EBCFA7 -:101B6000CF93C0913D0480913E048823D1F00E9420 -:101B700062086058774C8E4F9F4F60933904709382 -:101B80003A0480933B0490933C04C11108C062E086 +:101B50008091480408951092480480914804EBCF86 +:101B6000CF93C0914804809149048823D1F00E940A +:101B700062086058774C8E4F9F4F60934404709377 +:101B800045048093460490934704C11108C062E065 :101B900070E08AEE9BE00E94650D892B29F0C091D0 -:101BA0003D048C2FCF91089581E080933D04F7CFC1 -:101BB00090915B04943029F580934A0470934C040F -:101BC00060934B049093E9008FEF9091E80081506F +:101BA00048048C2FCF91089581E080934804F7CFAB +:101BB00090916604943029F58093550470935704EE +:101BC000609356049093E9008FEF9091E800815064 :101BD00095FD06C095ED9A95F1F700008111F5CFBE :101BE0008091E80085FF0DC050E040E063E070E0C8 -:101BF0008AE494E00E9425078091E8008E77809324 +:101BF00085E594E00E9425078091E8008E77809328 :101C0000E8000895BC0184E00C94D80DBC0183E089 :101C10000C94D80D9C0184E08093E9009FEF8091A3 :101C2000E800915085FD06C085ED8A95F1F700002A @@ -455,22 +455,22 @@ :101C6000E9008FEF9091E800815095FD06C095ED59 :101C70009A95F1F700008111F5CF8091E80085FF7A :101C800014C050E040E068E070E0CE010E942507FB -:101C90008091E8008E778093E80088E0FE01A1E55E +:101C90008091E8008E778093E80088E0FE01ACE553 :101CA000B4E001900D928A95E1F7DF91CF9108950C :101CB0009F92AF92BF92CF92DF92EF92FF920F93DB -:101CC0001F93CF93DF937C015B016A018091CA026D +:101CC0001F93CF93DF937C015B016A018091D10266 :101CD00001E010E08A3010F40AE010E0C1E0D0E04A :101CE000F894B501C701F6010995982E0E947A096A :101CF000911004C021960C171D076CF4892DDF91FB :101D0000CF911F910F91FF90EF90DF90CF90BF90F8 :101D1000AF909F900895CC9F9001CD9F300D300DD6 :101D2000112490E080E045E34A95F1F70000019628 -:101D300082179307C1F7D4CF80919A02811110C006 +:101D300082179307C1F7D4CF8091A102811110C0FF :101D40008091D80080618093D8008AE18A95F1F76C -:101D500000C08091D90080FF0AC081E080939A0280 -:101D600081E090919A02913009F080E0089582E03C -:101D700080939A020E94D50610925B04F1CF0E94D4 -:101D80009C0E882351F0E0914104F0914204309779 +:101D500000C08091D90080FF0AC081E08093A10279 +:101D600081E09091A102913009F080E0089582E035 +:101D70008093A1020E94D50610926604F1CF0E94C2 +:101D80009C0E882351F0E0914C04F0914D04309763 :101D900021F00190F081E02D099480E008951F93D7 :101DA000CF93DF93182FEB010E94150C8FE99FE072 :101DB0000197F1F700C000002197C1F7812FDF9153 @@ -478,10 +478,10 @@ :101DD0008F929F92AF92BF92CF92DF92EF92FF923B :101DE0000F931F93CF93DF93CDB7DEB7CE5DD109AD :101DF0000FB6F894DEBF0FBECDBF5090700190912A -:101E0000660490FF5DC0809052039090530381144C +:101E0000710490FF5DC080905D0390905E0381142B :101E1000910409F068C0E0E6F6E09E012F5F3F4FB5 :101E2000BE0161527F4FC901A4914A2F50E0DA01EF -:101E3000AA0FBB1FA40FB51FAC5ABC4FCD90DD90AD +:101E3000AA0FBB1FA40FB51FA15ABC4FCD90DD90B8 :101E4000EC90D901CD92DD92ED929D0131966A1709 :101E50007B0751F720916F0143E0249F800D911D76 :101E60001124539A2BB1277F3BB138605FB7F894A8 @@ -491,167 +491,167 @@ :101EA000CF911F910F91FF90EF90DF90CF90BF9057 :101EB000AF909F908F907F906F905F904F9008951C :101EC000809171012091720133E0839FF001112410 -:101ED000EC5AFC4F821708F096CF118210821282C2 +:101ED000E15AFC4F821708F096CF118210821282CD :101EE0008F5F3396F7CF90FF96CFD12CC12C66240D -:101EF0006394712C53E0452E8091510393010C2C77 +:101EF0006394712C53E0452E80915C0393010C2C6C :101F000001C0220F0A94EAF7822309F43FC0F601C8 :101F1000EE0FFF1FE80DF91DE590F490E114F104B8 :101F200009F479CF45E050E0B701CE0101960E9457 -:101F3000033409810F3F51F18A81800F9927991F3E +:101F3000023309810F3F51F18A81800F9927991F40 :101F40008B34910514F08AE490E05C01AA0CBB1C70 -:101F50008A0D9B1DDC01AC5ABC4F5D01049D8001C4 -:101F600011240C5A1C4F0A151B0520F0B5E0EB0E8E +:101F50008A0D9B1DDC01A15ABC4F5D01049D8001CF +:101F60001124015A1C4F0A151B0520F0B5E0EB0E99 :101F7000F11CD8CF4D81413A08F040EA98016C81BC :101F80008B810E94E2080D5F1F4FEDCFEFEFCE1A5D :101F9000DE0AF8E0CF16D10409F0AECF3CCFFC0149 :101FA0004191CF01E8E03BB9000000C047FF2BB9E9 :101FB000440F000000C000C000C02BB900C0EA956B -:101FC00091F75BCFE6E6F4E080818E7F8083EEE4DC +:101FC00091F75BCFE1E7F4E080818E7F8083E9E5E4 :101FD000F3E08281816082832FEF80E792E02150DD -:101FE00080409040E1F700C000000C94E40EEAE26B +:101FE00080409040E1F700C000000C94E40EE2E372 :101FF000F2E086E0DF011D928A95E9F70C94B50BBB :102000001F93CF93DF93CDB7DEB7AA970FB6F8949F -:10201000DEBF0FBECDBF8DE594E02091F100DC0165 -:102020002D93CD01B4E085369B07B9F780915E040E +:10201000DEBF0FBECDBF88E694E02091F100DC0169 +:102020002D93CD01B4E080379B07B9F78091690407 :10203000833009F471C0B8F4813009F448C08230AB -:1020400009F4B4C08091E80083FF3CC180915D0435 -:1020500090915E049A3008F035C1E92FF0E0EC571A -:10206000F94C0C94D4338A3009F48FC08B3009F4C6 -:1020700070C0893039F780915D04813219F7809101 -:10208000610490916204009711F00297D9F6809153 +:1020400009F4B4C08091E80083FF3CC1809168042A +:10205000909169049A3008F035C1E92FF0E0E1571A +:10206000FB4C0C94F5328A3009F48FC08B3009F4A4 +:1020700070C0893039F780916804813219F78091F6 +:102080006C0490916D04009711F00297D9F680913D :10209000E800877F8093E8008091E80082FF37C0E6 :1020A0009091F3008091F200029729F48091F10061 -:1020B0008B7F813021F48091F100809350048091D6 +:1020B0008B7F813021F48091F10080935B048091CB :1020C000E8008B778093E8000E944F07BBCF809198 -:1020D0005D04813A09F0B6CF8091E800877F809354 -:1020E000E8008091610490916204892B61F468E0BA -:1020F00081E594E070E00E9401088091E8008B7710 +:1020D0006804813A09F0B6CF8091E800877F809349 +:1020E000E80080916C0490916D04892B61F468E0A4 +:1020F0008CE594E070E00E9401088091E8008B7705 :102100008093E8009FCF60E090E080E0F3CF809183 -:102110005B048111C1CF96CF80915D04813A09F0B3 -:1021200091CF8091610490916204892B09F08ACF4C +:1021100066048111C1CF96CF80916804813A09F09D +:1021200091CF80916C0490916D04892B09F08ACF36 :102130008091E800877F8093E8008091E80080FF2D :10214000FCCF809174018093F1008091E8008E773C -:10215000B9CF80915D04813209F074CF8091610420 -:1021600090916204892B09F06DCF8091E800877F00 -:102170008093E8000E944F0780915F048093740170 -:1021800010924E040E94F70F5DCF80915D04813262 +:10215000B9CF80916804813209F074CF80916C040A +:1021600090916D04892B09F06DCF8091E800877FF5 +:102170008093E8000E944F0780916A048093740165 +:10218000109259040E94F70F5DCF8091680481324C :1021900009F058CF8091E800877F8093E8000E9483 -:1021A0004F078091600480934F044CCF80915D0471 +:1021A0004F0780916B0480935A044CCF8091680450 :1021B000813A09F047CF8091E800877F8093E8005B -:1021C0008091E80080FFFCCF80914F04BCCF803825 -:1021D00099F0823809F076C0809161048F70873061 +:1021C0008091E80080FFFCCF80915A04BCCF80381A +:1021D00099F0823809F076C080916C048F70873056 :1021E00008F070C08093E9008091EB0085FB8827A0 -:1021F00080F91092E90006C08091590490915A0428 +:1021F00080F91092E90006C0809164049091650412 :10220000911182609091E800977F9093E80080930D :10221000F1001092F1008091E8008E77B5C188231B -:1022200009F4A2C1823009F04DC080915F04811190 -:10223000A6C1809161048F702FEF280F263008F01F +:1022200009F4A2C1823009F04DC080916A04811185 +:10223000A6C180916C048F702FEF280F263008F014 :1022400041C08093E9002091EB0020FF98C19330BA :1022500031F48091EB0080628093EB0090C190910B :10226000EB0090619093EB0021E030E001C0220F81 :102270008A95EAF72093EA001092EA008091EB0039 -:102280008860EACF81111EC010915F041F77809192 +:102280008860EACF81111EC010916A041F77809187 :10229000E3008078812B8093E3008091E800877FC2 :1022A0008093E8000E944F078091E80080FFFCCFF8 :1022B0008091E30080688093E30082E0111183E065 -:1022C00080935B048091E80083FF0AC08091E8005E +:1022C000809366048091E80083FF0AC08091E80053 :1022D000877F8093E8008091EB0080628093EB0021 :1022E000AA960FB6F894DEBF0FBECDBFDF91CF9197 -:1022F0001F9108958058823028F720915F04309113 -:1023000060042C3DE3E03E07A1F583E08A838AE286 +:1022F0001F9108958058823028F720916A04309108 +:102300006B042C3DE3E03E07A1F583E08A838AE27B :1023100089834FB7F894DE01139620E03EE051E246 :10232000E32FF0E050935700E49120FF03C0E295C3 :10233000EF703F5FEF708E2F90E0EA30C0F0C796ED :102340008D939D932F5F243159F74FBF8091E80003 :10235000877F8093E8006AE270E0CE0101960E94D8 :1023600001088091E8008B778093E800ABCFC0969E -:10237000E7CF8091610490916204432F5527433049 +:10237000E7CF80916C0490916D04432F5527433033 :10238000510509F44AC078F54130510509F47AC085 :102390008BE590E0EEEEFBE04230510509F092CF84 -:1023A0002091E800277F2093E8002091630430917A -:1023B00064048217930708F49C0140E0211531055D +:1023A0002091E800277F2093E80020916E0430916F +:1023B0006F048217930708F49C0140E02115310552 :1023C00009F065C0411163C08091E80082FDC9CF6A -:1023D00080915B04882329F2853019F28091E8000E +:1023D00080916604882329F2853019F28091E80003 :1023E00083FFF2CFBECF4132510509F43CC04232E7 :1023F000510509F067CF8330910508F063CFFC01E8 -:10240000EE0FFF1FE75EFD4F0190F081E02D8A5E29 +:10240000EE0FFF1FEF5DFD4F0190F081E02D825E2A :102410009D4FDC018C9190E01AC0332721303105AB :10242000D1F02115310561F02230310509F04ACF94 :10243000EBE5FCE0E4918E2F90E0EBE5FCE007C0DB :10244000EDE8FCE0E4918E2F90E0EDE8FCE00097F1 :1024500009F438CFA5CFEBE7FCE0E4918E2F90E0B4 :10246000EBE7FCE0F4CF8330910508F02BCF880F29 -:10247000991FFC01E15EFD4F0190F081E02D89E0A4 +:10247000991FFC01E95DFD4F0190F081E02D89E09D :1024800090E08ECF82E190E0E9E4FCE089CF80919A -:102490005B04882309F465CF853009F462CF80910D +:102490006604882309F465CF853009F462CF809102 :1024A000E80083FD5ECF8091E80082FD8DCF8091B2 :1024B000E80080FF83CF9091F3008091F200211516 :1024C000310519F08830910550F041E0089709F086 :1024D00040E08091E8008E778093E8006FCF4491D0 :1024E0004093F1003196215031090196E8CF8038B0 :1024F00009F0E8CE8091E800877F8093E800809122 -:102500005C048093F10087CE8111DCCE10915F04D2 +:1025000067048093F10087CE8111DCCE10916A04BC :10251000123008F0D7CE8091E800877F8093E800E2 -:1025200010935C040E944F07112311F084E005C052 -:102530008091E30087FDFACF81E080935B0442E065 +:10252000109367040E944F07112311F084E005C047 +:102530008091E30087FDFACF81E08093660442E05A :1025400061EC81E00E946E0742E261EC84E00E944F :102550006E0742E261EC82E00E946E0742E260ECAC -:1025600083E00E946E07AECE80915F04813009F057 -:10257000A9CE81E0933009F080E080935A04109254 +:1025600083E00E946E07AECE80916A04813009F04C +:10257000A9CE81E0933009F080E080936504109249 :10258000E9008091E800877F8093E8000E944F0770 -:1025900099CE1F93CF93DF93162FC0916D06D091E4 -:1025A0006E068A30D1F420913204CE018D569440CB -:1025B000622F70E00E948133281B822F66E00E9408 -:1025C0009533C82FC15020F4DF91CF911F9108950A -:1025D00060E080E20E94C912F5CF8D30E9F4CD565B -:1025E000D44020913204622F70E0CE010E948133EA +:1025900099CE1F93CF93DF93162FC0917806D091D9 +:1025A00079068A30D1F420913D04CE0188579440B9 +:1025B000622F70E00E94C132281B822F66E00E94C9 +:1025C000D532C82FC15020F4DF91CF911F910895CB +:1025D00060E080E20E94C912F5CF8D30E9F4C8575F +:1025E000D44020913D04622F70E0CE010E94C132A0 :1025F000281B822F9E01280F311D2115324018F013 -:1026000080E0D0E0C0E0C80FD11DC359DB4FD093AC -:102610006E06C0936D06D8CF96E0FE01A3E3B4E04A +:1026000080E0D0E0C0E0C80FD11DC858DB4FD093A8 +:102610007906C0937806D8CF96E0FE01AEE3B4E029 :1026200001900D929A95E1F7803E90F186E0FE01CF -:1026300011928A95E9F7C0916D06D0916E0611113D -:1026400033C046E050E0BE0183E394E00E940C34C6 -:102650009E012D563440892B91F52A5F3F4F4091C2 -:102660003204642F70E0C9010E948133481B463058 +:1026300011928A95E9F7C0917806D0917906111127 +:1026400033C046E050E0BE018EE394E00E940B33BD +:102650009E0128573440892B91F52A5F3F4F4091C6 +:102660003D04642F70E0C9010E94C132481B46300E :1026700010F4240F311D211572E0370710F030E0FF -:1026800020E023593B4F30936E0620936D069CCF7C +:1026800020E028583B4F30937906209378069CCF62 :10269000F6E08F9FB00111246655794F46E050E077 -:1026A000CE010E940334C7CF9E012A5F3F4FFE0137 +:1026A000CE010E940233C7CF9E012A5F3F4FFE0139 :1026B0002E173F0731F2808180958193F9CFC901B0 :1026C00045E0969587954A95E1F741E050E0BA01DB -:1026D00002C0660F771F8A95E2F7CB0160916B0409 -:1026E00070916C04862B972BB9016B5F7F4FE5E0EF +:1026D00002C0660F771F8A95E2F7CB0160917604FE +:1026E00070917704862B972BB9016B5F7F4FE5E0E4 :1026F00076956795EA95E1F702C0440F551F6A95F4 -:10270000E2F7842B952B90936C0480936B04A5CFF8 +:10270000E2F7842B952B9093770480937604A5CFE2 :10271000FF920F931F93CF93DF93EC01F62EFC01F2 :1027200001900020E9F78F0101501109C017D1076E :1027300030F0DF91CF911F910F91FF9008956F2D91 :1027400089910E94C912F2CFCF93DF93C3EED2E0FA -:1027500060E0CE010E9436342196C11584E0D8078E +:1027500060E0CE010E9435332196C11584E0D80790 :10276000B9F7DF91CF9108956F927F928F929F92E8 :10277000AF92BF92CF92DF92EF92FF920F931F938F :10278000CF93DF938AEAC82E86E0D82E91ECE92E0B :10279000F12CE701CC58D10936011BC0F501859019 -:1027A0009490692DC8010E943634682DC8010196A5 -:1027B0000E94363482E0A80EB11C0E5F1F4FC01776 +:1027A0009490692DC8010E943533682DC8010196A7 +:1027B0000E94353382E0A80EB11C0E5F1F4FC01778 :1027C000D10761F78EE0680E711C2E96CE15DF05DD :1027D00029F08E010E5011095301E0CF7E018CE8E3 :1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA :1027F000F80679F6DF91CF911F910F91FF90EF903E :10280000DF90CF90BF90AF909F908F907F906F9010 :102810000895CF93C82F6FEF811161E283E290E0BA -:102820000E9436346FEFC11161E184E290E00E94B2 -:1028300036346FEFC11163E085E290E0CF910C94E4 -:10284000363480E00E94091460E086E290E00E9445 -:1028500036340E94B4130E94A41381E00C9409142E +:102820000E9435336FEFC11161E184E290E00E94B4 +:1028300035336FEFC11167E085E290E0CF910C94E2 +:10284000353380E00E94091460E086E290E00E9447 +:1028500035330E94B4130E94A41381E00C94091430 :102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 :102870002EE0629FC00DD11D11243CE8839FC00D46 -:10288000D11D1124CE0187960E942234082F10E01A -:10289000102F0027CE0188960E9422349801282B01 +:10288000D11D1124CE0187960E942133082F10E01C +:10289000102F0027CE0188960E9421339801282B03 :1028A000C901DF91CF911F910F910895462F853077 :1028B00038F47A3028F4673018F4672F0C94301409 :1028C00090E080E00895CF92DF92FF920F931F93E4 -:1028D000CF93DF936C010091650480918A02082BED +:1028D000CF93DF936C010091700480919202082BDA :1028E000C7E0D0E010E0FC2EC8010C2E02C0959588 :1028F00087950A94E2F780FD0CC02197A0F7F12C90 :102900008F2DDF91CF911F910F91FF90DF90CF908E @@ -659,59 +659,59 @@ :1029200061F3EECFCF93DF93EC010E946314BE01FD :102930000E945614DF91CF910C94D609FC0180813E :1029400091810E949214292F2F7092959F7092501E -:102950009E3078F4E92FF0E0E257F94C0C94D43330 +:102950009E3078F4E92FF0E0E756FB4C0C94F5320A :10296000803F19F020F4883E20F481E00895843FF0 :10297000E1F380E00895883EC0F3813FD1F7F5CFC1 :10298000822F869586958695089583E290E00E9431 -:102990002234813289F484E290E00E942234813131 -:1029A00059F485E290E00E94223491E0833009F0EE +:102990002133813289F484E290E00E942133813135 +:1029A00059F485E290E00E94213391E0873009F0EC :1029B00090E0892F8170089580E0FCCFCF92DF9264 :1029C000EF92FF926B017C010E94CC08B701A60137 -:1029D00088E090E0FF90EF90DF90CF900C94483427 +:1029D00088E090E0FF90EF90DF90CF900C94473329 :1029E000AF92BF92CF92DF92EF92FF920F931F931D :1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E -:102A0000142FE22E8091660480FF4FC0E82FE695D8 -:102A1000AE2FB0E0A65FBD4F9C9190934E038E7F8A +:102A0000142FE22E8091710480FF4FC0E82FE695CD +:102A1000AE2FB0E0AE5EBD4F9C91909359038E7F78 :102A2000823009F056C0413A08F040EA9E012F5F1B -:102A30003F4F6F2D802F0E94E2088091660480FF37 +:102A30003F4F6F2D802F0E94E2088091710480FF2C :102A400011C02B8139814A8180917101909172016D -:102A500053E0859FF0011124EC5AFC4F891798F13F -:102A60000E94E40E80916704801308C0809168047E -:102A70008F1104C080916904811729F0809150035F -:102A800082608093500300936704F092680410936F -:102A90006904EE2051F060916604709167048091A2 -:102AA0006804909169040E94DE140F900F900F90BB +:102A500053E0859FF0011124E15AFC4F891798F14A +:102A60000E94E40E80917204801308C08091730468 +:102A70008F1104C080917404811729F080915B0349 +:102A8000826080935B0300937204F092730410934E +:102A90007404EE2051F06091710470917204809181 +:102AA0007304909174040E94DE140F900F900F90A5 :102AB000DF91CF911F910F91FF90EF90DF90CF901A :102AC000BF90AF9008954183308322838F5F339608 :102AD000C5CF923039F6E2508E2F8170D82EE69510 :102AE000F0E0E55AF94FA590B490C12CBB24609159 :102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 -:102B0000A39E900DB29E900D112470E00E9481331F +:102B0000A39E900DB29E900D112470E00E94C132E0 :102B1000802FD11016C0860F40917101420F532FA4 -:102B2000511D9A01220F331F240F351F2C5A3C4F81 +:102B2000511D9A01220F331F240F351F215A3C4F8C :102B3000412F113A08F040EA6F2D0E94E208C39439 -:102B4000D6CF861BE9CFE6E6F4E0438121E1421BC4 -:102B500008F440E021E0628181810C94F014E6E603 +:102B4000D6CF861BE9CFE1E7F4E0438121E1421BC8 +:102B500008F440E021E0628181810C94F014E1E707 :102B6000F4E0438121E1420F08F44FEF21E062815C -:102B700081810C94F014E6E6F4E0628121E1621BAD -:102B800008F460E021E0438181810C94F014E6E6D2 +:102B700081810C94F014E1E7F4E0628121E1621BB1 +:102B800008F460E021E0438181810C94F014E1E7D6 :102B9000F4E0628121E1620F08F46FEF21E04381EC -:102BA00081810C94F014E6E6F4E0818121E0438118 -:102BB000628188500C94F014E6E6F4E0818121E013 -:102BC00043816281885F0C94F01480916A048823A9 -:102BD00019F0815080936A046091660470916704D3 -:102BE00080916804909169040C94DE1480916A04C9 -:102BF000833018F48F5F80936A046091660470914B -:102C0000670480916804909169040C94DE1490919B -:102C1000660490FF27C0917081111DC0926090934F -:102C2000660480915003816080935003662351F0C5 -:102C300060916604709167048091680490916904C2 -:102C40000E94DE1420E04091690460916804809144 -:102C500067040C94F0148C3010F09661E0CF880F6C +:102BA00081810C94F014E1E7F4E0818121E043811C +:102BB000628188500C94F014E1E7F4E0818121E017 +:102BC00043816281885F0C94F0148091750488239E +:102BD00019F08150809375046091710470917204B2 +:102BE00080917304909174040C94DE1480917504A8 +:102BF000833018F48F5F8093750460917104709135 +:102C0000720480917304909174040C94DE1490917A +:102C1000710490FF27C0917081111DC09260909344 +:102C2000710480915B03816080935B03662351F0A4 +:102C30006091710470917204809173049091740496 +:102C40000E94DE1420E0409174046091730480912E +:102C500072040C94F0148C3010F09661E0CF880F61 :102C6000982BDDCF089521E030E0A90102C0440F88 -:102C7000551F8A95E2F7CA0120915103662391F00E -:102C8000822B809351038091500380618093500385 -:102C900080914F03811109C08091660460E08695A0 +:102C7000551F8A95E2F7CA0120915C03662391F003 +:102C8000822B80935C0380915B03806180935B0364 +:102C900080915A03811109C08091710460E086958A :102CA0000C94071680958223ECCF0895CF93DF9381 :102CB000C82FC17082FBDD27D0F981FB662760F940 :102CC00085E00E94331661E06C2786E00E9433168F @@ -731,104 +731,104 @@ :102DA000813041F18C2FCF911F910F91089580E0D8 :102DB000D8CF833059F18430A9F720E040E56FEF98 :102DC0008AED0E94F01480910001882359F310923B -:102DD00027030DC020E040E56FEF82E30E94F0146E -:102DE00080910001882399F381E0809327030E945A +:102DD00032030DC020E040E56FEF82E30E94F01463 +:102DE00080910001882399F381E0809332030E944F :102DF0003E0DD8CF20E040E56FEF8CEF0E94F0143D :102E0000D1CF20E040E56FEF80E5F8CF20E040E54E -:102E10006FEF86E7F3CF0E946E16809365040C94E3 -:102E2000B50B80916504982F9670963019F48860E0 +:102E10006FEF86E7F3CF0E946E16809370040C94D8 +:102E2000B50B80917004982F9670963019F48860D5 :102E30000C940B17877FFCCF21E030E001C0220FFC -:102E40008A95EAF720958091650482230C940B17EC -:102E500021E030E001C0220F8A95EAF780916504F5 -:102E6000822B0C940B17809166048695815009F48F -:102E70008BE061E00C9407168091660486958F5F65 -:102E80008C3008F081E061E00C94071680916604B4 +:102E40008A95EAF720958091700482230C940B17E1 +:102E500021E030E001C0220F8A95EAF780917004EA +:102E6000822B0C940B17809171048695815009F484 +:102E70008BE061E00C9407168091710486958F5F5A +:102E80008C3008F081E061E00C94071680917104A9 :102E900080FF07C0869582588F77893010F40C9494 -:102EA0003C1761E082E00C940716E6E6F4E083E06C -:102EB000808311828FEF828380EA83831482AEE461 +:102EA0003C1761E082E00C940716E1E7F4E083E070 +:102EB000808311828FEF828380EA83831482A9E565 :102EC000B3E012968C911297836012968C93608176 :102ED0007181828193810C94DE1469EE7EEF90E023 -:102EE00080E00E94543460E082E090E00E9436343A -:102EF00060E083E090E00E94363410928A0260E045 -:102F000084E090E00E94363460E082E290E00E942B -:102F1000363460E085E090E00E94363460E086E080 -:102F200090E00E9436346FEF87E090E00E943634E4 -:102F300040E050E0BA0188E090E00E94483460E050 -:102F40008DE090E00E94363440E050E0BA0188E124 -:102F500090E00E94483460E087E190E00E943634BF -:102F600040E050E0BA018CE190E00E94483470E00B -:102F700060E080E290E00E94543440E050E0BA010A -:102F800088E190E00E94483480E00E9409140E9489 -:102F9000211440E050E0BA018FE090E00E944834F4 -:102FA00040E050E0BA0183E190E00C9448340F9384 +:102EE00080E00E94533360E082E090E00E9435333E +:102EF00060E083E090E00E9435331092920260E03F +:102F000084E090E00E94353360E082E290E00E942D +:102F1000353360E085E090E00E94353360E086E084 +:102F200090E00E9435336FEF87E090E00E943533E8 +:102F300040E050E0BA0188E090E00E94473360E052 +:102F40008DE090E00E94353340E050E0BA0188E126 +:102F500090E00E94473360E087E190E00E943533C3 +:102F600040E050E0BA018CE190E00E94473370E00D +:102F700060E080E290E00E94533340E050E0BA010C +:102F800088E190E00E94473380E00E9409140E948B +:102F9000211440E050E0BA018FE090E00E944733F6 +:102FA00040E050E0BA0183E190E00C9447330F9386 :102FB0001F93CF93DF9300D000D0CDB7DEB7409101 -:102FC000BE025091BF026091C0027091C1022FB742 -:102FD000F8948091460490914704A0914804B091E0 -:102FE00049042FBF841B950BA60BB70B84369105A4 +:102FC000C5025091C6026091C7027091C8022FB726 +:102FD000F8948091510490915204A0915304B091BF +:102FE00054042FBF841B950BA60BB70B8436910599 :102FF000A105B10588F10E949C0E882379F10E94F9 :1030000062086E5F7F4F8F4F9F4F69837A838B83F8 -:103010009C8380912C0190912D0188559D4F40916A +:103010009C8380912C0190912D0181559D4F409171 :103020002B0150E04530510510F044E050E0BE0166 -:103030006F5F7F4F0E94193484E090E00E94CD3290 -:10304000892BD9F40E9462086093BE027093BF027C -:103050008093C0029093C10281E010C00E94620878 -:103060000091CB021091CC022091CD023091CE0282 +:103030006F5F7F4F0E94183384E090E00E940D3252 +:10304000892BD9F40E9462086093C5027093C6026E +:103050008093C7029093C80281E010C00E9462086A +:103060000091D2021091D3022091D4023091D50266 :10307000600F711F821F931FC4CF80E00F900F90CD :103080000F900F90DF91CF911F910F9108958F9224 :103090009F92AF92BF92CF92DF92EF92FF920F93E7 :1030A0001F93CF93DF93EB0188809980AA80BB8028 -:1030B0009FB7F894C0904604D0904704E09048042D -:1030C000F09049049FBFC818D908EA08FB0894E6A5 +:1030B0009FB7F894C0905104D0905204E09053040C +:1030C000F09054049FBFC818D908EA08FB0894E69A :1030D000C916D104E104F10410F4442311F1E82EDF :1030E000082E000CFF089AE08902F0011124EF5F1E -:1030F000FE4F8381948188559D4F428150E0041793 -:10310000150708F4A801B9010E941934C7010E94EB -:10311000CD32892BA1F40E946208688379838A8367 +:1030F000FE4F8381948181559D4F428150E004179A +:10310000150708F4A801B9010E941833C7010E94ED +:103110000D32892BA1F40E946208688379838A8327 :103120009B8381E0DF91CF911F910F91FF90EF90F2 :10313000DF90CF90BF90AF909F908F90089580E0E8 :10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD -:1031500080913D0489832091BD0290E041E02817D1 +:103150008091480489832091C40290E041E02817BF :10316000190609F440E001E010E09E012F5F3F4F97 -:1031700066EC72E086E00E9447180F90DF91CF91D5 +:103170006DEC72E086E00E9447180F90DF91CF91CE :103180001F910F9108950F931F93CF93DF93CDB7A6 :10319000DEB729970FB6F894DEBF0FBECDBF85E02E -:1031A000E6E6F4E0DE01119601900D928A95E1F7D2 -:1031B00080914E0390914F03A0915003B091510321 +:1031A000E1E7F4E0DE01119601900D928A95E1F7D6 +:1031B0008091590390915A03A0915B03B0915C03F5 :1031C0008E839F83A887B98741E08885811101C0DC -:1031D00040E009E010E09E012F5F3F4F62EC72E09B -:1031E00085E00E94471881111092500329960FB66E +:1031D00040E009E010E09E012F5F3F4F69EC72E094 +:1031E00085E00E944718811110925B0329960FB663 :1031F000F894DEBF0FBECDBFDF91CF911F910F912D :1032000008956F927F928F929F92AF92BF92CF92CA :10321000DF92EF92FF920F931F93CF93DF930F9262 :10322000CDB7DEB7862E5A016901682E880F770860 -:10323000C3010E94CD32892B09F088C08AE0869DA7 +:10323000C3010E940D32892B09F088C08AE0869D67 :10324000F001879DF00D1124EF5FFE4F458150E0A6 :103250004115510511F041E050E08AE0869DF001F2 -:10326000879DF00D1124EF5FFE4F668177816855D1 -:103270007D4FCE0101960E941934F50140815181A4 -:10328000628173812FB7F89480914604909147042E -:10329000A0914804B09149042FBF841B950BA60B45 +:10326000879DF00D1124EF5FFE4F668177816155D8 +:103270007D4FCE0101960E941833F50140815181A6 +:10328000628173812FB7F894809151049091520418 +:10329000A0915304B09154042FBF841B950BA60B2F :1032A000B70B84369105A105B10540F4B701C801FB :1032B0000E94B1089981891709F44FC0082C000CAD -:1032C0009908C4010E94CD32892B91F0B12C8B2D2D +:1032C0009908C4010E940D32892B91F0B12C8B2DED :1032D0000F90DF91CF911F910F91FF90EF90DF90B2 :1032E000CF90BF90AF909F908F907F906F900895F8 :1032F0008AE0889DF001899DF00D1124EF5FFE4F5B :10330000458150E0E416F50608F4A7018AE0889D9F :10331000F001899DF00D1124EF5FFE4F66817781EA -:1033200068557D4FC6010E941934B701C8010E943B +:1033200061557D4FC6010E941833B701C8010E9444 :10333000B10899818913CACF0E946208F5016083A0 :10334000718382839383BB24B394C1CFB12CA70133 -:10335000B801C6010E941934BACFBB24B394F7CF89 +:10335000B801C6010E941833BACFBB24B394F7CF8B :10336000CF92DF92EF92FF920F931F93CF93DF9351 :1033700000D000D00F92CDB7DEB76B0185E0E82E0C -:10338000F12C09EA12E09E012F5F3F4F40EA52E024 +:10338000F12C00EB12E09E012F5F3F4F47EA52E025 :1033900061E080E00E940119882349F095E0FE0178 -:1033A0003196ABE9B2E001900D929A95E1F795E084 -:1033B000EBE9F2E0D60101900D929A95E1F70F90BA +:1033A0003196A2EAB2E001900D929A95E1F795E08C +:1033B000E2EAF2E0D60101900D929A95E1F70F90C2 :1033C0000F900F900F900F90DF91CF911F910F9161 :1033D000FF90EF90DF90CF90089590E080E00E9402 -:1033E0003034893E9E4F11F40C94C51480E008954A +:1033E0002F33893E9E4F11F40C94C51480E008954C :1033F0001F920F920FB60F9211242F933F934F936A :103400005F936F937F938F939F93AF93BF93CF936C :10341000DF93EF93FF93D091E900DF708091EC0090 @@ -844,929 +844,866 @@ :1034B0008093E1008091DA0080FF24C08091D800E1 :1034C00080FF20C08091DA008E7F8093DA008091A7 :1034D000D90080FF9BC080E189BD82E189BD09B42C -:1034E00000FEFDCF81E080935B0480914D0481114B +:1034E00000FEFDCF81E08093660480915804811135 :1034F00009C00E94D5060E94A0078091E200846066 :103500008093E2008091E10080FF17C08091E2008B :1035100080FF13C08091E2008E7F8093E200809153 :10352000E20080618093E2008091D8008062809305 -:10353000D80019BC85E080935B048091E10084FF92 +:10353000D80019BC85E0809366048091E10084FF87 :1035400029C08091E20084FF25C080E189BD82E12D :1035500089BD89B5982F917080FFFBCF8091D800ED :103560008F7D8093D8008091E1008F7E8093E10071 :103570008091E2008F7E8093E2008091E200816082 -:103580008093E20080915C04882309F445C084E0C4 -:1035900080935B048091E10083FF27C08091E2006B +:103580008093E20080916704882309F445C084E0B9 +:10359000809366048091E10083FF27C08091E20060 :1035A00083FF23C08091E100877F8093E10082E068 -:1035B00080935B0410925C048091E1008E7F809385 +:1035B00080936604109267048091E1008E7F80936F :1035C000E1008091E2008E7F8093E2008091E20032 :1035D00080618093E20042E060E080E00E946E073C :1035E0008091F00088608093F000FF91EF91BF918F :1035F000AF919F918F917F916F915F914F913F918B :103600002F910F900FBE0F901F90189519BC10921C -:103610005B0410924D0476CF8091E30087FD93E028 -:1036200090935B04B7CF78941F921FB61F9211241A -:103630008F939F93AF93BF938091460490914704DB -:10364000A0914804B09149040196A11DB11D809339 -:10365000460490934704A0934804B0934904BF9153 +:1036100066041092580476CF8091E30087FD93E012 +:1036200090936604B7CF78941F921FB61F9211240F +:103630008F939F93AF93BF938091510490915204C5 +:10364000A0915304B09154040196A11DB11D809323 +:10365000510490935204A0935304B0935404BF9127 :10366000AF919F918F911F901FBE1F9018959C0145 -:103670004FB7F8948091460490914704A091480474 -:10368000B09149044FBF821B930B08952FB7F89454 -:103690008091460490914704A0914804B091490458 -:1036A0002FBF08958F929F92AF92BF92CF92DF92D9 -:1036B000EF92FF920F931F93CF93DF93CDB7DEB7B7 -:1036C0002F970FB6F894DEBF0FBECDBF8E010F5FF0 -:1036D0001F4F8AE0D8011D928A95E9F78EE4C82E23 -:1036E00081E0D82EF12CE12CAA24A394B12CF60170 -:1036F00081916F018F3F09F44AC0F894E82FE29559 -:10370000EF70F0E021A18F70A50102C0440F551F9A -:103710008A95E2F7CA01922F982B91A392A18095E6 -:10372000892382A30E947A0900C0E7E4F1E030E037 -:1037300020E0912C41914F3F09F47EC0A42FA29527 -:10374000AF70B0E090968C9190E04F7002C095956C -:1037500087954A95E2F780FD6FC08A2D022E01C041 -:10376000880F0A94EAF7982A2F5F3F4F27303105D8 -:1037700009F7F601319780818F3F11F00E947C0993 -:1037800050EA5A95F1F7F801EE0DFF1D90828FEF88 -:10379000E81AF80A95E0E916F10409F0A8CF4AE022 -:1037A00050E0B80181ED92E00E940C347C01892B3D -:1037B00041F08AE0F801A1EDB2E001900D928A9506 -:1037C000E1F71091DC02E114F104C1F181E0809392 -:1037D0008D020E94461B90938C0280938B028091F5 -:1037E0008B0290918C020E94371B069770F0A1ED1E -:1037F000B2E0E12FF0E0EC5BFC4F8D91819322E091 -:10380000A63DB207D1F710928D0281E090E0EF283B -:10381000C9F02F960FB6F894DEBF0FBECDBFDF9173 -:10382000CF911F910F91FF90EF90DF90CF90BF90BD -:10383000AF909F908F90089580E095CF80918D02FA -:103840008111CDCF0E949C0EB82EE091DC028E013A -:10385000055F1F4F882309F4CAC085E0D8011D9277 -:103860008A95E9F7F0E09F012C5B3C4F790180914C -:10387000CA02AE01405F5F4F6A018A3008F08FC014 -:1038800040EB59E1B801C7010E94580E882309F4A2 -:103890009DC04FE756E2B801C7010E94580E882329 -:1038A00009F494C047ED57E1B801C7010E94580ED2 -:1038B000882309F48BC043EC58E1B801C7010E948A -:1038C000580E882309F482C041EA58E1B801C701C3 -:1038D0000E94580E882309F479C01092CA02E09120 -:1038E000DB02F0E0AF014C5B5C4FD80110E0FA0165 -:1038F0009191AF018D91981731F09F0121503109BD -:10390000F90180831B2DAC15BD0589F780919102CB -:10391000909192020E94371B893E934060F1609122 -:103920009002E62EF12C662777276E197F09072E65 -:10393000000C880B990B0E94243527EA39E747E4ED -:103940005DE30E9415364B015C01B701FF0C880B4B -:10395000990B0E9424359B01AC01C501B4010E9462 -:103960006B340E94F334609390020E94461B909344 -:1039700092028093910280919502882371F0809148 -:103980009302909194020E94371B893E934028F045 -:1039900082EE0E94DC0B10929502812F3ACF80912B -:1039A0008E0290918F020E94371B843F914008F055 -:1039B00067CFE091DB02F0E0EC5BFC4FD8011192A5 -:1039C0001D92AC15BD05D9F71B2DA0CF8091CA0261 -:1039D0008F3F31F08F5F8093CA028A3008F47FCF27 -:1039E0000E94461B90938F0280938E02E2CFF0E0FC -:1039F000EC5BFC4FF89485E0A9EAB2E001900D92EF -:103A00008A95E1F765E070E089EA92E00E94B108EA -:103A10008093A8020E947A09F894E091E402F0E011 -:103A2000EF51FD4F80818B878093AF0261E070E0A2 -:103A3000C8010E94B1088093AE020E947A09F894EE -:103A4000C090B002D090B102E090B202F090B30208 -:103A50008091960290919702A0919802B09199025C -:103A6000C816D906EA06FB06D1F0C0929602D0929B -:103A70009702E0929802F09299020E949C0E8111A6 -:103A80000EC00E946208C61AD70AE80AF90AC09254 -:103A9000CB02D092CC02E092CD02F092CE020E94F4 -:103AA0007A09F8948091BB02882321F184FF04C035 -:103AB0009091BC029093510380FF0DC08091B4029D -:103AC00080FF25C09091660491609093660460E049 -:103AD00086950E9407168091BB0281FF09C020E0F5 -:103AE0004091B7026091B6028091B5020E94F01435 -:103AF0001092BB020E947A09F8948091BD0288233B -:103B000049F00E94B00D0E947A0980E082CE0E94A6 -:103B1000E20FE1CF0E94950DF6CF5F926F927F92F8 -:103B20008F929F92AF92BF92CF92DF92EF92FF92CD -:103B30000F931F93CF93DF9300D000D00F92CDB798 -:103B4000DEB76C01FC0183819481892B31F0808187 -:103B5000918189238F3F09F0C4C50F900F900F907A -:103B60000F900F90DF91CF911F910F91FF90EF90E9 -:103B7000DF90CF90BF90AF909F908F907F906F908D -:103B80005F9008950E946314182F682F89819A818D -:103B90000E94890B69817A81812F0E9456148C01C1 -:103BA000F6018281882309F463C0C801905681150B -:103BB000F0E29F0750F0905E811520E1920728F017 -:103BC000915C81159F4108F0A6C0C80199279C010E -:103BD000245031092432310520F08B970E9708F0DC -:103BE00047C080919102909192020097D9F10E9472 -:103BF000371B9C0150E040E060E67AEE80E090E008 -:103C00000E94B533CA01B90125E030E040E050E040 -:103C10000E94B533E09090022F3F310519F010F06B -:103C20002FEF30E0F12C2E193F09B90190E080E030 -:103C30000E94223527EA39E747E45DE30E94153602 -:103C40000E94D7344B015C01B701FF0C880B990B24 -:103C50000E942435A50194010E946B340E94F33424 -:103C6000609390020E94461B90939202809391026F -:103C7000F6018281882309F429C5980122513F4524 -:103C80002031310508F0F7C48FEF93E00E94223411 -:103C9000025193EEA92E92E0B92E81115ECF01114F -:103CA00043C01C821B82662463948AE0582E8501DF -:103CB0000F5F1F4FC5010E94223489831A82882317 -:103CC00009F44BCF9FEF980F9330E8F58A83698210 -:103CD00032E0A30EB11CC8010E9422348B838823DA -:103CE00009F43BCF8E010F5F1F4FF8012081222383 -:103CF000F1F2213009F061C091818281913029F582 -:103D00000E5F1F4F6AE070E0893311F460E570E0E8 -:103D10000E94CF0E20C090E080E00F3F110511F00F -:103D200008F055CFC80153CFA114F4E0BF0609F441 -:103D300014CFC5010E942234811101C001502FEF20 -:103D4000A21AB20AACCF5801CDCF923039F40E5F2F -:103D50001F4F0E94150C0F5F1F4FC7CF933029F4E0 -:103D60000E5F1F4F0E94DC0BF6CF943019F00F5FEF -:103D70001F4FF1CF0E5F1F4F30E020E0B8016F5FA3 -:103D80007F4FF80141818053990B8A30910550F0A3 -:103D90002150310900F38FE99FE00197F1F700C04E -:103DA0000000F6CF529EF001539EF00D11249C01AD -:103DB0002E0F3F1F842F8B01E1CFE22FF0E0E75F52 -:103DC000FD4F7490822F86958695869590E0FC0134 -:103DD000E750FE4FE4902770F12C022E02C0F594BC -:103DE000E7940A94E2F7E1E0EE22FF24FC01E751B8 -:103DF000FE4FC490D12C022E02C0D594C7940A94D1 -:103E0000E2F7F1E0CF22DD24FC01E752FE4F84907F -:103E1000912C02C0959487942A95E2F721E08222A2 -:103E20009924E114F10419F081EE0E94150CC114DB -:103E3000D10419F086EE0E94150C39E36AE070E0B7 -:103E4000731202C060E570E0872D0E94CF0ECD286E -:103E500019F086EE0E94DC0BEF2819F081EE0E942B -:103E6000DC0B892809F477CF6AE070E08CE250CF50 -:103E700081E00E94281703C081E00E941C170F9068 -:103E80000F900F900F900F90DF91CF911F910F9196 -:103E9000FF90EF90DF90CF90BF90AF909F908F906A -:103EA0007F906F905F900C94111782E0E2CF043FF7 -:103EB000110509F455C108F057C1053E110509F473 -:103EC000DDC0F601928191113CC280914E04827254 -:103ED0000A3CFCE51F0709F414C208F06AC1053C5E -:103EE0003CE5130709F4F9C108F04EC1033C5CE559 -:103EF000150709F4D3C108F0EBC1023C1C4509F4D5 -:103F00007DC1F60100811181992309F434C2C801F1 -:103F10000E946314F82E682FC8010E94890BB80113 -:103F20008F2D0E9456140E94D609182FB82EF60124 -:103F300022814581342F32953F70892F82958F7071 -:103F4000E82EF12C8C3008F04EC2F701E456F94C03 -:103F50000C94D43303384FE5140709F481C018F5E5 -:103F600001389FE5190709F44AC008F065C0003818 -:103F7000FFE51F0709F0A5CF882309F459C08091F8 -:103F80009502811106C081E08093950282EE0E9425 -:103F9000150C0E94461B90939402809393028BE22F -:103FA0000E94150C8ECF05382FE5120709F4BEC00C -:103FB00008F476C006384FE5140709F082CF88234D -:103FC00009F4CEC06091590170915A0190E080E0EF -:103FD0000E94223520E030E040E05CE30E9415368C -:103FE00020E030E040E85FE30E94EE348111B5C08C -:103FF00080EE90E090935A0180935901A1C08823EC -:10400000A1F080919502811106C081E08093950214 -:1040100082EE0E94150C0E94461B9093940280939E -:10402000930281EE0E94150CBACF81EE0E94DC0B48 -:104030008BE20E94DC0B45CF882309F442CF81EE4E -:104040000E94150C83EE0E94150C8FE40E94150C43 -:104050008FE40E94DC0B83EE0E94DC0B81EEE9CF43 -:10406000882309F42ECF81EE0E94150C83EE0E9466 -:10407000150C80E50E94150C80E5EBCF809334028F -:104080001093330200933202882321F081E0809361 -:10409000E70217CF1092E70214CF80933102F0CFDE -:1040A000882379F180913102882349F0809132028E -:1040B0000E94DC0B80EE0E94150C8AE20CC08091FD -:1040C00034028823D1F3809132020E94DC0B80EE0F -:1040D0000E94150C8CE40F900F900F900F900F9092 -:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 -:1040F000BF90AF909F908F907F906F905F900C9447 -:10410000150C8AE20E94DC0B8CE40E94DC0B80EE32 -:104110000E94DC0B80913102811105C08091340234 -:10412000882309F41ACD80913202D5CF8823C1F0BB -:1041300080912703882339F0109227031092000101 -:104140000E943E0DBECE809100018111F7CF81E02B -:104150008093270380930001F3CF80E890E04ACF5B -:1041600061E00E949A0CADCE62E0FBCF64E0F9CF33 -:10417000882321F081E08093E602A3CE1092E6022C -:10418000A0CE1092E9029DCE073C2CE5120709F45F -:10419000AEC008F4A7C0083C4CE5140709F4ACC055 -:1041A000093C1C4509F0ADCE43EA55E16FEA75E1E3 -:1041B00079C0043DECE51E07A8F40E3CFCE51F07A2 -:1041C00008F0CBCC0C3C2CE5120709F49FC045EE5F -:1041D00055E166EF75E10D3C1C4508F463C061E0F4 -:1041E00081E046C0053D4CE5140709F4B6CC08F45F -:1041F00092C00D351D4509F4B0CC83CE8091660484 -:1042000080FF31C08E7F8093660460916604709158 -:10421000670480916804909169040E94DE14809183 -:1042200050038160809350039FEFE0E7F2E09150EC -:10423000E040F040E1F700C000000F900F900F90B9 -:104240000F900F90DF91CF911F910F91FF90EF9002 -:10425000DF90CF90BF90AF909F908F907F906F90A6 -:104260005F900C94E40E81608093660461E0869513 -:104270000F900F900F900F900F90DF91CF911F91A3 -:104280000F91FF90EF90DF90CF90BF90AF909F90F5 -:104290008F907F906F905F900C94071643E357E1E7 -:1042A0006CE377E10F900F900F900F900F90DF91DC -:1042B000CF911F910F91FF90EF90DF90CF90BF9023 -:1042C000AF909F908F907F906F905F900C94C708F5 -:1042D0004CE357E163E377E1E5CF43ED55E16CED66 -:1042E00075E1E0CF4CED55E163ED75E1DBCF4BEBD4 -:1042F00055E167EC75E1D6CF47EC55E16BEB75E125 -:10430000D1CF4FEA55E163EA75E1CCCF46EF55E1F5 -:1043100065EE75E1C7CF0F900F900F900F900F9043 -:10432000DF91CF911F910F91FF90EF90DF90CF9091 -:10433000BF90AF909F908F907F906F905F900C9404 -:1043400046170E3D1C4509F0DCCD0F900F900F90E5 -:104350000F900F90DF91CF911F910F91FF90EF90F1 -:10436000DF90CF90BF90AF909F908F907F906F9095 -:104370005F900C946D17C8010E94610BF82ECFCD91 -:10438000092F0F70907F11F00295007F812F22235B -:10439000C9F0002369F090E2910F983010F01111EC -:1043A0000BC080914E04082B00934E040E94400BDA -:1043B000812F0E94150C17C080918902082B009351 -:1043C0008902F4CF0E94DC0B002369F00095105E97 -:1043D000183010F0B11027C080914E0408230093CC -:1043E0004E040E94400B98E0E91AF108E4E0EE1652 -:1043F000F10408F0B2CB0E94BF0E0F900F900F9007 -:104400000F900F90DF91CF911F910F91FF90EF9040 -:10441000DF90CF90BF90AF909F908F907F906F90E4 -:104420005F900C94561680918902082300938902AC -:10443000D8CF892F8F70907F903211F08295807F36 -:10444000F1E0BF120CC0222329F0333060F60E9445 -:10445000D20BC9CF323038F60E94C70BC4CF22230B -:1044600041F03323A1F340FFA3CF4F70F601458302 -:10447000EECF332389F3193309F0F5C0FFEF27EEB0 -:1044800033E0F15020403040E1F700C00000812FC0 -:104490000E94DC0BA8CF892F86958695837061F0EA -:1044A000813009F0A0CF812F9370211102C090E0DC -:1044B00080E00E946E0897CF812F9370211102C077 -:1044C00090E080E00E9484088ECF892F8370A1F550 -:1044D000211189CF812F829586958770880F880F4B -:1044E000412F4F70082E01C0440F0A94EAF7212F84 -:1044F000207114FF07C02FE030E001C0220F8A9521 -:10450000EAF72095969596959370923081F0822FD8 -:10451000842B933030F480918A02913029F0242B3F -:1045200082230E94C30B5FCF842B822BFACF242BD4 -:1045300080918A028227F5CF8695222311F0892F58 -:104540008170882309F44FCF812F829586958770DB -:10455000880F880F412F4F70082E01C0440F0A9416 -:10456000EAF7212F207114FF07C02FE030E001C0CF -:10457000220F8A95EAF7209596959695937092303A -:1045800081F0822F842B933030F480916504913038 -:1045900029F0242B82230E940B1725CF842B822BFA -:1045A000FACF242B809165048227F5CF092F0F7055 -:1045B000222329F0802F0E942817812F48CF812F96 -:1045C0000E94C70B802F0E941C170DCF812FE1EF97 -:1045D0001E1789F1E11750F0F0EF1F17B9F02223F1 -:1045E000B1F13111E5CE892F8F7129C042EF141737 -:1045F00049F153EF1513F3CF80E0222361F29F714D -:1046000081E001C0880F9A95EAF7C5CF222379F09F -:10461000323008F0E8CE292F2F7181E090E001C000 -:10462000880F2A95EAF7909165048927B4CF333033 -:1046300008F0D9CEF0CF892F8F71222321F20E946A -:104640002817D1CE892F8F712223C9F3BCCF3323F2 -:1046500079F0893341F48FEF97EEE3E08150904099 -:10466000E040E1F712CF8FE39CE90197F1F70DCF1E -:10467000892F8F71A8CF0031FFE51F0709F4F8CB10 -:1046800001312FE5120709F410CC063F110509F49A -:104690006DCD08F05FCC043E110509F469CD08F03A -:1046A00006CC003E110509F463CD013E110509F465 -:1046B000F4CC0C32110509F004CC882309F461CD47 -:1046C00081E08093E90210926701FBCB00313FE566 -:1046D000130709F4D1CB01314FE51407B1F682E09D -:1046E000CCCB85E0DE01119601900D928A95E1F721 -:1046F000F601228189819A81211144CA0E94610BAD -:10470000182F48CA1F93CF93DF9380915502807F63 -:10471000A9F480915202882389F080918702D09178 -:1047200056026091500270915102A0915302B091D3 -:104730005402C62FC72316E0D81304C0DF91CF91CF -:104740001F91089590E0109711F0CF3F19F4019652 -:104750008770F2CF189F9001199F300D1124F90135 -:10476000E95AFD4F41814713F2CF40814613EFCF05 -:1047700042814111ECCF438154814A1B5B0B403A8B -:10478000510528F7809155028F7080618093550202 -:10479000F901E45AFD4F80818F708061808380E54C -:1047A00092E00E948D1DDF91CF911F910C94570BC9 -:1047B000AF92BF92CF92DF92EF92FF920F931F932F -:1047C000CF93DF93CDB7DEB761970FB6F894DEBF16 -:1047D0000FBECDBF8C0185E0F801DE011D96019072 -:1047E0000D928A95E1F7F801E28080E5A82E82E03B -:1047F000B82E60915302709154026115710509F44D -:1048000032C19091500240915102892F84238F3FF1 -:1048100009F429C120813181C380D480F0905202F3 -:10482000F601E61BF70BFF2009F4E8C08091550262 -:10483000582F507FE03AF10508F0ABC0511177C016 -:10484000FE2C431321C092131FC0E1101DC08F70B6 -:10485000806180935502C5010E948D1D8091550293 -:10486000F80185838F2D61960FB6F894DEBF0FBED9 -:10487000CDBFDF91CF911F910F91FF90EF90DF900F -:10488000CF90BF90AF900895CD2829F0822F832339 -:104890008F3F09F003C180E0F82FF170DF2E80FF19 -:1048A0003CC0809187024091560256E0841315C0A7 -:1048B0002D873E878D859E850E949214292F2295F3 -:1048C0002F702230F0F0243018F59F70F1F0F801CD -:1048D0009581907FD1F4D12C1EC090E0589FF001BB -:1048E000599FF00D1124E95AFD4F6181361306C01E -:1048F0006081261303C06281E6120FC001968770A3 -:10490000D5CF9F7011F0882331F3805E883018F383 -:10491000C8010E948D1DFD2CA5CFEE2009F4A2CF69 -:1049200080915502816080935502F12C9BCF4313F7 -:1049300006C0921304C0F801EE2009F479C0C80142 -:104940000E949E14882309F1EE20F9F0809155020F -:10495000803270F0209150023091510238872F83BD -:104960001986DB86CA868C87CE0107960E948D1D2C -:1049700086E0F801A0E5B2E001900D928A95E1F79A -:104980000E948223FF24F3946DCFC8010E948D1DE5 -:10499000F9CF51110AC080E592E00E948D1D86E09A -:1049A000F50111928A95E9F7C0CF43130FC0921316 -:1049B0000DC0E1100BC0F8018583C8010E948D1D58 -:1049C00086E0F50111928A95E9F74CCFC8010E9463 -:1049D0009E148823D1F2EE20C1F2809155028032DC -:1049E00038F220915002309151023A8329831B8280 -:1049F000DD82CC828E83CE010196B8CFE03AF105FC -:104A0000F8F6FE2CEE2009F243131FC092131DC0CE -:104A10008091550280FD10C0982F907F69F0F801B9 -:104A20008583903F31F0982F907F905F8F70892B16 -:104A30008583C8010E948D1D86E0F801A0E5B2E0E3 -:104A400001900D928A95E1F70DCFC8010E949E1446 -:104A500081118ECF80915502816080935502C801EB -:104A60000E948D1DFFCEEE2009F48FCFC8010E9459 -:104A70009E14F82E882309F488CF86E0F801A0E57B -:104A8000B2E001900D928A95E1F7809150029091E9 -:104A900051020E9492140E948223E4CE81E08E256E -:104AA000FBCE1F93CF93DF93CDB7DEB767970FB6DB -:104AB000F894DEBF0FBECDBF4B8B5C8B6D8B7E8BB6 -:104AC0008F8B6111109289021A8A198A85E0FE0182 -:104AD0007396DE011D9601900D928A95E1F786E0AE -:104AE000FE013D96DE01179601900D928A95E1F741 -:104AF000CE0107960E94D823882389F016E0809182 -:104B000087029091560289134BC067960FB6F894AE -:104B1000DEBF0FBECDBFDF91CF911F91089586E01C -:104B2000FE013796DE01119601900D928A95E1F70C -:104B30008A859B85892B11F38F81988589238F3FE7 -:104B4000E9F22091560230E0C90101968770992759 -:104B5000409187024817190681F410924E040E9472 -:104B6000F70F109256021092870286E0E0E5F2E01D -:104B7000DF011D928A95E9F7C1CF96E0929FD0019F -:104B8000939FB00D1124A95ABD4FFE01319601909B -:104B90000D929A95E1F7809356020E94570BAECF83 -:104BA000819FC0011124895A9D4F0E94D8238823D8 -:104BB00009F4ABCF8091870290E001968770992726 -:104BC000809387029CCF0F931F93CF93DF93CDB732 -:104BD000DEB7A8970FB6F894DEBF0FBECDBF811128 -:104BE0004DC006E0662359F10CA311E01DA31EA3DE -:104BF0000E94461B8160782F98A78FA34CA15DA1CE -:104C00006EA188A50E9451250F8F18A319A20E949A -:104C1000461B8160782F9BA38AA34F8D58A169A161 -:104C20008BA10E94512581E0A8960FB6F894DEBFB3 -:104C30000FBECDBFDF91CF911F910F9108950A8FC5 -:104C400013E01B8F81E08C8F0E94461B8160782FC0 -:104C50009E8F8D8F4A8D5B8D6C8D8E8D0E94512520 -:104C60000D8B1E8B1F8A0E94461B8160782F998FA7 -:104C7000888F4D895E896F89898DD3CF813099F670 -:104C80006623F1F016E0188B198B8A8B0E94461B65 -:104C90008160782F9C8B8B8B488959896A898C8994 -:104CA0000E9451251B871C871D860E94461B816020 -:104CB000782F9F878E874B855C856D858F85B1CFDB -:104CC00006E00E8318E01F8388870E94461B8160E0 -:104CD000782F9A8789874E815F8168858A850E94AF -:104CE000512509831A831B820E94461B8160782FFD -:104CF0009D838C8349815A816B818D8192CFCF9224 -:104D0000DF92EF92FF920F931F93CF93DF930F9257 -:104D1000CDB7DEB7EE24E394F12C0FEA12E09E014A -:104D20002F5F3F4F44EA52E063E082E00E940119A6 -:104D3000082F882321F1C090DE028C2D90E09C0189 -:104D40002F513D4F79011981F9018081181BD12E16 -:104D500080E00AC0DA94F70180818F5F808360E091 -:104D60008C2D0E94E325802F1D14A4F3912F17FD95 -:104D700090E0191B11110EC081110E943E0B802F73 -:104D80000F90DF91CF911F910F91FF90EF90DF90E7 -:104D9000CF9008951F5FF70180818150808361E08B -:104DA0008C2D0E94E325802FE5CF1F921FB61F9206 -:104DB00011248F939F93AF93BF93809145048111EA -:104DC00013C08091460490914704A0914804B0918B -:104DD00049044196A11DB11D809346049093470458 -:104DE000A0934804B0934904BF91AF919F918F91D4 -:104DF0001F901FBE1F901895CDB7DEB7E3970FB673 -:104E0000F894DEBF0FBECDBF84B7877F84BF0FB6D7 -:104E1000F894A8958091600088618093600010925A -:104E200060000FBE80E890E00FB6F89480936100B8 -:104E3000909361000FBE85B7806885BF85B7806895 -:104E400085BF88E799E090932702809326020E940D -:104E5000D5060E94A0078091E20084608093E20062 -:104E6000789480915B048823A1F01091E9001F7071 -:104E70009091EC00892F817090FD80E8182B1092A2 -:104E8000E9008091E80083FD0E9400101F701093DC -:104E9000E90082E084BD93E095BD9AEF97BD8093D1 -:104EA0006E001092CB021092CC021092CD021092A2 -:104EB000CE020E94C514811102C00E9421140E94DA -:104EC0009C0E8093580180915801882309F4C6C034 -:104ED00010926F0185E2809370010E949C0E8111F7 -:104EE0000E94C0318091580181112FC0FE0135967A -:104EF00086E0DF011D928A95E9F786E6898387E9D6 -:104F00008A8386EC8B8384E38C8385E38D8334975B -:104F1000AEE4B1E0CE010B9621912D938E179F0741 -:104F2000D9F787E0E5E7F1E0DE01919601900D9277 -:104F30008A95E1F7FE01B196A7E4B1E0CE0188962B -:104F400021912D938E179F07D9F78091580195E0F5 -:104F5000811190E09093DC0285E0891B8093DB0255 -:104F60000EE411E0A3E5EA2EA1E0FA2EF80181910A -:104F70008F018F3F11F00E947C09E016F106B1F716 -:104F800007E411E0FEE4EF2EF1E0FF2ED8018D9151 -:104F90008D018F3F11F00E947C09E016F106B1F7F8 -:104FA000E1EDF2E08BED92E0A4E4B3E011921D920A -:104FB0008E179F07D9F70E94ED19811102C00E9438 -:104FC0006D1782E090E00E9422348093390384E0E0 -:104FD00090E00E942234182F82E290E00E94223456 -:104FE000982F812F9093D0028093CF020E94521B62 -:104FF000EFE7FBEB3197F1F700C000000E94521B76 -:105000008091440380FF2EC06FEF7FEF90E080E03F -:105010000E94543481E08093E00080E28093D800C5 -:105020001092C9008FE19EE40197F1F700C00000E3 -:1050300087E090EBDC0180936F0690937006A0935D -:105040007106B093720688E19CE00FB6F894A895BB -:10505000809360000FBE90936000FFCF85E2809345 -:105060006F0139CF83E090E00E9422340E94C30B8D -:10507000809165040E946E160E949C0E811102C0F0 -:105080000E94C33183E080930F0380E28093320457 -:105090000E94C12F6DE070E08CE992E00E94650DE6 -:1050A000892BE9F580910F0363E070E081FD97C2E1 -:1050B00089E992E00E94650D892B89F56DE070E029 -:1050C00089E892E00E94650D892B49F50E946208EB -:1050D0006058774C8E4F9F4F6093390470933A0419 -:1050E00080933B0490933C04EDE6F4E080E092E092 -:1050F000DF019C011D9221503040E1F7F0936E06D4 -:10510000E0936D068FEF9FEF90936C0480936B0498 -:1051100081E080933E0480933D04109210038091BF -:10512000DD02811136C00E94ED19811104C00E9478 -:105130006D170E94551788E090E00E942A34609312 -:105140006604709367048093680490936904809167 -:1051500050038360809350036E7F71F40E94551753 -:1051600088E090E00E942A3460936604709367049C -:1051700080936804909369040E94CC08809166042F -:1051800080FF04C060E086950E94071681E080934E -:10519000DD0280915801811106C084EF8093660181 -:1051A00085EF8093650120916601A22FA295AF70D3 -:1051B000B0E091963C9191972F7081E090E0BC0116 -:1051C000022E01C0660F0A94EAF7462F409543234A -:1051D00091964C93919792963C919297362B9296FA -:1051E0003C93929740916501E42FE295EF70F0E0D7 -:1051F00031A14F70042E01C0880F0A94EAF7982F4E -:105200009095932391A392A1892B82A390968C9140 -:1052100090E002C0959587952A95E2F7817020A1CC -:1052200030E002C0359527954A95E2F792E020FFDD -:1052300090E0892B8093E5028091580111E081274D -:105240008093E402312F381B3093DE020E94C12F7D -:1052500040E060E080E00E941E0D89EA92E09093B9 -:1052600053038093520360E08AE00E94071681E0B6 -:105270000E940B1780EE90E090935A0180935901A1 -:10528000109327030E943E0D8BE591E0909342041A -:1052900080934104E0E46E2E80915B04FF24F3943C -:1052A00000E112E1853009F4ECC10E94521BE82EA6 -:1052B00081110E946208EAE3F3E0A4E4B3E010E0A5 -:1052C00000E0B02EDD9081918D1509F4FEC18D2591 -:1052D000C12CFF24F394982F9F2109F4F1C10E945F -:1052E0009C0E882399F0C8A6B9A6DF2081E009F4B6 -:1052F00080E08AA70E94461B8160782F9CA78BA71D -:1053000048A559A56AA58CA50E945125F801E65C1F -:10531000FC4F8081F826F0828091E502E82FEE0FA5 -:10532000EE0F90916601A92FA295AF70B0E0909614 -:105330002C9130E09F7002C0359527959A95E2F741 -:105340002170332790916501A92FA295AF70B0E02D -:1053500090964C9150E09F7002C0559547959A9554 -:10536000E2F7CA018170992740FF02C082E090E015 -:10537000822B8E2B8093E5021091E4028F70E82F30 -:10538000F0E0EE50FE4F80819091E302890F809310 -:10539000E302F12C84306CF0E12FF0E0EF51FD4F8F -:1053A00080818F5F808360E0812F0E94E325FF244E -:1053B000F3948091E3028D3F6CF4E12FF0E0EF5124 -:1053C000FD4F80818150808361E0812F0E94E32521 -:1053D000FF24F3948091E302082E000C990B64E003 -:1053E00070E00E94A1338093E302F1100E943E0B13 -:1053F00080913E04882351F1809111039091120312 -:105400000E94371BC29708F077C120916B0430913E -:105410006C042115310509F08CC280913D0488236C -:10542000A9F00E9462080091390410913A04209179 -:105430003B0430913C04601B710B820B930B6F3F5C -:105440007F4F8F4F9F4710F40E94950DE11001C0D0 -:10545000F1100E94B00D809137038A3008F0A1C38B -:1054600080913503909136030E94371B089708F40A -:1054700098C304E610E025E030E040E353E064E048 -:1054800084E10E940C31892B09F05CC31092370330 -:1054900020912703222359F0809132039091330306 -:1054A000982789279827909333038093320386E0C7 -:1054B000E9E1F3E0DE01919601900D928A95E1F722 -:1054C00086E0FE01B196DE01119601900D928A955B -:1054D000E1F786E0FE013196AAE2B3E001900D9279 -:1054E0008A95E1F78091340387FD29C380912803D1 -:1054F00090912903009709F01CC3609130038091BB -:1055000031030091320310913303222309F4E4C2E2 -:1055100041E00E94F80C2091250330912603281BBE -:10552000390B309326032093250341E0602F812F10 -:105530000E94F80C2091230330912403820F931FC3 -:10554000909324038093230363E273E08FE293E05C -:105550000E94D90C65E273E08EE293E00E94D90CC0 -:1055600010922C0310922D0386E0EAE2F3E0DE01B4 -:10557000119601900D928A95E1F786E0FE01319631 -:10558000A9E1B3E001900D928A95E1F730911B03F8 -:1055900020911C0390911D0380911E0370911503AF -:1055A000609116034091170350911803F0911A036C -:1055B000E0911403FE13CCC2332311F07313C8C25D -:1055C000222311F02613C4C2882311F08513C0C210 -:1055D000992319F081E04913BCC280E0BAC286E980 -:1055E00092E068CD80915B04843009F43AC00E9457 -:1055F000950D40E060E080E00E941E0D80E00E947A -:1056000056168091E002811109C0F092E00280916B -:10561000660481708093DF020E94E20F10924504BD -:1056200088E190E00FB6F894A895809360000FBED3 -:105630006092600083B7817F846083BF83B781609D -:1056400083BF7894889583B78E7F83BF0FB6F89415 -:10565000A89580916000886180936000109260003E -:105660000FBE80915A04882361F00E94521BE4E42B -:10567000F3E08191811164C4AEE4B3E0AE17BF07DB -:10568000C1F780915B04853009F4ACCF10924E04D1 -:105690000E94F70F0E94BF0E0E9456161092E00261 -:1056A0008091DF02882349F08091660481608093B5 -:1056B000660460E086950E9407160E943E0DF5CDB7 -:1056C000C394FF0C27E0C21206CE0F5F1F4F0A30B3 -:1056D000110509F0F6CD8FEF8DA78EA71FA60E94AA -:1056E000461B8160782F99AB88AB4DA55EA56FA551 -:1056F00089A90E94512510CE0E94461B9093120347 -:105700008093110360E080E00E949A080E94BF0E1F -:105710008093EE020E949C0E8823D1F02FB7F8945C -:105720008091460490914704A0914804B0914904A7 -:105730002FBF81339547A105B10540F00E94950D1B -:1057400080913E04882309F468CE5FCE0E94B00D9C -:105750000E949C0E882309F4D3C061E080E00E947F -:105760009A0860E08CE791E00E94881362E080E094 -:105770000E949A08809165040E94890C823009F485 -:1057800099C008F08EC0882309F494C0813009F4D0 -:1057900097C065E080E00E949A0860E08AE991E0A5 -:1057A0000E94881366E080E00E949A086091EE02F1 -:1057B000669561708FE991E00E94881367E080E050 -:1057C0000E949A086091EE026095617084EA91E00F -:1057D0000E94881368E080E00E949A086091EE02BF -:1057E00062FB662760F988EA91E00E948813409185 -:1057F000EA025091EB026091EC027091ED022FB73A -:10580000F8948091460490914704A0914804B09187 -:1058100049042FBF841B950BA60BB70B8D3291400B -:10582000A105B10508F48CCF0E9462086093EA02DA -:105830007093EB028093EC029093ED028091E90269 -:10584000811104C080916701811142C06DE080E048 -:105850000E949A0860E08DEA91E00E9488136AE055 -:1058600080E00E949A0881E0809367018091E802BD -:1058700090E00196817099278093E80221E030E062 -:10588000281B390B40E6429FC001439F900D112415 -:105890002091E702222351F1855C9B4F0E949206E2 -:1058A0004FCF833089F0843009F073CF60E08EE809 -:1058B00091E003C060E082E891E00E94881369CF24 -:1058C00060E088E891E0F9CF60E084E991E0F5CF0D -:1058D0006AE080E00E949A0860E08DEA91E00E9410 -:1058E00088136BE080E00E949A08C0CF2091E60206 -:1058F000222319F085589C4FD1CF85549D4FCECF90 -:1059000064E080E00E949A0860E083EB91E00E94EE -:10591000881365E080E00E949A0860E089EB91E0DE -:105920000E94881369E080E00E949A088BEF94E05F -:10593000B5CF8091100361E070E081116ECD082F2A -:1059400010E02B01082E02C0440C551C0A94E2F70B -:10595000A90144215521452B09F448C090910F031A -:1059600090FD46C08295880F807680936A019801E9 -:10597000369527953695279520936D01815E809306 -:105980006B0110926E0124E630E047E050E068E6DB -:1059900071E088E70E94B830892B09F03ECDA8015C -:1059A00065E0440F551F6A95E1F780910F0380FD74 -:1059B0002DC043595B4F04E610E020E230E060E484 -:1059C00088E70E94DF30892B09F027CD0E94B00DB7 -:1059D000C2018095909540906B0450906C044822D1 -:1059E000592250926C0440926B0417CD8F5FA7CF61 -:1059F000880F880F880F80936A0110926D01895F6C -:105A000080936B0183E080936E01BDCFEFEEF2E0F7 -:105A100080E2DF011D928A95E9F7E6E0F2E0FBAB58 -:105A2000EAAB02E012E037E0A32E99249394AAA9EE -:105A3000BBA92D91BBABAAABF80121908F01240E1D -:105A4000352E311CC10183599B4F1C01E22FF0E020 -:105A5000E151FD4F30E020E07A2C721AB92C022E71 -:105A600001C0BB0C0A94EAF7610190E0D6018D9168 -:105A70006D018B21672D691B6770862E062E000C29 -:105A8000770BB82F01C0BB0F8A94EAF78B2E719564 -:105A9000619571096770772701C086956A95EAF765 -:105AA000882A8081882A80829F5F9830F9F62F5F4C -:105AB0003F4F31962830310579F6EAE0F2E02AA925 -:105AC0003BA9E217F30709F0B2CF04E610E020E2A9 -:105AD00030E04FEE52E073CF45E00E94F80C209189 -:105AE000210330912203820F931F9093220380930E -:105AF000210345E0602F812F0E94F80C20911F03A5 -:105B000030912003281B390B3093200320931F036F -:105B10006FE173E08CE293E00E94D90C61E273E0E4 -:105B20008DE293E00E94D90C10922F0310922E0365 -:105B30001BCD0197909329038093280315CD84E111 -:105B400090E0F8CF809137038F5F809337030CCDBF -:105B500081E080FF0FC0E0914104F0914204309752 -:105B600049F082E0809319030480F581E02D89E1FA -:105B700093E0099510921B0310921C0310921D03D1 -:105B800010921E0386E0E9E1F3E0A3E1B3E00190A7 -:105B90000D928A95E1F70E94461B909336038093FD -:105BA00035030E94BF0E90913803891731F00E948F -:105BB000BF0E809338030E94561680915B04843098 -:105BC00009F06ACB83E08093E9008091E80082FFCE -:105BD00063CB8091E80090E085FF05C00E94F40649 -:105BE000882399F091E08091E8008B778093E8001A -:105BF000992309F451CBE981E150E33108F076C0F3 -:105C0000F0E0E855F94C0C94D43300E210E0CE01FA -:105C100001967C018091E80085FD0AC08091E80032 -:105C20008B778093E8000E94F406882399F3DACFFB -:105C30008091F100D7018D937D010150110951F739 -:105C4000D1CF1A8289E08B8311C08A81823009F416 -:105C50008FC1833091F1813009F048C00E94620801 -:105C60000E94DA336B837C838D839E8380915B04F7 -:105C7000843009F011CB1091E9001F709091EC0075 -:105C8000892F817090FD80E8182B82E08093E900D5 -:105C90008091E80080FF0DC050E040E060E270E0DD -:105CA000CE0101960E9425078091E8008E778093AF -:105CB000E8001F701093E900EFCADE011396E4E4D8 -:105CC000F3E081918D9323E0EE34F207D1F7CECF4C -:105CD0008A81823059F46B817C818D819E810E9402 -:105CE000DA3386E290E00E943634C0CF8FEF8983AA -:105CF000BDCF4C816B818A810E94301498278927FF -:105D000098279E838D83B2CFED80FE80FE24EF2402 -:105D1000FE248A810B813EE0039F800111249CE8D0 -:105D2000899F000D111D11248C8190E0880F991F0F -:105D3000080F191F6F2DC80187960E9436346E2DEB -:105D4000C8018896D0CF0E94B41390CF8A81813841 -:105D5000C1F060F4803809F089CF20E04B81609178 -:105D60006804809167040E94F01480CF8238E9F0C3 -:105D7000833809F07BCF20E0409169046C818B81EE -:105D8000F2CF60E08B810E9407168B81811103C0E6 -:105D90000E94E20F6BCF809166048160809366045D -:105DA00060E086950E94071661CF8B8180936A041C -:105DB0005DCF8A81813899F030F4803809F056CF70 -:105DC0008091690440CF823891F0833809F04ECF3A -:105DD000809167048B83809168048C8347CF809186 -:105DE000660480FF02C086952ECF80E02CCF809184 -:105DF0006A0429CF609166047091670480916804F9 -:105E0000909169040E94DE1431CF80E18A832ECF05 -:105E100081E08A838DE117CFCA80DB80DC24CD242A -:105E2000DC248E010F5F1F4FEC80E00EF12EF11C81 -:105E3000C6018D519D4F0E151F0509F417CFADE119 -:105E4000CA16A1E0DA0650F40E942234F8018483D5 -:105E5000BFEFCB1ADB0A0F5F1F4FEACFD8011496B2 -:105E60001C92F6CF0A811B81102701271027FE0103 -:105E700031966F01EC80E00EF12EF11CC8018D51BE -:105E80009D4FE016F10609F4F1CE0D31F1E01F0748 -:105E900028F4D60114966C910E943634BFEFCB1AC9 -:105EA000DB0A0F5F1F4FEACF0E94A413DFCE85E00D -:105EB000ADCFCA80DB80DC24CD24DC248E010F5FD3 -:105EC0001F4FEC80E00EF12EF11CC6018796E01604 -:105ED000F10609F4CBCEECEBCE16E2E0DE0658F488 -:105EE0000E942234D80114968C93FFEFCF1ADF0A58 -:105EF0000F5F1F4FEACFF8011482F7CF0A811B8191 -:105F00001027012710279E012F5F3F4F6901EC806A -:105F1000E00EF12EF11CC8018796E016F10609F497 -:105F2000A5CE0C3B32E0130728F4D60114966C91F1 -:105F30000E943634BFEFCB1ADB0A0F5F1F4FEBCF47 -:105F400009BD19BD09B400FEFDCF8091D8008F7D39 -:105F50008093D8008091E00082608093E00080917F -:105F6000E00081FDFCCF10924E040E94F70F89CB18 -:105F700086E290E00E9422341B821C821D828E8366 -:105F800075CE1092B9008CE08093B80008959F926E -:105F9000AF92BF92CF92DF92EF92FF920F931F9337 -:105FA000CF93DF93B82EEB010E94461B6C01EE24C9 -:105FB000E394F12CC431D10560F025E0E22EF12C00 -:105FC000CF3FDC0731F0CE0164E170E00E94813305 -:105FD0007B0184EAA82E94E8992E1092BC00A0922E -:105FE000BC000E94461B8C018091BC0087FF0DC045 -:105FF0008091B900887F883039F18091B900887F1D -:10600000803111F10FEF1FEF09C00E94461B801B6A -:10601000910B8E159F0540F30EEF1FEFCF3FDC076E -:10602000E1F2C6010E94371B8C179D07B0F2C80130 -:10603000DF91CF911F910F91FF90EF90DF90CF9064 -:10604000BF90AF909F900895B092BB009092BC001B -:106050000E94461B8C018091BC0087FF0AC0809182 -:10606000B900887F883111F0803461F610E000E0DB -:10607000DECF0E94461B801B910B8E159F0558F3A7 -:10608000CBCF0F931F93CF93DF93EB018093BB0094 -:1060900084E88093BC000E94461B8C018091BC0068 -:1060A00087FF11C02091B900287F81E090E028325D -:1060B00011F490E080E0919581959109DF91CF9165 -:1060C0001F910F910895CF3FDC0741F30E94461BBB -:1060D000801B910B8C179D0708F38EEF9FEFEECF7F -:1060E0000F931F93CF93DF93EC0184EC8093BC005C -:1060F0000E94461B8C018091BC0087FF08C08091E4 -:10610000BB0090E0DF91CF911F910F910895CF3F99 -:10611000DC0789F30E94461B801B910B8C179D079F -:1061200050F38EEF9FEFEECF0F931F93CF93DF933C -:10613000EC0184E88093BC000E94461B8C01809196 -:10614000BC0087FF08C08091BB0090E0DF91CF9139 -:106150001F910F910895CF3FDC0789F30E94461BE2 -:10616000801B910B8C179D0750F38EEF9FEFEECFA6 -:10617000CF92DF92EF92FF920F931F93CF93DF9313 -:106180006B018A017901B9010E94C72FE6010C0D4C -:106190001D1DC017D10761F424E92093BC00DF91D5 -:1061A000CF911F910F91FF90EF90DF90CF900895C6 -:1061B00097FDF2CFB70189910E944130EACFCF928B -:1061C000DF92EF92FF920F931F93CF93DF93C62F2F -:1061D0006A017901B8010E94C72F97FD0CC0B80170 -:1061E0008C2F0E944130E601EC0CFD1CCE15DF0522 -:1061F00011F097FF0CC024E92093BC00DF91CF91F0 -:106200001F910F91FF90EF90DF90CF900895B8010C -:1062100089910E944130EACFCF92DF92EF92FF92B4 -:106220000F931F93CF93DF93F82EE62EEA016901B7 -:10623000B8010E94C72F97FD15C0B8018E2D0E948E -:10624000413097FD0FC0B8018F2D81600E94C72F8C -:10625000F12CE12C21E0C21AD108EC14FD0400F568 -:1062600097FF11C024E92093BC001816190614F4F6 -:1062700090E080E0DF91CF911F910F91FF90EF9020 -:10628000DF90CF900895C8010E94703097FD04C040 -:10629000FE01EE0DFF1D80832FEFE21AF20ADDCF23 -:1062A00097FDE0CFC8010E94943097FDDBCFCC0D65 -:1062B000DD1D8883D7CF84E98093BC0008958EE1EB -:1062C0004A9B02C08150E1F74A9BFECF08955A983D -:1062D00080E28A95F1F75A9A0895FC013BE03A95DD -:1062E000F1F798E020E080E031E040E14A95F1F7F5 -:1062F000880F4A9B02C08160232742E04A95F1F74C -:10630000000040E14A95F1F7915079F790E19A95B4 -:10631000F1F799B132E03A95F1F7000040E14A9582 -:10632000F1F792FB992790F992272081920F9083A1 -:106330000895EF92FF920F931F93CF93DF930F92E5 -:10634000CDB7DEB719828C017C01E60EF11C0E156B -:106350001F0561F481E09981911180E00F90DF9138 -:10636000CF911F910F91FF90EF9008950E945F31A0 -:10637000CE0101960E946D31F80181938F01E7CF24 -:10638000529A5A9A089552985A9AEA9AE9E6F0E08F -:1063900080818F7C808308956150770B91E001C0EC -:1063A000990F6A95EAF720E031E0911108C02223A5 -:1063B00091F05A9A80E28A95F1F75A980895492FF8 -:1063C000482339F05A9A232740E24A95F1F79695E7 -:1063D000ECCF5A98F9CF5A98EDCFFF920F931F93B5 -:1063E000CF93DF93EC018C01060F111DC017D1076D -:1063F00031F4DF91CF911F910F91FF900895F990A3 -:106400000E94673168E08F2D0E94CC31EFCF1F9240 -:106410000F920FB60F921124EF92FF920F931F93DA -:106420002F933F934F935F936F937F938F939F939C -:10643000AF93BF93EF93FF93CF93DF930F92CDB7BB -:10644000DEB719820E945F31CE0101960E946D3144 -:10645000A82FA695A695A695282F229525709A2F48 -:106460009570290F922F937026952695920F982755 -:1064700097708981982B09F075C0A83008F072C018 -:1064800080E18A95F1F75A9A529AB2E0BA95F1F7FB -:1064900000C05A98EA2EF12CEAE0AE9FD0011124F8 -:1064A000AF5FBE4F1896ED91FC9119973097B1F000 -:1064B0006091F0017091F10116962D913C91179722 -:1064C000260F371F13968D919C911497680F791F93 -:1064D00015964C91159712968C9109958AE08E9D90 -:1064E000F0018F9DF00D1124EF5FFE4F6581662353 -:1064F00051F02091F0013091F10186819781820F56 -:10650000931F0E94ED310E946731F0E1FA95F1F797 -:106510005A9852985A9A80E18A95F1F78AE08E9DAE -:1065200080018F9D100D11240F5F1E4FD801129610 -:106530006C911297662371F12091F0013091F10175 -:1065400013968D919C91820F931F0E949931D801CF -:10655000ED91FC91882311F088E001C082E08083F6 -:106560000E945F310F90DF91CF91FF91EF91BF912A -:10657000AF919F918F917F916F915F914F913F91DB -:106580002F911F910F91FF90EF900F900FBE0F90E2 -:106590001F901895ED91FC91DFCF0F931F93CF9330 -:1065A000DF93EC0108970CF0A9C08AE08C9FF00102 -:1065B0008D9FF00D1124EF5FFE4F80819181892B1B -:1065C00009F49CC0F894529A5A9885E08A95F1F79C -:1065D00000008C2F869585709C2F9570890F982FC1 -:1065E000937086958695890F8E0193E0000F111F99 -:1065F0009A95E1F7082B0E94673100C068E0802F70 -:106600000E94CC31A0E1AA95F1F752985A9A4A9B80 -:1066100027C087E090E04A9925C08AE08C9F8001DE -:106620008D9F100D11240F5F1E4FF80165816623A9 -:10663000A1F12091F0013091F10186819781820FC3 -:10664000931F0E949931811128C0529A5A9AD801F9 -:10665000ED91FC9182E08083789482E090E016C016 -:1066600000C0D5CF0197B9F4529A5A9A8AE08C9F0C -:10667000F0018D9FF00D1124EF5FFE4F0190F0812E -:10668000E02D81E08083789481E090E0DF91CF91EC -:106690001F910F91089500C0BECF0E945F31B0E2FC -:1066A000BA95F1F75A98529AE0E1EA95F1F78AE043 -:1066B0008C9FF0018D9FF00D1124EF5FFE4F6281E2 -:1066C000662351F02091F0013091F1018381948192 -:1066D000820F931F0E94ED310E9467318AE08C9FE8 -:1066E000F0018D9FF00D1124EF5FFE4F0190F081BE -:1066F000E02D1082789490E080E0C8CF84E090E0B4 -:10670000C5CFAA1BBB1B51E107C0AA1FBB1FA61701 -:10671000B70710F0A61BB70B881F991F5A95A9F74A -:1067200080959095BC01CD010895991B79E004C036 -:10673000991F961708F0961B881F7A95C9F78095C0 -:10674000089597FB072E16F4009407D077FD09D023 -:106750000E94813307FC05D03EF4909581959F4FB0 -:106760000895709561957F4F0895052E97FB1EF44F -:1067700000940E94CC3357FD07D00E94E13307FC00 -:1067800003D04EF40C94CC33509540953095219520 -:106790003F4F4F4F5F4F089590958095709561954D -:1067A0007F4F8F4F9F4F0895EE0FFF1F0590F4917D -:1067B000E02D099469279627692778278727782766 -:1067C0000895A1E21A2EAA1BBB1BFD010DC0AA1F32 -:1067D000BB1FEE1FFF1FA217B307E407F50720F04A -:1067E000A21BB30BE40BF50B661F771F881F991FC5 -:1067F0001A9469F760957095809590959B01AC010E -:10680000BD01CF010895FB01DC0102C005900D928E -:1068100041505040D8F70895FB01DC0104C08D9130 -:106820000190801921F441505040C8F7881B990B02 -:106830000895FB01DC0102C001900D9241505040CF -:10684000D8F70895F999FECF92BD81BDF89A99279E -:1068500080B50895A6E1B0E044E050E00C945C34CB -:10686000A8E1B0E042E050E00C945C34262FF999A6 -:10687000FECF92BD81BDF89A019700B4021639F09F -:106880001FBA20BD0FB6F894FA9AF99A0FBE089570 -:106890000396272F0E9437340E943634252F0E94FA -:1068A0003734242F0C9437340196272F0E94373425 -:1068B0000C943634DC01CB01FC01F999FECF06C003 -:1068C000F2BDE1BDF89A319600B40D9241505040AE -:1068D000B8F708955058BB27AA270E9482340C9419 -:1068E000C3350E94B53538F00E94BC3520F039F42C -:1068F0009F3F19F426F40C94B2350EF4E095E7FBB3 -:106900000C948335E92F0E94D43558F3BA176207E7 -:1069100073078407950720F079F4A6F50C940E36DA -:106920000EF4E0950B2EBA2FA02D0B01B9019001AA -:106930000C01CA01A0011124FF27591B99F0593FEE -:1069400050F4503E68F11A16F040A22F232F342F36 -:106950004427585FF3CF469537952795A795F04084 -:106960005395C9F77EF41F16BA0B620B730B840B99 -:10697000BAF09150A1F0FF0FBB1F661F771F881F51 -:10698000C2F70EC0BA0F621F731F841F48F48795A9 -:1069900077956795B795F7959E3F08F0B0CF93959B -:1069A000880F08F09927EE0F9795879508950E9414 -:1069B000F63590F09F3748F4911116F40C940F3689 -:1069C00060E070E080E89FE3089526F01B16611DEB -:1069D000711D811D0C9489350C94A4350E945F357E -:1069E00008F481E008950E94DC3588F09F5798F004 -:1069F000B92F9927B751B0F0E1F0660F771F881FC4 -:106A0000991F1AF0BA95C9F714C0B13091F00E94DD -:106A10000E36B1E008950C940E36672F782F882734 -:106A2000B85F39F0B93FCCF3869577956795B39504 -:106A3000D9F73EF490958095709561957F4F8F4F73 -:106A40009F4F0895E89409C097FB3EF49095809578 -:106A5000709561957F4F8F4F9F4F9923A9F0F92F24 -:106A600096E9BB279395F695879577956795B795A2 -:106A7000F111F8CFFAF4BB0F11F460FF1BC06F5F88 -:106A80007F4F8F4F9F4F16C0882311F096E911C09A -:106A9000772321F09EE8872F762F05C0662371F0BB -:106AA00096E8862F70E060E02AF09A95660F771FCF -:106AB000881FDAF7880F9695879597F90895990FAB -:106AC0000008550FAA0BE0E8FEEF16161706E807B8 -:106AD000F907C0F012161306E407F50798F0621BD9 -:106AE000730B840B950B39F40A2661F0232B242BAE -:106AF000252B21F408950A2609F4A140A6958FEFCD -:106B0000811D811D089597F99F6780E870E060E01E -:106B10000895882371F4772321F09850872B762FDE -:106B200007C0662311F499270DC09051862B70E0A1 -:106B300060E02AF09A95660F771F881FDAF7880FB2 -:106B40009695879597F908959F3F31F0915020F4DD -:106B5000879577956795B795880F911D9695879539 -:106B600097F908959FEF80EC089500240A94161673 -:106B7000170618060906089500240A94121613062B -:106B8000140605060895092E0394000C11F48823B9 -:106B900052F0BB0F40F4BF2B11F460FF04C06F5FD5 -:106BA0007F4F8F4F9F4F089557FD9058440F551FAB -:106BB00059F05F3F71F04795880F97FB991F61F07F -:106BC0009F3F79F087950895121613061406551FF6 -:106BD000F2CF4695F1DF08C0161617061806991F62 -:106BE000F1CF869571056105089408950E94DC3502 -:106BF000A0F0BEE7B91788F4BB279F3860F41616DB -:106C0000B11D672F782F8827985FF7CF86957795E6 -:106C10006795B11D93959639C8F30895E894BB27FD -:106C200066277727CB0197F908950E9428360C94A0 -:106C3000C3350E94B53538F00E94BC3520F095234D -:106C400011F00C9483350C94B23511240C940F364A -:106C50000E94D43570F3959FC1F3950F50E0551FF6 -:106C6000629FF001729FBB27F00DB11D639FAA27A1 -:106C7000F00DB11DAA1F649F6627B00DA11D661FF0 -:106C8000829F2227B00DA11D621F739FB00DA11D11 -:106C9000621F839FA00D611D221F749F3327A00DCB -:106CA000611D231F849F600D211D822F762F6A2F67 -:106CB00011249F5750409AF0F1F088234AF0EE0FCC -:106CC000FF1FBB1F661F771F881F91505040A9F7F9 -:106CD0009E3F510580F00C9483350C940F365F3F36 -:106CE000E4F3983ED4F3869577956795B795F79535 -:106CF000E7959F5FC1F7FE2B880F911D96958795AD -:106D000097F90895F894FFCFE7100F1162110F1152 -:106D1000621142117A11621177128412B014B01408 -:106D2000B914B914BB14B914B914B914B014B0140B -:106D3000C014B914B914C014C021C02119221922D9 -:106D40004B22F321F321F3216522D622E622E6220B -:106D5000212E252E682E792E842EA32EA62ED92EF6 -:106D6000FA2E762E762E052F082F0C2F322F542F29 -:066D7000572F592F7E2F62 -:106D760001300200000001000000003002000000A7 -:106D8600050100000030020000000106000000308E -:106D960002000000010700000030020408000000A5 -:106DA6000000003002090C00000000000030020163 -:106DB6001500000000000036323331F7F66766979B -:106DC600C6343500000000000180005F082B0E0A63 -:106DD6000E060E020EF4F5010021007F22000300CC -:106DE6004A004A4A01F6F731333236674C41594573 -:106DF600520042617365200047616D652000526153 -:106E0600697365004C6F776572004C4F434B0043C6 -:106E1600617073004E756D005363726C0020202004 -:106E2600202000534F4C415200544D505354008182 -:106E36008283E200E900EA00B500B600B700CD00A3 -:106E46008301CC008A0192019401210223022402CB -:106E56002502260227022A02B300B4006F00700042 -:106E6600A80200FF0100010000FFFF000001000171 -:106E7600FF000008101818100800000102020202A4 -:106E860002020202020240227B99017701FC000005 -:066E96000C190C390C0080 +:103670004FB7F8948091510490915204A091530453 +:10368000B09154044FBF821B930B08952FB7F89449 +:103690008091510490915204A0915304B09154042C +:1036A0002FBF08955F926F927F928F929F92AF92F9 +:1036B000BF92CF92DF92EF92FF920F931F93CF931F +:1036C000DF9300D000D00F92CDB7DEB76C01FC01C4 +:1036D00083819481892B31F08081918189238F3F6F +:1036E00009F05EC50F900F900F900F900F90DF9133 +:1036F000CF911F910F91FF90EF90DF90CF90BF90EF +:10370000AF909F908F907F906F905F9008950E94F0 +:103710006314182F682F89819A810E94890B69810F +:103720007A81812F0E9456148C01F60182818823B0 +:1037300009F42BC5C80182519F45409708F0EEC49B +:103740008FEF93E00E942133025193EEA92E92E075 +:10375000B92E8111C7CF01113AC01C821B82662489 +:1037600063948AE0582E85010F5F1F4FC5010E94A8 +:10377000213389831A82882309F4B4CF9FEF980FED +:103780009330A0F58A83698232E0A30EB11CC80190 +:103790000E9421338B83882309F4A4CF8E010F5F0D +:1037A0001F4FF80120812223F1F2213009F058C087 +:1037B000918182819130E1F40E5F1F4F6AE070E0E9 +:1037C000893311F460E570E00E94CF0E17C0A11498 +:1037D000F4E0BF0609F486CFC5010E9421338111B0 +:1037E00001C001502FEFA21AB20AB5CF5801D6CFAF +:1037F000923039F40E5F1F4F0E94150C0F5F1F4F60 +:10380000D0CF933029F40E5F1F4F0E94DC0BF6CF10 +:10381000943019F00F5F1F4FF1CF0E5F1F4F30E054 +:1038200020E0B8016F5F7F4FF80141818053990B11 +:103830008A30910550F02150310900F38FE99FE063 +:103840000197F1F700C00000F6CF529EF001539EA1 +:10385000F00D11249C012E0F3F1F842F8B01E1CF0F +:10386000E22FF0E0E75FFD4F7490822F86958695FA +:10387000869590E0FC01E750FE4FE4902770F12C14 +:10388000022E02C0F594E7940A94E2F7E1E0EE22FA +:10389000FF24FC01E751FE4FC490D12C022E02C040 +:1038A000D594C7940A94E2F7F1E0CF22DD24FC011D +:1038B000E752FE4F8490912C02C0959487942A95EC +:1038C000E2F721E082229924E114F10419F081EE5B +:1038D0000E94150CC114D10419F086EE0E94150C3B +:1038E00039E36AE070E0731202C060E570E0872D92 +:1038F0000E94CF0ECD2819F086EE0E94DC0BEF2837 +:1039000019F081EE0E94DC0B892809F477CF6AE078 +:1039100070E08CE259CF81E00E94281703C081E05B +:103920000E941C170F900F900F900F900F90DF9137 +:10393000CF911F910F91FF90EF90DF90CF90BF90AC +:10394000AF909F908F907F906F905F900C94111725 +:1039500082E0E2CF043F110509F455C108F057C1D8 +:10396000053E110509F4DDC0F601928191113CC2BA +:103970008091590482720A3CFCE51F0709F414C2C5 +:1039800008F06AC1053C3CE5130709F4F9C108F0E9 +:103990004EC1033C5CE5150709F4D3C108F0EBC147 +:1039A000023C1C4509F47DC1F60100811181992377 +:1039B00009F434C2C8010E946314F82E682FC801AC +:1039C0000E94890BB8018F2D0E9456140E94D609BF +:1039D000182FB82EF60122814581342F32953F7081 +:1039E000892F82958F70E82EF12C8C3008F04EC212 +:1039F000F701E955FB4C0C94F5320338FFE51F073E +:103A000009F481C018F501383FE5130709F44AC0ED +:103A100008F065C000385FE5150709F0A5CF8823D9 +:103A200009F459C080919C02811106C081E0809305 +:103A30009C0282EE0E94150C0E94461B90939B02F2 +:103A400080939A028BE20E94150C8ECF05389FE579 +:103A5000190709F4BEC008F476C00638FFE51F0751 +:103A600009F082CF882309F4CEC06091590170918A +:103A70005A0190E080E00E946E3320E030E040E0A8 +:103A80005CE30E94CF3320E030E040E85FE30E9437 +:103A900069338111B5C080EE90E090935A01809314 +:103AA0005901A1C08823A1F080919C02811106C018 +:103AB00081E080939C0282EE0E94150C0E94461BBE +:103AC00090939B0280939A0281EE0E94150CBACFCC +:103AD00081EE0E94DC0B8BE20E94DC0B45CF882339 +:103AE00009F442CF81EE0E94150C83EE0E94150C62 +:103AF0008FE40E94150C8FE40E94DC0B83EE0E9481 +:103B0000DC0B81EEE9CF882309F42ECF81EE0E94F1 +:103B1000150C83EE0E94150C80E50E94150C80E5C3 +:103B2000EBCF80933C0210933B0200933A02882330 +:103B300021F081E08093EE0217CF1092EE0214CFB5 +:103B400080933902F0CF882379F18091390288235C +:103B500049F080913A020E94DC0B80EE0E94150C25 +:103B60008AE20CC080913C028823D1F380913A0212 +:103B70000E94DC0B80EE0E94150C8CE40F900F90DD +:103B80000F900F900F90DF91CF911F910F91FF90A9 +:103B9000EF90DF90CF90BF90AF909F908F907F90ED +:103BA0006F905F900C94150C8AE20E94DC0B8CE401 +:103BB0000E94DC0B80EE0E94DC0B809139028111A7 +:103BC00005C080913C02882309F48CCD80913A0293 +:103BD000D5CF8823C1F080913203882339F0109229 +:103BE0003203109200010E943E0DBECE8091000172 +:103BF0008111F7CF81E08093320380930001F3CFEE +:103C000080E890E04ACF61E00E949A0CADCE62E07D +:103C1000FBCF64E0F9CF882321F081E08093ED02AF +:103C2000A3CE1092ED02A0CE1092F0029DCE073CE2 +:103C30002CE5120709F4AEC008F4A7C0083C4CE517 +:103C4000140709F4ACC0093C1C4509F0ADCE43EAA9 +:103C500055E16FEA75E179C0043DECE51E07A8F473 +:103C60000E3CFCE51F0708F03DCD0C3C2CE512078F +:103C700009F49FC045EE55E166EF75E10D3C1C452A +:103C800008F463C061E081E046C0053D4CE51407DF +:103C900009F428CD08F492C00D351D4509F422CD54 +:103CA00083CE8091710480FF31C08E7F8093710438 +:103CB0006091710470917204809173049091740406 +:103CC0000E94DE1480915B03816080935B039FEF11 +:103CD000E0E7F2E09150E040F040E1F700C0000082 +:103CE0000F900F900F900F900F90DF91CF911F9139 +:103CF0000F91FF90EF90DF90CF90BF90AF909F908B +:103D00008F907F906F905F900C94E40E8160809311 +:103D1000710461E086950F900F900F900F900F90B7 +:103D2000DF91CF911F910F91FF90EF90DF90CF9097 +:103D3000BF90AF909F908F907F906F905F900C940A +:103D4000071643E357E16CE377E10F900F900F9074 +:103D50000F900F90DF91CF911F910F91FF90EF90F7 +:103D6000DF90CF90BF90AF909F908F907F906F909B +:103D70005F900C94C7084CE357E163E377E1E5CF2C +:103D800043ED55E16CED75E1E0CF4CED55E163EDB0 +:103D900075E1DBCF4BEB55E167EC75E1D6CF47EC36 +:103DA00055E16BEB75E1D1CF4FEA55E163EA75E17F +:103DB000CCCF46EF55E165EE75E1C7CF0F900F9080 +:103DC0000F900F900F90DF91CF911F910F91FF9067 +:103DD000EF90DF90CF90BF90AF909F908F907F90AB +:103DE0006F905F900C9446170E3D1C4509F0DCCD9A +:103DF0000F900F900F900F900F90DF91CF911F9128 +:103E00000F91FF90EF90DF90CF90BF90AF909F9079 +:103E10008F907F906F905F900C946D17C8010E94F7 +:103E2000610BF82ECFCD092F0F70907F11F0029506 +:103E3000007F812F2223C9F0002369F090E2910FC7 +:103E4000983010F011110BC080915904082B009389 +:103E500059040E94400B812F0E94150C17C08091BD +:103E60009102082B00939102F4CF0E94DC0B0023F7 +:103E700069F00095105E183010F0B11027C08091E5 +:103E800059040823009359040E94400B98E0E91A52 +:103E9000F108E4E0EE16F10408F024CC0E94BF0E15 +:103EA0000F900F900F900F900F90DF91CF911F9177 +:103EB0000F91FF90EF90DF90CF90BF90AF909F90C9 +:103EC0008F907F906F905F900C9456168091910226 +:103ED000082300939102D8CF892F8F70907F903262 +:103EE00011F08295807FF1E0BF120CC0222329F0EF +:103EF000333060F60E94D20BC9CF323038F60E94C0 +:103F0000C70BC4CF222341F03323A1F340FFA3CF3B +:103F10004F70F6014583EECF332389F3193309F04F +:103F2000F5C0FFEF27EE33E0F15020403040E1F7DD +:103F300000C00000812F0E94DC0BA8CF892F86953E +:103F40008695837061F0813009F0A0CF812F937046 +:103F5000211102C090E080E00E946E0897CF812F6F +:103F60009370211102C090E080E00E9484088ECFFF +:103F7000892F8370A1F5211189CF812F8295869594 +:103F80008770880F880F412F4F70082E01C0440F93 +:103F90000A94EAF7212F207114FF07C02FE030E0C8 +:103FA00001C0220F8A95EAF7209596959695937011 +:103FB000923081F0822F842B933030F480919202E2 +:103FC000913029F0242B82230E94C30B5FCF842BD6 +:103FD000822BFACF242B809192028227F5CF8695EF +:103FE000222311F0892F8170882309F44FCF812F6C +:103FF000829586958770880F880F412F4F70082E05 +:1040000001C0440F0A94EAF7212F207114FF07C062 +:104010002FE030E001C0220F8A95EAF720959695AF +:1040200096959370923081F0822F842B933030F4E8 +:1040300080917004913029F0242B82230E940B1769 +:1040400025CF842B822BFACF242B809170048227DA +:10405000F5CF092F0F70222329F0802F0E942817F7 +:10406000812F48CF812F0E94C70B802F0E941C17E1 +:104070000DCF812FE1EF1E1789F1E11750F0F0EF1E +:104080001F17B9F02223B1F13111E5CE892F8F71BD +:1040900029C042EF141749F153EF1513F3CF80E015 +:1040A000222361F29F7181E001C0880F9A95EAF79F +:1040B000C5CF222379F0323008F0E8CE292F2F71B6 +:1040C00081E090E001C0880F2A95EAF79091700492 +:1040D0008927B4CF333008F0D9CEF0CF892F8F7134 +:1040E000222321F20E942817D1CE892F8F712223FB +:1040F000C9F3BCCF332379F0893341F48FEF97EEC6 +:10410000E3E081509040E040E1F712CF8FE39CE97B +:104110000197F1F70DCF892F8F71A8CF0031FFE5FF +:104120001F0709F4F8CB01312FE5120709F410CC71 +:104130000E9462086093F5027093F6028093F70282 +:104140009093F802F6018281063F110509F461CDD2 +:1041500008F053CC043E110509F45DCD08F0FACB0C +:10416000003E110509F457CD013E110509F4E8CCD4 +:104170000C32110509F0F8CB882309F455CD81E004 +:104180008093F00210926701EFCB00313FE51307F7 +:1041900009F4C5CB01314FE51407A1F682E0C0CB8D +:1041A00085E0DE01119601900D928A95E1F7F60106 +:1041B000228189819A812111AACA0E94610B182F3C +:1041C000AECA1F93CF93DF9380915D02807FA9F4E5 +:1041D00080915A02882389F080918F02D0915E02EB +:1041E0006091580270915902A0915B02B0915C02FB +:1041F000C62FC72316E0D81304C0DF91CF911F91BB +:10420000089590E0109711F0CF3F19F40196877050 +:10421000F2CF189F9001199F300D1124F901E15A36 +:10422000FD4F41814713F2CF40814613EFCF4281CA +:104230004111ECCF438154814A1B5B0B403A51053D +:1042400028F780915D028F70806180935D02F90193 +:10425000EC59FD4F80818F708061808388E592E00A +:104260000E94521BDF91CF911F910C94570BAF927C +:10427000BF92CF92DF92EF92FF920F931F93CF9353 +:10428000DF93CDB7DEB761970FB6F894DEBF0FBEF0 +:10429000CDBF8C0185E0F801DE011D9601900D92E5 +:1042A0008A95E1F7F801E28088E5A82E82E0B82E31 +:1042B00060915B0270915C026115710509F432C175 +:1042C0009091580240915902892F84238F3F09F41D +:1042D00029C120813181C380D480F0905A02F60137 +:1042E000E61BF70BFF2009F4E8C080915D02582F10 +:1042F000507FE03AF10508F0ABC0511177C0FE2CB9 +:10430000431321C092131FC0E1101DC08F70806144 +:1043100080935D02C5010E94521B80915D02F801ED +:1043200085838F2D61960FB6F894DEBF0FBECDBF8B +:10433000DF91CF911F910F91FF90EF90DF90CF9081 +:10434000BF90AF900895CD2829F0822F83238F3F0F +:1043500009F003C180E0F82FF170DF2E80FF3CC030 +:1043600080918F0240915E0256E0841315C02D8724 +:104370003E878D859E850E949214292F22952F704D +:104380002230F0F0243018F59F70F1F0F80195819B +:10439000907FD1F4D12C1EC090E0589FF001599F1E +:1043A000F00D1124E15AFD4F6181361306C0608182 +:1043B000261303C06281E6120FC001968770D5CF25 +:1043C0009F7011F0882331F3805E883018F3C801A4 +:1043D0000E94521BFD2CA5CFEE2009F4A2CF8091A4 +:1043E0005D02816080935D02F12C9BCF431306C078 +:1043F000921304C0F801EE2009F479C0C8010E94AC +:104400009E14882309F1EE20F9F080915D0280323C +:1044100070F0209158023091590238872F83198605 +:10442000DB86CA868C87CE0107960E94521B86E0E7 +:10443000F801A8E5B2E001900D928A95E1F70E949B +:10444000E120FF24F3946DCFC8010E94521BF9CFE5 +:1044500051110AC088E592E00E94521B86E0F501E6 +:1044600011928A95E9F7C0CF43130FC092130DC084 +:10447000E1100BC0F8018583C8010E94521B86E041 +:10448000F50111928A95E9F74CCFC8010E949E145C +:104490008823D1F2EE20C1F280915D02803238F2A1 +:1044A00020915802309159023A8329831B82DD8280 +:1044B000CC828E83CE010196B8CFE03AF105F8F6B2 +:1044C000FE2CEE2009F243131FC092131DC08091F1 +:1044D0005D0280FD10C0982F907F69F0F801858300 +:1044E000903F31F0982F907F905F8F70892B85835C +:1044F000C8010E94521B86E0F801A8E5B2E00190D5 +:104500000D928A95E1F70DCFC8010E949E1481118A +:104510008ECF80915D02816080935D02C8010E9410 +:10452000521BFFCEEE2009F48FCFC8010E949E14CB +:10453000F82E882309F488CF86E0F801A8E5B2E0D8 +:1045400001900D928A95E1F780915802909159025D +:104550000E9492140E94E120E4CE81E08E25FBCEE1 +:104560001F93CF93DF93CDB7DEB767970FB6F8945D +:10457000DEBF0FBECDBF4B8B5C8B6D8B7E8B8F8B6D +:104580006111109291021A8A198A85E0FE017396D0 +:10459000DE011D9601900D928A95E1F786E0FE01FD +:1045A0003D96DE01179601900D928A95E1F7CE01B6 +:1045B00007960E943721882389F016E080918F02A8 +:1045C00090915E0289134BC067960FB6F894DEBFD8 +:1045D0000FBECDBFDF91CF911F91089586E0FE0100 +:1045E0003796DE01119601900D928A95E1F78A8542 +:1045F0009B85892B11F38F81988589238F3FE9F261 +:1046000020915E0230E0C9010196877099274091A0 +:104610008F024817190681F4109259040E94F70F6F +:1046200010925E0210928F0286E0E8E5F2E0DF0170 +:104630001D928A95E9F7C1CF96E0929FD001939F92 +:10464000B00D1124A15ABD4FFE01319601900D927B +:104650009A95E1F780935E020E94570BAECF819F3F +:10466000C0011124815A9D4F0E943721882309F4EB +:10467000ABCF80918F0290E001968770992780934D +:104680008F029CCF9F92AF92BF92CF92DF92EF9218 +:10469000FF920F931F93CF93DF93CDB7DEB764974D +:1046A0000FB6F894DEBF0FBECDBF8E010F5F1F4F58 +:1046B0008AE0D8011D928A95E9F79EE4C92E91E01F +:1046C000D92EF12CE12CAA24A394B12CF6018191CE +:1046D0006F018F3F09F44AC0F894E82FE295EF701C +:1046E000F0E021A18F70A50102C0440F551F8A95EB +:1046F000E2F7CA01922F982B91A392A1809589236A +:1047000082A30E947A0900C0E7E4F1E030E020E0F3 +:10471000912C41914F3F09F47DC0A42FA295AF7019 +:10472000B0E090968C9190E04F7002C0959587957F +:104730004A95E2F780FD6EC08A2D022E01C0880FD7 +:104740000A94EAF7982A2F5F3F4F2730310509F77F +:10475000F601319780818F3F11F00E947C0950EA69 +:104760005A95F1F7F801EE0DFF1D90828FEFE81AD0 +:10477000F80A95E0E916F10409F0A8CF4AE050E004 +:10478000B80188ED92E00E940B337C01892B41F047 +:104790008AE0F801A8EDB2E001900D928A95E1F768 +:1047A0001091E302E114F104B9F181E080939502E4 +:1047B0000E94461B909394028093930280919302EF +:1047C000909194020E94371B069770F0A8EDB2E01A +:1047D000E12FF0E0E15BFC4F8D91819322E0AD3D54 +:1047E000B207D1F71092950281E090E0EF28C1F076 +:1047F00064960FB6F894DEBF0FBECDBFDF91CF91A8 +:104800001F910F91FF90EF90DF90CF90BF90AF90EE +:104810009F90089580E096CF809195028111CECF30 +:104820000E949C0EB82EE091E302882309F4C7C0D1 +:104830008E01005F1F4F85E0D8011D928A95E9F730 +:10484000F0E09F01215B3C4F79018091D102AE01E4 +:104850004B5E5F4F6A018A3008F086C040EB59E139 +:10486000B801C7010E94580E882309F494C043EB95 +:1048700055E2B801C7010E94580E882309F48BC085 +:1048800047ED57E1B801C7010E94580E882309F48B +:1048900082C043EC58E1B801C7010E94580E88233A +:1048A00009F479C041EA58E1B801C7010E94580EE5 +:1048B000882309F470C01092D102E091E202F0E086 +:1048C000AF01415B5C4FD80110E0FA019191AF015B +:1048D0008D91981731F09F0121503109F9018083A2 +:1048E0001B2DCA16DB0689F780919C02882371F084 +:1048F00080919A0290919B020E94371B893E9340BF +:1049000028F082EE0E94DC0B10929C0288E9C82EEF +:1049100082E0D82EF12CE12CD6018D916D018823F7 +:10492000D1F08695F70109F447C0EC50FE4F808125 +:1049300091819C878B871D860E94461B8160782F02 +:104940009F878E87F601319710824B855C856D8538 +:104950008F850E94B022B2E0EB0EF11CE4E0EE166F +:10496000F104D1F6812F44CF809196029091970265 +:104970000E94371B843F914008F070CFA091E20263 +:10498000B0E0A15BBC4FF8011D921192CE16DF067C +:10499000D9F71B2DA9CF8091D1028F3F31F08F5FC6 +:1049A0008093D1028A3008F488CF0E94461B9093EE +:1049B000970280939602E2CFE051FE4FB8CFF0E02D +:1049C000E15BFC4FF89485E0A0EBB2E001900D9222 +:1049D0008A95E1F765E070E080EB92E00E94B10813 +:1049E0008093AF020E947A09F894E091EB02F0E024 +:1049F000E851FD4F80818B878093B60261E070E0C3 +:104A0000CE010B960E94B1088093B5020E947A09EC +:104A1000F894C090B702D090B802E090B902F0903C +:104A2000BA0280919D0290919E02A0919F02B09146 +:104A3000A002C816D906EA06FB06D1F0C0929D0274 +:104A4000D0929E02E0929F02F092A0020E949C0EE1 +:104A500081110EC00E946208C61AD70AE80AF90A34 +:104A6000C092D202D092D302E092D402F092D50248 +:104A70000E947A09F8948091C202882321F184FF70 +:104A800004C09091C30290935C0380FF0DC080919D +:104A9000BB0280FF25C090917104916090937104D6 +:104AA00060E086950E9407168091C20281FF09C0CE +:104AB00020E04091BE026091BD028091BC020E9444 +:104AC000F0141092C2020E947A09F8948091C402F4 +:104AD000882349F00E94B00D0E947A0980E088CEB8 +:104AE0000E94E20FE1CF0E94950DF6CFEF92FF9268 +:104AF0000F931F93CF93DF9300D000D00F92CDB7C9 +:104B0000DEB7162FE82EF12CC701880F991F6623F8 +:104B100039F18C509E4FFC01808191819A83898369 +:104B200001E00B830E94461B8160782F9D838C835C +:104B3000F701E856FD4F0127110F102B1083498113 +:104B40005A816B818D810F900F900F900F900F9075 +:104B5000DF91CF911F910F91FF90EF900C94B022B5 +:104B600080519E4FD8CFCF92DF92EF92FF920F935A +:104B70001F93CF93DF930F92CDB7DEB7EE24E3946C +:104B8000F12C06EB12E09E012F5F3F4F4BEA52E003 +:104B900063E082E00E940119082F882321F1C09070 +:104BA000E5028C2D90E09C0128513D4F790119813F +:104BB000F9018081181BD12E80E00AC0DA94F70138 +:104BC00080818F5F808360E08C2D0E947625802F0E +:104BD0001D14A4F3912F17FD90E0191B11110EC0A5 +:104BE00081110E943E0B802F0F90DF91CF911F917A +:104BF0000F91FF90EF90DF90CF9008951F5FF70126 +:104C000080818150808361E08C2D0E947625802FE9 +:104C1000E5CF1F921FB61F9211248F939F93AF93DE +:104C2000BF9380915004811113C0809151049091E1 +:104C30005204A0915304B09154044196A11DB11D9A +:104C40008093510490935204A0935304B09354045E +:104C5000BF91AF919F918F911F901FBE1F9018958C +:104C6000CDB7DEB7E3970FB6F894DEBF0FBECDBF6A +:104C700084B7877F84BF0FB6F894A89580916000B1 +:104C8000886180936000109260000FBE80E890E021 +:104C90000FB6F89480936100909361000FBE85B7C2 +:104CA000806885BF85B7806885BF88E799E0909365 +:104CB0002F0280932E020E94D5060E94A0078091A9 +:104CC000E20084608093E2007894809166048823F7 +:104CD000A1F01091E9001F709091EC00892F817074 +:104CE00090FD80E8182B1092E9008091E80083FD88 +:104CF0000E9400101F701093E90082E084BD93E0D1 +:104D000095BD9AEF97BD80936E001092D2021092DB +:104D1000D3021092D4021092D5020E94C5148111C0 +:104D200002C00E9421140E949C0E80935801809121 +:104D30005801882309F4C6C010926F0185E2809360 +:104D400070010E949C0E81110E94003180915801D7 +:104D500081112FC0FE01359686E0DF011D928A95F4 +:104D6000E9F786E6898387E98A8386EC8B8384E387 +:104D70008C8385E38D833497AEE4B1E0CE010B964E +:104D800021912D938E179F07D9F787E0E5E7F1E092 +:104D9000DE01919601900D928A95E1F7FE01B196A0 +:104DA000A7E4B1E0CE01889621912D938E179F073D +:104DB000D9F78091580195E0811190E09093E3023A +:104DC00085E0891B8093E2020EE411E0A3E5EA2E60 +:104DD000A1E0FA2EF80181918F018F3F11F00E941E +:104DE0007C09E016F106B1F707E411E0FEE4EF2ECE +:104DF000F1E0FF2ED8018D918D018F3F11F00E94BF +:104E00007C09E016F106B1F7E8EDF2E082EE92E0FF +:104E1000AFE4B3E011921D928E179F07D9F70E945D +:104E2000ED19811102C00E946D1782E090E00E948E +:104E300021338093440384E090E00E942133182FB3 +:104E400082E290E00E942133982F812F9093D70225 +:104E50008093D6020E944223EFE7FBEB3197F1F7F4 +:104E600000C000000E94422380914F0380FF2EC0AB +:104E70006FEF7FEF90E080E00E94533381E08093FA +:104E8000E00080E28093D8001092C9008FE19EE498 +:104E90000197F1F700C0000087E090EBDC01809300 +:104EA0007A0690937B06A0937C06B0937D0688E1FA +:104EB0009CE00FB6F894A895809360000FBE909385 +:104EC0006000FFCF85E280936F0139CF83E090E0EF +:104ED0000E9421330E94C30B809170040E946E16C1 +:104EE0000E949C0E811102C00E94033183E08093D6 +:104EF0001A0380E280933D040E94012F6DE070E070 +:104F00008CE992E00E94650D892BE9F580911A03E6 +:104F100063E070E081FD97C289E992E00E94650D2F +:104F2000892B89F56DE070E089E892E00E94650DBB +:104F3000892B49F50E9462086058774C8E4F9F4F2D +:104F4000609344047093450480934604909347040F +:104F5000E8E7F4E080E092E0DF019C011D9221503F +:104F60003040E1F7F0937906E09378068FEF9FEFFA +:104F7000909377048093760481E080934904809332 +:104F8000480410921B038091E402811136C00E94F4 +:104F9000ED19811104C00E946D170E94551788E019 +:104FA00090E00E942933609371047093720480939F +:104FB00073049093740480915B03836080935B031C +:104FC0006E7F71F40E94551788E090E00E942933AB +:104FD00060937104709372048093730490937404CB +:104FE0000E94CC088091710480FF04C060E0869527 +:104FF0000E94071681E08093E4028091580181119C +:1050000006C084EF8093660185EF8093650120914F +:105010006601A22FA295AF70B0E091963C91919756 +:105020002F7081E090E0BC01022E01C0660F0A944F +:10503000EAF7462F4095432391964C939197929689 +:105040003C919297362B92963C93929740916501B2 +:10505000E42FE295EF70F0E031A14F70042E01C013 +:10506000880F0A94EAF7982F9095932391A392A121 +:10507000892B82A390968C9190E002C0959587959C +:105080002A95E2F7817020A130E002C0359527957E +:105090004A95E2F792E020FF90E0892B8093EC02A2 +:1050A0008091580111E081278093EB02312F381B4A +:1050B0003093E5020E94012F40E060E080E00E9412 +:1050C0001E0D89EA92E090935E0380935D0360E099 +:1050D0008AE00E94071681E00E940B1780EE90E0A4 +:1050E00090935A0180935901109332030E943E0D10 +:1050F0008BE591E090934D0480934C04E0E46E2E98 +:1051000080916604FF24F39400E112E1853009F4F4 +:10511000ECC10E944223E82E81110E946208E5E45E +:10512000F3E0AFE4B3E010E000E0B02EDD90819159 +:105130008D1509F4FEC18D25C12CFF24F394982F01 +:105140009F2109F4F1C10E949C0E882399F0C8A602 +:10515000B9A6DF2081E009F480E08AA70E94461BFF +:105160008160782F9CA78BA748A559A56AA58CA517 +:105170000E94B022F801EB5BFC4F8081F826F082A0 +:105180008091EC02E82FEE0FEE0F90916601A92FAF +:10519000A295AF70B0E090962C9130E09F7002C065 +:1051A000359527959A95E2F72170332790916501FF +:1051B000A92FA295AF70B0E090964C9150E09F70EF +:1051C00002C0559547959A95E2F7CA0181709927D3 +:1051D00040FF02C082E090E0822B8E2B8093EC0295 +:1051E0001091EB028F70E82FF0E0E650FE4F8081C7 +:1051F0009091EA02890F8093EA02F12C84306CF0DE +:10520000E12FF0E0E851FD4F80818F5F808360E007 +:10521000812F0E947625FF24F3948091EA028D3F2E +:105220006CF4E12FF0E0E851FD4F808181508083E4 +:1052300061E0812F0E947625FF24F3948091EA0299 +:10524000082E000C990B64E070E00E94E13280931C +:10525000EA02F1100E943E0B80914904882351F12B +:1052600080911C0390911D030E94371BC29708F088 +:1052700077C120917604309177042115310509F02A +:1052800098C2809148048823A9F00E946208009186 +:105290004404109145042091460430914704601B5A +:1052A000710B820B930B6F3F7F4F8F4F9F4710F413 +:1052B0000E94950DE11001C0F1100E94B00D809187 +:1052C00042038A3008F0ADC38091400390914103BE +:1052D0000E94371B069708F4A4C304E610E025E0FB +:1052E00030E04BE353E064E084E10E944C30892BD2 +:1052F00009F068C31092420320913203222359F02F +:1053000080913D0390913E03982789279827909399 +:105310003E0380933D0386E0E4E2F3E0DE019196F4 +:1053200001900D928A95E1F786E0FE01B196DE01CB +:10533000119601900D928A95E1F786E0FE01319673 +:10534000A5E3B3E001900D928A95E1F780913F03C8 +:1053500087FD35C38091330390913403009709F0A2 +:1053600028C360913B0380913C0300913D03109161 +:105370003E03222309F4F0C241E00E94F80C209180 +:10538000300330913103281B390B309331032093C4 +:10539000300341E0602F812F0E94F80C20912E03F2 +:1053A00030912F03820F931F90932F0380932E032E +:1053B0006EE273E08AE393E00E94D90C60E373E04D +:1053C00089E393E00E94D90C1092370310923803BE +:1053D00086E0E5E3F3E0DE01119601900D928A95F7 +:1053E000E1F786E0FE013196A4E2B3E001900D9270 +:1053F0008A95E1F7309126032091270390912803A5 +:105400008091290370912003609121034091220330 +:1054100050912303F0912503E0911F03FE13D8C29E +:10542000332311F07313D4C2222311F02613D0C2F8 +:10543000882311F08513CCC2992319F081E0491318 +:10544000C8C280E0C6C286E992E068CD8091660459 +:10545000843009F43AC00E94950D40E060E080E09D +:105460000E941E0D80E00E9456168091E702811175 +:1054700009C0F092E7028091710481708093E60286 +:105480000E94E20F1092500488E190E00FB6F89469 +:10549000A895809360000FBE6092600083B7817F03 +:1054A000846083BF83B7816083BF7894889583B716 +:1054B0008E7F83BF0FB6F894A895809160008861B5 +:1054C00080936000109260000FBE80916504882375 +:1054D00061F00E944223EFE4F3E08191811170C4F6 +:1054E000A9E5B3E0AE17BF07C1F780916604853028 +:1054F00009F4ACCF109259040E94F70F0E94BF0E1E +:105500000E9456161092E7028091E602882349F025 +:105510008091710481608093710460E086950E949F +:1055200007160E943E0DF5CDC394FF0C27E0C21272 +:1055300006CE0F5F1F4F0A30110509F0F6CD8FEF31 +:105540008DA78EA71FA60E94461B8160782F99AB5E +:1055500088AB4DA55EA56FA589A90E94B02210CE8B +:105560000E94461B90931D0380931C0360E080E023 +:105570000E949A080E94BF0E8093F9020E949C0E1E +:10558000882331F14091F5025091F6026091F702C3 +:105590007091F8022FB7F8948091510490915204C1 +:1055A000A0915304B09154042FBF841B950BA60BFC +:1055B000B70B81339547A105B10540F00E94950DC9 +:1055C00080914904882309F45CCE53CE0E94B00D2B +:1055D0000E949C0E882309F4D3C061E080E00E9401 +:1055E0009A0860E08CE791E00E94881362E080E016 +:1055F0000E949A08809170040E94890C823009F4FC +:1056000099C008F08EC0882309F494C0813009F451 +:1056100097C065E080E00E949A0860E08AE991E026 +:105620000E94881366E080E00E949A086091F90267 +:10563000669561708FE991E00E94881367E080E0D1 +:105640000E949A086091F9026095617084EA91E085 +:105650000E94881368E080E00E949A086091F90235 +:1056600062FB662760F988EA91E00E948813409106 +:10567000F1025091F2026091F3027091F4022FB79F +:10568000F8948091510490915204A0915304B091E8 +:1056900054042FBF841B950BA60BB70B8D32914082 +:1056A000A105B10508F48CCF0E9462086093F10255 +:1056B0007093F2028093F3029093F4028091F002CF +:1056C000811104C080916701811142C06DE080E0CA +:1056D0000E949A0860E08DEA91E00E9488136AE0D7 +:1056E00080E00E949A0881E0809367018091EF0238 +:1056F00090E00196817099278093EF0221E030E0DD +:10570000281B390B40E6429FC001439F900D112496 +:105710002091EE02222351F1855C9B4F0E9492065C +:105720004FCF833089F0843009F073CF60E08EE88A +:1057300091E003C060E082E891E00E94881369CFA5 +:1057400060E088E891E0F9CF60E084E991E0F5CF8E +:105750006AE080E00E949A0860E08DEA91E00E9491 +:1057600088136BE080E00E949A08C0CF2091ED0280 +:10577000222319F085589C4FD1CF85549D4FCECF11 +:1057800064E080E00E949A0860E083EB91E00E9470 +:10579000881365E080E00E949A0860E089EB91E060 +:1057A0000E94881369E080E00E949A088BEF94E0E1 +:1057B000B5CF80911B0361E070E0811162CD082FAD +:1057C00010E02B01082E02C0440C551C0A94E2F78D +:1057D000A90144215521452B09F448C090911A0391 +:1057E00090FD46C08295880F807680936A0198016B +:1057F000369527953695279520936D01815E809388 +:105800006B0110926E0124E630E047E050E068E65C +:1058100071E088E70E94F82F892B09F032CDA801AA +:1058200065E0440F551F6A95E1F780911A0380FDEA +:105830002DC048585B4F04E610E020E230E060E401 +:1058400088E70E941F30892B09F01BCD0E94B00D04 +:10585000C20180959095409076045090770448223C +:10586000592250927704409276040BCD8F5FA7CFD8 +:10587000880F880F880F80936A0110926D01895FED +:1058800080936B0183E080936E01BDCFEAEFF2E07D +:1058900080E2DF011D928A95E9F7EEE0F2E0FBABD2 +:1058A000EAAB0AE012E037E0A32E99249394AAA968 +:1058B000BBA92D91BBABAAABF80121908F01240E9F +:1058C000352E311CC10188589B4F1C01E22FF0E09E +:1058D000E650FD4F30E020E07A2C721AB92C022EEF +:1058E00001C0BB0C0A94EAF7610190E0D6018D91EA +:1058F0006D018B21672D691B6770862E062E000CAB +:10590000770BB82F01C0BB0F8A94EAF78B2E7195E5 +:10591000619571096770772701C086956A95EAF7E6 +:10592000882A8081882A80829F5F9830F9F62F5FCD +:105930003F4F31962830310579F6E2E1F2E02AA9AD +:105940003BA9E217F30709F0B2CF04E610E020E22A +:1059500030E04AEF52E073CF45E00E94F80C20910E +:105960002C0330912D03820F931F90932D0380936E +:105970002C0345E0602F812F0E94F80C20912A0310 +:1059800030912B03281B390B30932B0320932A03D0 +:105990006AE273E087E393E00E94D90C6CE273E063 +:1059A00088E393E00E94D90C10923A0310923903D5 +:1059B0000FCD0197909334038093330309CD84E195 +:1059C00090E0F8CF809142038F5F8093420300CD37 +:1059D00081E080FF0FC0E0914C04F0914D043097BE +:1059E00049F082E0809324030480F581E02D84E275 +:1059F00093E0099510922603109227031092280332 +:105A00001092290386E0E4E2F3E0AEE1B3E0019016 +:105A10000D928A95E1F70E94461B90934103809373 +:105A200040030E94BF0E90914303891731F00E94FA +:105A3000BF0E809343030E94561680916604843003 +:105A400009F05ECB83E08093E9008091E80082FF5B +:105A500057CB8091E80090E085FF05C00E94F406D6 +:105A6000882399F091E08091E8008B778093E8009B +:105A7000992309F445CBE981E150E33108F076C080 +:105A8000F0E0ED54FB4C0C94F53200E210E0CE0156 +:105A900001967C018091E80085FD0AC08091E800B4 +:105AA0008B778093E8000E94F406882399F3DACF7D +:105AB0008091F100D7018D937D010150110951F7BB +:105AC000D1CF1A8289E08B8311C08A81823009F498 +:105AD0008FC1833091F1813009F048C00E94620883 +:105AE0000E94FB326B837C838D839E83809166044E +:105AF000843009F005CB1091E9001F709091EC0003 +:105B0000892F817090FD80E8182B82E08093E90056 +:105B10008091E80080FF0DC050E040E060E270E05E +:105B2000CE0101960E9425078091E8008E77809330 +:105B3000E8001F701093E900E3CADE011396EFE45A +:105B4000F3E081918D9323E0E935F207D1F7CECFD1 +:105B50008A81823059F46B817C818D819E810E9483 +:105B6000FB3286E290E00E943533C0CF8FEF89830D +:105B7000BDCF4C816B818A810E9430149827892780 +:105B800098279E838D83B2CFED80FE80FE24EF2484 +:105B9000FE248A810B813EE0039F800111249CE852 +:105BA000899F000D111D11248C8190E0880F991F91 +:105BB000080F191F6F2DC80187960E9435336E2D6F +:105BC000C8018896D0CF0E94B41390CF8A818138C3 +:105BD000C1F060F4803809F089CF20E04B816091FA +:105BE0007304809172040E94F01480CF8238E9F02F +:105BF000833809F07BCF20E0409174046C818B8165 +:105C0000F2CF60E08B810E9407168B81811103C067 +:105C10000E94E20F6BCF80917104816080937104C8 +:105C200060E086950E94071661CF8B818093750492 +:105C30005DCF8A81813899F030F4803809F056CFF1 +:105C40008091740440CF823891F0833809F04ECFB0 +:105C5000809172048B83809173048C8347CF8091F1 +:105C6000710480FF02C086952ECF80E02CCF8091FA +:105C7000750429CF6091710470917204809173044E +:105C8000909174040E94DE1431CF80E18A832ECF7C +:105C900081E08A838DE117CFCA80DB80DC24CD24AC +:105CA000DC248E010F5F1F4FEC80E00EF12EF11C03 +:105CB000C6018D519D4F0E151F0509F417CFADE19B +:105CC000CA16A1E0DA0650F40E942133F801848359 +:105CD000BFEFCB1ADB0A0F5F1F4FEACFD801149634 +:105CE0001C92F6CF0A811B81102701271027FE0185 +:105CF00031966F01EC80E00EF12EF11CC8018D5140 +:105D00009D4FE016F10609F4F1CE0D31F1E01F07C9 +:105D100028F4D60114966C910E943533BFEFCB1A4C +:105D2000DB0A0F5F1F4FEACF0E94A413DFCE85E08E +:105D3000ADCFCA80DB80DC24CD24DC248E010F5F54 +:105D40001F4FEC80E00EF12EF11CC6018796E01685 +:105D5000F10609F4CBCEECEBCE16E2E0DE0658F409 +:105D60000E942133D80114968C93FFEFCF1ADF0ADB +:105D70000F5F1F4FEACFF8011482F7CF0A811B8112 +:105D80001027012710279E012F5F3F4F6901EC80EC +:105D9000E00EF12EF11CC8018796E016F10609F419 +:105DA000A5CE0C3B32E0130728F4D60114966C9173 +:105DB0000E943533BFEFCB1ADB0A0F5F1F4FEBCFCB +:105DC00009BD19BD09B400FEFDCF8091D8008F7DBB +:105DD0008093D8008091E00082608093E000809101 +:105DE000E00081FDFCCF109259040E94F70F7DCB9B +:105DF00086E290E00E9421331B821C821D828E83EA +:105E000075CE1092B9008CE08093B80008959F92EF +:105E1000AF92BF92CF92DF92EF92FF920F931F93B8 +:105E2000CF93DF93B82EEB010E94461B6C01EE244A +:105E3000E394F12CC431D10560F025E0E22EF12C81 +:105E4000CF3FDC0731F0CE0164E170E00E94C13247 +:105E50007B0184EAA82E94E8992E1092BC00A092AF +:105E6000BC000E94461B8C018091BC0087FF0DC0C6 +:105E70008091B900887F883039F18091B900887F9E +:105E8000803111F10FEF1FEF09C00E94461B801BEC +:105E9000910B8E159F0540F30EEF1FEFCF3FDC07F0 +:105EA000E1F2C6010E94371B8C179D07B0F2C801B2 +:105EB000DF91CF911F910F91FF90EF90DF90CF90E6 +:105EC000BF90AF909F900895B092BB009092BC009D +:105ED0000E94461B8C018091BC0087FF0AC0809104 +:105EE000B900887F883111F0803461F610E000E05D +:105EF000DECF0E94461B801B910B8E159F0558F329 +:105F0000CBCF0F931F93CF93DF93EB018093BB0015 +:105F100084E88093BC000E94461B8C018091BC00E9 +:105F200087FF11C02091B900287F81E090E02832DE +:105F300011F490E080E0919581959109DF91CF91E6 +:105F40001F910F910895CF3FDC0741F30E94461B3C +:105F5000801B910B8C179D0708F38EEF9FEFEECF00 +:105F60000F931F93CF93DF93EC0184EC8093BC00DD +:105F70000E94461B8C018091BC0087FF08C0809165 +:105F8000BB0090E0DF91CF911F910F910895CF3F1B +:105F9000DC0789F30E94461B801B910B8C179D0721 +:105FA00050F38EEF9FEFEECF0F931F93CF93DF93BE +:105FB000EC0184E88093BC000E94461B8C01809118 +:105FC000BC0087FF08C08091BB0090E0DF91CF91BB +:105FD0001F910F910895CF3FDC0789F30E94461B64 +:105FE000801B910B8C179D0750F38EEF9FEFEECF28 +:105FF000CF92DF92EF92FF920F931F93CF93DF9395 +:106000006B018A017901B9010E94072FE6010C0D8D +:106010001D1DC017D10761F424E92093BC00DF9156 +:10602000CF911F910F91FF90EF90DF90CF90089547 +:1060300097FDF2CFB70189910E94812FEACFCF92CD +:10604000DF92EF92FF920F931F93CF93DF93C62FB0 +:106050006A017901B8010E94072F97FD0CC0B801B1 +:106060008C2F0E94812FE601EC0CFD1CCE15DF0564 +:1060700011F097FF0CC024E92093BC00DF91CF9171 +:106080001F910F91FF90EF90DF90CF900895B8018E +:1060900089910E94812FEACFCF92DF92EF92FF92F7 +:1060A0000F931F93CF93DF93F82EE62EEA01690139 +:1060B000B8010E94072F97FD15C0B8018E2D0E94D0 +:1060C000812F97FD0FC0B8018F2D81600E94072F8F +:1060D000F12CE12C21E0C21AD108EC14FD0400F5EA +:1060E00097FF11C024E92093BC001816190614F478 +:1060F00090E080E0DF91CF911F910F91FF90EF90A2 +:10610000DF90CF900895C8010E94B02F97FD04C082 +:10611000FE01EE0DFF1D80832FEFE21AF20ADDCFA4 +:1061200097FDE0CFC8010E94D42F97FDDBCFCC0DA7 +:10613000DD1D8883D7CF84E98093BC0008958EE16C +:106140004A9B02C08150E1F74A9BFECF08955A98BE +:1061500080E28A95F1F75A9A0895FC013BE03A955E +:10616000F1F798E020E080E031E040E14A95F1F776 +:10617000880F4A9B02C08160232742E04A95F1F7CD +:10618000000040E14A95F1F7915079F790E19A9536 +:10619000F1F799B132E03A95F1F7000040E14A9504 +:1061A000F1F792FB992790F992272081920F908323 +:1061B0000895EF92FF920F931F93CF93DF930F9267 +:1061C000CDB7DEB719828C017C01E60EF11C0E15ED +:1061D0001F0561F481E09981911180E00F90DF91BA +:1061E000CF911F910F91FF90EF9008950E949F30E3 +:1061F000CE0101960E94AD30F80181938F01E7CF67 +:10620000529A5A9A089552985A9AEA9AE9E6F0E010 +:1062100080818F7C808308956150770B91E001C06D +:10622000990F6A95EAF720E031E0911108C0222326 +:1062300091F05A9A80E28A95F1F75A980895492F79 +:10624000482339F05A9A232740E24A95F1F7969568 +:10625000ECCF5A98F9CF5A98EDCFFF920F931F9336 +:10626000CF93DF93EC018C01060F111DC017D107EE +:1062700031F4DF91CF911F910F91FF900895F99024 +:106280000E94A73068E08F2D0E940C31EFCF1F9243 +:106290000F920FB60F921124EF92FF920F931F935C +:1062A0002F933F934F935F936F937F938F939F931E +:1062B000AF93BF93EF93FF93CF93DF930F92CDB73D +:1062C000DEB719820E949F30CE0101960E94AD3048 +:1062D000A82FA695A695A695282F229525709A2FCA +:1062E0009570290F922F937026952695920F9827D7 +:1062F00097708981982B09F075C0A83008F072C09A +:1063000080E18A95F1F75A9A529AB2E0BA95F1F77C +:1063100000C05A98EA2EF12CEAE0AE9FD001112479 +:10632000AF5FBE4F1896ED91FC9119973097B1F081 +:106330006091F8017091F90116962D913C91179793 +:10634000260F371F13968D919C911497680F791F14 +:1063500015964C91159712968C9109958AE08E9D11 +:10636000F0018F9DF00D1124EF5FFE4F65816623D4 +:1063700051F02091F8013091F90186819781820FC7 +:10638000931F0E942D310E94A730F0E1FA95F1F79A +:106390005A9852985A9A80E18A95F1F78AE08E9D30 +:1063A00080018F9D100D11240F5F1E4FD801129692 +:1063B0006C911297662371F12091F8013091F901E7 +:1063C00013968D919C91820F931F0E94D930D80112 +:1063D000ED91FC91882311F088E001C082E0808378 +:1063E0000E949F300F90DF91CF91FF91EF91BF916D +:1063F000AF919F918F917F916F915F914F913F915D +:106400002F911F910F91FF90EF900F900FBE0F9063 +:106410001F901895ED91FC91DFCF0F931F93CF93B1 +:10642000DF93EC0108970CF0A9C08AE08C9FF00183 +:106430008D9FF00D1124EF5FFE4F80819181892B9C +:1064400009F49CC0F894529A5A9885E08A95F1F71D +:1064500000008C2F869585709C2F9570890F982F42 +:10646000937086958695890F8E0193E0000F111F1A +:106470009A95E1F7082B0E94A73000C068E0802FB2 +:106480000E940C31A0E1AA95F1F752985A9A4A9BC2 +:1064900027C087E090E04A9925C08AE08C9F800160 +:1064A0008D9F100D11240F5F1E4FF801658166232B +:1064B000A1F12091F8013091F90186819781820F35 +:1064C000931F0E94D930811128C0529A5A9AD8013C +:1064D000ED91FC9182E08083789482E090E016C098 +:1064E00000C0D5CF0197B9F4529A5A9A8AE08C9F8E +:1064F000F0018D9FF00D1124EF5FFE4F0190F081B0 +:10650000E02D81E08083789481E090E0DF91CF916D +:106510001F910F91089500C0BECF0E949F30B0E23E +:10652000BA95F1F75A98529AE0E1EA95F1F78AE0C4 +:106530008C9FF0018D9FF00D1124EF5FFE4F628163 +:10654000662351F02091F8013091F9018381948103 +:10655000820F931F0E942D310E94A7308AE08C9FEA +:10656000F0018D9FF00D1124EF5FFE4F0190F0813F +:10657000E02D1082789490E080E0C8CF84E090E035 +:10658000C5CFAA1BBB1B51E107C0AA1FBB1FA61783 +:10659000B70710F0A61BB70B881F991F5A95A9F7CC +:1065A00080959095BC01CD010895991B79E004C0B8 +:1065B000991F961708F0961B881F7A95C9F7809542 +:1065C000089597FB072E16F4009407D077FD09D0A5 +:1065D0000E94C13207FC05D03EF4909581959F4FF3 +:1065E0000895709561957F4F0895EE0FFF1F0590F8 +:1065F000F491E02D09946927962769277827872742 +:1066000078270895FB01DC0102C005900D924150EE +:106610005040D8F70895FB01DC0104C08D91019032 +:10662000801921F441505040C8F7881B990B0895F8 +:10663000FB01DC0102C001900D9241505040D8F79F +:106640000895F999FECF92BD81BDF89A992780B53A +:106650000895A6E1B0E044E050E00C945B33A8E17B +:10666000B0E042E050E00C945B33262FF999FECF66 +:1066700092BD81BDF89A019700B4021639F01FBA95 +:1066800020BD0FB6F894FA9AF99A0FBE08950396B2 +:10669000272F0E9436330E943533252F0E94363330 +:1066A000242F0C9436330196272F0E9436330C94F6 +:1066B0003533DC01CB01FC01F999FECF06C0F2BDF8 +:1066C000E1BDF89A319600B40D9241505040B8F7B0 +:1066D00008950E94AB3308F481E00895E89409C05E +:1066E00097FB3EF490958095709561957F4F8F4F05 +:1066F0009F4F9923A9F0F92F96E9BB279395F6951B +:10670000879577956795B795F111F8CFFAF4BB0F98 +:1067100011F460FF1BC06F5F7F4F8F4F9F4F16C0FC +:10672000882311F096E911C0772321F09EE8872F86 +:10673000762F05C0662371F096E8862F70E060E042 +:106740002AF09A95660F771F881FDAF7880F9695BB +:10675000879597F90895990F0008550FAA0BE0E85F +:10676000FEEF16161706E807F907C0F01216130613 +:10677000E407F50798F0621B730B840B950B39F453 +:106780000A2661F0232B242B252B21F408950A26B9 +:1067900009F4A140A6958FEF811D811D08950E94E7 +:1067A000E2330C9453340E94453438F00E944C3448 +:1067B00020F0952311F00C943C340C9442341124B5 +:1067C0000C9487340E94643470F3959FC1F3950F45 +:1067D00050E0551F629FF001729FBB27F00DB11D65 +:1067E000639FAA27F00DB11DAA1F649F6627B00DF5 +:1067F000A11D661F829F2227B00DA11D621F739FDE +:10680000B00DA11D621F839FA00D611D221F749FEB +:106810003327A00D611D231F849F600D211D822F32 +:10682000762F6A2F11249F5750409AF0F1F0882359 +:106830004AF0EE0FFF1FBB1F661F771F881F915086 +:106840005040A9F79E3F510580F00C943C340C94C5 +:1068500087345F3FE4F3983ED4F386957795679548 +:10686000B795F795E7959F5FC1F7FE2B880F911DB0 +:106870009695879597F9089597F99F6780E870E056 +:1068800060E008959FEF80EC089500240A941616A6 +:10689000170618060906089500240A94121613060E +:1068A000140605060895092E0394000C11F488239C +:1068B00052F0BB0F40F4BF2B11F460FF04C06F5FB8 +:1068C0007F4F8F4F9F4F089557FD9058440F551F8E +:1068D00059F05F3F71F04795880F97FB991F61F062 +:1068E0009F3F79F087950895121613061406551FD9 +:1068F000F2CF4695F1DF08C0161617061806991F45 +:10690000F1CF86957105610508940895E894BB2739 +:1069100066277727CB0197F90895F894FFCFE71002 +:106920000F1162110F11621142117A116211771267 +:106930008412B014B014B914B914BB14B914B91436 +:10694000B914B014B014C014B914B914C014131F7E +:10695000131F6C1F6C1F9E1F461F461F461FB81F2C +:10696000292039203920612D652DA82DB92DC42D60 +:10697000E32DE62D192E3A2EB62DB62D452E482E96 +:0C6980004C2E722E942E972E992EBE2EB7 +:10698C000138020000000100000000380200000085 +:10699C00050100000038020000000106000000386C +:1069AC00020000000107000000380204080000008B +:1069BC000000003802090C00000000000038020141 +:1069CC001500000000000036323331F7F667669789 +:1069DC00C6343500000000000180005F082B0E0A51 +:1069EC000E060E020EF4F5010021007F22000300BA +:1069FC004A004A4A01F6F731333236674C41594561 +:106A0C00520042617365200047616D652000526140 +:106A1C00697365004C6F776572004C4F434B0043B4 +:106A2C00617073004E756D005363726C00202020F2 +:106A3C00202000534F4C415200544D505354008170 +:106A4C008283E200E900EA00B500B600B700CD0091 +:106A5C008301CC008A0192019401210223022402B9 +:106A6C002502260227022A02B300B4006F00700030 +:106A7C000603060806010606AF0200FF010001002E +:106A8C0000FFFF0000010001FF00000810181810A3 +:106A9C00080000010202020202020202020240226B +:0E6AAC007B99017701FC00000C190C390C00DD :00000001FF From 414b4b58a2277e7bd8d13ce1e1ac0df77315466b Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 00:50:22 -0400 Subject: [PATCH 39/94] Fix files. --- keyboards/solartempest/ps17/config.h | 145 ----- keyboards/solartempest/ps17/info.json | 38 -- .../ps17/keymaps/default/keymap.c | 365 ------------- .../solartempest/ps17/keymaps/via/config.h | 22 - .../solartempest/ps17/keymaps/via/keymap.c | 507 ------------------ .../solartempest/ps17/keymaps/via/rules.mk | 1 - .../ps17/keymaps/via_bright/config.h | 22 - .../ps17/keymaps/via_bright/keymap.c | 332 ------------ .../ps17/keymaps/via_bright/rules.mk | 1 - .../solartempest/ps17/ps17 VIA keymap.json | 51 -- .../solartempest/ps17/ps17 VIA layout.json | 267 --------- keyboards/solartempest/ps17/ps17.c | 68 --- keyboards/solartempest/ps17/ps17.h | 61 --- keyboards/solartempest/ps17/readme.md | 39 -- keyboards/solartempest/ps17/rules.mk | 25 - 15 files changed, 1944 deletions(-) delete mode 100644 keyboards/solartempest/ps17/config.h delete mode 100644 keyboards/solartempest/ps17/info.json delete mode 100644 keyboards/solartempest/ps17/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/rules.mk delete mode 100644 keyboards/solartempest/ps17/ps17 VIA keymap.json delete mode 100644 keyboards/solartempest/ps17/ps17 VIA layout.json delete mode 100644 keyboards/solartempest/ps17/ps17.c delete mode 100644 keyboards/solartempest/ps17/ps17.h delete mode 100644 keyboards/solartempest/ps17/readme.md delete mode 100644 keyboards/solartempest/ps17/rules.mk diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h deleted file mode 100644 index a22d17fcb719..000000000000 --- a/keyboards/solartempest/ps17/config.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "config_common.h" - -// USB Device descriptor parameter -#define VENDOR_ID 0x414B // "AK" -#define PRODUCT_ID 0x0015 -#define DEVICE_VER 0x0002 // Ver2 -#define MANUFACTURER ATLANTIS -#define PRODUCT PS17 - -//#define ENCODER_RESOLUTION 2 // default is 4 - -// key matrix size -#ifdef RGBLIGHT_ENABLE - #define MATRIX_ROWS 6 -#endif -#ifdef RGB_MATRIX_ENABLE - #define MATRIX_ROWS 11 //Numpad actually has 6 rows. 5 rows were added for underglow RGB matrix to work together -#endif -#define MATRIX_COLS 4 - -// Encoder matrix -#define ENCODERS_PAD_A { D1 } -#define ENCODERS_PAD_B { D2 } -//#define ENCODER_DIRECTION_FLIP - -#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 -#define MATRIX_COL_PINS { F6, F7, D3, D6 } -#define UNUSED_PINS - -// COL2ROW or ROW2COL -#define DIODE_DIRECTION COL2ROW - -// For LED status indicators -#define LED_NUM_LOCK_PIN D0 -#define LED_CAPS_LOCK_PIN D5 -#define LED_SCROLL_LOCK_PIN D4 -#define LED_PIN_ON_STATE 0 - -#define RGB_DI_PIN B7 -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 28 // 17 key + 11 underglow for RGBLIGHT - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM - #define RGBLIGHT_LIMIT_VAL 180 // brightness level max is 255 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping - #define RGBLIGHT_ANIMATIONS - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L00, L05, \ - L10, L15, \ - L20, L21, L22, L23, L24, L25, \ - L31, L32, L33, L34, \ - L40, L41, L42, L43, L45, \ - L51, L52, L53, L54, \ - L60, L61, L62, L63, L65 ) \ - { \ - L21,L22,L23,L24,L31,L32,L33,L34,L41,L42,L43,L51,L52,L53,L54,L61,L63,L60,L40,L20,L10,L00,L05,L15,L25,L45,L65,L62, \ - } - //RGB LED logical order map - //Right->Left, Top->Bottom - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14, \ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 ) -#endif - -#ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow - #define RGB_MATRIX_CENTER { 126, 126 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define COMBO_COUNT 6 //Number of tap combos used -#define COMBO_TERM 350 //Default combo time is 200ms - -#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/info.json b/keyboards/solartempest/ps17/info.json deleted file mode 100644 index 2806bc0128d6..000000000000 --- a/keyboards/solartempest/ps17/info.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "keyboard_name": "Atlantis PS17 Macropad", - "url": "", - "maintainer": "solartempest", - "width": 4, - "height": 6, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":0, "y":0, "h":1.5}, - {"x":0, "y":1}, - {"x":0, "y":2, "h":1.5}, - - {"x":1, "y":0}, - {"x":1, "y":1}, - {"x":1, "y":2}, - {"x":1, "y":3}, - - {"x":2, "y":0}, - {"x":2, "y":1}, - {"x":2, "y":2}, - {"x":2, "y":3, "h":2}, - - {"x":3, "y":0}, - {"x":3, "y":1}, - {"x":3, "y":2}, - - {"x":4, "y":0}, - {"x":4, "y":1}, - {"x":4, "y":2}, - {"x":4, "y":3, "h":2}, - - {"x":5, "y":0, "w":2}, - {"x":5, "y":2}, - ] - } - } -} diff --git a/keyboards/solartempest/ps17/keymaps/default/keymap.c b/keyboards/solartempest/ps17/keymaps/default/keymap.c deleted file mode 100644 index 3dc48708a4ef..000000000000 --- a/keyboards/solartempest/ps17/keymaps/default/keymap.c +++ /dev/null @@ -1,365 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. Don't forget to update the VIA json as well. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use SAFE_RANGE when Via is disabled. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; - -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGUP, KC__MUTE, KC_PGDOWN, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, TD(TD_MINUS_NUMLOCK), - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_LEFT, KC_TRNS, KC_RIGHT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, - TO(0), KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO - ), - [_LAYER3] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_SCROLLLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 140; - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 15; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: //Photoshop custom layer (macros and keys all done in VIA) - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3) { //Underglow LEDs - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } - else if (i == 6) {rgblight_sethsv_at(148,255,perkey_brightness+15,i);} //Text - light blue - else if (i == 5) {rgblight_sethsv_at(140,255,perkey_brightness+15,i);} //New Layer - light blue - else if (i == 15) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Marquee - rose - else if (i == 9) {rgblight_sethsv_at(190,255,underglow_brightness,i);} //Underglow to match - else if (i == 13) {rgblight_sethsv_at(180,255,perkey_brightness+15,i);} //Healing Brush - purple - else if (i == 12) {rgblight_sethsv_at(185,255,perkey_brightness+15,i);} //Clone - else if (i == 11) {rgblight_sethsv_at(190,255,perkey_brightness+15,i);} //Default - else if (i == 7) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Brush - else if (i == 18) {rgblight_sethsv_at(230,255,underglow_brightness,i);} //Underglow to match - else if (i == 17) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //copy - red - else if (i == 16) {rgblight_sethsv_at(3,255,perkey_brightness+15,i);} //Paste - else if (i == 22) {rgblight_sethsv_at(5,255,perkey_brightness+15,i);} //Undo - else if (i == 21) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //Redo - else if (i == 26) {rgblight_sethsv_at(200,255,lastrow_brightness+15,i);} //Space - blue - else if (i == 24) {rgblight_sethsv_at(195,255,lastrow_brightness+15,i);} //Alt - else if (i == 20) {rgblight_sethsv_at(190,255,lastrow_brightness+15,i);} //Shift - else if (i == 27) {rgblight_sethsv_at(200,255,underglow_brightness,i);} //Underglow to match - else if (i == 10) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom in - else if (i == 19) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom out - else if (i == 25) {rgblight_sethsv_at(180,255,underglow_brightness,i);} //Underglow to match - else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c deleted file mode 100644 index b75dc6fc7272..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ /dev/null @@ -1,507 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -// IDLE TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes - #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) - - //prototype functions - uint16_t get_timeout_threshold(void); - void timeout_reset_timer(void); - void timeout_update_threshold(bool increase); - void timeout_tick_timer(void); -#endif //IDLE_TIMEOUT_ENABLE - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#endif - -#ifdef COMBO_ENABLE //Tap combos - enum combos { - kppls_7, //Hold plus and 7 to backspace - kppls_8, //Hold plus and 8 to delete - kpent_4, //Hold enter and 4 for left arrow - kpent_5, //Hold enter and 5 for down arrow - kpent_6, //Hold enter and 6 for right arrow - kpent_8, //Hold enter and 4'8 for up arrow - }; - const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; - const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; - const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; - const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; - const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; - combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE), - [kpent_4] = COMBO(kpent4_combo, KC_LEFT), - [kpent_5] = COMBO(kpent5_combo, KC_DOWN), - [kpent_6] = COMBO(kpent6_combo, KC_RGHT), - [kpent_8] = COMBO(kpent8_combo, KC_UP) - }; -#endif - -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. - enum { - TD_MINUS_NUMLOCK, - }; - qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), - }; - //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) -#endif - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - - -// TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - static uint16_t timeout_timer = 0; - static uint16_t timeout_counter = 0; //in minute intervals - static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - - uint16_t get_timeout_threshold(void) { - return timeout_threshold; - } - - void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; - }; - - void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; - }; - - void timeout_tick_timer(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - #ifdef RGBLIGHT_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgblight_toggle_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout - } - - __attribute__((weak)) void matrix_scan_keymap(void) {} -#endif // IDLE_TIMEOUT_ENABLE - - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - //tap_code(KC_UP); - //tap_code(KC_DOWN); - tap_code(KC_F24); - } - - #ifdef IDLE_TIMEOUT_ENABLE - timeout_tick_timer(); - matrix_scan_keymap(); - #endif // IDLE_TIMEOUT_ENABLE -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } - } - return true; - } - return true; -} - - -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - /*static uint16_t underglow_brightness = 140; //This code can be used to have edge and underglow LEDs selectively brighter - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 50; //for less shine-through at case edges (brighter is okay for FR4 plate) - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - */ - // This is what the LED layout is. - // 1, 0, - // 3, 2, - // 9, 8, 7, 6, 5, 4, - // 13, 12, 11, 10, - // 18, 17, 16, 15, 14, - // 22, 21, 20, 19, - // 27, 26, 25, 24, 23 - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 1: - rgblight_sethsv_noeeprom(5,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 2: - rgblight_sethsv_noeeprom(128,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 3: - rgblight_sethsv_noeeprom(215,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 4: - rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/config.h b/keyboards/solartempest/ps17/keymaps/via_bright/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c deleted file mode 100644 index 6c422f8be38d..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c +++ /dev/null @@ -1,332 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions. Not VIA compatible. -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 100); //Set lower default brightness when connected as the right side dimming is not yet in effect - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 120; - static uint16_t perkey_brightness = 120; - static uint16_t lastrow_brightness = 30; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk b/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json deleted file mode 100644 index d906b47dbb7a..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA keymap.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "PS17" , - "vendorId": "0x414B", - "productId": "0x0015", - "lighting": "qmk_rgblight", - "matrix": { "rows": 6, "cols": 4 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - }, - { - "name": "Spam Arrow", - "title": "Toggle F24 on interval timer with Orange LED", - "shortName": "SA" - }, - { - "name": "Teams Muted", - "title": "Simply Change LED of 1 to show if muted or not", - "shortName": "TM" - } - ], - "layouts": - { - "keymap": - [ - [{"w": 1, "h":1.5},"0,0", "0,1", {"w": 1, "h":1.5},"0,2"], - [{"y":0.75}, "1,0", "1,1", "1,2", "1,3"], - [ "2,0", "2,1", "2,2", {"h":2},"2,3"], - [ "3,0","3,1","3,2"], - [ "4,0", "4,1", "4,2", {"h":2},"4,3"], - [{"w": 2},"5,0", "5,2"] - ] - } -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json deleted file mode 100644 index 6671cee90952..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA layout.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "name": "PS17", - "vendorProductId": 1095434261, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "C(KC_TAB)", - "C(KC_W)", - "C(S(KC_TAB))", - "KC_NO", - "TO(2)", - "KC_PSLS", - "KC_PAST", - "KC_PMNS", - "KC_P7", - "KC_P8", - "KC_P9", - "KC_PPLS", - "KC_P4", - "KC_P5", - "KC_P6", - "KC_NO", - "KC_P1", - "KC_P2", - "KC_P3", - "KC_PENT", - "KC_P0", - "KC_NO", - "KC_PDOT", - "KC_NO" - ], - [ - "KC_RGHT", - "KC_TRNS", - "KC_LEFT", - "KC_NO", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_NLCK", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_BSPC", - "TO(5)", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "TO(2)", - "TO(3)", - "TO(4)", - "KC_TRNS", - "RESET", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_VOLU", - "KC_TRNS", - "KC_VOLD", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_WWW_HOME", - "C(S(KC_B))", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "USER04", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "USER05", - "KC_TRNS", - "KC_SLCK", - "KC_NLCK", - "KC_F13", - "KC_NO", - "KC_F14", - "KC_NO" - ], - [ - "USER00", - "KC_TRNS", - "USER01", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_HOME", - "C(KC_T)", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "C(KC_W)", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "KC_WWW_BACK", - "KC_SPC", - "KC_WWW_FORWARD", - "KC_ENT", - "KC_PGDN", - "KC_NO", - "KC_PGUP", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c deleted file mode 100644 index 54ae3f8ab053..000000000000 --- a/keyboards/solartempest/ps17/ps17.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include "ps17.h" - -bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality - #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - } - } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ - #endif - return true; -} - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { NO_LED, NO_LED, NO_LED, NO_LED, }, - { 0, 1, 2, 3, }, - { 4, 5, 6, 7, }, - { 8, 9, 10, NO_LED, }, - { 11, 12, 13, 14, }, - { 15, NO_LED, 16, NO_LED, }, - - //Underglow matrix to LED index - { 21, NO_LED, NO_LED, 22, }, - { 20, NO_LED, NO_LED, 23, }, - { 19, NO_LED, NO_LED, 24, }, - { 18, NO_LED, NO_LED, 25, }, - { 17, 27, NO_LED, 26, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {126,126} - {74,165},{108,165},{144,165},{179,165},{74,129},{109,129},{143,129},{188,121},{74,95},{109,95},{143,95},{73,60},{109,60},{144,60},{188,51},{91,25},{144,25}, - - // LED underglow - {61,26},{61,88},{61,158},{61,197},{61,232},{192,232},{192,196},{192,158},{192,87},{183,26},{127,24} - }, { - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // LED Index to Flag. 4 for key backlight. - 2,2,2,2,2,2,2,2,2,2,2 // 2 for case underglow. - } }; -#endif diff --git a/keyboards/solartempest/ps17/ps17.h b/keyboards/solartempest/ps17/ps17.h deleted file mode 100644 index 64ebc5766887..000000000000 --- a/keyboards/solartempest/ps17/ps17.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "quantum.h" - -#ifdef RGBLIGHT_ENABLE - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - } -#endif - -#ifdef RGB_MATRIX_ENABLE // Five empty rows of keys were added for RGB Matrix purposes. You must map to a key otherwise it will not work. - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - } -#endif diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md deleted file mode 100644 index bd9504222899..000000000000 --- a/keyboards/solartempest/ps17/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Atlantis PS17 Macropad - -![Atlantis PS17](https://i.imgur.com/Y0rkPgA.jpg) - -A 17-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -* Keyboard Maintainer: solartempest -* Hardware Supported: Atlantis PS17 v2 -* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) - -# Custom Features: - -- Remappable rotary encoder controls volume up/down/mute. -- Allows for remapping of per-layer rotary encoder functions in VIA. -- VIA support included by default. -- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). -- Adds custom layer lighting with custom gradients for each. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. -- Adds key combo functionality for backspace, delete, and arrow keys. - -## Make and Flashing - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb solartempest/ps17 -km via - -To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. -Flash with QMK toolbox, auto-flash. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "ps17 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "ps17 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk deleted file mode 100644 index 0b5dd1c97afa..000000000000 --- a/keyboards/solartempest/ps17/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# - -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -UNICODE_ENABLE = yes # Unicode -ENCODER_ENABLE = yes # For encoder -LTO_ENABLE = yes # Reduce firmware size -COMBO_ENABLE = yes # Combos -TAP_DANCE_ENABLE = no # Tap dance - -IDLE_TIMEOUT_ENABLE = yes # Turn LEDs off after inactive time From 6fe93751e1a766c111244db2c855575be2fbfaeb Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 00:56:41 -0400 Subject: [PATCH 40/94] Fix files --- keyboards/solartempest/9e/9e VIA ayout.json | 507 ---------------- keyboards/solartempest/9e/9e VIA keymap.json | 39 -- keyboards/solartempest/9e/A9e.c | 64 -- keyboards/solartempest/9e/A9e.h | 35 -- keyboards/solartempest/9e/config.h | 140 ----- keyboards/solartempest/9e/info.json | 12 - .../solartempest/9e/keymaps/default/keymap.c | 208 ------- .../solartempest/9e/keymaps/via/config.h | 22 - .../solartempest/9e/keymaps/via/keymap.c | 417 ------------- .../solartempest/9e/keymaps/via/rules.mk | 1 - keyboards/solartempest/9e/readme.md | 42 -- keyboards/solartempest/9e/rules.mk | 63 -- keyboards/solartempest/ps17/config.h | 145 ----- keyboards/solartempest/ps17/info.json | 38 -- .../ps17/keymaps/default/keymap.c | 365 ------------ .../solartempest/ps17/keymaps/via/config.h | 22 - .../solartempest/ps17/keymaps/via/keymap.c | 507 ---------------- .../solartempest/ps17/keymaps/via/rules.mk | 1 - .../ps17/keymaps/via_bright/config.h | 22 - .../ps17/keymaps/via_bright/keymap.c | 332 ----------- .../ps17/keymaps/via_bright/rules.mk | 1 - .../solartempest/ps17/ps17 VIA keymap.json | 51 -- .../solartempest/ps17/ps17 VIA layout.json | 267 --------- keyboards/solartempest/ps17/ps17.c | 68 --- keyboards/solartempest/ps17/ps17.h | 61 -- keyboards/solartempest/ps17/readme.md | 39 -- keyboards/solartempest/ps17/rules.mk | 25 - keyboards/solartempest/sofle/.noci | 0 keyboards/solartempest/sofle/config.h | 119 ---- keyboards/solartempest/sofle/info.json | 12 - .../solartempest/sofle/keymaps/via/bongocat.c | 212 ------- .../solartempest/sofle/keymaps/via/config.h | 22 - .../solartempest/sofle/keymaps/via/encoder.c | 42 -- .../solartempest/sofle/keymaps/via/keymap.c | 334 ----------- .../solartempest/sofle/keymaps/via/luna.c | 309 ---------- .../sofle/keymaps/via/ocean_dream.c | 555 ------------------ .../solartempest/sofle/keymaps/via/oled.c | 82 --- .../solartempest/sofle/keymaps/via/rules.mk | 1 - .../solartempest/sofle/keymaps/via/snakey.c | 321 ---------- keyboards/solartempest/sofle/readme.md | 82 --- keyboards/solartempest/sofle/rules.mk | 25 - .../solartempest/sofle/sofle VIA keymap.json | 62 -- .../solartempest/sofle/sofle VIA layout.json | 295 ---------- keyboards/solartempest/sofle/sofle.c | 19 - keyboards/solartempest/sofle/sofle.h | 42 -- 45 files changed, 6028 deletions(-) delete mode 100644 keyboards/solartempest/9e/9e VIA ayout.json delete mode 100644 keyboards/solartempest/9e/9e VIA keymap.json delete mode 100644 keyboards/solartempest/9e/A9e.c delete mode 100644 keyboards/solartempest/9e/A9e.h delete mode 100644 keyboards/solartempest/9e/config.h delete mode 100644 keyboards/solartempest/9e/info.json delete mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/9e/keymaps/via/config.h delete mode 100644 keyboards/solartempest/9e/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/9e/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/9e/readme.md delete mode 100644 keyboards/solartempest/9e/rules.mk delete mode 100644 keyboards/solartempest/ps17/config.h delete mode 100644 keyboards/solartempest/ps17/info.json delete mode 100644 keyboards/solartempest/ps17/keymaps/default/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/config.h delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/keymap.c delete mode 100644 keyboards/solartempest/ps17/keymaps/via_bright/rules.mk delete mode 100644 keyboards/solartempest/ps17/ps17 VIA keymap.json delete mode 100644 keyboards/solartempest/ps17/ps17 VIA layout.json delete mode 100644 keyboards/solartempest/ps17/ps17.c delete mode 100644 keyboards/solartempest/ps17/ps17.h delete mode 100644 keyboards/solartempest/ps17/readme.md delete mode 100644 keyboards/solartempest/ps17/rules.mk delete mode 100644 keyboards/solartempest/sofle/.noci delete mode 100644 keyboards/solartempest/sofle/config.h delete mode 100644 keyboards/solartempest/sofle/info.json delete mode 100644 keyboards/solartempest/sofle/keymaps/via/bongocat.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/config.h delete mode 100644 keyboards/solartempest/sofle/keymaps/via/encoder.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/keymap.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/luna.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/ocean_dream.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/oled.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/sofle/keymaps/via/snakey.c delete mode 100644 keyboards/solartempest/sofle/readme.md delete mode 100644 keyboards/solartempest/sofle/rules.mk delete mode 100644 keyboards/solartempest/sofle/sofle VIA keymap.json delete mode 100644 keyboards/solartempest/sofle/sofle VIA layout.json delete mode 100644 keyboards/solartempest/sofle/sofle.c delete mode 100644 keyboards/solartempest/sofle/sofle.h diff --git a/keyboards/solartempest/9e/9e VIA ayout.json b/keyboards/solartempest/9e/9e VIA ayout.json deleted file mode 100644 index aa58163c6e9b..000000000000 --- a/keyboards/solartempest/9e/9e VIA ayout.json +++ /dev/null @@ -1,507 +0,0 @@ -{ - "name": "A9e", - "vendorProductId": 1095434249, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "KC_RGHT", - "KC_MUTE", - "KC_LEFT", - "TO(1)", - "TO(2)", - "TO(3)", - "KC_P7", - "KC_P8", - "KC_P9", - "KC_WWW_BACK", - "KC_F13", - "KC_WWW_FORWARD", - "USER01", - "RGB_TOG", - "USER00", - "KC_CAPS", - "KC_NLCK", - "KC_MINS", - "KC_P4", - "KC_P5", - "KC_P6", - "KC_VOLD", - "KC_F14", - "KC_VOLU", - "USER03", - "KC_MSTP", - "USER02", - "KC_WWW_REFRESH", - "KC_BSPC", - "KC_P0", - "KC_P1", - "KC_P2", - "KC_P3", - "KC_MS_WH_UP", - "C(KC_W)", - "KC_MS_WH_DOWN", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_MS_WH_DOWN", - "KC_HOME", - "KC_MS_WH_UP", - "C(KC_PMNS)", - "C(KC_0)", - "C(KC_PPLS)", - "C(S(KC_TAB))", - "C(KC_T)", - "C(KC_TAB)" - ], - [ - "KC_RBRC", - "KC_I", - "KC_LBRC", - "TO(0)", - "KC_T", - "KC_M", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_LEFT", - "C(S(KC_B))", - "KC_RGHT", - "KC_LCBR", - "C(KC_I)", - "KC_RCBR", - "KC_B", - "KC_J", - "KC_S", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "C(S(KC_TAB))", - "C(KC_S)", - "C(KC_TAB)", - "C(KC_Z)", - "KC_X", - "C(S(KC_Z))", - "KC_LALT", - "KC_SPC", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_DOWN", - "KC_TRNS", - "KC_UP", - "KC_NO", - "KC_NO", - "KC_NO", - "C(KC_LBRC)", - "KC_DEL", - "C(KC_RBRC)", - "A(KC_LBRC)", - "C(KC_F10)", - "A(KC_RBRC)", - "C(KC_MINS)", - "C(KC_0)", - "C(KC_PPLS)" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_UP", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_MS_BTN2", - "KC_PAUS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS" - ], - [ - "KC_NO", - "KC_NO", - "KC_NO", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO", - "KC_NO" - ], - [ - "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", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "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", - "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_NO", - "KC_NO", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/9e VIA keymap.json b/keyboards/solartempest/9e/9e VIA keymap.json deleted file mode 100644 index 21498184e2bd..000000000000 --- a/keyboards/solartempest/9e/9e VIA keymap.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "A9e" , - "vendorId": "0x414B", - "productId": "0x0009", - "lighting": "qmk_rgblight", - "matrix": { "rows": 4, "cols": 12 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - } - ], - "layouts": - { - "keymap": - [ - [{"x": 0.25},"0,0", {"x": 1}, "1,0",{"h": 1.5},"1,1","1,2", {"x": 1}, "0,3", "0,4", "0,5", "0,6", "0,7", "0,8", {"x": 1}, "0,9", {"h": 1.5},"0,10","0,11", {"x": 1}, "1,9",{"h": 1.5},"1,10","1,11"], - [{"w": 1.5},"0,1",{"x": 4.75}, "1,3", "1,4", "1,5", "1,6", "1,7", "1,8"], - [{"x": 0.25},"0,2", {"x": 1}, "2,0",{"h": 1.5},"2,1","2,2", {"x": 1}, "2,3", "2,4", "2,5", "2,6", "2,7", "2,8", {"x": 3}, "2,9",{"h": 1.5},"2,10","2,11"], - [{"x": 6.25, "y": 0.5}, "3,3",{"h": 1.5},"3,4","3,5", "3,6",{"h": 1.5},"3,7", "3,8", {"x": 3,"y": 1},"3,9",{"h": 1.5},"3,10","3,11"] - ] - } -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/A9e.c b/keyboards/solartempest/9e/A9e.c deleted file mode 100644 index 3fc20a1961c1..000000000000 --- a/keyboards/solartempest/9e/A9e.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#include "A9e.h" - -/* #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 )*/ -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { 36, 35, 34, 33, 32, }, - {18, 37, 5, 4, 3, 2, 1, 0, }, - {19, 21, 11, 10, 9, 8, 7, 6, }, - {20, 38, 17, 16, 15, 14, 13, 12, 22, 31, }, - { 39, 40, 23, 25, }, - { 24, }, - { 41, 26, 30, }, - { 27, 29, }, - { 28, NO_LED, NO_LED, NO_LED, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {110,110} - {150,98},{132,98},{116,98},{100,98},{84,98},{60,98}, - {150,80},{132,80},{116,80},{100,80},{84,80},{60,80}, - {150,64},{132,64},{116,64},{100,64},{84,64},{60,64}, - - {16,85},{7,76},{16,66},{24,76}, {192,74},{184,62}, - {192,52},{202,62}, {192,30},{184,20},{192,8},{202,19}, - - {209,32},{211,71},{191,105},{141,105},{101,104},{76,104}, - {52,98},{30,89},{30,63},{52,50},{141,44},{181,32} - }, { // LED Index to Flag. - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // 4 for 18-key backlight. - 1,1,1,1,1,1,1,1,1,1,1,1, // 1 for 3*4LED large rotary encoders. - 2,2,2,2,2,2,2,2,2,2,2,2 // 2 for 12-case underglow. - } }; -#endif diff --git a/keyboards/solartempest/9e/A9e.h b/keyboards/solartempest/9e/A9e.h deleted file mode 100644 index cc6481b19bb5..000000000000 --- a/keyboards/solartempest/9e/A9e.h +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#ifndef A9E_H - #define A9E_H - - #include "quantum.h" - - #define KEYMAP( \ - K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \ - K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \ - K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \ - K303, K304, K305, K306, K307, K308, K309, K310, K311 \ - ) { \ - { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \ - { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \ - { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \ - { KC_NO, KC_NO, KC_NO, K303, K304, K305, K306, K307, K308, K309, K310, K311 } \ - } -#endif diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h deleted file mode 100644 index a74b280bfb3b..000000000000 --- a/keyboards/solartempest/9e/config.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#ifndef CONFIG_H - #define CONFIG_H - - #include "config_common.h" - - /* USB Device descriptor parameter */ - #define VENDOR_ID 0x414B // AK - #define PRODUCT_ID 0x0009 // 9e - #define DEVICE_VER 0x0001 - #define MANUFACTURER Atlantis - #define PRODUCT A9e - #define DESCRIPTION Keyboard - - /* key matrix size */ - #define MATRIX_ROWS 4 - #define MATRIX_COLS 12 - - /* key matrix pins */ - #define MATRIX_ROW_PINS { F0, F1, F2, F3 } - #define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. - #define UNUSED_PINS - - /* encoder pins */ - #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. - #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } - #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. - //#define ENCODER_RESOLUTION 4 - - /* COL2ROW or ROW2COL */ - #define DIODE_DIRECTION COL2ROW - - /* Set 0 if debouncing isn't needed */ - #define DEBOUNCE 5 - - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ - #define LOCKING_SUPPORT_ENABLE - - /* Locking resynchronize hack */ - #define LOCKING_RESYNC_ENABLE - - - #define RGB_DI_PIN E6 - #ifdef RGB_DI_PIN - #define RGBLIGHT_ANIMATIONS - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // 18 keys, 9*3 encoders = 45 keys - #define RGBLED_NUM 42 // 18 keys + 12 encoders + 12 underglow for RGBLIGHT - #define RGBLIGHT_LIMIT_VAL 180 - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L01, L03, L05, L07, L08, \ - L10, L11, L12, L13, L14, L15, L16, L17, \ - L20, L21, L22, L23, L24, L25, L26, L27, \ - L30, L31, L32, L33, L34, L35, L36, L37, L38, L39, \ - L41, L46, L47, L49, \ - L58, \ - L67, L68, L69, \ - L77, L79, \ - L88 )\ - { \ - L17,L16,L15,L14,L13,L12,L27,L26,L25,L24,L23,L22,L37,L36,L35,L34,L33,L32,L10,L20,L30,L21,L38,L47,L58,L49,L68,L77,L88,L79,L69,L39,L08,L07,L05,L03,L01,L11,L31,L41,L46,L67, \ - } - //RGB LED logical order map - //Left encoder -> keys -> right encoders -> backlight - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 31, 32, 33, 34, 35, \ - 1, 30, 4, 5, 6, 7, 8, 9, \ - 0, 3, 10, 11, 12, 13, 14, 15, \ - 2, 41, 16, 17, 18, 19, 20, 21, 23, 36, \ - 40, 39, 22, 25, \ - 24, \ - 38, 27, 37, \ - 26, 29, \ - 28 ) - #endif - - #ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 42 // The number of LEDs connected for matrix, 18 keys + 12 encoders + 12 underglow - #define RGB_MATRIX_CENTER { 110, 110 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH - #endif - - -#endif diff --git a/keyboards/solartempest/9e/info.json b/keyboards/solartempest/9e/info.json deleted file mode 100644 index 82c46121d321..000000000000 --- a/keyboards/solartempest/9e/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "A9e", - "url": "", - "maintainer": "solartempest", - "width": 20.25, - "height": 5.5, - "layouts": { - "LAYOUT": { - "layout": [{"label":"0,0", "x":0.25, "y":0}, {"label":"1,0", "x":2.25, "y":0}, {"label":"1,1", "x":3.25, "y":0, "h":1.5}, {"label":"1,2", "x":4.25, "y":0}, {"label":"0,3", "x":6.25, "y":0}, {"label":"0,4", "x":7.25, "y":0}, {"label":"0,5", "x":8.25, "y":0}, {"label":"0,6", "x":9.25, "y":0}, {"label":"0,7", "x":10.25, "y":0}, {"label":"0,8", "x":11.25, "y":0}, {"label":"0,9", "x":13.25, "y":0}, {"label":"0,10", "x":14.25, "y":0, "h":1.5}, {"label":"0,11", "x":15.25, "y":0}, {"label":"1,9", "x":17.25, "y":0}, {"label":"1,10", "x":18.25, "y":0, "h":1.5}, {"label":"1,11", "x":19.25, "y":0}, {"label":"0,1", "x":0, "y":1, "w":1.5}, {"label":"1,3", "x":6.25, "y":1}, {"label":"1,4", "x":7.25, "y":1}, {"label":"1,5", "x":8.25, "y":1}, {"label":"1,6", "x":9.25, "y":1}, {"label":"1,7", "x":10.25, "y":1}, {"label":"1,8", "x":11.25, "y":1}, {"label":"0,2", "x":0.25, "y":2}, {"label":"2,0", "x":2.25, "y":2}, {"label":"2,1", "x":3.25, "y":2, "h":1.5}, {"label":"2,2", "x":4.25, "y":2}, {"label":"2,3", "x":6.25, "y":2}, {"label":"2,4", "x":7.25, "y":2}, {"label":"2,5", "x":8.25, "y":2}, {"label":"2,6", "x":9.25, "y":2}, {"label":"2,7", "x":10.25, "y":2}, {"label":"2,8", "x":11.25, "y":2}, {"label":"2,9", "x":15.25, "y":2}, {"label":"2,10", "x":16.25, "y":2, "h":1.5}, {"label":"2,11", "x":17.25, "y":2}, {"label":"3,3", "x":6.25, "y":3.5}, {"label":"3,4", "x":7.25, "y":3.5, "h":1.5}, {"label":"3,5", "x":8.25, "y":3.5}, {"label":"3,6", "x":9.25, "y":3.5}, {"label":"3,7", "x":10.25, "y":3.5, "h":1.5}, {"label":"3,8", "x":11.25, "y":3.5}, {"label":"3,9", "x":15.25, "y":4.5}, {"label":"3,10", "x":16.25, "y":4.5, "h":1.5}, {"label":"3,11", "x":17.25, "y":4.5}] - } - } -} diff --git a/keyboards/solartempest/9e/keymaps/default/keymap.c b/keyboards/solartempest/9e/keymaps/default/keymap.c deleted file mode 100644 index 916fa70260df..000000000000 --- a/keyboards/solartempest/9e/keymaps/default/keymap.c +++ /dev/null @@ -1,208 +0,0 @@ -#include "A9e.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - KEYMAP( - KC_L, KC_1, KC_R, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_L, KC_4, KC_R, - KC_L, KC_2, KC_R, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_L, KC_5, KC_R, - KC_L, KC_3, KC_R, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_L, KC_6, KC_R, - KC_UP, KC_8, KC_DOWN, RGB_VAI, KC_9, RGB_VAD, KC_L, KC_7, KC_R), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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), - - KEYMAP( - 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, 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) - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - - - switch (id) { - - } - return MACRO_NONE; -} - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* First encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); - } - } else if (index == 1) { /* Second encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 2)); - }} else if (index == 2) { /* 3 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 0)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 2)); - }} else if (index == 3) { /* 4 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 11)); - }} else if (index == 4) { /* 5 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 11)); - }} else if (index == 5) { /* 6 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 11)); - }} else if (index == 6) { /* 7 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 9)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 11)); - }} else if (index == 7) { /* 8 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 3)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 5)); - }} else if (index == 8) { /* 9 encoder */ - if (clockwise) { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 6)); - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 8)); - } - } -} - - - -void led_set_user(uint8_t usb_led) { - - if (usb_led & (1 << USB_LED_NUM_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_COMPOSE)) { - - } else { - - } - - if (usb_led & (1 << USB_LED_KANA)) { - - } else { - - } - -} \ No newline at end of file diff --git a/keyboards/solartempest/9e/keymaps/via/config.h b/keyboards/solartempest/9e/keymaps/via/config.h deleted file mode 100644 index 8c2aeca25c0e..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c deleted file mode 100644 index 6b53279aa6bd..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ /dev/null @@ -1,417 +0,0 @@ -#include "A9e.h" -#include QMK_KEYBOARD_H - -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML //Move window to monitor on left - }; -#endif - - -//Keymap physical layout as follows: -// E2 Keys Row 1 E4 E5 -// E1 Keys Row 2 E6 -// E3 Keys Row 3 -// E8 E9 E7 -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - KEYMAP( - KC_LEFT, KC__MUTE, KC_RIGHT, //Rotary Encoder 1 - TO(1), TO(2), TO(3), KC_P7, KC_P8, KC_P9, //Keys Row 1 - RGB_VAD, KC_SPACE, RGB_VAI, //Rotary Encoder 4 - RGB_MODE_REVERSE, RGB_TOG, RGB_MODE_FORWARD, //Rotary Encoder 2 - KC_CAPS, KC_SLCK, KC_NLCK, KC_P4, KC_P5, KC_P6, //Keys Row 2 - RGB_HUD, A(KC_F4), RGB_HUI, //Rotary Encoder 5 - ATABR, KC_MSTP, ATABF, //Rotary Encoder 3 - KC_WREF, KC_MYCM, KC_P0, KC_P1, KC_P2, KC_P3, //Keys Row 3 - KC_MS_WH_UP, C(KC_W), KC_MS_WH_DOWN, //Rotary Encoder 6 - C(S(KC_TAB)), KC_HOME, C(KC_TAB), //Rotary Encoder 8 - C(KC_PMNS), KC__MUTE, C(KC_PPLS), //Rotary Encoder 9 - C(S(KC_TAB)), C(KC_T), C(KC_TAB) //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), - KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 1 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 1 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 4 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 2 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 2 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 5 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 3 - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, //Keys Row 3 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 6 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 8 - KC_TRNS, KC_TRNS, KC_TRNS, //Rotary Encoder 9 - KC_TRNS, KC_TRNS, KC_TRNS //Rotary Encoder 7 - ), -}; - - -/*const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { //Code is not required - switch (id) { - } - return MACRO_NONE; -}*/ - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - } - return true; -} - - -bool encoder_update_user(uint8_t index, bool clockwise) -{ - if (index == 0) { /* 1 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 1) { /* 2 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 2) { /* 3 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 0}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 2}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 3) { /* 4 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 4) { /* 5 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col =9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 5) { /* 6 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 2, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 6) { /* 7 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 9}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 11}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 7) { /* 8 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 3}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 5}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - else if (index == 8) { /* 9 encoder */ - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = true, .time = (timer_read() | 1) /* time should not be 0 */}); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 8}, .pressed = false, .time = (timer_read() | 1) /* time should not be 0 */}); - } - } - return true; -} - - -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); -#endif - -void keyboard_post_init_user(void) -{ - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -} - - -#ifdef RGBLIGHT_ENABLE - layer_state_t layer_state_set_user(layer_state_t state) - { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,30); - break; - case 1: - rgblight_sethsv_noeeprom(30,255,30); - break; - case 2: - rgblight_sethsv_noeeprom(106,255,30); - break; - case 3: - rgblight_sethsv_noeeprom(215,255,30); - break; - default: - rgblight_sethsv_noeeprom(64,255,30); - } - return state; - } - - bool led_update_user(led_t led_state) - { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; - } -#endif diff --git a/keyboards/solartempest/9e/keymaps/via/rules.mk b/keyboards/solartempest/9e/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/9e/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md deleted file mode 100644 index 38b472d3326a..000000000000 --- a/keyboards/solartempest/9e/readme.md +++ /dev/null @@ -1,42 +0,0 @@ -# Atlantis 9e Macropad - -![Atlantis 9e](https://i.imgur.com/hFuZyXU.jpg) - -A 18-key macro pad with 9 pushbutton rotary encoders and underglow RGB per key RGB and for the case. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -* Keyboard Maintainer: solartempest -* Hardware Supported: Atlantis 9e -* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) - -# Custom Features: - -- 9 remappable rotary encoder controling a variety of different things! -- RGB underglow support and remapped to physical locations. -- Adds custom layer lighting with custom gradients for each and static colours for the switches. -- Adds white caps lock, scroll lock, and num lock key indicators on the top row. -- VIA support included by default. -- Allows for remapping of per-layer rotary encoder functions in VIA. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. - - -## Flashing - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb solartempest/9e -km via - -- Please note that QMK toolbox and configurator cannot be used to flash this board. -- You will need to use an ISP Programmer to directly flash the 9e. No board reset is required, as you will flash the MCU directly. -- I used Prog ISP V2.0 but other AVR programmers will also work. -- Use a 12P AWM 20624 ribbon cable with FCP-12P-1.0mm breakout board. Only 10 pins are used. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "9e VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "9e VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk deleted file mode 100644 index 782755a42c25..000000000000 --- a/keyboards/solartempest/9e/rules.mk +++ /dev/null @@ -1,63 +0,0 @@ -# MCU name -MCU = at90usb646 - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. - -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -RGBLIGHT_ENABLE = no # RGB LEDs -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control (In progress only) -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -KEY_LOCK_ENABLE = no # Key lock functionality -ENCODER_ENABLE = yes # Encoders -LTO_ENABLE = yes # Save space -LEADER_ENABLE = no # Leader keys -COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h deleted file mode 100644 index a22d17fcb719..000000000000 --- a/keyboards/solartempest/ps17/config.h +++ /dev/null @@ -1,145 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "config_common.h" - -// USB Device descriptor parameter -#define VENDOR_ID 0x414B // "AK" -#define PRODUCT_ID 0x0015 -#define DEVICE_VER 0x0002 // Ver2 -#define MANUFACTURER ATLANTIS -#define PRODUCT PS17 - -//#define ENCODER_RESOLUTION 2 // default is 4 - -// key matrix size -#ifdef RGBLIGHT_ENABLE - #define MATRIX_ROWS 6 -#endif -#ifdef RGB_MATRIX_ENABLE - #define MATRIX_ROWS 11 //Numpad actually has 6 rows. 5 rows were added for underglow RGB matrix to work together -#endif -#define MATRIX_COLS 4 - -// Encoder matrix -#define ENCODERS_PAD_A { D1 } -#define ENCODERS_PAD_B { D2 } -//#define ENCODER_DIRECTION_FLIP - -#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 -#define MATRIX_COL_PINS { F6, F7, D3, D6 } -#define UNUSED_PINS - -// COL2ROW or ROW2COL -#define DIODE_DIRECTION COL2ROW - -// For LED status indicators -#define LED_NUM_LOCK_PIN D0 -#define LED_CAPS_LOCK_PIN D5 -#define LED_SCROLL_LOCK_PIN D4 -#define LED_PIN_ON_STATE 0 - -#define RGB_DI_PIN B7 -#ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 28 // 17 key + 11 underglow for RGBLIGHT - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM - #define RGBLIGHT_LIMIT_VAL 180 // brightness level max is 255 - #define RGBLIGHT_LAYERS - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping - #define RGBLIGHT_ANIMATIONS - - //RGB LED Conversion macro from physical array to electric array - //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping - #define LED_LAYOUT( \ - L00, L05, \ - L10, L15, \ - L20, L21, L22, L23, L24, L25, \ - L31, L32, L33, L34, \ - L40, L41, L42, L43, L45, \ - L51, L52, L53, L54, \ - L60, L61, L62, L63, L65 ) \ - { \ - L21,L22,L23,L24,L31,L32,L33,L34,L41,L42,L43,L51,L52,L53,L54,L61,L63,L60,L40,L20,L10,L00,L05,L15,L25,L45,L65,L62, \ - } - //RGB LED logical order map - //Right->Left, Top->Bottom - #define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14, \ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 ) -#endif - -#ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects - #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow - #define RGB_MATRIX_CENTER { 126, 126 }; - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - #define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define COMBO_COUNT 6 //Number of tap combos used -#define COMBO_TERM 350 //Default combo time is 200ms - -#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/info.json b/keyboards/solartempest/ps17/info.json deleted file mode 100644 index 2806bc0128d6..000000000000 --- a/keyboards/solartempest/ps17/info.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "keyboard_name": "Atlantis PS17 Macropad", - "url": "", - "maintainer": "solartempest", - "width": 4, - "height": 6, - "layouts": { - "LAYOUT": { - "layout": [ - {"x":0, "y":0, "h":1.5}, - {"x":0, "y":1}, - {"x":0, "y":2, "h":1.5}, - - {"x":1, "y":0}, - {"x":1, "y":1}, - {"x":1, "y":2}, - {"x":1, "y":3}, - - {"x":2, "y":0}, - {"x":2, "y":1}, - {"x":2, "y":2}, - {"x":2, "y":3, "h":2}, - - {"x":3, "y":0}, - {"x":3, "y":1}, - {"x":3, "y":2}, - - {"x":4, "y":0}, - {"x":4, "y":1}, - {"x":4, "y":2}, - {"x":4, "y":3, "h":2}, - - {"x":5, "y":0, "w":2}, - {"x":5, "y":2}, - ] - } - } -} diff --git a/keyboards/solartempest/ps17/keymaps/default/keymap.c b/keyboards/solartempest/ps17/keymaps/default/keymap.c deleted file mode 100644 index 3dc48708a4ef..000000000000 --- a/keyboards/solartempest/ps17/keymaps/default/keymap.c +++ /dev/null @@ -1,365 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. Don't forget to update the VIA json as well. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use SAFE_RANGE when Via is disabled. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; - -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGUP, KC__MUTE, KC_PGDOWN, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, TD(TD_MINUS_NUMLOCK), - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_LEFT, KC_TRNS, KC_RIGHT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, - TO(0), KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO - ), - [_LAYER3] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABR, KC_TRNS, ATABF, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_SCROLLLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 140; - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 15; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: //Photoshop custom layer (macros and keys all done in VIA) - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3) { //Underglow LEDs - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } - else if (i == 6) {rgblight_sethsv_at(148,255,perkey_brightness+15,i);} //Text - light blue - else if (i == 5) {rgblight_sethsv_at(140,255,perkey_brightness+15,i);} //New Layer - light blue - else if (i == 15) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Marquee - rose - else if (i == 9) {rgblight_sethsv_at(190,255,underglow_brightness,i);} //Underglow to match - else if (i == 13) {rgblight_sethsv_at(180,255,perkey_brightness+15,i);} //Healing Brush - purple - else if (i == 12) {rgblight_sethsv_at(185,255,perkey_brightness+15,i);} //Clone - else if (i == 11) {rgblight_sethsv_at(190,255,perkey_brightness+15,i);} //Default - else if (i == 7) {rgblight_sethsv_at(195,255,perkey_brightness+15,i);} //Brush - else if (i == 18) {rgblight_sethsv_at(230,255,underglow_brightness,i);} //Underglow to match - else if (i == 17) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //copy - red - else if (i == 16) {rgblight_sethsv_at(3,255,perkey_brightness+15,i);} //Paste - else if (i == 22) {rgblight_sethsv_at(5,255,perkey_brightness+15,i);} //Undo - else if (i == 21) {rgblight_sethsv_at(0,255,perkey_brightness+15,i);} //Redo - else if (i == 26) {rgblight_sethsv_at(200,255,lastrow_brightness+15,i);} //Space - blue - else if (i == 24) {rgblight_sethsv_at(195,255,lastrow_brightness+15,i);} //Alt - else if (i == 20) {rgblight_sethsv_at(190,255,lastrow_brightness+15,i);} //Shift - else if (i == 27) {rgblight_sethsv_at(200,255,underglow_brightness,i);} //Underglow to match - else if (i == 10) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom in - else if (i == 19) {rgblight_sethsv_at(current_hue,255,lastrow_brightness,i);} //Zoom out - else if (i == 25) {rgblight_sethsv_at(180,255,underglow_brightness,i);} //Underglow to match - else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c deleted file mode 100644 index b75dc6fc7272..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ /dev/null @@ -1,507 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -// IDLE TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes - #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) - - //prototype functions - uint16_t get_timeout_threshold(void); - void timeout_reset_timer(void); - void timeout_update_threshold(bool increase); - void timeout_tick_timer(void); -#endif //IDLE_TIMEOUT_ENABLE - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status - }; -#endif - -#ifdef COMBO_ENABLE //Tap combos - enum combos { - kppls_7, //Hold plus and 7 to backspace - kppls_8, //Hold plus and 8 to delete - kpent_4, //Hold enter and 4 for left arrow - kpent_5, //Hold enter and 5 for down arrow - kpent_6, //Hold enter and 6 for right arrow - kpent_8, //Hold enter and 4'8 for up arrow - }; - const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; - const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - const uint16_t PROGMEM kpent4_combo[] = {KC_PENT, KC_KP_4, COMBO_END}; - const uint16_t PROGMEM kpent5_combo[] = {KC_PENT, KC_KP_5, COMBO_END}; - const uint16_t PROGMEM kpent6_combo[] = {KC_PENT, KC_KP_6, COMBO_END}; - const uint16_t PROGMEM kpent8_combo[] = {KC_PENT, KC_KP_8, COMBO_END}; - combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE), - [kpent_4] = COMBO(kpent4_combo, KC_LEFT), - [kpent_5] = COMBO(kpent5_combo, KC_DOWN), - [kpent_6] = COMBO(kpent6_combo, KC_RGHT), - [kpent_8] = COMBO(kpent8_combo, KC_UP) - }; -#endif - -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. - enum { - TD_MINUS_NUMLOCK, - }; - qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), - }; - //TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode (non-VIA only) -#endif - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - - -// TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - static uint16_t timeout_timer = 0; - static uint16_t timeout_counter = 0; //in minute intervals - static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - - uint16_t get_timeout_threshold(void) { - return timeout_threshold; - } - - void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; - }; - - void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; - }; - - void timeout_tick_timer(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - #ifdef RGBLIGHT_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgblight_toggle_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout - } - - __attribute__((weak)) void matrix_scan_keymap(void) {} -#endif // IDLE_TIMEOUT_ENABLE - - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - //tap_code(KC_UP); - //tap_code(KC_DOWN); - tap_code(KC_F24); - } - - #ifdef IDLE_TIMEOUT_ENABLE - timeout_tick_timer(); - matrix_scan_keymap(); - #endif // IDLE_TIMEOUT_ENABLE -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } - } - return true; - } - return true; -} - - -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - /*static uint16_t underglow_brightness = 140; //This code can be used to have edge and underglow LEDs selectively brighter - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 50; //for less shine-through at case edges (brighter is okay for FR4 plate) - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - */ - // This is what the LED layout is. - // 1, 0, - // 3, 2, - // 9, 8, 7, 6, 5, 4, - // 13, 12, 11, 10, - // 18, 17, 16, 15, 14, - // 22, 21, 20, 19, - // 27, 26, 25, 24, 23 - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 1: - rgblight_sethsv_noeeprom(5,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 2: - rgblight_sethsv_noeeprom(128,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 3: - rgblight_sethsv_noeeprom(215,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - case 4: - rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/config.h b/keyboards/solartempest/ps17/keymaps/via_bright/config.h deleted file mode 100644 index 4bbacd9a507b..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -// Set 10 layers for VIA -#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c b/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c deleted file mode 100644 index 6c422f8be38d..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/keymap.c +++ /dev/null @@ -1,332 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include "PS17.h" -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR //Alt tab reverse - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR //Alt tab reverse - }; -#endif - - -enum combos { //Tap combos - kppls_7, - kppls_8 -}; - -const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; -const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; - -combo_t key_combos[COMBO_COUNT] = { - [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), - [kppls_8] = COMBO(kppl8_combo, KC_DELETE) -}; - - -// Tap Dance declarations -enum { - TD_MINUS_NUMLOCK, -}; - -// Tap Dance definitions. Not VIA compatible. -qk_tap_dance_action_t tap_dance_actions[] = { - // Tap once for Escape, twice for Caps Lock - [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), -}; -//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode - - -enum layer_names { - _LAYER0, - _LAYER1, - _LAYER2, - _LAYER3, - _LAYER4, - _LAYER5, - _LAYER6, - _LAYER7, - _LAYER8, - _LAYER9 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( - KC_PGDOWN, KC__MUTE, KC_PGUP, - MO(_LAYER1), KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, - KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, - KC_KP_4, KC_KP_5, KC_KP_6, - KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, - KC_KP_0, KC_KP_DOT - ), - [_LAYER1] = LAYOUT( - KC_RIGHT, KC_TRNS, KC_LEFT, - KC_TRNS, KC_MEDIA_STOP, KC_SPACE, KC_NUMLOCK, - TO(_LAYER4), TG(_LAYER2), TG(_LAYER3), KC_BSPACE, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, RESET, - RESET, KC_TRNS - ), - [_LAYER2] = LAYOUT( - KC_RBRACKET, KC_TRNS, KC_LBRACKET, - TO(0), KC_B, KC_T, C(S(KC_N)), - KC_J, KC_S, KC_D, C(KC_MINS), - C(KC_C), C(KC_V), KC_M, - C(KC_N), C(S(KC_Z)), KC_LSHIFT, C(KC_PPLS), - KC_SPACE, KC_LALT - ), - [_LAYER3] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_WWW_REFRESH, KC_HOME, C(KC_T), - C(S(KC_TAB)), KC_UP, C(KC_TAB), C(KC_W), - KC_LEFT, KC_DOWN, KC_RIGHT, - KC_WWW_BACK, KC_SPACE, KC_WWW_FORWARD, KC_ENTER, - KC_PGDOWN, KC_PGUP - ), - [_LAYER4] = LAYOUT( - ATABF, KC_TRNS, ATABR, - TO(0), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, - KC_LEFT, KC_DOWN, KC_RIGHT, - C(S(KC_M)), LWIN(KC_F4), KC_TRNS, KC_NUMLOCK, - KC_F13, KC_F14 - ), - [_LAYER5] = LAYOUT( - 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 - ), - [_LAYER6] = LAYOUT( - 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 - ), - [_LAYER7] = LAYOUT( - 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 - ), - [_LAYER8] = LAYOUT( - 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 - ), - [_LAYER9] = LAYOUT( - 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 - ) -}; - - -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -}; - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours - switch (keycode) { //For super alt tab keycodes - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - break; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - break; - } - return true; -}; - - -void keyboard_post_init_user(void) { //run as last task in keyboard init - #ifdef RGB_MATRIX_ENABLE - //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode - //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode - //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state - rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode - rgb_matrix_sethsv_noeeprom(58, 255, 80); //sets LED to green-yellow - #endif - #ifdef RGBLIGHT_ENABLE - rgblight_enable(); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! - rgblight_sethsv(58, 255, 100); //Set lower default brightness when connected as the right side dimming is not yet in effect - layer_move(0); //start on layer 0 to get the lighting activated - #endif -}; - - -#ifdef RGBLIGHT_ENABLE -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness - static uint16_t underglow_brightness = 120; - static uint16_t perkey_brightness = 120; - static uint16_t lastrow_brightness = 30; //for less shine-through at case edges - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - - /*#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 1, 0, \ - 3, 2, \ - 9, 8, 7, 6, 5, 4, \ - 13, 12, 11, 10, \ - 18, 17, 16, 15, 14,\ - 22, 21, 20, 19, \ - 27, 26, 25, 24, 23 )*/ - - case _LAYER0: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER1: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER2: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER3: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - break; - case _LAYER4: - for (uint8_t i = 0; i < RGBLED_NUM; i++){ - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - }; - } - return state; - }; -#endif diff --git a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk b/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/ps17/keymaps/via_bright/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json deleted file mode 100644 index d906b47dbb7a..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA keymap.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "PS17" , - "vendorId": "0x414B", - "productId": "0x0015", - "lighting": "qmk_rgblight", - "matrix": { "rows": 6, "cols": 4 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - }, - { - "name": "Spam Arrow", - "title": "Toggle F24 on interval timer with Orange LED", - "shortName": "SA" - }, - { - "name": "Teams Muted", - "title": "Simply Change LED of 1 to show if muted or not", - "shortName": "TM" - } - ], - "layouts": - { - "keymap": - [ - [{"w": 1, "h":1.5},"0,0", "0,1", {"w": 1, "h":1.5},"0,2"], - [{"y":0.75}, "1,0", "1,1", "1,2", "1,3"], - [ "2,0", "2,1", "2,2", {"h":2},"2,3"], - [ "3,0","3,1","3,2"], - [ "4,0", "4,1", "4,2", {"h":2},"4,3"], - [{"w": 2},"5,0", "5,2"] - ] - } -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json deleted file mode 100644 index 6671cee90952..000000000000 --- a/keyboards/solartempest/ps17/ps17 VIA layout.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "name": "PS17", - "vendorProductId": 1095434261, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "C(KC_TAB)", - "C(KC_W)", - "C(S(KC_TAB))", - "KC_NO", - "TO(2)", - "KC_PSLS", - "KC_PAST", - "KC_PMNS", - "KC_P7", - "KC_P8", - "KC_P9", - "KC_PPLS", - "KC_P4", - "KC_P5", - "KC_P6", - "KC_NO", - "KC_P1", - "KC_P2", - "KC_P3", - "KC_PENT", - "KC_P0", - "KC_NO", - "KC_PDOT", - "KC_NO" - ], - [ - "KC_RGHT", - "KC_TRNS", - "KC_LEFT", - "KC_NO", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_NLCK", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_BSPC", - "TO(5)", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "TO(2)", - "TO(3)", - "TO(4)", - "KC_TRNS", - "RESET", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_VOLU", - "KC_TRNS", - "KC_VOLD", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_WWW_HOME", - "C(S(KC_B))", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "USER04", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "USER05", - "KC_TRNS", - "KC_SLCK", - "KC_NLCK", - "KC_F13", - "KC_NO", - "KC_F14", - "KC_NO" - ], - [ - "USER00", - "KC_TRNS", - "USER01", - "KC_NO", - "TO(0)", - "KC_WWW_REFRESH", - "KC_HOME", - "C(KC_T)", - "C(S(KC_TAB))", - "KC_UP", - "C(KC_TAB)", - "C(KC_W)", - "KC_LEFT", - "KC_DOWN", - "KC_RGHT", - "KC_NO", - "KC_WWW_BACK", - "KC_SPC", - "KC_WWW_FORWARD", - "KC_ENT", - "KC_PGDN", - "KC_NO", - "KC_PGUP", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_NO" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c deleted file mode 100644 index 54ae3f8ab053..000000000000 --- a/keyboards/solartempest/ps17/ps17.c +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include "ps17.h" - -bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality - #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - } - } - /*if (clockwise) { //This code only works for single keypresses with the rotary encoder - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); //Allow setting of keymap in VIA - } else { - tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); //Allow setting of keymap in VIA - }*/ - #endif - return true; -} - -#ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations - led_config_t g_led_config = { { - //Key matrix to LED index - { NO_LED, NO_LED, NO_LED, NO_LED, }, - { 0, 1, 2, 3, }, - { 4, 5, 6, 7, }, - { 8, 9, 10, NO_LED, }, - { 11, 12, 13, 14, }, - { 15, NO_LED, 16, NO_LED, }, - - //Underglow matrix to LED index - { 21, NO_LED, NO_LED, 22, }, - { 20, NO_LED, NO_LED, 23, }, - { 19, NO_LED, NO_LED, 24, }, - { 18, NO_LED, NO_LED, 25, }, - { 17, 27, NO_LED, 26, } - }, { - // LED Key Index to Physical Position, calculated with Plot Digitizer and scaled PCB Image with center at {126,126} - {74,165},{108,165},{144,165},{179,165},{74,129},{109,129},{143,129},{188,121},{74,95},{109,95},{143,95},{73,60},{109,60},{144,60},{188,51},{91,25},{144,25}, - - // LED underglow - {61,26},{61,88},{61,158},{61,197},{61,232},{192,232},{192,196},{192,158},{192,87},{183,26},{127,24} - }, { - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, // LED Index to Flag. 4 for key backlight. - 2,2,2,2,2,2,2,2,2,2,2 // 2 for case underglow. - } }; -#endif diff --git a/keyboards/solartempest/ps17/ps17.h b/keyboards/solartempest/ps17/ps17.h deleted file mode 100644 index 64ebc5766887..000000000000 --- a/keyboards/solartempest/ps17/ps17.h +++ /dev/null @@ -1,61 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once -#include "quantum.h" - -#ifdef RGBLIGHT_ENABLE - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - } -#endif - -#ifdef RGB_MATRIX_ENABLE // Five empty rows of keys were added for RGB Matrix purposes. You must map to a key otherwise it will not work. - #define LAYOUT( \ - K00, K01, K02, \ - K10, K11, K12, K13, \ - K20, K21, K22, K23, \ - K30, K31, K32, \ - K40, K41, K42, K43, \ - K50, K52 \ - ) { \ - { K00, K01, K02, KC_NO }, \ - { K10, K11, K12, K13 }, \ - { K20, K21, K22, K23 }, \ - { K30, K31, K32, KC_NO }, \ - { K40, K41, K42, K43 }, \ - { K50, KC_NO, K52, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - { KC_NO, KC_NO, KC_NO, KC_NO }, \ - } -#endif diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md deleted file mode 100644 index bd9504222899..000000000000 --- a/keyboards/solartempest/ps17/readme.md +++ /dev/null @@ -1,39 +0,0 @@ -# Atlantis PS17 Macropad - -![Atlantis PS17](https://i.imgur.com/Y0rkPgA.jpg) - -A 17-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -* Keyboard Maintainer: solartempest -* Hardware Supported: Atlantis PS17 v2 -* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) - -# Custom Features: - -- Remappable rotary encoder controls volume up/down/mute. -- Allows for remapping of per-layer rotary encoder functions in VIA. -- VIA support included by default. -- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). -- Adds custom layer lighting with custom gradients for each. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. -- Adds key combo functionality for backspace, delete, and arrow keys. - -## Make and Flashing - -Make example for this keyboard (after setting up your build environment): - - qmk compile -kb solartempest/ps17 -km via - -To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. -Flash with QMK toolbox, auto-flash. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "ps17 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "ps17 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk deleted file mode 100644 index 0b5dd1c97afa..000000000000 --- a/keyboards/solartempest/ps17/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu - -# Build Options -# change yes to no to disable -# - -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -UNICODE_ENABLE = yes # Unicode -ENCODER_ENABLE = yes # For encoder -LTO_ENABLE = yes # Reduce firmware size -COMBO_ENABLE = yes # Combos -TAP_DANCE_ENABLE = no # Tap dance - -IDLE_TIMEOUT_ENABLE = yes # Turn LEDs off after inactive time diff --git a/keyboards/solartempest/sofle/.noci b/keyboards/solartempest/sofle/.noci deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h deleted file mode 100644 index f0292a3d05e5..000000000000 --- a/keyboards/solartempest/sofle/config.h +++ /dev/null @@ -1,119 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#pragma once -#include "config_common.h" - -// USB Device descriptor parameter -#define VENDOR_ID 0xFC32 -#define PRODUCT_ID 0x1287 //Original is 0x0287 but do not want to load default VIA keymap -#define DEVICE_VER 0x0002 -#define MANUFACTURER Keyhive -#define PRODUCT Solarius_Sofle //VIA version for this PCB is incorrect for the bottom row -#define DESCRIPTION Rose version of the Sofle - -// Set which side is master -//#define EE_HANDS //Use this instead for EEPROM setting -#define MASTER_LEFT - -// Key matrix size -// Rows are doubled-up. Added extra column for rotary encoder VIA mapping. -#define MATRIX_ROWS 10 -#define MATRIX_COLS 7 - -// wiring of each half -#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. -#define MATRIX_ROW_PINS_RIGHT { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. -#define DIODE_DIRECTION COL2ROW - -#define DEBOUNCE 5 - -// Encoder support -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F4 } -#define ENCODERS_PAD_A_RIGHT { F4 } -#define ENCODERS_PAD_B_RIGHT { F5 } -#define ENCODER_RESOLUTIONS { 4, 2 } //Left encoder seems to have double-output issue but right does not. - -#define TAP_CODE_DELAY 10 -#define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer -#define TAPPING_TERM 160 //Tapping duration in ms - -// Communication between sides -#define SOFT_SERIAL_PIN D2 - -// Disabled for LTO -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION - -// Disabled to save space -#define NO_ACTION_ONESHOT //Save 244 bytes -#define NO_RESET //Save 40 bytes - -// OLED settings -#ifdef OLED_ENABLE - #define OLED_TIMEOUT 80000 //120000 = 2 minutes in ms. - #define OLED_BRIGHTNESS 90 // Default 100. - #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). - #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). -#endif - -// Combo settings -#ifdef COMBO_ENABLE - #define COMBO_COUNT 1 //Number of tap combos used - #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. -#endif - -// Add RGB underglow -#define RGB_DI_PIN D3 -#define RGBLED_NUM 74 -#define RGBLED_SPLIT {37,37} -//#define RGBLIGHT_ANIMATIONS // Very memory intensive -#define RGBLIGHT_EFFECT_STATIC_GRADIENT //Firmware size (+262) -#define RGBLIGHT_LIMIT_VAL 160 //Power draw may exceed 0.6A at max brightness with white colour. -#define RGBLIGHT_LAYERS -#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_SLEEP - - -//RGB LED Conversion macro from physical array to electric array (+146 to firmware size) -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -#define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ - L10, L12, L14, L19, L111, L113, \ - L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ - L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ - L40, L42, L44, L49, L411, L413, \ - L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ - L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ - L71, L76, L77, L712 )\ - { \ - L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ - } -//RGB LED logical order map -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ - 4, 16, 28, 45, 57, 69, \ - 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ - 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ - 1, 13, 25, 48, 60, 72, \ - 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ - 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ - 10, 36, 37, 63 ) diff --git a/keyboards/solartempest/sofle/info.json b/keyboards/solartempest/sofle/info.json deleted file mode 100644 index 16147f76dd51..000000000000 --- a/keyboards/solartempest/sofle/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "Solarius_Sofle", - "url": "", - "maintainer": "solartempest", - "width": 15, - "height": 8.0, - "layouts": { - "LAYOUT": { - "layout": [{"label":"0,3", "x":3.25, "y":0.5}, {"label":"5,3", "x":13.25, "y":0.5}, {"label":"0,2", "x":2.25, "y":0.63}, {"label":"0,4", "x":4.25, "y":0.63}, {"label":"5,4", "x":12.25, "y":0.63}, {"label":"5,2", "x":14.25, "y":0.63}, {"label":"0,5", "x":5.25, "y":0.73}, {"label":"5,5", "x":11.25, "y":0.73}, {"label":"0,0", "x":0.25, "y":0.86}, {"label":"0,1", "x":1.25, "y":0.86}, {"label":"5,1", "x":15.25, "y":0.86}, {"label":"5,0", "x":16.25, "y":0.86}, {"label":"1,3", "x":3.25, "y":1.46}, {"label":"1,6", "x":6.45, "y":1.46}, {"label":"6,6", "x":10.05, "y":1.46}, {"label":"6,3", "x":13.25, "y":1.46}, {"label":"1,2", "x":2.25, "y":1.56}, {"label":"1,4", "x":4.25, "y":1.56}, {"label":"6,4", "x":12.25, "y":1.56}, {"label":"6,2", "x":14.25, "y":1.56}, {"label":"1,5", "x":5.25, "y":1.66}, {"label":"6,5", "x":11.25, "y":1.66}, {"label":"1,0", "x":0.25, "y":1.76}, {"label":"1,1", "x":1.25, "y":1.76}, {"label":"6,1", "x":15.25, "y":1.76}, {"label":"6,0", "x":16.25, "y":1.76}, {"label":"2,3", "x":3.25, "y":2.36}, {"label":"4,0", "x":6.45, "y":2.36}, {"label":"9,5", "x":10.05, "y":2.36}, {"label":"7,3", "x":13.25, "y":2.36}, {"label":"2,2", "x":2.25, "y":2.46}, {"label":"2,4", "x":4.25, "y":2.46}, {"label":"7,4", "x":12.25, "y":2.46}, {"label":"7,2", "x":14.25, "y":2.46}, {"label":"2,5", "x":5.25, "y":2.56}, {"label":"7,5", "x":11.25, "y":2.56}, {"label":"2,0", "x":0.25, "y":2.66}, {"label":"2,1", "x":1.25, "y":2.66}, {"label":"7,1", "x":15.25, "y":2.66}, {"label":"7,0", "x":16.25, "y":2.66}, {"label":"3,3", "x":3.25, "y":3.26}, {"label":"3,6", "x":6.45, "y":3.26}, {"label":"8,6", "x":10.05, "y":3.26}, {"label":"8,3", "x":13.25, "y":3.26}, {"label":"3,2", "x":2.25, "y":3.36}, {"label":"3,4", "x":4.25, "y":3.36}, {"label":"8,4", "x":12.25, "y":3.36}, {"label":"8,2", "x":14.25, "y":3.36}, {"label":"3,5", "x":5.25, "y":3.46}, {"label":"8,5", "x":11.25, "y":3.46}, {"label":"3,0", "x":0.25, "y":3.56}, {"label":"3,1", "x":1.25, "y":3.56}, {"label":"8,1", "x":15.25, "y":3.56}, {"label":"8,0", "x":16.25, "y":3.56}, {"label":"4,2", "x":3.25, "y":4.26}, {"label":"9,1", "x":13.25, "y":4.26}, {"label":"4,3", "x":4.25, "y":4.36}, {"label":"9,2", "x":12.25, "y":4.36}, {"label":"4,1", "x":2.25, "y":4.36}, {"label":"9,0", "x":14.25, "y":4.36}, {"label":"4,4", "x":1, "y":9.96}, {"label":"4,5", "x":3.35, "y":8.71, "h":1.5}, {"label":"9,3", "x":0.8, "y":11.56}, {"label":"9,4", "x":-2.08, "y":11.01, "h":1.5}] - } - } -} diff --git a/keyboards/solartempest/sofle/keymaps/via/bongocat.c b/keyboards/solartempest/sofle/keymaps/via/bongocat.c deleted file mode 100644 index 0a60f6bee0e5..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/bongocat.c +++ /dev/null @@ -1,212 +0,0 @@ -/* Code is by foureight84 and modified slightly. This may need some updates for the 2021-08-30 breaking changes. -Check out their post and other work! -https://www.reddit.com/r/olkb/comments/lxw6jw/adapted_bongo_cat_animation_to_the_sofle_keyboard/ -https://github.com/foureight84/qmk_firmware/tree/sofle_foureight84 */ - -#ifdef OLED_ENABLE -char wpm_str[4]; -led_t led_usb_state; - -static void print_status_narrow(void) { -/* // Print current mode - oled_write_P(PSTR("\n\n"), false); - oled_write_ln_P(PSTR("MODE"), false); - oled_write_ln_P(PSTR(""), false); - if (keymap_config.swap_lctl_lgui) { - oled_write_ln_P(PSTR("MAC"), false); - } else { - oled_write_ln_P(PSTR("WIN"), false); - } - - switch (get_highest_layer(default_layer_state)) { - case _QWERTY: - oled_write_ln_P(PSTR("Qwrt"), false); - break; - case _COLEMAK: - oled_write_ln_P(PSTR("Clmk"), false); - break; - default: - oled_write_P(PSTR("Undef"), false); - } - oled_write_P(PSTR("\n\n"), false);*/ - // Print current layer - oled_set_cursor(0,2); - oled_write("LAYER", false); - - oled_set_cursor(0,3); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write("Base ", false); - break; - case 1: - oled_write("Game ", false); - break; - case 3: - oled_write("Raise", false); - break; - case 2: - oled_write("Lower", false); - break; - } - - /* lock status */ - oled_set_cursor(0,6); - oled_write("LOCK", false); - oled_set_cursor(0,7); - oled_write("Caps", led_usb_state.caps_lock); - oled_set_cursor(0,8); - oled_write("Num", !(led_usb_state.num_lock)); - oled_set_cursor(0,9); - oled_write("Scrl", led_usb_state.scroll_lock); -} - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; -} - -/* Animation bit by j-inc https://github.com/qmk/qmk_firmware/tree/master/keyboards/kyria/keymaps/j-inc */ -// WPM-responsive animation stuff here -#define IDLE_FRAMES 5 -#define IDLE_SPEED 20 // below this wpm value your animation will idle. Default 30. - -// #define PREP_FRAMES 1 // uncomment if >1 - -#define TAP_FRAMES 2 -#define TAP_SPEED 40 // above this wpm value typing animation to trigger. Default 60. - -#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms -// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing -#define ANIM_SIZE 320 // number of bytes in array, minimize for adequate firmware size, max is 1024 - -uint32_t anim_timer = 0; -uint32_t anim_sleep = 0; -uint8_t current_idle_frame = 0; -// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1 -uint8_t current_tap_frame = 0; - -// Implementation credit j-inc(/James Incandenza), pixelbenny, and obosob. -// Bongo cat images changed and adapted for sofle keyboard oled size. -// Original gif can be found here: https://www.pixilart.com/art/bongo-cat-bd2a8e9323aa705 -static void render_anim(void) { - static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = { - { - 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, - 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, - 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, - 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, - 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, - 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, - 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, - } - }; - static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = { - { - 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0xff, 0xff, 0xff, 0x7c, 0x70, 0x40, 0x40, - 0x61, 0x5e, 0x80, 0xc0, 0xbc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0f, 0x3f, 0xf8, 0xf0, 0xf0, 0x20, - 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, - 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, - 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0x1e, 0x01, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0x78, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x60, 0x80, 0x00, 0x00, 0xe1, 0x1e, 0x01, 0xf0, 0x8f, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, - 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x19, - 0x19, 0x41, 0x0a, 0x22, 0x84, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, - 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01, - }, - { - 0x00, 0xc0, 0x3e, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, - 0xe1, 0x1e, 0x00, 0xc0, 0xbc, 0x83, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3c, 0x03, 0x00, 0x00, 0x00, 0x80, 0x78, 0x87, 0x00, 0x03, 0x0c, 0x30, 0xc0, 0x00, 0xe0, 0x1f, - 0x01, 0xc0, 0x3c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x31, 0x05, 0x41, 0x12, 0x04, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x87, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0xc0, 0x3f, 0x03, 0x80, - 0x78, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x03, 0x05, - 0x00, 0x00, 0xf0, 0xcf, 0x00, 0x01, 0x06, 0x18, 0x60, 0x80, 0x80, 0x79, 0x07, 0x80, 0x78, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xfe, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xc0, 0x00, 0xf9, 0x07, 0x80, 0x78, 0x07, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2c, 0x32, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x07, 0x03, 0x0f, 0x3f, 0xff, 0x03, 0x01, 0x03, 0x07, 0x18, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x60, 0x80, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x3c, 0x00, 0x00, 0x00, 0x00, - 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x09, 0x0e, 0x0e, 0x01, 0xf3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x09, 0x70, 0x80, - 0x00, 0x00, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x04, 0x02, 0x01 - }, - }; - - //assumes 1 frame prep stage - void animation_phase(void) { - if(get_current_wpm() <=IDLE_SPEED){ - /* - current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES; - oled_write_raw_P(idle[abs((IDLE_FRAMES-1)-current_idle_frame)], ANIM_SIZE); - */ - oled_write_raw_P(idle[0], ANIM_SIZE); - } - /* - if(get_current_wpm() >IDLE_SPEED && get_current_wpm() 1 - oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1 - }*/ - if(get_current_wpm() >=TAP_SPEED){ - current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES; - oled_write_raw_P(tap[abs((TAP_FRAMES-1)-current_tap_frame)], ANIM_SIZE); - } - } - if(get_current_wpm() != 000) { - oled_on(); // not essential but turns on animation OLED with any alpha keypress - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - anim_sleep = timer_read32(); - } else { - if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } else { - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animation_phase(); - } - } - } -} - -void oled_task_user(void) { - led_usb_state = host_keyboard_led_state(); - if (is_keyboard_master()) { - print_status_narrow(); - } else { - oled_set_cursor(0,1); - render_anim(); - oled_set_cursor(0,13); - sprintf(wpm_str, " %03d\n WPM", get_current_wpm()); - oled_write(wpm_str, false); - } -} -#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/config.h b/keyboards/solartempest/sofle/keymaps/via/config.h deleted file mode 100644 index 8970276c8774..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#pragma once - -// Set number of layers for VIA, each is 30 bytes -#define DYNAMIC_KEYMAP_LAYER_COUNT 4 diff --git a/keyboards/solartempest/sofle/keymaps/via/encoder.c b/keyboards/solartempest/sofle/keymaps/via/encoder.c deleted file mode 100644 index 58bffb8e91c3..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/encoder.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { //Allows for remapping of rotary encoder functions in VIA - if (index == 0) { - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 1, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 3, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - } else if (index == 1) { - if (clockwise) { //Double check rotation on new flash versus via mapping - action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 6, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 8, .col = 6}, .pressed = false, .time = (timer_read() | 1) }); - } - } - return true; -} -#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c deleted file mode 100644 index a61dfcd01236..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ /dev/null @@ -1,334 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#include QMK_KEYBOARD_H -#include //This is required for OLED sprintf. -#include "encoder.c" -#ifdef OLED_ENABLE - //#include "oled.c" //Stock OLED code - //Note that the keyboard animations below take a large amount of space! - //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. Disable RGBLIGHT to make enough space. - //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. - #include "snakey.c" //OLED code for Snakey, customized from Luna. -#endif - -#ifdef RGBLIGHT_ENABLE - extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT -#endif - - -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; -bool lshift_held = false; // LShift Backspace Delete whole Word Code -bool rshift_held = false; // RShift Backspace Delete whole Word Code -static uint16_t held_shift = 0; -#ifdef VIA_ENABLE - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = USER00, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) - }; -#else - enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. - ATABF = SAFE_RANGE, //Alt tab forwards - ATABR, //Alt tab reverse - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SBS //Shift backspace to delete whole word (Swap KC_BPSC with this) - }; -#endif - - -#ifdef COMBO_ENABLE //(+42 firmware size for this combo). SBS takes care of this combo, so it is an example only and can be replaced with others as required. - enum combo_events { - sbs_delword - }; - - const uint16_t PROGMEM delword_combo[] = {KC_LSFT, KC_BSPC, COMBO_END}; //Shift-Backspace to delete whole words - combo_t key_combos[COMBO_COUNT] = { - [sbs_delword] = COMBO_ACTION(delword_combo) - }; - - void process_combo_event(uint16_t combo_index, bool pressed) { - switch(combo_index) { - case sbs_delword: - if (pressed) { - tap_code16(LCTL(KC_BSPC)); - } - break; - } - } -#endif - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these layouts to save space when using only VIA. -/* QWERTY - * ,-----------------------------------------. ,-----------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | ESC | Q | W | E | R | T | | Y | U | I | O | P | Bspc | - * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Tab | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' | - * |------+------+------+------+------+------| Enc | | Enc |------+------+------+------+------+------| - * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift| - * `-----------------------------------------/ / \ \-----------------------------------------' - * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI | - * | | | | |/ / \ \ | | | | | - * `----------------------------------' '------''---------------------------' - */ -/*[0] = LAYOUT( - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, - KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC__VOLUP, KC_PGUP,KC_Y, KC_U, KC_I, KC_O, KC_P, SBS, - KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC__VOLDOWN,KC_PGDN,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, - KC_LGUI,KC_LALT,KC_LCTRL,MO(2), KC_ENT, KC_SPC, MO(3), KC_RCTRL,KC_RALT,KC_RGUI -) -, -[1] = LAYOUT( - KC_PSCR, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F4, - KC_T, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, - KC_G, KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, - KC_ENT, KC_B, KC_TRNS, KC_PAUS, KC_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -), -[2] = LAYOUT( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_RGHT, KC_TRNS,KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12, - KC_WREF, KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_TRNS, KC_TRNS,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_PIPE, - KC_TRNS, KC_EQL, KC_MINS,KC_PLUS,KC_LCBR,KC_LCBR,KC_LEFT, KC_TRNS,KC_LBRC,KC_RBRC,KC_DOT, KC_COLN,KC_BSLS, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS -), -[3] = LAYOUT( - NML, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NMR, - KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ATABF, NMR, KC_WFWD, KC_HOME, KC_UP, KC_END, KC_INS, KC_DEL, - KC_SLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ATABR, NML, KC_CAPS, KC_PGUP, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -)*/ -}; - - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { - if (is_alt_tab_active) { - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } -} - - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - #ifdef KEYBOARD_PET - if (record->event.pressed) { //Drashna's OLED timeout off code for animations - oled_timer = timer_read32(); - } - #endif - - switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; - case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; - - case NMR: //Move window to next monitor on right - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_RIGHT); - unregister_code(KC_RIGHT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - case NML: //Move window to next monitor on left - if (record->event.pressed) { - register_code(KC_LSFT); - register_code(KC_LWIN); - register_code(KC_LEFT); - unregister_code(KC_LEFT); - unregister_code(KC_LWIN); - unregister_code(KC_LSFT); - } - return true; - - case KC_RSFT: //Shift Backspace to Delete Whole Word. Inspired by Hellsingcoder. - rshift_held = record->event.pressed; - held_shift = keycode; - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET - if (record->event.pressed) { - isBarking = true; - } else { - isBarking = false; - } - #endif - return true; - case KC_LSFT: - lshift_held = record->event.pressed; - held_shift = keycode; - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET - if (record->event.pressed) { - isBarking = true; - } else { - isBarking = false; - } - #endif - return true; - case SBS: - if (record->event.pressed) { - if (lshift_held) { - unregister_code(held_shift); - register_code(KC_LCTL); - register_code(KC_BSPC); - } else if (rshift_held) { - unregister_code(held_shift); - register_code(KC_LCTL); - register_code(KC_DEL); - } else { - register_code(KC_BSPC); - } - } else { - unregister_code(KC_BSPC); - unregister_code(KC_DEL); - unregister_code(KC_LCTL); - if (lshift_held || rshift_held) { - register_code(held_shift); - } - } - return false; - - // KEYBOARD PET STATUS - #ifdef KEYBOARD_PET - case KC_LCTL: - case KC_RCTL: - if (record->event.pressed) { - isSneaking = true; - } else { - isSneaking = false; - } - return true; - case KC_SPC: - if (record->event.pressed) { - isJumping = true; - showedJump = false; - } else { - isJumping = false; - } - return true; - #endif - } - return true; -} - - -#ifdef OLED_ENABLE - void suspend_power_down_user(void) { //turn off OLEDs when computer is sleeping - oled_off(); - } -#endif - - -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); //Red-orange (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Change range for multiple keys with same colour) - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication (No dedicated LED). Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); - - - void keyboard_post_init_user(void) - { - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated - } - - - layer_state_t layer_state_set_user(layer_state_t state) - { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well - case 0: - rgblight_sethsv_noeeprom(50,255,80); - break; - case 1: - rgblight_sethsv_noeeprom(252,255,80); - break; - case 2: - rgblight_sethsv_noeeprom(118,255,80); - break; - case 3: - rgblight_sethsv_noeeprom(218,255,80); - } - return state; - } - - - bool led_update_user(led_t led_state) - { - rgblight_set_layer_state(4, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(5, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(6, led_state.scroll_lock); //Activate scrollock lighting layer - return true; - } -#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/luna.c b/keyboards/solartempest/sofle/keymaps/via/luna.c deleted file mode 100644 index 46721a60e743..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/luna.c +++ /dev/null @@ -1,309 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 Luna code adapted from HellSingCoder and Jackasaur - * 2021 QMK - * - * 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 o - * 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 . - */ - -//SSD1306 OLED update loop -#ifdef OLED_ENABLE - /* KEYBOARD PET START */ - #define KEYBOARD_PET - - /* settings */ - #define MIN_WALK_SPEED 10 - #define MIN_RUN_SPEED 40 - - /* advanced settings */ - #define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms - #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 - - /* timers */ - uint32_t anim_timer = 0; - uint32_t anim_sleep = 0; - - /* current frame */ - uint8_t current_frame = 0; - - /* status variables */ - int current_wpm_read = 0; - uint32_t oled_timer = 0; //For Keyboard pet OLED timeout with animations, code by Drashna. - led_t led_usb_state; - - bool isSneaking = false; - bool isJumping = false; - bool showedJump = true; - bool isBarking = false; - - - /* logic */ - static void render_luna(int LUNA_X, int LUNA_Y) { - - /* Sit */ - static const char PROGMEM sit[2][ANIM_SIZE] = { - /* 'sit1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, - 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, - 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'sit2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, - 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, - 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } - }; - - /* Walk */ - static const char PROGMEM walk[2][ANIM_SIZE] = { - /* 'walk1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, - 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, - 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'walk2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, - 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Run */ - static const char PROGMEM run[2][ANIM_SIZE] = { - /* 'run1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, - 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, - 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'run2', 32x22px */ - { - 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, - 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Bark */ - static const char PROGMEM bark[2][ANIM_SIZE] = { - /* 'bark1', 32x22px */ - { - 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, - 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, - 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'bark2', 32x22px */ - { - 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, - 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, - 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Sneak */ - static const char PROGMEM sneak[2][ANIM_SIZE] = { - /* 'sneak1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, - 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, - 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'sneak2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, - 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, - 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* animation */ - void animate_luna(void) { - - /* jump */ - if (isJumping || !showedJump) { - - /* clear */ - oled_set_cursor(LUNA_X,LUNA_Y +2); - oled_write(" ", false); - - oled_set_cursor(LUNA_X,LUNA_Y -1); - - showedJump = true; - } else { - - /* clear */ - oled_set_cursor(LUNA_X,LUNA_Y -1); - oled_write(" ", false); - - oled_set_cursor(LUNA_X,LUNA_Y); - } - - /* switch frame */ - current_frame = (current_frame + 1) % 2; - - /* current status */ - if(isBarking) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); - - } else if(isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); - - } else if(current_wpm_read <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); - - } else if(current_wpm_read <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); - - } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); - } - } - - /* animation timer */ - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animate_luna(); - } - } - - /* KEYBOARD PET END */ - - static void print_logo_narrow(void) { - oled_set_cursor(0,3); - oled_write("SOLAR", false); - oled_set_cursor(0,4); - oled_write("TMPST", false); - - /* wpm counter */ - char wpm_str[8]; - oled_set_cursor(0,10); - sprintf(wpm_str, " %03d", current_wpm_read); - oled_write(wpm_str, false); - oled_set_cursor(0,11); - oled_write(" wpm", false); - } - - static void print_status_narrow(void) { - /*switch (get_highest_layer(default_layer_state)) { //Not required as only one default layer is used - case 0: - oled_write("SOLAR", false); - break; - case 1: - oled_write("GAME", false); - break; - default: - oled_write("UNDEF", false); - }*/ - - /* Print current layer */ - oled_set_cursor(0,2); - oled_write("LAYER", false); - - oled_set_cursor(0,3); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write("Base ", false); - break; - case 1: - oled_write("Game ", false); - break; - case 3: - oled_write("Raise", false); - break; - case 2: - oled_write("Lower", false); - break; - } - - /* lock status */ - oled_set_cursor(0,6); - oled_write("LOCK", false); - oled_set_cursor(0,7); - oled_write("Caps", led_usb_state.caps_lock); - oled_set_cursor(0,8); - oled_write("Num", !(led_usb_state.num_lock)); - oled_set_cursor(0,9); - oled_write("Scrl", led_usb_state.scroll_lock); - - /* KEYBOARD PET RENDER START */ - render_luna(0,13); - /* KEYBOARD PET RENDER END */ - } - - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; - } - - void oled_task_user(void) { - /* KEYBOARD PET VARIABLES START */ - current_wpm_read = get_current_wpm(); - led_usb_state = host_keyboard_led_state(); - /* KEYBOARD PET VARIABLES END */ - - - if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations - if (timer_elapsed32(oled_timer) > 30000) { - oled_off(); - return; - } else { - oled_on(); - } - } - - if (is_keyboard_master()) { - print_status_narrow(); - } else { - print_logo_narrow(); - } - } -#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c deleted file mode 100644 index 6aa6a7a8b5b7..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c +++ /dev/null @@ -1,555 +0,0 @@ -/* - * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) - * - * 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 . - */ - -#include "ocean_dream.h" -#include "quantum.h" -#include "print.h" - -// Calculated Parameters -#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch -#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch -#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch -#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch -#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch - -uint8_t animation_counter = 0; // global animation counter. -bool is_calm = false; -uint32_t starry_night_anim_timer = 0; -uint32_t starry_night_anim_sleep = 0; -static int current_wpm = 0; - -static uint8_t increment_counter(uint8_t counter, uint8_t max) { - counter++; - if (counter >= max) { - return 0; - } else { - return counter; - } -} - -#ifdef ENABLE_WAVE -static uint8_t decrement_counter(uint8_t counter, uint8_t max) { - counter--; - if (counter < 0 || counter > max) { - return max; - } else { - return counter; - } -} -#endif - -#ifdef ENABLE_MOON // region -# ifndef STATIC_MOON -uint8_t moon_animation_frame = 0; // keeps track of current moon frame -uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame -# endif - -# ifdef STATIC_MOON -static const char PROGMEM moon[6] = { - 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81, -}; -# endif - -# ifndef STATIC_MOON -static const char PROGMEM moon_animation[14][8] = { - // clang-format off - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - // clang-format on -}; -# endif - -static void draw_moon(void) { -# ifdef STATIC_MOON - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon, 6); -# endif -# ifndef STATIC_MOON - moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES); - if (moon_animation_counter == 0) { - moon_animation_frame = increment_counter(moon_animation_frame, 14); - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon_animation[moon_animation_frame], 8); - } -# endif -} -#endif // endregion - -#ifdef ENABLE_WAVE // region -uint8_t starry_night_wave_frame_width_counter = 31; -uint8_t rough_waves_frame_counter = 0; - -// clang-format off -static const char PROGMEM ocean_top[8][32] = { - // still ocean - { - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // small ripples - { - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // level 2 ripples - { - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - }, - // level 3 waves - { - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - }, -}; -static const char PROGMEM ocean_bottom[8][32] = { - // still ocean - { - 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21, - 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44, - 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00, - }, - // small ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 2 ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 3 waves - { - 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11, - 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04, - 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00, - }, - { - 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06, - 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10, - 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00, - 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80, - }, - { - 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21, - 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08, - 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00, - }, -}; -// clang-format on - -static void animate_waves(void) { - starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type - rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type - - void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) { - oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset); - oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH); - } - - for (int i = 0; i < WIDTH; ++i) { - uint16_t offset = OCEAN_LINE * WIDTH + i; - uint8_t byte_index = starry_night_wave_frame_width_counter + i; - if (byte_index >= WIDTH) { - byte_index = byte_index - WIDTH; - } - if (is_calm || current_wpm <= WAVE_CALM) { - draw_ocean(0, offset, byte_index); - } else if (current_wpm <= WAVE_HEAVY_STORM) { - draw_ocean(1, offset, byte_index); - } else if (current_wpm <= WAVE_HURRICANE) { - draw_ocean(2, offset, byte_index); - } else { - draw_ocean(3 + rough_waves_frame_counter, offset, byte_index); - } - } -} -#endif // endregion - -#ifdef ENABLE_ISLAND // region -uint8_t island_frame_1 = 0; - -// clang-format off -// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!) - -// To save space and allow the shooting stars to be seen, only draw the tree on every frame. -// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the -// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes -static const char PROGMEM islandRightTop[6][14] = { - {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,}, - {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,}, - {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,}, - {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,}, - {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,}, - {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,}, -}; -static const char PROGMEM islandRightBottom[6][14] = { - {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,}, - {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,}, -}; -static const char PROGMEM islandLeft[18] = { - 0x80, 0x40, 0x40, 0x40, 0x40, 0x60, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x60, 0x40, 0x40, -}; -// clang-format on - -static void animate_island(void) { - if (animation_counter == 0) { - island_frame_1 = increment_counter(island_frame_1, 2); - } - - void draw_island_parts(uint8_t frame) { - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE); - oled_write_raw_P(islandRightTop[frame], 14); - oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1); - oled_write_raw_P(islandLeft, 18); - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1); - oled_write_raw_P(islandRightBottom[frame], 14); - } - - if (is_calm || current_wpm < ISLAND_CALM) { - draw_island_parts(0); - } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) { - draw_island_parts(island_frame_1 + 1); - } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) { - draw_island_parts(island_frame_1 + 2); - } else { - draw_island_parts(island_frame_1 + 4); - } -} -#endif // endregion - -#ifdef ENABLE_STARS // region -bool stars_setup = false; // only setup stars once, then we just twinkle them -struct Coordinate { - int x; - int y; - bool exists; -}; - -struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates - -/** - * Setup all the initial stars on the screen - * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES - * where each line is made up of 8x8 pixel groups, that are populated by a single star. - * - * Not sure how this function will work with larger or smaller screens. - * It should be fine, as long as the screen width is a multiple of 8 - */ -static void setup_stars(void) { - // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on - // 36% probability it will not be added - // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all) - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - uint8_t rand_column = rand() % 10; - uint8_t rand_row = rand() % 10; - if (rand_column < 8 && rand_row < 8) { - int column_adder = column_group * 8; - int line_adder = line * 8; - int x = rand_column + column_adder; - int y = rand_row + line_adder; - oled_write_pixel(x, y, true); - stars[column_group + (line * STARS_PER_LINE)].x = x; - stars[column_group + (line * STARS_PER_LINE)].y = y; - stars[column_group + (line * STARS_PER_LINE)].exists = true; - } else { - stars[column_group + (line * STARS_PER_LINE)].exists = false; - } - } - } - stars_setup = true; -} - -/** - * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star - */ -static void twinkle_stars(void) { - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)]; - - // skip stars that were never added - if (!star.exists) { - continue; - } - if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) { - oled_write_pixel(star.x, star.y, false); // black out pixel - - // don't allow stars to leave their own region - if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region - star.x++; // move it right immediately - } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region - star.x--; // move it left immediately - } - if (star.y == (line * 8)) { // star is the farthest up it can go in its region - star.y++; // move it down immediately - } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region - star.y--; // move it up immediately - } - - // now decide direction - int new_x; - int x_choice = rand() % 3; - if (x_choice == 0) { - new_x = star.x - 1; - } else if (x_choice == 1) { - new_x = star.x + 1; - } else { - new_x = star.x; - } - - int new_y; - int y_choice = rand() % 3; - if (y_choice == 0) { - new_y = star.y - 1; - } else if (y_choice == 1) { - new_y = star.y + 1; - } else { - new_y = star.y; - } - - star.x = new_x; - star.y = new_y; - oled_write_pixel(new_x, new_y, true); - } - - stars[column_group + (line * STARS_PER_LINE)] = star; - } - } -} - -/** - * Setup the stars and then animate them on subsequent frames - */ -static void animate_stars(void) { - if (!stars_setup) { - setup_stars(); - } else { - twinkle_stars(); - } -} -#endif // endregion - -#ifdef ENABLE_SHOOTING_STARS // region -bool shooting_stars_setup = false; // only setup shooting stars array once with defaults - -struct ShootingStar { - int x_1; - int y_1; - int x_2; - int y_2; - bool running; - int frame; - int delay; -}; - -struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars - -static void setup_shooting_star(struct ShootingStar *shooting_star) { - int column_to_start = rand() % (WIDTH / 2); - int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean. - - shooting_star->x_1 = column_to_start; - shooting_star->y_1 = row_to_start; - shooting_star->x_2 = column_to_start + 1; - shooting_star->y_2 = row_to_start + 1; - shooting_star->running = true; - shooting_star->frame++; - shooting_star->delay = rand() % SHOOTING_STAR_DELAY; -} - -static void move_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - - shooting_star->x_1++; - shooting_star->y_1++; - shooting_star->x_2++; - shooting_star->y_2++; - shooting_star->frame++; - - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true); -} - -static void finish_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - shooting_star->running = false; - shooting_star->frame = 0; -} - -static void animate_shooting_star(struct ShootingStar *shooting_star) { - if (shooting_star->frame > SHOOTING_STAR_FRAMES) { - finish_shooting_star(shooting_star); - return; - } else if (!shooting_star->running) { - setup_shooting_star(shooting_star); - } else { - if (shooting_star->delay == 0) { - move_shooting_star(shooting_star); - } else { - shooting_star->delay--; - } - } -} - -static void animate_shooting_stars(void) { - if (is_calm) { - return; - } - if (!shooting_stars_setup) { - for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) { - shooting_stars[i].running = false; - } - shooting_stars_setup = true; - } - /** - * Fixes issue with stars that were falling _while_ the - * wpm dropped below the condition for them to keep falling - */ - void end_extra_stars(uint8_t starting_index) { - for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - if (shooting_star.running) { - finish_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - } - } - - int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT; - number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars; - - if (number_of_shooting_stars == 0) { - // make sure all shooting_stars are ended - end_extra_stars(0); - } else { - for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - animate_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - end_extra_stars(number_of_shooting_stars); - } -} -#endif // endregion - -/** - * Main rendering function - * - * Calls all different animations at different rates - */ -void render_stars(void) { - // // animation timer - if (timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) { - starry_night_anim_timer = timer_read32(); - current_wpm = get_current_wpm(); - -#ifdef ENABLE_ISLAND - animate_island(); -#endif - -#ifdef ENABLE_SHOOTING_STARS - if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) { - animate_shooting_stars(); - } -#endif - -#ifdef ENABLE_STARS - // TODO offsetting the star animation from the wave animation would look better, - // but if I do that, then the stars appear in the water because - // the ocean animation has to wait a bunch of frames to overwrite it. - // Possible solutions: - // 1. Only draw stars to the top of the island/ocean. - // 2. Draw ocean every frame, only move ocean on frames matching modulus - // Problems: - // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water? - // 2. More cpu intensive. And I'm already running out of cpu as it is... - if (animation_counter % STAR_ANIMATION_MODULATOR == 0) { - animate_stars(); - } -#endif - -#ifdef ENABLE_WAVE - if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) { - animate_waves(); - } -#endif - -#ifdef ENABLE_MOON - draw_moon(); -#endif - - animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES); - } - - // this fixes the screen on and off bug - if (current_wpm > 0) { - oled_on(); - starry_night_anim_sleep = timer_read32(); - } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } -} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/oled.c b/keyboards/solartempest/sofle/keymaps/via/oled.c deleted file mode 100644 index 415a82f13d08..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/oled.c +++ /dev/null @@ -1,82 +0,0 @@ - /* Copyright 2020 Josef Adamcik - * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang - * - * 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 . - */ - -//Sets up what the OLED screens display. - -#ifdef OLED_ENABLE - static void render_logo(void) { - static const char PROGMEM qmk_logo[] = { - 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, - 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, - 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 - }; - - oled_write_P(qmk_logo, false); - } - - static void print_status_narrow(void) { - // Print current mode - oled_write_P(PSTR("\n\n"), false); - - switch (get_highest_layer(layer_state)) { - case 0: - oled_write_ln_P(PSTR("Qwrt"), false); - break; - case 1: - oled_write_ln_P(PSTR("Clmk"), false); - break; - default: - oled_write_P(PSTR("Mod\n"), false); - break; - } - oled_write_P(PSTR("\n\n"), false); - // Print current layer - oled_write_ln_P(PSTR("LAYER"), false); - switch (get_highest_layer(layer_state)) { - case 0: - case 1: - oled_write_P(PSTR("Base\n"), false); - break; - case 2: - oled_write_P(PSTR("Raise"), false); - break; - case 3: - oled_write_P(PSTR("Lower"), false); - break; - default: - oled_write_ln_P(PSTR("Undef"), false); - } - oled_write_P(PSTR("\n\n"), false); - led_t led_usb_state = host_keyboard_led_state(); - oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); - } - - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_270; - } - return rotation; - } - - void oled_task_user(void) { - if (is_keyboard_master()) { - print_status_narrow(); - } else { - render_logo(); - } - } -#endif \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/rules.mk b/keyboards/solartempest/sofle/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c deleted file mode 100644 index 76b292887ebf..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ /dev/null @@ -1,321 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 Luna code adapted from HellSingCoder and Jackasaur - * 2021 QMK - * - * 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 o - * 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 . - */ - -//SSD1306 OLED update loop -#ifdef OLED_ENABLE - #define KEYBOARD_PET - /* KEYBOARD PET START */ - - /* settings */ - #define MIN_WALK_SPEED 10 - #define MIN_RUN_SPEED 40 - - /* advanced settings */ - #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. - #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 - - /* timers */ - uint32_t anim_timer = 0; - - /* current frame */ - uint8_t current_frame = 0; - - /* status variables */ - int current_wpm_read = 0; - uint32_t oled_timer = 0; //For Keyboard pet OLED timeout with animations, code by Drashna. - led_t led_usb_state; - - bool isSneaking = false; - bool isJumping = false; - bool showedJump = true; - bool isBarking = false; - - - static void render_logo(int LUNA_X, int LUNA_Y) { - static const char PROGMEM luna_logo[] = { - 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, - 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, - 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, - 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, - }; - oled_set_cursor(LUNA_X,LUNA_Y); - oled_write_raw_P(luna_logo, sizeof(luna_logo)); - } - - /* logic */ - static void render_luna(int LUNA_X, int LUNA_Y) { - - /* Sit */ - static const char PROGMEM sit[2][ANIM_SIZE] = { - /* 'sit1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, - 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, - 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'sit2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, - 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, - 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x01, 0x01, 0x02, 0x06, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Walk */ - static const char PROGMEM walk[2][ANIM_SIZE] = { - /* 'walk1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0xfc, 0xfe, 0xfe, 0x1f, 0x3f, 0x39, 0x39, 0x3f, 0x3f, 0x1e, 0x1e, 0x0c, 0x00, - 0x00, 0x00, 0x01, 0x0f, 0x3e, 0x78, 0x70, 0xf8, 0xfc, 0xfe, 0x7e, 0x3e, 0x3c, 0x3c, 0x78, 0x78, - 0x78, 0xf0, 0xf1, 0xff, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'walk2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3e, 0x7f, 0xff, 0xff, 0xe7, 0xc7, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3e, 0x78, 0xf0, 0xfc, 0x7e, 0x1e, 0x1f, 0x0f, 0x0e, - 0x1e, 0x1c, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Run */ - static const char PROGMEM run[2][ANIM_SIZE] = { - /* 'run1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, - 0x87, 0x7f, 0xff, 0xff, 0xf1, 0xc3, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1f, 0x3e, 0x78, 0xf7, 0xff, 0x7f, 0x3d, 0x03, 0x07, 0x0f, - 0x1e, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'run2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0x3e, 0xde, 0xfe, 0xfc, 0xf8, 0x00, 0x00, - 0xe0, 0xfe, 0xff, 0x7f, 0x07, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x1e, 0x3c, 0x78, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x07, 0x1f, 0x3f, 0x7c, 0x78, 0xff, - 0xff, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Bark */ - static const char PROGMEM bark[2][ANIM_SIZE] = { - /* 'bark1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe7, 0xe7, 0xef, 0xef, 0xcf, 0xcb, 0x83, 0x83, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x1c, 0x38, 0x78, 0xf1, 0xe3, 0xe3, 0xe7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, - 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - /* 'bark2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x9f, - 0x0f, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e, 0xe6, 0x83, 0x03, 0x0f, 0x43, 0x43, 0x90, 0x88, 0x08, - 0x00, 0x00, 0x03, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xfb, 0xff, 0xff, 0xff, 0x7f, - 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* Sneak */ - static const char PROGMEM sneak[2][ANIM_SIZE] = { - /* 'sneak1', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, - }, - - /* 'sneak2', 32x22px */ - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - /* animation */ - void animate_luna(void) { - - /* jump */ - if (isJumping || !showedJump) { - - /* clear */ - oled_set_cursor(LUNA_X,LUNA_Y +2); - oled_write(" ", false); - - oled_set_cursor(LUNA_X,LUNA_Y -1); - - showedJump = true; - } else { - - /* clear */ - oled_set_cursor(LUNA_X,LUNA_Y -1); - oled_write(" ", false); - - oled_set_cursor(LUNA_X,LUNA_Y); - } - - /* switch frame */ - current_frame = (current_frame + 1) % 2; - - /* current status */ - if(isBarking) { - oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); - - } else if(isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); - - } else if(current_wpm_read <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); - - } else if(current_wpm_read <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); - - } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); - } - } - - /* animation timer */ - if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { - anim_timer = timer_read32(); - animate_luna(); - } - } - /* KEYBOARD PET END */ - - static void print_logo_narrow(void) { - oled_set_cursor(0,2); - oled_write("SOLAR", false); - oled_set_cursor(0,3); - oled_write("TMPST", false); - - render_logo(0,7); - - /* wpm counter */ - char wpm_str[8]; - oled_set_cursor(0,13); - sprintf(wpm_str, " %03d", current_wpm_read); - oled_write(wpm_str, false); - oled_set_cursor(0,14); - oled_write(" wpm", false); - } - - static void print_status_narrow(void) { - /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. - case 0: - oled_write("SOLAR", false); - break; - case 1: - oled_write("GAME", false); - break; - default: - oled_write("UNDEF", false); - }*/ - - /* Print current layer */ - oled_set_cursor(0,2); - oled_write("LAYER", false); - - oled_set_cursor(0,3); - switch (get_highest_layer(layer_state)) { - case 0: - oled_write("Base ", false); - break; - case 1: - oled_write("Game ", false); - break; - case 3: - oled_write("Raise", false); - break; - case 2: - oled_write("Lower", false); - break; - } - - /* lock status */ - oled_set_cursor(0,6); - oled_write("LOCK", false); - oled_set_cursor(0,7); - oled_write("Caps", led_usb_state.caps_lock); - oled_set_cursor(0,8); - oled_write("Num", !(led_usb_state.num_lock)); - oled_set_cursor(0,9); - oled_write("Scrl", led_usb_state.scroll_lock); - - /* KEYBOARD PET RENDER START */ - render_luna(0,13); - /* KEYBOARD PET RENDER END */ - } - - oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return OLED_ROTATION_270; - } - - void oled_task_user(void) { - /* KEYBOARD PET VARIABLES START */ - current_wpm_read = get_current_wpm(); - /* KEYBOARD PET VARIABLES END */ - led_usb_state = host_keyboard_led_state(); - - if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations - if (timer_elapsed32(oled_timer) > 30000) { - oled_off(); - return; - } else { - oled_on(); - } - } - - if (is_keyboard_master()) { - print_status_narrow(); - } else { - print_logo_narrow(); - } - } -#endif diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md deleted file mode 100644 index 1593b040f746..000000000000 --- a/keyboards/solartempest/sofle/readme.md +++ /dev/null @@ -1,82 +0,0 @@ -# Sofle Keyboard - -![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/WH9OoWu.jpg) - -Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. - -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - -For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) - -Build guide and log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) - -* Keyboard Maintainer: [Solartempest] -* Hardware Supported: SofleKeyboard V2.1 RGB PCB, ProMicro / Elite-C -* Hardware Availability: [Keyhive](https://keyhive.xyz/shop/sofle) - -# Custom Features: - -### OLED Features: -- Includes Snakey keyboard pet! Slithers according to WPM, bites, and sticks its tongue out at you! -- OLED displays current layer, lock key status, WPM, custom logo, and custom name. -- OLED shuts off on idle and when computer is sleeping. -- Includes working Luna keyboard pet. -- Includes working Bongocat (disable RGB for sufficient space). -- Includes stock OLED code as well. - -### RGB Features: -- Adds custom layer lighting with custom gradients for each layer. -- RGB underglow support and remapped to physical locations (nicer gradients and effects). -- Adds white caps lock, scroll lock, and num lock key indicators using the top row/underglow LEDs. - -### Rotary Encoder and VIA Features: -- Fully emappable left encoder controls volume up/down/mute. Right encoder PGUP/PGDOWN. -- Allows for live remapping of per-layer rotary encoder functions in VIA. -- VIA support included by default. -- This fixes the Keyhive left bottom row offset issue in VIA. You will need to import sofle.json in VIA. -- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. -- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. - -### Tap and Other Features: -- Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. -- Double tap layers to stay on a layer instead of momentary push. -- Adds key combo functionality. -- Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "sofle VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "sofle VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. - - -# Compiling - -Compile with the command below: - -```sh -# for Elite C with Left Side Master builds -qmk compile -kb solartempest/sofle -km via -``` - -## Flashing - -Flash using the correct command below (or use QMK Toolbox like me): - -```sh -# for pro micro-based builds -qmk flash -kb solartempest/sofle -km via -bl avrdude-split-left -qmk flash -kb solartempest/sofle -km via -bl avrdude-split-right - -# for Elite C or dfu bootloader builds -qmk flash -kb solartempest/sofle -km via -bl dfu-split-left -qmk flash -kb solartempest/sofle -km via -bl dfu-split-right -``` - -These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. -Press reset button on he keyboard when asked. - -Disconnect the first half, connect the second one and repeat the process. - - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk deleted file mode 100644 index a6d0a766b59a..000000000000 --- a/keyboards/solartempest/sofle/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -MCU = atmega32u4 -BOOTLOADER = atmel-dfu - -# Build Options -# Comment out to disable the options. - -SPLIT_KEYBOARD = yes # Split keyboard -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -EXTRAKEY_ENABLE = yes # Audio control and System control (+450) -RGBLIGHT_ENABLE = yes # RGB lighting (+2350) -ENCODER_ENABLE = yes # Encoders -MOUSEKEY_ENABLE = no # Mouse keys (+1482) -NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work -LTO_ENABLE = yes # Save space - -OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608) -OLED_DRIVER = SSD1306 # Specify OLED driver -WPM_ENABLE = yes # WPM counter for keyboard pets (+1298) -COMBO_ENABLE = no # Tap combo chording, may run into space issue if also using keyboard pets (+952) - # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. - -GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) -MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) -SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) diff --git a/keyboards/solartempest/sofle/sofle VIA keymap.json b/keyboards/solartempest/sofle/sofle VIA keymap.json deleted file mode 100644 index 163a23ab1b15..000000000000 --- a/keyboards/solartempest/sofle/sofle VIA keymap.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "Solarius_Sofle" , - "vendorId": "0xFC32", - "productId": "0x1287", - "lighting": "qmk_rgblight", - "matrix": { "rows": 10, "cols": 7 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - }, - { - "name": "Move Window Right", - "title": "Move Window Right in Windows", - "shortName": "MWR" - }, - { - "name": "Move Window Left", - "title": "Move Window Left in Windows", - "shortName": "MWL" - }, - { - "name": "Shift-BSPC", - "title": "Shift-Backspace to Delete Whole Words", - "shortName": "SBS" - } - ], - "layouts": - { - "keymap": - [ - [{"y":0.5,"x":3.25},"0,3",{"x":9},"5,3"], - [{"y":-0.87,"x":2.25},"0,2",{"x":1},"0,4",{"x":7},"5,4",{"x":1},"5,2"], - [{"y":-0.9,"x":5.25},"0,5",{"x":5},"5,5"], - [{"y":-0.87,"x":0.25,"c":"#777777"},"0,0",{"c":"#cccccc"},"0,1",{"x":13},"5,1",{"c":"#aaaaaa"},"5,0"], - [{"y":-0.4,"x":3.25,"c":"#cccccc"},"1,3",{"x":2.2},"1,6",{"x":2.6},"8,6",{"x":2.2},"6,3"], - [{"y":-0.9,"x":2.25},"1,2",{"x":1},"1,4",{"x":7},"6,4",{"x":1},"6,2"], - [{"y":-0.9,"x":5.25},"1,5",{"x":5},"6,5"], - [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"1,0",{"c":"#cccccc"},"1,1",{"x":13},"6,1",{"c":"#aaaaaa"},"6,0"], - [{"y":-0.4,"x":3.25,"c":"#cccccc"},"2,3",{"x":2.2},"4,0",{"x":2.6},"9,5",{"x":2.2},"7,3"], - [{"y":-0.9,"x":2.25},"2,2",{"x":1},"2,4",{"x":7},"7,4",{"x":1},"7,2"], - [{"y":-0.9,"x":5.25},"2,5",{"x":5},"7,5"], - [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"2,0",{"c":"#cccccc"},"2,1",{"x":13},"7,1",{"c":"#aaaaaa"},"7,0"], - [{"y":-0.4,"x":3.25,"c":"#cccccc"},"3,3",{"x":2.2},"3,6",{"x":2.6},"6,6",{"x":2.2},"8,3"], - [{"y":-0.9,"x":2.25},"3,2",{"x":1},"3,4",{"x":7},"8,4",{"x":1},"8,2"], - [{"y":-0.9,"x":5.25},"3,5",{"x":5},"8,5"], - [{"y":-0.9,"x":0.25,"c":"#aaaaaa"},"3,0",{"c":"#cccccc"},"3,1",{"x":13},"8,1",{"c":"#aaaaaa"},"8,0"], - [{"y":-0.3,"x":3.25},"4,2",{"x":9},"9,1"], - [{"y":-0.9,"x":2.25},"4,1",{"x":1},"4,3",{"x":7},"9,2",{"x":1},"9,0"], - [{"r":30,"rx":7.15,"y":4.6,"x":1,"c":"#777777"},"4,4"], - [{"r":45,"y":-2.25,"x":3.35,"h":1.5},"4,5"], - [{"r":-45,"y":1.3,"x":-2.08,"h":1.5},"9,4"], - [{"r":-30,"y":-0.45,"x":0.8},"9,3"] - ] - } -} diff --git a/keyboards/solartempest/sofle/sofle VIA layout.json b/keyboards/solartempest/sofle/sofle VIA layout.json deleted file mode 100644 index 42db09c8d317..000000000000 --- a/keyboards/solartempest/sofle/sofle VIA layout.json +++ /dev/null @@ -1,295 +0,0 @@ -{ - "name": "Solarius_Sofle", - "vendorProductId": 4231139975, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "KC_GRV", - "KC_1", - "KC_2", - "KC_3", - "KC_4", - "KC_5", - "KC_NO", - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_T", - "KC_VOLU", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_G", - "KC_F", - "KC_LSFT", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_B", - "KC_VOLD", - "KC_MUTE", - "KC_LGUI", - "KC_LALT", - "KC_LCTL", - "TT(2)", - "KC_ENT", - "KC_LALT", - "KC_MINS", - "KC_0", - "KC_9", - "KC_8", - "KC_7", - "KC_6", - "KC_0", - "USER04", - "KC_P", - "KC_O", - "KC_I", - "KC_U", - "KC_Y", - "KC_PGUP", - "KC_QUOT", - "KC_SCLN", - "KC_L", - "KC_K", - "KC_J", - "KC_H", - "KC_NO", - "KC_RSFT", - "KC_SLSH", - "KC_DOT", - "KC_COMM", - "KC_M", - "KC_N", - "KC_PGDN", - "TG(1)", - "KC_RALT", - "KC_RCTL", - "TT(3)", - "KC_SPC", - "C(KC_W)", - "KC_N" - ], - [ - "KC_PSCR", - "KC_5", - "KC_1", - "KC_2", - "KC_3", - "KC_G", - "KC_SPC", - "KC_F12", - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_TRNS", - "KC_ENT", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_NO", - "KC_LSFT", - "KC_LSFT", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_TRNS", - "KC_TRNS", - "KC_LALT", - "KC_B", - "KC_TRNS", - "KC_F22", - "KC_SPC", - "KC_NO", - "KC_F4", - "KC_F11", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_F12", - "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_NO", - "KC_RALT", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "MO(3)", - "KC_TRNS", - "KC_TRNS", - "KC_NO" - ], - [ - "KC_GRV", - "KC_F1", - "KC_F2", - "KC_F3", - "KC_F4", - "KC_F5", - "KC_NO", - "KC_ESC", - "KC_1", - "KC_2", - "KC_3", - "KC_4", - "KC_5", - "C(KC_PPLS)", - "KC_TRNS", - "KC_EXLM", - "KC_AT", - "KC_HASH", - "KC_DLR", - "KC_PERC", - "KC_NO", - "KC_TRNS", - "KC_EQL", - "KC_MINS", - "KC_PLUS", - "KC_LCBR", - "KC_RCBR", - "C(KC_MINS)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_F11", - "KC_F10", - "KC_F9", - "KC_F8", - "KC_F7", - "KC_F6", - "KC_NO", - "KC_F12", - "KC_0", - "KC_9", - "KC_8", - "KC_7", - "KC_6", - "C(S(KC_TAB))", - "KC_PIPE", - "KC_RPRN", - "KC_LPRN", - "KC_ASTR", - "KC_AMPR", - "KC_CIRC", - "KC_NO", - "KC_TRNS", - "KC_BSLS", - "KC_COLN", - "KC_DOT", - "KC_RBRC", - "KC_LBRC", - "C(KC_TAB)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_BSPC", - "KC_TRNS", - "C(KC_T)", - "KC_NO" - ], - [ - "USER03", - "C(KC_PPLS)", - "C(KC_MINS)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO", - "KC_TRNS", - "KC_INS", - "KC_PSCR", - "KC_APP", - "C(KC_UP)", - "C(KC_DOWN)", - "USER00", - "KC_TRNS", - "KC_LALT", - "KC_LCTL", - "KC_LSFT", - "C(KC_LEFT)", - "C(KC_RGHT)", - "KC_NO", - "KC_TRNS", - "C(KC_Z)", - "C(KC_X)", - "C(KC_C)", - "C(KC_V)", - "KC_TRNS", - "USER01", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_MYCM", - "KC_TRNS", - "KC_NO", - "USER02", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_F14", - "KC_F13", - "KC_NO", - "KC_DEL", - "KC_INS", - "KC_END", - "KC_UP", - "KC_HOME", - "KC_WWW_FORWARD", - "USER03", - "KC_BSPC", - "KC_NLCK", - "KC_RGHT", - "KC_DOWN", - "KC_LEFT", - "KC_WWW_BACK", - "KC_NO", - "KC_TRNS", - "KC_SLCK", - "KC_PGDN", - "KC_TRNS", - "KC_PGUP", - "KC_CAPS", - "USER02", - "KC_TRNS", - "KC_TRNS", - "KC_WWW_REFRESH", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_NO" - ] - ] -} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/sofle.c b/keyboards/solartempest/sofle/sofle.c deleted file mode 100644 index b51a7e8a0460..000000000000 --- a/keyboards/solartempest/sofle/sofle.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#include "sofle.h" diff --git a/keyboards/solartempest/sofle/sofle.h b/keyboards/solartempest/sofle/sofle.h deleted file mode 100644 index 6e9b06cef09f..000000000000 --- a/keyboards/solartempest/sofle/sofle.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -#include "quantum.h" - -// Extra keys are added for rotary encoder support in VIA -#define LAYOUT( \ - LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ - LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ - LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ - { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ - } From 0ad56103193184dd8efd403c70532eaad5049d29 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 01:17:07 -0400 Subject: [PATCH 41/94] Fix files --- .../solartempest/ak21/AK21_via_solar.json | 69 +++++++++++++++++++ keyboards/solartempest/ak21/readme.md | 18 ++--- 2 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 keyboards/solartempest/ak21/AK21_via_solar.json diff --git a/keyboards/solartempest/ak21/AK21_via_solar.json b/keyboards/solartempest/ak21/AK21_via_solar.json new file mode 100644 index 000000000000..0f369e01f272 --- /dev/null +++ b/keyboards/solartempest/ak21/AK21_via_solar.json @@ -0,0 +1,69 @@ +{ + "name": "AK21", + "vendorId": "0x414B", + "productId": "0x0021", + "lighting": "qmk_rgblight", + "matrix": { "rows": 6, "cols": 4 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + } + ], + "layouts": { + "keymap": [ + [ + { + "c": "#393B3B", + "t": "#91867A" + }, + "0,0", + "0,1", + "0,2", + "0,3" + ], + [ + "1,0", + "1,1", + "1,2", + "1,3" + ], + [ + "2,0", + "2,1", + "2,2", + { + "h": 2 + }, + "2,3" + ], + [ + "3,0", + "3,1", + "3,2" + ], + [ + "4,0", + "4,1", + "4,2", + { + "h": 2 + }, + "4,3" + ], + [ + { + "w": 2 + }, + "5,1", + "5,2" + ] +] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/ak21/readme.md b/keyboards/solartempest/ak21/readme.md index ab15ce05d570..ef0114b54ba6 100644 --- a/keyboards/solartempest/ak21/readme.md +++ b/keyboards/solartempest/ak21/readme.md @@ -1,28 +1,20 @@ # Atlantis AK21 Macropad -![Atlantis AK21] +![Atlantis AK21](https://update) +![Rear View](https://update) +![PCB View](https://update) +![Side View](https://update) A 21-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! - * Keyboard Maintainer: solartempest * Hardware Supported: Atlantis AK21 * Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) -## Make and Flashing - Make example for this keyboard (after setting up your build environment): - qmk compile -kb solartempest/ak21 -km via + make solartempest/ak21:via To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. -Flash with QMK toolbox, auto-flash. - -## Using with VIA - -- After flashing, in VIA make sure to Import Keymap, which is "ak21 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. -- Go to Save+Load to Load Saved Layout. You can import my own layout "as21 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. -- It is a good idea to Save Current Layout after you decide on your mapping. See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 0f790d3b9a72a3df11b427f79912f4b126322c40 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 01:32:07 -0400 Subject: [PATCH 42/94] Trying to fix commit errors --- .../solartempest/ak21/AK21_via_solar.json | 69 +++ keyboards/solartempest/ak21/readme.md | 20 + keyboards/solartempest/sofle/.noci | 0 keyboards/solartempest/sofle/info.json | 12 - .../sofle/keymaps/via/ocean_dream.c | 555 ------------------ .../solartempest/sofle/keymaps/via/rules.mk | 1 - keyboards/solartempest/sofle/sofle.c | 19 - keyboards/solartempest/sofle/sofle.h | 42 -- 8 files changed, 89 insertions(+), 629 deletions(-) create mode 100644 keyboards/solartempest/ak21/AK21_via_solar.json create mode 100644 keyboards/solartempest/ak21/readme.md delete mode 100644 keyboards/solartempest/sofle/.noci delete mode 100644 keyboards/solartempest/sofle/info.json delete mode 100644 keyboards/solartempest/sofle/keymaps/via/ocean_dream.c delete mode 100644 keyboards/solartempest/sofle/keymaps/via/rules.mk delete mode 100644 keyboards/solartempest/sofle/sofle.c delete mode 100644 keyboards/solartempest/sofle/sofle.h diff --git a/keyboards/solartempest/ak21/AK21_via_solar.json b/keyboards/solartempest/ak21/AK21_via_solar.json new file mode 100644 index 000000000000..0f369e01f272 --- /dev/null +++ b/keyboards/solartempest/ak21/AK21_via_solar.json @@ -0,0 +1,69 @@ +{ + "name": "AK21", + "vendorId": "0x414B", + "productId": "0x0021", + "lighting": "qmk_rgblight", + "matrix": { "rows": 6, "cols": 4 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + } + ], + "layouts": { + "keymap": [ + [ + { + "c": "#393B3B", + "t": "#91867A" + }, + "0,0", + "0,1", + "0,2", + "0,3" + ], + [ + "1,0", + "1,1", + "1,2", + "1,3" + ], + [ + "2,0", + "2,1", + "2,2", + { + "h": 2 + }, + "2,3" + ], + [ + "3,0", + "3,1", + "3,2" + ], + [ + "4,0", + "4,1", + "4,2", + { + "h": 2 + }, + "4,3" + ], + [ + { + "w": 2 + }, + "5,1", + "5,2" + ] +] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/ak21/readme.md b/keyboards/solartempest/ak21/readme.md new file mode 100644 index 000000000000..ef0114b54ba6 --- /dev/null +++ b/keyboards/solartempest/ak21/readme.md @@ -0,0 +1,20 @@ +# Atlantis AK21 Macropad + +![Atlantis AK21](https://update) +![Rear View](https://update) +![PCB View](https://update) +![Side View](https://update) + +A 21-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. + +* Keyboard Maintainer: solartempest +* Hardware Supported: Atlantis AK21 +* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) + +Make example for this keyboard (after setting up your build environment): + + make solartempest/ak21:via + +To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/sofle/.noci b/keyboards/solartempest/sofle/.noci deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/keyboards/solartempest/sofle/info.json b/keyboards/solartempest/sofle/info.json deleted file mode 100644 index 16147f76dd51..000000000000 --- a/keyboards/solartempest/sofle/info.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "keyboard_name": "Solarius_Sofle", - "url": "", - "maintainer": "solartempest", - "width": 15, - "height": 8.0, - "layouts": { - "LAYOUT": { - "layout": [{"label":"0,3", "x":3.25, "y":0.5}, {"label":"5,3", "x":13.25, "y":0.5}, {"label":"0,2", "x":2.25, "y":0.63}, {"label":"0,4", "x":4.25, "y":0.63}, {"label":"5,4", "x":12.25, "y":0.63}, {"label":"5,2", "x":14.25, "y":0.63}, {"label":"0,5", "x":5.25, "y":0.73}, {"label":"5,5", "x":11.25, "y":0.73}, {"label":"0,0", "x":0.25, "y":0.86}, {"label":"0,1", "x":1.25, "y":0.86}, {"label":"5,1", "x":15.25, "y":0.86}, {"label":"5,0", "x":16.25, "y":0.86}, {"label":"1,3", "x":3.25, "y":1.46}, {"label":"1,6", "x":6.45, "y":1.46}, {"label":"6,6", "x":10.05, "y":1.46}, {"label":"6,3", "x":13.25, "y":1.46}, {"label":"1,2", "x":2.25, "y":1.56}, {"label":"1,4", "x":4.25, "y":1.56}, {"label":"6,4", "x":12.25, "y":1.56}, {"label":"6,2", "x":14.25, "y":1.56}, {"label":"1,5", "x":5.25, "y":1.66}, {"label":"6,5", "x":11.25, "y":1.66}, {"label":"1,0", "x":0.25, "y":1.76}, {"label":"1,1", "x":1.25, "y":1.76}, {"label":"6,1", "x":15.25, "y":1.76}, {"label":"6,0", "x":16.25, "y":1.76}, {"label":"2,3", "x":3.25, "y":2.36}, {"label":"4,0", "x":6.45, "y":2.36}, {"label":"9,5", "x":10.05, "y":2.36}, {"label":"7,3", "x":13.25, "y":2.36}, {"label":"2,2", "x":2.25, "y":2.46}, {"label":"2,4", "x":4.25, "y":2.46}, {"label":"7,4", "x":12.25, "y":2.46}, {"label":"7,2", "x":14.25, "y":2.46}, {"label":"2,5", "x":5.25, "y":2.56}, {"label":"7,5", "x":11.25, "y":2.56}, {"label":"2,0", "x":0.25, "y":2.66}, {"label":"2,1", "x":1.25, "y":2.66}, {"label":"7,1", "x":15.25, "y":2.66}, {"label":"7,0", "x":16.25, "y":2.66}, {"label":"3,3", "x":3.25, "y":3.26}, {"label":"3,6", "x":6.45, "y":3.26}, {"label":"8,6", "x":10.05, "y":3.26}, {"label":"8,3", "x":13.25, "y":3.26}, {"label":"3,2", "x":2.25, "y":3.36}, {"label":"3,4", "x":4.25, "y":3.36}, {"label":"8,4", "x":12.25, "y":3.36}, {"label":"8,2", "x":14.25, "y":3.36}, {"label":"3,5", "x":5.25, "y":3.46}, {"label":"8,5", "x":11.25, "y":3.46}, {"label":"3,0", "x":0.25, "y":3.56}, {"label":"3,1", "x":1.25, "y":3.56}, {"label":"8,1", "x":15.25, "y":3.56}, {"label":"8,0", "x":16.25, "y":3.56}, {"label":"4,2", "x":3.25, "y":4.26}, {"label":"9,1", "x":13.25, "y":4.26}, {"label":"4,3", "x":4.25, "y":4.36}, {"label":"9,2", "x":12.25, "y":4.36}, {"label":"4,1", "x":2.25, "y":4.36}, {"label":"9,0", "x":14.25, "y":4.36}, {"label":"4,4", "x":1, "y":9.96}, {"label":"4,5", "x":3.35, "y":8.71, "h":1.5}, {"label":"9,3", "x":0.8, "y":11.56}, {"label":"9,4", "x":-2.08, "y":11.01, "h":1.5}] - } - } -} diff --git a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c deleted file mode 100644 index 6aa6a7a8b5b7..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c +++ /dev/null @@ -1,555 +0,0 @@ -/* - * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) - * - * 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 . - */ - -#include "ocean_dream.h" -#include "quantum.h" -#include "print.h" - -// Calculated Parameters -#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch -#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch -#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch -#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch -#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch - -uint8_t animation_counter = 0; // global animation counter. -bool is_calm = false; -uint32_t starry_night_anim_timer = 0; -uint32_t starry_night_anim_sleep = 0; -static int current_wpm = 0; - -static uint8_t increment_counter(uint8_t counter, uint8_t max) { - counter++; - if (counter >= max) { - return 0; - } else { - return counter; - } -} - -#ifdef ENABLE_WAVE -static uint8_t decrement_counter(uint8_t counter, uint8_t max) { - counter--; - if (counter < 0 || counter > max) { - return max; - } else { - return counter; - } -} -#endif - -#ifdef ENABLE_MOON // region -# ifndef STATIC_MOON -uint8_t moon_animation_frame = 0; // keeps track of current moon frame -uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame -# endif - -# ifdef STATIC_MOON -static const char PROGMEM moon[6] = { - 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81, -}; -# endif - -# ifndef STATIC_MOON -static const char PROGMEM moon_animation[14][8] = { - // clang-format off - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - // clang-format on -}; -# endif - -static void draw_moon(void) { -# ifdef STATIC_MOON - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon, 6); -# endif -# ifndef STATIC_MOON - moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES); - if (moon_animation_counter == 0) { - moon_animation_frame = increment_counter(moon_animation_frame, 14); - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon_animation[moon_animation_frame], 8); - } -# endif -} -#endif // endregion - -#ifdef ENABLE_WAVE // region -uint8_t starry_night_wave_frame_width_counter = 31; -uint8_t rough_waves_frame_counter = 0; - -// clang-format off -static const char PROGMEM ocean_top[8][32] = { - // still ocean - { - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // small ripples - { - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // level 2 ripples - { - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - }, - // level 3 waves - { - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - }, -}; -static const char PROGMEM ocean_bottom[8][32] = { - // still ocean - { - 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21, - 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44, - 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00, - }, - // small ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 2 ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 3 waves - { - 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11, - 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04, - 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00, - }, - { - 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06, - 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10, - 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00, - 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80, - }, - { - 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21, - 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08, - 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00, - }, -}; -// clang-format on - -static void animate_waves(void) { - starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type - rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type - - void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) { - oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset); - oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH); - } - - for (int i = 0; i < WIDTH; ++i) { - uint16_t offset = OCEAN_LINE * WIDTH + i; - uint8_t byte_index = starry_night_wave_frame_width_counter + i; - if (byte_index >= WIDTH) { - byte_index = byte_index - WIDTH; - } - if (is_calm || current_wpm <= WAVE_CALM) { - draw_ocean(0, offset, byte_index); - } else if (current_wpm <= WAVE_HEAVY_STORM) { - draw_ocean(1, offset, byte_index); - } else if (current_wpm <= WAVE_HURRICANE) { - draw_ocean(2, offset, byte_index); - } else { - draw_ocean(3 + rough_waves_frame_counter, offset, byte_index); - } - } -} -#endif // endregion - -#ifdef ENABLE_ISLAND // region -uint8_t island_frame_1 = 0; - -// clang-format off -// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!) - -// To save space and allow the shooting stars to be seen, only draw the tree on every frame. -// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the -// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes -static const char PROGMEM islandRightTop[6][14] = { - {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,}, - {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,}, - {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,}, - {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,}, - {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,}, - {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,}, -}; -static const char PROGMEM islandRightBottom[6][14] = { - {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,}, - {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,}, -}; -static const char PROGMEM islandLeft[18] = { - 0x80, 0x40, 0x40, 0x40, 0x40, 0x60, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x60, 0x40, 0x40, -}; -// clang-format on - -static void animate_island(void) { - if (animation_counter == 0) { - island_frame_1 = increment_counter(island_frame_1, 2); - } - - void draw_island_parts(uint8_t frame) { - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE); - oled_write_raw_P(islandRightTop[frame], 14); - oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1); - oled_write_raw_P(islandLeft, 18); - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1); - oled_write_raw_P(islandRightBottom[frame], 14); - } - - if (is_calm || current_wpm < ISLAND_CALM) { - draw_island_parts(0); - } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) { - draw_island_parts(island_frame_1 + 1); - } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) { - draw_island_parts(island_frame_1 + 2); - } else { - draw_island_parts(island_frame_1 + 4); - } -} -#endif // endregion - -#ifdef ENABLE_STARS // region -bool stars_setup = false; // only setup stars once, then we just twinkle them -struct Coordinate { - int x; - int y; - bool exists; -}; - -struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates - -/** - * Setup all the initial stars on the screen - * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES - * where each line is made up of 8x8 pixel groups, that are populated by a single star. - * - * Not sure how this function will work with larger or smaller screens. - * It should be fine, as long as the screen width is a multiple of 8 - */ -static void setup_stars(void) { - // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on - // 36% probability it will not be added - // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all) - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - uint8_t rand_column = rand() % 10; - uint8_t rand_row = rand() % 10; - if (rand_column < 8 && rand_row < 8) { - int column_adder = column_group * 8; - int line_adder = line * 8; - int x = rand_column + column_adder; - int y = rand_row + line_adder; - oled_write_pixel(x, y, true); - stars[column_group + (line * STARS_PER_LINE)].x = x; - stars[column_group + (line * STARS_PER_LINE)].y = y; - stars[column_group + (line * STARS_PER_LINE)].exists = true; - } else { - stars[column_group + (line * STARS_PER_LINE)].exists = false; - } - } - } - stars_setup = true; -} - -/** - * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star - */ -static void twinkle_stars(void) { - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)]; - - // skip stars that were never added - if (!star.exists) { - continue; - } - if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) { - oled_write_pixel(star.x, star.y, false); // black out pixel - - // don't allow stars to leave their own region - if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region - star.x++; // move it right immediately - } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region - star.x--; // move it left immediately - } - if (star.y == (line * 8)) { // star is the farthest up it can go in its region - star.y++; // move it down immediately - } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region - star.y--; // move it up immediately - } - - // now decide direction - int new_x; - int x_choice = rand() % 3; - if (x_choice == 0) { - new_x = star.x - 1; - } else if (x_choice == 1) { - new_x = star.x + 1; - } else { - new_x = star.x; - } - - int new_y; - int y_choice = rand() % 3; - if (y_choice == 0) { - new_y = star.y - 1; - } else if (y_choice == 1) { - new_y = star.y + 1; - } else { - new_y = star.y; - } - - star.x = new_x; - star.y = new_y; - oled_write_pixel(new_x, new_y, true); - } - - stars[column_group + (line * STARS_PER_LINE)] = star; - } - } -} - -/** - * Setup the stars and then animate them on subsequent frames - */ -static void animate_stars(void) { - if (!stars_setup) { - setup_stars(); - } else { - twinkle_stars(); - } -} -#endif // endregion - -#ifdef ENABLE_SHOOTING_STARS // region -bool shooting_stars_setup = false; // only setup shooting stars array once with defaults - -struct ShootingStar { - int x_1; - int y_1; - int x_2; - int y_2; - bool running; - int frame; - int delay; -}; - -struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars - -static void setup_shooting_star(struct ShootingStar *shooting_star) { - int column_to_start = rand() % (WIDTH / 2); - int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean. - - shooting_star->x_1 = column_to_start; - shooting_star->y_1 = row_to_start; - shooting_star->x_2 = column_to_start + 1; - shooting_star->y_2 = row_to_start + 1; - shooting_star->running = true; - shooting_star->frame++; - shooting_star->delay = rand() % SHOOTING_STAR_DELAY; -} - -static void move_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - - shooting_star->x_1++; - shooting_star->y_1++; - shooting_star->x_2++; - shooting_star->y_2++; - shooting_star->frame++; - - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true); -} - -static void finish_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - shooting_star->running = false; - shooting_star->frame = 0; -} - -static void animate_shooting_star(struct ShootingStar *shooting_star) { - if (shooting_star->frame > SHOOTING_STAR_FRAMES) { - finish_shooting_star(shooting_star); - return; - } else if (!shooting_star->running) { - setup_shooting_star(shooting_star); - } else { - if (shooting_star->delay == 0) { - move_shooting_star(shooting_star); - } else { - shooting_star->delay--; - } - } -} - -static void animate_shooting_stars(void) { - if (is_calm) { - return; - } - if (!shooting_stars_setup) { - for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) { - shooting_stars[i].running = false; - } - shooting_stars_setup = true; - } - /** - * Fixes issue with stars that were falling _while_ the - * wpm dropped below the condition for them to keep falling - */ - void end_extra_stars(uint8_t starting_index) { - for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - if (shooting_star.running) { - finish_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - } - } - - int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT; - number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars; - - if (number_of_shooting_stars == 0) { - // make sure all shooting_stars are ended - end_extra_stars(0); - } else { - for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - animate_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - end_extra_stars(number_of_shooting_stars); - } -} -#endif // endregion - -/** - * Main rendering function - * - * Calls all different animations at different rates - */ -void render_stars(void) { - // // animation timer - if (timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) { - starry_night_anim_timer = timer_read32(); - current_wpm = get_current_wpm(); - -#ifdef ENABLE_ISLAND - animate_island(); -#endif - -#ifdef ENABLE_SHOOTING_STARS - if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) { - animate_shooting_stars(); - } -#endif - -#ifdef ENABLE_STARS - // TODO offsetting the star animation from the wave animation would look better, - // but if I do that, then the stars appear in the water because - // the ocean animation has to wait a bunch of frames to overwrite it. - // Possible solutions: - // 1. Only draw stars to the top of the island/ocean. - // 2. Draw ocean every frame, only move ocean on frames matching modulus - // Problems: - // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water? - // 2. More cpu intensive. And I'm already running out of cpu as it is... - if (animation_counter % STAR_ANIMATION_MODULATOR == 0) { - animate_stars(); - } -#endif - -#ifdef ENABLE_WAVE - if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) { - animate_waves(); - } -#endif - -#ifdef ENABLE_MOON - draw_moon(); -#endif - - animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES); - } - - // this fixes the screen on and off bug - if (current_wpm > 0) { - oled_on(); - starry_night_anim_sleep = timer_read32(); - } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } -} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/rules.mk b/keyboards/solartempest/sofle/keymaps/via/rules.mk deleted file mode 100644 index 1e5b99807cb7..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/rules.mk +++ /dev/null @@ -1 +0,0 @@ -VIA_ENABLE = yes diff --git a/keyboards/solartempest/sofle/sofle.c b/keyboards/solartempest/sofle/sofle.c deleted file mode 100644 index b51a7e8a0460..000000000000 --- a/keyboards/solartempest/sofle/sofle.c +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . -*/ - -#include "sofle.h" diff --git a/keyboards/solartempest/sofle/sofle.h b/keyboards/solartempest/sofle/sofle.h deleted file mode 100644 index 6e9b06cef09f..000000000000 --- a/keyboards/solartempest/sofle/sofle.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright - * 2021 solartempest - * 2021 QMK - * - * 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 . - */ - -#pragma once - -#include "quantum.h" - -// Extra keys are added for rotary encoder support in VIA -#define LAYOUT( \ - LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ - LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ - LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ - LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ - LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ - ) \ - { \ - { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ - { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ - { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ - { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ - { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ - { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ - { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ - { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ - { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ - { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ - } From 5ffa35ce567f7a381004c44edad6a4e117c31575 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 01:36:06 -0400 Subject: [PATCH 43/94] Restore files --- .../solartempest/ak21/AK21_via_solar.json | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 keyboards/solartempest/ak21/AK21_via_solar.json diff --git a/keyboards/solartempest/ak21/AK21_via_solar.json b/keyboards/solartempest/ak21/AK21_via_solar.json deleted file mode 100644 index 0f369e01f272..000000000000 --- a/keyboards/solartempest/ak21/AK21_via_solar.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "AK21", - "vendorId": "0x414B", - "productId": "0x0021", - "lighting": "qmk_rgblight", - "matrix": { "rows": 6, "cols": 4 }, - "customKeycodes": [ - { - "name": "Super Alt Tab FWD", - "title": "Alt Tab Forwards in Windows", - "shortName": "ATABF" - }, - { - "name": "Super Alt Tab REV", - "title": "Alt Tab Reverse in Windows", - "shortName": "ATABR" - } - ], - "layouts": { - "keymap": [ - [ - { - "c": "#393B3B", - "t": "#91867A" - }, - "0,0", - "0,1", - "0,2", - "0,3" - ], - [ - "1,0", - "1,1", - "1,2", - "1,3" - ], - [ - "2,0", - "2,1", - "2,2", - { - "h": 2 - }, - "2,3" - ], - [ - "3,0", - "3,1", - "3,2" - ], - [ - "4,0", - "4,1", - "4,2", - { - "h": 2 - }, - "4,3" - ], - [ - { - "w": 2 - }, - "5,1", - "5,2" - ] -] - } -} \ No newline at end of file From 6f39df55f892064dde96a97d9c8a81d2303a60f3 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 01:50:21 -0400 Subject: [PATCH 44/94] Restoring files --- keyboards/solartempest/9e/info.json | 12 + .../solartempest/9e/keymaps/default/keymap.c | 208 +++ .../solartempest/9e/keymaps/via/config.h | 22 + .../solartempest/9e/keymaps/via/rules.mk | 1 + ...21_via_solar.json => ak21 VIA keymap.json} | 0 .../solartempest/ak21/ak21 VIA layout.json | 267 +++ keyboards/solartempest/ak21/ak21.c | 19 + keyboards/solartempest/ak21/ak21.h | 38 + keyboards/solartempest/ak21/config.h | 94 ++ keyboards/solartempest/ak21/info.json | 39 + .../ak21/keymaps/default/keymap.c | 293 ++++ .../solartempest/ak21/keymaps/via/config.h | 22 + .../solartempest/ak21/keymaps/via/keymap.c | 293 ++++ .../solartempest/ak21/keymaps/via/rules.mk | 1 + keyboards/solartempest/ak21/rules.mk | 28 + .../ak21/solartempest_ak21_via.hex | 1475 +++++++++++++++++ keyboards/solartempest/ps17/info.json | 38 + .../solartempest/ps17/keymaps/via/config.h | 22 + .../solartempest/ps17/keymaps/via/rules.mk | 1 + .../solartempest/ps17/ps17 VIA keymap.json | 51 + .../solartempest/ps17/ps17 VIA layout.json | 267 +++ keyboards/solartempest/ps17/ps17.h | 61 + keyboards/solartempest/ps17/readme.md | 39 + keyboards/solartempest/sofle/.noci | 0 keyboards/solartempest/sofle/info.json | 12 + .../sofle/keymaps/via/ocean_dream.c | 555 +++++++ .../solartempest/sofle/keymaps/via/rules.mk | 1 + keyboards/solartempest/sofle/sofle.c | 19 + keyboards/solartempest/sofle/sofle.h | 42 + 29 files changed, 3920 insertions(+) create mode 100644 keyboards/solartempest/9e/info.json create mode 100644 keyboards/solartempest/9e/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/9e/keymaps/via/config.h create mode 100644 keyboards/solartempest/9e/keymaps/via/rules.mk rename keyboards/solartempest/ak21/{AK21_via_solar.json => ak21 VIA keymap.json} (100%) create mode 100644 keyboards/solartempest/ak21/ak21 VIA layout.json create mode 100644 keyboards/solartempest/ak21/ak21.c create mode 100644 keyboards/solartempest/ak21/ak21.h create mode 100644 keyboards/solartempest/ak21/config.h create mode 100644 keyboards/solartempest/ak21/info.json create mode 100644 keyboards/solartempest/ak21/keymaps/default/keymap.c create mode 100644 keyboards/solartempest/ak21/keymaps/via/config.h create mode 100644 keyboards/solartempest/ak21/keymaps/via/keymap.c create mode 100644 keyboards/solartempest/ak21/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/ak21/rules.mk create mode 100644 keyboards/solartempest/ak21/solartempest_ak21_via.hex create mode 100644 keyboards/solartempest/ps17/info.json create mode 100644 keyboards/solartempest/ps17/keymaps/via/config.h create mode 100644 keyboards/solartempest/ps17/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/ps17/ps17 VIA keymap.json create mode 100644 keyboards/solartempest/ps17/ps17 VIA layout.json create mode 100644 keyboards/solartempest/ps17/ps17.h create mode 100644 keyboards/solartempest/ps17/readme.md create mode 100644 keyboards/solartempest/sofle/.noci create mode 100644 keyboards/solartempest/sofle/info.json create mode 100644 keyboards/solartempest/sofle/keymaps/via/ocean_dream.c create mode 100644 keyboards/solartempest/sofle/keymaps/via/rules.mk create mode 100644 keyboards/solartempest/sofle/sofle.c create mode 100644 keyboards/solartempest/sofle/sofle.h diff --git a/keyboards/solartempest/9e/info.json b/keyboards/solartempest/9e/info.json new file mode 100644 index 000000000000..82c46121d321 --- /dev/null +++ b/keyboards/solartempest/9e/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "A9e", + "url": "", + "maintainer": "solartempest", + "width": 20.25, + "height": 5.5, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,0", "x":0.25, "y":0}, {"label":"1,0", "x":2.25, "y":0}, {"label":"1,1", "x":3.25, "y":0, "h":1.5}, {"label":"1,2", "x":4.25, "y":0}, {"label":"0,3", "x":6.25, "y":0}, {"label":"0,4", "x":7.25, "y":0}, {"label":"0,5", "x":8.25, "y":0}, {"label":"0,6", "x":9.25, "y":0}, {"label":"0,7", "x":10.25, "y":0}, {"label":"0,8", "x":11.25, "y":0}, {"label":"0,9", "x":13.25, "y":0}, {"label":"0,10", "x":14.25, "y":0, "h":1.5}, {"label":"0,11", "x":15.25, "y":0}, {"label":"1,9", "x":17.25, "y":0}, {"label":"1,10", "x":18.25, "y":0, "h":1.5}, {"label":"1,11", "x":19.25, "y":0}, {"label":"0,1", "x":0, "y":1, "w":1.5}, {"label":"1,3", "x":6.25, "y":1}, {"label":"1,4", "x":7.25, "y":1}, {"label":"1,5", "x":8.25, "y":1}, {"label":"1,6", "x":9.25, "y":1}, {"label":"1,7", "x":10.25, "y":1}, {"label":"1,8", "x":11.25, "y":1}, {"label":"0,2", "x":0.25, "y":2}, {"label":"2,0", "x":2.25, "y":2}, {"label":"2,1", "x":3.25, "y":2, "h":1.5}, {"label":"2,2", "x":4.25, "y":2}, {"label":"2,3", "x":6.25, "y":2}, {"label":"2,4", "x":7.25, "y":2}, {"label":"2,5", "x":8.25, "y":2}, {"label":"2,6", "x":9.25, "y":2}, {"label":"2,7", "x":10.25, "y":2}, {"label":"2,8", "x":11.25, "y":2}, {"label":"2,9", "x":15.25, "y":2}, {"label":"2,10", "x":16.25, "y":2, "h":1.5}, {"label":"2,11", "x":17.25, "y":2}, {"label":"3,3", "x":6.25, "y":3.5}, {"label":"3,4", "x":7.25, "y":3.5, "h":1.5}, {"label":"3,5", "x":8.25, "y":3.5}, {"label":"3,6", "x":9.25, "y":3.5}, {"label":"3,7", "x":10.25, "y":3.5, "h":1.5}, {"label":"3,8", "x":11.25, "y":3.5}, {"label":"3,9", "x":15.25, "y":4.5}, {"label":"3,10", "x":16.25, "y":4.5, "h":1.5}, {"label":"3,11", "x":17.25, "y":4.5}] + } + } +} diff --git a/keyboards/solartempest/9e/keymaps/default/keymap.c b/keyboards/solartempest/9e/keymaps/default/keymap.c new file mode 100644 index 000000000000..916fa70260df --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/default/keymap.c @@ -0,0 +1,208 @@ +#include "A9e.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + KEYMAP( + KC_L, KC_1, KC_R, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_L, KC_4, KC_R, + KC_L, KC_2, KC_R, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_L, KC_5, KC_R, + KC_L, KC_3, KC_R, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_L, KC_6, KC_R, + KC_UP, KC_8, KC_DOWN, RGB_VAI, KC_9, RGB_VAD, KC_L, KC_7, KC_R), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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), + + KEYMAP( + 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, 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) + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + + + switch (id) { + + } + return MACRO_NONE; +} + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void encoder_update_user(uint8_t index, bool clockwise) +{ + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 2)); + } + } else if (index == 1) { /* Second encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 2)); + }} else if (index == 2) { /* 3 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 0)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 2)); + }} else if (index == 3) { /* 4 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 0, 11)); + }} else if (index == 4) { /* 5 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 1, 11)); + }} else if (index == 5) { /* 6 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 2, 11)); + }} else if (index == 6) { /* 7 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 9)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 11)); + }} else if (index == 7) { /* 8 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 3)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 5)); + }} else if (index == 8) { /* 9 encoder */ + if (clockwise) { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 6)); + } else { + tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 3, 8)); + } + } +} + + + +void led_set_user(uint8_t usb_led) { + + if (usb_led & (1 << USB_LED_NUM_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_CAPS_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_COMPOSE)) { + + } else { + + } + + if (usb_led & (1 << USB_LED_KANA)) { + + } else { + + } + +} \ No newline at end of file diff --git a/keyboards/solartempest/9e/keymaps/via/config.h b/keyboards/solartempest/9e/keymaps/via/config.h new file mode 100644 index 000000000000..8c2aeca25c0e --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/9e/keymaps/via/rules.mk b/keyboards/solartempest/9e/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/9e/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ak21/AK21_via_solar.json b/keyboards/solartempest/ak21/ak21 VIA keymap.json similarity index 100% rename from keyboards/solartempest/ak21/AK21_via_solar.json rename to keyboards/solartempest/ak21/ak21 VIA keymap.json diff --git a/keyboards/solartempest/ak21/ak21 VIA layout.json b/keyboards/solartempest/ak21/ak21 VIA layout.json new file mode 100644 index 000000000000..dbec06309e55 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21 VIA layout.json @@ -0,0 +1,267 @@ +{ + "name": "AK21", + "vendorProductId": 1095434273, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "MO(1)", + "KC_MSTP", + "USER01", + "USER00", + "KC_NLCK", + "KC_PSLS", + "KC_PAST", + "KC_PMNS", + "KC_P7", + "KC_P8", + "KC_P9", + "KC_PPLS", + "KC_P4", + "KC_P5", + "KC_P6", + "KC_NO", + "KC_P1", + "KC_P2", + "KC_P3", + "KC_PENT", + "KC_P0", + "KC_P0", + "KC_PDOT", + "KC_NO" + ], + [ + "KC_TRNS", + "TO(2)", + "TO(3)", + "TO(4)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "RESET", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "TO(0)", + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "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_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/ak21/ak21.c b/keyboards/solartempest/ak21/ak21.c new file mode 100644 index 000000000000..4d53707a6fa8 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21.c @@ -0,0 +1,19 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include "ak21.h" diff --git a/keyboards/solartempest/ak21/ak21.h b/keyboards/solartempest/ak21/ak21.h new file mode 100644 index 000000000000..2bf922bf5158 --- /dev/null +++ b/keyboards/solartempest/ak21/ak21.h @@ -0,0 +1,38 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE + #define LAYOUT( \ + K00, K01, K02, K03, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, K03 }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + } +#endif diff --git a/keyboards/solartempest/ak21/config.h b/keyboards/solartempest/ak21/config.h new file mode 100644 index 000000000000..2931a96fccf5 --- /dev/null +++ b/keyboards/solartempest/ak21/config.h @@ -0,0 +1,94 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "config_common.h" + +// USB Device descriptor parameter +#define VENDOR_ID 0x414B // "AK" +#define PRODUCT_ID 0x0021 +#define DEVICE_VER 0x0001 // Ver1 +#define MANUFACTURER ATLANTIS +#define PRODUCT AK21 + + +// key matrix size +#ifdef RGBLIGHT_ENABLE + #define MATRIX_ROWS 6 + #define MATRIX_COLS 4 +#endif + +#define MATRIX_ROW_PINS { B3, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { B2, F0, D6, D7 } +#define UNUSED_PINS + +// COL2ROW or ROW2COL +#define DIODE_DIRECTION ROW2COL + +// For LED status indicators +#define LED_NUM_LOCK_PIN E6 +#define LED_PIN_ON_STATE 0 + +#define RGB_DI_PIN B0 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 33 // 21 key + 12 underglow for RGBLIGHT + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 + #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM + #define RGBLIGHT_LIMIT_VAL 200 // brightness level max is 255 + #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping + #define RGBLIGHT_ANIMATIONS + + //RGB LED Conversion macro from physical array to electric array + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L01, L02, L03, L04, L05, \ + L10, L11, L12, L13, L14, L15, \ + L20, L21, L22, L23, L25, \ + L30, L31, L32, L33, L34, L35, \ + L40, L41, L42, L43, L45, \ + L51, L53, L55, \ + L60, L63, L65 ) \ + { \ + L01,L02,L03,L05,L14,L13,L12,L11,L21,L22,L23,L34,L33,L32,L31,L41,L42,L43,L55,L53,L51,L60,L63,L65,L45,L35,L25,L04,L10,L20,L30,L40, \ + } + //RGB LED logical order map + //Right->Left, Top->Bottom + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 4, 3, 2, 1, 0, \ + 10, 9, 8, 7, 6, 5, \ + 15, 14, 13, 12, 11, \ + 21, 20, 19, 18, 17, 16, \ + 26, 25, 24, 23, 22, \ + 29, 28, 27, \ + 32, 31, 30 ) +#endif + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define COMBO_COUNT 2 //Number of tap combos used +#define COMBO_TERM 300 //Default combo time is 200ms + +#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ak21/info.json b/keyboards/solartempest/ak21/info.json new file mode 100644 index 000000000000..8ebc6f69bdc9 --- /dev/null +++ b/keyboards/solartempest/ak21/info.json @@ -0,0 +1,39 @@ +{ + "keyboard_name": "Atlantis AK21 Macropad", + "url": "", + "maintainer": "solartempest", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0}, + {"x":0, "y":1}, + {"x":0, "y":2}, + {"x":0, "y":3}, + + {"x":1, "y":0}, + {"x":1, "y":1}, + {"x":1, "y":2}, + {"x":1, "y":3}, + + {"x":2, "y":0}, + {"x":2, "y":1}, + {"x":2, "y":2}, + {"x":2, "y":3, "h":2}, + + {"x":3, "y":0}, + {"x":3, "y":1}, + {"x":3, "y":2}, + + {"x":4, "y":0}, + {"x":4, "y":1}, + {"x":4, "y":2}, + {"x":4, "y":3, "h":2}, + + {"x":5, "y":0, "w":2}, + {"x":5, "y":2}, + ] + } + } +} diff --git a/keyboards/solartempest/ak21/keymaps/default/keymap.c b/keyboards/solartempest/ak21/keymaps/default/keymap.c new file mode 100644 index 000000000000..57cb17af2a32 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/default/keymap.c @@ -0,0 +1,293 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "ak21.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions. Not VIA compatible. +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + MO(_LAYER1), KC_ESC, KC_CALC, KC_BSPC, + KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + 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, + KC_TRNS, KC_TRNS + ), + [_LAYER2] = LAYOUT( + 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 + ), + [_LAYER3] = LAYOUT( + 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 + ), + [_LAYER4] = LAYOUT( + 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 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 140; + static uint16_t perkey_brightness = 80; + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ak21/keymaps/via/config.h b/keyboards/solartempest/ak21/keymaps/via/config.h new file mode 100644 index 000000000000..4bbacd9a507b --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ak21/keymaps/via/keymap.c b/keyboards/solartempest/ak21/keymaps/via/keymap.c new file mode 100644 index 000000000000..57cb17af2a32 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/keymap.c @@ -0,0 +1,293 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#include QMK_KEYBOARD_H +#include "ak21.h" +#ifdef RGBLIGHT_ENABLE + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +bool is_alt_tab_active = false; // Super Alt Tab Code +uint16_t alt_tab_timer = 0; +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR //Alt tab reverse + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR //Alt tab reverse + }; +#endif + + +enum combos { //Tap combos + kppls_7, + kppls_8 +}; + +const uint16_t PROGMEM kppls7_combo[] = {KC_KP_PLUS, KC_KP_7, COMBO_END}; +const uint16_t PROGMEM kppl8_combo[] = {KC_KP_PLUS, KC_KP_8, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [kppls_7] = COMBO(kppls7_combo, KC_BSPACE), + [kppls_8] = COMBO(kppl8_combo, KC_DELETE) +}; + + +// Tap Dance declarations +enum { + TD_MINUS_NUMLOCK, +}; + +// Tap Dance definitions. Not VIA compatible. +qk_tap_dance_action_t tap_dance_actions[] = { + // Tap once for Escape, twice for Caps Lock + [TD_MINUS_NUMLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_KP_MINUS, KC_NUMLOCK), +}; +//TD(TD_MINUS_NUMLOCK) // Add tap dance item to your keymap in place of a keycode + + +enum layer_names { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, + _LAYER4, + _LAYER5, + _LAYER6, + _LAYER7, + _LAYER8, + _LAYER9 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_LAYER0] = LAYOUT( + MO(_LAYER1), KC_ESC, KC_CALC, KC_BSPC, + KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, + KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, + KC_KP_4, KC_KP_5, KC_KP_6, + KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, + KC_KP_0, KC_KP_DOT + ), + [_LAYER1] = LAYOUT( + 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, + KC_TRNS, KC_TRNS + ), + [_LAYER2] = LAYOUT( + 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 + ), + [_LAYER3] = LAYOUT( + 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 + ), + [_LAYER4] = LAYOUT( + 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 + ), + [_LAYER5] = LAYOUT( + 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 + ), + [_LAYER6] = LAYOUT( + 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 + ), + [_LAYER7] = LAYOUT( + 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 + ), + [_LAYER8] = LAYOUT( + 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 + ), + [_LAYER9] = LAYOUT( + 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 + ) +}; + + +void matrix_init_user(void) { //run when matrix is initiated, before all features init +}; + +void matrix_scan_user(void) { //run whenever user matrix is scanned + if (is_alt_tab_active) { + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //Actions to override existing key behaviours + switch (keycode) { //For super alt tab keycodes + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + break; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + break; + } + return true; +}; + + +void keyboard_post_init_user(void) { //run as last task in keyboard init + #ifdef RGBLIGHT_ENABLE + rgblight_enable(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9. Looks great this way! + rgblight_sethsv(58, 255, 30); //Set lower default brightness when connected as the right side dimming is not yet in effect + #endif +}; + + +#ifdef RGBLIGHT_ENABLE +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + //This custom layer lighting is similar to RGB Light Gradient 9, but customized to separate key and case underglow brightness + static uint16_t underglow_brightness = 140; + static uint16_t perkey_brightness = 80; + static uint16_t current_hue = 0; //hue calculated to be used + static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue + static uint16_t layer0_hueincrement = 2; //hue gradient colour increment + static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green + static uint16_t layer1_hueincrement = 2; //hue gradient colour increment + static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange + static uint16_t layer2_hueincrement = 2; //hue gradient colour increment + static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple + static uint16_t layer3_hueincrement = 2; //hue gradient colour increment + static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red + static uint16_t layer4_hueincrement = 1; //hue gradient colour increment + + case _LAYER0: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER1: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER2: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code is for normal gradient colouration + current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER3: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + break; + case _LAYER4: + for (uint8_t i = 0; i < RGBLED_NUM; i++){ + current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue + if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 + if (i == 1 || i == 5 || i == 10 || i == 11 || i == 15 || i == 16|| i == 21|| i == 22|| i == 26|| i == 27|| i == 30|| i == 31|| i == 32) { + rgblight_sethsv_at(current_hue,255,underglow_brightness,i); + } else { + rgblight_sethsv_at(current_hue,255,perkey_brightness,i); + }; + }; + } + return state; + }; +#endif diff --git a/keyboards/solartempest/ak21/keymaps/via/rules.mk b/keyboards/solartempest/ak21/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/ak21/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ak21/rules.mk b/keyboards/solartempest/ak21/rules.mk new file mode 100644 index 000000000000..c6bc1c8cc8cf --- /dev/null +++ b/keyboards/solartempest/ak21/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# + +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver (keep for RGBLIGHT too) +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output +MIDI_ENABLE = no # No midi +UNICODE_ENABLE = yes # Unicode +COMBO_ENABLE = yes # Tap combo chording +TAP_DANCE_ENABLE = yes # Tap dance +LTO_ENABLE = yes # Reduce firmware size diff --git a/keyboards/solartempest/ak21/solartempest_ak21_via.hex b/keyboards/solartempest/ak21/solartempest_ak21_via.hex new file mode 100644 index 000000000000..1c6288a1558e --- /dev/null +++ b/keyboards/solartempest/ak21/solartempest_ak21_via.hex @@ -0,0 +1,1475 @@ +:100000000C9470030C94B7030C94B7030C94B703CF +:100010000C94B7030C94B7030C94B7030C94B70378 +:100020000C94B7030C94B7030C94B6260C94722668 +:100030000C94B1270C94B7030C94B7030C94B7033A +:100040000C94B7030C94B7030C94B7030C94B70348 +:100050000C94B7030C948D270C94B7030C94B7033E +:100060000C94B7030C94B7030C94B7030C94B70328 +:100070000C94B7030C94B7030C94B7030C94B70318 +:100080000C94B7030C94B7030C94B7030C94B70308 +:100090000C94B7030C94B7030C94B7030C94B703F8 +:1000A0000C94B7030C94B7030C94B703570060008B +:1000B000000057005F00000005010980A1018503D1 +:1000C00019012AB700150126B700950175108100A6 +:1000D000C0050C0901A101850419012AA00215011E +:1000E00026A002950175108100C005010906A10135 +:1000F0008505050719E029E7150025019508750113 +:1001000081020507190029EF1500250195F07501F9 +:1001100081020508190129059505750191029501CE +:1001200075039101C00660FF0961A1010962150014 +:1001300026FF009520750881020963150026FF003F +:10014000952075089102C005010906A1010507194E +:10015000E029E715002501950875018102950175D3 +:100160000881010507190029FF150026FF009506E3 +:100170007508810005081901290595057501910289 +:10018000950175039101C00000000000000000000F +:10019000000000000000000000000000000000005F +:1001A00000000000000000000000007E0F00D4FFEF +:1001B000FFFFC70000007800000000000000002AD8 +:1001C0002B280000000000000000000000000000DC +:1001D000000029000000002C1E3420212224342697 +:1001E00027252E362D3738271E1F20212223242590 +:1001F000263333362E37381F0405060708090A0B45 +:100200000C0D0E0F101112131415161718191A1BB6 +:100210001C1D2F3130232D350405060708090A0B54 +:100220000C0D0E0F101112131415161718191A1B96 +:100230001C1D2F3130354C00047F3F1F6432146485 +:100240003214783C1E1E140A05000101010101014F +:10025000010101020202020202020202030303037D +:10026000030303030404040404040405050505054D +:10027000060606060607070707070808080809090B +:1002800009090A0A0A0B0B0B0C0C0C0D0D0D0E0EB6 +:100290000E0F0F0F10101111111212131314141549 +:1002A0001516161717181819191A1A1B1B1C1D1DBD +:1002B0001E1E1F2020212222232424252626272813 +:1002C00029292A2B2C2D2D2E2F3031323233343543 +:1002D000363738393A3B3C3D3E3F40414243444546 +:1002E000464748494A4C4D4E4F5051535455565825 +:1002F000595A5B5D5E5F616264656668696B6C6DCF +:100300006F7072737577787A7B7D7E808283858744 +:10031000888A8C8E8F91939596989A9C9EA0A2A382 +:10032000A5A7A9ABADAFB1B3B5B7BABCBEC0C2C487 +:10033000C6C9CBCDCFD1D4D6D8DBDDDFE2E4E7E947 +:10034000EBEEF0F3F5F8FAFDFFFFAA7F554004034A +:100350000200060708090E0D0C11121314191817C4 +:100360001B1C1D201F1E16100B010A0F151A22231D +:10037000252628292A2C2D2F3032333536383A3B82 +:100380003D3E4042434547494A4C4E5051535557D4 +:10039000595A5C5E6062646668696B6D6F717375F3 +:1003A00077797B7D7F81838587898A8C8E909294F3 +:1003B00096989A9C9E9FA1A3A5A7A8AAACAEAFB100 +:1003C000B3B4B6B8B9BBBCBEBFC1C2C3C5C6C7C94A +:1003D000CACBCCCDCED0D1D2D2D3D4D5D6D7D7D804 +:1003E000D9D9DADADBDBDBDCDCDCDCDCDDDDDDDD56 +:1003F000DCDCDCDCDCDBDBDBDADAD9D9D8D7D7D65E +:10040000D5D4D3D2D2D1D0CECDCCCBCAC9C7C6C514 +:10041000C3C2C1BFBEBCBBB9B8B6B4B3B1AFAEAC5A +:10042000AAA8A7A5A3A19F9E9C9A98969492908E05 +:100430008C8A89878583817F7D7B79777573716FDE +:100440006D6B6968666462605E5C5A5957555351BA +:10045000504E4C4A4947454342403E3D3B3A383670 +:10046000353332302F2D2C2A2928262523220151DD +:100470002900B2002A0053005400550056005F00C6 +:100480006000610057005C005D005E0000005900E4 +:100490005A005B0058006200000063000000010089 +:1004A0000100010001000100010001000100010044 +:1004B0000100010001000100010001000000010035 +:1004C00001000100005C01000000010000000100CB +:1004D0000100010001000100010001000100010014 +:1004E0000100010001000100010001000000010005 +:1004F00001000100010001000000010000000100F6 +:1005000001000100010001000100010001000100E3 +:1005100001000100010001000100010000000100D4 +:1005200001000100010001000000010000000100C5 +:1005300001000100010001000100010001000100B3 +:1005400001000100010001000100010000000100A4 +:100550000100010001000100000001000000010095 +:100560000100010001000100010001000100010083 +:100570000100010001000100010001000000010074 +:100580000100010001000100000001000000010065 +:100590000100010001000100010001000100010053 +:1005A0000100010001000100010001000000010044 +:1005B0000100010001000100000001000000010035 +:1005C0000100010001000100010001000100010023 +:1005D0000100010001000100010001000000010014 +:1005E0000100010001000100000001000000010005 +:1005F00001000100010001000100010001000100F3 +:1006000001000100010001000100010000000100E3 +:1006100001000100010001000000010000000100D4 +:1006200001000100010001000100010001000100C2 +:1006300001000100010001000100010000000100B3 +:10064000010001000100010000000100000009029A +:100650005B00030100A0FA0904000001030101008E +:100660000921110100012240000705810308000A49 +:100670000904010002030000000921110100012208 +:100680002200070582032000010705030320000163 +:1006900009040200010300000009211101000122E8 +:1006A0006D000705840320000A120100020000000B +:1006B000084B4121000100010200010A0341004BE7 +:1006C000003200310000001203410054004C004190 +:1006D000004E0054004900530000000403090400C8 +:1006E00011241FBECFEFDAE0DEBFCDBF04B603FE9C +:1006F00027C08091800390918103A0918203B091E3 +:1007000083038730904BA740B04BD1F41092800305 +:1007100010928103109282031092830314BE84B757 +:10072000877F84BF0FB6F894A89580916000886198 +:1007300080936000109260000FBEE0E0F8E309953E +:1007400011E0A0E0B1E0E2E5FBE502C005900D920A +:10075000A23BB107D9F723E0A2EBB1E001C01D92A3 +:10076000A038B207E1F70E94D8270C94702D0C94A2 +:100770000000E8EDF0E080818E7F80831092E2003F +:100780001092DA001092E100A0EEB0E08C9181604E +:100790008C9380818F77808319BCA7EDB0E08C911A +:1007A0008E7F8C9380818F7E80831092E4020895E7 +:1007B0002091E4003091E50095E6A9012091EC003C +:1007C000822F817020FF06C08091E80080FF06C064 +:1007D00080E008952091E80022FD1AC0809109036D +:1007E000882389F0853089F08091EB0085FD0FC06A +:1007F0002091E4003091E50042175307F9F291503F +:10080000E1F684E0089582E0089583E0089581E0B0 +:100810000895EF92FF920F931F93CF937C018B016A +:100820000E94D803C82F811117C08091E80085FD70 +:100830000BC08091E8008E778093E8000E94D80377 +:10084000882399F3C82F08C0F70181917F01809315 +:10085000F1000150110949F78C2FCF911F910F9191 +:10086000FF90EF90089580910B0387FF13C0809154 +:10087000E80082FF06C08091E8008B778093E80053 +:1008800004C0809109038111F2CF0895809109037A +:100890008823D9F38091E80080FFF8CF8091E800A9 +:1008A0008E77ECCF982F9093E900242F762F50E08D +:1008B000891731F07091EC002091ED005091F0001B +:1008C00021FD07C09F5F973071F78093E90081E0B9 +:1008D00008953091EB003E7F3093EB003091ED00B6 +:1008E0003D7F3093ED003091EB0031603093EB00B1 +:1008F0007093EC002093ED005093F0002091EE00F7 +:1009000027FDE0CF80E00895CF92DF92EF92FF9233 +:100910000F931F93CF93DF93C8EDD0E088818F7E34 +:100920008883E7EDF0E080818160808384E082BF8E +:1009300081E08093E40288818E7F888302EE10E05C +:10094000F80110821092DA0081EEC82ED12CF60147 +:10095000108288818F7788838881806888838881E6 +:100960008F7D888319BC1092090310920A0310929C +:1009700008031092070390EEE92EF12CF701808115 +:100980008B7F808388818160888342E060E080E0A3 +:100990000E945204F60180818E7F8083F80180815D +:1009A00081608083808188608083F70180818E7F71 +:1009B0008083888180618883DF91CF911F910F911F +:1009C000FF90EF90DF90CF900895FC01809111038C +:1009D0009091120386179707A0F06115710529F40D +:1009E0009091E8009E779093E80090E06115710582 +:1009F00051F4911108C08091E80082FF34C080E07A +:100A00000895BC01F2CF809109038823C1F185309C +:100A1000C1F18091E80083FD30C08091E80082FD43 +:100A2000EACF8091E80080FFE1CF8091F300209130 +:100A3000F200382F6115710519F02830310558F092 +:100A400091E02830310509F090E02091E8002E7700 +:100A50002093E800CBCF81918093F1006150710920 +:100A60002F5F3F4FE7CF80910903882341F0853006 +:100A700041F08091E80083FFBECF81E0089582E0DD +:100A8000089583E00895089508958091E6020895F9 +:100A90009C014FB7F8948091DB029091DC02A09109 +:100AA000DD02B091DE024FBF821B930B08952FB77A +:100AB000F8948091DB029091DC02A091DD02B0916C +:100AC000DE022FBF08952091D8023091D902281755 +:100AD000390771F09093D9028093D802E091D60241 +:100AE000F091D702309721F00084F185E02D099430 +:100AF00008952091D4023091D5022817390771F05A +:100B00009093D5028093D402E091D602F091D7025F +:100B1000309721F00680F781E02D09940895E09147 +:100B2000D602F091D702309721F00190F081E02DAC +:100B3000099480E00895DC016091CC028091CD029F +:100B4000962F891301C00895292F30E0F901EE0F87 +:100B5000FF1FEC53FD4F408151814A175B07A1F401 +:100B600087E08A9FA0018B9F500D1124435E5E4F4A +:100B700081E0FA0184839613E6CF2F5F3F4F237005 +:100B800033272093CC0208952F5F3F4F922F93700D +:100B9000D8CF1092610210926002809122018111DF +:100BA00004C010922101109223018091290181112A +:100BB00004C01092280110922A010895FA018111AF +:100BC00001C0FB01099480917B03982F9E7F61F403 +:100BD0008170826080937B0380917E03893C18F052 +:100BE00088EC80937E0308958A34B0F38170886422 +:100BF000F1CFAF92BF92DF92EF92FF920F931F93CC +:100C0000CF93DF93182F062FE901493C08F048ECF9 +:100C1000E42FF0E0E75BFD4F011110C0E4915E2F7F +:100C20004E2F4983E8835A83DF91CF911F910F9113 +:100C3000FF90EF90DF90BF90AF900895202F30E0AD +:100C40004491D42EE42EF12C56E0159FC0011124BE +:100C5000EFEFF0E0BF010E947A2C812F90E0880F27 +:100C6000991F55E5569FD001579FB00D11248A1B3F +:100C70009B0B982F990F890F5F01A21AB30AAE9CA4 +:100C8000D001AF9CB00DBE9CB00D11245B2F089F0E +:100C900080011124012F11275F01A01AB10AAE9C17 +:100CA0008001AF9C100DBE9C100D11245F01A81A8D +:100CB000B108A29EC001A39E900DB29E900D11247A +:100CC000892F9927E81BF90BEE9DC001EF9D900D30 +:100CD000FE9D900D1124E92F62307105A1F050F4B2 +:100CE0006115710509F49DCF6130710581F0EB2F1D +:100CF000512F97CF6430710569F080F0663071052F +:100D000009F48FCFF4CFE42F4B2F592F8ACFE42F44 +:100D1000412F87CFEB2F542F492F83CF4B2F5D2DA2 +:100D2000E12F7FCF80E00895F894E82FE295EF70EF +:100D3000F0E031A1282F2F7081E090E001C0880FF2 +:100D40002A95EAF7982F9095932391A392A1892B46 +:100D500082A3789408959091DF0292FF06C0282F15 +:100D600028712830F9F4877F846093FF06C0282F0C +:100D700028712831F1F4877E84612091E00220FF00 +:100D800006C0382F38713830D9F4877F816021FF51 +:100D900006C0282F28712831D1F4877E816194FD07 +:100DA000877E0895282F24712430F9F68B7F886080 +:100DB000DCCF282F2471243101F78B7E8861DDCFB1 +:100DC000382F3171313019F78E7F8860E0CF282FAE +:100DD0002171213121F78E7E8861E1CFCF93DF939E +:100DE000EC0182389105A9F1D8F58133910509F418 +:100DF00096C048F58932910509F48AC08A9709F4AA +:100E000095C0C11522E5D20708F0B6C0C11531E57D +:100E1000D30708F026C1C83ED10508F09CC0C03EEB +:100E2000D10560F5C83AD10508F087C0C53AD105AB +:100E300008F0EFC0C130D10509F12097F9F0C430B6 +:100E4000D105E0F440C08533910509F45AC0C99733 +:100E5000C1F68091DF02837089F0C0EED0E00EC051 +:100E6000833E910599F170F4803E910501F1823E37 +:100E7000910539F68091DF0282FD21C0CE01DF911C +:100E8000CF910895863E910561F1873E910571F1FC +:100E9000843E910509F0B5CF8091E00281FFEECF4D +:100EA0008091DF02C7EED0E084FD0DC0E7CF8091D6 +:100EB000DF0280FD07C19091E00290FFDFCFC3EE1B +:100EC000D0E084FFDBCFD0E0C0E0D8CF8091DF025C +:100ED00082FDFBC09091E00290FDBFCF84FFCECF9A +:100EE000F2CF8091DF0283FDDDCFC8CF8091DF029A +:100EF00083FDEEC09091E00291FFF0CFC4EED0E010 +:100F0000BDCF8091DF0285FFB9CFC9E2D0E0B6CF77 +:100F10008091DF0285FFB2CFC5E3D0E0AFCF8091F3 +:100F2000DF0286FFABCFCAE2D0E0A8CF8091DF021C +:100F300086FFA4CFC1E3D0E0A1CFCF3BD10518F607 +:100F4000C85AD0E0CC0FDD1FCA5BDE4F0990D881B4 +:100F5000C02DD46493CFC11540E5D40708F064C018 +:100F6000C11580E4D80708F05CC0CE019A958115C0 +:100F70009F4108F483CFA7CFC11536E5D30718F5F5 +:100F8000C11545E5D40708F084C0C11584E5D8072C +:100F900008F07AC09C2F969596959E012370332772 +:100FA000C115D34508F462C0C1E0D0E002C0CC0F47 +:100FB000DD1F2A95E2F730E2939FC0011124C82B70 +:100FC000D92BDA685BCFC1158AE5D80778F4C1154B +:100FD00099E5D90708F068C0C11528E5D20708F4DB +:100FE00072CFDC2FCC27C06FD06A48CFCE0190568D +:100FF0008115904208F067CF8D2F8F710E94AB064C +:1010000090E0982F882788279F719C012C2BE9015D +:1010100049C0C55AD0E0CD5BDE4FC881D0E0D06476 +:101020002DCFDF70D06A2ACFCE01E4E09695879568 +:10103000EA95E1F783702C2F26952695237040E2E0 +:10104000249F90011124382B8C2F8370C1E0D0E0B5 +:1010500002C0CC0FDD1F8A95E2F7C22BD32BDC68D0 +:101060000DCFDC2FCC27C16FD06A08CFC1E0D0E014 +:1010700002C0CC0FDD1F2A95E2F720E2929FC0014B +:101080001124C82BD92BEBCFDC2FCC27C46FD06A0F +:10109000F5CE8C2F0E94AB06C82FD0E0DC2FCC27DA +:1010A000CC27DF71D062EACE8C2F8F700E94AB0606 +:1010B00034E0D695C7953A95E1F7CF709C2FEC01B7 +:1010C000D069DCCEC9E3D0E0D9CEC2EED0E0D6CE36 +:1010D000C6EED0E0D3CE8091310281111092310260 +:1010E000089580959091D30298239093D302089508 +:1010F0008091D3029091D202892B90913002892B5A +:101100008093B401909131029923A1F0892B8093AF +:10111000B40180914201882341F18091DF0287FF71 +:1011200024C08EE1E6EBF1E090E0815000F59111F2 +:101130000E946B08E091D602F091D7023097E1F05F +:1011400080914201882359F08091DF0287FF07C018 +:101150008091B4018093B50185E08093B401028051 +:10116000F381E02D84EB91E0099486E0DBCF2191BF +:101170002223D9F29F5FD9CF0895CF93DF93EC015B +:1011800081E0898B8091D3029F81892B8093D30248 +:101190008091D2029885892B8093D2020E94780890 +:1011A000EA81FB81309739F06C897D89CE01069602 +:1011B000DF91CF910994DF91CF910895EF92FF9243 +:1011C0000F931F93CF93DF93EC018A85811139C070 +:1011D000EB80FC8087E5F81A26E12E9DC0012F9D4B +:1011E000900D1124DC01A45DBE4F1496ED91FC918D +:1011F0001597309731F054966D917C918E5C9E4F8F +:10120000099586E18E9D80018F9D100D1124045D4E +:101210001E4FF80187810E947108F8018085982F80 +:1012200090958091D20289238093D2020E947808FF +:10123000188219861B861E821D821092D10210927E +:10124000D002DF91CF911F910F91FF90EF90089501 +:10125000909142019923D1F09091DF0297FF16C03F +:10126000E82FE695E695E695EE31E0F4F0E0EC54F3 +:10127000FE4F282F277081E090E001C0880F2A954B +:10128000EAF780959281892382830895E6EBF1E065 +:101290009191891303C0DF0111971C9291E0EC3BFF +:1012A000F907B1F70895909142019923C1F0909107 +:1012B000DF0297FF14C0E82FE695E695E695EE313C +:1012C000F8F4F0E0EC54FE4F877021E030E001C00C +:1012D000220F8A95EAF78281822B82830895A6EBFA +:1012E000B1E0EFEF90E02D91821751F0EF3F19F44C +:1012F000211101C0E92F9F5F9630A9F7EF3F09F454 +:1013000008950E2E000CFF0BEC54FE4FE6CF80919B +:101310002E029091ED01981301C008958F5F8770A0 +:10132000FACF990F990F890F982F97708695869508 +:10133000869524E0829FF0011124E752FE4F50E091 +:1013400040E080E0219130E0092E02C036952795DB +:101350000A94E2F721703327042E01C0220F0A9469 +:10136000EAF7822B4F5F5F4F4430510559F70895DC +:10137000990F990F890F982F977041E001C0440F82 +:101380009A95EAF786958695869594E0899FF0016F +:101390001124E752FE4F30E020E070E05191DF0170 +:1013A0001197CB01022E02C0969587950A94E2F719 +:1013B000817081958527842385278C932F5F3F4FEC +:1013C0002430310559F7089590E080E00E947905B6 +:1013D00090E080E00E9463051092D20210923002E9 +:1013E0000C94780890933302809332020C94E409B1 +:1013F000882341F080959091D20289238093D20274 +:101400000C9478080895882339F09091D202982B93 +:101410009093D2020C9478080895882321F00E94BA +:1014200071080C9478080895882339F09091D302BC +:10143000982B9093D3020C9478080895882309F48C +:101440004BC0823871F40E948F0581FF45C089E34B +:101450000E9453090E94780889E30E9428090C948D +:101460007808833859F40E948F0580FF35C083E5E2 +:101470000E9453090E94780883E5EFCF843859F41D +:101480000E948F0582FF28C087E40E9453090E94B2 +:10149000780887E4E2CF9CEF980F913AF0F290E25F +:1014A000980F983050F4877091E001C0990F8A9599 +:1014B000EAF7892F0E947108D2CF9BE5980F9330ED +:1014C00020F490E080E00C947905885A873120F46C +:1014D00090E080E00C946305089580FD02C0769A48 +:1014E0000895769808959C013A9521153F4150F54D +:1014F000FC01EE27F170BC0166277270AC01442735 +:1015000054709C012227387094FF0EC080E1EF2BAD +:1015100009F480E0672B09F08062452B09F08064B4 +:10152000232B89F08068089581E0EF2B09F480E097 +:10153000672B09F08260452B09F08460232B19F09A +:101540008860089580E00895CF93DF93EC010E94B6 +:101550001E0ACE010E94730A9E01205E31092830C6 +:10156000310510F0CD2B21F4DF91CF910C940D0AB1 +:10157000DF91CF910C94F809FC018081813029F42E +:10158000FB01808191810C94A40A823021F4FB013B +:1015900082819381F8CF089590910903943029F5C1 +:1015A0008093E1027093E3026093E2029093E9007A +:1015B0008FEF9091E800815095FD06C095ED9A95CA +:1015C000F1F700008111F5CF8091E80085FF0DC093 +:1015D00050E040E063E070E081EE92E00E94090498 +:1015E0008091E8008E778093E8000895BC0184E044 +:1015F0000C94CC0ABC0183E00C94CC0ACF93DF930B +:10160000EC01809142018823B1F18091DF0287FFD4 +:1016100032C060E284E08093E9008FEF9091E800AF +:10162000815095FD06C095ED9A95F1F70000811166 +:10163000F5CF8091E80085FF1BC08091420170E0EA +:1016400050E040E0811104C050E040E068E070E00C +:10165000CE010E9409048091E8008E778093E80013 +:1016600080E2FE01A7EEB2E001900D928A95E1F7CB +:10167000DF91CF91089568E081E0CDCF81E0809344 +:10168000E00080E28093D8001092C9008FE19EE4D0 +:101690000197F1F700C0000087E090EBDC01809338 +:1016A000800390938103A0938203B093830388E126 +:1016B0009CE00FB6F894A895809360000FBE9093BD +:1016C0006000FFCFAF92BF92CF92DF92EF921F9355 +:1016D000CF93DF93CDB7DEB7C356D1090FB6F894D9 +:1016E000DEBF0FBECDBF80917B0380FD0AC0E8E165 +:1016F000F3E0118210821282339683E0EB37F80711 +:10170000C1F77EE4A72E73E0B72EDE011196AE017D +:101710004C595F4F1A2F7B2FF5018491282F30E011 +:10172000C901880F991F820F931F885E9C4FFC018F +:10173000C080D180E280CD92DD92ED92FFEFAF1AB2 +:10174000BF0AA417B50741F7209A35B13E7F25B1EE +:1017500021606FB7F894812F972FFC017191CF0111 +:10176000E8E025B9000000C077FF35B9770F000029 +:1017700000C000C000C035B900C0EA9591F78417D9 +:10178000950759F76FBF8FE594E00197F1F700C017 +:101790000000CD59DF4F0FB6F894DEBF0FBECDBFAE +:1017A000DF91CF911F91EF90DF90CF90BF90AF90DE +:1017B00008951F93CF93DF9300D00F92CDB7DEB77C +:1017C000142F90917B0390FF1AC09E012F5F3F4F13 +:1017D000462F6FEF0E94F905113289F08B819981B4 +:1017E000412F50E0FA01EE0FFF1FE40FF51FE85EF6 +:1017F000FC4F2A812183908382830E94620B0F9089 +:101800000F900F90DF91CF911F910895EF92FF926B +:101810000F931F93CF93DF937C018F2D90E0C8E04F +:10182000009711F4C701C0E09C0154E0369527955C +:101830005A95E1F72115310511F0CC5FC9019C01E2 +:1018400036952795369527952115310511F0CE5FF0 +:10185000C90196958795892B09F0CF5FC23009F4AD +:101860008AC068F4CC23B1F1C13009F45BC0C70170 +:10187000DF91CF911F910F91FF90EF900895C330AA +:1018800009F4AEC0C43099F7CEE1D0E08C2F4C2FD4 +:101890004E51D093D501C093D401942F9B7F9130AA +:1018A00089F0942F9E7E9A3069F093ED9C0F9230D0 +:1018B00048F09DEC9C0F923028F094EC9C0F9330F4 +:1018C00008F0B7C06CE80E94D90B2196CF33D10540 +:1018D000E9F6CDCF08E310E01093D5010093D401D1 +:1018E000802F9C2F9B7F913081F09C2F9E7E9A3081 +:1018F00061F091EF9C0F923040F09BEE9C0F923084 +:1019000020F092EE9C0F933050F44C2F6CE80E9424 +:10191000D90BCF5F0E5F1F4FC132F1F6A8CF4C2F0E +:1019200060E5F5CF0FE010E0C0E01093D501009323 +:10193000D401802F9C2F9B7F913081F09C2F9E7E25 +:101940009A3061F091EF9C0F923040F09BEE9C0F2B +:10195000923020F092EE9C0F933050F44C2F6CE8B4 +:101960000E94D90BCF5F0E5F1F4FC132F1F67FCFC0 +:101970004C2F60E5F5CF0CED10E0C0E00F3F1105F6 +:1019800009F030F51093D5010093D4018091D40172 +:101990009C2F9B7F913091F09C2F9E7E9A3071F00E +:1019A00091EF9C0F923050F09BEE9C0F923030F0F4 +:1019B00092EE9C0F4C2F60E5933010F44C2F6CE8A6 +:1019C0000E94D90BCF5F0E5F1F4FC132B9F64FCFC8 +:1019D000C8018F5F91099093D5018093D401D6CF30 +:1019E00007E810E0C0E01093D5010093D401802FE8 +:1019F0009C2F9B7F913081F09C2F9E7E9A3061F0CE +:101A000091EF9C0F923040F09BEE9C0F923020F0B3 +:101A100092EE9C0F933050F44C2F6CE80E94D90B3F +:101A2000CF5F0E5F1F4FC132F1F621CF4C2F60E523 +:101A3000F5CF60E548CF0E94060C90931403809385 +:101A400013030C94E40980911303909114039C01F7 +:101A5000267033272630310519F488600C941B0D4D +:101A6000877FFCCF21E030E002C0220F331F8A9530 +:101A7000E2F720953095809113039091140382230F +:101A800093230C941B0D90912F02809589238093B2 +:101A90002F02282F277039F4282F082E000C330B23 +:101AA0009217130621F49091E00292FF07C08595EA +:101AB000859585950E94320D10922F02089521E0A0 +:101AC00030E002C0220F331F8A95E2F780911303A2 +:101AD00090911403822B932B0C941B0DEF92FF9289 +:101AE0000F931F93CF93DF938C01C8E1D3E0F12CC8 +:101AF000E12CF801948160917D0380917C03F0E1F9 +:101B0000EF16F104FCF49923F9F09E0140917E0355 +:101B10000E94F9052FEFE21AF20A239681E2E816F5 +:101B2000F10439F70E94620BF801848190E001967C +:101B3000817099278483DF91CF911F910F91FF903E +:101B4000EF900895992309F39E0140E0E1CF8F9231 +:101B50009F92AF92BF92CF92DF92EF92FF920F933C +:101B60001F93CF93DF93EC014C81042F10E0980179 +:101B7000D8010E94D92C9B01AC010E94EF2C4B0193 +:101B80005C01E0E2F0E0E01BF10BA5E5B0E0AC01A8 +:101B90009B010E94EF2C6B017C019F01DF010E94E1 +:101BA000D12C9B01AC010E94FA2C9B01AC01280DA9 +:101BB000391D4A1D5B1DC701B6010E94A22CF22EE1 +:101BC000822F90E039E23F15D8F143E0249F900145 +:101BD000112435952795122F109598E1C92E93E081 +:101BE000D92E00E085E5E82EEF188E2D01FD8F2D12 +:101BF0009601412F60917D030E94F9050F5F53E02C +:101C0000C50ED11C013289F70E94620B9C8181E0D4 +:101C1000992319F0903219F48FEF80931C01809171 +:101C20001C01890F8C83DF91CF911F910F91FF9041 +:101C3000EF90DF90CF90BF90AF909F908F900895DE +:101C400025E530E0A901481B590BCA019A01220F72 +:101C5000331F280F391F37FFBCCF2F5F3F4FB9CF3E +:101C60000F931F93CF93DF93C8E1D3E0FE0111825E +:101C700010821282339683E0EB37F807C1F710E049 +:101C800000E080915E02082E000C990B08171907DE +:101C90008CF180911B01082E000C990B8017910785 +:101CA0004CF19E0140917E0360917D0380917C0305 +:101CB0000E94F9050F5F1F4F23960132110509F7A6 +:101CC0000E94620B80911A0190915E02980F90938E +:101CD0005E0220911B01280F20931B01121614F4A1 +:101CE00090321CF0819580931A01DF91CF911F9162 +:101CF0000F910895198218821A82DCCFBF92CF9279 +:101D0000DF92EF92FF920F931F93CF93DF93FC012B +:101D10008281DD24DA9480FD02C0DD24D39408E1C1 +:101D200013E0D0E0C0E021E2B22EF801118210826F +:101D3000128294E0E92EF12CC12C80915D028C0D71 +:101D400082320CF43DC06B2D0E946C2C892F082E22 +:101D5000000C990B8C179D0791F480917E038E9D4A +:101D6000A0018F9D500D1124559547955595479588 +:101D7000980160917D0380917C030E94F905CD0C50 +:101D8000F1E0EF1AF108C9F621960D5F1F4FC1323D +:101D9000D10559F60E94620B80915D0291E0D91243 +:101DA00015C0811111C080E280935D02DF91CF9157 +:101DB0001F910F91FF90EF90DF90CF90BF9008950B +:101DC00087FFC5CF8F5DC3CF8150EECF90E00196E6 +:101DD000BE010E948E2CE8CFEF92FF921F93CF930B +:101DE000DF93EC0188E1E82E83E0F82E10E08C818F +:101DF000970140917E0360917D03810F0E94F90558 +:101E0000195F83E0E80EF11C173E89F70E94620B10 +:101E10009A818C8190FF08C08F5F8C83DF91CF9176 +:101E20001F91FF90EF9008958150F7CF90917B0321 +:101E300090FF0CC0E8E1F3E0818360834283339636 +:101E400093E0EB37F907C1F70C94620B08950F93F9 +:101E50001F93CF93DF9300D00F92CDB7DEB78C01E5 +:101E600080915F0281110AC09E012F5F3F4F48ECB5 +:101E70006FEF0E94F9058A8180935F02F801648107 +:101E8000613069F080915F0240E0662361F040E0DC +:101E9000623011F440915F0280E060E004C0609124 +:101EA0005F0240E080E00E94160FF801848190E01C +:101EB000019663E070E00E948E2C84830F900F9057 +:101EC0000F90DF91CF911F910F910895CF93DF93E2 +:101ED00000D00F92CDB7DEB790917B0390FF0AC080 +:101EE0009E012F5F3F4F0E94F9054B8169818A81D6 +:101EF0000E94160F0F900F900F90DF91CF910895D1 +:101F0000CF93DF93EC01EBE7F3E0438162818C81B7 +:101F10000E94660F8C818F5F8C83DF91CF91089533 +:101F2000CF93DF93EC01EC81F0E0E259FC4F449158 +:101F3000EBE7F3E0628181810E94660F8C818F5F05 +:101F40008C83DF91CF910895CF93C82F882309F414 +:101F5000A6C08238C1F40E948F0581FDA0C089E32C +:101F60000E9453090E9478082FEF81EE94E02150DF +:101F700080409040E1F700C0000089E30E942809FA +:101F8000CF910C9478088338A1F40E948F0580FDCE +:101F900086C083E50E9453090E9478082FEF81EEE6 +:101FA00094E0215080409040E1F700C0000083E5BC +:101FB000E5CF8438A1F40E948F0582FD70C087E4CC +:101FC0000E9453090E9478082FEF81EE94E021507F +:101FD00080409040E1F700C0000087E4CFCF8CEF55 +:101FE0008C0F813A88F580914201882301F180911C +:101FF000DF0287FF1CC0EC2FE695E695E695F0E042 +:10200000EC54FE4F828190E04C2F477021E030E08D +:1020100002C0220F331F4A95E2F782239323892BB4 +:1020200079F08C2F0E9428090E94780809C0E6EBFD +:10203000F1E08191C817A9F321E0EC3BF207C9F761 +:102040008C2F0E9453099CCF80E28C0F883068F45B +:10205000C77021E030E001C0220FCA95EAF78091F5 +:10206000D302822B8093D3028BCFEBE5EC0FE330CE +:1020700040F4F0E0ED5BFE4F808190E0CF910C9456 +:102080007905C85AC73158F4EC2FF0E0EE0FFF1F66 +:10209000EA5BFE4F80819181CF910C946305CF91D3 +:1020A00008951F93CF93DF93182FD0E0C0E08933BA +:1020B00011F4C0E5D0E0812F0E94A40F209731F4E5 +:1020C000812FDF91CF911F910C941E0A8FE99FE021 +:1020D0000197F1F700C000002197F0CF0F931F93F5 +:1020E000CF93DF93C62FD42F022FFC018281882348 +:1020F000A1F0609317030E945705909316038093F5 +:102100001503C77081E001C0880FCA95EAF7DF9117 +:10211000CF911F910F910C94140A809117036813AB +:1021200035C080911503909116030E944805883CA4 +:10213000910560F510E21D0FCD17B9F080E28C0F0C +:10214000883040F4C77081E001C0880FCA95EAF773 +:102150000E940D0A183048F481E09D2F977001C04D +:10216000880F9A95EAF70E94140A802F0E94511056 +:10217000183098F4D77081E001C0880FDA95EAF73B +:10218000DF91CF911F910F910C940D0AC77081E0E0 +:1021900001C0880FCA95EAF7F3CFDF91CF911F9165 +:1021A0000F910895DF92EF92FF920F931F93CF93B9 +:1021B000DF93E82FF0E0E954FE4FD490282F2695C6 +:1021C0002695269530E0F901E955FE4F0491877078 +:1021D00010E0082E02C0159507950A94E2F70170E9 +:1021E0001127F901E956FE4FE490F12C082E02C0A8 +:1021F000F594E7940A94E2F791E0E922FF24F901CB +:10220000E957FE4FC491D0E002C0D595C7958A9595 +:10221000E2F7C170DD270115110519F081EE0E946A +:10222000A40FE114F10419F086EE0E94A40F8D2D85 +:102230000E945110EF2819F086EE0E941E0A012B11 +:1022400019F081EE0E941E0ACD2B51F08CE2DF9135 +:10225000CF911F910F91FF90EF90DF900C94511050 +:10226000DF91CF911F910F91FF90EF90DF90089534 +:10227000CF93DF93EC010E94730A9E01205E310927 +:102280002830310510F0209739F40E94140A8C2F61 +:10229000DF91CF910C94A40F0E94030AF8CFFC01A8 +:1022A0008081813029F4FB01808191810C94381167 +:1022B000823021F4FB0182819381F8CF0895CF937E +:1022C000DF93EC018881823039F4FB0182819381B4 +:1022D0000E94381181E08B87DF91CF910895CF93D1 +:1022E000DF93C7E0D2E060E0CE010E94222D21966C +:1022F000C11584E0D807B9F7DF91CF9108956F92A7 +:102300007F928F929F92AF92BF92CF92DF92EF9285 +:10231000FF920F931F93CF93DF938EE6C82E84E036 +:10232000D82E0FE510E0E801E09736011CC0F5015A +:1023300085909490692DC7010E94222D682DC701B8 +:1023400001960E94222D82E0A80EB11C82E0E80EC8 +:10235000F11CCE15DF0559F788E0680E711C289630 +:102360000C171D0731F07E0188E0E81AF1085301CF +:10237000DECF005D1F4F80E3C80ED11C0F3382E01B +:10238000180789F6DF91CF911F910F91FF90EF9081 +:10239000DF90CF90BF90AF909F908F907F906F9085 +:1023A0000895CF93C82F6FEF811161E283E290E02F +:1023B0000E94222DC1110CC0CFEF6C2F84E290E05F +:1023C0000E94222D6C2F85E290E0CF910C94222D5B +:1023D000C9E0F3CF80E00E94D11160E086E290E096 +:1023E0000E94222D0E947F110E946F1181E00C94A7 +:1023F000D111CF93C091E002C2FB992790F99817B1 +:1024000081F080FBC2F9C093E0026091DF0284E0BA +:1024100090E00E94222D6C2F82E290E0CF910C94EC +:10242000222DCF9108950F931F93CF93DF9328E030 +:10243000629FE001112450E0440F551FC40FD51FC7 +:1024400030E3839FC00DD11D1124CE0187960E94D9 +:102450000E2D082F10E0102F0027CE0188960E9425 +:102460000E2D9801282BC901DF91CF911F910F915B +:102470000895462F8A3038F4763028F4643018F402 +:10248000672F0C94131290E080E00895BF92CF92D2 +:10249000DF92EF92FF920F931F93CF93DF937C0114 +:1024A0000091130310911403809132029091330232 +:1024B000082B192BCFE0D0E0CC24C394D12CBC2E18 +:1024C000C6010C2E02C0880F991F0A94E2F78023E0 +:1024D0009123892B71F4219790F7B12C8B2DDF91EB +:1024E000CF911F910F91FF90EF90DF90CF90BF9011 +:1024F0000895B7018C2F0E9439120E94EE060197B1 +:1025000051F3ECCFCF93DF93EC010E944612BE0152 +:102510000E943912DF91CF910C94EE06FC01868166 +:102520009781009779F00E94EE06292F2F709295DF +:102530009F7092509E30A0F4E92FF0E0EE58F24DDB +:102540000C94C42C808191810E948212EECF803F36 +:1025500019F020F4883E20F481E00895843FE1F3EF +:1025600080E00895883EC0F3813FD1F7F5CF822FF8 +:1025700086958695869508951F93CF93DF9300D017 +:1025800000D00F92CDB7DEB7FC012681378121152F +:10259000310541F525E0DE01119601900D922A9555 +:1025A000E1F7FC01228189819A812223B9F0662317 +:1025B000A9F00E944612182F682F89819A810E94E3 +:1025C000B80969817A81812F0F900F900F900F9039 +:1025D0000F90DF91CF911F910C9439120E949109B5 +:1025E000182FEFCFC9010F900F900F900F900F9001 +:1025F000DF91CF911F91089583E290E00E940E2D0C +:10260000813289F484E290E00E940E2D893059F4E1 +:1026100085E290E00E940E2D91E0893009F090E073 +:10262000892F8170089580E0FCCFCF9384E090E003 +:102630000E940E2DC82F82E290E00E940E2D982F4E +:102640008C2FCF91089560917B03669570E04BE0ED +:1026500050E08FE091E00E94562D892B19F481E023 +:1026600080935C020E945705909356028093550216 +:102670000895CF92DF92EF92FF926B017C010E944E +:10268000E305B701A60188E090E0FF90EF90DF90AE +:10269000CF900C94342D5F926F927F928F929F9285 +:1026A000AF92BF92CF92DF92EF92FF920F931F9360 +:1026B000CF93DF9300D00F92CDB7DEB7182F762ED1 +:1026C000042F622E90917B0390FF29C0E92FE6959D +:1026D000AE2FB0E0A258BE4F8C9180935B029E7FDC +:1026E000923081F59E012F5F3F4F812F0E94F905A7 +:1026F0004B8169818A810E94160F10937C0370922E +:102700007D0300937E03662051F060917B037091FE +:102710007C0380917D0390917E030E9439130F907A +:102720000F900F90DF91CF911F910F91FF90EF903D +:10273000DF90CF90BF90AF909F908F907F906F90E1 +:102740005F900895823019F400917E03D6CF8630D1 +:1027500019F410917C03D1CF8930D9F3893169F60E +:10276000E9518E2F8170582EE695F0E0E75BFC4F23 +:10277000A590B490BB2488E1E82E83E0F82ED12CFC +:10278000C12C91E2892E912CC601B4010E947A2CB1 +:10279000812F511013C0860F9701402F672D0E9483 +:1027A000F905CA0CDB1C83E0E80EF11C8BE7E81688 +:1027B00083E0F80649F70E94620B9FCF861BECCF9F +:1027C000EBE7F3E0438128E0421B08F440E021E01E +:1027D000628181810C944B13EBE7F3E0438128E0A5 +:1027E000420F08F44FEF21E0628181810C944B137A +:1027F000EBE7F3E0628128E0621B08F460E021E08F +:10280000438181810C944B13EBE7F3E0628128E074 +:10281000620F08F46FEF21E0438181810C944B1328 +:10282000EBE7F3E0818121E04381628188500C94E1 +:102830004B13EBE7F3E0818121E043816281885F04 +:102840000C944B1380917F03882319F0815080935F +:102850007F0360917B0370917C0380917D03909155 +:102860007E030C94391380917F03833018F48F5FBB +:1028700080937F0360917B0370917C0380917D0343 +:1028800090917E030C94391390917B0390FF36C096 +:102890009170811129C0926090937B03662351F05F +:1028A00060917B0370917C0380917D0390917E0306 +:1028B0000E94391360917B03669570E04BE050E015 +:1028C0008FE091E00E94562D892BA9F010925C02B6 +:1028D00081E08093580220E040917E0360917D0367 +:1028E00080917C030C944B13853210F09864D4CF04 +:1028F000880F982BD1CF0E942313EACF089580919F +:102900007B038695815009F484E261E00C944414C1 +:1029100080917B0386958F5F853208F081E061E0CE +:102920000C94441490917B0390FF07C096959817E0 +:1029300020F0961710F40C94881461E00C94441461 +:10294000EBE7F3E083E0808311828FEF828388E2FC +:102950008383148260817181828193810C94391305 +:1029600069EE7EEF90E080E00E94402D60E082E022 +:1029700090E00E94222D60E083E090E00E94222DF2 +:10298000109233021092320260E084E090E00E94E4 +:10299000222D60E082E290E00E94222D60E085E03E +:1029A00090E00E94222D60E086E090E00E94222DBF +:1029B0006FEF87E090E00E94222D40E050E0BA01E6 +:1029C00088E090E00E94342D60E08DE090E00E946D +:1029D000222D40E050E0BA0188E190E00E94342DC1 +:1029E00060E087E190E00E94222D40E050E0BA01D3 +:1029F0008CE190E00E94342D70E060E080E290E095 +:102A00000E94402D40E050E0BA0188E190E00E9431 +:102A1000342D80E00E94D1110E94EA1140E050E084 +:102A2000BA018FE090E00E94342D40E050E0BA01FE +:102A300083E190E00C94342D90E080E00E941C2D06 +:102A4000893E9E4F11F40C94FC1280E00895109280 +:102A5000D30280914201E6EBF1E0882359F08091A6 +:102A6000DF0287FF07C08EE1DF011D928A95E9F73B +:102A70000C94E40986E0F8CF1F93CF93DF93CDB792 +:102A8000DEB7AA970FB6F894DEBF0FBECDBF8BE0BE +:102A900093E02091F100DC012D93CD01B3E083316F +:102AA0009B07B9F780910C03833009F471C0B8F427 +:102AB000813009F448C0823009F4B2C08091E80046 +:102AC00083FF3AC180910B0390910C039A3008F078 +:102AD00033C1E92FF0E0E058F24D0C94C42C8A3059 +:102AE00009F48DC08B3009F470C0893039F78091BA +:102AF0000B03813219F780910F0390911003009717 +:102B000011F00297D9F68091E800877F8093E80062 +:102B10008091E80082FF37C09091F3008091F2002D +:102B2000029729F48091F1008B7F813021F480910C +:102B3000F1008093E6028091E8008B778093E800B3 +:102B40000E943304BBCF80910B03813A09F0B6CFCA +:102B50008091E800877F8093E80080910F03909137 +:102B60001003892B61F460E287EE92E070E00E942E +:102B7000E5048091E8008B778093E8009FCF60E0C8 +:102B800090E080E0F3CF809109038111C1CF96CF0F +:102B900080910B03813A09F091CF80910F039091BE +:102BA0001003892B09F08ACF8091E800877F8093FA +:102BB000E8008091E80080FFFCCF80914201809383 +:102BC000F1008091E8008E77B9CF80910B038132BC +:102BD00009F074CF80910F0390911003892B09F0B5 +:102BE0006DCF8091E800877F8093E8000E943304D6 +:102BF00080910D03809342010E9427155FCF809141 +:102C00000B03813209F05ACF8091E800877F8093CF +:102C1000E8000E94330480910E038093E5024ECFBA +:102C200080910B03813A09F049CF8091E800877FBA +:102C30008093E8008091E80080FFFCCF8091E5025E +:102C4000BECF803899F0823809F076C080910F03AA +:102C50008F70873008F070C08093E9008091EB009E +:102C600085FB882780F91092E90006C08091070350 +:102C700090910803911182609091E800977F909362 +:102C8000E8008093F1001092F1008091E8008E77C7 +:102C9000B5C1882309F4A2C1823009F04DC08091EA +:102CA0000D038111A6C180910F038F702FEF280FA4 +:102CB000263008F041C08093E9002091EB0020FF0E +:102CC00098C1933031F48091EB0080628093EB00E7 +:102CD00090C19091EB0090619093EB0021E030E087 +:102CE00001C0220F8A95EAF72093EA001092EA00C9 +:102CF0008091EB008860EACF81111EC010910D0316 +:102D00001F778091E3008078812B8093E30080918E +:102D1000E800877F8093E8000E9433048091E800F8 +:102D200080FFFCCF8091E30080688093E30082E025 +:102D3000111183E0809309038091E80083FF0AC0AA +:102D40008091E800877F8093E8008091EB008062AB +:102D50008093EB00AA960FB6F894DEBF0FBECDBFEE +:102D6000DF91CF911F9108958058823028F72091EC +:102D70000D0330910E032C3DE3E03E07A1F583E007 +:102D80008A838AE289834FB7F894DE01139620E0A4 +:102D90003EE051E2E32FF0E050935700E49120FF32 +:102DA00003C0E295EF703F5FEF708E2F90E0EA3046 +:102DB000C0F0C7968D939D932F5F243159F74FBF75 +:102DC0008091E800877F8093E8006AE270E0CE019E +:102DD00001960E94E5048091E8008B778093E800DB +:102DE000ABCFC096E7CF80910F0390911003432F94 +:102DF00055274330510509F44AC078F54130510553 +:102E000009F47AC08BE590E0EEE4F6E0423051053B +:102E100009F092CF2091E800277F2093E8002091CD +:102E20001103309112038217930708F49C0140E0CC +:102E30002115310509F065C0411163C08091E8009A +:102E400082FDC9CF80910903882329F2853019F2C8 +:102E50008091E80083FFF2CFBECF4132510509F4E3 +:102E60003CC04232510509F067CF8330910508F02C +:102E700063CFFC01EE0FFF1FEA55FE4F0190F0817A +:102E8000E02D8D559E4FDC018C9190E01AC03327C8 +:102E900021303105D1F02115310561F022303105A5 +:102EA00009F04ACFEBEBF6E0E4918E2F90E0EBEBEC +:102EB000F6E007C0EBEDF6E0E4918E2F90E0EBED4D +:102EC000F6E0009709F438CFA5CFE7ECF6E0E491FF +:102ED0008E2F90E0E7ECF6E0F4CF8330910508F018 +:102EE0002BCF880F991FFC01E455FE4F0190F08114 +:102EF000E02D89E090E08ECF82E190E0E9EAF6E013 +:102F000089CF80910903882309F465CF853009F4BE +:102F100062CF8091E80083FD5ECF8091E80082FD62 +:102F20008DCF8091E80080FF83CF9091F300809156 +:102F3000F2002115310519F08830910550F041E07B +:102F4000089709F040E08091E8008E778093E800D0 +:102F50006FCF44914093F100319621503109019691 +:102F6000E8CF803809F0E8CE8091E800877F809331 +:102F7000E80080910A038093F10087CE8111DCCEB6 +:102F800010910D03123008F0D7CE8091E800877FB2 +:102F90008093E80010930A030E943304112311F078 +:102FA00084E005C08091E30087FDFACF81E0809343 +:102FB000090342E061EC81E00E94520442E261ECCC +:102FC00084E00E94520442E261EC82E00E945204DA +:102FD00042E260EC83E00E945204AECE80910D0389 +:102FE000813009F0A9CE81E0933009F080E0809330 +:102FF00008031092E9008091E800877F8093E80041 +:103000000E94330499CE9F92AF92BF92CF92DF92EB +:10301000EF92FF920F931F93CF93DF9300D000D0D6 +:10302000CDB7DEB77C01DC0113968D919C9114978E +:10303000892B39F08C9111969C9189238F3F09F04F +:1030400040C60F900F900F900F90DF91CF911F917E +:103050000F91FF90EF90DF90CF90BF90AF909F9037 +:103060000895D60116968C9116978823E9F0199643 +:103070008D919C910817190739F48091D002909195 +:10308000D1020817190781F0F60197861487038784 +:103090008189811103C0C6010E94BD08C601069640 +:1030A0000E94DE081092D202FFEFAF1ABF0A26E19B +:1030B000C20ED11C1CC6980122513F45203131055A +:1030C00008F0DEC48FEF93E00E940E2D025167E0FE +:1030D000C62E62E0D62E882349F180912F02877098 +:1030E00009F4AFCFF7018281882309F4AACF82E0E7 +:1030F0000F900F900F900F90DF91CF911F910F9134 +:10310000FF90EF90DF90CF90BF90AF909F900C9486 +:10311000430DC11434E0D30601F3C6010E940E2D05 +:10312000811101C001508FEFC81AD80A0111F1CFE7 +:103130001C821B82BB24B3945AE0A52E86010F5F2C +:103140001F4FC6010E940E2D89831A82882329F2FF +:103150009FEF980F933020F58A83B98292E0C90ED1 +:10316000D11CC8010E940E2D8B83882309F4B5CF92 +:103170008E010F5F1F4FD8018C918823F9F28130A7 +:1031800009F046C011969C91119712968C9191303E +:1031900049F40E5F1F4F0E9451100F5F1F4FEBCF7E +:1031A0006801E6CF923029F40E5F1F4F0E94A40FF2 +:1031B000F4CF933029F40E5F1F4F0E941E0AEDCF0B +:1031C000943019F00F5F1F4FE8CF0E5F1F4F30E0B4 +:1031D00020E0B8016F5F7F4FF80141818053990B68 +:1031E0008A30910550F021503109B8F28FE99FE003 +:1031F0000197F1F700C00000F6CFA29EF001A39E58 +:10320000F00D11249C012E0F3F1F842F8B01E1CF65 +:103210000E94D210C2CF81E00E945F0D0E94230D58 +:103220005CCF81E00E94320DF9CF82E0F5CF882398 +:1032300069F180913902811106C081E080933902E1 +:1032400082EE0E94A40F0E9457059093380280934B +:1032500037028BE20E94A40F27C48823A1F080913B +:103260003902811106C081E08093390282EE0E940A +:10327000A40F0E945705909338028093370281EE85 +:103280000E94A40FE6CF81EE0E941E0A8BE20E94EC +:103290001E0A0AC4882309F455C4F60181898823CB +:1032A00009F450C4C5018E5C9E4F0E94DE084AC4DA +:1032B00082EE0E94A40F82C488E193E00E9438113C +:1032C00088E193E00E94A40A79C482EE0E94A40FD0 +:1032D00087E50E94511072C486EE0E94511088E169 +:1032E000F8CF895A85C482EE0E941E0A99C48CE2E6 +:1032F0000E9451108091D701882309F491C489E379 +:103300000E9451108DC488E2FBCF033FBCE51B0730 +:1033100039F188F4083DFCE51F07F1F0093D2CE583 +:10332000120751F1073D3CE5130709F07DC426E281 +:1033300041EE61EE0DC0053F8CE51807C9F0A0F025 +:1033400027E245EE66EE063FACE51A0709F06CC4CD +:10335000C7010E946E10C1CE27E245EE65EEF8CFA0 +:1033600026E241EE60EEF4CF27E245EE64EEF0CFC8 +:1033700026E241EE62EEECCF28E241E0EFCF809111 +:10338000DF02806106303CE5130709F487C008F4CA +:103390008CC08091DF02806281C08091DF028D7FCE +:1033A0000C309CE5190709F479C070F48091DF02B4 +:1033B0008C600A30BCE51B0709F470C008F481C0BA +:1033C0008091DF028E7F6AC08091DF02877F0E309E +:1033D000FCE51F0709F462C08091DF028B7F0F308C +:1033E0001C4508F45BC08091DF028F7E57C00B3F05 +:1033F0003CE5130709F45DC030F503319CE519077E +:1034000009F46DC078F40131BCE51B0709F463C011 +:1034100002311C4509F045C40E9427158091DF0246 +:103420008F773CC00531FCE51F0709F460C008F444 +:1034300074C08091E00281600A3F1C4509F031C4EC +:103440008093E0022EC40F3F8CE5180709F44BC0AF +:1034500088F48091E0028D7F0D3FACE51A0781F37F +:103460008091E0028E7F0E3F1C4550F38091E00278 +:103470008360E6CF0130EDE51E0709F457C008F47C +:1034800042C060E002301D4509F00BC48EE090E0C0 +:103490000E94222D06C48091DF0281608093DF02AA +:1034A00000C48091DF028460F9CF8091DF028860E0 +:1034B000F5CF8091E0028260C3CF8091DF0280640B +:1034C000EDCF0E9427158091DF028068E7CF8091C1 +:1034D000DF028F7DE3CF8091DF028F7BDFCF809192 +:1034E000DF02837FDBCF8091E0028C7FA9CF8091C8 +:1034F000DF0282FB992790F921E0922790FB82F965 +:1035000090FB83F9CBCF8091E002982F909591703A +:103510008E7F892B90FB81F993CF0E942715909184 +:10352000DF02892F97FB87F98058B8CF61E0AECFD3 +:103530008091D30206313CE5130709F0FCC38A7A77 +:1035400091E009F490E09093D801811106C089E2DE +:103550000E9453090E947808C0CD85E3F9CF85E326 +:10356000E7C380917B0380FF1BC08E7F80937B032A +:1035700060917B0370917C0380917D0390917E0329 +:103580000E94391310925C028FEF90E7A2E0815005 +:103590009040A040E1F700C000000E94620B9DCD6A +:1035A000816080937B0361E086950E94441495CDF1 +:1035B0004FE754E168E874E10E94DE058ECD48E8EB +:1035C00054E16FE774E1F8CF49E154E160E174E15F +:1035D000F3CF48EF53E164E074E1EECF40EE53E106 +:1035E0006CEE73E1E9CF4CEE53E160EE73E1E4CFB2 +:1035F00043E354E162E274E1DFCF61E081E0D5CFE3 +:1036000065E082E00E94921468CD68E086E0FACF1F +:1036100064E18FE0F7CF67E185E1F4CF62E289E111 +:10362000F1CF61E083E2C1CF0B353DE5130701F136 +:103630000C351D4509F0AAC38091E00282FB882762 +:1036400080F991E089270E94F911A0C30E942715F3 +:103650009FEFA4E3BCE09150A040B040E1F700C070 +:1036600000000E943E0B0E94B01437CD81E0EBCFEA +:1036700080E0E9CFF701828100811181882369F020 +:10368000C8010E944612D82E682FC8010E94B809AE +:10369000B8018D2D0E94391280C3C8010E94910982 +:1036A000D82EF6CFE12FEF70CE2E107F19F0C294F6 +:1036B00090EFC922DD20C9F0CC2069F080E2800FB4 +:1036C000883010F001110BC08091D302C82AC0923B +:1036D000D3020E947808802F0E94A40F16C0809108 +:1036E000D202C82AC092D202F4CF802F0E941E0AB2 +:1036F000CC2059F080E2800F883010F0011138C0E2 +:103700008C2D0E9471080E947808A92DA850BB0B2F +:10371000149720F40E948F050E946D0AAA20A9F038 +:1037200080912F0280FD11C0F70112828595859549 +:1037300085950E945F0DC7010E94031880912F029A +:103740008595859585950E94320D60E0C7010F90A3 +:103750000F900F900F90DF91CF911F910F91FF90DD +:10376000EF90DF90CF90BF90AF909F900C94BC12E1 +:10377000C0948091D202C822C092D202C4CFF12F4D +:10378000FF70BF2E107F103219F0B29480EFB82274 +:10379000002381F0013099F1DD20F1F1CC20A9F175 +:1037A000D70115968C91159780FF95CF8F70159640 +:1037B0008C932BC0DD20B1F0909131028B2D892BA1 +:1037C000C11003C00E94140AA0CF21E0C212FACF98 +:1037D0002091E00222FD99CF981709F496CF8093AB +:1037E000310293CFC11006C00E946B088B2D0E943E +:1037F0000D0A8BCF31E0C31609F487CFF5CFDD205A +:1038000031F085E08C1508F480CF8B2DDBCF94E070 +:103810009C1508F47ACFEACFCC2041F3093349F460 +:10382000BFEFE7EEF3E0B150E040F040E1F700C059 +:103830000000802F0E941E0A68CF812F86958695F2 +:10384000837061F0813009F060CFC8019370D110AE +:1038500002C090E080E00E94630557CFC8019370DA +:10386000D11002C090E080E00E9479054ECF812FF8 +:10387000837009F03FC0D11048CF402F4295469544 +:103880004770440F440F802F8F7090E0042E02C0C9 +:10389000880F991F0A94E2F730E020E004FF09C086 +:1038A0002FE030E002C0220F331F4A95E2F7209547 +:1038B0003095169516951370123099F078F4409162 +:1038C000320250913302113039F0822B932B842332 +:1038D00095230E94F20919CF842B952B822B932BD1 +:1038E000F8CF822B932B2091320230913302822722 +:1038F0009327EFCF8695DD2011F0812F81708823EB +:1039000009F403CF402F429546954770440F440F6A +:10391000802F8F7090E0042E02C0880F991F0A94A8 +:10392000E2F730E020E004FF09C02FE030E002C001 +:10393000220F331F4A95E2F720953095169516957C +:103940001370123099F078F44091130350911403DE +:10395000113039F0822B932B842395230E941B0D69 +:10396000D4CE842B952B822B932BF8CF822B932BA9 +:10397000209113033091140382279327EFCF1F70F8 +:10398000DD2029F0812F0E945F0D802F1BCF802F1B +:103990000E940D0A812F0E94320DB7CE023F09F41A +:1039A00041C060F4003F11F1013FA1F1DD2009F4B5 +:1039B00057C0C11090CE812F8F7131C0033FB9F134 +:1039C000043FA1F7DD2009F440C01F71812F0E9440 +:1039D0005F0D8091E00282FD07C0A8E01A9FC00140 +:1039E0001124836080932F02812F19C0DD2069F09C +:1039F00024E02C1508F489CE1F7181E090E002C00C +:103A0000880F991F1A95E2F7B3CF35E03C1508F4FB +:103A10007CCEF2CF812F8F71DD2009F4BCCF0E94C4 +:103A20005F0D73CE812F8F71DD20C9F3B4CF90E08D +:103A300080E0DD2009F492CF1F7181E090E002C0A8 +:103A4000880F991F1A95E2F789CF81E00E94430DF4 +:103A5000B1E0BC1508F059CE82E00E94430D55CE6E +:103A6000CC2059F0093309F0E4CEEFEFF7EE23E074 +:103A7000E150F0402040E1F7DACE812F8F718BCFFB +:103A80000031FFE51F0709F4C6CB01312FE512070E +:103A900009F4CBCB0038AFE51A0709F4C8CB0138DD +:103AA000BFE51B0709F4D9CBC80197558F3F910596 +:103AB00011F008F047C020910401022E000C330BD6 +:103AC0002817390714F480930401F701228136E1A5 +:103AD000389F5001399FB00C1124C501845D9E4F61 +:103AE0006C01DC0150962C935097928116968C9124 +:103AF0001697992309F4CECB1A961C930E93199717 +:103B00008F5F16968C930E945705F60196878587DE +:103B10008091310287838091D2029091D302892BC8 +:103B200080870190F081E02D309741F0D6015496C6 +:103B30006D917C91C5018E5C9E4F09951093D102C9 +:103B40000093D002D70112968C91882369F0C801A6 +:103B5000815E9C45059740F46FE1600F60933A02E7 +:103B60008CE090E00E94222D17FFCFCBF7018281DD +:103B7000882309F459C00E948F058695817080932F +:103B8000D70190913A02913029F4882319F089E302 +:103B90000E9451108091D3028093D6011092D302DB +:103BA00080913A02813009F487CB882309F480CBD5 +:103BB000823009F48ACB843009F48ECB8FE39CE900 +:103BC0000197F1F700C000005801E894B7F84CE005 +:103BD000C42ED12CC5010C2C02C0969587950A9451 +:103BE000E2F78F7096EF980F963008F47ACB805DED +:103BF0000E94D21094E0C91AD108ACEFCA16AFEFF8 +:103C0000DA0641F780913A02813009F470CB8823BB +:103C100009F469CB823009F466CB843009F473CBA4 +:103C20008091D6018093D302F7018281882309F421 +:103C300077C0109217030230FCE51F0708F478CC18 +:103C400006312CE5120730F0C8018A5F9C450997C0 +:103C500008F06ECC0E9415139093E0028093DF026F +:103C600000313CE5130709F432CC08F0C0CB083032 +:103C70009CE5190709F421CC08F08FCB0430BCE592 +:103C80001B0709F40ECC08F07ACB0230FCE51F07C5 +:103C900009F401CC8091DF02826003301C4509F4F5 +:103CA000FDCB6091DF021091E00284E090E00E9481 +:103CB000222D612F82E290E00E94222D0E94271582 +:103CC0000CCA61E0C7010E94BC128C01D701129698 +:103CD0008C918823A9F0809104018F3F89F07CE2C8 +:103CE000C72E71E0D72EB12CA12C992493948091EA +:103CF0000401082E000C990B8A159B050CF0B1C924 +:103D0000F70182818111D7C900313FE5130709F41A +:103D100088CA01319FE5190709F0BCCE82E082CA4A +:103D200006311C4599F58091D801811118CC89E2A2 +:103D30000E9428090FCC82720C3CECE51E0709F4A6 +:103D400057CC08F090C0063C2CE5120709F43CCC97 +:103D500008F065C0033C9CE5190709F429CC08F07C +:103D60004FC0023CBCE51B0709F4FBCB0A35BDE59F +:103D70001B0709F47BCC08F057CC0115FCE51F07A5 +:103D800009F464CC0E3D1C4509F46DCCD7011696A0 +:103D90008D919C91009709F46DCC0E94EE068C01E8 +:103DA000D7011296DC9012971596CC90C2943FE002 +:103DB000C32280912F028770A1F0AD2CDD2091F0FD +:103DC000812F807F803421F080E2800F883048F09E +:103DD00082E00E94430D80912F028770AA24A39451 +:103DE0008111A12C912E92942FE09222BBE0B91563 +:103DF00008F48BCCE92DF0E0E657F24D0C94C42C7E +:103E0000043CECE51E0709F4DACB40E154E169E13A +:103E100074E1053CFCE51F0709F4CECBA7CF093CB4 +:103E20002CE5120709F4DACB78F4073C9CE5190776 +:103E300009F4CFCB44E054E168EF73E1083CACE512 +:103E40001A0709F4B9CB92CF0A3CBCE51B0709F469 +:103E5000CACB42E254E163E374E10B3CECE51E079C +:103E600009F4AACB83CF013DFCE51F0709F4D0CBB1 +:103E7000A0F40E3C3CE5130709F4C2CB08F4BDCB1B +:103E80000F3C9CE5190709F4C0CB6EE089E0003DCA +:103E9000ACE51A0709F4B6CB69CF043DBCE51B07B6 +:103EA00009F4BCCB68F4023DFCE51F0709F4B3CB71 +:103EB00061E088E1033D2CE5120709F476CB56CF8B +:103EC000053D3CE5130709F4ACCB0D35100709F4AB +:103ED00004C94CCFCF93DF938091EA01807FA1F496 +:103EE0008091E701882381F080912E02D091ED012D +:103EF0006091E5017091E601A091E801B091E901BE +:103F0000C62FC723D81303C0DF91CF91089590E047 +:103F1000109711F0CF3F19F401968770F3CF9C01F1 +:103F200043E0220F331F4A95E1F7F901E251FE4FBA +:103F300041814713F1CF40814613EECF42814111B9 +:103F4000EBCF438154814A1B5B0B483C510520F762 +:103F50008091EA018F7080618093EA01F901ED5050 +:103F6000FE4F80818F708061808385EE91E00E949A +:103F70000318DF91CF910C948709AF92BF92CF9233 +:103F8000DF92EF92FF920F931F93CF93DF93CDB702 +:103F9000DEB765970FB6F894DEBF0FBECDBF8C01BC +:103FA00085E0F801DE01519601900D928A95E1F7C6 +:103FB000F801E28065EEA62E61E0B62E6091E80180 +:103FC0007091E9016115710509F468C19091E501ED +:103FD0004091E601892F84238F3F09F45FC120813E +:103FE0003181C380D480F090E701F601E61BF70B26 +:103FF000FF2009F41DC18091EA01582F507FE83C51 +:10400000F10508F0D0C0511181C0FE2C43132BC024 +:10401000921329C06091EB017091EC01F801468187 +:10402000578164177507F9F4E1101DC08F70806126 +:104030008093EA01C5010E9403188091EA01F8010A +:1040400085838F2D65960FB6F894DEBF0FBECDBF6A +:10405000DF91CF911F910F91FF90EF90DF90CF9064 +:10406000BF90AF900895CD2829F0822F83238F3FF2 +:1040700009F02FC180E0F82FF170DF2E80FF3CC0E7 +:1040800080912E024091ED01841315C0298B3A8B4B +:1040900089899A890E948212292F22952F702230B5 +:1040A000F8F0243020F59F70F9F0F8019581907FA9 +:1040B000D9F4D12C1FC090E0FC0153E0EE0FFF1F9C +:1040C0005A95E1F7E251FE4F5181351306C05081F8 +:1040D000251303C05281E5120FC001968770D4CF1B +:1040E0009F7011F0882329F3805E883010F3C80197 +:1040F0000E940318FD2CA5CFEE2009F4A2CF8091D9 +:10410000EA0181608093EA01F12C9BCF43131BC02D +:10411000921319C04091EB015091EC01F8012681F6 +:1041200037814217530779F4E1100DC08583C80128 +:104130000E94031888E0F801A5EEB1E001900D920D +:104140008A95E1F77ECFC8010E948E12882339F14B +:10415000EE2029F18091EA018032A0F02091E50162 +:104160003091E6013A8729871B86DD86CC868E87CB +:104170008091EB019091EC01988B8F87CE0109968D +:104180000E94031888E0F801A5EEB1E001900D92BD +:104190008A95E1F70E946A1FFF24F39452CFC80169 +:1041A0000E940318F9CF51110AC085EE91E00E94D8 +:1041B000031888E0F50111928A95E9F7A5CF43131A +:1041C00018C0921316C04091EB015091EC01F80118 +:1041D000268137814217530761F4E1100AC08583B5 +:1041E000C8010E94031888E0F50111928A95E9F749 +:1041F00028CFC8010E948E12882389F2EE2079F21E +:104200008091EA01803208F4BDCF2091E501309120 +:10421000E6013A8329831B82DD82CC828E838091E2 +:10422000EB019091EC0198878F83CE010196A8CF86 +:10423000E83CF105C0F6FE2CEE2009F4B0CF4313A4 +:104240001FC092131DC02091EB013091EC01F801C9 +:10425000868197812817390799F49091EA0190FD9A +:1042600069CF907F09F466CF8091EA018583903F02 +:1042700009F45DCF982F907F905F8F70892B56CF78 +:10428000C8010E948E1281117DCF8091EA01816068 +:104290008093EA01C8010E940318D3CEEE2009F4EE +:1042A0007ECFC8010E948E12F82E882309F477CFA2 +:1042B00088E0F801A5EEB1E001900D928A95E1F752 +:1042C0008091E5019091E6010E9482120E946A1F8E +:1042D000B8CE81E08E25CFCECF93DF93CDB7DEB7BA +:1042E00060970FB6F894DEBF0FBECDBF29873A871F +:1042F0004B875C876D877E878F87988BCE01099669 +:104300000E94BD1F811112C088E0FE013996DE01B6 +:10431000119601900D928A95E1F78C859D85892BE8 +:1043200029F089859A8589238F3FA9F580912E02EE +:104330009091ED0189131CC060960FB6F894DEBF12 +:104340000FBECDBFDF91CF91089593E0AA0FBB1FA1 +:104350009A95E1F7A251BE4F98E0FE013196019087 +:104360000D929A95E1F78093ED010E948709DECFC7 +:10437000B8E08B9FC001112482519E4F0E94BD1F47 +:104380008823D1F280912E0290E0019687709927C0 +:1043900080932E02CBCFA091ED01B0E0CD0101962C +:1043A0008770992720912E022817190671F60E940E +:1043B00027151092ED0110922E0288E0E5EEF1E053 +:1043C000DF011D928A95E9F7B1CF0F931F93CF9329 +:1043D000DF9380916302E0916202CCE081111AC008 +:1043E000DF91CF911F910F910895D1E0DE0FD0930F +:1043F00062020E2F10E0EC9FF0011124EC59FD4FEA +:1044000083819481892B29F08081918189238F3F39 +:1044100051F4ED2F80916302E81738F31092630294 +:1044200010926202DDCFC09FD001C19FB00D112458 +:10443000AC59BD4F16968D919C911797892B29F4F5 +:1044400018968D919C91019651F420813181428181 +:10445000538164817581868197810E946C21C09F00 +:10446000F001C19FF00D1124EC59FD4F148213820D +:10447000D0CF1092CF021092CE0210922B018091D9 +:10448000CD028093CC020E94C9050C94E5212F92A5 +:104490003F924F925F926F927F928F929F92AF92D4 +:1044A000BF92CF92DF92EF92FF920F931F93CF9321 +:1044B000DF93C091CC02E7E0FE2E01E010E0FCE0CB +:1044C0002F2EAEEFEA2E8091CD028C1316C00E94E3 +:1044D000E521DF91CF911F910F91FF90EF90DF9039 +:1044E000CF90BF90AF909F908F907F906F905F9094 +:1044F0004F903F902F900C94C905D0E0FE01EE0F35 +:10450000FF1FEC53FD4F80819181F89EF001F99ED1 +:10451000F00D1124E35EFE4F2481211158C030902C +:104520006302A4E6B2E030E020E0412C5F012315F5 +:1045300008F04BC01A966D907C901B97F501808017 +:1045400091804FEF5FEF512CC52CD12CF601EE0F6F +:10455000FF1FE80DF91D659174916616770609F441 +:10456000A601672B11F05394EFCF4F3F5407B1F1E1 +:10457000B80102C0660F771F4A95E2F7462AA801E4 +:1045800002C0440F551F5A94E2F741505109441696 +:10459000150601F5229EF001239EF00D1124EC5921 +:1045A000FD4FF89ED001F99EB00D1124A35EBE4FC1 +:1045B00012962D913C91139737832683E082E182F6 +:1045C0009187808771E015967C930E949B052196C8 +:1045D000C37079CF14961C921E9213972F5F3F4F92 +:1045E0001C96A5CFAF92BF92CF92DF92EF92FF922F +:1045F0000F931F93CF93DF9300D000D000D0CDB79F +:10460000DEB78E010F5F1F4F86E0D8011D928A959D +:10461000E9F724E7C22E21E0D22EF12CE12CAA24C6 +:10462000A394B12CF60181916F018F3F09F44BC027 +:10463000F894E82FE295EF70F0E021A18F70A501CA +:1046400002C0440F551F8A95E2F7CA01922F982B9A +:1046500091A392A18095892382A3789400C0C5017B +:104660000E2C01C0880F0A94EAF7382F282F2095C6 +:1046700068E771E0F801DB019D91BD0180819F3FFA +:1046800009F46BC0492F42954F7050E0DA019096C3 +:104690004C9150E09F7002C0559547959A95E2F76E +:1046A00040FD5BC0832B80833196B1E06E377B0782 +:1046B00011F7F601319780818F3F11F00E94940627 +:1046C000E0EAEA95F1F7FFEFEF1AFF0A24E0E216BD +:1046D000F10409F0A7CF46E050E0B8018EE392E084 +:1046E0000E94632DDD24D394009709F4D12C892BEB +:1046F000B1F186E0F801AEE3B2E001900D928A9547 +:10470000E1F781E0809336020E94570590933502CD +:104710008093340280913402909135020E944805C2 +:10472000059708F180913E0280934F0280913F02ED +:104730008093500280914002809351028091410207 +:1047400080935202809142028093530280914302EF +:10475000809354021092360206C08223A4CF809127 +:1047600036028111D7CF809104018F3F09F06AC0D2 +:1047700080912B0181116AC080913902882371F0E8 +:1047800080913702909138020E944805893E9340FB +:1047900028F082EE0E941E0A109239028D2D269674 +:1047A0000FB6F894DEBF0FBECDBFDF91CF911F9142 +:1047B0000F91FF90EF90DF90CF90BF90AF90089552 +:1047C000E29EF001E39EF00D1124E45DFE4FA2880D +:1047D000B388A114B10419F498ECA92EB12CE29E6F +:1047E0008001E39E100D1124045D1E4FD801169622 +:1047F0008C9116978823C9F01D968D919C910E94EB +:104800004805A816B90688F4FE9C50011124F80149 +:104810008189811105C0C501845D9E4F0E94BD083C +:10482000C5018E5C9E4F0E94DE08F3942F2D30E070 +:1048300080910401082E000C990B821793070CF04D +:10484000BFCF96CFF12C86E1E82EF0CF8091CE023B +:104850009091CF02009709F48FCF0E9448052091D4 +:104860006002309161022817390708F085CF9091D6 +:10487000CC028091CD02981759F00E9447221092E5 +:104880006102109260021092CF021092CE0274CF99 +:104890000E94E5211092CF021092CE020E94C9051B +:1048A0006BCF2F923F924F925F926F927F928F9237 +:1048B0009F92AF92BF92CF92DF92EF92FF920F93AF +:1048C0001F93CF93DF93CDB7DEB769970FB6F894F8 +:1048D000DEBF0FBECDBF498B5A8B6B8B7C8B8D8B14 +:1048E00061111092D2021D861E861F86188A85E0ED +:1048F000FE017196DE01199601900D928A95E1F7FD +:104900008C859D85892B31F089859A8589238F3FF8 +:1049100009F0D4C129853A854B855C856D857E85F6 +:104920008F8598890E946C21C3C028EFC2162CE5A0 +:10493000D20629F4882379F00E943922EBCF39EF8F +:10494000C3163CE5D30639F4882329F080912B0166 +:104950008111F2CFC3C10DE111E0E12CB12CA12CEA +:1049600088248394912C2EEF522E44244394F801F2 +:104970006081718166246A94762C20E0422F50E099 +:10498000FA01EE0FFF1FE60FF71F85919491C816ED +:10499000D90609F43A01892B31F02F5FEFCFAA2411 +:1049A000A394B12CE4CFF12CFFEF6F167F0609F42E +:1049B00045C0F8014481F0902B018F2D411180E01A +:1049C000F82FF170FF2EF801258086819B859923B1 +:1049D00009F404C1FF2009F401C1211014C0A4018D +:1049E00001C0440F6A94EAF7842B868380916002A9 +:1049F000909161028C32914030F44CE251E050933E +:104A0000610240936002C40102C0880F991F2A9579 +:104A1000E2F70197F80126812817190679F48091A9 +:104A2000CE029091CF02009709F45BC00E94480526 +:104A30008D32914008F455C0F8014482EF28095F97 +:104A40001F4FAA94AB2809F0AACF8B85882309F4BD +:104A500020C1EE2009F41DC10E9457059093CF029A +:104A60008093CE0280916302883010F591E0980F18 +:104A70009093630298E0FE013996DE011196019051 +:104A80000D929A95E1F72CE0829FC00111248C5978 +:104A90009D4F28E0FE013196DC0101900D922A9590 +:104AA000E1F72FEF3FEFFC0131872087D386C286E5 +:104AB00069960FB6F894DEBF0FBECDBFDF91CF91E0 +:104AC0001F910F91FF90EF90DF90CF90BF90AF902C +:104AD0009F908F907F906F905F904F903F902F901E +:104AE00008958091CC026090CD02982FF0E0E0E034 +:104AF000861114C09093CC020E171F0709F49ECFA5 +:104B000090E0FC01EE0FFF1FEC53FD4FB182A0823D +:104B10000196837099278093CD0290CF282E312C57 +:104B2000F101EE0FFF1FEC53FD4F20813181F7E0C3 +:104B3000F29FD001F39FB00D1124A35EBE4F2D91C3 +:104B40003C911197398F288F712C60E070E0E72F2E +:104B5000F0E0EE0FFF1F288D398DE20FF31F259136 +:104B6000349121153105E1F0F8010190F081E02D3B +:104B7000FF8BEE8B60E005C02417350709F47F2C0E +:104B80006F5FE62FF0E0EE0FFF1F4E895F89E40FA5 +:104B9000F51F459154914115510571F77F5FD7CFAE +:104BA0007720C9F0F801671708F0FD0144820E175D +:104BB0001F0721F49093CC02F72C40CF981305C027 +:104BC000AE17BF0711F49F5F937091012F5F3F4FA6 +:104BD000822F83708DCFF0E0E0E0F7CF90E02110DE +:104BE0001FC0B40102C0660F771F2A95E2F79B0130 +:104BF000215031092817390731F4442309F447C0FB +:104C0000C5010E949B05C40101C0880F6A94EAF7A0 +:104C1000982F9095F801868189238683F22C0ECFF8 +:104C20009C01062C02C0359527950A94E2F7A9014C +:104C300041705527BC016150710986239723892B48 +:104C400011F5452B01F1F80182819381892BC1F087 +:104C50001B821C821D821E8259825A820E94570525 +:104C60008160582F9D838C83F801828193818F838B +:104C7000988729813A814B816D817E810E946C21C8 +:104C8000F8011582C0CFF22FF1702F2EBCCF2F2C40 +:104C9000BACF9091CC028091CD02981731F00E944A +:104CA0004722EE2009F436CE03CF0E94E521109270 +:104CB000CF021092CE020E94C905F3CF61E0CE016F +:104CC00009960E94BC126C018B85F7EFCF16FCE5AC +:104CD000DF0609F02ACE882309F43DCE81E08093D7 +:104CE0002B0118CE1F920F920FB60F9211242F9303 +:104CF0003F934F935F936F937F938F939F93AF9364 +:104D0000BF93CF93DF93EF93FF93D091E900DF70D0 +:104D10008091EC00C82FC17080FDC0E81092E900BE +:104D20008091F000877F8093F00078940E943C157A +:104D30001092E9008091F00088608093F000CD2B04 +:104D4000CF70C093E900FF91EF91DF91CF91BF91B8 +:104D5000AF919F918F917F916F915F914F913F9113 +:104D60002F910F900FBE0F901F9018951F920F92CA +:104D70000FB60F9211242F933F934F935F936F932E +:104D80007F938F939F93AF93BF93EF93FF93809104 +:104D9000E10082FF09C08091E20082FF05C080919E +:104DA000E1008B7F8093E1008091DA0080FF24C0D6 +:104DB0008091D80080FF20C08091DA008E7F8093A0 +:104DC000DA008091D90080FF9BC080E189BD82E13B +:104DD00089BD09B400FEFDCF81E080930903809175 +:104DE000E402811109C00E94B9030E9484048091E9 +:104DF000E20084608093E2008091E10080FF17C0B0 +:104E00008091E20080FF13C08091E2008E7F80934A +:104E1000E2008091E20080618093E2008091D800FE +:104E200080628093D80019BC85E08093090380914B +:104E3000E10084FF29C08091E20084FF25C080E169 +:104E400089BD82E189BD89B5982F917080FFFBCF24 +:104E50008091D8008F7D8093D8008091E1008F7E73 +:104E60008093E1008091E2008F7E8093E200809148 +:104E7000E20081608093E20080910A03882309F4B4 +:104E800045C084E0809309038091E10083FF27C03F +:104E90008091E20083FF23C08091E100877F8093AF +:104EA000E10082E08093090310920A038091E100FF +:104EB0008E7F8093E1008091E2008E7F8093E200FC +:104EC0008091E20080618093E20042E060E080E057 +:104ED0000E9452048091F00088608093F000FF915E +:104EE000EF91BF91AF919F918F917F916F915F9162 +:104EF0004F913F912F910F900FBE0F901F901895DB +:104F000019BC109209031092E40276CF8091E3005D +:104F100087FD93E090930903B7CF78941F921FB653 +:104F20001F9211248F939F93AF93BF938091DB02C5 +:104F30009091DC02A091DD02B091DE020196A11DEC +:104F4000B11D8093DB029093DC02A093DD02B0934D +:104F5000DE02BF91AF919F918F911F901FBE1F9056 +:104F600018951F921FB61F9211248F939F93AF9392 +:104F7000BF938091DA02811113C08091DB0290917E +:104F8000DC02A091DD02B091DE024196A11DB11DAF +:104F90008093DB029093DC02A093DD02B093DE02EB +:104FA000BF91AF919F918F911F901FBE1F90189539 +:104FB000CDB7DEB7AA970FB6F894DEBF0FBECDBF50 +:104FC00084B7877F84BF0FB6F894A895809160005E +:104FD000886180936000109260000FBE80E890E0CE +:104FE0000FB6F89480936100909361000FBE85B76F +:104FF000806885BF85B7806885BF82E996E0909319 +:10500000B3018093B2010E94B9030E94840480918D +:10501000E20084608093E200789480910903882301 +:10502000A1F01091E9001F709091EC00892F817020 +:1050300090FD80E8182B1092E9008091E80083FD34 +:105040000E943C151F701093E90082E084BD93E03C +:1050500095BD9AEF97BD80936E000E94FC1281115E +:1050600002C00E94EA1182E30E94940680EF0E942F +:10507000940686E90E94940687E90E94940608E750 +:1050800011E02EE7E22E21E0F22EF80181918F014E +:105090008F3F11F00E949406E016F106B1F7EEE39F +:1050A000F2E084E492E0AFE4B2E011921D928E1738 +:1050B0009F07D9F70E941C15811102C00E94B014ED +:1050C00082E090E00E940E2D809348020E9415130A +:1050D0009093E0028093DF020E94F2228FE39CE92A +:1050E0000197F1F700C000000E94F22280914F0268 +:1050F00080FF08C06FEF7FEF90E080E00E94402DBE +:105100000E943E0B83E090E00E940E2D90E00E94F2 +:10511000F20980911303909114030E94060C6E9A79 +:10512000769A8CE090E00E940E2D90E0B0E0A0E036 +:1051300080933A0290933B02A0933C02B0933D02CD +:1051400080914402811133C00E941C15811104C05A +:105150000E94B0140E94A01488E090E00E94162DD6 +:1051600060937B0370937C0380937D0390937E0315 +:105170006E7F71F40E94A01488E090E00E94162DCA +:1051800060937B0370937C0380937D0390937E03F5 +:105190000E94E30510925C0280917B0380FF04C0B3 +:1051A00060E086950E94441481E0809344028091DF +:1051B0007B03816080937B0361E086950E944414A9 +:1051C00060E081E20E94441421E04EE16FEF8AE347 +:1051D0000E944B1385E091E09093D7028093D60212 +:1051E00018E1E12EF12C00E4C02E8FE492E096E06D +:1051F000D92ED80E80910903BB24B39400E112E1AB +:10520000853009F402C10E94F222882359F08FB739 +:10521000F8944091DB025091DC026091DD027091C4 +:10522000DE028FBFE9E4F2E0AFE4B2E010E000E0BC +:10523000302F8D919191981709F409C1292F2827B2 +:1052400090E0BB24B394422F4B2109F4FBC099A3F7 +:105250003AA38B2191E009F490E09BA30E945705AB +:105260008160782F9DA38CA349A15AA16BA18DA128 +:105270000E945124F801E75BFD4F8081B826B0827F +:1052800080915C028823D1F180915B02E0917B03E5 +:10529000E695E81BE0935702823009F0EFC0F0E09A +:1052A000EB5BFD4FE4910E2F10E0B0E9AB2EBFE0B9 +:1052B000BB2E80915802882361F0109258020E9400 +:1052C0005705909356028093550210925A021092FD +:1052D00059020E945705E0915502F09156028E1B2B +:1052E0009F0B8F3F9F4750F4E00FF11FF093560242 +:1052F000E093550285E592E0F50109950E948F053E +:1053000090914702891731F00E948F0580934702E0 +:105310000E946D0A80910903843009F06BCF83E00D +:105320008093E9008091E80082FF64CF8091E800DB +:1053300090E085FF06C00E94D803882309F4F8C0D6 +:1053400091E08091E8008B778093E800992309F43D +:1053500051CFE981E150E33108F06CC1F0E0EA5649 +:10536000F24D0C94C42C80910903843009F440C0A0 +:1053700080E00E946D0A10925C02809146028111C9 +:1053800016C0B092460280917B03982F9170909343 +:1053900045028E7F80937B039FEFE0E7F2E0915020 +:1053A000E040F040E1F700C000000E94620B109264 +:1053B000DA020FB6F894A895E09260000FBEC09292 +:1053C000600083B7817F846083BF83B7816083BFC0 +:1053D0007894889583B78E7F83BF0FB6F894A8958D +:1053E00080916000886180936000109260000FBE21 +:1053F00080910803882349F00E94F222EFE4F2E052 +:10540000819181114AC2DE12FBCF80910903853060 +:1054100009F4A9CF0E9427150E948F050E946D0AEA +:105420001092460280914502882349F080917B03C7 +:10543000816080937B0360E086950E9444140E9403 +:105440002313E1CE9F5FBB0C943009F0FCCE0F5FBD +:105450001F4F0630110509F0EBCE8FEF8EA38FA3FF +:1054600018A60E9457058160782F9AA789A74EA198 +:105470005FA168A58AA50E94512402CF863059F405 +:10548000F0E0EE5BFD4FE4910E2F10E0A0E8AA2EB5 +:10549000AFE0BA2E0ECF893061F4E695F0E0E15C22 +:1054A000FD4FE4910E2F10E0FCEEAF2EFEE0BF2E7C +:1054B00000CF8F3061F4E695F0E0E45CFD4FE491BD +:1054C0000E2F10E0EEE7AE2EEEE0BE2EF2CE8531CE +:1054D00059F4F0E0E75CFD4FE4910E2F10E070E32B +:1054E000A72E7EE0B72EE5CE08E210E047EAA42E14 +:1054F0004DE0B42E883109F4DCCE833249F4E7E381 +:10550000F2E00591149167E2A62E6FE0B62ED1CE9F +:1055100004EF11E05EE6A52E5DE0B52E843209F4BD +:10552000C8CE00ED17E033E4A32E35E0B32EC1CE94 +:1055300000E210E0CE0101965C018091E80085FD5B +:105540000AC08091E8008B778093E8000E94D8031E +:10555000882399F3F5CE8091F100F50181935F01E5 +:105560000150110951F7ECCE1A8289E08B832DC0CE +:105570008A81823009F4A7C18330A9F0813009F013 +:1055800059C02FB7F8946091DB027091DC028091D2 +:10559000DD029091DE022FBF0E94CA2C6B837C83B8 +:1055A0008D839E8312C080914F028B838091500225 +:1055B0008C83809151028D83809152028E838091E1 +:1055C00053028F838091540288878091090384302D +:1055D00009F010CE1091E9001F709091EC00892F16 +:1055E000817090FD80E8182B82E08093E900809123 +:1055F000E80080FF0DC050E040E060E270E0CE01C6 +:1056000001960E9409048091E8008E778093E8005B +:105610001F701093E900EECD8A81823059F46B81BE +:105620007C818D819E810E94CA2C86E290E00E943E +:10563000222DCBCF8FEF8983C8CF4C816B818A819C +:105640000E9413129827892798279E838D83BDCFA8 +:10565000AD80BE80BA24AB24BA248A810B81F8E0E5 +:105660000F9F8001112420E3829F000D111D112442 +:105670008C8190E0880F991F080F191F6B2DC801AE +:1056800087960E94222D6A2DC8018896D0CF0E944D +:105690007F119BCF8A818138C1F060F4803809F096 +:1056A00094CF20E04B8160917D0380917C030E9428 +:1056B0004B138BCF823859F1833809F086CF20E025 +:1056C00040917E036C818B81F2CF60E08B810E94E0 +:1056D00044149B8180917B03911111C08E7F809334 +:1056E0007B0310925C028FEF90E7E2E081509040E4 +:1056F000E040E1F700C000000E94620B66CF8160CD +:1057000080937B0360E086950E9444145ECF8B817A +:1057100080937F035ACF8A81813899F030F48038A2 +:1057200009F053CF80917E0321CF823891F08338E6 +:1057300009F04BCF80917C038B8380917D038C8318 +:1057400044CF80917B0380FF02C086950FCF80E01D +:105750000DCF80917F030ACF60917B0370917C0312 +:1057600080917D0390917E030E9439132ECF80E1BA +:105770008A832BCF81E08A8389EFF8CEAA80BB8011 +:10578000BA24AB24BA248E010F5F1F4F8C80800E89 +:10579000912E911CC501895F9D4F8016910609F4D9 +:1057A00014CFF9EFAF16F1E0BF0650F40E940E2DB2 +:1057B000F8018483FFEFAF1ABF0A0F5F1F4FEACFD4 +:1057C000F8011482F7CF0A811B81102701271027C7 +:1057D000CE0101964C01AC80A00EB12EB11CC801C7 +:1057E000895F9D4FA016B10609F4EFCE093FE1E0B5 +:1057F0001E0720F4F40164810E94222DFFEF8F1A0E +:105800009F0A0F5F1F4FEBCF0E946F11DECE8AE021 +:10581000AFCFAA80BB80BA24AB24BA248E010F5F1D +:105820001F4F8C80800E912E911CC501879680168B +:10583000910609F4CACE20EEA21621E0B20650F479 +:105840000E940E2DF8018483FFEFAF1ABF0A0F5F8D +:105850001F4FEBCFF8011482F7CF0A811B8110276D +:1058600001271027CE0101964C01AC80A00EB12E6D +:10587000B11CC8018796A016B10609F4A6CE003E59 +:10588000E1E01E0720F4F40164810E94222DFFEF65 +:105890008F1A9F0A0F5F1F4FECCF09BD19BD09B4C6 +:1058A00000FEFDCF8091D8008F7D8093D80080913D +:1058B000E00082608093E0008091E00081FDFCCFF9 +:1058C0000E942715A2CD86E290E00E940E2D1B8239 +:1058D0001C821D828E8379CE87FB082E062687FDCB +:1058E000819567FD61950E94022D0EF4919507FC4C +:1058F00081950895AA1BBB1B51E107C0AA1FBB1FBE +:10590000A617B70710F0A61BB70B881F991F5A954B +:10591000A9F780959095BC01CD01089597FB072EBE +:1059200016F4009407D077FD09D00E947A2C07FC6A +:1059300005D03EF4909581959F4F0895709561959F +:105940007F4F0895A1E21A2EAA1BBB1BFD010DC0BB +:10595000AA1FBB1FEE1FFF1FA217B307E407F5071F +:1059600020F0A21BB30BE40BF50B661F771F881FFB +:10597000991F1A9469F760957095809590959B0191 +:10598000AC01BD01CF010895EE0FFF1F0590F4910A +:10599000E02D099469279627692778278727782794 +:1059A00008950E94D92C332312F48A1B9B0B0C946C +:1059B000EA2CA29FB001B39FC001A39F700D811D6F +:1059C0001124911DB29F700D811D1124911D089508 +:1059D0000E94D92CB7FF0895821B930B08950E9453 +:1059E000D92CA59F900DB49F900DA49F800D911D63 +:1059F00011240895B7FF0C94EF2C0E94EF2C821B0A +:105A0000930B0895991B79E004C0991F961708F02D +:105A1000961B881F7A95C9F780950895F999FECF4E +:105A200092BD81BDF89A992780B50895A6E1B0E0AE +:105A300044E050E00C94482DA8E1B0E042E050E092 +:105A40000C94482D262FF999FECF92BD81BDF89A6E +:105A5000019700B4021639F01FBA20BD0FB6F894B2 +:105A6000FA9AF99A0FBE08950396272F0E94232DC4 +:105A70000E94222D252F0E94232D242F0C94232DAC +:105A80000196272F0E94232D0C94222DDC01CB019F +:105A9000FC01F999FECF06C0F2BDE1BDF89A31963E +:105AA00000B40D9241505040B8F70895FC014150A8 +:105AB000504030F001900616D1F73197CF0108958C +:105AC000882799270895FB01DC0104C08D9101907E +:105AD000801921F441505040C8F7881B990B089554 +:105AE000F894FFCFA712A712B012B012B212B012E0 +:105AF000B012B012A712A712B712B012B012B7129A +:105B0000211649169C1649169C167C16B4169C162E +:105B1000B117BE17521B521BBF1BBF1B1D1C851B81 +:105B2000851B851B371CBF1CCE1CCE1CB42AB82A73 +:105B30000C2B1D2B282B472B4A2B8B2BAC2B1A2BDA +:105B40001A2BB72BBA2BBE2BE32B042C072C092CBA +:025B50002D2CFA +:105B520056005300FF4505FE0A4405FA0AF60A01FB +:105B6200191A1B1C1D1E1F202122010201B2002A2C +:105B720000000000AC004C00000000015F114F115A +:105B8200BC0A00000000000000000000000000004D +:105B9200000101818283E200E900EA00B500B6005B +:105BA200B700CD008301CC008A0192019401210249 +:105BB200230224022502260227022A02B300B4008D +:105BC2006F00700032F0969733F1F4F5F6F70001AA +:105BD200020202020606060909090909090F0F0F46 +:105BE2000F0F0F151515181919191919191919194E +:105BF20019232440226D47012501B8006006790669 +:025C0200990601 +:00000001FF diff --git a/keyboards/solartempest/ps17/info.json b/keyboards/solartempest/ps17/info.json new file mode 100644 index 000000000000..2806bc0128d6 --- /dev/null +++ b/keyboards/solartempest/ps17/info.json @@ -0,0 +1,38 @@ +{ + "keyboard_name": "Atlantis PS17 Macropad", + "url": "", + "maintainer": "solartempest", + "width": 4, + "height": 6, + "layouts": { + "LAYOUT": { + "layout": [ + {"x":0, "y":0, "h":1.5}, + {"x":0, "y":1}, + {"x":0, "y":2, "h":1.5}, + + {"x":1, "y":0}, + {"x":1, "y":1}, + {"x":1, "y":2}, + {"x":1, "y":3}, + + {"x":2, "y":0}, + {"x":2, "y":1}, + {"x":2, "y":2}, + {"x":2, "y":3, "h":2}, + + {"x":3, "y":0}, + {"x":3, "y":1}, + {"x":3, "y":2}, + + {"x":4, "y":0}, + {"x":4, "y":1}, + {"x":4, "y":2}, + {"x":4, "y":3, "h":2}, + + {"x":5, "y":0, "w":2}, + {"x":5, "y":2}, + ] + } + } +} diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h new file mode 100644 index 000000000000..4bbacd9a507b --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via/config.h @@ -0,0 +1,22 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +// Set 10 layers for VIA +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/ps17/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json new file mode 100644 index 000000000000..d906b47dbb7a --- /dev/null +++ b/keyboards/solartempest/ps17/ps17 VIA keymap.json @@ -0,0 +1,51 @@ +{ + "name": "PS17" , + "vendorId": "0x414B", + "productId": "0x0015", + "lighting": "qmk_rgblight", + "matrix": { "rows": 6, "cols": 4 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + }, + { + "name": "Move Window Right", + "title": "Move Window Right in Windows", + "shortName": "MWR" + }, + { + "name": "Move Window Left", + "title": "Move Window Left in Windows", + "shortName": "MWL" + }, + { + "name": "Spam Arrow", + "title": "Toggle F24 on interval timer with Orange LED", + "shortName": "SA" + }, + { + "name": "Teams Muted", + "title": "Simply Change LED of 1 to show if muted or not", + "shortName": "TM" + } + ], + "layouts": + { + "keymap": + [ + [{"w": 1, "h":1.5},"0,0", "0,1", {"w": 1, "h":1.5},"0,2"], + [{"y":0.75}, "1,0", "1,1", "1,2", "1,3"], + [ "2,0", "2,1", "2,2", {"h":2},"2,3"], + [ "3,0","3,1","3,2"], + [ "4,0", "4,1", "4,2", {"h":2},"4,3"], + [{"w": 2},"5,0", "5,2"] + ] + } +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json new file mode 100644 index 000000000000..6671cee90952 --- /dev/null +++ b/keyboards/solartempest/ps17/ps17 VIA layout.json @@ -0,0 +1,267 @@ +{ + "name": "PS17", + "vendorProductId": 1095434261, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "C(KC_TAB)", + "C(KC_W)", + "C(S(KC_TAB))", + "KC_NO", + "TO(2)", + "KC_PSLS", + "KC_PAST", + "KC_PMNS", + "KC_P7", + "KC_P8", + "KC_P9", + "KC_PPLS", + "KC_P4", + "KC_P5", + "KC_P6", + "KC_NO", + "KC_P1", + "KC_P2", + "KC_P3", + "KC_PENT", + "KC_P0", + "KC_NO", + "KC_PDOT", + "KC_NO" + ], + [ + "KC_RGHT", + "KC_TRNS", + "KC_LEFT", + "KC_NO", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_NLCK", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "TO(5)", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "TO(2)", + "TO(3)", + "TO(4)", + "KC_TRNS", + "RESET", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_VOLU", + "KC_TRNS", + "KC_VOLD", + "KC_NO", + "TO(0)", + "KC_WWW_REFRESH", + "KC_WWW_HOME", + "C(S(KC_B))", + "C(S(KC_TAB))", + "KC_UP", + "C(KC_TAB)", + "USER04", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_NO", + "USER05", + "KC_TRNS", + "KC_SLCK", + "KC_NLCK", + "KC_F13", + "KC_NO", + "KC_F14", + "KC_NO" + ], + [ + "USER00", + "KC_TRNS", + "USER01", + "KC_NO", + "TO(0)", + "KC_WWW_REFRESH", + "KC_HOME", + "C(KC_T)", + "C(S(KC_TAB))", + "KC_UP", + "C(KC_TAB)", + "C(KC_W)", + "KC_LEFT", + "KC_DOWN", + "KC_RGHT", + "KC_NO", + "KC_WWW_BACK", + "KC_SPC", + "KC_WWW_FORWARD", + "KC_ENT", + "KC_PGDN", + "KC_NO", + "KC_PGUP", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ], + [ + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_NO", + "KC_TRNS", + "KC_NO" + ] + ] +} \ No newline at end of file diff --git a/keyboards/solartempest/ps17/ps17.h b/keyboards/solartempest/ps17/ps17.h new file mode 100644 index 000000000000..64ebc5766887 --- /dev/null +++ b/keyboards/solartempest/ps17/ps17.h @@ -0,0 +1,61 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once +#include "quantum.h" + +#ifdef RGBLIGHT_ENABLE + #define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, KC_NO }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + } +#endif + +#ifdef RGB_MATRIX_ENABLE // Five empty rows of keys were added for RGB Matrix purposes. You must map to a key otherwise it will not work. + #define LAYOUT( \ + K00, K01, K02, \ + K10, K11, K12, K13, \ + K20, K21, K22, K23, \ + K30, K31, K32, \ + K40, K41, K42, K43, \ + K50, K52 \ + ) { \ + { K00, K01, K02, KC_NO }, \ + { K10, K11, K12, K13 }, \ + { K20, K21, K22, K23 }, \ + { K30, K31, K32, KC_NO }, \ + { K40, K41, K42, K43 }, \ + { K50, KC_NO, K52, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO }, \ + } +#endif diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md new file mode 100644 index 000000000000..bd9504222899 --- /dev/null +++ b/keyboards/solartempest/ps17/readme.md @@ -0,0 +1,39 @@ +# Atlantis PS17 Macropad + +![Atlantis PS17](https://i.imgur.com/Y0rkPgA.jpg) + +A 17-key macro pad with pushbutton rotary encoder and underglow RGB per key RGB and for the case. + +For detailed instructions on using VIA and flashing, please refer to the sections further down the page! + +* Keyboard Maintainer: solartempest +* Hardware Supported: Atlantis PS17 v2 +* Hardware Availability: [rioo897](https://shop198276076.world.taobao.com/index.htm?spm=2013.1.w5002-23418336364.2.3f4d7d51DkVX3s) + +# Custom Features: + +- Remappable rotary encoder controls volume up/down/mute. +- Allows for remapping of per-layer rotary encoder functions in VIA. +- VIA support included by default. +- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). +- Adds custom layer lighting with custom gradients for each. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. +- Adds key combo functionality for backspace, delete, and arrow keys. + +## Make and Flashing + +Make example for this keyboard (after setting up your build environment): + + qmk compile -kb solartempest/ps17 -km via + +To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB. +Flash with QMK toolbox, auto-flash. + +## Using with VIA + +- After flashing, in VIA make sure to Import Keymap, which is "ps17 VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "ps17 VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/solartempest/sofle/.noci b/keyboards/solartempest/sofle/.noci new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/keyboards/solartempest/sofle/info.json b/keyboards/solartempest/sofle/info.json new file mode 100644 index 000000000000..16147f76dd51 --- /dev/null +++ b/keyboards/solartempest/sofle/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "Solarius_Sofle", + "url": "", + "maintainer": "solartempest", + "width": 15, + "height": 8.0, + "layouts": { + "LAYOUT": { + "layout": [{"label":"0,3", "x":3.25, "y":0.5}, {"label":"5,3", "x":13.25, "y":0.5}, {"label":"0,2", "x":2.25, "y":0.63}, {"label":"0,4", "x":4.25, "y":0.63}, {"label":"5,4", "x":12.25, "y":0.63}, {"label":"5,2", "x":14.25, "y":0.63}, {"label":"0,5", "x":5.25, "y":0.73}, {"label":"5,5", "x":11.25, "y":0.73}, {"label":"0,0", "x":0.25, "y":0.86}, {"label":"0,1", "x":1.25, "y":0.86}, {"label":"5,1", "x":15.25, "y":0.86}, {"label":"5,0", "x":16.25, "y":0.86}, {"label":"1,3", "x":3.25, "y":1.46}, {"label":"1,6", "x":6.45, "y":1.46}, {"label":"6,6", "x":10.05, "y":1.46}, {"label":"6,3", "x":13.25, "y":1.46}, {"label":"1,2", "x":2.25, "y":1.56}, {"label":"1,4", "x":4.25, "y":1.56}, {"label":"6,4", "x":12.25, "y":1.56}, {"label":"6,2", "x":14.25, "y":1.56}, {"label":"1,5", "x":5.25, "y":1.66}, {"label":"6,5", "x":11.25, "y":1.66}, {"label":"1,0", "x":0.25, "y":1.76}, {"label":"1,1", "x":1.25, "y":1.76}, {"label":"6,1", "x":15.25, "y":1.76}, {"label":"6,0", "x":16.25, "y":1.76}, {"label":"2,3", "x":3.25, "y":2.36}, {"label":"4,0", "x":6.45, "y":2.36}, {"label":"9,5", "x":10.05, "y":2.36}, {"label":"7,3", "x":13.25, "y":2.36}, {"label":"2,2", "x":2.25, "y":2.46}, {"label":"2,4", "x":4.25, "y":2.46}, {"label":"7,4", "x":12.25, "y":2.46}, {"label":"7,2", "x":14.25, "y":2.46}, {"label":"2,5", "x":5.25, "y":2.56}, {"label":"7,5", "x":11.25, "y":2.56}, {"label":"2,0", "x":0.25, "y":2.66}, {"label":"2,1", "x":1.25, "y":2.66}, {"label":"7,1", "x":15.25, "y":2.66}, {"label":"7,0", "x":16.25, "y":2.66}, {"label":"3,3", "x":3.25, "y":3.26}, {"label":"3,6", "x":6.45, "y":3.26}, {"label":"8,6", "x":10.05, "y":3.26}, {"label":"8,3", "x":13.25, "y":3.26}, {"label":"3,2", "x":2.25, "y":3.36}, {"label":"3,4", "x":4.25, "y":3.36}, {"label":"8,4", "x":12.25, "y":3.36}, {"label":"8,2", "x":14.25, "y":3.36}, {"label":"3,5", "x":5.25, "y":3.46}, {"label":"8,5", "x":11.25, "y":3.46}, {"label":"3,0", "x":0.25, "y":3.56}, {"label":"3,1", "x":1.25, "y":3.56}, {"label":"8,1", "x":15.25, "y":3.56}, {"label":"8,0", "x":16.25, "y":3.56}, {"label":"4,2", "x":3.25, "y":4.26}, {"label":"9,1", "x":13.25, "y":4.26}, {"label":"4,3", "x":4.25, "y":4.36}, {"label":"9,2", "x":12.25, "y":4.36}, {"label":"4,1", "x":2.25, "y":4.36}, {"label":"9,0", "x":14.25, "y":4.36}, {"label":"4,4", "x":1, "y":9.96}, {"label":"4,5", "x":3.35, "y":8.71, "h":1.5}, {"label":"9,3", "x":0.8, "y":11.56}, {"label":"9,4", "x":-2.08, "y":11.01, "h":1.5}] + } + } +} diff --git a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c new file mode 100644 index 000000000000..6aa6a7a8b5b7 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c @@ -0,0 +1,555 @@ +/* + * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) + * + * 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 . + */ + +#include "ocean_dream.h" +#include "quantum.h" +#include "print.h" + +// Calculated Parameters +#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch +#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch +#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch +#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch +#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch + +uint8_t animation_counter = 0; // global animation counter. +bool is_calm = false; +uint32_t starry_night_anim_timer = 0; +uint32_t starry_night_anim_sleep = 0; +static int current_wpm = 0; + +static uint8_t increment_counter(uint8_t counter, uint8_t max) { + counter++; + if (counter >= max) { + return 0; + } else { + return counter; + } +} + +#ifdef ENABLE_WAVE +static uint8_t decrement_counter(uint8_t counter, uint8_t max) { + counter--; + if (counter < 0 || counter > max) { + return max; + } else { + return counter; + } +} +#endif + +#ifdef ENABLE_MOON // region +# ifndef STATIC_MOON +uint8_t moon_animation_frame = 0; // keeps track of current moon frame +uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame +# endif + +# ifdef STATIC_MOON +static const char PROGMEM moon[6] = { + 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81, +}; +# endif + +# ifndef STATIC_MOON +static const char PROGMEM moon_animation[14][8] = { + // clang-format off + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, }, + { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, }, + { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, + { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, }, + { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, }, + { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, + // clang-format on +}; +# endif + +static void draw_moon(void) { +# ifdef STATIC_MOON + oled_set_cursor(MOON_COLUMN, MOON_LINE); + oled_write_raw_P(moon, 6); +# endif +# ifndef STATIC_MOON + moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES); + if (moon_animation_counter == 0) { + moon_animation_frame = increment_counter(moon_animation_frame, 14); + oled_set_cursor(MOON_COLUMN, MOON_LINE); + oled_write_raw_P(moon_animation[moon_animation_frame], 8); + } +# endif +} +#endif // endregion + +#ifdef ENABLE_WAVE // region +uint8_t starry_night_wave_frame_width_counter = 31; +uint8_t rough_waves_frame_counter = 0; + +// clang-format off +static const char PROGMEM ocean_top[8][32] = { + // still ocean + { + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + }, + // small ripples + { + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + }, + // level 2 ripples + { + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, + }, + // level 3 waves + { + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, + }, + { + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, + }, + { + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, + }, +}; +static const char PROGMEM ocean_bottom[8][32] = { + // still ocean + { + 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21, + 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44, + 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00, + }, + // small ripples + { + 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, + }, + // level 2 ripples + { + 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, + }, + // level 3 waves + { + 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11, + 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04, + 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08, + 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00, + }, + { + 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06, + 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10, + 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00, + 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80, + }, + { + 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21, + 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08, + 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08, + 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00, + }, +}; +// clang-format on + +static void animate_waves(void) { + starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type + rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type + + void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) { + oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset); + oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH); + } + + for (int i = 0; i < WIDTH; ++i) { + uint16_t offset = OCEAN_LINE * WIDTH + i; + uint8_t byte_index = starry_night_wave_frame_width_counter + i; + if (byte_index >= WIDTH) { + byte_index = byte_index - WIDTH; + } + if (is_calm || current_wpm <= WAVE_CALM) { + draw_ocean(0, offset, byte_index); + } else if (current_wpm <= WAVE_HEAVY_STORM) { + draw_ocean(1, offset, byte_index); + } else if (current_wpm <= WAVE_HURRICANE) { + draw_ocean(2, offset, byte_index); + } else { + draw_ocean(3 + rough_waves_frame_counter, offset, byte_index); + } + } +} +#endif // endregion + +#ifdef ENABLE_ISLAND // region +uint8_t island_frame_1 = 0; + +// clang-format off +// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!) + +// To save space and allow the shooting stars to be seen, only draw the tree on every frame. +// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the +// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes +static const char PROGMEM islandRightTop[6][14] = { + {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,}, + {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,}, + {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,}, + {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,}, + {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,}, + {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,}, +}; +static const char PROGMEM islandRightBottom[6][14] = { + {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,}, + {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,}, + {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,}, + {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,}, + {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,}, + {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,}, +}; +static const char PROGMEM islandLeft[18] = { + 0x80, 0x40, 0x40, 0x40, 0x40, 0x60, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x60, 0x40, 0x40, +}; +// clang-format on + +static void animate_island(void) { + if (animation_counter == 0) { + island_frame_1 = increment_counter(island_frame_1, 2); + } + + void draw_island_parts(uint8_t frame) { + oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE); + oled_write_raw_P(islandRightTop[frame], 14); + oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1); + oled_write_raw_P(islandLeft, 18); + oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1); + oled_write_raw_P(islandRightBottom[frame], 14); + } + + if (is_calm || current_wpm < ISLAND_CALM) { + draw_island_parts(0); + } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) { + draw_island_parts(island_frame_1 + 1); + } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) { + draw_island_parts(island_frame_1 + 2); + } else { + draw_island_parts(island_frame_1 + 4); + } +} +#endif // endregion + +#ifdef ENABLE_STARS // region +bool stars_setup = false; // only setup stars once, then we just twinkle them +struct Coordinate { + int x; + int y; + bool exists; +}; + +struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates + +/** + * Setup all the initial stars on the screen + * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES + * where each line is made up of 8x8 pixel groups, that are populated by a single star. + * + * Not sure how this function will work with larger or smaller screens. + * It should be fine, as long as the screen width is a multiple of 8 + */ +static void setup_stars(void) { + // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on + // 36% probability it will not be added + // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all) + for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { + for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { + uint8_t rand_column = rand() % 10; + uint8_t rand_row = rand() % 10; + if (rand_column < 8 && rand_row < 8) { + int column_adder = column_group * 8; + int line_adder = line * 8; + int x = rand_column + column_adder; + int y = rand_row + line_adder; + oled_write_pixel(x, y, true); + stars[column_group + (line * STARS_PER_LINE)].x = x; + stars[column_group + (line * STARS_PER_LINE)].y = y; + stars[column_group + (line * STARS_PER_LINE)].exists = true; + } else { + stars[column_group + (line * STARS_PER_LINE)].exists = false; + } + } + } + stars_setup = true; +} + +/** + * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star + */ +static void twinkle_stars(void) { + for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { + for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { + struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)]; + + // skip stars that were never added + if (!star.exists) { + continue; + } + if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) { + oled_write_pixel(star.x, star.y, false); // black out pixel + + // don't allow stars to leave their own region + if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region + star.x++; // move it right immediately + } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region + star.x--; // move it left immediately + } + if (star.y == (line * 8)) { // star is the farthest up it can go in its region + star.y++; // move it down immediately + } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region + star.y--; // move it up immediately + } + + // now decide direction + int new_x; + int x_choice = rand() % 3; + if (x_choice == 0) { + new_x = star.x - 1; + } else if (x_choice == 1) { + new_x = star.x + 1; + } else { + new_x = star.x; + } + + int new_y; + int y_choice = rand() % 3; + if (y_choice == 0) { + new_y = star.y - 1; + } else if (y_choice == 1) { + new_y = star.y + 1; + } else { + new_y = star.y; + } + + star.x = new_x; + star.y = new_y; + oled_write_pixel(new_x, new_y, true); + } + + stars[column_group + (line * STARS_PER_LINE)] = star; + } + } +} + +/** + * Setup the stars and then animate them on subsequent frames + */ +static void animate_stars(void) { + if (!stars_setup) { + setup_stars(); + } else { + twinkle_stars(); + } +} +#endif // endregion + +#ifdef ENABLE_SHOOTING_STARS // region +bool shooting_stars_setup = false; // only setup shooting stars array once with defaults + +struct ShootingStar { + int x_1; + int y_1; + int x_2; + int y_2; + bool running; + int frame; + int delay; +}; + +struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars + +static void setup_shooting_star(struct ShootingStar *shooting_star) { + int column_to_start = rand() % (WIDTH / 2); + int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean. + + shooting_star->x_1 = column_to_start; + shooting_star->y_1 = row_to_start; + shooting_star->x_2 = column_to_start + 1; + shooting_star->y_2 = row_to_start + 1; + shooting_star->running = true; + shooting_star->frame++; + shooting_star->delay = rand() % SHOOTING_STAR_DELAY; +} + +static void move_shooting_star(struct ShootingStar *shooting_star) { + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); + + shooting_star->x_1++; + shooting_star->y_1++; + shooting_star->x_2++; + shooting_star->y_2++; + shooting_star->frame++; + + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true); +} + +static void finish_shooting_star(struct ShootingStar *shooting_star) { + oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); + oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); + shooting_star->running = false; + shooting_star->frame = 0; +} + +static void animate_shooting_star(struct ShootingStar *shooting_star) { + if (shooting_star->frame > SHOOTING_STAR_FRAMES) { + finish_shooting_star(shooting_star); + return; + } else if (!shooting_star->running) { + setup_shooting_star(shooting_star); + } else { + if (shooting_star->delay == 0) { + move_shooting_star(shooting_star); + } else { + shooting_star->delay--; + } + } +} + +static void animate_shooting_stars(void) { + if (is_calm) { + return; + } + if (!shooting_stars_setup) { + for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) { + shooting_stars[i].running = false; + } + shooting_stars_setup = true; + } + /** + * Fixes issue with stars that were falling _while_ the + * wpm dropped below the condition for them to keep falling + */ + void end_extra_stars(uint8_t starting_index) { + for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) { + struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; + if (shooting_star.running) { + finish_shooting_star(&shooting_star); + shooting_stars[shooting_star_index] = shooting_star; + } + } + } + + int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT; + number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars; + + if (number_of_shooting_stars == 0) { + // make sure all shooting_stars are ended + end_extra_stars(0); + } else { + for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) { + struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; + animate_shooting_star(&shooting_star); + shooting_stars[shooting_star_index] = shooting_star; + } + end_extra_stars(number_of_shooting_stars); + } +} +#endif // endregion + +/** + * Main rendering function + * + * Calls all different animations at different rates + */ +void render_stars(void) { + // // animation timer + if (timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) { + starry_night_anim_timer = timer_read32(); + current_wpm = get_current_wpm(); + +#ifdef ENABLE_ISLAND + animate_island(); +#endif + +#ifdef ENABLE_SHOOTING_STARS + if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) { + animate_shooting_stars(); + } +#endif + +#ifdef ENABLE_STARS + // TODO offsetting the star animation from the wave animation would look better, + // but if I do that, then the stars appear in the water because + // the ocean animation has to wait a bunch of frames to overwrite it. + // Possible solutions: + // 1. Only draw stars to the top of the island/ocean. + // 2. Draw ocean every frame, only move ocean on frames matching modulus + // Problems: + // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water? + // 2. More cpu intensive. And I'm already running out of cpu as it is... + if (animation_counter % STAR_ANIMATION_MODULATOR == 0) { + animate_stars(); + } +#endif + +#ifdef ENABLE_WAVE + if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) { + animate_waves(); + } +#endif + +#ifdef ENABLE_MOON + draw_moon(); +#endif + + animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES); + } + + // this fixes the screen on and off bug + if (current_wpm > 0) { + oled_on(); + starry_night_anim_sleep = timer_read32(); + } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } +} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/rules.mk b/keyboards/solartempest/sofle/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/solartempest/sofle/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/solartempest/sofle/sofle.c b/keyboards/solartempest/sofle/sofle.c new file mode 100644 index 000000000000..b51a7e8a0460 --- /dev/null +++ b/keyboards/solartempest/sofle/sofle.c @@ -0,0 +1,19 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . +*/ + +#include "sofle.h" diff --git a/keyboards/solartempest/sofle/sofle.h b/keyboards/solartempest/sofle/sofle.h new file mode 100644 index 000000000000..6e9b06cef09f --- /dev/null +++ b/keyboards/solartempest/sofle/sofle.h @@ -0,0 +1,42 @@ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ + +#pragma once + +#include "quantum.h" + +// Extra keys are added for rotary encoder support in VIA +#define LAYOUT( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ + LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \ + LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \ + LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \ + LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \ + { LB1, LB2, LB3, LB4, LB5, LB6, LB7 }, \ + { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \ + { LD1, LD2, LD3, LD4, LD5, LD6, LD7 }, \ + { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \ + { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \ + { RB1, RB2, RB3, RB4, RB5, RB6, RB7 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \ + { RD1, RD2, RD3, RD4, RD5, RD6, RD7 }, \ + { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \ + } From 45c8e9c1e86bd1a7913cffe54163bad42741ab48 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 01:54:36 -0400 Subject: [PATCH 45/94] Update for stretch timer --- keyboards/solartempest/9e/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/solartempest/9e/readme.md b/keyboards/solartempest/9e/readme.md index 30353b2d00a1..6fd810b711d2 100644 --- a/keyboards/solartempest/9e/readme.md +++ b/keyboards/solartempest/9e/readme.md @@ -21,6 +21,7 @@ For detailed instructions on using VIA and flashing, please refer to the section - Allows for remapping of per-layer rotary encoder functions in VIA. - Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. - Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. +- Stretch timer (reminder to stop sitting) animates LEDS after 30 minute interval. LED indicator is red and timer is toggled. ## Flashing From e08817bc2fab93d67976fc5ced707737adae8dee Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 14:04:09 -0500 Subject: [PATCH 46/94] Correct encoder index for animation --- keyboards/solartempest/9e/keymaps/via/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 7d9699ec99bb..fbf943a926a7 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -223,7 +223,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { is_encoder6_rotate = true; encoder_timer = timer_read(); } - else if(index==7){ + else if(index==6){ is_encoder7_rotate = true; encoder_timer = timer_read(); } From a97aebc9ac31adb69983229a9090ee731ffe9e68 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 7 Nov 2021 14:04:44 -0500 Subject: [PATCH 47/94] Correct encoder index for animation. Add firmware file. --- .../solartempest/9e/solartempest_9e_via.hex | 1385 +++++++++-------- 1 file changed, 693 insertions(+), 692 deletions(-) diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index 4c69b6ed20e3..2efaf70534e8 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C9438250C94F424FF -:100030000C9433260C94EA040C94EA040C94EA041D +:100020000C94EA040C94EA040C9443250C94FF24E9 +:100030000C943E260C94EA040C94EA040C94EA0412 :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C940F260C94EA040C94EA0421 +:100050000C94EA040C941A260C94EA040C94EA0416 :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -153,9 +153,9 @@ :10098000940314BE84B7877F84BF0FB6F894A895EC :1009900080916000886180936000109260000FBEBB :1009A000E0E0F8E7099523E0A2EEB1E001C01D9276 -:1009B000A139B207E1F711E0A0E0B1E0EAEEFCE511 -:1009C00002C005900D92A23EB107D9F70E945A26A7 -:1009D0000C943C2E0C940000E8EDF0E080818C7FBC +:1009B000A139B207E1F711E0A0E0B1E0E0E0FDE528 +:1009C00002C005900D92A23EB107D9F70E9465269C +:1009D0000C94472E0C940000E8EDF0E080818C7FB1 :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 @@ -225,7 +225,7 @@ :100E00004983E8835A83DF91CF911F910F91FF901F :100E1000EF90DF90BF90AF900895202F30E0449185 :100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E943D2D812F90E0880F991FA7 +:100E3000F0E0BF010E94482D812F90E0880F991F9C :100E400055E5569FD001579FB00D11248A1B9B0B6F :100E5000982F990F890F5F01A21AB30AAE9CD00197 :100E6000AF9CB00DBE9CB00D11245B2F089F80017C @@ -260,12 +260,12 @@ :10103000F7CF8F3F09F0A1CF8091B0028B7FF0CF27 :1010400008958091B00280FD16C081FD16C082FD1A :1010500016C08091AE028823A1F0883280F428E087 -:10106000829FC001112468E270E00E94512D862FFA +:10106000829FC001112468E270E00E945C2D862FEF :10107000672B39F0089582E0089584E0089588E0B0 :10108000089581E008958091B00280FD14C081FD33 :1010900014C082FD16C08091AF02882381F0843194 :1010A00080F422E3829FC001112464E170E00E9479 -:1010B000512D862F08958CE0089589E1089585E0EB +:1010B0005C2D862F08958CE0089589E1089585E0E0 :1010C000089582E30895803F31F40E94430881959A :1010D0008093B8020895813F19F40E944308F8CF25 :1010E000823F31F40E94430881958093B7020895AE @@ -452,30 +452,30 @@ :101C3000EAF7DF91CF911F910F910C94CC0BC770F5 :101C400081E001C0880FCA95EAF7F3CFDF91CF9109 :101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E94C42D2196C11588E0D807B9F78E +:101C6000CE010E94CF2D2196C11588E0D807B9F783 :101C7000DF91CF9108956F927F928F929F92AF9252 :101C8000BF92CF92DF92EF92FF920F931F93CF9369 :101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 :101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E94C42D682DC80101960E949B -:101CC000C42D82E0A80EB11C0E5F1F4FC017D107B4 +:101CB000692DC8010E94CF2D682DC80101960E9490 +:101CC000CF2D82E0A80EB11C0E5F1F4FC017D107A9 :101CD00061F788E1680E711C6896CE15DF0529F062 :101CE0008E01085111095301E0CF7E0180E6E80E14 :101CF000F11C80E6C80ED11C8FE5E81684E0F806DA :101D000079F6DF91CF911F910F91FF90EF90DF90C7 :101D1000CF90BF90AF909F908F907F906F900895DD :101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D3000C42D6FEFC11161E184E290E00E94C42DD7 -:101D40006FEFC11166E085E290E0CF910C94C42D55 -:101D500080E00E94900E60E086E290E00E94C42D38 +:101D3000CF2D6FEFC11161E184E290E00E94CF2DC1 +:101D40006FEFC11167E085E290E0CF910C94CF2D49 +:101D500080E00E94900E60E086E290E00E94CF2D2D :101D60000E943B0E0E942B0E81E00C94900ECF93AC :101D7000C091D602C2FB992790F9981781F080FB99 :101D8000C2F9C093D6026091D50284E090E00E942F -:101D9000C42D6C2F82E290E0CF910C94C42DCF9192 +:101D9000CF2D6C2F82E290E0CF910C94CF2DCF917C :101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 :101DB000DD1F28E1629FC00DD11D112430E6839FF5 -:101DC000C00DD11D1124CE0187960E94B02D082F81 -:101DD00010E0102F0027CE0188960E94B02D9801A8 +:101DC000C00DD11D1124CE0187960E94BB2D082F76 +:101DD00010E0102F0027CE0188960E94BB2D98019D :101DE000282BC901DF91CF911F910F910895462FA4 :101DF0008A3038F4743028F46C3018F4672F0C945F :101E0000D10E90E080E00895BF92CF92DF92EF92E2 @@ -489,16 +489,16 @@ :101E8000CF93DF93EC010E94040FBE010E94F70E76 :101E9000DF91CF910C941909FC01808191810E94FE :101EA000400F292F2F7092959F7092509E3078F49A -:101EB000E92FF0E0E25CF14D0C94652D803F19F0C4 +:101EB000E92FF0E0E75BF14D0C94702D803F19F0B5 :101EC00020F4883E20F481E00895843FE1F380E02F :101ED0000895883EC0F3813FD1F7F5CF822F8695D4 -:101EE00086958695089583E290E00E94B02D813218 -:101EF00089F484E290E00E94B02D813159F485E2AA -:101F000090E00E94B02D91E0863009F090E0892F9A +:101EE00086958695089583E290E00E94BB2D81320D +:101EF00089F484E290E00E94BB2D813159F485E29F +:101F000090E00E94BB2D91E0873009F090E0892F8E :101F10008170089580E0FCCFCF9384E090E00E9430 -:101F2000B02DC82F82E290E00E94B02D982F8C2F08 +:101F2000BB2DC82F82E290E00E94BB2D982F8C2FF2 :101F3000CF91089560918903669570E04BE050E081 -:101F40008AE091E00E94962D892B19F481E080931C +:101F40008AE091E00E94A12D892B19F481E0809311 :101F5000C5020E9488069093BF028093BE02089536 :101F60004F925F926F927F928F929F92AF92BF92A9 :101F7000CF92DF92EF92FF920F931F93CF93DF9355 @@ -522,7 +522,7 @@ :1020900053E0452E8091C60293010C2C01C0220F03 :1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 :1020B000E80DF91DE590F490E114F10409F477CFEF -:1020C00045E050E0B701CE0101960E948D2D0981B7 +:1020C00045E050E0B701CE0101960E94982D0981AC :1020D0000F3F39F18A81800F9927991F8B32910523 :1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 :1020F000DC01A55FBC4F5D01049D80011124055FDB @@ -546,11 +546,11 @@ :10221000CECF4423B9F340E0F7CF8F929F92AF9295 :10222000BF92CF92DF92EF92FF920F931F93CF93C3 :10223000DF93EC014C81042F10E09801D8010E943B -:102240002D2E9B01AC010E94F82D4B015C01E0E2B8 +:10224000382E9B01AC010E94032E4B015C01E0E2A1 :10225000F0E0E01BF10BA5E5B0E0AC019B010E94B2 -:10226000F82D6B017C019F01DF010E94722D9B0103 -:10227000AC010E94032E9B01AC01280D391D4A1DA3 -:102280005B1DC701B6010E940B2EF22E822F90E03B +:10226000032E6B017C019F01DF010E947D2D9B01EC +:10227000AC010E940E2E9B01AC01280D391D4A1D98 +:102280005B1DC701B6010E94162EF22E822F90E030 :1022900039E23F1560F143E0249F90011124359508 :1022A0002795122F109500E085E5E82EEF18809114 :1022B0001C01081758F10E94B00F9C8181E09923FE @@ -570,7 +570,7 @@ :102390004150550B841795071CF02195209315018A :1023A000DF91CF911F910F910895118210821282B7 :1023B0008F5F3396D0CF0C2F10E070E0C8010E94E1 -:1023C000512D20911A01820F482F50E02091C80210 +:1023C0005C2D20911A01820F482F50E02091C80205 :1023D000022E000C330B02171307BCF020911601DC :1023E000022E000C330B201731077CF08D9F9001DB :1023F0001124255F3C4F40918C0360918B038091A9 @@ -582,17 +582,17 @@ :1024500081508093C702DF91CF911F910895E09141 :102460001A014C2F50E09A012E0F311DF901EE0F89 :10247000FF1FE20FF31FE55FFC4F118210821282F3 -:102480008091C7028B32ACF0612F0E942F2D892FD3 +:102480008091C7028B32ACF0612F0E943A2D892FC8 :10249000082E000C990B4817590749F49F014091E9 :1024A0008C0360918B0380918A030E94E806CF5FC2 :1024B000C1CF87FFEDCF890FEBCF90E00196609100 -:1024C0001C0170E00E94512DC4CFEF92FF921F9328 +:1024C0001C0170E00E945C2DC4CFEF92FF921F931D :1024D000CF93DF93EC0110E0EE24EA94F12C6091AD :1024E0001C01161770F00E94B00F9A818C8190FF2A :1024F00027C08F5F8C83DF91CF911F91FF90EF906A :10250000089520911A01422F410F5527551FCA01E6 :102510009A01220F331F280F391F255F3C4F70E0AF -:10252000C7010E94512D962F8C8140918C036091A0 +:10252000C7010E945C2D962F8C8140918C03609195 :102530008B03199F800D11240E94E8061F5FCFCFE7 :102540008150D8CF9091890390FF14C090911A01C7 :1025500020911B0133E0939FF0011124E55FFC4FB4 @@ -604,7 +604,7 @@ :1025B00040E0662361F040E0623011F44091C902CE :1025C00080E060E004C06091C90240E080E00E94C9 :1025D000A212F801848190E0019663E070E00E940D -:1025E000512D84830F900F900F90DF91CF911F9109 +:1025E0005C2D84830F900F900F90DF91CF911F91FE :1025F0000F910895CF93DF9300D00F92CDB7DEB740 :102600009091890390FF0AC09E012F5F3F4F0E9467 :10261000E8064B8169818A810E94A2120F900F9077 @@ -615,7 +615,7 @@ :102660000E94FA128C818F5F8C83DF91CF91089545 :10267000CF92DF92EF92FF926B017C010E94D20613 :10268000B701A60188E090E0FF90EF90DF90CF9037 -:102690000C94D62DAF92BF92CF92DF92EF92FF9221 +:102690000C94E12DAF92BF92CF92DF92EF92FF9216 :1026A0000F931F93CF93DF9300D00F92CDB7DEB778 :1026B000182FF62E042FE22E9091890390FF29C047 :1026C000E92FE695AE2FB0E0A255BE4F8C918093D6 @@ -630,7 +630,7 @@ :10275000D82EE695F0E0E853FC4FA590B490C12C3C :10276000BB2460911C01C61618F00E94B00FBFCFA9 :102770002C2D30E0A29EC001A39E900DB29E900D24 -:10278000112470E00E943D2D812FD11013C0860FBF +:10278000112470E00E94482D812FD11013C0860FB4 :1027900040911A01420F532F511D9A01220F331FEE :1027A000240F351F255F3C4F402F6F2D0E94E806F8 :1027B000C394D7CF861BECCFE9E8F3E0438128E050 @@ -649,7 +649,7 @@ :102880009091890390FF36C09170811129C09260A8 :1028900090938903662351F06091890370918A03B4 :1028A00080918B0390918C030E943813609189036F -:1028B000669570E04BE050E08AE091E00E94962D32 +:1028B000669570E04BE050E08AE091E00E94A12D27 :1028C000892BA9F01092C50281E08093C10220E01B :1028D00040918C0360918B0380918A030C944A137E :1028E000853210F09864D4CF880F982BD1CF0E94F6 @@ -696,20 +696,20 @@ :102B700020F0961710F40C94A81561E00C94401402 :102B8000E9E8F3E083E0808311828FEF828384EBB6 :102B90008383148260817181828193810C943813C4 -:102BA00069EE7EEF90E080E00E94E22D60E082E03E -:102BB00090E00E94C42D60E083E090E00E94C42D6C +:102BA00069EE7EEF90E080E00E94ED2D60E082E033 +:102BB00090E00E94CF2D60E083E090E00E94CF2D56 :102BC00010925B0210925A0260E084E090E00E9452 -:102BD000C42D60E082E290E00E94C42D60E085E0B8 -:102BE00090E00E94C42D60E086E090E00E94C42D39 -:102BF0006FEF87E090E00E94C42D40E050E0BA0102 -:102C000088E090E00E94D62D60E08DE090E00E9488 -:102C1000C42D40E050E0BA0188E190E00E94D62D3A -:102C200060E087E190E00E94C42D40E050E0BA01EE -:102C30008CE190E00E94D62D70E060E080E290E0B0 -:102C40000E94E22D40E050E0BA0188E190E00E944D -:102C5000D62D80E00E94900E0E94A80E40E050E029 -:102C6000BA018FE090E00E94D62D40E050E0BA011A -:102C700083E190E00C94D62D90E080E00E94BE2D80 +:102BD000CF2D60E082E290E00E94CF2D60E085E0A2 +:102BE00090E00E94CF2D60E086E090E00E94CF2D23 +:102BF0006FEF87E090E00E94CF2D40E050E0BA01F7 +:102C000088E090E00E94E12D60E08DE090E00E947D +:102C1000CF2D40E050E0BA0188E190E00E94E12D24 +:102C200060E087E190E00E94CF2D40E050E0BA01E3 +:102C30008CE190E00E94E12D70E060E080E290E0A5 +:102C40000E94ED2D40E050E0BA0188E190E00E9442 +:102C5000E12D80E00E94900E0E94A80E40E050E01E +:102C6000BA018FE090E00E94E12D40E050E0BA010F +:102C700083E190E00C94E12D90E080E00E94C92D6A :102C8000893E9E4F11F40C94730F80E008951092CA :102C9000580280911D01E6EEF1E0882359F0809101 :102CA000D50287FF07C08EE1DF011D928A95E9F703 @@ -719,7 +719,7 @@ :102CE0009B07B9F780910203833009F471C0B8F4EF :102CF000813009F448C0823009F4B2C08091E80004 :102D000083FF3AC180910103909102039A3008F049 -:102D100033C1E92FF0E0E45BF14D0C94652D8A306E +:102D100033C1E92FF0E0E95AF14D0C94702D8A305F :102D200009F48DC08B3009F470C0893039F7809177 :102D30000103813219F780910503909106030097F2 :102D400011F00297D9F68091E800877F8093E80020 @@ -806,25 +806,25 @@ :103250008F929F92AF92BF92CF92DF92EF92FF92A6 :103260000F931F93CF93DF9300D000D00F92CDB771 :10327000DEB78C01FC0183819481892B31F0808140 -:10328000918189238F3F09F052C60F900F900F90C4 +:10328000918189238F3F09F05DC60F900F900F90B9 :103290000F900F90DF91CF911F910F91FF90EF90C2 :1032A000DF90CF90BF90AF909F908F907F906F9066 :1032B0005F904F903F9008950E94040FF82E682F62 :1032C00089819A810E947D0B69817A818F2D0E946C -:1032D000F70E7C01F8018281882309F41AC6970150 -:1032E00022513F452031310508F0D2C58FEF97E0DC -:1032F0000E94B02DFEEEEF0E57EE852E53E0952E78 +:1032D000F70E7C01F8018281882309F425C6970145 +:1032E00022513F452031310508F0DDC58FEF97E0D1 +:1032F0000E94BB2DFEEEEF0E57EE852E53E0952E6D :10330000882381F180915502877009F4BECFF801BE :103310008281882309F4B9CF82E00F900F900F903B :103320000F900F90DF91CF911F910F91FF90EF9031 :10333000DF90CF90BF90AF909F908F907F906F90D5 :103340005F904F903F900C947415811428E0920682 -:10335000C9F2C4010E94B02D811101C0EA943FEF6F +:10335000C9F2C4010E94BB2D811101C0EA943FEF64 :10336000831A930AE110F1CF1C821B8244244394F8 :103370004AE0342E74014FEFE41AF40AC4010E94AB -:10338000B02D89831A82882309F4BCCF9FEF980F50 +:10338000BB2D89831A82882309F4BCCF9FEF980F45 :10339000933000F58A83498252E0850E911CC70163 -:1033A0000E94B02D8B83882309F4ACCFCE01019607 +:1033A0000E94BB2D8B83882309F4ACCFCE010196FC :1033B0007C01F70120812223E9F2213009F049C084 :1033C00091818281913041F4F2E0EF0EF11C0E9474 :1033D000AA0D09C04701EACF923049F422E0E20E7B @@ -848,7 +848,7 @@ :1034F0007ACF8CE26CCF81E00E9490150E94541527 :1035000001CF81E00E946315F9CF82E0F5CFF3E8A7 :10351000EF16FFE5FF0609F4CCC024E8E2162FE51C -:10352000F20609F0D5C4882309F4ECCEF0906A02C3 +:10352000F20609F0E0C4882309F4ECCEF0906A02B8 :10353000EE24E394FE24F0926A020E94880690939F :103540006802809367028091690210921A018823B1 :1035500009F4BDC08AE280931B0180931C0181E2C3 @@ -856,17 +856,17 @@ :103570001092660210926502C5CE882309F481C0BC :1035800080916D02811106C081E080936D0282EE10 :103590000E94F50C0E94880690936C0280936B0247 -:1035A0008BE20E94F50CF8018281882309F4D0C4D3 -:1035B00010929003F2E0EF16FCE5FF0608F4ACC1B0 -:1035C00026E1E2162CE5F20630F0C7018A5F9C4541 -:1035D000099708F0A1C10E948C0F9093D6028093A6 -:1035E000D50230E1E3163CE5F30609F464C108F0C6 -:1035F000E6C058E0E5165CE5F50609F44EC108F0B2 -:10360000AFC094E0E9169CE5F90609F43EC108F064 -:1036100091C0F2E0EF16FCE5FF0609F430C180919D -:10362000D502826023E0E2162CE5F20609F42AC1F5 -:103630006091D502F090D60284E090E00E94C42D03 -:103640006F2D82E290E00E94C42D0E9447165ACE50 +:1035A0008BE20E94F50CF8018281882309F4DBC4C8 +:1035B00010929003F3E0EF16FDE5FF0608F0BAC0A5 +:1035C0002AEFE2162CE5F20630F4C70182509C4542 +:1035D000449708F0B5C00E948C0F9093D602809358 +:1035E000D50240E1E4164CE5F40609F491C108F077 +:1035F000FFC088E0E8168CE5F80609F477C108F00A +:10360000CBC0E4E0EE16ECE5FE0609F461C108F07B +:10361000ADC022E0E2162CE5F20609F453C1809118 +:10362000D502826033E0E3163CE5F30609F44DC1B0 +:103630006091D502F090D60284E090E00E94CF2DF8 +:103640006F2D82E290E00E94CF2D0E9447165ACE45 :103650008823A1F080916D02811106C081E08093E2 :103660006D0282EE0E94F50C0E94880690936C0217 :1036700080936B0281EE0E94F50C92CF81EE0E9446 @@ -878,626 +878,627 @@ :1036D00080931B0180931C0181E2FF2029F00E944E :1036E0007B140E94AD1042CF0E947B143FCFE5EFC8 :1036F000EE16ECE5FE06B9F090F026EFE2162CE5AA -:10370000F20609F050CF27E245EE66EEFEC327E24F -:1037100045EE65EEFAC326E241EE60EEF6C327E21F -:1037200045EE64EEF2C326E241EE62EEEEC328E21D -:1037300041E0EFCF8091D502806136E0E3163CE5B1 -:10374000F30609F49FC08091D502886047E0E41633 -:103750004CE5F40608F496C08091D502806292C0D0 -:103760008091D5028D7F5CE0E5165CE5F50609F4F5 -:1037700089C078F48091D5028C609AE0E9169CE5C6 -:10378000F90609F47FC008F48CC08091D5028E7FC1 -:1037900079C08091D502877FFEE0EF16FCE5FF0639 -:1037A00009F470C08091D5028B7F2FE0E2162CE5E2 -:1037B000F20608F467C08091D5028F7E63C03BEFAC -:1037C000E3163CE5F30609F464C068F553E1E51639 -:1037D0005CE5F50609F477C090F491E1E9169CE503 -:1037E000F90609F46CC0E2E1EE16ECE5FE0609F01C -:1037F0001FCF0E9447168091D5028F7743C0F5E115 -:10380000EF16FCE5FF0609F466C008F47AC0809163 -:10381000D60281603AEFE3163CE5F30609F008CFE3 -:103820008093D60205CF4FEFE4164CE5F40609F479 -:103830004EC088F48DEFE8168CE5F806C1F1809152 -:10384000D6028E7F9EEFE9169CE5F90648F380913B -:10385000D6028360E5CFE1E0EE16EDE5FE0609F461 -:1038600059C008F444C060E022E0E2162DE5F206FB -:1038700009F0DECE8EE090E00E94C42DD9CE80917A -:10388000D50281608093D502D3CE8091D502846029 -:10389000F9CF8091D6028260C3CF8091D502806437 -:1038A000F1CF0E9447168091D5028068EBCF8091BE -:1038B000D6028D7FB5CF8091D5028F7DE3CF8091E9 -:1038C000D5028F7BDFCF8091D502837FDBCF8091C4 -:1038D000D6028C7FA5CF8091D50282FB992790F9E3 -:1038E00021E0922790FB82F990FB83F9CBCF809166 -:1038F000D602982F909591708E7F892B90FB81F93D -:103900008FCF0E9447169091D502892F97FB87F998 -:103910008058B8CF61E0AECF8091580236E1E3160F -:103920003CE5F30609F021C38A7A91E009F490E0BE -:1039300090930402811106C089E20E94170B0E9435 -:10394000A70AE0CC85E3F9CF85E30CC38091890316 -:1039500080FF1BC08E7F80938903609189037091E3 -:103960008A0380918B0390918C030E9438131092EC -:10397000C5024FEF50E782E0415050408040E1F7F0 -:1039800000C000000E94B00FBDCC8160809389030D -:1039900061E086950E944014B5CC4FE955E168EA94 -:1039A00075E10E94CC06AECC48EA55E16FE975E1BD -:1039B000F8CF45E154E16CE074E1F3CF44EF53E11B -:1039C00060E074E1EECF4CED53E168EE73E1E9CFD6 -:1039D00048EE53E16CED73E1E4CF4FE254E16EE168 -:1039E00074E1DFCF61E081E0D5CF65E082E00E9445 -:1039F000B21588CC68E086E0FACF64E18FE0F7CFBB -:103A000067E185E1F4CF62E289E1F1CF61E083E231 -:103A1000C1CF3BE5E3163DE5F30611F14CE5E416B5 -:103A20004DE5F40609F0D3C28091D60282FB8827C7 -:103A300080F991E089270E94B70EC9C20E944716FB -:103A40005FEF84E39CE0515080409040E1F700C07C -:103A500000000E94D10C0E94D01554CC81E0EBCF25 -:103A600080E0E9CFC7010E94550BD82EBFC22F2D91 -:103A70002F70C22E8F2D807F19F0C29490EFC92233 -:103A8000DD20C9F0CC2069F080E28E0D883010F086 -:103A900081100BC080915802C82AC09258020E941F -:103AA000A70A8E2D0E94F50C19C080915702C82AD2 -:103AB000C0925702F4CF8E2D0E94E10BCC2071F002 -:103AC000C09480E28E0D883010F081103EC080914D -:103AD0005802C822C09258020E94A70AE92DE85055 -:103AE000FF0B349720F40E94C0060E94A114AA2064 -:103AF00009F4CBCB8091550280FDC7CBF80112822F -:103B00008595859585950E949015C8010E94231979 -:103B1000809155028595859585950F900F900F9012 -:103B20000F900F90DF91CF911F910F91FF90EF9029 -:103B3000DF90CF90BF90AF909F908F907F906F90CD -:103B40005F904F903F900C94631580915702C8226C -:103B5000C0925702C1CF3F2D3F70B32E8F2D807F73 -:103B6000803219F0B29480EFB822882071F041E0E1 -:103B7000841681F1DD20D9F1CC2091F1F801858105 -:103B800080FF8FCF8F7085832BC0DD20B1F09091A7 -:103B900059028B2D892BC11003C00E94D70B9ECFD9 -:103BA00051E0C512FACF2091D60222FD97CF981787 -:103BB00009F494CF8093590291CFC11006C00E949E -:103BC000A10A8B2D0E94CC0B89CF81E0C81609F485 -:103BD00085CFF5CFDD2031F095E09C1508F47ECF40 -:103BE0008B2DDBCFE4E0EC1508F478CFEACFCC20C6 -:103BF00041F3F9E38F1209C02FEF37EE43E0215074 -:103C000030404040E1F700C000008E2D0E94E10BE3 -:103C100065CF8F2D86958695837061F0813009F090 -:103C20005DCFC7019370D11002C090E080E00E9488 -:103C3000940654CFC7019370D11002C090E080E089 -:103C40000E94AA064BCF8E2DDD2029F00E9463082A -:103C50000E94810743CF0E94A807FACF8F2D83705F -:103C600009F040C0D1103ACF4E2D4295469547708D -:103C7000440F440F8E2D8F7090E0042E02C0880FE9 -:103C8000991F0A94E2F730E020E0E4FE09C02FE03B -:103C900030E002C0220F331F4A95E2F7209530959D -:103CA0004F2D469546954370423099F078F46091D7 -:103CB0005A0270915B02413039F0822B932B86239C -:103CC00097230E94C60B0ACF862B972B822B932B10 -:103CD000F8CF822B932B20915A0230915B028227DE -:103CE0009327EFCF8695DD2011F08F2D81708823EB -:103CF00009F4F4CE4E2D429546954770440F440F7B -:103D00008E2D8F7090E0042E02C0880F991F0A94A8 -:103D1000E2F730E020E0E4FE09C02FE030E002C02E -:103D2000220F331F4A95E2F7209530954F2D469587 -:103D300046954370423099F078F460910903709190 -:103D40000A03413039F0822B932B862397230E945C -:103D50004C15C4CE862B972B822B932BF8CF822B1E -:103D6000932B2091090330910A0382279327EFCFE9 -:103D70005F2D5F70F52EDD2029F0852F0E949015B4 -:103D80008E2D0BCF8E2D0E94CC0B8F2D0E94631594 -:103D9000A5CE8E2D92EF891609F449C0981570F0C2 -:103DA000E0EF8E1639F1F1EF8F16C9F1DD2009F43D -:103DB0005FC0C11076CE8F2D8F7136C023EF821673 -:103DC000D9F134EF8312F2CFDD2009F446C0FF2D84 -:103DD000FF71FF2E8F2F0E9490158091D60282FDD9 -:103DE00007C028E0F29EC001112483608093550231 -:103DF0008F2D1AC0DD2071F044E04C1508F46ECE12 -:103E00002F2D2F7181E090E002C0880F991F2A9515 -:103E1000E2F7A7CF55E05C1508F460CEF1CF8F2D07 -:103E20008F71DD2009F4B2CF0E94901557CE8F2DEF -:103E30008F71DD20C9F3AACF90E080E0DD2009F486 -:103E400086CF9F2D9F7121E030E0F90102C0EE0F77 -:103E5000FF1F9A95E2F7CF017ACF81E00E94741597 -:103E600031E03C1508F03ACE82E00E94741536CE5F -:103E7000CC2059F0893309F0C8CE4FEF57EE83E0DC -:103E8000415050408040E1F7BECE8F2D8F717ECFE4 -:103E9000F0E1EF16FFE5FF0609F42DCB21E1E21674 -:103EA0002FE5F20609F431CB42E8E4164FE5F406BB -:103EB00009F4EBCB08F02BCB90E8E9169FE5F90667 -:103EC00009F45BCBE1E8EE16EFE5FE0609F4C0CBA2 -:103ED00033EFE3163CE5F30609F41DCC08F007CCFC -:103EE00058EDE5165CE5F50609F411CC89EDE81608 -:103EF0008CE5F80609F41BCC97EDE9169CE5F9066C -:103F000009F051CB26E241EE61EEC8010E94C70DD7 -:103F1000F9C930E1E3163FE5F30609F4F2CA41E1DD -:103F2000E4164FE5F40609F0BFCF82E0EBCA85E066 -:103F3000DE01119601900D928A95E1F7F801228138 -:103F400089819A812111B8C90E94550BF82EBCC9EC -:103F5000F6E1EF16FCE5FF06D1F580910402811130 -:103F6000F3CC89E20E94EC0AEACC82722CECE216D5 -:103F70002CE5F20609F431CD08F0A7C046ECE416B2 -:103F80004CE5F40609F415CD08F076C093ECE9167B -:103F90009CE5F90609F401CD08F05DC0F2ECEF16DE -:103FA000FCE5FF0609F4D2CC9AE5E9169DE5F90691 -:103FB00009F454CD08F02DCDE114FCE5FF0609F419 -:103FC0003DCD2EEDE2162CE5F20609F444CDF801C4 -:103FD0008281E080F180882309F444CDC7010E94EA -:103FE000040FD82E682FC7010E947D0BB7018D2DBD -:103FF0000E94F70E0E9419097C01882EF801D280D8 -:10400000C580C2943FE0C322809155028770A1F021 -:10401000AD2CDD2091F08F2D807F803421F080E267 -:104020008E0D883048F082E00E9474158091550210 -:104030008770AA24A3948111A12C9F2C92942FE025 -:104040009222FBE0F91508F449CDE92DF0E0EA5A97 -:10405000F14D0C94652D24ECE2162CE5F20609F4E2 -:10406000A3CC4CE054E165E174E135ECE3163CE5AA -:10407000F30609F496CC98CF49ECE4164CE5F40627 -:1040800009F4A1CC88F497ECE9169CE5F90609F44B -:1040900095CC40E054E164EF73E1E8ECEE16ECE51A -:1040A000FE0609F47ECC80CFFAECEF16FCE5FF06A5 -:1040B00009F48ECC4EE154E16FE274E12BECE21690 -:1040C0002CE5F20609F46DCC6FCF31EDE3163CE53B -:1040D000F30609F492CCB8F45EECE5165CE5F5065F -:1040E00009F483CC08F47ECC9FECE9169CE5F90634 -:1040F00009F480CC6EE089E0E0EDEE16ECE5FE061A -:1041000009F475CC51CFF4EDEF16FCE5FF0609F488 -:104110007ACC78F432EDE3163CE5F30609F470CC82 -:1041200061E088E143EDE4164CE5F40609F432CC95 -:104130003BCF55EDE5165CE5F50609F467CC8DE55A -:10414000E816F80609F4DEC82FCF1F93CF93DF934C -:1041500080912202807FA9F480911F02882389F038 -:1041600080915402D091230260911D0270911E0231 -:10417000A0912002B0912102C62FC72316E0D813C8 -:1041800004C0DF91CF911F91089590E0109711F036 -:10419000CF3F19F401968770F2CF189F9001199FB5 -:1041A000300D1124F901EC5DFD4F41814713F2CF31 -:1041B00040814613EFCF42814111ECCF43815481BE -:1041C0004A1B5B0B483C510528F7809122028F70F7 -:1041D000806180932202F901E75DFD4F80818F703D -:1041E000806180838DE192E00E942319DF91CF915D -:1041F0001F910C944B0BAF92BF92CF92DF92EF9234 -:10420000FF920F931F93CF93DF93CDB7DEB76197E4 -:104210000FB6F894DEBF0FBECDBF8C0185E0F8016C -:10422000DE011D9601900D928A95E1F7F801E2807A -:104230008DE1A82E82E0B82E6091200270912102BB -:104240006115710509F432C190911D0240911E0261 -:10425000892F84238F3F09F429C120813181C380B4 -:10426000D480F0901F02F601E61BF70BFF2009F443 -:10427000E8C080912202582F507FE83CF10508F0F9 -:10428000ABC0511177C0FE2C431321C092131FC045 -:10429000E1101DC08F70806180932202C5010E94D1 -:1042A000231980912202F80185838F2D61960FB624 -:1042B000F894DEBF0FBECDBFDF91CF911F910F915C -:1042C000FF90EF90DF90CF90BF90AF900895CD28F2 -:1042D00029F0822F83238F3F09F003C180E0F82F5C -:1042E000F170DF2E80FF3CC0809154024091230288 -:1042F00056E0841315C02D873E878D859E850E94CC -:10430000400F292F22952F702230F0F0243018F51D -:104310009F70F1F0F8019581907FD1F4D12C1EC0EF -:1043200090E0589FF001599FF00D1124EC5DFD4F76 -:104330006181361306C06081261303C06281E612D4 -:104340000FC001968770D5CF9F7011F0882331F38D -:10435000805E883018F3C8010E942319FD2CA5CF78 -:10436000EE2009F4A2CF8091220281608093220284 -:10437000F12C9BCF431306C0921304C0F801EE202A -:1043800009F479C0C8010E944C0F882309F1EE207E -:10439000F9F080912202803270F020911D0230915C -:1043A0001E0238872F831986DB86CA868C87CE014A -:1043B00007960E94231986E0F801ADE1B2E0019072 -:1043C0000D928A95E1F70E94A520FF24F3946DCF0A -:1043D000C8010E942319F9CF51110AC08DE192E062 -:1043E0000E94231986E0F50111928A95E9F7C0CF62 -:1043F00043130FC092130DC0E1100BC0F801858369 -:10440000C8010E94231986E0F50111928A95E9F707 -:104410004CCFC8010E944C0F8823D1F2EE20C1F28C -:1044200080912202803238F220911D0230911E02CA -:104430003A8329831B82DD82CC828E83CE01019652 -:10444000B8CFE83CF105F8F6FE2CEE2009F2431354 -:104450001FC092131DC08091220280FD10C0982FB2 -:10446000907F69F0F8018583903F31F0982F907F1D -:10447000905F8F70892B8583C8010E94231986E085 -:10448000F801ADE1B2E001900D928A95E1F70DCF10 -:10449000C8010E944C0F81118ECF80912202816051 -:1044A00080932202C8010E942319FFCEEE2009F456 -:1044B0008FCFC8010E944C0FF82E882309F488CFB3 -:1044C00086E0F801ADE1B2E001900D928A95E1F746 -:1044D00080911D0290911E020E94400F0E94A52013 -:1044E000E4CE81E08E25FBCE1F93CF93DF93CDB733 -:1044F000DEB767970FB6F894DEBF0FBECDBF4B8B0C -:104500005C8B6D8B7E8B8F8B6111109257021A8A98 -:10451000198A85E0FE017396DE011D9601900D92C9 -:104520008A95E1F786E0FE013D96DE01179601903F -:104530000D928A95E1F7CE0107960E94FB20882311 -:1045400089F016E08091540290912302891349C0AA -:1045500067960FB6F894DEBF0FBECDBFDF91CF9147 -:104560001F91089586E0FE013796DE0111960190B5 -:104570000D928A95E1F78A859B85892B11F38F81AE -:10458000988589238F3FE9F22091230230E0C90109 -:10459000019687709927409154024817190671F4C3 -:1045A0000E944716109223021092540286E0EDE119 -:1045B000F2E0DF011D928A95E9F7C3CF96E0929F62 -:1045C000D001939FB00D1124AC5DBD4FFE0131961B -:1045D00001900D929A95E1F7809323020E944B0B74 -:1045E000B0CF819FC00111248C5D9D4F0E94FB20A4 -:1045F000882309F4ADCF8091540290E00196877032 -:104600009927809354029ECF6F927F928F929F92B0 -:10461000AF92BF92CF92DF92EF92FF920F931F93D0 -:10462000CF93DF93CDB7DEB72D970FB6F894DEBFEB -:104630000FBECDBF8E010F5F1F4F88E0F8011192B2 -:104640008A95E9F74FE4E42E41E0F42E680153E542 -:10465000652E51E0752E88248394912CF701819169 -:104660007F018F3F09F44BC0F894E82FE295EF707B -:10467000F0E021A18F70A40102C0440F551F8A955C -:10468000E2F7CA01922F982B91A392A180958923DA -:1046900082A3789400C0E3E5F1E030E020E0B12CA3 -:1046A000A12C81918F3F09F47CC0A82FA295AF70F7 -:1046B000B0E090964C9150E08F7002C055954795B0 -:1046C0008A95E2F740FD6DC0C401022E02C0880F3A -:1046D000991F0A94E2F7A82AB92A2F5F3F4F2C307E -:1046E0003105F9F6F701319780818F3F11F00E9473 -:1046F000BF0850EA5A95F1F7F601B182A082F2E0C4 -:10470000CF0ED11C6E147F0409F0A8CF48E050E012 -:10471000B8018EE692E00E94A32DCC24C3940097AA -:1047200009F4C12C892B09F43FC088E0F801AEE6FA -:10473000B2E001900D928A95E1F781E080935E02EC -:104740000E94880690935D0280935C0280915C02D7 -:1047500090915D020E947906059750F180916E025A -:1047600090916F029093A7028093A60280917002AD -:10477000909171029093A9028093A8028091720295 -:10478000909173029093AB028093AA02809174027D -:10479000909175029093AD028093AC0210925E02EC -:1047A00007C090E080E097CF80915E028111CECF6C -:1047B00080916D02882371F080916B0290916C0260 -:1047C0000E947906893E934028F082EE0E94E10B18 -:1047D00010926D0280916A02882399F1809169029A -:1047E00081112FC080916702909168020E94790622 -:1047F00081369A4E78F0809165029091660201961A -:1048000090936602809365020E94880690936802E6 -:104810008093670280916502909166024F9788F0BD -:1048200010921A018AE280931B0180931C018FE091 -:104830000E947B1481E080936902109266021092BC -:10484000650238E7E32E32E0F32E10E000E0BB24EF -:10485000B394F701D1907F01DD2051F101151105CD -:1048600009F058C0B09263020E94880690936002DB -:1048700080935F02D694C801880F991FDD2009F448 -:1048800056C08F589E4FFC01808191819A878987FD -:104890001B860E9488068160782F9D878C87F70190 -:1048A0003197108249855A856B858D850E947422C7 -:1048B0000F5F1F4F0930110561F61091640280915E -:1048C000630211115DC08823A9F110921A0184E0DE -:1048D00080931B0180931C018FE00E947B14109237 -:1048E000630281E0809364028C2D2D960FB6F894BC -:1048F000DEBF0FBECDBFDF91CF911F910F91FF9013 -:10490000EF90DF90CF90BF90AF909F908F907F906F -:104910006F9008950530110519F4B0926202A4CF8A -:104920000730110509F0A6CFB09261029DCF815AE0 -:104930009E4FA9CF80916202882379F086E180930F -:104940001A018AE180931B0184E080931C018FE0AF -:104950000E947B1410926202C4CF8091610288236E -:10496000A9F08AE180931A018EE180931B0184E013 -:1049700080931C018FE00E947B1410926102B1CFE2 -:1049800081112BC080916202811127C08091610248 -:10499000811123C080915F02909160020E9479068C -:1049A000853F9140D0F0112379F010921A018AE2EC -:1049B00080931B0180931C0181E20E947B148091F3 -:1049C0006A0281110E94AD1010926302109262027D -:1049D000109261021092640287CF109263021092CB -:1049E00062021092610280CF1F920F920FB60F9257 -:1049F00011242F933F934F935F936F937F938F93E4 -:104A00009F93AF93BF93CF93DF93EF93FF93D09197 -:104A1000E900DF708091EC00C82FC17080FDC0E814 -:104A20001092E9008091F000877F8093F0007894E5 -:104A30000E945C161092E9008091F00088608093DB -:104A4000F000CD2BCF70C093E900FF91EF91DF9183 -:104A5000CF91BF91AF919F918F917F916F915F9116 -:104A60004F913F912F910F900FBE0F901F9018956F -:104A70001F920F920FB60F9211242F933F934F93D3 -:104A80005F936F937F938F939F93AF93BF93EF93B6 -:104A9000FF938091E10082FF09C08091E20082FFD4 -:104AA00005C08091E1008B7F8093E1008091DA0066 -:104AB00080FF24C08091D80080FF20C08091DA0060 -:104AC0008E7F8093DA008091D90080FF9BC088E1BF -:104AD00089BD8AE189BD09B400FEFDCF81E08093E4 -:104AE000FF028091DA02811109C00E94EC040E9449 -:104AF000B7058091E20084608093E2008091E1003C -:104B000080FF17C08091E20080FF13C08091E20017 -:104B10008E7F8093E2008091E20080618093E200CA -:104B20008091D80080628093D80019BC85E0809382 -:104B3000FF028091E10084FF29C08091E20084FFA0 -:104B400025C088E189BD8AE189BD89B5982F91701A -:104B500080FFFBCF8091D8008F7D8093D80080911B -:104B6000E1008F7E8093E1008091E2008F7E809350 -:104B7000E2008091E20081608093E2008091000376 -:104B8000882309F445C084E08093FF028091E1000E -:104B900083FF27C08091E20083FF23C08091E10062 -:104BA000877F8093E10082E08093FF0210920003F0 -:104BB0008091E1008E7F8093E1008091E2008E7F02 -:104BC0008093E2008091E20080618093E20042E005 -:104BD00060E080E00E9485058091F000886080930D -:104BE000F000FF91EF91BF91AF919F918F917F91D5 -:104BF0006F915F914F913F912F910F900FBE0F904A -:104C00001F90189519BC1092FF021092DA0276CF0D -:104C10008091E30087FD93E09093FF02B7CF7894F3 -:104C20001F921FB61F9211248F939F93AF93BF9330 -:104C30008091D1029091D202A091D302B091D4027E -:104C40000196A11DB11D8093D1029093D202A09331 -:104C5000D302B093D402BF91AF919F918F911F90D7 -:104C60001FBE1F9018951F921FB61F9211248F937D -:104C70009F93AF93BF938091D002811113C0809115 -:104C8000D1029091D202A091D302B091D402419668 -:104C9000A11DB11D8093D1029093D202A093D302A3 -:104CA000B093D402BF91AF919F918F911F901FBE7F -:104CB0001F901895CDB7DEB7E0970FB6F894DEBF1A -:104CC0000FBECDBF84B7877F84BF0FB6F894A89579 -:104CD00080916000886180936000109260000FBE38 -:104CE00080E890E00FB6F8948093610090936100A3 -:104CF0000FBE85B7806885BF85B7806885BF8DEB9F -:104D000098E09093E3018093E2010E94EC040E94FA -:104D1000B7058091E20084608093E20078948091EE -:104D2000FF028823A1F01091E9001F709091EC0020 -:104D3000892F817090FD80E8182B1092E9008091F6 -:104D4000E80083FD0E945C161F701093E90082E06A -:104D500084BD93E095BD9AEF97BD80936E000E944D -:104D6000730F811102C00E94A80E80EF0E94BF083D -:104D700081EF0E94BF0882EF0E94BF0883EF0E946C -:104D8000BF0803E511E0FFE5EF2EF1E0FF2ED801AB -:104D90008D918D018F3F11F00E94BF08E016F10642 -:104DA000B1F710926F0210926E021092A702109249 -:104DB000A60210927102109270021092A902109233 -:104DC000A80210927302109272021092AB0210921B -:104DD000AA0210927502109274021092AD02109203 -:104DE000AC020E943C16811102C00E94D01582E0E4 -:104DF00090E00E94B02D80939D020E948C0F9093B2 -:104E0000D6028093D5020E940423EFE3FCE9319798 -:104E1000F1F700C000000E9404238091A60280FFE9 -:104E200008C06FEF7FEF90E080E00E94E22D0E94CB -:104E3000D10C83E090E00E94B02D90E00E94C60B60 -:104E40008091090390910A030E94B914809176021F -:104E5000811132C00E943C16811104C00E94D015FD -:104E60000E94C01588E090E00E94B82D60938903ED -:104E700070938A0380938B0390938C036E7F71F4FD -:104E80000E94C01588E090E00E94B82D60938903CD -:104E900070938A0380938B0390938C030E94D206B5 -:104EA0001092C5028091890380FF03C086950E94FD -:104EB0007B1481E0809376026EEA71E0E3E98E2E46 -:104EC000E2E09E2E2CE931E0E5EAF1E041E050E03D -:104ED0001191812F82958F7090E0DC019196FC906A -:104EE00091971F70E12E6A0101C0CC0C1A95EAF768 -:104EF0000C2D00950F2191960C93919792961C91F1 -:104F000092971C2992961C93D901FD909D010F2D1B -:104F100002950F7010E0D8019196BC90BF2DBF7024 -:104F2000FB2E6A0101C0CC0CBA95EAF7DC2CD094B8 -:104F3000DB20D8019196DC9291979296DC90929723 -:104F4000DC289296DC92DC0190968C9190E002C075 -:104F500095958795EA94E2F78170D80190960C9127 -:104F600010E002C015950795FA94E2F790E000FD75 -:104F700092E0892BD4018D934D016E177F0709F0C4 -:104F8000A7CF86EA92E09093BD028093BC0281E2B3 -:104F90000E947B1481E090E00E944C1580E091E03B -:104FA0009093CD028093CC0258E1252E312C809134 -:104FB000FF02FF24F39408E11AE1853009F4B3C23B -:104FC0000E940423882359F08FB7F8944091D102AE -:104FD0005091D2026091D3027091D4028FBFA6EAA1 -:104FE000B2E0EEE9F2E010E000E0702F8D919D91CB -:104FF000219131912817390709F4BEC22827392792 -:1050000060E0EE24E394F12CA9014E215F21452BB1 -:1050100009F4ACC269A37AA39C012E213F2191E03F -:10502000232B09F490E09BA30E9488068160782FCF -:105030009DA38CA349A15AA16BA18DA10E947422AA -:10504000000F111FF801E256FD4F80819181E82683 -:10505000F926F182E0828091C5028823D1F1809106 -:10506000C402E0918903E695E81BE093C002823018 -:1050700009F099C2F0E0EC53FD4FE4910E2F10E0DF -:1050800024E2E22E23E1F22E8091C102882361F016 -:105090001092C1020E9488069093BF028093BE02C4 -:1050A0001092C3021092C2020E948806E091BE02D2 -:1050B000F091BF028E1B9F0B8F3F9F4750F4E00F74 -:1050C000F11FF093BF02E093BE028EEB92E0F70176 -:1050D00009953AE8E32E32E0F32E01E812E048E7C2 -:1050E000842E42E0942E83E991E09CA78BA7D12CDB -:1050F000C12CACE9B1E0BEA7ADA7E5EAF1E0F8ABA1 -:10510000EFA753E9652E52E0752E512C44244394A9 -:10511000D301ED913D01EE0FEE0FAFA5B8A92D9192 -:10512000B8ABAFA7A22FA295AF70B0E090968C91CC -:1051300090E02F7002C0959587952A95E2F78170CF -:105140009927ADA5BEA54D91BEA7ADA7A42FA29549 -:10515000AF70B0E090962C9130E04F7002C0359562 -:1051600027954A95E2F7A9014170552720FF02C013 -:1051700042E050E0842BE82BD3011197EC93ABA5D0 -:10518000BCA5AD90BCA7ABA7EF70F0E0ED57FE4F0C -:105190008081F7019081890F8083B12C082E000C4B -:1051A000990B20E08A159B05DCF0D8018C918F5F6C -:1051B0008C93F601E15AFE4F808191819A83898315 -:1051C0004B820E9488068160782F9D838C83F40136 -:1051D000408249815A816B818D810E94742221E035 -:1051E000D7018C91082E000C990B442755274A199A -:1051F0005B0948175907E4F0F801808181508083EA -:10520000F601EF58FE4F808191819A8389834B820A -:105210000E9488068160782F9D838C83E2E0D40110 -:10522000EC9349815A816B818D810E94742221E027 -:10523000D7018C91082E000C990BB5010E94512DBD -:10524000F70181937F01522A0F5F1F4FFFEF8F1AE3 -:105250009F0A22E0C20ED11C42E1C416D10409F01B -:1052600057CF552059F08FB7F8944091D102509103 -:10527000D2026091D3027091D4028FBF86E0E5EB39 -:10528000F2E0DE01119601900D928A95E1F7F0901F -:10529000B702E090B8021091B9020091BA021092E0 -:1052A000B7021092B8021092B9021092BA028F2D72 -:1052B0008E2909F448C08091B3029091B4020E94F3 -:1052C00079069C019091AF02992309F4C3C323335B -:1052D0003105C8F19F3F19F09F5F9093AF02FF2007 -:1052E00059F00E9443089FEF1F140CF491E0899F2E -:1052F000802D11248093B702EE2059F00E944308BC -:105300009FEF1E140CF491E0899F802D112480934F -:10531000B8023091B7023323B1F02091B8022223B2 -:1053200091F045EB3403C0011124992309F495C190 -:105330009093B70245EB240390011124332309F421 -:1053400090C13093B802812F802B09F448C080911E -:10535000B1029091B2020E9479069C019091AE0236 -:10536000992309F472C325363105C8F19F3F19F01E -:105370009F5F9093AE02112359F00E9421089FEF86 -:1053800011160CF491E0899F802D11248093B902AD -:10539000002359F00E9421089FEF10160CF491E0B1 -:1053A000899F802D11248093BA023091B902332352 -:1053B000B1F02091BA02222391F045EB3403C001F1 -:1053C0001124992309F451C19093B90245EB2403A8 -:1053D00090011124332309F44CC13093BA02809117 -:1053E000B7029091B802892B9091B902892B9091C4 -:1053F000BA02892B11F00E94810786E0FE013196E6 -:10540000A5EBB2E001900D928A95E1F70E94C006EB -:1054100090919C02891731F00E94C00680939C02F3 -:105420000E94A1148091FF02843009F0C0CD83E076 -:105430008093E9008091E80082FFB9CD8091E80077 -:1054400090E085FF06C00E940B05882309F415C172 -:1054500091E08091E8008B778093E800992309F42C -:10546000A6CDE981E150E33108F09BC1F0E0EE59AF -:10547000F14D0C94652D8091FF02843009F441C0F8 -:1054800080E00E94A1141092C5028091BB0281119C -:1054900016C0F092BB0280918903982F917090936F -:1054A00077028E7F80938903BFEFE0E7F2E0B1508F -:1054B000E040F040E1F700C000000E94B00F109201 -:1054C000D00220E40FB6F894A895209260000FBE99 -:1054D0002093600083B7817F846083BF83B781603E -:1054E00083BF7894889583B78E7F83BF0FB6F89477 -:1054F000A8958091600088618093600010926000A0 -:105500000FBE8091FE02882371F00E940423E6EA18 -:10551000F2E081919191892B09F078C28EEA92E0B4 -:105520008E179F07B1F78091FF02853009F4A3CF52 -:105530000E9447160E94C0060E94A1141092BB024E -:1055400080917702882359F080918903816080934C -:10555000890386950E947B140E949A0F31CD809119 -:10556000C6028823C9F30E94B00FF6CF6F5FEE0C1E -:10557000FF1C6C3009F048CD0F5F1F4F0430110540 -:1055800009F033CD8FEF8EA38FA318A60E94880653 -:105590008160782F9AA789A74EA15FA168A58AA5E7 -:1055A0000E94742258CD863059F4F0E0EF53FD4F3D -:1055B000E4910E2F10E094E1E92E93E1F92E64CDF1 -:1055C000893061F4E695F0E0E254FD4FE4910E2F4E -:1055D00010E085E6E82E82E1F82E56CD8F3061F49A -:1055E000E695F0E0E554FD4FE4910E2F10E0B0E1B8 -:1055F000EB2EB2E1FB2E48CD853159F4F0E0E854B2 -:10560000FD4FE4910E2F10E0ADE9EA2EA1E1FA2E54 -:105610003BCD08E210E07DE0E72E71E1F72E883106 -:1056200009F432CD833249F4E6EBF2E005911491AE -:10563000FBEBEF2EF2E1FF2E27CD04EF11E0E0EDC2 -:10564000EE2EE0E1FE2E843209F41ECD00ED17E0CF -:1056500061EDE62E66E0F62E17CD81E08093B7026D -:1056600069CE81E08093B8026ECE81E08093B9026A -:10567000ADCE81E08093BA02B2CE00E210E0CE015E -:1056800001967C018091E80085FD0AC08091E800C8 -:105690008B778093E8000E940B05882399F3D8CE7E -:1056A0008091F100D7018D937D010150110951F7CF -:1056B000CFCE1A8289E08B833FC08A81823009F481 -:1056C000BBC18330A9F0813009F06BC02FB7F894CB -:1056D0006091D1027091D2028091D3029091D40254 -:1056E0002FBF0E946B2D6B837C838D839E8324C090 -:1056F0008091A6029091A7029827892798279C83DA -:105700008B838091A8029091A902982789279827D6 -:105710009E838D838091AA029091AB02982789275E -:10572000982798878F838091AC029091AD0298273B -:10573000892798279A8789878091FF02843009F00A -:1057400036CC1091E9001F709091EC00892F817088 -:1057500090FD80E8182B82E08093E9008091E800BA -:1057600080FF0DC050E040E060E270E0CE010196A5 -:105770000E943C058091E8008E778093E8001F70BE -:105780001093E90014CC8A81823059F46B817C81BA -:105790008D819E810E946B2D86E290E00E94C42D37 -:1057A000CBCF8FEF8983C8CF4C816B818A810E94D8 -:1057B000D10E9827892798279E838D83BDCFED80B2 -:1057C000FE80FE24EF24FE248A810B81B8E10B9F2A -:1057D00080011124E0E68E9F000D111D11248C81A3 -:1057E00090E0880F991F080F191F6F2DC801879629 -:1057F0000E94C42D6E2DC8018896D0CF0E943B0E0A -:105800009BCF8A818138C1F060F4803809F094CF51 -:1058100020E04B8160918B0380918A030E944A13A0 -:105820008BCF823849F1833809F086CF20E0409150 -:105830008C036C818B81F2CF8B810E947B149B81C6 -:1058400080918903911111C08E7F809389031092FA -:10585000C502FFEF20E742E0F15020404040E1F771 -:1058600000C000000E94B00F67CF81608093890361 -:1058700086950E947B1460CF8B8180938D035CCFD3 -:105880008A81813899F030F4803809F055CF8091C1 -:105890008C0311CF823891F0833809F04DCF80917D -:1058A0008A038B8380918B038C8346CF80918903FD -:1058B00080FF02C08695FFCE80E0FDCE80918D03F3 -:1058C000FACE6091890370918A0380918B03909145 -:1058D0008C030E94381330CF80E18A832DCF84E07F -:1058E0008A8389E1E8CE0A811B81102701271027CE -:1058F000CE0101966C01EC80DC01AE0DB11D7D0185 -:10590000C80189519C4FEC14FD0409F415CF0931ED -:10591000B4E01B0750F40E94B02DF60184830F5FA2 -:105920001F4FBFEFCB1ADB0AEBCFD60114961C92A8 -:10593000F6CF0A811B81102701271027FE0131961F -:105940006F01EC80E00EF12EF11CC80189519C4FD3 -:10595000E016F10609F4F0CE0931F4E01F0728F44F -:10596000D60114966C910E94C42DBFEFCB1ADB0AAE -:105970000F5F1F4FEACF0E942B0EDECE8AE0ADCF25 -:105980000A811B81102701271027FE0131966F0124 -:10599000EC80CF018E0D911D7C01C8018796EC141F -:1059A000FD0409F4C9CE003CA3E01A0750F40E949C -:1059B000B02DF60184830F5F1F4FBFEFCB1ADB0AB8 -:1059C000ECCFD60114961C92F6CF0A811B811027CA -:1059D00001271027FE0131966F01EC80E00EF12EB9 -:1059E000F11CC8018796E016F10609F4A5CE003C2B -:1059F000F3E01F0728F4D60114966C910E94C42D81 -:105A0000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BDEC -:105A100009B400FEFDCF8091D8008F7D8093D8001F -:105A20008091E00082608093E0008091E00081FD41 -:105A3000FCCF0E94471677CD86E290E00E94B02D01 -:105A40001B821C821D828E8377CE2D32314008F05E -:105A50008FCCC5CC2D32314008F03ECC74CC87FBC6 -:105A6000082E062687FD819567FD61950E94812D90 -:105A70000EF4919507FC81950895AA1BBB1B51E17B -:105A800007C0AA1FBB1FA617B70710F0A61BB70BAE -:105A9000881F991F5A95A9F780959095BC01CD0153 -:105AA000089597FB072E16F4009407D077FD09D0D0 -:105AB0000E943D2D07FC05D03EF4909581959F4FA7 -:105AC0000895709561957F4F0895EE0FFF1F059023 -:105AD000F491E02D0994692796276927782787276D -:105AE000782708950E942D2E332312F48A1B9B0BD6 -:105AF0000C947C2D0E942D2EB7FF0895821B930BD2 -:105B00000895991B79E004C0991F961708F0961B19 -:105B1000881F7A95C9F780950895FB01DC0102C0C2 -:105B200005900D9241505040D8F70895FC01415026 -:105B3000504030F001900616D1F73197CF0108950B -:105B4000882799270895FB01DC0104C08D910190FD -:105B5000801921F441505040C8F7881B990B0895D3 -:105B6000F999FECF92BD81BDF89A992780B5089525 -:105B7000A6E1B0E044E050E00C94EA2DA8E1B0E0EA -:105B800042E050E00C94EA2D262FF999FECF92BD09 -:105B900081BDF89A019700B4021639F01FBA20BDF2 -:105BA0000FB6F894FA9AF99A0FBE08950396272F24 -:105BB0000E94C52D0E94C42D252F0E94C52D242F83 -:105BC0000C94C52D0196272F0E94C52D0C94C42D31 -:105BD000DC01CB01FC01F999FECF06C0F2BDE1BDAD -:105BE000F89A319600B40D9241505040B8F708959C -:105BF0000E942D2EA59F900DB49F900DA49F800D07 -:105C0000911D11240895B7FF0C94F82D0E94F82DD2 -:105C1000821B930B0895A1E21A2EAA1BBB1BFD0148 -:105C20000DC0AA1FBB1FEE1FFF1FA217B307E4077B -:105C3000F50720F0A21BB30BE40BF50B661F771FD3 -:105C4000881F991F1A9469F76095709580959095B3 -:105C50009B01AC01BD01CF010895A29FB001B39F8C -:105C6000C001A39F700D811D1124911DB29F700D65 -:105C7000811D1124911D0895F894FFCF5E0F5E0FD2 -:105C8000670F670F690F670F670F670F5E0F5E0F74 -:105C90006E0F670F670F6E0F41176917BC176917F3 -:105CA000BC179C17D417BC17D118DE18371D371D29 -:105CB000AB1DAB1D091E231E6E1D6E1D2E1EB81EB4 -:105CC000C91EC91E592B5D2BC32BD42BDF2BFE2BDA -:105CD000012C402C612CD12BD12B6C2C6F2C732CD4 -:0A5CE000992CBB2CBE2CC02CE52C27 -:105CEA007606910C700C6C0C680C01191A1B1C1DA1 -:105CFA001E1F202122010201002A002A2A01818274 -:105D0A0083E200E900EA00B500B600B700CD0083DF -:105D1A0001CC008A01920194012102230224022566 -:105D2A0002260227022A02B300B4006F007000F0B4 -:105D3A00F1F2F3F5F6F700010203040537363502EE -:105D4A0000020102020B000B010B020B0305030800 -:105D5A000300000001000209000901090209030306 -:105D6A0003060300FF0100010000FFFF000001001D -:105D7A0001FF00040404040404040202616264666C -:105D8A0090929497066063656791939596070001D0 -:105D9A00020202020606060909090909090F0F0F7C -:105DAA000F0F0F1515151819191919191919191984 -:105DBA001923244022B6B6019401DE00C808E1087E -:025DCA000109CD +:10370000F20609F050CF27E245EE66EE09C427E243 +:1037100045EE65EE05C426E241EE60EE01C427E207 +:1037200045EE64EEFDC326E241EE62EEF9C328E207 +:1037300041E0EFCF31E6E3163DE5F30609F44BCF68 +:103740008091580246E1E4164CE5F40609F018C4ED +:103750008A7A91E009F490E0909304028111FDC00F +:1037600089E20E94170B0E94A70ACCCD8091D50256 +:10377000806146E0E4164CE5F40609F4A6C08091A9 +:10378000D502886057E0E5165CE5F50608F49DC0B3 +:103790008091D502806299C08CE0E8168CE5F8062D +:1037A00009F4AEC078F48091D5028C60EAE0EE16A0 +:1037B000ECE5FE0609F489C008F49CC08091D502AE +:1037C0008E7F83C08091D502877F2EE0E2162CE5A4 +:1037D000F20609F47AC08091D5028B7F3FE0E316B0 +:1037E0003CE5F30608F471C08091D5028F7E6DC070 +:1037F0004CEFE4164CE5F40609F486C0A0F584E12C +:10380000E8168CE5F80609F497C098F4E2E1EE16A4 +:10381000ECE5FE0609F480C08091D5028F7BF3E1D0 +:10382000EF16FCE5FF0608F450C08091D502837FB7 +:103830004CC02AEFE2162CE5F20609F44DC008F060 +:1038400051C045E1E4164CE5F40609F0F1CE809153 +:10385000D50282FB992790F921E0922790FB82F90B +:1038600090FB83F932C0E1145DE5F50609F45AC016 +:10387000A0F48091D60283609EEFE9169CE5F906DC +:1038800071F18091D6028D7FEFEFEE16ECE5FE062A +:1038900030F18091D6028C7F22C0F2E0EF16FDE578 +:1038A000FF0609F458C008F450C031E6E3163DE5C0 +:1038B000F30609F0BDCE9091D502892F8F7E94FF3B +:1038C000806103C08091D50281608093D502B0CE23 +:1038D0008091D5028460F9CF8091D6028160809377 +:1038E000D602A6CE8091D6028260F9CF8091D50211 +:1038F0008064EBCF0E9447168091D5028068E5CFA7 +:103900008091D5028D7FE1CF8091D6028E7FE7CF67 +:103910008091D5028F7DD9CF0E9447168091D50224 +:103920008F77D3CF8091D602982F909591708E7F0C +:10393000892B90FB81F9D3CF0E9447169091D50235 +:10394000892F97FB87F98058C0CF61E08EE090E027 +:103950000E94CF2D6DCE60E0F9CF85E302CF85E3E5 +:103960000CC38091890380FF1BC08E7F80938903E5 +:103970006091890370918A0380918B0390918C03ED +:103980000E9438131092C5025FEF80E792E0515019 +:1039900080409040E1F700C000000E94B00FB2CC20 +:1039A00081608093890361E086950E944014AACCCF +:1039B0004FE955E168EA75E10E94CC06A3CC48EADC +:1039C00055E16FE975E1F8CF45E154E16CE074E150 +:1039D000F3CF44EF53E160E074E1EECF4CED53E1FF +:1039E00068EE73E1E9CF48EE53E16CED73E1E4CFAB +:1039F0004FE254E16EE174E1DFCF61E081E0D5CFC9 +:103A000065E082E00E94B2157DCC68E086E0FACFE6 +:103A100064E18FE0F7CF67E185E1F4CF62E289E10D +:103A2000F1CF61E083E2C1CF4BE5E4164DE5F4064A +:103A300011F15CE5E5165DE5F50609F0D3C280916C +:103A4000D60282FB882780F991E089270E94B70E71 +:103A5000C9C20E9447168FEF94E3ECE0815090407A +:103A6000E040E1F700C000000E94D10C0E94D01598 +:103A700049CC81E0EBCF80E0E9CFC7010E94550B34 +:103A8000D82EBFC22F2D2F70C22E8F2D807F19F000 +:103A9000C29490EFC922DD20C9F0CC2069F080E209 +:103AA0008E0D883010F081100BC080915802C82A0A +:103AB000C09258020E94A70A8E2D0E94F50C19C0D0 +:103AC00080915702C82AC0925702F4CF8E2D0E94CF +:103AD000E10BCC2071F0C09480E28E0D883010F0A4 +:103AE00081103EC080915802C822C09258020E94A4 +:103AF000A70AE92DE850FF0B349720F40E94C00676 +:103B00000E94A114AA2009F4C0CB8091550280FD27 +:103B1000BCCBF80112828595859585950E949015FC +:103B2000C8010E9423198091550285958595859538 +:103B30000F900F900F900F900F90DF91CF911F91EA +:103B40000F91FF90EF90DF90CF90BF90AF909F903C +:103B50008F907F906F905F904F903F900C94631583 +:103B600080915702C822C0925702C1CF3F2D3F70AB +:103B7000B32E8F2D807F803219F0B29480EFB8225F +:103B8000882071F041E0841681F1DD20D9F1CC204C +:103B900091F1F801858180FF8FCF8F7085832BC0D5 +:103BA000DD20B1F0909159028B2D892BC11003C0FB +:103BB0000E94D70B9ECF51E0C512FACF2091D602BA +:103BC00022FD97CF981709F494CF8093590291CF93 +:103BD000C11006C00E94A10A8B2D0E94CC0B89CF78 +:103BE00081E0C81609F485CFF5CFDD2031F095E0EE +:103BF0009C1508F47ECF8B2DDBCFE4E0EC1508F4A8 +:103C000078CFEACFCC2041F3F9E38F1209C02FEF30 +:103C100037EE43E0215030404040E1F700C0000063 +:103C20008E2D0E94E10B65CF8F2D86958695837032 +:103C300061F0813009F05DCFC7019370D11002C0EF +:103C400090E080E00E94940654CFC7019370D11099 +:103C500002C090E080E00E94AA064BCF8E2DDD20AE +:103C600029F00E9463080E94810743CF0E94A807A1 +:103C7000FACF8F2D837009F040C0D1103ACF4E2D6E +:103C8000429546954770440F440F8E2D8F7090E0FB +:103C9000042E02C0880F991F0A94E2F730E020E05A +:103CA000E4FE09C02FE030E002C0220F331F4A9526 +:103CB000E2F7209530954F2D46954695437042305A +:103CC00099F078F460915A0270915B02413039F0BA +:103CD000822B932B862397230E94C60B0ACF862B19 +:103CE000972B822B932BF8CF822B932B20915A0268 +:103CF00030915B0282279327EFCF8695DD2011F06C +:103D00008F2D8170882309F4F4CE4E2D429546956F +:103D10004770440F440F8E2D8F7090E0042E02C028 +:103D2000880F991F0A94E2F730E020E0E4FE09C012 +:103D30002FE030E002C0220F331F4A95E2F72095B2 +:103D400030954F2D469546954370423099F078F462 +:103D50006091090370910A03413039F0822B932B53 +:103D6000862397230E944C15C4CE862B972B822B3B +:103D7000932BF8CF822B932B2091090330910A03C8 +:103D800082279327EFCF5F2D5F70F52EDD2029F07E +:103D9000852F0E9490158E2D0BCF8E2D0E94CC0B5F +:103DA0008F2D0E946315A5CE8E2D92EF891609F4F2 +:103DB00049C0981570F0E0EF8E1639F1F1EF8F16CB +:103DC000C9F1DD2009F45FC0C11076CE8F2D8F714F +:103DD00036C023EF8216D9F134EF8312F2CFDD2003 +:103DE00009F446C0FF2DFF71FF2E8F2F0E94901502 +:103DF0008091D60282FD07C028E0F29EC001112406 +:103E00008360809355028F2D1AC0DD2071F044E04D +:103E10004C1508F46ECE2F2D2F7181E090E002C07A +:103E2000880F991F2A95E2F7A7CF55E05C1508F493 +:103E300060CEF1CF8F2D8F71DD2009F4B2CF0E94BB +:103E4000901557CE8F2D8F71DD20C9F3AACF90E04A +:103E500080E0DD2009F486CF9F2D9F7121E030E0C6 +:103E6000F90102C0EE0FFF1F9A95E2F7CF017ACF5A +:103E700081E00E94741531E03C1508F03ACE82E0F2 +:103E80000E94741536CECC2059F0893309F0C8CE83 +:103E90004FEF57EE83E0415050408040E1F7BECEF7 +:103EA0008F2D8F717ECFF0E1EF16FFE5FF0609F44D +:103EB00022CB21E1E2162FE5F20609F426CB42E8F7 +:103EC000E4164FE5F40609F4E0CB08F020CB90E8C7 +:103ED000E9169FE5F90609F450CBE1E8EE16EFE5A7 +:103EE000FE0609F4B5CB33EFE3163CE5F30609F41F +:103EF00012CC08F0FCCB58EDE5165CE5F50609F4AC +:103F000006CC89EDE8168CE5F80609F410CC97ED9F +:103F1000E9169CE5F90609F046CB26E241EE61EE92 +:103F2000C8010E94C70DEEC930E1E3163FE5F30674 +:103F300009F4E7CA41E1E4164FE5F40609F0BFCF02 +:103F400082E0E0CA85E0DE01119601900D928A952B +:103F5000E1F7F801228189819A812111ADC90E947E +:103F6000550BF82EB1C9F6E1EF16FCE5FF06D1F5C9 +:103F7000809104028111F3CC89E20E94EC0AF3CB18 +:103F800082722CECE2162CE5F20609F431CD08F031 +:103F9000A7C046ECE4164CE5F40609F415CD08F08C +:103FA00076C093ECE9169CE5F90609F401CD08F01A +:103FB0005DC0F2ECEF16FCE5FF0609F4D2CCEAE5B1 +:103FC000EE16EDE5FE0609F454CD08F02DCDE11412 +:103FD0002CE5F20609F43DCD3EEDE3163CE5F30693 +:103FE00009F444CDF8018281E080F180882309F44E +:103FF00044CDC7010E94040FD82E682FC7010E942C +:104000007D0BB7018D2D0E94F70E0E9419097C01CE +:10401000882EF801D280C580C2943FE0C3228091EF +:1040200055028770A1F0AD2CDD2091F08F2D807F9F +:10403000803421F080E28E0D883048F082E00E94CA +:104040007415809155028770AA24A3948111A12C24 +:104050009F2C92942FE09222FBE0F91508F449CDB1 +:10406000E92DF0E0EF59F14D0C94702D24ECE2169F +:104070002CE5F20609F4A3CC4CE054E165E174E1CF +:1040800035ECE3163CE5F30609F496CC98CF49EC01 +:10409000E4164CE5F40609F4A1CC88F497ECE91693 +:1040A0009CE5F90609F495CC40E054E164EF73E136 +:1040B000E8ECEE16ECE5FE0609F47ECC80CFFAECD7 +:1040C000EF16FCE5FF0609F48ECC4EE154E16FE2F9 +:1040D00074E12BECE2162CE5F20609F46DCC6FCFFF +:1040E00031EDE3163CE5F30609F492CCB8F45EEC4E +:1040F000E5165CE5F50609F483CC08F47ECC9FEC6C +:10410000E9169CE5F90609F480CC6EE089E0E0ED63 +:10411000EE16ECE5FE0609F475CC51CFF4EDEF1682 +:10412000FCE5FF0609F47ACC78F432EDE3163CE5C1 +:10413000F30609F470CC61E088E143EDE4164CE548 +:10414000F40609F432CC3BCF55EDE5165CE5F506F7 +:1041500009F467CC8DE5E816F80609F4D3C82FCF2B +:104160001F93CF93DF9380912202807FA9F48091E7 +:104170001F02882389F080915402D091230260911C +:104180001D0270911E02A0912002B0912102C62F43 +:10419000C72316E0D81304C0DF91CF911F91089573 +:1041A00090E0109711F0CF3F19F401968770F2CF8D +:1041B000189F9001199F300D1124F901EC5DFD4FFE +:1041C00041814713F2CF40814613EFCF4281411125 +:1041D000ECCF438154814A1B5B0B483C510528F7C7 +:1041E000809122028F70806180932202F901E75D45 +:1041F000FD4F80818F70806180838DE192E00E940D +:104200002319DF91CF911F910C944B0BAF92BF926A +:10421000CF92DF92EF92FF920F931F93CF93DF9392 +:10422000CDB7DEB761970FB6F894DEBF0FBECDBF36 +:104230008C0185E0F801DE011D9601900D928A95B2 +:10424000E1F7F801E2808DE1A82E82E0B82E6091BE +:104250002002709121026115710509F432C190911B +:104260001D0240911E02892F84238F3F09F429C12A +:1042700020813181C380D480F0901F02F601E61BBB +:10428000F70BFF2009F4E8C080912202582F507FDD +:10429000E83CF10508F0ABC0511177C0FE2C431388 +:1042A00021C092131FC0E1101DC08F7080618093E8 +:1042B0002202C5010E94231980912202F801858300 +:1042C0008F2D61960FB6F894DEBF0FBECDBFDF9184 +:1042D000CF911F910F91FF90EF90DF90CF90BF9003 +:1042E000AF900895CD2829F0822F83238F3F09F0C6 +:1042F00003C180E0F82FF170DF2E80FF3CC0809179 +:1043000054024091230256E0841315C02D873E8746 +:104310008D859E850E94400F292F22952F70223077 +:10432000F0F0243018F59F70F1F0F8019581907F3E +:10433000D1F4D12C1EC090E0589FF001599FF00D90 +:104340001124EC5DFD4F6181361306C06081261398 +:1043500003C06281E6120FC001968770D5CF9F70AF +:1043600011F0882331F3805E883018F3C8010E9471 +:104370002319FD2CA5CFEE2009F4A2CF80912202B3 +:10438000816080932202F12C9BCF431306C09213CD +:1043900004C0F801EE2009F479C0C8010E944C0F56 +:1043A000882309F1EE20F9F080912202803270F02A +:1043B00020911D0230911E0238872F831986DB86DB +:1043C000CA868C87CE0107960E94231986E0F801E1 +:1043D000ADE1B2E001900D928A95E1F70E94B02024 +:1043E000FF24F3946DCFC8010E942319F9CF511116 +:1043F0000AC08DE192E00E94231986E0F501119236 +:104400008A95E9F7C0CF43130FC092130DC0E11096 +:104410000BC0F8018583C8010E94231986E0F501CD +:1044200011928A95E9F74CCFC8010E944C0F88235E +:10443000D1F2EE20C1F280912202803238F2209136 +:104440001D0230911E023A8329831B82DD82CC82B9 +:104450008E83CE010196B8CFE83CF105F8F6FE2C2C +:10446000EE2009F243131FC092131DC08091220257 +:1044700080FD10C0982F907F69F0F8018583903FF0 +:1044800031F0982F907F905F8F70892B8583C801C2 +:104490000E94231986E0F801ADE1B2E001900D928F +:1044A0008A95E1F70DCFC8010E944C0F81118ECF84 +:1044B00080912202816080932202C8010E94231908 +:1044C000FFCEEE2009F48FCFC8010E944C0FF82ECA +:1044D000882309F488CF86E0F801ADE1B2E00190CD +:1044E0000D928A95E1F780911D0290911E020E9423 +:1044F000400F0E94B020E4CE81E08E25FBCE1F93BA +:10450000CF93DF93CDB7DEB767970FB6F894DEBFD2 +:104510000FBECDBF4B8B5C8B6D8B7E8B8F8B6111F8 +:10452000109257021A8A198A85E0FE017396DE01FD +:104530001D9601900D928A95E1F786E0FE013D9669 +:10454000DE01179601900D928A95E1F7CE0107964C +:104550000E940621882389F016E0809154029091F0 +:104560002302891349C067960FB6F894DEBF0FBEC9 +:10457000CDBFDF91CF911F91089586E0FE01379660 +:10458000DE01119601900D928A95E1F78A859B854F +:10459000892B11F38F81988589238F3FE9F2209130 +:1045A000230230E0C9010196877099274091540297 +:1045B0004817190671F40E944716109223021092B0 +:1045C000540286E0EDE1F2E0DF011D928A95E9F701 +:1045D000C3CF96E0929FD001939FB00D1124AC5DA4 +:1045E000BD4FFE01319601900D929A95E1F78093AF +:1045F00023020E944B0BB0CF819FC00111248C5D20 +:104600009D4F0E940621882309F4ADCF809154026A +:1046100090E0019687709927809354029ECF6F9205 +:104620007F928F929F92AF92BF92CF92DF92EF9242 +:10463000FF920F931F93CF93DF93CDB7DEB72D97E4 +:104640000FB6F894DEBF0FBECDBF8E010F5F1F4FB8 +:1046500088E0F80111928A95E9F74FE4E42E41E0F1 +:10466000F42E680153E5652E51E0752E882483945D +:10467000912CF70181917F018F3F09F44BC0F89491 +:10468000E82FE295EF70F0E021A18F70A40102C045 +:10469000440F551F8A95E2F7CA01922F982B91A3D8 +:1046A00092A18095892382A3789400C0E3E5F1E08C +:1046B00030E020E0B12CA12C81918F3F09F47CC027 +:1046C000A82FA295AF70B0E090964C9150E08F70FB +:1046D00002C0559547958A95E2F740FD6DC0C4012B +:1046E000022E02C0880F991F0A94E2F7A82AB92A5D +:1046F0002F5F3F4F2C303105F9F6F701319780815C +:104700008F3F11F00E94BF0850EA5A95F1F7F60169 +:10471000B182A082F2E0CF0ED11C6E147F0409F0AA +:10472000A8CF48E050E0B8018EE692E00E94AE2D9E +:10473000CC24C394009709F4C12C892B09F43FC001 +:1047400088E0F801AEE6B2E001900D928A95E1F7BB +:1047500081E080935E020E94880690935D028093C0 +:104760005C0280915C0290915D020E94790605973F +:1047700050F180916E0290916F029093A702809306 +:10478000A60280917002909171029093A902809389 +:10479000A80280917202909173029093AB02809371 +:1047A000AA0280917402909175029093AD02809359 +:1047B000AC0210925E0207C090E080E097CF80913B +:1047C0005E028111CECF80916D02882371F08091BD +:1047D0006B0290916C020E947906893E934028F00A +:1047E00082EE0E94E10B10926D0280916A02882392 +:1047F00099F18091690281112FC080916702909197 +:1048000068020E94790681369A4E78F0809165029E +:1048100090916602019690936602809365020E94D1 +:104820008806909368028093670280916502909158 +:1048300066024F9788F010921A018AE280931B015A +:1048400080931C018FE00E947B1481E080936902B9 +:10485000109266021092650238E7E32E32E0F32EE2 +:1048600010E000E0BB24B394F701D1907F01DD207C +:1048700051F10115110509F058C0B09263020E9470 +:1048800088069093600280935F02D694C801880FD7 +:10489000991FDD2009F456C08F589E4FFC0180817E +:1048A00091819A8789871B860E9488068160782F6C +:1048B0009D878C87F7013197108249855A856B85D2 +:1048C0008D850E947F220F5F1F4F0930110561F611 +:1048D000109164028091630211115DC08823A9F1D7 +:1048E00010921A0184E080931B0180931C018FE0D9 +:1048F0000E947B141092630281E0809364028C2DED +:104900002D960FB6F894DEBF0FBECDBFDF91CF91CD +:104910001F910F91FF90EF90DF90CF90BF90AF90DD +:104920009F908F907F906F9008950530110519F436 +:10493000B0926202A4CF0630110509F0A6CFB09262 +:1049400061029DCF815A9E4FA9CF80916202882338 +:1049500079F086E180931A018AE180931B0184E05B +:1049600080931C018FE00E947B1410926202C4CFDE +:10497000809161028823A9F08AE180931A018EE177 +:1049800080931B0184E080931C018FE00E947B14C4 +:1049900010926102B1CF81112BC08091620281110E +:1049A00027C080916102811123C080915F029091A4 +:1049B00060020E947906853F9140D0F0112379F082 +:1049C00010921A018AE280931B0180931C0181E2FC +:1049D0000E947B1480916A0281110E94AD10109296 +:1049E000630210926202109261021092640287CFF9 +:1049F00010926302109262021092610280CF1F92A5 +:104A00000F920FB60F9211242F933F934F935F9302 +:104A10006F937F938F939F93AF93BF93CF93DF93C6 +:104A2000EF93FF93D091E900DF708091EC00C82FE5 +:104A3000C17080FDC0E81092E9008091F000877F8E +:104A40008093F00078940E945C161092E9008091A7 +:104A5000F00088608093F000CD2BCF70C093E90008 +:104A6000FF91EF91DF91CF91BF91AF919F918F9186 +:104A70007F916F915F914F913F912F910F900FBE5A +:104A80000F901F9018951F920F920FB60F9211243E +:104A90002F933F934F935F936F937F938F939F9346 +:104AA000AF93BF93EF93FF938091E10082FF09C022 +:104AB0008091E20082FF05C08091E1008B7F8093AE +:104AC000E1008091DA0080FF24C08091D80080FF4F +:104AD00020C08091DA008E7F8093DA008091D90027 +:104AE00080FF9BC088E189BD8AE189BD09B400FED1 +:104AF000FDCF81E08093FF028091DA02811109C02D +:104B00000E94EC040E94B7058091E20084608093CB +:104B1000E2008091E10080FF17C08091E20080FFF9 +:104B200013C08091E2008E7F8093E2008091E200CA +:104B300080618093E2008091D80080628093D800E9 +:104B400019BC85E08093FF028091E10084FF29C0B9 +:104B50008091E20084FF25C088E189BD8AE189BD9A +:104B600089B5982F917080FFFBCF8091D8008F7D01 +:104B70008093D8008091E1008F7E8093E100809146 +:104B8000E2008F7E8093E2008091E200816080935A +:104B9000E20080910003882309F445C084E08093FB +:104BA000FF028091E10083FF27C08091E20083FF34 +:104BB00023C08091E100877F8093E10082E08093B1 +:104BC000FF02109200038091E1008E7F8093E1004C +:104BD0008091E2008E7F8093E2008091E20080610C +:104BE0008093E20042E060E080E00E9485058091D1 +:104BF000F00088608093F000FF91EF91BF91AF913A +:104C00009F918F917F916F915F914F913F912F91E4 +:104C10000F900FBE0F901F90189519BC1092FF02B5 +:104C20001092DA0276CF8091E30087FD93E09093B3 +:104C3000FF02B7CF78941F921FB61F9211248F9353 +:104C40009F93AF93BF938091D1029091D202A09194 +:104C5000D302B091D4020196A11DB11D8093D1025F +:104C60009093D202A093D302B093D402BF91AF919C +:104C70009F918F911F901FBE1F9018951F921FB676 +:104C80001F9211248F939F93AF93BF938091D00273 +:104C9000811113C08091D1029091D202A091D302D0 +:104CA000B091D4024196A11DB11D8093D102909381 +:104CB000D202A093D302B093D402BF91AF919F913F +:104CC0008F911F901FBE1F901895CDB7DEB7E0974C +:104CD0000FB6F894DEBF0FBECDBF84B7877F84BF09 +:104CE0000FB6F894A8958091600088618093600069 +:104CF000109260000FBE80E890E00FB6F8948093A9 +:104D00006100909361000FBE85B7806885BF85B74D +:104D1000806885BF8DEB98E09093E3018093E2017A +:104D20000E94EC040E94B7058091E20084608093A9 +:104D3000E20078948091FF028823A1F01091E900AD +:104D40001F709091EC00892F817090FD80E8182BE6 +:104D50001092E9008091E80083FD0E945C161F70AC +:104D60001093E90082E084BD93E095BD9AEF97BD72 +:104D700080936E000E94730F811102C00E94A80EE2 +:104D800080EF0E94BF0881EF0E94BF0882EF0E945F +:104D9000BF0883EF0E94BF0803E511E0FFE5EF2E97 +:104DA000F1E0FF2ED8018D918D018F3F11F00E940F +:104DB000BF08E016F106B1F710926F0210926E0272 +:104DC0001092A7021092A602109271021092700225 +:104DD0001092A9021092A80210927302109272020D +:104DE0001092AB021092AA021092750210927402F5 +:104DF0001092AD021092AC020E943C16811102C0CA +:104E00000E94D01582E090E00E94BB2D80939D020D +:104E10000E948C0F9093D6028093D5020E940F239C +:104E2000EFE3FCE93197F1F700C000000E940F2387 +:104E30008091A60280FF08C06FEF7FEF90E080E0D6 +:104E40000E94ED2D0E94D10C83E090E00E94BB2DCA +:104E500090E00E94C60B8091090390910A030E9482 +:104E6000B91480917602811132C00E943C168111E2 +:104E700004C00E94D0150E94C01588E090E00E94F6 +:104E8000C32D6093890370938A0380938B0390935F +:104E90008C036E7F71F40E94C01588E090E00E9440 +:104EA000C32D6093890370938A0380938B0390933F +:104EB0008C030E94D2061092C5028091890380FF64 +:104EC00003C086950E947B1481E0809376026EEA8F +:104ED00071E0E3E98E2EE2E09E2E2CE931E0E5EA76 +:104EE000F1E041E050E01191812F82958F7090E0C8 +:104EF000DC019196FC9091971F70E12E6A0101C030 +:104F0000CC0C1A95EAF70C2D00950F2191960C9375 +:104F1000919792961C9192971C2992961C93D90175 +:104F2000FD909D010F2D02950F7010E0D801919614 +:104F3000BC90BF2DBF70FB2E6A0101C0CC0CBA958E +:104F4000EAF7DC2CD094DB20D8019196DC92919783 +:104F50009296DC909297DC289296DC92DC019096F7 +:104F60008C9190E002C095958795EA94E2F7817064 +:104F7000D80190960C9110E002C015950795FA940F +:104F8000E2F790E000FD92E0892BD4018D934D0172 +:104F90006E177F0709F0A7CF86EA92E09093BD02D3 +:104FA0008093BC0281E20E947B1481E090E00E9429 +:104FB0004C1580E091E09093CD028093CC0258E1B3 +:104FC000252E312C8091FF02FF24F39408E11AE191 +:104FD000853009F4B3C20E940F23882359F08FB79C +:104FE000F8944091D1025091D2026091D302709115 +:104FF000D4028FBFA6EAB2E0EEE9F2E010E000E0F2 +:10500000702F8D919D91219131912817390709F4C5 +:10501000BEC22827392760E0EE24E394F12CA901D1 +:105020004E215F21452B09F4ACC269A37AA39C01F0 +:105030002E213F2191E0232B09F490E09BA30E94B5 +:1050400088068160782F9DA38CA349A15AA16BA1EA +:105050008DA10E947F22000F111FF801E256FD4F23 +:1050600080819181E826F926F182E0828091C50253 +:105070008823D1F18091C402E0918903E695E81B71 +:10508000E093C002823009F099C2F0E0EC53FD4F8A +:10509000E4910E2F10E024E2E22E23E1F22E809123 +:1050A000C102882361F01092C1020E948806909389 +:1050B000BF028093BE021092C3021092C2020E94ED +:1050C0008806E091BE02F091BF028E1B9F0B8F3FBE +:1050D0009F4750F4E00FF11FF093BF02E093BE0230 +:1050E0008EEB92E0F70109953AE8E32E32E0F32ED9 +:1050F00001E812E048E7842E42E0942E83E991E033 +:105100009CA78BA7D12CC12CACE9B1E0BEA7ADA761 +:10511000E5EAF1E0F8ABEFA753E9652E52E0752E12 +:10512000512C44244394D301ED913D01EE0FEE0F39 +:10513000AFA5B8A92D91B8ABAFA7A22FA295AF701C +:10514000B0E090968C9190E02F7002C09595879575 +:105150002A95E2F781709927ADA5BEA54D91BEA70E +:10516000ADA7A42FA295AF70B0E090962C9130E03F +:105170004F7002C0359527954A95E2F7A901417015 +:10518000552720FF02C042E050E0842BE82BD301DA +:105190001197EC93ABA5BCA5AD90BCA7ABA7EF70E6 +:1051A000F0E0ED57FE4F8081F7019081890F8083F9 +:1051B000B12C082E000C990B20E08A159B05DCF021 +:1051C000D8018C918F5F8C93F601E15AFE4F80815C +:1051D00091819A8389834B820E9488068160782F0F +:1051E0009D838C83F401408249815A816B818D813A +:1051F0000E947F2221E0D7018C91082E000C990B90 +:10520000442755274A195B0948175907E4F0F80164 +:10521000808181508083F601EF58FE4F808191811B +:105220009A8389834B820E9488068160782F9D83B0 +:105230008C83E2E0D401EC9349815A816B818D81AA +:105240000E947F2221E0D7018C91082E000C990B3F +:10525000B5010E945C2DF70181937F01522A0F5FF7 +:105260001F4FFFEF8F1A9F0A22E0C20ED11C42E1AE +:10527000C416D10409F057CF552059F08FB7F894D0 +:105280004091D1025091D2026091D3027091D40228 +:105290008FBF86E0E5EBF2E0DE01119601900D9202 +:1052A0008A95E1F7F090B702E090B8021091B90248 +:1052B0000091BA021092B7021092B8021092B9028D +:1052C0001092BA028F2D8E2909F448C08091B30242 +:1052D0009091B4020E9479069C019091AF029923AB +:1052E00009F4C3C323333105C8F19F3F19F09F5F11 +:1052F0009093AF02FF2059F00E9443089FEF1F14C4 +:105300000CF491E0899F802D11248093B702EE2048 +:1053100059F00E9443089FEF1E140CF491E0899FFE +:10532000802D11248093B8023091B7023323B1F05D +:105330002091B802222391F045EB3403C0011124DF +:10534000992309F495C19093B70245EB240390018A +:105350001124332309F490C13093B802812F802B9C +:1053600009F448C08091B1029091B2020E9479067E +:105370009C019091AE02992309F472C32536310540 +:10538000C8F19F3F19F09F5F9093AE02112359F02F +:105390000E9421089FEF11160CF491E0899F802D47 +:1053A00011248093B902002359F00E9421089FEF35 +:1053B00010160CF491E0899F802D11248093BA027D +:1053C0003091B9023323B1F02091BA02222391F037 +:1053D00045EB3403C0011124992309F451C1909382 +:1053E000B90245EB240390011124332309F44CC185 +:1053F0003093BA028091B7029091B802892B9091B4 +:10540000B902892B9091BA02892B11F00E94810771 +:1054100086E0FE013196A5EBB2E001900D928A95EF +:10542000E1F70E94C00690919C02891731F00E941A +:10543000C00680939C020E94A1148091FF028430D8 +:1054400009F0C0CD83E08093E9008091E80082FFFD +:10545000B9CD8091E80090E085FF06C00E940B0561 +:10546000882309F415C191E08091E8008B7780933F +:10547000E800992309F4A6CDE981E150E33108F071 +:105480009BC1F0E0E359F14D0C94702D8091FF0227 +:10549000843009F441C080E00E94A1141092C5023A +:1054A0008091BB02811116C0F092BB0280918903EA +:1054B000982F9170909377028E7F80938903BFEF2E +:1054C000E0E7F2E0B150E040F040E1F700C000005A +:1054D0000E94B00F1092D00220E40FB6F894A89565 +:1054E000209260000FBE2093600083B7817F8460AC +:1054F00083BF83B7816083BF7894889583B78E7F9D +:1055000083BF0FB6F894A89580916000886180935E +:105510006000109260000FBE8091FE02882371F03F +:105520000E940F23E6EAF2E081919191892B09F024 +:1055300078C28EEA92E08E179F07B1F78091FF0242 +:10554000853009F4A3CF0E9447160E94C0060E942E +:10555000A1141092BB0280917702882359F08091A8 +:10556000890381608093890386950E947B140E9441 +:105570009A0F31CD8091C6028823C9F30E94B00FE3 +:10558000F6CF6F5FEE0CFF1C6C3009F048CD0F5F5B +:105590001F4F0430110509F033CD8FEF8EA38FA379 +:1055A00018A60E9488068160782F9AA789A74EA125 +:1055B0005FA168A58AA50E947F2258CD863059F444 +:1055C000F0E0EF53FD4FE4910E2F10E094E1E92E4F +:1055D00093E1F92E64CD893061F4E695F0E0E25470 +:1055E000FD4FE4910E2F10E085E6E82E82E1F82EC3 +:1055F00056CD8F3061F4E695F0E0E554FD4FE4912F +:105600000E2F10E0B0E1EB2EB2E1FB2E48CD85313C +:1056100059F4F0E0E854FD4FE4910E2F10E0ADE9AD +:10562000EA2EA1E1FA2E3BCD08E210E07DE0E72E64 +:1056300071E1F72E883109F432CD833249F4E6EB7B +:10564000F2E005911491FBEBEF2EF2E1FF2E27CD56 +:1056500004EF11E0E0EDEE2EE0E1FE2E843209F4DD +:105660001ECD00ED17E061EDE62E66E0F62E17CDBB +:1056700081E08093B70269CE81E08093B8026ECE5C +:1056800081E08093B902ADCE81E08093BA02B2CEC0 +:1056900000E210E0CE0101967C018091E80085FDDA +:1056A0000AC08091E8008B778093E8000E940B0588 +:1056B000882399F3D8CE8091F100D7018D937D0195 +:1056C0000150110951F7CFCE1A8289E08B833FC078 +:1056D0008A81823009F4BBC18330A9F0813009F09E +:1056E0006BC02FB7F8946091D1027091D202809173 +:1056F000D3029091D4022FBF0E94762D6B837C83BE +:105700008D839E8324C08091A6029091A702982742 +:10571000892798279C838B838091A8029091A90266 +:105720009827892798279E838D838091AA0290913C +:10573000AB0298278927982798878F838091AC029E +:105740009091AD029827892798279A878987809119 +:10575000FF02843009F036CC1091E9001F7090915F +:10576000EC00892F817090FD80E8182B82E08093F7 +:10577000E9008091E80080FF0DC050E040E060E269 +:1057800070E0CE0101960E943C058091E8008E7782 +:105790008093E8001F701093E90014CC8A81823056 +:1057A00059F46B817C818D819E810E94762D86E2E9 +:1057B00090E00E94CF2DCBCF8FEF8983C8CF4C8153 +:1057C0006B818A810E94D10E9827892798279E8312 +:1057D0008D83BDCFED80FE80FE24EF24FE248A81E0 +:1057E0000B81B8E10B9F80011124E0E68E9F000D34 +:1057F000111D11248C8190E0880F991F080F191F2B +:105800006F2DC80187960E94CF2D6E2DC8018896F6 +:10581000D0CF0E943B0E9BCF8A818138C1F060F4CB +:10582000803809F094CF20E04B8160918B03809108 +:105830008A030E944A138BCF823849F1833809F0DA +:1058400086CF20E040918C036C818B81F2CF8B81DD +:105850000E947B149B8180918903911111C08E7FDE +:10586000809389031092C502FFEF20E742E0F150D8 +:1058700020404040E1F700C000000E94B00F67CF19 +:1058800081608093890386950E947B1460CF8B8111 +:1058900080938D035CCF8A81813899F030F4803811 +:1058A00009F055CF80918C0311CF823891F0833865 +:1058B00009F04DCF80918A038B8380918B038C8379 +:1058C00046CF8091890380FF02C08695FFCE80E09D +:1058D000FDCE80918D03FACE6091890370918A0389 +:1058E00080918B0390918C030E94381330CF80E11C +:1058F0008A832DCF84E08A8389E1E8CE0A811B81E7 +:10590000102701271027CE0101966C01EC80DC01E5 +:10591000AE0DB11D7D01C80189519C4FEC14FD04F1 +:1059200009F415CF0931B4E01B0750F40E94BB2DD8 +:10593000F60184830F5F1F4FBFEFCB1ADB0AEBCF5B +:10594000D60114961C92F6CF0A811B8110270127DD +:105950001027FE0131966F01EC80E00EF12EF11C54 +:10596000C80189519C4FE016F10609F4F0CE0931C7 +:10597000F4E01F0728F4D60114966C910E94CF2DF5 +:10598000BFEFCB1ADB0A0F5F1F4FEACF0E942B0E2F +:10599000DECE8AE0ADCF0A811B81102701271027B8 +:1059A000FE0131966F01EC80CF018E0D911D7C01BF +:1059B000C8018796EC14FD0409F4C9CE003CA3E0AD +:1059C0001A0750F40E94BB2DF60184830F5F1F4F0E +:1059D000BFEFCB1ADB0AECCFD60114961C92F6CFA0 +:1059E0000A811B81102701271027FE0131966F01C4 +:1059F000EC80E00EF12EF11CC8018796E016F1064E +:105A000009F4A5CE003CF3E01F0728F4D601149654 +:105A10006C910E94CF2DBFEFCB1ADB0A0F5F1F4F97 +:105A2000EBCF09BD19BD09B400FEFDCF8091D800B0 +:105A30008F7D8093D8008091E00082608093E000A9 +:105A40008091E00081FDFCCF0E94471677CD86E271 +:105A500090E00E94BB2D1B821C821D828E8377CE1C +:105A60002D32314008F08FCCC5CC2D32314008F0BA +:105A70003ECC74CC87FB082E062687FD819567FDFA +:105A800061950E948C2D0EF4919507FC81950895E7 +:105A9000AA1BBB1B51E107C0AA1FBB1FA617B70754 +:105AA00010F0A61BB70B881F991F5A95A9F7809570 +:105AB0009095BC01CD01089597FB072E16F4009434 +:105AC00007D077FD09D00E94482D07FC05D03EF491 +:105AD000909581959F4F0895709561957F4F08959A +:105AE000EE0FFF1F0590F491E02D0994692796278A +:105AF000692778278727782708950E94382E33232F +:105B000012F48A1B9B0B0C94872D0E94382EB7FF32 +:105B10000895821B930B0895991B79E004C0991F87 +:105B2000961708F0961B881F7A95C9F780950895F7 +:105B3000FB01DC0102C005900D9241505040D8F7A6 +:105B40000895FC014150504030F001900616D1F705 +:105B50003197CF010895882799270895FB01DC012B +:105B600004C08D910190801921F441505040C8F734 +:105B7000881B990B0895F999FECF92BD81BDF89AC3 +:105B8000992780B50895A6E1B0E044E050E00C9478 +:105B9000F52DA8E1B0E042E050E00C94F52D262F61 +:105BA000F999FECF92BD81BDF89A019700B4021613 +:105BB00039F01FBA20BD0FB6F894FA9AF99A0FBEC1 +:105BC00008950396272F0E94D02D0E94CF2D252FB8 +:105BD0000E94D02D242F0C94D02D0196272F0E94A7 +:105BE000D02D0C94CF2DDC01CB01FC01F999FECF17 +:105BF00006C0F2BDE1BDF89A319600B40D92415055 +:105C00005040B8F708950E94382EA59F900DB49F7C +:105C1000900DA49F800D911D11240895B7FF0C9441 +:105C2000032E0E94032E821B930B0895A1E21A2ECD +:105C3000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F30 +:105C4000A217B307E407F50720F0A21BB30BE40B80 +:105C5000F50B661F771F881F991F1A9469F76095C7 +:105C60007095809590959B01AC01BD01CF01089581 +:105C7000A29FB001B39FC001A39F700D811D11248D +:105C8000911DB29F700D811D1124911D0895F894EE +:105C9000FFCF5E0F5E0F670F670F690F670F670F0C +:105CA000670F5E0F5E0F6E0F670F670F6E0F411766 +:105CB0006917BC176917BC179C17D417BC17D118E4 +:105CC000DE18421D421DB61DB61D141E2E1E791D66 +:105CD000791D391EC31ED41ED41E642B682BCE2BF7 +:105CE000DF2BEA2B092C0C2C4B2C6C2CDC2BDC2B0B +:105CF000772C7A2C7E2CA42CC62CC92CCB2CF02CE7 +:105D00007606910C700C6C0C680C01191A1B1C1D8A +:105D10001E1F202122010201002A002A2A0181825D +:105D200083E200E900EA00B500B600B700CD0083C9 +:105D300001CC008A01920194012102230224022550 +:105D400002260227022A02B300B4006F007000F09E +:105D5000F1F2F3F5F6F700010203040537363502D8 +:105D600000020102020B000B010B020B03050308EA +:105D700003000000010002090009010902090303F0 +:105D800003060300FF0100010000FFFF0000010007 +:105D900001FF000404040404040402026162646656 +:105DA00090929497066063656791939596070001BA +:105DB000020202020606060909090909090F0F0F66 +:105DC0000F0F0F151515181919191919191919196E +:105DD0001923244022B6B6019401DE00C808E10868 +:025DE0000109B7 :00000001FF From 956be50afae36c287623155e24b455e8c665fe02 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 8 Nov 2021 15:10:07 -0500 Subject: [PATCH 48/94] Correct file link (Courtesy of xen). Code cleanup for clarity. --- keyboards/solartempest/ps17/config.h | 2 +- .../solartempest/ps17/keymaps/via/keymap.c | 110 +- .../solartempest/ps17/ps17 VIA layout.json | 8 +- .../ps17/solartempest_ps17_via.hex | 3078 ++++++++--------- 4 files changed, 1541 insertions(+), 1657 deletions(-) diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h index 25a2d3b89897..5baf2cc7f6b7 100644 --- a/keyboards/solartempest/ps17/config.h +++ b/keyboards/solartempest/ps17/config.h @@ -93,7 +93,7 @@ 27, 26, 25, 24, 23 ) #endif -#ifdef RGB_MATRIX_ENABLE // For dynamic RGB Matrix effects +#ifdef RGB_MATRIX_ENABLE // For dynamic/reactive RGB Matrix effects #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow #define RGB_MATRIX_CENTER { 126, 126 }; #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c index c68c32710e5b..8077ca9122c8 100644 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -17,7 +17,7 @@ */ #include QMK_KEYBOARD_H -#include "PS17.h" +#include "ps17.h" #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT #endif @@ -25,9 +25,11 @@ bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; + bool spam_arrow; uint16_t spam_timer = false; uint16_t spam_interval = 1000; // (1000ms == 1s) + bool teams_muted; #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. @@ -183,10 +185,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void matrix_init_user(void) { //run when matrix is initiated, before all features init -}; - - void matrix_scan_user(void) { //run whenever user matrix is scanned if (is_alt_tab_active) { if (timer_elapsed(alt_tab_timer) > 1000) { @@ -196,8 +194,6 @@ void matrix_scan_user(void) { //run whenever user matrix is scanned } if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { spam_timer = timer_read(); - //tap_code(KC_UP); - //tap_code(KC_DOWN); tap_code(KC_F24); } }; @@ -295,32 +291,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } -// RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Spring green (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 5,255,120}); //Yellow-orange (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Cyan (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Magenta (Code is extra for static key lighting of layers) -const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 15,255,120}); //Orange-red (Code is extra for static key lighting of layers) -const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer -); - void keyboard_post_init_user(void) { //run as last task in keyboard init #ifdef RGB_MATRIX_ENABLE //NOTE 1: Layer lighting doesn't work in RGB matrix mode - //NOTE 2: VIA lighting tab doesn't work and will crash in RGB matrix mode + //NOTE 2: VIA lighting tab doesn't work and might crash in RGB matrix mode //NOTE 3: VIA layers doesn't seem to work properly in RGB matrix mode //rgb_matrix_enable_noeeprom(); //turn on RGB matrix based on previous state rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE); //set initial RGB matrix mode rgb_matrix_sethsv_noeeprom(50, 255, 100); //sets LED to green-yellow #endif #ifdef RGBLIGHT_ENABLE - rgblight_layers = my_rgb_layers;// Enable the LED layers + //rgblight_layers = my_rgb_layers;// Enable the LED layers rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 layer_move(0); //start on layer 0 to get the lighting activated #endif @@ -335,21 +317,6 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(3, layer_state_cmp(state, 3)); rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - /*static uint16_t underglow_brightness = 140; //This code can be used to have edge and underglow LEDs selectively brighter - static uint16_t perkey_brightness = 80; - static uint16_t lastrow_brightness = 50; //for less shine-through at case edges (brighter is okay for FR4 plate) - static uint16_t current_hue = 0; //hue calculated to be used - static uint16_t layer0_huestart = 56; //hue gradient starting colour - green/blue - static uint16_t layer0_hueincrement = 2; //hue gradient colour increment - static uint16_t layer1_huestart = 15; //hue gradient starting colour - orange/green - static uint16_t layer1_hueincrement = 2; //hue gradient colour increment - static uint16_t layer2_huestart = 220; //hue gradient starting colour - magenta/orange (this layer is for photoshop) - static uint16_t layer2_hueincrement = 2; //hue gradient colour increment - static uint16_t layer3_huestart = 135; //hue gradient starting colour - blue/purple - static uint16_t layer3_hueincrement = 2; //hue gradient colour increment - static uint16_t layer4_huestart = 30; //hue gradient starting colour - orange/red - static uint16_t layer4_hueincrement = 1; //hue gradient colour increment - */ // This is what the LED layout is. // 1, 0, // 3, 2, @@ -362,83 +329,18 @@ layer_state_t layer_state_set_user(layer_state_t state) { switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer0_hueincrement+layer0_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ + //You can selectively decrease certain LEDs if you are have a clear acrylic case and the shine-through bothers you. Rgblight_sethsv_at() can be used here for those LEDs (0, 2, 4, 14, and 23). Otherwise some black tape on the acrylic plate or foam underneath the FR4 will do the trick. break; case 1: rgblight_sethsv_noeeprom(5,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer1_hueincrement+layer1_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ - break; case 2: rgblight_sethsv_noeeprom(128,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer2_hueincrement+layer2_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ break; case 3: rgblight_sethsv_noeeprom(215,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer3_hueincrement+layer3_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ break; case 4: rgblight_sethsv_noeeprom(15,255,100); - /*for (uint8_t i = 0; i < RGBLED_NUM; i++){ //This code can be used to have edge and underglow LEDs selectively brighter - current_hue=i*layer4_hueincrement+layer4_huestart; //Determine the calculated hue - if(current_hue>255){current_hue=current_hue-255;}; //Roll over max hue of 256 - if (i == 1 || i == 3 || i == 9 || i == 18 || i == 25 || i == 27) { - rgblight_sethsv_at(current_hue,255,underglow_brightness,i); - } else if (i == 0 || i == 2 || i == 4 || i == 14 || i == 23) { //make right side of the numpad underglow darker - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else if (i == 26 || i == 24 || i == 19 || i ==10) { //make per key end LEDs lighter to reduce glare - rgblight_sethsv_at(current_hue,255,lastrow_brightness,i); - } else { - rgblight_sethsv_at(current_hue,255,perkey_brightness,i); - }; - };*/ break; } return state; diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json index 6671cee90952..bdebf13b15c1 100644 --- a/keyboards/solartempest/ps17/ps17 VIA layout.json +++ b/keyboards/solartempest/ps17/ps17 VIA layout.json @@ -63,19 +63,19 @@ "TO(0)", "KC_WWW_REFRESH", "KC_WWW_HOME", - "C(S(KC_B))", + "C(S(KC_H))", "C(S(KC_TAB))", "KC_UP", "C(KC_TAB)", - "USER04", + "KC_CAPS", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NO", "USER05", - "KC_TRNS", - "KC_SLCK", "KC_NLCK", + "KC_SLCK", + "USER04", "KC_F13", "KC_NO", "KC_F14", diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index ee4f5cf5db02..de3de60dfe06 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -1,1549 +1,1531 @@ -:100000000C94BD030C9404040C9404040C94040498 -:100010000C9404040C9404040C9404040C94040440 -:100020000C9404040C9404040C9477270C94332748 -:100030000C9472280C9404040C9404040C9404048E -:100040000C9404040C9404040C9404040C94040410 -:100050000C9404040C944E280C9404040C94040492 -:100060000C9404040C9404040C9404040C940404F0 -:100070000C9404040C9404040C9404040C940404E0 -:100080000C9404040C9404040C9404040C940404D0 -:100090000C9404040C9404040C9404040C940404C0 -:1000A0000C9404040C9404040C94040400000FFF4A -:1000B00078FF000000000000D7FF78FF000000007C -:1000C000000080FF64FF00000000000005FF78FFD3 -:1000D0000000000000005FFF5AFF00000000580011 -:1000E0006000000058005E00000058005D00000045 -:1000F00058005C00000057006000000057005F00DF -:10010000000005010902A10185020901A1000509FC -:1001100019012908150025019508750181020501BD -:10012000093009311581257F950275088106093846 -:100130001581257F950175088106050C0A38021581 -:1001400081257F950175088106C0C005010980A140 -:1001500001850319012AB700150126B7009501751D -:10016000108100C0050C0901A101850419012AA014 -:1001700002150126A002950175108100C005010934 -:1001800006A1018505050719E029E7150025019558 -:1001900008750181020507190029EF150025019551 -:1001A000F075018102050819012905950575019170 -:1001B00002950175039101C00660FF0961A1010963 -:1001C00062150026FF00952075088102096315005D -:1001D00026FF00952075089102C005010906A101BE -:1001E000050719E029E71500250195087501810229 -:1001F0009501750881010507190029FF150026FFE3 -:1002000000950675088100050819012905950575F1 -:10021000019102950175039101C0000000000000EA -:1002200000000000000000000000000000000000CE -:1002300000000000000000000000000000007E0F31 -:1002400000D4FFFFFFC7000000780000000000009E -:1002500000002A2B28000000000000000000000021 -:10026000000000000029000000002C1E3420212284 -:1002700024342627252E362D3738271E1F202122ED -:10028000232425263333362E37381F040506070866 -:10029000090A0B0C0D0E0F10111213141516171856 -:1002A000191A1B1C1D2F3130232D35040506070894 -:1002B000090A0B0C0D0E0F10111213141516171836 -:1002C000191A1B1C1D2F3130354CD400CA00C00038 -:1002D000B600AC00000000047F3F1F64321464329B -:1002E00014783C1E1E140A050001010101010101E0 -:1002F00001010202020202020202020303030303DB -:1003000003030304040404040404050505050506A9 -:100310000606060607070707070808080809090967 -:10032000090A0A0A0B0B0B0C0C0C0D0D0D0E0E0E10 -:100330000F0F0F10101111111212131314141515A1 -:1003400016161717181819191A1A1B1B1C1D1D1E13 -:100350001E1F202021222223242425262627282967 -:10036000292A2B2C2D2D2E2F303132323334353695 -:100370003738393A3B3C3D3E3F4041424344454695 -:100380004748494A4C4D4E4F505153545556585971 -:100390005A5B5D5E5F616264656668696B6C6D6F18 -:1003A0007072737577787A7B7D7E8082838587888B -:1003B0008A8C8E8F91939596989A9C9EA0A2A3A5C5 -:1003C000A7A9ABADAFB1B3B5B7BABCBEC0C2C4C6C6 -:1003D000C9CBCDCFD1D4D6D8DBDDDFE2E4E7E9EB82 -:1003E000EEF0F3F5F8FAFDFFFFAA7F554008070687 -:1003F000050D0C0B0A11100F161514131A181B12E9 -:100400000903010002040E17192223252628292A90 -:100410002C2D2F3032333536383A3B3D3E40424367 -:100420004547494A4C4E5051535557595A5C5E60A6 -:1004300062646668696B6D6F71737577797B7D7FB8 -:1004400081838587898A8C8E90929496989A9C9EB7 -:100450009FA1A3A5A7A8AAACAEAFB1B3B4B6B8B9D3 -:10046000BBBCBEBFC1C2C3C5C6C7C9CACBCCCDCE3B -:10047000D0D1D2D2D3D4D5D6D7D7D8D9D9DADADB1E -:10048000DBDBDCDCDCDCDCDDDDDDDDDCDCDCDCDCAA -:10049000DBDBDBDADAD9D9D8D7D7D6D5D4D3D2D2E9 -:1004A000D1D0CECDCCCBCAC9C7C6C5C3C2C1BFBED1 -:1004B000BCBBB9B8B6B4B3B1AFAEACAAA8A7A5A33C -:1004C000A19F9E9C9A98969492908E8C8A898785FB -:1004D00083817F7D7B79777573716F6D6B696866DA -:1004E0006462605E5C5A5957555351504E4C4A49AC -:1004F00047454342403E3D3B3A3836353332302F54 -:100500002D2C2A2928262523224E007F004B00006F -:100510000001515400550056005F00600061005713 -:10052000005C005D005E00000059005A005B00584E -:100530000062000000630000004F00010050000056 -:10054000000100AD002C0053001450025303532A45 -:100550000001000100010000000100010001000095 -:100560005C005C000001000000300001002F000072 -:100570000010500500170011030D00160007002D94 -:1005800001060119011000000011011D03E10057CF -:10059000012C000000E2000000805F0100815F008C -:1005A000001050B9004A0017012B0352002B011A0A -:1005B00001500051004F000000B6002C00B7002889 -:1005C000004E0000004B000000805F0100815F00D2 -:1005D0000010500100010001000100520001000163 -:1005E00000500051004F00000010033D080100536F -:1005F0000068000000690000000100010001000027 -:1006000000010001000100010001000100010001E2 -:1006100000010001000100000001000100010001D3 -:1006200000010000000100000001000100010000C5 -:1006300000010001000100010001000100010001B2 -:1006400000010001000100000001000100010001A3 -:100650000001000000010000000100010001000095 -:100660000001000100010001000100010001000182 -:100670000001000100010000000100010001000173 -:100680000001000000010000000100010001000065 -:100690000001000100010001000100010001000152 -:1006A0000001000100010000000100010001000143 -:1006B0000001000000010000000100010001000035 -:1006C0000001000100010001000100010001000122 -:1006D0000001000100010000000100010001000113 -:1006E00000010000000100000009025B000301009E -:1006F000A0FA090400000103010100092111010011 -:10070000012240000705810308000A0904010002D4 -:1007100003000000092111010001222200070582C7 -:100720000320000107050303200001090402000162 -:100730000300000009211101000122B60007058411 -:100740000320000A12010002000000084B411500BE -:100750000200010200010A0350005300310037007B -:1007600000001203410054004C0041004E005400B0 -:100770004900530000000403090411241FBECFEFF9 -:10078000DAE0DEBFCDBF04B603FE27C0809196033A -:1007900090919703A0919803B09199038730904B63 -:1007A000A740B04BD1F41092960310929703109289 -:1007B00098031092990314BE84B7877F84BF0FB645 -:1007C000F894A895809160008861809360001092F1 -:1007D00060000FBEE0E0F8E3099511E0A0E0B1E0B1 -:1007E000E4EEFFE502C005900D92A43CB107D9F7F5 -:1007F00023E0A4ECB1E001C01D92A639B207E1F7F5 -:100800000E9499280C94B92F0C940000E8EDF0E0B8 -:1008100080818E7F80831092E2001092DA00109225 -:10082000E100A0EEB0E08C9181608C9380818F77A5 -:10083000808319BCA7EDB0E08C918E7F8C93808172 -:100840008F7E80831092090308952091E4003091F7 -:10085000E50095E6A9012091EC00822F817020FF30 -:1008600006C08091E80080FF06C080E008952091D6 -:10087000E80022FD1AC080912E03882389F085307C -:1008800089F08091EB0085FD0FC02091E40030914C -:10089000E50042175307F9F29150E1F684E008951C -:1008A00082E0089583E0089581E00895EF92FF9239 -:1008B0000F931F93CF937C018B010E942504C82FB7 -:1008C000811117C08091E80085FD0BC08091E80080 -:1008D0008E778093E8000E942504882399F3C82F1F -:1008E00008C0F70181917F018093F1000150110947 -:1008F00049F78C2FCF911F910F91FF90EF900895A2 -:100900008091300387FF13C08091E80082FF06C00A -:100910008091E8008B778093E80004C080912E03DB -:100920008111F2CF089580912E038823D9F380910D -:10093000E80080FFF8CF8091E8008E77ECCF982F09 -:100940009093E900242F762F50E0891731F07091B1 -:10095000EC002091ED005091F00021FD07C09F5F59 -:10096000973071F78093E90081E008953091EB00B2 -:100970003E7F3093EB003091ED003D7F3093ED00F2 -:100980003091EB0031603093EB007093EC002093DA -:10099000ED005093F0002091EE0027FDE0CF80E0C5 -:1009A0000895CF92DF92EF92FF920F931F93CF9310 -:1009B000DF93C8EDD0E088818F7E8883E7EDF0E09B -:1009C00080818160808384E082BF81E0809309031D -:1009D00088818E7F888302EE10E0F80110821092E9 -:1009E000DA0081EEC82ED12CF601108288818F7733 -:1009F000888388818068888388818F7D888319BCFB -:100A000010922E0310922F0310922D0310922C039C -:100A100090EEE92EF12CF70180818B7F8083888115 -:100A20008160888342E060E080E00E949F04F601DC -:100A300080818E7F8083F8018081816080838081C6 -:100A400088608083F70180818E7F808388818061C8 -:100A50008883DF91CF911F910F91FF90EF90DF90EE -:100A6000CF900895FC01809136039091370386174B -:100A70009707A0F06115710529F49091E8009E7721 -:100A80009093E80090E06115710551F4911108C050 -:100A90008091E80082FF34C080E00895BC01F2CF6D -:100AA00080912E038823C1F18530C1F18091E80047 -:100AB00083FD30C08091E80082FDEACF8091E8009C -:100AC00080FFE1CF8091F3002091F200382F611573 -:100AD000710519F02830310558F091E028303105C2 -:100AE00009F090E02091E8002E772093E800CBCF2A -:100AF00081918093F100615071092F5F3F4FE7CFE3 -:100B000080912E03882341F0853041F08091E800E8 -:100B100083FFBECF81E0089582E0089583E00895C9 -:100B200080910B0308959C014FB7F89480910003C6 -:100B300090910103A0910203B09103034FBF821B68 -:100B4000930B08952FB7F8948091000390910103BF -:100B5000A0910203B09103032FBF08952091FD02DD -:100B60003091FE022817390771F09093FE028093AE -:100B7000FD02E091FB02F091FC02309721F000842D -:100B8000F185E02D099408952091F9023091FA023F -:100B90002817390771F09093FA028093F902E091D7 -:100BA000FB02F091FC02309721F00680F781E02DE6 -:100BB00009940895E091FB02F091FC02309721F036 -:100BC0000190F081E02D099480E00895DC016091AE -:100BD000F5028091F602962F891301C00895292FFE -:100BE00030E0F901EE0FFF1FE351FD4F40815181CD -:100BF0004A175B07A1F487E08A9FA0018B9F500DE5 -:100C00001124485E5E4F81E0FA0184839613E6CF9B -:100C10002F5F3F4F237033272093F50208952F5FF6 -:100C20003F4F922F9370D8CF10928A021092890270 -:100C3000E8E1F1E08581811102C0148216823796C5 -:100C400081E0E234F807B1F70895FA01811101C09B -:100C5000FB010994089580918E03982F9E7F61F483 -:100C60008170826080938E0380919103853B18F0A0 -:100C700084EB8093910308958A34B0F38170886483 -:100C8000F1CFAF92BF92DF92EF92FF920F931F933B -:100C9000CF93DF93182F062FE901453B08F044EB73 -:100CA000E42FF0E0E851FD4F011110C0E4915E2FF8 -:100CB0004E2F4983E8835A83DF91CF911F910F9183 -:100CC000FF90EF90DF90BF90AF900895202F30E01D -:100CD0004491D42EE42EF12C56E0159FC00111242E -:100CE000EFEFF0E0BF010E94BA2E812F90E0880F55 -:100CF000991F55E5569FD001579FB00D11248A1BAF -:100D00009B0B982F990F890F5F01A21AB30AAE9C13 -:100D1000D001AF9CB00DBE9CB00D11245B2F089F7D -:100D200080011124012F11275F01A01AB10AAE9C86 -:100D30008001AF9C100DBE9C100D11245F01A81AFC -:100D4000B108A29EC001A39E900DB29E900D1124E9 -:100D5000892F9927E81BF90BEE9DC001EF9D900D9F -:100D6000FE9D900D1124E92F62307105A1F050F421 -:100D70006115710509F49DCF6130710581F0EB2F8C -:100D8000512F97CF6430710569F080F0663071059E -:100D900009F48FCFF4CFE42F4B2F592F8ACFE42FB4 -:100DA000412F87CFEB2F542F492F83CF4B2F5D2D12 -:100DB000E12F7FCF0E94A2059C0190917602809145 -:100DC0007702982B21F03093730220937202909156 -:100DD000780280917902982B21F030937102209350 -:100DE0007002E091FB02F091FC02309749F082E042 -:100DF000809374020480F581E02D84E792E00994E9 -:100E0000089540917602803F59F48091770287FFE0 -:100E10000DC01092770241110BC010926E0208C0F3 -:100E2000813F81F48091770218169CF3442381F06E -:100E30008091780290917902892B09F05AC0109222 -:100E40006D020895823F49F447FFF0CF1092760279 -:100E5000809177028111ECCFE0CF833F19F4141613 -:100E6000ACF3E4CF90917802893F29F41916F4F697 -:100E700010927802DBCF8A3F19F497FFD7CFF8CFD3 -:100E8000909179028B3F29F497FFD0CF109279028D -:100E9000CDCF8C3F19F41916CCF3C8CF9CE0980F36 -:100EA000953090F4845F990B21E030E0B90102C0E5 -:100EB000660F771F8A95E2F7CB01809590917502B6 -:100EC000892380937502B2CF8D3F31F480916F02F8 -:100ED0008E7F80936F02AACF8E3F21F480916F02A4 -:100EE0008D7FF7CF8F3F09F0A1CF80916F028B7F6D -:100EF000F0CF089580916F0280FD16C081FD16C06D -:100F000082FD16C080916D028823A1F0883280F4A2 -:100F100028E0829FC001112468E270E00E94CE2E7A -:100F2000862F672B39F0089582E0089584E00895B4 -:100F300088E0089581E0089580916F0280FD14C0DB -:100F400081FD14C082FD16C080916E02882381F05D -:100F5000843180F422E3829FC001112464E170E0B7 -:100F60000E94CE2E862F08958CE0089589E1089581 -:100F700085E0089582E30895803F31F40E949C0744 -:100F80008195809377020895813F19F40E949C0710 -:100F9000F8CF823F31F40E949C07819580937602BE -:100FA0000895833F19F40E949C07F8CF893F29F4E4 -:100FB0000E947A078093780208958A3F21F40E9464 -:100FC0007A078195F7CF8B3F31F40E947A0781959C -:100FD0008093790208958C3F19F40E947A07F8CF24 -:100FE0009CE0980F953070F4845F990B21E030E01D -:100FF00001C0220F8A95EAF780917502822B8093B7 -:10100000750208958D3F31F480916F028160809365 -:101010006F0208958E3F21F480916F028260F7CFB6 -:101020008F3FB9F780916F028460F1CF80E008951F -:10103000F894E82FE295EF70F0E031A1282F2F709F -:1010400081E090E001C0880F2A95EAF7982F9095EB -:10105000932391A392A1892B82A3789408959091D0 -:10106000040392FF06C0282F28712830F9F4877FE7 -:10107000846093FF06C0282F28712831F1F4877E01 -:1010800084612091050320FF06C0382F3871383065 -:10109000D9F4877F816021FF06C0282F287128316D -:1010A000D1F4877E816194FD877E0895282F247175 -:1010B0002430F9F68B7F8860DCCF282F247124310F -:1010C00001F78B7E8861DDCF382F3171313019F710 -:1010D0008E7F8860E0CF282F2171213121F78E7E0D -:1010E0008861E1CFCF93DF93EC0182389105A9F1BC -:1010F000D8F58133910509F496C048F589329105F8 -:1011000009F48AC08A9709F495C0C11521E5D20770 -:1011100008F0BCC0C11530E5D30708F014C1C83EC3 -:10112000D10508F09CC0C03ED10560F5C83AD10594 -:1011300008F087C0C53AD10508F0FDC0C130D1051F -:1011400009F12097F9F0C430D105E0F440C08533AF -:10115000910509F45AC0C997C1F6809104038370C0 -:1011600089F0C0EED0E00EC0833E910599F170F495 -:10117000803E910501F1823E910539F6809104038C -:1011800082FD21C0CE01DF91CF910895863E910569 -:1011900061F1873E910571F1843E910509F0B5CF6B -:1011A0008091050381FFEECF80910403C7EED0E06C -:1011B00084FD0DC0E7CF8091040380FD12C19091A2 -:1011C000050390FFDFCFC3EED0E084FFDBCFD0E09C -:1011D000C0E0D8CF8091040382FD06C19091050341 -:1011E00090FDBFCF84FFCECFF2CF8091040383FD6B -:1011F000DDCFC8CF8091040383FDF9C09091050332 -:1012000091FFF0CFC4EED0E0BDCF8091040385FF05 -:10121000B9CFC9E2D0E0B6CF8091040385FFB2CF49 -:10122000C5E3D0E0AFCF8091040386FFABCFCAE225 -:10123000D0E0A8CF8091040386FFA4CFC1E3D0E023 -:10124000A1CFCF3BD10518F6C85AD0E0CC0FDD1F97 -:10125000C95BDE4F0990D881C02DD46493CFC115EE -:1012600040E2D40758F4C11581E0D80708F08ACFCE -:10127000C03FD10508F4ABCFD06584CFC11590E451 -:10128000D90708F4A4CFDF70D06A7CCFC11525E55B -:10129000D20700F5C11534E5D30708F08AC0C1159F -:1012A00043E5D40708F071C0C11582E5D80708F4FA -:1012B00067C0CE018370992721E030E002C0220F81 -:1012C000331F8A95E2F7C695C69580E2C89FE00174 -:1012D000112452C0C11599E5D907A8F4C11528E514 -:1012E000D20708F06BC0C11536E5D30708F06FCF01 -:1012F0008C2F0E942F08C82FD0E0DC2FCC27CC27C2 -:10130000DF71D0623FCFC1154AE5D40708F45BC056 -:10131000CE0190568115904208F059CF8D2F8F71D4 -:101320000E942F0890E0982F882788279F719C01A2 -:101330002C2BE901E6CFC55AD0E0CC5BDE4FC8814B -:10134000D0E0D0641FCFCE01E4E096958795EA9572 -:10135000E1F783702C2F26952695237040E2249F79 -:1013600090011124382B8C2F8370C1E0D0E002C093 -:10137000CC0FDD1F8A95E2F7C22BD32BDC6802CF9E -:10138000DC2FCC27C16FD06AFDCECE0183709927A8 -:1013900021E030E002C0220F331F8A95E2F7C695A4 -:1013A000C69590E2C99FE0011124C22BD32BDA68C5 -:1013B000E9CEDC2FCC27C46FD06AE4CEDC2FCC275B -:1013C000C06FD06ADFCE8C2F8F700E942F0834E060 -:1013D000D695C7953A95E1F7CF709C2FEC01D0696F -:1013E000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EEB9 -:1013F000D0E0C8CE80914402811110924402089539 -:101400008091430290914202892B90914102892B55 -:101410008093C601909144029923A1F0892B809377 -:10142000C60180914301882341F18091040387FF25 -:1014300024C08EE1E8ECF1E090E0815000F59111DC -:101440000E94FA09E091FB02F091FC023097E1F072 -:1014500080914301882359F08091040387FF07C0DE -:101460008091C6018093C70185E08093C601028008 -:10147000F381E02D86EC91E0099486E0DBCF2191A9 -:101480002223D9F29F5FD9CF0895909143019923E8 -:10149000D1F09091040397FF16C0E82FE695E695EA -:1014A000E695EE31E0F4F0E0EA53FE4F282F277086 -:1014B00081E090E001C0880F2A95EAF7809592813B -:1014C000892382830895E8ECF1E09191891303C0A8 -:1014D000DF0111971C9291E0EE3CF907B1F70895F6 -:1014E000909143019923C1F09091040397FF14C098 -:1014F000E82FE695E695E695EE31F8F4F0E0EA534C -:10150000FE4F877021E030E001C0220F8A95EAF794 -:101510008281822B82830895A8ECB1E0EFEF90E006 -:101520002D91821751F0EF3F19F4211101C0E92FDD -:101530009F5F9630A9F7EF3F09F408950E2E000C37 -:10154000FF0BEA53FE4FE6CF80913F029091FE01E0 -:10155000981301C008958F5F8770FACF990F990F84 -:10156000890F982F977086958695869524E0829F9F -:10157000F0011124E651FE4F50E040E080E021915F -:1015800030E0092E02C0369527950A94E2F72170C3 -:101590003327042E01C0220F0A94EAF7822B4F5FF3 -:1015A0005F4F4430510559F70895990F990F890FEE -:1015B000982F977041E001C0440F9A95EAF78695FD -:1015C0008695869594E0899FF0011124E651FE4F9F -:1015D00030E020E070E05191DF011197CB01022E45 -:1015E00002C0969587950A94E2F7817081958527C8 -:1015F000842385278C932F5F3F4F2430310559F783 -:10160000089590E080E00E94C40590E080E00E9490 -:10161000AE0510924202109241020E94000A86E03A -:10162000E4E7F2E0DF011D928A95E9F710926E027D -:1016300010926D0210926F020C94DA06909346029B -:10164000809345020C94010B882341F08095909182 -:1016500042028923809342020C94000A0895882351 -:1016600039F090914202982B909342020C94000A18 -:101670000895882341F080959091430289238093B7 -:1016800043020C94000A0895882339F09091430294 -:10169000982B909343020C94000A0895882309F430 -:1016A00059C0823871F40E94DA0581FF53C089E382 -:1016B0000E94700A0E94000A89E30E94450A0C9465 -:1016C000000A833859F40E94DA0580FF43C083E59D -:1016D0000E94700A0E94000A83E5EFCF843859F413 -:1016E0000E94DA0582FF36C087E40E94700A0E94D9 -:1016F000000A87E4E2CF9CEF980F913AF0F290E273 -:10170000980F983088F4877021E030E0A90102C07A -:10171000440F551F8A95E2F7CA01809590914302C4 -:10172000892380934302CBCF9BE5980F933020F41D -:1017300090E080E00C94C40598E5980F973120F470 -:1017400090E080E00C94AE05803F20F00E940107FD -:101750000C94DA060895809580FF08C0589A81FF9E -:1017600007C05D9A82FF06C05C9A08955898F7CF2B -:101770005D98F8CF5C98089590912E03943029F5E8 -:101780008093060370930803609307039093E90026 -:101790008FEF9091E800815095FD06C095ED9A95E8 -:1017A000F1F700008111F5CF8091E80085FF0DC0B1 -:1017B00050E040E063E070E086E093E00E94560471 -:1017C0008091E8008E778093E8000895BC0184E062 -:1017D0000C94BC0BBC0183E00C94BC0B9C0184E01A -:1017E0008093E9009FEF8091E800915085FD06C04D -:1017F00085ED8A95F1F700009111F5CF8091E80011 -:1018000085FF0CC050E040E066E070E0C9010E9436 -:1018100056048091E8008E778093E8000895CF9376 -:10182000DF93EC01809143018823B1F1809104039F -:1018300087FF32C060E284E08093E9008FEF9091EF -:10184000E800815095FD06C095ED9A95F1F70000EE -:101850008111F5CF8091E80085FF1BC08091430185 -:1018600070E050E040E0811104C050E040E068E0EA -:1018700070E0CE010E9456048091E8008E7780933C -:10188000E80080E2FE01ACE0B3E001900D928A95A1 -:10189000E1F7DF91CF91089568E081E0CDCF81E05D -:1018A0008093E00080E28093D8001092C9008FE11D -:1018B0009EE40197F1F700C0000087E090EBDC01A7 -:1018C0008093960390939703A0939803B093990302 -:1018D00088E19CE00FB6F894A895809360000FBE55 -:1018E00090936000FFCFCF93C82F882309F4AEC038 -:1018F0008238C1F40E94DA0581FDA8C089E30E9404 -:10190000700A0E94000A2FEF81EE94E0215080407F -:101910009040E1F700C0000089E30E94450ACF91A2 -:101920000C94000A8338A1F40E94DA0580FD8EC071 -:1019300083E50E94700A0E94000A2FEF81EE94E076 -:10194000215080409040E1F700C0000083E5E5CFE2 -:101950008438A1F40E94DA0582FD78C087E40E94F1 -:10196000700A0E94000A2FEF81EE94E0215080401F -:101970009040E1F700C0000087E4CFCF8CEF8C0FE0 -:10198000813A88F580914301882301F18091040315 -:1019900087FF1CC0EC2FE695E695E695F0E0EA534C -:1019A000FE4F828190E04C2F477021E030E002C072 -:1019B000220F331F4A95E2F782239323892B79F074 -:1019C0008C2F0E94450A0E94000A09C0E8ECF1E051 -:1019D0008191C817A9F321E0EE3CF207C9F78C2FDB -:1019E0000E94700A9CCF80E28C0F883068F4C77028 -:1019F00021E030E001C0220FCA95EAF7809143024E -:101A0000822B809343028BCFEBE5EC0FE33040F465 -:101A1000F0E0EC5BFE4F808190E0CF910C94C40528 -:101A2000E8E5EC0FE73150F4F0E0EE0FFF1FE95B63 -:101A3000FE4F80819181CF910C94AE05C03F30F074 -:101A40008C2F0E94BC07CF910C94DA06CF91089599 -:101A50001F93CF93DF93182FD0E0C0E0893311F4A8 -:101A6000C0E5D0E0812F0E94730C209731F4812FC4 -:101A7000DF91CF911F910C944E0B8FE99FE001975E -:101A8000F1F700C000002197F0CF0F931F93CF9381 -:101A9000DF93C62FD42F022FFC0182818823A1F06F -:101AA000609395030E94A2059093940380939303FF -:101AB000C77081E001C0880FCA95EAF7DF91CF9126 -:101AC0001F910F910C94440B80919503681335C0BE -:101AD00080919303909194030E949305883C910513 -:101AE00060F510E21D0FCD17B9F080E28C0F883041 -:101AF00040F4C77081E001C0880FCA95EAF70E94E0 -:101B0000390B183048F481E09D2F977001C0880F81 -:101B10009A95EAF70E94440B802F0E94280D1830F6 -:101B200098F4D77081E001C0880FDA95EAF7DF9169 -:101B3000CF911F910F910C94390BC77081E001C0B8 -:101B4000880FCA95EAF7F3CFDF91CF911F910F91DC -:101B50000895DF92EF92FF920F931F93CF93DF933D -:101B6000E82FF0E0E65BFD4FD490282F26952695D0 -:101B7000269530E0F901E65CFD4F0491877010E096 -:101B8000082E02C0159507950A94E2F701701127F7 -:101B9000F901E65DFD4FE490F12C082E02C0F594AA -:101BA000E7940A94E2F791E0E922FF24F901E65E66 -:101BB000FD4FC491D0E002C0D595C7958A95E2F754 -:101BC000C170DD270115110519F081EE0E94730C1B -:101BD000E114F10419F086EE0E94730C8D2D0E9421 -:101BE000280DEF2819F086EE0E944E0B012B19F0FC -:101BF00081EE0E944E0BCD2B51F08CE2DF91CF9104 -:101C00001F910F91FF90EF90DF900C94280DDF91C2 -:101C1000CF911F910F91FF90EF90DF900895CF9398 -:101C2000DF93C7E0D2E060E0CE010E94852F2196CD -:101C3000C11584E0D807B9F7DF91CF9108956F926D -:101C40007F928F929F92AF92BF92CF92DF92EF924C -:101C5000FF920F931F93CF93DF9389E0C82E85E007 -:101C6000D82E0FE510E0E801E09736011CC0F50121 -:101C700085909490692DC7010E94852F682DC7011A -:101C800001960E94852F82E0A80EB11C82E0E80E2A -:101C9000F11CCE15DF0559F788E0680E711C2896F7 -:101CA0000C171D0731F07E0188E0E81AF108530196 -:101CB000DECF005D1F4F80E3C80ED11C0F3382E0E2 -:101CC000180789F6DF91CF911F910F91FF90EF9048 -:101CD000DF90CF90BF90AF909F908F907F906F904C -:101CE0000895CF93C82F6FEF811161E283E290E0F6 -:101CF0000E94852F6FEFC11169E084E290E00E949D -:101D0000852F6FEFC11167E285E290E0CF910C94CF -:101D1000852F80E00E94710E60E086E290E00E94D4 -:101D2000852F0E941F0E0E940F0E81E00C94710EF1 -:101D3000CF93C0910503C2FB992790F9981781F0C2 -:101D400080FBC2F9C09305036091040384E090E036 -:101D50000E94852F6C2F82E290E0CF910C94852F0A -:101D6000CF9108950F931F93CF93DF9328E0629F45 -:101D7000E001112450E0440F551FC40FD51F30E37C -:101D8000839FC00DD11D1124CE0187960E94712F13 -:101D9000082F10E0102F0027CE0188960E94712F87 -:101DA0009801282BC901DF91CF911F910F910895C0 -:101DB000462F8A3038F4763028F4643018F4672FD0 -:101DC0000C94B20E90E080E00895BF92CF92DF9223 -:101DD000EF92FF920F931F93CF93DF937C010091BB -:101DE0003803109139038091450290914602082BE7 -:101DF000192BCFE0D0E0CC24C394D12CBC2EC6014B -:101E00000C2E02C0880F991F0A94E2F780239123B9 -:101E1000892B71F4219790F7B12C8B2DDF91CF9105 -:101E20001F910F91FF90EF90DF90CF90BF9008959A -:101E3000B7018C2F0E94D80E0E947208019751F3AF -:101E4000ECCFCF93DF93EC010E94E50EBE010E9420 -:101E5000D80EDF91CF910C947208FC018681978196 -:101E6000009779F00E947208292F2F7092959F7029 -:101E700092509E30A0F4E92FF0E0E554F04D0C9420 -:101E8000042F808191810E94210FEECF803F19F0B5 -:101E900020F4883E20F481E00895843FE1F380E05F -:101EA0000895883EC0F3813FD1F7F5CF822F869504 -:101EB0008695869508951F93CF93DF9300D000D029 -:101EC0000F92CDB7DEB7FC01268137812115310590 -:101ED00041F525E0DE01119601900D922A95E1F77A -:101EE000FC01228189819A812223B9F06623A9F01D -:101EF0000E94E50E182F682F89819A810E94D50AC9 -:101F000069817A81812F0F900F900F900F900F9021 -:101F1000DF91CF911F910C94D80E0E94AE0A182F1A -:101F2000EFCFC9010F900F900F900F900F90DF919E -:101F3000CF911F91089583E290E00E94712F81322A -:101F400089F484E290E00E94712F893059F485E28F -:101F500090E00E94712F91E0873209F090E0892F84 -:101F60008170089580E0FCCFCF9384E090E00E94E0 -:101F7000712FC82F82E290E00E94712F982F8C2F32 -:101F8000CF91089560918E03669570E04BE050E02C -:101F90008AE091E00E94572F892B19F481E0809309 -:101FA00084020E94A20590937E0280937D02089590 -:101FB0005F926F927F928F929F92AF92BF92CF92D9 -:101FC000DF92EF92FF920F931F93CF93DF93CDB7E2 -:101FD000DEB7C455D1090FB6F894DEBF0FBECDBF32 -:101FE00080918E0380FD0AC0EAE3F3E01182108243 -:101FF0001282339623E0EE38F207C1F780907B021D -:1020000090907C028114910409F459C080917A0265 -:10201000811155C0D12CC12C66246394712C13E01E -:10202000512E8091850293010C2C01C0220F0A943D -:10203000EAF7822309F43BC0F601EE0FFF1FE80D1B -:10204000F91DE590F490E114F104C9F145E050E088 -:10205000B701CE0101960E944E2F09810F3F39F141 -:102060008A81800F9927991F8D31910514F08CE199 -:1020700090E05C01AA0CBB1C8A0D9B1DFC01E65C78 -:10208000FC4F5F01059D80011124065C1C4F0A1561 -:102090001B0520F0F5E0EF0EF11CD8CF98014D8123 -:1020A0006C818B810E9441060D5F1F4FF0CF2FEF97 -:1020B000C21AD20A38E0C316D10409F0B2CF7DEEBD -:1020C000A72E73E0B72EDE011196AE014B5A5F4F7B -:1020D0001A2F7B2FF5018491282F30E0C901880F3A -:1020E000991F820F931F865C9C4FFC01C080D1809A -:1020F000E280CD92DD92ED92FFEFAF1ABF0AA417F6 -:10210000B50741F7279A35B13F7725B120686FB7FA -:10211000F894812F972FFC017191CF01E8E025B948 -:10212000000000C077FF35B9770F000000C000C085 -:1021300000C035B900C0EA9591F78417950759F7A3 -:102140006FBF8FE594E00197F1F700C00000CC5A13 -:10215000DF4F0FB6F894DEBF0FBECDBFDF91CF913A -:102160001F910F91FF90EF90DF90CF90BF90AF90B5 -:102170009F908F907F906F905F9008951F93CF9363 -:10218000DF9300D00F92CDB7DEB7162F90918E035C -:1021900090FF18C09E012F5F3F4F48E76FEF0E94EE -:1021A00041068B819981612F70E0FB01EE0FFF1FCB -:1021B000E60FF71FE65CFC4F2A8121839083828320 -:1021C0000E94D80F0F900F900F90DF91CF911F9129 -:1021D0000895EF92FF920F931F93CF93DF938C019B -:1021E000CAE3D3E0F12CE12CF801948160919003D3 -:1021F00080918F03FEE0EF16F104FCF49923F9F0CF -:102200009E01409191030E9441062FEFE21AF20ACB -:1022100023968CE1E816F10439F70E94D80FF801F3 -:10222000848190E00196817099278483DF91CF911A -:102230001F910F91FF90EF900895992309F39E014C -:1022400040E0E1CF8F929F92AF92BF92CF92DF9208 -:10225000EF92FF920F931F93CF93DF93EC014C818A -:10226000042F10E09801D8010E94192F9B01AC01A6 -:102270000E942F2F4B015C01E0E2F0E0E01BF10B2C -:10228000A5E5B0E0AC019B010E942F2F6B017C0102 -:102290009F01DF010E94112F9B01AC010E943A2F88 -:1022A0009B01AC01280D391D4A1D5B1DC701B601FC -:1022B0000E94E22EF22E822F90E039E23F15D8F1F3 -:1022C00043E0249F9001112435952795122F1095F6 -:1022D0009AE3C92E93E0D92E00E085E5E82EEF18A9 -:1022E0008E2D01FD8F2D9601412F609190030E944C -:1022F00041060F5F53E0C50ED11C0C3189F70E94D7 -:10230000D80F9C8181E0992319F0903219F48FEF56 -:102310008093170180911701890F8C83DF91CF91F2 -:102320001F910F91FF90EF90DF90CF90BF90AF90F3 -:102330009F908F90089525E530E0A901481B590B27 -:10234000CA019A01220F331F280F391F37FFBCCF54 -:102350002F5F3F4FB9CF0F931F93CF93DF93CAE304 -:10236000D3E0FE01118210821282339683E0EE38B0 -:10237000F807C1F710E000E080918702082E000CFA -:10238000990B081719078CF180911601082E000C83 -:10239000990B801791074CF19E0140919103609138 -:1023A000900380918F030E9441060F5F1F4F239679 -:1023B0000C31110509F70E94D80F809115019091F9 -:1023C0008702980F9093870220911601280F20937F -:1023D0001601121614F49B311CF08195809315019F -:1023E000DF91CF911F910F910895198218821A825F -:1023F000DCCFBF92CF92DF92EF92FF920F931F93A9 -:10240000CF93DF93FC018281DD24DA9480FD02C04A -:10241000DD24D3940AE313E0D0E0C0E02CE1B22E37 -:10242000F80111821082128294E0E92EF12CC12C65 -:10243000809186028C0D8D310CF43DC06B2D0E9475 -:10244000AC2E892F082E000C990B8C179D0791F448 -:10245000809191038E9DA0018F9D500D1124559563 -:1024600047955595479598016091900380918F030A -:102470000E944106CD0CF1E0EF1AF108C9F6219651 -:102480000D5F1F4FCC31D10559F60E94D80F8091B6 -:10249000860291E0D91215C0811111C08BE18093A1 -:1024A0008602DF91CF911F910F91FF90EF90DF9007 -:1024B000CF90BF90089587FFC5CF845EC3CF815072 -:1024C000EECF90E00196BE010E94CE2EE8CFEF92B3 -:1024D000FF921F93CF93DF93EC018AE3E82E83E012 -:1024E000F82E10E08C819701409191036091900348 -:1024F000810F0E944106175F83E0E80EF11C1C3F2C -:1025000089F70E94D80F9A818C8190FF08C08F5F55 -:102510008C83DF91CF911F91FF90EF9008958150B0 -:10252000F7CF90918E0390FF0CC0EAE3F3E0818334 -:1025300060834283339693E0EE38F907C1F70C9439 -:10254000D80F08950F931F93CF93DF9300D00F926E -:10255000CDB7DEB78C018091880281110AC09E013F -:102560002F5F3F4F44EB6FEF0E9441068A818093BB -:102570008802F8016481613069F08091880240E04E -:10258000662361F040E0623011F44091880280E0FF -:1025900060E004C06091880240E080E00E949112F7 -:1025A000F801848190E0019663E070E00E94CE2EF5 -:1025B00084830F900F900F90DF91CF911F910F9117 -:1025C0000895CF93DF9300D00F92CDB7DEB79091EF -:1025D0008E0390FF0AC09E012F5F3F4F0E9441066D -:1025E0004B8169818A810E9491120F900F900F9008 -:1025F000DF91CF910895CF93DF93EC01EEE8F3E004 -:10260000438162818C810E94E1128C818F5F8C8377 -:10261000DF91CF910895CF93DF93EC01EC81F0E04F -:10262000E75FFB4F4491EEE8F3E0628181810E9415 -:10263000E1128C818F5F8C83DF91CF910895CF92CF -:10264000DF92EF92FF926B017C010E942B06B70193 -:10265000A60188E090E0FF90EF90DF90CF900C947F -:10266000972F5F926F927F928F929F92AF92BF92BD -:10267000CF92DF92EF92FF920F931F93CF93DF934E -:1026800000D00F92CDB7DEB7182F762E042F622E12 -:1026900090918E0390FF29C0E92FE695AE2FB0E010 -:1026A000A157BE4F8C91809383029E7F923081F51B -:1026B0009E012F5F3F4F812F0E9441064B81698110 -:1026C0008A810E94911210938F037092900300935D -:1026D0009103662051F060918E0370918F03809179 -:1026E0009003909191030E941F130F900F900F90F1 -:1026F000DF91CF911F910F91FF90EF90DF90CF90DE -:10270000BF90AF909F908F907F906F905F90089553 -:10271000823019F400919103D6CF863019F41091CC -:102720008F03D1CF8930D9F3893169F6E9518E2FE2 -:102730008170582EE695F0E0E851FC4FA590B490DA -:10274000BB248AE3E82E83E0F82ED12CC12C9CE137 -:10275000892E912CC601B4010E94BA2E812F5110EE -:1027600013C0860F9701402F672D0E944106CA0CA7 -:10277000DB1C83E0E80EF11C8EE8E81683E0F80627 -:1027800049F70E94D80F9FCF861BECCFEEE8F3E00D -:10279000438128E0421B08F440E021E0628181810E -:1027A0000C943113EEE8F3E0438128E0420F08F483 -:1027B0004FEF21E0628181810C943113EEE8F3E068 -:1027C000628128E0621B08F460E021E0438181819E -:1027D0000C943113EEE8F3E0628128E0620F08F414 -:1027E0006FEF21E0438181810C943113EEE8F3E037 -:1027F000818121E04381628188500C943113EEE89D -:10280000F3E0818121E043816281885F0C94311380 -:1028100080919203882319F08150809392036091F4 -:102820008E0370918F0380919003909191030C948B -:102830001F1380919203833018F48F5F809392036B -:1028400060918E0370918F0380919003909191031A -:102850000C941F1390918E0390FF36C091708111DC -:1028600029C0926090938E03662351F060918E038D -:1028700070918F0380919003909191030E941F1398 -:1028800060918E03669570E04BE050E08AE091E045 -:102890000E94572F892BA9F01092840281E0809327 -:1028A000800220E0409191036091900380918F031A -:1028B0000C943113853210F09864D4CF880F982B84 -:1028C000D1CF0E94C20FEACF089521E030E0A901E4 -:1028D00002C0440F551F8A95E2F7CA012091850274 -:1028E000662399F0822B8093850280918402811166 -:1028F00006C080918E0360E086950E942A14809124 -:102900008E0380FD05C00C94D80F80958223EBCFF9 -:1029100008950F931F93CF93DF93EC0161E000972D -:1029200009F0682F617080E00E94651460E02097D4 -:1029300021F0BE0176956795617081E00E94651473 -:1029400060E0209731F0BE017695679576956795A2 -:10295000617082E00E94651460E0209739F0BE014A -:1029600013E0769567951A95E1F7617083E00E9410 -:10297000651460E0209739F0BE01B4E07695679564 -:10298000BA95E1F7617084E00E946514AE0170E0D1 -:1029900060E0BB27A72F962F852F0097A105B105D3 -:1029A000D9F1AC01BD0188E08A019B01F4E03695C4 -:1029B000279517950795FA95D1F70115110521056A -:1029C000310519F08C5FB901A8018A019B01E2E091 -:1029D0003695279517950795EA95D1F701151105B5 -:1029E0002105310519F08E5FB901A801769567952B -:1029F00057954795452B462B472B09F08F5F823023 -:102A000011F160F4882399F08130C1F0CE01DF919B -:102A1000CF911F910F91089580E0C6CF8330C1F010 -:102A20008430A1F720E044E66FEF8FE004C020E09F -:102A300044E66FEF82E30E943113E8CF20E044E6E2 -:102A40006FEF85E0F8CF20E044E66FEF80E8F3CF4A -:102A500020E044E66FEF87EDEECF0E94891490935B -:102A60003903809338030C94010B809138039091C3 -:102A700039039C01267033272630310519F488600C -:102A80000C942D15877FFCCF21E030E002C0220F8F -:102A9000331F8A95E2F72095309580913803909105 -:102AA0003903822393230C942D1590914002809535 -:102AB000892380934002282F277039F4282F082E6D -:102AC000000C330B9217130621F49091050392FF2B -:102AD00007C08595859585950E9444151092400202 -:102AE000089521E030E002C0220F331F8A95E2F7FB -:102AF0008091380390913903822B932B0C942D15E0 -:102B000080918E038695815009F484E261E00C94F3 -:102B10002A1480918E0386958F5F853208F081E0BC -:102B200061E00C942A1490918E0390FF07C0969553 -:102B3000981720F0961710F40C94891561E00C9406 -:102B40002A14EEE8F3E083E0808311828FEF828322 -:102B500088E28383148260817181828193810C94E5 -:102B60001F1369EE7EEF90E080E00E94A32F60E0EB -:102B700082E090E00E94852F60E083E090E00E9478 -:102B8000852F109246021092450260E084E090E0AA -:102B90000E94852F60E082E290E00E94852F60E035 -:102BA00085E090E00E94852F60E086E090E00E9442 -:102BB000852F6FEF87E090E00E94852F40E050E086 -:102BC000BA0188E090E00E94972F60E08DE090E0ED -:102BD0000E94852F40E050E0BA0188E190E00E9419 -:102BE000972F60E087E190E00E94852F40E050E061 -:102BF000BA018CE190E00E94972F70E060E080E2E3 -:102C000090E00E94A32F40E050E0BA0188E190E0FC -:102C10000E94972F80E00E94710E0E94890E40E072 -:102C200050E0BA018FE090E00E94972F40E050E022 -:102C3000BA0183E190E00C94972F90E080E00E942D -:102C40007F2F893E9E4F11F40C949B0F80E00895D6 -:102C50001092430280914301E8ECF1E0882359F09F -:102C60008091040387FF07C08EE1DF011D928A95E2 -:102C7000E9F70C94010B86E0F8CF1F93CF93DF9315 -:102C8000CDB7DEB7AA970FB6F894DEBF0FBECDBFA3 -:102C900080E393E02091F100DC012D93CD01B3E0BE -:102CA00088339B07B9F780913103833009F471C0F1 -:102CB000B8F4813009F448C0823009F4B2C0809180 -:102CC000E80083FF3AC180913003909131039A303C -:102CD00008F033C1E92FF0E0E753F04D0C94042FD6 -:102CE0008A3009F48DC08B3009F470C0893039F70F -:102CF00080913003813219F780913403909135032C -:102D0000009711F00297D9F68091E800877F8093B1 -:102D1000E8008091E80082FF37C09091F300809135 -:102D2000F200029729F48091F1008B7F813021F429 -:102D30008091F10080930B038091E8008B77809362 -:102D4000E8000E948004BBCF80913003813A09F0F3 -:102D5000B6CF8091E800877F8093E80080913403AC -:102D600090913503892B61F460E28CE093E070E090 -:102D70000E9432058091E8008B778093E8009FCF16 -:102D800060E090E080E0F3CF80912E038111C1CF0D -:102D900096CF80913003813A09F091CF809134032E -:102DA00090913503892B09F08ACF8091E800877FC5 -:102DB0008093E8008091E80080FFFCCF8091430180 -:102DC0008093F1008091E8008E77B9CF8091300335 -:102DD000813209F074CF8091340390913503892BAF -:102DE00009F06DCF8091E800877F8093E8000E9412 -:102DF000800480913203809343010E9428165FCFA4 -:102E000080913003813209F05ACF8091E800877FAA -:102E10008093E8000E9480048091330380930A032A -:102E20004ECF80913003813A09F049CF8091E8007C -:102E3000877F8093E8008091E80080FFFCCF80913D -:102E40000A03BECF803899F0823809F076C08091AD -:102E500034038F70873008F070C08093E900809150 -:102E6000EB0085FB882780F91092E90006C080916D -:102E70002C0390912D03911182609091E800977F2F -:102E80009093E8008093F1001092F1008091E800A7 -:102E90008E77B5C1882309F4A2C1823009F04DC0F4 -:102EA000809132038111A6C1809134038F702FEF7E -:102EB000280F263008F041C08093E9002091EB00F4 -:102EC00020FF98C1933031F48091EB0080628093B1 -:102ED000EB0090C19091EB0090619093EB0021E0AA -:102EE00030E001C0220F8A95EAF72093EA001092A1 -:102EF000EA008091EB008860EACF81111EC010913A -:102F000032031F778091E3008078812B8093E30068 -:102F10008091E800877F8093E8000E948004809180 -:102F2000E80080FFFCCF8091E30080688093E3009D -:102F300082E0111183E080932E038091E80083FFEB -:102F40000AC08091E800877F8093E8008091EB00C1 -:102F500080628093EB00AA960FB6F894DEBF0FBE96 -:102F6000CDBFDF91CF911F9108958058823028F70F -:102F700020913203309133032C3DE3E03E07A1F56D -:102F800083E08A838AE289834FB7F894DE0113963F -:102F900020E03EE051E2E32FF0E050935700E4914F -:102FA00020FF03C0E295EF703F5FEF708E2F90E03F -:102FB000EA30C0F0C7968D939D932F5F243159F767 -:102FC0004FBF8091E800877F8093E8006AE270E05D -:102FD000CE0101960E9432058091E8008B778093A4 -:102FE000E800ABCFC096E7CF8091340390913503D2 -:102FF000432F55274330510509F44AC078F5413035 -:10300000510509F47AC08BE590E0E9EEF6E0423034 -:10301000510509F092CF2091E800277F2093E80026 -:1030200020913603309137038217930708F49C01EF -:1030300040E02115310509F065C0411163C0809160 -:10304000E80082FDC9CF80912E03882329F28530C4 -:1030500019F28091E80083FFF2CFBECF41325105D3 -:1030600009F43CC04232510509F067CF8330910525 -:1030700008F063CFFC01EE0FFF1FE954FE4F0190F3 -:10308000F081E02D8C549E4FDC018C9190E01AC0B1 -:10309000332721303105D1F02115310561F022307F -:1030A000310509F04ACFE6E5F7E0E4918E2F90E094 -:1030B000E6E5F7E007C0E6E7F7E0E4918E2F90E061 -:1030C000E6E7F7E0009709F438CFA5CFE2E6F7E0AE -:1030D000E4918E2F90E0E2E6F7E0F4CF83309105A3 -:1030E00008F02BCF880F991FFC01E354FE4F01908D -:1030F000F081E02D89E090E08ECF82E190E0E4E481 -:10310000F7E089CF80912E03882309F465CF8530BD -:1031100009F462CF8091E80083FD5ECF8091E800E2 -:1031200082FD8DCF8091E80080FF83CF9091F300E6 -:103130008091F2002115310519F08830910550F089 -:1031400041E0089709F040E08091E8008E77809395 -:10315000E8006FCF44914093F1003196215031093E -:103160000196E8CF803809F0E8CE8091E800877FAB -:103170008093E80080912F038093F10087CE811126 -:10318000DCCE10913203123008F0D7CE8091E800E7 -:10319000877F8093E80010932F030E9480041123FF -:1031A00011F084E005C08091E30087FDFACF81E053 -:1031B00080932E0342E061EC81E00E949F0442E292 -:1031C00061EC84E00E949F0442E261EC82E00E9494 -:1031D0009F0442E260EC83E00E949F04AECE8091A7 -:1031E0003203813009F0A9CE81E0933009F080E00C -:1031F00080932D031092E9008091E800877F8093EF -:10320000E8000E94800499CE9F92AF92BF92CF9225 -:10321000DF92EF92FF920F931F93CF93DF9300D033 -:1032200000D0CDB7DEB77C01FC0183819481892B6E -:1032300031F08081918189238F3F09F0F0C50F9093 -:103240000F900F900F90DF91CF911F910F91FF90F2 -:10325000EF90DF90CF90BF90AF909F90089598012E -:1032600022513F452031310508F0CEC58FEF93E064 -:103270000E94712F025167E0C62E62E0D62E88238D -:1032800039F1809140028770D1F2F7018281882361 -:10329000B1F282E00F900F900F900F90DF91CF91DD -:1032A0001F910F91FF90EF90DF90CF90BF90AF9064 -:1032B0009F900C945515C114F4E0DF0611F3C6017C -:1032C0000E94712F811101C001502FEFC21AD20A42 -:1032D0000111F1CF1C821B82BB24B3945AE0A52EAE -:1032E00086010F5F1F4FC6010E94712F89831A82CA -:1032F000882339F29FEF980F933008F58A83B982BB -:1033000032E0C30ED11CC8010E94712F8B83882329 -:1033100009F4B7CF8E010F5F1F4FF801808188231A -:10332000F9F2813009F043C091818281913049F4F2 -:103330000E5F1F4F0E94280D0F5F1F4FEECF6801D9 -:10334000E9CF923029F40E5F1F4F0E94730CF4CF27 -:10335000933029F40E5F1F4F0E944E0BEDCF943037 -:1033600019F00F5F1F4FE8CF0E5F1F4F30E020E0D6 -:10337000B8016F5F7F4FF80141818053990B8A300C -:10338000910550F021503109B8F28FE99FE0019783 -:10339000F1F700C00000F6CFA29EF001A39EF00D51 -:1033A00011249C012E0F3F1F842F8B01E1CF0E941F -:1033B000A90DC2CF81E00E9471150E94351561CF21 -:1033C00081E00E944415F9CF82E0FBCF04389FE5ED -:1033D000190709F483C008F473C00538FFE51F0717 -:1033E00009F041C5882309F43EC580EE0E94730CA4 -:1033F00081EE0E94730C80E10E94730C80E10E94B8 -:103400004E0B81EE0E944E0B80EE0E944E0B80917F -:10341000E60191E062E189278093E601882309F4BF -:103420008DC08FE00E94BE1066E18FE00E94BE104A -:103430001AC5882369F180914F02811106C081E08D -:1034400080934F0282EE0E94730C0E94A20590931B -:103450004E0280934D028BE20E94730C04C58823B8 -:10346000A1F080914F02811106C081E080934F024C -:1034700082EE0E94730C0E94A20590934E028093EC -:103480004D0281EE0E94730CE6CF81EE0E944E0B3E -:103490008BE20E944E0BE7C4882309F4E4C481EE5A -:1034A0000E94730C83EE0E94730C8FE40E94730CD5 -:1034B0008FE40E944E0B83EE0E944E0B81EEE9CF0B -:1034C000882309F4D0C481EE0E94730C83EE0E941D -:1034D000730C80E50E94730C80E5EBCF882309F420 -:1034E000D0CE10914C0281E0182710934C020E941C -:1034F000A20590934B0280934A0268E1112381F068 -:103500008FE00E94BE1069E18FE00E94BE106AE168 -:103510008FE00E94BE106BE18FE00E94BE10B1CE22 -:1035200084EB0E94BE1069E184EB0E94BE106AE148 -:1035300084EB0E94BE106BE184EBEFCF8FEA0E9418 -:10354000BE1066E18FEA72CF82EE0E94730CC6C491 -:1035500083E00E942F0B88E10E94730C88E10E9497 -:103560004E0B83E00E94240BB9C482EE0E94730CC0 -:1035700087E50E94280DB2C486EE0E94280D88E1DE -:10358000F8CF895AC5C482EE0E944E0BD9C48CE292 -:103590000E94280D8091E801882309F4D1C489E3B1 -:1035A0000E94280DCDC488E2FBCF033FFCE51F0736 -:1035B00039F1A0F4083D3CE51307F1F0093D8CE535 -:1035C000180751F1073D9CE5190709F0BDC426E233 -:1035D00041EE61EEC7010E94450D53CE053FECE57B -:1035E0001E07B1F088F0063F2CE5120709F0ACC4C5 -:1035F00027E245EE66EEEECF27E245EE65EEEACF36 -:1036000026E241EE60EEE6CF27E245EE64EEE2CF41 -:1036100026E241EE62EEDECF28E241E0EFCF80917C -:103620000403806106309CE5190709F48CC0809181 -:103630000403886007301C4508F485C080910403AA -:10364000806281C0809104038D7F0C30FCE51F07F0 -:1036500009F479C070F4809104038C600A303CE571 -:10366000130709F470C008F481C0809104038E7FB1 -:103670006AC080910403877F0E309CE5190709F426 -:1036800062C0809104038B7F0F301C4508F45BC03F -:10369000809104038F7E57C00B3FFCE51F0709F4A0 -:1036A0005DC030F503313CE5130709F46DC078F4D3 -:1036B00001319CE5190709F463C002311C4509F08A -:1036C0007EC40E942816809104038F773CC0053188 -:1036D000FCE51F0709F460C008F474C0809105037D -:1036E00081600A3F1C4509F06AC48093050367C4E2 -:1036F0000F3F8CE5180709F44BC088F4809105034F -:103700008D7F0D3FECE51E0781F3809105038E7FD1 -:103710000E3F1C4550F3809105038360E6CF0130D6 -:103720002DE5120709F457C008F442C060E00230EA -:103730001D4509F044C48EE090E00E94852F3FC4EF -:103740008091040381608093040339C48091040351 -:103750008260F9CF809104038460F5CF80910503E6 -:103760008260C3CF809104038064EDCF0E9428164D -:10377000809104038068E7CF809104038F7DE3CFBD -:10378000809104038F7BDFCF80910403837FDBCFA5 -:10379000809105038C7FA9CF8091040382FB992738 -:1037A00090F921E0922790FB82F990FB83F9CBCF2F -:1037B00080910503982F909591708E7F892B90FBB7 -:1037C00081F993CF0E94281690910403892F97FBCB -:1037D00087F98058B8CF61E0AECF882309F402C4DE -:1037E000809143028A7A91E009F490E09093E90194 -:1037F000811106C089E20E94700A0E94000A41CD30 -:1038000085E3F9CF85E3F3C3043CFCE51F0709F426 -:1038100093C046EF53E16FEF73E1053C2CE51207CF -:1038200009F00AC40E9425062CCD093C3CE513078B -:1038300009F491C070F4073CECE51E0709F486C05A -:103840004AEE53E16EED73E1083CFCE51F0751F3CE -:10385000F3C30A3C2CE5120709F482C048E054E1A6 -:1038600069E174E10B3C3CE51307E1F2E5C3013D7E -:103870008CE5180709F487C0B0F40E3CECE51E0790 -:1038800009F47BC008F476C00F3C2CE5120709F45C -:1038900077C06EE089E0003D3CE5130709F0CCC33A -:1038A0000E949315EECC043D8CE5180709F471C015 -:1038B00078F4023DECE51E0709F468C061E088E198 -:1038C000033DFCE51F0709F0B7C30E942A14D9CCB9 -:1038D000053D2CE5120709F45FC00D35100709F40A -:1038E000D0CCAAC380918E0380FF1BC08E7F8093B3 -:1038F0008E0360918E0370918F038091900390915D -:1039000091030E941F13109284028FEF90E7E2E070 -:1039100081509040E040E1F700C000000E94D80FC5 -:10392000B0CC816080938E0361E08695CECF40E875 -:1039300055E169E875E176CF49E855E160E875E160 -:1039400071CF4FEF53E166EF73E16CCF4EED53E172 -:103950006AEE73E167CF46EC53E162ED73E162CF4B -:1039600042ED53E166EC73E15DCF49E154E168E07B -:1039700074E158CF61E081E0A8CF65E082E090CFAC -:1039800068E086E08DCF64E18FE08ACF67E185E172 -:1039900087CF62E289E184CF61E083E296CF0B3585 -:1039A0009DE5190701F10C351D4509F055C38091BE -:1039B000050382FB882780F991E089270E94980EF1 -:1039C0004BC30E942816FFEF24E33CE0F150204057 -:1039D0003040E1F700C000000E944F0C0E94B1157A -:1039E00050CC81E0EBCF80E0E9CF82810081118172 -:1039F000882369F0C8010E94E50ED82E682FC801FF -:103A00000E94D50AB8018D2D0E94D80E2BC3C80183 -:103A10000E94AE0AD82EF6CF212F2F70C22E107F13 -:103A200019F0C29490EFC922DD20C9F0CC2069F0D2 -:103A300080E2800F883010F001110BC080914302AA -:103A4000C82AC09243020E94000A802F0E94730C71 -:103A500019C080914202C82AC0924202F4CF802F3E -:103A60000E944E0BCC2071F0C09480E2800F883011 -:103A700010F001113AC080914302C822C092430263 -:103A80000E94000AE92DE850FF0B349720F40E94B1 -:103A9000DA050E94AB0BAA20A9F08091400280FDBC -:103AA00011C0F70112828595859585950E94711543 -:103AB000C7010E94041980914002859585958595DE -:103AC0000E94441560E0C7010F900F900F900F9077 -:103AD000DF91CF911F910F91FF90EF90DF90CF90EA -:103AE000BF90AF909F900C945B0F80914202C822D0 -:103AF000C0924202C5CF312F3F70B32E107F1032DB -:103B000019F0B29480EFB822002369F0013081F1FE -:103B1000DD20D9F1CC2091F1F701858180FF95CF8F -:103B20008F7085832BC0DD20B1F0909144028B2DE6 -:103B3000892BC11003C00E94440BA4CFE1E0CE1238 -:103B4000FACF2091050322FD9DCF891709F49ACF62 -:103B50008093440297CFC11006C00E94FA098B2DB2 -:103B60000E94390B8FCFF1E0CF1609F48BCFF5CF40 -:103B7000DD2031F025E02C1508F484CF8B2DDBCF30 -:103B800034E03C1508F47ECFEACFCC2041F3093372 -:103B900049F4FFEF27EE33E0F15020403040E1F7E9 -:103BA00000C00000802F0E944E0B6CCF812F8695A5 -:103BB0008695837061F0813009F064CFC8019370FD -:103BC000D11002C090E080E00E94AE055BCFC8013A -:103BD0009370D11002C090E080E00E94C40552CFE3 -:103BE000802FDD2029F00E94BC070E94DA064ACF10 -:103BF0000E940107FACF812F837009F03FC0D110D6 -:103C000041CF402F429546954770440F440F802F77 -:103C10008F7090E0042E02C0880F991F0A94E2F77B -:103C200030E020E004FF09C02FE030E002C0220FA6 -:103C3000331F4A95E2F72095309516951695137027 -:103C4000123099F078F440914502509146021130BB -:103C500039F0822B932B842395230E941E0B12CFC5 -:103C6000842B952B822B932BF8CF822B932B209197 -:103C700045023091460282279327EFCF8695DD20BB -:103C800011F0812F8170882309F4FCCE402F4295DA -:103C900046954770440F440F802F8F7090E0042E9C -:103CA00002C0880F991F0A94E2F730E020E004FF79 -:103CB00009C02FE030E002C0220F331F4A95E2F71F -:103CC00020953095169516951370123099F078F46A -:103CD0004091380350913903113039F0822B932BE6 -:103CE000842395230E942D15CDCE842B952B822BDA -:103CF000932BF8CF822B932B2091380330913903EB -:103D000082279327EFCF1F70DD2029F0812F0E949B -:103D10007115802F10CF802F0E94390B812F0E94A8 -:103D20004415B0CE023F09F441C060F4003F11F1E8 -:103D3000013FA1F1DD2009F457C0C11086CE812FCB -:103D40008F7131C0033FB9F1043FA1F7DD2009F4C1 -:103D500040C01F71812F0E9471158091050382FD63 -:103D600007C0E8E01E9FC0011124836080934002D9 -:103D7000812F19C0DD2069F084E08C1508F482CE13 -:103D80001F7181E090E002C0880F991F1A95E2F739 -:103D9000B3CF95E09C1508F475CEF2CF812F8F71CB -:103DA000DD2009F4BCCF0E9471156CCE812F8F717C -:103DB000DD20C9F3B4CF90E080E0DD2009F492CF9C -:103DC0001F7181E090E002C0880F991F1A95E2F7F9 -:103DD00089CF81E00E945515F1E0FC1508F052CE24 -:103DE00082E00E9455154ECECC2059F0093309F0DF -:103DF000D9CE2FEF37EE83E0215030408040E1F7FD -:103E0000CFCE812F8F718BCF00313FE5130709F49F -:103E1000D1CA01319FE51907A9F482E0CCCA61E05B -:103E2000C7010E945B0F8C01F7018281811117CAC3 -:103E30000031FFE51F0709F4C3CA01312FE512075E -:103E400009F4C2CA0238EFE51E0709F425CB08F0D1 -:103E5000BDCA00382FE5120709F4EBCA01383FE567 -:103E6000130709F4FCCAF7018281882369F0C801AD -:103E7000815E9C45059740F46FE1600F60935002AE -:103E80008CE090E00E94852F17FF8FCBF701828195 -:103E9000882309F459C00E94DA05869581708093C1 -:103EA000E80190915002913029F4882319F089E3B8 -:103EB0000E94280D809143028093E70110924302F3 -:103EC00080915002813009F443CB882309F43CCB24 -:103ED000823009F44ACB843009F44ECB8FE39CE95D -:103EE0000197F1F700C000005801E894B7F84CE0E2 -:103EF000C42ED12CC5010C2C02C0969587950A942E -:103F0000E2F78F7096EF980F963008F43ACB805D09 -:103F10000E94A90D94E0C91AD108ECEFCE16EFEF7C -:103F2000DE0641F780915002813009F430CB8823BE -:103F300009F429CB823009F426CB843009F433CB41 -:103F40008091E70180934302F7018281882309F47D -:103F500046C0109295030230FCE51F0708F44AC0E2 -:103F600006312CE5120738F098012A5F3C452930CC -:103F7000310508F03FC00E94B40F90930503809371 -:103F8000040300313CE5130709F4F6CB08F084CBB9 -:103F900008309CE5190709F4E5CB08F053CB043051 -:103FA000FCE51F0709F4D6CB08F039CB02303CE51D -:103FB000130709F4C5CB03301C4509F4C7CB609146 -:103FC00004031091050384E090E00E94852F612F87 -:103FD00082E290E00E94852F0E94281652C9063185 -:103FE0001C45D1F58091E90181110CCC89E20E9438 -:103FF000450A03CC06312CE5120709F4EECB80917B -:10400000430282720C3C9CE5190709F4AECC08F01F -:104010002ECC063CFCE51F0709F493CC08F005CC38 -:10402000033C3CE5130709F482CC08F0EDCB023CDD -:10403000ECE51E0709F456CC0A35FDE51F0709F427 -:10404000D0CC08F0ACCC01153CE5130709F4B9CC91 -:104050000E3D1C4509F4C2CCF7018681978100977B -:1040600009F4C3CC0E9472088C01F701D280C5808C -:10407000C2943FE0C322809140028770A1F0AD2C32 -:10408000DD2091F0812F807F803421F080E2800F4D -:10409000883048F082E00E94551580914002877078 -:1040A000AA24A3948111A12C912E92942FE0922204 -:1040B000FBE0F91508F4E6CCE92DF0E0ED52F04D07 -:1040C0000C94042FCF93DF938091FB01807FA1F4A8 -:1040D0008091F801882381F080913F02D091FE0108 -:1040E0006091F6017091F701A091F901B091FA0188 -:1040F000C62FC723D81303C0DF91CF91089590E056 -:10410000109711F0CF3F19F401968770F3CF9C01FF -:1041100043E0220F331F4A95E1F7F901E150FE4FCA -:1041200041814713F1CF40814613EECF42814111C7 -:10413000EBCF438154814A1B5B0B483C510520F770 -:104140008091FB018F7080618093FB01F901EC5F2E -:10415000FD4F80818F708061808386EF91E00E94A7 -:104160000419DF91CF910C94A40AAF92BF92CF9221 -:10417000DF92EF92FF920F931F93CF93DF93CDB710 -:10418000DEB765970FB6F894DEBF0FBECDBF8C01CA -:1041900085E0F801DE01519601900D928A95E1F7D4 -:1041A000F801E28066EFA62E61E0B62E6091F9017B -:1041B0007091FA016115710509F468C19091F601D9 -:1041C0004091F701892F84238F3F09F45FC120813B -:1041D0003181C380D480F090F801F601E61BF70B23 -:1041E000FF2009F41DC18091FB01582F507FE83C4E -:1041F000F10508F0D0C0511181C0FE2C43132BC033 -:10420000921329C06091FC017091FD01F801468173 -:10421000578164177507F9F4E1101DC08F70806134 -:104220008093FB01C5010E9404198091FB01F801F4 -:1042300085838F2D65960FB6F894DEBF0FBECDBF78 -:10424000DF91CF911F910F91FF90EF90DF90CF9072 -:10425000BF90AF900895CD2829F0822F83238F3F00 -:1042600009F02FC180E0F82FF170DF2E80FF3CC0F5 -:1042700080913F024091FE01841315C0298B3A8B37 -:1042800089899A890E94210F292F22952F70223027 -:10429000F8F0243020F59F70F9F0F8019581907FB7 -:1042A000D9F4D12C1FC090E0FC0153E0EE0FFF1FAA -:1042B0005A95E1F7E150FE4F5181351306C0508108 -:1042C000251303C05281E5120FC001968770D4CF29 -:1042D0009F7011F0882329F3805E883010F3C801A5 -:1042E0000E940419FD2CA5CFEE2009F4A2CF8091E5 -:1042F000FB0181608093FB01F12C9BCF43131BC01A -:10430000921319C04091FC015091FD01F8012681E2 -:1043100037814217530779F4E1100DC08583C80136 -:104320000E94041988E0F801A6EFB1E001900D9217 -:104330008A95E1F77ECFC8010E942D0F882339F1BD -:10434000EE2029F18091FB018032A0F02091F6014E -:104350003091F7013A8729871B86DD86CC868E87C8 -:104360008091FC019091FD01988B8F87CE01099679 -:104370000E94041988E0F801A6EFB1E001900D92C7 -:104380008A95E1F70E946220FF24F39452CFC8017E -:104390000E940419F9CF51110AC086EF91E00E94E2 -:1043A000041988E0F50111928A95E9F7A5CF431326 -:1043B00018C0921316C04091FC015091FD01F80104 -:1043C000268137814217530761F4E1100AC08583C3 -:1043D000C8010E94041988E0F50111928A95E9F755 -:1043E00028CFC8010E942D0F882389F2EE2079F290 -:1043F0008091FB01803208F4BDCF2091F60130910D -:10440000F7013A8329831B82DD82CC828E838091DF -:10441000FC019091FD0198878F83CE010196A8CF72 -:10442000E83CF105C0F6FE2CEE2009F4B0CF4313B2 -:104430001FC092131DC02091FC013091FD01F801B5 -:10444000868197812817390799F49091FB0190FD97 -:1044500069CF907F09F466CF8091FB018583903FFF -:1044600009F45DCF982F907F905F8F70892B56CF86 -:10447000C8010E942D0F81117DCF8091FB018160C9 -:104480008093FB01C8010E940419D3CEEE2009F4E9 -:104490007ECFC8010E942D0FF82E882309F477CF14 -:1044A00088E0F801A6EFB1E001900D928A95E1F75E -:1044B0008091F6019091F7010E94210F0E946220E5 -:1044C000B8CE81E08E25CFCECF93DF93CDB7DEB7C8 -:1044D00060970FB6F894DEBF0FBECDBF29873A872D -:1044E0004B875C876D877E878F87988BCE01099677 -:1044F0000E94B520811112C088E0FE013996DE01CC -:10450000119601900D928A95E1F78C859D85892BF6 -:1045100029F089859A8589238F3FA9F580913F02EB -:104520009091FE0189131CC060960FB6F894DEBF0F -:104530000FBECDBFDF91CF91089593E0AA0FBB1FAF -:104540009A95E1F7A150BE4F98E0FE013196019097 -:104550000D929A95E1F78093FE010E94A40ADECFA6 -:10456000B8E08B9FC001112481509E4F0E94B5205E -:104570008823D1F280913F0290E0019687709927BD -:1045800080933F02CBCFA091FE01B0E0CD01019618 -:104590008770992720913F022817190671F60E940B -:1045A00028161092FE0110923F0288E0E6EFF1E03B -:1045B000DF011D928A95E9F7B1CF0F931F93CF9337 -:1045C000DF9380918C02E0918B02CCE081111AC0C4 -:1045D000DF91CF911F910F910895D1E0DE0FD0931D -:1045E0008B020E2F10E0EC9FF0011124E357FD4FDA -:1045F00083819481892B29F08081918189238F3F48 -:1046000051F4ED2F80918C02E81738F310928C0250 -:1046100010928B02DDCFC09FD001C19FB00D11243D -:10462000A357BD4F16968D919C911797892B29F40E -:1046300018968D919C91019651F42081318142818F -:10464000538164817581868197810E946422C09F15 -:10465000F001C19FF00D1124E357FD4F1482138226 -:10466000D0CF1092F8021092F7021092420180917E -:10467000F6028093F5020E9414060C94DD222F921C -:104680003F924F925F926F927F928F929F92AF92E2 -:10469000BF92CF92DF92EF92FF920F931F93CF932F -:1046A000DF93C091F502E7E0FE2E01E010E0FCE0B0 -:1046B0002F2EAEEFEA2E8091F6028C1316C00E94C8 -:1046C000DD22DF91CF911F910F91FF90EF90DF904E -:1046D000CF90BF90AF909F908F907F906F905F90A2 -:1046E0004F903F902F900C941406D0E0FE01EE0FF7 -:1046F000FF1FE351FD4F80819181F89EF001F99EEB -:10470000F00D1124E85EFE4F2481211158C0309035 -:104710008C02ADE8B2E030E020E0412C5F012315CF -:1047200008F04BC01A966D907C901B97F501808025 -:1047300091804FEF5FEF512CC52CD12CF601EE0F7D -:10474000FF1FE80DF91D659174916616770609F44F -:10475000A601672B11F05394EFCF4F3F5407B1F1EF -:10476000B80102C0660F771F4A95E2F7462AA801F2 -:1047700002C0440F551F5A94E2F7415051094416A4 -:10478000150601F5229EF001239EF00D1124E3573A -:10479000FD4FF89ED001F99EB00D1124A85EBE4FCA -:1047A00012962D913C91139737832683E082E18204 -:1047B0009187808771E015967C930E94E60521968B -:1047C000C37079CF14961C921E9213972F5F3F4FA0 -:1047D0001C96A5CF9F92AF92BF92CF92DF92EF929D -:1047E000FF920F931F93CF93DF9300D000D000D0A0 -:1047F000CDB7DEB78E010F5F1F4F86E0F801119233 -:104800008A95E9F785E7C82E81E0D82EF12CE12CB6 -:10481000AA24A394B12CF60181916F018F3F09F472 -:1048200049C0F894E82FE295EF70F0E021A18F7075 -:10483000A50102C0440F551F8A95E2F7CA01922FC5 -:10484000982B91A392A18095892382A3789400C08C -:10485000EBE7F1E030E020E0912C41914F3F09F48B -:1048600073C0A42FA295AF70B0E090968C9190E0A9 -:104870004F7002C0959587954A95E2F780FD64C018 -:104880008A2D022E01C0880F0A94EAF7982A2F5F1A -:104890003F4F2430310509F7F601319780818F3F72 -:1048A00011F00E94180850EA5A95F1F7F801EE0D40 -:1048B000FF1D90828FEFE81AF80AE6E0EE16F10489 -:1048C00009F0A9CF46E050E0B80184E592E00E94EB -:1048D000642FFF24F394009709F4F12C892BB1F194 -:1048E00086E0F801A4E5B2E001900D928A95E1F727 -:1048F00081E0809349020E94A20590934802809330 -:10490000470280914702909148020E9493050597C3 -:1049100008F1809154028093670280915502809340 -:1049200068028091560280936902809157028093B9 -:104930006A028091580280936B02809159028093A1 -:104940006C021092490206C080E0A0CF809149021B -:104950008111D7CF80914201882301F18091F70224 -:104960009091F8020097D1F00E949305209189025E -:1049700030918A022817390788F49091F5028091C6 -:10498000F602981709F445C00E943F2310928A024C -:10499000109289021092F8021092F70280914F0251 -:1049A000882371F080914D0290914E020E949305F0 -:1049B000893E934028F082EE0E944E0B10924F02E7 -:1049C00080914C02882391F080914A0290914B0291 -:1049D0000E949305883E934048F00E94A205909360 -:1049E0004B0280934A0283E70E94280D8F2D269662 -:1049F0000FB6F894DEBF0FBECDBFDF91CF911F91F0 -:104A00000F91FF90EF90DF90CF90BF90AF909F906D -:104A100008950E94DD221092F8021092F7020E947F -:104A20001406BCCF2F923F924F925F926F927F926B -:104A30008F929F92AF92BF92CF92DF92EF92FF92AE -:104A40000F931F93CF93DF93CDB7DEB769970FB660 -:104A5000F894DEBF0FBECDBF498B5A8B6B8B7C8B1E -:104A60008D8B6111109242021D861E861F86188A48 -:104A700085E0FE017196DE01199601900D928A95EE -:104A8000E1F78C859D85892B31F089859A8589236D -:104A90008F3F09F0D4C129853A854B855C856D85AA -:104AA0007E858F8598890E946422C3C028EFC21634 -:104AB0002CE5D20629F4882379F00E943123EBCF2C -:104AC00039EFC3163CE5D30639F4882329F08091E9 -:104AD00042018111F2CFC3C108E111E0E12CB12CF8 -:104AE000A12C88248394912C9EEF592E4424439426 -:104AF000F8016081718166246A94762C20E0422F4F -:104B000050E0FA01EE0FFF1FE60FF71F8591949119 -:104B1000C816D90609F43A01892B11F02F5FEFCF9F -:104B2000F12CFFEF6F167F0609F445C0F8014481B0 -:104B3000F09042018F2D411180E0F82FF170FF2E8F -:104B4000F801258086819B85992309F408C1FF20FF -:104B500009F405C1211014C0A40101C0440F6A94D6 -:104B6000EAF7842B86838091890290918A028039AA -:104B7000914030F440E951E050938A024093890219 -:104B8000C40102C0880F991F2A95E2F70197F80126 -:104B900026812817190679F48091F7029091F8027E -:104BA000009709F45FC00E9493058139914008F491 -:104BB00059C0F8014482EF28FFEFAF1ABF0A095F1E -:104BC0001F4F26E0A216B10409F092CF8B858823EF -:104BD00009F420C1EE2009F41DC10E94A2059093A2 -:104BE000F8028093F70280918C02883010F591E0F2 -:104BF000980F90938C0298E0FE013996DE01119691 -:104C000001900D929A95E1F73CE0839FC001112439 -:104C100083579D4F28E0FE013196DC0101900D92F3 -:104C20002A95E1F72FEF3FEFFC0131872087D386EC -:104C3000C28669960FB6F894DEBF0FBECDBFDF9176 -:104C4000CF911F910F91FF90EF90DF90CF90BF9089 -:104C5000AF909F908F907F906F905F904F903F901C -:104C60002F9008958091F5026090F602982FF0E061 -:104C7000E0E0861114C09093F5020E171F0709F4A7 -:104C80009ACF90E0FC01EE0FFF1FE351FD4FB18280 -:104C9000A0820196837099278093F6028CCF282EEC -:104CA000312CF101EE0FFF1FE351FD4F20813181C7 -:104CB000F7E0F29FD001F39FB00D1124A85EBE4F24 -:104CC0002D913C911197398F288F712C60E070E005 -:104CD000E72FF0E0EE0FFF1F288D398DE20FF31F55 -:104CE0002591349121153105E1F0F8010190F08111 -:104CF000E02DFF8BEE8B60E005C02417350709F42B -:104D00007F2C6F5FE62FF0E0EE0FFF1F4E895F896B -:104D1000E40FF51F459154914115510571F77F5FDF -:104D2000D7CF7720C9F0F801671708F0FD0144825A -:104D30000E171F0721F49093F502F72C3CCF981320 -:104D400005C0AE17BF0711F49F5F937091012F5FED -:104D50003F4F822F83708DCFF0E0E0E0F7CF90E0FF -:104D600021101FC0B40102C0660F771F2A95E2F719 -:104D70009B01215031092817390731F4442309F4E4 -:104D800047C0C5010E94E605C40101C0880F6A94AE -:104D9000EAF7982F9095F801868189238683F22C73 -:104DA0000ACF9C01062C02C0359527950A94E2F79C -:104DB000A90141705527BC016150710986239723D1 -:104DC000892B11F5452B01F1F80182819381892B03 -:104DD000C1F01B821C821D821E8259825A820E944F -:104DE000A2058160582F9D838C83F8018281938175 -:104DF0008F83988729813A814B816D817E810E94C2 -:104E00006422F8011582C0CFF22FF1702F2EBCCF93 -:104E10002F2CBACF9091F5028091F602981731F0BD -:104E20000E943F23EE2009F436CE03CF0E94DD22FC -:104E30001092F8021092F7020E941406F3CF61E07C -:104E4000CE0109960E945B0F6C018B85F7EFCF16A0 -:104E5000FCE5DF0609F02ACE882309F43DCE81E087 -:104E60008093420118CE1F920F920FB60F92112419 -:104E70002F933F934F935F936F937F938F939F9362 -:104E8000AF93BF93CF93DF93EF93FF93D091E9005C -:104E9000DF708091EC00C82FC17080FDC0E81092D7 -:104EA000E9008091F000877F8093F00078940E9461 -:104EB0003D161092E9008091F00088608093F00028 -:104EC000CD2BCF70C093E900FF91EF91DF91CF918F -:104ED000BF91AF919F918F917F916F915F914F9112 -:104EE0003F912F910F900FBE0F901F9018951F921A -:104EF0000F920FB60F9211242F933F934F935F930E -:104F00006F937F938F939F93AF93BF93EF93FF9391 -:104F10008091E10082FF09C08091E20082FF05C01C -:104F20008091E1008B7F8093E1008091DA0080FF27 -:104F300024C08091D80080FF20C08091DA008E7F4D -:104F40008093DA008091D90080FF9BC080E189BD09 -:104F500082E189BD09B400FEFDCF81E080932E037C -:104F600080910903811109C00E9406040E94D104A6 -:104F70008091E20084608093E2008091E10080FFF4 -:104F800017C08091E20080FF13C08091E2008E7F05 -:104F90008093E2008091E20080618093E200809142 -:104FA000D80080628093D80019BC85E080932E03DE -:104FB0008091E10084FF29C08091E20084FF25C038 -:104FC00080E189BD82E189BD89B5982F917080FF0C -:104FD000FBCF8091D8008F7D8093D8008091E10035 -:104FE0008F7E8093E1008091E2008F7E8093E200CB -:104FF0008091E20081608093E20080912F038823FA -:1050000009F445C084E080932E038091E10083FF82 -:1050100027C08091E20083FF23C08091E100877F59 -:105020008093E10082E080932E0310922F03809101 -:10503000E1008E7F8093E1008091E2008E7F80937B -:10504000E2008091E20080618093E20042E060E053 -:1050500080E00E949F048091F00088608093F000BF -:10506000FF91EF91BF91AF919F918F917F916F9140 -:105070005F914F913F912F910F900FBE0F901F9016 -:10508000189519BC10922E031092090376CF8091C7 -:10509000E30087FD93E090932E03B7CF78941F929F -:1050A0001FB61F9211248F939F93AF93BF9380914C -:1050B000000390910103A0910203B09103030196B4 -:1050C000A11DB11D8093000390930103A0930203DF -:1050D000B0930303BF91AF919F918F911F901FBE1B -:1050E0001F9018951F921FB61F9211248F939F93A4 -:1050F000AF93BF938091FF02811113C08091000391 -:1051000090910103A0910203B09103034196A11D68 -:10511000B11D8093000390930103A0930203B09309 -:105120000303BF91AF919F918F911F901FBE1F905E -:105130001895CDB7DEB7EE970FB6F894DEBF0FBE69 -:10514000CDBF84B7877F84BF0FB6F894A8958091B0 -:105150006000886180936000109260000FBE80E85C -:1051600090E00FB6F89480936100909361000FBEB9 -:1051700085B7806885BF85B7806885BF86E198E080 -:105180009093C5018093C4010E9406040E94D1043B -:105190008091E20084608093E200789480912E03F5 -:1051A0008823A1F01091E9001F709091EC00892FE5 -:1051B000817090FD80E8182B1092E9008091E80042 -:1051C00083FD0E943D161F701093E90082E084BDAC -:1051D00093E095BD9AEF97BD80936E000E949B0F60 -:1051E000811102C00E94890E05E711E02BE7C22E53 -:1051F00021E0D22EF80181918F018F3F11F00E94A2 -:105200001808C016D106B1F786EF0E94180887EF7C -:105210000E94180883E90E94180886E90E9418086D -:10522000E4E5F2E08AE592E0A7E6B2E011921D9291 -:105230008E179F07D9F70E941D16811102C00E9488 -:10524000B11582E090E00E94712F809360020E946D -:10525000B40F90930503809304030E94EA238FE325 -:105260009CE90197F1F700C000000E94EA238091B9 -:10527000670280FF08C06FEF7FEF90E080E00E9440 -:10528000A32F0E944F0C83E090E00E94712F90E0CA -:105290000E941E0B80913803909139030E9489145B -:1052A000509A589A559A5D9A549A5C9A8CE090E07C -:1052B0000E94712F90E0B0E0A0E0809350029093A4 -:1052C0005102A0935202B093530280915A0281116D -:1052D00033C00E941D16811104C00E94B1150E94A6 -:1052E000A11588E090E00E94792F60938E0370935F -:1052F0008F0380939003909391036E7F71F40E94CB -:10530000A11588E090E00E94792F60938E0370933E -:105310008F0380939003909391030E942B06109229 -:10532000840280918E0380FF04C060E086950E9415 -:105330002A1481E080935A025198599A52985A9AA5 -:1053400089B1869581704A9928C290E0892B809313 -:105350005E028AEC92E090937C0280937B0260E094 -:1053600081E20E942A1481E090E00E942D1580E0E5 -:1053700091E09093FC028093FB0218E1C12ED12CA6 -:1053800000E4A02E87E692E096E0B92EB80E809158 -:105390002E039924939400E112E1853009F451C25F -:1053A0000E94EA23882359F08FB7F89440910003B4 -:1053B0005091010360910203709103038FBFE1E6F6 -:1053C000F2E0A7E6B2E010E000E0302F8D9191917D -:1053D000981709F45FC2292F282790E09924939405 -:1053E000422F492109F451C29DAB3EAB892191E086 -:1053F00009F490E09FAB0E94A2058160782F99AFDD -:1054000088AF4DA95EA96FA989AD0E941225F80148 -:10541000EF59FD4F808198269082809184028823E5 -:10542000D1F180918302E0918E03E695E81BE09331 -:105430007F02823009F045C2F0E0EC51FD4FE4916B -:105440000E2F10E0BBE08B2EB3E19B2E80918002EB -:10545000882361F0109280020E94A20590937E0240 -:1054600080937D0210928202109281020E94A20516 -:10547000E0917D02F0917E028E1B9F0B8F3F9F4734 -:1054800050F4E00FF11FF0937E02E0937D028DE770 -:1054900092E0F4010995E0915E02EE0FEE0FE093C9 -:1054A0005E0289B181FBEE24E0F84A9964C280E093 -:1054B0008E29E82BE0935E02EF70F0E0E158FE4F9A -:1054C000808190915D02890F80935D0220E084309D -:1054D00034F180915C028F5F80935C0212E018AB24 -:1054E00019AA81E08AAB0E94A2058160782F9CAB4B -:1054F0008BAB48A959A96AA98CA90E9412251BA7A0 -:105500001CA61DA60E94A2058160782F9FA78EA7CA -:105510004BA55CA56DA58FA50E94122521E0809169 -:105520005D028D3F2CF580915C02815080935C027E -:105530001EA21FA281E088A70E94A2058160782F89 -:105540009AA789A74EA15FA168A58AA50E941225E6 -:1055500019A21AA21BA20E94A2058160782F9DA306 -:105560008CA349A15AA16BA18DA10E94122521E013 -:1055700080915D02082E000C990B64E070E00E949F -:10558000CE2E80935D02222359F08FB7F89440917C -:1055900000035091010360910203709103038FBFD8 -:1055A00086E0E4E7F2E0DE01119601900D928A9523 -:1055B000E1F7909076028090770210917802009146 -:1055C000790210927602109277021092780210926D -:1055D0007902892D882909F448C08091720290913E -:1055E00073020E9493059C0190916E02992309F425 -:1055F000AEC323333105C8F19F3F19F09F5F9093ED -:105600006E02992059F00E949C079FEF19140CF428 -:1056100091E0899F802D112480937602882059F093 -:105620000E949C079FEF18140CF491E0899F802D35 -:10563000112480937702309176023323B1F02091C8 -:105640007702222391F045EB3403C0011124992302 -:1056500009F494C19093760245EB24039001112440 -:10566000332309F48FC130937702812F802B09F403 -:1056700048C080917002909171020E9493059C0134 -:1056800090916D02992309F45DC325363105C8F167 -:105690009F3F19F09F5F90936D02112359F00E9474 -:1056A0007A079FEF11160CF491E0899F802D112449 -:1056B00080937802002359F00E947A079FEF10161A -:1056C0000CF491E0899F802D112480937902309110 -:1056D00078023323B1F020917902222391F045EB37 -:1056E0003403C0011124992309F450C19093780226 -:1056F00045EB240390011124332309F44BC130936B -:1057000079028091760290917702892B90917802AC -:10571000892B90917902892B11F00E94DA0686E09C -:10572000FE013196A4E7B2E001900D928A95E1F76F -:105730000E94DA0590915F02891731F00E94DA0524 -:1057400080935F020E94AB0B80912E03843009F09E -:105750001ECE83E08093E9008091E80082FF17CE9F -:105760008091E80090E085FF06C00E942504882310 -:1057700009F414C191E08091E8008B778093E800F0 -:10578000992309F404CEE981E150E33108F088C19E -:10579000F0E0E152F04D0C94042F92E0D7CD8091CF -:1057A0002E03843009F440C080E00E94AB0B1092BD -:1057B000840280917A02811116C090927A028091BF -:1057C0008E03982F917090935B028E7F80938E034F -:1057D0009FEFE0E7F2E09150E040F040E1F700C0D9 -:1057E00000000E94D80F1092FF020FB6F894A895FF -:1057F000C09260000FBEA092600083B7817F84607A -:1058000083BF83B7816083BF7894889583B78E7F89 -:1058100083BF0FB6F894A89580916000886180934B -:105820006000109260000FBE80912D03882349F024 -:105830000E94EA23E7E6F2E08191811164C2BE1280 -:10584000FBCF80912E03853009F4A9CF0E94281642 -:105850000E94DA050E94AB0B10927A0280915B02E3 -:10586000882361F080918E03816080938E0360E0D5 -:1058700086950E942A140E94C20F92CD80918502C3 -:105880008823C9F30E94D80FF6CF9F5F990C9430FC -:1058900009F0A6CD0F5F1F4F0630110509F095CD19 -:1058A0008FEF8AAF8BAF1CAE0E94A2058160782F6C -:1058B0009EAF8DAF4AAD5BAD6CAD8EAD0E94122533 -:1058C000ACCD863059F4F0E0EF51FD4FE4910E2F4E -:1058D00010E0ABEF8A2EA2E19A2EB8CD893061F4A8 -:1058E000E695F0E0E252FD4FE4910E2F10E0F7E66E -:1058F0008F2EF2E19F2EAACD8F3061F4E695F0E075 -:10590000E552FD4FE4910E2F10E0E9EF8E2EE1E11C -:105910009E2E9CCD853159F4F0E0E852FD4FE49184 -:105920000E2F10E07BEA872E71E1972E8FCD08E2D3 -:1059300010E042E2842E41E1942E883109F486CDB4 -:10594000833249F4E6EDF2E00591149162EA862E85 -:1059500062E1962E7BCD04EF11E059EE852E50E1E9 -:10596000952E843209F472CD00ED17E03AE2832ED1 -:1059700036E0932E6BCD82E090E09ACD81E080936B -:1059800076026ACE81E0809377026FCE81E08093C9 -:105990007802AECE81E080937902B3CE00E210E0CF -:1059A000CE0101964C018091E80085FD0AC08091EE -:1059B000E8008B778093E8000E942504882399F300 -:1059C000D9CE8091F100F40181934F01015011096A -:1059D00051F7D0CE1A8289E08B832DC08A81823024 -:1059E00009F4A7C18330A9F0813009F059C02FB75D -:1059F000F8946091000370910103809102039091EB -:105A000003032FBF0E940A2F6B837C838D839E83A9 -:105A100012C0809167028B83809168028C83809191 -:105A200069028D8380916A028E8380916B028F83DD -:105A300080916C02888780912E03843009F0A7CC76 -:105A40001091E9001F709091EC00892F817090FDFA -:105A500080E8182B82E08093E9008091E80080FFC5 -:105A60000DC050E040E060E270E0CE0101960E947F -:105A700056048091E8008E778093E8001F701093A1 -:105A8000E90085CC8A81823059F46B817C818D81DB -:105A90009E810E940A2F86E290E00E94852FCBCF44 -:105AA0008FEF8983C8CF4C816B818A810E94B20EAF -:105AB0009827892798279E838D83BDCF8D809E80D0 -:105AC0009824892498248A810B81F8E00F9F800113 -:105AD000112420E3829F000D111D11248C8190E080 -:105AE000880F991F080F191F692DC80187960E94FA -:105AF000852F682DC8018896D0CF0E941F0E9BCF9E -:105B00008A818138C1F060F4803809F094CF20E0B8 -:105B10004B816091900380918F030E9431138BCF52 -:105B2000823859F1833809F086CF20E04091910303 -:105B30006C818B81F2CF60E08B810E942A149B8163 -:105B400080918E03911111C08E7F80938E031092ED -:105B500084024FEF80E792E0415080409040E1F7AF -:105B600000C000000E94D80F66CF816080938E0332 -:105B700060E086950E942A145ECF8B818093920309 -:105B80005ACF8A81813899F030F4803809F053CFA8 -:105B90008091910321CF823891F0833809F04BCF67 -:105BA00080918F038B83809190038C8344CF80916D -:105BB0008E0380FF02C086950FCF80E00DCF8091CD -:105BC00092030ACF60918E0370918F0380919003AE -:105BD000909191030E941F132ECF80E18A832BCFD7 -:105BE00081E08A8389EFF8CE0A811B811027012783 -:105BF0001027FE0131963F018C80CF01880D911D49 -:105C00004C01C801895F9D4F8614970409F413CF96 -:105C1000093FE1E01E0750F40E94712FF3018483D5 -:105C20000F5F1F4FFFEF6F1A7F0AEBCFF301148254 -:105C3000F7CF0A811B81102701271027CE0101967B -:105C40003C018C80800E912E911CC801895F9D4F74 -:105C50008016910609F4EFCE093FE1E01E0720F41B -:105C6000F30164810E94852FFFEF6F1A7F0A0F5F97 -:105C70001F4FEBCF0E940F0EDECE8AE0AFCF0A811E -:105C80001B81102701271027CE0101963C018C8033 -:105C9000FC01E80DF11D4F01C80187968614970499 -:105CA00009F4C9CE003EF1E01F0750F40E94712FA5 -:105CB000F30184830F5F1F4FFFEF6F1A7F0AECCF52 -:105CC000F3011482F7CF0A811B81102701271027C7 -:105CD000CE0101963C018C80800E912E911CC80152 -:105CE00087968016910609F4A6CE003EE1E01E07D5 -:105CF00020F4F30164810E94852FFFEF6F1A7F0A61 -:105D00000F5F1F4FECCF09BD19BD09B400FEFDCFD9 -:105D10008091D8008F7D8093D8008091E0008260D0 -:105D20008093E0008091E00081FDFCCF0E94281666 -:105D300088CD86E290E00E94712F1B821C821D821A -:105D40008E8379CE2D32314008F0A4CCDACC2D32BE -:105D5000314008F053CC89CC87FB082E062687FDFE -:105D6000819567FD61950E94422F0EF4919507FC85 -:105D700081950895AA1BBB1B51E107C0AA1FBB1F39 -:105D8000A617B70710F0A61BB70B881F991F5A95C7 -:105D9000A9F780959095BC01CD01089597FB072E3A -:105DA00016F4009407D077FD09D00E94BA2E07FCA4 -:105DB00005D03EF4909581959F4F0895709561951B -:105DC0007F4F0895A1E21A2EAA1BBB1BFD010DC037 -:105DD000AA1FBB1FEE1FFF1FA217B307E407F5079B -:105DE00020F0A21BB30BE40BF50B661F771F881F77 -:105DF000991F1A9469F760957095809590959B010D -:105E0000AC01BD01CF010895EE0FFF1F0590F49185 -:105E1000E02D09946927962769277827872778270F -:105E200008950E94192F332312F48A1B9B0B0C94A4 -:105E30002A2FA29FB001B39FC001A39F700D811DA7 -:105E40001124911DB29F700D811D1124911D089583 -:105E50000E94192FB7FF0895821B930B08950E948B -:105E6000192FA59F900DB49F900DA49F800D911D9B -:105E700011240895B7FF0C942F2F0E942F2F821BFF -:105E8000930B0895991B79E004C0991F961708F0A9 -:105E9000961B881F7A95C9F780950895FB01DC0150 -:105EA00002C005900D9241505040D8F70895FC0172 -:105EB0004150504030F001900616D1F73197CF0194 -:105EC0000895882799270895FB01DC0104C08D916E -:105ED0000190801921F441505040C8F7881B990B5C -:105EE0000895F999FECF92BD81BDF89A992780B5A2 -:105EF0000895A6E1B0E044E050E00C94AB2FA8E197 -:105F0000B0E042E050E00C94AB2F262FF999FECF81 -:105F100092BD81BDF89A019700B4021639F01FBAFC -:105F200020BD0FB6F894FA9AF99A0FBE0895039619 -:105F3000272F0E94862F0E94852F252F0E94862FB3 -:105F4000242F0C94862F0196272F0E94862F0C94C5 -:105F5000852FDC01CB01FC01F999FECF06C0F2BD13 -:105F6000E1BDF89A319600B40D9241505040B8F717 -:105F70000895F894FFCF460F460F4F0F4F0F510F64 -:105F80004F0F4F0F4F0F460F460F560F4F0F4F0F2C -:105F9000560F22174A179D174A179D177D17B517D9 -:105FA0009D17B218BF180C1D0C1D7B1D7B1DD61D27 -:105FB000F01D421D421DFB1D831E921E921EEA2CE7 -:105FC000EE2C422D532D5E2D7D2D802DC12DE22DE9 -:105FD000502D502DED2DF02DF42D192E3A2E3D2E55 -:045FE0003F2E632EBF -:105FE40090050F0CEE0BEA0BE60B01191A1B1C1D96 -:105FF4001E1F202122010201FC002A00000000F6DD -:10600400004C00000000F0005000000000EA0051C5 -:1060140000000000E4004F00000000DE0052000019 -:1060240000000101818283E200E900EA00B500B6C4 -:1060340000B700CD008301CC008A019201940121B4 -:1060440002230224022502260227022A02B300B4F4 -:10605400006F007000F03435366667F6F7939600EB -:10606400FF0100010000FFFF0000010001FF00002C -:1060740001020202020606060909090909090F0FAD -:106084000F0F0F0F151515181919191919191919B1 -:10609400191923244022B6DA01B8010201FB0614BF -:0460A40007340700B6 +:100000000C949E030C94E5030C94E5030C94E50317 +:100010000C94E5030C94E5030C94E5030C94E503C0 +:100020000C94E5030C94E5030C94F6260C94B2268C +:100030000C94F1270C94E5030C94E5030C94E50370 +:100040000C94E5030C94E5030C94E5030C94E50390 +:100050000C94E5030C94CD270C94E5030C94E50374 +:100060000C94E5030C94E5030C94E5030C94E50370 +:100070000C94E5030C94E5030C94E5030C94E50360 +:100080000C94E5030C94E5030C94E5030C94E50350 +:100090000C94E5030C94E5030C94E5030C94E50340 +:1000A0000C94E5030C94E5030C94E5035800600000 +:1000B000000058005E00000058005D00000058007D +:1000C0005C00000057006000000057005F00000067 +:1000D00005010902A10185020901A1000509190113 +:1000E00029081500250195087501810205010930CF +:1000F00009311581257F950275088106093815811A +:10010000257F950175088106050C0A3802158125A1 +:100110007F950175088106C0C005010980A1018590 +:100120000319012AB700150126B700950175108142 +:1001300000C0050C0901A101850419012AA00215BE +:100140000126A002950175108100C005010906A1D4 +:10015000018505050719E029E715002501950875B2 +:100160000181020507190029EF1500250195F07599 +:10017000018102050819012905950575019102956E +:100180000175039101C00660FF0961A101096215B3 +:100190000026FF009520750881020963150026FFDF +:1001A00000952075089102C005010906A101050707 +:1001B00019E029E7150025019508750181029501CF +:1001C000750881010507190029FF150026FF009514 +:1001D0000675088100050819012905950575019125 +:1001E00002950175039101C00000000000000000AD +:1001F00000000000000000000000000000000000FF +:100200000000000000000000000000007E0F00D48D +:10021000FFFFFFC7000000780000000000000000A2 +:100220002A2B280000000000000000000000000051 +:1002300000000029000000002C1E3420212224345C +:100240002627252E362D3738271E1F20212223242E +:1002500025263333362E37381F0405060708090ACA +:100260000B0C0D0E0F101112131415161718191A66 +:100270001B1C1D2F3130232D350405060708090AE4 +:100280000B0C0D0E0F101112131415161718191A46 +:100290001B1C1D2F3130354C00047F3F1F6432146E +:1002A000643214783C1E1E140A050001010101018C +:1002B000010101010202020202020202020303031F +:1002C00003030303030404040404040405050505EF +:1002D00005060606060607070707070808080809AF +:1002E0000909090A0A0A0B0B0B0C0C0C0D0D0D0E5B +:1002F0000E0E0F0F0F1010111111121213131414F0 +:10030000151516161717181819191A1A1B1B1C1D64 +:100310001D1E1E1F202021222223242425262627BD +:100320002829292A2B2C2D2D2E2F303132323334EF +:1003300035363738393A3B3C3D3E3F4041424344F5 +:1003400045464748494A4C4D4E4F505153545556D7 +:1003500058595A5B5D5E5F616264656668696B6C83 +:100360006D6F7072737577787A7B7D7E80828385FE +:1003700087888A8C8E8F91939596989A9C9EA0A23E +:10038000A3A5A7A9ABADAFB1B3B5B7BABCBEC0C248 +:10039000C4C6C9CBCDCFD1D4D6D8DBDDDFE2E4E70C +:1003A000E9EBEEF0F3F5F8FAFDFFFFAA7F55400800 +:1003B0000706050D0C0B0A11100F161514131A1849 +:1003C0001B120903010002040E17192223252628F7 +:1003D000292A2C2D2F3032333536383A3B3D3E40DA +:1003E00042434547494A4C4E5051535557595A5C20 +:1003F0005E6062646668696B6D6F71737577797B37 +:100400007D7F81838587898A8C8E90929496989A35 +:100410009C9E9FA1A3A5A7A8AAACAEAFB1B3B4B64A +:10042000B8B9BBBCBEBFC1C2C3C5C6C7C9CACBCCA5 +:10043000CDCED0D1D2D2D3D4D5D6D7D7D8D9D9DA78 +:10044000DADBDBDBDCDCDCDCDCDDDDDDDDDCDCDCED +:10045000DCDCDBDBDBDADAD9D9D8D7D7D6D5D4D315 +:10046000D2D2D1D0CECDCCCBCAC9C7C6C5C3C2C1EA +:10047000BFBEBCBBB9B8B6B4B3B1AFAEACAAA8A747 +:10048000A5A3A19F9E9C9A98969492908E8C8A89FF +:10049000878583817F7D7B79777573716F6D6B69DC +:1004A00068666462605E5C5A5957555351504E4CB1 +:1004B0004A4947454342403E3D3B3A383635333260 +:1004C000302F2D2C2A2928262523224E007F004B51 +:1004D00000000001515400550056005F00600061AB +:1004E0000057005C005D005E00000059005A005B90 +:1004F00000580062000000630000004F000100503F +:100500000000000100AD002C005300145002530302 +:10051000532A000100010001000000010001000158 +:1005200000005C005C000001000000300001002FB2 +:1005300000000010500500170011030D0016000701 +:10054000002D01060119011000000011011D03E139 +:100550000057012C000000E2000000805F010081D4 +:100560005F00001050B9004A0017012B0352002B06 +:10057000011A01500051004F000000B6002C00B7D6 +:100580000028004E0000004B000000805F01008149 +:100590005F00001050010001000100010052000145 +:1005A000000100500051004F00000010033D080101 +:1005B0000053006800000069000000010001000114 +:1005C0000000000100010001000100010001000124 +:1005D0000001000100010001000000010001000114 +:1005E0000001000100000001000000010001000105 +:1005F00000000001000100010001000100010001F4 +:1006000000010001000100010000000100010001E3 +:1006100000010001000000010000000100010001D4 +:1006200000000001000100010001000100010001C3 +:1006300000010001000100010000000100010001B3 +:1006400000010001000000010000000100010001A4 +:100650000000000100010001000100010001000193 +:100660000001000100010001000000010001000183 +:100670000001000100000001000000010001000174 +:100680000000000100010001000100010001000163 +:100690000001000100010001000000010001000153 +:1006A000000100010000000100000009025B0003DE +:1006B0000100A0FA09040000010301010009211151 +:1006C0000100012240000705810308000A09040116 +:1006D000000203000000092111010001222200078D +:1006E000058203200001070503032000010904021D +:1006F00000010300000009211101000122B60007DA +:1007000005840320000A12010002000000084B418A +:1007100015000200010200010A03500053003100DD +:10072000370000001203410054004C0041004E000D +:1007300054004900530000000403090411241FBEA3 +:10074000CFEFDAE0DEBFCDBF04B603FE27C0809155 +:10075000940390919503A0919603B09197038730ED +:10076000904BA740B04BD1F4109294031092950394 +:10077000109296031092970314BE84B7877F84BFAC +:100780000FB6F894A895809160008861809360000E +:10079000109260000FBEE0E0F8E3099511E0A0E0E0 +:1007A000B1E0E4ECFEE502C005900D92A43CB10777 +:1007B000D9F723E0A4ECB1E001C01D92A439B2073F +:1007C000E1F70E9418280C94292F0C940000E8ED02 +:1007D000F0E080818E7F80831092E2001092DA0038 +:1007E0001092E100A0EEB0E08C9181608C9380814A +:1007F0008F77808319BCA7EDB0E08C918E7F8C93AE +:1008000080818F7E80831092070308952091E400F9 +:100810003091E50095E6A9012091EC00822F8170CE +:1008200020FF06C08091E80080FF06C080E00895A8 +:100830002091E80022FD1AC080912C03882389F0C2 +:10084000853089F08091EB0085FD0FC02091E40098 +:100850003091E50042175307F9F29150E1F684E038 +:10086000089582E0089583E0089581E00895EF926D +:10087000FF920F931F93CF937C018B010E9406047C +:10088000C82F811117C08091E80085FD0BC08091B1 +:10089000E8008E778093E8000E940604882399F38D +:1008A000C82F08C0F70181917F018093F1000150AA +:1008B000110949F78C2FCF911F910F91FF90EF9065 +:1008C000089580912E0387FF13C08091E80082FF76 +:1008D00006C08091E8008B778093E80004C0809187 +:1008E0002C038111F2CF089580912C038823D9F332 +:1008F0008091E80080FFF8CF8091E8008E77ECCF00 +:10090000982F9093E900242F762F50E0891731F02B +:100910007091EC002091ED005091F00021FD07C096 +:100920009F5F973071F78093E90081E008953091DF +:10093000EB003E7F3093EB003091ED003D7F309334 +:10094000ED003091EB0031603093EB007093EC00E0 +:100950002093ED005093F0002091EE0027FDE0CFB2 +:1009600080E00895CF92DF92EF92FF920F931F9352 +:10097000CF93DF93C8EDD0E088818F7E8883E7ED49 +:10098000F0E080818160808384E082BF81E0809399 +:10099000070388818E7F888302EE10E0F8011082C1 +:1009A0001092DA0081EEC82ED12CF60110828881D7 +:1009B0008F77888388818068888388818F7D88830A +:1009C00019BC10922C0310922D0310922B0310923D +:1009D0002A0390EEE92EF12CF70180818B7F808332 +:1009E00088818160888342E060E080E00E9480042A +:1009F000F60180818E7F8083F80180818160808311 +:100A0000808188608083F70180818E7F80838881E8 +:100A100080618883DF91CF911F910F91FF90EF90BC +:100A2000DF90CF900895FC018091340390913503BD +:100A300086179707A0F06115710529F49091E800D9 +:100A40009E779093E80090E06115710551F4911143 +:100A500008C08091E80082FF34C080E00895BC01A6 +:100A6000F2CF80912C038823C1F18530C1F18091B0 +:100A7000E80083FD30C08091E80082FDEACF8091DC +:100A8000E80080FFE1CF8091F3002091F200382F41 +:100A90006115710519F02830310558F091E02830C2 +:100AA000310509F090E02091E8002E772093E800CE +:100AB000CBCF81918093F100615071092F5F3F4F3F +:100AC000E7CF80912C03882341F0853041F080915D +:100AD000E80083FFBECF81E0089582E0089583E0BF +:100AE00008958091090308959C014FB7F89480916F +:100AF000FE029091FF02A0910003B09101034FBF4D +:100B0000821B930B08952FB7F8948091FE02909169 +:100B1000FF02A0910003B09101032FBF089520911F +:100B2000FB023091FC022817390771F09093FC0208 +:100B30008093FB02E091F902F091FA02309721F0E4 +:100B40000084F185E02D099408952091F7023091F9 +:100B5000F8022817390771F09093F8028093F70292 +:100B6000E091F902F091FA02309721F00680F781C6 +:100B7000E02D09940895E091F902F091FA0230977E +:100B800021F00190F081E02D099480E00895DC01CE +:100B90006091F3028091F402962F891301C00895A9 +:100BA000292F30E0F901EE0FFF1FE551FD4F408185 +:100BB00051814A175B07A1F487E08A9FA0018B9FB0 +:100BC000500D1124485E5E4F81E0FA018483961334 +:100BD000E6CF2F5F3F4F237033272093F302089512 +:100BE0002F5F3F4F922F9370D8CF109288021092B0 +:100BF0008702E8E1F1E08581811102C0148216824A +:100C0000379681E0E234F807B1F70895FA018111CF +:100C100001C0FB010994089580918C03982F9E7F59 +:100C200061F48170826080938C0380918F03853B97 +:100C300018F084EB80938F0308958A34B0F38170A9 +:100C40008864F1CFAF92BF92DF92EF92FF920F9341 +:100C50001F93CF93DF93182F062FE901453B08F030 +:100C600044EBE42FF0E0E655FD4F011110C0E49194 +:100C70005E2F4E2F4983E8835A83DF91CF911F91D6 +:100C80000F91FF90EF90DF90BF90AF900895202FCD +:100C900030E04491D42EE42EF12C56E0159FC00193 +:100CA0001124EFEFF0E0BF010E94332E812F90E07E +:100CB000880F991F55E5569FD001579FB00D1124FD +:100CC0008A1B9B0B982F990F890F5F01A21AB30AF9 +:100CD000AE9CD001AF9CB00DBE9CB00D11245B2F1B +:100CE000089F80011124012F11275F01A01AB10A6A +:100CF000AE9C8001AF9C100DBE9C100D11245F01B5 +:100D0000A81AB108A29EC001A39E900DB29E900D9C +:100D10001124892F9927E81BF90BEE9DC001EF9D47 +:100D2000900DFE9D900D1124E92F62307105A1F008 +:100D300050F46115710509F49DCF6130710581F0A2 +:100D4000EB2F512F97CF6430710569F080F066303A +:100D5000710509F48FCFF4CFE42F4B2F592F8ACF91 +:100D6000E42F412F87CFEB2F542F492F83CF4B2FC9 +:100D70005D2DE12F7FCF0E9483059C01909176022B +:100D800080917702982B21F03093730220937202A6 +:100D90009091780280917902982B21F03093710222 +:100DA00020937002E091F902F091FA02309749F035 +:100DB00082E0809374020480F581E02D84E792E064 +:100DC0000994089540917602803F59F4809177020A +:100DD00087FF0DC01092770241110BC010926E0276 +:100DE00008C0813F81F48091770218169CF3442358 +:100DF00081F08091780290917902892B09F05AC094 +:100E000010926D020895823F49F447FFF0CF10928F +:100E10007602809177028111ECCFE0CF833F19F405 +:100E20001416ACF3E4CF90917802893F29F4191697 +:100E3000F4F610927802DBCF8A3F19F497FFD7CFF0 +:100E4000F8CF909179028B3F29F497FFD0CF109281 +:100E50007902CDCF8C3F19F41916CCF3C8CF9CE0A2 +:100E6000980F953090F4845F990B21E030E0B90140 +:100E700002C0660F771F8A95E2F7CB0180959091AB +:100E80007502892380937502B2CF8D3F31F4809132 +:100E90006F028E7F80936F02AACF8E3F21F48091E4 +:100EA0006F028D7FF7CF8F3F09F0A1CF80916F0246 +:100EB0008B7FF0CF089580916F0280FD16C081FD79 +:100EC00016C082FD16C080916D028823A1F0883281 +:100ED00080F428E0829FC001112468E270E00E9443 +:100EE000472E862F672B39F0089582E0089584E01D +:100EF000089588E0089581E0089580916F0280FD53 +:100F000014C081FD14C082FD16C080916E0288233A +:100F100081F0843180F422E3829FC001112464E1D6 +:100F200070E00E94472E862F08958CE0089589E195 +:100F3000089585E0089582E30895803F31F40E948A +:100F40007D078195809377020895813F19F40E946F +:100F50007D07F8CF823F31F40E947D078195809311 +:100F600076020895833F19F40E947D07F8CF893FE8 +:100F700029F40E945B078093780208958A3F21F448 +:100F80000E945B078195F7CF8B3F31F40E945B078E +:100F900081958093790208958C3F19F40E945B0734 +:100FA000F8CF9CE0980F953070F4845F990B21E0A6 +:100FB00030E001C0220F8A95EAF780917502822BFA +:100FC0008093750208958D3F31F480916F028160A6 +:100FD00080936F0208958E3F21F480916F028260AA +:100FE000F7CF8F3FB9F780916F028460F1CF80E037 +:100FF0000895F894E82FE295EF70F0E031A1282FE2 +:101000002F7081E090E001C0880F2A95EAF7982FB1 +:101010009095932391A392A1892B82A3789408950C +:101020009091020392FF06C0282F28712830F9F40E +:10103000877F846093FF06C0282F28712831F1F440 +:10104000877E84612091030320FF06C0382F38710A +:101050003830D9F4877F816021FF06C0282F28719E +:101060002831D1F4877E816194FD877E0895282FF1 +:1010700024712430F9F68B7F8860DCCF282F24710F +:10108000243101F78B7E8861DDCF382F317131300B +:1010900019F78E7F8860E0CF282F2171213121F749 +:1010A0008E7E8861E1CFCF93DF93EC01823891058A +:1010B000A9F1D8F58133910509F496C048F5893234 +:1010C000910509F48AC08A9709F495C0C11521E5F4 +:1010D000D20708F0BCC0C11530E5D30708F014C131 +:1010E000C83ED10508F09CC0C03ED10560F5C83AA5 +:1010F000D10508F087C0C53AD10508F0FDC0C13060 +:10110000D10509F12097F9F0C430D105E0F440C0D1 +:101110008533910509F45AC0C997C1F6809102033D +:10112000837089F0C0EED0E00EC0833E910599F146 +:1011300070F4803E910501F1823E910539F680916F +:10114000020382FD21C0CE01DF91CF910895863E3A +:10115000910561F1873E910571F1843E910509F099 +:10116000B5CF8091030381FFEECF80910203C7EEDC +:10117000D0E084FD0DC0E7CF8091020380FD12C155 +:101180009091030390FFDFCFC3EED0E084FFDBCF6D +:10119000D0E0C0E0D8CF8091020382FD06C19091DB +:1011A000030390FDBFCF84FFCECFF2CF8091020327 +:1011B00083FDDDCFC8CF8091020383FDF9C09091FC +:1011C000030391FFF0CFC4EED0E0BDCF80910203C6 +:1011D00085FFB9CFC9E2D0E0B6CF8091020385FF89 +:1011E000B2CFC5E3D0E0AFCF8091020386FFABCF93 +:1011F000CAE2D0E0A8CF8091020386FFA4CFC1E36A +:10120000D0E0A1CFCF3BD10518F6C85AD0E0CC0F23 +:10121000DD1FC95BDE4F0990D881C02DD46493CF08 +:10122000C11540E2D40758F4C11581E0D80708F091 +:101230008ACFC03FD10508F4ABCFD06584CFC115AC +:1012400090E4D90708F4A4CFDF70D06A7CCFC11531 +:1012500025E5D20700F5C11534E5D30708F08AC0AB +:10126000C11543E5D40708F071C0C11582E5D80760 +:1012700008F467C0CE018370992721E030E002C0F6 +:10128000220F331F8A95E2F7C695C69580E2C89F64 +:10129000E001112452C0C11599E5D907A8F4C11580 +:1012A00028E5D20708F06BC0C11536E5D30708F072 +:1012B0006FCF8C2F0E941008C82FD0E0DC2FCC27D6 +:1012C000CC27DF71D0623FCFC1154AE5D40708F4BF +:1012D0005BC0CE0190568115904208F059CF8D2FFA +:1012E0008F710E94100890E0982F882788279F719F +:1012F0009C012C2BE901E6CFC55AD0E0CC5BDE4F38 +:10130000C881D0E0D0641FCFCE01E4E096958795E8 +:10131000EA95E1F783702C2F26952695237040E2FD +:10132000249F90011124382B8C2F8370C1E0D0E0D2 +:1013300002C0CC0FDD1F8A95E2F7C22BD32BDC68ED +:1013400002CFDC2FCC27C16FD06AFDCECE018370D7 +:10135000992721E030E002C0220F331F8A95E2F77F +:10136000C695C69590E2C99FE0011124C22BD32BEC +:10137000DA68E9CEDC2FCC27C46FD06AE4CEDC2F4C +:10138000CC27C06FD06ADFCE8C2F8F700E941008E0 +:1013900034E0D695C7953A95E1F7CF709C2FEC01D4 +:1013A000D069D1CEC9E3D0E0CECEC2EED0E0CBCE74 +:1013B000C6EED0E0C8CE8091440281111092440262 +:1013C00008958091430290914202892B90914102AD +:1013D000892B8093C601909144029923A1F0892B17 +:1013E0008093C60180914301882341F180910203DB +:1013F00087FF24C08EE1E8ECF1E090E0815000F539 +:1014000091110E94DB09E091F902F091FA02309704 +:10141000E1F080914301882359F08091020387FF16 +:1014200007C08091C6018093C70185E08093C60103 +:101430000280F381E02D86EC91E0099486E0DBCF19 +:1014400021912223D9F29F5FD9CF08959091430132 +:101450009923D1F09091020397FF16C0E82FE695EB +:10146000E695E695EE31E0F4F0E0EA53FE4F282FE2 +:10147000277081E090E001C0880F2A95EAF78095F7 +:101480009281892382830895E8ECF1E09191891398 +:1014900003C0DF0111971C9291E0EE3CF907B1F710 +:1014A0000895909143019923C1F09091020397FF11 +:1014B00014C0E82FE695E695E695EE31F8F4F0E0F5 +:1014C000EA53FE4F877021E030E001C0220F8A9579 +:1014D000EAF78281822B82830895A8ECB1E0EFEFD6 +:1014E00090E02D91821751F0EF3F19F4211101C0C6 +:1014F000E92F9F5F9630A9F7EF3F09F408950E2E6C +:10150000000CFF0BEA53FE4FE6CF80913F02909113 +:10151000FE01981301C008958F5F8770FACF990F6D +:10152000990F890F982F977086958695869524E058 +:10153000829FF0011124E651FE4F50E040E080E030 +:10154000219130E0092E02C0369527950A94E2F7E2 +:1015500021703327042E01C0220F0A94EAF7822B50 +:101560004F5F5F4F4430510559F70895990F990F18 +:10157000890F982F977041E001C0440F9A95EAF7C0 +:1015800086958695869594E0899FF0011124E65111 +:10159000FE4F30E020E070E05191DF011197CB0168 +:1015A000022E02C0969587950A94E2F78170819584 +:1015B0008527842385278C932F5F3F4F2430310567 +:1015C00059F7089590E080E00E94A50590E080E042 +:1015D0000E948F0510924202109241020E94E1097E +:1015E00086E0E4E7F2E0DF011D928A95E9F71092C8 +:1015F0006E0210926D0210926F020C94BB069093D3 +:101600004602809345020C94E20A882341F08095BB +:10161000909142028923809342020C94E10908953B +:10162000882339F090914202982B909342020C94B7 +:10163000E1090895882341F0809590914302892320 +:10164000809343020C94E1090895882339F0909126 +:101650004302982B909343020C94E1090895882348 +:1016600009F459C0823871F40E94BB0581FF53C050 +:1016700089E30E94510A0E94E10989E30E94260A37 +:101680000C94E109833859F40E94BB0580FF43C0E4 +:1016900083E50E94510A0E94E10983E5EFCF843877 +:1016A00059F40E94BB0582FF36C087E40E94510AAC +:1016B0000E94E10987E4E2CF9CEF980F913AF0F2A3 +:1016C00090E2980F983088F4877021E030E0A9010B +:1016D00002C0440F551F8A95E2F7CA018095909188 +:1016E0004302892380934302CBCF9BE5980F93302D +:1016F00020F490E080E00C94A50598E5980F9731D0 +:1017000020F490E080E00C948F05803F20F00E9450 +:10171000E2060C94BB060895809580FF08C0589A95 +:1017200081FF07C05D9A82FF06C05C9A08955898B1 +:10173000F7CF5D98F8CF5C98089590912C03943082 +:1017400029F5809304037093060360930503909337 +:10175000E9008FEF9091E800815095FD06C095ED6E +:101760009A95F1F700008111F5CF8091E80085FF8F +:101770000DC050E040E063E070E084E093E00E9440 +:1017800037048091E8008E778093E8000895BC01CB +:1017900084E00C949D0BBC0183E00C949D0B9C0198 +:1017A00084E08093E9009FEF8091E800915085FDEF +:1017B00006C085ED8A95F1F700009111F5CF809173 +:1017C000E80085FF0CC050E040E066E070E0C90131 +:1017D0000E9437048091E8008E778093E800089596 +:1017E000CF93DF93EC01809143018823B1F1809185 +:1017F000020387FF32C060E284E08093E9008FEF4C +:101800009091E800815095FD06C095ED9A95F1F70D +:1018100000008111F5CF8091E80085FF1BC0809109 +:10182000430170E050E040E0811104C050E040E02E +:1018300068E070E0CE010E9437048091E8008E7766 +:101840008093E80080E2FE01AAE0B3E001900D92EF +:101850008A95E1F7DF91CF91089568E081E0CDCFDF +:1018600081E08093E00080E28093D8001092C9006C +:101870008FE19EE40197F1F700C0000087E090EB54 +:10188000DC018093940390939503A0939603B09307 +:10189000970388E19CE00FB6F894A89580936000C8 +:1018A0000FBE90936000FFCFCF93C82F882309F419 +:1018B000AEC08238C1F40E94BB0581FDA8C089E397 +:1018C0000E94510A0E94E1092FEF81EE94E021501D +:1018D00080409040E1F700C0000089E30E94260AA2 +:1018E000CF910C94E1098338A1F40E94BB0580FDDF +:1018F0008EC083E50E94510A0E94E1092FEF81EE1C +:1019000094E0215080409040E1F700C0000083E562 +:10191000E5CF8438A1F40E94BB0582FD78C087E43E +:101920000E94510A0E94E1092FEF81EE94E02150BC +:1019300080409040E1F700C0000087E4CFCF8CEFFB +:101940008C0F813A88F580914301882301F18091C1 +:10195000020387FF1CC0EC2FE695E695E695F0E0C4 +:10196000EA53FE4F828190E04C2F477021E030E037 +:1019700002C0220F331F4A95E2F782239323892B5B +:1019800079F08C2F0E94260A0E94E10909C0E8EC38 +:10199000F1E08191C817A9F321E0EE3CF207C9F705 +:1019A0008C2F0E94510A9CCF80E28C0F883068F403 +:1019B000C77021E030E001C0220FCA95EAF780919C +:1019C0004302822B809343028BCFEBE5EC0FE33095 +:1019D00040F4F0E0EC5BFE4F808190E0CF910C94FE +:1019E000A505E8E5EC0FE73150F4F0E0EE0FFF1F3E +:1019F000E95BFE4F80819181CF910C948F05C03FB0 +:101A000030F08C2F0E949D07CF910C94BB06CF9194 +:101A100008951F93CF93DF93182FD0E0C0E0893350 +:101A200011F4C0E5D0E0812F0E94540C209731F4CE +:101A3000812FDF91CF911F910C942F0B8FE99FE0A5 +:101A40000197F1F700C000002197F0CF0F931F938B +:101A5000CF93DF93C62FD42F022FFC0182818823DE +:101A6000A1F0609393030E94830590939203809367 +:101A70009103C77081E001C0880FCA95EAF7DF9132 +:101A8000CF911F910F910C94250B809193036813B4 +:101A900035C080919103909192030E947405883C17 +:101AA000910560F510E21D0FCD17B9F080E28C0FA3 +:101AB000883040F4C77081E001C0880FCA95EAF70A +:101AC0000E941A0B183048F481E09D2F977001C0D6 +:101AD000880F9A95EAF70E94250B802F0E94090D26 +:101AE000183098F4D77081E001C0880FDA95EAF7D2 +:101AF000DF91CF911F910F910C941A0BC77081E069 +:101B000001C0880FCA95EAF7F3CFDF91CF911F91FB +:101B10000F910895DF92EF92FF920F931F93CF934F +:101B2000DF93E82FF0E0E85EFD4FD490282F269554 +:101B30002695269530E0F901E85FFD4F0491877006 +:101B400010E0082E02C0159507950A94E2F701707F +:101B50001127F901E850FE4FE490F12C082E02C045 +:101B6000F594E7940A94E2F791E0E922FF24F90161 +:101B7000E851FE4FC491D0E002C0D595C7958A9533 +:101B8000E2F7C170DD270115110519F081EE0E9401 +:101B9000540CE114F10419F086EE0E94540C8D2DC2 +:101BA0000E94090DEF2819F086EE0E942F0B012BE1 +:101BB00019F081EE0E942F0BCD2B51F08CE2DF91BA +:101BC000CF911F910F91FF90EF90DF900C94090D32 +:101BD000DF91CF911F910F91FF90EF90DF900895CB +:101BE000CF93DF93C7E0D2E060E0CE010E94F52EF4 +:101BF0002196C11584E0D807B9F7DF91CF910895F8 +:101C00006F927F928F929F92AF92BF92CF92DF920C +:101C1000EF92FF920F931F93CF93DF938BECC82E1D +:101C200084E0D82E0FE510E0E801E09736011CC0F3 +:101C3000F50185909490692DC7010E94F52E682DBD +:101C4000C70101960E94F52E82E0A80EB11C82E029 +:101C5000E80EF11CCE15DF0559F788E0680E711CFF +:101C600028960C171D0731F07E0188E0E81AF1086C +:101C70005301DECF005D1F4F80E3C80ED11C0F3330 +:101C800082E0180789F6DF91CF911F910F91FF90A5 +:101C9000EF90DF90CF90BF90AF909F908F907F900C +:101CA0006F900895CF93C82F6FEF811161E283E2A7 +:101CB00090E00E94F52E6FEFC11161E184E290E0A7 +:101CC0000E94F52E6FEFC11168E085E290E0CF91A0 +:101CD0000C94F52E80E00E94520E60E086E290E0C7 +:101CE0000E94F52E0E94000E0E94F00D81E00C94DF +:101CF000520ECF93C0910303C2FB992790F9981716 +:101D000081F080FBC2F9C09303036091020384E079 +:101D100090E00E94F52E6C2F82E290E0CF910C941F +:101D2000F52ECF9108950F931F93CF93DF9328E063 +:101D3000629FE001112450E0440F551FC40FD51FCE +:101D400030E3839FC00DD11D1124CE0187960E94E0 +:101D5000E12E082F10E0102F0027CE0188960E9458 +:101D6000E12E9801282BC901DF91CF911F910F918E +:101D70000895462F8A3038F4763028F4643018F409 +:101D8000672F0C94930E90E080E00895BF92CF925D +:101D9000DF92EF92FF920F931F93CF93DF937C011B +:101DA00000913603109137038091450290914602CD +:101DB000082B192BCFE0D0E0CC24C394D12CBC2E1F +:101DC000C6010C2E02C0880F991F0A94E2F78023E7 +:101DD0009123892B71F4219790F7B12C8B2DDF91F2 +:101DE000CF911F910F91FF90EF90DF90CF90BF9018 +:101DF0000895B7018C2F0E94B90E0E9453080197D5 +:101E000051F3ECCFCF93DF93EC010E94C60EBE01DD +:101E10000E94B90EDF91CF910C945308FC0186818A +:101E20009781009779F00E945308292F2F7092957F +:101E30009F7092509E30A0F4E92FF0E0E55DF04DE8 +:101E40000C947D2E808191810E94020FEECF803F05 +:101E500019F020F4883E20F481E00895843FE1F3F6 +:101E600080E00895883EC0F3813FD1F7F5CF822FFF +:101E700086958695869508951F93CF93DF9300D01E +:101E800000D00F92CDB7DEB7FC0126813781211536 +:101E9000310541F525E0DE01119601900D922A955C +:101EA000E1F7FC01228189819A812223B9F066231E +:101EB000A9F00E94C60E182F682F89819A810E946E +:101EC000B60A69817A81812F0F900F900F900F9041 +:101ED0000F90DF91CF911F910C94B90E0E948F0A41 +:101EE000182FEFCFC9010F900F900F900F900F9008 +:101EF000DF91CF911F91089583E290E00E94E12E3F +:101F0000813289F484E290E00E94E12E813159F41B +:101F100085E290E00E94E12E91E0883009F090E0A7 +:101F2000892F8170089580E0FCCFCF9384E090E00A +:101F30000E94E12EC82F82E290E00E94E12E982FAD +:101F40008C2FCF91089560918C03669570E04BE0E3 +:101F500050E08AE091E00E94C72E892B19F481E0BD +:101F6000809382020E94830590937C0280937B027F +:101F70000895AF92BF92CF92DF92EF921F93CF93CB +:101F8000DF93CDB7DEB7C455D1090FB6F894DEBFE5 +:101F90000FBECDBF80918C0380FD0AC0E8E3F3E063 +:101FA000118210821282339683E0EC38F807C1F771 +:101FB0007FEAA72E73E0B72EDE011196AE014B5AD1 +:101FC0005F4F1A2F7B2FF5018491282F30E0C90134 +:101FD000880F991F820F931F885C9C4FFC01C08063 +:101FE000D180E280CD92DD92ED92FFEFAF1ABF0A71 +:101FF000A417B50741F7279A35B13F7725B1206877 +:102000006FB7F894812F972FFC017191CF01E8E011 +:1020100025B9000000C077FF35B9770F000000C078 +:1020200000C000C035B900C0EA9591F78417950744 +:1020300059F76FBF8FE594E00197F1F700C00000FA +:10204000CC5ADF4F0FB6F894DEBF0FBECDBFDF9185 +:10205000CF911F91EF90DF90CF90BF90AF900895F8 +:102060001F93CF93DF9300D00F92CDB7DEB7162F1B +:1020700090918C0390FF18C09E012F5F3F4F48E75F +:102080006FEF0E9422068B819981612F70E0FB0126 +:10209000EE0FFF1FE60FF71FE85CFC4F2A8121833C +:1020A000908382830E94B90F0F900F900F90DF9161 +:1020B000CF911F910895EF92FF920F931F93CF93AB +:1020C000DF938C01C8E3D3E0F12CE12CF80194817B +:1020D00060918E0380918D03FEE0EF16F104FCF415 +:1020E0009923F9F09E0140918F030E9422062FEF61 +:1020F000E21AF20A23968CE1E816F10439F70E94FD +:10210000B90FF801848190E001968170992784834A +:10211000DF91CF911F910F91FF90EF900895992338 +:1021200009F39E0140E0E1CF8F929F92AF92BF9260 +:10213000CF92DF92EF92FF920F931F93CF93DF9393 +:10214000EC014C81042F10E09801D8010E94922EDE +:102150009B01AC010E94A82E4B015C01E0E2F0E083 +:10216000E01BF10BA5E5B0E0AC019B010E94A82E9D +:102170006B017C019F01DF010E948A2E9B01AC0153 +:102180000E94B32E9B01AC01280D391D4A1D5B1D19 +:10219000C701B6010E945B2EF22E822F90E039E239 +:1021A0003F15D8F143E0249F9001112435952795E0 +:1021B000122F109598E3C92E93E0D92E00E085E503 +:1021C000E82EEF188E2D01FD8F2D9601412F609185 +:1021D0008E030E9422060F5F53E0C50ED11C0C3106 +:1021E00089F70E94B90F9C8181E0992319F0903200 +:1021F00019F48FEF8093170180911701890F8C8359 +:10220000DF91CF911F910F91FF90EF90DF90CF90D2 +:10221000BF90AF909F908F90089525E530E0A90181 +:10222000481B590BCA019A01220F331F280F391F6F +:1022300037FFBCCF2F5F3F4FB9CF0F931F93CF9383 +:10224000DF93C8E3D3E0FE0111821082128233963D +:1022500083E0EC38F807C1F710E000E080918502D8 +:10226000082E000C990B081719078CF180911601A4 +:10227000082E000C990B801791074CF19E0140919C +:102280008F0360918E0380918D030E9422060F5F61 +:102290001F4F23960C31110509F70E94B90F809149 +:1022A000150190918502980F909385022091160157 +:1022B000280F20931601121614F49B311CF08195FF +:1022C00080931501DF91CF911F910F91089519828D +:1022D00018821A82DCCFBF92CF92DF92EF92FF92E8 +:1022E0000F931F93CF93DF93FC018281DD24DA9457 +:1022F00080FD02C0DD24D39408E313E0D0E0C0E009 +:102300002CE1B22EF80111821082128294E0E92EA3 +:10231000F12CC12C809184028C0D8D310CF43DC0C8 +:102320006B2D0E94252E892F082E000C990B8C17DF +:102330009D0791F480918F038E9DA0018F9D500D7C +:1023400011245595479555954795980160918E03B1 +:1023500080918D030E942206CD0CF1E0EF1AF10866 +:10236000C9F621960D5F1F4FCC31D10559F60E9459 +:10237000B90F8091840291E0D91215C0811111C06A +:102380008BE180938402DF91CF911F910F91FF9099 +:10239000EF90DF90CF90BF90089587FFC5CF845E08 +:1023A000C3CF8150EECF90E00196BE010E94472E30 +:1023B000E8CFEF92FF921F93CF93DF93EC0188E376 +:1023C000E82E83E0F82E10E08C81970140918F0376 +:1023D00060918E03810F0E942206175F83E0E80E52 +:1023E000F11C1C3F89F70E94B90F9A818C8190FFE4 +:1023F00008C08F5F8C83DF91CF911F91FF90EF908A +:1024000008958150F7CF90918C0390FF0CC0E8E3C2 +:10241000F3E0818360834283339693E0EC38F907DD +:10242000C1F70C94B90F08950F931F93CF93DF93C7 +:1024300000D00F92CDB7DEB78C018091860281115A +:102440000AC09E012F5F3F4F44EB6FEF0E942206B0 +:102450008A8180938602F8016481613069F08091FD +:10246000860240E0662361F040E0623011F4409162 +:10247000860280E060E004C06091860240E080E077 +:102480000E940312F801848190E0019663E070E0FD +:102490000E94472E84830F900F900F90DF91CF9171 +:1024A0001F910F910895CF93DF9300D00F92CDB776 +:1024B000DEB790918C0390FF0AC09E012F5F3F4FC3 +:1024C0000E9422064B8169818A810E9403120F902B +:1024D0000F900F90DF91CF910895CF93DF93EC0190 +:1024E000ECE8F3E0438162818C810E9453128C817D +:1024F0008F5F8C83DF91CF910895CF93DF93EC01B1 +:10250000EC81F0E0E553FC4F4491ECE8F3E06281AC +:1025100081810E9453128C818F5F8C83DF91CF91D8 +:102520000895CF92DF92EF92FF926B017C010E949F +:102530000C06B701A60188E090E0FF90EF90DF90D5 +:10254000CF900C94072F5F926F927F928F929F9201 +:10255000AF92BF92CF92DF92EF92FF920F931F93B1 +:10256000CF93DF9300D00F92CDB7DEB7182F762E22 +:10257000042F622E90918C0390FF29C0E92FE695DD +:10258000AE2FB0E0A157BE4F8C91809381029E7F09 +:10259000923081F59E012F5F3F4F812F0E942206CE +:1025A0004B8169818A810E94031210938D0370927E +:1025B0008E0300938F03662051F060918C0370911D +:1025C0008D0380918E0390918F030E9491120F9042 +:1025D0000F900F90DF91CF911F910F91FF90EF908F +:1025E000DF90CF90BF90AF909F908F907F906F9033 +:1025F0005F900895823019F400918F03D6CF863012 +:1026000019F410918D03D1CF8930D9F3893169F64E +:10261000E9518E2F8170582EE695F0E0E655FC4F7B +:10262000A590B490BB2488E3E82E83E0F82ED12C4B +:10263000C12C9CE1892E912CC601B4010E94332E3D +:10264000812F511013C0860F9701402F672D0E94D4 +:102650002206CA0CDB1C83E0E80EF11C8CE8E816AD +:1026600083E0F80649F70E94B90F9FCF861BECCF95 +:10267000ECE8F3E0438128E0421B08F440E021E06D +:10268000628181810C94A312ECE8F3E0438128E09D +:10269000420F08F44FEF21E0628181810C94A31274 +:1026A000ECE8F3E0628128E0621B08F460E021E0DE +:1026B000438181810C94A312ECE8F3E0628128E06D +:1026C000620F08F46FEF21E0438181810C94A31223 +:1026D000ECE8F3E0818121E04381628188500C9431 +:1026E000A312ECE8F3E0818121E043816281885FFD +:1026F0000C94A31280919003882319F08150809349 +:10270000900360918C0370918D0380918E03909162 +:102710008F030C94911280919003833018F48F5F93 +:102720008093900360918C0370918D0380918E0350 +:1027300090918F030C94911290918C0390FF36C06E +:102740009170811129C0926090938C03662351F09F +:1027500060918C0370918D0380918E0390918F0313 +:102760000E94911260918C03669570E04BE050E0FE +:102770008AE091E00E94C72E892BA9F01092820274 +:1027800081E080937E0220E040918F0360918E0370 +:1027900080918D030C94A312853210F09864D4CFED +:1027A000880F982BD1CF0E94A30FEACF089521E084 +:1027B00030E0A90102C0440F551F8A95E2F7CA0113 +:1027C00020918302662399F0822B8093830280916B +:1027D0008202811106C080918C0360E086950E9480 +:1027E0009C1380918C0380FD05C00C94B90F8095DB +:1027F0008223EBCF08950F931F93CF93DF93EC01C8 +:1028000061E0009709F0682F617080E00E94D713A3 +:1028100060E0209721F0BE0176956795617081E0B8 +:102820000E94D71360E0209731F0BE01769567953E +:1028300076956795617082E00E94D71360E02097DB +:1028400039F0BE0113E0769567951A95E1F761704E +:1028500083E00E94D71360E0209739F0BE01B4E016 +:1028600076956795BA95E1F7617084E00E94D71379 +:10287000AE0170E060E0BB27A72F962F852F009751 +:10288000A105B105D9F1AC01BD0188E08A019B0128 +:10289000F4E03695279517950795FA95D1F7011528 +:1028A00011052105310519F08C5FB901A8018A01D4 +:1028B0009B01E2E03695279517950795EA95D1F7A4 +:1028C000011511052105310519F08E5FB901A80127 +:1028D0007695679557954795452B462B472B09F0DD +:1028E0008F5F823019F160F4882399F08130C1F054 +:1028F000CE01DF91CF911F910F91089580E0C6CF57 +:102900008330C9F08430A1F720E044E66FEF8FE018 +:1029100004C020E044E66FEF82E30E94A312E8CFF8 +:1029200020E044E66FEF85E00E94A31220E044E639 +:102930006FEF80E8F2CF20E044E66FEF87EDEDCF58 +:102940000E94FB1390933703809336030C94E20AA2 +:1029500080913603909137039C01267033272630EF +:10296000310519F488600C94A014877FFCCF21E016 +:1029700030E002C0220F331F8A95E2F72095309590 +:102980008091360390913703822393230C94A014F3 +:10299000909140028095892380934002282F2770D0 +:1029A00039F4282F082E000C330B9217130621F44C +:1029B0009091030392FF07C08595859585950E94A8 +:1029C000B71410924002089521E030E002C0220FB7 +:1029D000331F8A95E2F78091360390913703822B5B +:1029E000932B0C94A01480918C038695815009F44C +:1029F00084E261E00C949C1380918C0386958F5F38 +:102A0000853208F081E061E00C949C1390918C0376 +:102A100090FF07C09695981720F0961710F40C9425 +:102A2000FC1461E00C949C13ECE8F3E083E08083F9 +:102A300011828FEF828388E28383148260817181A7 +:102A4000828193810C94911269EE7EEF90E080E098 +:102A50000E94132F60E082E090E00E94F52E60E07B +:102A600083E090E00E94F52E1092460210924502FB +:102A700060E084E090E00E94F52E60E082E290E069 +:102A80000E94F52E60E085E090E00E94F52E60E067 +:102A900086E090E00E94F52E6FEF87E090E00E94C4 +:102AA000F52E40E050E0BA0188E090E00E94072F48 +:102AB00060E08DE090E00E94F52E40E050E0BA0129 +:102AC00088E190E00E94072F60E087E190E00E949B +:102AD000F52E40E050E0BA018CE190E00E94072F13 +:102AE00070E060E080E290E00E94132F40E050E050 +:102AF000BA0188E190E00E94072F80E00E94520E08 +:102B00000E946A0E40E050E0BA018FE090E00E941F +:102B1000072F40E050E0BA0183E190E00C94072FCA +:102B200090E080E00E94EF2E893E9E4F11F40C94BD +:102B30007C0F80E008951092430280914301E8ECFD +:102B4000F1E0882359F08091020387FF07C08EE1EE +:102B5000DF011D928A95E9F70C94E20A86E0F8CF2E +:102B60001F93CF93DF93CDB7DEB7AA970FB6F89434 +:102B7000DEBF0FBECDBF8EE293E02091F100DC01FD +:102B80002D93CD01B3E086339B07B9F780912F03D6 +:102B9000833009F471C0B8F4813009F448C0823040 +:102BA00009F4B2C08091E80083FF3AC180912E03FE +:102BB00090912F039A3008F033C1E92FF0E0E75CE1 +:102BC000F04D0C947D2E8A3009F48DC08B3009F4C1 +:102BD00070C0893039F780912E03813219F78091C6 +:102BE000320390913303009711F00297D9F6809148 +:102BF000E800877F8093E8008091E80082FF37C07B +:102C00009091F3008091F200029729F48091F100F5 +:102C10008B7F813021F48091F100809309038091B2 +:102C2000E8008B778093E8000E946104BBCF80911D +:102C30002E03813A09F0B6CF8091E800877F809318 +:102C4000E8008091320390913303892B61F460E2B4 +:102C50008AE093E070E00E9413058091E8008B7792 +:102C60008093E8009FCF60E090E080E0F3CF809118 +:102C70002C038111C1CF96CF80912E03813A09F0A8 +:102C800091CF8091320390913303892B09F08ACF41 +:102C90008091E800877F8093E8008091E80080FFC2 +:102CA000FCCF809143018093F1008091E8008E7702 +:102CB000B9CF80912E03813209F074CF8091320315 +:102CC00090913303892B09F06DCF8091E800877FC5 +:102CD0008093E8000E946104809130038093430157 +:102CE0000E949B155FCF80912E03813209F05ACF4D +:102CF0008091E800877F8093E8000E9461048091C2 +:102D00003103809308034ECF80912E03813A09F05E +:102D100049CF8091E800877F8093E8008091E800A8 +:102D200080FFFCCF80910803BECF803899F08238B5 +:102D300009F076C0809132038F70873008F070C040 +:102D40008093E9008091EB0085FB882780F9109241 +:102D5000E90006C080912A0390912B0391118260B3 +:102D60009091E800977F9093E8008093F100109293 +:102D7000F1008091E8008E77B5C1882309F4A2C1E3 +:102D8000823009F04DC0809130038111A6C180913D +:102D900032038F702FEF280F263008F041C0809348 +:102DA000E9002091EB0020FF98C1933031F480912D +:102DB000EB0080628093EB0090C19091EB009061FA +:102DC0009093EB0021E030E001C0220F8A95EAF7F2 +:102DD0002093EA001092EA008091EB008860EACF2D +:102DE00081111EC0109130031F778091E30080781D +:102DF000812B8093E3008091E800877F8093E80037 +:102E00000E9461048091E80080FFFCCF8091E30084 +:102E100080688093E30082E0111183E080932C03AB +:102E20008091E80083FF0AC08091E800877F80934B +:102E3000E8008091EB0080628093EB00AA960FB6C9 +:102E4000F894DEBF0FBECDBFDF91CF911F910895E3 +:102E50008058823028F720913003309131032C3D87 +:102E6000E3E03E07A1F583E08A838AE289834FB7D6 +:102E7000F894DE01139620E03EE051E2E32FF0E00B +:102E800050935700E49120FF03C0E295EF703F5F3D +:102E9000EF708E2F90E0EA30C0F0C7968D939D932F +:102EA0002F5F243159F74FBF8091E800877F8093CF +:102EB000E8006AE270E0CE0101960E94130580915D +:102EC000E8008B778093E800ABCFC096E7CF809186 +:102ED000320390913303432F55274330510509F4B2 +:102EE0004AC078F54130510509F47AC08BE590E08D +:102EF000EBEAF6E04230510509F092CF2091E8006C +:102F0000277F2093E8002091340330913503821706 +:102F1000930708F49C0140E02115310509F065C0D4 +:102F2000411163C08091E80082FDC9CF80912C03DC +:102F3000882329F2853019F28091E80083FFF2CFCF +:102F4000BECF4132510509F43CC04232510509F06F +:102F500067CF8330910508F063CFFC01EE0FFF1FB0 +:102F6000E954FE4F0190F081E02D8C549E4FDC011E +:102F70008C9190E01AC0332721303105D1F0211512 +:102F8000310561F02230310509F04ACFE8E1F7E080 +:102F9000E4918E2F90E0E8E1F7E007C0E8E3F7E086 +:102FA000E4918E2F90E0E8E3F7E0009709F438CF42 +:102FB000A5CFE4E2F7E0E4918E2F90E0E4E2F7E0C1 +:102FC000F4CF8330910508F02BCF880F991FFC01B7 +:102FD000E354FE4F0190F081E02D89E090E08ECF28 +:102FE00082E190E0E6E0F7E089CF80912C0388232E +:102FF00009F465CF853009F462CF8091E80083FD44 +:103000005ECF8091E80082FD8DCF8091E80080FF47 +:1030100083CF9091F3008091F2002115310519F0D2 +:103020008830910550F041E0089709F040E0809128 +:10303000E8008E778093E8006FCF44914093F100D1 +:103040003196215031090196E8CF803809F0E8CE59 +:103050008091E800877F8093E80080912D03809322 +:10306000F10087CE8111DCCE10913003123008F0D0 +:10307000D7CE8091E800877F8093E80010932D03DE +:103080000E946104112311F084E005C08091E300E7 +:1030900087FDFACF81E080932C0342E061EC81E070 +:1030A0000E94800442E261EC84E00E94800442E2DB +:1030B00061EC82E00E94800442E260EC83E00E94C6 +:1030C0008004AECE80913003813009F0A9CE81E03A +:1030D000933009F080E080932B031092E9008091F7 +:1030E000E800877F8093E8000E94610499CE9F9258 +:1030F000AF92BF92CF92DF92EF92FF920F931F9306 +:10310000CF93DF9300D000D0CDB7DEB77C01FC01B8 +:1031100083819481892B31F08081918189238F3F34 +:1031200009F060C60F900F900F900F90DF91CF9134 +:103130001F910F91FF90EF90DF90CF90BF90AF90D5 +:103140009F900895980122513F452031310508F0A4 +:103150003EC68FEF93E00E94E12E025167E0C62E3B +:1031600062E0D62E882339F1809140028770D1F237 +:10317000F70182818823B1F282E00F900F900F90C7 +:103180000F90DF91CF911F910F91FF90EF90DF9003 +:10319000CF90BF90AF909F900C94C814C114F4E0EE +:1031A000DF0611F3C6010E94E12E811101C001501A +:1031B0002FEFC21AD20A0111F1CF1C821B82BB244D +:1031C000B3945AE0A52E86010F5F1F4FC6010E94DF +:1031D000E12E89831A82882339F29FEF980F93306A +:1031E00008F58A83B98232E0C30ED11CC8010E945F +:1031F000E12E8B83882309F4B7CF8E010F5F1F4F19 +:10320000F80180818823F9F2813009F043C091816F +:103210008281913049F40E5F1F4F0E94090D0F5FAC +:103220001F4FEECF6801E9CF923029F40E5F1F4F98 +:103230000E94540CF4CF933029F40E5F1F4F0E946C +:103240002F0BEDCF943019F00F5F1F4FE8CF0E5FBB +:103250001F4F30E020E0B8016F5F7F4FF8014181E0 +:103260008053990B8A30910550F021503109B8F202 +:103270008FE99FE00197F1F700C00000F6CFA29E12 +:10328000F001A39EF00D11249C012E0F3F1F842FEF +:103290008B01E1CF0E948A0DC2CF81E00E94E4142D +:1032A0000E94A81461CF81E00E94B714F9CF82E098 +:1032B000FBCF04389FE5190709F483C008F473C0F5 +:1032C0000538FFE51F0709F0B1C5882309F4AEC52D +:1032D00080EE0E94540C81EE0E94540C80E10E940A +:1032E000540C80E10E942F0B81EE0E942F0B80EE88 +:1032F0000E942F0B8091E60191E062E18927809383 +:10330000E601882309F48DC08FE00E94301066E149 +:103310008FE00E9430108AC5882369F180914F02A6 +:10332000811106C081E080934F0282EE0E94540C0E +:103330000E94830590934E0280934D028BE20E947F +:10334000540C74C58823A1F080914F02811106C0EE +:1033500081E080934F0282EE0E94540C0E9483050C +:1033600090934E0280934D0281EE0E94540CE6CF62 +:1033700081EE0E942F0B8BE20E942F0B57C58823F2 +:1033800009F454C581EE0E94540C83EE0E94540C43 +:103390008FE40E94540C8FE40E942F0B83EE0E9456 +:1033A0002F0B81EEE9CF882309F440C581EE0E94FE +:1033B000540C83EE0E94540C80E50E94540C80E56E +:1033C000EBCF882309F4D0CE10914C0281E018276E +:1033D00010934C020E94830590934B0280934A0203 +:1033E00068E1112381F08FE00E94301069E18FE0E5 +:1033F0000E9430106AE18FE00E9430106BE18FE094 +:103400000E943010B1CE84EB0E94301069E184EB51 +:103410000E9430106AE184EB0E9430106BE184EB73 +:10342000EFCF8FEA0E94301066E18FEA72CF82EE12 +:103430000E94540C36C583E00E94100B88E10E9464 +:10344000540C88E10E942F0B83E00E94050B29C5D4 +:1034500082EE0E94540C87E50E94090D22C586EE7B +:103460000E94090D88E1F8CF895A35C582EE0E9485 +:103470002F0B49C58CE20E94090D8091E801882339 +:1034800009F441C589E30E94090D3DC588E2FBCFDF +:10349000033FFCE51F0739F1A0F4083D3CE51307A5 +:1034A000F1F0093D8CE5180751F1073D9CE519073E +:1034B00009F02DC526E241EE61EEC7010E94260DFE +:1034C00053CE053FECE51E07B1F088F0063F2CE532 +:1034D000120709F01CC527E245EE66EEEECF27E2A3 +:1034E00045EE65EEEACF26E241EE60EEE6CF27E25A +:1034F00045EE64EEE2CF26E241EE62EEDECF28E258 +:1035000041E0EFCF01363DE5130709F417C5063159 +:103510002CE5120709F444C18091430282720C3CED +:10352000ECE51E0709F404C208F084C1063C2CE552 +:10353000120709F4E9C108F05BC1033C9CE51907D7 +:1035400009F4D8C108F043C1023CFCE51F0709F4A7 +:10355000ACC10A353DE5130709F426C208F002C2E2 +:1035600001159CE5190709F40FC20E3D1C4509F42D +:1035700018C2F70186819781009709F419C20E9449 +:1035800053088C01F701D280C580C2943FE0C3226A +:10359000809140028770A1F0AD2CDD2091F0812F49 +:1035A000807F803421F080E2800F883048F082E014 +:1035B0000E94C814809140028770AA24A3948111AC +:1035C000A12C912E92942FE09222FBE0F91508F4A1 +:1035D0003CC2E92DF0E0ED5BF04D0C947D2E809126 +:1035E000020380610630ECE51E0709F491C080916A +:1035F0000203886007301C4508F48AC080910203EA +:10360000806286C0809102038D7F0C302CE512070A +:1036100009F47EC058F40A308CE5180709F493C009 +:1036200008F48BC0809102038E7F72C080910203E8 +:10363000877F0E30ECE51E0709F46AC08091020313 +:103640008B7F0F301C4508F463C0809102038F7E8E +:103650005FC00C3F2CE5120709F479C068F504310E +:103660008CE5180709F48BC080F40231ECE51E07E5 +:1036700009F475C0809102038F7B03311C4508F467 +:1036800047C080910203837F43C00A3F2CE51207A5 +:1036900009F445C008F049C005311C4509F075C45E +:1036A0008091020382FB992790F921E0922790FBF9 +:1036B00082F990FB83F92CC001159DE5190709F4E7 +:1036C00054C088F48091030383600E3FFCE51F071C +:1036D00049F1809103038D7F0F3F1C4518F18091C4 +:1036E00003038C7F1FC002303DE5130709F456C069 +:1036F00008F44EC001361D4509F047C490910203FD +:10370000892F8F7E94FF806103C0809102038160C6 +:10371000809302033AC4809102038460F9CF8091C0 +:10372000030381608093030330C4809103038260AC +:10373000F9CF809102038064EBCF0E949B158091AA +:1037400002038068E5CF809102038C60E1CF809115 +:1037500003038E7FE7CF809102038F7DD9CF0E9434 +:103760009B15809102038F77D3CF80910303982F0D +:10377000909591708E7F892B90FB81F9D3CF0E9419 +:103780009B1590910203892F97FB87F98058C0CF32 +:1037900061E08EE090E00E94F52EF7C360E0F9CF83 +:1037A000882309F406C4809143028A7A91E009F4DF +:1037B00090E09093E901811106C089E20E94510ACC +:1037C0000E94E109D1CC85E3F9CF85E3F7C3043C3E +:1037D0002CE5120709F493C048E653E161E773E171 +:1037E000053C3CE5130709F0B4CE0E940606BCCCAC +:1037F000093C9CE5190709F491C070F4073CFCE50D +:103800001F0709F486C04CE553E160E573E1083C0D +:103810002CE5120751F39DCE0A3C3CE5130709F451 +:1038200082C04AE753E16BE873E10B3C9CE5190762 +:10383000E1F28FCE013DECE51E0709F487C0B0F43C +:103840000E3C2CE5120709F47BC008F476C00F3C4F +:103850008CE5180709F477C06EE089E0003D9CE52F +:10386000190709F076CE0E9406157ECC043DECE5E2 +:103870001E0709F471C078F4023D2CE5120709F423 +:1038800068C061E088E1033D3CE5130709F061CEC3 +:103890000E949C1369CC053D8CE5180709F45FC0B4 +:1038A0000D35100709F460CC54CE80918C0380FF55 +:1038B0001BC08E7F80938C0360918C0370918D036D +:1038C00080918E0390918F030E9491121092820238 +:1038D000EFEFF0E722E0E150F0402040E1F700C0D8 +:1038E00000000E94B90F40CC816080938C0361E09E +:1038F0008695CECF43EF54E16CEF74E176CF4CEF79 +:1039000054E163EF74E171CF41E753E168E673E19D +:103910006CCF40E553E16CE573E167CF48E353E1D9 +:1039200064E473E162CF44E453E168E373E15DCFA3 +:103930004BE853E16AE773E158CF61E081E0A8CF3B +:1039400065E082E090CF68E086E08DCF64E18FE0B3 +:103950008ACF67E185E187CF62E289E184CF61E0C8 +:1039600083E296CF0B35FDE51F0701F10C351D45B0 +:1039700009F0FFCD8091030382FB882780F991E055 +:1039800089270E94790EF5CD0E949B153FEF84E3B5 +:103990009CE0315080409040E1F700C000000E9460 +:1039A000300C0E942415E0CB81E0EBCF80E0E9CF22 +:1039B000828100811181882369F0C8010E94C60EAE +:1039C000D82E682FC8010E94B60AB8018D2D0E941A +:1039D000B90ED5CDC8010E948F0AD82EF6CF212F5F +:1039E0002F70C22E107F19F0C29490EFC922DD20F3 +:1039F000C9F0CC2069F080E2800F883010F001110E +:103A00000BC080914302C82AC09243020E94E10980 +:103A1000802F0E94540C19C080914202C82AC09283 +:103A20004202F4CF802F0E942F0BCC2071F0C09463 +:103A300080E2800F883010F001113AC0809143027B +:103A4000C822C09243020E94E109E92DE850FF0B11 +:103A5000349720F40E94BB050E948C0BAA20A9F089 +:103A60008091400280FD11C0F701128285958595F5 +:103A700085950E94E414C7010E9477188091400246 +:103A80008595859585950E94B71460E0C7010F90D4 +:103A90000F900F900F90DF91CF911F910F91FF909A +:103AA000EF90DF90CF90BF90AF909F900C943C0F21 +:103AB00080914202C822C0924202C5CF312F3F708E +:103AC000B32E107F103219F0B29480EFB822002389 +:103AD00069F0013081F1DD20D9F1CC2091F1F701BD +:103AE000858180FF95CF8F7085832BC0DD20B1F05D +:103AF00090914402892F8B29C11003C00E94250B8D +:103B0000A4CFE1E0CE12FACF2091030322FD9DCF96 +:103B1000981709F49ACF8093440297CFC11006C03A +:103B20000E94DB098B2D0E941A0B8FCFF1E0CF167C +:103B300009F48BCFF5CFDD2031F025E02C1508F40A +:103B400084CF8B2DDBCF34E03C1508F47ECFEACF59 +:103B5000CC2041F3093349F4FFEF27EE33E0F15075 +:103B600020403040E1F700C00000802F0E942F0B62 +:103B70006CCF812F86958695837061F0813009F036 +:103B800064CFC8019370D11002C090E080E00E9421 +:103B90008F055BCFC8019370D11002C090E080E028 +:103BA0000E94A50552CF802FDD2029F00E949D079D +:103BB0000E94BB064ACF0E94E206FACF812F837093 +:103BC00009F03FC0D11041CF402F42954695477034 +:103BD000440F440F802F8F7090E0042E02C0880F96 +:103BE000991F0A94E2F730E020E004FF09C02FE0BB +:103BF00030E002C0220F331F4A95E2F7209530953E +:103C0000169516951370123099F078F4409145028C +:103C100050914602113039F0822B932B8423952347 +:103C20000E94FF0A12CF842B952B822B932BF8CF67 +:103C3000822B932B209145023091460282279327B5 +:103C4000EFCF8695DD2011F0812F8170882309F454 +:103C5000FCCE402F429546954770440F440F802F6D +:103C60008F7090E0042E02C0880F991F0A94E2F72B +:103C700030E020E004FF09C02FE030E002C0220F56 +:103C8000331F4A95E2F720953095169516951370D7 +:103C9000123099F078F44091360350913703113087 +:103CA00039F0822B932B842395230E94A014CDCE30 +:103CB000842B952B822B932BF8CF822B932B209147 +:103CC00036033091370382279327EFCF1F70DD2013 +:103CD00029F0812F0E94E414802F10CF802F0E94A2 +:103CE0001A0B812F0E94B714B0CE023F09F441C0D5 +:103CF00060F4003F11F1013FA1F1DD2009F457C04C +:103D0000C11086CE812F8F7131C0033FB9F1043FBE +:103D1000A1F7DD2009F440C01F71812F0E94E41437 +:103D20008091030382FD07C0E8E01E9FC0011124BB +:103D3000836080934002812F19C0DD2069F084E008 +:103D40008C1508F482CE1F7181E090E002C0880FCC +:103D5000991F1A95E2F7B3CF95E09C1508F475CE3C +:103D6000F2CF812F8F71DD2009F4BCCF0E94E414C3 +:103D70006CCE812F8F71DD20C9F3B4CF90E080E04D +:103D8000DD2009F492CF1F7181E090E002C0880F1E +:103D9000991F1A95E2F789CF81E00E94C814F1E0DB +:103DA000FC1508F052CE82E00E94C8144ECECC2002 +:103DB00059F0093309F0D9CE2FEF37EE83E02150C7 +:103DC00030408040E1F7CFCE812F8F718BCF003113 +:103DD0003FE5130709F461CA01319FE51907A9F40A +:103DE00082E05CCA61E0C7010E943C0F8C01F701D0 +:103DF00082818111A7C90031FFE51F0709F453CA69 +:103E000001312FE5120709F452CA0238EFE51E0707 +:103E100009F4B5CA08F04DCA00382FE5120709F4B5 +:103E20007BCA01383FE5130709F48CCAF701828188 +:103E3000882369F0C801815E9C45059740F46FE1D5 +:103E4000600F609350028CE090E00E94F52E17FF07 +:103E50001FCBF7018281882309F459C00E94BB055A +:103E6000869581708093E80190915002913029F4F9 +:103E7000882319F089E30E94090D80914302809301 +:103E8000E7011092430280915002813009F4D3CAB5 +:103E9000882309F4CCCA823009F4DACA843009F4E0 +:103EA000DECA8FE39CE90197F1F700C000005801DA +:103EB000E894B7F84CE0C42ED12CC5010C2C02C0FC +:103EC000969587950A94E2F78F7096EF980F963043 +:103ED00008F4CACA805D0E948A0D94E0C91AD1080C +:103EE000ECEFCE16EFEFDE0641F780915002813005 +:103EF00009F4C0CA882309F4B9CA823009F4B6CAE1 +:103F0000843009F4C3CA8091E70180934302F7012A +:103F10008281882309F449C0109293030330FDE5A0 +:103F20001F0708F0EFCA0A3F2CE5120738F4980182 +:103F300022503C452431310508F0E9CA0E94950F12 +:103F4000909303038093020300318CE5180709F472 +:103F500002CC08F07ECB0830ECE51E0709F4E9CB73 +:103F600008F050CB04302CE5120709F4D4CB08F04C +:103F700036CB02308CE5180709F4C7CB80910203D9 +:103F8000826003301C4509F4C3CB60910203109199 +:103F9000030384E090E00E94F52E612F82E290E01E +:103FA0000E94F52E0E949B15DFC806311C4509F0C2 +:103FB000E0CA8091E901811108CC89E20E94260AB9 +:103FC000FFCBCF93DF938091FB01807FA1F48091A1 +:103FD000F801882381F080913F02D091FE01609129 +:103FE000F6017091F701A091F901B091FA01C62F85 +:103FF000C723D81303C0DF91CF91089590E01097A5 +:1040000011F0CF3F19F401968770F3CF9C0143E084 +:10401000220F331F4A95E1F7F901E150FE4F41812C +:104020004713F1CF40814613EECF42814111EBCFD0 +:10403000438154814A1B5B0B483C510520F780911A +:10404000FB018F7080618093FB01F901EC5FFD4FF4 +:1040500080818F708061808386EF91E00E94771865 +:10406000DF91CF910C94850AAF92BF92CF92DF92ED +:10407000EF92FF920F931F93CF93DF93CDB7DEB7ED +:1040800065970FB6F894DEBF0FBECDBF8C0185E0FB +:10409000F801DE01519601900D928A95E1F7F80141 +:1040A000E28066EFA62E61E0B62E6091F901709174 +:1040B000FA016115710509F468C19091F60140910A +:1040C000F701892F84238F3F09F45FC1208131815B +:1040D000C380D480F090F801F601E61BF70BFF20B7 +:1040E00009F41DC18091FB01582F507FE83CF10578 +:1040F00008F0D0C0511181C0FE2C43132BC0921385 +:1041000029C06091FC017091FD01F8014681578141 +:1041100064177507F9F4E1101DC08F7080618093FA +:10412000FB01C5010E9477188091FB01F80185838E +:104130008F2D65960FB6F894DEBF0FBECDBFDF9111 +:10414000CF911F910F91FF90EF90DF90CF90BF9094 +:10415000AF900895CD2829F0822F83238F3F09F057 +:104160002FC180E0F82FF170DF2E80FF3CC08091DE +:104170003F024091FE01841315C0298B3A8B898937 +:104180009A890E94020F292F22952F702230F8F071 +:10419000243020F59F70F9F0F8019581907FD9F4D3 +:1041A000D12C1FC090E0FC0153E0EE0FFF1F5A9589 +:1041B000E1F7E150FE4F5181351306C050812513C0 +:1041C00003C05281E5120FC001968770D4CF9F7053 +:1041D00011F0882329F3805E883010F3C8010E9413 +:1041E0007718FD2CA5CFEE2009F4A2CF8091FB011A +:1041F00081608093FB01F12C9BCF43131BC0921372 +:1042000019C04091FC015091FD01F80126813781D0 +:104210004217530779F4E1100DC08583C8010E944D +:10422000771888E0F801A6EFB1E001900D928A9529 +:10423000E1F77ECFC8010E940E0F882339F1EE20EE +:1042400029F18091FB018032A0F02091F60130919C +:10425000F7013A8729871B86DD86CC868E87809179 +:10426000FC019091FD01988B8F87CE0109960E94E9 +:10427000771888E0F801A6EFB1E001900D928A95D9 +:10428000E1F70E94E11FFF24F39452CFC8010E947E +:104290007718F9CF51110AC086EF91E00E94771884 +:1042A00088E0F50111928A95E9F7A5CF431318C06C +:1042B000921316C04091FC015091FD01F801268136 +:1042C00037814217530761F4E1100AC08583C801A2 +:1042D0000E94771888E0F50111928A95E9F728CFB6 +:1042E000C8010E940E0F882389F2EE2079F2809196 +:1042F000FB01803208F4BDCF2091F6013091F70127 +:104300003A8329831B82DD82CC828E838091FC01DB +:104310009091FD0198878F83CE010196A8CFE83C4C +:10432000F105C0F6FE2CEE2009F4B0CF43131FC0F8 +:1043300092131DC02091FC013091FD01F80186818E +:1043400097812817390799F49091FB0190FD69CF67 +:10435000907F09F466CF8091FB018583903F09F43B +:104360005DCF982F907F905F8F70892B56CFC801BB +:104370000E940E0F81117DCF8091FB01816080939F +:10438000FB01C8010E947718D3CEEE2009F47ECF3E +:10439000C8010E940E0FF82E882309F477CF88E019 +:1043A000F801A6EFB1E001900D928A95E1F78091B6 +:1043B000F6019091F7010E94020F0E94E11FB8CE12 +:1043C00081E08E25CFCECF93DF93CDB7DEB7609758 +:1043D0000FB6F894DEBF0FBECDBF29873A874B8753 +:1043E0005C876D877E878F87988BCE0109960E94A8 +:1043F0003420811112C088E0FE013996DE01119649 +:1044000001900D928A95E1F78C859D85892B29F085 +:1044100089859A8589238F3FA9F580913F029091E4 +:10442000FE0189131CC060960FB6F894DEBF0FBE64 +:10443000CDBFDF91CF91089593E0AA0FBB1F9A954E +:10444000E1F7A150BE4F98E0FE01319601900D9228 +:104450009A95E1F78093FE010E94850ADECFB8E0CD +:104460008B9FC001112481509E4F0E9434208823CD +:10447000D1F280913F0290E0019687709927809356 +:104480003F02CBCFA091FE01B0E0CD010196877035 +:10449000992720913F022817190671F60E949B1553 +:1044A0001092FE0110923F0288E0E6EFF1E0DF019A +:1044B0001D928A95E9F7B1CF0F931F93CF93DF93A6 +:1044C00080918A02E0918902CCE081111AC0DF91CB +:1044D000CF911F910F910895D1E0DE0FD093890203 +:1044E0000E2F10E0EC9FF0011124E557FD4F838162 +:1044F0009481892B29F08081918189238F3F51F408 +:10450000ED2F80918A02E81738F310928A021092F8 +:104510008902DDCFC09FD001C19FB00D1124A557E6 +:10452000BD4F16968D919C911797892B29F418965B +:104530008D919C91019651F420813181428153816A +:1045400064817581868197810E94E321C09FF0017B +:10455000C19FF00D1124E557FD4F14821382D0CF77 +:104560001092F6021092F502109242018091F4022C +:104570008093F3020E94F5050C945C222F923F92E7 +:104580004F925F926F927F928F929F92AF92BF9263 +:10459000CF92DF92EF92FF920F931F93CF93DF930F +:1045A000C091F302E7E0FE2E01E010E0FCE02F2EC8 +:1045B000AEEFEA2E8091F4028C1316C00E945C22AA +:1045C000DF91CF911F910F91FF90EF90DF90CF90EF +:1045D000BF90AF909F908F907F906F905F904F9023 +:1045E0003F902F900C94F505D0E0FE01EE0FFF1FD9 +:1045F000E551FD4F80819181F89EF001F99EF00D0B +:104600001124E85EFE4F2481211158C030908A02A7 +:10461000ABE8B2E030E020E0412C5F01231508F068 +:104620004BC01A966D907C901B97F501808091800D +:104630004FEF5FEF512CC52CD12CF601EE0FFF1F71 +:10464000E80DF91D659174916616770609F4A601C7 +:10465000672B11F05394EFCF4F3F5407B1F1B801DE +:1046600002C0660F771F4A95E2F7462AA80102C0EA +:10467000440F551F5A94E2F741505109441615064C +:1046800001F5229EF001239EF00D1124E557FD4F08 +:10469000F89ED001F99EB00D1124A85EBE4F12966F +:1046A0002D913C91139737832683E082E182918795 +:1046B000808771E015967C930E94C7052196C37090 +:1046C00079CF14961C921E9213972F5F3F4F1C9622 +:1046D000A5CF9F92AF92BF92CF92DF92EF92FF92BF +:1046E0000F931F93CF93DF9300D000D000D0CDB7AE +:1046F000DEB78E010F5F1F4F86E0F80111928A9599 +:10470000E9F785E7C82E81E0D82EF12CE12CAA2408 +:10471000A394B12CF60181916F018F3F09F449C038 +:10472000F894E82FE295EF70F0E021A18F70A501D9 +:1047300002C0440F551F8A95E2F7CA01922F982BA9 +:1047400091A392A18095892382A3789400C0EBE77E +:10475000F1E030E020E0912C41914F3F09F473C02B +:10476000A42FA295AF70B0E090968C9190E04F701E +:1047700002C0959587954A95E2F780FD64C08A2D21 +:10478000022E01C0880F0A94EAF7982A2F5F3F4F44 +:104790002430310509F7F601319780818F3F11F000 +:1047A0000E94F90750EA5A95F1F7F801EE0DFF1D46 +:1047B00090828FEFE81AF80AE6E0EE16F10409F0AD +:1047C000A9CF46E050E0B80184E592E00E94D42EE3 +:1047D000FF24F394009709F4F12C892BB1F186E0C2 +:1047E000F801A4E5B2E001900D928A95E1F781E02D +:1047F000809349020E948305909348028093470268 +:1048000080914702909148020E947405059708F133 +:1048100080915402809367028091550280936802D0 +:1048200080915602809369028091570280936A02B8 +:104830008091580280936B028091590280936C02A0 +:104840001092490206C080E0A0CF809149028111F8 +:10485000D7CF80914201882301F18091F502909198 +:10486000F6020097D1F00E947405209187023091E2 +:1048700088022817390788F49091F3028091F40296 +:10488000981709F445C00E94BE2210928802109227 +:1048900087021092F6021092F50280914F0288234F +:1048A00071F080914D0290914E020E947405893EF4 +:1048B000934028F082EE0E942F0B10924F028091BD +:1048C0004C02882391F080914A0290914B020E9401 +:1048D0007405883E934048F00E94830590934B02F4 +:1048E00080934A0283E70E94090D8F2D26960FB60A +:1048F000F894DEBF0FBECDBFDF91CF911F910F9116 +:10490000FF90EF90DF90CF90BF90AF909F90089571 +:104910000E945C221092F6021092F5020E94F505A8 +:10492000BCCF2F923F924F925F926F927F928F9265 +:104930009F92AF92BF92CF92DF92EF92FF920F932E +:104940001F93CF93DF93CDB7DEB769970FB6F89477 +:10495000DEBF0FBECDBF498B5A8B6B8B7C8B8D8B93 +:104960006111109242021D861E861F86188A85E0FC +:10497000FE017196DE01199601900D928A95E1F77C +:104980008C859D85892B31F089859A8589238F3F78 +:1049900009F0D4C129853A854B855C856D857E8576 +:1049A0008F8598890E94E321C3C028EFC2162CE5A9 +:1049B000D20629F4882379F00E94B022EBCF39EF98 +:1049C000C3163CE5D30639F4882329F080914201CF +:1049D0008111F2CFC3C108E111E0E12CB12CA12C6F +:1049E00088248394912C9EEF592E44244394F801FB +:1049F0006081718166246A94762C20E0422F50E019 +:104A0000FA01EE0FFF1FE60FF71F85919491C8166C +:104A1000D90609F43A01892B11F02F5FEFCFF12C61 +:104A2000FFEF6F167F0609F445C0F8014481F0904E +:104A300042018F2D411180E0F82FF170FF2EF80117 +:104A4000258086819B85992309F408C1FF2009F4FC +:104A500005C1211014C0A40101C0440F6A94EAF7F3 +:104A6000842B8683809187029091880280399140BF +:104A700030F440E951E05093880240938702C4012A +:104A800002C0880F991F2A95E2F70197F801268145 +:104A90002817190679F48091F5029091F602009793 +:104AA00009F45FC00E9474058139914008F459C02F +:104AB000F8014482EF28FFEFAF1ABF0A095F1F4FCA +:104AC00026E0A216B10409F092CF8B85882309F461 +:104AD00020C1EE2009F41DC10E9483059093F602C7 +:104AE0008093F50280918A02883010F591E0980F4A +:104AF00090938A0298E0FE013996DE0111960190AA +:104B00000D929A95E1F73CE0839FC00111248557EF +:104B10009D4F28E0FE013196DC0101900D922A950F +:104B2000E1F72FEF3FEFFC0131872087D386C28664 +:104B300069960FB6F894DEBF0FBECDBFDF91CF915F +:104B40001F910F91FF90EF90DF90CF90BF90AF90AB +:104B50009F908F907F906F905F904F903F902F909D +:104B600008958091F3026090F402982FF0E0E0E065 +:104B7000861114C09093F3020E171F0709F49ACF01 +:104B800090E0FC01EE0FFF1FE551FD4FB182A082C6 +:104B90000196837099278093F4028CCF282E312CB4 +:104BA000F101EE0FFF1FE551FD4F20813181F7E04C +:104BB000F29FD001F39FB00D1124A85EBE4F2D913E +:104BC0003C911197398F288F712C60E070E0E72FAE +:104BD000F0E0EE0FFF1F288D398DE20FF31F2591B6 +:104BE000349121153105E1F0F8010190F081E02DBB +:104BF000FF8BEE8B60E005C02417350709F47F2C8E +:104C00006F5FE62FF0E0EE0FFF1F4E895F89E40F24 +:104C1000F51F459154914115510571F77F5FD7CF2D +:104C20007720C9F0F801671708F0FD0144820E17DC +:104C30001F0721F49093F302F72C3CCF981305C083 +:104C4000AE17BF0711F49F5F937091012F5F3F4F25 +:104C5000822F83708DCFF0E0E0E0F7CF90E021105D +:104C60001FC0B40102C0660F771F2A95E2F79B01AF +:104C7000215031092817390731F4442309F447C07A +:104C8000C5010E94C705C40101C0880F6A94EAF7F4 +:104C9000982F9095F801868189238683F22C0ACF7C +:104CA0009C01062C02C0359527950A94E2F7A901CC +:104CB00041705527BC016150710986239723892BC8 +:104CC00011F5452B01F1F80182819381892BC1F007 +:104CD0001B821C821D821E8259825A820E94830579 +:104CE0008160582F9D838C83F801828193818F830B +:104CF000988729813A814B816D817E810E94E321D1 +:104D0000F8011582C0CFF22FF1702F2EBCCF2F2CBF +:104D1000BACF9091F3028091F402981731F00E947B +:104D2000BE22EE2009F436CE03CF0E945C22109200 +:104D3000F6021092F5020E94F505F3CF61E0CE0174 +:104D400009960E943C0F6C018B85F7EFCF16FCE5AE +:104D5000DF0609F02ACE882309F43DCE81E0809356 +:104D6000420118CE1F920F920FB60F9211242F936B +:104D70003F934F935F936F937F938F939F93AF93E3 +:104D8000BF93CF93DF93EF93FF93D091E900DF7050 +:104D90008091EC00C82FC17080FDC0E81092E9003E +:104DA0008091F000877F8093F00078940E94B01586 +:104DB0001092E9008091F00088608093F000CD2B84 +:104DC000CF70C093E900FF91EF91DF91CF91BF9138 +:104DD000AF919F918F917F916F915F914F913F9193 +:104DE0002F910F900FBE0F901F9018951F920F924A +:104DF0000FB60F9211242F933F934F935F936F93AE +:104E00007F938F939F93AF93BF93EF93FF93809183 +:104E1000E10082FF09C08091E20082FF05C080911D +:104E2000E1008B7F8093E1008091DA0080FF24C055 +:104E30008091D80080FF20C08091DA008E7F80931F +:104E4000DA008091D90080FF9BC080E189BD82E1BA +:104E500089BD09B400FEFDCF81E080932C038091D1 +:104E60000703811109C00E94E7030E94B2048091E8 +:104E7000E20084608093E2008091E10080FF17C02F +:104E80008091E20080FF13C08091E2008E7F8093CA +:104E9000E2008091E20080618093E2008091D8007E +:104EA00080628093D80019BC85E080932C038091A8 +:104EB000E10084FF29C08091E20084FF25C080E1E9 +:104EC00089BD82E189BD89B5982F917080FFFBCFA4 +:104ED0008091D8008F7D8093D8008091E1008F7EF3 +:104EE0008093E1008091E2008F7E8093E2008091C8 +:104EF000E20081608093E20080912D03882309F411 +:104F000045C084E080932C038091E10083FF27C09B +:104F10008091E20083FF23C08091E100877F80932E +:104F2000E10082E080932C0310922D038091E10038 +:104F30008E7F8093E1008091E2008E7F8093E2007B +:104F40008091E20080618093E20042E060E080E0D6 +:104F50000E9480048091F00088608093F000FF91AF +:104F6000EF91BF91AF919F918F917F916F915F91E1 +:104F70004F913F912F910F900FBE0F901F9018955A +:104F800019BC10922C031092070376CF8091E30096 +:104F900087FD93E090932C03B7CF78941F921FB6B0 +:104FA0001F9211248F939F93AF93BF938091FE0222 +:104FB0009091FF02A0910003B09101030196A11D01 +:104FC000B11D8093FE029093FF02A0930003B09363 +:104FD0000103BF91AF919F918F911F901FBE1F90B2 +:104FE00018951F921FB61F9211248F939F93AF9312 +:104FF000BF938091FD02811113C08091FE029091B8 +:10500000FF02A0910003B09101034196A11DB11DC3 +:105010008093FE029093FF02A0930003B0930103DC +:10502000BF91AF919F918F911F901FBE1F901895B8 +:10503000CDB7DEB7EE970FB6F894DEBF0FBECDBF8B +:1050400084B7877F84BF0FB6F894A89580916000DD +:10505000886180936000109260000FBE80E890E04D +:105060000FB6F89480936100909361000FBE85B7EE +:10507000806885BF85B7806885BF87EF97E090938C +:10508000C5018093C4010E94E7030E94B20480918D +:10509000E20084608093E200789480912C0388235E +:1050A000A1F01091E9001F709091EC00892F8170A0 +:1050B00090FD80E8182B1092E9008091E80083FDB4 +:1050C0000E94B0151F701093E90082E084BD93E048 +:1050D00095BD9AEF97BD80936E000E947C0F811161 +:1050E00002C00E946A0E05E711E02BE7C22E21E004 +:1050F000D22EF80181918F018F3F11F00E94F907A4 +:10510000C016D106B1F786EF0E94F90787EF0E941B +:10511000F90783E90E94F90786E90E94F907E4E5A7 +:10512000F2E08AE592E0A7E6B2E011921D928E17B6 +:105130009F07D9F70E949015811102C00E94241583 +:1051400082E090E00E94E12E809360020E94950F21 +:1051500090930303809302030E9469238FE39CE9E9 +:105160000197F1F700C000000E9469238091670257 +:1051700080FF08C06FEF7FEF90E080E00E94132F68 +:105180000E94300C83E090E00E94E12E90E00E94AB +:10519000FF0A80913603909137030E94FB13509AC7 +:1051A000589A559A5D9A549A5C9A8CE090E00E94C5 +:1051B000E12E90E0B0E0A0E0809350029093510285 +:1051C000A0935202B093530280915A02811133C0CE +:1051D0000E949015811104C00E9424150E9414158C +:1051E00088E090E00E94E92E60938C0370938D0319 +:1051F00080938E0390938F036E7F71F40E94141539 +:1052000088E090E00E94E92E60938C0370938D03F8 +:1052100080938E0390938F030E940C06109282025B +:1052200080918C0380FF04C060E086950E949C13EF +:1052300081E080935A025198599A52985A9A89B1AA +:10524000869581704A9922C290E0892B80935E02F4 +:1052500060E081E20E949C1381E090E00E94A01433 +:1052600080E091E09093FA028093F90218E1C12E58 +:10527000D12C00E4A02E87E692E096E0B92EB80E7D +:1052800080912C039924939400E112E1853009F474 +:1052900051C20E946923882359F08FB7F894409136 +:1052A000FE025091FF0260910003709101038FBFD5 +:1052B000E1E6F2E0A7E6B2E010E000E0302F8D91E9 +:1052C0009191981709F45FC2292F282790E099241B +:1052D0009394422F492109F451C29DAB3EAB8921E1 +:1052E00091E009F490E09FAB0E9483058160782FE4 +:1052F00099AF88AF4DA95EA96FA989AD0E9491248D +:10530000F801EF59FD4F80819826908280918202AA +:105310008823D1F180918102E0918C03E695E81B0E +:10532000E0937D02823009F045C2F0E0EA55FD4F7E +:10533000E4910E2F10E0BDE78B2EB2E19B2E809101 +:105340007E02882361F010927E020E948305909372 +:105350007C0280937B021092800210927F020E9456 +:105360008305E0917B02F0917C028E1B9F0B8F3FA7 +:105370009F4750F4E00FF11FF0937C02E0937B0213 +:105380008BE792E0F4010995E0915E02EE0FEE0FDB +:10539000E0935E0289B181FBEE24E0F84A9964C291 +:1053A00080E08E29E82BE0935E02EF70F0E0E15898 +:1053B000FE4F808190915D02890F80935D0220E015 +:1053C000843034F180915C028F5F80935C0212E044 +:1053D00018AB19AA81E08AAB0E9483058160782FFF +:1053E0009CAB8BAB48A959A96AA98CA90E949124AE +:1053F0001BA71CA61DA60E9483058160782F9FA76E +:105400008EA74BA55CA56DA58FA50E94912421E0D8 +:1054100080915D028D3F2CF580915C0281508093DC +:105420005C021EA21FA281E088A70E948305816002 +:10543000782F9AA789A74EA15FA168A58AA50E9487 +:10544000912419A21AA21BA20E9483058160782FC1 +:105450009DA38CA349A15AA16BA18DA10E94912467 +:1054600021E080915D02082E000C990B64E070E051 +:105470000E94472E80935D02222359F08FB7F89443 +:105480004091FE025091FF02609100037091010370 +:105490008FBF86E0E4E7F2E0DE01119601900D9205 +:1054A0008A95E1F7909076028090770210917802C9 +:1054B000009179021092760210927702109278028F +:1054C00010927902892D882909F448C080917202CE +:1054D000909173020E9474059C0190916E02992331 +:1054E00009F4AEC323333105C8F19F3F19F09F5F24 +:1054F00090936E02992059F00E947D079FEF191436 +:105500000CF491E0899F802D1124809376028820ED +:1055100059F00E947D079FEF18140CF491E0899FC9 +:10552000802D112480937702309176023323B1F0DD +:1055300020917702222391F045EB3403C00111241E +:10554000992309F494C19093760245EB24039001CA +:105550001124332309F48FC130937702812F802BDC +:1055600009F448C080917002909171020E94740504 +:105570009C0190916D02992309F45DC32536310594 +:10558000C8F19F3F19F09F5F90936D02112359F06E +:105590000E945B079FEF11160CF491E0899F802D0C +:1055A000112480937802002359F00E945B079FEF3B +:1055B00010160CF491E0899F802D112480937902BC +:1055C000309178023323B1F020917902222391F0B7 +:1055D00045EB3403C0011124992309F450C1909381 +:1055E000780245EB240390011124332309F44BC1C5 +:1055F000309379028091760290917702892B909175 +:105600007802892B90917902892B11F00E94BB06B8 +:1056100086E0FE013196A4E7B2E001900D928A95F2 +:10562000E1F70E94BB0590915F02891731F00E945B +:10563000BB0580935F020E948C0B80912C03843009 +:1056400009F01ECE83E08093E9008091E80082FF9C +:1056500017CE8091E80090E085FF06C00E94060406 +:10566000882309F414C191E08091E8008B7780933E +:10567000E800992309F404CEE981E150E33108F010 +:1056800088C1F0E0E15BF04D0C947D2E92E0DDCD21 +:1056900080912C03843009F440C080E00E948C0B80 +:1056A0001092820280917A02811116C090927A0241 +:1056B00080918C03982F917090935B028E7F8093E2 +:1056C0008C039FEFE0E7F2E09150E040F040E1F71B +:1056D00000C000000E94B90F1092FD020FB6F894AE +:1056E000A895C09260000FBEA092600083B7817F32 +:1056F000846083BF83B7816083BF7894889583B7C4 +:105700008E7F83BF0FB6F894A89580916000886162 +:1057100080936000109260000FBE80912B0388235D +:1057200049F00E946923E7E6F2E08191811164C2A9 +:10573000BE12FBCF80912C03853009F4A9CF0E94C3 +:105740009B150E94BB050E948C0B10927A028091DF +:105750005B02882361F080918C03816080938C03CD +:1057600060E086950E949C130E94A30F92CD8091C9 +:1057700083028823C9F30E94B90FF6CF9F5F990C6B +:10578000943009F0A6CD0F5F1F4F0630110509F0C8 +:1057900095CD8FEF8AAF8BAF1CAE0E9483058160E1 +:1057A000782F9EAF8DAF4AAD5BAD6CAD8EAD0E94D4 +:1057B0009124ACCD863059F4F0E0ED55FD4FE491E5 +:1057C0000E2F10E0ADE68A2EA2E19A2EB8CD8930D8 +:1057D00061F4E695F0E0E056FD4FE4910E2F10E005 +:1057E000F9ED8F2EF1E19F2EAACD8F3061F4E69571 +:1057F000F0E0E356FD4FE4910E2F10E0EBE68E2E25 +:10580000E1E19E2E9CCD853159F4F0E0E656FD4F46 +:10581000E4910E2F10E07DE1872E71E1972E8FCD60 +:1058200008E210E044E9842E40E1942E883109F426 +:1058300086CD833249F4E8E9F2E00591149164E100 +:10584000862E62E1962E7BCD04EF11E05BE5852E7E +:1058500050E1952E843209F472CD00ED17E03BE063 +:10586000832E36E0932E6BCD82E090E09ACD81E0DE +:10587000809376026ACE81E0809377026FCE81E0DA +:1058800080937802AECE81E080937902B3CE00E2BD +:1058900010E0CE0101964C018091E80085FD0AC020 +:1058A0008091E8008B778093E8000E9406048823AB +:1058B00099F3D9CE8091F100F40181934F01015009 +:1058C000110951F7D0CE1A8289E08B832DC08A81CD +:1058D000823009F4A7C18330A9F0813009F059C0A2 +:1058E0002FB7F8946091FE027091FF02809100033F +:1058F000909101032FBF0E94832E6B837C838D8345 +:105900009E8312C0809167028B83809168028C8392 +:10591000809169028D8380916A028E8380916B02EF +:105920008F8380916C02888780912C03843009F0EA +:10593000A7CC1091E9001F709091EC00892F817025 +:1059400090FD80E8182B82E08093E9008091E800C8 +:1059500080FF0DC050E040E060E270E0CE010196B3 +:105960000E9437048091E8008E778093E8001F70D2 +:105970001093E90085CC8A81823059F46B817C8157 +:105980008D819E810E94832E86E290E00E94F52EFA +:10599000CBCF8FEF8983C8CF4C816B818A810E94E6 +:1059A000930E9827892798279E838D83BDCF8D805E +:1059B0009E809824892498248A810B81F8E00F9F87 +:1059C0008001112420E3829F000D111D11248C8180 +:1059D00090E0880F991F080F191F692DC80187963D +:1059E0000E94F52E682DC8018896D0CF0E94000E27 +:1059F0009BCF8A818138C1F060F4803809F094CF60 +:105A000020E04B8160918E0380918D030E94A31250 +:105A10008BCF823859F1833809F086CF20E040914E +:105A20008F036C818B81F2CF60E08B810E949C138D +:105A30009B8180918C03911111C08E7F80938C0388 +:105A4000109282024FEF80E792E0415080409040F8 +:105A5000E1F700C000000E94B90F66CF816080931B +:105A60008C0360E086950E949C135ECF8B818093AF +:105A700090035ACF8A81813899F030F4803809F048 +:105A800053CF80918F0321CF823891F0833809F072 +:105A90004BCF80918D038B8380918E038C8344CF79 +:105AA00080918C0380FF02C086950FCF80E00DCFE0 +:105AB000809190030ACF60918C0370918D03809147 +:105AC0008E0390918F030E9491122ECF80E18A83E2 +:105AD0002BCF81E08A8389EFF8CE0A811B811027C2 +:105AE00001271027FE0131963F018C80CF01880DE0 +:105AF000911D4C01C801895F9D4F8614970409F4DC +:105B000013CF093FE1E01E0750F40E94E12EF3019C +:105B100084830F5F1F4FFFEF6F1A7F0AEBCFF301F4 +:105B20001482F7CF0A811B81102701271027CE018D +:105B300001963C018C80800E912E911CC801895FDA +:105B40009D4F8016910609F4EFCE093FE1E01E0754 +:105B500020F4F30164810E94F52EFFEF6F1A7F0A93 +:105B60000F5F1F4FEBCF0E94F00DDECE8AE0AFCF6C +:105B70000A811B81102701271027CE0101963C01C5 +:105B80008C80FC01E80DF11D4F01C8018796861439 +:105B9000970409F4C9CE003EF1E01F0750F40E94BB +:105BA000E12EF30184830F5F1F4FFFEF6F1A7F0A0F +:105BB000ECCFF3011482F7CF0A811B811027012754 +:105BC0001027CE0101963C018C80800E912E911CF5 +:105BD000C80187968016910609F4A6CE003EE1E042 +:105BE0001E0720F4F30164810E94F52EFFEF6F1A67 +:105BF0007F0A0F5F1F4FECCF09BD19BD09B400FE2E +:105C0000FDCF8091D8008F7D8093D8008091E000F7 +:105C100082608093E0008091E00081FDFCCF0E94D3 +:105C20009B1588CD86E290E00E94E12E1B821C82AB +:105C30001D828E8379CE2D32314008F0A4CCDACC8F +:105C40002D32314008F053CC89CC87FB082E062634 +:105C500087FD819567FD61950E94BB2E0EF491959D +:105C600007FC81950895AA1BBB1B51E107C0AA1F21 +:105C7000BB1FA617B70710F0A61BB70B881F991FED +:105C80005A95A9F780959095BC01CD01089597FB91 +:105C9000072E16F4009407D077FD09D00E94332E0A +:105CA00007FC05D03EF4909581959F4F089570951F +:105CB00061957F4F0895A1E21A2EAA1BBB1BFD011F +:105CC0000DC0AA1FBB1FEE1FFF1FA217B307E407DB +:105CD000F50720F0A21BB30BE40BF50B661F771F33 +:105CE000881F991F1A9469F7609570958095909513 +:105CF0009B01AC01BD01CF010895EE0FFF1F059080 +:105D0000F491E02D0994692796276927782787273A +:105D1000782708950E94922E332312F48A1B9B0B3E +:105D20000C94A32EA29FB001B39FC001A39F700D3E +:105D3000811D1124911DB29F700D811D1124911D93 +:105D400008950E94922EB7FF0895821B930B089529 +:105D50000E94922EA59F900DB49F900DA49F800D40 +:105D6000911D11240895B7FF0C94A82E0E94A82E0F +:105D7000821B930B0895991B79E004C0991F961715 +:105D800008F0961B881F7A95C9F780950895FC0145 +:105D90004150504030F001900616D1F73197CF01B5 +:105DA0000895882799270895FB01DC0104C08D918F +:105DB0000190801921F441505040C8F7881B990B7D +:105DC0000895F999FECF92BD81BDF89A992780B5C3 +:105DD0000895A6E1B0E044E050E00C941B2FA8E148 +:105DE000B0E042E050E00C941B2F262FF999FECF33 +:105DF00092BD81BDF89A019700B4021639F01FBA1E +:105E000020BD0FB6F894FA9AF99A0FBE089503963A +:105E1000272F0E94F62E0E94F52E252F0E94F62E87 +:105E2000242F0C94F62E0196272F0E94F62E0C9408 +:105E3000F52EDC01CB01FC01F999FECF06C0F2BDC5 +:105E4000E1BDF89A319600B40D9241505040B8F738 +:105E50000895F894FFCF270F270F300F300F320F20 +:105E6000300F300F300F270F270F370F300F300F45 +:105E7000370F9516BD161017BD161017F0162817F8 +:105E8000101725183218EF1CEF1C5E1D5E1DB91D82 +:105E9000D31D251D251DDE1D661E751E751E632C5A +:105EA000672CBB2CCC2CD72CF62CF92C3A2D5B2D47 +:105EB000C92CC92C662D692D6D2D922DB32DB62DB3 +:045EC000B82DDC2DF0 +:105EC4007105F00BCF0BCB0BC70B01191A1B1C1D53 +:105ED4001E1F202122010201CA002A00000000C462 +:105EE400004C00000000BE005000000000B800514B +:105EF40000000000B2004F00000000AC005200009F +:105F040000000101818283E200E900EA00B500B6E5 +:105F140000B700CD008301CC008A019201940121D5 +:105F240002230224022502260227022A02B300B415 +:105F3400006F007000F03435366667F6F79396000C +:105F4400FF0100010000FFFF0000010001FF00004D +:105F540001020202020606060909090909090F0FCE +:105F64000F0F0F0F151515181919191919191919D2 +:105F7400191923244022B6A8018601D000BD06D6F3 +:045F840006F6060017 :00000001FF From ae8f23f90bdc4cd55e4112bb440445f9db188a81 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 12 Nov 2021 12:36:52 -0500 Subject: [PATCH 49/94] Add trackball click support for mouse buttons and key codes. --- keyboards/solartempest/sofle/config.h | 2 +- .../solartempest/sofle/keymaps/via/keymap.c | 21 +- .../sofle/solartempest_sofle_via.hex | 982 +++++++++--------- 3 files changed, 508 insertions(+), 497 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 08fd837bc965..a9a274e6378c 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -91,7 +91,7 @@ #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms //#define PIMORONI_TRACKBALL_INVERT_X - //#define PIMORONI_TRACKBALL_CLICK //Not compatible with having mouse keys on keymap + //#define PIMORONI_TRACKBALL_CLICK //Not compatible with having mouse keys in keymap. Use trackball_register_button() and trackball_click() in keymap.c instead. #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index ad9286c30fde..40c1aa0396a9 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -122,6 +122,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these trackball_set_rgbw(RGB_GOLDENROD, 0x00); } } + + bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. + if (trackball_is_scrolling()) { + pimoroni_data temp = *trackball_data; + trackball_data->up = temp.down; + trackball_data->down = temp.up; + } + return true; + } #if !defined(MOUSEKEY_ENABLE) //Allows for button clicks on keymap even though mousekeys is not defined. static bool mouse_button_one, trackball_button_one; @@ -137,13 +146,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these pointing_device_set_report(currentReport); } - bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. - if (trackball_is_scrolling()) { - pimoroni_data temp = *trackball_data; - trackball_data->up = temp.down; - trackball_data->down = temp.up; + void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for single mouse button and key presses. Click and drag is done with keys elsewhere. + if (pressed) { //trackball pressed + //tap_code_delay(KC_A,300); //Use delay as simple debounce for key strokes + mouse->buttons |= MOUSE_BTN1; + } else { //released + mouse->buttons &= ~MOUSE_BTN1; } - return true; } #endif diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 94f281e936ba..8dd1c8159991 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,4 +1,4 @@ -:100000000C9449060C9490060C9490060C9447317D +:100000000C9449060C9490060C9490060C94543170 :100010000C9490060C9490060C9490060C94900608 :100020000C9490060C9490060C943C1A0C94F819BD :100030000C9409260C9490060C9490060C9490064F @@ -205,9 +205,9 @@ :100CC0007A0610927B0610927C0610927D0614BE66 :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0ECE8F9E602C0059049 +:100CF000099512E0A0E0B1E0E6EAF9E602C005904D :100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92AA37B207E1F70E9430260C948D3459 +:100D10001D92AA37B207E1F70E9430260C949A344C :100D20000C940000CF93DF934091780650917906A0 :100D3000485754409A01205A3F4F21303240C0F06A :100D400020E032E0241B350B60917604709177042B @@ -288,7 +288,7 @@ :1011F000E8835A83DF91CF911F910F91FF90EF9079 :10120000DF90BF90AF900895E62EF12C4491D42E3C :10121000E42FF0E026E0829FC00111242FEF30E0A0 -:10122000B9010E94C132802F90E0880F991F55E5C7 +:10122000B9010E94CE32802F90E0880F991F55E5BA :10123000569FD001579FB00D11248A1B9B0B982FEE :10124000990F890F5901AE18BF08AE9ED001AF9E0D :10125000B00DBE9EB00D11245B2F189F800111248C @@ -420,18 +420,18 @@ :101A3000819591090895681B20E0DFCF0F931F93D4 :101A4000CF93DF9300D000D0CDB7DEB789836A8310 :101A50004B831C8204E610E024E030E0AE014F5FCF -:101A60005F4F60E084E10E941F300F900F900F9055 +:101A60005F4F60E084E10E942C300F900F900F9048 :101A70000F90DF91CF911F910F91089580913203C4 :101A8000882329F047E669E98BE20C941E0D6091EA -:101A9000590170915A0190E080E00E946E3320E07D -:101AA00030E040E05CE30E94CF3320E030E040E8EB -:101AB0005FE30E946933882321F047EC6BE180E00B +:101A9000590170915A0190E080E00E947B3320E070 +:101AA00030E040E05CE30E94DC3320E030E040E8DE +:101AB0005FE30E947633882321F047EC6BE180E0FE :101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 :101AD000FF920F931F93CF93DF936C017B0164E61A -:101AE00070E088E70E94072FEC0197FD12C010E01C +:101AE00070E088E70E94142FEC0197FD12C010E00F :101AF00000E0F601E00FF11F849164E670E00E94BF -:101B0000812FEC01892B29F40F5F1F4F0E151F0544 -:101B100081F70E949B30CE01DF91CF911F910F91F1 +:101B00008E2FEC01892B29F40F5F1F4F0E151F0537 +:101B100081F70E94A830CE01DF91CF911F910F91E4 :101B2000FF90EF90DF90CF900895809148049091BE :101B30004904911103C091E089270895882369F031 :101B400062E070E08CEE9BE00E94650D892B19F03D @@ -497,7 +497,7 @@ :101F000001C0220F0A94EAF7822309F43FC0F601C8 :101F1000EE0FFF1FE80DF91DE590F490E114F104B8 :101F200009F479CF45E050E0B701CE0101960E9457 -:101F3000023309810F3F51F18A81800F9927991F40 +:101F30000F3309810F3F51F18A81800F9927991F33 :101F40008B34910514F08AE490E05C01AA0CBB1C70 :101F50008A0D9B1DDC01A15ABC4F5D01049D8001CF :101F60001124015A1C4F0A151B0520F0B5E0EB0E99 @@ -515,8 +515,8 @@ :102020002D93CD01B4E080379B07B9F78091690407 :10203000833009F471C0B8F4813009F448C08230AB :1020400009F4B4C08091E80083FF3CC1809168042A -:10205000909169049A3008F035C1E92FF0E0E1571A -:10206000FB4C0C94F5328A3009F48FC08B3009F4A4 +:10205000909169049A3008F035C1E92FF0E0E45618 +:10206000FB4C0C9402338A3009F48FC08B3009F496 :1020700070C0893039F780916804813219F78091F6 :102080006C0490916D04009711F00297D9F680913D :10209000E800877F8093E8008091E80082FF37C0E6 @@ -601,22 +601,22 @@ :10258000E9008091E800877F8093E8000E944F0770 :1025900099CE1F93CF93DF93162FC0917806D091D9 :1025A00079068A30D1F420913D04CE0188579440B9 -:1025B000622F70E00E94C132281B822F66E00E94C9 -:1025C000D532C82FC15020F4DF91CF911F910895CB +:1025B000622F70E00E94CE32281B822F66E00E94BC +:1025C000E232C82FC15020F4DF91CF911F910895BE :1025D00060E080E20E94C912F5CF8D30E9F4C8575F -:1025E000D44020913D04622F70E0CE010E94C132A0 +:1025E000D44020913D04622F70E0CE010E94CE3293 :1025F000281B822F9E01280F311D2115324018F013 :1026000080E0D0E0C0E0C80FD11DC858DB4FD093A8 :102610007906C0937806D8CF96E0FE01AEE3B4E029 :1026200001900D929A95E1F7803E90F186E0FE01CF :1026300011928A95E9F7C0917806D0917906111127 -:1026400033C046E050E0BE018EE394E00E940B33BD +:1026400033C046E050E0BE018EE394E00E941833B0 :102650009E0128573440892B91F52A5F3F4F4091C6 -:102660003D04642F70E0C9010E94C132481B46300E +:102660003D04642F70E0C9010E94CE32481B463001 :1026700010F4240F311D211572E0370710F030E0FF :1026800020E028583B4F30937906209378069CCF62 :10269000F6E08F9FB00111246655794F46E050E077 -:1026A000CE010E940233C7CF9E012A5F3F4FFE0139 +:1026A000CE010E940F33C7CF9E012A5F3F4FFE012C :1026B0002E173F0731F2808180958193F9CFC901B0 :1026C00045E0969587954A95E1F741E050E0BA01DB :1026D00002C0660F771F8A95E2F7CB0160917604FE @@ -627,27 +627,27 @@ :1027200001900020E9F78F0101501109C017D1076E :1027300030F0DF91CF911F910F91FF9008956F2D91 :1027400089910E94C912F2CFCF93DF93C3EED2E0FA -:1027500060E0CE010E9435332196C11584E0D80790 +:1027500060E0CE010E9442332196C11584E0D80783 :10276000B9F7DF91CF9108956F927F928F929F92E8 :10277000AF92BF92CF92DF92EF92FF920F931F938F :10278000CF93DF938AEAC82E86E0D82E91ECE92E0B :10279000F12CE701CC58D10936011BC0F501859019 -:1027A0009490692DC8010E943533682DC8010196A7 -:1027B0000E94353382E0A80EB11C0E5F1F4FC01778 +:1027A0009490692DC8010E944233682DC80101969A +:1027B0000E94423382E0A80EB11C0E5F1F4FC0176B :1027C000D10761F78EE0680E711C2E96CE15DF05DD :1027D00029F08E010E5011095301E0CF7E018CE8E3 :1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA :1027F000F80679F6DF91CF911F910F91FF90EF903E :10280000DF90CF90BF90AF909F908F907F906F9010 :102810000895CF93C82F6FEF811161E283E290E0BA -:102820000E9435336FEFC11161E184E290E00E94B4 -:1028300035336FEFC11167E085E290E0CF910C94E2 -:10284000353380E00E94091460E086E290E00E9447 -:1028500035330E94B4130E94A41381E00C94091430 +:102820000E9442336FEFC11161E184E290E00E94A7 +:1028300042336FEFC11162E185E290E0CF910C94D9 +:10284000423380E00E94091460E086E290E00E943A +:1028500042330E94B4130E94A41381E00C94091423 :102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 :102870002EE0629FC00DD11D11243CE8839FC00D46 -:10288000D11D1124CE0187960E942133082F10E01C -:10289000102F0027CE0188960E9421339801282B03 +:10288000D11D1124CE0187960E942E33082F10E00F +:10289000102F0027CE0188960E942E339801282BF6 :1028A000C901DF91CF911F910F910895462F853077 :1028B00038F47A3028F4673018F4672F0C94301409 :1028C00090E080E00895CF92DF92FF920F931F93E4 @@ -659,15 +659,15 @@ :1029200061F3EECFCF93DF93EC010E946314BE01FD :102930000E945614DF91CF910C94D609FC0180813E :1029400091810E949214292F2F7092959F7092501E -:102950009E3078F4E92FF0E0E756FB4C0C94F5320A +:102950009E3078F4E92FF0E0EA55FB4C0C940233FA :10296000803F19F020F4883E20F481E00895843FF0 :10297000E1F380E00895883EC0F3813FD1F7F5CFC1 :10298000822F869586958695089583E290E00E9431 -:102990002133813289F484E290E00E942133813135 -:1029A00059F485E290E00E94213391E0873009F0EC +:102990002E33813289F484E290E00E942E3381311B +:1029A00059F485E290E00E942E3391E0823109F0E3 :1029B00090E0892F8170089580E0FCCFCF92DF9264 :1029C000EF92FF926B017C010E94CC08B701A60137 -:1029D00088E090E0FF90EF90DF90CF900C94473329 +:1029D00088E090E0FF90EF90DF90CF900C9454331C :1029E000AF92BF92CF92DF92EF92FF920F931F931D :1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E :102A0000142FE22E8091710480FF4FC0E82FE695CD @@ -686,7 +686,7 @@ :102AD000C5CF923039F6E2508E2F8170D82EE69510 :102AE000F0E0E55AF94FA590B490C12CBB24609159 :102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 -:102B0000A39E900DB29E900D112470E00E94C132E0 +:102B0000A39E900DB29E900D112470E00E94CE32D3 :102B1000802FD11016C0860F40917101420F532FA4 :102B2000511D9A01220F331F240F351F215A3C4F8C :102B3000412F113A08F040EA6F2D0E94E208C39439 @@ -748,19 +748,19 @@ :102EB000808311828FEF828380EA83831482A9E565 :102EC000B3E012968C911297836012968C93608176 :102ED0007181828193810C94DE1469EE7EEF90E023 -:102EE00080E00E94533360E082E090E00E9435333E -:102EF00060E083E090E00E9435331092920260E03F -:102F000084E090E00E94353360E082E290E00E942D -:102F1000353360E085E090E00E94353360E086E084 -:102F200090E00E9435336FEF87E090E00E943533E8 -:102F300040E050E0BA0188E090E00E94473360E052 -:102F40008DE090E00E94353340E050E0BA0188E126 -:102F500090E00E94473360E087E190E00E943533C3 -:102F600040E050E0BA018CE190E00E94473370E00D -:102F700060E080E290E00E94533340E050E0BA010C -:102F800088E190E00E94473380E00E9409140E948B -:102F9000211440E050E0BA018FE090E00E944733F6 -:102FA00040E050E0BA0183E190E00C9447330F9386 +:102EE00080E00E94603360E082E090E00E94423324 +:102EF00060E083E090E00E9442331092920260E032 +:102F000084E090E00E94423360E082E290E00E9420 +:102F1000423360E085E090E00E94423360E086E06A +:102F200090E00E9442336FEF87E090E00E944233CE +:102F300040E050E0BA0188E090E00E94543360E045 +:102F40008DE090E00E94423340E050E0BA0188E119 +:102F500090E00E94543360E087E190E00E944233A9 +:102F600040E050E0BA018CE190E00E94543370E000 +:102F700060E080E290E00E94603340E050E0BA01FF +:102F800088E190E00E94543380E00E9409140E947E +:102F9000211440E050E0BA018FE090E00E945433E9 +:102FA00040E050E0BA0183E190E00C9454330F9379 :102FB0001F93CF93DF9300D000D0CDB7DEB7409101 :102FC000C5025091C6026091C7027091C8022FB726 :102FD000F8948091510490915204A0915304B091BF @@ -769,7 +769,7 @@ :1030000062086E5F7F4F8F4F9F4F69837A838B83F8 :103010009C8380912C0190912D0181559D4F409171 :103020002B0150E04530510510F044E050E0BE0166 -:103030006F5F7F4F0E94183384E090E00E940D3252 +:103030006F5F7F4F0E94253384E090E00E941A3238 :10304000892BD9F40E9462086093C5027093C6026E :103050008093C7029093C80281E010C00E9462086A :103060000091D2021091D3022091D4023091D50266 @@ -782,8 +782,8 @@ :1030D000C916D104E104F10410F4442311F1E82EDF :1030E000082E000CFF089AE08902F0011124EF5F1E :1030F000FE4F8381948181559D4F428150E004179A -:10310000150708F4A801B9010E941833C7010E94ED -:103110000D32892BA1F40E946208688379838A8327 +:10310000150708F4A801B9010E942533C7010E94E0 +:103110001A32892BA1F40E946208688379838A831A :103120009B8381E0DF91CF911F910F91FF90EF90F2 :10313000DF90CF90BF90AF909F908F90089580E0E8 :10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD @@ -801,25 +801,25 @@ :1032000008956F927F928F929F92AF92BF92CF92CA :10321000DF92EF92FF920F931F93CF93DF930F9262 :10322000CDB7DEB7862E5A016901682E880F770860 -:10323000C3010E940D32892B09F088C08AE0869D67 +:10323000C3010E941A32892B09F088C08AE0869D5A :10324000F001879DF00D1124EF5FFE4F458150E0A6 :103250004115510511F041E050E08AE0869DF001F2 :10326000879DF00D1124EF5FFE4F668177816155D8 -:103270007D4FCE0101960E941833F50140815181A6 +:103270007D4FCE0101960E942533F5014081518199 :10328000628173812FB7F894809151049091520418 :10329000A0915304B09154042FBF841B950BA60B2F :1032A000B70B84369105A105B10540F4B701C801FB :1032B0000E94B1089981891709F44FC0082C000CAD -:1032C0009908C4010E940D32892B91F0B12C8B2DED +:1032C0009908C4010E941A32892B91F0B12C8B2DE0 :1032D0000F90DF91CF911F910F91FF90EF90DF90B2 :1032E000CF90BF90AF909F908F907F906F900895F8 :1032F0008AE0889DF001899DF00D1124EF5FFE4F5B :10330000458150E0E416F50608F4A7018AE0889D9F :10331000F001899DF00D1124EF5FFE4F66817781EA -:1033200061557D4FC6010E941833B701C8010E9444 +:1033200061557D4FC6010E942533B701C8010E9437 :10333000B10899818913CACF0E946208F5016083A0 :10334000718382839383BB24B394C1CFB12CA70133 -:10335000B801C6010E941833BACFBB24B394F7CF8B +:10335000B801C6010E942533BACFBB24B394F7CF7E :10336000CF92DF92EF92FF920F931F93CF93DF9351 :1033700000D000D00F92CDB7DEB76B0185E0E82E0C :10338000F12C00EB12E09E012F5F3F4F47EA52E025 @@ -828,7 +828,7 @@ :1033B000E2EAF2E0D60101900D929A95E1F70F90C2 :1033C0000F900F900F900F90DF91CF911F910F9161 :1033D000FF90EF90DF90CF90089590E080E00E9402 -:1033E0002F33893E9E4F11F40C94C51480E008954C +:1033E0003C33893E9E4F11F40C94C51480E008953F :1033F0001F920F920FB60F9211242F933F934F936A :103400005F936F937F938F939F93AF93BF93CF936C :10341000DF93EF93FF93D091E900DF708091EC0090 @@ -882,16 +882,16 @@ :103710006314182F682F89819A810E94890B69810F :103720007A81812F0E9456148C01F60182818823B0 :1037300009F42BC5C80182519F45409708F0EEC49B -:103740008FEF93E00E942133025193EEA92E92E075 +:103740008FEF93E00E942E33025193EEA92E92E068 :10375000B92E8111C7CF01113AC01C821B82662489 :1037600063948AE0582E85010F5F1F4FC5010E94A8 -:10377000213389831A82882309F4B4CF9FEF980FED +:103770002E3389831A82882309F4B4CF9FEF980FE0 :103780009330A0F58A83698232E0A30EB11CC80190 -:103790000E9421338B83882309F4A4CF8E010F5F0D +:103790000E942E338B83882309F4A4CF8E010F5F00 :1037A0001F4FF80120812223F1F2213009F058C087 :1037B000918182819130E1F40E5F1F4F6AE070E0E9 :1037C000893311F460E570E00E94CF0E17C0A11498 -:1037D000F4E0BF0609F486CFC5010E9421338111B0 +:1037D000F4E0BF0609F486CFC5010E942E338111A3 :1037E00001C001502FEFA21AB20AB5CF5801D6CFAF :1037F000923039F40E5F1F4F0E94150C0F5F1F4F60 :10380000D0CF933029F40E5F1F4F0E94DC0BF6CF10 @@ -925,7 +925,7 @@ :1039C0000E94890BB8018F2D0E9456140E94D609BF :1039D000182FB82EF60122814581342F32953F7081 :1039E000892F82958F70E82EF12C8C3008F04EC212 -:1039F000F701E955FB4C0C94F5320338FFE51F073E +:1039F000F701EC54FB4C0C9402330338FFE51F072E :103A000009F481C018F501383FE5130709F44AC0ED :103A100008F065C000385FE5150709F0A5CF8823D9 :103A200009F459C080919C02811106C081E0809305 @@ -933,9 +933,9 @@ :103A400080939A028BE20E94150C8ECF05389FE579 :103A5000190709F4BEC008F476C00638FFE51F0751 :103A600009F082CF882309F4CEC06091590170918A -:103A70005A0190E080E00E946E3320E030E040E0A8 -:103A80005CE30E94CF3320E030E040E85FE30E9437 -:103A900069338111B5C080EE90E090935A01809314 +:103A70005A0190E080E00E947B3320E030E040E09B +:103A80005CE30E94DC3320E030E040E85FE30E942A +:103A900076338111B5C080EE90E090935A01809307 :103AA0005901A1C08823A1F080919C02811106C018 :103AB00081E080939C0282EE0E94150C0E94461BBE :103AC00090939B0280939A0281EE0E94150CBACFCC @@ -1142,7 +1142,7 @@ :10475000F601319780818F3F11F00E947C0950EA69 :104760005A95F1F7F801EE0DFF1D90828FEFE81AD0 :10477000F80A95E0E916F10409F0A8CF4AE050E004 -:10478000B80188ED92E00E940B337C01892B41F047 +:10478000B80188ED92E00E9418337C01892B41F03A :104790008AE0F801A8EDB2E001900D928A95E1F768 :1047A0001091E302E114F104B9F181E080939502E4 :1047B0000E94461B909394028093930280919302EF @@ -1220,7 +1220,7 @@ :104C30005204A0915304B09154044196A11DB11D9A :104C40008093510490935204A0935304B09354045E :104C5000BF91AF919F918F911F901FBE1F9018958C -:104C6000CDB7DEB7E3970FB6F894DEBF0FBECDBF6A +:104C6000CDB7DEB7E9970FB6F894DEBF0FBECDBF64 :104C700084B7877F84BF0FB6F894A89580916000B1 :104C8000886180936000109260000FBE80E890E021 :104C90000FB6F89480936100909361000FBE85B7C2 @@ -1234,7 +1234,7 @@ :104D1000D3021092D4021092D5020E94C5148111C0 :104D200002C00E9421140E949C0E80935801809121 :104D30005801882309F4C6C010926F0185E2809360 -:104D400070010E949C0E81110E94003180915801D7 +:104D400070010E949C0E81110E940D3180915801CA :104D500081112FC0FE01359686E0DF011D928A95F4 :104D6000E9F786E6898387E98A8386EC8B8384E387 :104D70008C8385E38D833497AEE4B1E0CE010B964E @@ -1249,21 +1249,21 @@ :104E00007C09E016F106B1F7E8EDF2E082EE92E0FF :104E1000AFE4B3E011921D928E179F07D9F70E945D :104E2000ED19811102C00E946D1782E090E00E948E -:104E300021338093440384E090E00E942133182FB3 -:104E400082E290E00E942133982F812F9093D70225 +:104E30002E338093440384E090E00E942E33182F99 +:104E400082E290E00E942E33982F812F9093D70218 :104E50008093D6020E944223EFE7FBEB3197F1F7F4 :104E600000C000000E94422380914F0380FF2EC0AB -:104E70006FEF7FEF90E080E00E94533381E08093FA +:104E70006FEF7FEF90E080E00E94603381E08093ED :104E8000E00080E28093D8001092C9008FE19EE498 :104E90000197F1F700C0000087E090EBDC01809300 :104EA0007A0690937B06A0937C06B0937D0688E1FA :104EB0009CE00FB6F894A895809360000FBE909385 :104EC0006000FFCF85E280936F0139CF83E090E0EF -:104ED0000E9421330E94C30B809170040E946E16C1 -:104EE0000E949C0E811102C00E94033183E08093D6 -:104EF0001A0380E280933D040E94012F6DE070E070 +:104ED0000E942E330E94C30B809170040E946E16B4 +:104EE0000E949C0E811102C00E94103183E08093C9 +:104EF0001A0380E280933D040E940E2F6DE070E063 :104F00008CE992E00E94650D892BE9F580911A03E6 -:104F100063E070E081FD97C289E992E00E94650D2F +:104F100063E070E081FD9EC289E992E00E94650D28 :104F2000892B89F56DE070E089E892E00E94650DBB :104F3000892B49F50E9462086058774C8E4F9F4F2D :104F4000609344047093450480934604909347040F @@ -1272,9 +1272,9 @@ :104F7000909377048093760481E080934904809332 :104F8000480410921B038091E402811136C00E94F4 :104F9000ED19811104C00E946D170E94551788E019 -:104FA00090E00E942933609371047093720480939F +:104FA00090E00E9436336093710470937204809392 :104FB00073049093740480915B03836080935B031C -:104FC0006E7F71F40E94551788E090E00E942933AB +:104FC0006E7F71F40E94551788E090E00E9436339E :104FD00060937104709372048093730490937404CB :104FE0000E94CC088091710480FF04C060E0869527 :104FF0000E94071681E08093E4028091580181119C @@ -1289,421 +1289,423 @@ :105080002A95E2F7817020A130E002C0359527957E :105090004A95E2F792E020FF90E0892B8093EC02A2 :1050A0008091580111E081278093EB02312F381B4A -:1050B0003093E5020E94012F40E060E080E00E9412 +:1050B0003093E5020E940E2F40E060E080E00E9405 :1050C0001E0D89EA92E090935E0380935D0360E099 :1050D0008AE00E94071681E00E940B1780EE90E0A4 :1050E00090935A0180935901109332030E943E0D10 -:1050F0008BE591E090934D0480934C04E0E46E2E98 -:1051000080916604FF24F39400E112E1853009F4F4 -:10511000ECC10E944223E82E81110E946208E5E45E -:10512000F3E0AFE4B3E010E000E0B02EDD90819159 -:105130008D1509F4FEC18D25C12CFF24F394982F01 -:105140009F2109F4F1C10E949C0E882399F0C8A602 -:10515000B9A6DF2081E009F480E08AA70E94461BFF -:105160008160782F9CA78BA748A559A56AA58CA517 -:105170000E94B022F801EB5BFC4F8081F826F082A0 -:105180008091EC02E82FEE0FEE0F90916601A92FAF -:10519000A295AF70B0E090962C9130E09F7002C065 -:1051A000359527959A95E2F72170332790916501FF -:1051B000A92FA295AF70B0E090964C9150E09F70EF -:1051C00002C0559547959A95E2F7CA0181709927D3 -:1051D00040FF02C082E090E0822B8E2B8093EC0295 -:1051E0001091EB028F70E82FF0E0E650FE4F8081C7 -:1051F0009091EA02890F8093EA02F12C84306CF0DE -:10520000E12FF0E0E851FD4F80818F5F808360E007 -:10521000812F0E947625FF24F3948091EA028D3F2E -:105220006CF4E12FF0E0E851FD4F808181508083E4 -:1052300061E0812F0E947625FF24F3948091EA0299 -:10524000082E000C990B64E070E00E94E13280931C -:10525000EA02F1100E943E0B80914904882351F12B -:1052600080911C0390911D030E94371BC29708F088 -:1052700077C120917604309177042115310509F02A -:1052800098C2809148048823A9F00E946208009186 -:105290004404109145042091460430914704601B5A -:1052A000710B820B930B6F3F7F4F8F4F9F4710F413 -:1052B0000E94950DE11001C0F1100E94B00D809187 -:1052C00042038A3008F0ADC38091400390914103BE -:1052D0000E94371B069708F4A4C304E610E025E0FB -:1052E00030E04BE353E064E084E10E944C30892BD2 -:1052F00009F068C31092420320913203222359F02F -:1053000080913D0390913E03982789279827909399 -:105310003E0380933D0386E0E4E2F3E0DE019196F4 -:1053200001900D928A95E1F786E0FE01B196DE01CB -:10533000119601900D928A95E1F786E0FE01319673 -:10534000A5E3B3E001900D928A95E1F780913F03C8 -:1053500087FD35C38091330390913403009709F0A2 -:1053600028C360913B0380913C0300913D03109161 -:105370003E03222309F4F0C241E00E94F80C209180 -:10538000300330913103281B390B309331032093C4 -:10539000300341E0602F812F0E94F80C20912E03F2 -:1053A00030912F03820F931F90932F0380932E032E -:1053B0006EE273E08AE393E00E94D90C60E373E04D -:1053C00089E393E00E94D90C1092370310923803BE -:1053D00086E0E5E3F3E0DE01119601900D928A95F7 -:1053E000E1F786E0FE013196A4E2B3E001900D9270 -:1053F0008A95E1F7309126032091270390912803A5 -:105400008091290370912003609121034091220330 -:1054100050912303F0912503E0911F03FE13D8C29E -:10542000332311F07313D4C2222311F02613D0C2F8 -:10543000882311F08513CCC2992319F081E0491318 -:10544000C8C280E0C6C286E992E068CD8091660459 -:10545000843009F43AC00E94950D40E060E080E09D -:105460000E941E0D80E00E9456168091E702811175 -:1054700009C0F092E7028091710481708093E60286 -:105480000E94E20F1092500488E190E00FB6F89469 -:10549000A895809360000FBE6092600083B7817F03 -:1054A000846083BF83B7816083BF7894889583B716 -:1054B0008E7F83BF0FB6F894A895809160008861B5 -:1054C00080936000109260000FBE80916504882375 -:1054D00061F00E944223EFE4F3E08191811170C4F6 -:1054E000A9E5B3E0AE17BF07C1F780916604853028 -:1054F00009F4ACCF109259040E94F70F0E94BF0E1E -:105500000E9456161092E7028091E602882349F025 -:105510008091710481608093710460E086950E949F -:1055200007160E943E0DF5CDC394FF0C27E0C21272 -:1055300006CE0F5F1F4F0A30110509F0F6CD8FEF31 -:105540008DA78EA71FA60E94461B8160782F99AB5E -:1055500088AB4DA55EA56FA589A90E94B02210CE8B -:105560000E94461B90931D0380931C0360E080E023 -:105570000E949A080E94BF0E8093F9020E949C0E1E -:10558000882331F14091F5025091F6026091F702C3 -:105590007091F8022FB7F8948091510490915204C1 -:1055A000A0915304B09154042FBF841B950BA60BFC -:1055B000B70B81339547A105B10540F00E94950DC9 -:1055C00080914904882309F45CCE53CE0E94B00D2B -:1055D0000E949C0E882309F4D3C061E080E00E9401 -:1055E0009A0860E08CE791E00E94881362E080E016 -:1055F0000E949A08809170040E94890C823009F4FC -:1056000099C008F08EC0882309F494C0813009F451 -:1056100097C065E080E00E949A0860E08AE991E026 -:105620000E94881366E080E00E949A086091F90267 -:10563000669561708FE991E00E94881367E080E0D1 -:105640000E949A086091F9026095617084EA91E085 -:105650000E94881368E080E00E949A086091F90235 -:1056600062FB662760F988EA91E00E948813409106 -:10567000F1025091F2026091F3027091F4022FB79F -:10568000F8948091510490915204A0915304B091E8 -:1056900054042FBF841B950BA60BB70B8D32914082 -:1056A000A105B10508F48CCF0E9462086093F10255 -:1056B0007093F2028093F3029093F4028091F002CF -:1056C000811104C080916701811142C06DE080E0CA -:1056D0000E949A0860E08DEA91E00E9488136AE0D7 -:1056E00080E00E949A0881E0809367018091EF0238 -:1056F00090E00196817099278093EF0221E030E0DD -:10570000281B390B40E6429FC001439F900D112496 -:105710002091EE02222351F1855C9B4F0E9492065C -:105720004FCF833089F0843009F073CF60E08EE88A -:1057300091E003C060E082E891E00E94881369CFA5 -:1057400060E088E891E0F9CF60E084E991E0F5CF8E -:105750006AE080E00E949A0860E08DEA91E00E9491 -:1057600088136BE080E00E949A08C0CF2091ED0280 -:10577000222319F085589C4FD1CF85549D4FCECF11 -:1057800064E080E00E949A0860E083EB91E00E9470 -:10579000881365E080E00E949A0860E089EB91E060 -:1057A0000E94881369E080E00E949A088BEF94E0E1 -:1057B000B5CF80911B0361E070E0811162CD082FAD -:1057C00010E02B01082E02C0440C551C0A94E2F78D -:1057D000A90144215521452B09F448C090911A0391 -:1057E00090FD46C08295880F807680936A0198016B -:1057F000369527953695279520936D01815E809388 -:105800006B0110926E0124E630E047E050E068E65C -:1058100071E088E70E94F82F892B09F032CDA801AA -:1058200065E0440F551F6A95E1F780911A0380FDEA -:105830002DC048585B4F04E610E020E230E060E401 -:1058400088E70E941F30892B09F01BCD0E94B00D04 -:10585000C20180959095409076045090770448223C -:10586000592250927704409276040BCD8F5FA7CFD8 -:10587000880F880F880F80936A0110926D01895FED -:1058800080936B0183E080936E01BDCFEAEFF2E07D -:1058900080E2DF011D928A95E9F7EEE0F2E0FBABD2 -:1058A000EAAB0AE012E037E0A32E99249394AAA968 -:1058B000BBA92D91BBABAAABF80121908F01240E9F -:1058C000352E311CC10188589B4F1C01E22FF0E09E -:1058D000E650FD4F30E020E07A2C721AB92C022EEF -:1058E00001C0BB0C0A94EAF7610190E0D6018D91EA -:1058F0006D018B21672D691B6770862E062E000CAB -:10590000770BB82F01C0BB0F8A94EAF78B2E7195E5 -:10591000619571096770772701C086956A95EAF7E6 -:10592000882A8081882A80829F5F9830F9F62F5FCD -:105930003F4F31962830310579F6E2E1F2E02AA9AD -:105940003BA9E217F30709F0B2CF04E610E020E22A -:1059500030E04AEF52E073CF45E00E94F80C20910E -:105960002C0330912D03820F931F90932D0380936E -:105970002C0345E0602F812F0E94F80C20912A0310 -:1059800030912B03281B390B30932B0320932A03D0 -:105990006AE273E087E393E00E94D90C6CE273E063 -:1059A00088E393E00E94D90C10923A0310923903D5 -:1059B0000FCD0197909334038093330309CD84E195 -:1059C00090E0F8CF809142038F5F8093420300CD37 -:1059D00081E080FF0FC0E0914C04F0914D043097BE -:1059E00049F082E0809324030480F581E02D84E275 -:1059F00093E0099510922603109227031092280332 -:105A00001092290386E0E4E2F3E0AEE1B3E0019016 -:105A10000D928A95E1F70E94461B90934103809373 -:105A200040030E94BF0E90914303891731F00E94FA -:105A3000BF0E809343030E94561680916604843003 -:105A400009F05ECB83E08093E9008091E80082FF5B -:105A500057CB8091E80090E085FF05C00E94F406D6 -:105A6000882399F091E08091E8008B778093E8009B -:105A7000992309F445CBE981E150E33108F076C080 -:105A8000F0E0ED54FB4C0C94F53200E210E0CE0156 -:105A900001967C018091E80085FD0AC08091E800B4 -:105AA0008B778093E8000E94F406882399F3DACF7D -:105AB0008091F100D7018D937D010150110951F7BB -:105AC000D1CF1A8289E08B8311C08A81823009F498 -:105AD0008FC1833091F1813009F048C00E94620883 -:105AE0000E94FB326B837C838D839E83809166044E -:105AF000843009F005CB1091E9001F709091EC0003 -:105B0000892F817090FD80E8182B82E08093E90056 -:105B10008091E80080FF0DC050E040E060E270E05E -:105B2000CE0101960E9425078091E8008E77809330 -:105B3000E8001F701093E900E3CADE011396EFE45A -:105B4000F3E081918D9323E0E935F207D1F7CECFD1 -:105B50008A81823059F46B817C818D819E810E9483 -:105B6000FB3286E290E00E943533C0CF8FEF89830D -:105B7000BDCF4C816B818A810E9430149827892780 -:105B800098279E838D83B2CFED80FE80FE24EF2484 -:105B9000FE248A810B813EE0039F800111249CE852 -:105BA000899F000D111D11248C8190E0880F991F91 -:105BB000080F191F6F2DC80187960E9435336E2D6F -:105BC000C8018896D0CF0E94B41390CF8A818138C3 -:105BD000C1F060F4803809F089CF20E04B816091FA -:105BE0007304809172040E94F01480CF8238E9F02F -:105BF000833809F07BCF20E0409174046C818B8165 -:105C0000F2CF60E08B810E9407168B81811103C067 -:105C10000E94E20F6BCF80917104816080937104C8 -:105C200060E086950E94071661CF8B818093750492 -:105C30005DCF8A81813899F030F4803809F056CFF1 -:105C40008091740440CF823891F0833809F04ECFB0 -:105C5000809172048B83809173048C8347CF8091F1 -:105C6000710480FF02C086952ECF80E02CCF8091FA -:105C7000750429CF6091710470917204809173044E -:105C8000909174040E94DE1431CF80E18A832ECF7C -:105C900081E08A838DE117CFCA80DB80DC24CD24AC -:105CA000DC248E010F5F1F4FEC80E00EF12EF11C03 -:105CB000C6018D519D4F0E151F0509F417CFADE19B -:105CC000CA16A1E0DA0650F40E942133F801848359 -:105CD000BFEFCB1ADB0A0F5F1F4FEACFD801149634 -:105CE0001C92F6CF0A811B81102701271027FE0185 -:105CF00031966F01EC80E00EF12EF11CC8018D5140 -:105D00009D4FE016F10609F4F1CE0D31F1E01F07C9 -:105D100028F4D60114966C910E943533BFEFCB1A4C -:105D2000DB0A0F5F1F4FEACF0E94A413DFCE85E08E -:105D3000ADCFCA80DB80DC24CD24DC248E010F5F54 -:105D40001F4FEC80E00EF12EF11CC6018796E01685 -:105D5000F10609F4CBCEECEBCE16E2E0DE0658F409 -:105D60000E942133D80114968C93FFEFCF1ADF0ADB -:105D70000F5F1F4FEACFF8011482F7CF0A811B8112 -:105D80001027012710279E012F5F3F4F6901EC80EC -:105D9000E00EF12EF11CC8018796E016F10609F419 -:105DA000A5CE0C3B32E0130728F4D60114966C9173 -:105DB0000E943533BFEFCB1ADB0A0F5F1F4FEBCFCB -:105DC00009BD19BD09B400FEFDCF8091D8008F7DBB -:105DD0008093D8008091E00082608093E000809101 -:105DE000E00081FDFCCF109259040E94F70F7DCB9B -:105DF00086E290E00E9421331B821C821D828E83EA -:105E000075CE1092B9008CE08093B80008959F92EF -:105E1000AF92BF92CF92DF92EF92FF920F931F93B8 -:105E2000CF93DF93B82EEB010E94461B6C01EE244A -:105E3000E394F12CC431D10560F025E0E22EF12C81 -:105E4000CF3FDC0731F0CE0164E170E00E94C13247 -:105E50007B0184EAA82E94E8992E1092BC00A092AF -:105E6000BC000E94461B8C018091BC0087FF0DC0C6 -:105E70008091B900887F883039F18091B900887F9E -:105E8000803111F10FEF1FEF09C00E94461B801BEC -:105E9000910B8E159F0540F30EEF1FEFCF3FDC07F0 -:105EA000E1F2C6010E94371B8C179D07B0F2C801B2 -:105EB000DF91CF911F910F91FF90EF90DF90CF90E6 -:105EC000BF90AF909F900895B092BB009092BC009D -:105ED0000E94461B8C018091BC0087FF0AC0809104 -:105EE000B900887F883111F0803461F610E000E05D -:105EF000DECF0E94461B801B910B8E159F0558F329 -:105F0000CBCF0F931F93CF93DF93EB018093BB0015 -:105F100084E88093BC000E94461B8C018091BC00E9 -:105F200087FF11C02091B900287F81E090E02832DE -:105F300011F490E080E0919581959109DF91CF91E6 -:105F40001F910F910895CF3FDC0741F30E94461B3C -:105F5000801B910B8C179D0708F38EEF9FEFEECF00 -:105F60000F931F93CF93DF93EC0184EC8093BC00DD -:105F70000E94461B8C018091BC0087FF08C0809165 -:105F8000BB0090E0DF91CF911F910F910895CF3F1B -:105F9000DC0789F30E94461B801B910B8C179D0721 -:105FA00050F38EEF9FEFEECF0F931F93CF93DF93BE -:105FB000EC0184E88093BC000E94461B8C01809118 -:105FC000BC0087FF08C08091BB0090E0DF91CF91BB -:105FD0001F910F910895CF3FDC0789F30E94461B64 -:105FE000801B910B8C179D0750F38EEF9FEFEECF28 -:105FF000CF92DF92EF92FF920F931F93CF93DF9395 -:106000006B018A017901B9010E94072FE6010C0D8D -:106010001D1DC017D10761F424E92093BC00DF9156 -:10602000CF911F910F91FF90EF90DF90CF90089547 -:1060300097FDF2CFB70189910E94812FEACFCF92CD -:10604000DF92EF92FF920F931F93CF93DF93C62FB0 -:106050006A017901B8010E94072F97FD0CC0B801B1 -:106060008C2F0E94812FE601EC0CFD1CCE15DF0564 -:1060700011F097FF0CC024E92093BC00DF91CF9171 -:106080001F910F91FF90EF90DF90CF900895B8018E -:1060900089910E94812FEACFCF92DF92EF92FF92F7 -:1060A0000F931F93CF93DF93F82EE62EEA01690139 -:1060B000B8010E94072F97FD15C0B8018E2D0E94D0 -:1060C000812F97FD0FC0B8018F2D81600E94072F8F -:1060D000F12CE12C21E0C21AD108EC14FD0400F5EA -:1060E00097FF11C024E92093BC001816190614F478 -:1060F00090E080E0DF91CF911F910F91FF90EF90A2 -:10610000DF90CF900895C8010E94B02F97FD04C082 -:10611000FE01EE0DFF1D80832FEFE21AF20ADDCFA4 -:1061200097FDE0CFC8010E94D42F97FDDBCFCC0DA7 -:10613000DD1D8883D7CF84E98093BC0008958EE16C -:106140004A9B02C08150E1F74A9BFECF08955A98BE -:1061500080E28A95F1F75A9A0895FC013BE03A955E -:10616000F1F798E020E080E031E040E14A95F1F776 -:10617000880F4A9B02C08160232742E04A95F1F7CD -:10618000000040E14A95F1F7915079F790E19A9536 -:10619000F1F799B132E03A95F1F7000040E14A9504 -:1061A000F1F792FB992790F992272081920F908323 -:1061B0000895EF92FF920F931F93CF93DF930F9267 -:1061C000CDB7DEB719828C017C01E60EF11C0E15ED -:1061D0001F0561F481E09981911180E00F90DF91BA -:1061E000CF911F910F91FF90EF9008950E949F30E3 -:1061F000CE0101960E94AD30F80181938F01E7CF67 -:10620000529A5A9A089552985A9AEA9AE9E6F0E010 -:1062100080818F7C808308956150770B91E001C06D -:10622000990F6A95EAF720E031E0911108C0222326 -:1062300091F05A9A80E28A95F1F75A980895492F79 -:10624000482339F05A9A232740E24A95F1F7969568 -:10625000ECCF5A98F9CF5A98EDCFFF920F931F9336 -:10626000CF93DF93EC018C01060F111DC017D107EE -:1062700031F4DF91CF911F910F91FF900895F99024 -:106280000E94A73068E08F2D0E940C31EFCF1F9243 -:106290000F920FB60F921124EF92FF920F931F935C -:1062A0002F933F934F935F936F937F938F939F931E -:1062B000AF93BF93EF93FF93CF93DF930F92CDB73D -:1062C000DEB719820E949F30CE0101960E94AD3048 -:1062D000A82FA695A695A695282F229525709A2FCA -:1062E0009570290F922F937026952695920F9827D7 -:1062F00097708981982B09F075C0A83008F072C09A -:1063000080E18A95F1F75A9A529AB2E0BA95F1F77C -:1063100000C05A98EA2EF12CEAE0AE9FD001112479 -:10632000AF5FBE4F1896ED91FC9119973097B1F081 -:106330006091F8017091F90116962D913C91179793 -:10634000260F371F13968D919C911497680F791F14 -:1063500015964C91159712968C9109958AE08E9D11 -:10636000F0018F9DF00D1124EF5FFE4F65816623D4 -:1063700051F02091F8013091F90186819781820FC7 -:10638000931F0E942D310E94A730F0E1FA95F1F79A -:106390005A9852985A9A80E18A95F1F78AE08E9D30 -:1063A00080018F9D100D11240F5F1E4FD801129692 -:1063B0006C911297662371F12091F8013091F901E7 -:1063C00013968D919C91820F931F0E94D930D80112 -:1063D000ED91FC91882311F088E001C082E0808378 -:1063E0000E949F300F90DF91CF91FF91EF91BF916D -:1063F000AF919F918F917F916F915F914F913F915D -:106400002F911F910F91FF90EF900F900FBE0F9063 -:106410001F901895ED91FC91DFCF0F931F93CF93B1 -:10642000DF93EC0108970CF0A9C08AE08C9FF00183 -:106430008D9FF00D1124EF5FFE4F80819181892B9C -:1064400009F49CC0F894529A5A9885E08A95F1F71D -:1064500000008C2F869585709C2F9570890F982F42 -:10646000937086958695890F8E0193E0000F111F1A -:106470009A95E1F7082B0E94A73000C068E0802FB2 -:106480000E940C31A0E1AA95F1F752985A9A4A9BC2 -:1064900027C087E090E04A9925C08AE08C9F800160 -:1064A0008D9F100D11240F5F1E4FF801658166232B -:1064B000A1F12091F8013091F90186819781820F35 -:1064C000931F0E94D930811128C0529A5A9AD8013C -:1064D000ED91FC9182E08083789482E090E016C098 -:1064E00000C0D5CF0197B9F4529A5A9A8AE08C9F8E -:1064F000F0018D9FF00D1124EF5FFE4F0190F081B0 -:10650000E02D81E08083789481E090E0DF91CF916D -:106510001F910F91089500C0BECF0E949F30B0E23E -:10652000BA95F1F75A98529AE0E1EA95F1F78AE0C4 -:106530008C9FF0018D9FF00D1124EF5FFE4F628163 -:10654000662351F02091F8013091F9018381948103 -:10655000820F931F0E942D310E94A7308AE08C9FEA -:10656000F0018D9FF00D1124EF5FFE4F0190F0813F -:10657000E02D1082789490E080E0C8CF84E090E035 -:10658000C5CFAA1BBB1B51E107C0AA1FBB1FA61783 -:10659000B70710F0A61BB70B881F991F5A95A9F7CC -:1065A00080959095BC01CD010895991B79E004C0B8 -:1065B000991F961708F0961B881F7A95C9F7809542 -:1065C000089597FB072E16F4009407D077FD09D0A5 -:1065D0000E94C13207FC05D03EF4909581959F4FF3 -:1065E0000895709561957F4F0895EE0FFF1F0590F8 -:1065F000F491E02D09946927962769277827872742 -:1066000078270895FB01DC0102C005900D924150EE -:106610005040D8F70895FB01DC0104C08D91019032 -:10662000801921F441505040C8F7881B990B0895F8 -:10663000FB01DC0102C001900D9241505040D8F79F -:106640000895F999FECF92BD81BDF89A992780B53A -:106650000895A6E1B0E044E050E00C945B33A8E17B -:10666000B0E042E050E00C945B33262FF999FECF66 -:1066700092BD81BDF89A019700B4021639F01FBA95 -:1066800020BD0FB6F894FA9AF99A0FBE08950396B2 -:10669000272F0E9436330E943533252F0E94363330 -:1066A000242F0C9436330196272F0E9436330C94F6 -:1066B0003533DC01CB01FC01F999FECF06C0F2BDF8 -:1066C000E1BDF89A319600B40D9241505040B8F7B0 -:1066D00008950E94AB3308F481E00895E89409C05E -:1066E00097FB3EF490958095709561957F4F8F4F05 -:1066F0009F4F9923A9F0F92F96E9BB279395F6951B -:10670000879577956795B795F111F8CFFAF4BB0F98 -:1067100011F460FF1BC06F5F7F4F8F4F9F4F16C0FC -:10672000882311F096E911C0772321F09EE8872F86 -:10673000762F05C0662371F096E8862F70E060E042 -:106740002AF09A95660F771F881FDAF7880F9695BB -:10675000879597F90895990F0008550FAA0BE0E85F -:10676000FEEF16161706E807F907C0F01216130613 -:10677000E407F50798F0621B730B840B950B39F453 -:106780000A2661F0232B242B252B21F408950A26B9 -:1067900009F4A140A6958FEF811D811D08950E94E7 -:1067A000E2330C9453340E94453438F00E944C3448 -:1067B00020F0952311F00C943C340C9442341124B5 -:1067C0000C9487340E94643470F3959FC1F3950F45 -:1067D00050E0551F629FF001729FBB27F00DB11D65 -:1067E000639FAA27F00DB11DAA1F649F6627B00DF5 -:1067F000A11D661F829F2227B00DA11D621F739FDE -:10680000B00DA11D621F839FA00D611D221F749FEB -:106810003327A00D611D231F849F600D211D822F32 -:10682000762F6A2F11249F5750409AF0F1F0882359 -:106830004AF0EE0FFF1FBB1F661F771F881F915086 -:106840005040A9F79E3F510580F00C943C340C94C5 -:1068500087345F3FE4F3983ED4F386957795679548 -:10686000B795F795E7959F5FC1F7FE2B880F911DB0 -:106870009695879597F9089597F99F6780E870E056 -:1068800060E008959FEF80EC089500240A941616A6 -:10689000170618060906089500240A94121613060E -:1068A000140605060895092E0394000C11F488239C -:1068B00052F0BB0F40F4BF2B11F460FF04C06F5FB8 -:1068C0007F4F8F4F9F4F089557FD9058440F551F8E -:1068D00059F05F3F71F04795880F97FB991F61F062 -:1068E0009F3F79F087950895121613061406551FD9 -:1068F000F2CF4695F1DF08C0161617061806991F45 -:10690000F1CF86957105610508940895E894BB2739 -:1069100066277727CB0197F90895F894FFCFE71002 -:106920000F1162110F11621142117A116211771267 -:106930008412B014B014B914B914BB14B914B91436 -:10694000B914B014B014C014B914B914C014131F7E -:10695000131F6C1F6C1F9E1F461F461F461FB81F2C -:10696000292039203920612D652DA82DB92DC42D60 -:10697000E32DE62D192E3A2EB62DB62D452E482E96 -:0C6980004C2E722E942E972E992EBE2EB7 -:10698C000138020000000100000000380200000085 -:10699C00050100000038020000000106000000386C -:1069AC00020000000107000000380204080000008B -:1069BC000000003802090C00000000000038020141 -:1069CC001500000000000036323331F7F667669789 -:1069DC00C6343500000000000180005F082B0E0A51 -:1069EC000E060E020EF4F5010021007F22000300BA -:1069FC004A004A4A01F6F731333236674C41594561 -:106A0C00520042617365200047616D652000526140 -:106A1C00697365004C6F776572004C4F434B0043B4 -:106A2C00617073004E756D005363726C00202020F2 -:106A3C00202000534F4C415200544D505354008170 -:106A4C008283E200E900EA00B500B600B700CD0091 -:106A5C008301CC008A0192019401210223022402B9 -:106A6C002502260227022A02B300B4006F00700030 -:106A7C000603060806010606AF0200FF010001002E -:106A8C0000FFFF0000010001FF00000810181810A3 -:106A9C00080000010202020202020202020240226B -:0E6AAC007B99017701FC00000C190C390C00DD +:1050F0008BE591E090934D0480934C043E018DE349 +:10510000680E711C80916604FF24F39400E112E1A3 +:10511000853009F4F2C10E944223E82E81110E94D9 +:105120006208E5E4F3E0AFE4B3E010E000E0B02EA5 +:10513000DD9081918D1509F404C28D25C12CFF24C9 +:10514000F394982F9F2109F4F7C10E949C0E8823A5 +:1051500099F0CEA6BFA6DF2081E009F480E088ABFD +:105160000E94461B8160782F9AAB89AB4EA55FA544 +:1051700068A98AA90E94B022F801EB5BFC4F8081EC +:10518000F826F0828091EC02E82FEE0FEE0F90915E +:105190006601A92FA295AF70B0E090962C9130E0F7 +:1051A0009F7002C0359527959A95E2F721703327B5 +:1051B00090916501A92FA295AF70B0E090964C91A7 +:1051C00050E09F7002C0559547959A95E2F7CA0145 +:1051D0008170992740FF02C082E090E0822B8E2BE5 +:1051E0008093EC021091EB028F70E82FF0E0E65014 +:1051F000FE4F80819091EA02890F8093EA02F12CA0 +:1052000084306CF0E12FF0E0E851FD4F80818F5F3A +:10521000808360E0812F0E947625FF24F3948091A3 +:10522000EA028D3F6CF4E12FF0E0E851FD4F808100 +:105230008150808361E0812F0E947625FF24F394C2 +:105240008091EA02082E000C990B64E070E00E9445 +:10525000EE328093EA02F1100E943E0B80914904E5 +:10526000882351F180911C0390911D030E94371BEC +:10527000C29708F07DC12091760430917704211502 +:10528000310509F0A0C2809148048823A9F00E944A +:105290006208009144041091450420914604309125 +:1052A0004704601B710B820B930B6F3F7F4F8F4F37 +:1052B0009F4710F40E94950DE11001C0F1100E946B +:1052C000B00D809142038A3008F0B7C3809140034B +:1052D000909141030E94371B069708F4AEC304E681 +:1052E00010E025E030E04BE353E064E084E10E940D +:1052F0005930892B09F072C3109242032091320376 +:10530000222359F080913D0390913E0398278927ED +:10531000982790933E0380933D0386E0E4E2F3E018 +:10532000DE01919601900D928A95E1F786E0FE01EB +:10533000B196DE01119601900D928A95E1F786E013 +:10534000FE013196A5E3B3E001900D928A95E1F755 +:1053500090913F038091360397FD3AC38E7F8093EF +:1053600036038091330390913403009709F02AC3E8 +:1053700060913B0380913C0300913D0310913E03FB +:10538000222309F4F2C241E00E94F80C209130037C +:1053900030913103281B390B3093310320933003B4 +:1053A00041E0602F812F0E94F80C20912E03309154 +:1053B0002F03820F931F90932F0380932E036EE28F +:1053C00073E08AE393E00E94D90C60E373E089E321 +:1053D00093E00E94D90C109237031092380386E0B4 +:1053E000E5E3F3E0DE01119601900D928A95E1F775 +:1053F00086E0FE013196A4E2B3E001900D928A9519 +:10540000E1F73091260320912703909128038091A2 +:105410002903709120036091210340912203509150 +:105420002303F0912503E0911F03FE13DDC2332314 +:1054300011F07313D9C2222311F02613D5C2882389 +:1054400011F08513D1C2992319F081E04913CDC21F +:1054500080E0CBC286E992E061CD80916604843021 +:1054600009F43BC00E94950D40E060E080E00E949E +:105470001E0D80E00E9456168091E702811109C03E +:10548000F092E7028091710481708093E6020E949D +:10549000E20F10925004A8E1B0E0E0E40FB6F894F7 +:1054A000A895A09360000FBEE093600083B7817F52 +:1054B000846083BF83B7816083BF7894889583B706 +:1054C0008E7F83BF0FB6F894A895809160008861A5 +:1054D00080936000109260000FBE80916504882365 +:1054E00061F00E944223EFE4F3E08191811175C4E1 +:1054F00029E533E02E173F07C1F780916604853018 +:1055000009F4ABCF109259040E94F70F0E94BF0E0E +:105510000E9456161092E7028091E602882349F015 +:105520008091710481608093710460E086950E948F +:1055300007160E943E0DEFCDC394FF0C37E0C31257 +:1055400000CE0F5F1F4F0A30110509F0F0CD8FEF2D +:105550008BAB8CAB1DAA0E94461B8160782F9FAB42 +:105560008EAB4BA95CA96DA98FA90E94B0220ACE6F +:105570000E94461B90931D0380931C0360E080E013 +:105580000E949A080E94BF0E8093F9020E949C0E0E +:10559000882331F14091F5025091F6026091F702B3 +:1055A0007091F8022FB7F8948091510490915204B1 +:1055B000A0915304B09154042FBF841B950BA60BEC +:1055C000B70B81339547A105B10540F00E94950DB9 +:1055D00080914904882309F456CE4DCE0E94B00D27 +:1055E0000E949C0E882309F4D5C061E080E00E94EF +:1055F0009A0860E08CE791E00E94881362E080E006 +:105600000E949A08809170040E94890C823009F4EB +:105610009BC008F090C0882309F496C0813009F43B +:1056200099C065E080E00E949A0860E08AE991E014 +:105630000E94881366E080E00E949A086091F90257 +:10564000669561708FE991E00E94881367E080E0C1 +:105650000E949A086091F9026095617084EA91E075 +:105660000E94881368E080E00E949A086091F90225 +:1056700062FB662760F988EA91E00E9488137DA6A4 +:105680006CA64091F1025091F2026091F302709188 +:10569000F4022FB7F8948091510490915204A09194 +:1056A0005304B09154042FBF841B950BA60BB70B6A +:1056B0008D329140A105B10508F48ACF0E9462089D +:1056C0006093F1027093F2028093F3029093F402DC +:1056D0008091F002811104C080916701811142C064 +:1056E0006DE080E00E949A0860E08DEA91E00E94FF +:1056F00088136AE080E00E949A0881E08093670145 +:105700008091EF0290E00196817099278093EF02DB +:1057100021E030E0281B390B40E6429FC001439F47 +:10572000900D11242091EE02222351F1855C9B4FB4 +:105730000E9492064DCF833089F0843009F071CFFA +:1057400060E08EE891E003C060E082E891E00E94B2 +:10575000881367CF60E088E891E0F9CF60E084E9E2 +:1057600091E0F5CF6AE080E00E949A0860E08DEA5F +:1057700091E00E9488136BE080E00E949A08C0CFFD +:105780002091ED02222319F085589C4FD1CF8554EA +:105790009D4FCECF64E080E00E949A0860E083EBEA +:1057A00091E00E94881365E080E00E949A0860E022 +:1057B00089EB91E00E94881369E080E00E949A08DA +:1057C0008BEF94E0B5CF80911B0361E070E0811115 +:1057D0005ACD082F10E02B01082E02C0440C551C96 +:1057E0000A94E2F7A90144215521452B09F448C048 +:1057F00090911A0390FD46C08295880F8076809321 +:105800006A019801369527953695279520936D0165 +:10581000815E80936B0110926E0124E630E047E0D8 +:1058200050E068E671E088E70E940530892B09F0B6 +:105830002ACDA80175E0440F551F7A95E1F78091B4 +:105840001A0380FD2DC048585B4F04E610E020E2AB +:1058500030E060E488E70E942C30892B09F013CDFA +:105860000E94B00DC20180959095409076045090B2 +:10587000770448225922509277044092760403CD4F +:105880008F5FA7CF880F880F880F80936A011092CF +:105890006D01895F80936B0183E080936E01BDCFC2 +:1058A000EAEFF2E080E2DF011D928A95E9F7EEE08F +:1058B000F2E0F9AFE8AF0AE012E099249394A8ADC2 +:1058C000B9AD2D91B9AFA8AFF80121908F01240E89 +:1058D000352E311CC10188589B4F1C01E22FF0E08E +:1058E000E650FD4F30E020E067E0A62EA21AB92C6A +:1058F000022E01C0BB0C0A94EAF7610190E0D601C8 +:105900008D916D018B216A2D691B6770862E062E85 +:10591000000C770BB82F01C0BB0F8A94EAF78B2ECF +:105920007195619571096770772701C086956A95B1 +:10593000EAF7882A8081882A80829F5F9830F9F66A +:105940002F5F3F4F31962830310571F6E2E1F2E0EA +:1059500028AD39ADE217F30709F0B1CF04E610E046 +:1059600020E230E04AEF52E074CF45E00E94F80CAC +:1059700020912C0330912D03820F931F90932D03C0 +:1059800080932C0345E0602F812F0E94F80C20911A +:105990002A0330912B03281B390B30932B032093C0 +:1059A0002A036AE273E087E393E00E94D90C6CE279 +:1059B00073E088E393E00E94D90C10923A031092AE +:1059C00039030DCD0197909334038093330307CDB2 +:1059D00081608093360384E190E0F5CF80914203AB +:1059E0008F5F80934203FBCC81E080FF0FC0E0918A +:1059F0004C04F0914D04309749F082E080932403E9 +:105A00000480F581E02D84E293E00995109226034D +:105A100010922703109228031092290386E0E4E2F3 +:105A2000F3E0AEE1B3E001900D928A95E1F70E94B8 +:105A3000461B90934103809340030E94BF0E9091B8 +:105A40004303891731F00E94BF0E809343030E94E5 +:105A5000561680916604843009F054CB83E080931D +:105A6000E9008091E80082FF4DCB8091E80090E052 +:105A700085FF0BC00E94F40630E2E32EF12C8E016C +:105A80000F5F1F4F8823E1F091E08091E8008B7752 +:105A90008093E800992309F435CBE981E150E331A3 +:105AA00008F071C0F0E0E054FB4C0C94023380919C +:105AB000F100D8018D938D01B1E0EB1AF10821F3CB +:105AC0008091E80085FDF3CF8091E8008B7780938B +:105AD000E8000E94F406882399F3D6CF1A8289E061 +:105AE0008B8311C08A81823009F48FC1833091F198 +:105AF000813009F048C00E9462080E9408336B831D +:105B00007C838D839E8380916604843009F0FACA79 +:105B10001091E9001F709091EC00892F817090FD29 +:105B200080E8182B82E08093E9008091E80080FFF4 +:105B30000DC050E040E060E270E0CE0101960E94AE +:105B400025078091E8008E778093E8001F701093FE +:105B5000E900D8CADE011396EFE4F3E081918D935A +:105B600023E0E935F207D1F7CECF8A81823059F4AC +:105B70006B817C818D819E810E94083386E290E05A +:105B80000E944233C0CF8FEF8983BDCF4C816B81A0 +:105B90008A810E9430149827892798279E838D83B5 +:105BA000B2CF0D811E811027012710278A81EB803B +:105BB0003EE0E39E700111249CE8899FE00CF11CFB +:105BC00011248C8190E0880F991FE80EF91E612F37 +:105BD000C70187960E944233602FC7018896D0CFB5 +:105BE0000E94B41390CF8A818138C1F060F480386C +:105BF00009F089CF20E04B81609173048091720499 +:105C00000E94F01480CF8238E9F0833809F07BCF0E +:105C100020E0409174046C818B81F2CF60E08B8135 +:105C20000E9407168B81811103C00E94E20F6BCF87 +:105C30008091710481608093710460E086950E9478 +:105C4000071661CF8B81809375045DCF8A8181387F +:105C500099F030F4803809F056CF8091740440CF29 +:105C6000823891F0833809F04ECF809172048B8393 +:105C7000809173048C8347CF8091710480FF02C0B0 +:105C800086952ECF80E02CCF8091750429CF60912E +:105C900071047091720480917304909174040E9455 +:105CA000DE1431CF80E18A832ECF81E08A838DE1BB +:105CB00017CFCA80DB80DC24CD24DC248E010F5F6B +:105CC0001F4FEC80E00EF12EF11CC6018D519D4F4F +:105CD0000E151F0509F417CFADE1CA16A1E0DA06CB +:105CE00050F40E942E33F8018483BFEFCB1ADB0AF5 +:105CF0000F5F1F4FEACFD80114961C92F6CF0A818E +:105D00001B81102701271027FE0131966F01EC80BF +:105D1000E00EF12EF11CC8018D519D4FE016F106E9 +:105D200009F4F1CE0D31F1E01F0728F4D6011496E5 +:105D30006C910E944233BFEFCB1ADB0A0F5F1F4FFB +:105D4000EACF0E94A413DFCE85E0ADCFCA80DB800E +:105D5000DC24CD24DC248E010F5F1F4FEC80E00E8D +:105D6000F12EF11CC6018796E016F10609F4CBCEA0 +:105D7000ECEBCE16E2E0DE0658F40E942E33D8019A +:105D800014968C93FFEFCF1ADF0A0F5F1F4FEACFF5 +:105D9000F8011482F7CF0A811B81102701271027F1 +:105DA0009E012F5F3F4F6901EC80E00EF12EF11C48 +:105DB000C8018796E016F10609F4A5CE0C3B32E047 +:105DC000130728F4D60114966C910E944233BFEF5A +:105DD000CB1ADB0A0F5F1F4FEBCF09BD19BD09B40A +:105DE00000FEFDCF8091D8008F7D8093D8008091F8 +:105DF000E00082608093E0008091E00081FDFCCFB4 +:105E0000109259040E94F70F78CB86E290E00E942E +:105E10002E331B821C821D828E8375CE1092B90098 +:105E20008CE08093B80008959F92AF92BF92CF927A +:105E3000DF92EF92FF920F931F93CF93DF93B82ED1 +:105E4000EB010E94461B6C01EE24E394F12CC4315B +:105E5000D10560F025E0E22EF12CCF3FDC0731F0D8 +:105E6000CE0164E170E00E94CE327B0184EAA82E6C +:105E700094E8992E1092BC00A092BC000E94461B90 +:105E80008C018091BC0087FF0DC08091B900887F94 +:105E9000883039F18091B900887F803111F10FEF9E +:105EA0001FEF09C00E94461B801B910B8E159F059A +:105EB00040F30EEF1FEFCF3FDC07E1F2C6010E9477 +:105EC000371B8C179D07B0F2C801DF91CF911F914E +:105ED0000F91FF90EF90DF90CF90BF90AF909F9089 +:105EE0000895B092BB009092BC000E94461B8C01AA +:105EF0008091BC0087FF0AC08091B900887F8831FB +:105F000011F0803461F610E000E0DECF0E94461B05 +:105F1000801B910B8E159F0558F3CBCF0F931F93CA +:105F2000CF93DF93EB018093BB0084E88093BC00A8 +:105F30000E94461B8C018091BC0087FF11C02091FC +:105F4000B900287F81E090E0283211F490E080E0F1 +:105F5000919581959109DF91CF911F910F910895AE +:105F6000CF3FDC0741F30E94461B801B910B8C172F +:105F70009D0708F38EEF9FEFEECF0F931F93CF9304 +:105F8000DF93EC0184EC8093BC000E94461B8C01E3 +:105F90008091BC0087FF08C08091BB0090E0DF913A +:105FA000CF911F910F910895CF3FDC0789F30E9495 +:105FB000461B801B910B8C179D0750F38EEF9FEFB4 +:105FC000EECF0F931F93CF93DF93EC0184E8809380 +:105FD000BC000E94461B8C018091BC0087FF08C05A +:105FE0008091BB0090E0DF91CF911F910F910895B8 +:105FF000CF3FDC0789F30E94461B801B910B8C1757 +:106000009D0750F38EEF9FEFEECFCF92DF92EF928E +:10601000FF920F931F93CF93DF936B018A01790156 +:10602000B9010E94142FE6010C0D1D1DC017D107E8 +:1060300061F424E92093BC00DF91CF911F910F916F +:10604000FF90EF90DF90CF90089597FDF2CFB701CA +:1060500089910E948E2FEACFCF92DF92EF92FF922A +:106060000F931F93CF93DF93C62F6A017901B80175 +:106070000E94142F97FD0CC0B8018C2F0E948E2F08 +:10608000E601EC0CFD1CCE15DF0511F097FF0CC0EE +:1060900024E92093BC00DF91CF911F910F91FF90D5 +:1060A000EF90DF90CF900895B80189910E948E2FD4 +:1060B000EACFCF92DF92EF92FF920F931F93CF938D +:1060C000DF93F82EE62EEA016901B8010E94142F31 +:1060D00097FD15C0B8018E2D0E948E2F97FD0FC021 +:1060E000B8018F2D81600E94142FF12CE12C21E04A +:1060F000C21AD108EC14FD0400F597FF11C024E981 +:106100002093BC001816190614F490E080E0DF918B +:10611000CF911F910F91FF90EF90DF90CF90089556 +:10612000C8010E94BD2F97FD04C0FE01EE0DFF1DAA +:1061300080832FEFE21AF20ADDCF97FDE0CFC8018E +:106140000E94E12F97FDDBCFCC0DDD1D8883D7CFDB +:1061500084E98093BC0008958EE14A9B02C081507F +:10616000E1F74A9BFECF08955A9880E28A95F1F7AD +:106170005A9A0895FC013BE03A95F1F798E020E047 +:1061800080E031E040E14A95F1F7880F4A9B02C078 +:106190008160232742E04A95F1F7000040E14A95EB +:1061A000F1F7915079F790E19A95F1F799B132E0D2 +:1061B0003A95F1F7000040E14A95F1F792FB9927F3 +:1061C00090F992272081920F90830895EF92FF9289 +:1061D0000F931F93CF93DF930F92CDB7DEB7198242 +:1061E0008C017C01E60EF11C0E151F0561F481E0A7 +:1061F0009981911180E00F90DF91CF911F910F91C4 +:10620000FF90EF9008950E94AC30CE0101960E945D +:10621000BA30F80181938F01E7CF529A5A9A0895C4 +:1062200052985A9AEA9AE9E6F0E080818F7C80835E +:1062300008956150770B91E001C0990F6A95EAF7D4 +:1062400020E031E0911108C0222391F05A9A80E2B7 +:106250008A95F1F75A980895492F482339F05A9AA8 +:10626000232740E24A95F1F79695ECCF5A98F9CF5B +:106270005A98EDCFFF920F931F93CF93DF93EC01CA +:106280008C01060F111DC017D10731F4DF91CF919A +:106290001F910F91FF900895F9900E94B43068E02B +:1062A0008F2D0E941931EFCF1F920F920FB60F92D0 +:1062B0001124EF92FF920F931F932F933F934F93CD +:1062C0005F936F937F938F939F93AF93BF93EF935E +:1062D000FF93CF93DF930F92CDB7DEB719820E9461 +:1062E000AC30CE0101960E94BA30A82FA695A69593 +:1062F000A695282F229525709A2F9570290F922FF9 +:10630000937026952695920F982797708981982BE0 +:1063100009F075C0A83008F072C080E18A95F1F7E5 +:106320005A9A529AB2E0BA95F1F700C05A98EA2EFA +:10633000F12CEAE0AE9FD0011124AF5FBE4F18965A +:10634000ED91FC9119973097B1F06091F80170913F +:10635000F90116962D913C911797260F371F13962A +:106360008D919C911497680F791F15964C911597F4 +:1063700012968C9109958AE08E9DF0018F9DF00D0B +:106380001124EF5FFE4F6581662351F02091F801E3 +:106390003091F90186819781820F931F0E943A31D3 +:1063A0000E94B430F0E1FA95F1F75A9852985A9A4F +:1063B00080E18A95F1F78AE08E9D80018F9D100D16 +:1063C00011240F5F1E4FD80112966C91129766230D +:1063D00071F12091F8013091F90113968D919C9102 +:1063E000820F931F0E94E630D801ED91FC91882323 +:1063F00011F088E001C082E080830E94AC300F90F1 +:10640000DF91CF91FF91EF91BF91AF919F918F91CC +:106410007F916F915F914F913F912F911F910F91BC +:10642000FF90EF900F900FBE0F901F901895ED9179 +:10643000FC91DFCF0F931F93CF93DF93EC0108976D +:106440000CF0A9C08AE08C9FF0018D9FF00D112403 +:10645000EF5FFE4F80819181892B09F49CC0F894F5 +:10646000529A5A9885E08A95F1F700008C2F86950C +:1064700085709C2F9570890F982F937086958695BF +:10648000890F8E0193E0000F111F9A95E1F7082BF9 +:106490000E94B43000C068E0802F0E941931A0E152 +:1064A000AA95F1F752985A9A4A9B27C087E090E044 +:1064B0004A9925C08AE08C9F80018D9F100D112480 +:1064C0000F5F1E4FF80165816623A1F12091F8014D +:1064D0003091F90186819781820F931F0E94E630E7 +:1064E000811128C0529A5A9AD801ED91FC9182E00C +:1064F0008083789482E090E016C000C0D5CF0197E9 +:10650000B9F4529A5A9A8AE08C9FF0018D9FF00D4F +:106510001124EF5FFE4F0190F081E02D81E0808338 +:10652000789481E090E0DF91CF911F910F910895D1 +:1065300000C0BECF0E94AC30B0E2BA95F1F75A98D5 +:10654000529AE0E1EA95F1F78AE08C9FF0018D9F85 +:10655000F00D1124EF5FFE4F6281662351F0209110 +:10656000F8013091F90183819481820F931F0E9479 +:106570003A310E94B4308AE08C9FF0018D9FF00D7B +:106580001124EF5FFE4F0190F081E02D108278948E +:1065900090E080E0C8CF84E090E0C5CFAA1BBB1B91 +:1065A00051E107C0AA1FBB1FA617B70710F0A61B13 +:1065B000B70B881F991F5A95A9F780959095BC0134 +:1065C000CD010895991B79E004C0991F961708F032 +:1065D000961B881F7A95C9F78095089597FB072E1B +:1065E00016F4009407D077FD09D00E94CE3207FC44 +:1065F00005D03EF4909581959F4F089570956195D3 +:106600007F4F0895EE0FFF1F0590F491E02D099440 +:106610006927962769277827872778270895FB0118 +:10662000DC0102C005900D9241505040D8F708950A +:10663000FB01DC0104C08D910190801921F44150CF +:106640005040C8F7881B990B0895FB01DC0102C07C +:1066500001900D9241505040D8F70895F999FECF1E +:1066600092BD81BDF89A992780B50895A6E1B0E062 +:1066700044E050E00C946833A8E1B0E042E050E020 +:106680000C946833262FF999FECF92BD81BDF89AFC +:10669000019700B4021639F01FBA20BD0FB6F89466 +:1066A000FA9AF99A0FBE08950396272F0E94433352 +:1066B0000E944233252F0E944333242F0C944333EE +:1066C0000196272F0E9443330C944233DC01CB0107 +:1066D000FC01F999FECF06C0F2BDE1BDF89A3196F2 +:1066E00000B40D9241505040B8F708950E94B8335D +:1066F00008F481E00895E89409C097FB3EF4909572 +:106700008095709561957F4F8F4F9F4F9923A9F08A +:10671000F92F96E9BB279395F69587957795679519 +:10672000B795F111F8CFFAF4BB0F11F460FF1BC05D +:106730006F5F7F4F8F4F9F4F16C0882311F096E9F0 +:1067400011C0772321F09EE8872F762F05C066239E +:1067500071F096E8862F70E060E02AF09A95660F57 +:10676000771F881FDAF7880F9695879597F9089510 +:10677000990F0008550FAA0BE0E8FEEF1616170652 +:10678000E807F907C0F012161306E407F50798F0BA +:10679000621B730B840B950B39F40A2661F0232BD3 +:1067A000242B252B21F408950A2609F4A140A6954F +:1067B0008FEF811D811D08950E94EF330C9460348A +:1067C0000E94523438F00E94593420F0952311F081 +:1067D0000C9449340C944F3411240C9494340E943A +:1067E000713470F3959FC1F3950F50E0551F629F70 +:1067F000F001729FBB27F00DB11D639FAA27F00D1A +:10680000B11DAA1F649F6627B00DA11D661F829F40 +:106810002227B00DA11D621F739FB00DA11D621F25 +:10682000839FA00D611D221F749F3327A00D611D42 +:10683000231F849F600D211D822F762F6A2F112424 +:106840009F5750409AF0F1F088234AF0EE0FFF1F57 +:10685000BB1F661F771F881F91505040A9F79E3FAE +:10686000510580F00C9449340C9494345F3FE4F368 +:10687000983ED4F3869577956795B795F795E79504 +:106880009F5FC1F7FE2B880F911D9695879597F90D +:10689000089597F99F6780E870E060E008959FEFA2 +:1068A00080EC089500240A941616170618060906A7 +:1068B000089500240A941216130614060506089576 +:1068C000092E0394000C11F4882352F0BB0F40F4FE +:1068D000BF2B11F460FF04C06F5F7F4F8F4F9F4F3E +:1068E000089557FD9058440F551F59F05F3F71F0C0 +:1068F0004795880F97FB991F61F09F3F79F0879527 +:106900000895121613061406551FF2CF4695F1DFAF +:1069100008C0161617061806991FF1CF869571053F +:10692000610508940895E894BB2766277727CB0173 +:1069300097F90895F894FFCFE7100F1162110F1126 +:10694000621142117A11621177128412B014B014DC +:10695000B914B914BB14B914B914B914B014B014DF +:10696000C014B914B914C014131F131F6C1F6C1F6B +:106970009E1F461F461F461FB81F29203920392059 +:106980006E2D722DB52DC62DD12DF02DF32D262E69 +:10699000472EC32DC32D522E552E592E7F2EA12E9C +:0669A000A42EA62ECB2E52 +:1069A600013802000000010000000038020000006B +:1069B6000501000000380200000001060000003852 +:1069C6000200000001070000003802040800000071 +:1069D6000000003802090C00000000000038020127 +:1069E6001500000000000036323331F7F66766976F +:1069F600C6343500000000000180005F082B0E0A37 +:106A06000E060E020EF4F5010021007F220003009F +:106A16004A004A4A01F6F731333236674C41594546 +:106A2600520042617365200047616D652000526126 +:106A3600697365004C6F776572004C4F434B00439A +:106A4600617073004E756D005363726C00202020D8 +:106A5600202000534F4C415200544D505354008156 +:106A66008283E200E900EA00B500B600B700CD0077 +:106A76008301CC008A01920194012102230224029F +:106A86002502260227022A02B300B4006F00700016 +:106A96000603060806010606AF0200FF0100010014 +:106AA60000FFFF0000010001FF0000081018181089 +:106AB6000800000102020202020202020202402251 +:0E6AC6007B99017701FC00000C190C390C00C3 :00000001FF From 19522836c02886e9755a2ea1c2ea9adaa4c03682 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:17:14 -0500 Subject: [PATCH 50/94] Add support for haptic feedback. --- keyboards/solartempest/sofle/config.h | 30 +- .../solartempest/sofle/keymaps/via/keymap.c | 79 +- .../solartempest/sofle/keymaps/via/snakey.c | 40 +- .../sofle/keymaps/via/snakey_minimal.c | 28 +- keyboards/solartempest/sofle/readme.md | 13 +- keyboards/solartempest/sofle/rules.mk | 14 +- .../sofle/solartempest_sofle_via.hex | 3004 +++++++++-------- 7 files changed, 1675 insertions(+), 1533 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index a9a274e6378c..753ac13cd681 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -76,7 +76,27 @@ //#define SPLIT_LAYER_STATE_ENABLE //#define SPLIT_LED_STATE_ENABLE //#define SPLIT_MODS_ENABLE - #define OLED_LOGO //Enable to print snakey custom logo on slave side, disable to save space. + #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). + //#define OLED_NO_SLAVE //Enable for snakey to not render slave OLED (-160). +#endif + +//Haptic feedback settings +#ifdef HAPTIC_ENABLE + #define FB_ERM_LRA 1 + #define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 + #define FB_LOOPGAIN 0 // For Low:0, Medium:1, High:2, Very High:3 + + // Please refer to your datasheet for the optimal setting for your specific motor. + #define RATED_VOLTAGE 3 + #define V_RMS 2.0 + #define V_PEAK 2.1 + #define F_LRA 205 //resonance freq + + #define NO_HAPTIC_PUNCTUATION + #define NO_HAPTIC_ALPHA + #define NO_HAPTIC_MOD + //#define NO_HAPTIC_NUMERIC + //#define NO_HAPTIC_NAV #endif // Combo settings @@ -87,11 +107,11 @@ // Pimoroni trackball settings #ifdef POINTING_DEVICE_ENABLE - #define PIMORONI_TRACKBALL_ROTATE - #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms - //#define PIMORONI_TRACKBALL_INVERT_X - //#define PIMORONI_TRACKBALL_CLICK //Not compatible with having mouse keys in keymap. Use trackball_register_button() and trackball_click() in keymap.c instead. + //#define PIMORONI_TRACKBALL_ROTATE + #define PIMORONI_TRACKBALL_INVERT_Y + #define PIMORONI_TRACKBALL_INVERT_X + //#define PIMORONI_TRACKBALL_CLICK //Incompatible with keymap mouse keys. Use trackball_register_button() and trackball_click() instead. #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 40c1aa0396a9..4498d8c7a67d 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -33,6 +33,10 @@ bool was_scrolling = true; //Remember last state of trackball scrolling #endif +#ifdef HAPTIC_ENABLE + #include "drivers/haptic/DRV2605L.h" +#endif + #ifdef RGBLIGHT_ENABLE extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT #endif @@ -123,14 +127,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these } } - bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. - if (trackball_is_scrolling()) { - pimoroni_data temp = *trackball_data; - trackball_data->up = temp.down; - trackball_data->down = temp.up; + #if defined(PIMORONI_TRACKBALL_ROTATE) || defined(PIMORONI_TRACKBALL_INVERT_Y) + bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. + if (trackball_is_scrolling()) { + pimoroni_data temp = *trackball_data; + #ifdef PIMORONI_TRACKBALL_ROTATE + trackball_data->up = temp.down; + trackball_data->down = temp.up; + #endif + #ifdef PIMORONI_TRACKBALL_INVERT_Y + trackball_data->left = temp.right; + trackball_data->right = temp.left; + #endif + } + return true; } - return true; - } + #endif #if !defined(MOUSEKEY_ENABLE) //Allows for button clicks on keymap even though mousekeys is not defined. static bool mouse_button_one, trackball_button_one; @@ -140,16 +152,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these report_mouse_t currentReport = pointing_device_get_report(); if (pressed) { currentReport.buttons |= button; + #ifdef HAPTIC_ENABLE + DRV_pulse(4); + #endif } else { currentReport.buttons &= ~button; } pointing_device_set_report(currentReport); } - void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for single mouse button and key presses. Click and drag is done with keys elsewhere. + void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for single mouse button and key presses. Click and drag is done with keymap. if (pressed) { //trackball pressed //tap_code_delay(KC_A,300); //Use delay as simple debounce for key strokes mouse->buttons |= MOUSE_BTN1; + #ifdef HAPTIC_ENABLE + DRV_pulse(4); + #endif } else { //released mouse->buttons &= ~MOUSE_BTN1; } @@ -301,7 +319,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { # if !defined(MOUSEKEY_ENABLE) //Allow for using mouse buttons in the keymap when mouse keys is not enabled. case KC_MS_BTN1: mouse_button_one = record->event.pressed; - trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + trackball_button_one = record->event.pressed; + //trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + trackball_register_button(mouse_button_one, MOUSE_BTN1); break; case KC_MS_BTN2: trackball_register_button(record->event.pressed, MOUSE_BTN2); @@ -311,7 +331,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; # endif #endif - + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS case KC_LCTL: case KC_RCTL: @@ -395,33 +415,48 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_set_layer_state(3, layer_state_cmp(state, 3)); rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,80); - if (was_scrolling==true){ //Check if was scrolling when layer was left - trackball_set_scrolling(true); - run_trackball_cleanup(); - } else{ - trackball_set_scrolling(false); - run_trackball_cleanup(); - } + #ifdef POINTING_DEVICE_ENABLE + if (was_scrolling==true){ //Check if was scrolling when layer was left + trackball_set_scrolling(true); + run_trackball_cleanup(); + } else{ + trackball_set_scrolling(false); + run_trackball_cleanup(); + } + #endif break; case 1: rgblight_sethsv_noeeprom(252,255,80); + #ifdef HAPTIC_ENABLE + DRV_pulse(69); + #endif break; case 2: rgblight_sethsv_noeeprom(80,255,80); + #ifdef HAPTIC_ENABLE + DRV_pulse(37); + #endif break; case 3: rgblight_sethsv_noeeprom(118,255,80); + #ifdef HAPTIC_ENABLE + DRV_pulse(31); + #endif break; case 4: rgblight_sethsv_noeeprom(218,255,80); - if (was_scrolling==true){ //Check if was scrolling when layer is activated - trackball_set_scrolling(false); - run_trackball_cleanup(); - } + #ifdef HAPTIC_ENABLE + DRV_pulse(7); + #endif + #ifdef POINTING_DEVICE_ENABLE + if (was_scrolling==true){ //Check if was scrolling when layer is activated + trackball_set_scrolling(false); + run_trackball_cleanup(); + } + #endif } return state; } diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index de47c3c01f63..6380e5c24b7c 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -46,7 +46,7 @@ bool showedJump = true; bool isBarking = false; - #ifdef OLED_LOGO + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) static void render_logo(int LUNA_X, int LUNA_Y) { static const char PROGMEM luna_logo[] = { 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, @@ -230,24 +230,26 @@ } // KEYBOARD PET END - static void print_logo_narrow(void) { - oled_set_cursor(0,2); - oled_write("SOLAR", false); - oled_set_cursor(0,3); - oled_write("TMPST", false); - - #ifdef OLED_LOGO - render_logo(0,7); //Not defining this in config.h will save 112 bytes. - #endif - - /* wpm counter */ - char wpm_str[8]; - oled_set_cursor(0,13); - sprintf(wpm_str, " %03d", current_wpm_read); - oled_write(wpm_str, false); - oled_set_cursor(0,14); - oled_write(" wpm", false); - } + #ifndef OLED_NO_SLAVE + static void print_logo_narrow(void) { + oled_set_cursor(0,2); + oled_write("SOLAR", false); + oled_set_cursor(0,3); + oled_write("TMPST", false); + + #ifdef OLED_LOGO + render_logo(0,7); //Not defining this in config.h will save 112 bytes. + #endif + + /* wpm counter */ + char wpm_str[8]; + oled_set_cursor(0,13); + sprintf(wpm_str, " %03d", current_wpm_read); + oled_write(wpm_str, false); + oled_set_cursor(0,14); + oled_write(" wpm", false); + } + #endif static void print_status_narrow(void) { /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c index b5457bb280f1..885c9621ceaa 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -45,7 +45,7 @@ bool showedJump = true; bool isBarking = false; - #ifdef OLED_LOGO + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) static void render_logo(int LUNA_X, int LUNA_Y) { static const char PROGMEM luna_logo[] = { 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, @@ -233,16 +233,18 @@ } // KEYBOARD PET END - static void print_logo_narrow(void) { - oled_set_cursor(0,4); - oled_write("SOLAR", false); - oled_set_cursor(0,5); - oled_write("TMPST", false); - - #ifdef OLED_LOGO - render_logo(0,9); //Not defining this in config.h will save 112 bytes. - #endif - } + #ifndef OLED_NO_SLAVE + static void print_logo_narrow(void) { + oled_set_cursor(0,4); + oled_write("SOLAR", false); + oled_set_cursor(0,5); + oled_write("TMPST", false); + + #ifdef OLED_LOGO + render_logo(0,9); //Not defining this in config.h will save 112 bytes. + #endif + } + #endif static void print_status_narrow(void) { /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. @@ -311,7 +313,9 @@ if (is_keyboard_master()) { print_status_narrow(); } else { - print_logo_narrow(); + #ifndef OLED_NO_SLAVE + print_logo_narrow(); + #endif } } #endif diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 78a5482c741b..ca44ed9ef8e4 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -4,7 +4,7 @@ Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. -For detailed instructions on using VIA and flashing, please refer to the sections further down the page! +## When flashing, MAKE SURE to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) @@ -17,10 +17,11 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j # Custom Features: ### OLED Features: - Includes Snakey keyboard pet! Slithers according to WPM, bites, and sticks its tongue out at you! +- Includes Snakey minimal version, with less animations and WPM-free to allow for more free space. - OLED displays current layer, lock key status, WPM, custom logo, and custom name. - OLED shuts off on idle and when computer is sleeping. - Includes working Luna keyboard pet. -- Includes working Bongocat (disable RGB for sufficient space). +- Includes working Bongocat (disable other features for sufficient space). - Includes stock OLED code as well. ### Trackball Features: @@ -43,10 +44,14 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j - Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. - Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. +### Haptic Feedback Features: +- Supports Pimoroni Haptic Bzzz installed on master side. +- Different vibrations when layers are activated. +- Provides tactile feedback when trackball is clicked or mouse keys are used. + ### Tap and Other Features: - Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. - Double tap layers to stay on a layer instead of momentary push. -- Adds key combo functionality. - Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). ## Using with VIA @@ -67,7 +72,7 @@ qmk compile -kb solartempest/sofle -km via ## Flashing -Flash using the correct command below or use QMK Toolbox. Specifying side during compile is unnecessary as Master Left is defined: +Flash using the correct command below or use QMK Toolbox. Specifying side during compile is unnecessary as Master Left is defined by default: ```sh # for pro micro-based builds diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index 206552b12257..47a32403e539 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -10,20 +10,22 @@ CONSOLE_ENABLE = no # Console for debug EXTRAKEY_ENABLE = yes # Audio control and System control (+450) RGBLIGHT_ENABLE = yes # RGB lighting (+2350) ENCODER_ENABLE = yes # Encoders -MOUSEKEY_ENABLE = no # Mouse keys (+1482) -NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work +MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. +NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work for the sofle. +COMBO_ENABLE = no # Tap combo chording (+952) LTO_ENABLE = yes # Save space -OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608) +OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608-4774) OLED_DRIVER = SSD1306 # Specify OLED driver WPM_ENABLE = no # WPM counter for keyboard pets (+1298) -COMBO_ENABLE = no # Tap combo chording, may run into space issue if also using keyboard pets (+952) # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) -POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball +POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball (+2304) QUANTUM_LIB_SRC += i2c_master.c -SRC += drivers/sensors/pimoroni_trackball.c \ No newline at end of file +SRC += drivers/sensors/pimoroni_trackball.c + +HAPTIC_ENABLE += DRV2605L # Enable Pimoroni Haptic Bzzz LRA (+1192) diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 8dd1c8159991..70b29c001c47 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C9449060C9490060C9490060C94543170 +:100000000C9449060C9490060C9490060C949B3327 :100010000C9490060C9490060C9490060C94900608 -:100020000C9490060C9490060C943C1A0C94F819BD -:100030000C9409260C9490060C9490060C9490064F +:100020000C9490060C9490060C94001B0C94BC1A33 +:100030000C94FB270C9490060C9490060C9490065C :100040000C9490060C9490060C9490060C949006D8 -:100050000C9490060C94131B0C9490060C94900630 +:100050000C9490060C94D71B0C9490060C9490066C :100060000C9490060C9490060C9490060C949006B8 :100070000C9490060C9490060C9490060C949006A8 :100080000C9490060C9490060C9490060C94900698 @@ -200,30 +200,30 @@ :100C7000006F0066006C006500000010034B00650B :100C8000007900680069007600650000000403092F :100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 -:100CA00003FE27C080917A0690917B06A0917C0676 -:100CB000B0917D068730904BA740B04BD1F4109295 -:100CC0007A0610927B0610927C0610927D0614BE66 +:100CA00003FE27C08091800690918106A091820664 +:100CB000B09183068730904BA740B04BD1F410928F +:100CC000800610928106109282061092830614BE4E :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0E6EAF9E602C005904D +:100CF000099512E0A0E0B1E0EEE4FEE602C0059046 :100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92AA37B207E1F70E9430260C949A344C -:100D20000C940000CF93DF934091780650917906A0 -:100D3000485754409A01205A3F4F21303240C0F06A -:100D400020E032E0241B350B60917604709177042B +:100D10001D92A038B207E1F70E9422280C94E13618 +:100D20000C940000CF93DF9340917E0650917F0694 +:100D30004E5754409A01205A3F4F21303240C0F064 +:100D400020E032E0241B350B60917C0470917D041F :100D5000FC01CA01240F351FC1E0D0E082179307C0 -:100D600050F07093770460937604DF91CF910895EB -:100D700020E630E0E9CF4491DC01A858BB4F5C91FC +:100D600050F070937D0460937C04DF91CF910895DF +:100D700020E630E0E9CF4491DC01A258BB4F5C9102 :100D8000451781F04C93AC01A5E056954795AA957F :100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 :100DA0006A2B752B01963196D9CFE8EDF0E0808162 :100DB0008E7F80831092E2001092DA001092E100A0 :100DC000A0EEB0E08C9181608C9380818F778083DE :100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 -:100DE00080831092580408952091E4003091E5002A +:100DE000808310925E0408952091E4003091E50024 :100DF00095E6A9012091EC00822F817020FF06C0AA :100E00008091E80080FF06C080E008952091E8000E -:100E100022FD1AC080916604882389F0853089F00C +:100E100022FD1AC080916C04882389F0853089F006 :100E20008091EB0085FD0FC02091E4003091E5003A :100E300042175307F9F29150E1F684E0089582E0F9 :100E4000089583E0089581E00895EF92FF920F9353 @@ -232,9 +232,9 @@ :100E70008093E8000E94F406882399F3C82F08C0E5 :100E8000F70181917F018093F1000150110949F729 :100E90008C2FCF911F910F91FF90EF90089580912B -:100EA000680487FF13C08091E80082FF06C080912C -:100EB000E8008B778093E80004C08091660481117C -:100EC000F2CF0895809166048823D9F38091E800D9 +:100EA0006E0487FF13C08091E80082FF06C0809126 +:100EB000E8008B778093E80004C080916C04811176 +:100EC000F2CF089580916C048823D9F38091E800D3 :100ED00080FFF8CF8091E8008E77ECCF982F909329 :100EE000E900242F762F50E0891731F07091EC0043 :100EF0002091ED005091F00021FD07C09F5F9730D9 @@ -244,1468 +244,1542 @@ :100F30005093F0002091EE0027FDE0CF80E008956F :100F4000CF92DF92EF92FF920F931F93CF93DF9395 :100F5000C8EDD0E088818F7E8883E7EDF0E0808166 -:100F60008160808384E082BF81E08093580488811F +:100F60008160808384E082BF81E080935E04888119 :100F70008E7F888302EE10E0F80110821092DA0072 :100F800081EEC82ED12CF601108288818F7788835C :100F900088818068888388818F7D888319BC1092BE -:100FA000660410926704109265041092640490EE37 +:100FA0006C0410926D0410926B0410926A0490EE1F :100FB000E92EF12CF70180818B7F8083888181600D :100FC000888342E060E080E00E946E07F601808145 :100FD0008E7F8083F801808181608083808188603A :100FE0008083F70180818E7F808388818061888300 :100FF000DF91CF911F910F91FF90EF90DF90CF90F5 -:101000000895FC0180916E0490916F0486179707F4 +:101000000895FC01809174049091750486179707E8 :10101000A0F06115710529F49091E8009E779093F6 :10102000E80090E06115710551F4911108C08091BC :10103000E80082FF34C080E00895BC01F2CF8091C7 -:1010400066048823C1F18530C1F18091E80083FDF9 +:101040006C048823C1F18530C1F18091E80083FDF3 :1010500030C08091E80082FDEACF8091E80080FFF7 :10106000E1CF8091F3002091F200382F61157105D6 :1010700019F02830310558F091E02830310509F099 :1010800090E02091E8002E772093E800CBCF81916B :101090008093F100615071092F5F3F4FE7CF80913E -:1010A0006604882341F0853041F08091E80083FF99 +:1010A0006C04882341F0853041F08091E80083FF93 :1010B000BECF81E0089582E0089583E00895809195 -:1010C0005B0408952FB7F894609151047091520415 -:1010D00080915304909154042FBF089520914E04A1 -:1010E00030914F042817390771F090934F04809383 -:1010F0004E04E0914C04F0914D04309721F00084AF -:10110000F185E02D0994089520914A0430914B0413 -:101110002817390771F090934B0480934A04E091AB -:101120004C04F0914D04309721F00680F781E02DBA -:101130000994089520913D0436E0839FC001112455 +:1010C000610408952FB7F894609157047091580403 +:1010D0008091590490915A042FBF0895209154048F +:1010E000309155042817390771F090935504809377 +:1010F0005404E0915204F0915304309721F000849D +:10110000F185E02D09940895209150043091510407 +:101110002817390771F09093510480935004E0919F +:101120005204F0915304309721F00680F781E02DAE +:10113000099408952091430436E0839FC00111244F :10114000629F800D911D1124811522E0920714F0F9 -:1011500090E080E088589B4F9093790680937806C2 -:101160000895FC01680F791F8FEF91E32191822789 -:1011700028E030E087FF09C0880F89272150310916 -:10118000C9F7E617F70791F70895880FF7CFFA0127 -:10119000811101C0FB01099480917104982F9E7FF9 -:1011A00061F4817082608093710480917404813A4B -:1011B00018F080EA8093740408958831B0F3817048 -:1011C0008661F1CFAF92BF92DF92EF92FF920F93C1 -:1011D0001F93CF93DF93082F162FE901E42FF0E040 -:1011E000E55AFA4F611110C0E4915E2F4E2F4983EA -:1011F000E8835A83DF91CF911F910F91FF90EF9079 -:10120000DF90BF90AF900895E62EF12C4491D42E3C -:10121000E42FF0E026E0829FC00111242FEF30E0A0 -:10122000B9010E94CE32802F90E0880F991F55E5BA -:10123000569FD001579FB00D11248A1B9B0B982FEE -:10124000990F890F5901AE18BF08AE9ED001AF9E0D -:10125000B00DBE9EB00D11245B2F189F800111248C -:10126000012F11275901A01AB10AAE9E8001AF9E2D -:10127000100DBE9E100D11245901A81AB108AE9C84 -:10128000C001AF9C900DBE9C900D1124892F992711 -:10129000281B390B2E9FC0012F9F900D3E9F900D54 -:1012A0001124E92F62307105A1F050F46115710528 -:1012B00009F49DCF6130710581F0EB2F512F97CF4D -:1012C0006430710569F080F06630710509F48FCFE4 -:1012D000F4CFE42F4B2F592F8ACFE42F412F87CF04 -:1012E000EB2F542F492F83CF4B2F5D2DE12F7FCF35 -:1012F00080E0089578940895F894E82FE295EF70CF -:10130000F0E031A1282F2F7081E090E001C0880F1C -:101310002A95EAF7982F9095932391A392A1892B70 -:1013200082A30C947A099091D60292FF06C0282FCE -:1013300028712830F9F4877F846093FF06C0282F36 -:1013400028712831F1F4877E84612091D70220FF33 -:1013500006C0382F38713830D9F4877F816021FF7B -:1013600006C0282F28712831D1F4877E816194FD31 -:10137000877E0895282F24712430F9F68B7F8860AA -:10138000DCCF282F2471243101F78B7E8861DDCFDB -:10139000382F3171313019F78E7F8860E0CF282FD8 -:1013A0002171213121F78E7E8861E1CFCF93DF93C8 -:1013B000EC018238910581F1B0F58133910509F492 -:1013C00091C020F58932910509F485C08A9709F406 -:1013D00090C0C11521E5D20708F0AAC0C11530E5BB -:1013E000D30708F0F2C0CF3BD10508F089C0C83A56 -:1013F000D10508F0DFC0C53AD10508F0D3C0C4302C -:10140000D105F8F4C130D105E1F040C08533910534 -:1014100009F45AC0C997E9F68091D602837089F021 -:10142000C0EED0E00EC0833E910599F170F4803E8D -:10143000910501F1823E910561F68091D60282FD0F -:1014400021C0CE01DF91CF910895863E910561F1D3 -:10145000873E910571F1843E910509F0BACF8091E4 -:10146000D70281FFEECF8091D602C7EED0E084FD97 -:101470000DC0E7CF8091D60280FDF7C09091D702D2 -:1014800090FFDFCFC3EED0E084FFDBCFD0E0C0E041 -:10149000D8CF8091D60282FDEBC09091D70290FD0B -:1014A000BFCF84FFCECFF2CF8091D60283FDDDCFB8 -:1014B000C8CF8091D60283FDDEC09091D70291FF04 -:1014C000F0CFC4EED0E0BDCF8091D60285FFB9CF7A -:1014D000C9E2D0E0B6CF8091D60285FFB2CFC5E396 -:1014E000D0E0AFCF8091D60286FFABCFCAE2D0E08A -:1014F000A8CF8091D60286FFA4CFC1E3D0E0A1CFD0 -:10150000C11540E2D40760F4C11581E0D80708F0A6 -:1015100098CFCE01815E9109079708F492CFB6CF9C -:10152000C11590E4D90708F4B1CFDF70D06A89CF34 -:10153000C11524E5D20778F4C11533E5D30708F0C7 -:1015400072C0C11542E5D40708F05CC0DC2FCC277F -:10155000C16FD06A76CFC1158AE5D80778F4C11576 -:1015600099E5D90708F073C0C11528E5D20708F43A -:101570008DCFDC2FCC27C06FD06A63CFCE019056C1 -:101580008115904208F082CF8D2F8F710E949309B0 -:1015900090E0982F882788279F719C012C2BE901C8 -:1015A000D0624FCFC55AD0E0C154DE4FC881D0E0E1 -:1015B000D06447CFC85AD0E0CC0FDD1FCE53DE4FEA -:1015C0000990D881C02DD4643CCFCE0164E09695BB -:1015D00087956A95E1F783702C2F269526952370C1 -:1015E00040E2249F90011124382B8C2F8370C1E09E -:1015F000D0E002C0CC0FDD1F8A95E2F7C22BD32BBF -:10160000DC681FCFCE018370992721E030E002C053 -:10161000220F331F8A95E2F7C695C69580E2C89FD0 -:10162000E0011124EBCFCE018370992721E030E057 -:1016300002C0220F331F8A95E2F7C695C69590E245 -:10164000C99FE0011124C22BD32BDA68FACE8C2F6C -:101650008F700E94930934E0D695C7953A95E1F7CB -:10166000CF709C2FEC01D069ECCEC9E3D0E0E9CE7D -:10167000C2EED0E0E6CEC6EED0E0E3CE0C94620837 -:101680008091590490919102892B90919002892B1D -:1016900080933002E0914C04F0914D04309731F08A -:1016A0000280F381E02D80E392E009940895809117 -:1016B0008F0290915E02981301C008958F5F87702A -:1016C000FACF27E0929F800D1124982F977086956E -:1016D0008695869523E0829FF0011124E35CFD4FFF -:1016E00050E040E080E0219130E0092E02C03695C4 -:1016F00027950A94E2F721703327042E01C0220FA8 -:101700000A94EAF7822B4F5F5F4F4330510559F738 -:10171000089527E0929F800D1124982F977041E043 -:1017200001C0440F9A95EAF786958695869593E0D1 -:10173000899FF0011124E35CFD4F90E080E070E0B0 -:101740005191DF0111979B01082E02C03695279514 -:101750000A94E2F7217021952527242325272C932D -:1017600001968330910561F7089590E080E00E9432 -:10177000840890E080E00E946E081092910210921E -:1017800090020C94400B809392020C94B50B88232A -:1017900041F08095909159048923809359040C94C9 -:1017A000400B0895882339F090915904982B909319 -:1017B00059040C94400B08958823B1F19CEF980FC5 -:1017C000913A70F4E2E3F2E09191891303C0DF01F2 -:1017D00011971C9242E0E833F407B1F70C94400BE8 -:1017E00090E2980F983088F4877021E030E0A901EA -:1017F00002C0440F551F8A95E2F7CA018095909167 -:101800005904892380935904E9CF9BE5980F9330BD -:1018100020F490E080E00C948408885A873120F40A -:1018200090E080E00C946E0808950F931F93CF937F -:10183000C82F882309F469C08CEF8C0F813AB0F56A -:1018400002E312E088E392E0F8012191C21701F16E -:1018500022E0E833F207C9F7EFEF80E0D8019D916D -:101860008D01C91781F0EF3F19F4911101C0E82FE4 -:101870008F5F863099F7EF3F31F00E2E000CFF0B93 -:10188000E05DFD4FC283CF911F910F910C94400BEF -:10189000E2E3F2E02191C21303C0DF0111971C9231 -:1018A0008E179F07B9F70E94400BD6CF80E28C0FAE -:1018B000883068F4C77021E030E001C0220FCA957B -:1018C000EAF780915904822B80935904DCCFEBE531 -:1018D000EC0FE33050F4F0E0E154FE4F808190E0F3 -:1018E000CF911F910F910C948408C85AC73168F4A6 -:1018F000EC2FF0E0EE0FFF1FEE53FE4F8081918141 -:10190000CF911F910F910C946E08CF911F910F9161 -:101910000895982F92959F7011F0892F94E0282FA9 -:101920002695269511F09E5F822F869509F09F5F80 -:10193000892F0895CF93DF93CDB7DEB762970FB6A7 -:10194000F894DEBF0FBECDBF96E0E4E2F3E0DE0127 -:10195000179601900D929A95E1F796E0FE01379661 -:10196000DE011D9601900D929A95E1F798858823E6 -:10197000E9F0962B9E8786E0FE013D96DE011196EA -:1019800001900D928A95E1F786E0FE013196A4E27E -:10199000B3E001900D928A95E1F762960FB6F89444 -:1019A000DEBF0FBECDBFDF91CF9108956095962326 -:1019B000E1CFDC01FB0180819181803891054CF001 -:1019C0008FE78C93808191818F57910991838083D8 -:1019D000089581382FEF92073CF481E88C93808141 -:1019E000918181589F4FF2CF8C931182108208957C -:1019F000681708F5861B682F21E0469FA001112477 -:101A0000649FF001659FF00D1124409159015091A0 -:101A10005A01E49FC001E59F900DF49F900D1124A1 -:101A2000880F892F881F990B9195222319F0919582 -:101A3000819591090895681B20E0DFCF0F931F93D4 -:101A4000CF93DF9300D000D0CDB7DEB789836A8310 -:101A50004B831C8204E610E024E030E0AE014F5FCF -:101A60005F4F60E084E10E942C300F900F900F9048 -:101A70000F90DF91CF911F910F91089580913203C4 -:101A8000882329F047E669E98BE20C941E0D6091EA -:101A9000590170915A0190E080E00E947B3320E070 -:101AA00030E040E05CE30E94DC3320E030E040E8DE -:101AB0005FE30E947633882321F047EC6BE180E0FE -:101AC000E4CF41E265EA89EDE0CFCF92DF92EF9279 -:101AD000FF920F931F93CF93DF936C017B0164E61A -:101AE00070E088E70E94142FEC0197FD12C010E00F -:101AF00000E0F601E00FF11F849164E670E00E94BF -:101B00008E2FEC01892B29F40F5F1F4F0E151F0537 -:101B100081F70E94A830CE01DF91CF911F910F91E4 -:101B2000FF90EF90DF90CF900895809148049091BE -:101B30004904911103C091E089270895882369F031 -:101B400062E070E08CEE9BE00E94650D892B19F03D -:101B50008091480408951092480480914804EBCF86 -:101B6000CF93C0914804809149048823D1F00E940A -:101B700062086058774C8E4F9F4F60934404709377 -:101B800045048093460490934704C11108C062E065 -:101B900070E08AEE9BE00E94650D892B29F0C091D0 -:101BA00048048C2FCF91089581E080934804F7CFAB -:101BB00090916604943029F58093550470935704EE -:101BC000609356049093E9008FEF9091E800815064 -:101BD00095FD06C095ED9A95F1F700008111F5CFBE -:101BE0008091E80085FF0DC050E040E063E070E0C8 -:101BF00085E594E00E9425078091E8008E77809328 -:101C0000E8000895BC0184E00C94D80DBC0183E089 -:101C10000C94D80D9C0184E08093E9009FEF8091A3 -:101C2000E800915085FD06C085ED8A95F1F700002A -:101C30009111F5CF8091E80085FF0CC050E040E0A5 -:101C400066E070E0C9010E9425078091E8008E7768 -:101C50008093E8000895CF93DF93EC0181E08093B7 -:101C6000E9008FEF9091E800815095FD06C095ED59 -:101C70009A95F1F700008111F5CF8091E80085FF7A -:101C800014C050E040E068E070E0CE010E942507FB -:101C90008091E8008E778093E80088E0FE01ACE553 -:101CA000B4E001900D928A95E1F7DF91CF9108950C -:101CB0009F92AF92BF92CF92DF92EF92FF920F93DB -:101CC0001F93CF93DF937C015B016A018091D10266 -:101CD00001E010E08A3010F40AE010E0C1E0D0E04A -:101CE000F894B501C701F6010995982E0E947A096A -:101CF000911004C021960C171D076CF4892DDF91FB -:101D0000CF911F910F91FF90EF90DF90CF90BF90F8 -:101D1000AF909F900895CC9F9001CD9F300D300DD6 -:101D2000112490E080E045E34A95F1F70000019628 -:101D300082179307C1F7D4CF8091A102811110C0FF -:101D40008091D80080618093D8008AE18A95F1F76C -:101D500000C08091D90080FF0AC081E08093A10279 -:101D600081E09091A102913009F080E0089582E035 -:101D70008093A1020E94D50610926604F1CF0E94C2 -:101D80009C0E882351F0E0914C04F0914D04309763 -:101D900021F00190F081E02D099480E008951F93D7 -:101DA000CF93DF93182FEB010E94150C8FE99FE072 -:101DB0000197F1F700C000002197C1F7812FDF9153 -:101DC000CF911F910C94DC0B4F925F926F927F9298 -:101DD0008F929F92AF92BF92CF92DF92EF92FF923B -:101DE0000F931F93CF93DF93CDB7DEB7CE5DD109AD -:101DF0000FB6F894DEBF0FBECDBF5090700190912A -:101E0000710490FF5DC080905D0390905E0381142B -:101E1000910409F068C0E0E6F6E09E012F5F3F4FB5 -:101E2000BE0161527F4FC901A4914A2F50E0DA01EF -:101E3000AA0FBB1FA40FB51FA15ABC4FCD90DD90B8 -:101E4000EC90D901CD92DD92ED929D0131966A1709 -:101E50007B0751F720916F0143E0249F800D911D76 -:101E60001124539A2BB1277F3BB138605FB7F894A8 -:101E7000BC01549E600D711D11248617970709F04F -:101E80008EC05FBF8FE594E00197F1F700C00000BE -:101E9000C252DF4F0FB6F894DEBF0FBECDBFDF9149 -:101EA000CF911F910F91FF90EF90DF90CF90BF9057 -:101EB000AF909F908F907F906F905F904F9008951C -:101EC000809171012091720133E0839FF001112410 -:101ED000E15AFC4F821708F096CF118210821282CD -:101EE0008F5F3396F7CF90FF96CFD12CC12C66240D -:101EF0006394712C53E0452E80915C0393010C2C6C -:101F000001C0220F0A94EAF7822309F43FC0F601C8 -:101F1000EE0FFF1FE80DF91DE590F490E114F104B8 -:101F200009F479CF45E050E0B701CE0101960E9457 -:101F30000F3309810F3F51F18A81800F9927991F33 -:101F40008B34910514F08AE490E05C01AA0CBB1C70 -:101F50008A0D9B1DDC01A15ABC4F5D01049D8001CF -:101F60001124015A1C4F0A151B0520F0B5E0EB0E99 -:101F7000F11CD8CF4D81413A08F040EA98016C81BC -:101F80008B810E94E2080D5F1F4FEDCFEFEFCE1A5D -:101F9000DE0AF8E0CF16D10409F0AECF3CCFFC0149 -:101FA0004191CF01E8E03BB9000000C047FF2BB9E9 -:101FB000440F000000C000C000C02BB900C0EA956B -:101FC00091F75BCFE1E7F4E080818E7F8083E9E5E4 -:101FD000F3E08281816082832FEF80E792E02150DD -:101FE00080409040E1F700C000000C94E40EE2E372 -:101FF000F2E086E0DF011D928A95E9F70C94B50BBB -:102000001F93CF93DF93CDB7DEB7AA970FB6F8949F -:10201000DEBF0FBECDBF88E694E02091F100DC0169 -:102020002D93CD01B4E080379B07B9F78091690407 -:10203000833009F471C0B8F4813009F448C08230AB -:1020400009F4B4C08091E80083FF3CC1809168042A -:10205000909169049A3008F035C1E92FF0E0E45618 -:10206000FB4C0C9402338A3009F48FC08B3009F496 -:1020700070C0893039F780916804813219F78091F6 -:102080006C0490916D04009711F00297D9F680913D -:10209000E800877F8093E8008091E80082FF37C0E6 -:1020A0009091F3008091F200029729F48091F10061 -:1020B0008B7F813021F48091F10080935B048091CB -:1020C000E8008B778093E8000E944F07BBCF809198 -:1020D0006804813A09F0B6CF8091E800877F809349 -:1020E000E80080916C0490916D04892B61F468E0A4 -:1020F0008CE594E070E00E9401088091E8008B7705 -:102100008093E8009FCF60E090E080E0F3CF809183 -:1021100066048111C1CF96CF80916804813A09F09D -:1021200091CF80916C0490916D04892B09F08ACF36 -:102130008091E800877F8093E8008091E80080FF2D -:10214000FCCF809174018093F1008091E8008E773C -:10215000B9CF80916804813209F074CF80916C040A -:1021600090916D04892B09F06DCF8091E800877FF5 -:102170008093E8000E944F0780916A048093740165 -:10218000109259040E94F70F5DCF8091680481324C -:1021900009F058CF8091E800877F8093E8000E9483 -:1021A0004F0780916B0480935A044CCF8091680450 -:1021B000813A09F047CF8091E800877F8093E8005B -:1021C0008091E80080FFFCCF80915A04BCCF80381A -:1021D00099F0823809F076C080916C048F70873056 -:1021E00008F070C08093E9008091EB0085FB8827A0 -:1021F00080F91092E90006C0809164049091650412 -:10220000911182609091E800977F9093E80080930D -:10221000F1001092F1008091E8008E77B5C188231B -:1022200009F4A2C1823009F04DC080916A04811185 -:10223000A6C180916C048F702FEF280F263008F014 -:1022400041C08093E9002091EB0020FF98C19330BA -:1022500031F48091EB0080628093EB0090C190910B -:10226000EB0090619093EB0021E030E001C0220F81 -:102270008A95EAF72093EA001092EA008091EB0039 -:102280008860EACF81111EC010916A041F77809187 -:10229000E3008078812B8093E3008091E800877FC2 -:1022A0008093E8000E944F078091E80080FFFCCFF8 -:1022B0008091E30080688093E30082E0111183E065 -:1022C000809366048091E80083FF0AC08091E80053 -:1022D000877F8093E8008091EB0080628093EB0021 -:1022E000AA960FB6F894DEBF0FBECDBFDF91CF9197 -:1022F0001F9108958058823028F720916A04309108 -:102300006B042C3DE3E03E07A1F583E08A838AE27B -:1023100089834FB7F894DE01139620E03EE051E246 -:10232000E32FF0E050935700E49120FF03C0E295C3 -:10233000EF703F5FEF708E2F90E0EA30C0F0C796ED -:102340008D939D932F5F243159F74FBF8091E80003 -:10235000877F8093E8006AE270E0CE0101960E94D8 -:1023600001088091E8008B778093E800ABCFC0969E -:10237000E7CF80916C0490916D04432F5527433033 -:10238000510509F44AC078F54130510509F47AC085 -:102390008BE590E0EEEEFBE04230510509F092CF84 -:1023A0002091E800277F2093E80020916E0430916F -:1023B0006F048217930708F49C0140E02115310552 -:1023C00009F065C0411163C08091E80082FDC9CF6A -:1023D00080916604882329F2853019F28091E80003 -:1023E00083FFF2CFBECF4132510509F43CC04232E7 -:1023F000510509F067CF8330910508F063CFFC01E8 -:10240000EE0FFF1FEF5DFD4F0190F081E02D825E2A -:102410009D4FDC018C9190E01AC0332721303105AB -:10242000D1F02115310561F02230310509F04ACF94 -:10243000EBE5FCE0E4918E2F90E0EBE5FCE007C0DB -:10244000EDE8FCE0E4918E2F90E0EDE8FCE00097F1 -:1024500009F438CFA5CFEBE7FCE0E4918E2F90E0B4 -:10246000EBE7FCE0F4CF8330910508F02BCF880F29 -:10247000991FFC01E95DFD4F0190F081E02D89E09D -:1024800090E08ECF82E190E0E9E4FCE089CF80919A -:102490006604882309F465CF853009F462CF809102 -:1024A000E80083FD5ECF8091E80082FD8DCF8091B2 -:1024B000E80080FF83CF9091F3008091F200211516 -:1024C000310519F08830910550F041E0089709F086 -:1024D00040E08091E8008E778093E8006FCF4491D0 -:1024E0004093F1003196215031090196E8CF8038B0 -:1024F00009F0E8CE8091E800877F8093E800809122 -:1025000067048093F10087CE8111DCCE10916A04BC -:10251000123008F0D7CE8091E800877F8093E800E2 -:10252000109367040E944F07112311F084E005C047 -:102530008091E30087FDFACF81E08093660442E05A -:1025400061EC81E00E946E0742E261EC84E00E944F -:102550006E0742E261EC82E00E946E0742E260ECAC -:1025600083E00E946E07AECE80916A04813009F04C -:10257000A9CE81E0933009F080E080936504109249 -:10258000E9008091E800877F8093E8000E944F0770 -:1025900099CE1F93CF93DF93162FC0917806D091D9 -:1025A00079068A30D1F420913D04CE0188579440B9 -:1025B000622F70E00E94CE32281B822F66E00E94BC -:1025C000E232C82FC15020F4DF91CF911F910895BE -:1025D00060E080E20E94C912F5CF8D30E9F4C8575F -:1025E000D44020913D04622F70E0CE010E94CE3293 -:1025F000281B822F9E01280F311D2115324018F013 -:1026000080E0D0E0C0E0C80FD11DC858DB4FD093A8 -:102610007906C0937806D8CF96E0FE01AEE3B4E029 -:1026200001900D929A95E1F7803E90F186E0FE01CF -:1026300011928A95E9F7C0917806D0917906111127 -:1026400033C046E050E0BE018EE394E00E941833B0 -:102650009E0128573440892B91F52A5F3F4F4091C6 -:102660003D04642F70E0C9010E94CE32481B463001 -:1026700010F4240F311D211572E0370710F030E0FF -:1026800020E028583B4F30937906209378069CCF62 -:10269000F6E08F9FB00111246655794F46E050E077 -:1026A000CE010E940F33C7CF9E012A5F3F4FFE012C -:1026B0002E173F0731F2808180958193F9CFC901B0 -:1026C00045E0969587954A95E1F741E050E0BA01DB -:1026D00002C0660F771F8A95E2F7CB0160917604FE -:1026E00070917704862B972BB9016B5F7F4FE5E0E4 -:1026F00076956795EA95E1F702C0440F551F6A95F4 -:10270000E2F7842B952B9093770480937604A5CFE2 -:10271000FF920F931F93CF93DF93EC01F62EFC01F2 -:1027200001900020E9F78F0101501109C017D1076E -:1027300030F0DF91CF911F910F91FF9008956F2D91 -:1027400089910E94C912F2CFCF93DF93C3EED2E0FA -:1027500060E0CE010E9442332196C11584E0D80783 -:10276000B9F7DF91CF9108956F927F928F929F92E8 -:10277000AF92BF92CF92DF92EF92FF920F931F938F -:10278000CF93DF938AEAC82E86E0D82E91ECE92E0B -:10279000F12CE701CC58D10936011BC0F501859019 -:1027A0009490692DC8010E944233682DC80101969A -:1027B0000E94423382E0A80EB11C0E5F1F4FC0176B -:1027C000D10761F78EE0680E711C2E96CE15DF05DD -:1027D00029F08E010E5011095301E0CF7E018CE8E3 -:1027E000E80EF11C8CE8C80ED11C8DE7E81683E0DA -:1027F000F80679F6DF91CF911F910F91FF90EF903E -:10280000DF90CF90BF90AF909F908F907F906F9010 -:102810000895CF93C82F6FEF811161E283E290E0BA -:102820000E9442336FEFC11161E184E290E00E94A7 -:1028300042336FEFC11162E185E290E0CF910C94D9 -:10284000423380E00E94091460E086E290E00E943A -:1028500042330E94B4130E94A41381E00C94091423 -:102860000F931F93CF93DF93C42FD0E0CC0FDD1FC6 -:102870002EE0629FC00DD11D11243CE8839FC00D46 -:10288000D11D1124CE0187960E942E33082F10E00F -:10289000102F0027CE0188960E942E339801282BF6 -:1028A000C901DF91CF911F910F910895462F853077 -:1028B00038F47A3028F4673018F4672F0C94301409 -:1028C00090E080E00895CF92DF92FF920F931F93E4 -:1028D000CF93DF936C010091700480919202082BDA -:1028E000C7E0D0E010E0FC2EC8010C2E02C0959588 -:1028F00087950A94E2F780FD0CC02197A0F7F12C90 -:102900008F2DDF91CF911F910F91FF90DF90CF908E -:102910000895B6018C2F0E9456140E94D609019783 -:1029200061F3EECFCF93DF93EC010E946314BE01FD -:102930000E945614DF91CF910C94D609FC0180813E -:1029400091810E949214292F2F7092959F7092501E -:102950009E3078F4E92FF0E0EA55FB4C0C940233FA -:10296000803F19F020F4883E20F481E00895843FF0 -:10297000E1F380E00895883EC0F3813FD1F7F5CFC1 -:10298000822F869586958695089583E290E00E9431 -:102990002E33813289F484E290E00E942E3381311B -:1029A00059F485E290E00E942E3391E0823109F0E3 -:1029B00090E0892F8170089580E0FCCFCF92DF9264 -:1029C000EF92FF926B017C010E94CC08B701A60137 -:1029D00088E090E0FF90EF90DF90CF900C9454331C -:1029E000AF92BF92CF92DF92EF92FF920F931F931D -:1029F000CF93DF9300D00F92CDB7DEB7082FF62E1E -:102A0000142FE22E8091710480FF4FC0E82FE695CD -:102A1000AE2FB0E0AE5EBD4F9C91909359038E7F78 -:102A2000823009F056C0413A08F040EA9E012F5F1B -:102A30003F4F6F2D802F0E94E2088091710480FF2C -:102A400011C02B8139814A8180917101909172016D -:102A500053E0859FF0011124E15AFC4F891798F14A -:102A60000E94E40E80917204801308C08091730468 -:102A70008F1104C080917404811729F080915B0349 -:102A8000826080935B0300937204F092730410934E -:102A90007404EE2051F06091710470917204809181 -:102AA0007304909174040E94DE140F900F900F90A5 -:102AB000DF91CF911F910F91FF90EF90DF90CF901A -:102AC000BF90AF9008954183308322838F5F339608 -:102AD000C5CF923039F6E2508E2F8170D82EE69510 -:102AE000F0E0E55AF94FA590B490C12CBB24609159 -:102AF0007301C61608F0B4CF2C2D30E0A29EC001A1 -:102B0000A39E900DB29E900D112470E00E94CE32D3 -:102B1000802FD11016C0860F40917101420F532FA4 -:102B2000511D9A01220F331F240F351F215A3C4F8C -:102B3000412F113A08F040EA6F2D0E94E208C39439 -:102B4000D6CF861BE9CFE1E7F4E0438121E1421BC8 -:102B500008F440E021E0628181810C94F014E1E707 -:102B6000F4E0438121E1420F08F44FEF21E062815C -:102B700081810C94F014E1E7F4E0628121E1621BB1 -:102B800008F460E021E0438181810C94F014E1E7D6 -:102B9000F4E0628121E1620F08F46FEF21E04381EC -:102BA00081810C94F014E1E7F4E0818121E043811C -:102BB000628188500C94F014E1E7F4E0818121E017 -:102BC00043816281885F0C94F0148091750488239E -:102BD00019F08150809375046091710470917204B2 -:102BE00080917304909174040C94DE1480917504A8 -:102BF000833018F48F5F8093750460917104709135 -:102C0000720480917304909174040C94DE1490917A -:102C1000710490FF27C0917081111DC09260909344 -:102C2000710480915B03816080935B03662351F0A4 -:102C30006091710470917204809173049091740496 -:102C40000E94DE1420E0409174046091730480912E -:102C500072040C94F0148C3010F09661E0CF880F61 -:102C6000982BDDCF089521E030E0A90102C0440F88 -:102C7000551F8A95E2F7CA0120915C03662391F003 -:102C8000822B80935C0380915B03806180935B0364 -:102C900080915A03811109C08091710460E086958A -:102CA0000C94071680958223ECCF0895CF93DF9381 -:102CB000C82FC17082FBDD27D0F981FB662760F940 -:102CC00085E00E94331661E06C2786E00E9433168F -:102CD0006D2F87E0DF91CF910C9433160F931F93E4 -:102CE000CF93C82F61E08111682F617080E00E944E -:102CF0003316C1FB662760F9C11101C060E081E0B5 -:102D00000E943316C2FB662760F9C11101C060E062 -:102D100082E00E943316C3FB662760F9C11101C02F -:102D200060E083E00E943316C4FB662760F9C1119E -:102D300001C060E084E00E9433164C2F50E070E048 -:102D400060E0DB01CA01F4E0B695A79597958795F9 -:102D5000FA95D1F70097A105B10549F1AC01BD0184 -:102D600084E08A019B01E2E0369527951795079547 -:102D7000EA95D1F7011511052105310519F08E5F8E -:102D8000B901A8017695679557954795452B462B30 -:102D9000472B09F08F5F8230A1F158F48823D1F0DE -:102DA000813041F18C2FCF911F910F91089580E0D8 -:102DB000D8CF833059F18430A9F720E040E56FEF98 -:102DC0008AED0E94F01480910001882359F310923B -:102DD00032030DC020E040E56FEF82E30E94F01463 -:102DE00080910001882399F381E0809332030E944F -:102DF0003E0DD8CF20E040E56FEF8CEF0E94F0143D -:102E0000D1CF20E040E56FEF80E5F8CF20E040E54E -:102E10006FEF86E7F3CF0E946E16809370040C94D8 -:102E2000B50B80917004982F9670963019F48860D5 -:102E30000C940B17877FFCCF21E030E001C0220FFC -:102E40008A95EAF720958091700482230C940B17E1 -:102E500021E030E001C0220F8A95EAF780917004EA -:102E6000822B0C940B17809171048695815009F484 -:102E70008BE061E00C9407168091710486958F5F5A -:102E80008C3008F081E061E00C94071680917104A9 -:102E900080FF07C0869582588F77893010F40C9494 -:102EA0003C1761E082E00C940716E1E7F4E083E070 -:102EB000808311828FEF828380EA83831482A9E565 -:102EC000B3E012968C911297836012968C93608176 -:102ED0007181828193810C94DE1469EE7EEF90E023 -:102EE00080E00E94603360E082E090E00E94423324 -:102EF00060E083E090E00E9442331092920260E032 -:102F000084E090E00E94423360E082E290E00E9420 -:102F1000423360E085E090E00E94423360E086E06A -:102F200090E00E9442336FEF87E090E00E944233CE -:102F300040E050E0BA0188E090E00E94543360E045 -:102F40008DE090E00E94423340E050E0BA0188E119 -:102F500090E00E94543360E087E190E00E944233A9 -:102F600040E050E0BA018CE190E00E94543370E000 -:102F700060E080E290E00E94603340E050E0BA01FF -:102F800088E190E00E94543380E00E9409140E947E -:102F9000211440E050E0BA018FE090E00E945433E9 -:102FA00040E050E0BA0183E190E00C9454330F9379 -:102FB0001F93CF93DF9300D000D0CDB7DEB7409101 -:102FC000C5025091C6026091C7027091C8022FB726 -:102FD000F8948091510490915204A0915304B091BF -:102FE00054042FBF841B950BA60BB70B8436910599 -:102FF000A105B10588F10E949C0E882379F10E94F9 -:1030000062086E5F7F4F8F4F9F4F69837A838B83F8 -:103010009C8380912C0190912D0181559D4F409171 -:103020002B0150E04530510510F044E050E0BE0166 -:103030006F5F7F4F0E94253384E090E00E941A3238 -:10304000892BD9F40E9462086093C5027093C6026E -:103050008093C7029093C80281E010C00E9462086A -:103060000091D2021091D3022091D4023091D50266 -:10307000600F711F821F931FC4CF80E00F900F90CD -:103080000F900F90DF91CF911F910F9108958F9224 -:103090009F92AF92BF92CF92DF92EF92FF920F93E7 -:1030A0001F93CF93DF93EB0188809980AA80BB8028 -:1030B0009FB7F894C0905104D0905204E09053040C -:1030C000F09054049FBFC818D908EA08FB0894E69A -:1030D000C916D104E104F10410F4442311F1E82EDF -:1030E000082E000CFF089AE08902F0011124EF5F1E -:1030F000FE4F8381948181559D4F428150E004179A -:10310000150708F4A801B9010E942533C7010E94E0 -:103110001A32892BA1F40E946208688379838A831A -:103120009B8381E0DF91CF911F910F91FF90EF90F2 -:10313000DF90CF90BF90AF909F908F90089580E0E8 -:10314000F1CF0F931F93CF93DF930F92CDB7DEB7DD -:103150008091480489832091C40290E041E02817BF -:10316000190609F440E001E010E09E012F5F3F4F97 -:103170006DEC72E086E00E9447180F90DF91CF91CE -:103180001F910F9108950F931F93CF93DF93CDB7A6 -:10319000DEB729970FB6F894DEBF0FBECDBF85E02E -:1031A000E1E7F4E0DE01119601900D928A95E1F7D6 -:1031B0008091590390915A03A0915B03B0915C03F5 -:1031C0008E839F83A887B98741E08885811101C0DC -:1031D00040E009E010E09E012F5F3F4F69EC72E094 -:1031E00085E00E944718811110925B0329960FB663 -:1031F000F894DEBF0FBECDBFDF91CF911F910F912D -:1032000008956F927F928F929F92AF92BF92CF92CA -:10321000DF92EF92FF920F931F93CF93DF930F9262 -:10322000CDB7DEB7862E5A016901682E880F770860 -:10323000C3010E941A32892B09F088C08AE0869D5A -:10324000F001879DF00D1124EF5FFE4F458150E0A6 -:103250004115510511F041E050E08AE0869DF001F2 -:10326000879DF00D1124EF5FFE4F668177816155D8 -:103270007D4FCE0101960E942533F5014081518199 -:10328000628173812FB7F894809151049091520418 -:10329000A0915304B09154042FBF841B950BA60B2F -:1032A000B70B84369105A105B10540F4B701C801FB -:1032B0000E94B1089981891709F44FC0082C000CAD -:1032C0009908C4010E941A32892B91F0B12C8B2DE0 -:1032D0000F90DF91CF911F910F91FF90EF90DF90B2 -:1032E000CF90BF90AF909F908F907F906F900895F8 -:1032F0008AE0889DF001899DF00D1124EF5FFE4F5B -:10330000458150E0E416F50608F4A7018AE0889D9F -:10331000F001899DF00D1124EF5FFE4F66817781EA -:1033200061557D4FC6010E942533B701C8010E9437 -:10333000B10899818913CACF0E946208F5016083A0 -:10334000718382839383BB24B394C1CFB12CA70133 -:10335000B801C6010E942533BACFBB24B394F7CF7E -:10336000CF92DF92EF92FF920F931F93CF93DF9351 -:1033700000D000D00F92CDB7DEB76B0185E0E82E0C -:10338000F12C00EB12E09E012F5F3F4F47EA52E025 -:1033900061E080E00E940119882349F095E0FE0178 -:1033A0003196A2EAB2E001900D929A95E1F795E08C -:1033B000E2EAF2E0D60101900D929A95E1F70F90C2 -:1033C0000F900F900F900F90DF91CF911F910F9161 -:1033D000FF90EF90DF90CF90089590E080E00E9402 -:1033E0003C33893E9E4F11F40C94C51480E008953F -:1033F0001F920F920FB60F9211242F933F934F936A -:103400005F936F937F938F939F93AF93BF93CF936C -:10341000DF93EF93FF93D091E900DF708091EC0090 -:10342000C82FC17080FDC0E81092E9008091F000C3 -:10343000877F8093F00078940E9400101092E9003A -:103440008091F00088608093F000CD2BCF70C09306 -:10345000E900FF91EF91DF91CF91BF91AF919F91E3 -:103460008F917F916F915F914F913F912F910F902D -:103470000FBE0F901F9018951F920F920FB60F92CC -:1034800011242F933F934F935F936F937F938F9369 -:103490009F93AF93BF93EF93FF938091E10082FFDF -:1034A00009C08091E20082FF05C08091E1008B7F1E -:1034B0008093E1008091DA0080FF24C08091D800E1 -:1034C00080FF20C08091DA008E7F8093DA008091A7 -:1034D000D90080FF9BC080E189BD82E189BD09B42C -:1034E00000FEFDCF81E08093660480915804811135 -:1034F00009C00E94D5060E94A0078091E200846066 -:103500008093E2008091E10080FF17C08091E2008B -:1035100080FF13C08091E2008E7F8093E200809153 -:10352000E20080618093E2008091D8008062809305 -:10353000D80019BC85E0809366048091E10084FF87 -:1035400029C08091E20084FF25C080E189BD82E12D -:1035500089BD89B5982F917080FFFBCF8091D800ED -:103560008F7D8093D8008091E1008F7E8093E10071 -:103570008091E2008F7E8093E2008091E200816082 -:103580008093E20080916704882309F445C084E0B9 -:10359000809366048091E10083FF27C08091E20060 -:1035A00083FF23C08091E100877F8093E10082E068 -:1035B00080936604109267048091E1008E7F80936F -:1035C000E1008091E2008E7F8093E2008091E20032 -:1035D00080618093E20042E060E080E00E946E073C -:1035E0008091F00088608093F000FF91EF91BF918F -:1035F000AF919F918F917F916F915F914F913F918B -:103600002F910F900FBE0F901F90189519BC10921C -:1036100066041092580476CF8091E30087FD93E012 -:1036200090936604B7CF78941F921FB61F9211240F -:103630008F939F93AF93BF938091510490915204C5 -:10364000A0915304B09154040196A11DB11D809323 -:10365000510490935204A0935304B0935404BF9127 -:10366000AF919F918F911F901FBE1F9018959C0145 -:103670004FB7F8948091510490915204A091530453 -:10368000B09154044FBF821B930B08952FB7F89449 -:103690008091510490915204A0915304B09154042C -:1036A0002FBF08955F926F927F928F929F92AF92F9 -:1036B000BF92CF92DF92EF92FF920F931F93CF931F -:1036C000DF9300D000D00F92CDB7DEB76C01FC01C4 -:1036D00083819481892B31F08081918189238F3F6F -:1036E00009F05EC50F900F900F900F900F90DF9133 -:1036F000CF911F910F91FF90EF90DF90CF90BF90EF -:10370000AF909F908F907F906F905F9008950E94F0 -:103710006314182F682F89819A810E94890B69810F -:103720007A81812F0E9456148C01F60182818823B0 -:1037300009F42BC5C80182519F45409708F0EEC49B -:103740008FEF93E00E942E33025193EEA92E92E068 -:10375000B92E8111C7CF01113AC01C821B82662489 -:1037600063948AE0582E85010F5F1F4FC5010E94A8 -:103770002E3389831A82882309F4B4CF9FEF980FE0 -:103780009330A0F58A83698232E0A30EB11CC80190 -:103790000E942E338B83882309F4A4CF8E010F5F00 -:1037A0001F4FF80120812223F1F2213009F058C087 -:1037B000918182819130E1F40E5F1F4F6AE070E0E9 -:1037C000893311F460E570E00E94CF0E17C0A11498 -:1037D000F4E0BF0609F486CFC5010E942E338111A3 -:1037E00001C001502FEFA21AB20AB5CF5801D6CFAF -:1037F000923039F40E5F1F4F0E94150C0F5F1F4F60 -:10380000D0CF933029F40E5F1F4F0E94DC0BF6CF10 -:10381000943019F00F5F1F4FF1CF0E5F1F4F30E054 -:1038200020E0B8016F5F7F4FF80141818053990B11 -:103830008A30910550F02150310900F38FE99FE063 -:103840000197F1F700C00000F6CF529EF001539EA1 -:10385000F00D11249C012E0F3F1F842F8B01E1CF0F -:10386000E22FF0E0E75FFD4F7490822F86958695FA -:10387000869590E0FC01E750FE4FE4902770F12C14 -:10388000022E02C0F594E7940A94E2F7E1E0EE22FA -:10389000FF24FC01E751FE4FC490D12C022E02C040 -:1038A000D594C7940A94E2F7F1E0CF22DD24FC011D -:1038B000E752FE4F8490912C02C0959487942A95EC -:1038C000E2F721E082229924E114F10419F081EE5B -:1038D0000E94150CC114D10419F086EE0E94150C3B -:1038E00039E36AE070E0731202C060E570E0872D92 -:1038F0000E94CF0ECD2819F086EE0E94DC0BEF2837 -:1039000019F081EE0E94DC0B892809F477CF6AE078 -:1039100070E08CE259CF81E00E94281703C081E05B -:103920000E941C170F900F900F900F900F90DF9137 -:10393000CF911F910F91FF90EF90DF90CF90BF90AC -:10394000AF909F908F907F906F905F900C94111725 -:1039500082E0E2CF043F110509F455C108F057C1D8 -:10396000053E110509F4DDC0F601928191113CC2BA -:103970008091590482720A3CFCE51F0709F414C2C5 -:1039800008F06AC1053C3CE5130709F4F9C108F0E9 -:103990004EC1033C5CE5150709F4D3C108F0EBC147 -:1039A000023C1C4509F47DC1F60100811181992377 -:1039B00009F434C2C8010E946314F82E682FC801AC -:1039C0000E94890BB8018F2D0E9456140E94D609BF -:1039D000182FB82EF60122814581342F32953F7081 -:1039E000892F82958F70E82EF12C8C3008F04EC212 -:1039F000F701EC54FB4C0C9402330338FFE51F072E -:103A000009F481C018F501383FE5130709F44AC0ED -:103A100008F065C000385FE5150709F0A5CF8823D9 -:103A200009F459C080919C02811106C081E0809305 -:103A30009C0282EE0E94150C0E94461B90939B02F2 -:103A400080939A028BE20E94150C8ECF05389FE579 -:103A5000190709F4BEC008F476C00638FFE51F0751 -:103A600009F082CF882309F4CEC06091590170918A -:103A70005A0190E080E00E947B3320E030E040E09B -:103A80005CE30E94DC3320E030E040E85FE30E942A -:103A900076338111B5C080EE90E090935A01809307 -:103AA0005901A1C08823A1F080919C02811106C018 -:103AB00081E080939C0282EE0E94150C0E94461BBE -:103AC00090939B0280939A0281EE0E94150CBACFCC -:103AD00081EE0E94DC0B8BE20E94DC0B45CF882339 -:103AE00009F442CF81EE0E94150C83EE0E94150C62 -:103AF0008FE40E94150C8FE40E94DC0B83EE0E9481 -:103B0000DC0B81EEE9CF882309F42ECF81EE0E94F1 -:103B1000150C83EE0E94150C80E50E94150C80E5C3 -:103B2000EBCF80933C0210933B0200933A02882330 -:103B300021F081E08093EE0217CF1092EE0214CFB5 -:103B400080933902F0CF882379F18091390288235C -:103B500049F080913A020E94DC0B80EE0E94150C25 -:103B60008AE20CC080913C028823D1F380913A0212 -:103B70000E94DC0B80EE0E94150C8CE40F900F90DD -:103B80000F900F900F90DF91CF911F910F91FF90A9 -:103B9000EF90DF90CF90BF90AF909F908F907F90ED -:103BA0006F905F900C94150C8AE20E94DC0B8CE401 -:103BB0000E94DC0B80EE0E94DC0B809139028111A7 -:103BC00005C080913C02882309F48CCD80913A0293 -:103BD000D5CF8823C1F080913203882339F0109229 -:103BE0003203109200010E943E0DBECE8091000172 -:103BF0008111F7CF81E08093320380930001F3CFEE -:103C000080E890E04ACF61E00E949A0CADCE62E07D -:103C1000FBCF64E0F9CF882321F081E08093ED02AF -:103C2000A3CE1092ED02A0CE1092F0029DCE073CE2 -:103C30002CE5120709F4AEC008F4A7C0083C4CE517 -:103C4000140709F4ACC0093C1C4509F0ADCE43EAA9 -:103C500055E16FEA75E179C0043DECE51E07A8F473 -:103C60000E3CFCE51F0708F03DCD0C3C2CE512078F -:103C700009F49FC045EE55E166EF75E10D3C1C452A -:103C800008F463C061E081E046C0053D4CE51407DF -:103C900009F428CD08F492C00D351D4509F422CD54 -:103CA00083CE8091710480FF31C08E7F8093710438 -:103CB0006091710470917204809173049091740406 -:103CC0000E94DE1480915B03816080935B039FEF11 -:103CD000E0E7F2E09150E040F040E1F700C0000082 -:103CE0000F900F900F900F900F90DF91CF911F9139 -:103CF0000F91FF90EF90DF90CF90BF90AF909F908B -:103D00008F907F906F905F900C94E40E8160809311 -:103D1000710461E086950F900F900F900F900F90B7 -:103D2000DF91CF911F910F91FF90EF90DF90CF9097 -:103D3000BF90AF909F908F907F906F905F900C940A -:103D4000071643E357E16CE377E10F900F900F9074 -:103D50000F900F90DF91CF911F910F91FF90EF90F7 -:103D6000DF90CF90BF90AF909F908F907F906F909B -:103D70005F900C94C7084CE357E163E377E1E5CF2C -:103D800043ED55E16CED75E1E0CF4CED55E163EDB0 -:103D900075E1DBCF4BEB55E167EC75E1D6CF47EC36 -:103DA00055E16BEB75E1D1CF4FEA55E163EA75E17F -:103DB000CCCF46EF55E165EE75E1C7CF0F900F9080 -:103DC0000F900F900F90DF91CF911F910F91FF9067 -:103DD000EF90DF90CF90BF90AF909F908F907F90AB -:103DE0006F905F900C9446170E3D1C4509F0DCCD9A -:103DF0000F900F900F900F900F90DF91CF911F9128 -:103E00000F91FF90EF90DF90CF90BF90AF909F9079 -:103E10008F907F906F905F900C946D17C8010E94F7 -:103E2000610BF82ECFCD092F0F70907F11F0029506 -:103E3000007F812F2223C9F0002369F090E2910FC7 -:103E4000983010F011110BC080915904082B009389 -:103E500059040E94400B812F0E94150C17C08091BD -:103E60009102082B00939102F4CF0E94DC0B0023F7 -:103E700069F00095105E183010F0B11027C08091E5 -:103E800059040823009359040E94400B98E0E91A52 -:103E9000F108E4E0EE16F10408F024CC0E94BF0E15 -:103EA0000F900F900F900F900F90DF91CF911F9177 -:103EB0000F91FF90EF90DF90CF90BF90AF909F90C9 -:103EC0008F907F906F905F900C9456168091910226 -:103ED000082300939102D8CF892F8F70907F903262 -:103EE00011F08295807FF1E0BF120CC0222329F0EF -:103EF000333060F60E94D20BC9CF323038F60E94C0 -:103F0000C70BC4CF222341F03323A1F340FFA3CF3B -:103F10004F70F6014583EECF332389F3193309F04F -:103F2000F5C0FFEF27EE33E0F15020403040E1F7DD -:103F300000C00000812F0E94DC0BA8CF892F86953E -:103F40008695837061F0813009F0A0CF812F937046 -:103F5000211102C090E080E00E946E0897CF812F6F -:103F60009370211102C090E080E00E9484088ECFFF -:103F7000892F8370A1F5211189CF812F8295869594 -:103F80008770880F880F412F4F70082E01C0440F93 -:103F90000A94EAF7212F207114FF07C02FE030E0C8 -:103FA00001C0220F8A95EAF7209596959695937011 -:103FB000923081F0822F842B933030F480919202E2 -:103FC000913029F0242B82230E94C30B5FCF842BD6 -:103FD000822BFACF242B809192028227F5CF8695EF -:103FE000222311F0892F8170882309F44FCF812F6C -:103FF000829586958770880F880F412F4F70082E05 -:1040000001C0440F0A94EAF7212F207114FF07C062 -:104010002FE030E001C0220F8A95EAF720959695AF -:1040200096959370923081F0822F842B933030F4E8 -:1040300080917004913029F0242B82230E940B1769 -:1040400025CF842B822BFACF242B809170048227DA -:10405000F5CF092F0F70222329F0802F0E942817F7 -:10406000812F48CF812F0E94C70B802F0E941C17E1 -:104070000DCF812FE1EF1E1789F1E11750F0F0EF1E -:104080001F17B9F02223B1F13111E5CE892F8F71BD -:1040900029C042EF141749F153EF1513F3CF80E015 -:1040A000222361F29F7181E001C0880F9A95EAF79F -:1040B000C5CF222379F0323008F0E8CE292F2F71B6 -:1040C00081E090E001C0880F2A95EAF79091700492 -:1040D0008927B4CF333008F0D9CEF0CF892F8F7134 -:1040E000222321F20E942817D1CE892F8F712223FB -:1040F000C9F3BCCF332379F0893341F48FEF97EEC6 -:10410000E3E081509040E040E1F712CF8FE39CE97B -:104110000197F1F70DCF892F8F71A8CF0031FFE5FF -:104120001F0709F4F8CB01312FE5120709F410CC71 -:104130000E9462086093F5027093F6028093F70282 -:104140009093F802F6018281063F110509F461CDD2 -:1041500008F053CC043E110509F45DCD08F0FACB0C -:10416000003E110509F457CD013E110509F4E8CCD4 -:104170000C32110509F0F8CB882309F455CD81E004 -:104180008093F00210926701EFCB00313FE51307F7 -:1041900009F4C5CB01314FE51407A1F682E0C0CB8D -:1041A00085E0DE01119601900D928A95E1F7F60106 -:1041B000228189819A812111AACA0E94610B182F3C -:1041C000AECA1F93CF93DF9380915D02807FA9F4E5 -:1041D00080915A02882389F080918F02D0915E02EB -:1041E0006091580270915902A0915B02B0915C02FB -:1041F000C62FC72316E0D81304C0DF91CF911F91BB -:10420000089590E0109711F0CF3F19F40196877050 -:10421000F2CF189F9001199F300D1124F901E15A36 -:10422000FD4F41814713F2CF40814613EFCF4281CA -:104230004111ECCF438154814A1B5B0B403A51053D -:1042400028F780915D028F70806180935D02F90193 -:10425000EC59FD4F80818F708061808388E592E00A -:104260000E94521BDF91CF911F910C94570BAF927C -:10427000BF92CF92DF92EF92FF920F931F93CF9353 -:10428000DF93CDB7DEB761970FB6F894DEBF0FBEF0 -:10429000CDBF8C0185E0F801DE011D9601900D92E5 -:1042A0008A95E1F7F801E28088E5A82E82E0B82E31 -:1042B00060915B0270915C026115710509F432C175 -:1042C0009091580240915902892F84238F3F09F41D -:1042D00029C120813181C380D480F0905A02F60137 -:1042E000E61BF70BFF2009F4E8C080915D02582F10 -:1042F000507FE03AF10508F0ABC0511177C0FE2CB9 -:10430000431321C092131FC0E1101DC08F70806144 -:1043100080935D02C5010E94521B80915D02F801ED -:1043200085838F2D61960FB6F894DEBF0FBECDBF8B -:10433000DF91CF911F910F91FF90EF90DF90CF9081 -:10434000BF90AF900895CD2829F0822F83238F3F0F -:1043500009F003C180E0F82FF170DF2E80FF3CC030 -:1043600080918F0240915E0256E0841315C02D8724 -:104370003E878D859E850E949214292F22952F704D -:104380002230F0F0243018F59F70F1F0F80195819B -:10439000907FD1F4D12C1EC090E0589FF001599F1E -:1043A000F00D1124E15AFD4F6181361306C0608182 -:1043B000261303C06281E6120FC001968770D5CF25 -:1043C0009F7011F0882331F3805E883018F3C801A4 -:1043D0000E94521BFD2CA5CFEE2009F4A2CF8091A4 -:1043E0005D02816080935D02F12C9BCF431306C078 -:1043F000921304C0F801EE2009F479C0C8010E94AC -:104400009E14882309F1EE20F9F080915D0280323C -:1044100070F0209158023091590238872F83198605 -:10442000DB86CA868C87CE0107960E94521B86E0E7 -:10443000F801A8E5B2E001900D928A95E1F70E949B -:10444000E120FF24F3946DCFC8010E94521BF9CFE5 -:1044500051110AC088E592E00E94521B86E0F501E6 -:1044600011928A95E9F7C0CF43130FC092130DC084 -:10447000E1100BC0F8018583C8010E94521B86E041 -:10448000F50111928A95E9F74CCFC8010E949E145C -:104490008823D1F2EE20C1F280915D02803238F2A1 -:1044A00020915802309159023A8329831B82DD8280 -:1044B000CC828E83CE010196B8CFE03AF105F8F6B2 -:1044C000FE2CEE2009F243131FC092131DC08091F1 -:1044D0005D0280FD10C0982F907F69F0F801858300 -:1044E000903F31F0982F907F905F8F70892B85835C -:1044F000C8010E94521B86E0F801A8E5B2E00190D5 -:104500000D928A95E1F70DCFC8010E949E1481118A -:104510008ECF80915D02816080935D02C8010E9410 -:10452000521BFFCEEE2009F48FCFC8010E949E14CB -:10453000F82E882309F488CF86E0F801A8E5B2E0D8 -:1045400001900D928A95E1F780915802909159025D -:104550000E9492140E94E120E4CE81E08E25FBCEE1 -:104560001F93CF93DF93CDB7DEB767970FB6F8945D -:10457000DEBF0FBECDBF4B8B5C8B6D8B7E8B8F8B6D -:104580006111109291021A8A198A85E0FE017396D0 -:10459000DE011D9601900D928A95E1F786E0FE01FD -:1045A0003D96DE01179601900D928A95E1F7CE01B6 -:1045B00007960E943721882389F016E080918F02A8 -:1045C00090915E0289134BC067960FB6F894DEBFD8 -:1045D0000FBECDBFDF91CF911F91089586E0FE0100 -:1045E0003796DE01119601900D928A95E1F78A8542 -:1045F0009B85892B11F38F81988589238F3FE9F261 -:1046000020915E0230E0C9010196877099274091A0 -:104610008F024817190681F4109259040E94F70F6F -:1046200010925E0210928F0286E0E8E5F2E0DF0170 -:104630001D928A95E9F7C1CF96E0929FD001939F92 -:10464000B00D1124A15ABD4FFE01319601900D927B -:104650009A95E1F780935E020E94570BAECF819F3F -:10466000C0011124815A9D4F0E943721882309F4EB -:10467000ABCF80918F0290E001968770992780934D -:104680008F029CCF9F92AF92BF92CF92DF92EF9218 -:10469000FF920F931F93CF93DF93CDB7DEB764974D -:1046A0000FB6F894DEBF0FBECDBF8E010F5F1F4F58 -:1046B0008AE0D8011D928A95E9F79EE4C92E91E01F -:1046C000D92EF12CE12CAA24A394B12CF6018191CE -:1046D0006F018F3F09F44AC0F894E82FE295EF701C -:1046E000F0E021A18F70A50102C0440F551F8A95EB -:1046F000E2F7CA01922F982B91A392A1809589236A -:1047000082A30E947A0900C0E7E4F1E030E020E0F3 -:10471000912C41914F3F09F47DC0A42FA295AF7019 -:10472000B0E090968C9190E04F7002C0959587957F -:104730004A95E2F780FD6EC08A2D022E01C0880FD7 -:104740000A94EAF7982A2F5F3F4F2730310509F77F -:10475000F601319780818F3F11F00E947C0950EA69 -:104760005A95F1F7F801EE0DFF1D90828FEFE81AD0 -:10477000F80A95E0E916F10409F0A8CF4AE050E004 -:10478000B80188ED92E00E9418337C01892B41F03A -:104790008AE0F801A8EDB2E001900D928A95E1F768 -:1047A0001091E302E114F104B9F181E080939502E4 -:1047B0000E94461B909394028093930280919302EF -:1047C000909194020E94371B069770F0A8EDB2E01A -:1047D000E12FF0E0E15BFC4F8D91819322E0AD3D54 -:1047E000B207D1F71092950281E090E0EF28C1F076 -:1047F00064960FB6F894DEBF0FBECDBFDF91CF91A8 -:104800001F910F91FF90EF90DF90CF90BF90AF90EE -:104810009F90089580E096CF809195028111CECF30 -:104820000E949C0EB82EE091E302882309F4C7C0D1 -:104830008E01005F1F4F85E0D8011D928A95E9F730 -:10484000F0E09F01215B3C4F79018091D102AE01E4 -:104850004B5E5F4F6A018A3008F086C040EB59E139 -:10486000B801C7010E94580E882309F494C043EB95 -:1048700055E2B801C7010E94580E882309F48BC085 -:1048800047ED57E1B801C7010E94580E882309F48B -:1048900082C043EC58E1B801C7010E94580E88233A -:1048A00009F479C041EA58E1B801C7010E94580EE5 -:1048B000882309F470C01092D102E091E202F0E086 -:1048C000AF01415B5C4FD80110E0FA019191AF015B -:1048D0008D91981731F09F0121503109F9018083A2 -:1048E0001B2DCA16DB0689F780919C02882371F084 -:1048F00080919A0290919B020E94371B893E9340BF -:1049000028F082EE0E94DC0B10929C0288E9C82EEF -:1049100082E0D82EF12CE12CD6018D916D018823F7 -:10492000D1F08695F70109F447C0EC50FE4F808125 -:1049300091819C878B871D860E94461B8160782F02 -:104940009F878E87F601319710824B855C856D8538 -:104950008F850E94B022B2E0EB0EF11CE4E0EE166F -:10496000F104D1F6812F44CF809196029091970265 -:104970000E94371B843F914008F070CFA091E20263 -:10498000B0E0A15BBC4FF8011D921192CE16DF067C -:10499000D9F71B2DA9CF8091D1028F3F31F08F5FC6 -:1049A0008093D1028A3008F488CF0E94461B9093EE -:1049B000970280939602E2CFE051FE4FB8CFF0E02D -:1049C000E15BFC4FF89485E0A0EBB2E001900D9222 -:1049D0008A95E1F765E070E080EB92E00E94B10813 -:1049E0008093AF020E947A09F894E091EB02F0E024 -:1049F000E851FD4F80818B878093B60261E070E0C3 -:104A0000CE010B960E94B1088093B5020E947A09EC -:104A1000F894C090B702D090B802E090B902F0903C -:104A2000BA0280919D0290919E02A0919F02B09146 -:104A3000A002C816D906EA06FB06D1F0C0929D0274 -:104A4000D0929E02E0929F02F092A0020E949C0EE1 -:104A500081110EC00E946208C61AD70AE80AF90A34 -:104A6000C092D202D092D302E092D402F092D50248 -:104A70000E947A09F8948091C202882321F184FF70 -:104A800004C09091C30290935C0380FF0DC080919D -:104A9000BB0280FF25C090917104916090937104D6 -:104AA00060E086950E9407168091C20281FF09C0CE -:104AB00020E04091BE026091BD028091BC020E9444 -:104AC000F0141092C2020E947A09F8948091C402F4 -:104AD000882349F00E94B00D0E947A0980E088CEB8 -:104AE0000E94E20FE1CF0E94950DF6CFEF92FF9268 -:104AF0000F931F93CF93DF9300D000D00F92CDB7C9 -:104B0000DEB7162FE82EF12CC701880F991F6623F8 -:104B100039F18C509E4FFC01808191819A83898369 -:104B200001E00B830E94461B8160782F9D838C835C -:104B3000F701E856FD4F0127110F102B1083498113 -:104B40005A816B818D810F900F900F900F900F9075 -:104B5000DF91CF911F910F91FF90EF900C94B022B5 -:104B600080519E4FD8CFCF92DF92EF92FF920F935A -:104B70001F93CF93DF930F92CDB7DEB7EE24E3946C -:104B8000F12C06EB12E09E012F5F3F4F4BEA52E003 -:104B900063E082E00E940119082F882321F1C09070 -:104BA000E5028C2D90E09C0128513D4F790119813F -:104BB000F9018081181BD12E80E00AC0DA94F70138 -:104BC00080818F5F808360E08C2D0E947625802F0E -:104BD0001D14A4F3912F17FD90E0191B11110EC0A5 -:104BE00081110E943E0B802F0F90DF91CF911F917A -:104BF0000F91FF90EF90DF90CF9008951F5FF70126 -:104C000080818150808361E08C2D0E947625802FE9 -:104C1000E5CF1F921FB61F9211248F939F93AF93DE -:104C2000BF9380915004811113C0809151049091E1 -:104C30005204A0915304B09154044196A11DB11D9A -:104C40008093510490935204A0935304B09354045E -:104C5000BF91AF919F918F911F901FBE1F9018958C -:104C6000CDB7DEB7E9970FB6F894DEBF0FBECDBF64 -:104C700084B7877F84BF0FB6F894A89580916000B1 -:104C8000886180936000109260000FBE80E890E021 -:104C90000FB6F89480936100909361000FBE85B7C2 -:104CA000806885BF85B7806885BF88E799E0909365 -:104CB0002F0280932E020E94D5060E94A0078091A9 -:104CC000E20084608093E2007894809166048823F7 -:104CD000A1F01091E9001F709091EC00892F817074 -:104CE00090FD80E8182B1092E9008091E80083FD88 -:104CF0000E9400101F701093E90082E084BD93E0D1 -:104D000095BD9AEF97BD80936E001092D2021092DB -:104D1000D3021092D4021092D5020E94C5148111C0 -:104D200002C00E9421140E949C0E80935801809121 -:104D30005801882309F4C6C010926F0185E2809360 -:104D400070010E949C0E81110E940D3180915801CA -:104D500081112FC0FE01359686E0DF011D928A95F4 -:104D6000E9F786E6898387E98A8386EC8B8384E387 -:104D70008C8385E38D833497AEE4B1E0CE010B964E -:104D800021912D938E179F07D9F787E0E5E7F1E092 -:104D9000DE01919601900D928A95E1F7FE01B196A0 -:104DA000A7E4B1E0CE01889621912D938E179F073D -:104DB000D9F78091580195E0811190E09093E3023A -:104DC00085E0891B8093E2020EE411E0A3E5EA2E60 -:104DD000A1E0FA2EF80181918F018F3F11F00E941E -:104DE0007C09E016F106B1F707E411E0FEE4EF2ECE -:104DF000F1E0FF2ED8018D918D018F3F11F00E94BF -:104E00007C09E016F106B1F7E8EDF2E082EE92E0FF -:104E1000AFE4B3E011921D928E179F07D9F70E945D -:104E2000ED19811102C00E946D1782E090E00E948E -:104E30002E338093440384E090E00E942E33182F99 -:104E400082E290E00E942E33982F812F9093D70218 -:104E50008093D6020E944223EFE7FBEB3197F1F7F4 -:104E600000C000000E94422380914F0380FF2EC0AB -:104E70006FEF7FEF90E080E00E94603381E08093ED -:104E8000E00080E28093D8001092C9008FE19EE498 -:104E90000197F1F700C0000087E090EBDC01809300 -:104EA0007A0690937B06A0937C06B0937D0688E1FA -:104EB0009CE00FB6F894A895809360000FBE909385 -:104EC0006000FFCF85E280936F0139CF83E090E0EF -:104ED0000E942E330E94C30B809170040E946E16B4 -:104EE0000E949C0E811102C00E94103183E08093C9 -:104EF0001A0380E280933D040E940E2F6DE070E063 -:104F00008CE992E00E94650D892BE9F580911A03E6 -:104F100063E070E081FD9EC289E992E00E94650D28 -:104F2000892B89F56DE070E089E892E00E94650DBB -:104F3000892B49F50E9462086058774C8E4F9F4F2D -:104F4000609344047093450480934604909347040F -:104F5000E8E7F4E080E092E0DF019C011D9221503F -:104F60003040E1F7F0937906E09378068FEF9FEFFA -:104F7000909377048093760481E080934904809332 -:104F8000480410921B038091E402811136C00E94F4 -:104F9000ED19811104C00E946D170E94551788E019 -:104FA00090E00E9436336093710470937204809392 -:104FB00073049093740480915B03836080935B031C -:104FC0006E7F71F40E94551788E090E00E9436339E -:104FD00060937104709372048093730490937404CB -:104FE0000E94CC088091710480FF04C060E0869527 -:104FF0000E94071681E08093E4028091580181119C -:1050000006C084EF8093660185EF8093650120914F -:105010006601A22FA295AF70B0E091963C91919756 -:105020002F7081E090E0BC01022E01C0660F0A944F -:10503000EAF7462F4095432391964C939197929689 -:105040003C919297362B92963C93929740916501B2 -:10505000E42FE295EF70F0E031A14F70042E01C013 -:10506000880F0A94EAF7982F9095932391A392A121 -:10507000892B82A390968C9190E002C0959587959C -:105080002A95E2F7817020A130E002C0359527957E -:105090004A95E2F792E020FF90E0892B8093EC02A2 -:1050A0008091580111E081278093EB02312F381B4A -:1050B0003093E5020E940E2F40E060E080E00E9405 -:1050C0001E0D89EA92E090935E0380935D0360E099 -:1050D0008AE00E94071681E00E940B1780EE90E0A4 -:1050E00090935A0180935901109332030E943E0D10 -:1050F0008BE591E090934D0480934C043E018DE349 -:10510000680E711C80916604FF24F39400E112E1A3 -:10511000853009F4F2C10E944223E82E81110E94D9 -:105120006208E5E4F3E0AFE4B3E010E000E0B02EA5 -:10513000DD9081918D1509F404C28D25C12CFF24C9 -:10514000F394982F9F2109F4F7C10E949C0E8823A5 -:1051500099F0CEA6BFA6DF2081E009F480E088ABFD -:105160000E94461B8160782F9AAB89AB4EA55FA544 -:1051700068A98AA90E94B022F801EB5BFC4F8081EC -:10518000F826F0828091EC02E82FEE0FEE0F90915E -:105190006601A92FA295AF70B0E090962C9130E0F7 -:1051A0009F7002C0359527959A95E2F721703327B5 -:1051B00090916501A92FA295AF70B0E090964C91A7 -:1051C00050E09F7002C0559547959A95E2F7CA0145 -:1051D0008170992740FF02C082E090E0822B8E2BE5 -:1051E0008093EC021091EB028F70E82FF0E0E65014 -:1051F000FE4F80819091EA02890F8093EA02F12CA0 -:1052000084306CF0E12FF0E0E851FD4F80818F5F3A -:10521000808360E0812F0E947625FF24F3948091A3 -:10522000EA028D3F6CF4E12FF0E0E851FD4F808100 -:105230008150808361E0812F0E947625FF24F394C2 -:105240008091EA02082E000C990B64E070E00E9445 -:10525000EE328093EA02F1100E943E0B80914904E5 -:10526000882351F180911C0390911D030E94371BEC -:10527000C29708F07DC12091760430917704211502 -:10528000310509F0A0C2809148048823A9F00E944A -:105290006208009144041091450420914604309125 -:1052A0004704601B710B820B930B6F3F7F4F8F4F37 -:1052B0009F4710F40E94950DE11001C0F1100E946B -:1052C000B00D809142038A3008F0B7C3809140034B -:1052D000909141030E94371B069708F4AEC304E681 -:1052E00010E025E030E04BE353E064E084E10E940D -:1052F0005930892B09F072C3109242032091320376 -:10530000222359F080913D0390913E0398278927ED -:10531000982790933E0380933D0386E0E4E2F3E018 -:10532000DE01919601900D928A95E1F786E0FE01EB -:10533000B196DE01119601900D928A95E1F786E013 -:10534000FE013196A5E3B3E001900D928A95E1F755 -:1053500090913F038091360397FD3AC38E7F8093EF -:1053600036038091330390913403009709F02AC3E8 -:1053700060913B0380913C0300913D0310913E03FB -:10538000222309F4F2C241E00E94F80C209130037C -:1053900030913103281B390B3093310320933003B4 -:1053A00041E0602F812F0E94F80C20912E03309154 -:1053B0002F03820F931F90932F0380932E036EE28F -:1053C00073E08AE393E00E94D90C60E373E089E321 -:1053D00093E00E94D90C109237031092380386E0B4 -:1053E000E5E3F3E0DE01119601900D928A95E1F775 -:1053F00086E0FE013196A4E2B3E001900D928A9519 -:10540000E1F73091260320912703909128038091A2 -:105410002903709120036091210340912203509150 -:105420002303F0912503E0911F03FE13DDC2332314 -:1054300011F07313D9C2222311F02613D5C2882389 -:1054400011F08513D1C2992319F081E04913CDC21F -:1054500080E0CBC286E992E061CD80916604843021 -:1054600009F43BC00E94950D40E060E080E00E949E -:105470001E0D80E00E9456168091E702811109C03E -:10548000F092E7028091710481708093E6020E949D -:10549000E20F10925004A8E1B0E0E0E40FB6F894F7 -:1054A000A895A09360000FBEE093600083B7817F52 -:1054B000846083BF83B7816083BF7894889583B706 -:1054C0008E7F83BF0FB6F894A895809160008861A5 -:1054D00080936000109260000FBE80916504882365 -:1054E00061F00E944223EFE4F3E08191811175C4E1 -:1054F00029E533E02E173F07C1F780916604853018 -:1055000009F4ABCF109259040E94F70F0E94BF0E0E -:105510000E9456161092E7028091E602882349F015 -:105520008091710481608093710460E086950E948F -:1055300007160E943E0DEFCDC394FF0C37E0C31257 -:1055400000CE0F5F1F4F0A30110509F0F0CD8FEF2D -:105550008BAB8CAB1DAA0E94461B8160782F9FAB42 -:105560008EAB4BA95CA96DA98FA90E94B0220ACE6F -:105570000E94461B90931D0380931C0360E080E013 -:105580000E949A080E94BF0E8093F9020E949C0E0E -:10559000882331F14091F5025091F6026091F702B3 -:1055A0007091F8022FB7F8948091510490915204B1 -:1055B000A0915304B09154042FBF841B950BA60BEC -:1055C000B70B81339547A105B10540F00E94950DB9 -:1055D00080914904882309F456CE4DCE0E94B00D27 -:1055E0000E949C0E882309F4D5C061E080E00E94EF -:1055F0009A0860E08CE791E00E94881362E080E006 -:105600000E949A08809170040E94890C823009F4EB -:105610009BC008F090C0882309F496C0813009F43B -:1056200099C065E080E00E949A0860E08AE991E014 -:105630000E94881366E080E00E949A086091F90257 -:10564000669561708FE991E00E94881367E080E0C1 -:105650000E949A086091F9026095617084EA91E075 -:105660000E94881368E080E00E949A086091F90225 -:1056700062FB662760F988EA91E00E9488137DA6A4 -:105680006CA64091F1025091F2026091F302709188 -:10569000F4022FB7F8948091510490915204A09194 -:1056A0005304B09154042FBF841B950BA60BB70B6A -:1056B0008D329140A105B10508F48ACF0E9462089D -:1056C0006093F1027093F2028093F3029093F402DC -:1056D0008091F002811104C080916701811142C064 -:1056E0006DE080E00E949A0860E08DEA91E00E94FF -:1056F00088136AE080E00E949A0881E08093670145 -:105700008091EF0290E00196817099278093EF02DB -:1057100021E030E0281B390B40E6429FC001439F47 -:10572000900D11242091EE02222351F1855C9B4FB4 -:105730000E9492064DCF833089F0843009F071CFFA -:1057400060E08EE891E003C060E082E891E00E94B2 -:10575000881367CF60E088E891E0F9CF60E084E9E2 -:1057600091E0F5CF6AE080E00E949A0860E08DEA5F -:1057700091E00E9488136BE080E00E949A08C0CFFD -:105780002091ED02222319F085589C4FD1CF8554EA -:105790009D4FCECF64E080E00E949A0860E083EBEA -:1057A00091E00E94881365E080E00E949A0860E022 -:1057B00089EB91E00E94881369E080E00E949A08DA -:1057C0008BEF94E0B5CF80911B0361E070E0811115 -:1057D0005ACD082F10E02B01082E02C0440C551C96 -:1057E0000A94E2F7A90144215521452B09F448C048 -:1057F00090911A0390FD46C08295880F8076809321 -:105800006A019801369527953695279520936D0165 -:10581000815E80936B0110926E0124E630E047E0D8 -:1058200050E068E671E088E70E940530892B09F0B6 -:105830002ACDA80175E0440F551F7A95E1F78091B4 -:105840001A0380FD2DC048585B4F04E610E020E2AB -:1058500030E060E488E70E942C30892B09F013CDFA -:105860000E94B00DC20180959095409076045090B2 -:10587000770448225922509277044092760403CD4F -:105880008F5FA7CF880F880F880F80936A011092CF -:105890006D01895F80936B0183E080936E01BDCFC2 -:1058A000EAEFF2E080E2DF011D928A95E9F7EEE08F -:1058B000F2E0F9AFE8AF0AE012E099249394A8ADC2 -:1058C000B9AD2D91B9AFA8AFF80121908F01240E89 -:1058D000352E311CC10188589B4F1C01E22FF0E08E -:1058E000E650FD4F30E020E067E0A62EA21AB92C6A -:1058F000022E01C0BB0C0A94EAF7610190E0D601C8 -:105900008D916D018B216A2D691B6770862E062E85 -:10591000000C770BB82F01C0BB0F8A94EAF78B2ECF -:105920007195619571096770772701C086956A95B1 -:10593000EAF7882A8081882A80829F5F9830F9F66A -:105940002F5F3F4F31962830310571F6E2E1F2E0EA -:1059500028AD39ADE217F30709F0B1CF04E610E046 -:1059600020E230E04AEF52E074CF45E00E94F80CAC -:1059700020912C0330912D03820F931F90932D03C0 -:1059800080932C0345E0602F812F0E94F80C20911A -:105990002A0330912B03281B390B30932B032093C0 -:1059A0002A036AE273E087E393E00E94D90C6CE279 -:1059B00073E088E393E00E94D90C10923A031092AE -:1059C00039030DCD0197909334038093330307CDB2 -:1059D00081608093360384E190E0F5CF80914203AB -:1059E0008F5F80934203FBCC81E080FF0FC0E0918A -:1059F0004C04F0914D04309749F082E080932403E9 -:105A00000480F581E02D84E293E00995109226034D -:105A100010922703109228031092290386E0E4E2F3 -:105A2000F3E0AEE1B3E001900D928A95E1F70E94B8 -:105A3000461B90934103809340030E94BF0E9091B8 -:105A40004303891731F00E94BF0E809343030E94E5 -:105A5000561680916604843009F054CB83E080931D -:105A6000E9008091E80082FF4DCB8091E80090E052 -:105A700085FF0BC00E94F40630E2E32EF12C8E016C -:105A80000F5F1F4F8823E1F091E08091E8008B7752 -:105A90008093E800992309F435CBE981E150E331A3 -:105AA00008F071C0F0E0E054FB4C0C94023380919C -:105AB000F100D8018D938D01B1E0EB1AF10821F3CB -:105AC0008091E80085FDF3CF8091E8008B7780938B -:105AD000E8000E94F406882399F3D6CF1A8289E061 -:105AE0008B8311C08A81823009F48FC1833091F198 -:105AF000813009F048C00E9462080E9408336B831D -:105B00007C838D839E8380916604843009F0FACA79 -:105B10001091E9001F709091EC00892F817090FD29 -:105B200080E8182B82E08093E9008091E80080FFF4 -:105B30000DC050E040E060E270E0CE0101960E94AE -:105B400025078091E8008E778093E8001F701093FE -:105B5000E900D8CADE011396EFE4F3E081918D935A -:105B600023E0E935F207D1F7CECF8A81823059F4AC -:105B70006B817C818D819E810E94083386E290E05A -:105B80000E944233C0CF8FEF8983BDCF4C816B81A0 -:105B90008A810E9430149827892798279E838D83B5 -:105BA000B2CF0D811E811027012710278A81EB803B -:105BB0003EE0E39E700111249CE8899FE00CF11CFB -:105BC00011248C8190E0880F991FE80EF91E612F37 -:105BD000C70187960E944233602FC7018896D0CFB5 -:105BE0000E94B41390CF8A818138C1F060F480386C -:105BF00009F089CF20E04B81609173048091720499 -:105C00000E94F01480CF8238E9F0833809F07BCF0E -:105C100020E0409174046C818B81F2CF60E08B8135 -:105C20000E9407168B81811103C00E94E20F6BCF87 -:105C30008091710481608093710460E086950E9478 -:105C4000071661CF8B81809375045DCF8A8181387F -:105C500099F030F4803809F056CF8091740440CF29 -:105C6000823891F0833809F04ECF809172048B8393 -:105C7000809173048C8347CF8091710480FF02C0B0 -:105C800086952ECF80E02CCF8091750429CF60912E -:105C900071047091720480917304909174040E9455 -:105CA000DE1431CF80E18A832ECF81E08A838DE1BB -:105CB00017CFCA80DB80DC24CD24DC248E010F5F6B -:105CC0001F4FEC80E00EF12EF11CC6018D519D4F4F -:105CD0000E151F0509F417CFADE1CA16A1E0DA06CB -:105CE00050F40E942E33F8018483BFEFCB1ADB0AF5 -:105CF0000F5F1F4FEACFD80114961C92F6CF0A818E -:105D00001B81102701271027FE0131966F01EC80BF -:105D1000E00EF12EF11CC8018D519D4FE016F106E9 -:105D200009F4F1CE0D31F1E01F0728F4D6011496E5 -:105D30006C910E944233BFEFCB1ADB0A0F5F1F4FFB -:105D4000EACF0E94A413DFCE85E0ADCFCA80DB800E -:105D5000DC24CD24DC248E010F5F1F4FEC80E00E8D -:105D6000F12EF11CC6018796E016F10609F4CBCEA0 -:105D7000ECEBCE16E2E0DE0658F40E942E33D8019A -:105D800014968C93FFEFCF1ADF0A0F5F1F4FEACFF5 -:105D9000F8011482F7CF0A811B81102701271027F1 -:105DA0009E012F5F3F4F6901EC80E00EF12EF11C48 -:105DB000C8018796E016F10609F4A5CE0C3B32E047 -:105DC000130728F4D60114966C910E944233BFEF5A -:105DD000CB1ADB0A0F5F1F4FEBCF09BD19BD09B40A -:105DE00000FEFDCF8091D8008F7D8093D8008091F8 -:105DF000E00082608093E0008091E00081FDFCCFB4 -:105E0000109259040E94F70F78CB86E290E00E942E -:105E10002E331B821C821D828E8375CE1092B90098 -:105E20008CE08093B80008959F92AF92BF92CF927A -:105E3000DF92EF92FF920F931F93CF93DF93B82ED1 -:105E4000EB010E94461B6C01EE24E394F12CC4315B -:105E5000D10560F025E0E22EF12CCF3FDC0731F0D8 -:105E6000CE0164E170E00E94CE327B0184EAA82E6C -:105E700094E8992E1092BC00A092BC000E94461B90 -:105E80008C018091BC0087FF0DC08091B900887F94 -:105E9000883039F18091B900887F803111F10FEF9E -:105EA0001FEF09C00E94461B801B910B8E159F059A -:105EB00040F30EEF1FEFCF3FDC07E1F2C6010E9477 -:105EC000371B8C179D07B0F2C801DF91CF911F914E -:105ED0000F91FF90EF90DF90CF90BF90AF909F9089 -:105EE0000895B092BB009092BC000E94461B8C01AA -:105EF0008091BC0087FF0AC08091B900887F8831FB -:105F000011F0803461F610E000E0DECF0E94461B05 -:105F1000801B910B8E159F0558F3CBCF0F931F93CA -:105F2000CF93DF93EB018093BB0084E88093BC00A8 -:105F30000E94461B8C018091BC0087FF11C02091FC -:105F4000B900287F81E090E0283211F490E080E0F1 -:105F5000919581959109DF91CF911F910F910895AE -:105F6000CF3FDC0741F30E94461B801B910B8C172F -:105F70009D0708F38EEF9FEFEECF0F931F93CF9304 -:105F8000DF93EC0184EC8093BC000E94461B8C01E3 -:105F90008091BC0087FF08C08091BB0090E0DF913A -:105FA000CF911F910F910895CF3FDC0789F30E9495 -:105FB000461B801B910B8C179D0750F38EEF9FEFB4 -:105FC000EECF0F931F93CF93DF93EC0184E8809380 -:105FD000BC000E94461B8C018091BC0087FF08C05A -:105FE0008091BB0090E0DF91CF911F910F910895B8 -:105FF000CF3FDC0789F30E94461B801B910B8C1757 -:106000009D0750F38EEF9FEFEECFCF92DF92EF928E -:10601000FF920F931F93CF93DF936B018A01790156 -:10602000B9010E94142FE6010C0D1D1DC017D107E8 -:1060300061F424E92093BC00DF91CF911F910F916F -:10604000FF90EF90DF90CF90089597FDF2CFB701CA -:1060500089910E948E2FEACFCF92DF92EF92FF922A -:106060000F931F93CF93DF93C62F6A017901B80175 -:106070000E94142F97FD0CC0B8018C2F0E948E2F08 -:10608000E601EC0CFD1CCE15DF0511F097FF0CC0EE -:1060900024E92093BC00DF91CF911F910F91FF90D5 -:1060A000EF90DF90CF900895B80189910E948E2FD4 -:1060B000EACFCF92DF92EF92FF920F931F93CF938D -:1060C000DF93F82EE62EEA016901B8010E94142F31 -:1060D00097FD15C0B8018E2D0E948E2F97FD0FC021 -:1060E000B8018F2D81600E94142FF12CE12C21E04A -:1060F000C21AD108EC14FD0400F597FF11C024E981 -:106100002093BC001816190614F490E080E0DF918B -:10611000CF911F910F91FF90EF90DF90CF90089556 -:10612000C8010E94BD2F97FD04C0FE01EE0DFF1DAA -:1061300080832FEFE21AF20ADDCF97FDE0CFC8018E -:106140000E94E12F97FDDBCFCC0DDD1D8883D7CFDB -:1061500084E98093BC0008958EE14A9B02C081507F -:10616000E1F74A9BFECF08955A9880E28A95F1F7AD -:106170005A9A0895FC013BE03A95F1F798E020E047 -:1061800080E031E040E14A95F1F7880F4A9B02C078 -:106190008160232742E04A95F1F7000040E14A95EB -:1061A000F1F7915079F790E19A95F1F799B132E0D2 -:1061B0003A95F1F7000040E14A95F1F792FB9927F3 -:1061C00090F992272081920F90830895EF92FF9289 -:1061D0000F931F93CF93DF930F92CDB7DEB7198242 -:1061E0008C017C01E60EF11C0E151F0561F481E0A7 -:1061F0009981911180E00F90DF91CF911F910F91C4 -:10620000FF90EF9008950E94AC30CE0101960E945D -:10621000BA30F80181938F01E7CF529A5A9A0895C4 -:1062200052985A9AEA9AE9E6F0E080818F7C80835E -:1062300008956150770B91E001C0990F6A95EAF7D4 -:1062400020E031E0911108C0222391F05A9A80E2B7 -:106250008A95F1F75A980895492F482339F05A9AA8 -:10626000232740E24A95F1F79695ECCF5A98F9CF5B -:106270005A98EDCFFF920F931F93CF93DF93EC01CA -:106280008C01060F111DC017D10731F4DF91CF919A -:106290001F910F91FF900895F9900E94B43068E02B -:1062A0008F2D0E941931EFCF1F920F920FB60F92D0 -:1062B0001124EF92FF920F931F932F933F934F93CD -:1062C0005F936F937F938F939F93AF93BF93EF935E -:1062D000FF93CF93DF930F92CDB7DEB719820E9461 -:1062E000AC30CE0101960E94BA30A82FA695A69593 -:1062F000A695282F229525709A2F9570290F922FF9 -:10630000937026952695920F982797708981982BE0 -:1063100009F075C0A83008F072C080E18A95F1F7E5 -:106320005A9A529AB2E0BA95F1F700C05A98EA2EFA -:10633000F12CEAE0AE9FD0011124AF5FBE4F18965A -:10634000ED91FC9119973097B1F06091F80170913F -:10635000F90116962D913C911797260F371F13962A -:106360008D919C911497680F791F15964C911597F4 -:1063700012968C9109958AE08E9DF0018F9DF00D0B -:106380001124EF5FFE4F6581662351F02091F801E3 -:106390003091F90186819781820F931F0E943A31D3 -:1063A0000E94B430F0E1FA95F1F75A9852985A9A4F -:1063B00080E18A95F1F78AE08E9D80018F9D100D16 -:1063C00011240F5F1E4FD80112966C91129766230D -:1063D00071F12091F8013091F90113968D919C9102 -:1063E000820F931F0E94E630D801ED91FC91882323 -:1063F00011F088E001C082E080830E94AC300F90F1 -:10640000DF91CF91FF91EF91BF91AF919F918F91CC -:106410007F916F915F914F913F912F911F910F91BC -:10642000FF90EF900F900FBE0F901F901895ED9179 -:10643000FC91DFCF0F931F93CF93DF93EC0108976D -:106440000CF0A9C08AE08C9FF0018D9FF00D112403 -:10645000EF5FFE4F80819181892B09F49CC0F894F5 -:10646000529A5A9885E08A95F1F700008C2F86950C -:1064700085709C2F9570890F982F937086958695BF -:10648000890F8E0193E0000F111F9A95E1F7082BF9 -:106490000E94B43000C068E0802F0E941931A0E152 -:1064A000AA95F1F752985A9A4A9B27C087E090E044 -:1064B0004A9925C08AE08C9F80018D9F100D112480 -:1064C0000F5F1E4FF80165816623A1F12091F8014D -:1064D0003091F90186819781820F931F0E94E630E7 -:1064E000811128C0529A5A9AD801ED91FC9182E00C -:1064F0008083789482E090E016C000C0D5CF0197E9 -:10650000B9F4529A5A9A8AE08C9FF0018D9FF00D4F -:106510001124EF5FFE4F0190F081E02D81E0808338 -:10652000789481E090E0DF91CF911F910F910895D1 -:1065300000C0BECF0E94AC30B0E2BA95F1F75A98D5 -:10654000529AE0E1EA95F1F78AE08C9FF0018D9F85 -:10655000F00D1124EF5FFE4F6281662351F0209110 -:10656000F8013091F90183819481820F931F0E9479 -:106570003A310E94B4308AE08C9FF0018D9FF00D7B -:106580001124EF5FFE4F0190F081E02D108278948E -:1065900090E080E0C8CF84E090E0C5CFAA1BBB1B91 -:1065A00051E107C0AA1FBB1FA617B70710F0A61B13 -:1065B000B70B881F991F5A95A9F780959095BC0134 -:1065C000CD010895991B79E004C0991F961708F032 -:1065D000961B881F7A95C9F78095089597FB072E1B -:1065E00016F4009407D077FD09D00E94CE3207FC44 -:1065F00005D03EF4909581959F4F089570956195D3 -:106600007F4F0895EE0FFF1F0590F491E02D099440 -:106610006927962769277827872778270895FB0118 -:10662000DC0102C005900D9241505040D8F708950A -:10663000FB01DC0104C08D910190801921F44150CF -:106640005040C8F7881B990B0895FB01DC0102C07C -:1066500001900D9241505040D8F70895F999FECF1E -:1066600092BD81BDF89A992780B50895A6E1B0E062 -:1066700044E050E00C946833A8E1B0E042E050E020 -:106680000C946833262FF999FECF92BD81BDF89AFC -:10669000019700B4021639F01FBA20BD0FB6F89466 -:1066A000FA9AF99A0FBE08950396272F0E94433352 -:1066B0000E944233252F0E944333242F0C944333EE -:1066C0000196272F0E9443330C944233DC01CB0107 -:1066D000FC01F999FECF06C0F2BDE1BDF89A3196F2 -:1066E00000B40D9241505040B8F708950E94B8335D -:1066F00008F481E00895E89409C097FB3EF4909572 -:106700008095709561957F4F8F4F9F4F9923A9F08A -:10671000F92F96E9BB279395F69587957795679519 -:10672000B795F111F8CFFAF4BB0F11F460FF1BC05D -:106730006F5F7F4F8F4F9F4F16C0882311F096E9F0 -:1067400011C0772321F09EE8872F762F05C066239E -:1067500071F096E8862F70E060E02AF09A95660F57 -:10676000771F881FDAF7880F9695879597F9089510 -:10677000990F0008550FAA0BE0E8FEEF1616170652 -:10678000E807F907C0F012161306E407F50798F0BA -:10679000621B730B840B950B39F40A2661F0232BD3 -:1067A000242B252B21F408950A2609F4A140A6954F -:1067B0008FEF811D811D08950E94EF330C9460348A -:1067C0000E94523438F00E94593420F0952311F081 -:1067D0000C9449340C944F3411240C9494340E943A -:1067E000713470F3959FC1F3950F50E0551F629F70 -:1067F000F001729FBB27F00DB11D639FAA27F00D1A -:10680000B11DAA1F649F6627B00DA11D661F829F40 -:106810002227B00DA11D621F739FB00DA11D621F25 -:10682000839FA00D611D221F749F3327A00D611D42 -:10683000231F849F600D211D822F762F6A2F112424 -:106840009F5750409AF0F1F088234AF0EE0FFF1F57 -:10685000BB1F661F771F881F91505040A9F79E3FAE -:10686000510580F00C9449340C9494345F3FE4F368 -:10687000983ED4F3869577956795B795F795E79504 -:106880009F5FC1F7FE2B880F911D9695879597F90D -:10689000089597F99F6780E870E060E008959FEFA2 -:1068A00080EC089500240A941616170618060906A7 -:1068B000089500240A941216130614060506089576 -:1068C000092E0394000C11F4882352F0BB0F40F4FE -:1068D000BF2B11F460FF04C06F5F7F4F8F4F9F4F3E -:1068E000089557FD9058440F551F59F05F3F71F0C0 -:1068F0004795880F97FB991F61F09F3F79F0879527 -:106900000895121613061406551FF2CF4695F1DFAF -:1069100008C0161617061806991FF1CF869571053F -:10692000610508940895E894BB2766277727CB0173 -:1069300097F90895F894FFCFE7100F1162110F1126 -:10694000621142117A11621177128412B014B014DC -:10695000B914B914BB14B914B914B914B014B014DF -:10696000C014B914B914C014131F131F6C1F6C1F6B -:106970009E1F461F461F461FB81F29203920392059 -:106980006E2D722DB52DC62DD12DF02DF32D262E69 -:10699000472EC32DC32D522E552E592E7F2EA12E9C -:0669A000A42EA62ECB2E52 -:1069A600013802000000010000000038020000006B -:1069B6000501000000380200000001060000003852 -:1069C6000200000001070000003802040800000071 -:1069D6000000003802090C00000000000038020127 -:1069E6001500000000000036323331F7F66766976F -:1069F600C6343500000000000180005F082B0E0A37 -:106A06000E060E020EF4F5010021007F220003009F -:106A16004A004A4A01F6F731333236674C41594546 -:106A2600520042617365200047616D652000526126 -:106A3600697365004C6F776572004C4F434B00439A -:106A4600617073004E756D005363726C00202020D8 -:106A5600202000534F4C415200544D505354008156 -:106A66008283E200E900EA00B500B600B700CD0077 -:106A76008301CC008A01920194012102230224029F -:106A86002502260227022A02B300B4006F00700016 -:106A96000603060806010606AF0200FF0100010014 -:106AA60000FFFF0000010001FF0000081018181089 -:106AB6000800000102020202020202020202402251 -:0E6AC6007B99017701FC00000C190C390C00C3 +:1011500090E080E082589B4F90937F0680937E06BC +:101160000895883E9105C8F4803E910548F48B327D +:10117000910540F48832910518F404974A9758F481 +:1011800080E008958C32910530F089339105C0F3E9 +:1011900084369105A9F381E011C0811522E59207FB +:1011A00070F48115E1E59E0758F790548115904140 +:1011B00090F7FB019581907F81E011F308958115EF +:1011C00028E5920740F38115E9E59E0728F090563F +:1011D0008115904270F3DFCFFB019581907F81E014 +:1011E000903271F6EBCFFC01680F791F8FEF91E31E +:1011F0002191822728E030E087FF09C0880F8927E6 +:1012000021503109C9F7E617F70791F70895880FBC +:10121000F7CFFA01811101C0FB0109948091770495 +:10122000982F9E7F61F48170826080937704809113 +:101230007A04813A18F080EA80937A04089588311C +:10124000B0F381708661F1CFAF92BF92DF92EF92DF +:10125000FF920F931F93CF93DF93082F162FE9016F +:10126000E42FF0E0E55AFA4F611110C0E4915E2FCF +:101270004E2F4983E8835A83DF91CF911F910F91BD +:10128000FF90EF90DF90BF90AF900895E62EF12C85 +:101290004491D42EE42FF0E026E0829FC001112477 +:1012A0002FEF30E0B9010E941535802F90E0880FB4 +:1012B000991F55E5569FD001579FB00D11248A1BE9 +:1012C0009B0B982F990F890F5901AE18BF08AE9E3E +:1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 +:1012E00080011124012F11275901A01AB10AAE9EC5 +:1012F0008001AF9E100DBE9E100D11245901A81A39 +:10130000B108AE9CC001AF9C900DBE9C900D112405 +:10131000892F9927281B390B2E9FC0012F9F900DD5 +:101320003E9F900D1124E92F62307105A1F050F419 +:101330006115710509F49DCF6130710581F0EB2FC6 +:10134000512F97CF6430710569F080F066307105D8 +:1013500009F48FCFF4CFE42F4B2F592F8ACFE42FEE +:10136000412F87CFEB2F542F492F83CF4B2F5D2D4C +:10137000E12F7FCF80E0089578940895F894E82FC6 +:10138000E295EF70F0E031A1282F2F7081E090E01E +:1013900001C0880F2A95EAF7982F9095932391A37F +:1013A00092A1892B82A30C94BC099091D60292FF42 +:1013B00006C0282F28712830F9F4877F846093FFB6 +:1013C00006C0282F28712831F1F4877E846120918E +:1013D000D70220FF06C0382F38713830D9F4877F04 +:1013E000816021FF06C0282F28712831D1F4877E23 +:1013F000816194FD877E0895282F24712430F9F6A9 +:101400008B7F8860DCCF282F2471243101F78B7EFD +:101410008861DDCF382F3171313019F78E7F8860C8 +:10142000E0CF282F2171213121F78E7E8861E1CF15 +:10143000CF93DF93EC018238910581F1B0F58133D0 +:10144000910509F491C020F58932910509F485C010 +:101450008A9709F490C0C11521E5D20708F0AAC007 +:10146000C11530E5D30708F0F2C0CF3BD10508F035 +:1014700089C0C83AD10508F0DFC0C53AD10508F0E7 +:10148000D3C0C430D105F8F4C130D105E1F040C07B +:101490008533910509F45AC0C997E9F68091D602BF +:1014A000837089F0C0EED0E00EC0833E910599F1C3 +:1014B00070F4803E910501F1823E910561F68091C4 +:1014C000D60282FD21C0CE01DF91CF910895863EE4 +:1014D000910561F1873E910571F1843E910509F016 +:1014E000BACF8091D70281FFEECF8091D602C7EEAE +:1014F000D0E084FD0DC0E7CF8091D60280FDF7C01B +:101500009091D70290FFDFCFC3EED0E084FFDBCF16 +:10151000D0E0C0E0D8CF8091D60282FDEBC09091A0 +:10152000D70290FDBFCF84FFCECFF2CF8091D602FD +:1015300083FDDDCFC8CF8091D60283FDDEC09091C0 +:10154000D70291FFF0CFC4EED0E0BDCF8091D6029C +:1015500085FFB9CFC9E2D0E0B6CF8091D60285FF32 +:10156000B2CFC5E3D0E0AFCF8091D60286FFABCF3C +:10157000CAE2D0E0A8CF8091D60286FFA4CFC1E313 +:10158000D0E0A1CFC11540E2D40760F4C11581E0DD +:10159000D80708F098CFCE01815E9109079708F42B +:1015A00092CFB6CFC11590E4D90708F4B1CFDF7060 +:1015B000D06A89CFC11524E5D20778F4C11533E587 +:1015C000D30708F072C0C11542E5D40708F05CC02B +:1015D000DC2FCC27C16FD06A76CFC1158AE5D8073A +:1015E00078F4C11599E5D90708F073C0C11528E54D +:1015F000D20708F48DCFDC2FCC27C06FD06A63CF21 +:10160000CE0190568115904208F082CF8D2F8F71B8 +:101610000E94D50990E0982F882788279F719C0108 +:101620002C2BE901D0624FCFC55AD0E0C154DE4F18 +:10163000C881D0E0D06447CFC85AD0E0CC0FDD1FBE +:10164000CE53DE4F0990D881C02DD4643CCFCE015B +:1016500064E0969587956A95E1F783702C2F26951F +:101660002695237040E2249F90011124382B8C2F63 +:101670008370C1E0D0E002C0CC0FDD1F8A95E2F795 +:10168000C22BD32BDC681FCFCE018370992721E0BA +:1016900030E002C0220F331F8A95E2F7C695C69547 +:1016A00080E2C89FE0011124EBCFCE01837099271F +:1016B00021E030E002C0220F331F8A95E2F7C69581 +:1016C000C69590E2C99FE0011124C22BD32BDA68A2 +:1016D000FACE8C2F8F700E94D50934E0D695C7952D +:1016E0003A95E1F7CF709C2FEC01D069ECCEC9E3BD +:1016F000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE5A +:101700000C94620880915F0490919102892B9091D2 +:101710009002892B80933002E0915204F09153049F +:10172000309731F00280F381E02D80E392E009945C +:10173000089580918F0290915E02981301C00895E0 +:101740008F5F8770FACF27E0929F800D1124982F2A +:10175000977086958695869523E0829FF0011124E7 +:10176000E35CFD4F50E040E080E0219130E0092E45 +:1017700002C0369527950A94E2F721703327042E8C +:1017800001C0220F0A94EAF7822B4F5F5F4F43306C +:10179000510559F7089527E0929F800D1124982F45 +:1017A000977041E001C0440F9A95EAF786958695B7 +:1017B000869593E0899FF0011124E35CFD4F90E052 +:1017C00080E070E05191DF0111979B01082E02C06B +:1017D000369527950A94E2F7217021952527242331 +:1017E00025272C9301968330910561F7089590E0A9 +:1017F00080E00E94840890E080E00E946E081092D1 +:101800009102109290020C94820B809392020C949D +:10181000F70B882341F0809590915F048923809392 +:101820005F040C94820B0895882339F090915F0433 +:10183000982B90935F040C94820B08958823B1F148 +:101840009CEF980F913A70F4E2E3F2E091918913E2 +:1018500003C0DF0111971C9242E0E833F407B1F7AF +:101860000C94820B90E2980F983088F4877021E0F6 +:1018700030E0A90102C0440F551F8A95E2F7CA0162 +:10188000809590915F04892380935F04E9CF9BE565 +:10189000980F933020F490E080E00C948408885AEC +:1018A000873120F490E080E00C946E0808950F9347 +:1018B0001F93CF93C82F882309F469C08CEF8C0F36 +:1018C000813AB0F502E312E088E392E0F801219159 +:1018D000C21701F122E0E833F207C9F7EFEF80E029 +:1018E000D8019D918D01C91781F0EF3F19F4911135 +:1018F00001C0E82F8F5F863099F7EF3F31F00E2E51 +:10190000000CFF0BE05DFD4FC283CF911F910F9143 +:101910000C94820BE2E3F2E02191C21303C0DF01D9 +:1019200011971C928E179F07B9F70E94820BD6CF92 +:1019300080E28C0F883068F4C77021E030E001C08D +:10194000220FCA95EAF780915F04822B80935F048F +:10195000DCCFEBE5EC0FE33050F4F0E0E154FE4F68 +:10196000808190E0CF911F910F910C948408C85A08 +:10197000C73168F4EC2FF0E0EE0FFF1FEE53FE4F7F +:1019800080819181CF911F910F910C946E08CF911E +:101990001F910F910895982F92959F7011F0892FA4 +:1019A00094E0282F2695269511F09E5F822F86952C +:1019B00009F09F5F892F0895DC01FB0180819181EF +:1019C000803891054CF08FE78C93808191818F57FF +:1019D000910991838083089581382FEF92073CF419 +:1019E00081E88C938081918181589F4FF2CF8C93B5 +:1019F000118210820895681708F5861B682F21E070 +:101A0000469FA0011124649FF001659FF00D1124F1 +:101A10004091590150915A01E49FC001E59F900DFA +:101A2000F49F900D1124880F892F881F990B919591 +:101A3000222319F09195819591090895681B20E062 +:101A4000DFCF0F931F93CF93DF9300D000D0CDB79C +:101A5000DEB789836A834B831C8204E610E024E0AE +:101A600030E0AE014F5F5F4F60E084E10E9473326F +:101A70000F900F900F900F90DF91CF911F910F91CA +:101A8000089580913203882329F047E669E98BE2C3 +:101A90000C94210D6091590170915A0190E080E001 +:101AA0000E94C23520E030E040E05CE30E94233633 +:101AB00020E030E040E85FE30E94BD35882321F05C +:101AC00047EC6BE180E0E4CF41E265EA89EDE0CFED +:101AD000CF92DF92EF92FF920F931F93CF93DF93FA +:101AE0006C017B0164E670E088E70E945B31EC01E9 +:101AF00097FD12C010E000E0F601E00FF11F8491A5 +:101B000064E670E00E94D531EC01892B29F40F5F67 +:101B10001F4F0E151F0581F70E94EF32CE01DF9196 +:101B2000CF911F910F91FF90EF90DF90CF9008958C +:101B300080914E0490914F04911103C091E0892748 +:101B40000895882369F062E070E08CEE9BE00E94CB +:101B5000680D892B19F080914E04089510924E045F +:101B600080914E04EBCFCF93C0914E0480914F04EF +:101B70008823D1F00E9462086058774C8E4F9F4FA7 +:101B800060934A0470934B0480934C0490934D04EB +:101B9000C11108C062E070E08AEE9BE00E94680D0F +:101BA000892B29F0C0914E048C2FCF91089581E0AC +:101BB00080934E04F7CF90916C04943029F5809374 +:101BC0005B0470935D0460935C049093E9008FEF75 +:101BD0009091E800815095FD06C095ED9A95F1F73A +:101BE00000008111F5CF8091E80085FF0DC050E025 +:101BF00040E063E070E08BE594E00E94250780916F +:101C0000E8008E778093E8000895BC0184E00C948E +:101C1000DB0DBC0183E00C94DB0D9C0184E0809320 +:101C2000E9009FEF8091E800915085FD06C085EDA9 +:101C30008A95F1F700009111F5CF8091E80085FFBA +:101C40000CC050E040E066E070E0C9010E9425074A +:101C50008091E8008E778093E8000895CF93DF931A +:101C6000EC0181E08093E9008FEF9091E8008150D2 +:101C700095FD06C095ED9A95F1F700008111F5CF1D +:101C80008091E80085FF14C050E040E068E070E01B +:101C9000CE010E9425078091E8008E778093E800AE +:101CA00088E0FE01A2E6B4E001900D928A95E1F78A +:101CB000DF91CF9108959F92AF92BF92CF92DF9222 +:101CC000EF92FF920F931F93CF93DF937C015B0101 +:101CD0006A018091D10201E010E08A3010F40AE03C +:101CE00010E0C1E0D0E0F894B501C701F601099514 +:101CF000982E0E94BC09911004C021960C171D0754 +:101D00006CF4892DDF91CF911F910F91FF90EF908F +:101D1000DF90CF90BF90AF909F900895CC9F90019F +:101D2000CD9F300D300D112490E080E045E34A95C1 +:101D3000F1F70000019682179307C1F7D4CF809185 +:101D4000A102811110C08091D80080618093D800D9 +:101D50008AE18A95F1F700C08091D90080FF0AC01E +:101D600081E08093A10281E09091A102913009F07D +:101D700080E0089582E08093A1020E94D50610922F +:101D80006C04F1CF0E949F0E882351F0E091520421 +:101D9000F0915304309721F00190F081E02D0994E7 +:101DA00080E008951F93CF93DF93182FEB010E94DB +:101DB000570C8FE99FE00197F1F700C000002197D1 +:101DC000C1F7812FDF91CF911F910C941E0C4F9280 +:101DD0005F926F927F928F929F92AF92BF92CF92BB +:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4 +:101DF000DEB7CE5DD1090FB6F894DEBF0FBECDBF02 +:101E0000509070019091770490FF5DC080905D03C9 +:101E100090905E038114910409F068C0E0E6F6E05A +:101E20009E012F5F3F4FBE0161527F4FC901A491B8 +:101E30004A2F50E0DA01AA0FBB1FA40FB51FA15A09 +:101E4000BC4FCD90DD90EC90D901CD92DD92ED921A +:101E50009D0131966A177B0751F720916F0143E08E +:101E6000249F800D911D1124539A2BB1277F3BB1E4 +:101E700038605FB7F894BC01549E600D711D112449 +:101E80008617970709F08EC05FBF8FE594E0019732 +:101E9000F1F700C00000C252DF4F0FB6F894DEBF6A +:101EA0000FBECDBFDF91CF911F910F91FF90EF90AB +:101EB000DF90CF90BF90AF909F908F907F906F906A +:101EC0005F904F900895809171012091720133E0ED +:101ED000839FF0011124E15AFC4F821708F096CF3E +:101EE0001182108212828F5F3396F7CF90FF96CFC8 +:101EF000D12CC12C66246394712C53E0452E809123 +:101F00005C0393010C2C01C0220F0A94EAF7822390 +:101F100009F43FC0F601EE0FFF1FE80DF91DE59033 +:101F2000F490E114F10409F479CF45E050E0B701F1 +:101F3000CE0101960E94563509810F3F51F18A81E9 +:101F4000800F9927991F8B34910514F08AE490E053 +:101F50005C01AA0CBB1C8A0D9B1DDC01A15ABC4F65 +:101F60005D01049D80011124015A1C4F0A151B05B7 +:101F700020F0B5E0EB0EF11CD8CF4D81413A08F0CE +:101F800040EA98016C818B810E9424090D5F1F4FEC +:101F9000EDCFEFEFCE1ADE0AF8E0CF16D10409F04C +:101FA000AECF3CCFFC014191CF01E8E03BB900004E +:101FB00000C047FF2BB9440F000000C000C000C0A4 +:101FC0002BB900C0EA9591F75BCFE7E7F4E0808199 +:101FD0008E7F8083E9E5F3E08281816082832FEF49 +:101FE00080E792E0215080409040E1F700C000007F +:101FF0000C94E70EE2E3F2E086E0DF011D928A95A1 +:10200000E9F70C94F70B1F93CF93DF93CDB7DEB7AF +:10201000AA970FB6F894DEBF0FBECDBF8EE694E050 +:102020002091F100DC012D93CD01B4E086379B07B0 +:10203000B9F780916F04833009F471C0B8F481302E +:1020400009F448C0823009F4B4C08091E80083FFED +:102050003CC180916E0490916F049A3008F035C1B4 +:10206000E92FF0E0ED51F94C0C9449358A3009F430 +:102070008FC08B3009F470C0893039F780916E04BD +:10208000813219F78091720490917304009711F0D6 +:102090000297D9F68091E800877F8093E8008091CD +:1020A000E80082FF37C09091F3008091F200029720 +:1020B00029F48091F1008B7F813021F48091F1002F +:1020C000809361048091E8008B778093E8000E9400 +:1020D0004F07BBCF80916E04813A09F0B6CF809153 +:1020E000E800877F8093E8008091720490917304E8 +:1020F000892B61F468E082E694E070E00E940108B8 +:102100008091E8008B778093E8009FCF60E090E0BB +:1021100080E0F3CF80916C048111C1CF96CF809184 +:102120006E04813A09F091CF80917204909173040A +:10213000892B09F08ACF8091E800877F8093E8009F +:102140008091E80080FFFCCF809174018093F100C2 +:102150008091E8008E77B9CF80916E04813209F0CA +:1021600074CF8091720490917304892B09F06DCF24 +:102170008091E800877F8093E8000E944F0780915C +:1021800070048093740110925F040E94FA0F5DCF77 +:1021900080916E04813209F058CF8091E800877FEA +:1021A0008093E8000E944F0780917104809360043F +:1021B0004CCF80916E04813A09F047CF8091E800BE +:1021C000877F8093E8008091E80080FFFCCF8091BA +:1021D0006004BCCF803899F0823809F076C08091D5 +:1021E00072048F70873008F070C08093E90080918E +:1021F000EB0085FB882780F91092E90006C08091EA +:102200006A0490916B04911182609091E800977F2D +:102210009093E8008093F1001092F1008091E80023 +:102220008E77B5C1882309F4A2C1823009F04DC070 +:10223000809170048111A6C1809172048F702FEF7C +:10224000280F263008F041C08093E9002091EB0070 +:1022500020FF98C1933031F48091EB00806280932D +:10226000EB0090C19091EB0090619093EB0021E026 +:1022700030E001C0220F8A95EAF72093EA0010921D +:10228000EA008091EB008860EACF81111EC01091B6 +:1022900070041F778091E3008078812B8093E300A6 +:1022A0008091E800877F8093E8000E944F0780912B +:1022B000E80080FFFCCF8091E30080688093E3001A +:1022C00082E0111183E080936C048091E80083FF29 +:1022D0000AC08091E800877F8093E8008091EB003E +:1022E00080628093EB00AA960FB6F894DEBF0FBE13 +:1022F000CDBFDF91CF911F9108958058823028F78C +:1023000020917004309171042C3DE3E03E07A1F56B +:1023100083E08A838AE289834FB7F894DE011396BB +:1023200020E03EE051E2E32FF0E050935700E491CB +:1023300020FF03C0E295EF703F5FEF708E2F90E0BB +:10234000EA30C0F0C7968D939D932F5F243159F7E3 +:102350004FBF8091E800877F8093E8006AE270E0D9 +:10236000CE0101960E9401088091E8008B7780934E +:10237000E800ABCFC096E7CF8091720490917304D0 +:10238000432F55274330510509F44AC078F54130B1 +:10239000510509F47AC08BE590E0EEEEFBE04230A7 +:1023A000510509F092CF2091E800277F2093E800A3 +:1023B00020917404309175048217930708F49C01EE +:1023C00040E02115310509F065C0411163C08091DD +:1023D000E80082FDC9CF80916C04882329F2853002 +:1023E00019F28091E80083FFF2CFBECF4132510550 +:1023F00009F43CC04232510509F067CF83309105A2 +:1024000008F063CFFC01EE0FFF1FEF5DFD4F019061 +:10241000F081E02D825E9D4FDC018C9190E01AC02E +:10242000332721303105D1F02115310561F02230FB +:10243000310509F04ACFEBE5FCE0E4918E2F90E006 +:10244000EBE5FCE007C0EDE8FCE0E4918E2F90E0C6 +:10245000EDE8FCE0009709F438CFA5CFEBE7FCE00E +:10246000E4918E2F90E0EBE7FCE0F4CF8330910510 +:1024700008F02BCF880F991FFC01E95DFD4F0190FB +:10248000F081E02D89E090E08ECF82E190E0E9E4F8 +:10249000FCE089CF80916C04882309F465CF8530F6 +:1024A00009F462CF8091E80083FD5ECF8091E8005F +:1024B00082FD8DCF8091E80080FF83CF9091F30063 +:1024C0008091F2002115310519F08830910550F006 +:1024D00041E0089709F040E08091E8008E77809312 +:1024E000E8006FCF44914093F100319621503109BB +:1024F0000196E8CF803809F0E8CE8091E800877F28 +:102500008093E80080916D048093F10087CE811163 +:10251000DCCE10917004123008F0D7CE8091E80024 +:10252000877F8093E80010936D040E944F0711236A +:1025300011F084E005C08091E30087FDFACF81E0CF +:1025400080936C0442E061EC81E00E946E0742E2FD +:1025500061EC84E00E946E0742E261EC82E00E943E +:102560006E0742E260EC83E00E946E07AECE80917F +:102570007004813009F0A9CE81E0933009F080E049 +:1025800080936B041092E9008091E800877F80932C +:10259000E8000E944F0799CE1F93CF93DF93162F29 +:1025A000C0917E06D0917F068A30D1F420914304F9 +:1025B000CE018E579440622F70E00E941535281B83 +:1025C000822F66E00E942935C82FC15020F4DF9188 +:1025D000CF911F91089560E080E20E94CC12F5CF68 +:1025E0008D30E9F4CE57D44020914304622F70E03F +:1025F000CE010E941535281B822F9E01280F311D08 +:102600002115324018F080E0D0E0C0E0C80FD11DA5 +:10261000C258DB4FD0937F06C0937E06D8CF96E09A +:10262000FE01A4E4B4E001900D929A95E1F7803E9A +:1026300090F186E0FE0111928A95E9F7C0917E063D +:10264000D0917F06111133C046E050E0BE0184E412 +:1026500094E00E945F359E012E573440892B91F5FE +:102660002A5F3F4F40914304642F70E0C9010E94EC +:102670001535481B463010F4240F311D211572E02A +:10268000370710F030E020E022583B4F30937F06B0 +:1026900020937E069CCFF6E08F9FB00111246655F3 +:1026A000794F46E050E0CE010E945635C7CF9E01DB +:1026B0002A5F3F4FFE012E173F0731F28081809540 +:1026C0008193F9CFC90145E0969587954A95E1F741 +:1026D00041E050E0BA0102C0660F771F8A95E2F729 +:1026E000CB0160917C0470917D04862B972BB901FE +:1026F0006B5F7F4FE5E076956795EA95E1F702C05D +:10270000440F551F6A95E2F7842B952B90937D0417 +:1027100080937C04A5CFFF920F931F93CF93DF93F9 +:10272000EC01F62EFC0101900020E9F78F01015029 +:102730001109C017D10730F0DF91CF911F910F9190 +:10274000FF9008956F2D89910E94CC12F2CFE1E4A1 +:10275000F4E08083618324E630E042E050E0BF0192 +:1027600084EB0C944C32CF93C82F60E08CE00E9435 +:10277000A7136C2F84E00E94A71361E08CE0CF9137 +:102780000C94A7131F93CF93DF93CDB7DEB7629757 +:102790000FB6F894DEBF0FBECDBF96E0E4E2F3E0E3 +:1027A000DE01179601900D929A95E1F796E0FE01F1 +:1027B0003796DE011D9601900D929A95E1F71885E6 +:1027C000882309F1162B84E00E94B3131E8786E04C +:1027D000FE013D96DE01119601900D928A95E1F77A +:1027E00086E0FE013196A4E2B3E001900D928A9555 +:1027F000E1F762960FB6F894DEBF0FBECDBFDF9152 +:10280000CF911F91089560951623E0CFCF93DF936A +:10281000C3EED2E060E0CE010E9489352196C11559 +:1028200084E0D807B9F7DF91CF9108956F927F9236 +:102830008F929F92AF92BF92CF92DF92EF92FF92D0 +:102840000F931F93CF93DF938AEAC82E86E0D82E8A +:1028500091ECE92EF12CE701CC58D10936011BC0CF +:10286000F50185909490692DC8010E948935682DE5 +:10287000C80101960E94893582E0A80EB11C0E5F46 +:102880001F4FC017D10761F78EE0680E711C2E969E +:10289000CE15DF0529F08E010E5011095301E0CF4E +:1028A0007E018CE8E80EF11C8CE8C80ED11C8DE787 +:1028B000E81683E0F80679F6DF91CF911F910F912A +:1028C000FF90EF90DF90CF90BF90AF909F908F9050 +:1028D0007F906F900895CF93C82F6FEF811161E2C1 +:1028E00083E290E00E9489356FEFC11161E184E2DB +:1028F00090E00E9489356FEFC11163E185E290E0BD +:10290000CF910C94893580E00E946B1460E086E2E0 +:1029100090E00E9489350E9416140E94061481E0FE +:102920000C946B140F931F93CF93DF93C42FD0E0BD +:10293000CC0FDD1F2EE0629FC00DD11D11243CE89D +:10294000839FC00DD11D1124CE0187960E9475353D +:10295000082F10E0102F0027CE0188960E947535B1 +:102960009801282BC901DF91CF911F910F910895F4 +:10297000462F853038F47A3028F4673018F4672F02 +:102980000C94921490E080E00895CF92DF92FF9231 +:102990000F931F93CF93DF936C0100917604809186 +:1029A0009202082BC7E0D0E010E0FC2EC8010C2EEC +:1029B00002C0959587950A94E2F780FD0CC0219797 +:1029C000A0F7F12C8F2DDF91CF911F910F91FF90E8 +:1029D000DF90CF900895B6018C2F0E94B8140E940A +:1029E000180A019761F3EECFCF93DF93EC010E94B9 +:1029F000C514BE010E94B814DF91CF910C94180A3F +:102A0000FC01808191810E94F414292F2F709295EE +:102A10009F7092509E3078F4E92FF0E0E351F94C2A +:102A20000C944935803F19F020F4883E20F481E071 +:102A30000895843FE1F380E00895883EC0F3813F2C +:102A4000D1F7F5CF822F869586958695089583E2F6 +:102A500090E00E947535813289F484E290E00E9412 +:102A60007535813159F485E290E00E94753591E029 +:102A7000833109F090E0892F8170089580E0FCCFC8 +:102A8000CF92DF92EF92FF926B017C010E940E09C0 +:102A9000B701A60188E090E0FF90EF90DF90CF9023 +:102AA0000C949B35AF92BF92CF92DF92EF92FF9240 +:102AB0000F931F93CF93DF9300D00F92CDB7DEB764 +:102AC000082FF62E142FE22E8091770480FF4FC03E +:102AD000E82FE695AE2FB0E0AE5EBD4F9C9190938F +:102AE00059038E7F823009F056C0413A08F040EA1F +:102AF0009E012F5F3F4F6F2D802F0E9424098091F0 +:102B0000770480FF11C02B8139814A818091710146 +:102B10009091720153E0859FF0011124E15AFC4F1E +:102B2000891798F10E94E70E80917804801308C0FD +:102B3000809179048F1104C080917A04811729F063 +:102B400080915B03826080935B0300937804F09232 +:102B5000790410937A04EE2051F06091770470911B +:102B600078048091790490917A040E9440150F9026 +:102B70000F900F90DF91CF911F910F91FF90EF90E9 +:102B8000DF90CF90BF90AF90089541833083228330 +:102B90008F5F3396C5CF923039F6E2508E2F817019 +:102BA000D82EE695F0E0E55AF94FA590B490C12CE7 +:102BB000BB2460917301C61608F0B4CF2C2D30E011 +:102BC000A29EC001A39E900DB29E900D112470E0B4 +:102BD0000E941535802FD11016C0860F40917101CB +:102BE000420F532F511D9A01220F331F240F351FFF +:102BF000215A3C4F412F113A08F040EA6F2D0E94B4 +:102C00002409C394D6CF861BE9CFE7E7F4E04381DC +:102C100021E1421B08F440E021E0628181810C94B3 +:102C20005215E7E7F4E0438121E1420F08F44FEF4A +:102C300021E0628181810C945215E7E7F4E0628122 +:102C400021E1621B08F460E021E0438181810C9462 +:102C50005215E7E7F4E0628121E1620F08F46FEFBB +:102C600021E0438181810C945215E7E7F4E08181F2 +:102C700021E04381628188500C945215E7E7F4E02B +:102C8000818121E043816281885F0C94521580919B +:102C90007B04882319F0815080937B046091770432 +:102CA000709178048091790490917A040C94401585 +:102CB00080917B04833018F48F5F80937B04609154 +:102CC0007704709178048091790490917A040C943F +:102CD00040159091770490FF27C0917081111DC01D +:102CE00092609093770480915B03816080935B0393 +:102CF000662351F060917704709178048091790493 +:102D000090917A040E94401520E040917A046091ED +:102D10007904809178040C9452158C3010F09661EF +:102D2000E0CF880F982BDDCF089521E030E0A90196 +:102D300002C0440F551F8A95E2F7CA0120915C0337 +:102D4000662391F0822B80935C0380915B0380610A +:102D500080935B0380915A03811109C080917704AD +:102D600060E086950C94691680958223ECCF0895D7 +:102D7000CF93DF93C82FC17082FBDD27D0F981FB91 +:102D8000662760F985E00E94951661E06C2786E071 +:102D90000E9495166D2F87E0DF91CF910C949516C8 +:102DA0000F931F93CF93C82F61E08111682F61703B +:102DB00080E00E949516C1FB662760F9C11101C031 +:102DC00060E081E00E949516C2FB662760F9C111A0 +:102DD00001C060E082E00E949516C3FB662760F99F +:102DE000C11101C060E083E00E949516C4FB662714 +:102DF00060F9C11101C060E084E00E9495164C2F7B +:102E000050E070E060E0DB01CA01F4E0B695A79500 +:102E100097958795FA95D1F70097A105B10549F1E6 +:102E2000AC01BD0184E08A019B01E2E03695279563 +:102E300017950795EA95D1F701151105210531057B +:102E400019F08E5FB901A80176956795579547955A +:102E5000452B462B472B09F08F5F8230D1F158F478 +:102E60008823E9F0813059F18C2FCF911F910F9178 +:102E7000089580E0D8CF8330A1F18430A9F720E015 +:102E800040E56FEF8AED0E94521587E00E94B31370 +:102E900080910001882341F3109232030DC020E09D +:102EA00040E56FEF82E30E94521580910001882374 +:102EB00099F381E0809332030E94410DD5CF20E049 +:102EC00040E56FEF8CEF0E94521585E40E94B3132A +:102ED000CBCF20E040E56FEF80E50E94521585E200 +:102EE000F5CF20E040E56FEF86E70E9452158FE1B5 +:102EF000EDCF0E94D016809376040C94F70B80914E +:102F00007604982F9670963019F488600C9479178F +:102F1000877FFCCF21E030E001C0220F8A95EAF7DD +:102F200020958091760482230C94791721E030E07B +:102F300001C0220F8A95EAF780917604822B0C94C7 +:102F40007917809177048695815009F48BE061E0D0 +:102F50000C9469168091770486958F5F8C3008F009 +:102F600081E061E00C9469168091770480FF07C0CE +:102F7000869582588F77893010F40C94AA1761E0F7 +:102F800082E00C946916E7E7F4E083E08083118225 +:102F90008FEF828380EA83831482A9E5B3E01296DF +:102FA0008C911297836012968C93608171818281DB +:102FB00093810C944015AB01BC0188E190E00C9426 +:102FC0009B35CF93C82FEFE3F4E0982F990F990F1B +:102FD000990F80818770892B8083E0E4F4E09C2F37 +:102FE0009295969597708081887F892B80836091D8 +:102FF0003D0470913E0480913F04909140040E94F2 +:10300000DB176C2F82E0CF910C94A713EDE3F4E073 +:1030100089E88083118282818C7F828360913D0464 +:1030200070913E0480913F04909140040C94DB1712 +:10303000EDE3F4E080818E7F808360913D047091A8 +:103040003E0480913F04909140040C94DB17EDE323 +:10305000F4E080818160808360913D0470913E0442 +:1030600080913F04909140040C94DB1769EE7EEF51 +:1030700090E080E00E94A73560E082E090E00E944E +:10308000893560E083E090E00E94893510929202D9 +:1030900060E084E090E00E94893560E082E290E0A8 +:1030A0000E94893560E085E090E00E94893560E00B +:1030B00086E090E00E9489356FEF87E090E00E9403 +:1030C000893540E050E0BA0188E090E00E949B35ED +:1030D00060E08DE090E00E94893540E050E0BA0168 +:1030E00088E190E00E949B3560E087E190E00E94DB +:1030F000893540E050E0BA018CE190E00E949B35B8 +:1031000070E060E080E290E00E94A7350E9406181F +:1031100080E00E946B140E94831440E050E0BA01EA +:103120008FE090E00E949B3540E050E0BA0183E1DF +:1031300090E00C949B350F931F93CF93DF9300D0B7 +:1031400000D0CDB7DEB74091C5025091C602609164 +:10315000C7027091C8022FB7F894809157049091DC +:103160005804A0915904B0915A042FBF841B950BA9 +:10317000A60BB70B84369105A105B10588F10E9415 +:103180009F0E882379F10E9462086E5F7F4F8F4FF8 +:103190009F4F69837A838B839C8380912C019091CC +:1031A0002D0181559D4F40912B0150E04530510537 +:1031B00010F044E050E0BE016F5F7F4F0E946C351D +:1031C00084E090E00E946134892BD9F40E94620867 +:1031D0006093C5027093C6028093C7029093C802A1 +:1031E00081E010C00E9462080091D2021091D302C7 +:1031F0002091D4023091D502600F711F821F931F5E +:10320000C4CF80E00F900F900F900F90DF91CF917F +:103210001F910F9108958F929F92AF92BF92CF927C +:10322000DF92EF92FF920F931F93CF93DF93EB0107 +:1032300088809980AA80BB809FB7F894C09057047B +:10324000D0905804E0905904F0905A049FBFC818D9 +:10325000D908EA08FB0894E6C916D104E104F10490 +:1032600010F4442311F1E82E082E000CFF089AE018 +:103270008902F0011124EF5FFE4F83819481815513 +:103280009D4F428150E00417150708F4A801B901C9 +:103290000E946C35C7010E946134892BA1F40E9401 +:1032A0006208688379838A839B8381E0DF91CF9171 +:1032B0001F910F91FF90EF90DF90CF90BF90AF9054 +:1032C0009F908F90089580E0F1CF0F931F93CF933D +:1032D000DF930F92CDB7DEB780914E0489832091A2 +:1032E000C40290E041E02817190609F440E001E02B +:1032F00010E09E012F5F3F4F6DEC72E086E00E9470 +:103300000B190F90DF91CF911F910F9108950F939B +:103310001F93CF93DF93CDB7DEB729970FB6F894FD +:10332000DEBF0FBECDBF85E0E7E7F4E0DE0111961A +:1033300001900D928A95E1F78091590390915A037B +:10334000A0915B03B0915C038E839F83A887B987AC +:1033500041E08885811101C040E009E010E09E0154 +:103360002F5F3F4F69EC72E085E00E940B198111DD +:1033700010925B0329960FB6F894DEBF0FBECDBF47 +:10338000DF91CF911F910F9108956F927F928F924D +:103390009F92AF92BF92CF92DF92EF92FF920F93E4 +:1033A0001F93CF93DF930F92CDB7DEB7862E5A01CE +:1033B0006901682E880F7708C3010E946134892B48 +:1033C00009F088C08AE0869DF001879DF00D1124E8 +:1033D000EF5FFE4F458150E04115510511F041E08E +:1033E00050E08AE0869DF001879DF00D1124EF5F8B +:1033F000FE4F6681778161557D4FCE0101960E9417 +:103400006C35F50140815181628173812FB7F89449 +:103410008091570490915804A0915904B0915A0496 +:103420002FBF841B950BA60BB70B84369105A10506 +:10343000B10540F4B701C8010E94F30899818917CA +:1034400009F44FC0082C000C9908C4010E94613493 +:10345000892B91F0B12C8B2D0F90DF91CF911F9183 +:103460000F91FF90EF90DF90CF90BF90AF909F9023 +:103470008F907F906F9008958AE0889DF001899DDC +:10348000F00D1124EF5FFE4F458150E0E416F50684 +:1034900008F4A7018AE0889DF001899DF00D1124B0 +:1034A000EF5FFE4F6681778161557D4FC6010E94B7 +:1034B0006C35B701C8010E94F30899818913CACFFE +:1034C0000E946208F5016083718382839383BB2429 +:1034D000B394C1CFB12CA701B801C6010E946C35CD +:1034E000BACFBB24B394F7CFCF92DF92EF92FF9283 +:1034F0000F931F93CF93DF9300D000D00F92CDB7DF +:10350000DEB76B0185E0E82EF12C00EB12E09E01A6 +:103510002F5F3F4F47EA52E061E080E00E94C5190B +:10352000882349F095E0FE013196A2EAB2E00190CD +:103530000D929A95E1F795E0E2EAF2E0D60101906A +:103540000D929A95E1F70F900F900F900F900F90BA +:10355000DF91CF911F910F91FF90EF90DF90CF906F +:10356000089590E080E00E948335893E9E4F11F4DB +:103570000C94271580E008951F920F920FB60F92BA +:1035800011242F933F934F935F936F937F938F9368 +:103590009F93AF93BF93CF93DF93EF93FF93D0911C +:1035A000E900DF708091EC00C82FC17080FDC0E899 +:1035B0001092E9008091F000877F8093F00078946A +:1035C0000E9403101092E9008091F00088608093BF +:1035D000F000CD2BCF70C093E900FF91EF91DF9108 +:1035E000CF91BF91AF919F918F917F916F915F919B +:1035F0004F913F912F910F900FBE0F901F901895F4 +:103600001F920F920FB60F9211242F933F934F9357 +:103610005F936F937F938F939F93AF93BF93EF933A +:10362000FF938091E10082FF09C08091E20082FF58 +:1036300005C08091E1008B7F8093E1008091DA00EA +:1036400080FF24C08091D80080FF20C08091DA00E4 +:103650008E7F8093DA008091D90080FF9BC080E14B +:1036600089BD82E189BD09B400FEFDCF81E0809370 +:103670006C0480915E04811109C00E94D5060E94ED +:10368000A0078091E20084608093E2008091E100D5 +:1036900080FF17C08091E20080FF13C08091E2009C +:1036A0008E7F8093E2008091E20080618093E2004F +:1036B0008091D80080628093D80019BC85E0809307 +:1036C0006C048091E10084FF29C08091E20084FFB6 +:1036D00025C080E189BD82E189BD89B5982F9170AF +:1036E00080FFFBCF8091D8008F7D8093D8008091A0 +:1036F000E1008F7E8093E1008091E2008F7E8093D5 +:10370000E2008091E20081608093E20080916D048C +:10371000882309F445C084E080936C048091E10023 +:1037200083FF27C08091E20083FF23C08091E100E6 +:10373000877F8093E10082E080936C0410926D0497 +:103740008091E1008E7F8093E1008091E2008E7F86 +:103750008093E2008091E20080618093E20042E089 +:1037600060E080E00E946E078091F00088608093A6 +:10377000F000FF91EF91BF91AF919F918F917F9159 +:103780006F915F914F913F912F910F900FBE0F90CE +:103790001F90189519BC10926C0410925E0476CF9D +:1037A0008091E30087FD93E090936C04B7CF789409 +:1037B0001F921FB61F9211248F939F93AF93BF93B5 +:1037C0008091570490915804A0915904B0915A04E3 +:1037D0000196A11DB11D8093570490935804A093A6 +:1037E0005904B0935A04BF91AF919F918F911F904C +:1037F0001FBE1F9018959C014FB7F89480915704F5 +:1038000090915804A0915904B0915A044FBF821B63 +:10381000930B08952FB7F894809157049091580412 +:10382000A0915904B0915A042FBF08955F926F92EE +:103830007F928F929F92AF92BF92CF92DF92EF9240 +:10384000FF920F931F93CF93DF9300D000D00F927E +:10385000CDB7DEB77C01FC0183819481892B31F0E7 +:103860008081918189238F3F09F08CC60F900F9042 +:103870000F900F900F90DF91CF911F910F91FF90BC +:10388000EF90DF90CF90BF90AF909F908F907F9000 +:103890006F905F9008950E94C514182F682F89813A +:1038A0009A810E94CB0B69817A81812F0E94B81482 +:1038B0008C01F7018281882361F0F801E65EFC4506 +:1038C000ED30F10530F4E550F94C0C9449350E9487 +:1038D0002718D0903D04D0FE1CC08D2D8695837096 +:1038E000F7019281992309F460C1823090F4B70105 +:1038F000C8010E94B108882361F0D694D694D6946A +:1039000080913E0483708295880F807E8D290E946D +:10391000B313F7018281882309F429C6C8018251B3 +:103920009F45409708F0ECC58FEF93E00E947535F6 +:10393000025193EEA92E92E0B92E811197CF011179 +:1039400038C11C821B82662463948AE0582E85014C +:103950000F5F1F4FC5010E94753589831A82882326 +:1039600009F484CF9FEF980F933008F031C18A8318 +:10397000698232E0A30EB11CC8010E9475358B83A9 +:10398000882309F473CF8E010F5F1F4FF801208148 +:103990002223E9F2213009F055C1918182819130D1 +:1039A00009F018C10E5F1F4F6AE070E0893311F40F +:1039B00060E570E00E94D20E13C10E94181889CFF2 +:1039C00080913D0480FF0DC00E94181860913D0455 +:1039D00070913E0480913F04909140040E94DB1757 +:1039E00078CF0E942718F2CF0E94061872CF9091CC +:1039F0003D04892F86958F5F8370880F997F892B6F +:103A000080933D04982F9670963001F7897F8093BC +:103A10003D04DCCF90913E04892F8B7F92FF846020 +:103A200080933E04D3CF80913D04982F9695969530 +:103A3000969580913E0483708295880F807E892BB5 +:103A40008C3798F48F5F282F220F220F220F90912E +:103A50003D049770922B90933D04829586958370D8 +:103A600090913E049C7F892BDBCF81E0ECCF80914D +:103A70003D04982F96959695969580913E04837077 +:103A80008295880F807E892B11F08150DCCF8BE7E7 +:103A9000DACF30913E04932F969596959695209186 +:103AA0003F04822F83708295880F807E892B90E05F +:103AB0000196482F440F440F440F3770342B309336 +:103AC0003E0435E0969587953A95E1F783702C7F13 +:103AD000822B80933F047ACF30913E04932F9695AA +:103AE0009695969520913F04822F83708295880F3A +:103AF000807E892B8150990BDCCF80913F0482FF1F +:103B000012C08B7F80933F0460913D0470913E040E +:103B100080913F04909140040E94DB1760E081E0B7 +:103B20000E94A713D6CE846080933F0460913D0429 +:103B300070913E0480913F04909140040E94DB17F5 +:103B400060E08CE00E94A71364E182E00E94A7136A +:103B500065E081E00E94A71361E08CE0E1CF8091F5 +:103B60003F04982F9695969596958091400482955E +:103B7000880F807E892B883720F4865F0E94E117AA +:103B8000A8CE88E7FBCF80913F04982F9695969515 +:103B90009695809140048295880F807E892B843190 +:103BA00010F08A50EBCF84E1E9CF882309F4B1CE3D +:103BB0009ECEA114F4E0BF0609F458CEC5010E94C0 +:103BC0007535811101C001502FEFA21AB20AB7CE8C +:103BD0005801D9CE923039F40E5F1F4F0E94570C16 +:103BE0000F5F1F4FD3CE933029F40E5F1F4F0E94FB +:103BF0001E0CF6CF943019F00F5F1F4FF1CF0E5F00 +:103C00001F4F30E020E0B8016F5F7F4FF801418126 +:103C10008053990B8A30910550F02150310900F3FF +:103C20008FE99FE00197F1F700C00000F6CF529EA8 +:103C3000F001539EF00D11249C012E0F3F1F842F85 +:103C40008B01E1CFE22FF0E0E75FFD4F7490822F10 +:103C500086958695869590E0FC01E750FE4FE490AE +:103C60002770F12C022E02C0F594E7940A94E2F733 +:103C7000E1E0EE22FF24FC01E751FE4FC490D12C7D +:103C8000022E02C0D594C7940A94E2F7F1E0CF2245 +:103C9000DD24FC01E752FE4F8490912C02C09594E4 +:103CA00087942A95E2F721E082229924E114F10415 +:103CB00019F081EE0E94570CC114D10419F086EE60 +:103CC0000E94570C39E36AE070E0731202C060E5AD +:103CD00070E0872D0E94D20ECD2819F086EE0E944A +:103CE0001E0CEF2819F081EE0E941E0C892809F4A1 +:103CF00077CF6AE070E08CE25DCE81E00E9496179B +:103D000003C081E00E948A170F900F900F900F90D0 +:103D10000F90DF91CF911F910F91FF90EF90DF9067 +:103D2000CF90BF90AF909F908F907F906F905F905B +:103D30000C947F1782E0E2CF043F110509F455C1CE +:103D400008F057C1053E110509F4DDC0F701928165 +:103D500091113CC280915F0482720A3CFCE51F070E +:103D600009F414C208F06AC1053C3CE5130709F4E4 +:103D7000F9C108F04EC1033C5CE5150709F4D3C155 +:103D800008F0EBC1023C1C4509F47DC1F70100813C +:103D90001181992309F434C2C8010E94C514D82E98 +:103DA000682FC8010E94CB0BB8018D2D0E94B8145A +:103DB0000E94180A182FB82EF70122814581342F4E +:103DC00032953F70892F82958F70C82ED12C8C3000 +:103DD00008F04EC2F601E85FF84C0C944935033800 +:103DE000FFE51F0709F481C018F501383FE5130707 +:103DF00009F44AC008F065C000385FE5150709F00E +:103E0000A5CF882309F459C080919C02811106C076 +:103E100081E080939C0282EE0E94570C0E940A1C53 +:103E200090939B0280939A028BE20E94570C8ECF54 +:103E300005389FE5190709F4BEC008F476C00638B6 +:103E4000FFE51F0709F082CF882309F4CEC06091F7 +:103E5000590170915A0190E080E00E94C23520E043 +:103E600030E040E05CE30E94233620E030E040E8B0 +:103E70005FE30E94BD358111B5C080EE90E0909364 +:103E80005A0180935901A1C08823A1F080919C021E +:103E9000811106C081E080939C0282EE0E94570C43 +:103EA0000E940A1C90939B0280939A0281EE0E94CA +:103EB000570CBACF81EE0E941E0C8BE20E941E0CA2 +:103EC00045CF882309F442CF81EE0E94570C83EE40 +:103ED0000E94570C8FE40E94570C8FE40E941E0C26 +:103EE00083EE0E941E0C81EEE9CF882309F42ECFC9 +:103EF00081EE0E94570C83EE0E94570C80E50E94D1 +:103F0000570C80E5EBCF80933C0210933B0200936B +:103F10003A02882321F081E08093EE0217CF1092BD +:103F2000EE0214CF80933902F0CF882379F180918B +:103F30003902882349F080913A020E941E0C80EEDB +:103F40000E94570C8AE20CC080913C028823D1F376 +:103F500080913A020E941E0C80EE0E94570C8CE465 +:103F60000F900F900F900F900F90DF91CF911F91B6 +:103F70000F91FF90EF90DF90CF90BF90AF909F9008 +:103F80008F907F906F905F900C94570C8AE20E9404 +:103F90001E0C8CE40E941E0C80EE0E941E0C809170 +:103FA0003902811105C080913C02882309F45ECC5E +:103FB00080913A02D5CF8823C1F0809132038823C3 +:103FC00039F010923203109200010E94410DBECED2 +:103FD000809100018111F7CF81E0809332038093BB +:103FE0000001F3CF80E890E04ACF61E00E94C21365 +:103FF000ADCE62E0FBCF64E0F9CF882321F081E011 +:104000008093ED02A3CE1092ED02A0CE1092F002AA +:104010009DCE073C2CE5120709F4AEC008F4A7C0FA +:10402000083C4CE5140709F4ACC0093C1C4509F0F8 +:10403000ADCE45E056E161E176E179C0043DECE5C5 +:104040001E07A8F40E3CFCE51F0708F00FCC0C3C43 +:104050002CE5120709F49FC047E456E168E576E1D4 +:104060000D3C1C4508F463C061E081E046C0053D9D +:104070004CE5140709F4FACB08F492C00D351D4540 +:1040800009F4F4CB83CE8091770480FF31C08E7F1A +:10409000809377046091770470917804809179041B +:1040A00090917A040E94401580915B038160809317 +:1040B0005B039FEFE0E7F2E09150E040F040E1F772 +:1040C00000C000000F900F900F900F900F90DF91A5 +:1040D000CF911F910F91FF90EF90DF90CF90BF9005 +:1040E000AF909F908F907F906F905F900C94E70EB1 +:1040F00081608093770461E086950F900F900F9018 +:104100000F900F90DF91CF911F910F91FF90EF9043 +:10411000DF90CF90BF90AF909F908F907F906F90E7 +:104120005F900C94691641EA57E16AEA77E10F90D3 +:104130000F900F900F900F90DF91CF911F910F91E3 +:10414000FF90EF90DF90CF90BF90AF909F908F90B7 +:104150007F906F905F900C9409094AEA57E161EAF9 +:1041600077E1E5CF45E356E16EE376E1E0CF4EE35C +:1041700056E165E376E1DBCF4DE156E169E276E1B8 +:10418000D6CF49E256E16DE176E1D1CF41E156E18A +:1041900065E076E1CCCF48E556E167E476E1C7CF4C +:1041A0000F900F900F900F900F90DF91CF911F9174 +:1041B0000F91FF90EF90DF90CF90BF90AF909F90C6 +:1041C0008F907F906F905F900C94B4170E3D1C45BC +:1041D00009F0DCCD0F900F900F900F900F90DF91B2 +:1041E000CF911F910F91FF90EF90DF90CF90BF90F4 +:1041F000AF909F908F907F906F905F900C94361847 +:10420000C8010E94A30BD82ECFCD092F0F70907F2D +:1042100011F00295007F812F2223C9F0002369F05D +:1042200090E2910F983010F011110BC080915F0453 +:10423000082B00935F040E94820B812F0E94570C71 +:1042400017C080919102082B00939102F4CF0E9435 +:104250001E0C002369F00095105E183010F0B110AC +:1042600027C080915F04082300935F040E94820BA3 +:1042700098E0C91AD108E4E0CE16D10408F0F6CAD5 +:104280000E94C20E0F900F900F900F900F90DF9131 +:10429000CF911F910F91FF90EF90DF90CF90BF9043 +:1042A000AF909F908F907F906F905F900C94B81616 +:1042B00080919102082300939102D8CF892F8F70AB +:1042C000907F903211F08295807FF1E0BF120CC098 +:1042D000222329F0333060F60E94140CC9CF32300B +:1042E00038F60E94090CC4CF222341F03323A1F3F6 +:1042F00040FFA3CF4F70F7014583EECF332389F3FF +:10430000193309F0F5C0FFEF27EE33E0F1502040FC +:104310003040E1F700C00000812F0E941E0CA8CFA2 +:10432000892F86958695837061F0813009F0A0CF42 +:10433000812F9370211102C090E080E00E946E08EE +:1043400097CF812F9370211102C090E080E00E94EE +:1043500084088ECF892F8370A1F5211189CF812FF9 +:10436000829586958770880F880F412F4F70082E91 +:1043700001C0440F0A94EAF7212F207114FF07C0EF +:104380002FE030E001C0220F8A95EAF7209596953C +:1043900096959370923081F0822F842B933030F475 +:1043A00080919202913029F0242B82230E94050CE7 +:1043B0005FCF842B822BFACF242B8091920282270D +:1043C000F5CF8695222311F0892F8170882309F477 +:1043D0004FCF812F829586958770880F880F412F48 +:1043E0004F70082E01C0440F0A94EAF7212F207164 +:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 +:104400002095969596959370923081F0822F842B0B +:10441000933030F480917604913029F0242B82235C +:104420000E94791725CF842B822BFACF242B8091E1 +:1044300076048227F5CF092F0F70222329F0802FD1 +:104440000E949617812F48CF812F0E94090C802F40 +:104450000E948A170DCF812FE1EF1E1789F1E11716 +:1044600050F0F0EF1F17B9F02223B1F13111E5CE72 +:10447000892F8F7129C042EF141749F153EF15139B +:10448000F3CF80E0222361F29F7181E001C0880FA9 +:104490009A95EAF7C5CF222379F0323008F0E8CEBA +:1044A000292F2F7181E090E001C0880F2A95EAF74B +:1044B000909176048927B4CF333008F0D9CEF0CF6D +:1044C000892F8F71222321F20E949617D1CE892F36 +:1044D0008F712223C9F3BCCF332379F0893341F4A0 +:1044E0008FEF97EEE3E081509040E040E1F712CF8C +:1044F0008FE39CE90197F1F70DCF892F8F71A8CF3A +:104500000031FFE51F0709F4F8CB01312FE5120751 +:1045100009F410CC0E9462086093F5027093F602D1 +:104520008093F7029093F802F7018281063F11050C +:1045300009F461CD08F053CC043E110509F45DCDBA +:1045400008F0FACB003E110509F457CD013E1105E4 +:1045500009F4E8CC0C32110509F0F8CB882309F4F2 +:1045600055CD81E08093F00210926701EFCB0031CE +:104570003FE5130709F4C5CB01314FE51407A1F658 +:1045800082E0C0CB85E0DE01119601900D928A9504 +:10459000E1F7F701228189819A8121117CC90E946A +:1045A000A30B182F80C91F93CF93DF9380915D02D7 +:1045B000807FA9F480915A02882389F080918F022C +:1045C000D0915E026091580270915902A0915B02F5 +:1045D000B0915C02C62FC72316E0D81304C0DF9148 +:1045E000CF911F91089590E0109711F0CF3F19F4EB +:1045F00001968770F2CF189F9001199F300D1124FA +:10460000F901E15AFD4F41814713F2CF4081461332 +:10461000EFCF42814111ECCF438154814A1B5B0BA8 +:10462000403A510528F780915D028F708061809338 +:104630005D02F901EC59FD4F80818F7080618083AC +:1046400088E592E00E94161CDF91CF911F910C9497 +:10465000990BAF92BF92CF92DF92EF92FF920F939E +:104660001F93CF93DF93CDB7DEB761970FB6F89462 +:10467000DEBF0FBECDBF8C0185E0F801DE011D96C7 +:1046800001900D928A95E1F7F801E28088E5A82E65 +:1046900082E0B82E60915B0270915C026115710539 +:1046A00009F432C19091580240915902892F842314 +:1046B0008F3F09F429C120813181C380D480F090DB +:1046C0005A02F601E61BF70BFF2009F4E8C08091BF +:1046D0005D02582F507FE03AF10508F0ABC0511150 +:1046E00077C0FE2C431321C092131FC0E1101DC0E0 +:1046F0008F70806180935D02C5010E94161C8091BD +:104700005D02F80185838F2D61960FB6F894DEBFA8 +:104710000FBECDBFDF91CF911F910F91FF90EF9012 +:10472000DF90CF90BF90AF900895CD2829F0822FD1 +:1047300083238F3F09F003C180E0F82FF170DF2E53 +:1047400080FF3CC080918F0240915E0256E084134E +:1047500015C02D873E878D859E850E94F414292FD4 +:1047600022952F702230F0F0243018F59F70F1F070 +:10477000F8019581907FD1F4D12C1EC090E0589F14 +:10478000F001599FF00D1124E15AFD4F618136135C +:1047900006C06081261303C06281E6120FC0019635 +:1047A0008770D5CF9F7011F0882331F3805E8830F9 +:1047B00018F3C8010E94161CFD2CA5CFEE2009F4A9 +:1047C000A2CF80915D02816080935D02F12C9BCF2E +:1047D000431306C0921304C0F801EE2009F479C017 +:1047E000C8010E940015882309F1EE20F9F080919C +:1047F0005D02803270F02091580230915902388762 +:104800002F831986DB86CA868C87CE0107960E9485 +:10481000161C86E0F801A8E5B2E001900D928A9599 +:10482000E1F70E94D322FF24F3946DCFC8010E94C8 +:10483000161CF9CF51110AC088E592E00E94161C9F +:1048400086E0F50111928A95E9F7C0CF43130FC0B6 +:1048500092130DC0E1100BC0F8018583C8010E94BE +:10486000161C86E0F50111928A95E9F74CCFC80134 +:104870000E9400158823D1F2EE20C1F280915D02E2 +:10488000803238F220915802309159023A832983BC +:104890001B82DD82CC828E83CE010196B8CFE03AB6 +:1048A000F105F8F6FE2CEE2009F243131FC0921317 +:1048B0001DC080915D0280FD10C0982F907F69F02F +:1048C000F8018583903F31F0982F907F905F8F7033 +:1048D000892B8583C8010E94161C86E0F801A8E593 +:1048E000B2E001900D928A95E1F70DCFC8010E94C8 +:1048F000001581118ECF80915D02816080935D02F1 +:10490000C8010E94161CFFCEEE2009F48FCFC8010B +:104910000E940015F82E882309F488CF86E0F8015C +:10492000A8E5B2E001900D928A95E1F780915802D6 +:10493000909159020E94F4140E94D322E4CE81E0A7 +:104940008E25FBCE1F93CF93DF93CDB7DEB767974E +:104950000FB6F894DEBF0FBECDBF4B8B5C8B6D8B5B +:104960007E8B8F8B6111109291021A8A198A85E0D1 +:10497000FE017396DE011D9601900D928A95E1F776 +:1049800086E0FE013D96DE01179601900D928A9514 +:10499000E1F7CE0107960E942923882389F016E0CB +:1049A00080918F0290915E0289134BC067960FB67B +:1049B000F894DEBF0FBECDBFDF91CF911F91089558 +:1049C00086E0FE013796DE01119601900D928A95E0 +:1049D000E1F78A859B85892B11F38F81988589233F +:1049E0008F3FE9F220915E0230E0C90101968770A5 +:1049F000992740918F024817190681F410925F049D +:104A00000E94FA0F10925E0210928F0286E0E8E593 +:104A1000F2E0DF011D928A95E9F7C1CF96E0929FFF +:104A2000D001939FB00D1124A15ABD4FFE013196C4 +:104A300001900D929A95E1F780935E020E94990B86 +:104A4000AECF819FC0011124815A9D4F0E9429231E +:104A5000882309F4ABCF80918F0290E00196877094 +:104A6000992780938F029CCF9F92AF92BF92CF9253 +:104A7000DF92EF92FF920F931F93CF93DF93CDB707 +:104A8000DEB764970FB6F894DEBF0FBECDBF8E01C0 +:104A90000F5F1F4F8AE0D8011D928A95E9F79EE4C7 +:104AA000C92E91E0D92EF12CE12CAA24A394B12C8B +:104AB000F60181916F018F3F09F44AC0F894E82F05 +:104AC000E295EF70F0E021A18F70A50102C0440FC4 +:104AD000551F8A95E2F7CA01922F982B91A392A1B4 +:104AE0008095892382A30E94BC0900C0E7E4F1E01D +:104AF00030E020E0912C41914F3F09F47DC0A42F7C +:104B0000A295AF70B0E090968C9190E04F7002C08B +:104B1000959587954A95E2F780FD6EC08A2D022E05 +:104B200001C0880F0A94EAF7982A2F5F3F4F273079 +:104B3000310509F7F601319780818F3F11F00E940E +:104B4000BE0950EA5A95F1F7F801EE0DFF1D90826B +:104B50008FEFE81AF80A95E0E916F10409F0A8CFFA +:104B60004AE050E0B80188ED92E00E945F357C0198 +:104B7000892B41F08AE0F801A8EDB2E001900D9296 +:104B80008A95E1F71091E302E114F104B9F181E0B3 +:104B9000809395020E940A1C909394028093930242 +:104BA00080919302909194020E94FB1B069770F0F3 +:104BB000A8EDB2E0E12FF0E0E15BFC4F8D91819335 +:104BC00022E0AD3DB207D1F71092950281E090E06E +:104BD000EF28C1F064960FB6F894DEBF0FBECDBFCC +:104BE000DF91CF911F910F91FF90EF90DF90CF90C9 +:104BF000BF90AF909F90089580E096CF80919502EE +:104C00008111CECF0E949F0EB82EE091E30288233F +:104C100009F4C7C08E01005F1F4F85E0D8011D92C7 +:104C20008A95E9F7F0E09F01215B3C4F7901809183 +:104C3000D102AE014B5E5F4F6A018A3008F086C038 +:104C400044E75AE1B801C7010E945B0E882309F4CA +:104C500094C045EA57E2B801C7010E945B0E882361 +:104C600009F48BC04BE958E1B801C7010E945B0E03 +:104C7000882309F482C047E859E1B801C7010E94BE +:104C80005B0E882309F479C045E659E1B801C701F4 +:104C90000E945B0E882309F470C01092D102E0914B +:104CA000E202F0E0AF01415B5C4FD80110E0FA0195 +:104CB0009191AF018D91981731F09F0121503109E9 +:104CC000F90180831B2DCA16DB0689F780919C02AF +:104CD000882371F080919A0290919B020E94FB1BA5 +:104CE000893E934028F082EE0E941E0C10929C0296 +:104CF00088E9C82E82E0D82EF12CE12CD6018D91C6 +:104D00006D018823D1F08695F70109F447C0EC5076 +:104D1000FE4F808191819C878B871D860E940A1C93 +:104D20008160782F9F878E87F601319710824B859F +:104D30005C856D858F850E94A224B2E0EB0EF11C8C +:104D4000E4E0EE16F104D1F6812F44CF8091960273 +:104D5000909197020E94FB1B843F914008F070CF16 +:104D6000A091E202B0E0A15BBC4FF8011D9211924C +:104D7000CE16DF06D9F71B2DA9CF8091D1028F3F28 +:104D800031F08F5F8093D1028A3008F488CF0E947F +:104D90000A1C9093970280939602E2CFE051FE4F57 +:104DA000B8CFF0E0E15BFC4FF89485E0A0EBB2E017 +:104DB00001900D928A95E1F765E070E080EB92E05A +:104DC0000E94F3088093AF020E94BC09F894E0911E +:104DD000EB02F0E0E851FD4F80818B878093B602B3 +:104DE00061E070E0CE010B960E94F3088093B5025B +:104DF0000E94BC09F894C090B702D090B802E0902D +:104E0000B902F090BA0280919D0290919E02A09109 +:104E10009F02B091A002C816D906EA06FB06D1F09F +:104E2000C0929D02D0929E02E0929F02F092A00258 +:104E30000E949F0E81110EC00E946208C61AD70AF6 +:104E4000E80AF90AC092D202D092D302E092D402C8 +:104E5000F092D5020E94BC09F8948091C202882386 +:104E600021F184FF04C09091C30290935C0380FF02 +:104E70000DC08091BB0280FF25C0909177049160A6 +:104E80009093770460E086950E9469168091C20233 +:104E900081FF09C020E04091BE026091BD02809177 +:104EA000BC020E9452151092C2020E94BC09F894E2 +:104EB0008091C402882349F00E94B30D0E94BC096E +:104EC00080E088CE0E94E50FE1CF0E94980DF6CFDA +:104ED000EF92FF920F931F93CF93DF9300D000D0F8 +:104EE0000F92CDB7DEB7162FE82EF12CC701880F31 +:104EF000991F662339F18C509E4FFC01808191816E +:104F00009A83898301E00B830E940A1C8160782FB9 +:104F10009D838C83F701E856FD4F0127110F102B5D +:104F2000108349815A816B818D810F900F900F9072 +:104F30000F900F90DF91CF911F910F91FF90EF9005 +:104F40000C94A22480519E4FD8CFCF92DF92EF9243 +:104F5000FF920F931F93CF93DF930F92CDB7DEB7DE +:104F6000EE24E394F12C06EB12E09E012F5F3F4FFD +:104F70004BEA52E063E082E00E94C519082F8823C3 +:104F800021F1C090E5028C2D90E09C0128513D4F0D +:104F900079011981F9018081181BD12E80E00AC0A6 +:104FA000DA94F70180818F5F808360E08C2D0E940E +:104FB0006827802F1D14A4F3912F17FD90E0191B73 +:104FC00011110EC081110E94800B802F0F90DF9174 +:104FD000CF911F910F91FF90EF90DF90CF900895A8 +:104FE0001F5FF70180818150808361E08C2D0E94DA +:104FF0006827802FE5CF1F921FB61F9211248F9331 +:105000009F93AF93BF9380915604811113C08091F9 +:10501000570490915804A0915904B0915A044196B4 +:10502000A11DB11D8093570490935804A093590477 +:10503000B0935A04BF91AF919F918F911F901FBE63 +:105040001F901895CDB7DEB7E9970FB6F894DEBF7D +:105050000FBECDBF84B7877F84BF0FB6F894A895E5 +:1050600080916000886180936000109260000FBEA4 +:1050700080E890E00FB6F89480936100909361000F +:105080000FBE85B7806885BF85B7806885BF8AEB0E +:1050900099E090932F0280932E020E94D5060E94E1 +:1050A000A0078091E20084608093E2007894809170 +:1050B0006C048823A1F01091E9001F709091EC001E +:1050C000892F817090FD80E8182B1092E900809163 +:1050D000E80083FD0E9403101F701093E90082E036 +:1050E00084BD93E095BD9AEF97BD80936E001092BA +:1050F000D2021092D3021092D4021092D5020E94D2 +:105100002715811102C00E9483140E949F0E809374 +:10511000580180915801882309F4C6C010926F018C +:1051200085E2809370010E949F0E81110E9454338A +:105130008091580181112FC0FE01359686E0DF0174 +:105140001D928A95E9F786E6898387E98A8386EC4A +:105150008B8384E38C8385E38D833497AEE4B1E065 +:10516000CE010B9621912D938E179F07D9F787E0DB +:10517000E5E7F1E0DE01919601900D928A95E1F765 +:10518000FE01B196A7E4B1E0CE01889621912D935E +:105190008E179F07D9F78091580195E0811190E013 +:1051A0009093E30285E0891B8093E2020EE411E014 +:1051B000A3E5EA2EA1E0FA2EF80181918F018F3F3D +:1051C00011F00E94BE09E016F106B1F707E411E004 +:1051D000FEE4EF2EF1E0FF2ED8018D918D018F3F7F +:1051E00011F00E94BE09E016F106B1F7E8EDF2E019 +:1051F00082EE92E0AFE4B3E011921D928E179F070A +:10520000D9F70E94B11A811102C00E94361882E0BB +:1052100090E00E9475358093440384E090E00E9402 +:105220007535182F82E290E00E947535982F812FF6 +:105230009093D7028093D6020E943425EFE7FBEBD0 +:105240003197F1F700C000000E94342580914F0390 +:1052500080FF2EC06FEF7FEF90E080E00E94A735C7 +:1052600081E08093E00080E28093D8001092C90032 +:105270008FE19EE40197F1F700C0000087E090EB1A +:10528000DC018093800690938106A0938206B09300 +:10529000830688E19CE00FB6F894A895809360009F +:1052A0000FBE90936000FFCF85E280936F0139CFEE +:1052B00083E090E00E9475350E94050C8091760491 +:1052C0000E94D0160E94B11A811102C00E943618A5 +:1052D00088E190E00E947D3560933D0470933E0428 +:1052E00080933F0490934004672B682B692B11F443 +:1052F0000E9406180E94553167E081E00E94A713C2 +:1053000060E586E10E94A7136BE687E10E94A71380 +:1053100060EB8AE10E94A71369E98BE10E94A71361 +:1053200065EF8CE10E94A71360EA8DE10E94A7134C +:1053300060E38EE10E94A71366E083E00E94A7135A +:1053400061E08CE00E94A71360E081E00E94A71357 +:1053500060E08CE00E94A7136FE084E00E94A71336 +:1053600061E08CE00E94A7130E949F0E811102C091 +:105370000E94573383E080931A0380E280934304B2 +:105380000E9455316DE070E08CE992E00E94680D5A +:10539000892BE9F580911A0363E070E081FD9EC2DC +:1053A00089E992E00E94680D892B89F56DE070E033 +:1053B00089E892E00E94680D892B49F50E946208F5 +:1053C0006058774C8E4F9F4F60934A0470934B0404 +:1053D00080934C0490934D04EEE7F4E080E092E07B +:1053E000DF019C011D9221503040E1F7F0937F06D0 +:1053F000E0937E068FEF9FEF90937D0480937C0473 +:1054000081E080934F0480934E0410921B0380919F +:10541000E402811136C00E94B11A811104C00E94B9 +:1054200036180E94C31788E090E00E947D35609393 +:105430007704709378048093790490937A04809130 +:105440005B03836080935B036E7F71F40E94C317DC +:1054500088E090E00E947D35609377047093780433 +:105460008093790490937A040E940E0980917704C6 +:1054700080FF04C060E086950E94691681E08093F9 +:10548000E40280915801811106C084EF8093660187 +:1054900085EF8093650120916601A22FA295AF70E0 +:1054A000B0E091963C9191972F7081E090E0BC0123 +:1054B000022E01C0660F0A94EAF7462F4095432357 +:1054C00091964C93919792963C919297362B929607 +:1054D0003C93929740916501E42FE295EF70F0E0E4 +:1054E00031A14F70042E01C0880F0A94EAF7982F5B +:1054F0009095932391A392A1892B82A390968C914E +:1055000090E002C0959587952A95E2F7817020A1D9 +:1055100030E002C0359527954A95E2F792E020FFEA +:1055200090E0892B8093EC028091580111E0812753 +:105530008093EB02312F381B3093E5020E945531E6 +:1055400040E060E080E00E94210D89EA92E09093C3 +:105550005E0380935D0360E08AE00E94691681E04B +:105560000E94791780EE90E090935A018093590140 +:10557000109332030E94410D8BE591E09093530408 +:10558000809352043E018DE3680E711C80916C047F +:10559000FF24F39400E112E1853009F4F2C10E9486 +:1055A0003425E82E81110E946208E5E4F3E0AFE4BF +:1055B000B3E010E000E0B02EDD9081918D1509F48C +:1055C00004C28D25C12CFF24F394982F9F2109F448 +:1055D000F7C10E949F0E882399F0CEA6BFA6DF20B8 +:1055E00081E009F480E088AB0E940A1C8160782F7A +:1055F0009AAB89AB4EA55FA568A98AA90E94A2248F +:10560000F801EB5BFC4F8081F826F0828091EC0280 +:10561000E82FEE0FEE0F90916601A92FA295AF70C3 +:10562000B0E090962C9130E09F7002C035952795A0 +:105630009A95E2F72170332790916501A92FA295E1 +:10564000AF70B0E090964C9150E09F7002C05595BD +:1056500047959A95E2F7CA018170992740FF02C0E9 +:1056600082E090E0822B8E2B8093EC021091EB0273 +:105670008F70E82FF0E0E650FE4F80819091EA02B3 +:10568000890F8093EA02F12C84306CF0E12FF0E076 +:10569000E851FD4F80818F5F808360E0812F0E9401 +:1056A0006827FF24F3948091EA028D3F6CF4E12F88 +:1056B000F0E0E851FD4F80818150808361E0812FCF +:1056C0000E946827FF24F3948091EA02082E000CC0 +:1056D000990B64E070E00E9435358093EA02F11086 +:1056E0000E94800B80914F04882351F180911C030C +:1056F00090911D030E94FB1BC29708F07DC1209171 +:105700007C0430917D042115310509F0A0C28091FF +:105710004E048823A9F00E94620800914A04109167 +:105720004B0420914C0430914D04601B710B820B93 +:10573000930B6F3F7F4F8F4F9F4710F40E94980D40 +:10574000E11001C0F1100E94B30D809142038A3034 +:1057500008F0BAC380914003909141030E94FB1B63 +:10576000069708F4B1C304E610E025E030E04BE30F +:1057700053E064E084E10E94A032892B09F075C3F4 +:105780001092420320913203222359F080913B036F +:1057900090913C0398278927982790933C03809306 +:1057A0003B0386E0E4E2F3E0DE01919601900D9286 +:1057B0008A95E1F786E0FE01B196DE01119601902F +:1057C0000D928A95E1F786E0FE013196A5E3B3E0FC +:1057D00001900D928A95E1F790913F0380913603F5 +:1057E00097FD3AC38E7F8093360380913303909167 +:1057F0003403009709F02AC360913B0380913C0376 +:1058000000913D0310913E03222309F4F2C241E0CE +:105810000E94FB0C2091300330913103820F931FC3 +:10582000909331038093300341E0602F812F0E94D9 +:10583000FB0C20912E0330912F03820F931F909326 +:105840002F0380932E0360E373E08AE393E00E94CA +:10585000DC0C6EE273E089E393E00E94DC0C1092B2 +:1058600037031092380386E0E5E3F3E0DE0111969A +:1058700001900D928A95E1F786E0FE013196A4E24F +:10588000B3E001900D928A95E1F7309126032091C3 +:105890002703909128038091290370912003609140 +:1058A00021034091220350912303F0912503E091BD +:1058B0001F03FE13E0C2332311F07313DCC2222353 +:1058C00011F02613D8C2882311F08513D4C299236E +:1058D00019F081E04913D0C280E0CEC286E992E09F +:1058E00061CD80916C04843009F43BC00E94980D16 +:1058F00040E060E080E00E94210D80E00E94B81648 +:105900008091E702811109C0F092E702809177044B +:1059100081708093E6020E94E50F10925604A8E180 +:10592000B0E0E0E40FB6F894A895A09360000FBE35 +:10593000E093600083B7817F846083BF83B7816019 +:1059400083BF7894889583B78E7F83BF0FB6F89412 +:10595000A89580916000886180936000109260003B +:105960000FBE80916B04882361F00E943425EFE420 +:10597000F3E08191811178C429E533E02E173F07C8 +:10598000C1F780916C04853009F4ABCF10925F04AD +:105990000E94FA0F0E94C20E0E94B8161092E702EF +:1059A0008091E602882349F080917704816080939A +:1059B000770460E086950E9469160E94410DEFCD44 +:1059C000C394FF0C37E0C31200CE0F5F1F4F0A30A5 +:1059D000110509F0F0CD8FEF8BAB8CAB1DAA0E94A7 +:1059E0000A1C8160782F9FAB8EAB4BA95CA96DA977 +:1059F0008FA90E94A2240ACE0E940A1C90931D0324 +:105A000080931C0360E080E00E949A080E94C20E0E +:105A10008093F9020E949F0E882331F14091F50294 +:105A20005091F6026091F7027091F8022FB7F89446 +:105A30008091570490915804A0915904B0915A0450 +:105A40002FBF841B950BA60BB70B81339547A10580 +:105A5000B10540F00E94980D80914F04882309F40D +:105A600056CE4DCE0E94B30D0E949F0E882309F49E +:105A7000D5C061E080E00E949A0860E08CE791E088 +:105A80000E948B1362E080E00E949A088091760465 +:105A90000E94CB0C823009F49BC008F090C0882390 +:105AA00009F496C0813009F499C065E080E00E9455 +:105AB0009A0860E08AE991E00E948B1366E080E03A +:105AC0000E949A086091F902669561708FE991E0F1 +:105AD0000E948B1367E080E00E949A086091F902AF +:105AE0006095617084EA91E00E948B1368E080E029 +:105AF0000E949A086091F90262FB662760F988EAC1 +:105B000091E00E948B137DA66CA64091F10250910A +:105B1000F2026091F3027091F4022FB7F894809131 +:105B2000570490915804A0915904B0915A042FBF82 +:105B3000841B950BA60BB70B8D329140A105B105C7 +:105B400008F48ACF0E9462086093F1027093F20217 +:105B50008093F3029093F4028091F002811104C0CB +:105B600080916701811142C06DE080E00E949A0837 +:105B700060E08DEA91E00E948B136AE080E00E9471 +:105B80009A0881E0809367018091EF0290E001968E +:105B9000817099278093EF0221E030E0281B390BB8 +:105BA00040E6429FC001439F900D11242091EE02D8 +:105BB000222351F1855C9B4F0E9492064DCF83308A +:105BC00089F0843009F071CF60E08EE891E003C085 +:105BD00060E082E891E00E948B1367CF60E088E884 +:105BE00091E0F9CF60E084E991E0F5CF6AE080E0F0 +:105BF0000E949A0860E08DEA91E00E948B136BE0AE +:105C000080E00E949A08C0CF2091ED02222319F073 +:105C100085589C4FD1CF85549D4FCECF64E080E016 +:105C20000E949A0860E083EB91E00E948B1365E08C +:105C300080E00E949A0860E089EB91E00E948B135B +:105C400069E080E00E949A088BEF94E0B5CF8091E4 +:105C50001B0361E070E081115ACD082F10E02B0189 +:105C6000082E02C0440C551C0A94E2F7A9014421F5 +:105C70005521452B09F448C090911A0390FD46C068 +:105C80008295880F807680936A01980136952795D2 +:105C90003695279520936D01815E80936B0110925C +:105CA0006E0124E630E047E050E068E671E088E706 +:105CB0000E944C32892B09F02ACDA80175E0440FCF +:105CC000551F7A95E1F780911A0380FD2DC0425847 +:105CD0005B4F04E610E020E230E060E488E70E94D9 +:105CE0007332892B09F013CD0E94B30DC201809548 +:105CF000909540907C0450907D0448225922509207 +:105D00007D0440927C0403CD8F5FA7CF880F880F5E +:105D1000880F80936A0110926D01895F80936B01F7 +:105D200083E080936E01BDCFEAEFF2E080E2DF0115 +:105D30001D928A95E9F7EEE0F2E0F9AFE8AF0AE0EC +:105D400012E099249394A8ADB9AD2D91B9AFA8AF45 +:105D5000F80121908F01240E352E311CC10182588B +:105D60009B4F1C01E22FF0E0E650FD4F30E020E0B9 +:105D700067E0A62EA21AB92C022E01C0BB0C0A9411 +:105D8000EAF7610190E0D6018D916D018B216A2DBA +:105D9000691B6770862E062E000C770BB82F01C08A +:105DA000BB0F8A94EAF78B2E719561957109677024 +:105DB000772701C086956A95EAF7882A8081882A24 +:105DC00080829F5F9830F9F62F5F3F4F31962830E1 +:105DD000310571F6E2E1F2E028AD39ADE217F307E3 +:105DE00009F0B1CF04E610E020E230E04AEF52E0E3 +:105DF00074CF45E00E94FB0C20912C0330912D03C1 +:105E0000281B390B30932D0320932C0345E0602F82 +:105E1000812F0E94FB0C20912A0330912B03281B19 +:105E2000390B30932B0320932A036CE273E087E352 +:105E300093E00E94DC0C6AE273E088E393E00E9446 +:105E4000DC0C10923A03109239030DCD0197909318 +:105E500034038093330307CD81608093360384E05D +:105E60000E94B31384E190E0F2CF809142038F5FF0 +:105E700080934203F8CC81E080FF0FC0E091520490 +:105E8000F0915304309749F082E08093240304801A +:105E9000F581E02D84E293E009951092260310929B +:105EA0002703109228031092290386E0E4E2F3E02E +:105EB000AEE1B3E001900D928A95E1F70E940A1CD1 +:105EC00090934103809340030E94C20E909143033C +:105ED000891731F00E94C20E809343030E94B816C6 +:105EE00080916C04843009F051CB83E08093E90009 +:105EF0008091E80082FF4ACB8091E80090E085FF26 +:105F00000BC00E94F40630E2E32EF12C8E010F5FED +:105F10001F4F8823E1F091E08091E8008B77809318 +:105F2000E800992309F432CBE981E150E33108F02C +:105F300071C0F0E0EC5EF84C0C9449358091F100B2 +:105F4000D8018D938D01B1E0EB1AF10821F3809116 +:105F5000E80085FDF3CF8091E8008B778093E8001F +:105F60000E94F406882399F3D6CF1A8289E08B83A6 +:105F700011C08A81823009F48FC1833091F1813060 +:105F800009F048C00E9462080E944F356B837C83F1 +:105F90008D839E8380916C04843009F0F7CA109140 +:105FA000E9001F709091EC00892F817090FD80E8CE +:105FB000182B82E08093E9008091E80080FF0DC0FB +:105FC00050E040E060E270E0CE0101960E942507BB +:105FD0008091E8008E778093E8001F701093E900AD +:105FE000D5CADE011396EFE4F3E081918D9323E0AF +:105FF000E935F207D1F7CECF8A81823059F46B812F +:106000007C818D819E810E944F3586E290E00E94C6 +:106010008935C0CF8FEF8983BDCF4C816B818A8159 +:106020000E9492149827892798279E838D83B2CF48 +:106030000D811E811027012710278A81EB803EE009 +:10604000E39E700111249CE8899FE00CF11C11244F +:106050008C8190E0880F991FE80EF91E612FC7010F +:1060600087960E948935602FC7018896D0CF0E94FD +:10607000161490CF8A818138C1F060F4803809F01D +:1060800089CF20E04B8160917904809178040E944F +:10609000521580CF8238E9F0833809F07BCF20E0B9 +:1060A00040917A046C818B81F2CF60E08B810E94F9 +:1060B00069168B81811103C00E94E50F6BCF80911F +:1060C000770481608093770460E086950E9469166A +:1060D00061CF8B8180937B045DCF8A81813899F079 +:1060E00030F4803809F056CF80917A0440CF82385E +:1060F00091F0833809F04ECF809178048B838091A2 +:1061000079048C8347CF8091770480FF02C0869505 +:106110002ECF80E02CCF80917B0429CF6091770433 +:10612000709178048091790490917A040E944015CE +:1061300031CF80E18A832ECF81E08A838DE117CF32 +:10614000CA80DB80DC24CD24DC248E010F5F1F4F4E +:10615000EC80E00EF12EF11CC6018D519D4F0E1505 +:106160001F0509F417CFADE1CA16A1E0DA0650F415 +:106170000E947535F8018483BFEFCB1ADB0A0F5FED +:106180001F4FEACFD80114961C92F6CF0A811B81CB +:10619000102701271027FE0131966F01EC80E00ED9 +:1061A000F12EF11CC8018D519D4FE016F10609F446 +:1061B000F1CE0D31F1E01F0728F4D60114966C9151 +:1061C0000E948935BFEFCB1ADB0A0F5F1F4FEACF62 +:1061D0000E940614DFCE85E0ADCFCA80DB80DC24D0 +:1061E000CD24DC248E010F5F1F4FEC80E00EF12EDA +:1061F000F11CC6018796E016F10609F4CBCEECEB54 +:10620000CE16E2E0DE0658F40E947535D8011496E9 +:106210008C93FFEFCF1ADF0A0F5F1F4FEACFF80111 +:106220001482F7CF0A811B811027012710279E01B6 +:106230002F5F3F4F6901EC80E00EF12EF11CC80189 +:106240008796E016F10609F4A5CE0C3B32E0130761 +:1062500028F4D60114966C910E948935BFEFCB1AB1 +:10626000DB0A0F5F1F4FEBCF09BD19BD09B400FE5C +:10627000FDCF8091D8008F7D8093D8008091E00081 +:1062800082608093E0008091E00081FDFCCF10925D +:106290005F040E94FA0F75CB86E290E00E9475358C +:1062A0001B821C821D828E8375CE1092B9008CE0F9 +:1062B0008093B80008959F92AF92BF92CF92DF92E1 +:1062C000EF92FF920F931F93CF93DF93B82EEB01C2 +:1062D0000E940A1C6C01EE24E394F12CC431D10518 +:1062E00060F025E0E22EF12CCF3FDC0731F0CE014B +:1062F00064E170E00E9415357B0184EAA82E94E8E1 +:10630000992E1092BC00A092BC000E940A1C8C0125 +:106310008091BC0087FF0DC08091B900887F8830D4 +:1063200039F18091B900887F803111F10FEF1FEFB3 +:1063300009C00E940A1C801B910B8E159F0540F31B +:106340000EEF1FEFCF3FDC07E1F2C6010E94FB1BFF +:106350008C179D07B0F2C801DF91CF911F910F916B +:10636000FF90EF90DF90CF90BF90AF909F900895F7 +:10637000B092BB009092BC000E940A1C8C018091DC +:10638000BC0087FF0AC08091B900887F883111F076 +:10639000803461F610E000E0DECF0E940A1C801B12 +:1063A000910B8E159F0558F3CBCF0F931F93CF936F +:1063B000DF93EB018093BB0084E88093BC000E94D4 +:1063C0000A1C8C018091BC0087FF11C02091B9008C +:1063D000287F81E090E0283211F490E080E09195F0 +:1063E00081959109DF91CF911F910F910895CF3F32 +:1063F000DC0741F30E940A1C801B910B8C179D0740 +:1064000008F38EEF9FEFEECF0F931F93CF93DF93A1 +:10641000EC0184EC8093BC000E940A1C8C018091EA +:10642000BC0087FF08C08091BB0090E0DF91CF9156 +:106430001F910F910895CF3FDC0789F30E940A1C3A +:10644000801B910B8C179D0750F38EEF9FEFEECFC3 +:106450000F931F93CF93DF93EC0184E88093BC00EC +:106460000E940A1C8C018091BC0087FF08C08091AB +:10647000BB0090E0DF91CF911F910F910895CF3F26 +:10648000DC0789F30E940A1C801B910B8C179D0767 +:1064900050F38EEF9FEFEECFCF92DF92EF92FF920D +:1064A0000F931F93CF93DF936B018A017901B90199 +:1064B0000E945B31E6010C0D1D1DC017D10761F470 +:1064C00024E92093BC00DF91CF911F910F91FF90A1 +:1064D000EF90DF90CF90089597FDF2CFB7018991AB +:1064E0000E94D531EACFCF92DF92EF92FF920F93C5 +:1064F0001F93CF93DF93C62F6A017901B8010E94E1 +:106500005B3197FD0CC0B8018C2F0E94D531E6019C +:10651000EC0CFD1CCE15DF0511F097FF0CC024E933 +:106520002093BC00DF91CF911F910F91FF90EF90CE +:10653000DF90CF900895B80189910E94D531EACFBC +:10654000CF92DF92EF92FF920F931F93CF93DF933F +:10655000F82EE62EEA016901B8010E945B3197FD31 +:1065600015C0B8018E2D0E94D53197FD0FC0B8011E +:106570008F2D81600E945B31F12CE12C21E0C21A49 +:10658000D108EC14FD0400F597FF11C024E9209315 +:10659000BC001816190614F490E080E0DF91CF914A +:1065A0001F910F91FF90EF90DF90CF900895C80159 +:1065B0000E94043297FD04C0FE01EE0DFF1D808392 +:1065C0002FEFE21AF20ADDCF97FDE0CFC8010E945B +:1065D000283297FDDBCFCC0DDD1D8883D7CF84E932 +:1065E0008093BC0008958EE14A9B02C08150E1F780 +:1065F0004A9BFECF08955A9880E28A95F1F75A9AFD +:106600000895FC013BE03A95F1F798E020E080E046 +:1066100031E040E14A95F1F7880F4A9B02C0816062 +:10662000232742E04A95F1F7000040E14A95F1F74F +:10663000915079F790E19A95F1F799B132E03A9556 +:10664000F1F7000040E14A95F1F792FB992790F9A4 +:1066500092272081920F90830895EF92FF920F93DB +:106660001F93CF93DF930F92CDB7DEB719828C01C2 +:106670007C01E60EF11C0E151F0561F481E0998185 +:10668000911180E00F90DF91CF911F910F91FF90BA +:10669000EF9008950E94F332CE0101960E940133DB +:1066A000F80181938F01E7CF529A5A9A0895529830 +:1066B0005A9AEA9AE9E6F0E080818F7C8083089517 +:1066C0006150770B91E001C0990F6A95EAF720E0DD +:1066D00031E0911108C0222391F05A9A80E28A9504 +:1066E000F1F75A980895492F482339F05A9A2327E9 +:1066F00040E24A95F1F79695ECCF5A98F9CF5A981F +:10670000EDCFFF920F931F93CF93DF93EC018C019A +:10671000060F111DC017D10731F4DF91CF911F91E2 +:106720000F91FF900895F9900E94FB3268E08F2D41 +:106730000E946033EFCF1F920F920FB60F92112479 +:10674000EF92FF920F931F932F933F934F935F937B +:106750006F937F938F939F93AF93BF93EF93FF9329 +:10676000CF93DF930F92CDB7DEB719820E94F33239 +:10677000CE0101960E940133A82FA695A695A69555 +:10678000282F229525709A2F9570290F922F93709C +:1067900026952695920F982797708981982B09F056 +:1067A00075C0A83008F072C080E18A95F1F75A9A56 +:1067B000529AB2E0BA95F1F700C05A98EA2EF12C3D +:1067C000EAE0AE9FD0011124AF5FBE4F1896ED9165 +:1067D000FC9119973097B1F06091F8017091F9012F +:1067E00016962D913C911797260F371F13968D9172 +:1067F0009C911497680F791F15964C9115971296D6 +:106800008C9109958AE08E9DF0018F9DF00D1124E9 +:10681000EF5FFE4F6581662351F02091F8013091C2 +:10682000F90186819781820F931F0E9481330E9414 +:10683000FB32F0E1FA95F1F75A9852985A9A80E1B2 +:106840008A95F1F78AE08E9D80018F9D100D1124AD +:106850000F5F1E4FD80112966C911297662371F14B +:106860002091F8013091F90113968D919C91820F3E +:10687000931F0E942D33D801ED91FC91882311F0D4 +:1068800088E001C082E080830E94F3320F90DF91A4 +:10689000CF91FF91EF91BF91AF919F918F917F9198 +:1068A0006F915F914F913F912F911F910F91FF90A9 +:1068B000EF900F900FBE0F901F901895ED91FC91E7 +:1068C000DFCF0F931F93CF93DF93EC0108970CF06A +:1068D000A9C08AE08C9FF0018D9FF00D1124EF5F1D +:1068E000FE4F80819181892B09F49CC0F894529AC3 +:1068F0005A9885E08A95F1F700008C2F869585706F +:106900009C2F9570890F982F937086958695890F87 +:106910008E0193E0000F111F9A95E1F7082B0E945A +:10692000FB3200C068E0802F0E946033A0E1AA958E +:10693000F1F752985A9A4A9B27C087E090E04A990B +:1069400025C08AE08C9F80018D9F100D11240F5F60 +:106950001E4FF80165816623A1F12091F801309165 +:10696000F90186819781820F931F0E942D33811137 +:1069700028C0529A5A9AD801ED91FC9182E0808306 +:10698000789482E090E016C000C0D5CF0197B9F4AA +:10699000529A5A9A8AE08C9FF0018D9FF00D112433 +:1069A000EF5FFE4F0190F081E02D81E080837894CD +:1069B00081E090E0DF91CF911F910F91089500C089 +:1069C000BECF0E94F332B0E2BA95F1F75A98529ACC +:1069D000E0E1EA95F1F78AE08C9FF0018D9FF00DE0 +:1069E0001124EF5FFE4F6281662351F02091F80180 +:1069F0003091F90183819481820F931F0E9481332A +:106A00000E94FB328AE08C9FF0018D9FF00D1124D3 +:106A1000EF5FFE4F0190F081E02D1082789490E0BE +:106A200080E0C8CF84E090E0C5CFAA1BBB1B51E13A +:106A300007C0AA1FBB1FA617B70710F0A61BB70BEE +:106A4000881F991F5A95A9F780959095BC01CD0193 +:106A50000895991B79E004C0991F961708F0961BBA +:106A6000881F7A95C9F78095089597FB072E16F42D +:106A7000009407D077FD09D00E94153507FC05D09A +:106A80003EF4909581959F4F0895709561957F4F45 +:106A90000895EE0FFF1F0590F491E02D09946927EA +:106AA000962769277827872778270895FB01DC0137 +:106AB00002C005900D9241505040D8F70895FB0157 +:106AC000DC0104C08D910190801921F441505040A7 +:106AD000C8F7881B990B0895FB01DC0102C00190E7 +:106AE0000D9241505040D8F70895F999FECF92BDCC +:106AF00081BDF89A992780B50895A6E1B0E044E0F9 +:106B000050E00C94AF35A8E1B0E042E050E00C94C6 +:106B1000AF35262FF999FECF92BD81BDF89A019726 +:106B200000B4021639F01FBA20BD0FB6F894FA9AD5 +:106B3000F99A0FBE08950396272F0E948A350E9466 +:106B40008935252F0E948A35242F0C948A35019689 +:106B5000272F0E948A350C948935DC01CB01FC017A +:106B6000F999FECF06C0F2BDE1BDF89A319600B4A6 +:106B70000D9241505040B8F708950E94FF3508F437 +:106B800081E00895E89409C097FB3EF490958095C4 +:106B9000709561957F4F8F4F9F4F9923A9F0F92FE3 +:106BA00096E9BB279395F695879577956795B79561 +:106BB000F111F8CFFAF4BB0F11F460FF1BC06F5F47 +:106BC0007F4F8F4F9F4F16C0882311F096E911C059 +:106BD000772321F09EE8872F762F05C0662371F07A +:106BE00096E8862F70E060E02AF09A95660F771F8E +:106BF000881FDAF7880F9695879597F90895990F6A +:106C00000008550FAA0BE0E8FEEF16161706E80776 +:106C1000F907C0F012161306E407F50798F0621B97 +:106C2000730B840B950B39F40A2661F0232B242B6C +:106C3000252B21F408950A2609F4A140A6958FEF8B +:106C4000811D811D08950E9436360C94A7360E943E +:106C5000993638F00E94A03620F0952311F00C945C +:106C600090360C94963611240C94DB360E94B8367C +:106C700070F3959FC1F3950F50E0551F629FF0018F +:106C8000729FBB27F00DB11D639FAA27F00DB11DA8 +:106C9000AA1F649F6627B00DA11D661F829F222731 +:106CA000B00DA11D621F739FB00DA11D621F839FB8 +:106CB000A00D611D221F749F3327A00D611D231F8E +:106CC000849F600D211D822F762F6A2F11249F57DC +:106CD00050409AF0F1F088234AF0EE0FFF1FBB1FDF +:106CE000661F771F881F91505040A9F79E3F51059E +:106CF00080F00C9490360C94DB365F3FE4F3983EC2 +:106D0000D4F3869577956795B795F795E7959F5F47 +:106D1000C1F7FE2B880F911D9695879597F90895D9 +:106D200097F99F6780E870E060E008959FEF80EC3E +:106D3000089500240A9416161706180609060895E1 +:106D400000240A9412161306140605060895092E47 +:106D50000394000C11F4882352F0BB0F40F4BF2BB6 +:106D600011F460FF04C06F5F7F4F8F4F9F4F0895F6 +:106D700057FD9058440F551F59F05F3F71F04795EC +:106D8000880F97FB991F61F09F3F79F087950895D1 +:106D9000121613061406551FF2CF4695F1DF08C0F0 +:106DA000161617061806991FF1CF8695710561050D +:106DB00008940895E894BB2766277727CB0197F9B5 +:106DC0000895F894FFCFEA101211651112116511A0 +:106DD00045117D1165117A128712121512151B15B6 +:106DE0001B151D151B151B151B151215121522152C +:106DF0001B151B152215671CDD1CE01CF41CF71C61 +:106E00000A1D131D371D7D1DAF1DC31D491D6C1DA2 +:106E1000052105215E215E2190213821382138216C +:106E2000AA211B222B222B22B52FB92FFC2F0D308C +:106E3000183037303A306D308E300A300A309930A1 +:0E6E40009C30A030C630E830EB30ED3012311F +:106E4E0001380200000001000000003802000000BE +:106E5E0005010000003802000000010600000038A5 +:106E6E0002000000010700000038020408000000C4 +:106E7E000000003802090C0000000000003802017A +:106E8E001500000000000036323331F7F6676697C2 +:106E9E00C6343500000000000180005F082E0E0D84 +:106EAE000E090E050EF4F5010021007F22000300ED +:106EBE004A004A4A01F6F731333236674C4159459A +:106ECE00520042617365200047616D65200052617A +:106EDE00697365004C6F776572004C4F434B0043EE +:106EEE00617073004E756D005363726C002020202C +:106EFE00202000534F4C415200544D5053540081AA +:106F0E008283E200E900EA00B500B600B700CD00CA +:106F1E008301CC008A0192019401210223022402F2 +:106F2E002502260227022A02B300B4006F00700069 +:106F3E000603060806010606AF0200FF0100010067 +:106F4E0000FFFF0000010001FF00000810181810DC +:106F5E0008000001020202020202020202024022A4 +:0E6F6E007B99017701FC00000C190C390C0016 :00000001FF From 785f8f64a39ff8f1310133724433bba103326b73 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:19:32 -0500 Subject: [PATCH 51/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index ca44ed9ef8e4..4a15f178d90f 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,11 +1,11 @@ +### [ Note: When flashing, make sure to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. ] + # Sofle Keyboard ![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/utkZbYS.jpeg) Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. -## When flashing, MAKE SURE to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. - For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) Build guide and log is available here: [SofleKeyboard build log/guide](https://josef-adamcik.cz/electronics/soflekeyboard-build-log-and-build-guide.html) From 63155e920727158b14464185c8cc5757c45ffb43 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:21:59 -0500 Subject: [PATCH 52/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 4a15f178d90f..d05c79545053 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,10 +1,10 @@ -### [ Note: When flashing, make sure to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. ] +### [ Note: When flashing this firmware, make sure to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. ] # Sofle Keyboard ![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/utkZbYS.jpeg) -Sofle is 6×4+5 keys column-staggered split keyboard. Based on Lily58, Corne and Helix keyboards. +Sofle is a 58-key column-staggered split keyboard with 2 rotary encoders, 2 OLEDs, trackball, and haptic feedback. Based on Lily58, Corne and Helix keyboards. For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) From f75e3eb57603edc6261d36ac133a35d1bb4e0955 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:23:19 -0500 Subject: [PATCH 53/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index d05c79545053..e350685e1dc8 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,10 +1,10 @@ -### [ Note: When flashing this firmware, make sure to load the VIA keymap and layout otherwise your keys won't work! Please refer to the sections further down the page. ] +### -- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the sections below. -- # Sofle Keyboard ![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/utkZbYS.jpeg) -Sofle is a 58-key column-staggered split keyboard with 2 rotary encoders, 2 OLEDs, trackball, and haptic feedback. Based on Lily58, Corne and Helix keyboards. +Sofle is a 58-key column-staggered split keyboard with rotary encoders, OLEDs, trackball, and haptic feedback. Based on Lily58, Corne and Helix keyboards. For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) From 6a719a89d5be39bbb21fbdd1025c12b9ecbd40a8 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:24:53 -0500 Subject: [PATCH 54/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index e350685e1dc8..582b48601d40 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,10 +1,10 @@ -### -- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the sections below. -- +### --- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the sections below. --- # Sofle Keyboard ![SofleKeyboard version 2.1 RGB Keyhive](https://i.imgur.com/utkZbYS.jpeg) -Sofle is a 58-key column-staggered split keyboard with rotary encoders, OLEDs, trackball, and haptic feedback. Based on Lily58, Corne and Helix keyboards. +Sofle is a 58-key column-staggered split keyboard with rotary encoders and OLEDs with support for a trackball and haptic feedback. Based on Lily58, Corne and Helix keyboards. For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://josef-adamcik.cz/electronics/let-me-introduce-you-sofle-keyboard-split-keyboard-based-on-lily58.html) From 75f6034c9b36a3cf504e4879615eb5fe0a07ee34 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:26:14 -0500 Subject: [PATCH 55/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 582b48601d40..beeeb5f10f05 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -54,7 +54,7 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j - Double tap layers to stay on a layer instead of momentary push. - Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). -## Using with VIA +## Using with VIA (Important! Please Read.) - After flashing, in VIA make sure to Import Keymap, which is "sofle VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. - Go to Save+Load to Load Saved Layout. You can import my own layout "sofle VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. From ea02e0a973d4ce33924c731fe1627717af53aef2 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 13 Nov 2021 23:26:55 -0500 Subject: [PATCH 56/94] Update readme notes. --- keyboards/solartempest/sofle/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index beeeb5f10f05..6513a217e0e3 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -1,4 +1,4 @@ -### --- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the sections below. --- +### --- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the VIA section below. --- # Sofle Keyboard From 2e9de99767bb7c187517d9c5b575a02021203c0e Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 25 Nov 2021 01:28:45 -0500 Subject: [PATCH 57/94] Space optimizations, code cleanup, added code comments. --- keyboards/solartempest/sofle/config.h | 165 +- .../solartempest/sofle/keymaps/via/config.h | 2 +- .../solartempest/sofle/keymaps/via/encoder.c | 8 +- .../solartempest/sofle/keymaps/via/keymap.c | 124 +- .../sofle/keymaps/via/ocean_dream.c | 555 --- .../solartempest/sofle/keymaps/via/snakey.c | 14 +- .../sofle/keymaps/via/snakey_minimal.c | 84 +- keyboards/solartempest/sofle/rules.mk | 28 +- .../sofle/solartempest_sofle_via.hex | 3553 ++++++++--------- 9 files changed, 1954 insertions(+), 2579 deletions(-) delete mode 100644 keyboards/solartempest/sofle/keymaps/via/ocean_dream.c diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 753ac13cd681..59542d516202 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -19,78 +19,87 @@ #pragma once #include "config_common.h" -// USB Device descriptor parameter +// USB Device descriptor parameters #define VENDOR_ID 0xFC32 -#define PRODUCT_ID 0x1287 //Original is 0x0287 but do not want to load default VIA keymap +#define PRODUCT_ID 0x1287 //Original is 0x0287 but we do not want to load default VIA keymap as it has errors for the bottom row #define DEVICE_VER 0x0002 #define MANUFACTURER Keyhive -#define PRODUCT Solarius_Sofle //VIA version for this PCB is incorrect for the bottom row +#define PRODUCT Solarius_Sofle //New unique name #define DESCRIPTION Rose version of the Sofle // Set which side is master -//#define EE_HANDS //Use this instead for EEPROM setting #define MASTER_LEFT +//#define EE_HANDS //Use this if EEPROM setting is desired instead -// Key matrix size -// Rows are doubled-up. Added extra column for rotary encoder VIA mapping. +// Key Matrix Settings +// Rows are doubled-up for split keyboards. Added extra column for rotary encoder VIA mapping. #define MATRIX_ROWS 10 #define MATRIX_COLS 7 - -// wiring of each half #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. #define MATRIX_ROW_PINS_RIGHT { C6, D7, E6, B4, B5 } #define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. #define DIODE_DIRECTION COL2ROW - #define DEBOUNCE 6 //Default is 5 -// Encoder support -#define ENCODERS_PAD_A { F5 } -#define ENCODERS_PAD_B { F4 } -#define ENCODERS_PAD_A_RIGHT { F4 } -#define ENCODERS_PAD_B_RIGHT { F5 } -#define ENCODER_RESOLUTIONS { 4, 2 } //Left encoder seems to have double-output issue but right does not. +// NKRO Settings +#ifdef NKRO_ENABLE + #define FORCE_NKRO //Force NKRO if enabled. +#endif +// Tapping settings #define TAP_CODE_DELAY 10 #define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer #define TAPPING_TERM 160 //Tapping duration in ms -// Communication between sides -#define SOFT_SERIAL_PIN D2 +// Combo settings +#ifdef COMBO_ENABLE + #define COMBO_COUNT 1 //Number of tap combos used + #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. +#endif // Disabled for LTO #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION // Disabled to save space -#define NO_ACTION_ONESHOT //Save 244 bytes -#define NO_RESET //Save 40 bytes +#define NO_ACTION_ONESHOT //Save 244 bytes (-244). +#define NO_RESET //Save 40 bytes (-40). + +// Encoder support +#define ENCODERS_PAD_A { F5 } +#define ENCODERS_PAD_B { F4 } +#define ENCODERS_PAD_A_RIGHT { F4 } +#define ENCODERS_PAD_B_RIGHT { F5 } +#define ENCODER_RESOLUTIONS { 4, 2 } //Left encoder seems to have double-output issue but right does not. This resolves that issue. + +// Communication between sides +#define SOFT_SERIAL_PIN D2 // OLED settings #ifdef OLED_ENABLE - #define OLED_TIMEOUT 80000 //120000 = 2 minutes in ms. - #define OLED_BRIGHTNESS 90 // Default 100. - #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). - //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268). - //#define SPLIT_LAYER_STATE_ENABLE - //#define SPLIT_LED_STATE_ENABLE - //#define SPLIT_MODS_ENABLE - #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). - //#define OLED_NO_SLAVE //Enable for snakey to not render slave OLED (-160). + #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. + #define OLED_BRIGHTNESS 90 //Default is 100. + #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). + //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). + //#define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). + //#define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). + //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). + #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). + //#define OLED_NO_SLAVE //Enable for snakey to not render slave OLED (-160). #endif -//Haptic feedback settings +// Haptic feedback settings #ifdef HAPTIC_ENABLE #define FB_ERM_LRA 1 - #define FB_BRAKEFACTOR 3 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 - #define FB_LOOPGAIN 0 // For Low:0, Medium:1, High:2, Very High:3 - - // Please refer to your datasheet for the optimal setting for your specific motor. - #define RATED_VOLTAGE 3 - #define V_RMS 2.0 - #define V_PEAK 2.1 - #define F_LRA 205 //resonance freq + #define FB_BRAKEFACTOR 2 // For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 + #define FB_LOOPGAIN 0 // For Low:0, Medium:1, High:2, Very High:3 + + // Refer to datasheet for the optimal setting for specific motors. + #define RATED_VOLTAGE 2 //2Vrms per ELV1411A datasheet, which is the LRA used for the Pimoroni Haptic Bzzz driver DRV2605. + #define V_PEAK 2.0 //Per QMK docs. + #define V_RMS 2.0 //Per ELV1411A datasheet. + #define F_LRA 150 //Resonant frequency per ELV1411A datasheet. #define NO_HAPTIC_PUNCTUATION #define NO_HAPTIC_ALPHA @@ -99,55 +108,49 @@ //#define NO_HAPTIC_NAV #endif -// Combo settings -#ifdef COMBO_ENABLE - #define COMBO_COUNT 1 //Number of tap combos used - #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. -#endif - // Pimoroni trackball settings #ifdef POINTING_DEVICE_ENABLE #define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms - //#define PIMORONI_TRACKBALL_ROTATE + //#define PIMORONI_TRACKBALL_ROTATE //Change according to your particular installed trackball orientation. #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INVERT_X //#define PIMORONI_TRACKBALL_CLICK //Incompatible with keymap mouse keys. Use trackball_register_button() and trackball_click() instead. #endif - -// Add RGB underglow -#define RGB_DI_PIN D3 -#define RGBLED_NUM 74 -#define RGBLED_SPLIT {37,37} -//#define RGBLIGHT_ANIMATIONS // Very memory intensive -#define RGBLIGHT_EFFECT_STATIC_GRADIENT //Firmware size (+262) -#define RGBLIGHT_LIMIT_VAL 160 //Power draw may exceed 0.6A at max brightness with white colour. -#define RGBLIGHT_LAYERS -#define RGBLIGHT_SLEEP -//#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF //Shows lock key lighting status even when RGB is off - - -//RGB LED Conversion macro from physical array to electric array (+146 to firmware size) -//First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping -#define LED_LAYOUT( \ - L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ - L10, L12, L14, L19, L111, L113, \ - L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ - L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ - L40, L42, L44, L49, L411, L413, \ - L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ - L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ - L71, L76, L77, L712 )\ - { \ - L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ - } -//RGB LED logical order map -#define RGBLIGHT_LED_MAP LED_LAYOUT( \ - 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ - 4, 16, 28, 45, 57, 69, \ - 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ - 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ - 1, 13, 25, 48, 60, 72, \ - 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ - 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ - 10, 36, 37, 63 ) +// RGB settings +#ifdef RGBLIGHT_ENABLE + #define RGB_DI_PIN D3 + #define RGBLED_NUM 74 + #define RGBLED_SPLIT {37,37} + //#define RGBLIGHT_ANIMATIONS // Very memory intensive (+2604) + #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Preferred RGB effect (+262) + #define RGBLIGHT_LIMIT_VAL 160 //Power draw may still exceed the USB limitations of 0.6A at max brightness with white colour with this setting. + #define RGBLIGHT_LAYERS //Enable layer light indicators + #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) + //#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF //Shows lock key lighting status even when RGB is off + + //RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. + //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping + #define LED_LAYOUT( \ + L00, L01, L02, L03, L04, L05, L08, L09, L010, L011, L012, L013, \ + L10, L12, L14, L19, L111, L113, \ + L20, L21, L22, L23, L24, L25, L28, L29, L210, L211, L212, L213, \ + L30, L31, L32, L33, L34, L35, L38, L39, L310, L311, L312, L313, \ + L40, L42, L44, L49, L411, L413, \ + L50, L51, L52, L53, L54, L55, L58, L59, L510, L511, L512, L513, \ + L62, L63, L64, L65, L66, L67, L68, L69, L610, L611, \ + L71, L76, L77, L712 )\ + { \ + L14,L12,L10,L40,L42,L44,L71,L76,L66,L65,L55,L35,L25,L05,L04,L24,L34,L54,L64,L63,L53,L33,L23,L03,L02,L22,L32,L52,L62,L51,L31,L21,L01,L00,L20,L30,L50,L19,L111,L113,L413,L411,L49,L712,L77,L67,L68,L58,L38,L28,L08,L09,L29,L39,L59,L69,L610,L510,L310,L210,L010,L011,L211,L311,L511,L611,L512,L312,L212,L012,L013,L213,L313,L513, \ + } + //RGB LED logical order map + #define RGBLIGHT_LED_MAP LED_LAYOUT( \ + 5, 6, 17, 18, 29, 30, 43, 44, 55, 56, 67, 68, \ + 4, 16, 28, 45, 57, 69, \ + 3, 7, 15, 19, 27, 31, 42, 46, 54, 58, 66, 70, \ + 2, 8, 14, 20, 26, 32, 41, 47, 53, 59, 65, 71, \ + 1, 13, 25, 48, 60, 72, \ + 0, 9, 12, 21, 24, 33, 40, 49, 52, 61, 64, 73, \ + 11, 22, 23, 34, 35, 38, 39, 50, 51, 62, \ + 10, 36, 37, 63 ) +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/config.h b/keyboards/solartempest/sofle/keymaps/via/config.h index d9c79020c416..15790961fa5e 100644 --- a/keyboards/solartempest/sofle/keymaps/via/config.h +++ b/keyboards/solartempest/sofle/keymaps/via/config.h @@ -18,5 +18,5 @@ #pragma once -// Set number of layers for VIA, each is 30 bytes +// Set number of layers for VIA (+30 per layer) #define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/solartempest/sofle/keymaps/via/encoder.c b/keyboards/solartempest/sofle/keymaps/via/encoder.c index 3ecbfe5d39f1..e309b919f1f9 100644 --- a/keyboards/solartempest/sofle/keymaps/via/encoder.c +++ b/keyboards/solartempest/sofle/keymaps/via/encoder.c @@ -18,15 +18,15 @@ #ifdef ENCODER_ENABLE - static uint8_t encoder_state[2] = {0}; //Thanks to Drashna for this improved code with better extensibility. - static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}}; + static uint8_t encoder_state[2] = {0}; + static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}}; //Use these keymap positions to specify the encoder functions on rotate. static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}}; void encoder_action_unregister(void) { for (int index = 0; index < 2; ++index) { if (encoder_state[index]) { keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; - encoder_state[index] = 0; + encoder_state[index] = 0; action_exec(encoder_event); } } @@ -34,7 +34,7 @@ void encoder_action_register(uint8_t index, bool clockwise) { keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); action_exec(encoder_event); } diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 4498d8c7a67d..721ed049eac8 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -18,7 +18,11 @@ #include QMK_KEYBOARD_H #include //This is required for OLED sprintf. -#include "encoder.c" + +#ifdef ENCODER_ENABLE + #include "encoder.c" +#endif + #ifdef OLED_ENABLE //#include "oled.c" //Stock OLED code //Note that the keyboard animations below take a large amount of space! @@ -30,22 +34,26 @@ #ifdef POINTING_DEVICE_ENABLE #include "drivers/sensors/pimoroni_trackball.h" - bool was_scrolling = true; //Remember last state of trackball scrolling + bool was_scrolling = true; //Remember preferred state of trackball scrolling #endif #ifdef HAPTIC_ENABLE #include "drivers/haptic/DRV2605L.h" #endif -#ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT #endif + +//Variables for custom keycodes bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; bool lshift_held = false; // LShift Backspace Delete whole Word Code bool rshift_held = false; // RShift Backspace Delete whole Word Code static uint16_t held_shift = 0; + + #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. ATABF = USER00, //Alt tab forwards @@ -69,7 +77,7 @@ static uint16_t held_shift = 0; #endif -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these layouts to save space when using only VIA. +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these hard-coded layouts to save space when using only VIA (+700). /* QWERTY * ,-----------------------------------------. ,-----------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | @@ -90,8 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_MUTE, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC__VOLDOWN,KC_PGDN,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_LGUI,KC_LALT,KC_LCTRL,MO(2), KC_ENT, KC_SPC, MO(3), KC_RCTRL,KC_RALT,KC_RGUI -) -, +), [1] = LAYOUT( KC_PSCR, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, KC_F4, KC_T, KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, @@ -112,23 +119,32 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these KC_SLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ATABR, NML, KC_CAPS, KC_PGUP, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[4] = LAYOUT( + 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_NLCK, 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_SLCK, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )*/ }; #ifdef POINTING_DEVICE_ENABLE - void run_trackball_cleanup(void) { //Code by Drasnha. Sets colour of trackball LED. + void run_trackball_cleanup(void) { //Set colour of trackball LED. Does not require RGBLIGHT_ENABLE if colour shorthands are not used. + #ifdef POINTING_DEVICE_ENABLE if (trackball_is_scrolling()) { trackball_set_rgbw(43, 153, 103, 0x00); } else if (trackball_get_precision() != 1.0) { trackball_set_rgbw(0, 27, 199, 0x00); } else { - trackball_set_rgbw(RGB_GOLDENROD, 0x00); + trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. } + #endif } #if defined(PIMORONI_TRACKBALL_ROTATE) || defined(PIMORONI_TRACKBALL_INVERT_Y) - bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky (Thanks!). This corrects the rotate/inversion scrolling issue currently in QMK Master. + bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky. This corrects the rotate/inversion scrolling issue currently in QMK Master. if (trackball_is_scrolling()) { pimoroni_data temp = *trackball_data; #ifdef PIMORONI_TRACKBALL_ROTATE @@ -148,12 +164,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these static bool mouse_button_one, trackball_button_one; #endif - void trackball_register_button(bool pressed, enum mouse_buttons button) { //Allows for clicking with mousekey and dragging with trackball. + void trackball_register_button(bool pressed, enum mouse_buttons button) { //Register mouse keys for trackball. report_mouse_t currentReport = pointing_device_get_report(); if (pressed) { currentReport.buttons |= button; - #ifdef HAPTIC_ENABLE - DRV_pulse(4); + #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed + DRV_pulse(4); //sharp_click #endif } else { currentReport.buttons &= ~button; @@ -161,12 +177,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these pointing_device_set_report(currentReport); } - void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for single mouse button and key presses. Click and drag is done with keymap. + void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for mouse buttons. Click+drag is done with keymap and not compatible with trackball click functions. if (pressed) { //trackball pressed //tap_code_delay(KC_A,300); //Use delay as simple debounce for key strokes mouse->buttons |= MOUSE_BTN1; - #ifdef HAPTIC_ENABLE - DRV_pulse(4); + #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed + DRV_pulse(4); //sharp_click #endif } else { //released mouse->buttons &= ~MOUSE_BTN1; @@ -372,44 +388,26 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif -#ifdef RGBLIGHT_ENABLE - // RGB Layer Light Settings - Note that this will fix the key switch LED colour and brightness - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Change range for multiple keys with same colour - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); //Change range for multiple keys with same colour - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Change range for multiple keys with same colour - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); //Change range for multiple keys with same colour - const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); //Change range for multiple keys with same colour - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication (No dedicated LED) - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication (No dedicated LED). Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication (No dedicated LED) +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + //LED Lock keys status indicators are used since the sofle doesn't have dedicated LEDS for this. + //Note 1: These will assign static colour and brightness to the LED range specified. + //Note 2: Base layer0 is required for lock layers to work, even if range for static LED colours is set to 0,0. + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //RGB colour is ignored as range is 0,0. + const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication + const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication. Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. + const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer, - my_capslock_layer, //Highest status indicators override other layers + my_layer0_layer, //Base layer with no indications + my_capslock_layer, //Highest status indicators override other layers my_numlock_layer, my_scrollock_layer ); +#endif - - void keyboard_post_init_user(void) - { - rgblight_layers = my_rgb_layers;// Enable the LED layers - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 - layer_move(0); //start on layer 0 to get the lighting activated in all cases. Remove to save a very small amount of space. - #ifdef POINTING_DEVICE_ENABLE - trackball_set_precision(1.75); //Start trackball with less precision - trackball_set_scrolling(true); //Start trackball in scrolling mode - run_trackball_cleanup(); - #endif - } - - - layer_state_t layer_state_set_user(layer_state_t state) +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + layer_state_t layer_state_set_user(layer_state_t state) //Use for layer lighting. This is independent from lock key LED indicators. { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + rgblight_set_layer_state(0, layer_state_cmp(state, 0)); rgblight_set_layer_state(1, layer_state_cmp(state, 1)); rgblight_set_layer_state(2, layer_state_cmp(state, 2)); rgblight_set_layer_state(3, layer_state_cmp(state, 3)); @@ -430,29 +428,29 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case 1: rgblight_sethsv_noeeprom(252,255,80); - #ifdef HAPTIC_ENABLE - DRV_pulse(69); + #ifdef HAPTIC_ENABLE //Set different patterns for haptic feedback layer indication + DRV_pulse(69); //transition_hum_10 #endif break; case 2: rgblight_sethsv_noeeprom(80,255,80); #ifdef HAPTIC_ENABLE - DRV_pulse(37); + DRV_pulse(37); //lg_dblclick_str #endif break; case 3: rgblight_sethsv_noeeprom(118,255,80); #ifdef HAPTIC_ENABLE - DRV_pulse(31); + DRV_pulse(31); //sh_dblclick_med #endif break; case 4: rgblight_sethsv_noeeprom(218,255,80); #ifdef HAPTIC_ENABLE - DRV_pulse(7); + DRV_pulse(7); //soft_bump #endif - #ifdef POINTING_DEVICE_ENABLE - if (was_scrolling==true){ //Check if was scrolling when layer is activated + #ifdef POINTING_DEVICE_ENABLE //Set trackball mouse mode when layer 4 is activated + if (was_scrolling==true){ //Check if in scrolling mode when layer was activated trackball_set_scrolling(false); run_trackball_cleanup(); } @@ -461,7 +459,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return state; } - bool led_update_user(led_t led_state) { rgblight_set_layer_state(5, led_state.caps_lock); //Activate capslock lighting layer @@ -470,3 +467,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } #endif + + +void keyboard_post_init_user(void) +{ + #ifdef RGBLIGHT_ENABLE + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + #endif + #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + rgblight_layers = my_rgb_layers; //Enable LED layer lighting + #endif + layer_move(0); //Start on layer0 by default to set LED colours. Can remove to save a very small amount of space. + #ifdef POINTING_DEVICE_ENABLE + trackball_set_precision(1.75); //Start trackball with lower precision mode + trackball_set_scrolling(true); //Start trackball in scrolling mode + run_trackball_cleanup(); + #endif +} diff --git a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c b/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c deleted file mode 100644 index 6aa6a7a8b5b7..000000000000 --- a/keyboards/solartempest/sofle/keymaps/via/ocean_dream.c +++ /dev/null @@ -1,555 +0,0 @@ -/* - * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) - * - * 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 . - */ - -#include "ocean_dream.h" -#include "quantum.h" -#include "print.h" - -// Calculated Parameters -#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch -#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch -#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch -#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch -#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch - -uint8_t animation_counter = 0; // global animation counter. -bool is_calm = false; -uint32_t starry_night_anim_timer = 0; -uint32_t starry_night_anim_sleep = 0; -static int current_wpm = 0; - -static uint8_t increment_counter(uint8_t counter, uint8_t max) { - counter++; - if (counter >= max) { - return 0; - } else { - return counter; - } -} - -#ifdef ENABLE_WAVE -static uint8_t decrement_counter(uint8_t counter, uint8_t max) { - counter--; - if (counter < 0 || counter > max) { - return max; - } else { - return counter; - } -} -#endif - -#ifdef ENABLE_MOON // region -# ifndef STATIC_MOON -uint8_t moon_animation_frame = 0; // keeps track of current moon frame -uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame -# endif - -# ifdef STATIC_MOON -static const char PROGMEM moon[6] = { - 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81, -}; -# endif - -# ifndef STATIC_MOON -static const char PROGMEM moon_animation[14][8] = { - // clang-format off - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, }, - { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }, - { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, }, - // clang-format on -}; -# endif - -static void draw_moon(void) { -# ifdef STATIC_MOON - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon, 6); -# endif -# ifndef STATIC_MOON - moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES); - if (moon_animation_counter == 0) { - moon_animation_frame = increment_counter(moon_animation_frame, 14); - oled_set_cursor(MOON_COLUMN, MOON_LINE); - oled_write_raw_P(moon_animation[moon_animation_frame], 8); - } -# endif -} -#endif // endregion - -#ifdef ENABLE_WAVE // region -uint8_t starry_night_wave_frame_width_counter = 31; -uint8_t rough_waves_frame_counter = 0; - -// clang-format off -static const char PROGMEM ocean_top[8][32] = { - // still ocean - { - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // small ripples - { - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - }, - // level 2 ripples - { - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40, - }, - // level 3 waves - { - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40, - }, - { - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60, - }, -}; -static const char PROGMEM ocean_bottom[8][32] = { - // still ocean - { - 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21, - 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44, - 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00, - }, - // small ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 2 ripples - { - 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20, - 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, - 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, - }, - // level 3 waves - { - 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11, - 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04, - 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00, - }, - { - 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06, - 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10, - 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00, - 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80, - }, - { - 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21, - 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08, - 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08, - 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00, - }, -}; -// clang-format on - -static void animate_waves(void) { - starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type - rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type - - void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) { - oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset); - oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH); - } - - for (int i = 0; i < WIDTH; ++i) { - uint16_t offset = OCEAN_LINE * WIDTH + i; - uint8_t byte_index = starry_night_wave_frame_width_counter + i; - if (byte_index >= WIDTH) { - byte_index = byte_index - WIDTH; - } - if (is_calm || current_wpm <= WAVE_CALM) { - draw_ocean(0, offset, byte_index); - } else if (current_wpm <= WAVE_HEAVY_STORM) { - draw_ocean(1, offset, byte_index); - } else if (current_wpm <= WAVE_HURRICANE) { - draw_ocean(2, offset, byte_index); - } else { - draw_ocean(3 + rough_waves_frame_counter, offset, byte_index); - } - } -} -#endif // endregion - -#ifdef ENABLE_ISLAND // region -uint8_t island_frame_1 = 0; - -// clang-format off -// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!) - -// To save space and allow the shooting stars to be seen, only draw the tree on every frame. -// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the -// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes -static const char PROGMEM islandRightTop[6][14] = { - {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,}, - {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,}, - {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,}, - {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,}, - {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,}, - {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,}, -}; -static const char PROGMEM islandRightBottom[6][14] = { - {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,}, - {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,}, - {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,}, - {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,}, -}; -static const char PROGMEM islandLeft[18] = { - 0x80, 0x40, 0x40, 0x40, 0x40, 0x60, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x60, 0x40, 0x40, -}; -// clang-format on - -static void animate_island(void) { - if (animation_counter == 0) { - island_frame_1 = increment_counter(island_frame_1, 2); - } - - void draw_island_parts(uint8_t frame) { - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE); - oled_write_raw_P(islandRightTop[frame], 14); - oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1); - oled_write_raw_P(islandLeft, 18); - oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1); - oled_write_raw_P(islandRightBottom[frame], 14); - } - - if (is_calm || current_wpm < ISLAND_CALM) { - draw_island_parts(0); - } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) { - draw_island_parts(island_frame_1 + 1); - } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) { - draw_island_parts(island_frame_1 + 2); - } else { - draw_island_parts(island_frame_1 + 4); - } -} -#endif // endregion - -#ifdef ENABLE_STARS // region -bool stars_setup = false; // only setup stars once, then we just twinkle them -struct Coordinate { - int x; - int y; - bool exists; -}; - -struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates - -/** - * Setup all the initial stars on the screen - * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES - * where each line is made up of 8x8 pixel groups, that are populated by a single star. - * - * Not sure how this function will work with larger or smaller screens. - * It should be fine, as long as the screen width is a multiple of 8 - */ -static void setup_stars(void) { - // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on - // 36% probability it will not be added - // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all) - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - uint8_t rand_column = rand() % 10; - uint8_t rand_row = rand() % 10; - if (rand_column < 8 && rand_row < 8) { - int column_adder = column_group * 8; - int line_adder = line * 8; - int x = rand_column + column_adder; - int y = rand_row + line_adder; - oled_write_pixel(x, y, true); - stars[column_group + (line * STARS_PER_LINE)].x = x; - stars[column_group + (line * STARS_PER_LINE)].y = y; - stars[column_group + (line * STARS_PER_LINE)].exists = true; - } else { - stars[column_group + (line * STARS_PER_LINE)].exists = false; - } - } - } - stars_setup = true; -} - -/** - * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star - */ -static void twinkle_stars(void) { - for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) { - for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) { - struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)]; - - // skip stars that were never added - if (!star.exists) { - continue; - } - if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) { - oled_write_pixel(star.x, star.y, false); // black out pixel - - // don't allow stars to leave their own region - if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region - star.x++; // move it right immediately - } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region - star.x--; // move it left immediately - } - if (star.y == (line * 8)) { // star is the farthest up it can go in its region - star.y++; // move it down immediately - } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region - star.y--; // move it up immediately - } - - // now decide direction - int new_x; - int x_choice = rand() % 3; - if (x_choice == 0) { - new_x = star.x - 1; - } else if (x_choice == 1) { - new_x = star.x + 1; - } else { - new_x = star.x; - } - - int new_y; - int y_choice = rand() % 3; - if (y_choice == 0) { - new_y = star.y - 1; - } else if (y_choice == 1) { - new_y = star.y + 1; - } else { - new_y = star.y; - } - - star.x = new_x; - star.y = new_y; - oled_write_pixel(new_x, new_y, true); - } - - stars[column_group + (line * STARS_PER_LINE)] = star; - } - } -} - -/** - * Setup the stars and then animate them on subsequent frames - */ -static void animate_stars(void) { - if (!stars_setup) { - setup_stars(); - } else { - twinkle_stars(); - } -} -#endif // endregion - -#ifdef ENABLE_SHOOTING_STARS // region -bool shooting_stars_setup = false; // only setup shooting stars array once with defaults - -struct ShootingStar { - int x_1; - int y_1; - int x_2; - int y_2; - bool running; - int frame; - int delay; -}; - -struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars - -static void setup_shooting_star(struct ShootingStar *shooting_star) { - int column_to_start = rand() % (WIDTH / 2); - int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean. - - shooting_star->x_1 = column_to_start; - shooting_star->y_1 = row_to_start; - shooting_star->x_2 = column_to_start + 1; - shooting_star->y_2 = row_to_start + 1; - shooting_star->running = true; - shooting_star->frame++; - shooting_star->delay = rand() % SHOOTING_STAR_DELAY; -} - -static void move_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - - shooting_star->x_1++; - shooting_star->y_1++; - shooting_star->x_2++; - shooting_star->y_2++; - shooting_star->frame++; - - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true); -} - -static void finish_shooting_star(struct ShootingStar *shooting_star) { - oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false); - oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false); - shooting_star->running = false; - shooting_star->frame = 0; -} - -static void animate_shooting_star(struct ShootingStar *shooting_star) { - if (shooting_star->frame > SHOOTING_STAR_FRAMES) { - finish_shooting_star(shooting_star); - return; - } else if (!shooting_star->running) { - setup_shooting_star(shooting_star); - } else { - if (shooting_star->delay == 0) { - move_shooting_star(shooting_star); - } else { - shooting_star->delay--; - } - } -} - -static void animate_shooting_stars(void) { - if (is_calm) { - return; - } - if (!shooting_stars_setup) { - for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) { - shooting_stars[i].running = false; - } - shooting_stars_setup = true; - } - /** - * Fixes issue with stars that were falling _while_ the - * wpm dropped below the condition for them to keep falling - */ - void end_extra_stars(uint8_t starting_index) { - for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - if (shooting_star.running) { - finish_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - } - } - - int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT; - number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars; - - if (number_of_shooting_stars == 0) { - // make sure all shooting_stars are ended - end_extra_stars(0); - } else { - for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) { - struct ShootingStar shooting_star = shooting_stars[shooting_star_index]; - animate_shooting_star(&shooting_star); - shooting_stars[shooting_star_index] = shooting_star; - } - end_extra_stars(number_of_shooting_stars); - } -} -#endif // endregion - -/** - * Main rendering function - * - * Calls all different animations at different rates - */ -void render_stars(void) { - // // animation timer - if (timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) { - starry_night_anim_timer = timer_read32(); - current_wpm = get_current_wpm(); - -#ifdef ENABLE_ISLAND - animate_island(); -#endif - -#ifdef ENABLE_SHOOTING_STARS - if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) { - animate_shooting_stars(); - } -#endif - -#ifdef ENABLE_STARS - // TODO offsetting the star animation from the wave animation would look better, - // but if I do that, then the stars appear in the water because - // the ocean animation has to wait a bunch of frames to overwrite it. - // Possible solutions: - // 1. Only draw stars to the top of the island/ocean. - // 2. Draw ocean every frame, only move ocean on frames matching modulus - // Problems: - // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water? - // 2. More cpu intensive. And I'm already running out of cpu as it is... - if (animation_counter % STAR_ANIMATION_MODULATOR == 0) { - animate_stars(); - } -#endif - -#ifdef ENABLE_WAVE - if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) { - animate_waves(); - } -#endif - -#ifdef ENABLE_MOON - draw_moon(); -#endif - - animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES); - } - - // this fixes the screen on and off bug - if (current_wpm > 0) { - oled_on(); - starry_night_anim_sleep = timer_read32(); - } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) { - oled_off(); - } -} \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index 6380e5c24b7c..8f1f59dba073 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -25,7 +25,7 @@ // KEYBOARD PET START #define KEYBOARD_PET - // settings + // settings for WPM-reactive animations #define MIN_WALK_SPEED 10 #define MIN_RUN_SPEED 40 @@ -181,23 +181,17 @@ // animation void animate_luna(void) { - // jump if (isJumping || !showedJump) { - // clear oled_set_cursor(LUNA_X,LUNA_Y +2); oled_write(" ", false); - oled_set_cursor(LUNA_X,LUNA_Y -1); - showedJump = true; } else { - // clear oled_set_cursor(LUNA_X,LUNA_Y -1); oled_write(" ", false); - oled_set_cursor(LUNA_X,LUNA_Y); } @@ -207,16 +201,12 @@ // current status if(isBarking) { oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); - } else if(isSneaking) { oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); - } else if(current_wpm_read <= MIN_WALK_SPEED) { oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); - } else if(current_wpm_read <= MIN_RUN_SPEED) { oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); - } else { oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); } @@ -238,7 +228,7 @@ oled_write("TMPST", false); #ifdef OLED_LOGO - render_logo(0,7); //Not defining this in config.h will save 112 bytes. + render_logo(0,7); //Not defining this in config.h will save space (+112). #endif /* wpm counter */ diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c index 885c9621ceaa..ab2069a2fde6 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -25,16 +25,13 @@ #define KEYBOARD_PET // KEYBOARD PET START - // settings - #define MIN_WALK_SPEED 10 - #define MIN_RUN_SPEED 40 - // advanced settings #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 // timers uint32_t anim_timer = 0; + uint32_t text_timer = 0; // current frame uint8_t current_frame = 0; @@ -85,52 +82,8 @@ 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } }; - /* - // Walk - static const char PROGMEM walk[2][ANIM_SIZE] = { - // 'walk1', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xf8, 0xfc, 0xfe, 0xfe, 0x1f, 0x3f, 0x39, 0x39, 0x3f, 0x3f, 0x1e, 0x1e, 0x0c, 0x00, - 0x00, 0x00, 0x01, 0x0f, 0x3e, 0x78, 0x70, 0xf8, 0xfc, 0xfe, 0x7e, 0x3e, 0x3c, 0x3c, 0x78, 0x78, - 0x78, 0xf0, 0xf1, 0xff, 0x7f, 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - // 'walk2', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x60, 0x60, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3e, 0x7f, 0xff, 0xff, 0xe7, 0xc7, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3e, 0x78, 0xf0, 0xfc, 0x7e, 0x1e, 0x1f, 0x0f, 0x0e, - 0x1e, 0x1c, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; - - // Run - static const char PROGMEM run[2][ANIM_SIZE] = { - // 'run1', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0xc0, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, - 0x87, 0x7f, 0xff, 0xff, 0xf1, 0xc3, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1f, 0x3e, 0x78, 0xf7, 0xff, 0x7f, 0x3d, 0x03, 0x07, 0x0f, - 0x1e, 0x3d, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - }, - - // 'run2', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf0, 0xf8, 0x98, 0xf8, 0xf8, 0xf8, 0xf0, 0x70, 0x20, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0x3e, 0xde, 0xfe, 0xfc, 0xf8, 0x00, 0x00, - 0xe0, 0xfe, 0xff, 0x7f, 0x07, 0x01, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x1e, 0x3c, 0x78, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x07, 0x1f, 0x3f, 0x7c, 0x78, 0xff, - 0xff, 0x7f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - };*/ + + //Walk and run animations have been removed to save space. // Bark static const char PROGMEM bark[2][ANIM_SIZE] = { @@ -180,23 +133,17 @@ // animation void animate_luna(void) { - // jump if (isJumping || !showedJump) { - // clear oled_set_cursor(LUNA_X,LUNA_Y +2); oled_write(" ", false); - oled_set_cursor(LUNA_X,LUNA_Y -1); - showedJump = true; } else { - // clear oled_set_cursor(LUNA_X,LUNA_Y -1); oled_write(" ", false); - oled_set_cursor(LUNA_X,LUNA_Y); } @@ -209,20 +156,9 @@ } else if(isSneaking) { oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); - /* - } else if(current_wpm_read <= MIN_WALK_SPEED) { - oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); - - } else if(current_wpm_read <= MIN_RUN_SPEED) { - oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE); - - } else { - oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE); - }*/ } else { oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); } - } // animation timer @@ -232,6 +168,7 @@ } } // KEYBOARD PET END + #ifndef OLED_NO_SLAVE static void print_logo_narrow(void) { @@ -241,23 +178,12 @@ oled_write("TMPST", false); #ifdef OLED_LOGO - render_logo(0,9); //Not defining this in config.h will save 112 bytes. + render_logo(0,9); //Not defining this in config.h will save space (+112). #endif } #endif static void print_status_narrow(void) { - /*switch (get_highest_layer(default_layer_state)) { //May be useful if you use multiple non-QWERTY layouts to show which is active. - case 0: - oled_write("SOLAR", false); - break; - case 1: - oled_write("GAME", false); - break; - default: - oled_write("UNDEF", false); - }*/ - // Print current layer oled_set_cursor(0,1); oled_write("LAYER", false); diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index 47a32403e539..0fa232935525 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -5,26 +5,26 @@ BOOTLOADER = atmel-dfu # Comment out to disable the options. SPLIT_KEYBOARD = yes # Split keyboard -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug +CONSOLE_ENABLE = no # Console for debug (+4686) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration (+644) +MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+634) +GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) +SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) +LTO_ENABLE = yes # Save space by link time optimization + EXTRAKEY_ENABLE = yes # Audio control and System control (+450) -RGBLIGHT_ENABLE = yes # RGB lighting (+2350) -ENCODER_ENABLE = yes # Encoders +RGBLIGHT_ENABLE = yes # RGB lighting (+3826) +ENCODER_ENABLE = yes # Rotary encoders (+1112) MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. -NKRO_ENABLE = no # Has 6KRO+ already. NKRO does not work for the sofle. +NKRO_ENABLE = no # 6KRO by default. NKRO works if enabled (+328) COMBO_ENABLE = no # Tap combo chording (+952) -LTO_ENABLE = yes # Save space +#VIA # VIA_ENABLE with the keymap (+2300). Note: VIA is required as non-via layouts were removed to save space. -OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608-4774) +OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608-4774 with pet) OLED_DRIVER = SSD1306 # Specify OLED driver -WPM_ENABLE = no # WPM counter for keyboard pets (+1298) - # Via_enable in keymap (+2300). VIA is required as non-via layouts are removed to save space. - -GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) -MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+612) -SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) +WPM_ENABLE = no # WPM counter for typing-speed-reactive keyboard pets (+1298) -POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball (+2304) +POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) QUANTUM_LIB_SRC += i2c_master.c SRC += drivers/sensors/pimoroni_trackball.c diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 70b29c001c47..70ededaff297 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,1785 +1,1782 @@ -:100000000C9449060C9490060C9490060C949B3327 -:100010000C9490060C9490060C9490060C94900608 -:100020000C9490060C9490060C94001B0C94BC1A33 -:100030000C94FB270C9490060C9490060C9490065C -:100040000C9490060C9490060C9490060C949006D8 -:100050000C9490060C94D71B0C9490060C9490066C -:100060000C9490060C9490060C9490060C949006B8 -:100070000C9490060C9490060C9490060C949006A8 -:100080000C9490060C9490060C9490060C94900698 -:100090000C9490060C9490060C9490060C94900688 -:1000A0000C9490060C9490060C94900637032B64E5 +:100000000C9431060C9478060C9478060C94833387 +:100010000C9478060C9478060C9478060C94780668 +:100020000C9478060C9478060C94E81A0C94A41A94 +:100030000C94E3270C9478060C9478060C947806BC +:100040000C9478060C9478060C9478060C94780638 +:100050000C9478060C94BF1B0C9478060C947806CC +:100060000C9478060C9478060C9478060C94780618 +:100070000C9478060C9478060C9478060C94780608 +:100080000C9478060C9478060C9478060C947806F8 +:100090000C9478060C9478060C9478060C947806E8 +:1000A0000C9478060C9478060C94780637032B642D :1000B000AAFF000000001C032B64AAFF0000000040 -:1000C00004032B64AAFF000000000000D7FF78FFA4 -:1000D00000000000000080FF64FF0000000000003E -:1000E0005FFF5AFF000000000000FCFF7DFF0000E2 -:1000F000000000005FFF5AFF000000000501090238 -:10010000A10185020901A1000509190129081500AD -:100110002501950875018102050109300931158114 -:10012000257F95027508810609381581257F95017F -:1001300075088106050C0A38021581257F95017521 -:10014000088106C0C005010980A101850319012AA3 -:10015000B700150126B700950175108100C0050C88 -:100160000901A101850419012AA002150126A00296 -:10017000950175108100C00660FF0961A101096247 -:10018000150026FF009520750881020963150026D9 -:10019000FF00952075089102C005010906A101051F -:1001A0000719E029E71500250195087501810295D9 -:1001B00001750881010507190029FF150026FF00B8 -:1001C0009506750881000508190129059505750131 -:1001D0009102950175039101C0000000000000002C -:1001E000000000000000000000000000000000000F -:1001F000000000000000000000000000007E0F0072 -:10020000D4FFFFFFC70000007800000000000000DE -:10021000002A2B2800000000000000000000000061 -:100220000000000029000000002C1E3420212224A0 -:10023000342627252E362D3738271E1F202122232E -:100240002425263333362E37381F040506070809C0 -:100250000A0B0C0D0E0F1011121314151617181986 -:100260001A1B1C1D2F3130232D35040506070809E4 -:100270000A0B0C0D0E0F1011121314151617181966 -:100280001A1B1C1D2F3130354C00DA02815AD9F16E -:10029000DB20A4A62EAF00A0C000A1C800AED58070 -:1002A000A81FD300408D142000F200E800DE00D427 -:1002B00000CA00C000B600AC000000000000000052 -:1002C0000000000000E0F0F0F8F8CCCCF8F8F0F016 -:1002D00060000000000000000000000000000000BE -:1002E00000000000000F3F7FFCF9F1E1C181000038 -:1002F00000000000000000000000000000000000FE -:100300000C387060E0E0F0F0F8F9FFFFFFFFFF7ECF -:100310001C000000000000000000000000000000C1 -:100320000000000000E0F0F0F8F8CCCCF8F8F0F0B5 -:10033000600000000000000000000000000000005D -:1003400000000000000F3F7FFCF9F1E1C1810000D7 -:10035000010102060C040000000000000000000083 -:1003600000387C60E0E0F0F0F8F9FFFFFFFFFF7E6F -:100370001C00000000000000000000000000000061 -:10038000000000000000000000000000000000006D -:100390000000000000000000000000000000CCF899 -:1003A00070000000000000C0F0F8F87CFCEEE6FCF5 -:1003B000FC7878B00000000000000000003F7FF1F2 -:1003C000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCC5 -:1003D000F8F06000010306020000000000000000C9 -:1003E000000000000000000000000000000000000D -:1003F0000000000000000000000000000080E0F8A5 -:100400001C000000000000C0F0F8F87CFCEEE6FCE8 -:10041000FC7878300000000000000000003F7FF012 -:10042000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC64 -:10043000F8F0600000000000000000000000000074 -:1004400080C0C0E0E03070E0E0C0C080000000008C -:100450000000000000000000000000000000001F7D -:100460007FFFFFE7E7EFEFCFCB83830100000000C2 -:1004700000000000000000000000000000061C3822 -:1004800078F1E3E3E7F7F7FFFFFFFF7F3E000000AF -:10049000000000000000000000000000000000005C -:1004A0000000000000000000000000000080C0E02C -:1004B000E060E0C0C080800000000000000000009C -:1004C0000000000020F8FEFFFFFF9F0F0E1F1F3FE0 -:1004D0003F7EE683030F43439088080000031E3CE1 -:1004E00078F0E0E0F0F0FBFFFFFF7F7F38000000D6 -:1004F0000000000000000000000000000004F6B84A -:10050000F8D8F0E0C000000080C0E0E0F0F0F0F0CB -:10051000E0E0C080000000000000000080C0E1F3C7 -:10052000FB7F1F0F0000F0FFFF3F03010000008072 -:10053000C1F3FF7F1F000080C0E0301E3F3F7FF906 -:10054000F0F070783C3F1F0F03000000001C3F7F5D -:100550007FFBF1F0783C1E0F030000000101010158 -:10056000010101010102020202020202020203036E -:10057000030303030303040404040404040505053E -:100580000505060606060607070707070808080800 -:10059000090909090A0A0A0B0B0B0C0C0C0D0D0DAD -:1005A0000E0E0E0F0F0F1010111111121213131443 -:1005B00014151516161717181819191A1A1B1B1CBB -:1005C0001D1D1E1E1F202021222223242425262615 -:1005D000272829292A2B2C2D2D2E2F30313232334A -:1005E0003435363738393A3B3C3D3E3F4041424353 -:1005F0004445464748494A4C4D4E4F505153545537 -:100600005658595A5B5D5E5F616264656668696BE6 -:100610006C6D6F7072737577787A7B7D7E80828364 -:100620008587888A8C8E8F91939596989A9C9EA0A8 -:10063000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0B5 -:10064000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E47E -:10065000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55406E -:100660001C1004010D190A24232221201F1E1D1B0A -:100670001A18171615141312110F0E0C0B09080770 -:1006800006050302002D3945483C303F2526272822 -:10069000292A2B2C2E2F31323334353637383A3B3A -:1006A0003D3E404142434446474907087F08070012 -:1006B0003E5B4F5B3E003E6B4F6B3E001C3E7C3E04 -:1006C0001C00183C7E3C18001C577D571C001C5E0B -:1006D0007F5E1C0000183C180000FFE7C3E7FF0026 -:1006E000001824180000FFE7DBE7FF0030483A0657 -:1006F0000E00262979292600407F05050700407F46 -:1007000005253F005A3CE73C5A007F3E1C1C080070 -:10071000081C1C3E7F0014227F2214005F5F005FD4 -:100720005F0006097F017F00006689956A006060AE -:100730006060600094A2FFA2940008047E04080098 -:1007400010207E20100008082A1C0800081C2A0817 -:1007500008001E10101010000C1E0C1E0C0030386B -:100760003E383000060E3E0E06000000000000007D -:1007700000005F000000000700070000147F147FE6 -:100780001400242A7F2A12002313086462003649C9 -:1007900056205000000807030000001C2241000002 -:1007A0000041221C00002A1C7F1C2A0008083E0869 -:1007B00008000080703000000808080808000000E9 -:1007C000606000002010080402003E5149453E00D0 -:1007D00000427F4000007249494946002141494D8D -:1007E00033001814127F10002745454539003C4A54 -:1007F000494931004121110907003649494936006C -:10080000464949291E000000140000000040340041 -:1008100000000008142241001414141414000041B4 -:10082000221408000201590906003E415D594E009C -:100830007C1211127C007F49494936003E414141FA -:1008400022007F4141413E007F49494941007F09E3 -:10085000090901003E41415173007F0808087F00EB -:1008600000417F4100002040413F01007F081422E9 -:1008700041007F40404040007F021C027F007F0417 -:1008800008107F003E4141413E007F0909090600F2 -:100890003E4151215E007F091929460026494949F8 -:1008A000320003017F0103003F4040403F001F2012 -:1008B00040201F003F4038403F006314081463008D -:1008C0000304780403006159494D4300007F41410E -:1008D0004100020408102000004141417F00040251 -:1008E00001020400404040404000000307080000AF -:1008F0002054547840007F2844443800384444440D -:100900002800384444287F00385454541800000804 -:100910007E09020018A4A49C78007F0804047800D3 -:1009200000447D4000002040403D00007F102844EE -:10093000000000417F4000007C04780478007C08BF -:1009400004047800384444443800FC182424180077 -:1009500018242418FC007C0804040800485454544B -:10096000240004043F4424003C4040207C001C2020 -:1009700040201C003C4030403C00442810284400EB -:100980004C9090907C004464544C440000083641E4 -:10099000000000007700000000413608000002015E -:1009A000020402003C2623263C0000000000000058 -:1009B000404040F0F8F8FF38FFF8F83FF8F8FF380B -:1009C000FFF8F8F040404000000000000080C0C088 -:1009D000C0800000C0C08000000080C0C000C0C057 -:1009E000000080C0C00000000000C0C0C0C0C00047 -:1009F000C0C0000000000000000000000000000077 -:100A000000000000000000000000000000000000E6 -:100A100000000000000000000000000000000000D6 -:100A2000000000000000000000C0F0F8FC3E1E06C0 -:100A3000010000007F4141417F007F4141417F0033 -:100A40000080C0E07E5B4F5BFEC00000C000DCD7D2 -:100A5000DEDEDED7DC00C000000000000000000089 -:100A60000000000000000000000000000000000086 -:100A7000494949FFFFFFFFE0DFBFBF00BFBFDFE025 -:100A8000FFFFFFFF49494900000000001F3F606071 -:100A9000E0BF1F007F7F071E381E077F7F007F7F1C -:100AA0000E1F3B716000000000007F7F0C0C0C00EB -:100AB0007E7E007F7E0303007F7E03037E7E030332 -:100AC0007F7E000F3E703C063C703E0F00327B493B -:100AD000493F7E007F7E0303001E3F69696F260049 -:100AE000000000000000000000030F1F3F3C787072 -:100AF000600000007F4141417F007F4141417F0014 -:100B0000307B7F7830202030787F3B0003000F7FE0 -:100B10000F0F0F7F0F000300000000000000000017 -:100B200000000000000000000000000000000000C5 -:100B3000010101070F0F7F0F7F0F0F7E0F0F7F0F38 -:100B40007F0F0F07010101000000000000000000FE -:100B50000001010000000000000000000000000093 +:1000C00004032B64AAFF0000000000005FFF5AFF3A +:1000D0000000000005010902A10185020901A1003B +:1000E00005091901290815002501950875018102E6 +:1000F0000501093009311581257F950275088106B2 +:1001000009381581257F950175088106050C0A3887 +:10011000021581257F950175088106C0C00501097A +:1001200080A101850319012AB700150126B70095A2 +:100130000175108100C0050C0901A1018504190198 +:100140002AA002150126A002950175108100C006A3 +:1001500060FF0961A1010962150026FF0095207565 +:100160000881020963150026FF0095207508910299 +:10017000C005010906A101050719E029E7150025B9 +:10018000019508750181029501750881010507191E +:100190000029FF150026FF00950675088100050857 +:1001A00019012905950575019102950175039101C4 +:1001B000C00000000000000000000000000000007F +:1001C000000000000000000000000000000000002F +:1001D00000000000007E0F00D4FFFFFFC7000000FA +:1001E0007800000000000000002A2B28000000001A +:1001F00000000000000000000000000029000000D6 +:10020000002C1E3420212224342627252E362D377B +:1002100038271E1F202122232425263333362E374C +:10022000381F0405060708090A0B0C0D0E0F1011E4 +:1002300012131415161718191A1B1C1D2F313023F1 +:100240002D350405060708090A0B0C0D0E0F1011B9 +:1002500012131415161718191A1B1C1D2F313035BF +:100260004C00DA02815AD9F1DB20A4A62EAF00A0FF +:10027000C000A1C800AED580A81FD300408D1420B7 +:1002800000CA00C000B600AC000000000000000082 +:100290000000000000E0F0F0F8F8CCCCF8F8F0F046 +:1002A00060000000000000000000000000000000EE +:1002B00000000000000F3F7FFCF9F1E1C181000068 +:1002C000000000000000000000000000000000002E +:1002D0000C387060E0E0F0F0F8F9FFFFFFFFFF7E00 +:1002E0001C000000000000000000000000000000F2 +:1002F0000000000000E0F0F0F8F8CCCCF8F8F0F0E6 +:10030000600000000000000000000000000000008D +:1003100000000000000F3F7FFCF9F1E1C181000007 +:10032000010102060C0400000000000000000000B3 +:1003300000387C60E0E0F0F0F8F9FFFFFFFFFF7E9F +:100340001C00000000000000000000000000000091 +:10035000000000000000000000000000000000009D +:100360000000000000000000000000000000CCF8C9 +:1003700070000000000000C0F0F8F87CFCEEE6FC25 +:10038000FC7878B00000000000000000003F7FF122 +:10039000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCF5 +:1003A000F8F06000010306020000000000000000F9 +:1003B000000000000000000000000000000000003D +:1003C0000000000000000000000000000080E0F8D5 +:1003D0001C000000000000C0F0F8F87CFCEEE6FC19 +:1003E000FC7878300000000000000000003F7FF043 +:1003F000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC95 +:10040000F8F06000000000000000000000000000A4 +:1004100080C0C0E0E03070E0E0C0C08000000000BC +:100420000000000000000000000000000000001FAD +:100430007FFFFFE7E7EFEFCFCB83830100000000F2 +:1004400000000000000000000000000000061C3852 +:1004500078F1E3E3E7F7F7FFFFFFFF7F3E000000DF +:10046000000000000000000000000000000000008C +:100470000000000000000000000000000080C0E05C +:10048000E060E0C0C08080000000000000000000CC +:100490000000000020F8FEFFFFFF9F0F0E1F1F3F10 +:1004A0003F7EE683030F43439088080000031E3C11 +:1004B00078F0E0E0F0F0FBFFFFFF7F7F3800000006 +:1004C0000000000000000000000000000004F6B87A +:1004D000F8D8F0E0C000000080C0E0E0F0F0F0F0FC +:1004E000E0E0C080000000000000000080C0E1F3F8 +:1004F000FB7F1F0F0000F0FFFF3F030100000080A3 +:10050000C1F3FF7F1F000080C0E0301E3F3F7FF936 +:10051000F0F070783C3F1F0F03000000001C3F7F8D +:100520007FFBF1F0783C1E0F030000000101010188 +:10053000010101010102020202020202020203039E +:10054000030303030303040404040404040505056E +:100550000505060606060607070707070808080830 +:10056000090909090A0A0A0B0B0B0C0C0C0D0D0DDD +:100570000E0E0E0F0F0F1010111111121213131473 +:1005800014151516161717181819191A1A1B1B1CEB +:100590001D1D1E1E1F202021222223242425262645 +:1005A000272829292A2B2C2D2D2E2F30313232337A +:1005B0003435363738393A3B3C3D3E3F4041424383 +:1005C0004445464748494A4C4D4E4F505153545567 +:1005D0005658595A5B5D5E5F616264656668696B17 +:1005E0006C6D6F7072737577787A7B7D7E80828395 +:1005F0008587888A8C8E8F91939596989A9C9EA0D9 +:10060000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0E5 +:10061000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E4AE +:10062000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55409E +:100630001C1004010D190A24232221201F1E1D1B3A +:100640001A18171615141312110F0E0C0B090807A0 +:1006500006050302002D3945483C303F2526272852 +:10066000292A2B2C2E2F31323334353637383A3B6A +:100670003D3E404142434446474907087F08070042 +:100680003E5B4F5B3E003E6B4F6B3E001C3E7C3E34 +:100690001C00183C7E3C18001C577D571C001C5E3B +:1006A0007F5E1C0000183C180000FFE7C3E7FF0056 +:1006B000001824180000FFE7DBE7FF0030483A0687 +:1006C0000E00262979292600407F05050700407F76 +:1006D00005253F005A3CE73C5A007F3E1C1C0800A1 +:1006E000081C1C3E7F0014227F2214005F5F005F05 +:1006F0005F0006097F017F00006689956A006060DF +:100700006060600094A2FFA2940008047E040800C8 +:1007100010207E20100008082A1C0800081C2A0847 +:1007200008001E10101010000C1E0C1E0C0030389B +:100730003E383000060E3E0E0600000000000000AD +:1007400000005F000000000700070000147F147F16 +:100750001400242A7F2A12002313086462003649F9 +:1007600056205000000807030000001C2241000032 +:100770000041221C00002A1C7F1C2A0008083E0899 +:100780000800008070300000080808080800000019 +:10079000606000002010080402003E5149453E0000 +:1007A00000427F4000007249494946002141494DBD +:1007B00033001814127F10002745454539003C4A84 +:1007C000494931004121110907003649494936009C +:1007D000464949291E000000140000000040340072 +:1007E00000000008142241001414141414000041E5 +:1007F000221408000201590906003E415D594E00CD +:100800007C1211127C007F49494936003E4141412A +:1008100022007F4141413E007F49494941007F0913 +:10082000090901003E41415173007F0808087F001B +:1008300000417F4100002040413F01007F08142219 +:1008400041007F40404040007F021C027F007F0447 +:1008500008107F003E4141413E007F090909060022 +:100860003E4151215E007F09192946002649494928 +:10087000320003017F0103003F4040403F001F2042 +:1008800040201F003F4038403F00631408146300BD +:100890000304780403006159494D4300007F41413E +:1008A0004100020408102000004141417F00040281 +:1008B00001020400404040404000000307080000DF +:1008C0002054547840007F2844443800384444443D +:1008D0002800384444287F00385454541800000835 +:1008E0007E09020018A4A49C78007F080404780004 +:1008F00000447D4000002040403D00007F1028441F +:10090000000000417F4000007C04780478007C08EF +:1009100004047800384444443800FC1824241800A7 +:1009200018242418FC007C0804040800485454547B +:10093000240004043F4424003C4040207C001C2050 +:1009400040201C003C4030403C004428102844001B +:100950004C9090907C004464544C44000008364114 +:10096000000000007700000000413608000002018E +:10097000020402003C2623263C0000000000000088 +:10098000404040F0F8F8FF38FFF8F83FF8F8FF383B +:10099000FFF8F8F040404000000000000080C0C0B8 +:1009A000C0800000C0C08000000080C0C000C0C087 +:1009B000000080C0C00000000000C0C0C0C0C00077 +:1009C000C0C00000000000000000000000000000A7 +:1009D0000000000000000000000000000000000017 +:1009E0000000000000000000000000000000000007 +:1009F000000000000000000000C0F0F8FC3E1E06F1 +:100A0000010000007F4141417F007F4141417F0063 +:100A10000080C0E07E5B4F5BFEC00000C000DCD702 +:100A2000DEDEDED7DC00C0000000000000000000B9 +:100A300000000000000000000000000000000000B6 +:100A4000494949FFFFFFFFE0DFBFBF00BFBFDFE055 +:100A5000FFFFFFFF49494900000000001F3F6060A1 +:100A6000E0BF1F007F7F071E381E077F7F007F7F4C +:100A70000E1F3B716000000000007F7F0C0C0C001B +:100A80007E7E007F7E0303007F7E03037E7E030362 +:100A90007F7E000F3E703C063C703E0F00327B496B +:100AA000493F7E007F7E0303001E3F69696F260079 +:100AB000000000000000000000030F1F3F3C7870A2 +:100AC000600000007F4141417F007F4141417F0044 +:100AD000307B7F7830202030787F3B0003000F7F11 +:100AE0000F0F0F7F0F000300000000000000000048 +:100AF00000000000000000000000000000000000F6 +:100B0000010101070F0F7F0F7F0F0F7E0F0F7F0F68 +:100B10007F0F0F070101010000000000000000002E +:100B200000010100000000000000000000000000C3 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 :100B60000000000000000000000000000000000085 :100B70000000000000000000000000000000000075 :100B80000000000000000000000000000000000065 :100B90000000000000000000000000000000000055 :100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000000000000035 -:100BC0000000000000000000000000000000000025 -:100BD0000000000000000000000000000000000015 -:100BE0000000000000000000000000AF00AE09029D -:100BF0005B00030100A0FA090400000103010100E9 -:100C00000921110100012240000705810308000AA3 -:100C10000904010002030000000921110100012262 -:100C200022000705820320000107050303200001BD -:100C30000904020001030000000921110100012242 -:100C40007B000705840320000A1201000200000057 -:100C50000832FC87120200010200011E0353006FDC -:100C6000006C00610072006900750073005F005342 -:100C7000006F0066006C006500000010034B00650B -:100C8000007900680069007600650000000403092F -:100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 -:100CA00003FE27C08091800690918106A091820664 -:100CB000B09183068730904BA740B04BD1F410928F -:100CC000800610928106109282061092830614BE4E -:100CD00084B7877F84BF0FB6F894A8958091600091 -:100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0EEE4FEE602C0059046 -:100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92A038B207E1F70E9422280C94E13618 -:100D20000C940000CF93DF9340917E0650917F0694 -:100D30004E5754409A01205A3F4F21303240C0F064 -:100D400020E032E0241B350B60917C0470917D041F -:100D5000FC01CA01240F351FC1E0D0E082179307C0 -:100D600050F070937D0460937C04DF91CF910895DF -:100D700020E630E0E9CF4491DC01A258BB4F5C9102 -:100D8000451781F04C93AC01A5E056954795AA957F -:100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 -:100DA0006A2B752B01963196D9CFE8EDF0E0808162 -:100DB0008E7F80831092E2001092DA001092E100A0 -:100DC000A0EEB0E08C9181608C9380818F778083DE -:100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 -:100DE000808310925E0408952091E4003091E50024 -:100DF00095E6A9012091EC00822F817020FF06C0AA -:100E00008091E80080FF06C080E008952091E8000E -:100E100022FD1AC080916C04882389F0853089F006 -:100E20008091EB0085FD0FC02091E4003091E5003A -:100E300042175307F9F29150E1F684E0089582E0F9 -:100E4000089583E0089581E00895EF92FF920F9353 -:100E50001F93CF937C018B010E94F406C82F811150 -:100E600017C08091E80085FD0BC08091E8008E7767 -:100E70008093E8000E94F406882399F3C82F08C0E5 -:100E8000F70181917F018093F1000150110949F729 -:100E90008C2FCF911F910F91FF90EF90089580912B -:100EA0006E0487FF13C08091E80082FF06C0809126 -:100EB000E8008B778093E80004C080916C04811176 -:100EC000F2CF089580916C048823D9F38091E800D3 -:100ED00080FFF8CF8091E8008E77ECCF982F909329 -:100EE000E900242F762F50E0891731F07091EC0043 -:100EF0002091ED005091F00021FD07C09F5F9730D9 -:100F000071F78093E90081E008953091EB003E7F16 -:100F10003093EB003091ED003D7F3093ED00309148 -:100F2000EB0031603093EB007093EC002093ED0008 -:100F30005093F0002091EE0027FDE0CF80E008956F -:100F4000CF92DF92EF92FF920F931F93CF93DF9395 -:100F5000C8EDD0E088818F7E8883E7EDF0E0808166 -:100F60008160808384E082BF81E080935E04888119 -:100F70008E7F888302EE10E0F80110821092DA0072 -:100F800081EEC82ED12CF601108288818F7788835C -:100F900088818068888388818F7D888319BC1092BE -:100FA0006C0410926D0410926B0410926A0490EE1F -:100FB000E92EF12CF70180818B7F8083888181600D -:100FC000888342E060E080E00E946E07F601808145 -:100FD0008E7F8083F801808181608083808188603A -:100FE0008083F70180818E7F808388818061888300 -:100FF000DF91CF911F910F91FF90EF90DF90CF90F5 -:101000000895FC01809174049091750486179707E8 -:10101000A0F06115710529F49091E8009E779093F6 -:10102000E80090E06115710551F4911108C08091BC -:10103000E80082FF34C080E00895BC01F2CF8091C7 -:101040006C048823C1F18530C1F18091E80083FDF3 -:1010500030C08091E80082FDEACF8091E80080FFF7 -:10106000E1CF8091F3002091F200382F61157105D6 -:1010700019F02830310558F091E02830310509F099 -:1010800090E02091E8002E772093E800CBCF81916B -:101090008093F100615071092F5F3F4FE7CF80913E -:1010A0006C04882341F0853041F08091E80083FF93 -:1010B000BECF81E0089582E0089583E00895809195 -:1010C000610408952FB7F894609157047091580403 -:1010D0008091590490915A042FBF0895209154048F -:1010E000309155042817390771F090935504809377 -:1010F0005404E0915204F0915304309721F000849D -:10110000F185E02D09940895209150043091510407 -:101110002817390771F09093510480935004E0919F -:101120005204F0915304309721F00680F781E02DAE -:10113000099408952091430436E0839FC00111244F -:10114000629F800D911D1124811522E0920714F0F9 -:1011500090E080E082589B4F90937F0680937E06BC -:101160000895883E9105C8F4803E910548F48B327D -:10117000910540F48832910518F404974A9758F481 -:1011800080E008958C32910530F089339105C0F3E9 -:1011900084369105A9F381E011C0811522E59207FB -:1011A00070F48115E1E59E0758F790548115904140 -:1011B00090F7FB019581907F81E011F308958115EF -:1011C00028E5920740F38115E9E59E0728F090563F -:1011D0008115904270F3DFCFFB019581907F81E014 -:1011E000903271F6EBCFFC01680F791F8FEF91E31E -:1011F0002191822728E030E087FF09C0880F8927E6 -:1012000021503109C9F7E617F70791F70895880FBC -:10121000F7CFFA01811101C0FB0109948091770495 -:10122000982F9E7F61F48170826080937704809113 -:101230007A04813A18F080EA80937A04089588311C -:10124000B0F381708661F1CFAF92BF92DF92EF92DF -:10125000FF920F931F93CF93DF93082F162FE9016F -:10126000E42FF0E0E55AFA4F611110C0E4915E2FCF -:101270004E2F4983E8835A83DF91CF911F910F91BD -:10128000FF90EF90DF90BF90AF900895E62EF12C85 -:101290004491D42EE42FF0E026E0829FC001112477 -:1012A0002FEF30E0B9010E941535802F90E0880FB4 -:1012B000991F55E5569FD001579FB00D11248A1BE9 -:1012C0009B0B982F990F890F5901AE18BF08AE9E3E -:1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 -:1012E00080011124012F11275901A01AB10AAE9EC5 -:1012F0008001AF9E100DBE9E100D11245901A81A39 -:10130000B108AE9CC001AF9C900DBE9C900D112405 -:10131000892F9927281B390B2E9FC0012F9F900DD5 -:101320003E9F900D1124E92F62307105A1F050F419 -:101330006115710509F49DCF6130710581F0EB2FC6 -:10134000512F97CF6430710569F080F066307105D8 -:1013500009F48FCFF4CFE42F4B2F592F8ACFE42FEE -:10136000412F87CFEB2F542F492F83CF4B2F5D2D4C -:10137000E12F7FCF80E0089578940895F894E82FC6 -:10138000E295EF70F0E031A1282F2F7081E090E01E -:1013900001C0880F2A95EAF7982F9095932391A37F -:1013A00092A1892B82A30C94BC099091D60292FF42 -:1013B00006C0282F28712830F9F4877F846093FFB6 -:1013C00006C0282F28712831F1F4877E846120918E -:1013D000D70220FF06C0382F38713830D9F4877F04 -:1013E000816021FF06C0282F28712831D1F4877E23 -:1013F000816194FD877E0895282F24712430F9F6A9 -:101400008B7F8860DCCF282F2471243101F78B7EFD -:101410008861DDCF382F3171313019F78E7F8860C8 -:10142000E0CF282F2171213121F78E7E8861E1CF15 -:10143000CF93DF93EC018238910581F1B0F58133D0 -:10144000910509F491C020F58932910509F485C010 -:101450008A9709F490C0C11521E5D20708F0AAC007 -:10146000C11530E5D30708F0F2C0CF3BD10508F035 -:1014700089C0C83AD10508F0DFC0C53AD10508F0E7 -:10148000D3C0C430D105F8F4C130D105E1F040C07B -:101490008533910509F45AC0C997E9F68091D602BF -:1014A000837089F0C0EED0E00EC0833E910599F1C3 -:1014B00070F4803E910501F1823E910561F68091C4 -:1014C000D60282FD21C0CE01DF91CF910895863EE4 -:1014D000910561F1873E910571F1843E910509F016 -:1014E000BACF8091D70281FFEECF8091D602C7EEAE -:1014F000D0E084FD0DC0E7CF8091D60280FDF7C01B -:101500009091D70290FFDFCFC3EED0E084FFDBCF16 -:10151000D0E0C0E0D8CF8091D60282FDEBC09091A0 -:10152000D70290FDBFCF84FFCECFF2CF8091D602FD -:1015300083FDDDCFC8CF8091D60283FDDEC09091C0 -:10154000D70291FFF0CFC4EED0E0BDCF8091D6029C -:1015500085FFB9CFC9E2D0E0B6CF8091D60285FF32 -:10156000B2CFC5E3D0E0AFCF8091D60286FFABCF3C -:10157000CAE2D0E0A8CF8091D60286FFA4CFC1E313 -:10158000D0E0A1CFC11540E2D40760F4C11581E0DD -:10159000D80708F098CFCE01815E9109079708F42B -:1015A00092CFB6CFC11590E4D90708F4B1CFDF7060 -:1015B000D06A89CFC11524E5D20778F4C11533E587 -:1015C000D30708F072C0C11542E5D40708F05CC02B -:1015D000DC2FCC27C16FD06A76CFC1158AE5D8073A -:1015E00078F4C11599E5D90708F073C0C11528E54D -:1015F000D20708F48DCFDC2FCC27C06FD06A63CF21 -:10160000CE0190568115904208F082CF8D2F8F71B8 -:101610000E94D50990E0982F882788279F719C0108 -:101620002C2BE901D0624FCFC55AD0E0C154DE4F18 -:10163000C881D0E0D06447CFC85AD0E0CC0FDD1FBE -:10164000CE53DE4F0990D881C02DD4643CCFCE015B -:1016500064E0969587956A95E1F783702C2F26951F -:101660002695237040E2249F90011124382B8C2F63 -:101670008370C1E0D0E002C0CC0FDD1F8A95E2F795 -:10168000C22BD32BDC681FCFCE018370992721E0BA -:1016900030E002C0220F331F8A95E2F7C695C69547 -:1016A00080E2C89FE0011124EBCFCE01837099271F -:1016B00021E030E002C0220F331F8A95E2F7C69581 -:1016C000C69590E2C99FE0011124C22BD32BDA68A2 -:1016D000FACE8C2F8F700E94D50934E0D695C7952D -:1016E0003A95E1F7CF709C2FEC01D069ECCEC9E3BD -:1016F000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE5A -:101700000C94620880915F0490919102892B9091D2 -:101710009002892B80933002E0915204F09153049F -:10172000309731F00280F381E02D80E392E009945C -:10173000089580918F0290915E02981301C00895E0 -:101740008F5F8770FACF27E0929F800D1124982F2A -:10175000977086958695869523E0829FF0011124E7 -:10176000E35CFD4F50E040E080E0219130E0092E45 -:1017700002C0369527950A94E2F721703327042E8C -:1017800001C0220F0A94EAF7822B4F5F5F4F43306C -:10179000510559F7089527E0929F800D1124982F45 -:1017A000977041E001C0440F9A95EAF786958695B7 -:1017B000869593E0899FF0011124E35CFD4F90E052 -:1017C00080E070E05191DF0111979B01082E02C06B -:1017D000369527950A94E2F7217021952527242331 -:1017E00025272C9301968330910561F7089590E0A9 -:1017F00080E00E94840890E080E00E946E081092D1 -:101800009102109290020C94820B809392020C949D -:10181000F70B882341F0809590915F048923809392 -:101820005F040C94820B0895882339F090915F0433 -:10183000982B90935F040C94820B08958823B1F148 -:101840009CEF980F913A70F4E2E3F2E091918913E2 -:1018500003C0DF0111971C9242E0E833F407B1F7AF -:101860000C94820B90E2980F983088F4877021E0F6 -:1018700030E0A90102C0440F551F8A95E2F7CA0162 -:10188000809590915F04892380935F04E9CF9BE565 -:10189000980F933020F490E080E00C948408885AEC -:1018A000873120F490E080E00C946E0808950F9347 -:1018B0001F93CF93C82F882309F469C08CEF8C0F36 -:1018C000813AB0F502E312E088E392E0F801219159 -:1018D000C21701F122E0E833F207C9F7EFEF80E029 -:1018E000D8019D918D01C91781F0EF3F19F4911135 -:1018F00001C0E82F8F5F863099F7EF3F31F00E2E51 -:10190000000CFF0BE05DFD4FC283CF911F910F9143 -:101910000C94820BE2E3F2E02191C21303C0DF01D9 -:1019200011971C928E179F07B9F70E94820BD6CF92 -:1019300080E28C0F883068F4C77021E030E001C08D -:10194000220FCA95EAF780915F04822B80935F048F -:10195000DCCFEBE5EC0FE33050F4F0E0E154FE4F68 -:10196000808190E0CF911F910F910C948408C85A08 -:10197000C73168F4EC2FF0E0EE0FFF1FEE53FE4F7F -:1019800080819181CF911F910F910C946E08CF911E -:101990001F910F910895982F92959F7011F0892FA4 -:1019A00094E0282F2695269511F09E5F822F86952C -:1019B00009F09F5F892F0895DC01FB0180819181EF -:1019C000803891054CF08FE78C93808191818F57FF -:1019D000910991838083089581382FEF92073CF419 -:1019E00081E88C938081918181589F4FF2CF8C93B5 -:1019F000118210820895681708F5861B682F21E070 -:101A0000469FA0011124649FF001659FF00D1124F1 -:101A10004091590150915A01E49FC001E59F900DFA -:101A2000F49F900D1124880F892F881F990B919591 -:101A3000222319F09195819591090895681B20E062 -:101A4000DFCF0F931F93CF93DF9300D000D0CDB79C -:101A5000DEB789836A834B831C8204E610E024E0AE -:101A600030E0AE014F5F5F4F60E084E10E9473326F -:101A70000F900F900F900F90DF91CF911F910F91CA -:101A8000089580913203882329F047E669E98BE2C3 -:101A90000C94210D6091590170915A0190E080E001 -:101AA0000E94C23520E030E040E05CE30E94233633 -:101AB00020E030E040E85FE30E94BD35882321F05C -:101AC00047EC6BE180E0E4CF41E265EA89EDE0CFED -:101AD000CF92DF92EF92FF920F931F93CF93DF93FA -:101AE0006C017B0164E670E088E70E945B31EC01E9 -:101AF00097FD12C010E000E0F601E00FF11F8491A5 -:101B000064E670E00E94D531EC01892B29F40F5F67 -:101B10001F4F0E151F0581F70E94EF32CE01DF9196 -:101B2000CF911F910F91FF90EF90DF90CF9008958C -:101B300080914E0490914F04911103C091E0892748 -:101B40000895882369F062E070E08CEE9BE00E94CB -:101B5000680D892B19F080914E04089510924E045F -:101B600080914E04EBCFCF93C0914E0480914F04EF -:101B70008823D1F00E9462086058774C8E4F9F4FA7 -:101B800060934A0470934B0480934C0490934D04EB -:101B9000C11108C062E070E08AEE9BE00E94680D0F -:101BA000892B29F0C0914E048C2FCF91089581E0AC -:101BB00080934E04F7CF90916C04943029F5809374 -:101BC0005B0470935D0460935C049093E9008FEF75 -:101BD0009091E800815095FD06C095ED9A95F1F73A -:101BE00000008111F5CF8091E80085FF0DC050E025 -:101BF00040E063E070E08BE594E00E94250780916F -:101C0000E8008E778093E8000895BC0184E00C948E -:101C1000DB0DBC0183E00C94DB0D9C0184E0809320 -:101C2000E9009FEF8091E800915085FD06C085EDA9 -:101C30008A95F1F700009111F5CF8091E80085FFBA -:101C40000CC050E040E066E070E0C9010E9425074A -:101C50008091E8008E778093E8000895CF93DF931A -:101C6000EC0181E08093E9008FEF9091E8008150D2 -:101C700095FD06C095ED9A95F1F700008111F5CF1D -:101C80008091E80085FF14C050E040E068E070E01B -:101C9000CE010E9425078091E8008E778093E800AE -:101CA00088E0FE01A2E6B4E001900D928A95E1F78A -:101CB000DF91CF9108959F92AF92BF92CF92DF9222 -:101CC000EF92FF920F931F93CF93DF937C015B0101 -:101CD0006A018091D10201E010E08A3010F40AE03C -:101CE00010E0C1E0D0E0F894B501C701F601099514 -:101CF000982E0E94BC09911004C021960C171D0754 -:101D00006CF4892DDF91CF911F910F91FF90EF908F -:101D1000DF90CF90BF90AF909F900895CC9F90019F -:101D2000CD9F300D300D112490E080E045E34A95C1 -:101D3000F1F70000019682179307C1F7D4CF809185 -:101D4000A102811110C08091D80080618093D800D9 -:101D50008AE18A95F1F700C08091D90080FF0AC01E -:101D600081E08093A10281E09091A102913009F07D -:101D700080E0089582E08093A1020E94D50610922F -:101D80006C04F1CF0E949F0E882351F0E091520421 -:101D9000F0915304309721F00190F081E02D0994E7 -:101DA00080E008951F93CF93DF93182FEB010E94DB -:101DB000570C8FE99FE00197F1F700C000002197D1 -:101DC000C1F7812FDF91CF911F910C941E0C4F9280 -:101DD0005F926F927F928F929F92AF92BF92CF92BB -:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4 -:101DF000DEB7CE5DD1090FB6F894DEBF0FBECDBF02 -:101E0000509070019091770490FF5DC080905D03C9 -:101E100090905E038114910409F068C0E0E6F6E05A -:101E20009E012F5F3F4FBE0161527F4FC901A491B8 -:101E30004A2F50E0DA01AA0FBB1FA40FB51FA15A09 -:101E4000BC4FCD90DD90EC90D901CD92DD92ED921A -:101E50009D0131966A177B0751F720916F0143E08E -:101E6000249F800D911D1124539A2BB1277F3BB1E4 -:101E700038605FB7F894BC01549E600D711D112449 -:101E80008617970709F08EC05FBF8FE594E0019732 -:101E9000F1F700C00000C252DF4F0FB6F894DEBF6A -:101EA0000FBECDBFDF91CF911F910F91FF90EF90AB -:101EB000DF90CF90BF90AF909F908F907F906F906A -:101EC0005F904F900895809171012091720133E0ED -:101ED000839FF0011124E15AFC4F821708F096CF3E -:101EE0001182108212828F5F3396F7CF90FF96CFC8 -:101EF000D12CC12C66246394712C53E0452E809123 -:101F00005C0393010C2C01C0220F0A94EAF7822390 -:101F100009F43FC0F601EE0FFF1FE80DF91DE59033 -:101F2000F490E114F10409F479CF45E050E0B701F1 -:101F3000CE0101960E94563509810F3F51F18A81E9 -:101F4000800F9927991F8B34910514F08AE490E053 -:101F50005C01AA0CBB1C8A0D9B1DDC01A15ABC4F65 -:101F60005D01049D80011124015A1C4F0A151B05B7 -:101F700020F0B5E0EB0EF11CD8CF4D81413A08F0CE -:101F800040EA98016C818B810E9424090D5F1F4FEC -:101F9000EDCFEFEFCE1ADE0AF8E0CF16D10409F04C -:101FA000AECF3CCFFC014191CF01E8E03BB900004E -:101FB00000C047FF2BB9440F000000C000C000C0A4 -:101FC0002BB900C0EA9591F75BCFE7E7F4E0808199 -:101FD0008E7F8083E9E5F3E08281816082832FEF49 -:101FE00080E792E0215080409040E1F700C000007F -:101FF0000C94E70EE2E3F2E086E0DF011D928A95A1 -:10200000E9F70C94F70B1F93CF93DF93CDB7DEB7AF -:10201000AA970FB6F894DEBF0FBECDBF8EE694E050 -:102020002091F100DC012D93CD01B4E086379B07B0 -:10203000B9F780916F04833009F471C0B8F481302E -:1020400009F448C0823009F4B4C08091E80083FFED -:102050003CC180916E0490916F049A3008F035C1B4 -:10206000E92FF0E0ED51F94C0C9449358A3009F430 -:102070008FC08B3009F470C0893039F780916E04BD -:10208000813219F78091720490917304009711F0D6 -:102090000297D9F68091E800877F8093E8008091CD -:1020A000E80082FF37C09091F3008091F200029720 -:1020B00029F48091F1008B7F813021F48091F1002F -:1020C000809361048091E8008B778093E8000E9400 -:1020D0004F07BBCF80916E04813A09F0B6CF809153 -:1020E000E800877F8093E8008091720490917304E8 -:1020F000892B61F468E082E694E070E00E940108B8 -:102100008091E8008B778093E8009FCF60E090E0BB -:1021100080E0F3CF80916C048111C1CF96CF809184 -:102120006E04813A09F091CF80917204909173040A -:10213000892B09F08ACF8091E800877F8093E8009F -:102140008091E80080FFFCCF809174018093F100C2 -:102150008091E8008E77B9CF80916E04813209F0CA -:1021600074CF8091720490917304892B09F06DCF24 -:102170008091E800877F8093E8000E944F0780915C -:1021800070048093740110925F040E94FA0F5DCF77 -:1021900080916E04813209F058CF8091E800877FEA -:1021A0008093E8000E944F0780917104809360043F -:1021B0004CCF80916E04813A09F047CF8091E800BE -:1021C000877F8093E8008091E80080FFFCCF8091BA -:1021D0006004BCCF803899F0823809F076C08091D5 -:1021E00072048F70873008F070C08093E90080918E -:1021F000EB0085FB882780F91092E90006C08091EA -:102200006A0490916B04911182609091E800977F2D -:102210009093E8008093F1001092F1008091E80023 -:102220008E77B5C1882309F4A2C1823009F04DC070 -:10223000809170048111A6C1809172048F702FEF7C -:10224000280F263008F041C08093E9002091EB0070 -:1022500020FF98C1933031F48091EB00806280932D -:10226000EB0090C19091EB0090619093EB0021E026 -:1022700030E001C0220F8A95EAF72093EA0010921D -:10228000EA008091EB008860EACF81111EC01091B6 -:1022900070041F778091E3008078812B8093E300A6 -:1022A0008091E800877F8093E8000E944F0780912B -:1022B000E80080FFFCCF8091E30080688093E3001A -:1022C00082E0111183E080936C048091E80083FF29 -:1022D0000AC08091E800877F8093E8008091EB003E -:1022E00080628093EB00AA960FB6F894DEBF0FBE13 -:1022F000CDBFDF91CF911F9108958058823028F78C -:1023000020917004309171042C3DE3E03E07A1F56B -:1023100083E08A838AE289834FB7F894DE011396BB -:1023200020E03EE051E2E32FF0E050935700E491CB -:1023300020FF03C0E295EF703F5FEF708E2F90E0BB -:10234000EA30C0F0C7968D939D932F5F243159F7E3 -:102350004FBF8091E800877F8093E8006AE270E0D9 -:10236000CE0101960E9401088091E8008B7780934E -:10237000E800ABCFC096E7CF8091720490917304D0 -:10238000432F55274330510509F44AC078F54130B1 -:10239000510509F47AC08BE590E0EEEEFBE04230A7 -:1023A000510509F092CF2091E800277F2093E800A3 -:1023B00020917404309175048217930708F49C01EE -:1023C00040E02115310509F065C0411163C08091DD -:1023D000E80082FDC9CF80916C04882329F2853002 -:1023E00019F28091E80083FFF2CFBECF4132510550 -:1023F00009F43CC04232510509F067CF83309105A2 -:1024000008F063CFFC01EE0FFF1FEF5DFD4F019061 -:10241000F081E02D825E9D4FDC018C9190E01AC02E -:10242000332721303105D1F02115310561F02230FB -:10243000310509F04ACFEBE5FCE0E4918E2F90E006 -:10244000EBE5FCE007C0EDE8FCE0E4918E2F90E0C6 -:10245000EDE8FCE0009709F438CFA5CFEBE7FCE00E -:10246000E4918E2F90E0EBE7FCE0F4CF8330910510 -:1024700008F02BCF880F991FFC01E95DFD4F0190FB -:10248000F081E02D89E090E08ECF82E190E0E9E4F8 -:10249000FCE089CF80916C04882309F465CF8530F6 -:1024A00009F462CF8091E80083FD5ECF8091E8005F -:1024B00082FD8DCF8091E80080FF83CF9091F30063 -:1024C0008091F2002115310519F08830910550F006 -:1024D00041E0089709F040E08091E8008E77809312 -:1024E000E8006FCF44914093F100319621503109BB -:1024F0000196E8CF803809F0E8CE8091E800877F28 -:102500008093E80080916D048093F10087CE811163 -:10251000DCCE10917004123008F0D7CE8091E80024 -:10252000877F8093E80010936D040E944F0711236A -:1025300011F084E005C08091E30087FDFACF81E0CF -:1025400080936C0442E061EC81E00E946E0742E2FD -:1025500061EC84E00E946E0742E261EC82E00E943E -:102560006E0742E260EC83E00E946E07AECE80917F -:102570007004813009F0A9CE81E0933009F080E049 -:1025800080936B041092E9008091E800877F80932C -:10259000E8000E944F0799CE1F93CF93DF93162F29 -:1025A000C0917E06D0917F068A30D1F420914304F9 -:1025B000CE018E579440622F70E00E941535281B83 -:1025C000822F66E00E942935C82FC15020F4DF9188 -:1025D000CF911F91089560E080E20E94CC12F5CF68 -:1025E0008D30E9F4CE57D44020914304622F70E03F -:1025F000CE010E941535281B822F9E01280F311D08 -:102600002115324018F080E0D0E0C0E0C80FD11DA5 -:10261000C258DB4FD0937F06C0937E06D8CF96E09A -:10262000FE01A4E4B4E001900D929A95E1F7803E9A -:1026300090F186E0FE0111928A95E9F7C0917E063D -:10264000D0917F06111133C046E050E0BE0184E412 -:1026500094E00E945F359E012E573440892B91F5FE -:102660002A5F3F4F40914304642F70E0C9010E94EC -:102670001535481B463010F4240F311D211572E02A -:10268000370710F030E020E022583B4F30937F06B0 -:1026900020937E069CCFF6E08F9FB00111246655F3 -:1026A000794F46E050E0CE010E945635C7CF9E01DB -:1026B0002A5F3F4FFE012E173F0731F28081809540 -:1026C0008193F9CFC90145E0969587954A95E1F741 -:1026D00041E050E0BA0102C0660F771F8A95E2F729 -:1026E000CB0160917C0470917D04862B972BB901FE -:1026F0006B5F7F4FE5E076956795EA95E1F702C05D -:10270000440F551F6A95E2F7842B952B90937D0417 -:1027100080937C04A5CFFF920F931F93CF93DF93F9 -:10272000EC01F62EFC0101900020E9F78F01015029 -:102730001109C017D10730F0DF91CF911F910F9190 -:10274000FF9008956F2D89910E94CC12F2CFE1E4A1 -:10275000F4E08083618324E630E042E050E0BF0192 -:1027600084EB0C944C32CF93C82F60E08CE00E9435 -:10277000A7136C2F84E00E94A71361E08CE0CF9137 -:102780000C94A7131F93CF93DF93CDB7DEB7629757 -:102790000FB6F894DEBF0FBECDBF96E0E4E2F3E0E3 -:1027A000DE01179601900D929A95E1F796E0FE01F1 -:1027B0003796DE011D9601900D929A95E1F71885E6 -:1027C000882309F1162B84E00E94B3131E8786E04C -:1027D000FE013D96DE01119601900D928A95E1F77A -:1027E00086E0FE013196A4E2B3E001900D928A9555 -:1027F000E1F762960FB6F894DEBF0FBECDBFDF9152 -:10280000CF911F91089560951623E0CFCF93DF936A -:10281000C3EED2E060E0CE010E9489352196C11559 -:1028200084E0D807B9F7DF91CF9108956F927F9236 -:102830008F929F92AF92BF92CF92DF92EF92FF92D0 -:102840000F931F93CF93DF938AEAC82E86E0D82E8A -:1028500091ECE92EF12CE701CC58D10936011BC0CF -:10286000F50185909490692DC8010E948935682DE5 -:10287000C80101960E94893582E0A80EB11C0E5F46 -:102880001F4FC017D10761F78EE0680E711C2E969E -:10289000CE15DF0529F08E010E5011095301E0CF4E -:1028A0007E018CE8E80EF11C8CE8C80ED11C8DE787 -:1028B000E81683E0F80679F6DF91CF911F910F912A -:1028C000FF90EF90DF90CF90BF90AF909F908F9050 -:1028D0007F906F900895CF93C82F6FEF811161E2C1 -:1028E00083E290E00E9489356FEFC11161E184E2DB -:1028F00090E00E9489356FEFC11163E185E290E0BD -:10290000CF910C94893580E00E946B1460E086E2E0 -:1029100090E00E9489350E9416140E94061481E0FE -:102920000C946B140F931F93CF93DF93C42FD0E0BD -:10293000CC0FDD1F2EE0629FC00DD11D11243CE89D -:10294000839FC00DD11D1124CE0187960E9475353D -:10295000082F10E0102F0027CE0188960E947535B1 -:102960009801282BC901DF91CF911F910F910895F4 -:10297000462F853038F47A3028F4673018F4672F02 -:102980000C94921490E080E00895CF92DF92FF9231 -:102990000F931F93CF93DF936C0100917604809186 -:1029A0009202082BC7E0D0E010E0FC2EC8010C2EEC -:1029B00002C0959587950A94E2F780FD0CC0219797 -:1029C000A0F7F12C8F2DDF91CF911F910F91FF90E8 -:1029D000DF90CF900895B6018C2F0E94B8140E940A -:1029E000180A019761F3EECFCF93DF93EC010E94B9 -:1029F000C514BE010E94B814DF91CF910C94180A3F -:102A0000FC01808191810E94F414292F2F709295EE -:102A10009F7092509E3078F4E92FF0E0E351F94C2A -:102A20000C944935803F19F020F4883E20F481E071 -:102A30000895843FE1F380E00895883EC0F3813F2C -:102A4000D1F7F5CF822F869586958695089583E2F6 -:102A500090E00E947535813289F484E290E00E9412 -:102A60007535813159F485E290E00E94753591E029 -:102A7000833109F090E0892F8170089580E0FCCFC8 -:102A8000CF92DF92EF92FF926B017C010E940E09C0 -:102A9000B701A60188E090E0FF90EF90DF90CF9023 -:102AA0000C949B35AF92BF92CF92DF92EF92FF9240 -:102AB0000F931F93CF93DF9300D00F92CDB7DEB764 -:102AC000082FF62E142FE22E8091770480FF4FC03E -:102AD000E82FE695AE2FB0E0AE5EBD4F9C9190938F -:102AE00059038E7F823009F056C0413A08F040EA1F -:102AF0009E012F5F3F4F6F2D802F0E9424098091F0 -:102B0000770480FF11C02B8139814A818091710146 -:102B10009091720153E0859FF0011124E15AFC4F1E -:102B2000891798F10E94E70E80917804801308C0FD -:102B3000809179048F1104C080917A04811729F063 -:102B400080915B03826080935B0300937804F09232 -:102B5000790410937A04EE2051F06091770470911B -:102B600078048091790490917A040E9440150F9026 -:102B70000F900F90DF91CF911F910F91FF90EF90E9 -:102B8000DF90CF90BF90AF90089541833083228330 -:102B90008F5F3396C5CF923039F6E2508E2F817019 -:102BA000D82EE695F0E0E55AF94FA590B490C12CE7 -:102BB000BB2460917301C61608F0B4CF2C2D30E011 -:102BC000A29EC001A39E900DB29E900D112470E0B4 -:102BD0000E941535802FD11016C0860F40917101CB -:102BE000420F532F511D9A01220F331F240F351FFF -:102BF000215A3C4F412F113A08F040EA6F2D0E94B4 -:102C00002409C394D6CF861BE9CFE7E7F4E04381DC -:102C100021E1421B08F440E021E0628181810C94B3 -:102C20005215E7E7F4E0438121E1420F08F44FEF4A -:102C300021E0628181810C945215E7E7F4E0628122 -:102C400021E1621B08F460E021E0438181810C9462 -:102C50005215E7E7F4E0628121E1620F08F46FEFBB -:102C600021E0438181810C945215E7E7F4E08181F2 -:102C700021E04381628188500C945215E7E7F4E02B -:102C8000818121E043816281885F0C94521580919B -:102C90007B04882319F0815080937B046091770432 -:102CA000709178048091790490917A040C94401585 -:102CB00080917B04833018F48F5F80937B04609154 -:102CC0007704709178048091790490917A040C943F -:102CD00040159091770490FF27C0917081111DC01D -:102CE00092609093770480915B03816080935B0393 -:102CF000662351F060917704709178048091790493 -:102D000090917A040E94401520E040917A046091ED -:102D10007904809178040C9452158C3010F09661EF -:102D2000E0CF880F982BDDCF089521E030E0A90196 -:102D300002C0440F551F8A95E2F7CA0120915C0337 -:102D4000662391F0822B80935C0380915B0380610A -:102D500080935B0380915A03811109C080917704AD -:102D600060E086950C94691680958223ECCF0895D7 -:102D7000CF93DF93C82FC17082FBDD27D0F981FB91 -:102D8000662760F985E00E94951661E06C2786E071 -:102D90000E9495166D2F87E0DF91CF910C949516C8 -:102DA0000F931F93CF93C82F61E08111682F61703B -:102DB00080E00E949516C1FB662760F9C11101C031 -:102DC00060E081E00E949516C2FB662760F9C111A0 -:102DD00001C060E082E00E949516C3FB662760F99F -:102DE000C11101C060E083E00E949516C4FB662714 -:102DF00060F9C11101C060E084E00E9495164C2F7B -:102E000050E070E060E0DB01CA01F4E0B695A79500 -:102E100097958795FA95D1F70097A105B10549F1E6 -:102E2000AC01BD0184E08A019B01E2E03695279563 -:102E300017950795EA95D1F701151105210531057B -:102E400019F08E5FB901A80176956795579547955A -:102E5000452B462B472B09F08F5F8230D1F158F478 -:102E60008823E9F0813059F18C2FCF911F910F9178 -:102E7000089580E0D8CF8330A1F18430A9F720E015 -:102E800040E56FEF8AED0E94521587E00E94B31370 -:102E900080910001882341F3109232030DC020E09D -:102EA00040E56FEF82E30E94521580910001882374 -:102EB00099F381E0809332030E94410DD5CF20E049 -:102EC00040E56FEF8CEF0E94521585E40E94B3132A -:102ED000CBCF20E040E56FEF80E50E94521585E200 -:102EE000F5CF20E040E56FEF86E70E9452158FE1B5 -:102EF000EDCF0E94D016809376040C94F70B80914E -:102F00007604982F9670963019F488600C9479178F -:102F1000877FFCCF21E030E001C0220F8A95EAF7DD -:102F200020958091760482230C94791721E030E07B -:102F300001C0220F8A95EAF780917604822B0C94C7 -:102F40007917809177048695815009F48BE061E0D0 -:102F50000C9469168091770486958F5F8C3008F009 -:102F600081E061E00C9469168091770480FF07C0CE -:102F7000869582588F77893010F40C94AA1761E0F7 -:102F800082E00C946916E7E7F4E083E08083118225 -:102F90008FEF828380EA83831482A9E5B3E01296DF -:102FA0008C911297836012968C93608171818281DB -:102FB00093810C944015AB01BC0188E190E00C9426 -:102FC0009B35CF93C82FEFE3F4E0982F990F990F1B -:102FD000990F80818770892B8083E0E4F4E09C2F37 -:102FE0009295969597708081887F892B80836091D8 -:102FF0003D0470913E0480913F04909140040E94F2 -:10300000DB176C2F82E0CF910C94A713EDE3F4E073 -:1030100089E88083118282818C7F828360913D0464 -:1030200070913E0480913F04909140040C94DB1712 -:10303000EDE3F4E080818E7F808360913D047091A8 -:103040003E0480913F04909140040C94DB17EDE323 -:10305000F4E080818160808360913D0470913E0442 -:1030600080913F04909140040C94DB1769EE7EEF51 -:1030700090E080E00E94A73560E082E090E00E944E -:10308000893560E083E090E00E94893510929202D9 -:1030900060E084E090E00E94893560E082E290E0A8 -:1030A0000E94893560E085E090E00E94893560E00B -:1030B00086E090E00E9489356FEF87E090E00E9403 -:1030C000893540E050E0BA0188E090E00E949B35ED -:1030D00060E08DE090E00E94893540E050E0BA0168 -:1030E00088E190E00E949B3560E087E190E00E94DB -:1030F000893540E050E0BA018CE190E00E949B35B8 -:1031000070E060E080E290E00E94A7350E9406181F -:1031100080E00E946B140E94831440E050E0BA01EA -:103120008FE090E00E949B3540E050E0BA0183E1DF -:1031300090E00C949B350F931F93CF93DF9300D0B7 -:1031400000D0CDB7DEB74091C5025091C602609164 -:10315000C7027091C8022FB7F894809157049091DC -:103160005804A0915904B0915A042FBF841B950BA9 -:10317000A60BB70B84369105A105B10588F10E9415 -:103180009F0E882379F10E9462086E5F7F4F8F4FF8 -:103190009F4F69837A838B839C8380912C019091CC -:1031A0002D0181559D4F40912B0150E04530510537 -:1031B00010F044E050E0BE016F5F7F4F0E946C351D -:1031C00084E090E00E946134892BD9F40E94620867 -:1031D0006093C5027093C6028093C7029093C802A1 -:1031E00081E010C00E9462080091D2021091D302C7 -:1031F0002091D4023091D502600F711F821F931F5E -:10320000C4CF80E00F900F900F900F90DF91CF917F -:103210001F910F9108958F929F92AF92BF92CF927C -:10322000DF92EF92FF920F931F93CF93DF93EB0107 -:1032300088809980AA80BB809FB7F894C09057047B -:10324000D0905804E0905904F0905A049FBFC818D9 -:10325000D908EA08FB0894E6C916D104E104F10490 -:1032600010F4442311F1E82E082E000CFF089AE018 -:103270008902F0011124EF5FFE4F83819481815513 -:103280009D4F428150E00417150708F4A801B901C9 -:103290000E946C35C7010E946134892BA1F40E9401 -:1032A0006208688379838A839B8381E0DF91CF9171 -:1032B0001F910F91FF90EF90DF90CF90BF90AF9054 -:1032C0009F908F90089580E0F1CF0F931F93CF933D -:1032D000DF930F92CDB7DEB780914E0489832091A2 -:1032E000C40290E041E02817190609F440E001E02B -:1032F00010E09E012F5F3F4F6DEC72E086E00E9470 -:103300000B190F90DF91CF911F910F9108950F939B -:103310001F93CF93DF93CDB7DEB729970FB6F894FD -:10332000DEBF0FBECDBF85E0E7E7F4E0DE0111961A -:1033300001900D928A95E1F78091590390915A037B -:10334000A0915B03B0915C038E839F83A887B987AC -:1033500041E08885811101C040E009E010E09E0154 -:103360002F5F3F4F69EC72E085E00E940B198111DD -:1033700010925B0329960FB6F894DEBF0FBECDBF47 -:10338000DF91CF911F910F9108956F927F928F924D -:103390009F92AF92BF92CF92DF92EF92FF920F93E4 -:1033A0001F93CF93DF930F92CDB7DEB7862E5A01CE -:1033B0006901682E880F7708C3010E946134892B48 -:1033C00009F088C08AE0869DF001879DF00D1124E8 -:1033D000EF5FFE4F458150E04115510511F041E08E -:1033E00050E08AE0869DF001879DF00D1124EF5F8B -:1033F000FE4F6681778161557D4FCE0101960E9417 -:103400006C35F50140815181628173812FB7F89449 -:103410008091570490915804A0915904B0915A0496 -:103420002FBF841B950BA60BB70B84369105A10506 -:10343000B10540F4B701C8010E94F30899818917CA -:1034400009F44FC0082C000C9908C4010E94613493 -:10345000892B91F0B12C8B2D0F90DF91CF911F9183 -:103460000F91FF90EF90DF90CF90BF90AF909F9023 -:103470008F907F906F9008958AE0889DF001899DDC -:10348000F00D1124EF5FFE4F458150E0E416F50684 -:1034900008F4A7018AE0889DF001899DF00D1124B0 -:1034A000EF5FFE4F6681778161557D4FC6010E94B7 -:1034B0006C35B701C8010E94F30899818913CACFFE -:1034C0000E946208F5016083718382839383BB2429 -:1034D000B394C1CFB12CA701B801C6010E946C35CD -:1034E000BACFBB24B394F7CFCF92DF92EF92FF9283 -:1034F0000F931F93CF93DF9300D000D00F92CDB7DF -:10350000DEB76B0185E0E82EF12C00EB12E09E01A6 -:103510002F5F3F4F47EA52E061E080E00E94C5190B -:10352000882349F095E0FE013196A2EAB2E00190CD -:103530000D929A95E1F795E0E2EAF2E0D60101906A -:103540000D929A95E1F70F900F900F900F900F90BA -:10355000DF91CF911F910F91FF90EF90DF90CF906F -:10356000089590E080E00E948335893E9E4F11F4DB -:103570000C94271580E008951F920F920FB60F92BA -:1035800011242F933F934F935F936F937F938F9368 -:103590009F93AF93BF93CF93DF93EF93FF93D0911C -:1035A000E900DF708091EC00C82FC17080FDC0E899 -:1035B0001092E9008091F000877F8093F00078946A -:1035C0000E9403101092E9008091F00088608093BF -:1035D000F000CD2BCF70C093E900FF91EF91DF9108 -:1035E000CF91BF91AF919F918F917F916F915F919B -:1035F0004F913F912F910F900FBE0F901F901895F4 -:103600001F920F920FB60F9211242F933F934F9357 -:103610005F936F937F938F939F93AF93BF93EF933A -:10362000FF938091E10082FF09C08091E20082FF58 -:1036300005C08091E1008B7F8093E1008091DA00EA -:1036400080FF24C08091D80080FF20C08091DA00E4 -:103650008E7F8093DA008091D90080FF9BC080E14B -:1036600089BD82E189BD09B400FEFDCF81E0809370 -:103670006C0480915E04811109C00E94D5060E94ED -:10368000A0078091E20084608093E2008091E100D5 -:1036900080FF17C08091E20080FF13C08091E2009C -:1036A0008E7F8093E2008091E20080618093E2004F -:1036B0008091D80080628093D80019BC85E0809307 -:1036C0006C048091E10084FF29C08091E20084FFB6 -:1036D00025C080E189BD82E189BD89B5982F9170AF -:1036E00080FFFBCF8091D8008F7D8093D8008091A0 -:1036F000E1008F7E8093E1008091E2008F7E8093D5 -:10370000E2008091E20081608093E20080916D048C -:10371000882309F445C084E080936C048091E10023 -:1037200083FF27C08091E20083FF23C08091E100E6 -:10373000877F8093E10082E080936C0410926D0497 -:103740008091E1008E7F8093E1008091E2008E7F86 -:103750008093E2008091E20080618093E20042E089 -:1037600060E080E00E946E078091F00088608093A6 -:10377000F000FF91EF91BF91AF919F918F917F9159 -:103780006F915F914F913F912F910F900FBE0F90CE -:103790001F90189519BC10926C0410925E0476CF9D -:1037A0008091E30087FD93E090936C04B7CF789409 -:1037B0001F921FB61F9211248F939F93AF93BF93B5 -:1037C0008091570490915804A0915904B0915A04E3 -:1037D0000196A11DB11D8093570490935804A093A6 -:1037E0005904B0935A04BF91AF919F918F911F904C -:1037F0001FBE1F9018959C014FB7F89480915704F5 -:1038000090915804A0915904B0915A044FBF821B63 -:10381000930B08952FB7F894809157049091580412 -:10382000A0915904B0915A042FBF08955F926F92EE -:103830007F928F929F92AF92BF92CF92DF92EF9240 -:10384000FF920F931F93CF93DF9300D000D00F927E -:10385000CDB7DEB77C01FC0183819481892B31F0E7 -:103860008081918189238F3F09F08CC60F900F9042 -:103870000F900F900F90DF91CF911F910F91FF90BC -:10388000EF90DF90CF90BF90AF909F908F907F9000 -:103890006F905F9008950E94C514182F682F89813A -:1038A0009A810E94CB0B69817A81812F0E94B81482 -:1038B0008C01F7018281882361F0F801E65EFC4506 -:1038C000ED30F10530F4E550F94C0C9449350E9487 -:1038D0002718D0903D04D0FE1CC08D2D8695837096 -:1038E000F7019281992309F460C1823090F4B70105 -:1038F000C8010E94B108882361F0D694D694D6946A -:1039000080913E0483708295880F807E8D290E946D -:10391000B313F7018281882309F429C6C8018251B3 -:103920009F45409708F0ECC58FEF93E00E947535F6 -:10393000025193EEA92E92E0B92E811197CF011179 -:1039400038C11C821B82662463948AE0582E85014C -:103950000F5F1F4FC5010E94753589831A82882326 -:1039600009F484CF9FEF980F933008F031C18A8318 -:10397000698232E0A30EB11CC8010E9475358B83A9 -:10398000882309F473CF8E010F5F1F4FF801208148 -:103990002223E9F2213009F055C1918182819130D1 -:1039A00009F018C10E5F1F4F6AE070E0893311F40F -:1039B00060E570E00E94D20E13C10E94181889CFF2 -:1039C00080913D0480FF0DC00E94181860913D0455 -:1039D00070913E0480913F04909140040E94DB1757 -:1039E00078CF0E942718F2CF0E94061872CF9091CC -:1039F0003D04892F86958F5F8370880F997F892B6F -:103A000080933D04982F9670963001F7897F8093BC -:103A10003D04DCCF90913E04892F8B7F92FF846020 -:103A200080933E04D3CF80913D04982F9695969530 -:103A3000969580913E0483708295880F807E892BB5 -:103A40008C3798F48F5F282F220F220F220F90912E -:103A50003D049770922B90933D04829586958370D8 -:103A600090913E049C7F892BDBCF81E0ECCF80914D -:103A70003D04982F96959695969580913E04837077 -:103A80008295880F807E892B11F08150DCCF8BE7E7 -:103A9000DACF30913E04932F969596959695209186 -:103AA0003F04822F83708295880F807E892B90E05F -:103AB0000196482F440F440F440F3770342B309336 -:103AC0003E0435E0969587953A95E1F783702C7F13 -:103AD000822B80933F047ACF30913E04932F9695AA -:103AE0009695969520913F04822F83708295880F3A -:103AF000807E892B8150990BDCCF80913F0482FF1F -:103B000012C08B7F80933F0460913D0470913E040E -:103B100080913F04909140040E94DB1760E081E0B7 -:103B20000E94A713D6CE846080933F0460913D0429 -:103B300070913E0480913F04909140040E94DB17F5 -:103B400060E08CE00E94A71364E182E00E94A7136A -:103B500065E081E00E94A71361E08CE0E1CF8091F5 -:103B60003F04982F9695969596958091400482955E -:103B7000880F807E892B883720F4865F0E94E117AA -:103B8000A8CE88E7FBCF80913F04982F9695969515 -:103B90009695809140048295880F807E892B843190 -:103BA00010F08A50EBCF84E1E9CF882309F4B1CE3D -:103BB0009ECEA114F4E0BF0609F458CEC5010E94C0 -:103BC0007535811101C001502FEFA21AB20AB7CE8C -:103BD0005801D9CE923039F40E5F1F4F0E94570C16 -:103BE0000F5F1F4FD3CE933029F40E5F1F4F0E94FB -:103BF0001E0CF6CF943019F00F5F1F4FF1CF0E5F00 -:103C00001F4F30E020E0B8016F5F7F4FF801418126 -:103C10008053990B8A30910550F02150310900F3FF -:103C20008FE99FE00197F1F700C00000F6CF529EA8 -:103C3000F001539EF00D11249C012E0F3F1F842F85 -:103C40008B01E1CFE22FF0E0E75FFD4F7490822F10 -:103C500086958695869590E0FC01E750FE4FE490AE -:103C60002770F12C022E02C0F594E7940A94E2F733 -:103C7000E1E0EE22FF24FC01E751FE4FC490D12C7D -:103C8000022E02C0D594C7940A94E2F7F1E0CF2245 -:103C9000DD24FC01E752FE4F8490912C02C09594E4 -:103CA00087942A95E2F721E082229924E114F10415 -:103CB00019F081EE0E94570CC114D10419F086EE60 -:103CC0000E94570C39E36AE070E0731202C060E5AD -:103CD00070E0872D0E94D20ECD2819F086EE0E944A -:103CE0001E0CEF2819F081EE0E941E0C892809F4A1 -:103CF00077CF6AE070E08CE25DCE81E00E9496179B -:103D000003C081E00E948A170F900F900F900F90D0 -:103D10000F90DF91CF911F910F91FF90EF90DF9067 -:103D2000CF90BF90AF909F908F907F906F905F905B -:103D30000C947F1782E0E2CF043F110509F455C1CE -:103D400008F057C1053E110509F4DDC0F701928165 -:103D500091113CC280915F0482720A3CFCE51F070E -:103D600009F414C208F06AC1053C3CE5130709F4E4 -:103D7000F9C108F04EC1033C5CE5150709F4D3C155 -:103D800008F0EBC1023C1C4509F47DC1F70100813C -:103D90001181992309F434C2C8010E94C514D82E98 -:103DA000682FC8010E94CB0BB8018D2D0E94B8145A -:103DB0000E94180A182FB82EF70122814581342F4E -:103DC00032953F70892F82958F70C82ED12C8C3000 -:103DD00008F04EC2F601E85FF84C0C944935033800 -:103DE000FFE51F0709F481C018F501383FE5130707 -:103DF00009F44AC008F065C000385FE5150709F00E -:103E0000A5CF882309F459C080919C02811106C076 -:103E100081E080939C0282EE0E94570C0E940A1C53 -:103E200090939B0280939A028BE20E94570C8ECF54 -:103E300005389FE5190709F4BEC008F476C00638B6 -:103E4000FFE51F0709F082CF882309F4CEC06091F7 -:103E5000590170915A0190E080E00E94C23520E043 -:103E600030E040E05CE30E94233620E030E040E8B0 -:103E70005FE30E94BD358111B5C080EE90E0909364 -:103E80005A0180935901A1C08823A1F080919C021E -:103E9000811106C081E080939C0282EE0E94570C43 -:103EA0000E940A1C90939B0280939A0281EE0E94CA -:103EB000570CBACF81EE0E941E0C8BE20E941E0CA2 -:103EC00045CF882309F442CF81EE0E94570C83EE40 -:103ED0000E94570C8FE40E94570C8FE40E941E0C26 -:103EE00083EE0E941E0C81EEE9CF882309F42ECFC9 -:103EF00081EE0E94570C83EE0E94570C80E50E94D1 -:103F0000570C80E5EBCF80933C0210933B0200936B -:103F10003A02882321F081E08093EE0217CF1092BD -:103F2000EE0214CF80933902F0CF882379F180918B -:103F30003902882349F080913A020E941E0C80EEDB -:103F40000E94570C8AE20CC080913C028823D1F376 -:103F500080913A020E941E0C80EE0E94570C8CE465 -:103F60000F900F900F900F900F90DF91CF911F91B6 -:103F70000F91FF90EF90DF90CF90BF90AF909F9008 -:103F80008F907F906F905F900C94570C8AE20E9404 -:103F90001E0C8CE40E941E0C80EE0E941E0C809170 -:103FA0003902811105C080913C02882309F45ECC5E -:103FB00080913A02D5CF8823C1F0809132038823C3 -:103FC00039F010923203109200010E94410DBECED2 -:103FD000809100018111F7CF81E0809332038093BB -:103FE0000001F3CF80E890E04ACF61E00E94C21365 -:103FF000ADCE62E0FBCF64E0F9CF882321F081E011 -:104000008093ED02A3CE1092ED02A0CE1092F002AA -:104010009DCE073C2CE5120709F4AEC008F4A7C0FA -:10402000083C4CE5140709F4ACC0093C1C4509F0F8 -:10403000ADCE45E056E161E176E179C0043DECE5C5 -:104040001E07A8F40E3CFCE51F0708F00FCC0C3C43 -:104050002CE5120709F49FC047E456E168E576E1D4 -:104060000D3C1C4508F463C061E081E046C0053D9D -:104070004CE5140709F4FACB08F492C00D351D4540 -:1040800009F4F4CB83CE8091770480FF31C08E7F1A -:10409000809377046091770470917804809179041B -:1040A00090917A040E94401580915B038160809317 -:1040B0005B039FEFE0E7F2E09150E040F040E1F772 -:1040C00000C000000F900F900F900F900F90DF91A5 -:1040D000CF911F910F91FF90EF90DF90CF90BF9005 -:1040E000AF909F908F907F906F905F900C94E70EB1 -:1040F00081608093770461E086950F900F900F9018 -:104100000F900F90DF91CF911F910F91FF90EF9043 -:10411000DF90CF90BF90AF909F908F907F906F90E7 -:104120005F900C94691641EA57E16AEA77E10F90D3 -:104130000F900F900F900F90DF91CF911F910F91E3 -:10414000FF90EF90DF90CF90BF90AF909F908F90B7 -:104150007F906F905F900C9409094AEA57E161EAF9 -:1041600077E1E5CF45E356E16EE376E1E0CF4EE35C -:1041700056E165E376E1DBCF4DE156E169E276E1B8 -:10418000D6CF49E256E16DE176E1D1CF41E156E18A -:1041900065E076E1CCCF48E556E167E476E1C7CF4C -:1041A0000F900F900F900F900F90DF91CF911F9174 -:1041B0000F91FF90EF90DF90CF90BF90AF909F90C6 -:1041C0008F907F906F905F900C94B4170E3D1C45BC -:1041D00009F0DCCD0F900F900F900F900F90DF91B2 -:1041E000CF911F910F91FF90EF90DF90CF90BF90F4 -:1041F000AF909F908F907F906F905F900C94361847 -:10420000C8010E94A30BD82ECFCD092F0F70907F2D -:1042100011F00295007F812F2223C9F0002369F05D -:1042200090E2910F983010F011110BC080915F0453 -:10423000082B00935F040E94820B812F0E94570C71 -:1042400017C080919102082B00939102F4CF0E9435 -:104250001E0C002369F00095105E183010F0B110AC -:1042600027C080915F04082300935F040E94820BA3 -:1042700098E0C91AD108E4E0CE16D10408F0F6CAD5 -:104280000E94C20E0F900F900F900F900F90DF9131 -:10429000CF911F910F91FF90EF90DF90CF90BF9043 -:1042A000AF909F908F907F906F905F900C94B81616 -:1042B00080919102082300939102D8CF892F8F70AB -:1042C000907F903211F08295807FF1E0BF120CC098 -:1042D000222329F0333060F60E94140CC9CF32300B -:1042E00038F60E94090CC4CF222341F03323A1F3F6 -:1042F00040FFA3CF4F70F7014583EECF332389F3FF -:10430000193309F0F5C0FFEF27EE33E0F1502040FC -:104310003040E1F700C00000812F0E941E0CA8CFA2 -:10432000892F86958695837061F0813009F0A0CF42 -:10433000812F9370211102C090E080E00E946E08EE -:1043400097CF812F9370211102C090E080E00E94EE -:1043500084088ECF892F8370A1F5211189CF812FF9 -:10436000829586958770880F880F412F4F70082E91 -:1043700001C0440F0A94EAF7212F207114FF07C0EF -:104380002FE030E001C0220F8A95EAF7209596953C -:1043900096959370923081F0822F842B933030F475 -:1043A00080919202913029F0242B82230E94050CE7 -:1043B0005FCF842B822BFACF242B8091920282270D -:1043C000F5CF8695222311F0892F8170882309F477 -:1043D0004FCF812F829586958770880F880F412F48 -:1043E0004F70082E01C0440F0A94EAF7212F207164 -:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 -:104400002095969596959370923081F0822F842B0B -:10441000933030F480917604913029F0242B82235C -:104420000E94791725CF842B822BFACF242B8091E1 -:1044300076048227F5CF092F0F70222329F0802FD1 -:104440000E949617812F48CF812F0E94090C802F40 -:104450000E948A170DCF812FE1EF1E1789F1E11716 -:1044600050F0F0EF1F17B9F02223B1F13111E5CE72 -:10447000892F8F7129C042EF141749F153EF15139B -:10448000F3CF80E0222361F29F7181E001C0880FA9 -:104490009A95EAF7C5CF222379F0323008F0E8CEBA -:1044A000292F2F7181E090E001C0880F2A95EAF74B -:1044B000909176048927B4CF333008F0D9CEF0CF6D -:1044C000892F8F71222321F20E949617D1CE892F36 -:1044D0008F712223C9F3BCCF332379F0893341F4A0 -:1044E0008FEF97EEE3E081509040E040E1F712CF8C -:1044F0008FE39CE90197F1F70DCF892F8F71A8CF3A -:104500000031FFE51F0709F4F8CB01312FE5120751 -:1045100009F410CC0E9462086093F5027093F602D1 -:104520008093F7029093F802F7018281063F11050C -:1045300009F461CD08F053CC043E110509F45DCDBA -:1045400008F0FACB003E110509F457CD013E1105E4 -:1045500009F4E8CC0C32110509F0F8CB882309F4F2 -:1045600055CD81E08093F00210926701EFCB0031CE -:104570003FE5130709F4C5CB01314FE51407A1F658 -:1045800082E0C0CB85E0DE01119601900D928A9504 -:10459000E1F7F701228189819A8121117CC90E946A -:1045A000A30B182F80C91F93CF93DF9380915D02D7 -:1045B000807FA9F480915A02882389F080918F022C -:1045C000D0915E026091580270915902A0915B02F5 -:1045D000B0915C02C62FC72316E0D81304C0DF9148 -:1045E000CF911F91089590E0109711F0CF3F19F4EB -:1045F00001968770F2CF189F9001199F300D1124FA -:10460000F901E15AFD4F41814713F2CF4081461332 -:10461000EFCF42814111ECCF438154814A1B5B0BA8 -:10462000403A510528F780915D028F708061809338 -:104630005D02F901EC59FD4F80818F7080618083AC -:1046400088E592E00E94161CDF91CF911F910C9497 -:10465000990BAF92BF92CF92DF92EF92FF920F939E -:104660001F93CF93DF93CDB7DEB761970FB6F89462 -:10467000DEBF0FBECDBF8C0185E0F801DE011D96C7 -:1046800001900D928A95E1F7F801E28088E5A82E65 -:1046900082E0B82E60915B0270915C026115710539 -:1046A00009F432C19091580240915902892F842314 -:1046B0008F3F09F429C120813181C380D480F090DB -:1046C0005A02F601E61BF70BFF2009F4E8C08091BF -:1046D0005D02582F507FE03AF10508F0ABC0511150 -:1046E00077C0FE2C431321C092131FC0E1101DC0E0 -:1046F0008F70806180935D02C5010E94161C8091BD -:104700005D02F80185838F2D61960FB6F894DEBFA8 -:104710000FBECDBFDF91CF911F910F91FF90EF9012 -:10472000DF90CF90BF90AF900895CD2829F0822FD1 -:1047300083238F3F09F003C180E0F82FF170DF2E53 -:1047400080FF3CC080918F0240915E0256E084134E -:1047500015C02D873E878D859E850E94F414292FD4 -:1047600022952F702230F0F0243018F59F70F1F070 -:10477000F8019581907FD1F4D12C1EC090E0589F14 -:10478000F001599FF00D1124E15AFD4F618136135C -:1047900006C06081261303C06281E6120FC0019635 -:1047A0008770D5CF9F7011F0882331F3805E8830F9 -:1047B00018F3C8010E94161CFD2CA5CFEE2009F4A9 -:1047C000A2CF80915D02816080935D02F12C9BCF2E -:1047D000431306C0921304C0F801EE2009F479C017 -:1047E000C8010E940015882309F1EE20F9F080919C -:1047F0005D02803270F02091580230915902388762 -:104800002F831986DB86CA868C87CE0107960E9485 -:10481000161C86E0F801A8E5B2E001900D928A9599 -:10482000E1F70E94D322FF24F3946DCFC8010E94C8 -:10483000161CF9CF51110AC088E592E00E94161C9F -:1048400086E0F50111928A95E9F7C0CF43130FC0B6 -:1048500092130DC0E1100BC0F8018583C8010E94BE -:10486000161C86E0F50111928A95E9F74CCFC80134 -:104870000E9400158823D1F2EE20C1F280915D02E2 -:10488000803238F220915802309159023A832983BC -:104890001B82DD82CC828E83CE010196B8CFE03AB6 -:1048A000F105F8F6FE2CEE2009F243131FC0921317 -:1048B0001DC080915D0280FD10C0982F907F69F02F -:1048C000F8018583903F31F0982F907F905F8F7033 -:1048D000892B8583C8010E94161C86E0F801A8E593 -:1048E000B2E001900D928A95E1F70DCFC8010E94C8 -:1048F000001581118ECF80915D02816080935D02F1 -:10490000C8010E94161CFFCEEE2009F48FCFC8010B -:104910000E940015F82E882309F488CF86E0F8015C -:10492000A8E5B2E001900D928A95E1F780915802D6 -:10493000909159020E94F4140E94D322E4CE81E0A7 -:104940008E25FBCE1F93CF93DF93CDB7DEB767974E -:104950000FB6F894DEBF0FBECDBF4B8B5C8B6D8B5B -:104960007E8B8F8B6111109291021A8A198A85E0D1 -:10497000FE017396DE011D9601900D928A95E1F776 -:1049800086E0FE013D96DE01179601900D928A9514 -:10499000E1F7CE0107960E942923882389F016E0CB -:1049A00080918F0290915E0289134BC067960FB67B -:1049B000F894DEBF0FBECDBFDF91CF911F91089558 -:1049C00086E0FE013796DE01119601900D928A95E0 -:1049D000E1F78A859B85892B11F38F81988589233F -:1049E0008F3FE9F220915E0230E0C90101968770A5 -:1049F000992740918F024817190681F410925F049D -:104A00000E94FA0F10925E0210928F0286E0E8E593 -:104A1000F2E0DF011D928A95E9F7C1CF96E0929FFF -:104A2000D001939FB00D1124A15ABD4FFE013196C4 -:104A300001900D929A95E1F780935E020E94990B86 -:104A4000AECF819FC0011124815A9D4F0E9429231E -:104A5000882309F4ABCF80918F0290E00196877094 -:104A6000992780938F029CCF9F92AF92BF92CF9253 -:104A7000DF92EF92FF920F931F93CF93DF93CDB707 -:104A8000DEB764970FB6F894DEBF0FBECDBF8E01C0 -:104A90000F5F1F4F8AE0D8011D928A95E9F79EE4C7 -:104AA000C92E91E0D92EF12CE12CAA24A394B12C8B -:104AB000F60181916F018F3F09F44AC0F894E82F05 -:104AC000E295EF70F0E021A18F70A50102C0440FC4 -:104AD000551F8A95E2F7CA01922F982B91A392A1B4 -:104AE0008095892382A30E94BC0900C0E7E4F1E01D -:104AF00030E020E0912C41914F3F09F47DC0A42F7C -:104B0000A295AF70B0E090968C9190E04F7002C08B -:104B1000959587954A95E2F780FD6EC08A2D022E05 -:104B200001C0880F0A94EAF7982A2F5F3F4F273079 -:104B3000310509F7F601319780818F3F11F00E940E -:104B4000BE0950EA5A95F1F7F801EE0DFF1D90826B -:104B50008FEFE81AF80A95E0E916F10409F0A8CFFA -:104B60004AE050E0B80188ED92E00E945F357C0198 -:104B7000892B41F08AE0F801A8EDB2E001900D9296 -:104B80008A95E1F71091E302E114F104B9F181E0B3 -:104B9000809395020E940A1C909394028093930242 -:104BA00080919302909194020E94FB1B069770F0F3 -:104BB000A8EDB2E0E12FF0E0E15BFC4F8D91819335 -:104BC00022E0AD3DB207D1F71092950281E090E06E -:104BD000EF28C1F064960FB6F894DEBF0FBECDBFCC -:104BE000DF91CF911F910F91FF90EF90DF90CF90C9 -:104BF000BF90AF909F90089580E096CF80919502EE -:104C00008111CECF0E949F0EB82EE091E30288233F -:104C100009F4C7C08E01005F1F4F85E0D8011D92C7 -:104C20008A95E9F7F0E09F01215B3C4F7901809183 -:104C3000D102AE014B5E5F4F6A018A3008F086C038 -:104C400044E75AE1B801C7010E945B0E882309F4CA -:104C500094C045EA57E2B801C7010E945B0E882361 -:104C600009F48BC04BE958E1B801C7010E945B0E03 -:104C7000882309F482C047E859E1B801C7010E94BE -:104C80005B0E882309F479C045E659E1B801C701F4 -:104C90000E945B0E882309F470C01092D102E0914B -:104CA000E202F0E0AF01415B5C4FD80110E0FA0195 -:104CB0009191AF018D91981731F09F0121503109E9 -:104CC000F90180831B2DCA16DB0689F780919C02AF -:104CD000882371F080919A0290919B020E94FB1BA5 -:104CE000893E934028F082EE0E941E0C10929C0296 -:104CF00088E9C82E82E0D82EF12CE12CD6018D91C6 -:104D00006D018823D1F08695F70109F447C0EC5076 -:104D1000FE4F808191819C878B871D860E940A1C93 -:104D20008160782F9F878E87F601319710824B859F -:104D30005C856D858F850E94A224B2E0EB0EF11C8C -:104D4000E4E0EE16F104D1F6812F44CF8091960273 -:104D5000909197020E94FB1B843F914008F070CF16 -:104D6000A091E202B0E0A15BBC4FF8011D9211924C -:104D7000CE16DF06D9F71B2DA9CF8091D1028F3F28 -:104D800031F08F5F8093D1028A3008F488CF0E947F -:104D90000A1C9093970280939602E2CFE051FE4F57 -:104DA000B8CFF0E0E15BFC4FF89485E0A0EBB2E017 -:104DB00001900D928A95E1F765E070E080EB92E05A -:104DC0000E94F3088093AF020E94BC09F894E0911E -:104DD000EB02F0E0E851FD4F80818B878093B602B3 -:104DE00061E070E0CE010B960E94F3088093B5025B -:104DF0000E94BC09F894C090B702D090B802E0902D -:104E0000B902F090BA0280919D0290919E02A09109 -:104E10009F02B091A002C816D906EA06FB06D1F09F -:104E2000C0929D02D0929E02E0929F02F092A00258 -:104E30000E949F0E81110EC00E946208C61AD70AF6 -:104E4000E80AF90AC092D202D092D302E092D402C8 -:104E5000F092D5020E94BC09F8948091C202882386 -:104E600021F184FF04C09091C30290935C0380FF02 -:104E70000DC08091BB0280FF25C0909177049160A6 -:104E80009093770460E086950E9469168091C20233 -:104E900081FF09C020E04091BE026091BD02809177 -:104EA000BC020E9452151092C2020E94BC09F894E2 -:104EB0008091C402882349F00E94B30D0E94BC096E -:104EC00080E088CE0E94E50FE1CF0E94980DF6CFDA -:104ED000EF92FF920F931F93CF93DF9300D000D0F8 -:104EE0000F92CDB7DEB7162FE82EF12CC701880F31 -:104EF000991F662339F18C509E4FFC01808191816E -:104F00009A83898301E00B830E940A1C8160782FB9 -:104F10009D838C83F701E856FD4F0127110F102B5D -:104F2000108349815A816B818D810F900F900F9072 -:104F30000F900F90DF91CF911F910F91FF90EF9005 -:104F40000C94A22480519E4FD8CFCF92DF92EF9243 -:104F5000FF920F931F93CF93DF930F92CDB7DEB7DE -:104F6000EE24E394F12C06EB12E09E012F5F3F4FFD -:104F70004BEA52E063E082E00E94C519082F8823C3 -:104F800021F1C090E5028C2D90E09C0128513D4F0D -:104F900079011981F9018081181BD12E80E00AC0A6 -:104FA000DA94F70180818F5F808360E08C2D0E940E -:104FB0006827802F1D14A4F3912F17FD90E0191B73 -:104FC00011110EC081110E94800B802F0F90DF9174 -:104FD000CF911F910F91FF90EF90DF90CF900895A8 -:104FE0001F5FF70180818150808361E08C2D0E94DA -:104FF0006827802FE5CF1F921FB61F9211248F9331 -:105000009F93AF93BF9380915604811113C08091F9 -:10501000570490915804A0915904B0915A044196B4 -:10502000A11DB11D8093570490935804A093590477 -:10503000B0935A04BF91AF919F918F911F901FBE63 -:105040001F901895CDB7DEB7E9970FB6F894DEBF7D -:105050000FBECDBF84B7877F84BF0FB6F894A895E5 -:1050600080916000886180936000109260000FBEA4 -:1050700080E890E00FB6F89480936100909361000F -:105080000FBE85B7806885BF85B7806885BF8AEB0E -:1050900099E090932F0280932E020E94D5060E94E1 -:1050A000A0078091E20084608093E2007894809170 -:1050B0006C048823A1F01091E9001F709091EC001E -:1050C000892F817090FD80E8182B1092E900809163 -:1050D000E80083FD0E9403101F701093E90082E036 -:1050E00084BD93E095BD9AEF97BD80936E001092BA -:1050F000D2021092D3021092D4021092D5020E94D2 -:105100002715811102C00E9483140E949F0E809374 -:10511000580180915801882309F4C6C010926F018C -:1051200085E2809370010E949F0E81110E9454338A -:105130008091580181112FC0FE01359686E0DF0174 -:105140001D928A95E9F786E6898387E98A8386EC4A -:105150008B8384E38C8385E38D833497AEE4B1E065 -:10516000CE010B9621912D938E179F07D9F787E0DB -:10517000E5E7F1E0DE01919601900D928A95E1F765 -:10518000FE01B196A7E4B1E0CE01889621912D935E -:105190008E179F07D9F78091580195E0811190E013 -:1051A0009093E30285E0891B8093E2020EE411E014 -:1051B000A3E5EA2EA1E0FA2EF80181918F018F3F3D -:1051C00011F00E94BE09E016F106B1F707E411E004 -:1051D000FEE4EF2EF1E0FF2ED8018D918D018F3F7F -:1051E00011F00E94BE09E016F106B1F7E8EDF2E019 -:1051F00082EE92E0AFE4B3E011921D928E179F070A -:10520000D9F70E94B11A811102C00E94361882E0BB -:1052100090E00E9475358093440384E090E00E9402 -:105220007535182F82E290E00E947535982F812FF6 -:105230009093D7028093D6020E943425EFE7FBEBD0 -:105240003197F1F700C000000E94342580914F0390 -:1052500080FF2EC06FEF7FEF90E080E00E94A735C7 -:1052600081E08093E00080E28093D8001092C90032 -:105270008FE19EE40197F1F700C0000087E090EB1A -:10528000DC018093800690938106A0938206B09300 -:10529000830688E19CE00FB6F894A895809360009F -:1052A0000FBE90936000FFCF85E280936F0139CFEE -:1052B00083E090E00E9475350E94050C8091760491 -:1052C0000E94D0160E94B11A811102C00E943618A5 -:1052D00088E190E00E947D3560933D0470933E0428 -:1052E00080933F0490934004672B682B692B11F443 -:1052F0000E9406180E94553167E081E00E94A713C2 -:1053000060E586E10E94A7136BE687E10E94A71380 -:1053100060EB8AE10E94A71369E98BE10E94A71361 -:1053200065EF8CE10E94A71360EA8DE10E94A7134C -:1053300060E38EE10E94A71366E083E00E94A7135A -:1053400061E08CE00E94A71360E081E00E94A71357 -:1053500060E08CE00E94A7136FE084E00E94A71336 -:1053600061E08CE00E94A7130E949F0E811102C091 -:105370000E94573383E080931A0380E280934304B2 -:105380000E9455316DE070E08CE992E00E94680D5A -:10539000892BE9F580911A0363E070E081FD9EC2DC -:1053A00089E992E00E94680D892B89F56DE070E033 -:1053B00089E892E00E94680D892B49F50E946208F5 -:1053C0006058774C8E4F9F4F60934A0470934B0404 -:1053D00080934C0490934D04EEE7F4E080E092E07B -:1053E000DF019C011D9221503040E1F7F0937F06D0 -:1053F000E0937E068FEF9FEF90937D0480937C0473 -:1054000081E080934F0480934E0410921B0380919F -:10541000E402811136C00E94B11A811104C00E94B9 -:1054200036180E94C31788E090E00E947D35609393 -:105430007704709378048093790490937A04809130 -:105440005B03836080935B036E7F71F40E94C317DC -:1054500088E090E00E947D35609377047093780433 -:105460008093790490937A040E940E0980917704C6 -:1054700080FF04C060E086950E94691681E08093F9 -:10548000E40280915801811106C084EF8093660187 -:1054900085EF8093650120916601A22FA295AF70E0 -:1054A000B0E091963C9191972F7081E090E0BC0123 -:1054B000022E01C0660F0A94EAF7462F4095432357 -:1054C00091964C93919792963C919297362B929607 -:1054D0003C93929740916501E42FE295EF70F0E0E4 -:1054E00031A14F70042E01C0880F0A94EAF7982F5B -:1054F0009095932391A392A1892B82A390968C914E -:1055000090E002C0959587952A95E2F7817020A1D9 -:1055100030E002C0359527954A95E2F792E020FFEA -:1055200090E0892B8093EC028091580111E0812753 -:105530008093EB02312F381B3093E5020E945531E6 -:1055400040E060E080E00E94210D89EA92E09093C3 -:105550005E0380935D0360E08AE00E94691681E04B -:105560000E94791780EE90E090935A018093590140 -:10557000109332030E94410D8BE591E09093530408 -:10558000809352043E018DE3680E711C80916C047F -:10559000FF24F39400E112E1853009F4F2C10E9486 -:1055A0003425E82E81110E946208E5E4F3E0AFE4BF -:1055B000B3E010E000E0B02EDD9081918D1509F48C -:1055C00004C28D25C12CFF24F394982F9F2109F448 -:1055D000F7C10E949F0E882399F0CEA6BFA6DF20B8 -:1055E00081E009F480E088AB0E940A1C8160782F7A -:1055F0009AAB89AB4EA55FA568A98AA90E94A2248F -:10560000F801EB5BFC4F8081F826F0828091EC0280 -:10561000E82FEE0FEE0F90916601A92FA295AF70C3 -:10562000B0E090962C9130E09F7002C035952795A0 -:105630009A95E2F72170332790916501A92FA295E1 -:10564000AF70B0E090964C9150E09F7002C05595BD -:1056500047959A95E2F7CA018170992740FF02C0E9 -:1056600082E090E0822B8E2B8093EC021091EB0273 -:105670008F70E82FF0E0E650FE4F80819091EA02B3 -:10568000890F8093EA02F12C84306CF0E12FF0E076 -:10569000E851FD4F80818F5F808360E0812F0E9401 -:1056A0006827FF24F3948091EA028D3F6CF4E12F88 -:1056B000F0E0E851FD4F80818150808361E0812FCF -:1056C0000E946827FF24F3948091EA02082E000CC0 -:1056D000990B64E070E00E9435358093EA02F11086 -:1056E0000E94800B80914F04882351F180911C030C -:1056F00090911D030E94FB1BC29708F07DC1209171 -:105700007C0430917D042115310509F0A0C28091FF -:105710004E048823A9F00E94620800914A04109167 -:105720004B0420914C0430914D04601B710B820B93 -:10573000930B6F3F7F4F8F4F9F4710F40E94980D40 -:10574000E11001C0F1100E94B30D809142038A3034 -:1057500008F0BAC380914003909141030E94FB1B63 -:10576000069708F4B1C304E610E025E030E04BE30F -:1057700053E064E084E10E94A032892B09F075C3F4 -:105780001092420320913203222359F080913B036F -:1057900090913C0398278927982790933C03809306 -:1057A0003B0386E0E4E2F3E0DE01919601900D9286 -:1057B0008A95E1F786E0FE01B196DE01119601902F -:1057C0000D928A95E1F786E0FE013196A5E3B3E0FC -:1057D00001900D928A95E1F790913F0380913603F5 -:1057E00097FD3AC38E7F8093360380913303909167 -:1057F0003403009709F02AC360913B0380913C0376 -:1058000000913D0310913E03222309F4F2C241E0CE -:105810000E94FB0C2091300330913103820F931FC3 -:10582000909331038093300341E0602F812F0E94D9 -:10583000FB0C20912E0330912F03820F931F909326 -:105840002F0380932E0360E373E08AE393E00E94CA -:10585000DC0C6EE273E089E393E00E94DC0C1092B2 -:1058600037031092380386E0E5E3F3E0DE0111969A -:1058700001900D928A95E1F786E0FE013196A4E24F -:10588000B3E001900D928A95E1F7309126032091C3 -:105890002703909128038091290370912003609140 -:1058A00021034091220350912303F0912503E091BD -:1058B0001F03FE13E0C2332311F07313DCC2222353 -:1058C00011F02613D8C2882311F08513D4C299236E -:1058D00019F081E04913D0C280E0CEC286E992E09F -:1058E00061CD80916C04843009F43BC00E94980D16 -:1058F00040E060E080E00E94210D80E00E94B81648 -:105900008091E702811109C0F092E702809177044B -:1059100081708093E6020E94E50F10925604A8E180 -:10592000B0E0E0E40FB6F894A895A09360000FBE35 -:10593000E093600083B7817F846083BF83B7816019 -:1059400083BF7894889583B78E7F83BF0FB6F89412 -:10595000A89580916000886180936000109260003B -:105960000FBE80916B04882361F00E943425EFE420 -:10597000F3E08191811178C429E533E02E173F07C8 -:10598000C1F780916C04853009F4ABCF10925F04AD -:105990000E94FA0F0E94C20E0E94B8161092E702EF -:1059A0008091E602882349F080917704816080939A -:1059B000770460E086950E9469160E94410DEFCD44 -:1059C000C394FF0C37E0C31200CE0F5F1F4F0A30A5 -:1059D000110509F0F0CD8FEF8BAB8CAB1DAA0E94A7 -:1059E0000A1C8160782F9FAB8EAB4BA95CA96DA977 -:1059F0008FA90E94A2240ACE0E940A1C90931D0324 -:105A000080931C0360E080E00E949A080E94C20E0E -:105A10008093F9020E949F0E882331F14091F50294 -:105A20005091F6026091F7027091F8022FB7F89446 -:105A30008091570490915804A0915904B0915A0450 -:105A40002FBF841B950BA60BB70B81339547A10580 -:105A5000B10540F00E94980D80914F04882309F40D -:105A600056CE4DCE0E94B30D0E949F0E882309F49E -:105A7000D5C061E080E00E949A0860E08CE791E088 -:105A80000E948B1362E080E00E949A088091760465 -:105A90000E94CB0C823009F49BC008F090C0882390 -:105AA00009F496C0813009F499C065E080E00E9455 -:105AB0009A0860E08AE991E00E948B1366E080E03A -:105AC0000E949A086091F902669561708FE991E0F1 -:105AD0000E948B1367E080E00E949A086091F902AF -:105AE0006095617084EA91E00E948B1368E080E029 -:105AF0000E949A086091F90262FB662760F988EAC1 -:105B000091E00E948B137DA66CA64091F10250910A -:105B1000F2026091F3027091F4022FB7F894809131 -:105B2000570490915804A0915904B0915A042FBF82 -:105B3000841B950BA60BB70B8D329140A105B105C7 -:105B400008F48ACF0E9462086093F1027093F20217 -:105B50008093F3029093F4028091F002811104C0CB -:105B600080916701811142C06DE080E00E949A0837 -:105B700060E08DEA91E00E948B136AE080E00E9471 -:105B80009A0881E0809367018091EF0290E001968E -:105B9000817099278093EF0221E030E0281B390BB8 -:105BA00040E6429FC001439F900D11242091EE02D8 -:105BB000222351F1855C9B4F0E9492064DCF83308A -:105BC00089F0843009F071CF60E08EE891E003C085 -:105BD00060E082E891E00E948B1367CF60E088E884 -:105BE00091E0F9CF60E084E991E0F5CF6AE080E0F0 -:105BF0000E949A0860E08DEA91E00E948B136BE0AE -:105C000080E00E949A08C0CF2091ED02222319F073 -:105C100085589C4FD1CF85549D4FCECF64E080E016 -:105C20000E949A0860E083EB91E00E948B1365E08C -:105C300080E00E949A0860E089EB91E00E948B135B -:105C400069E080E00E949A088BEF94E0B5CF8091E4 -:105C50001B0361E070E081115ACD082F10E02B0189 -:105C6000082E02C0440C551C0A94E2F7A9014421F5 -:105C70005521452B09F448C090911A0390FD46C068 -:105C80008295880F807680936A01980136952795D2 -:105C90003695279520936D01815E80936B0110925C -:105CA0006E0124E630E047E050E068E671E088E706 -:105CB0000E944C32892B09F02ACDA80175E0440FCF -:105CC000551F7A95E1F780911A0380FD2DC0425847 -:105CD0005B4F04E610E020E230E060E488E70E94D9 -:105CE0007332892B09F013CD0E94B30DC201809548 -:105CF000909540907C0450907D0448225922509207 -:105D00007D0440927C0403CD8F5FA7CF880F880F5E -:105D1000880F80936A0110926D01895F80936B01F7 -:105D200083E080936E01BDCFEAEFF2E080E2DF0115 -:105D30001D928A95E9F7EEE0F2E0F9AFE8AF0AE0EC -:105D400012E099249394A8ADB9AD2D91B9AFA8AF45 -:105D5000F80121908F01240E352E311CC10182588B -:105D60009B4F1C01E22FF0E0E650FD4F30E020E0B9 -:105D700067E0A62EA21AB92C022E01C0BB0C0A9411 -:105D8000EAF7610190E0D6018D916D018B216A2DBA -:105D9000691B6770862E062E000C770BB82F01C08A -:105DA000BB0F8A94EAF78B2E719561957109677024 -:105DB000772701C086956A95EAF7882A8081882A24 -:105DC00080829F5F9830F9F62F5F3F4F31962830E1 -:105DD000310571F6E2E1F2E028AD39ADE217F307E3 -:105DE00009F0B1CF04E610E020E230E04AEF52E0E3 -:105DF00074CF45E00E94FB0C20912C0330912D03C1 -:105E0000281B390B30932D0320932C0345E0602F82 -:105E1000812F0E94FB0C20912A0330912B03281B19 -:105E2000390B30932B0320932A036CE273E087E352 -:105E300093E00E94DC0C6AE273E088E393E00E9446 -:105E4000DC0C10923A03109239030DCD0197909318 -:105E500034038093330307CD81608093360384E05D -:105E60000E94B31384E190E0F2CF809142038F5FF0 -:105E700080934203F8CC81E080FF0FC0E091520490 -:105E8000F0915304309749F082E08093240304801A -:105E9000F581E02D84E293E009951092260310929B -:105EA0002703109228031092290386E0E4E2F3E02E -:105EB000AEE1B3E001900D928A95E1F70E940A1CD1 -:105EC00090934103809340030E94C20E909143033C -:105ED000891731F00E94C20E809343030E94B816C6 -:105EE00080916C04843009F051CB83E08093E90009 -:105EF0008091E80082FF4ACB8091E80090E085FF26 -:105F00000BC00E94F40630E2E32EF12C8E010F5FED -:105F10001F4F8823E1F091E08091E8008B77809318 -:105F2000E800992309F432CBE981E150E33108F02C -:105F300071C0F0E0EC5EF84C0C9449358091F100B2 -:105F4000D8018D938D01B1E0EB1AF10821F3809116 -:105F5000E80085FDF3CF8091E8008B778093E8001F -:105F60000E94F406882399F3D6CF1A8289E08B83A6 -:105F700011C08A81823009F48FC1833091F1813060 -:105F800009F048C00E9462080E944F356B837C83F1 -:105F90008D839E8380916C04843009F0F7CA109140 -:105FA000E9001F709091EC00892F817090FD80E8CE -:105FB000182B82E08093E9008091E80080FF0DC0FB -:105FC00050E040E060E270E0CE0101960E942507BB -:105FD0008091E8008E778093E8001F701093E900AD -:105FE000D5CADE011396EFE4F3E081918D9323E0AF -:105FF000E935F207D1F7CECF8A81823059F46B812F -:106000007C818D819E810E944F3586E290E00E94C6 -:106010008935C0CF8FEF8983BDCF4C816B818A8159 -:106020000E9492149827892798279E838D83B2CF48 -:106030000D811E811027012710278A81EB803EE009 -:10604000E39E700111249CE8899FE00CF11C11244F -:106050008C8190E0880F991FE80EF91E612FC7010F -:1060600087960E948935602FC7018896D0CF0E94FD -:10607000161490CF8A818138C1F060F4803809F01D -:1060800089CF20E04B8160917904809178040E944F -:10609000521580CF8238E9F0833809F07BCF20E0B9 -:1060A00040917A046C818B81F2CF60E08B810E94F9 -:1060B00069168B81811103C00E94E50F6BCF80911F -:1060C000770481608093770460E086950E9469166A -:1060D00061CF8B8180937B045DCF8A81813899F079 -:1060E00030F4803809F056CF80917A0440CF82385E -:1060F00091F0833809F04ECF809178048B838091A2 -:1061000079048C8347CF8091770480FF02C0869505 -:106110002ECF80E02CCF80917B0429CF6091770433 -:10612000709178048091790490917A040E944015CE -:1061300031CF80E18A832ECF81E08A838DE117CF32 -:10614000CA80DB80DC24CD24DC248E010F5F1F4F4E -:10615000EC80E00EF12EF11CC6018D519D4F0E1505 -:106160001F0509F417CFADE1CA16A1E0DA0650F415 -:106170000E947535F8018483BFEFCB1ADB0A0F5FED -:106180001F4FEACFD80114961C92F6CF0A811B81CB -:10619000102701271027FE0131966F01EC80E00ED9 -:1061A000F12EF11CC8018D519D4FE016F10609F446 -:1061B000F1CE0D31F1E01F0728F4D60114966C9151 -:1061C0000E948935BFEFCB1ADB0A0F5F1F4FEACF62 -:1061D0000E940614DFCE85E0ADCFCA80DB80DC24D0 -:1061E000CD24DC248E010F5F1F4FEC80E00EF12EDA -:1061F000F11CC6018796E016F10609F4CBCEECEB54 -:10620000CE16E2E0DE0658F40E947535D8011496E9 -:106210008C93FFEFCF1ADF0A0F5F1F4FEACFF80111 -:106220001482F7CF0A811B811027012710279E01B6 -:106230002F5F3F4F6901EC80E00EF12EF11CC80189 -:106240008796E016F10609F4A5CE0C3B32E0130761 -:1062500028F4D60114966C910E948935BFEFCB1AB1 -:10626000DB0A0F5F1F4FEBCF09BD19BD09B400FE5C -:10627000FDCF8091D8008F7D8093D8008091E00081 -:1062800082608093E0008091E00081FDFCCF10925D -:106290005F040E94FA0F75CB86E290E00E9475358C -:1062A0001B821C821D828E8375CE1092B9008CE0F9 -:1062B0008093B80008959F92AF92BF92CF92DF92E1 -:1062C000EF92FF920F931F93CF93DF93B82EEB01C2 -:1062D0000E940A1C6C01EE24E394F12CC431D10518 -:1062E00060F025E0E22EF12CCF3FDC0731F0CE014B -:1062F00064E170E00E9415357B0184EAA82E94E8E1 -:10630000992E1092BC00A092BC000E940A1C8C0125 -:106310008091BC0087FF0DC08091B900887F8830D4 -:1063200039F18091B900887F803111F10FEF1FEFB3 -:1063300009C00E940A1C801B910B8E159F0540F31B -:106340000EEF1FEFCF3FDC07E1F2C6010E94FB1BFF -:106350008C179D07B0F2C801DF91CF911F910F916B -:10636000FF90EF90DF90CF90BF90AF909F900895F7 -:10637000B092BB009092BC000E940A1C8C018091DC -:10638000BC0087FF0AC08091B900887F883111F076 -:10639000803461F610E000E0DECF0E940A1C801B12 -:1063A000910B8E159F0558F3CBCF0F931F93CF936F -:1063B000DF93EB018093BB0084E88093BC000E94D4 -:1063C0000A1C8C018091BC0087FF11C02091B9008C -:1063D000287F81E090E0283211F490E080E09195F0 -:1063E00081959109DF91CF911F910F910895CF3F32 -:1063F000DC0741F30E940A1C801B910B8C179D0740 -:1064000008F38EEF9FEFEECF0F931F93CF93DF93A1 -:10641000EC0184EC8093BC000E940A1C8C018091EA -:10642000BC0087FF08C08091BB0090E0DF91CF9156 -:106430001F910F910895CF3FDC0789F30E940A1C3A -:10644000801B910B8C179D0750F38EEF9FEFEECFC3 -:106450000F931F93CF93DF93EC0184E88093BC00EC -:106460000E940A1C8C018091BC0087FF08C08091AB -:10647000BB0090E0DF91CF911F910F910895CF3F26 -:10648000DC0789F30E940A1C801B910B8C179D0767 -:1064900050F38EEF9FEFEECFCF92DF92EF92FF920D -:1064A0000F931F93CF93DF936B018A017901B90199 -:1064B0000E945B31E6010C0D1D1DC017D10761F470 -:1064C00024E92093BC00DF91CF911F910F91FF90A1 -:1064D000EF90DF90CF90089597FDF2CFB7018991AB -:1064E0000E94D531EACFCF92DF92EF92FF920F93C5 -:1064F0001F93CF93DF93C62F6A017901B8010E94E1 -:106500005B3197FD0CC0B8018C2F0E94D531E6019C -:10651000EC0CFD1CCE15DF0511F097FF0CC024E933 -:106520002093BC00DF91CF911F910F91FF90EF90CE -:10653000DF90CF900895B80189910E94D531EACFBC -:10654000CF92DF92EF92FF920F931F93CF93DF933F -:10655000F82EE62EEA016901B8010E945B3197FD31 -:1065600015C0B8018E2D0E94D53197FD0FC0B8011E -:106570008F2D81600E945B31F12CE12C21E0C21A49 -:10658000D108EC14FD0400F597FF11C024E9209315 -:10659000BC001816190614F490E080E0DF91CF914A -:1065A0001F910F91FF90EF90DF90CF900895C80159 -:1065B0000E94043297FD04C0FE01EE0DFF1D808392 -:1065C0002FEFE21AF20ADDCF97FDE0CFC8010E945B -:1065D000283297FDDBCFCC0DDD1D8883D7CF84E932 -:1065E0008093BC0008958EE14A9B02C08150E1F780 -:1065F0004A9BFECF08955A9880E28A95F1F75A9AFD -:106600000895FC013BE03A95F1F798E020E080E046 -:1066100031E040E14A95F1F7880F4A9B02C0816062 -:10662000232742E04A95F1F7000040E14A95F1F74F -:10663000915079F790E19A95F1F799B132E03A9556 -:10664000F1F7000040E14A95F1F792FB992790F9A4 -:1066500092272081920F90830895EF92FF920F93DB -:106660001F93CF93DF930F92CDB7DEB719828C01C2 -:106670007C01E60EF11C0E151F0561F481E0998185 -:10668000911180E00F90DF91CF911F910F91FF90BA -:10669000EF9008950E94F332CE0101960E940133DB -:1066A000F80181938F01E7CF529A5A9A0895529830 -:1066B0005A9AEA9AE9E6F0E080818F7C8083089517 -:1066C0006150770B91E001C0990F6A95EAF720E0DD -:1066D00031E0911108C0222391F05A9A80E28A9504 -:1066E000F1F75A980895492F482339F05A9A2327E9 -:1066F00040E24A95F1F79695ECCF5A98F9CF5A981F -:10670000EDCFFF920F931F93CF93DF93EC018C019A -:10671000060F111DC017D10731F4DF91CF911F91E2 -:106720000F91FF900895F9900E94FB3268E08F2D41 -:106730000E946033EFCF1F920F920FB60F92112479 -:10674000EF92FF920F931F932F933F934F935F937B -:106750006F937F938F939F93AF93BF93EF93FF9329 -:10676000CF93DF930F92CDB7DEB719820E94F33239 -:10677000CE0101960E940133A82FA695A695A69555 -:10678000282F229525709A2F9570290F922F93709C -:1067900026952695920F982797708981982B09F056 -:1067A00075C0A83008F072C080E18A95F1F75A9A56 -:1067B000529AB2E0BA95F1F700C05A98EA2EF12C3D -:1067C000EAE0AE9FD0011124AF5FBE4F1896ED9165 -:1067D000FC9119973097B1F06091F8017091F9012F -:1067E00016962D913C911797260F371F13968D9172 -:1067F0009C911497680F791F15964C9115971296D6 -:106800008C9109958AE08E9DF0018F9DF00D1124E9 -:10681000EF5FFE4F6581662351F02091F8013091C2 -:10682000F90186819781820F931F0E9481330E9414 -:10683000FB32F0E1FA95F1F75A9852985A9A80E1B2 -:106840008A95F1F78AE08E9D80018F9D100D1124AD -:106850000F5F1E4FD80112966C911297662371F14B -:106860002091F8013091F90113968D919C91820F3E -:10687000931F0E942D33D801ED91FC91882311F0D4 -:1068800088E001C082E080830E94F3320F90DF91A4 -:10689000CF91FF91EF91BF91AF919F918F917F9198 -:1068A0006F915F914F913F912F911F910F91FF90A9 -:1068B000EF900F900FBE0F901F901895ED91FC91E7 -:1068C000DFCF0F931F93CF93DF93EC0108970CF06A -:1068D000A9C08AE08C9FF0018D9FF00D1124EF5F1D -:1068E000FE4F80819181892B09F49CC0F894529AC3 -:1068F0005A9885E08A95F1F700008C2F869585706F -:106900009C2F9570890F982F937086958695890F87 -:106910008E0193E0000F111F9A95E1F7082B0E945A -:10692000FB3200C068E0802F0E946033A0E1AA958E -:10693000F1F752985A9A4A9B27C087E090E04A990B -:1069400025C08AE08C9F80018D9F100D11240F5F60 -:106950001E4FF80165816623A1F12091F801309165 -:10696000F90186819781820F931F0E942D33811137 -:1069700028C0529A5A9AD801ED91FC9182E0808306 -:10698000789482E090E016C000C0D5CF0197B9F4AA -:10699000529A5A9A8AE08C9FF0018D9FF00D112433 -:1069A000EF5FFE4F0190F081E02D81E080837894CD -:1069B00081E090E0DF91CF911F910F91089500C089 -:1069C000BECF0E94F332B0E2BA95F1F75A98529ACC -:1069D000E0E1EA95F1F78AE08C9FF0018D9FF00DE0 -:1069E0001124EF5FFE4F6281662351F02091F80180 -:1069F0003091F90183819481820F931F0E9481332A -:106A00000E94FB328AE08C9FF0018D9FF00D1124D3 -:106A1000EF5FFE4F0190F081E02D1082789490E0BE -:106A200080E0C8CF84E090E0C5CFAA1BBB1B51E13A -:106A300007C0AA1FBB1FA617B70710F0A61BB70BEE -:106A4000881F991F5A95A9F780959095BC01CD0193 -:106A50000895991B79E004C0991F961708F0961BBA -:106A6000881F7A95C9F78095089597FB072E16F42D -:106A7000009407D077FD09D00E94153507FC05D09A -:106A80003EF4909581959F4F0895709561957F4F45 -:106A90000895EE0FFF1F0590F491E02D09946927EA -:106AA000962769277827872778270895FB01DC0137 -:106AB00002C005900D9241505040D8F70895FB0157 -:106AC000DC0104C08D910190801921F441505040A7 -:106AD000C8F7881B990B0895FB01DC0102C00190E7 -:106AE0000D9241505040D8F70895F999FECF92BDCC -:106AF00081BDF89A992780B50895A6E1B0E044E0F9 -:106B000050E00C94AF35A8E1B0E042E050E00C94C6 -:106B1000AF35262FF999FECF92BD81BDF89A019726 -:106B200000B4021639F01FBA20BD0FB6F894FA9AD5 -:106B3000F99A0FBE08950396272F0E948A350E9466 -:106B40008935252F0E948A35242F0C948A35019689 -:106B5000272F0E948A350C948935DC01CB01FC017A -:106B6000F999FECF06C0F2BDE1BDF89A319600B4A6 -:106B70000D9241505040B8F708950E94FF3508F437 -:106B800081E00895E89409C097FB3EF490958095C4 -:106B9000709561957F4F8F4F9F4F9923A9F0F92FE3 -:106BA00096E9BB279395F695879577956795B79561 -:106BB000F111F8CFFAF4BB0F11F460FF1BC06F5F47 -:106BC0007F4F8F4F9F4F16C0882311F096E911C059 -:106BD000772321F09EE8872F762F05C0662371F07A -:106BE00096E8862F70E060E02AF09A95660F771F8E -:106BF000881FDAF7880F9695879597F90895990F6A -:106C00000008550FAA0BE0E8FEEF16161706E80776 -:106C1000F907C0F012161306E407F50798F0621B97 -:106C2000730B840B950B39F40A2661F0232B242B6C -:106C3000252B21F408950A2609F4A140A6958FEF8B -:106C4000811D811D08950E9436360C94A7360E943E -:106C5000993638F00E94A03620F0952311F00C945C -:106C600090360C94963611240C94DB360E94B8367C -:106C700070F3959FC1F3950F50E0551F629FF0018F -:106C8000729FBB27F00DB11D639FAA27F00DB11DA8 -:106C9000AA1F649F6627B00DA11D661F829F222731 -:106CA000B00DA11D621F739FB00DA11D621F839FB8 -:106CB000A00D611D221F749F3327A00D611D231F8E -:106CC000849F600D211D822F762F6A2F11249F57DC -:106CD00050409AF0F1F088234AF0EE0FFF1FBB1FDF -:106CE000661F771F881F91505040A9F79E3F51059E -:106CF00080F00C9490360C94DB365F3FE4F3983EC2 -:106D0000D4F3869577956795B795F795E7959F5F47 -:106D1000C1F7FE2B880F911D9695879597F90895D9 -:106D200097F99F6780E870E060E008959FEF80EC3E -:106D3000089500240A9416161706180609060895E1 -:106D400000240A9412161306140605060895092E47 -:106D50000394000C11F4882352F0BB0F40F4BF2BB6 -:106D600011F460FF04C06F5F7F4F8F4F9F4F0895F6 -:106D700057FD9058440F551F59F05F3F71F04795EC -:106D8000880F97FB991F61F09F3F79F087950895D1 -:106D9000121613061406551FF2CF4695F1DF08C0F0 -:106DA000161617061806991FF1CF8695710561050D -:106DB00008940895E894BB2766277727CB0197F9B5 -:106DC0000895F894FFCFEA101211651112116511A0 -:106DD00045117D1165117A128712121512151B15B6 -:106DE0001B151D151B151B151B151215121522152C -:106DF0001B151B152215671CDD1CE01CF41CF71C61 -:106E00000A1D131D371D7D1DAF1DC31D491D6C1DA2 -:106E1000052105215E215E2190213821382138216C -:106E2000AA211B222B222B22B52FB92FFC2F0D308C -:106E3000183037303A306D308E300A300A309930A1 -:0E6E40009C30A030C630E830EB30ED3012311F -:106E4E0001380200000001000000003802000000BE -:106E5E0005010000003802000000010600000038A5 -:106E6E0002000000010700000038020408000000C4 -:106E7E000000003802090C0000000000003802017A -:106E8E001500000000000036323331F7F6676697C2 -:106E9E00C6343500000000000180005F082E0E0D84 -:106EAE000E090E050EF4F5010021007F22000300ED -:106EBE004A004A4A01F6F731333236674C4159459A -:106ECE00520042617365200047616D65200052617A -:106EDE00697365004C6F776572004C4F434B0043EE -:106EEE00617073004E756D005363726C002020202C -:106EFE00202000534F4C415200544D5053540081AA -:106F0E008283E200E900EA00B500B600B700CD00CA -:106F1E008301CC008A0192019401210223022402F2 -:106F2E002502260227022A02B300B4006F00700069 -:106F3E000603060806010606AF0200FF0100010067 -:106F4E0000FFFF0000010001FF00000810181810DC -:106F5E0008000001020202020202020202024022A4 -:0E6F6E007B99017701FC00000C190C390C0016 +:100BB0000000000000000000000000AF00AE0902CD +:100BC0005B00030100A0FA09040000010301010019 +:100BD0000921110100012240000705810308000AD4 +:100BE0000904010002030000000921110100012293 +:100BF00022000705820320000107050303200001EE +:100C00000904020001030000000921110100012272 +:100C10007B000705840320000A1201000200000087 +:100C20000832FC87120200010200011E0353006F0C +:100C3000006C00610072006900750073005F005372 +:100C4000006F0066006C006500000010034B00653B +:100C5000007900680069007600650000000403095F +:100C6000040011241FBECFEFDAE0DEBFCDBF04B613 +:100C700003FE27C08091800690918106A091820694 +:100C8000B09183068730904BA740B04BD1F41092BF +:100C9000800610928106109282061092830614BE7E +:100CA00084B7877F84BF0FB6F894A89580916000C1 +:100CB000886180936000109260000FBEE0E0F8E36E +:100CC000099512E0A0E0B1E0EEE1FEE602C0059079 +:100CD0000D92AE32B107D9F726E0AEE2B2E001C024 +:100CE0001D92A038B207E1F70E940A280C94C93679 +:100CF0000C940000CF93DF9340917E0650917F06C5 +:100D00004E5754409A01205A3F4F21303240C0F094 +:100D100020E032E0241B350B60917C0470917D044F +:100D2000FC01CA01240F351FC1E0D0E082179307F0 +:100D300050F070937D0460937C04DF91CF9108950F +:100D400020E630E0E9CF4491DC01A258BB4F5C9132 +:100D5000451781F04C93AC01A5E056954795AA95AF +:100D6000E1F7DE0102C0AA0FBB1F4A95E2F7AD0111 +:100D70006A2B752B01963196D9CFE8EDF0E0808192 +:100D80008E7F80831092E2001092DA001092E100D0 +:100D9000A0EEB0E08C9181608C9380818F7780830E +:100DA00019BCA7EDB0E08C918E7F8C9380818F7EF3 +:100DB000808310925E0408952091E4003091E50054 +:100DC00095E6A9012091EC00822F817020FF06C0DA +:100DD0008091E80080FF06C080E008952091E8003F +:100DE00022FD1AC080916C04882389F0853089F037 +:100DF0008091EB0085FD0FC02091E4003091E5006B +:100E000042175307F9F29150E1F684E0089582E029 +:100E1000089583E0089581E00895EF92FF920F9383 +:100E20001F93CF937C018B010E94DC06C82F811198 +:100E300017C08091E80085FD0BC08091E8008E7797 +:100E40008093E8000E94DC06882399F3C82F08C02D +:100E5000F70181917F018093F1000150110949F759 +:100E60008C2FCF911F910F91FF90EF90089580915B +:100E70006E0487FF13C08091E80082FF06C0809156 +:100E8000E8008B778093E80004C080916C048111A6 +:100E9000F2CF089580916C048823D9F38091E80003 +:100EA00080FFF8CF8091E8008E77ECCF982F909359 +:100EB000E900242F762F50E0891731F07091EC0073 +:100EC0002091ED005091F00021FD07C09F5F973009 +:100ED00071F78093E90081E008953091EB003E7F47 +:100EE0003093EB003091ED003D7F3093ED00309179 +:100EF000EB0031603093EB007093EC002093ED0039 +:100F00005093F0002091EE0027FDE0CF80E008959F +:100F1000CF92DF92EF92FF920F931F93CF93DF93C5 +:100F2000C8EDD0E088818F7E8883E7EDF0E0808196 +:100F30008160808384E082BF81E080935E04888149 +:100F40008E7F888302EE10E0F80110821092DA00A2 +:100F500081EEC82ED12CF601108288818F7788838C +:100F600088818068888388818F7D888319BC1092EE +:100F70006C0410926D0410926B0410926A0490EE4F +:100F8000E92EF12CF70180818B7F8083888181603D +:100F9000888342E060E080E00E945607F60180818D +:100FA0008E7F8083F801808181608083808188606A +:100FB0008083F70180818E7F808388818061888330 +:100FC000DF91CF911F910F91FF90EF90DF90CF9025 +:100FD0000895FC0180917404909175048617970719 +:100FE000A0F06115710529F49091E8009E77909327 +:100FF000E80090E06115710551F4911108C08091ED +:10100000E80082FF34C080E00895BC01F2CF8091F7 +:101010006C048823C1F18530C1F18091E80083FD23 +:1010200030C08091E80082FDEACF8091E80080FF27 +:10103000E1CF8091F3002091F200382F6115710506 +:1010400019F02830310558F091E02830310509F0C9 +:1010500090E02091E8002E772093E800CBCF81919B +:101060008093F100615071092F5F3F4FE7CF80916E +:101070006C04882341F0853041F08091E80083FFC3 +:10108000BECF81E0089582E0089583E008958091C5 +:10109000610408952FB7F894609157047091580433 +:1010A0008091590490915A042FBF089520915404BF +:1010B000309155042817390771F0909355048093A7 +:1010C0005404E0915204F0915304309721F00084CD +:1010D000F185E02D09940895209150043091510438 +:1010E0002817390771F09093510480935004E091D0 +:1010F0005204F0915304309721F00680F781E02DDF +:10110000099408952091430436E0839FC00111247F +:10111000629F800D911D1124811522E0920714F029 +:1011200090E080E082589B4F90937F0680937E06EC +:101130000895883E9105C8F4803E910548F48B32AD +:10114000910540F48832910518F404974A9758F4B1 +:1011500080E008958C32910530F089339105C0F319 +:1011600084369105A9F381E011C0811522E592072B +:1011700070F48115E1E59E0758F790548115904170 +:1011800090F7FB019581907F81E011F3089581151F +:1011900028E5920740F38115E9E59E0728F090566F +:1011A0008115904270F3DFCFFB019581907F81E044 +:1011B000903271F6EBCFFC01680F791F8FEF91E34E +:1011C0002191822728E030E087FF09C0880F892716 +:1011D00021503109C9F7E617F70791F70895880FED +:1011E000F7CFFA01811101C0FB01099480917704C6 +:1011F000982F9E7F61F48170826080937704809144 +:101200007A04813A18F080EA80937A04089588314C +:10121000B0F381708661F1CFAF92BF92DF92EF920F +:10122000FF920F931F93CF93DF93082F162FE9019F +:10123000E42FF0E0E55DFA4F611110C0E4915E2FFC +:101240004E2F4983E8835A83DF91CF911F910F91ED +:10125000FF90EF90DF90BF90AF900895E62EF12CB5 +:101260004491D42EE42FF0E026E0829FC0011124A7 +:101270002FEF30E0B9010E94FD34802F90E0880FFD +:10128000991F55E5569FD001579FB00D11248A1B19 +:101290009B0B982F990F890F5901AE18BF08AE9E6E +:1012A000D001AF9EB00DBE9EB00D11245B2F189FD4 +:1012B00080011124012F11275901A01AB10AAE9EF5 +:1012C0008001AF9E100DBE9E100D11245901A81A69 +:1012D000B108AE9CC001AF9C900DBE9C900D112436 +:1012E000892F9927281B390B2E9FC0012F9F900D06 +:1012F0003E9F900D1124E92F62307105A1F050F44A +:101300006115710509F49DCF6130710581F0EB2FF6 +:10131000512F97CF6430710569F080F06630710508 +:1013200009F48FCFF4CFE42F4B2F592F8ACFE42F1E +:10133000412F87CFEB2F542F492F83CF4B2F5D2D7C +:10134000E12F7FCF80E0089578940895F894E82FF6 +:10135000E295EF70F0E031A1282F2F7081E090E04E +:1013600001C0880F2A95EAF7982F9095932391A3AF +:1013700092A1892B82A30C94A4099091D60292FF8A +:1013800006C0282F28712830F9F4877F846093FFE6 +:1013900006C0282F28712831F1F4877E84612091BE +:1013A000D70220FF06C0382F38713830D9F4877F34 +:1013B000816021FF06C0282F28712831D1F4877E53 +:1013C000816194FD877E0895282F24712430F9F6D9 +:1013D0008B7F8860DCCF282F2471243101F78B7E2E +:1013E0008861DDCF382F3171313019F78E7F8860F9 +:1013F000E0CF282F2171213121F78E7E8861E1CF46 +:10140000CF93DF93EC018238910581F1B0F5813300 +:10141000910509F491C020F58932910509F485C040 +:101420008A9709F490C0C11521E5D20708F0AAC037 +:10143000C11530E5D30708F0F2C0CF3BD10508F065 +:1014400089C0C83AD10508F0DFC0C53AD10508F017 +:10145000D3C0C430D105F8F4C130D105E1F040C0AB +:101460008533910509F45AC0C997E9F68091D602EF +:10147000837089F0C0EED0E00EC0833E910599F1F3 +:1014800070F4803E910501F1823E910561F68091F4 +:10149000D60282FD21C0CE01DF91CF910895863E14 +:1014A000910561F1873E910571F1843E910509F046 +:1014B000BACF8091D70281FFEECF8091D602C7EEDE +:1014C000D0E084FD0DC0E7CF8091D60280FDF7C04B +:1014D0009091D70290FFDFCFC3EED0E084FFDBCF47 +:1014E000D0E0C0E0D8CF8091D60282FDEBC09091D1 +:1014F000D70290FDBFCF84FFCECFF2CF8091D6022E +:1015000083FDDDCFC8CF8091D60283FDDEC09091F0 +:10151000D70291FFF0CFC4EED0E0BDCF8091D602CC +:1015200085FFB9CFC9E2D0E0B6CF8091D60285FF62 +:10153000B2CFC5E3D0E0AFCF8091D60286FFABCF6C +:10154000CAE2D0E0A8CF8091D60286FFA4CFC1E343 +:10155000D0E0A1CFC11540E2D40760F4C11581E00D +:10156000D80708F098CFCE01815E9109079708F45B +:1015700092CFB6CFC11590E4D90708F4B1CFDF7090 +:10158000D06A89CFC11524E5D20778F4C11533E5B7 +:10159000D30708F072C0C11542E5D40708F05CC05B +:1015A000DC2FCC27C16FD06A76CFC1158AE5D8076A +:1015B00078F4C11599E5D90708F073C0C11528E57D +:1015C000D20708F48DCFDC2FCC27C06FD06A63CF51 +:1015D000CE0190568115904208F082CF8D2F8F71E9 +:1015E0000E94BD0990E0982F882788279F719C0151 +:1015F0002C2BE901D0624FCFC55AD0E0C154DE4F49 +:10160000C881D0E0D06447CFC85AD0E0CC0FDD1FEE +:10161000CE53DE4F0990D881C02DD4643CCFCE018B +:1016200064E0969587956A95E1F783702C2F26954F +:101630002695237040E2249F90011124382B8C2F93 +:101640008370C1E0D0E002C0CC0FDD1F8A95E2F7C5 +:10165000C22BD32BDC681FCFCE018370992721E0EA +:1016600030E002C0220F331F8A95E2F7C695C69577 +:1016700080E2C89FE0011124EBCFCE01837099274F +:1016800021E030E002C0220F331F8A95E2F7C695B1 +:10169000C69590E2C99FE0011124C22BD32BDA68D2 +:1016A000FACE8C2F8F700E94BD0934E0D695C79575 +:1016B0003A95E1F7CF709C2FEC01D069ECCEC9E3ED +:1016C000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE8A +:1016D0000C944A0880915F0490919102892B90911B +:1016E0009002892B80933002E0915204F0915304D0 +:1016F000309731F00280F381E02D80E392E009948D +:10170000089580918F0290915E02981301C0089510 +:101710008F5F8770FACF27E0929F800D1124982F5A +:10172000977086958695869523E0829FF001112417 +:10173000E35CFD4F50E040E080E0219130E0092E75 +:1017400002C0369527950A94E2F721703327042EBC +:1017500001C0220F0A94EAF7822B4F5F5F4F43309C +:10176000510559F7089527E0929F800D1124982F75 +:10177000977041E001C0440F9A95EAF786958695E7 +:10178000869593E0899FF0011124E35CFD4F90E082 +:1017900080E070E05191DF0111979B01082E02C09B +:1017A000369527950A94E2F7217021952527242361 +:1017B00025272C9301968330910561F7089590E0D9 +:1017C00080E00E946C0890E080E00E945608109231 +:1017D0009102109290020C946A0B809392020C94E6 +:1017E000DF0B882341F0809590915F0489238093DB +:1017F0005F040C946A0B0895882339F090915F047C +:10180000982B90935F040C946A0B08958823B1F190 +:101810009CEF980F913A70F4E2E3F2E09191891312 +:1018200003C0DF0111971C9242E0E833F407B1F7DF +:101830000C946A0B90E2980F983088F4877021E03E +:1018400030E0A90102C0440F551F8A95E2F7CA0192 +:10185000809590915F04892380935F04E9CF9BE595 +:10186000980F933020F490E080E00C946C08885A34 +:10187000873120F490E080E00C94560808950F938F +:101880001F93CF93C82F882309F469C08CEF8C0F66 +:10189000813AB0F502E312E088E392E0F801219189 +:1018A000C21701F122E0E833F207C9F7EFEF80E059 +:1018B000D8019D918D01C91781F0EF3F19F4911165 +:1018C00001C0E82F8F5F863099F7EF3F31F00E2E81 +:1018D000000CFF0BE05DFD4FC283CF911F910F9174 +:1018E0000C946A0BE2E3F2E02191C21303C0DF0122 +:1018F00011971C928E179F07B9F70E946A0BD6CFDB +:1019000080E28C0F883068F4C77021E030E001C0BD +:10191000220FCA95EAF780915F04822B80935F04BF +:10192000DCCFEBE5EC0FE33050F4F0E0E154FE4F98 +:10193000808190E0CF911F910F910C946C08C85A50 +:10194000C73168F4EC2FF0E0EE0FFF1FEE53FE4FAF +:1019500080819181CF911F910F910C945608CF9166 +:101960001F910F910895982F92959F7011F0892FD4 +:1019700094E0282F2695269511F09E5F822F86955C +:1019800009F09F5F892F0895DC01FB01808191811F +:10199000803891054CF08FE78C93808191818F572F +:1019A000910991838083089581382FEF92073CF449 +:1019B00081E88C938081918181589F4FF2CF8C93E5 +:1019C000118210820895681708F5861B682F21E0A0 +:1019D000469FA0011124649FF001659FF00D112422 +:1019E0004091590150915A01E49FC001E59F900D2B +:1019F000F49F900D1124880F892F881F990B9195C2 +:101A0000222319F09195819591090895681B20E092 +:101A1000DFCF0F931F93CF93DF9300D000D0CDB7CC +:101A2000DEB789836A834B831C8204E610E024E0DE +:101A300030E0AE014F5F5F4F60E084E10E945B32B7 +:101A40000F900F900F900F90DF91CF911F910F91FA +:101A5000089580913203882329F047E669E98BE2F3 +:101A60000C94090D6091590170915A0190E080E049 +:101A70000E94AA3520E030E040E05CE30E940B3693 +:101A800020E030E040E85FE30E94A535882321F0A4 +:101A900047EC6BE180E0E4CF41E265EA89EDE0CF1D +:101AA000CF92DF92EF92FF920F931F93CF93DF932A +:101AB0006C017B0164E670E088E70E944331EC0131 +:101AC00097FD12C010E000E0F601E00FF11F8491D5 +:101AD00064E670E00E94BD31EC01892B29F40F5FB0 +:101AE0001F4F0E151F0581F70E94D732CE01DF91DF +:101AF000CF911F910F91FF90EF90DF90CF900895BD +:101B000080914E0490914F04911103C091E0892778 +:101B10000895882369F062E070E08CEB9BE00E94FE +:101B2000500D892B19F080914E04089510924E04A7 +:101B300080914E04EBCFCF93C0914E0480914F041F +:101B40008823D1F00E944A086058774C8E4F9F4FEF +:101B500060934A0470934B0480934C0490934D041B +:101B6000C11108C062E070E08AEB9BE00E94500D5A +:101B7000892B29F0C0914E048C2FCF91089581E0DC +:101B800080934E04F7CF90916C04943029F58093A4 +:101B90005B0470935D0460935C049093E9008FEFA5 +:101BA0009091E800815095FD06C095ED9A95F1F76A +:101BB00000008111F5CF8091E80085FF0DC050E055 +:101BC00040E063E070E08BE594E00E940D078091B7 +:101BD000E8008E778093E8000895BC0184E00C94BF +:101BE000C30DBC0183E00C94C30D9C0184E0809381 +:101BF000E9009FEF8091E800915085FD06C085EDDA +:101C00008A95F1F700009111F5CF8091E80085FFEA +:101C10000CC050E040E066E070E0C9010E940D0792 +:101C20008091E8008E778093E8000895CF93DF934A +:101C3000EC0181E08093E9008FEF9091E800815002 +:101C400095FD06C095ED9A95F1F700008111F5CF4D +:101C50008091E80085FF14C050E040E068E070E04B +:101C6000CE010E940D078091E8008E778093E800F6 +:101C700088E0FE01A2E6B4E001900D928A95E1F7BA +:101C8000DF91CF9108959F92AF92BF92CF92DF9252 +:101C9000EF92FF920F931F93CF93DF937C015B0131 +:101CA0006A018091D10201E010E08A3010F40AE06C +:101CB00010E0C1E0D0E0F894B501C701F601099544 +:101CC000982E0E94A409911004C021960C171D079C +:101CD0006CF4892DDF91CF911F910F91FF90EF90C0 +:101CE000DF90CF90BF90AF909F900895CC9F9001D0 +:101CF000CD9F300D300D112490E080E045E34A95F2 +:101D0000F1F70000019682179307C1F7D4CF8091B5 +:101D1000A102811110C08091D80080618093D80009 +:101D20008AE18A95F1F700C08091D90080FF0AC04E +:101D300081E08093A10281E09091A102913009F0AD +:101D400080E0089582E08093A1020E94BD06109277 +:101D50006C04F1CF0E94870E882351F0E091520469 +:101D6000F0915304309721F00190F081E02D099417 +:101D700080E008951F93CF93DF93182FEB010E940B +:101D80003F0C8FE99FE00197F1F700C00000219719 +:101D9000C1F7812FDF91CF911F910C94060C4F92C8 +:101DA0005F926F927F928F929F92AF92BF92CF92EB +:101DB000DF92EF92FF920F931F93CF93DF93CDB7F4 +:101DC000DEB7CE5DD1090FB6F894DEBF0FBECDBF32 +:101DD000509070019091770490FF5DC080905D03FA +:101DE00090905E038114910409F068C0E0E3F6E08E +:101DF0009E012F5F3F4FBE0161527F4FC901A491E9 +:101E00004A2F50E0DA01AA0FBB1FA40FB51FA15A39 +:101E1000BC4FCD90DD90EC90D901CD92DD92ED924A +:101E20009D0131966A177B0751F720916F0143E0BE +:101E3000249F800D911D1124539A2BB1277F3BB114 +:101E400038605FB7F894BC01549E600D711D112479 +:101E50008617970709F08EC05FBF8FE594E0019762 +:101E6000F1F700C00000C252DF4F0FB6F894DEBF9A +:101E70000FBECDBFDF91CF911F910F91FF90EF90DB +:101E8000DF90CF90BF90AF909F908F907F906F909A +:101E90005F904F900895809171012091720133E01D +:101EA000839FF0011124E15AFC4F821708F096CF6E +:101EB0001182108212828F5F3396F7CF90FF96CFF8 +:101EC000D12CC12C66246394712C53E0452E809153 +:101ED0005C0393010C2C01C0220F0A94EAF78223C1 +:101EE00009F43FC0F601EE0FFF1FE80DF91DE59064 +:101EF000F490E114F10409F479CF45E050E0B70122 +:101F0000CE0101960E943E3509810F3F51F18A8131 +:101F1000800F9927991F8B34910514F08AE490E083 +:101F20005C01AA0CBB1C8A0D9B1DDC01A15ABC4F95 +:101F30005D01049D80011124015A1C4F0A151B05E7 +:101F400020F0B5E0EB0EF11CD8CF4D81413A08F0FE +:101F500040EA98016C818B810E940C090D5F1F4F34 +:101F6000EDCFEFEFCE1ADE0AF8E0CF16D10409F07C +:101F7000AECF3CCFFC014191CF01E8E03BB900007E +:101F800000C047FF2BB9440F000000C000C000C0D4 +:101F90002BB900C0EA9591F75BCFE7E7F4E08081C9 +:101FA0008E7F8083E9E5F3E08281816082832FEF79 +:101FB00080E792E0215080409040E1F700C00000AF +:101FC0000C94CF0EE2E3F2E086E0DF011D928A95E9 +:101FD000E9F70C94DF0B1F93CF93DF93CDB7DEB7F8 +:101FE000AA970FB6F894DEBF0FBECDBF8EE694E081 +:101FF0002091F100DC012D93CD01B4E086379B07E1 +:10200000B9F780916F04833009F471C0B8F481305E +:1020100009F448C0823009F4B4C08091E80083FF1D +:102020003CC180916E0490916F049A3008F035C1E4 +:10203000E92FF0E0E553F94C0C9431358A3009F47E +:102040008FC08B3009F470C0893039F780916E04ED +:10205000813219F78091720490917304009711F006 +:102060000297D9F68091E800877F8093E8008091FD +:10207000E80082FF37C09091F3008091F200029750 +:1020800029F48091F1008B7F813021F48091F1005F +:10209000809361048091E8008B778093E8000E9430 +:1020A0003707BBCF80916E04813A09F0B6CF80919B +:1020B000E800877F8093E800809172049091730418 +:1020C000892B61F468E082E694E070E00E94E90701 +:1020D0008091E8008B778093E8009FCF60E090E0EC +:1020E00080E0F3CF80916C048111C1CF96CF8091B5 +:1020F0006E04813A09F091CF80917204909173043B +:10210000892B09F08ACF8091E800877F8093E800CF +:102110008091E80080FFFCCF809174018093F100F2 +:102120008091E8008E77B9CF80916E04813209F0FA +:1021300074CF8091720490917304892B09F06DCF54 +:102140008091E800877F8093E8000E9437078091A4 +:1021500070048093740110925F040E94E20F5DCFBF +:1021600080916E04813209F058CF8091E800877F1A +:102170008093E8000E943707809171048093600487 +:102180004CCF80916E04813A09F047CF8091E800EE +:10219000877F8093E8008091E80080FFFCCF8091EA +:1021A0006004BCCF803899F0823809F076C0809105 +:1021B00072048F70873008F070C08093E9008091BE +:1021C000EB0085FB882780F91092E90006C080911A +:1021D0006A0490916B04911182609091E800977F5E +:1021E0009093E8008093F1001092F1008091E80054 +:1021F0008E77B5C1882309F4A2C1823009F04DC0A1 +:10220000809170048111A6C1809172048F702FEFAC +:10221000280F263008F041C08093E9002091EB00A0 +:1022200020FF98C1933031F48091EB00806280935D +:10223000EB0090C19091EB0090619093EB0021E056 +:1022400030E001C0220F8A95EAF72093EA0010924D +:10225000EA008091EB008860EACF81111EC01091E6 +:1022600070041F778091E3008078812B8093E300D6 +:102270008091E800877F8093E8000E943707809173 +:10228000E80080FFFCCF8091E30080688093E3004A +:1022900082E0111183E080936C048091E80083FF59 +:1022A0000AC08091E800877F8093E8008091EB006E +:1022B00080628093EB00AA960FB6F894DEBF0FBE43 +:1022C000CDBFDF91CF911F9108958058823028F7BC +:1022D00020917004309171042C3DE3E03E07A1F59C +:1022E00083E08A838AE289834FB7F894DE011396EC +:1022F00020E03EE051E2E32FF0E050935700E491FC +:1023000020FF03C0E295EF703F5FEF708E2F90E0EB +:10231000EA30C0F0C7968D939D932F5F243159F713 +:102320004FBF8091E800877F8093E8006AE270E009 +:10233000CE0101960E94E9078091E8008B77809397 +:10234000E800ABCFC096E7CF809172049091730400 +:10235000432F55274330510509F44AC078F54130E1 +:10236000510509F47AC08BE590E0EEEBFBE04230DA +:10237000510509F092CF2091E800277F2093E800D3 +:1023800020917404309175048217930708F49C011E +:1023900040E02115310509F065C0411163C080910D +:1023A000E80082FDC9CF80916C04882329F2853032 +:1023B00019F28091E80083FFF2CFBECF4132510580 +:1023C00009F43CC04232510509F067CF83309105D2 +:1023D00008F063CFFC01EE0FFF1FEF5DFD4F019092 +:1023E000F081E02D825E9D4FDC018C9190E01AC05F +:1023F000332721303105D1F02115310561F022302C +:10240000310509F04ACFEBE2FCE0E4918E2F90E039 +:10241000EBE2FCE007C0EDE5FCE0E4918E2F90E0FC +:10242000EDE5FCE0009709F438CFA5CFEBE4FCE044 +:10243000E4918E2F90E0EBE4FCE0F4CF8330910543 +:1024400008F02BCF880F991FFC01E95DFD4F01902B +:10245000F081E02D89E090E08ECF82E190E0E9E12B +:10246000FCE089CF80916C04882309F465CF853026 +:1024700009F462CF8091E80083FD5ECF8091E8008F +:1024800082FD8DCF8091E80080FF83CF9091F30093 +:102490008091F2002115310519F08830910550F036 +:1024A00041E0089709F040E08091E8008E77809342 +:1024B000E8006FCF44914093F100319621503109EB +:1024C0000196E8CF803809F0E8CE8091E800877F58 +:1024D0008093E80080916D048093F10087CE811194 +:1024E000DCCE10917004123008F0D7CE8091E80055 +:1024F000877F8093E80010936D040E9437071123B3 +:1025000011F084E005C08091E30087FDFACF81E0FF +:1025100080936C0442E061EC81E00E94560742E245 +:1025200061EC84E00E94560742E261EC82E00E9486 +:10253000560742E260EC83E00E945607AECE8091DF +:102540007004813009F0A9CE81E0933009F080E079 +:1025500080936B041092E9008091E800877F80935C +:10256000E8000E94370799CE1F93CF93DF93162F71 +:10257000C0917E06D0917F068A30D1F42091430429 +:10258000CE018E579440622F70E00E94FD34281BCC +:10259000822F66E00E941135C82FC15020F4DF91D0 +:1025A000CF911F91089560E080E20E94B412F5CFB0 +:1025B0008D30E9F4CE57D44020914304622F70E06F +:1025C000CE010E94FD34281B822F9E01280F311D51 +:1025D0002115324018F080E0D0E0C0E0C80FD11DD6 +:1025E000C258DB4FD0937F06C0937E06D8CF96E0CB +:1025F000FE01A4E4B4E001900D929A95E1F7803ECB +:1026000090F186E0FE0111928A95E9F7C0917E066D +:10261000D0917F06111133C046E050E0BE0184E442 +:1026200094E00E9447359E012E573440892B91F546 +:102630002A5F3F4F40914304642F70E0C9010E941C +:10264000FD34481B463010F4240F311D211572E073 +:10265000370710F030E020E022583B4F30937F06E0 +:1026600020937E069CCFF6E08F9FB0011124665820 +:10267000794F46E050E0CE010E943E35C7CF9E0123 +:102680002A5F3F4FFE012E173F0731F28081809570 +:102690008193F9CFC90145E0969587954A95E1F771 +:1026A00041E050E0BA0102C0660F771F8A95E2F759 +:1026B000CB0160917C0470917D04862B972BB9012E +:1026C0006B5F7F4FE5E076956795EA95E1F702C08D +:1026D000440F551F6A95E2F7842B952B90937D0448 +:1026E00080937C04A5CFFF920F931F93CF93DF932A +:1026F000EC01F62EFC0101900020E9F78F0101505A +:102700001109C017D10730F0DF91CF911F910F91C0 +:10271000FF9008956F2D89910E94B412F2CFE1E4E9 +:10272000F4E08083618324E630E042E050E0BF01C2 +:1027300084EB0C943432CF93C82F60E08CE00E947D +:102740008F136C2F84E00E948F1361E08CE0CF9197 +:102750000C948F131F93CF93DF93CDB7DEB762979F +:102760000FB6F894DEBF0FBECDBF96E0E4E2F3E013 +:10277000DE01179601900D929A95E1F796E0FE0121 +:102780003796DE011D9601900D929A95E1F7188516 +:10279000882309F1162B84E00E949B131E8786E094 +:1027A000FE013D96DE01119601900D928A95E1F7AA +:1027B00086E0FE013196A4E2B3E001900D928A9585 +:1027C000E1F762960FB6F894DEBF0FBECDBFDF9182 +:1027D000CF911F91089560951623E0CFCF93DF939B +:1027E000C3EED2E060E0CE010E9471352196C115A2 +:1027F00084E0D807B9F7DF91CF9108956F927F9267 +:102800008F929F92AF92BF92CF92DF92EF92FF9200 +:102810000F931F93CF93DF938AE7C82E86E0D82EBD +:1028200091ECE92EF12CE701CC58D10936011BC0FF +:10283000F50185909490692DC8010E947135682D2D +:10284000C80101960E94713582E0A80EB11C0E5F8E +:102850001F4FC017D10761F78EE0680E711C2E96CE +:10286000CE15DF0529F08E010E5011095301E0CF7E +:102870007E018CE8E80EF11C8CE8C80ED11C8DE7B7 +:10288000E81683E0F80679F6DF91CF911F910F915A +:10289000FF90EF90DF90CF90BF90AF909F908F9080 +:1028A0007F906F900895CF93C82F6FEF811161E2F1 +:1028B00083E290E00E9471356FEFC11161E184E223 +:1028C00090E00E9471356FEFC11165E285E290E002 +:1028D000CF910C94713580E00E94531460E086E241 +:1028E00090E00E9471350E94FE130E94EE1381E079 +:1028F0000C9453140F931F93CF93DF93C42FD0E006 +:10290000CC0FDD1F2EE0629FC00DD11D11243CE8CD +:10291000839FC00DD11D1124CE0187960E945D3585 +:10292000082F10E0102F0027CE0188960E945D35F9 +:102930009801282BC901DF91CF911F910F91089524 +:10294000462F853038F47A3028F4673018F4672F32 +:102950000C947A1490E080E00895CF92DF92FF9279 +:102960000F931F93CF93DF936C01009176048091B6 +:102970009202082BC7E0D0E010E0FC2EC8010C2E1C +:1029800002C0959587950A94E2F780FD0CC02197C7 +:10299000A0F7F12C8F2DDF91CF911F910F91FF9018 +:1029A000DF90CF900895B6018C2F0E94A0140E9452 +:1029B000000A019761F3EECFCF93DF93EC010E9401 +:1029C000AD14BE010E94A014DF91CF910C94000AB7 +:1029D000FC01808191810E94DC14292F2F70929537 +:1029E0009F7092509E3078F4E92FF0E0EB52F94C52 +:1029F0000C943135803F19F020F4883E20F481E0BA +:102A00000895843FE1F380E00895883EC0F3813F5C +:102A1000D1F7F5CF822F869586958695089583E226 +:102A200090E00E945D35813289F484E290E00E945A +:102A30005D35813159F485E290E00E945D3591E089 +:102A4000853209F090E0892F8170089580E0FCCFF5 +:102A5000CF92DF92EF92FF926B017C010E94F60809 +:102A6000B701A60188E090E0FF90EF90DF90CF9053 +:102A70000C948335AF92BF92CF92DF92EF92FF9288 +:102A80000F931F93CF93DF9300D00F92CDB7DEB794 +:102A9000082FF62E142FE22E8091770480FF4FC06E +:102AA000E82FE695AE2FB0E0AE5EBD4F9C919093BF +:102AB00059038E7F823009F056C0413A08F040EA4F +:102AC0009E012F5F3F4F6F2D802F0E940C09809138 +:102AD000770480FF11C02B8139814A818091710177 +:102AE0009091720153E0859FF0011124E15AFC4F4F +:102AF000891798F10E94CF0E80917804801308C046 +:102B0000809179048F1104C080917A04811729F093 +:102B100080915B03826080935B0300937804F09262 +:102B2000790410937A04EE2051F06091770470914B +:102B300078048091790490917A040E9428150F906E +:102B40000F900F90DF91CF911F910F91FF90EF9019 +:102B5000DF90CF90BF90AF90089541833083228360 +:102B60008F5F3396C5CF923039F6E2508E2F817049 +:102B7000D82EE695F0E0E55DF94FA590B490C12C14 +:102B8000BB2460917301C61608F0B4CF2C2D30E041 +:102B9000A29EC001A39E900DB29E900D112470E0E4 +:102BA0000E94FD34802FD11016C0860F4091710114 +:102BB000420F532F511D9A01220F331F240F351F2F +:102BC000215A3C4F412F113A08F040EA6F2D0E94E4 +:102BD0000C09C394D6CF861BE9CFE7E7F4E0438125 +:102BE00021E1421B08F440E021E0628181810C94E4 +:102BF0003A15E7E7F4E0438121E1420F08F44FEF93 +:102C000021E0628181810C943A15E7E7F4E062816A +:102C100021E1621B08F460E021E0438181810C9492 +:102C20003A15E7E7F4E0628121E1620F08F46FEF03 +:102C300021E0438181810C943A15E7E7F4E081813A +:102C400021E04381628188500C943A15E7E7F4E073 +:102C5000818121E043816281885F0C943A158091E3 +:102C60007B04882319F0815080937B046091770462 +:102C7000709178048091790490917A040C942815CD +:102C800080917B04833018F48F5F80937B04609184 +:102C90007704709178048091790490917A040C946F +:102CA00028159091770490FF27C0917081111DC065 +:102CB00092609093770480915B03816080935B03C3 +:102CC000662351F0609177047091780480917904C3 +:102CD00090917A040E94281520E040917A04609136 +:102CE0007904809178040C943A158C3010F0966138 +:102CF000E0CF880F982BDDCF089521E030E0A901C7 +:102D000002C0440F551F8A95E2F7CA0120915C0367 +:102D1000662391F0822B80935C0380915B0380613A +:102D200080935B0380915A03811109C080917704DD +:102D300060E086950C94511680958223ECCF08951F +:102D4000CF93DF93C82FC17082FBDD27D0F981FBC1 +:102D5000662760F985E00E947D1661E06C2786E0B9 +:102D60000E947D166D2F87E0DF91CF910C947D1628 +:102D70000F931F93CF93C82F61E08111682F61706B +:102D800080E00E947D16C1FB662760F9C11101C079 +:102D900060E081E00E947D16C2FB662760F9C111E8 +:102DA00001C060E082E00E947D16C3FB662760F9E7 +:102DB000C11101C060E083E00E947D16C4FB66275C +:102DC00060F9C11101C060E084E00E947D164C2FC3 +:102DD00050E070E060E0DB01CA01F4E0B695A79531 +:102DE00097958795FA95D1F70097A105B10549F117 +:102DF000AC01BD0184E08A019B01E2E03695279594 +:102E000017950795EA95D1F70115110521053105AB +:102E100019F08E5FB901A80176956795579547958A +:102E2000452B462B472B09F08F5F8230D1F158F4A8 +:102E30008823E9F0813059F18C2FCF911F910F91A8 +:102E4000089580E0D8CF8330A1F18430A9F720E045 +:102E500040E56FEF8AED0E943A1587E00E949B13D0 +:102E600080910001882341F3109232030DC020E0CD +:102E700040E56FEF82E30E943A15809100018823BC +:102E800099F381E0809332030E94290DD5CF20E091 +:102E900040E56FEF8CEF0E943A1585E40E949B138A +:102EA000CBCF20E040E56FEF80E50E943A1585E248 +:102EB000F5CF20E040E56FEF86E70E943A158FE1FD +:102EC000EDCF0E94B816809376040C94DF0B8091AE +:102ED0007604982F9670963019F488600C946117D8 +:102EE000877FFCCF21E030E001C0220F8A95EAF70E +:102EF00020958091760482230C94611721E030E0C4 +:102F000001C0220F8A95EAF780917604822B0C94F7 +:102F10006117809177048695815009F48BE061E018 +:102F20000C9451168091770486958F5F8C3008F051 +:102F300081E061E00C9451168091770480FF07C016 +:102F4000869582588F77893010F40C94921761E03F +:102F500082E00C945116E7E7F4E083E0808311826D +:102F60008FEF828380EA83831482A9E5B3E012960F +:102F70008C911297836012968C936081718182810B +:102F800093810C942815AB01BC0188E190E00C946E +:102F90008335CF93C82FEFE3F4E0982F990F990F63 +:102FA000990F80818770892B8083E0E4F4E09C2F67 +:102FB0009295969597708081887F892B8083609108 +:102FC0003D0470913E0480913F04909140040E9422 +:102FD000C3176C2F82E0CF910C948F13EDE3F4E0D4 +:102FE00089E88083118282818C7F828360913D0495 +:102FF00070913E0480913F04909140040C94C3175B +:10300000EDE3F4E080818E7F808360913D047091D8 +:103010003E0480913F04909140040C94C317EDE36B +:10302000F4E080818160808360913D0470913E0472 +:1030300080913F04909140040C94C31769EE7EEF99 +:1030400090E080E00E948F3560E082E090E00E9496 +:10305000713560E083E090E00E9471351092920239 +:1030600060E084E090E00E94713560E082E290E0F0 +:103070000E94713560E085E090E00E94713560E06B +:1030800086E090E00E9471356FEF87E090E00E944B +:10309000713540E050E0BA0188E090E00E9483354D +:1030A00060E08DE090E00E94713540E050E0BA01B0 +:1030B00088E190E00E94833560E087E190E00E9423 +:1030C000713540E050E0BA018CE190E00E94833518 +:1030D00070E060E080E290E00E948F350E94EE1781 +:1030E00080E00E9453140E946B1440E050E0BA014B +:1030F0008FE090E00E94833540E050E0BA0183E128 +:1031000090E00C9483350F931F93CF93DF9300D0FF +:1031100000D0CDB7DEB74091C5025091C602609194 +:10312000C7027091C8022FB7F8948091570490910C +:103130005804A0915904B0915A042FBF841B950BD9 +:10314000A60BB70B84369105A105B10588F10E9445 +:10315000870E882379F10E944A086E5F7F4F8F4F58 +:103160009F4F69837A838B839C8380912C019091FC +:103170002D0181559D4F40912B0150E04530510567 +:1031800010F044E050E0BE016F5F7F4F0E94543565 +:1031900084E090E00E944934892BD9F40E944A08C7 +:1031A0006093C5027093C6028093C7029093C802D1 +:1031B00081E010C00E944A080091D2021091D3020F +:1031C0002091D4023091D502600F711F821F931F8E +:1031D000C4CF80E00F900F900F900F90DF91CF91B0 +:1031E0001F910F9108958F929F92AF92BF92CF92AD +:1031F000DF92EF92FF920F931F93CF93DF93EB0138 +:1032000088809980AA80BB809FB7F894C0905704AB +:10321000D0905804E0905904F0905A049FBFC81809 +:10322000D908EA08FB0894E6C916D104E104F104C0 +:1032300010F4442311F1E82E082E000CFF089AE048 +:103240008902F0011124EF5FFE4F83819481815543 +:103250009D4F428150E00417150708F4A801B901F9 +:103260000E945435C7010E944934892BA1F40E9461 +:103270004A08688379838A839B8381E0DF91CF91B9 +:103280001F910F91FF90EF90DF90CF90BF90AF9084 +:103290009F908F90089580E0F1CF0F931F93CF936D +:1032A000DF930F92CDB7DEB780914E0489832091D2 +:1032B000C40290E041E02817190609F440E001E05B +:1032C00010E09E012F5F3F4F6DEC72E086E00E94A0 +:1032D000F3180F90DF91CF911F910F9108950F93E5 +:1032E0001F93CF93DF93CDB7DEB729970FB6F8942E +:1032F000DEBF0FBECDBF85E0E7E7F4E0DE0111964B +:1033000001900D928A95E1F78091590390915A03AB +:10331000A0915B03B0915C038E839F83A887B987DC +:1033200041E08885811101C040E009E010E09E0184 +:103330002F5F3F4F69EC72E085E00E94F318811126 +:1033400010925B0329960FB6F894DEBF0FBECDBF77 +:10335000DF91CF911F910F9108956F927F928F927D +:103360009F92AF92BF92CF92DF92EF92FF920F9314 +:103370001F93CF93DF930F92CDB7DEB7862E5A01FE +:103380006901682E880F7708C3010E944934892B90 +:1033900009F088C08AE0869DF001879DF00D112418 +:1033A000EF5FFE4F458150E04115510511F041E0BE +:1033B00050E08AE0869DF001879DF00D1124EF5FBB +:1033C000FE4F6681778161557D4FCE0101960E9447 +:1033D0005435F50140815181628173812FB7F89492 +:1033E0008091570490915804A0915904B0915A04C7 +:1033F0002FBF841B950BA60BB70B84369105A10537 +:10340000B10540F4B701C8010E94DB089981891712 +:1034100009F44FC0082C000C9908C4010E944934DB +:10342000892B91F0B12C8B2D0F90DF91CF911F91B3 +:103430000F91FF90EF90DF90CF90BF90AF909F9053 +:103440008F907F906F9008958AE0889DF001899D0C +:10345000F00D1124EF5FFE4F458150E0E416F506B4 +:1034600008F4A7018AE0889DF001899DF00D1124E0 +:10347000EF5FFE4F6681778161557D4FC6010E94E7 +:103480005435B701C8010E94DB0899818913CACF5E +:103490000E944A08F5016083718382839383BB2471 +:1034A000B394C1CFB12CA701B801C6010E94543515 +:1034B000BACFBB24B394F7CFCF92DF92EF92FF92B3 +:1034C0000F931F93CF93DF9300D000D00F92CDB70F +:1034D000DEB76B0185E0E82EF12C00EB12E09E01D7 +:1034E0002F5F3F4F47EA52E061E080E00E94AD1954 +:1034F000882349F095E0FE013196A2EAB2E00190FE +:103500000D929A95E1F795E0E2EAF2E0D60101909A +:103510000D929A95E1F70F900F900F900F900F90EA +:10352000DF91CF911F910F91FF90EF90DF90CF909F +:10353000089590E080E00E946B35893E9E4F11F423 +:103540000C940F1580E008951F920F920FB60F9202 +:1035500011242F933F934F935F936F937F938F9398 +:103560009F93AF93BF93CF93DF93EF93FF93D0914C +:10357000E900DF708091EC00C82FC17080FDC0E8C9 +:103580001092E9008091F000877F8093F00078949A +:103590000E94EB0F1092E9008091F0008860809308 +:1035A000F000CD2BCF70C093E900FF91EF91DF9138 +:1035B000CF91BF91AF919F918F917F916F915F91CB +:1035C0004F913F912F910F900FBE0F901F90189524 +:1035D0001F920F920FB60F9211242F933F934F9388 +:1035E0005F936F937F938F939F93AF93BF93EF936B +:1035F000FF938091E10082FF09C08091E20082FF89 +:1036000005C08091E1008B7F8093E1008091DA001A +:1036100080FF24C08091D80080FF20C08091DA0014 +:103620008E7F8093DA008091D90080FF9BC080E17B +:1036300089BD82E189BD09B400FEFDCF81E08093A0 +:103640006C0480915E04811109C00E94BD060E9435 +:1036500088078091E20084608093E2008091E1001D +:1036600080FF17C08091E20080FF13C08091E200CC +:103670008E7F8093E2008091E20080618093E2007F +:103680008091D80080628093D80019BC85E0809337 +:103690006C048091E10084FF29C08091E20084FFE6 +:1036A00025C080E189BD82E189BD89B5982F9170DF +:1036B00080FFFBCF8091D8008F7D8093D8008091D0 +:1036C000E1008F7E8093E1008091E2008F7E809305 +:1036D000E2008091E20081608093E20080916D04BD +:1036E000882309F445C084E080936C048091E10054 +:1036F00083FF27C08091E20083FF23C08091E10017 +:10370000877F8093E10082E080936C0410926D04C7 +:103710008091E1008E7F8093E1008091E2008E7FB6 +:103720008093E2008091E20080618093E20042E0B9 +:1037300060E080E00E9456078091F00088608093EE +:10374000F000FF91EF91BF91AF919F918F917F9189 +:103750006F915F914F913F912F910F900FBE0F90FE +:103760001F90189519BC10926C0410925E0476CFCD +:103770008091E30087FD93E090936C04B7CF789439 +:103780001F921FB61F9211248F939F93AF93BF93E5 +:103790008091570490915804A0915904B0915A0413 +:1037A0000196A11DB11D8093570490935804A093D6 +:1037B0005904B0935A04BF91AF919F918F911F907C +:1037C0001FBE1F9018959C014FB7F8948091570425 +:1037D00090915804A0915904B0915A044FBF821B94 +:1037E000930B08952FB7F894809157049091580443 +:1037F000A0915904B0915A042FBF08955F926F921F +:103800007F928F929F92AF92BF92CF92DF92EF9270 +:10381000FF920F931F93CF93DF9300D000D00F92AE +:10382000CDB7DEB77C01FC0183819481892B31F017 +:103830008081918189238F3F09F08CC60F900F9072 +:103840000F900F900F90DF91CF911F910F91FF90EC +:10385000EF90DF90CF90BF90AF909F908F907F9030 +:103860006F905F9008950E94AD14182F682F898182 +:103870009A810E94B30B69817A81812F0E94A014E2 +:103880008C01F7018281882361F0F801E65EFC4536 +:10389000ED30F10530F4ED51F94C0C9431350E94C6 +:1038A0000F18D0903D04D0FE1CC08D2D86958370DE +:1038B000F7019281992309F460C1823090F4B70135 +:1038C000C8010E949908882361F0D694D694D694B2 +:1038D00080913E0483708295880F807E8D290E949E +:1038E0009B13F7018281882309F429C6C8018251FC +:1038F0009F45409708F0ECC58FEF93E00E945D353F +:10390000025193EEA92E92E0B92E811197CF0111A9 +:1039100038C11C821B82662463948AE0582E85017C +:103920000F5F1F4FC5010E945D3589831A8288236E +:1039300009F484CF9FEF980F933008F031C18A8348 +:10394000698232E0A30EB11CC8010E945D358B83F1 +:10395000882309F473CF8E010F5F1F4FF801208178 +:103960002223E9F2213009F055C191818281913001 +:1039700009F018C10E5F1F4F6AE070E0893311F43F +:1039800060E570E00E94BA0E13C10E94001889CF52 +:1039900080913D0480FF0DC00E94001860913D049D +:1039A00070913E0480913F04909140040E94C3179F +:1039B00078CF0E940F18F2CF0E94EE1772CF90912D +:1039C0003D04892F86958F5F8370880F997F892B9F +:1039D00080933D04982F9670963001F7897F8093ED +:1039E0003D04DCCF90913E04892F8B7F92FF846051 +:1039F00080933E04D3CF80913D04982F9695969561 +:103A0000969580913E0483708295880F807E892BE5 +:103A10008C3798F48F5F282F220F220F220F90915E +:103A20003D049770922B90933D0482958695837008 +:103A300090913E049C7F892BDBCF81E0ECCF80917D +:103A40003D04982F96959695969580913E048370A7 +:103A50008295880F807E892B11F08150DCCF8BE717 +:103A6000DACF30913E04932F9695969596952091B6 +:103A70003F04822F83708295880F807E892B90E08F +:103A80000196482F440F440F440F3770342B309366 +:103A90003E0435E0969587953A95E1F783702C7F43 +:103AA000822B80933F047ACF30913E04932F9695DA +:103AB0009695969520913F04822F83708295880F6A +:103AC000807E892B8150990BDCCF80913F0482FF4F +:103AD00012C08B7F80933F0460913D0470913E043F +:103AE00080913F04909140040E94C31760E081E000 +:103AF0000E948F13D6CE846080933F0460913D0472 +:103B000070913E0480913F04909140040E94C3173D +:103B100060E08CE00E948F1364E182E00E948F13CA +:103B200065E081E00E948F1361E08CE0E1CF80913D +:103B30003F04982F9695969596958091400482958E +:103B4000880F807E892B883720F4865F0E94C917F2 +:103B5000A8CE88E7FBCF80913F04982F9695969545 +:103B60009695809140048295880F807E892B8431C0 +:103B700010F08A50EBCF84E1E9CF882309F4B1CE6D +:103B80009ECEA114F4E0BF0609F458CEC5010E94F0 +:103B90005D35811101C001502FEFA21AB20AB7CED4 +:103BA0005801D9CE923039F40E5F1F4F0E943F0C5E +:103BB0000F5F1F4FD3CE933029F40E5F1F4F0E942B +:103BC000060CF6CF943019F00F5F1F4FF1CF0E5F48 +:103BD0001F4F30E020E0B8016F5F7F4FF801418157 +:103BE0008053990B8A30910550F02150310900F330 +:103BF0008FE99FE00197F1F700C00000F6CF529ED9 +:103C0000F001539EF00D11249C012E0F3F1F842FB5 +:103C10008B01E1CFE22FF0E0EF51FE4F7490822F45 +:103C200086958695869590E0FC01EF52FE4FE490D4 +:103C30002770F12C022E02C0F594E7940A94E2F763 +:103C4000E1E0EE22FF24FC01EF53FE4FC490D12CA3 +:103C5000022E02C0D594C7940A94E2F7F1E0CF2275 +:103C6000DD24FC01EF54FE4F8490912C02C095940A +:103C700087942A95E2F721E082229924E114F10445 +:103C800019F081EE0E943F0CC114D10419F086EEA8 +:103C90000E943F0C39E36AE070E0731202C060E5F5 +:103CA00070E0872D0E94BA0ECD2819F086EE0E9492 +:103CB000060CEF2819F081EE0E94060C892809F401 +:103CC00077CF6AE070E08CE25DCE81E00E947E17E3 +:103CD00003C081E00E9472170F900F900F900F9019 +:103CE0000F90DF91CF911F910F91FF90EF90DF9098 +:103CF000CF90BF90AF909F908F907F906F905F908C +:103D00000C94671782E0E2CF043F110509F455C116 +:103D100008F057C1053E110509F4DDC0F701928195 +:103D200091113CC280915F0482720A3CFCE51F073E +:103D300009F414C208F06AC1053C3CE5130709F414 +:103D4000F9C108F04EC1033C5CE5150709F4D3C185 +:103D500008F0EBC1023C1C4509F47DC1F70100816C +:103D60001181992309F434C2C8010E94AD14D82EE0 +:103D7000682FC8010E94B30BB8018D2D0E94A014BA +:103D80000E94000A182FB82EF70122814581342F96 +:103D900032953F70892F82958F70C82ED12C8C3030 +:103DA00008F04EC2F601E051F94C0C94313503385D +:103DB000FFE51F0709F481C018F501383FE5130737 +:103DC00009F44AC008F065C000385FE5150709F03E +:103DD000A5CF882309F459C080919C02811106C0A7 +:103DE00081E080939C0282EE0E943F0C0E94F21BB5 +:103DF00090939B0280939A028BE20E943F0C8ECF9D +:103E000005389FE5190709F4BEC008F476C00638E6 +:103E1000FFE51F0709F082CF882309F4CEC0609127 +:103E2000590170915A0190E080E00E94AA3520E08B +:103E300030E040E05CE30E940B3620E030E040E8F8 +:103E40005FE30E94A5358111B5C080EE90E09093AC +:103E50005A0180935901A1C08823A1F080919C024E +:103E6000811106C081E080939C0282EE0E943F0C8B +:103E70000E94F21B90939B0280939A0281EE0E9413 +:103E80003F0CBACF81EE0E94060C8BE20E94060C1A +:103E900045CF882309F442CF81EE0E943F0C83EE88 +:103EA0000E943F0C8FE40E943F0C8FE40E94060C9E +:103EB00083EE0E94060C81EEE9CF882309F42ECF11 +:103EC00081EE0E943F0C83EE0E943F0C80E50E9431 +:103ED0003F0C80E5EBCF80933C0210933B020093B4 +:103EE0003A02882321F081E08093EE0217CF1092EE +:103EF000EE0214CF80933902F0CF882379F18091BC +:103F00003902882349F080913A020E94060C80EE23 +:103F10000E943F0C8AE20CC080913C028823D1F3BE +:103F200080913A020E94060C80EE0E943F0C8CE4C5 +:103F30000F900F900F900F900F90DF91CF911F91E6 +:103F40000F91FF90EF90DF90CF90BF90AF909F9038 +:103F50008F907F906F905F900C943F0C8AE20E944C +:103F6000060C8CE40E94060C80EE0E94060C8091E8 +:103F70003902811105C080913C02882309F45ECC8E +:103F800080913A02D5CF8823C1F0809132038823F3 +:103F900039F010923203109200010E94290DBECE1A +:103FA000809100018111F7CF81E0809332038093EB +:103FB0000001F3CF80E890E04ACF61E00E94AA13AD +:103FC000ADCE62E0FBCF64E0F9CF882321F081E041 +:103FD0008093ED02A3CE1092ED02A0CE1092F002DB +:103FE0009DCE073C2CE5120709F4AEC008F4A7C02B +:103FF000083C4CE5140709F4ACC0093C1C4509F029 +:10400000ADCE4DEE55E169EF75E179C0043DECE5CB +:104010001E07A8F40E3CFCE51F0708F00FCC0C3C73 +:104020002CE5120709F49FC04FE256E160E476E107 +:104030000D3C1C4508F463C061E081E046C0053DCD +:104040004CE5140709F4FACB08F492C00D351D4570 +:1040500009F4F4CB83CE8091770480FF31C08E7F4A +:10406000809377046091770470917804809179044B +:1040700090917A040E94281580915B03816080935F +:104080005B039FEFE0E7F2E09150E040F040E1F7A2 +:1040900000C000000F900F900F900F900F90DF91D5 +:1040A000CF911F910F91FF90EF90DF90CF90BF9035 +:1040B000AF909F908F907F906F905F900C94CF0EF9 +:1040C00081608093770461E086950F900F900F9048 +:1040D0000F900F90DF91CF911F910F91FF90EF9074 +:1040E000DF90CF90BF90AF909F908F907F906F9018 +:1040F0005F900C94511649E857E162E977E10F901F +:104100000F900F900F900F90DF91CF911F910F9113 +:10411000FF90EF90DF90CF90BF90AF909F908F90E7 +:104120007F906F905F900C94F10842E957E169E845 +:1041300077E1E5CF4DE156E166E276E1E0CF46E298 +:1041400056E16DE176E1DBCF45E056E161E176E1F4 +:10415000D6CF41E156E165E076E1D1CF49EF55E1B7 +:104160006DEE75E1CCCF40E456E16FE276E1C7CF6A +:104170000F900F900F900F900F90DF91CF911F91A4 +:104180000F91FF90EF90DF90CF90BF90AF909F90F6 +:104190008F907F906F905F900C949C170E3D1C4504 +:1041A00009F0DCCD0F900F900F900F900F90DF91E2 +:1041B000CF911F910F91FF90EF90DF90CF90BF9024 +:1041C000AF909F908F907F906F905F900C941E188F +:1041D000C8010E948B0BD82ECFCD092F0F70907F76 +:1041E00011F00295007F812F2223C9F0002369F08E +:1041F00090E2910F983010F011110BC080915F0484 +:10420000082B00935F040E946A0B812F0E943F0CD1 +:1042100017C080919102082B00939102F4CF0E9465 +:10422000060C002369F00095105E183010F0B110F4 +:1042300027C080915F04082300935F040E946A0BEB +:1042400098E0C91AD108E4E0CE16D10408F0F6CA05 +:104250000E94AA0E0F900F900F900F900F90DF9179 +:10426000CF911F910F91FF90EF90DF90CF90BF9073 +:10427000AF909F908F907F906F905F900C94A0165E +:1042800080919102082300939102D8CF892F8F70DB +:10429000907F903211F08295807FF1E0BF120CC0C8 +:1042A000222329F0333060F60E94FC0BC9CF323054 +:1042B00038F60E94F10BC4CF222341F03323A1F33F +:1042C00040FFA3CF4F70F7014583EECF332389F32F +:1042D000193309F0F5C0FFEF27EE33E0F15020402D +:1042E0003040E1F700C00000812F0E94060CA8CFEB +:1042F000892F86958695837061F0813009F0A0CF73 +:10430000812F9370211102C090E080E00E94560836 +:1043100097CF812F9370211102C090E080E00E941E +:104320006C088ECF892F8370A1F5211189CF812F41 +:10433000829586958770880F880F412F4F70082EC1 +:1043400001C0440F0A94EAF7212F207114FF07C01F +:104350002FE030E001C0220F8A95EAF7209596956C +:1043600096959370923081F0822F842B933030F4A5 +:1043700080919202913029F0242B82230E94ED0B30 +:104380005FCF842B822BFACF242B8091920282273D +:10439000F5CF8695222311F0892F8170882309F4A7 +:1043A0004FCF812F829586958770880F880F412F78 +:1043B0004F70082E01C0440F0A94EAF7212F207194 +:1043C00014FF07C02FE030E001C0220F8A95EAF702 +:1043D0002095969596959370923081F0822F842B3C +:1043E000933030F480917604913029F0242B82238D +:1043F0000E94611725CF842B822BFACF242B80912A +:1044000076048227F5CF092F0F70222329F0802F01 +:104410000E947E17812F48CF812F0E94F10B802FA1 +:104420000E9472170DCF812FE1EF1E1789F1E1175E +:1044300050F0F0EF1F17B9F02223B1F13111E5CEA2 +:10444000892F8F7129C042EF141749F153EF1513CB +:10445000F3CF80E0222361F29F7181E001C0880FD9 +:104460009A95EAF7C5CF222379F0323008F0E8CEEA +:10447000292F2F7181E090E001C0880F2A95EAF77B +:10448000909176048927B4CF333008F0D9CEF0CF9D +:10449000892F8F71222321F20E947E17D1CE892F7E +:1044A0008F712223C9F3BCCF332379F0893341F4D0 +:1044B0008FEF97EEE3E081509040E040E1F712CFBC +:1044C0008FE39CE90197F1F70DCF892F8F71A8CF6A +:1044D0000031FFE51F0709F4F8CB01312FE5120782 +:1044E00009F410CC0E944A086093F5027093F6021A +:1044F0008093F7029093F802F7018281063F11053D +:1045000009F461CD08F053CC043E110509F45DCDEA +:1045100008F0FACB003E110509F457CD013E110514 +:1045200009F4E8CC0C32110509F0F8CB882309F422 +:1045300055CD81E08093F00210926701EFCB0031FE +:104540003FE5130709F4C5CB01314FE51407A1F688 +:1045500082E0C0CB85E0DE01119601900D928A9534 +:10456000E1F7F701228189819A8121117CC90E949A +:104570008B0B182F80C91F93CF93DF9380915D021F +:10458000807FA9F480915A02882389F080918F025C +:10459000D0915E026091580270915902A0915B0225 +:1045A000B0915C02C62FC72316E0D81304C0DF9178 +:1045B000CF911F91089590E0109711F0CF3F19F41B +:1045C00001968770F2CF189F9001199F300D11242A +:1045D000F901E15AFD4F41814713F2CF4081461363 +:1045E000EFCF42814111ECCF438154814A1B5B0BD9 +:1045F000403A510528F780915D028F708061809369 +:104600005D02F901EC59FD4F80818F7080618083DC +:1046100088E592E00E94FE1BDF91CF911F910C94E0 +:10462000810BAF92BF92CF92DF92EF92FF920F93E6 +:104630001F93CF93DF93CDB7DEB761970FB6F89492 +:10464000DEBF0FBECDBF8C0185E0F801DE011D96F7 +:1046500001900D928A95E1F7F801E28088E5A82E95 +:1046600082E0B82E60915B0270915C026115710569 +:1046700009F432C19091580240915902892F842344 +:104680008F3F09F429C120813181C380D480F0900B +:104690005A02F601E61BF70BFF2009F4E8C08091EF +:1046A0005D02582F507FE03AF10508F0ABC0511180 +:1046B00077C0FE2C431321C092131FC0E1101DC010 +:1046C0008F70806180935D02C5010E94FE1B809106 +:1046D0005D02F80185838F2D61960FB6F894DEBFD9 +:1046E0000FBECDBFDF91CF911F910F91FF90EF9043 +:1046F000DF90CF90BF90AF900895CD2829F0822F02 +:1047000083238F3F09F003C180E0F82FF170DF2E83 +:1047100080FF3CC080918F0240915E0256E084137E +:1047200015C02D873E878D859E850E94DC14292F1C +:1047300022952F702230F0F0243018F59F70F1F0A0 +:10474000F8019581907FD1F4D12C1EC090E0589F44 +:10475000F001599FF00D1124E15AFD4F618136138C +:1047600006C06081261303C06281E6120FC0019665 +:104770008770D5CF9F7011F0882331F3805E883029 +:1047800018F3C8010E94FE1BFD2CA5CFEE2009F4F2 +:10479000A2CF80915D02816080935D02F12C9BCF5E +:1047A000431306C0921304C0F801EE2009F479C047 +:1047B000C8010E94E814882309F1EE20F9F08091E5 +:1047C0005D02803270F02091580230915902388792 +:1047D0002F831986DB86CA868C87CE0107960E94B6 +:1047E000FE1B86E0F801A8E5B2E001900D928A95E3 +:1047F000E1F70E94BB22FF24F3946DCFC8010E9411 +:10480000FE1BF9CF51110AC088E592E00E94FE1B01 +:1048100086E0F50111928A95E9F7C0CF43130FC0E6 +:1048200092130DC0E1100BC0F8018583C8010E94EE +:10483000FE1B86E0F50111928A95E9F74CCFC8017D +:104840000E94E8148823D1F2EE20C1F280915D022B +:10485000803238F220915802309159023A832983EC +:104860001B82DD82CC828E83CE010196B8CFE03AE6 +:10487000F105F8F6FE2CEE2009F243131FC0921347 +:104880001DC080915D0280FD10C0982F907F69F05F +:10489000F8018583903F31F0982F907F905F8F7063 +:1048A000892B8583C8010E94FE1B86E0F801A8E5DC +:1048B000B2E001900D928A95E1F70DCFC8010E94F8 +:1048C000E81481118ECF80915D02816080935D023A +:1048D000C8010E94FE1BFFCEEE2009F48FCFC80155 +:1048E0000E94E814F82E882309F488CF86E0F801A6 +:1048F000A8E5B2E001900D928A95E1F78091580207 +:10490000909159020E94DC140E94BB22E4CE81E007 +:104910008E25FBCE1F93CF93DF93CDB7DEB767977E +:104920000FB6F894DEBF0FBECDBF4B8B5C8B6D8B8B +:104930007E8B8F8B6111109291021A8A198A85E001 +:10494000FE017396DE011D9601900D928A95E1F7A6 +:1049500086E0FE013D96DE01179601900D928A9544 +:10496000E1F7CE0107960E941123882389F016E013 +:1049700080918F0290915E0289134BC067960FB6AB +:10498000F894DEBF0FBECDBFDF91CF911F91089588 +:1049900086E0FE013796DE01119601900D928A9510 +:1049A000E1F78A859B85892B11F38F81988589236F +:1049B0008F3FE9F220915E0230E0C90101968770D5 +:1049C000992740918F024817190681F410925F04CD +:1049D0000E94E20F10925E0210928F0286E0E8E5DC +:1049E000F2E0DF011D928A95E9F7C1CF96E0929F30 +:1049F000D001939FB00D1124A15ABD4FFE013196F5 +:104A000001900D929A95E1F780935E020E94810BCE +:104A1000AECF819FC0011124815A9D4F0E94112366 +:104A2000882309F4ABCF80918F0290E001968770C4 +:104A3000992780938F029CCF9F92AF92BF92CF9283 +:104A4000DF92EF92FF920F931F93CF93DF93CDB737 +:104A5000DEB764970FB6F894DEBF0FBECDBF8E01F0 +:104A60000F5F1F4F8AE0D8011D928A95E9F79EE4F7 +:104A7000C92E91E0D92EF12CE12CAA24A394B12CBB +:104A8000F60181916F018F3F09F44AC0F894E82F35 +:104A9000E295EF70F0E021A18F70A50102C0440FF4 +:104AA000551F8A95E2F7CA01922F982B91A392A1E4 +:104AB0008095892382A30E94A40900C0E7E4F1E065 +:104AC00030E020E0912C41914F3F09F47DC0A42FAC +:104AD000A295AF70B0E090968C9190E04F7002C0BC +:104AE000959587954A95E2F780FD6EC08A2D022E36 +:104AF00001C0880F0A94EAF7982A2F5F3F4F2730AA +:104B0000310509F7F601319780818F3F11F00E943E +:104B1000A60950EA5A95F1F7F801EE0DFF1D9082B3 +:104B20008FEFE81AF80A95E0E916F10409F0A8CF2A +:104B30004AE050E0B80188ED92E00E9447357C01E0 +:104B4000892B41F08AE0F801A8EDB2E001900D92C6 +:104B50008A95E1F71091E302E114F104B9F181E0E3 +:104B6000809395020E94F21B90939402809393028B +:104B700080919302909194020E94E31B069770F03B +:104B8000A8EDB2E0E12FF0E0E15BFC4F8D91819365 +:104B900022E0AD3DB207D1F71092950281E090E09E +:104BA000EF28C1F064960FB6F894DEBF0FBECDBFFC +:104BB000DF91CF911F910F91FF90EF90DF90CF90F9 +:104BC000BF90AF909F90089580E096CF809195021E +:104BD0008111CECF0E94870EB82EE091E302882388 +:104BE00009F4C7C08E01005F1F4F85E0D8011D92F8 +:104BF0008A95E9F7F0E09F01215B3C4F79018091B4 +:104C0000D102AE014B5E5F4F6A018A3008F086C068 +:104C10004CE55AE1B801C7010E94430E882309F40C +:104C200094C04DE857E2B801C7010E94430E8823A3 +:104C300009F48BC043E858E1B801C7010E94430E54 +:104C4000882309F482C04FE659E1B801C7010E94E8 +:104C5000430E882309F479C04DE459E1B801C70136 +:104C60000E94430E882309F470C01092D102E09193 +:104C7000E202F0E0AF01415B5C4FD80110E0FA01C5 +:104C80009191AF018D91981731F09F012150310919 +:104C9000F90180831B2DCA16DB0689F780919C02DF +:104CA000882371F080919A0290919B020E94E31BED +:104CB000893E934028F082EE0E94060C10929C02DE +:104CC00088E9C82E82E0D82EF12CE12CD6018D91F6 +:104CD0006D018823D1F08695F70109F447C0EC50A7 +:104CE000FE4F808191819C878B871D860E94F21BDD +:104CF0008160782F9F878E87F601319710824B85D0 +:104D00005C856D858F850E948A24B2E0EB0EF11CD4 +:104D1000E4E0EE16F104D1F6812F44CF80919602A3 +:104D2000909197020E94E31B843F914008F070CF5E +:104D3000A091E202B0E0A15BBC4FF8011D9211927C +:104D4000CE16DF06D9F71B2DA9CF8091D1028F3F58 +:104D500031F08F5F8093D1028A3008F488CF0E94AF +:104D6000F21B9093970280939602E2CFE051FE4FA0 +:104D7000B8CFF0E0E15BFC4FF89485E0A0EBB2E047 +:104D800001900D928A95E1F765E070E080EB92E08A +:104D90000E94DB088093AF020E94A409F894E0917E +:104DA000EB02F0E0E851FD4F80818B878093B602E3 +:104DB00061E070E0CE010B960E94DB088093B502A3 +:104DC0000E94A409F894C090B702D090B802E09075 +:104DD000B902F090BA0280919D0290919E02A0913A +:104DE0009F02B091A002C816D906EA06FB06D1F0D0 +:104DF000C0929D02D0929E02E0929F02F092A00289 +:104E00000E94870E81110EC00E944A08C61AD70A56 +:104E1000E80AF90AC092D202D092D302E092D402F8 +:104E2000F092D5020E94A409F8948091C2028823CE +:104E300021F184FF04C09091C30290935C0380FF32 +:104E40000DC08091BB0280FF25C0909177049160D6 +:104E50009093770460E086950E9451168091C2027B +:104E600081FF09C020E04091BE026091BD028091A7 +:104E7000BC020E943A151092C2020E94A409F89442 +:104E80008091C402882349F00E949B0D0E94A409CE +:104E900080E088CE0E94CD0FE1CF0E94800DF6CF3A +:104EA000EF92FF920F931F93CF93DF9300D000D028 +:104EB0000F92CDB7DEB7162FE82EF12CC701880F61 +:104EC000991F662339F18C509E4FFC01808191819E +:104ED0009A83898301E00B830E94F21B8160782F03 +:104EE0009D838C83F701E856FD4F0127110F102B8E +:104EF000108349815A816B818D810F900F900F90A3 +:104F00000F900F90DF91CF911F910F91FF90EF9035 +:104F10000C948A2480519E4FD8CFCF92DF92EF928B +:104F2000FF920F931F93CF93DF930F92CDB7DEB70E +:104F3000EE24E394F12C06EB12E09E012F5F3F4F2D +:104F40004BEA52E063E082E00E94AD19082F88230B +:104F500021F1C090E5028C2D90E09C0128513D4F3D +:104F600079011981F9018081181BD12E80E00AC0D6 +:104F7000DA94F70180818F5F808360E08C2D0E943E +:104F80005027802F1D14A4F3912F17FD90E0191BBB +:104F900011110EC081110E94680B802F0F90DF91BC +:104FA000CF911F910F91FF90EF90DF90CF900895D8 +:104FB0001F5FF70180818150808361E08C2D0E940A +:104FC0005027802FE5CF1F921FB61F9211248F9379 +:104FD0009F93AF93BF9380915604811113C080912A +:104FE000570490915804A0915904B0915A044196E5 +:104FF000A11DB11D8093570490935804A0935904A8 +:10500000B0935A04BF91AF919F918F911F901FBE93 +:105010001F901895CDB7DEB7E9970FB6F894DEBFAD +:105020000FBECDBF84B7877F84BF0FB6F894A89515 +:1050300080916000886180936000109260000FBED4 +:1050400080E890E00FB6F89480936100909361003F +:105050000FBE85B7806885BF85B7806885BF82EA47 +:1050600099E090932F0280932E020E94BD060E9429 +:1050700088078091E20084608093E20078948091B8 +:105080006C048823A1F01091E9001F709091EC004E +:10509000892F817090FD80E8182B1092E900809193 +:1050A000E80083FD0E94EB0F1F701093E90082E07F +:1050B00084BD93E095BD9AEF97BD80936E001092EA +:1050C000D2021092D3021092D4021092D5020E9402 +:1050D0000F15811102C00E946B140E94870E8093ED +:1050E000580180915801882309F4C6C010926F01BD +:1050F00085E2809370010E94870E81110E943C33EB +:105100008091580181112FC0FE01359686E0DF01A4 +:105110001D928A95E9F786E6898387E98A8386EC7A +:105120008B8384E38C8385E38D833497AEE4B1E095 +:10513000CE010B9621912D938E179F07D9F787E00B +:10514000E5E7F1E0DE01919601900D928A95E1F795 +:10515000FE01B196A7E4B1E0CE01889621912D938E +:105160008E179F07D9F78091580195E0811190E043 +:105170009093E30285E0891B8093E2020EE411E044 +:10518000A3E5EA2EA1E0FA2EF80181918F018F3F6D +:1051900011F00E94A609E016F106B1F707E411E04C +:1051A000FEE4EF2EF1E0FF2ED8018D918D018F3FAF +:1051B00011F00E94A609E016F106B1F7E8EDF2E061 +:1051C00082EE92E0AFE4B3E011921D928E179F073A +:1051D000D9F70E94991A811102C00E941E1882E01C +:1051E00090E00E945D358093440384E090E00E944B +:1051F0005D35182F82E290E00E945D35982F812F57 +:105200009093D7028093D6020E941C25EFE7FBEB18 +:105210003197F1F700C000000E941C2580914F03D8 +:1052200080FF2EC06FEF7FEF90E080E00E948F350F +:1052300081E08093E00080E28093D8001092C90062 +:105240008FE19EE40197F1F700C0000087E090EB4A +:10525000DC018093800690938106A0938206B09330 +:10526000830688E19CE00FB6F894A89580936000CF +:105270000FBE90936000FFCF85E280936F0139CF1E +:1052800083E090E00E945D350E94ED0B80917604F2 +:105290000E94B8160E94991A811102C00E941E181D +:1052A00088E190E00E94653560933D0470933E0470 +:1052B00080933F0490934004672B682B692B11F473 +:1052C0000E94EE170E943D3167E081E00E948F133B +:1052D00065E586E10E948F1363E687E10E948F13E4 +:1052E00060EA8AE10E948F1369E98BE10E948F13C3 +:1052F00065EF8CE10E948F1360EA8DE10E948F13AD +:1053000060E38EE10E948F1366E083E00E948F13BA +:1053100061E08CE00E948F1360E081E00E948F13B7 +:1053200060E08CE00E948F136FE084E00E948F1396 +:1053300061E08CE00E948F130E94870E811102C0F1 +:105340000E943F3383E080931A0380E280934304FA +:105350000E943D316DE070E084E792E00E94500DC4 +:10536000892BE9F580911A0363E070E081FD9EC20C +:1053700081E792E00E94500D892B89F56DE070E085 +:1053800081E692E00E94500D892B49F50E944A085F +:105390006058774C8E4F9F4F60934A0470934B0434 +:1053A00080934C0490934D04EEE7F4E080E092E0AB +:1053B000DF019C011D9221503040E1F7F0937F0600 +:1053C000E0937E068FEF9FEF90937D0480937C04A3 +:1053D00081E080934F0480934E0410921B038091D0 +:1053E000E402811136C00E94991A811104C00E9402 +:1053F0001E180E94AB1788E090E00E94653560930C +:105400007704709378048093790490937A04809160 +:105410005B03836080935B036E7F71F40E94AB1724 +:1054200088E090E00E94653560937704709378047B +:105430008093790490937A040E94F608809177040F +:1054400080FF04C060E086950E94511681E0809341 +:10545000E40280915801811106C084EF80936601B7 +:1054600085EF8093650120916601A22FA295AF7010 +:10547000B0E091963C9191972F7081E090E0BC0153 +:10548000022E01C0660F0A94EAF7462F4095432387 +:1054900091964C93919792963C919297362B929637 +:1054A0003C93929740916501E42FE295EF70F0E014 +:1054B00031A14F70042E01C0880F0A94EAF7982F8B +:1054C0009095932391A392A1892B82A390968C917E +:1054D00090E002C0959587952A95E2F7817020A10A +:1054E00030E002C0359527954A95E2F792E020FF1B +:1054F00090E0892B8093EC028091580111E0812784 +:105500008093EB02312F381B3093E5020E943D312E +:1055100040E060E080E00E94090D60E08AE00E94C7 +:10552000511681E892E090935E0380935D0381E0E1 +:105530000E94611780EE90E090935A018093590188 +:10554000109332030E94290D8BE591E09093530450 +:10555000809352043E018DE3680E711C80916C04AF +:10556000FF24F39400E112E1853009F4F2C10E94B6 +:105570001C25E82E81110E944A08E5E4F3E0AFE41F +:10558000B3E010E000E0B02EDD9081918D1509F4BC +:1055900004C28D25C12CFF24F394982F9F2109F478 +:1055A000F7C10E94870E882399F0CEA6BFA6DF2000 +:1055B00081E009F480E088AB0E94F21B8160782FC3 +:1055C0009AAB89AB4EA55FA568A98AA90E948A24D7 +:1055D000F801EB5BFC4F8081F826F0828091EC02B1 +:1055E000E82FEE0FEE0F90916601A92FA295AF70F4 +:1055F000B0E090962C9130E09F7002C035952795D1 +:105600009A95E2F72170332790916501A92FA29511 +:10561000AF70B0E090964C9150E09F7002C05595ED +:1056200047959A95E2F7CA018170992740FF02C019 +:1056300082E090E0822B8E2B8093EC021091EB02A3 +:105640008F70E82FF0E0E650FE4F80819091EA02E3 +:10565000890F8093EA02F12C84306CF0E12FF0E0A6 +:10566000E851FD4F80818F5F808360E0812F0E9431 +:105670005027FF24F3948091EA028D3F6CF4E12FD0 +:10568000F0E0E851FD4F80818150808361E0812FFF +:105690000E945027FF24F3948091EA02082E000C08 +:1056A000990B64E070E00E941D358093EA02F110CE +:1056B0000E94680B80914F04882351F180911C0354 +:1056C00090911D030E94E31BC29708F07DC12091B9 +:1056D0007C0430917D042115310509F0A0C2809130 +:1056E0004E048823A9F00E944A0800914A041091B0 +:1056F0004B0420914C0430914D04601B710B820BC4 +:10570000930B6F3F7F4F8F4F9F4710F40E94800D88 +:10571000E11001C0F1100E949B0D809142038A307C +:1057200008F0BAC380914003909141030E94E31BAB +:10573000069708F4B1C304E610E025E030E04BE33F +:1057400053E064E084E10E948832892B09F075C33C +:105750001092420320913203222359F080913B039F +:1057600090913C0398278927982790933C03809336 +:105770003B0386E0E4E2F3E0DE01919601900D92B6 +:105780008A95E1F786E0FE01B196DE01119601905F +:105790000D928A95E1F786E0FE013196A5E3B3E02C +:1057A00001900D928A95E1F790913F038091360325 +:1057B00097FD3AC38E7F8093360380913303909197 +:1057C0003403009709F02AC360913B0380913C03A6 +:1057D00000913D0310913E03222309F4F2C241E0FF +:1057E0000E94E30C2091300330913103820F931F0C +:1057F000909331038093300341E0602F812F0E940A +:10580000E30C20912E0330912F03820F931F90936E +:105810002F0380932E0360E373E08AE393E00E94FA +:10582000C40C6EE273E089E393E00E94C40C109212 +:1058300037031092380386E0E5E3F3E0DE011196CA +:1058400001900D928A95E1F786E0FE013196A4E27F +:10585000B3E001900D928A95E1F7309126032091F3 +:105860002703909128038091290370912003609170 +:1058700021034091220350912303F0912503E091ED +:105880001F03FE13E0C2332311F07313DCC2222383 +:1058900011F02613D8C2882311F08513D4C299239E +:1058A00019F081E04913D0C280E0CEC28EE692E0CA +:1058B00061CD80916C04843009F43BC00E94800D5E +:1058C00040E060E080E00E94090D80E00E94A016A8 +:1058D0008091E702811109C0F092E702809177047C +:1058E00081708093E6020E94CD0F10925604A8E1C9 +:1058F000B0E0E0E40FB6F894A895A09360000FBE66 +:10590000E093600083B7817F846083BF83B7816049 +:1059100083BF7894889583B78E7F83BF0FB6F89442 +:10592000A89580916000886180936000109260006B +:105930000FBE80916B04882361F00E941C25EFE468 +:10594000F3E08191811178C429E533E02E173F07F8 +:10595000C1F780916C04853009F4ABCF10925F04DD +:105960000E94E20F0E94AA0E0E94A0161092E70267 +:105970008091E602882349F08091770481608093CA +:10598000770460E086950E9451160E94290DEFCDA4 +:10599000C394FF0C37E0C31200CE0F5F1F4F0A30D5 +:1059A000110509F0F0CD8FEF8BAB8CAB1DAA0E94D7 +:1059B000F21B8160782F9FAB8EAB4BA95CA96DA9C0 +:1059C0008FA90E948A240ACE0E94F21B90931D0385 +:1059D00080931C0360E080E00E9482080E94AA0E6F +:1059E0008093F9020E94870E882331F14091F502DD +:1059F0005091F6026091F7027091F8022FB7F89477 +:105A00008091570490915804A0915904B0915A0480 +:105A10002FBF841B950BA60BB70B81339547A105B0 +:105A2000B10540F00E94800D80914F04882309F455 +:105A300056CE4DCE0E949B0D0E94870E882309F4FE +:105A4000D5C061E080E00E94820860E08CE791E0D0 +:105A50000E94731362E080E00E94820880917604C5 +:105A60000E94B30C823009F49BC008F090C08823D8 +:105A700009F496C0813009F499C065E080E00E9485 +:105A8000820860E08AE991E00E94731366E080E09A +:105A90000E9482086091F902669561708FE991E039 +:105AA0000E94731367E080E00E9482086091F9020F +:105AB0006095617084EA91E00E94731368E080E071 +:105AC0000E9482086091F90262FB662760F988EA09 +:105AD00091E00E9473137DA66CA64091F102509153 +:105AE000F2026091F3027091F4022FB7F894809162 +:105AF000570490915804A0915904B0915A042FBFB3 +:105B0000841B950BA60BB70B8D329140A105B105F7 +:105B100008F48ACF0E944A086093F1027093F2025F +:105B20008093F3029093F4028091F002811104C0FB +:105B300080916701811142C06DE080E00E9482087F +:105B400060E08DEA91E00E9473136AE080E00E94B9 +:105B5000820881E0809367018091EF0290E00196D6 +:105B6000817099278093EF0221E030E0281B390BE8 +:105B700040E6429FC001439F900D11242091EE0208 +:105B8000222351F1855F9B4F0E947A064DCF8330CF +:105B900089F0843009F071CF60E08EE891E003C0B5 +:105BA00060E082E891E00E94731367CF60E088E8CC +:105BB00091E0F9CF60E084E991E0F5CF6AE080E020 +:105BC0000E94820860E08DEA91E00E9473136BE00E +:105BD00080E00E948208C0CF2091ED02222319F0BC +:105BE000855B9C4FD1CF85579D4FCECF64E080E041 +:105BF0000E94820860E083EB91E00E94731365E0ED +:105C000080E00E94820860E089EB91E00E947313BB +:105C100069E080E00E9482088BEC94E0B5CF80912F +:105C20001B0361E070E081115ACD082F10E02B01B9 +:105C3000082E02C0440C551C0A94E2F7A901442125 +:105C40005521452B09F448C090911A0390FD46C098 +:105C50008295880F807680936A0198013695279502 +:105C60003695279520936D01815E80936B0110928C +:105C70006E0124E630E047E050E068E671E088E736 +:105C80000E943432892B09F02ACDA80175E0440F17 +:105C9000551F7A95E1F780911A0380FD2DC0425877 +:105CA0005B4F04E610E020E230E060E488E70E9409 +:105CB0005B32892B09F013CD0E949B0DC2018095A8 +:105CC000909540907C0450907D0448225922509237 +:105CD0007D0440927C0403CD8F5FA7CF880F880F8F +:105CE000880F80936A0110926D01895F80936B0128 +:105CF00083E080936E01BDCFEAEFF2E080E2DF0146 +:105D00001D928A95E9F7EEE0F2E0F9AFE8AF0AE01C +:105D100012E099249394A8ADB9AD2D91B9AFA8AF75 +:105D2000F80121908F01240E352E311CC1018258BB +:105D30009B4F1C01E22FF0E0E650FD4F30E020E0E9 +:105D400067E0A62EA21AB92C022E01C0BB0C0A9441 +:105D5000EAF7610190E0D6018D916D018B216A2DEA +:105D6000691B6770862E062E000C770BB82F01C0BA +:105D7000BB0F8A94EAF78B2E719561957109677054 +:105D8000772701C086956A95EAF7882A8081882A54 +:105D900080829F5F9830F9F62F5F3F4F3196283011 +:105DA000310571F6E2E1F2E028AD39ADE217F30713 +:105DB00009F0B1CF04E610E020E230E04AEF52E013 +:105DC00074CF45E00E94E30C20912C0330912D0309 +:105DD000281B390B30932D0320932C0345E0602FB3 +:105DE000812F0E94E30C20912A0330912B03281B62 +:105DF000390B30932B0320932A036CE273E087E383 +:105E000093E00E94C40C6AE273E088E393E00E948E +:105E1000C40C10923A03109239030DCD0197909360 +:105E200034038093330307CD81608093360384E08D +:105E30000E949B1384E190E0F2CF809142038F5F38 +:105E400080934203F8CC81E080FF0FC0E0915204C0 +:105E5000F0915304309749F082E08093240304804A +:105E6000F581E02D84E293E00995109226031092CB +:105E70002703109228031092290386E0E4E2F3E05E +:105E8000AEE1B3E001900D928A95E1F70E94F21B1A +:105E900090934103809340030E94AA0E9091430384 +:105EA000891731F00E94AA0E809343030E94A01626 +:105EB00080916C04843009F051CB83E08093E90039 +:105EC0008091E80082FF4ACB8091E80090E085FF56 +:105ED0000BC00E94DC0630E2E32EF12C8E010F5F36 +:105EE0001F4F8823E1F091E08091E8008B77809349 +:105EF000E800992309F432CBE981E150E33108F05D +:105F000071C0F0E0E450F94C0C9431358091F1000F +:105F1000D8018D938D01B1E0EB1AF10821F3809146 +:105F2000E80085FDF3CF8091E8008B778093E8004F +:105F30000E94DC06882399F3D6CF1A8289E08B83EE +:105F400011C08A81823009F48FC1833091F1813090 +:105F500009F048C00E944A080E9437356B837C8351 +:105F60008D839E8380916C04843009F0F7CA109170 +:105F7000E9001F709091EC00892F817090FD80E8FE +:105F8000182B82E08093E9008091E80080FF0DC02B +:105F900050E040E060E270E0CE0101960E940D0703 +:105FA0008091E8008E778093E8001F701093E900DD +:105FB000D5CADE011396EFE4F3E081918D9323E0DF +:105FC000E935F207D1F7CECF8A81823059F46B815F +:105FD0007C818D819E810E94373586E290E00E940F +:105FE0007135C0CF8FEF8983BDCF4C816B818A81A2 +:105FF0000E947A149827892798279E838D83B2CF91 +:106000000D811E811027012710278A81EB803EE039 +:10601000E39E700111249CE8899FE00CF11C11247F +:106020008C8190E0880F991FE80EF91E612FC7013F +:1060300087960E947135602FC7018896D0CF0E9445 +:10604000FE1390CF8A818138C1F060F4803809F066 +:1060500089CF20E04B8160917904809178040E947F +:106060003A1580CF8238E9F0833809F07BCF20E001 +:1060700040917A046C818B81F2CF60E08B810E9429 +:1060800051168B81811103C00E94CD0F6BCF80917F +:10609000770481608093770460E086950E945116B2 +:1060A00061CF8B8180937B045DCF8A81813899F0A9 +:1060B00030F4803809F056CF80917A0440CF82388E +:1060C00091F0833809F04ECF809178048B838091D2 +:1060D00079048C8347CF8091770480FF02C0869536 +:1060E0002ECF80E02CCF80917B0429CF6091770464 +:1060F000709178048091790490917A040E94281517 +:1061000031CF80E18A832ECF81E08A838DE117CF62 +:10611000CA80DB80DC24CD24DC248E010F5F1F4F7E +:10612000EC80E00EF12EF11CC6018D519D4F0E1535 +:106130001F0509F417CFADE1CA16A1E0DA0650F445 +:106140000E945D35F8018483BFEFCB1ADB0A0F5F35 +:106150001F4FEACFD80114961C92F6CF0A811B81FB +:10616000102701271027FE0131966F01EC80E00E09 +:10617000F12EF11CC8018D519D4FE016F10609F476 +:10618000F1CE0D31F1E01F0728F4D60114966C9181 +:106190000E947135BFEFCB1ADB0A0F5F1F4FEACFAA +:1061A0000E94EE13DFCE85E0ADCFCA80DB80DC2419 +:1061B000CD24DC248E010F5F1F4FEC80E00EF12E0A +:1061C000F11CC6018796E016F10609F4CBCEECEB84 +:1061D000CE16E2E0DE0658F40E945D35D801149632 +:1061E0008C93FFEFCF1ADF0A0F5F1F4FEACFF80142 +:1061F0001482F7CF0A811B811027012710279E01E7 +:106200002F5F3F4F6901EC80E00EF12EF11CC801B9 +:106210008796E016F10609F4A5CE0C3B32E0130791 +:1062200028F4D60114966C910E947135BFEFCB1AF9 +:10623000DB0A0F5F1F4FEBCF09BD19BD09B400FE8C +:10624000FDCF8091D8008F7D8093D8008091E000B1 +:1062500082608093E0008091E00081FDFCCF10928D +:106260005F040E94E20F75CB86E290E00E945D35EC +:106270001B821C821D828E8375CE1092B9008CE029 +:106280008093B80008959F92AF92BF92CF92DF9211 +:10629000EF92FF920F931F93CF93DF93B82EEB01F2 +:1062A0000E94F21B6C01EE24E394F12CC431D10561 +:1062B00060F025E0E22EF12CCF3FDC0731F0CE017B +:1062C00064E170E00E94FD347B0184EAA82E94E82A +:1062D000992E1092BC00A092BC000E94F21B8C016F +:1062E0008091BC0087FF0DC08091B900887F883005 +:1062F00039F18091B900887F803111F10FEF1FEFE4 +:1063000009C00E94F21B801B910B8E159F0540F364 +:106310000EEF1FEFCF3FDC07E1F2C6010E94E31B47 +:106320008C179D07B0F2C801DF91CF911F910F919B +:10633000FF90EF90DF90CF90BF90AF909F90089527 +:10634000B092BB009092BC000E94F21B8C01809125 +:10635000BC0087FF0AC08091B900887F883111F0A6 +:10636000803461F610E000E0DECF0E94F21B801B5B +:10637000910B8E159F0558F3CBCF0F931F93CF939F +:10638000DF93EB018093BB0084E88093BC000E9404 +:10639000F21B8C018091BC0087FF11C02091B900D5 +:1063A000287F81E090E0283211F490E080E0919520 +:1063B00081959109DF91CF911F910F910895CF3F62 +:1063C000DC0741F30E94F21B801B910B8C179D0789 +:1063D00008F38EEF9FEFEECF0F931F93CF93DF93D2 +:1063E000EC0184EC8093BC000E94F21B8C01809134 +:1063F000BC0087FF08C08091BB0090E0DF91CF9187 +:106400001F910F910895CF3FDC0789F30E94F21B83 +:10641000801B910B8C179D0750F38EEF9FEFEECFF3 +:106420000F931F93CF93DF93EC0184E88093BC001C +:106430000E94F21B8C018091BC0087FF08C08091F4 +:10644000BB0090E0DF91CF911F910F910895CF3F56 +:10645000DC0789F30E94F21B801B910B8C179D07B0 +:1064600050F38EEF9FEFEECFCF92DF92EF92FF923D +:106470000F931F93CF93DF936B018A017901B901C9 +:106480000E944331E6010C0D1D1DC017D10761F4B8 +:1064900024E92093BC00DF91CF911F910F91FF90D1 +:1064A000EF90DF90CF90089597FDF2CFB7018991DB +:1064B0000E94BD31EACFCF92DF92EF92FF920F930D +:1064C0001F93CF93DF93C62F6A017901B8010E9411 +:1064D000433197FD0CC0B8018C2F0E94BD31E601FD +:1064E000EC0CFD1CCE15DF0511F097FF0CC024E964 +:1064F0002093BC00DF91CF911F910F91FF90EF90FF +:10650000DF90CF900895B80189910E94BD31EACF04 +:10651000CF92DF92EF92FF920F931F93CF93DF936F +:10652000F82EE62EEA016901B8010E94433197FD79 +:1065300015C0B8018E2D0E94BD3197FD0FC0B80166 +:106540008F2D81600E944331F12CE12C21E0C21A91 +:10655000D108EC14FD0400F597FF11C024E9209345 +:10656000BC001816190614F490E080E0DF91CF917A +:106570001F910F91FF90EF90DF90CF900895C80189 +:106580000E94EC3197FD04C0FE01EE0DFF1D8083DB +:106590002FEFE21AF20ADDCF97FDE0CFC8010E948B +:1065A000103297FDDBCFCC0DDD1D8883D7CF84E97A +:1065B0008093BC0008958EE14A9B02C08150E1F7B0 +:1065C0004A9BFECF08955A9880E28A95F1F75A9A2D +:1065D0000895FC013BE03A95F1F798E020E080E077 +:1065E00031E040E14A95F1F7880F4A9B02C0816093 +:1065F000232742E04A95F1F7000040E14A95F1F780 +:10660000915079F790E19A95F1F799B132E03A9586 +:10661000F1F7000040E14A95F1F792FB992790F9D4 +:1066200092272081920F90830895EF92FF920F930B +:106630001F93CF93DF930F92CDB7DEB719828C01F2 +:106640007C01E60EF11C0E151F0561F481E09981B5 +:10665000911180E00F90DF91CF911F910F91FF90EA +:10666000EF9008950E94DB32CE0101960E94E9323C +:10667000F80181938F01E7CF529A5A9A0895529860 +:106680005A9AEA9AE9E6F0E080818F7C8083089547 +:106690006150770B91E001C0990F6A95EAF720E00D +:1066A00031E0911108C0222391F05A9A80E28A9534 +:1066B000F1F75A980895492F482339F05A9A232719 +:1066C00040E24A95F1F79695ECCF5A98F9CF5A984F +:1066D000EDCFFF920F931F93CF93DF93EC018C01CB +:1066E000060F111DC017D10731F4DF91CF911F9113 +:1066F0000F91FF900895F9900E94E33268E08F2D8A +:106700000E944833EFCF1F920F920FB60F921124C1 +:10671000EF92FF920F931F932F933F934F935F93AB +:106720006F937F938F939F93AF93BF93EF93FF9359 +:10673000CF93DF930F92CDB7DEB719820E94DB3281 +:10674000CE0101960E94E932A82FA695A695A6959E +:10675000282F229525709A2F9570290F922F9370CC +:1067600026952695920F982797708981982B09F086 +:1067700075C0A83008F072C080E18A95F1F75A9A86 +:10678000529AB2E0BA95F1F700C05A98EA2EF12C6D +:10679000EAE0AE9FD0011124AF5FBE4F1896ED9195 +:1067A000FC9119973097B1F06091F8017091F9015F +:1067B00016962D913C911797260F371F13968D91A2 +:1067C0009C911497680F791F15964C911597129606 +:1067D0008C9109958AE08E9DF0018F9DF00D11241A +:1067E000EF5FFE4F6581662351F02091F8013091F3 +:1067F000F90186819781820F931F0E9469330E945D +:10680000E332F0E1FA95F1F75A9852985A9A80E1FA +:106810008A95F1F78AE08E9D80018F9D100D1124DD +:106820000F5F1E4FD80112966C911297662371F17B +:106830002091F8013091F90113968D919C91820F6E +:10684000931F0E941533D801ED91FC91882311F01C +:1068500088E001C082E080830E94DB320F90DF91EC +:10686000CF91FF91EF91BF91AF919F918F917F91C8 +:106870006F915F914F913F912F911F910F91FF90D9 +:10688000EF900F900FBE0F901F901895ED91FC9117 +:10689000DFCF0F931F93CF93DF93EC0108970CF09A +:1068A000A9C08AE08C9FF0018D9FF00D1124EF5F4D +:1068B000FE4F80819181892B09F49CC0F894529AF3 +:1068C0005A9885E08A95F1F700008C2F869585709F +:1068D0009C2F9570890F982F937086958695890FB8 +:1068E0008E0193E0000F111F9A95E1F7082B0E948B +:1068F000E33200C068E0802F0E944833A0E1AA95EF +:10690000F1F752985A9A4A9B27C087E090E04A993B +:1069100025C08AE08C9F80018D9F100D11240F5F90 +:106920001E4FF80165816623A1F12091F801309195 +:10693000F90186819781820F931F0E94153381117F +:1069400028C0529A5A9AD801ED91FC9182E0808336 +:10695000789482E090E016C000C0D5CF0197B9F4DA +:10696000529A5A9A8AE08C9FF0018D9FF00D112463 +:10697000EF5FFE4F0190F081E02D81E080837894FD +:1069800081E090E0DF91CF911F910F91089500C0B9 +:10699000BECF0E94DB32B0E2BA95F1F75A98529A14 +:1069A000E0E1EA95F1F78AE08C9FF0018D9FF00D10 +:1069B0001124EF5FFE4F6281662351F02091F801B0 +:1069C0003091F90183819481820F931F0E94693372 +:1069D0000E94E3328AE08C9FF0018D9FF00D11241C +:1069E000EF5FFE4F0190F081E02D1082789490E0EF +:1069F00080E0C8CF84E090E0C5CFAA1BBB1B51E16B +:106A000007C0AA1FBB1FA617B70710F0A61BB70B1E +:106A1000881F991F5A95A9F780959095BC01CD01C3 +:106A20000895991B79E004C0991F961708F0961BEA +:106A3000881F7A95C9F78095089597FB072E16F45D +:106A4000009407D077FD09D00E94FD3407FC05D0E3 +:106A50003EF4909581959F4F0895709561957F4F75 +:106A60000895EE0FFF1F0590F491E02D099469271A +:106A7000962769277827872778270895FB01DC0167 +:106A800002C005900D9241505040D8F70895FB0187 +:106A9000DC0104C08D910190801921F441505040D7 +:106AA000C8F7881B990B0895FB01DC0102C0019017 +:106AB0000D9241505040D8F70895F999FECF92BDFC +:106AC00081BDF89A992780B50895A6E1B0E044E029 +:106AD00050E00C949735A8E1B0E042E050E00C940F +:106AE0009735262FF999FECF92BD81BDF89A01976F +:106AF00000B4021639F01FBA20BD0FB6F894FA9A06 +:106B0000F99A0FBE08950396272F0E9472350E94AE +:106B10007135252F0E947235242F0C947235019601 +:106B2000272F0E9472350C947135DC01CB01FC01DA +:106B3000F999FECF06C0F2BDE1BDF89A319600B4D6 +:106B40000D9241505040B8F708950E94E73508F47F +:106B500081E00895E89409C097FB3EF490958095F4 +:106B6000709561957F4F8F4F9F4F9923A9F0F92F13 +:106B700096E9BB279395F695879577956795B79591 +:106B8000F111F8CFFAF4BB0F11F460FF1BC06F5F77 +:106B90007F4F8F4F9F4F16C0882311F096E911C089 +:106BA000772321F09EE8872F762F05C0662371F0AA +:106BB00096E8862F70E060E02AF09A95660F771FBE +:106BC000881FDAF7880F9695879597F90895990F9A +:106BD0000008550FAA0BE0E8FEEF16161706E807A7 +:106BE000F907C0F012161306E407F50798F0621BC8 +:106BF000730B840B950B39F40A2661F0232B242B9D +:106C0000252B21F408950A2609F4A140A6958FEFBB +:106C1000811D811D08950E941E360C948F360E949E +:106C2000813638F00E94883620F0952311F00C94BC +:106C300078360C947E3611240C94C3360E94A0360C +:106C400070F3959FC1F3950F50E0551F629FF001BF +:106C5000729FBB27F00DB11D639FAA27F00DB11DD8 +:106C6000AA1F649F6627B00DA11D661F829F222761 +:106C7000B00DA11D621F739FB00DA11D621F839FE8 +:106C8000A00D611D221F749F3327A00D611D231FBE +:106C9000849F600D211D822F762F6A2F11249F570C +:106CA00050409AF0F1F088234AF0EE0FFF1FBB1F0F +:106CB000661F771F881F91505040A9F79E3F5105CE +:106CC00080F00C9478360C94C3365F3FE4F3983E22 +:106CD000D4F3869577956795B795F795E7959F5F78 +:106CE000C1F7FE2B880F911D9695879597F908950A +:106CF00097F99F6780E870E060E008959FEF80EC6F +:106D0000089500240A941616170618060906089511 +:106D100000240A9412161306140605060895092E77 +:106D20000394000C11F4882352F0BB0F40F4BF2BE6 +:106D300011F460FF04C06F5F7F4F8F4F9F4F089526 +:106D400057FD9058440F551F59F05F3F71F047951C +:106D5000880F97FB991F61F09F3F79F08795089501 +:106D6000121613061406551FF2CF4695F1DF08C020 +:106D7000161617061806991FF1CF8695710561053D +:106D800008940895E894BB2766277727CB0197F9E5 +:106D90000895F894FFCFD210FA104D11FA104D114A +:106DA0002D1165114D1162126F12FA14FA140315A8 +:106DB00003150515031503150315FA14FA140A151E +:106DC000031503150A154F1CC51CC81CDC1CDF1C51 +:106DD000F21CFB1C1F1D651D971DAB1D311D541D95 +:106DE000ED20ED204621462178212021202120215F +:106DF00092210322132213229D2FA12FE42FF52F7E +:106E000000301F30223055307630F22FF22F813093 +:0E6E100084308830AE30D030D330D530FA30F8 +:106E1E0001380200000001000000003802000000EE +:106E2E0005010000003802000000010600000038D5 +:106E3E0002000000010700000038020408000000F4 +:106E4E000000003802090C000000000000380201AA +:106E5E001500000000000036323331F7F6676697F2 +:106E6E00C6343500000000000180004708160EF5FC +:106E7E000DF10DED0DF4F5010021007F2200030050 +:106E8E004A004A4A01F6F731333236674C415945CA +:106E9E00520042617365200047616D6520005261AA +:106EAE00697365004C6F776572004C4F434B00431E +:106EBE00617073004E756D005363726C002020205C +:106ECE00202000534F4C415200544D5053540081DA +:106EDE008283E200E900EA00B500B600B700CD00FB +:106EEE008301CC008A019201940121022302240223 +:106EFE002502260227022A02B300B4006F0070009A +:106F0E000603060806010606AF0200FF0100010097 +:106F1E0000FFFF0000010001FF000008101818100C +:106F2E0008000001020202020202020202024022D4 +:0E6F3E007B71014F01D400D00BE90B090C0050 :00000001FF From 93194d47f3839daf5cd7ac302f19889d8ee68a7c Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 25 Nov 2021 19:58:44 -0500 Subject: [PATCH 58/94] Add standing timer, update LED code, code optimizations --- keyboards/solartempest/ps17/config.h | 55 ++++--- .../solartempest/ps17/keymaps/via/config.h | 2 +- .../solartempest/ps17/keymaps/via/keymap.c | 152 +++++++++++++----- .../solartempest/ps17/keymaps/via/rules.mk | 2 +- .../solartempest/ps17/ps17 VIA keymap.json | 5 + .../solartempest/ps17/ps17 VIA layout.json | 2 +- keyboards/solartempest/ps17/ps17.c | 27 ++-- keyboards/solartempest/ps17/readme.md | 5 +- keyboards/solartempest/ps17/rules.mk | 33 ++-- 9 files changed, 192 insertions(+), 91 deletions(-) diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h index 5baf2cc7f6b7..98a8933f6b37 100644 --- a/keyboards/solartempest/ps17/config.h +++ b/keyboards/solartempest/ps17/config.h @@ -36,18 +36,34 @@ #define MATRIX_ROWS 11 //Numpad actually has 6 rows. 5 rows were added for underglow RGB matrix to work together #endif #define MATRIX_COLS 4 +#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 +#define MATRIX_COL_PINS { F6, F7, D3, D6 } +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 5 //Default is 5, 0 if not needed. // Encoder matrix #define ENCODERS_PAD_A { D1 } #define ENCODERS_PAD_B { D2 } -//#define ENCODER_DIRECTION_FLIP -#define MATRIX_ROW_PINS { F0, B4, B5, B6, C6, C7 } //Rotary encoder SPST is on F0,F7 -#define MATRIX_COL_PINS { F6, F7, D3, D6 } -#define UNUSED_PINS +// NKRO Settings +#ifdef NKRO_ENABLE + #define FORCE_NKRO //Force NKRO if enabled. +#endif -// COL2ROW or ROW2COL -#define DIODE_DIRECTION COL2ROW +// Combo settings +#ifdef COMBO_ENABLE + #define COMBO_COUNT 6 //Number of tap combos used + #define COMBO_TERM 400 //Default combo time is 200ms +#endif + +// Tapping settings +#define TAP_CODE_DELAY 10 +#define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer +#define TAPPING_TERM 160 //Tapping duration in ms + +// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap. +#define LOCKING_SUPPORT_ENABLE +#define LOCKING_RESYNC_ENABLE // Locking resynchronize hack // For LED status indicators #define LED_NUM_LOCK_PIN D0 @@ -57,16 +73,16 @@ #define RGB_DI_PIN B7 #ifdef RGBLIGHT_ENABLE - #define RGBLED_NUM 28 // 17 key + 11 underglow for RGBLIGHT + #define RGBLED_NUM 28 //17 key + 11 underglow for RGBLIGHT #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 - #define RGBLIGHT_DEFAULT_VAL 40 // default brightness on clearing EEPROM - #define RGBLIGHT_LIMIT_VAL 180 // brightness level max is 255 - #define RGBLIGHT_LAYERS + #define RGBLIGHT_DEFAULT_VAL 40 //Default brightness on clearing EEPROM + #define RGBLIGHT_LIMIT_VAL 180 //Brightness level max is 255 + #define RGBLIGHT_LAYERS //Enable layer light indicators #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF - #define RGBLIGHT_SLEEP // if defined, RGB lighting off when host is sleeping - #define RGBLIGHT_ANIMATIONS + #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) + #define RGBLIGHT_ANIMATIONS //Very memory intensive (+2604) //RGB LED Conversion macro from physical array to electric array //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping @@ -93,7 +109,7 @@ 27, 26, 25, 24, 23 ) #endif -#ifdef RGB_MATRIX_ENABLE // For dynamic/reactive RGB Matrix effects +#ifdef RGB_MATRIX_ENABLE // For reactive RGB Matrix effects #define DRIVER_LED_TOTAL 28 // The number of LEDs connected for matrix, 17 key + 11 underglow #define RGB_MATRIX_CENTER { 126, 126 }; #define RGB_MATRIX_KEYPRESSES @@ -130,16 +146,3 @@ #define DISABLE_RGB_MATRIX_SOLID_SPLASH #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -#define COMBO_COUNT 6 //Number of tap combos used -#define COMBO_TERM 400 //Default combo time is 200ms - -#define TAPPING_TERM 200 //Tap dance time diff --git a/keyboards/solartempest/ps17/keymaps/via/config.h b/keyboards/solartempest/ps17/keymaps/via/config.h index 4bbacd9a507b..9083208b5fc3 100644 --- a/keyboards/solartempest/ps17/keymaps/via/config.h +++ b/keyboards/solartempest/ps17/keymaps/via/config.h @@ -18,5 +18,5 @@ #pragma once -// Set 10 layers for VIA +// Set number of layers for VIA (+30 per layer) #define DYNAMIC_KEYMAP_LAYER_COUNT 10 diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c index 8077ca9122c8..d0383cdc91a4 100644 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -26,11 +26,17 @@ bool is_alt_tab_active = false; // Super Alt Tab Code uint16_t alt_tab_timer = 0; -bool spam_arrow; +bool spam_arrow; // Spam F24 or other keys like arrows Code uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) +uint16_t spam_interval = 1000; // (1000ms == 1s) + +bool teams_muted; // Teams muted simple LED indicator + +bool is_stretch_active = false; // Stretch Timer Code +bool is_stretch_time = false; +uint16_t stretch_timer = 0; +uint16_t stretch_minutes = 0; -bool teams_muted; #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. ATABF = USER00, //Alt tab forwards @@ -38,7 +44,8 @@ bool teams_muted; NMR, //Move window to monitor on right NML, //Move window to monitor on left SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status + TEAMSMUTE, //MS Teams mute shortcut and simple LED status + STRT //Stretch Timer }; #else enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. @@ -47,7 +54,8 @@ bool teams_muted; NMR, //Move window to monitor on right NML, //Move window to monitor on left SPAMARROW, //Spam arrows. Updated to send F24 instead, which is more convenient. - TEAMSMUTE //MS Teams mute shortcut and simple LED status + TEAMSMUTE, //MS Teams mute shortcut and simple LED status + STRT //Stretch Timer }; #endif @@ -76,7 +84,7 @@ bool teams_muted; }; #endif -#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not VIA compatible. +#ifdef TAP_DANCE_ENABLE// Tap Dance definitions. Not compatible with VIA. enum { TD_MINUS_NUMLOCK, }; @@ -185,22 +193,57 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void matrix_scan_user(void) { //run whenever user matrix is scanned - if (is_alt_tab_active) { +void matrix_scan_user(void) { + if (is_alt_tab_active) { //Super alt tab code if (timer_elapsed(alt_tab_timer) > 1000) { unregister_code(KC_LALT); is_alt_tab_active = false; } } if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); + spam_timer = timer_read(); //Spam arrow code tap_code(KC_F24); } + + #ifdef RGBLIGHT_ENABLE + if (is_stretch_active && !is_stretch_time) { //Stretch timer code + if(timer_elapsed(stretch_timer)>60000) { //1 minute in ms has passed. Timer is uint16 max. + stretch_minutes++; + stretch_timer = timer_read(); + } + if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. 30 minutes is a good interval. + rgblight_set_effect_range(0, 28); + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + is_stretch_time = true; + stretch_minutes = 0; + } + } + + if(!is_stretch_time){ //Update LED status indicators when stretch animation is not playing. + if(is_stretch_active==1) { + rgblight_sethsv_at(0,230,100,8); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,9); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,13); //Set LED to orange to indicate timer is on + } + + if(teams_muted==1) { //Check and display teamsmuted status + rgblight_sethsv_at(15,255,120,18); + rgblight_sethsv_at(15,255,120,22); + } + + if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on + rgblight_sethsv_at(15,255,120,24); + rgblight_sethsv_at(15,255,120,25); + rgblight_sethsv_at(15,255,120,26); + rgblight_sethsv_at(15,255,120,27); + } + } + #endif }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { //For keycode overrides - case ATABF: //Alt tab forwards + case ATABF: //Super alt tab forwards if (record->event.pressed) { if (!is_alt_tab_active) { is_alt_tab_active = true; @@ -212,7 +255,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_TAB); } return true; - case ATABR: //Alt tab reverse + case ATABR: //Super alt tab reverse if (record->event.pressed) { if (!is_alt_tab_active) { is_alt_tab_active = true; @@ -248,26 +291,26 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; - case SPAMARROW: // Moves arrow up and down + case SPAMARROW: // Spam F24 or other keys like arrows if (record->event.pressed) { spam_arrow ^= 1; spam_timer = timer_read(); - if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on - rgblight_sethsv_at(15,255,120,24); - rgblight_sethsv_at(15,255,120,25); - rgblight_sethsv_at(15,255,120,26); - rgblight_sethsv_at(15,255,120,27); - } - else { - rgblight_sethsv_at(180,255,120,24); //Set LEDs back to purple, assuming on that coloured layer - rgblight_sethsv_at(180,255,120,25); - rgblight_sethsv_at(180,255,120,26); - rgblight_sethsv_at(180,255,120,27); - } + #ifdef RGBLIGHT_ENABLE + if(spam_arrow==1) { //Change LED colour on bottom row and underglow to orange to indicate on + rgblight_sethsv_at(15,255,120,24); + rgblight_sethsv_at(15,255,120,25); + rgblight_sethsv_at(15,255,120,26); + rgblight_sethsv_at(15,255,120,27); + } + else { + rgblight_set_effect_range(0, 28); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set back to layer colours + } + #endif } return false; - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour + case TEAMSMUTE: //Mute MS teams shortcut and simply change LED for key 1 colour if (record->event.pressed) { register_code(KC_LCTRL); register_code(KC_LSFT); @@ -276,23 +319,60 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_LSFT); unregister_code(KC_LCTRL); teams_muted ^= 1; - if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted - rgblight_sethsv_at(15,255,120,18); - rgblight_sethsv_at(15,255,120,22); - } - else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); - } + #ifdef RGBLIGHT_ENABLE + if(teams_muted==1) { //Change LED colour on LEDs for key 1 and underglow to orange to indicate muted + rgblight_sethsv_at(15,255,120,18); + rgblight_sethsv_at(15,255,120,22); + } + else { + rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer + rgblight_sethsv_at(175,255,120,22); + } + #endif } return true; + + + case STRT: //Stretch timer + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + is_stretch_active ^= 1; + stretch_timer = timer_read(); + //rgblight_sethsv_at(75,215,80,41); + if(is_stretch_time==1) { //Check if it is time to stretch, then dismiss the animation. + rgblight_set_effect_range(0, 28); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + rgblight_sethsv_at(0,230,100,8); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,9); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,13); //Set LED to orange to indicate timer is on + is_stretch_active = 1; + is_stretch_time = 0; + stretch_minutes = 0; + } + else if(is_stretch_active==1) { + rgblight_set_effect_range(0, 28); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); + rgblight_sethsv_at(0,230,100,8); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,9); //Set LED to orange to indicate timer is on + rgblight_sethsv_at(0,230,100,13); //Set LED to orange to indicate timer is on + is_stretch_time = 0; + stretch_minutes = 0; + } + else { + rgblight_set_effect_range(0, 28); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set back to layer colours -- CHECK LAYERS RESET LED STATUS + is_stretch_time = 0; + stretch_minutes = 0; + } + #endif + } + return false; } return true; } - -void keyboard_post_init_user(void) { //run as last task in keyboard init +void keyboard_post_init_user(void) { #ifdef RGB_MATRIX_ENABLE //NOTE 1: Layer lighting doesn't work in RGB matrix mode //NOTE 2: VIA lighting tab doesn't work and might crash in RGB matrix mode @@ -329,7 +409,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,100); - //You can selectively decrease certain LEDs if you are have a clear acrylic case and the shine-through bothers you. Rgblight_sethsv_at() can be used here for those LEDs (0, 2, 4, 14, and 23). Otherwise some black tape on the acrylic plate or foam underneath the FR4 will do the trick. + //You can selectively decrease certain LEDs if you are have a clear acrylic case and the shine-through is bothersome. Rgblight_sethsv_at() can be used here for those LEDs (0, 2, 4, 14, and 23). Otherwise some black tape on the acrylic plate or foam underneath the FR4 plate will do the trick. break; case 1: rgblight_sethsv_noeeprom(5,255,100); diff --git a/keyboards/solartempest/ps17/keymaps/via/rules.mk b/keyboards/solartempest/ps17/keymaps/via/rules.mk index 1e5b99807cb7..d50c3fb8e377 100644 --- a/keyboards/solartempest/ps17/keymaps/via/rules.mk +++ b/keyboards/solartempest/ps17/keymaps/via/rules.mk @@ -1 +1 @@ -VIA_ENABLE = yes +VIA_ENABLE = yes #Enable VIA (+1556) diff --git a/keyboards/solartempest/ps17/ps17 VIA keymap.json b/keyboards/solartempest/ps17/ps17 VIA keymap.json index d906b47dbb7a..7df873bcce6b 100644 --- a/keyboards/solartempest/ps17/ps17 VIA keymap.json +++ b/keyboards/solartempest/ps17/ps17 VIA keymap.json @@ -34,6 +34,11 @@ "name": "Teams Muted", "title": "Simply Change LED of 1 to show if muted or not", "shortName": "TM" + }, + { + "name": "Stretch Timer", + "title": "Activate Stretch Timer", + "shortName": "STRT" } ], "layouts": diff --git a/keyboards/solartempest/ps17/ps17 VIA layout.json b/keyboards/solartempest/ps17/ps17 VIA layout.json index bdebf13b15c1..8716ead03f2d 100644 --- a/keyboards/solartempest/ps17/ps17 VIA layout.json +++ b/keyboards/solartempest/ps17/ps17 VIA layout.json @@ -67,7 +67,7 @@ "C(S(KC_TAB))", "KC_UP", "C(KC_TAB)", - "KC_CAPS", + "USER06", "KC_LEFT", "KC_DOWN", "KC_RGHT", diff --git a/keyboards/solartempest/ps17/ps17.c b/keyboards/solartempest/ps17/ps17.c index b310548fcdbf..9ec609d6b4dd 100644 --- a/keyboards/solartempest/ps17/ps17.c +++ b/keyboards/solartempest/ps17/ps17.c @@ -19,20 +19,29 @@ #include "ps17.h" bool encoder_update_user(uint8_t index, bool clockwise) { // QMK encoder functionality #ifdef VIA_ENABLE //Add in VIA setting of rotary encoder keymap - if (index == 0) { // First encoder - if (clockwise) { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); - } - else { - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); - action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); - } + if (index == 0) { //First encoder + if (clockwise) { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = true, .time = (timer_read() | 1) }); //Time is 1 tick otherwise empty event + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 0}, .pressed = false, .time = (timer_read() | 1) }); + } + else { + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = true, .time = (timer_read() | 1) }); + action_exec((keyevent_t){.key = (keypos_t){.row = 0, .col = 2}, .pressed = false, .time = (timer_read() | 1) }); + } + } + #else //Assign rotary encoder function here if VIA not enabled + if (index == 0) { /* First encoder */ + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); } + } #endif return true; } + #ifdef RGB_MATRIX_ENABLE //Add in addressable LED underglow support with physical locations led_config_t g_led_config = { { //Key matrix to LED index diff --git a/keyboards/solartempest/ps17/readme.md b/keyboards/solartempest/ps17/readme.md index bd9504222899..f6a82d203a20 100644 --- a/keyboards/solartempest/ps17/readme.md +++ b/keyboards/solartempest/ps17/readme.md @@ -15,11 +15,12 @@ For detailed instructions on using VIA and flashing, please refer to the section - Remappable rotary encoder controls volume up/down/mute. - Allows for remapping of per-layer rotary encoder functions in VIA. - VIA support included by default. -- RGB underglow and matrix support and remapped to physical locations (nicer gradient and effects). +- RGB underglow and matrix support and remapped to physical locations for nicer gradient and effects. - Adds custom layer lighting with custom gradients for each. - Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. - Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. -- Adds key combo functionality for backspace, delete, and arrow keys. +- Custom macro key in VIA for Stretch Timer. It animates the LEDs after 30 minutes as a reminder to stand up and stretch. Push to dismiss. +- Adds key combo functionality for backspace, delete, and arrow keys. Plus+8/9 along with Enter+4/5/6/8. ## Make and Flashing diff --git a/keyboards/solartempest/ps17/rules.mk b/keyboards/solartempest/ps17/rules.mk index 35a150e0997b..4e6a51aa5994 100644 --- a/keyboards/solartempest/ps17/rules.mk +++ b/keyboards/solartempest/ps17/rules.mk @@ -5,19 +5,22 @@ MCU = atmega32u4 BOOTLOADER = atmel-dfu # Build Options -# change yes to no to disable -# +# Comment out to disable the options. -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration -CONSOLE_ENABLE = no # Console for debug -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -NKRO_ENABLE = yes # USB Nkey Rollover -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -RGB_MATRIX_ENABLE = no # RGB matrix for individual LED control -RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver -UNICODE_ENABLE = yes # Unicode -ENCODER_ENABLE = yes # For encoder -LTO_ENABLE = yes # Reduce firmware size -COMBO_ENABLE = yes # Combos -TAP_DANCE_ENABLE = no # Tap dance +CONSOLE_ENABLE = no # Console for debug (+4686) +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration (+644) +MAGIC_ENABLE = no # Save space by not PROCESS_MAGIC, which is bootmagic with out the boot (+634) +GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) +SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) +LTO_ENABLE = yes # Save space by link time optimization + +MOUSEKEY_ENABLE = yes # Mouse keys (+1482) +EXTRAKEY_ENABLE = yes # Audio control and System control (+450) +NKRO_ENABLE = yes # NKRO (+328) +RGBLIGHT_ENABLE = yes # RGB lighting (+3826) +RGB_MATRIX_ENABLE = no # RGB matrix for reactive effects (-1068) +RGB_MATRIX_DRIVER = WS2812 # Addressable LED strand driver +UNICODE_ENABLE = yes # Unicode +ENCODER_ENABLE = yes # Rotary encoders (+1112) +COMBO_ENABLE = yes # Tap combo chording (+952) +TAP_DANCE_ENABLE = no # Tap dance (+1008). Not VIA compatible. From d66cd5a0d7020d9e7cd07e9fdaafec842225b4ab Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 25 Nov 2021 20:01:35 -0500 Subject: [PATCH 59/94] Update firmware for standing timer, code optimizations --- .../ps17/solartempest_ps17_via.hex | 2477 ++++++++--------- 1 file changed, 1228 insertions(+), 1249 deletions(-) diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index de3de60dfe06..1ebdd82124ae 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -1,9 +1,9 @@ :100000000C949E030C94E5030C94E5030C94E50317 :100010000C94E5030C94E5030C94E5030C94E503C0 -:100020000C94E5030C94E5030C94F6260C94B2268C -:100030000C94F1270C94E5030C94E5030C94E50370 +:100020000C94E5030C94E5030C9434260C94F02511 +:100030000C942F270C94E5030C94E5030C94E50332 :100040000C94E5030C94E5030C94E5030C94E50390 -:100050000C94E5030C94CD270C94E5030C94E50374 +:100050000C94E5030C940B270C94E5030C94E50336 :100060000C94E5030C94E5030C94E5030C94E50370 :100070000C94E5030C94E5030C94E5030C94E50360 :100080000C94E5030C94E5030C94E5030C94E50350 @@ -115,21 +115,21 @@ :10072000370000001203410054004C0041004E000D :1007300054004900530000000403090411241FBEA3 :10074000CFEFDAE0DEBFCDBF04B603FE27C0809155 -:10075000940390919503A0919603B09197038730ED -:10076000904BA740B04BD1F4109294031092950394 -:10077000109296031092970314BE84B7877F84BFAC +:100750009A0390919B03A0919C03B0919D038730D5 +:10076000904BA740B04BD1F410929A0310929B0388 +:1007700010929C0310929D0314BE84B7877F84BFA0 :100780000FB6F894A895809160008861809360000E :10079000109260000FBEE0E0F8E3099511E0A0E0E0 -:1007A000B1E0E4ECFEE502C005900D92A43CB10777 -:1007B000D9F723E0A4ECB1E001C01D92A439B2073F -:1007C000E1F70E9418280C94292F0C940000E8ED02 +:1007A000B1E0EEE7FDE502C005900D92A83CB1076F +:1007B000D9F723E0A8ECB1E001C01D92AA39B20735 +:1007C000E1F70E9456270C947F2E0C940000E8ED70 :1007D000F0E080818E7F80831092E2001092DA0038 :1007E0001092E100A0EEB0E08C9181608C9380814A :1007F0008F77808319BCA7EDB0E08C918E7F8C93AE -:1008000080818F7E80831092070308952091E400F9 +:1008000080818F7E80831092680308952091E40098 :100810003091E50095E6A9012091EC00822F8170CE :1008200020FF06C08091E80080FF06C080E00895A8 -:100830002091E80022FD1AC080912C03882389F0C2 +:100830002091E80022FD1AC080918E03882389F060 :10084000853089F08091EB0085FD0FC02091E40098 :100850003091E50042175307F9F29150E1F684E038 :10086000089582E0089583E0089581E00895EF926D @@ -138,9 +138,9 @@ :10089000E8008E778093E8000E940604882399F38D :1008A000C82F08C0F70181917F018093F1000150AA :1008B000110949F78C2FCF911F910F91FF90EF9065 -:1008C000089580912E0387FF13C08091E80082FF76 +:1008C00008958091900387FF13C08091E80082FF14 :1008D00006C08091E8008B778093E80004C0809187 -:1008E0002C038111F2CF089580912C038823D9F332 +:1008E0008E038111F2CF089580918E038823D9F36E :1008F0008091E80080FFF8CF8091E8008E77ECCF00 :10090000982F9093E900242F762F50E0891731F02B :100910007091EC002091ED005091F00021FD07C096 @@ -151,56 +151,56 @@ :1009600080E00895CF92DF92EF92FF920F931F9352 :10097000CF93DF93C8EDD0E088818F7E8883E7ED49 :10098000F0E080818160808384E082BF81E0809399 -:10099000070388818E7F888302EE10E0F8011082C1 +:10099000680388818E7F888302EE10E0F801108260 :1009A0001092DA0081EEC82ED12CF60110828881D7 :1009B0008F77888388818068888388818F7D88830A -:1009C00019BC10922C0310922D0310922B0310923D -:1009D0002A0390EEE92EF12CF70180818B7F808332 +:1009C00019BC10928E0310928F0310928D03109217 +:1009D0008C0390EEE92EF12CF70180818B7F8083D0 :1009E00088818160888342E060E080E00E9480042A :1009F000F60180818E7F8083F80180818160808311 :100A0000808188608083F70180818E7F80838881E8 :100A100080618883DF91CF911F910F91FF90EF90BC -:100A2000DF90CF900895FC018091340390913503BD +:100A2000DF90CF900895FC018091960390919703F9 :100A300086179707A0F06115710529F49091E800D9 :100A40009E779093E80090E06115710551F4911143 :100A500008C08091E80082FF34C080E00895BC01A6 -:100A6000F2CF80912C038823C1F18530C1F18091B0 +:100A6000F2CF80918E038823C1F18530C1F180914E :100A7000E80083FD30C08091E80082FDEACF8091DC :100A8000E80080FFE1CF8091F3002091F200382F41 :100A90006115710519F02830310558F091E02830C2 :100AA000310509F090E02091E8002E772093E800CE :100AB000CBCF81918093F100615071092F5F3F4F3F -:100AC000E7CF80912C03882341F0853041F080915D +:100AC000E7CF80918E03882341F0853041F08091FB :100AD000E80083FFBECF81E0089582E0089583E0BF -:100AE00008958091090308959C014FB7F89480916F -:100AF000FE029091FF02A0910003B09101034FBF4D -:100B0000821B930B08952FB7F8948091FE02909169 -:100B1000FF02A0910003B09101032FBF089520911F -:100B2000FB023091FC022817390771F09093FC0208 -:100B30008093FB02E091F902F091FA02309721F0E4 -:100B40000084F185E02D099408952091F7023091F9 -:100B5000F8022817390771F09093F8028093F70292 -:100B6000E091F902F091FA02309721F00680F781C6 -:100B7000E02D09940895E091F902F091FA0230977E +:100AE000089580916B0308959C014FB7F89480910D +:100AF0005F0390916003A0916103B09162034FBFC7 +:100B0000821B930B08952FB7F89480915F03909107 +:100B10006003A0916103B09162032FBF08952091FB +:100B20005C0330915D032817390771F090935D03E2 +:100B300080935C03E0915A03F0915B03309721F0BE +:100B40000084F185E02D0994089520915803309197 +:100B500059032817390771F090935903809358036C +:100B6000E0915A03F0915B03309721F00680F78102 +:100B7000E02D09940895E0915A03F0915B033097BA :100B800021F00190F081E02D099480E00895DC01CE -:100B90006091F3028091F402962F891301C00895A9 -:100BA000292F30E0F901EE0FFF1FE551FD4F408185 +:100B90006091540380915503962F891301C00895E5 +:100BA000292F30E0F901EE0FFF1FE45BFC4F40817D :100BB00051814A175B07A1F487E08A9FA0018B9FB0 -:100BC000500D1124485E5E4F81E0FA018483961334 -:100BD000E6CF2F5F3F4F237033272093F302089512 -:100BE0002F5F3F4F922F9370D8CF109288021092B0 -:100BF0008702E8E1F1E08581811102C0148216824A -:100C0000379681E0E234F807B1F70895FA018111CF -:100C100001C0FB010994089580918C03982F9E7F59 -:100C200061F48170826080938C0380918F03853B97 -:100C300018F084EB80938F0308958A34B0F38170A9 +:100BC000500D1124435E5E4F81E0FA018483961339 +:100BD000E6CF2F5F3F4F23703327209354030895B0 +:100BE0002F5F3F4F922F9370D8CF1092E90210924F +:100BF000E802EDE1F1E08581811102C014821682E4 +:100C0000379681E0E734F807B1F70895FA018111CA +:100C100001C0FB01099408958091E302982F9E7F03 +:100C200061F4817082608093E3028091E602853BEB +:100C300018F084EB8093E60208958A34B0F3817053 :100C40008864F1CFAF92BF92DF92EF92FF920F9341 :100C50001F93CF93DF93182F062FE901453B08F030 :100C600044EBE42FF0E0E655FD4F011110C0E49194 :100C70005E2F4E2F4983E8835A83DF91CF911F91D6 :100C80000F91FF90EF90DF90BF90AF900895202FCD :100C900030E04491D42EE42EF12C56E0159FC00193 -:100CA0001124EFEFF0E0BF010E94332E812F90E07E +:100CA0001124EFEFF0E0BF010E94892D812F90E029 :100CB000880F991F55E5569FD001579FB00D1124FD :100CC0008A1B9B0B982F990F890F5F01A21AB30AF9 :100CD000AE9CD001AF9CB00DBE9CB00D11245B2F1B @@ -213,52 +213,52 @@ :100D4000EB2F512F97CF6430710569F080F066303A :100D5000710509F48FCFF4CFE42F4B2F592F8ACF91 :100D6000E42F412F87CFEB2F542F492F83CF4B2FC9 -:100D70005D2DE12F7FCF0E9483059C01909176022B -:100D800080917702982B21F03093730220937202A6 -:100D90009091780280917902982B21F03093710222 -:100DA00020937002E091F902F091FA02309749F035 -:100DB00082E0809374020480F581E02D84E792E064 -:100DC0000994089540917602803F59F4809177020A -:100DD00087FF0DC01092770241110BC010926E0276 -:100DE00008C0813F81F48091770218169CF3442358 -:100DF00081F08091780290917902892B09F05AC094 -:100E000010926D020895823F49F447FFF0CF10928F -:100E10007602809177028111ECCFE0CF833F19F405 -:100E20001416ACF3E4CF90917802893F29F4191697 -:100E3000F4F610927802DBCF8A3F19F497FFD7CFF0 -:100E4000F8CF909179028B3F29F497FFD0CF109281 -:100E50007902CDCF8C3F19F41916CCF3C8CF9CE0A2 +:100D70005D2DE12F7FCF0E9483059C0190917E0223 +:100D800080917F02982B21F030937B0220937A028E +:100D90009091800280918102982B21F0309379020A +:100DA00020937802E0915A03F0915B03309749F069 +:100DB00082E080937C020480F581E02D8CE792E054 +:100DC0000994089540917E02803F59F480917F02FA +:100DD00087FF0DC010927F0241110BC01092760266 +:100DE00008C0813F81F480917F0218169CF3442350 +:100DF00081F08091800290918102892B09F05AC084 +:100E0000109275020895823F49F447FFF0CF109287 +:100E10007E0280917F028111ECCFE0CF833F19F4F5 +:100E20001416ACF3E4CF90918002893F29F419168F +:100E3000F4F610928002DBCF8A3F19F497FFD7CFE8 +:100E4000F8CF909181028B3F29F497FFD0CF109279 +:100E50008102CDCF8C3F19F41916CCF3C8CF9CE09A :100E6000980F953090F4845F990B21E030E0B90140 :100E700002C0660F771F8A95E2F7CB0180959091AB -:100E80007502892380937502B2CF8D3F31F4809132 -:100E90006F028E7F80936F02AACF8E3F21F48091E4 -:100EA0006F028D7FF7CF8F3F09F0A1CF80916F0246 -:100EB0008B7FF0CF089580916F0280FD16C081FD79 -:100EC00016C082FD16C080916D028823A1F0883281 +:100E80007D02892380937D02B2CF8D3F31F4809122 +:100E900077028E7F80937702AACF8E3F21F48091D4 +:100EA00077028D7FF7CF8F3F09F0A1CF8091770236 +:100EB0008B7FF0CF08958091770280FD16C081FD71 +:100EC00016C082FD16C0809175028823A1F0883279 :100ED00080F428E0829FC001112468E270E00E9443 -:100EE000472E862F672B39F0089582E0089584E01D -:100EF000089588E0089581E0089580916F0280FD53 -:100F000014C081FD14C082FD16C080916E0288233A +:100EE0009D2D862F672B39F0089582E0089584E0C8 +:100EF000089588E0089581E008958091770280FD4B +:100F000014C081FD14C082FD16C080917602882332 :100F100081F0843180F422E3829FC001112464E1D6 -:100F200070E00E94472E862F08958CE0089589E195 +:100F200070E00E949D2D862F08958CE0089589E140 :100F3000089585E0089582E30895803F31F40E948A -:100F40007D078195809377020895813F19F40E946F +:100F40007D07819580937F020895813F19F40E9467 :100F50007D07F8CF823F31F40E947D078195809311 -:100F600076020895833F19F40E947D07F8CF893FE8 -:100F700029F40E945B078093780208958A3F21F448 +:100F60007E020895833F19F40E947D07F8CF893FE0 +:100F700029F40E945B078093800208958A3F21F440 :100F80000E945B078195F7CF8B3F31F40E945B078E -:100F900081958093790208958C3F19F40E945B0734 +:100F900081958093810208958C3F19F40E945B072C :100FA000F8CF9CE0980F953070F4845F990B21E0A6 -:100FB00030E001C0220F8A95EAF780917502822BFA -:100FC0008093750208958D3F31F480916F028160A6 -:100FD00080936F0208958E3F21F480916F028260AA -:100FE000F7CF8F3FB9F780916F028460F1CF80E037 +:100FB00030E001C0220F8A95EAF780917D02822BF2 +:100FC00080937D0208958D3F31F480917702816096 +:100FD0008093770208958E3F21F48091770282609A +:100FE000F7CF8F3FB9F7809177028460F1CF80E02F :100FF0000895F894E82FE295EF70F0E031A1282FE2 :101000002F7081E090E001C0880F2A95EAF7982FB1 :101010009095932391A392A1892B82A3789408950C -:101020009091020392FF06C0282F28712830F9F40E +:101020009091630392FF06C0282F28712830F9F4AD :10103000877F846093FF06C0282F28712831F1F440 -:10104000877E84612091030320FF06C0382F38710A +:10104000877E84612091640320FF06C0382F3871A9 :101050003830D9F4877F816021FF06C0282F28719E :101060002831D1F4877E816194FD877E0895282FF1 :1010700024712430F9F68B7F8860DCCF282F24710F @@ -271,23 +271,23 @@ :1010E000C83ED10508F09CC0C03ED10560F5C83AA5 :1010F000D10508F087C0C53AD10508F0FDC0C13060 :10110000D10509F12097F9F0C430D105E0F440C0D1 -:101110008533910509F45AC0C997C1F6809102033D +:101110008533910509F45AC0C997C1F680916303DC :10112000837089F0C0EED0E00EC0833E910599F146 :1011300070F4803E910501F1823E910539F680916F -:10114000020382FD21C0CE01DF91CF910895863E3A +:10114000630382FD21C0CE01DF91CF910895863ED9 :10115000910561F1873E910571F1843E910509F099 -:10116000B5CF8091030381FFEECF80910203C7EEDC -:10117000D0E084FD0DC0E7CF8091020380FD12C155 -:101180009091030390FFDFCFC3EED0E084FFDBCF6D -:10119000D0E0C0E0D8CF8091020382FD06C19091DB -:1011A000030390FDBFCF84FFCECFF2CF8091020327 -:1011B00083FDDDCFC8CF8091020383FDF9C09091FC -:1011C000030391FFF0CFC4EED0E0BDCF80910203C6 -:1011D00085FFB9CFC9E2D0E0B6CF8091020385FF89 -:1011E000B2CFC5E3D0E0AFCF8091020386FFABCF93 -:1011F000CAE2D0E0A8CF8091020386FFA4CFC1E36A +:10116000B5CF8091640381FFEECF80916303C7EE1A +:10117000D0E084FD0DC0E7CF8091630380FD12C1F4 +:101180009091640390FFDFCFC3EED0E084FFDBCF0C +:10119000D0E0C0E0D8CF8091630382FD06C190917A +:1011A000640390FDBFCF84FFCECFF2CF8091630365 +:1011B00083FDDDCFC8CF8091630383FDF9C090919B +:1011C000640391FFF0CFC4EED0E0BDCF8091630304 +:1011D00085FFB9CFC9E2D0E0B6CF8091630385FF28 +:1011E000B2CFC5E3D0E0AFCF8091630386FFABCF32 +:1011F000CAE2D0E0A8CF8091630386FFA4CFC1E309 :10120000D0E0A1CFCF3BD10518F6C85AD0E0CC0F23 -:10121000DD1FC95BDE4F0990D881C02DD46493CF08 +:10121000DD1FC45BDE4F0990D881C02DD46493CF0D :10122000C11540E2D40758F4C11581E0D80708F091 :101230008ACFC03FD10508F4ABCFD06584CFC115AC :1012400090E4D90708F4A4CFDF70D06A7CCFC11531 @@ -301,7 +301,7 @@ :1012C000CC27DF71D0623FCFC1154AE5D40708F4BF :1012D0005BC0CE0190568115904208F059CF8D2FFA :1012E0008F710E94100890E0982F882788279F719F -:1012F0009C012C2BE901E6CFC55AD0E0CC5BDE4F38 +:1012F0009C012C2BE901E6CFC55AD0E0C75BDE4F3D :10130000C881D0E0D0641FCFCE01E4E096958795E8 :10131000EA95E1F783702C2F26952695237040E2FD :10132000249F90011124382B8C2F8370C1E0D0E0D2 @@ -313,49 +313,49 @@ :10138000CC27C06FD06ADFCE8C2F8F700E941008E0 :1013900034E0D695C7953A95E1F7CF709C2FEC01D4 :1013A000D069D1CEC9E3D0E0CECEC2EED0E0CBCE74 -:1013B000C6EED0E0C8CE8091440281111092440262 -:1013C00008958091430290914202892B90914102AD -:1013D000892B8093C601909144029923A1F0892B17 -:1013E0008093C60180914301882341F180910203DB -:1013F00087FF24C08EE1E8ECF1E090E0815000F539 -:1014000091110E94DB09E091F902F091FA02309704 -:10141000E1F080914301882359F08091020387FF16 -:1014200007C08091C6018093C70185E08093C60103 -:101430000280F381E02D86EC91E0099486E0DBCF19 -:1014400021912223D9F29F5FD9CF08959091430132 -:101450009923D1F09091020397FF16C0E82FE695EB -:10146000E695E695EE31E0F4F0E0EA53FE4F282FE2 +:1013B000C6EED0E0C8CE8091450281111092450260 +:1013C00008958091690390914402892B9091430282 +:1013D000892B8093CA01909145029923A1F0892B12 +:1013E0008093CA0180914801882341F18091630371 +:1013F00087FF24C08EE1ECECF1E090E0815000F535 +:1014000091110E94DB09E0915A03F0915B03309740 +:10141000E1F080914801882359F08091630387FFB0 +:1014200007C08091CA018093CB0185E08093CA01F7 +:101430000280F381E02D8AEC91E0099486E0DBCF15 +:1014400021912223D9F29F5FD9CF0895909148012D +:101450009923D1F09091630397FF16C0E82FE6958A +:10146000E695E695EE31E0F4F0E0E653FE4F282FE6 :10147000277081E090E001C0880F2A95EAF78095F7 -:101480009281892382830895E8ECF1E09191891398 -:1014900003C0DF0111971C9291E0EE3CF907B1F710 -:1014A0000895909143019923C1F09091020397FF11 +:101480009281892382830895ECECF1E09191891394 +:1014900003C0DF0111971C9291E0E23DF907B1F71B +:1014A0000895909148019923C1F09091630397FFAB :1014B00014C0E82FE695E695E695EE31F8F4F0E0F5 -:1014C000EA53FE4F877021E030E001C0220F8A9579 -:1014D000EAF78281822B82830895A8ECB1E0EFEFD6 +:1014C000E653FE4F877021E030E001C0220F8A957D +:1014D000EAF78281822B82830895ACECB1E0EFEFD2 :1014E00090E02D91821751F0EF3F19F4211101C0C6 :1014F000E92F9F5F9630A9F7EF3F09F408950E2E6C -:10150000000CFF0BEA53FE4FE6CF80913F02909113 -:10151000FE01981301C008958F5F8770FACF990F6D +:10150000000CFF0BE653FE4FE6CF80914102909115 +:101510000002981301C008958F5F8770FACF990F6A :10152000990F890F982F977086958695869524E058 -:10153000829FF0011124E651FE4F50E040E080E030 +:10153000829FF0011124E451FE4F50E040E080E032 :10154000219130E0092E02C0369527950A94E2F7E2 :1015500021703327042E01C0220F0A94EAF7822B50 :101560004F5F5F4F4430510559F70895990F990F18 :10157000890F982F977041E001C0440F9A95EAF7C0 -:1015800086958695869594E0899FF0011124E65111 +:1015800086958695869594E0899FF0011124E45113 :10159000FE4F30E020E070E05191DF011197CB0168 :1015A000022E02C0969587950A94E2F78170819584 :1015B0008527842385278C932F5F3F4F2430310567 :1015C00059F7089590E080E00E94A50590E080E042 -:1015D0000E948F0510924202109241020E94E1097E -:1015E00086E0E4E7F2E0DF011D928A95E9F71092C8 -:1015F0006E0210926D0210926F020C94BB069093D3 -:101600004602809345020C94E20A882341F08095BB -:10161000909142028923809342020C94E10908953B -:10162000882339F090914202982B909342020C94B7 -:10163000E1090895882341F0809590914302892320 -:10164000809343020C94E1090895882339F0909126 -:101650004302982B909343020C94E1090895882348 +:1015D0000E948F0510924402109243020E94E1097A +:1015E00086E0ECE7F2E0DF011D928A95E9F71092C0 +:1015F000760210927502109277020C94BB069093BB +:101600004702809346020C94E20A882341F08095B9 +:10161000909144028923809344020C94E109089537 +:10162000882339F090914402982B909344020C94B3 +:10163000E1090895882341F08095909169038923F9 +:10164000809369030C94E1090895882339F09091FF +:101650006903982B909369030C94E10908958823FA :1016600009F459C0823871F40E94BB0581FF53C050 :1016700089E30E94510A0E94E10989E30E94260A37 :101680000C94E109833859F40E94BB0580FF43C0E4 @@ -364,34 +364,34 @@ :1016B0000E94E10987E4E2CF9CEF980F913AF0F2A3 :1016C00090E2980F983088F4877021E030E0A9010B :1016D00002C0440F551F8A95E2F7CA018095909188 -:1016E0004302892380934302CBCF9BE5980F93302D +:1016E0006903892380936903CBCF9BE5980F9330DF :1016F00020F490E080E00C94A50598E5980F9731D0 :1017000020F490E080E00C948F05803F20F00E9450 :10171000E2060C94BB060895809580FF08C0589A95 :1017200081FF07C05D9A82FF06C05C9A08955898B1 -:10173000F7CF5D98F8CF5C98089590912C03943082 -:1017400029F5809304037093060360930503909337 +:10173000F7CF5D98F8CF5C98089590918E03943020 +:1017400029F5809365037093670360936603909314 :10175000E9008FEF9091E800815095FD06C095ED6E :101760009A95F1F700008111F5CF8091E80085FF8F -:101770000DC050E040E063E070E084E093E00E9440 +:101770000DC050E040E063E070E085E693E00E9439 :1017800037048091E8008E778093E8000895BC01CB :1017900084E00C949D0BBC0183E00C949D0B9C0198 :1017A00084E08093E9009FEF8091E800915085FDEF :1017B00006C085ED8A95F1F700009111F5CF809173 :1017C000E80085FF0CC050E040E066E070E0C90131 :1017D0000E9437048091E8008E778093E800089596 -:1017E000CF93DF93EC01809143018823B1F1809185 -:1017F000020387FF32C060E284E08093E9008FEF4C +:1017E000CF93DF93EC01809148018823B1F1809180 +:1017F000630387FF32C060E284E08093E9008FEFEB :101800009091E800815095FD06C095ED9A95F1F70D :1018100000008111F5CF8091E80085FF1BC0809109 -:10182000430170E050E040E0811104C050E040E02E +:10182000480170E050E040E0811104C050E040E029 :1018300068E070E0CE010E9437048091E8008E7766 -:101840008093E80080E2FE01AAE0B3E001900D92EF +:101840008093E80080E2FE01ACE6B3E001900D92E7 :101850008A95E1F7DF91CF91089568E081E0CDCFDF :1018600081E08093E00080E28093D8001092C9006C :101870008FE19EE40197F1F700C0000087E090EB54 -:10188000DC018093940390939503A0939603B09307 -:10189000970388E19CE00FB6F894A89580936000C8 +:10188000DC0180939A0390939B03A0939C03B093F5 +:101890009D0388E19CE00FB6F894A89580936000C2 :1018A0000FBE90936000FFCFCF93C82F882309F419 :1018B000AEC08238C1F40E94BB0581FDA8C089E397 :1018C0000E94510A0E94E1092FEF81EE94E021501D @@ -402,1130 +402,1109 @@ :10191000E5CF8438A1F40E94BB0582FD78C087E43E :101920000E94510A0E94E1092FEF81EE94E02150BC :1019300080409040E1F700C0000087E4CFCF8CEFFB -:101940008C0F813A88F580914301882301F18091C1 -:10195000020387FF1CC0EC2FE695E695E695F0E0C4 -:10196000EA53FE4F828190E04C2F477021E030E037 +:101940008C0F813A88F580914801882301F18091BC +:10195000630387FF1CC0EC2FE695E695E695F0E063 +:10196000E653FE4F828190E04C2F477021E030E03B :1019700002C0220F331F4A95E2F782239323892B5B -:1019800079F08C2F0E94260A0E94E10909C0E8EC38 -:10199000F1E08191C817A9F321E0EE3CF207C9F705 +:1019800079F08C2F0E94260A0E94E10909C0ECEC34 +:10199000F1E08191C817A9F321E0E23DF207C9F710 :1019A0008C2F0E94510A9CCF80E28C0F883068F403 :1019B000C77021E030E001C0220FCA95EAF780919C -:1019C0004302822B809343028BCFEBE5EC0FE33095 -:1019D00040F4F0E0EC5BFE4F808190E0CF910C94FE +:1019C0006903822B809369038BCFEBE5EC0FE33047 +:1019D00040F4F0E0E75BFE4F808190E0CF910C9403 :1019E000A505E8E5EC0FE73150F4F0E0EE0FFF1F3E -:1019F000E95BFE4F80819181CF910C948F05C03FB0 +:1019F000E45BFE4F80819181CF910C948F05C03FB5 :101A000030F08C2F0E949D07CF910C94BB06CF9194 -:101A100008951F93CF93DF93182FD0E0C0E0893350 -:101A200011F4C0E5D0E0812F0E94540C209731F4CE -:101A3000812FDF91CF911F910C942F0B8FE99FE0A5 -:101A40000197F1F700C000002197F0CF0F931F938B -:101A5000CF93DF93C62FD42F022FFC0182818823DE -:101A6000A1F0609393030E94830590939203809367 -:101A70009103C77081E001C0880FCA95EAF7DF9132 -:101A8000CF911F910F910C94250B809193036813B4 -:101A900035C080919103909192030E947405883C17 -:101AA000910560F510E21D0FCD17B9F080E28C0FA3 -:101AB000883040F4C77081E001C0880FCA95EAF70A -:101AC0000E941A0B183048F481E09D2F977001C0D6 -:101AD000880F9A95EAF70E94250B802F0E94090D26 -:101AE000183098F4D77081E001C0880FDA95EAF7D2 -:101AF000DF91CF911F910F910C941A0BC77081E069 -:101B000001C0880FCA95EAF7F3CFDF91CF911F91FB -:101B10000F910895DF92EF92FF920F931F93CF934F -:101B2000DF93E82FF0E0E85EFD4FD490282F269554 -:101B30002695269530E0F901E85FFD4F0491877006 -:101B400010E0082E02C0159507950A94E2F701707F -:101B50001127F901E850FE4FE490F12C082E02C045 -:101B6000F594E7940A94E2F791E0E922FF24F90161 -:101B7000E851FE4FC491D0E002C0D595C7958A9533 -:101B8000E2F7C170DD270115110519F081EE0E9401 -:101B9000540CE114F10419F086EE0E94540C8D2DC2 -:101BA0000E94090DEF2819F086EE0E942F0B012BE1 -:101BB00019F081EE0E942F0BCD2B51F08CE2DF91BA -:101BC000CF911F910F91FF90EF90DF900C94090D32 -:101BD000DF91CF911F910F91FF90EF90DF900895CB -:101BE000CF93DF93C7E0D2E060E0CE010E94F52EF4 -:101BF0002196C11584E0D807B9F7DF91CF910895F8 -:101C00006F927F928F929F92AF92BF92CF92DF920C -:101C1000EF92FF920F931F93CF93DF938BECC82E1D -:101C200084E0D82E0FE510E0E801E09736011CC0F3 -:101C3000F50185909490692DC7010E94F52E682DBD -:101C4000C70101960E94F52E82E0A80EB11C82E029 -:101C5000E80EF11CCE15DF0559F788E0680E711CFF -:101C600028960C171D0731F07E0188E0E81AF1086C -:101C70005301DECF005D1F4F80E3C80ED11C0F3330 -:101C800082E0180789F6DF91CF911F910F91FF90A5 -:101C9000EF90DF90CF90BF90AF909F908F907F900C -:101CA0006F900895CF93C82F6FEF811161E283E2A7 -:101CB00090E00E94F52E6FEFC11161E184E290E0A7 -:101CC0000E94F52E6FEFC11168E085E290E0CF91A0 -:101CD0000C94F52E80E00E94520E60E086E290E0C7 -:101CE0000E94F52E0E94000E0E94F00D81E00C94DF -:101CF000520ECF93C0910303C2FB992790F9981716 -:101D000081F080FBC2F9C09303036091020384E079 -:101D100090E00E94F52E6C2F82E290E0CF910C941F -:101D2000F52ECF9108950F931F93CF93DF9328E063 -:101D3000629FE001112450E0440F551FC40FD51FCE -:101D400030E3839FC00DD11D1124CE0187960E94E0 -:101D5000E12E082F10E0102F0027CE0188960E9458 -:101D6000E12E9801282BC901DF91CF911F910F918E -:101D70000895462F8A3038F4763028F4643018F409 -:101D8000672F0C94930E90E080E00895BF92CF925D -:101D9000DF92EF92FF920F931F93CF93DF937C011B -:101DA00000913603109137038091450290914602CD -:101DB000082B192BCFE0D0E0CC24C394D12CBC2E1F -:101DC000C6010C2E02C0880F991F0A94E2F78023E7 -:101DD0009123892B71F4219790F7B12C8B2DDF91F2 -:101DE000CF911F910F91FF90EF90DF90CF90BF9018 -:101DF0000895B7018C2F0E94B90E0E9453080197D5 -:101E000051F3ECCFCF93DF93EC010E94C60EBE01DD -:101E10000E94B90EDF91CF910C945308FC0186818A -:101E20009781009779F00E945308292F2F7092957F -:101E30009F7092509E30A0F4E92FF0E0E55DF04DE8 -:101E40000C947D2E808191810E94020FEECF803F05 -:101E500019F020F4883E20F481E00895843FE1F3F6 -:101E600080E00895883EC0F3813FD1F7F5CF822FFF -:101E700086958695869508951F93CF93DF9300D01E -:101E800000D00F92CDB7DEB7FC0126813781211536 -:101E9000310541F525E0DE01119601900D922A955C -:101EA000E1F7FC01228189819A812223B9F066231E -:101EB000A9F00E94C60E182F682F89819A810E946E -:101EC000B60A69817A81812F0F900F900F900F9041 -:101ED0000F90DF91CF911F910C94B90E0E948F0A41 -:101EE000182FEFCFC9010F900F900F900F900F9008 -:101EF000DF91CF911F91089583E290E00E94E12E3F -:101F0000813289F484E290E00E94E12E813159F41B -:101F100085E290E00E94E12E91E0883009F090E0A7 -:101F2000892F8170089580E0FCCFCF9384E090E00A -:101F30000E94E12EC82F82E290E00E94E12E982FAD -:101F40008C2FCF91089560918C03669570E04BE0E3 -:101F500050E08AE091E00E94C72E892B19F481E0BD -:101F6000809382020E94830590937C0280937B027F -:101F70000895AF92BF92CF92DF92EF921F93CF93CB -:101F8000DF93CDB7DEB7C455D1090FB6F894DEBFE5 -:101F90000FBECDBF80918C0380FD0AC0E8E3F3E063 -:101FA000118210821282339683E0EC38F807C1F771 -:101FB0007FEAA72E73E0B72EDE011196AE014B5AD1 -:101FC0005F4F1A2F7B2FF5018491282F30E0C90134 -:101FD000880F991F820F931F885C9C4FFC01C08063 -:101FE000D180E280CD92DD92ED92FFEFAF1ABF0A71 -:101FF000A417B50741F7279A35B13F7725B1206877 -:102000006FB7F894812F972FFC017191CF01E8E011 -:1020100025B9000000C077FF35B9770F000000C078 -:1020200000C000C035B900C0EA9591F78417950744 -:1020300059F76FBF8FE594E00197F1F700C00000FA -:10204000CC5ADF4F0FB6F894DEBF0FBECDBFDF9185 -:10205000CF911F91EF90DF90CF90BF90AF900895F8 -:102060001F93CF93DF9300D00F92CDB7DEB7162F1B -:1020700090918C0390FF18C09E012F5F3F4F48E75F -:102080006FEF0E9422068B819981612F70E0FB0126 -:10209000EE0FFF1FE60FF71FE85CFC4F2A8121833C -:1020A000908382830E94B90F0F900F900F90DF9161 -:1020B000CF911F910895EF92FF920F931F93CF93AB -:1020C000DF938C01C8E3D3E0F12CE12CF80194817B -:1020D00060918E0380918D03FEE0EF16F104FCF415 -:1020E0009923F9F09E0140918F030E9422062FEF61 -:1020F000E21AF20A23968CE1E816F10439F70E94FD -:10210000B90FF801848190E001968170992784834A -:10211000DF91CF911F910F91FF90EF900895992338 -:1021200009F39E0140E0E1CF8F929F92AF92BF9260 -:10213000CF92DF92EF92FF920F931F93CF93DF9393 -:10214000EC014C81042F10E09801D8010E94922EDE -:102150009B01AC010E94A82E4B015C01E0E2F0E083 -:10216000E01BF10BA5E5B0E0AC019B010E94A82E9D -:102170006B017C019F01DF010E948A2E9B01AC0153 -:102180000E94B32E9B01AC01280D391D4A1D5B1D19 -:10219000C701B6010E945B2EF22E822F90E039E239 -:1021A0003F15D8F143E0249F9001112435952795E0 -:1021B000122F109598E3C92E93E0D92E00E085E503 -:1021C000E82EEF188E2D01FD8F2D9601412F609185 -:1021D0008E030E9422060F5F53E0C50ED11C0C3106 -:1021E00089F70E94B90F9C8181E0992319F0903200 -:1021F00019F48FEF8093170180911701890F8C8359 -:10220000DF91CF911F910F91FF90EF90DF90CF90D2 -:10221000BF90AF909F908F90089525E530E0A90181 -:10222000481B590BCA019A01220F331F280F391F6F -:1022300037FFBCCF2F5F3F4FB9CF0F931F93CF9383 -:10224000DF93C8E3D3E0FE0111821082128233963D -:1022500083E0EC38F807C1F710E000E080918502D8 -:10226000082E000C990B081719078CF180911601A4 -:10227000082E000C990B801791074CF19E0140919C -:102280008F0360918E0380918D030E9422060F5F61 -:102290001F4F23960C31110509F70E94B90F809149 -:1022A000150190918502980F909385022091160157 -:1022B000280F20931601121614F49B311CF08195FF -:1022C00080931501DF91CF911F910F91089519828D -:1022D00018821A82DCCFBF92CF92DF92EF92FF92E8 -:1022E0000F931F93CF93DF93FC018281DD24DA9457 -:1022F00080FD02C0DD24D39408E313E0D0E0C0E009 -:102300002CE1B22EF80111821082128294E0E92EA3 -:10231000F12CC12C809184028C0D8D310CF43DC0C8 -:102320006B2D0E94252E892F082E000C990B8C17DF -:102330009D0791F480918F038E9DA0018F9D500D7C -:1023400011245595479555954795980160918E03B1 -:1023500080918D030E942206CD0CF1E0EF1AF10866 -:10236000C9F621960D5F1F4FCC31D10559F60E9459 -:10237000B90F8091840291E0D91215C0811111C06A -:102380008BE180938402DF91CF911F910F91FF9099 -:10239000EF90DF90CF90BF90089587FFC5CF845E08 -:1023A000C3CF8150EECF90E00196BE010E94472E30 -:1023B000E8CFEF92FF921F93CF93DF93EC0188E376 -:1023C000E82E83E0F82E10E08C81970140918F0376 -:1023D00060918E03810F0E942206175F83E0E80E52 -:1023E000F11C1C3F89F70E94B90F9A818C8190FFE4 -:1023F00008C08F5F8C83DF91CF911F91FF90EF908A -:1024000008958150F7CF90918C0390FF0CC0E8E3C2 -:10241000F3E0818360834283339693E0EC38F907DD -:10242000C1F70C94B90F08950F931F93CF93DF93C7 -:1024300000D00F92CDB7DEB78C018091860281115A -:102440000AC09E012F5F3F4F44EB6FEF0E942206B0 -:102450008A8180938602F8016481613069F08091FD -:10246000860240E0662361F040E0623011F4409162 -:10247000860280E060E004C06091860240E080E077 -:102480000E940312F801848190E0019663E070E0FD -:102490000E94472E84830F900F900F90DF91CF9171 -:1024A0001F910F910895CF93DF9300D00F92CDB776 -:1024B000DEB790918C0390FF0AC09E012F5F3F4FC3 -:1024C0000E9422064B8169818A810E9403120F902B -:1024D0000F900F90DF91CF910895CF93DF93EC0190 -:1024E000ECE8F3E0438162818C810E9453128C817D -:1024F0008F5F8C83DF91CF910895CF93DF93EC01B1 -:10250000EC81F0E0E553FC4F4491ECE8F3E06281AC -:1025100081810E9453128C818F5F8C83DF91CF91D8 -:102520000895CF92DF92EF92FF926B017C010E949F -:102530000C06B701A60188E090E0FF90EF90DF90D5 -:10254000CF900C94072F5F926F927F928F929F9201 -:10255000AF92BF92CF92DF92EF92FF920F931F93B1 -:10256000CF93DF9300D00F92CDB7DEB7182F762E22 -:10257000042F622E90918C0390FF29C0E92FE695DD -:10258000AE2FB0E0A157BE4F8C91809381029E7F09 -:10259000923081F59E012F5F3F4F812F0E942206CE -:1025A0004B8169818A810E94031210938D0370927E -:1025B0008E0300938F03662051F060918C0370911D -:1025C0008D0380918E0390918F030E9491120F9042 -:1025D0000F900F90DF91CF911F910F91FF90EF908F -:1025E000DF90CF90BF90AF909F908F907F906F9033 -:1025F0005F900895823019F400918F03D6CF863012 -:1026000019F410918D03D1CF8930D9F3893169F64E -:10261000E9518E2F8170582EE695F0E0E655FC4F7B -:10262000A590B490BB2488E3E82E83E0F82ED12C4B -:10263000C12C9CE1892E912CC601B4010E94332E3D -:10264000812F511013C0860F9701402F672D0E94D4 -:102650002206CA0CDB1C83E0E80EF11C8CE8E816AD -:1026600083E0F80649F70E94B90F9FCF861BECCF95 -:10267000ECE8F3E0438128E0421B08F440E021E06D -:10268000628181810C94A312ECE8F3E0438128E09D -:10269000420F08F44FEF21E0628181810C94A31274 -:1026A000ECE8F3E0628128E0621B08F460E021E0DE -:1026B000438181810C94A312ECE8F3E0628128E06D -:1026C000620F08F46FEF21E0438181810C94A31223 -:1026D000ECE8F3E0818121E04381628188500C9431 -:1026E000A312ECE8F3E0818121E043816281885FFD -:1026F0000C94A31280919003882319F08150809349 -:10270000900360918C0370918D0380918E03909162 -:102710008F030C94911280919003833018F48F5F93 -:102720008093900360918C0370918D0380918E0350 -:1027300090918F030C94911290918C0390FF36C06E -:102740009170811129C0926090938C03662351F09F -:1027500060918C0370918D0380918E0390918F0313 -:102760000E94911260918C03669570E04BE050E0FE -:102770008AE091E00E94C72E892BA9F01092820274 -:1027800081E080937E0220E040918F0360918E0370 -:1027900080918D030C94A312853210F09864D4CFED -:1027A000880F982BD1CF0E94A30FEACF089521E084 -:1027B00030E0A90102C0440F551F8A95E2F7CA0113 -:1027C00020918302662399F0822B8093830280916B -:1027D0008202811106C080918C0360E086950E9480 -:1027E0009C1380918C0380FD05C00C94B90F8095DB -:1027F0008223EBCF08950F931F93CF93DF93EC01C8 -:1028000061E0009709F0682F617080E00E94D713A3 -:1028100060E0209721F0BE0176956795617081E0B8 -:102820000E94D71360E0209731F0BE01769567953E -:1028300076956795617082E00E94D71360E02097DB -:1028400039F0BE0113E0769567951A95E1F761704E -:1028500083E00E94D71360E0209739F0BE01B4E016 -:1028600076956795BA95E1F7617084E00E94D71379 -:10287000AE0170E060E0BB27A72F962F852F009751 -:10288000A105B105D9F1AC01BD0188E08A019B0128 -:10289000F4E03695279517950795FA95D1F7011528 -:1028A00011052105310519F08C5FB901A8018A01D4 -:1028B0009B01E2E03695279517950795EA95D1F7A4 -:1028C000011511052105310519F08E5FB901A80127 -:1028D0007695679557954795452B462B472B09F0DD -:1028E0008F5F823019F160F4882399F08130C1F054 -:1028F000CE01DF91CF911F910F91089580E0C6CF57 -:102900008330C9F08430A1F720E044E66FEF8FE018 -:1029100004C020E044E66FEF82E30E94A312E8CFF8 -:1029200020E044E66FEF85E00E94A31220E044E639 -:102930006FEF80E8F2CF20E044E66FEF87EDEDCF58 -:102940000E94FB1390933703809336030C94E20AA2 -:1029500080913603909137039C01267033272630EF -:10296000310519F488600C94A014877FFCCF21E016 -:1029700030E002C0220F331F8A95E2F72095309590 -:102980008091360390913703822393230C94A014F3 -:10299000909140028095892380934002282F2770D0 -:1029A00039F4282F082E000C330B9217130621F44C -:1029B0009091030392FF07C08595859585950E94A8 -:1029C000B71410924002089521E030E002C0220FB7 -:1029D000331F8A95E2F78091360390913703822B5B -:1029E000932B0C94A01480918C038695815009F44C -:1029F00084E261E00C949C1380918C0386958F5F38 -:102A0000853208F081E061E00C949C1390918C0376 -:102A100090FF07C09695981720F0961710F40C9425 -:102A2000FC1461E00C949C13ECE8F3E083E08083F9 -:102A300011828FEF828388E28383148260817181A7 -:102A4000828193810C94911269EE7EEF90E080E098 -:102A50000E94132F60E082E090E00E94F52E60E07B -:102A600083E090E00E94F52E1092460210924502FB -:102A700060E084E090E00E94F52E60E082E290E069 -:102A80000E94F52E60E085E090E00E94F52E60E067 -:102A900086E090E00E94F52E6FEF87E090E00E94C4 -:102AA000F52E40E050E0BA0188E090E00E94072F48 -:102AB00060E08DE090E00E94F52E40E050E0BA0129 -:102AC00088E190E00E94072F60E087E190E00E949B -:102AD000F52E40E050E0BA018CE190E00E94072F13 -:102AE00070E060E080E290E00E94132F40E050E050 -:102AF000BA0188E190E00E94072F80E00E94520E08 -:102B00000E946A0E40E050E0BA018FE090E00E941F -:102B1000072F40E050E0BA0183E190E00C94072FCA -:102B200090E080E00E94EF2E893E9E4F11F40C94BD -:102B30007C0F80E008951092430280914301E8ECFD -:102B4000F1E0882359F08091020387FF07C08EE1EE -:102B5000DF011D928A95E9F70C94E20A86E0F8CF2E -:102B60001F93CF93DF93CDB7DEB7AA970FB6F89434 -:102B7000DEBF0FBECDBF8EE293E02091F100DC01FD -:102B80002D93CD01B3E086339B07B9F780912F03D6 -:102B9000833009F471C0B8F4813009F448C0823040 -:102BA00009F4B2C08091E80083FF3AC180912E03FE -:102BB00090912F039A3008F033C1E92FF0E0E75CE1 -:102BC000F04D0C947D2E8A3009F48DC08B3009F4C1 -:102BD00070C0893039F780912E03813219F78091C6 -:102BE000320390913303009711F00297D9F6809148 -:102BF000E800877F8093E8008091E80082FF37C07B -:102C00009091F3008091F200029729F48091F100F5 -:102C10008B7F813021F48091F100809309038091B2 -:102C2000E8008B778093E8000E946104BBCF80911D -:102C30002E03813A09F0B6CF8091E800877F809318 -:102C4000E8008091320390913303892B61F460E2B4 -:102C50008AE093E070E00E9413058091E8008B7792 -:102C60008093E8009FCF60E090E080E0F3CF809118 -:102C70002C038111C1CF96CF80912E03813A09F0A8 -:102C800091CF8091320390913303892B09F08ACF41 -:102C90008091E800877F8093E8008091E80080FFC2 -:102CA000FCCF809143018093F1008091E8008E7702 -:102CB000B9CF80912E03813209F074CF8091320315 -:102CC00090913303892B09F06DCF8091E800877FC5 -:102CD0008093E8000E946104809130038093430157 -:102CE0000E949B155FCF80912E03813209F05ACF4D -:102CF0008091E800877F8093E8000E9461048091C2 -:102D00003103809308034ECF80912E03813A09F05E -:102D100049CF8091E800877F8093E8008091E800A8 -:102D200080FFFCCF80910803BECF803899F08238B5 -:102D300009F076C0809132038F70873008F070C040 -:102D40008093E9008091EB0085FB882780F9109241 -:102D5000E90006C080912A0390912B0391118260B3 -:102D60009091E800977F9093E8008093F100109293 -:102D7000F1008091E8008E77B5C1882309F4A2C1E3 -:102D8000823009F04DC0809130038111A6C180913D -:102D900032038F702FEF280F263008F041C0809348 -:102DA000E9002091EB0020FF98C1933031F480912D -:102DB000EB0080628093EB0090C19091EB009061FA -:102DC0009093EB0021E030E001C0220F8A95EAF7F2 -:102DD0002093EA001092EA008091EB008860EACF2D -:102DE00081111EC0109130031F778091E30080781D -:102DF000812B8093E3008091E800877F8093E80037 -:102E00000E9461048091E80080FFFCCF8091E30084 -:102E100080688093E30082E0111183E080932C03AB -:102E20008091E80083FF0AC08091E800877F80934B -:102E3000E8008091EB0080628093EB00AA960FB6C9 -:102E4000F894DEBF0FBECDBFDF91CF911F910895E3 -:102E50008058823028F720913003309131032C3D87 -:102E6000E3E03E07A1F583E08A838AE289834FB7D6 -:102E7000F894DE01139620E03EE051E2E32FF0E00B -:102E800050935700E49120FF03C0E295EF703F5F3D -:102E9000EF708E2F90E0EA30C0F0C7968D939D932F -:102EA0002F5F243159F74FBF8091E800877F8093CF -:102EB000E8006AE270E0CE0101960E94130580915D -:102EC000E8008B778093E800ABCFC096E7CF809186 -:102ED000320390913303432F55274330510509F4B2 -:102EE0004AC078F54130510509F47AC08BE590E08D -:102EF000EBEAF6E04230510509F092CF2091E8006C -:102F0000277F2093E8002091340330913503821706 -:102F1000930708F49C0140E02115310509F065C0D4 -:102F2000411163C08091E80082FDC9CF80912C03DC -:102F3000882329F2853019F28091E80083FFF2CFCF -:102F4000BECF4132510509F43CC04232510509F06F -:102F500067CF8330910508F063CFFC01EE0FFF1FB0 -:102F6000E954FE4F0190F081E02D8C549E4FDC011E -:102F70008C9190E01AC0332721303105D1F0211512 -:102F8000310561F02230310509F04ACFE8E1F7E080 -:102F9000E4918E2F90E0E8E1F7E007C0E8E3F7E086 -:102FA000E4918E2F90E0E8E3F7E0009709F438CF42 -:102FB000A5CFE4E2F7E0E4918E2F90E0E4E2F7E0C1 -:102FC000F4CF8330910508F02BCF880F991FFC01B7 -:102FD000E354FE4F0190F081E02D89E090E08ECF28 -:102FE00082E190E0E6E0F7E089CF80912C0388232E -:102FF00009F465CF853009F462CF8091E80083FD44 -:103000005ECF8091E80082FD8DCF8091E80080FF47 -:1030100083CF9091F3008091F2002115310519F0D2 -:103020008830910550F041E0089709F040E0809128 -:10303000E8008E778093E8006FCF44914093F100D1 -:103040003196215031090196E8CF803809F0E8CE59 -:103050008091E800877F8093E80080912D03809322 -:10306000F10087CE8111DCCE10913003123008F0D0 -:10307000D7CE8091E800877F8093E80010932D03DE -:103080000E946104112311F084E005C08091E300E7 -:1030900087FDFACF81E080932C0342E061EC81E070 -:1030A0000E94800442E261EC84E00E94800442E2DB -:1030B00061EC82E00E94800442E260EC83E00E94C6 -:1030C0008004AECE80913003813009F0A9CE81E03A -:1030D000933009F080E080932B031092E9008091F7 -:1030E000E800877F8093E8000E94610499CE9F9258 -:1030F000AF92BF92CF92DF92EF92FF920F931F9306 -:10310000CF93DF9300D000D0CDB7DEB77C01FC01B8 -:1031100083819481892B31F08081918189238F3F34 -:1031200009F060C60F900F900F900F90DF91CF9134 -:103130001F910F91FF90EF90DF90CF90BF90AF90D5 -:103140009F900895980122513F452031310508F0A4 -:103150003EC68FEF93E00E94E12E025167E0C62E3B -:1031600062E0D62E882339F1809140028770D1F237 -:10317000F70182818823B1F282E00F900F900F90C7 -:103180000F90DF91CF911F910F91FF90EF90DF9003 -:10319000CF90BF90AF909F900C94C814C114F4E0EE -:1031A000DF0611F3C6010E94E12E811101C001501A -:1031B0002FEFC21AD20A0111F1CF1C821B82BB244D -:1031C000B3945AE0A52E86010F5F1F4FC6010E94DF -:1031D000E12E89831A82882339F29FEF980F93306A -:1031E00008F58A83B98232E0C30ED11CC8010E945F -:1031F000E12E8B83882309F4B7CF8E010F5F1F4F19 -:10320000F80180818823F9F2813009F043C091816F -:103210008281913049F40E5F1F4F0E94090D0F5FAC -:103220001F4FEECF6801E9CF923029F40E5F1F4F98 -:103230000E94540CF4CF933029F40E5F1F4F0E946C -:103240002F0BEDCF943019F00F5F1F4FE8CF0E5FBB -:103250001F4F30E020E0B8016F5F7F4FF8014181E0 -:103260008053990B8A30910550F021503109B8F202 -:103270008FE99FE00197F1F700C00000F6CFA29E12 -:10328000F001A39EF00D11249C012E0F3F1F842FEF -:103290008B01E1CF0E948A0DC2CF81E00E94E4142D -:1032A0000E94A81461CF81E00E94B714F9CF82E098 -:1032B000FBCF04389FE5190709F483C008F473C0F5 -:1032C0000538FFE51F0709F0B1C5882309F4AEC52D -:1032D00080EE0E94540C81EE0E94540C80E10E940A -:1032E000540C80E10E942F0B81EE0E942F0B80EE88 -:1032F0000E942F0B8091E60191E062E18927809383 -:10330000E601882309F48DC08FE00E94301066E149 -:103310008FE00E9430108AC5882369F180914F02A6 -:10332000811106C081E080934F0282EE0E94540C0E -:103330000E94830590934E0280934D028BE20E947F -:10334000540C74C58823A1F080914F02811106C0EE -:1033500081E080934F0282EE0E94540C0E9483050C -:1033600090934E0280934D0281EE0E94540CE6CF62 -:1033700081EE0E942F0B8BE20E942F0B57C58823F2 -:1033800009F454C581EE0E94540C83EE0E94540C43 -:103390008FE40E94540C8FE40E942F0B83EE0E9456 -:1033A0002F0B81EEE9CF882309F440C581EE0E94FE -:1033B000540C83EE0E94540C80E50E94540C80E56E -:1033C000EBCF882309F4D0CE10914C0281E018276E -:1033D00010934C020E94830590934B0280934A0203 -:1033E00068E1112381F08FE00E94301069E18FE0E5 -:1033F0000E9430106AE18FE00E9430106BE18FE094 -:103400000E943010B1CE84EB0E94301069E184EB51 -:103410000E9430106AE184EB0E9430106BE184EB73 -:10342000EFCF8FEA0E94301066E18FEA72CF82EE12 -:103430000E94540C36C583E00E94100B88E10E9464 -:10344000540C88E10E942F0B83E00E94050B29C5D4 -:1034500082EE0E94540C87E50E94090D22C586EE7B -:103460000E94090D88E1F8CF895A35C582EE0E9485 -:103470002F0B49C58CE20E94090D8091E801882339 -:1034800009F441C589E30E94090D3DC588E2FBCFDF -:10349000033FFCE51F0739F1A0F4083D3CE51307A5 -:1034A000F1F0093D8CE5180751F1073D9CE519073E -:1034B00009F02DC526E241EE61EEC7010E94260DFE -:1034C00053CE053FECE51E07B1F088F0063F2CE532 -:1034D000120709F01CC527E245EE66EEEECF27E2A3 -:1034E00045EE65EEEACF26E241EE60EEE6CF27E25A -:1034F00045EE64EEE2CF26E241EE62EEDECF28E258 -:1035000041E0EFCF01363DE5130709F417C5063159 -:103510002CE5120709F444C18091430282720C3CED -:10352000ECE51E0709F404C208F084C1063C2CE552 -:10353000120709F4E9C108F05BC1033C9CE51907D7 -:1035400009F4D8C108F043C1023CFCE51F0709F4A7 -:10355000ACC10A353DE5130709F426C208F002C2E2 -:1035600001159CE5190709F40FC20E3D1C4509F42D -:1035700018C2F70186819781009709F419C20E9449 -:1035800053088C01F701D280C580C2943FE0C3226A -:10359000809140028770A1F0AD2CDD2091F0812F49 -:1035A000807F803421F080E2800F883048F082E014 -:1035B0000E94C814809140028770AA24A3948111AC -:1035C000A12C912E92942FE09222FBE0F91508F4A1 -:1035D0003CC2E92DF0E0ED5BF04D0C947D2E809126 -:1035E000020380610630ECE51E0709F491C080916A -:1035F0000203886007301C4508F48AC080910203EA -:10360000806286C0809102038D7F0C302CE512070A -:1036100009F47EC058F40A308CE5180709F493C009 -:1036200008F48BC0809102038E7F72C080910203E8 -:10363000877F0E30ECE51E0709F46AC08091020313 -:103640008B7F0F301C4508F463C0809102038F7E8E -:103650005FC00C3F2CE5120709F479C068F504310E -:103660008CE5180709F48BC080F40231ECE51E07E5 -:1036700009F475C0809102038F7B03311C4508F467 -:1036800047C080910203837F43C00A3F2CE51207A5 -:1036900009F445C008F049C005311C4509F075C45E -:1036A0008091020382FB992790F921E0922790FBF9 -:1036B00082F990FB83F92CC001159DE5190709F4E7 -:1036C00054C088F48091030383600E3FFCE51F071C -:1036D00049F1809103038D7F0F3F1C4518F18091C4 -:1036E00003038C7F1FC002303DE5130709F456C069 -:1036F00008F44EC001361D4509F047C490910203FD -:10370000892F8F7E94FF806103C0809102038160C6 -:10371000809302033AC4809102038460F9CF8091C0 -:10372000030381608093030330C4809103038260AC -:10373000F9CF809102038064EBCF0E949B158091AA -:1037400002038068E5CF809102038C60E1CF809115 -:1037500003038E7FE7CF809102038F7DD9CF0E9434 -:103760009B15809102038F77D3CF80910303982F0D -:10377000909591708E7F892B90FB81F9D3CF0E9419 -:103780009B1590910203892F97FB87F98058C0CF32 -:1037900061E08EE090E00E94F52EF7C360E0F9CF83 -:1037A000882309F406C4809143028A7A91E009F4DF -:1037B00090E09093E901811106C089E20E94510ACC -:1037C0000E94E109D1CC85E3F9CF85E3F7C3043C3E -:1037D0002CE5120709F493C048E653E161E773E171 -:1037E000053C3CE5130709F0B4CE0E940606BCCCAC -:1037F000093C9CE5190709F491C070F4073CFCE50D -:103800001F0709F486C04CE553E160E573E1083C0D -:103810002CE5120751F39DCE0A3C3CE5130709F451 -:1038200082C04AE753E16BE873E10B3C9CE5190762 -:10383000E1F28FCE013DECE51E0709F487C0B0F43C -:103840000E3C2CE5120709F47BC008F476C00F3C4F -:103850008CE5180709F477C06EE089E0003D9CE52F -:10386000190709F076CE0E9406157ECC043DECE5E2 -:103870001E0709F471C078F4023D2CE5120709F423 -:1038800068C061E088E1033D3CE5130709F061CEC3 -:103890000E949C1369CC053D8CE5180709F45FC0B4 -:1038A0000D35100709F460CC54CE80918C0380FF55 -:1038B0001BC08E7F80938C0360918C0370918D036D -:1038C00080918E0390918F030E9491121092820238 -:1038D000EFEFF0E722E0E150F0402040E1F700C0D8 -:1038E00000000E94B90F40CC816080938C0361E09E -:1038F0008695CECF43EF54E16CEF74E176CF4CEF79 -:1039000054E163EF74E171CF41E753E168E673E19D -:103910006CCF40E553E16CE573E167CF48E353E1D9 -:1039200064E473E162CF44E453E168E373E15DCFA3 -:103930004BE853E16AE773E158CF61E081E0A8CF3B -:1039400065E082E090CF68E086E08DCF64E18FE0B3 -:103950008ACF67E185E187CF62E289E184CF61E0C8 -:1039600083E296CF0B35FDE51F0701F10C351D45B0 -:1039700009F0FFCD8091030382FB882780F991E055 -:1039800089270E94790EF5CD0E949B153FEF84E3B5 -:103990009CE0315080409040E1F700C000000E9460 -:1039A000300C0E942415E0CB81E0EBCF80E0E9CF22 -:1039B000828100811181882369F0C8010E94C60EAE -:1039C000D82E682FC8010E94B60AB8018D2D0E941A -:1039D000B90ED5CDC8010E948F0AD82EF6CF212F5F -:1039E0002F70C22E107F19F0C29490EFC922DD20F3 -:1039F000C9F0CC2069F080E2800F883010F001110E -:103A00000BC080914302C82AC09243020E94E10980 -:103A1000802F0E94540C19C080914202C82AC09283 -:103A20004202F4CF802F0E942F0BCC2071F0C09463 -:103A300080E2800F883010F001113AC0809143027B -:103A4000C822C09243020E94E109E92DE850FF0B11 -:103A5000349720F40E94BB050E948C0BAA20A9F089 -:103A60008091400280FD11C0F701128285958595F5 -:103A700085950E94E414C7010E9477188091400246 -:103A80008595859585950E94B71460E0C7010F90D4 -:103A90000F900F900F90DF91CF911F910F91FF909A -:103AA000EF90DF90CF90BF90AF909F900C943C0F21 -:103AB00080914202C822C0924202C5CF312F3F708E -:103AC000B32E107F103219F0B29480EFB822002389 -:103AD00069F0013081F1DD20D9F1CC2091F1F701BD -:103AE000858180FF95CF8F7085832BC0DD20B1F05D -:103AF00090914402892F8B29C11003C00E94250B8D -:103B0000A4CFE1E0CE12FACF2091030322FD9DCF96 -:103B1000981709F49ACF8093440297CFC11006C03A -:103B20000E94DB098B2D0E941A0B8FCFF1E0CF167C -:103B300009F48BCFF5CFDD2031F025E02C1508F40A -:103B400084CF8B2DDBCF34E03C1508F47ECFEACF59 -:103B5000CC2041F3093349F4FFEF27EE33E0F15075 -:103B600020403040E1F700C00000802F0E942F0B62 -:103B70006CCF812F86958695837061F0813009F036 -:103B800064CFC8019370D11002C090E080E00E9421 -:103B90008F055BCFC8019370D11002C090E080E028 -:103BA0000E94A50552CF802FDD2029F00E949D079D -:103BB0000E94BB064ACF0E94E206FACF812F837093 -:103BC00009F03FC0D11041CF402F42954695477034 -:103BD000440F440F802F8F7090E0042E02C0880F96 -:103BE000991F0A94E2F730E020E004FF09C02FE0BB -:103BF00030E002C0220F331F4A95E2F7209530953E -:103C0000169516951370123099F078F4409145028C -:103C100050914602113039F0822B932B8423952347 -:103C20000E94FF0A12CF842B952B822B932BF8CF67 -:103C3000822B932B209145023091460282279327B5 -:103C4000EFCF8695DD2011F0812F8170882309F454 -:103C5000FCCE402F429546954770440F440F802F6D -:103C60008F7090E0042E02C0880F991F0A94E2F72B -:103C700030E020E004FF09C02FE030E002C0220F56 -:103C8000331F4A95E2F720953095169516951370D7 -:103C9000123099F078F44091360350913703113087 -:103CA00039F0822B932B842395230E94A014CDCE30 -:103CB000842B952B822B932BF8CF822B932B209147 -:103CC00036033091370382279327EFCF1F70DD2013 -:103CD00029F0812F0E94E414802F10CF802F0E94A2 -:103CE0001A0B812F0E94B714B0CE023F09F441C0D5 -:103CF00060F4003F11F1013FA1F1DD2009F457C04C -:103D0000C11086CE812F8F7131C0033FB9F1043FBE -:103D1000A1F7DD2009F440C01F71812F0E94E41437 -:103D20008091030382FD07C0E8E01E9FC0011124BB -:103D3000836080934002812F19C0DD2069F084E008 -:103D40008C1508F482CE1F7181E090E002C0880FCC -:103D5000991F1A95E2F7B3CF95E09C1508F475CE3C -:103D6000F2CF812F8F71DD2009F4BCCF0E94E414C3 -:103D70006CCE812F8F71DD20C9F3B4CF90E080E04D -:103D8000DD2009F492CF1F7181E090E002C0880F1E -:103D9000991F1A95E2F789CF81E00E94C814F1E0DB -:103DA000FC1508F052CE82E00E94C8144ECECC2002 -:103DB00059F0093309F0D9CE2FEF37EE83E02150C7 -:103DC00030408040E1F7CFCE812F8F718BCF003113 -:103DD0003FE5130709F461CA01319FE51907A9F40A -:103DE00082E05CCA61E0C7010E943C0F8C01F701D0 -:103DF00082818111A7C90031FFE51F0709F453CA69 -:103E000001312FE5120709F452CA0238EFE51E0707 -:103E100009F4B5CA08F04DCA00382FE5120709F4B5 -:103E20007BCA01383FE5130709F48CCAF701828188 -:103E3000882369F0C801815E9C45059740F46FE1D5 -:103E4000600F609350028CE090E00E94F52E17FF07 -:103E50001FCBF7018281882309F459C00E94BB055A -:103E6000869581708093E80190915002913029F4F9 -:103E7000882319F089E30E94090D80914302809301 -:103E8000E7011092430280915002813009F4D3CAB5 -:103E9000882309F4CCCA823009F4DACA843009F4E0 -:103EA000DECA8FE39CE90197F1F700C000005801DA -:103EB000E894B7F84CE0C42ED12CC5010C2C02C0FC -:103EC000969587950A94E2F78F7096EF980F963043 -:103ED00008F4CACA805D0E948A0D94E0C91AD1080C -:103EE000ECEFCE16EFEFDE0641F780915002813005 -:103EF00009F4C0CA882309F4B9CA823009F4B6CAE1 -:103F0000843009F4C3CA8091E70180934302F7012A -:103F10008281882309F449C0109293030330FDE5A0 -:103F20001F0708F0EFCA0A3F2CE5120738F4980182 -:103F300022503C452431310508F0E9CA0E94950F12 -:103F4000909303038093020300318CE5180709F472 -:103F500002CC08F07ECB0830ECE51E0709F4E9CB73 -:103F600008F050CB04302CE5120709F4D4CB08F04C -:103F700036CB02308CE5180709F4C7CB80910203D9 -:103F8000826003301C4509F4C3CB60910203109199 -:103F9000030384E090E00E94F52E612F82E290E01E -:103FA0000E94F52E0E949B15DFC806311C4509F0C2 -:103FB000E0CA8091E901811108CC89E20E94260AB9 -:103FC000FFCBCF93DF938091FB01807FA1F48091A1 -:103FD000F801882381F080913F02D091FE01609129 -:103FE000F6017091F701A091F901B091FA01C62F85 -:103FF000C723D81303C0DF91CF91089590E01097A5 -:1040000011F0CF3F19F401968770F3CF9C0143E084 -:10401000220F331F4A95E1F7F901E150FE4F41812C -:104020004713F1CF40814613EECF42814111EBCFD0 -:10403000438154814A1B5B0B483C510520F780911A -:10404000FB018F7080618093FB01F901EC5FFD4FF4 -:1040500080818F708061808386EF91E00E94771865 -:10406000DF91CF910C94850AAF92BF92CF92DF92ED -:10407000EF92FF920F931F93CF93DF93CDB7DEB7ED -:1040800065970FB6F894DEBF0FBECDBF8C0185E0FB -:10409000F801DE01519601900D928A95E1F7F80141 -:1040A000E28066EFA62E61E0B62E6091F901709174 -:1040B000FA016115710509F468C19091F60140910A -:1040C000F701892F84238F3F09F45FC1208131815B -:1040D000C380D480F090F801F601E61BF70BFF20B7 -:1040E00009F41DC18091FB01582F507FE83CF10578 -:1040F00008F0D0C0511181C0FE2C43132BC0921385 -:1041000029C06091FC017091FD01F8014681578141 -:1041100064177507F9F4E1101DC08F7080618093FA -:10412000FB01C5010E9477188091FB01F80185838E -:104130008F2D65960FB6F894DEBF0FBECDBFDF9111 -:10414000CF911F910F91FF90EF90DF90CF90BF9094 -:10415000AF900895CD2829F0822F83238F3F09F057 -:104160002FC180E0F82FF170DF2E80FF3CC08091DE -:104170003F024091FE01841315C0298B3A8B898937 -:104180009A890E94020F292F22952F702230F8F071 -:10419000243020F59F70F9F0F8019581907FD9F4D3 -:1041A000D12C1FC090E0FC0153E0EE0FFF1F5A9589 -:1041B000E1F7E150FE4F5181351306C050812513C0 -:1041C00003C05281E5120FC001968770D4CF9F7053 -:1041D00011F0882329F3805E883010F3C8010E9413 -:1041E0007718FD2CA5CFEE2009F4A2CF8091FB011A -:1041F00081608093FB01F12C9BCF43131BC0921372 -:1042000019C04091FC015091FD01F80126813781D0 -:104210004217530779F4E1100DC08583C8010E944D -:10422000771888E0F801A6EFB1E001900D928A9529 -:10423000E1F77ECFC8010E940E0F882339F1EE20EE -:1042400029F18091FB018032A0F02091F60130919C -:10425000F7013A8729871B86DD86CC868E87809179 -:10426000FC019091FD01988B8F87CE0109960E94E9 -:10427000771888E0F801A6EFB1E001900D928A95D9 -:10428000E1F70E94E11FFF24F39452CFC8010E947E -:104290007718F9CF51110AC086EF91E00E94771884 -:1042A00088E0F50111928A95E9F7A5CF431318C06C -:1042B000921316C04091FC015091FD01F801268136 -:1042C00037814217530761F4E1100AC08583C801A2 -:1042D0000E94771888E0F50111928A95E9F728CFB6 -:1042E000C8010E940E0F882389F2EE2079F2809196 -:1042F000FB01803208F4BDCF2091F6013091F70127 -:104300003A8329831B82DD82CC828E838091FC01DB -:104310009091FD0198878F83CE010196A8CFE83C4C -:10432000F105C0F6FE2CEE2009F4B0CF43131FC0F8 -:1043300092131DC02091FC013091FD01F80186818E -:1043400097812817390799F49091FB0190FD69CF67 -:10435000907F09F466CF8091FB018583903F09F43B -:104360005DCF982F907F905F8F70892B56CFC801BB -:104370000E940E0F81117DCF8091FB01816080939F -:10438000FB01C8010E947718D3CEEE2009F47ECF3E -:10439000C8010E940E0FF82E882309F477CF88E019 -:1043A000F801A6EFB1E001900D928A95E1F78091B6 -:1043B000F6019091F7010E94020F0E94E11FB8CE12 -:1043C00081E08E25CFCECF93DF93CDB7DEB7609758 -:1043D0000FB6F894DEBF0FBECDBF29873A874B8753 -:1043E0005C876D877E878F87988BCE0109960E94A8 -:1043F0003420811112C088E0FE013996DE01119649 -:1044000001900D928A95E1F78C859D85892B29F085 -:1044100089859A8589238F3FA9F580913F029091E4 -:10442000FE0189131CC060960FB6F894DEBF0FBE64 -:10443000CDBFDF91CF91089593E0AA0FBB1F9A954E -:10444000E1F7A150BE4F98E0FE01319601900D9228 -:104450009A95E1F78093FE010E94850ADECFB8E0CD -:104460008B9FC001112481509E4F0E9434208823CD -:10447000D1F280913F0290E0019687709927809356 -:104480003F02CBCFA091FE01B0E0CD010196877035 -:10449000992720913F022817190671F60E949B1553 -:1044A0001092FE0110923F0288E0E6EFF1E0DF019A -:1044B0001D928A95E9F7B1CF0F931F93CF93DF93A6 -:1044C00080918A02E0918902CCE081111AC0DF91CB -:1044D000CF911F910F910895D1E0DE0FD093890203 -:1044E0000E2F10E0EC9FF0011124E557FD4F838162 -:1044F0009481892B29F08081918189238F3F51F408 -:10450000ED2F80918A02E81738F310928A021092F8 -:104510008902DDCFC09FD001C19FB00D1124A557E6 -:10452000BD4F16968D919C911797892B29F418965B -:104530008D919C91019651F420813181428153816A -:1045400064817581868197810E94E321C09FF0017B -:10455000C19FF00D1124E557FD4F14821382D0CF77 -:104560001092F6021092F502109242018091F4022C -:104570008093F3020E94F5050C945C222F923F92E7 -:104580004F925F926F927F928F929F92AF92BF9263 -:10459000CF92DF92EF92FF920F931F93CF93DF930F -:1045A000C091F302E7E0FE2E01E010E0FCE02F2EC8 -:1045B000AEEFEA2E8091F4028C1316C00E945C22AA -:1045C000DF91CF911F910F91FF90EF90DF90CF90EF -:1045D000BF90AF909F908F907F906F905F904F9023 -:1045E0003F902F900C94F505D0E0FE01EE0FFF1FD9 -:1045F000E551FD4F80819181F89EF001F99EF00D0B -:104600001124E85EFE4F2481211158C030908A02A7 -:10461000ABE8B2E030E020E0412C5F01231508F068 -:104620004BC01A966D907C901B97F501808091800D -:104630004FEF5FEF512CC52CD12CF601EE0FFF1F71 -:10464000E80DF91D659174916616770609F4A601C7 -:10465000672B11F05394EFCF4F3F5407B1F1B801DE -:1046600002C0660F771F4A95E2F7462AA80102C0EA -:10467000440F551F5A94E2F741505109441615064C -:1046800001F5229EF001239EF00D1124E557FD4F08 -:10469000F89ED001F99EB00D1124A85EBE4F12966F -:1046A0002D913C91139737832683E082E182918795 -:1046B000808771E015967C930E94C7052196C37090 -:1046C00079CF14961C921E9213972F5F3F4F1C9622 -:1046D000A5CF9F92AF92BF92CF92DF92EF92FF92BF -:1046E0000F931F93CF93DF9300D000D000D0CDB7AE -:1046F000DEB78E010F5F1F4F86E0F80111928A9599 -:10470000E9F785E7C82E81E0D82EF12CE12CAA2408 -:10471000A394B12CF60181916F018F3F09F449C038 -:10472000F894E82FE295EF70F0E021A18F70A501D9 -:1047300002C0440F551F8A95E2F7CA01922F982BA9 -:1047400091A392A18095892382A3789400C0EBE77E -:10475000F1E030E020E0912C41914F3F09F473C02B -:10476000A42FA295AF70B0E090968C9190E04F701E -:1047700002C0959587954A95E2F780FD64C08A2D21 -:10478000022E01C0880F0A94EAF7982A2F5F3F4F44 -:104790002430310509F7F601319780818F3F11F000 -:1047A0000E94F90750EA5A95F1F7F801EE0DFF1D46 -:1047B00090828FEFE81AF80AE6E0EE16F10409F0AD -:1047C000A9CF46E050E0B80184E592E00E94D42EE3 -:1047D000FF24F394009709F4F12C892BB1F186E0C2 -:1047E000F801A4E5B2E001900D928A95E1F781E02D -:1047F000809349020E948305909348028093470268 -:1048000080914702909148020E947405059708F133 -:1048100080915402809367028091550280936802D0 -:1048200080915602809369028091570280936A02B8 -:104830008091580280936B028091590280936C02A0 -:104840001092490206C080E0A0CF809149028111F8 -:10485000D7CF80914201882301F18091F502909198 -:10486000F6020097D1F00E947405209187023091E2 -:1048700088022817390788F49091F3028091F40296 -:10488000981709F445C00E94BE2210928802109227 -:1048900087021092F6021092F50280914F0288234F -:1048A00071F080914D0290914E020E947405893EF4 -:1048B000934028F082EE0E942F0B10924F028091BD -:1048C0004C02882391F080914A0290914B020E9401 -:1048D0007405883E934048F00E94830590934B02F4 -:1048E00080934A0283E70E94090D8F2D26960FB60A -:1048F000F894DEBF0FBECDBFDF91CF911F910F9116 -:10490000FF90EF90DF90CF90BF90AF909F90089571 -:104910000E945C221092F6021092F5020E94F505A8 -:10492000BCCF2F923F924F925F926F927F928F9265 -:104930009F92AF92BF92CF92DF92EF92FF920F932E -:104940001F93CF93DF93CDB7DEB769970FB6F89477 -:10495000DEBF0FBECDBF498B5A8B6B8B7C8B8D8B93 -:104960006111109242021D861E861F86188A85E0FC -:10497000FE017196DE01199601900D928A95E1F77C -:104980008C859D85892B31F089859A8589238F3F78 -:1049900009F0D4C129853A854B855C856D857E8576 -:1049A0008F8598890E94E321C3C028EFC2162CE5A9 -:1049B000D20629F4882379F00E94B022EBCF39EF98 -:1049C000C3163CE5D30639F4882329F080914201CF -:1049D0008111F2CFC3C108E111E0E12CB12CA12C6F -:1049E00088248394912C9EEF592E44244394F801FB -:1049F0006081718166246A94762C20E0422F50E019 -:104A0000FA01EE0FFF1FE60FF71F85919491C8166C -:104A1000D90609F43A01892B11F02F5FEFCFF12C61 -:104A2000FFEF6F167F0609F445C0F8014481F0904E -:104A300042018F2D411180E0F82FF170FF2EF80117 -:104A4000258086819B85992309F408C1FF2009F4FC -:104A500005C1211014C0A40101C0440F6A94EAF7F3 -:104A6000842B8683809187029091880280399140BF -:104A700030F440E951E05093880240938702C4012A -:104A800002C0880F991F2A95E2F70197F801268145 -:104A90002817190679F48091F5029091F602009793 -:104AA00009F45FC00E9474058139914008F459C02F -:104AB000F8014482EF28FFEFAF1ABF0A095F1F4FCA -:104AC00026E0A216B10409F092CF8B85882309F461 -:104AD00020C1EE2009F41DC10E9483059093F602C7 -:104AE0008093F50280918A02883010F591E0980F4A -:104AF00090938A0298E0FE013996DE0111960190AA -:104B00000D929A95E1F73CE0839FC00111248557EF -:104B10009D4F28E0FE013196DC0101900D922A950F -:104B2000E1F72FEF3FEFFC0131872087D386C28664 -:104B300069960FB6F894DEBF0FBECDBFDF91CF915F -:104B40001F910F91FF90EF90DF90CF90BF90AF90AB -:104B50009F908F907F906F905F904F903F902F909D -:104B600008958091F3026090F402982FF0E0E0E065 -:104B7000861114C09093F3020E171F0709F49ACF01 -:104B800090E0FC01EE0FFF1FE551FD4FB182A082C6 -:104B90000196837099278093F4028CCF282E312CB4 -:104BA000F101EE0FFF1FE551FD4F20813181F7E04C -:104BB000F29FD001F39FB00D1124A85EBE4F2D913E -:104BC0003C911197398F288F712C60E070E0E72FAE -:104BD000F0E0EE0FFF1F288D398DE20FF31F2591B6 -:104BE000349121153105E1F0F8010190F081E02DBB -:104BF000FF8BEE8B60E005C02417350709F47F2C8E -:104C00006F5FE62FF0E0EE0FFF1F4E895F89E40F24 -:104C1000F51F459154914115510571F77F5FD7CF2D -:104C20007720C9F0F801671708F0FD0144820E17DC -:104C30001F0721F49093F302F72C3CCF981305C083 -:104C4000AE17BF0711F49F5F937091012F5F3F4F25 -:104C5000822F83708DCFF0E0E0E0F7CF90E021105D -:104C60001FC0B40102C0660F771F2A95E2F79B01AF -:104C7000215031092817390731F4442309F447C07A -:104C8000C5010E94C705C40101C0880F6A94EAF7F4 -:104C9000982F9095F801868189238683F22C0ACF7C -:104CA0009C01062C02C0359527950A94E2F7A901CC -:104CB00041705527BC016150710986239723892BC8 -:104CC00011F5452B01F1F80182819381892BC1F007 -:104CD0001B821C821D821E8259825A820E94830579 -:104CE0008160582F9D838C83F801828193818F830B -:104CF000988729813A814B816D817E810E94E321D1 -:104D0000F8011582C0CFF22FF1702F2EBCCF2F2CBF -:104D1000BACF9091F3028091F402981731F00E947B -:104D2000BE22EE2009F436CE03CF0E945C22109200 -:104D3000F6021092F5020E94F505F3CF61E0CE0174 -:104D400009960E943C0F6C018B85F7EFCF16FCE5AE -:104D5000DF0609F02ACE882309F43DCE81E0809356 -:104D6000420118CE1F920F920FB60F9211242F936B -:104D70003F934F935F936F937F938F939F93AF93E3 -:104D8000BF93CF93DF93EF93FF93D091E900DF7050 -:104D90008091EC00C82FC17080FDC0E81092E9003E -:104DA0008091F000877F8093F00078940E94B01586 -:104DB0001092E9008091F00088608093F000CD2B84 -:104DC000CF70C093E900FF91EF91DF91CF91BF9138 -:104DD000AF919F918F917F916F915F914F913F9193 -:104DE0002F910F900FBE0F901F9018951F920F924A -:104DF0000FB60F9211242F933F934F935F936F93AE -:104E00007F938F939F93AF93BF93EF93FF93809183 -:104E1000E10082FF09C08091E20082FF05C080911D -:104E2000E1008B7F8093E1008091DA0080FF24C055 -:104E30008091D80080FF20C08091DA008E7F80931F -:104E4000DA008091D90080FF9BC080E189BD82E1BA -:104E500089BD09B400FEFDCF81E080932C038091D1 -:104E60000703811109C00E94E7030E94B2048091E8 -:104E7000E20084608093E2008091E10080FF17C02F -:104E80008091E20080FF13C08091E2008E7F8093CA -:104E9000E2008091E20080618093E2008091D8007E -:104EA00080628093D80019BC85E080932C038091A8 -:104EB000E10084FF29C08091E20084FF25C080E1E9 -:104EC00089BD82E189BD89B5982F917080FFFBCFA4 -:104ED0008091D8008F7D8093D8008091E1008F7EF3 -:104EE0008093E1008091E2008F7E8093E2008091C8 -:104EF000E20081608093E20080912D03882309F411 -:104F000045C084E080932C038091E10083FF27C09B -:104F10008091E20083FF23C08091E100877F80932E -:104F2000E10082E080932C0310922D038091E10038 -:104F30008E7F8093E1008091E2008E7F8093E2007B -:104F40008091E20080618093E20042E060E080E0D6 -:104F50000E9480048091F00088608093F000FF91AF -:104F6000EF91BF91AF919F918F917F916F915F91E1 -:104F70004F913F912F910F900FBE0F901F9018955A -:104F800019BC10922C031092070376CF8091E30096 -:104F900087FD93E090932C03B7CF78941F921FB6B0 -:104FA0001F9211248F939F93AF93BF938091FE0222 -:104FB0009091FF02A0910003B09101030196A11D01 -:104FC000B11D8093FE029093FF02A0930003B09363 -:104FD0000103BF91AF919F918F911F901FBE1F90B2 -:104FE00018951F921FB61F9211248F939F93AF9312 -:104FF000BF938091FD02811113C08091FE029091B8 -:10500000FF02A0910003B09101034196A11DB11DC3 -:105010008093FE029093FF02A0930003B0930103DC -:10502000BF91AF919F918F911F901FBE1F901895B8 -:10503000CDB7DEB7EE970FB6F894DEBF0FBECDBF8B -:1050400084B7877F84BF0FB6F894A89580916000DD -:10505000886180936000109260000FBE80E890E04D -:105060000FB6F89480936100909361000FBE85B7EE -:10507000806885BF85B7806885BF87EF97E090938C -:10508000C5018093C4010E94E7030E94B20480918D -:10509000E20084608093E200789480912C0388235E -:1050A000A1F01091E9001F709091EC00892F8170A0 -:1050B00090FD80E8182B1092E9008091E80083FDB4 -:1050C0000E94B0151F701093E90082E084BD93E048 -:1050D00095BD9AEF97BD80936E000E947C0F811161 -:1050E00002C00E946A0E05E711E02BE7C22E21E004 -:1050F000D22EF80181918F018F3F11F00E94F907A4 -:10510000C016D106B1F786EF0E94F90787EF0E941B -:10511000F90783E90E94F90786E90E94F907E4E5A7 -:10512000F2E08AE592E0A7E6B2E011921D928E17B6 -:105130009F07D9F70E949015811102C00E94241583 -:1051400082E090E00E94E12E809360020E94950F21 -:1051500090930303809302030E9469238FE39CE9E9 -:105160000197F1F700C000000E9469238091670257 -:1051700080FF08C06FEF7FEF90E080E00E94132F68 -:105180000E94300C83E090E00E94E12E90E00E94AB -:10519000FF0A80913603909137030E94FB13509AC7 -:1051A000589A559A5D9A549A5C9A8CE090E00E94C5 -:1051B000E12E90E0B0E0A0E0809350029093510285 -:1051C000A0935202B093530280915A02811133C0CE -:1051D0000E949015811104C00E9424150E9414158C -:1051E00088E090E00E94E92E60938C0370938D0319 -:1051F00080938E0390938F036E7F71F40E94141539 -:1052000088E090E00E94E92E60938C0370938D03F8 -:1052100080938E0390938F030E940C06109282025B -:1052200080918C0380FF04C060E086950E949C13EF -:1052300081E080935A025198599A52985A9A89B1AA -:10524000869581704A9922C290E0892B80935E02F4 -:1052500060E081E20E949C1381E090E00E94A01433 -:1052600080E091E09093FA028093F90218E1C12E58 -:10527000D12C00E4A02E87E692E096E0B92EB80E7D -:1052800080912C039924939400E112E1853009F474 -:1052900051C20E946923882359F08FB7F894409136 -:1052A000FE025091FF0260910003709101038FBFD5 -:1052B000E1E6F2E0A7E6B2E010E000E0302F8D91E9 -:1052C0009191981709F45FC2292F282790E099241B -:1052D0009394422F492109F451C29DAB3EAB8921E1 -:1052E00091E009F490E09FAB0E9483058160782FE4 -:1052F00099AF88AF4DA95EA96FA989AD0E9491248D -:10530000F801EF59FD4F80819826908280918202AA -:105310008823D1F180918102E0918C03E695E81B0E -:10532000E0937D02823009F045C2F0E0EA55FD4F7E -:10533000E4910E2F10E0BDE78B2EB2E19B2E809101 -:105340007E02882361F010927E020E948305909372 -:105350007C0280937B021092800210927F020E9456 -:105360008305E0917B02F0917C028E1B9F0B8F3FA7 -:105370009F4750F4E00FF11FF0937C02E0937B0213 -:105380008BE792E0F4010995E0915E02EE0FEE0FDB -:10539000E0935E0289B181FBEE24E0F84A9964C291 -:1053A00080E08E29E82BE0935E02EF70F0E0E15898 -:1053B000FE4F808190915D02890F80935D0220E015 -:1053C000843034F180915C028F5F80935C0212E044 -:1053D00018AB19AA81E08AAB0E9483058160782FFF -:1053E0009CAB8BAB48A959A96AA98CA90E949124AE -:1053F0001BA71CA61DA60E9483058160782F9FA76E -:105400008EA74BA55CA56DA58FA50E94912421E0D8 -:1054100080915D028D3F2CF580915C0281508093DC -:105420005C021EA21FA281E088A70E948305816002 -:10543000782F9AA789A74EA15FA168A58AA50E9487 -:10544000912419A21AA21BA20E9483058160782FC1 -:105450009DA38CA349A15AA16BA18DA10E94912467 -:1054600021E080915D02082E000C990B64E070E051 -:105470000E94472E80935D02222359F08FB7F89443 -:105480004091FE025091FF02609100037091010370 -:105490008FBF86E0E4E7F2E0DE01119601900D9205 -:1054A0008A95E1F7909076028090770210917802C9 -:1054B000009179021092760210927702109278028F -:1054C00010927902892D882909F448C080917202CE -:1054D000909173020E9474059C0190916E02992331 -:1054E00009F4AEC323333105C8F19F3F19F09F5F24 -:1054F00090936E02992059F00E947D079FEF191436 -:105500000CF491E0899F802D1124809376028820ED -:1055100059F00E947D079FEF18140CF491E0899FC9 -:10552000802D112480937702309176023323B1F0DD -:1055300020917702222391F045EB3403C00111241E -:10554000992309F494C19093760245EB24039001CA -:105550001124332309F48FC130937702812F802BDC -:1055600009F448C080917002909171020E94740504 -:105570009C0190916D02992309F45DC32536310594 -:10558000C8F19F3F19F09F5F90936D02112359F06E -:105590000E945B079FEF11160CF491E0899F802D0C -:1055A000112480937802002359F00E945B079FEF3B -:1055B00010160CF491E0899F802D112480937902BC -:1055C000309178023323B1F020917902222391F0B7 -:1055D00045EB3403C0011124992309F450C1909381 -:1055E000780245EB240390011124332309F44BC1C5 -:1055F000309379028091760290917702892B909175 -:105600007802892B90917902892B11F00E94BB06B8 -:1056100086E0FE013196A4E7B2E001900D928A95F2 -:10562000E1F70E94BB0590915F02891731F00E945B -:10563000BB0580935F020E948C0B80912C03843009 -:1056400009F01ECE83E08093E9008091E80082FF9C -:1056500017CE8091E80090E085FF06C00E94060406 -:10566000882309F414C191E08091E8008B7780933E -:10567000E800992309F404CEE981E150E33108F010 -:1056800088C1F0E0E15BF04D0C947D2E92E0DDCD21 -:1056900080912C03843009F440C080E00E948C0B80 -:1056A0001092820280917A02811116C090927A0241 -:1056B00080918C03982F917090935B028E7F8093E2 -:1056C0008C039FEFE0E7F2E09150E040F040E1F71B -:1056D00000C000000E94B90F1092FD020FB6F894AE -:1056E000A895C09260000FBEA092600083B7817F32 -:1056F000846083BF83B7816083BF7894889583B7C4 -:105700008E7F83BF0FB6F894A89580916000886162 -:1057100080936000109260000FBE80912B0388235D -:1057200049F00E946923E7E6F2E08191811164C2A9 -:10573000BE12FBCF80912C03853009F4A9CF0E94C3 -:105740009B150E94BB050E948C0B10927A028091DF -:105750005B02882361F080918C03816080938C03CD -:1057600060E086950E949C130E94A30F92CD8091C9 -:1057700083028823C9F30E94B90FF6CF9F5F990C6B -:10578000943009F0A6CD0F5F1F4F0630110509F0C8 -:1057900095CD8FEF8AAF8BAF1CAE0E9483058160E1 -:1057A000782F9EAF8DAF4AAD5BAD6CAD8EAD0E94D4 -:1057B0009124ACCD863059F4F0E0ED55FD4FE491E5 -:1057C0000E2F10E0ADE68A2EA2E19A2EB8CD8930D8 -:1057D00061F4E695F0E0E056FD4FE4910E2F10E005 -:1057E000F9ED8F2EF1E19F2EAACD8F3061F4E69571 -:1057F000F0E0E356FD4FE4910E2F10E0EBE68E2E25 -:10580000E1E19E2E9CCD853159F4F0E0E656FD4F46 -:10581000E4910E2F10E07DE1872E71E1972E8FCD60 -:1058200008E210E044E9842E40E1942E883109F426 -:1058300086CD833249F4E8E9F2E00591149164E100 -:10584000862E62E1962E7BCD04EF11E05BE5852E7E -:1058500050E1952E843209F472CD00ED17E03BE063 -:10586000832E36E0932E6BCD82E090E09ACD81E0DE -:10587000809376026ACE81E0809377026FCE81E0DA -:1058800080937802AECE81E080937902B3CE00E2BD -:1058900010E0CE0101964C018091E80085FD0AC020 -:1058A0008091E8008B778093E8000E9406048823AB -:1058B00099F3D9CE8091F100F40181934F01015009 -:1058C000110951F7D0CE1A8289E08B832DC08A81CD -:1058D000823009F4A7C18330A9F0813009F059C0A2 -:1058E0002FB7F8946091FE027091FF02809100033F -:1058F000909101032FBF0E94832E6B837C838D8345 -:105900009E8312C0809167028B83809168028C8392 -:10591000809169028D8380916A028E8380916B02EF -:105920008F8380916C02888780912C03843009F0EA -:10593000A7CC1091E9001F709091EC00892F817025 -:1059400090FD80E8182B82E08093E9008091E800C8 -:1059500080FF0DC050E040E060E270E0CE010196B3 -:105960000E9437048091E8008E778093E8001F70D2 -:105970001093E90085CC8A81823059F46B817C8157 -:105980008D819E810E94832E86E290E00E94F52EFA -:10599000CBCF8FEF8983C8CF4C816B818A810E94E6 -:1059A000930E9827892798279E838D83BDCF8D805E -:1059B0009E809824892498248A810B81F8E00F9F87 -:1059C0008001112420E3829F000D111D11248C8180 -:1059D00090E0880F991F080F191F692DC80187963D -:1059E0000E94F52E682DC8018896D0CF0E94000E27 -:1059F0009BCF8A818138C1F060F4803809F094CF60 -:105A000020E04B8160918E0380918D030E94A31250 -:105A10008BCF823859F1833809F086CF20E040914E -:105A20008F036C818B81F2CF60E08B810E949C138D -:105A30009B8180918C03911111C08E7F80938C0388 -:105A4000109282024FEF80E792E0415080409040F8 -:105A5000E1F700C000000E94B90F66CF816080931B -:105A60008C0360E086950E949C135ECF8B818093AF -:105A700090035ACF8A81813899F030F4803809F048 -:105A800053CF80918F0321CF823891F0833809F072 -:105A90004BCF80918D038B8380918E038C8344CF79 -:105AA00080918C0380FF02C086950FCF80E00DCFE0 -:105AB000809190030ACF60918C0370918D03809147 -:105AC0008E0390918F030E9491122ECF80E18A83E2 -:105AD0002BCF81E08A8389EFF8CE0A811B811027C2 -:105AE00001271027FE0131963F018C80CF01880DE0 -:105AF000911D4C01C801895F9D4F8614970409F4DC -:105B000013CF093FE1E01E0750F40E94E12EF3019C -:105B100084830F5F1F4FFFEF6F1A7F0AEBCFF301F4 -:105B20001482F7CF0A811B81102701271027CE018D -:105B300001963C018C80800E912E911CC801895FDA -:105B40009D4F8016910609F4EFCE093FE1E01E0754 -:105B500020F4F30164810E94F52EFFEF6F1A7F0A93 -:105B60000F5F1F4FEBCF0E94F00DDECE8AE0AFCF6C -:105B70000A811B81102701271027CE0101963C01C5 -:105B80008C80FC01E80DF11D4F01C8018796861439 -:105B9000970409F4C9CE003EF1E01F0750F40E94BB -:105BA000E12EF30184830F5F1F4FFFEF6F1A7F0A0F -:105BB000ECCFF3011482F7CF0A811B811027012754 -:105BC0001027CE0101963C018C80800E912E911CF5 -:105BD000C80187968016910609F4A6CE003EE1E042 -:105BE0001E0720F4F30164810E94F52EFFEF6F1A67 -:105BF0007F0A0F5F1F4FECCF09BD19BD09B400FE2E -:105C0000FDCF8091D8008F7D8093D8008091E000F7 -:105C100082608093E0008091E00081FDFCCF0E94D3 -:105C20009B1588CD86E290E00E94E12E1B821C82AB -:105C30001D828E8379CE2D32314008F0A4CCDACC8F -:105C40002D32314008F053CC89CC87FB082E062634 -:105C500087FD819567FD61950E94BB2E0EF491959D -:105C600007FC81950895AA1BBB1B51E107C0AA1F21 -:105C7000BB1FA617B70710F0A61BB70B881F991FED -:105C80005A95A9F780959095BC01CD01089597FB91 -:105C9000072E16F4009407D077FD09D00E94332E0A -:105CA00007FC05D03EF4909581959F4F089570951F -:105CB00061957F4F0895A1E21A2EAA1BBB1BFD011F -:105CC0000DC0AA1FBB1FEE1FFF1FA217B307E407DB -:105CD000F50720F0A21BB30BE40BF50B661F771F33 -:105CE000881F991F1A9469F7609570958095909513 -:105CF0009B01AC01BD01CF010895EE0FFF1F059080 -:105D0000F491E02D0994692796276927782787273A -:105D1000782708950E94922E332312F48A1B9B0B3E -:105D20000C94A32EA29FB001B39FC001A39F700D3E -:105D3000811D1124911DB29F700D811D1124911D93 -:105D400008950E94922EB7FF0895821B930B089529 -:105D50000E94922EA59F900DB49F900DA49F800D40 -:105D6000911D11240895B7FF0C94A82E0E94A82E0F -:105D7000821B930B0895991B79E004C0991F961715 -:105D800008F0961B881F7A95C9F780950895FC0145 -:105D90004150504030F001900616D1F73197CF01B5 -:105DA0000895882799270895FB01DC0104C08D918F -:105DB0000190801921F441505040C8F7881B990B7D -:105DC0000895F999FECF92BD81BDF89A992780B5C3 -:105DD0000895A6E1B0E044E050E00C941B2FA8E148 -:105DE000B0E042E050E00C941B2F262FF999FECF33 -:105DF00092BD81BDF89A019700B4021639F01FBA1E -:105E000020BD0FB6F894FA9AF99A0FBE089503963A -:105E1000272F0E94F62E0E94F52E252F0E94F62E87 -:105E2000242F0C94F62E0196272F0E94F62E0C9408 -:105E3000F52EDC01CB01FC01F999FECF06C0F2BDC5 -:105E4000E1BDF89A319600B40D9241505040B8F738 -:105E50000895F894FFCF270F270F300F300F320F20 -:105E6000300F300F300F270F270F370F300F300F45 -:105E7000370F9516BD161017BD161017F0162817F8 -:105E8000101725183218EF1CEF1C5E1D5E1DB91D82 -:105E9000D31D251D251DDE1D661E751E751E632C5A -:105EA000672CBB2CCC2CD72CF62CF92C3A2D5B2D47 -:105EB000C92CC92C662D692D6D2D922DB32DB62DB3 -:045EC000B82DDC2DF0 -:105EC4007105F00BCF0BCB0BC70B01191A1B1C1D53 -:105ED4001E1F202122010201CA002A00000000C462 -:105EE400004C00000000BE005000000000B800514B -:105EF40000000000B2004F00000000AC005200009F -:105F040000000101818283E200E900EA00B500B6E5 -:105F140000B700CD008301CC008A019201940121D5 -:105F240002230224022502260227022A02B300B415 -:105F3400006F007000F03435366667F6F79396000C -:105F4400FF0100010000FFFF0000010001FF00004D -:105F540001020202020606060909090909090F0FCE -:105F64000F0F0F0F151515181919191919191919D2 -:105F7400191923244022B6A8018601D000BD06D6F3 -:045F840006F6060017 +:101A100008951F93CF93DF93182FCAE0D0E0893346 +:101A200011F4C0E5D0E0812F0E94540C8FE99FE0B3 +:101A30000197F1F700C000002197C1F7812FDF91D6 +:101A4000CF911F910C942F0BDF92EF92FF920F9387 +:101A50001F93CF93DF93E82FF0E0E85EFD4FD49023 +:101A6000282F26952695269530E0F901E85FFD4F51 +:101A70000491877010E0082E02C0159507950A940E +:101A8000E2F701701127F901E850FE4FE490F12CC4 +:101A9000082E02C0F594E7940A94E2F791E0E92257 +:101AA000FF24F901E851FE4FC491D0E002C0D59562 +:101AB000C7958A95E2F7C170DD270115110519F068 +:101AC00081EE0E94540CE114F10419F086EE0E949C +:101AD000540C8D2D0E94090DEF2819F086EE0E94FE +:101AE0002F0B012B19F081EE0E942F0BCD2B51F003 +:101AF0008CE2DF91CF911F910F91FF90EF90DF90DB +:101B00000C94090DDF91CF911F910F91FF90EF90F1 +:101B1000DF900895CF93DF93C7E0D2E060E0CE017D +:101B20000E944B2E2196C11584E0D807B9F7DF91AA +:101B3000CF9108956F927F928F929F92AF92BF92B2 +:101B4000CF92DF92EF92FF920F931F93CF93DF9389 +:101B50008BECC82E84E0D82E0FE510E0E801E0976A +:101B600036011CC0F50185909490692DC7010E9433 +:101B70004B2E682DC70101960E944B2E82E0A80EC5 +:101B8000B11C82E0E80EF11CCE15DF0559F788E0A4 +:101B9000680E711C28960C171D0731F07E0188E035 +:101BA000E81AF1085301DECF005D1F4F80E3C80E35 +:101BB000D11C0F3382E0180789F6DF91CF911F9176 +:101BC0000F91FF90EF90DF90CF90BF90AF909F90DC +:101BD0008F907F906F900895CF93C82F6FEF8111F2 +:101BE00061E283E290E00E944B2E6FEFC11161E150 +:101BF00084E290E00E944B2E6FEFC11165E285E216 +:101C000090E0CF910C944B2E80E00E94EC0D60E0B0 +:101C100086E290E00E944B2E0E949A0D0E948A0D4F +:101C200081E00C94EC0DCF93C0916403C2FB992723 +:101C300090F9981781F080FBC2F9C093640360911A +:101C4000630384E090E00E944B2E6C2F82E290E0D0 +:101C5000CF910C944B2ECF9108950F931F93CF9358 +:101C6000DF9328E0629FE001112450E0440F551FEC +:101C7000C40FD51F30E3839FC00DD11D1124CE01A9 +:101C800087960E94372E082F10E0102F0027CE01D4 +:101C900088960E94372E9801282BC901DF91CF9199 +:101CA0001F910F910895462F8A3038F4763028F42A +:101CB000643018F4672F0C942D0E90E080E00895A6 +:101CC000BF92CF92DF92EF92FF920F931F93CF9329 +:101CD000DF937C0100919803109199038091460253 +:101CE00090914702082B192BCFE0D0E0CC24C3946D +:101CF000D12CBC2EC6010C2E02C0880F991F0A944D +:101D0000E2F780239123892B71F4219790F7B12C6E +:101D10008B2DDF91CF911F910F91FF90EF90DF906E +:101D2000CF90BF900895B7018C2F0E94530E0E9450 +:101D30005308019751F3ECCFCF93DF93EC010E944E +:101D4000600EBE010E94530EDF91CF910C94530898 +:101D5000FC0186819781009779F00E945308292F12 +:101D60002F7092959F7092509E30A0F4E92FF0E072 +:101D7000EF57F14D0C94D32D808191810E949C0EE0 +:101D8000EECF803F19F020F4883E20F481E00895E2 +:101D9000843FE1F380E00895883EC0F3813FD1F7AE +:101DA000F5CF822F86958695869508951F93CF93BC +:101DB000DF9300D000D00F92CDB7DEB7FC012681B3 +:101DC00037812115310541F525E0DE01119601909D +:101DD0000D922A95E1F7FC01228189819A812223C3 +:101DE000B9F06623A9F00E94600E182F682F898130 +:101DF0009A810E94B60A69817A81812F0F900F9093 +:101E00000F900F900F90DF91CF911F910C94530E74 +:101E10000E948F0A182FEFCFC9010F900F900F90DB +:101E20000F900F90DF91CF911F91089583E290E082 +:101E30000E94372E813289F484E290E00E94372E8E +:101E4000813159F485E290E00E94372E91E085328D +:101E500009F090E0892F8170089580E0FCCF6091B7 +:101E6000E302669570E04BE050E08AE091E00E946A +:101E70001D2E892B19F481E080938A020E9483052C +:101E800090938402809383020895CF92DF92EF9221 +:101E90000F931F93CF93DF93CDB7DEB7C455D1090E +:101EA0000FB6F894DEBF0FBECDBF609119018091CF +:101EB000E30280FF4CC0EFEAF3E09E012F5F3F4F4B +:101EC0008E010B5A1F4FC901A4914A2F50E0DA012D +:101ED000AA0FBB1FA40FB51FA157BD4FCD90DD901A +:101EE000EC90D901CD92DD92ED929D0131960A17C9 +:101EF0001B0751F72091180143E0249F800D911D8D +:101F00001124279A25B12F7735B130685FB7F8943F +:101F1000FC01649FE00DF11D1124BF0168177907D2 +:101F200049F55FBFEFE5F4E03197F1F700C000003D +:101F3000CC5ADF4F0FB6F894DEBF0FBECDBFDF9196 +:101F4000CF911F910F91EF90DF90CF9008958091E6 +:101F50001A0190911B0123E0829FF0011124E157A7 +:101F6000FD4F891708F0A7CF1182108212828F5F70 +:101F70003396F7CFDC014D91CD01E8E035B9000093 +:101F800000C047FF25B9440F000000C000C000C0DA +:101F900025B900C0EA9591F7C1CF0F931F93CF9356 +:101FA000DF93EC0110E000E090911C019017110606 +:101FB00009F06CF40E94450F8C8190E001968170CD +:101FC00099278C83DF91CF911F910F9108952091D4 +:101FD0001A01A801420F511D9A01220F331F240F2D +:101FE000351F21573D4F4C816091E5028091E402FD +:101FF00096959017110651F04CF0442349F040910A +:10200000E6020E9422060F5F1F4FCECF4423B9F392 +:1020100040E0F7CF8F929F92AF92BF92CF92DF9224 +:10202000EF92FF920F931F93CF93DF93EC014C81BC +:10203000042F10E09801D8010E94E82D9B01AC010B +:102040000E94FE2D4B015C01E0E2F0E0E01BF10B91 +:10205000A5E5B0E0AC019B010E94FE2D6B017C0167 +:102060009F01DF010E94E02D9B01AC010E94092E1F +:102070009B01AC01280D391D4A1D5B1DC701B6012E +:102080000E94B12DF22E822F90E039E23F1560F1CF +:1020900043E0249F9001112435952795122F109528 +:1020A00000E085E5E82EEF1880911C01081758F133 +:1020B0000E94450F9C8181E0992319F0903219F418 +:1020C0008FEF8093170180911701890F8C83DF9127 +:1020D000CF911F910F91FF90EF90DF90CF90BF9025 +:1020E000AF909F908F90089525E530E0B901681B6F +:1020F000790B9B01220F331F260F371F37FFCCCFE1 +:102100002F5F3F4FC9CF8E2D01FD8F2D20911A01DA +:10211000622F600F7727771F9B01220F331F260F37 +:10212000371F21573D4F412F6091E5020E94220643 +:102130000F5FBACF0F931F93CF93DF9380911A0154 +:1021400090911B0123E0829FF0011124E157FD4F84 +:10215000891740F1C0E0D3E060911C01C61740F13F +:102160000E94450F2091150180918D02820F80936E +:102170008D0290911601920F90931601191654F446 +:10218000082E000C990B40911C014150550B8417EF +:1021900095071CF0219520931501DF91CF911F9198 +:1021A0000F9108951182108212828F5F3396D0CFE3 +:1021B0000C2F10E070E0C8010E949D2D20911A01A3 +:1021C000820F482F50E020918D02022E000C330B1D +:1021D00002171307BCF020911601022E000C330BDE +:1021E000201731077CF08D9F9001112421573D4F1E +:1021F0004091E6026091E5028091E4020E9422068D +:10220000CF5FAACFFA01EE0FFF1FE40FF51FE157D2 +:10221000FD4F118210821282F3CF9F92AF92BF9234 +:10222000CF92DF92EF92FF920F931F93CF93DF93A2 +:10223000FC0182810FEF80FF01E010E04CE1942E61 +:10224000A0901C011A15D0F00E94450F80918C02BD +:10225000013009F054C0811102C080911C018150ED +:1022600080938C02DF91CF911F910F91FF90EF909F +:10227000DF90CF90BF90AF909F900895C0911A01CA +:10228000C12ED12CCC0DDD2DD11DCE01880F991F73 +:10229000C80FD91FC157DD4F198218821A8234E046 +:1022A000E32EF12CB12C80918C028B0D8D311CF121 +:1022B000692D0E947B2D892F082E000C990BC816C2 +:1022C000D90691F48091E6028E9DA0018F9D500D5C +:1022D000112455954795559547959E016091E502C6 +:1022E0008091E4020E942206B00EF1E0EF1AF1089C +:1022F000D1F61F5FA5CF87FFDFCF8A0DDDCF90E03E +:10230000019660911C0170E00E949D2DA9CFEF9273 +:10231000FF921F93CF93DF93EC0110E0EE24EA9439 +:10232000F12C60911C01161770F00E94450F9A81E4 +:102330008C8190FF27C08F5F8C83DF91CF911F919D +:10234000FF90EF90089520911A01422F410F5527D9 +:10235000551FCA019A01220F331F280F391F215719 +:102360003D4F70E0C7010E949D2D962F8C814091BA +:10237000E6026091E502199F800D11240E94220659 +:102380001F5FCFCF8150D8CF1F93CF93DF9300D063 +:102390000F92CDB7DEB7122F9091E30290FF16C0D7 +:1023A0009E012F5F3F4F0E9422068B819981212F32 +:1023B00030E0F901EE0FFF1FE20FF31FE157FD4F71 +:1023C0002A812183908382830E94450F0F900F9072 +:1023D0000F90DF91CF911F9108959091E30290FFAC +:1023E00014C090911A0120911B0133E0939FF001DA +:1023F0001124E157FD4F921710F00C94450F818383 +:10240000608342839F5F3396F6CF08950F931F93A7 +:10241000CF93DF9300D00F92CDB7DEB78C018091C0 +:102420008E0281110AC09E012F5F3F4F44EB6FEF78 +:102430000E9422068A8180938E02F80164816130B5 +:1024400069F080918E0240E0662361F040E06230E6 +:1024500011F440918E0280E060E004C060918E0231 +:1024600040E080E00E94ED11F801848190E0019647 +:1024700063E070E00E949D2D84830F900F900F9079 +:10248000DF91CF911F910F910895CF93DF9300D0EB +:102490000F92CDB7DEB79091E30290FF0AC09E0184 +:1024A0002F5F3F4F0E9422064B8169818A810E94E3 +:1024B000ED110F900F900F90DF91CF910895CF9372 +:1024C000DF93EC01E3EEF2E0438162818C810E94B4 +:1024D00045128C818F5F8C83DF91CF910895CF93CC +:1024E000DF93EC01EC81F0E0E553FC4F4491E3EE27 +:1024F000F2E0628181810E9445128C818F5F8C8322 +:10250000DF91CF910895CF92DF92EF92FF926B010E +:102510007C010E940C06B701A60188E090E0FF90C4 +:10252000EF90DF90CF900C945D2EAF92BF92CF9240 +:10253000DF92EF92FF920F931F93CF93DF9300D020 +:102540000F92CDB7DEB7182FF62E042FE22E909102 +:10255000E30290FF29C0E92FE695AE2FB0E0AC561C +:10256000BE4F8C91809389029E7F923059F59E01D7 +:102570002F5F3F4F812F0E9422064B8169818A8104 +:102580000E94ED111093E402F092E5020093E6023E +:10259000EE2051F06091E3027091E4028091E50237 +:1025A0009091E6020E9483120F900F900F90DF919E +:1025B000CF911F910F91FF90EF90DF90CF90BF9040 +:1025C000AF900895823019F40091E602DBCF863097 +:1025D00019F41091E402D6CF8930D9F3893191F6FC +:1025E000E9518E2F8170D82EE695F0E0E655FC4F2C +:1025F000A590B490C12CBB2460911C01C61618F0A4 +:102600000E94450FBFCF2C2D30E0A29EC001A39E9B +:10261000900DB29E900D112470E00E94892D812FA3 +:10262000D11013C0860F40911A01420F532F511D34 +:102630009A01220F331F240F351F21573D4F402F82 +:102640006F2D0E942206C394D7CF861BECCFE3EEFA +:10265000F2E0438128E0421B08F440E021E062817F +:1026600081810C949512E3EEF2E0438128E0420F61 +:1026700008F44FEF21E0628181810C949512E3EE22 +:10268000F2E0628128E0621B08F460E021E043810F +:1026900081810C949512E3EEF2E0628128E0620FF2 +:1026A00008F46FEF21E0438181810C949512E3EEF1 +:1026B000F2E0818121E04381628188500C9495127F +:1026C000E3EEF2E0818121E043816281885F0C9436 +:1026D00095128091E702882319F081508093E702D8 +:1026E0006091E3027091E4028091E5029091E6022C +:1026F0000C9483128091E702833018F48F5F8093EB +:10270000E7026091E3027091E4028091E50290910A +:10271000E6020C9483129091E30290FF36C0917010 +:10272000811129C092609093E302662351F0609179 +:10273000E3027091E4028091E5029091E6020E942A +:1027400083126091E302669570E04BE050E08AE00E +:1027500091E00E941D2E892BA9F010928A0281E03F +:102760008093860220E04091E6026091E50280912C +:10277000E4020C949512853210F09864D4CF880F3F +:10278000982BD1CF0E942F0FEACF089560E00C94D0 +:102790008B1321E030E0A90102C0440F551F8A9538 +:1027A000E2F7CA0120918B02662391F0822B80937D +:1027B0008B0280918A02811105C08091E302869587 +:1027C0000E94C6138091E30280FD05C00C94450F62 +:1027D00080958223ECCF08950F931F93CF93DF93BF +:1027E000EC0161E0009709F0682F617080E00E94C1 +:1027F000C91360E0209721F0BE017695679561705E +:1028000081E00E94C91360E0209731F0BE01769507 +:10281000679576956795617082E00E94C91360E0C4 +:10282000209739F0BE0113E0769567951A95E1F788 +:10283000617083E00E94C91360E0209739F0BE0107 +:10284000B4E076956795BA95E1F7617084E00E94EF +:10285000C913AE0170E060E0BB27A72F962F852F2C +:102860000097A105B105D9F1AC01BD0188E08A014D +:102870009B01F4E03695279517950795FA95D1F7C2 +:10288000011511052105310519F08C5FB901A80169 +:102890008A019B01E2E03695279517950795EA9501 +:1028A000D1F7011511052105310519F08E5FB90128 +:1028B000A8017695679557954795452B462B472B4D +:1028C00009F08F5F823019F160F4882399F081302C +:1028D000C1F0CE01DF91CF911F910F91089580E05B +:1028E000C6CF8330C9F08430A1F720E044E66FEF13 +:1028F0008FE004C020E044E66FEF82E30E9495126F +:10290000E8CF20E044E66FEF85E00E94951220E0DA +:1029100044E66FEF80E8F2CF20E044E66FEF87ED0A +:10292000EDCF0E94EC1390939903809398030C943D +:10293000E20A80919803909199039C0126703327B5 +:102940002630310519F488600C949114877FFCCFF0 +:1029500021E030E002C0220F331F8A95E2F7209574 +:1029600030958091980390919903822393230C943E +:102970009114909142028095892380934202282FDE +:10298000277039F4282F082E000C330B92171306EA +:1029900021F49091640392FF07C0859585958595F4 +:1029A0000E94A81410924202089521E030E002C073 +:1029B000220F331F8A95E2F7809198039091990333 +:1029C000822B932B0C9491148091E3028695815075 +:1029D00009F484E261E00C948B138091E302869504 +:1029E0008F5F853208F081E061E00C948B13909149 +:1029F000E30290FF07C09695981720F0961710F401 +:102A00000C94ED1461E00C948B13E3EEF2E083E0A0 +:102A1000808311828FEF828388E2838314826081B6 +:102A20007181828193810C94831269EE7EEF90E034 +:102A300080E00E94692E60E082E090E00E944B2ED0 +:102A400060E083E090E00E944B2E109247021092CB +:102A5000460260E084E090E00E944B2E60E082E25B +:102A600090E00E944B2E60E085E090E00E944B2EAB +:102A700060E086E090E00E944B2E6FEF87E090E0F0 +:102A80000E944B2E40E050E0BA0188E090E00E94A6 +:102A90005D2E60E08DE090E00E944B2E40E050E023 +:102AA000BA0188E190E00E945D2E60E087E190E04D +:102AB0000E944B2E40E050E0BA018CE190E00E9471 +:102AC0005D2E70E060E080E290E00E94692E40E0C0 +:102AD00050E0BA0188E190E00E945D2E80E00E9403 +:102AE000EC0D0E94040E40E050E0BA018FE090E04F +:102AF0000E945D2E40E050E0BA0183E190E00C942A +:102B00005D2E90E080E00E94452E893E9E4F11F49C +:102B10000C94160F80E0089580914801ECECF1E0F0 +:102B2000882359F08091630387FF07C08EE1DF019E +:102B30001D928A95E9F70C94E20A86E0F8CF9F92FD +:102B4000AF92BF92CF92DF92EF92FF920F931F93BB +:102B5000CF93DF9300D000D0CDB7DEB77C01FC016E +:102B600083819481892B31F08081918189238F3FEA +:102B700009F001C60F900F900F900F90DF91CF9149 +:102B80001F910F91FF90EF90DF90CF90BF90AF908B +:102B90009F900895980122513F452031310508F05A +:102BA000DFC58FEF93E00E94372E025167E0C62EFB +:102BB00062E0D62E882339F1809142028770D1F2EB +:102BC000F70182818823B1F282E00F900F900F907D +:102BD0000F90DF91CF911F910F91FF90EF90DF90B9 +:102BE000CF90BF90AF909F900C94B914C114F4E0B3 +:102BF000DF0611F3C6010E94372E811101C001507A +:102C00002FEFC21AD20A0111F1CF1C821B82BB2402 +:102C1000B3945AE0A52E86010F5F1F4FC6010E9494 +:102C2000372E89831A82882339F29FEF980F9330C9 +:102C300008F58A83B98232E0C30ED11CC8010E9414 +:102C4000372E8B83882309F4B7CF8E010F5F1F4F78 +:102C5000F80180818823F9F2813009F043C0918125 +:102C60008281913049F40E5F1F4F0E94090D0F5F62 +:102C70001F4FEECF6801E9CF923029F40E5F1F4F4E +:102C80000E94540CF4CF933029F40E5F1F4F0E9422 +:102C90002F0BEDCF943019F00F5F1F4FE8CF0E5F71 +:102CA0001F4F30E020E0B8016F5F7F4FF801418196 +:102CB0008053990B8A30910550F021503109B8F2B8 +:102CC0008FE99FE00197F1F700C00000F6CFA29EC8 +:102CD000F001A39EF00D11249C012E0F3F1F842FA5 +:102CE0008B01E1CF0E94240DC2CF81E00E94D51458 +:102CF0000E94991461CF81E00E94A814F9CF82E06C +:102D0000FBCF882309F404C180915702811106C0CA +:102D100081E08093570282EE0E94540C0E9483054A +:102D200090935602809355028BE20E94540CF70157 +:102D30008281882369F0C801815E9C45059740F433 +:102D40006FE1600F609358028CE090E00E944B2E80 +:102D500017FF5EC0F7018281882309F459C00E94E1 +:102D6000BB05869581708093EB019091580291305C +:102D700029F4882319F089E30E94090D80916903E1 +:102D80008093EA011092690380915802813009F41E +:102D9000A8C1882309F4A1C1823009F4B5C18430E7 +:102DA00009F4B9C1EFE3FCE93197F1F700C0000085 +:102DB0005801E894B7F84CE0C42ED12CC5010C2C76 +:102DC00002C0969587950A94E2F78F7096EF980F58 +:102DD000963008F4A5C1805D0E94240DF4E0CF1A5E +:102DE000D1082CEFC2162FEFD20641F7809158027E +:102DF000813009F49BC1882309F494C1823009F41D +:102E000091C1843009F49EC18091EA0180936903E5 +:102E1000F7018281882369F18091690382720C3CF9 +:102E2000FCE51F0709F441C208F0C1C1063C3CE5BE +:102E3000130709F426C208F098C1033CECE51E070D +:102E400009F415C208F080C1023C2CE5120709F410 +:102E5000E7C10A358DE5180709F465C208F03FC2DD +:102E60000115ECE51E0709F44CC20E3D1C4509F4A2 +:102E700057C2F70186819781009709F458C20E94D2 +:102E800053088C01F701D280C580C2943FE0C32271 +:102E9000809142028770A1F0AD2CDD2091F0812F4E +:102EA000807F803421F080E2800F883048F082E01B +:102EB0000E94B914809142028770AA24A3948111C0 +:102EC000A12C912E92942FE09222FBE0F91508F4A8 +:102ED0007BC2E92DF0E0E157F14D0C94D32D88230E +:102EE000A1F080915702811106C081E080935702C2 +:102EF00082EE0E94540C0E948305909356028093A8 +:102F0000550281EE0E94540C0FCF81EE0E942F0BD0 +:102F10008BE20E942F0B0BCF882309F408CF81EEA0 +:102F20000E94540C83EE0E94540C8FE40E94540CB7 +:102F30008FE40E942F0B83EE0E942F0B81EEE9CFCE +:102F4000882309F4F4CE81EE0E94540C83EE0E9493 +:102F5000540C80E50E94540C80E5EBCF882309F4E3 +:102F60002BCE1091540281E01827109354020E9436 +:102F7000830590935302809352021123C9F028E1F4 +:102F800048E76FEF8FE00E94C41129E148E76FEF37 +:102F90008FE00E94C4112AE148E76FEF8FE00E94A2 +:102FA000C4112BE148E76FEF8FE00E94C41104CEFB +:102FB00010921A018CE180931B0180931C0181E225 +:102FC0000E94C613F9CD882309F4B1CE80EE0E9489 +:102FD000540C81EE0E94540C80E10E94540C80E15C +:102FE0000E942F0B81EE0E942F0B80EE0E942F0B70 +:102FF00080914B0291E022E148E76FEF89278093AF +:103000004B02882351F08FE00E94C41126E148E76B +:103010006FEF8FE00E94C4118ACE8FEA0E94C41124 +:1030200026E148E76FEF8FEAF5CF882309F4C4CD96 +:103030001091510201E01027109351020E94830564 +:1030400090934F0280934E028091500210921A0189 +:10305000882319F18CE180931B0180931C0181E28C +:103060000E94C61328E044E666EE80E00E94C41188 +:1030700029E044E666EE80E00E94C4112DE044E6BB +:1030800066EE80E00E94C41100935102109250023B +:1030900010924D0210924C028FCD8CE180931B0157 +:1030A00080931C0181E21123A9F00E94C61328E03D +:1030B00044E666EE80E00E94C41129E044E666EE34 +:1030C00080E00E94C4112DE044E666EE80E00E949C +:1030D000C411DCCF0E94C613D9CF82EE0E94540CDB +:1030E00061CE83E00E94100B88E10E94540C8FE3B4 +:1030F0009CE90197F1F700C0000088E10E942F0BC6 +:1031000083E00E94050B4ECE82EE0E94540C87E5B0 +:103110000E94090D47CE86EE0E94090D88E1F8CF86 +:10312000895A5ACE82EE0E942F0B6ECE8CE20E94FC +:10313000090D8091EB01882309F466CE89E30E9492 +:10314000090D62CE88E2FBCF043C3CE5130709F48D +:1031500093C047E553E160E673E1053C9CE5190740 +:1031600009F077CE0E94060627CD093CECE51E0744 +:1031700009F491C070F4073C2CE5120709F486C0ED +:103180004BE453E16FE373E1083C3CE5130751F373 +:1031900060CE0A3C9CE5190709F482C049E653E178 +:1031A0006AE773E10B3CECE51E07E1F252CE013D0C +:1031B000FCE51F0709F487C0B0F40E3C3CE513079B +:1031C00009F47BC008F476C00F3C9CE5190709F4AC +:1031D00077C06EE089E0003DECE51E0709F039CECE +:1031E0000E94F714E9CC043DFCE51F0709F471C007 +:1031F00068F4023D3CE5130709F468C0033D8CE523 +:10320000180709F026CE61E088E12EC0053D9CE557 +:10321000190709F461C00D35100709F4CDCC19CE9A +:103220008091E30280FF1BC08E7F8093E302609158 +:10323000E3027091E4028091E5029091E6020E941F +:10324000831210928A02FFEF20E732E0F150204013 +:103250003040E1F700C000000E94450FADCC816016 +:103260008093E30261E086950E948B13A5CC44EE27 +:1032700054E16DEE74E176CF4DEE54E164EE74E10D +:1032800071CF40E653E167E573E16CCF4FE353E163 +:103290006BE473E167CF47E253E163E373E162CF2D +:1032A00043E353E167E273E15DCF4AE753E169E647 +:1032B00073E158CF61E081E0D7CF65E082E090CF45 +:1032C00068E086E08DCF64E18FE08ACF67E185E139 +:1032D00087CF62E289E184CF61E083E2C5CF0B351D +:1032E0002DE5120711F10C351D4509F0C2CD809175 +:1032F000640382FB882780F991E089270E94130EDE +:10330000B8CD109269030E948C158FEF94E3ECE026 +:1033100081509040E040E1F700C000000E94300C76 +:103320000E94151549CC81E0E9CF80E0E7CF82818A +:1033300000811181882369F0C8010E94600ED82E97 +:10334000682FC8010E94B60AB8018D2D0E94530E45 +:1033500096CDC8010E948F0AD82EF6CF212F2F704C +:10336000C22E107F19F0C29490EFC922DD20C9F05F +:10337000CC2069F080E2800F883010F001110BC082 +:1033800080916903C82AC09269030E94E109802FD5 +:103390000E94540C19C080914402C82AC092440271 +:1033A000F4CF802F0E942F0BCC2071F0C09480E2CC +:1033B000800F883010F001113BC080916903C82252 +:1033C000C09269030E94E109292D2850330B243053 +:1033D000310520F40E94BB050E948C0BAA20A9F0A5 +:1033E0008091420280FD11C0F7011282859585957A +:1033F00085950E94D514C7010E949F1580914202B5 +:103400008595859585950E94A81460E0C7010F9069 +:103410000F900F900F90DF91CF911F910F91FF9020 +:10342000EF90DF90CF90BF90AF909F900C94D60E0E +:1034300080914402C822C0924402C4CF312F3F7011 +:10344000B32E107F103219F0B29480EFB82200230F +:1034500069F0013081F1DD20D9F1CC2091F1F70143 +:10346000858180FF94CF8F7085832BC0DD20B1F0E4 +:1034700090914502892F8B29C11003C00E94250B12 +:10348000A3CFE1E0CE12FACF2091640322FD9CCFBE +:10349000981709F499CF8093450296CFC11006C0C2 +:1034A0000E94DB098B2D0E941A0B8ECFF1E0CF1604 +:1034B00009F48ACFF5CFDD2031F022E02C1508F495 +:1034C00083CF8B2DDBCF31E03C1508F47DCFEACFE5 +:1034D000CC2041F3093369F4FFEF27EE33E0F150DC +:1034E00020403040E1F700C00000802F0E942F0BE9 +:1034F0006BCF8FE39CE90197F1F7F5CF812F86958C +:103500008695837061F0813009F05ECFC8019370B9 +:10351000D11002C090E080E00E948F0555CFC80115 +:103520009370D11002C090E080E00E94A5054CCFBE +:10353000802FDD2029F00E949D070E94BB0644CF0A +:103540000E94E206FACF812F837009F03FC0D110AC +:103550003BCF402F429546954770440F440F802F34 +:103560008F7090E0042E02C0880F991F0A94E2F732 +:1035700030E020E004FF09C02FE030E002C0220F5D +:10358000331F4A95E2F720953095169516951370DE +:10359000123099F078F44091460250914702113070 +:1035A00039F0822B932B842395230E94FF0A0CCFA2 +:1035B000842B952B822B932BF8CF822B932B20914E +:1035C00046023091470282279327EFCF8695DD2070 +:1035D00011F0812F8170882309F4F6CE402F429597 +:1035E00046954770440F440F802F8F7090E0042E53 +:1035F00002C0880F991F0A94E2F730E020E004FF30 +:1036000009C02FE030E002C0220F331F4A95E2F7D5 +:1036100020953095169516951370123099F078F420 +:103620004091980350919903113039F0822B932BDC +:10363000842395230E949114C7CE842B952B822B33 +:10364000932BF8CF822B932B2091980330919903E1 +:1036500082279327EFCF1F70DD2029F0812F0E9452 +:10366000D514802F0BCF802F0E941A0B812F0E9420 +:10367000A814AACE023F09F441C060F4003F11F142 +:10368000013FA1F1DD2009F457C0C11080CE812F88 +:103690008F7131C0033FB9F1043FA1F7DD2009F478 +:1036A00040C01F71812F0E94D5148091640382FD58 +:1036B00007C0F8E01F9FC00111248360809342027D +:1036C000812F19C0DD2069F091E09C1508F47CCEB3 +:1036D0001F7181E090E002C0880F991F1A95E2F7F0 +:1036E000B3CFE2E0EC1508F46FCEF2CF812F8F71EB +:1036F000DD2009F4BCCF0E94D51466CE812F8F71D6 +:10370000DD20C9F3B4CF90E080E0DD2009F492CF52 +:103710001F7181E090E002C0880F991F1A95E2F7AF +:1037200089CF81E00E94B91421E02C1508F04CCE1D +:1037300082E00E94B91448CECC2079F0093341F4DC +:103740003FEF87EE93E0315080409040E1F7CBCEE1 +:10375000EFE3FCE93197F1F7C6CE812F8F7187CF68 +:1037600000313FE5130709F4C0CA01319FE519078D +:10377000A9F482E0BBCA61E0C7010E94D60E8C01A9 +:10378000F7018281811106CA0031FFE51F0709F4A4 +:10379000B2CA01312FE5120709F4B1CAF801E058A5 +:1037A000FF45E730F10508F0C2CAE556F14D0C942B +:1037B000D32DCF93DF938091FD01807FA1F4809181 +:1037C000FA01882381F080914102D091000260913A +:1037D000F8017091F901A091FB01B091FC01C62F95 +:1037E000C723D81303C0DF91CF91089590E01097BD +:1037F00011F0CF3F19F401968770F3CF9C0143E09D +:10380000220F331F4A95E1F7F901EF5FFD4F418128 +:103810004713F1CF40814613EECF42814111EBCFE8 +:10382000438154814A1B5B0B403A510520F780913C +:10383000FD018F7080618093FD01F901EA5FFD4F0A +:1038400080818F708061808388EF91E00E949F1556 +:10385000DF91CF910C94850AAF92BF92CF92DF9205 +:10386000EF92FF920F931F93CF93DF93CDB7DEB705 +:1038700065970FB6F894DEBF0FBECDBF8C0185E013 +:10388000F801DE01519601900D928A95E1F7F80159 +:10389000E28068EFA62E61E0B62E6091FB01709188 +:1038A000FC016115710509F468C19091F80140911E +:1038B000F901892F84238F3F09F45FC12081318171 +:1038C000C380D480F090FA01F601E61BF70BFF20CD +:1038D00009F41DC18091FD01582F507FE03AF10598 +:1038E00008F0D0C0511181C0FE2C43132BC092139D +:1038F00029C06091FE017091FF01F8014681578156 +:1039000064177507F9F4E1101DC08F708061809312 +:10391000FD01C5010E949F158091FD01F80185837D +:103920008F2D65960FB6F894DEBF0FBECDBFDF9129 +:10393000CF911F910F91FF90EF90DF90CF90BF90AC +:10394000AF900895CD2829F0822F83238F3F09F06F +:103950002FC180E0F82FF170DF2E80FF3CC08091F6 +:10396000410240910002841315C0298B3A8B89894A +:103970009A890E949C0E292F22952F702230F8F0F0 +:10398000243020F59F70F9F0F8019581907FD9F4EB +:10399000D12C1FC090E0FC0153E0EE0FFF1F5A95A1 +:1039A000E1F7EF5FFD4F5181351306C050812513BC +:1039B00003C05281E5120FC001968770D4CF9F706B +:1039C00011F0882329F3805E883010F3C8010E942B +:1039D0009F15FD2CA5CFEE2009F4A2CF8091FD010B +:1039E00081608093FD01F12C9BCF43131BC0921388 +:1039F00019C04091FE015091FF01F80126813781E5 +:103A00004217530779F4E1100DC08583C8010E9465 +:103A10009F1588E0F801A8EFB1E001900D928A951A +:103A2000E1F77ECFC8010E94A80E882339F1EE206D +:103A300029F18091FD018032A0F02091F8013091B0 +:103A4000F9013A8729871B86DD86CC868E8780918F +:103A5000FE019091FF01988B8F87CE0109960E94FD +:103A60009F1588E0F801A8EFB1E001900D928A95CA +:103A7000E1F70E94D91BFF24F39452CFC8010E94A2 +:103A80009F15F9CF51110AC088EF91E00E949F1550 +:103A900088E0F50111928A95E9F7A5CF431318C084 +:103AA000921316C04091FE015091FF01F80126814A +:103AB00037814217530761F4E1100AC08583C801BA +:103AC0000E949F1588E0F50111928A95E9F728CFA9 +:103AD000C8010E94A80E882389F2EE2079F2809115 +:103AE000FD01803208F4BDCF2091F8013091F90139 +:103AF0003A8329831B82DD82CC828E838091FE01F2 +:103B00009091FF0198878F83CE010196A8CFE03A6C +:103B1000F105C0F6FE2CEE2009F4B0CF43131FC010 +:103B200092131DC02091FE013091FF01F8018681A2 +:103B300097812817390799F49091FD0190FD69CF7D +:103B4000907F09F466CF8091FD018583903F09F451 +:103B50005DCF982F907F905F8F70892B56CFC801D3 +:103B60000E94A80E81117DCF8091FD01816080931C +:103B7000FD01C8010E949F15D3CEEE2009F47ECF2F +:103B8000C8010E94A80EF82E882309F477CF88E098 +:103B9000F801A8EFB1E001900D928A95E1F78091CC +:103BA000F8019091F9010E949C0E0E94D91BB8CE99 +:103BB00081E08E25CFCE1F93CF93DF93CDB7DEB7B5 +:103BC000AA970FB6F894DEBF0FBECDBF80E993E091 +:103BD0002091F100DC012D93CD01B3E088399B07E2 +:103BE000B9F780919103833009F471C0B8F4813042 +:103BF00009F448C0823009F4B4C08091E80083FF22 +:103C00003CC180919003909191039A3008F035C1A6 +:103C1000E92FF0E0EE55F14D0C94D32D8A3009F4E4 +:103C20008FC08B3009F470C0893039F780919003D0 +:103C3000813219F78091940390919503009711F0C8 +:103C40000297D9F68091E800877F8093E800809101 +:103C5000E80082FF37C09091F3008091F200029754 +:103C600029F48091F1008B7F813021F48091F10063 +:103C700080936B038091E8008B778093E8000E942B +:103C80006104BBCF80919003813A09F0B6CF809157 +:103C9000E800877F8093E8008091940390919503DA +:103CA000892B61F460E28CE693E070E00E941305DA +:103CB0008091E8008B778093E8009FCF60E090E0F0 +:103CC00080E0F3CF80918E038111C1CF96CF809198 +:103CD0009003813A09F091CF8091940390919503DC +:103CE000892B09F08ACF8091E800877F8093E800D4 +:103CF0008091E80080FFFCCF809148018093F10023 +:103D00008091E8008E77B9CF80919003813209F0DD +:103D100074CF8091940390919503892B09F06DCF16 +:103D20008091E800877F8093E8000E946104809181 +:103D3000920380934801109269030E948C155DCF15 +:103D400080919003813209F058CF8091E800877FFD +:103D50008093E8000E9461048091930380936A033A +:103D60004CCF80919003813A09F047CF8091E800D1 +:103D7000877F8093E8008091E80080FFFCCF8091EE +:103D80006A03BCCF803899F0823809F076C0809100 +:103D900094038F70873008F070C08093E9008091A1 +:103DA000EB0085FB882780F91092E90006C080911E +:103DB0008C0390918D03911182609091E800977F20 +:103DC0009093E8008093F1001092F1008091E80058 +:103DD0008E77B5C1882309F4A2C1823009F04DC0A5 +:103DE000809192038111A6C1809194038F702FEF6F +:103DF000280F263008F041C08093E9002091EB00A5 +:103E000020FF98C1933031F48091EB008062809361 +:103E1000EB0090C19091EB0090619093EB0021E05A +:103E200030E001C0220F8A95EAF72093EA00109251 +:103E3000EA008091EB008860EACF81111EC01091EA +:103E400092031F778091E3008078812B8093E300B9 +:103E50008091E800877F8093E8000E946104809150 +:103E6000E80080FFFCCF8091E30080688093E3004E +:103E700082E0111183E080938E038091E80083FF3C +:103E80000AC08091E800877F8093E8008091EB0072 +:103E900080628093EB00AA960FB6F894DEBF0FBE47 +:103EA000CDBFDF91CF911F9108958058823028F7C0 +:103EB00020919203309193032C3DE3E03E07A1F55E +:103EC00083E08A838AE289834FB7F894DE011396F0 +:103ED00020E03EE051E2E32FF0E050935700E49100 +:103EE00020FF03C0E295EF703F5FEF708E2F90E0F0 +:103EF000EA30C0F0C7968D939D932F5F243159F718 +:103F00004FBF8091E800877F8093E8006AE270E00D +:103F1000CE0101960E9413058091E8008B77809373 +:103F2000E800ABCFC096E7CF8091940390919503C2 +:103F3000432F55274330510509F44AC078F54130E5 +:103F4000510509F47AC08BE590E0EBEAF6E04230E7 +:103F5000510509F092CF2091E800277F2093E800D7 +:103F600020919603309197038217930708F49C01E0 +:103F700040E02115310509F065C0411163C0809111 +:103F8000E80082FDC9CF80918E03882329F2853015 +:103F900019F28091E80083FFF2CFBECF4132510584 +:103FA00009F43CC04232510509F067CF83309105D6 +:103FB00008F063CFFC01EE0FFF1FE454FE4F0190A9 +:103FC000F081E02D87549E4FDC018C9190E01AC067 +:103FD000332721303105D1F02115310561F0223030 +:103FE000310509F04ACFE8E1F7E0E4918E2F90E047 +:103FF000E8E1F7E007C0E8E3F7E0E4918E2F90E016 +:10400000E8E3F7E0009709F438CFA5CFE4E2F7E062 +:10401000E4918E2F90E0E4E2F7E0F4CF8330910555 +:1040200008F02BCF880F991FFC01EE53FE4F019033 +:10403000F081E02D89E090E08ECF82E190E0E6E033 +:10404000F7E089CF80918E03882309F465CF85300E +:1040500009F462CF8091E80083FD5ECF8091E80093 +:1040600082FD8DCF8091E80080FF83CF9091F30097 +:104070008091F2002115310519F08830910550F03A +:1040800041E0089709F040E08091E8008E77809346 +:10409000E8006FCF44914093F100319621503109EF +:1040A0000196E8CF803809F0E8CE8091E800877F5C +:1040B0008093E80080918F038093F10087CE811177 +:1040C000DCCE10919203123008F0D7CE8091E80038 +:1040D000877F8093E80010938F030E94610411236F +:1040E00011F084E005C08091E30087FDFACF81E004 +:1040F00080938E0342E061EC81E00E94800442E202 +:1041000061EC84E00E94800442E261EC82E00E9463 +:10411000800442E260EC83E00E948004AECE809195 +:104120009203813009F0A9CE81E0933009F080E05C +:1041300080938D031092E9008091E800877F80933F +:10414000E8000E94610499CECF93DF93CDB7DEB72C +:1041500060970FB6F894DEBF0FBECDBF29873A87B0 +:104160004B875C876D877E878F87988BCE010996FA +:104170000E942C1C811112C088E0FE013996DE01DC +:10418000119601900D928A95E1F78C859D85892B7A +:1041900029F089859A8589238F3FA9F5809141026D +:1041A0009091000289131CC060960FB6F894DEBF90 +:1041B0000FBECDBFDF91CF91089593E0AA0FBB1F33 +:1041C0009A95E1F7AF5FBD4F98E0FE0131960190FF +:1041D0000D929A95E1F7809300020E94850ADECF46 +:1041E000B8E08B9FC00111248F5F9D4F0E942C1C53 +:1041F0008823D1F28091410290E00196877099273F +:1042000080934102CBCFA0910002B0E0CD01019696 +:1042100087709927209141022817190671F610928C +:1042200069030E948C15109200021092410288E0EE +:10423000E8EFF1E0DF011D928A95E9F7AFCF0F9328 +:104240001F93CF93DF938091EB02E091EA02CCE0E1 +:1042500081111AC0DF91CF911F910F910895D1E084 +:10426000DE0FD093EA020E2F10E0EC9FF001112434 +:10427000E451FD4F83819481892B29F080819181C4 +:1042800089238F3F51F4ED2F8091EB02E81738F32B +:104290001092EB021092EA02DDCFC09FD001C19FC5 +:1042A000B00D1124A451BD4F16968D919C91179776 +:1042B000892B29F418968D919C91019651F42081B7 +:1042C00031814281538164817581868197810E9409 +:1042D000A420C09FF001C19FF00D1124E451FD4FB7 +:1042E00014821382D0CF109257031092560310926B +:1042F000470180915503809354030E94F5050C9467 +:104300001F212F923F924F925F926F927F928F92D6 +:104310009F92AF92BF92CF92DF92EF92FF920F9354 +:104320001F93CF93DF93C0915403E7E0FE2E01E08B +:1043300010E0FCE02F2EAEEFEA2E809155038C1397 +:1043400016C00E941F21DF91CF911F910F91FF9006 +:10435000EF90DF90CF90BF90AF909F908F907F9025 +:104360006F905F904F903F902F900C94F505D0E0A8 +:10437000FE01EE0FFF1FE45BFC4F80819181F89EF0 +:10438000F001F99EF00D1124E35EFE4F248121110E +:1043900058C03090EB02ACEEB2E030E020E0412CAF +:1043A0005F01231508F04BC01A966D907C901B9707 +:1043B000F501808091804FEF5FEF512CC52CD12CFF +:1043C000F601EE0FFF1FE80DF91D65917491661659 +:1043D000770609F4A601672B11F05394EFCF4F3FF6 +:1043E0005407B1F1B80102C0660F771F4A95E2F792 +:1043F000462AA80102C0440F551F5A94E2F74150C3 +:1044000051094416150601F5229EF001239EF00D78 +:104410001124E451FD4FF89ED001F99EB00D1124F6 +:10442000A35EBE4F12962D913C911397378326833E +:10443000E082E1829187808771E015967C930E94EB +:10444000C7052196C37079CF14961C921E921397BC +:104450002F5F3F4F1C96A5CF9F92AF92BF92CF92F6 +:10446000DF92EF92FF920F931F93CF93DF9300D0D1 +:1044700000D000D0CDB7DEB78E010F5F1F4F86E0B2 +:10448000F80111928A95E9F78AE7C82E81E0D82EC3 +:10449000F12CE12CAA24A394B12CF60181916F0197 +:1044A0008F3F09F449C0F894E82FE295EF70F0E0EF +:1044B00021A18F70A50102C0440F551F8A95E2F714 +:1044C000CA01922F982B91A392A18095892382A350 +:1044D000789400C0E0E8F1E030E020E0912C4191D8 +:1044E0004F3F09F473C0A42FA295AF70B0E090962F +:1044F0008C9190E04F7002C0959587954A95E2F7B0 +:1045000080FD64C08A2D022E01C0880F0A94EAF74C +:10451000982A2F5F3F4F2430310509F7F601319774 +:1045200080818F3F11F00E94F90750EA5A95F1F708 +:10453000F801EE0DFF1D90828FEFE81AF80AE6E011 +:10454000EE16F10409F0A9CF46E050E0B8018CE581 +:1045500092E00E942A2EFF24F394009709F4F12C94 +:10456000892BB1F186E0F801ACE5B2E001900D9243 +:104570008A95E1F781E080934A020E948305909337 +:1045800049028093480280914802909149020E941A +:104590007405059708F180915C0280936F02809109 +:1045A0005D028093700280915E028093710280911F +:1045B0005F02809372028091600280937302809107 +:1045C00061028093740210924A0206C080E0A0CF7C +:1045D00080914A028111D7CF80914701882301F150 +:1045E00080915603909157030097D1F00E94740573 +:1045F0002091E8023091E9022817390788F4909158 +:10460000540380915503981709F47EC00E948121BC +:104610001092E9021092E80210925703109256038A +:1046200080915702882371F0809155029091560233 +:104630000E947405893E934028F082EE0E942F0B61 +:104640001092570280915402882391F08091520277 +:10465000909153020E947405883E934048F00E9456 +:104660008305909353028093520283E70E94090DC1 +:104670008091500290915102992309F44EC081110A +:1046800030C080914E0290914F020E947405813695 +:104690009A4E78F080914C0290914D020196909341 +:1046A0004D0280934C020E94830590934F028093A9 +:1046B0004E0280914C0290914D024F9708F45CC0DD +:1046C00010921A018CE180931B0180931C018FE0F2 +:1046D0000E94C61381E08093500210924D02109206 +:1046E0004C028F2D26960FB6F894DEBF0FBECDBFBD +:1046F000DF91CF911F910F91FF90EF90DF90CF90BE +:10470000BF90AF909F9008950E941F211092570371 +:10471000109256030E94F50583CF8111E2CF80915C +:104720004B02882361F022E148E76FEF8FE00E949F +:10473000C41126E148E76FEF8FE00E94C411809119 +:104740005402882371F228E148E76FEF8FE00E945E +:10475000C41129E148E76FEF8FE00E94C4112AE1FC +:1047600048E76FEF8FE00E94C4112BE148E76FEF3D +:104770008FE00E94C411B5CF28E044E666EE80E0E9 +:104780000E94C41129E044E666EE80E00E94C41154 +:104790002DE044E666EE80E00E94C411C0CF2F9267 +:1047A0003F924F925F926F927F928F929F92AF92C1 +:1047B000BF92CF92DF92EF92FF920F931F93CF930E +:1047C000DF93CDB7DEB769970FB6F894DEBF0FBEA3 +:1047D000CDBF498B5A8B6B8B7C8B8D8B611110926B +:1047E00044021D861E861F86188A85E0FE0171968A +:1047F000DE01199601900D928A95E1F78C859D85D1 +:10480000892B31F089859A8589238F3F09F0D4C19E +:1048100029853A854B855C856D857E858F85988950 +:104820000E94A420C3C028EFC2162CE5D20629F4AA +:10483000882379F00E947321EBCF39EFC3163CE552 +:10484000D30639F4882329F0809147018111F2CFF2 +:10485000C3C10DE111E0E12CB12CA12C882483947B +:10486000912C9EEF592E44244394F801608171816C +:1048700066246A94762C20E0422F50E0FA01EE0F75 +:10488000FF1FE60FF71F85919491C816D90609F40A +:104890003A01892B11F02F5FEFCFF12CFFEF6F164C +:1048A0007F0609F445C0F8014481F09047018F2D3F +:1048B000411180E0F82FF170FF2EF80125808681EC +:1048C0009B85992309F408C1FF2009F405C1211033 +:1048D00014C0A40101C0440F6A94EAF7842B8683B4 +:1048E0008091E8029091E9028039914030F440E9EA +:1048F00051E05093E9024093E802C40102C0880FDE +:10490000991F2A95E2F70197F801268128171906C1 +:1049100079F48091560390915703009709F45FC092 +:104920000E9474058139914008F459C0F80144820D +:10493000EF28FFEFAF1ABF0A095F1F4F26E0A2164C +:10494000B10409F092CF8B85882309F420C1EE20B1 +:1049500009F41DC10E948305909357038093560369 +:104960008091EB02883010F591E0980F9093EB0264 +:1049700098E0FE013996DE01119601900D929A950C +:10498000E1F73CE0839FC001112484519D4F28E052 +:10499000FE013196DC0101900D922A95E1F72FEF8F +:1049A0003FEFFC0131872087D386C28669960FB618 +:1049B000F894DEBF0FBECDBFDF91CF911F910F9155 +:1049C000FF90EF90DF90CF90BF90AF909F908F902F +:1049D0007F906F905F904F903F902F9008958091BF +:1049E000540360905503982FF0E0E0E0861114C066 +:1049F000909354030E171F0709F49ACF90E0FC011F +:104A0000EE0FFF1FE45BFC4FB182A0820196837022 +:104A10009927809355038CCF282E312CF101EE0F6E +:104A2000FF1FE45BFC4F20813181F7E0F29FD00152 +:104A3000F39FB00D1124A35EBE4F2D913C911197B1 +:104A4000398F288F712C60E070E0E72FF0E0EE0FD7 +:104A5000FF1F288D398DE20FF31F25913491211509 +:104A60003105E1F0F8010190F081E02DFF8BEE8B34 +:104A700060E005C02417350709F47F2C6F5FE62F2F +:104A8000F0E0EE0FFF1F4E895F89E40FF51F45919F +:104A900054914115510571F77F5FD7CF7720C9F049 +:104AA000F801671708F0FD0144820E171F0721F473 +:104AB00090935403F72C3CCF981305C0AE17BF0753 +:104AC00011F49F5F937091012F5F3F4F822F83708E +:104AD0008DCFF0E0E0E0F7CF90E021101FC0B401EF +:104AE00002C0660F771F2A95E2F79B01215031091A +:104AF0002817390731F4442309F447C0C5010E943F +:104B0000C705C40101C0880F6A94EAF7982F9095F1 +:104B1000F801868189238683F22C0ACF9C01062C1A +:104B200002C0359527950A94E2F7A90141705527EF +:104B3000BC016150710986239723892B11F5452B00 +:104B400001F1F80182819381892BC1F01B821C82C3 +:104B50001D821E8259825A820E9483058160582FCD +:104B60009D838C83F801828193818F83988729812B +:104B70003A814B816D817E810E94A420F8011582CB +:104B8000C0CFF22FF1702F2EBCCF2F2CBACF909127 +:104B9000540380915503981731F00E948121EE2033 +:104BA00009F436CE03CF0E941F21109257031092B2 +:104BB00056030E94F505F3CF61E0CE0109960E94ED +:104BC000D60E6C018B85F7EFCF16FCE5DF0609F0FA +:104BD0002ACE882309F43DCE81E08093470118CE88 +:104BE0001F920F920FB60F9211242F933F934F9362 +:104BF0005F936F937F938F939F93AF93BF93CF9365 +:104C0000DF93EF93FF93D091E900DF708091EC0088 +:104C1000C82FC17080FDC0E81092E9008091F000BB +:104C2000877F8093F00078940E94DB1D1092E9004A +:104C30008091F00088608093F000CD2BCF70C093FE +:104C4000E900FF91EF91DF91CF91BF91AF919F91DB +:104C50008F917F916F915F914F913F912F910F9025 +:104C60000FBE0F901F9018951F920F920FB60F92C4 +:104C700011242F933F934F935F936F937F938F9361 +:104C80009F93AF93BF93EF93FF938091E10082FFD7 +:104C900009C08091E20082FF05C08091E1008B7F16 +:104CA0008093E1008091DA0080FF24C08091D800D9 +:104CB00080FF20C08091DA008E7F8093DA0080919F +:104CC000D90080FF9BC080E189BD82E189BD09B424 +:104CD00000FEFDCF81E080938E03809168038111F7 +:104CE00009C00E94E7030E94B2048091E200846040 +:104CF0008093E2008091E10080FF17C08091E20084 +:104D000080FF13C08091E2008E7F8093E20080914B +:104D1000E20080618093E2008091D80080628093FD +:104D2000D80019BC85E080938E038091E10084FF58 +:104D300029C08091E20084FF25C080E189BD82E125 +:104D400089BD89B5982F917080FFFBCF8091D800E5 +:104D50008F7D8093D8008091E1008F7E8093E10069 +:104D60008091E2008F7E8093E2008091E20081607A +:104D70008093E20080918F03882309F445C084E08A +:104D800080938E038091E10083FF27C08091E20031 +:104D900083FF23C08091E100877F8093E10082E060 +:104DA00080938E0310928F038091E1008E7F809319 +:104DB000E1008091E2008E7F8093E2008091E2002A +:104DC00080618093E20042E060E080E00E94800425 +:104DD0008091F00088608093F000FF91EF91BF9187 +:104DE000AF919F918F917F916F915F914F913F9183 +:104DF0002F910F900FBE0F901F90189519BC109215 +:104E00008E031092680376CF8091E30087FD93E0D4 +:104E100090938E03B7CF78941F921FB61F921124E0 +:104E20008F939F93AF93BF9380915F0390916003A3 +:104E3000A0916103B09162030196A11DB11D809301 +:104E40005F0390936003A0936103B0936203BF91EB +:104E5000AF919F918F911F901FBE1F9018951F9229 +:104E60001FB61F9211248F939F93AF93BF9380918E +:104E70005E03811113C080915F0390916003A09144 +:104E80006103B09162034196A11DB11D80935F0340 +:104E900090936003A0936103B0936203BF91AF91BD +:104EA0009F918F911F901FBE1F901895CDB7DEB7B1 +:104EB000EE970FB6F894DEBF0FBECDBF84B7877FE5 +:104EC00084BF0FB6F894A8958091600088618093A4 +:104ED0006000109260000FBE80E890E00FB6F8947A +:104EE00080936100909361000FBE85B7806885BF95 +:104EF00085B7806885BF87EF97E09093C90180935D +:104F0000C8010E94E7030E94B2048091E20084601D +:104F10008093E200789480918E038823A1F0109111 +:104F2000E9001F709091EC00892F817090FD80E85E +:104F3000182B1092E9008091E80083FD0E94DB1D90 +:104F40001F701093E90082E084BD93E095BD9AEF55 +:104F500097BD80936E000E94160F811102C00E94BF +:104F6000040E0AE711E020E8C22E21E0D22EF8015B +:104F700081918F018F3F11F00E94F907C016D10671 +:104F8000B1F786EF0E94F90787EF0E94F90783E9DE +:104F90000E94F90786E90E94F907ECE5F2E082E653 +:104FA00092E0AFE6B2E011921D928E179F07D9F7FB +:104FB0000E948115811102C00E94151582E090E0C7 +:104FC0000E94372E8093680284E090E00E94372E82 +:104FD000182F82E290E00E94372E982F812F909315 +:104FE0006403809363030E942C228FE39CE9019762 +:104FF000F1F700C000000E942C2280916F0280FF18 +:1050000008C06FEF7FEF90E080E00E94692E0E9461 +:10501000300C83E090E00E94372E90E00E94FF0A5F +:1050200080919803909199030E94EC13509A589A9A +:10503000559A5D9A549A5C9A8CE090E00E94372EC3 +:1050400090E0B0E0A0E08093580290935902A093C2 +:105050005A02B0935B0280916202811132C00E94B9 +:105060008115811104C00E9415150E94051588E064 +:1050700090E00E943F2E6093E3027093E4028093DD +:10508000E5029093E6026E7F71F40E94051588E0B8 +:1050900090E00E943F2E6093E3027093E4028093BD +:1050A000E5029093E6020E940C0610928A0280911B +:1050B000E30280FF03C086950E94C61381E08093BF +:1050C00062025198599A52985A9A89B1869581707C +:1050D0004A9931C290E0892B809366026091630304 +:1050E0006068609363031091640384E090E00E9421 +:1050F0004B2E612F82E290E00E944B2E81E20E94B3 +:10510000C61381E090E00E94911480E091E09093BA +:105110005B0380935A0318E1C12ED12C00E4A02E2A +:105120008FE692E096E0B92EB80E80918E03992416 +:10513000939400E112E1853009F451C20E942C22BF +:10514000882359F08FB7F89440915F035091600322 +:1051500060916103709162038FBFE9E6F2E0AFE610 +:10516000B2E010E000E0302F8D919191981709F492 +:1051700060C2292F282790E099249394422F492137 +:1051800009F452C29DAB3EAB892191E009F490E055 +:105190009FAB0E9483058160782F99AF88AF4DA99E +:1051A0005EA96FA989AD0E94CF23F801E759FD4F91 +:1051B00080819826908280918A028823D1F1809103 +:1051C0008902E091E302E695E81BE09385028230D4 +:1051D00009F046C2F0E0EA55FD4FE4910E2F10E0D1 +:1051E000BFE68B2EB2E19B2E80918602882361F070 +:1051F000109286020E94830590938402809383021A +:1052000010928802109287020E948305E091830227 +:10521000F09184028E1B9F0B8F3F9F4750F4E00F4D +:10522000F11FF0938402E093830283E892E0F4019B +:105230000995E0916602EE0FEE0FE093660289B1E8 +:1052400081FBEE24E0F84A9965C280E08E29E82BC4 +:10525000E0936602EF70F0E0EC57FE4F8081909192 +:105260006502890F8093650220E0843034F18091DB +:1052700064028F5F8093640212E018AB19AA81E088 +:105280008AAB0E9483058160782F9CAB8BAB48A9C9 +:1052900059A96AA98CA90E94CF231BA71CA61DA6E9 +:1052A0000E9483058160782F9FA78EA74BA55CA5E0 +:1052B0006DA58FA50E94CF2321E0809165028D3FCF +:1052C0002CF5809164028150809364021EA21FA27B +:1052D00081E088A70E9483058160782F9AA789A71B +:1052E0004EA15FA168A58AA50E94CF2319A21AA288 +:1052F0001BA20E9483058160782F9DA38CA349A1E6 +:105300005AA16BA18DA10E94CF2321E0809165025B +:10531000082E000C990B64E070E00E949D2D809394 +:105320006502222359F08FB7F89440915F035091A2 +:10533000600360916103709162038FBF86E0ECE7C8 +:10534000F2E0DE01119601900D928A95E1F79090BE +:105350007E0280907F021091800200918102109263 +:105360007E0210927F021092800210928102892D9B +:10537000882909F448C080917A0290917B020E94AA +:1053800074059C0190917602992309F4AFC32333ED +:105390003105C8F19F3F19F09F5F909376029920E5 +:1053A00059F00E947D079FEF19140CF491E0899F3A +:1053B000802D112480937E02882059F00E947D0761 +:1053C0009FEF18140CF491E0899F802D1124809395 +:1053D0007F0230917E023323B1F020917F0222239D +:1053E00091F045EB3403C0011124992309F495C1D0 +:1053F00090937E0245EB240390011124332309F49A +:1054000090C130937F02812F802B09F448C0809196 +:105410007802909179020E9474059C019091750226 +:10542000992309F45EC325363105C8F19F3F19F071 +:105430009F5F90937502112359F00E945B079FEFC5 +:1054400011160CF491E0899F802D11248093800225 +:10545000002359F00E945B079FEF10160CF491E0B7 +:10546000899F802D11248093810230918002332303 +:10547000B1F020918102222391F045EB3403C00169 +:105480001124992309F451C19093800245EB240320 +:1054900090011124332309F44CC13093810280918F +:1054A0007E0290917F02892B90918002892B9091AE +:1054B0008102892B11F00E94BB0686E0FE01319625 +:1054C000ACE7B2E001900D928A95E1F70E94BB052E +:1054D00090916702891731F00E94BB0580936702A3 +:1054E0000E948C0B80918E03843009F01ECE83E0E5 +:1054F0008093E9008091E80082FF17CE8091E80058 +:1055000090E085FF06C00E940604882309F415C1B7 +:1055100091E08091E8008B778093E800992309F46B +:1055200004CEE981E150E33108F089C1F0E0E455AF +:10553000F14D0C94D32D92E0CECD80918E0384302A +:1055400009F440C080E00E948C0B10928A02809186 +:105550008202811116C0909282028091E302982FFC +:105560009170909363028E7F8093E3029FEFE0E758 +:10557000F2E09150E040F040E1F700C000000E94EE +:10558000450F10925E030FB6F894A895C092600084 +:105590000FBEA092600083B7817F846083BF83B712 +:1055A000816083BF7894889583B78E7F83BF0FB661 +:1055B000F894A895809160008861809360001092B3 +:1055C00060000FBE80918D03882349F00E942C2239 +:1055D000EFE6F2E08191811163C2BE12FBCF8091B0 +:1055E0008E03853009F4A9CF109269030E948C15AF +:1055F0000E94BB050E948C0B109282028091630274 +:10560000882359F08091E30281608093E3028695BC +:105610000E94C6130E942F0F91CD80918B02882388 +:10562000C9F30E94450FF6CF9F5F990C943009F0A3 +:10563000A5CD0F5F1F4F0630110509F094CD8FEFF8 +:105640008AAF8BAF1CAE0E9483058160782F9EAF1E +:105650008DAF4AAD5BAD6CAD8EAD0E94CF23ABCDAF +:10566000863059F4F0E0ED55FD4FE4910E2F10E037 +:10567000AFE58A2EA2E19A2EB7CD893061F4E69586 +:10568000F0E0E056FD4FE4910E2F10E0F7E88F2E8A +:10569000F1E19F2EA9CD8F3061F4E695F0E0E3565D +:1056A000FD4FE4910E2F10E0EDE08E2EE1E19E2EF5 +:1056B0009BCD853159F4F0E0E656FD4FE4910E2F75 +:1056C00010E07AE9872E70E1972E8ECD08E210E087 +:1056D0004AE0842E40E1942E883109F485CD83324E +:1056E00049F4E8E9F2E00591149166E0862E62E162 +:1056F000962E7ACD04EF11E05DEC852E5FE0952EBD +:10570000843209F471CD00ED17E03BE0832E36E0E2 +:10571000932E6ACD82E090E099CD81E080937E0265 +:1057200069CE81E080937F026ECE81E0809380021B +:10573000ADCE81E080938102B2CE00E210E0CE01D6 +:1057400001964C018091E80085FD0AC08091E80037 +:105750008B778093E8000E940604882399F3D8CEC3 +:105760008091F100F40181934F010150110951F72B +:10577000CFCE1A8289E08B832DC08A81823009F4D2 +:10578000A7C18330A9F0813009F059C02FB7F89430 +:1057900060915F0370916003809161039091620357 +:1057A0002FBF0E94D92D6B837C838D839E8312C073 +:1057B00080916F028B83809170028C838091710243 +:1057C0008D83809172028E83809173028F8380918A +:1057D0007402888780918E03843009F0A6CC1091E2 +:1057E000E9001F709091EC00892F817090FD80E896 +:1057F000182B82E08093E9008091E80080FF0DC0C3 +:1058000050E040E060E270E0CE0101960E94370473 +:105810008091E8008E778093E8001F701093E90074 +:1058200084CC8A81823059F46B817C818D819E8108 +:105830000E94D92D86E290E00E944B2ECBCF8FEFB5 +:105840008983C8CF4C816B818A810E942D0E982755 +:10585000892798279E838D83BDCF8D809E80982435 +:10586000892498248A810B81F8E00F9F80011124FC +:1058700020E3829F000D111D11248C8190E0880F80 +:10588000991F080F191F692DC80187960E944B2E7A +:10589000682DC8018896D0CF0E949A0D9BCF8A812F +:1058A0008138C1F060F4803809F094CF20E04B815A +:1058B0006091E5028091E4020E9495128BCF8238BC +:1058C00049F1833809F086CF20E04091E6026C81EF +:1058D0008B81F2CF8B810E94C6139B818091E30262 +:1058E000911111C08E7F8093E30210928A024FEFD4 +:1058F00080E792E0415080409040E1F700C0000016 +:105900000E94450F67CF81608093E30286950E94D5 +:10591000C61360CF8B818093E7025CCF8A81813888 +:1059200099F030F4803809F055CF8091E60223CF0A +:10593000823891F0833809F04DCF8091E4028B8357 +:105940008091E5028C8346CF8091E30280FF02C004 +:10595000869511CF80E00FCF8091E7020CCF609148 +:10596000E3027091E4028091E5029091E6020E94C8 +:10597000831230CF80E18A832DCF81E08A8389EF43 +:10598000FACE0A811B81102701271027FE013196CC +:105990003F018C80CF01880D911D4C01C801895FAA +:1059A0009D4F8614970409F415CF093FE1E01E07C7 +:1059B00050F40E94372EF30184830F5F1F4FFFEFD7 +:1059C0006F1A7F0AEBCFF3011482F7CF0A811B8194 +:1059D000102701271027CE0101963C018C80800EF4 +:1059E000912E911CC801895F9D4F8016910609F484 +:1059F000F1CE093FE1E01E0720F4F30164810E942B +:105A00004B2EFFEF6F1A7F0A0F5F1F4FEBCF0E94E5 +:105A10008A0DE0CE8AE0AFCF0A811B8110270127D3 +:105A20001027CE0101963C018C80FC01E80DF11D90 +:105A30004F01C80187968614970409F4CBCE003E27 +:105A4000F1E01F0750F40E94372EF30184830F5FAB +:105A50001F4FFFEF6F1A7F0AECCFF3011482F7CFCD +:105A60000A811B81102701271027CE0101963C01D6 +:105A70008C80800E912E911CC8018796801691060D +:105A800009F4A8CE003EE1E01E0720F4F301648192 +:105A90000E944B2EFFEF6F1A7F0A0F5F1F4FECCF54 +:105AA00009BD19BD09B400FEFDCF8091D8008F7DDE +:105AB0008093D8008091E00082608093E000809124 +:105AC000E00081FDFCCF109269030E948C1587CD08 +:105AD00086E290E00E94372E1B821C821D828E83FC +:105AE00079CE2D32314008F0A3CCD9CC2D323140C3 +:105AF00008F052CC88CC87FB082E062687FD8195BE +:105B000067FD61950E94112E0EF4919507FC819519 +:105B10000895AA1BBB1B51E107C0AA1FBB1FA617F4 +:105B2000B70710F0A61BB70B881F991F5A95A9F746 +:105B300080959095BC01CD01089597FB072E16F432 +:105B4000009407D077FD09D00E94892D07FC05D06D +:105B50003EF4909581959F4F0895709561957F4F84 +:105B60000895A1E21A2EAA1BBB1BFD010DC0AA1F9E +:105B7000BB1FEE1FFF1FA217B307E407F50720F0B6 +:105B8000A21BB30BE40BF50B661F771F881F991F31 +:105B90001A9469F760957095809590959B01AC017A +:105BA000BD01CF010895EE0FFF1F0590F491E02D88 +:105BB00009946927962769277827872778270895E2 +:105BC0000E94E82D332312F48A1B9B0B0C94F92DB1 +:105BD000A29FB001B39FC001A39F700D811D11242E +:105BE000911DB29F700D811D1124911D08950E9479 +:105BF000E82DB7FF0895821B930B08950E94E82DAE +:105C0000A59F900DB49F900DA49F800D911D112410 +:105C10000895B7FF0C94FE2D0E94FE2D821B930B5E +:105C20000895991B79E004C0991F961708F0961BF8 +:105C3000881F7A95C9F780950895FC01415050401E +:105C400030F001900616D1F73197CF0108958827DB +:105C500099270895FB01DC0104C08D910190801902 +:105C600021F441505040C8F7881B990B0895F999C9 +:105C7000FECF92BD81BDF89A992780B50895A6E11F +:105C8000B0E044E050E00C94712EA8E1B0E042E0B6 +:105C900050E00C94712E262FF999FECF92BD81BD54 +:105CA000F89A019700B4021639F01FBA20BD0FB65A +:105CB000F894FA9AF99A0FBE08950396272F0E9436 +:105CC0004C2E0E944B2E252F0E944C2E242F0C94DC +:105CD0004C2E0196272F0E944C2E0C944B2EDC014B +:105CE000CB01FC01F999FECF06C0F2BDE1BDF89AE7 +:105CF000319600B40D9241505040B8F70895F89491 +:105D0000FFCFC10EC10ECA0ECA0ECC0ECA0ECA0EED +:105D1000CA0EC10EC10ED10ECA0ECA0ED10EAE19D8 +:105D2000AE191E1A1E1A7E1A981AE419E419A31A3B +:105D30002B1B3A1B3A1B81166F178C17A017AE1737 +:105D4000E3171518C21EEA1E3D1FEA1E3D1F1D1F48 +:105D5000551F3D1F52205F20B92BBD2B112C222C2B +:105D60002D2C4C2C4F2C8E2CAF2C1F2C1F2CBA2CD6 +:0E5D7000BD2CC12CE62C072D0A2D0C2D302D3C +:105D7E007105F00BCF0BCB0BC70B01191A1B1C1D9A +:105D8E001E1F202122010201001C001C1CCA002A19 +:105D9E0000000000C4004C00000000BE00500000D7 +:105DAE000000B8005100000000B2004F00000000DB +:105DBE00AC0052000000000101818283E200E90084 +:105DCE00EA00B500B600B700CD008301CC008A0111 +:105DDE0092019401210223022402250226022702A7 +:105DEE002A02B300B4006F007000F03435366667D7 +:105DFE00F6F7939600FF0100010000FFFF0000017F +:105E0E000001FF000001020202020606060909094E +:105E1E000909090F0F0F0F0F0F151515181919195D +:105E2E001919191919191923244022B6A801860126 +:085E3E00D000BD06D606F606F1 :00000001FF From 7490f8b751ab638773a92926d96f9ec0ce5387c5 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 25 Nov 2021 20:36:23 -0500 Subject: [PATCH 60/94] Improved stretch timer LEDs. Add NKRO. --- keyboards/solartempest/9e/config.h | 32 +- .../solartempest/9e/keymaps/via/keymap.c | 17 +- keyboards/solartempest/9e/rules.mk | 21 +- .../solartempest/9e/solartempest_9e_via.hex | 2095 +++++++++-------- 4 files changed, 1079 insertions(+), 1086 deletions(-) diff --git a/keyboards/solartempest/9e/config.h b/keyboards/solartempest/9e/config.h index a839aee2d30b..f75c47f25a93 100644 --- a/keyboards/solartempest/9e/config.h +++ b/keyboards/solartempest/9e/config.h @@ -27,34 +27,28 @@ #define PRODUCT A9e #define DESCRIPTION Keyboard -/* key matrix size */ +// key matrix settings #define MATRIX_ROWS 4 #define MATRIX_COLS 12 - -/* key matrix pins */ #define MATRIX_ROW_PINS { F0, F1, F2, F3 } -#define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. They are needed for the encoder key matrix. -#define UNUSED_PINS +#define MATRIX_COL_PINS { F5, F6, F7, A0, A1, A2, A3, A4, A5, B7, B6, B5 } //F5, F7, B7, B5 are unused on the MCU. Necessary for encoder key matrix. +#define DIODE_DIRECTION COL2ROW +#define DEBOUNCE 6 //Default is 5 + +// NKRO Settings +#ifdef NKRO_ENABLE + #define FORCE_NKRO //Force NKRO if enabled. +#endif + +#define LOCKING_SUPPORT_ENABLE //Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap +#define LOCKING_RESYNC_ENABLE //Locking resynchronize hack /* encoder pins */ #define ENCODERS_PAD_A { C0, C3, C5, C7, D1, D3, D5, D6, A7 } //Encoder pads ordered so on VIA mapping it is cw/ccw and up/down rotation orientation. #define ENCODERS_PAD_B { C1, C2, C4, C6, D0, D2, D4, D7, A6 } #define ENCODER_RESOLUTIONS { 4, 4, 4, 4, 4, 4, 4, 2, 2 } //Better control of individual encoders and encoder types. -//#define ENCODER_RESOLUTION 4 - -/* COL2ROW or ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE - -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - +//RGB Settings #define RGB_DI_PIN E6 #define RGBLIGHT_ANIMATIONS #define RGBLIGHT_EFFECT_SNAKE_LENGTH 1 //Default 4 diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index fbf943a926a7..44fddc3bf9ce 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -38,6 +38,7 @@ bool is_stretch_time = false; uint16_t stretch_timer = 0; uint16_t stretch_minutes = 0; + #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. ATABF = USER00, //Alt tab forwards @@ -206,7 +207,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - #ifdef ENCODER_ENABLE static uint8_t encoder_state[9] = {0}; static keypos_t encoder_ccw[9] = {{2, 0}, {2, 1}, {2, 2}, {11, 0}, {11, 1}, {11, 2}, {11, 3}, {5, 3}, {8, 3}}; @@ -255,7 +255,6 @@ void matrix_scan_user(void) { is_alt_tab_active = false; } } - #ifdef RGBLIGHT_ENABLE //Stretch timer code if (is_stretch_active && !is_stretch_time) { @@ -263,7 +262,7 @@ void matrix_scan_user(void) { stretch_minutes++; stretch_timer = timer_read(); } - if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. + if (stretch_minutes > 30) { //Change RGB animation effect after set number of minutes. 30 minutes is a good interval. rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); is_stretch_time = true; @@ -272,7 +271,6 @@ void matrix_scan_user(void) { } #endif - encoder_action_unregister(); #ifdef RGBLIGHT_ENABLE //Add rotation animations underneath rotary encoders when turning if (!encoder_effect && is_encoder1_rotate) { //Turn on the effect for encoder 1 @@ -294,9 +292,6 @@ void matrix_scan_user(void) { if(encoder_effect){ rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); - if(is_stretch_active){ //Maintain orange LED to indicate stretch timer is still on. - rgblight_sethsv_at(0,230,100,40); - } } is_encoder1_rotate = false; is_encoder6_rotate = false; @@ -307,6 +302,12 @@ void matrix_scan_user(void) { is_encoder6_rotate = false; is_encoder7_rotate = false; } + + if(!is_stretch_time){ //Update LED status indicators when stretch animation is not playing. + if(is_stretch_active==1) { + rgblight_sethsv_at(0,230,100,40); //Set LED to orange to indicate timer is on + } + } #endif } @@ -364,7 +365,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { is_stretch_active ^= 1; stretch_timer = timer_read(); - //rgblight_sethsv_at(75,215,80,41); if(is_stretch_time==1) { //Check if it is time to stretch, then dismiss the animation. rgblight_set_effect_range(0, 42); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); @@ -402,7 +402,6 @@ const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({ const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({6, 2, 43,100,160}); //White-middle scroll lock indication (No dedicated LED) - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers my_layer0_layer, my_layer1_layer, diff --git a/keyboards/solartempest/9e/rules.mk b/keyboards/solartempest/9e/rules.mk index 5c83fafe8829..17d308a4490a 100644 --- a/keyboards/solartempest/9e/rules.mk +++ b/keyboards/solartempest/9e/rules.mk @@ -42,20 +42,19 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options -# comment out to disable the options. - -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = no # Commands for debug and configuration -TERMINAL_ENABLE = no # Terminal interface feature, very large. -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +# Comment out to disable the options. + +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration (+1000) +CONSOLE_ENABLE = no # Console for debug (+400) +COMMAND_ENABLE = no # Commands for debug and configuration (+878) +TERMINAL_ENABLE = no # Terminal interface feature (+4410) +MOUSEKEY_ENABLE = yes # Mouse keys (+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control (+450) RGBLIGHT_ENABLE = yes # RGB LEDs -RGBLIGHT_SLEEP = yes # LEDs off when sleeping -NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # NKRO (+328) KEY_LOCK_ENABLE = no # Key lock functionality ENCODER_ENABLE = yes # Encoders LTO_ENABLE = yes # Save space LEADER_ENABLE = no # Leader keys COMBO_ENABLE = no # Combo keys -UNICODE_ENABLE = no # Unicode \ No newline at end of file +UNICODE_ENABLE = no # Unicode diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index 2efaf70534e8..231ed93af297 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C9443250C94FF24E9 -:100030000C943E260C94EA040C94EA040C94EA0412 +:100020000C94EA040C94EA040C943F250C94FB24F1 +:100030000C943A260C94EA040C94EA040C94EA0416 :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C941A260C94EA040C94EA0416 +:100050000C94EA040C9416260C94EA040C94EA041A :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -153,9 +153,9 @@ :10098000940314BE84B7877F84BF0FB6F894A895EC :1009900080916000886180936000109260000FBEBB :1009A000E0E0F8E7099523E0A2EEB1E001C01D9276 -:1009B000A139B207E1F711E0A0E0B1E0E0E0FDE528 -:1009C00002C005900D92A23EB107D9F70E9465269C -:1009D0000C94472E0C940000E8EDF0E080818C7FB1 +:1009B000A139B207E1F711E0A0E0B1E0EEE0FDE51A +:1009C00002C005900D92A23EB107D9F70E946126A0 +:1009D0000C944E2E0C940000E8EDF0E080818C7FAA :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 @@ -225,7 +225,7 @@ :100E00004983E8835A83DF91CF911F910F91FF901F :100E1000EF90DF90BF90AF900895202F30E0449185 :100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E94482D812F90E0880F991F9C +:100E3000F0E0BF010E944F2D812F90E0880F991F95 :100E400055E5569FD001579FB00D11248A1B9B0B6F :100E5000982F990F890F5F01A21AB30AAE9CD00197 :100E6000AF9CB00DBE9CB00D11245B2F089F80017C @@ -260,12 +260,12 @@ :10103000F7CF8F3F09F0A1CF8091B0028B7FF0CF27 :1010400008958091B00280FD16C081FD16C082FD1A :1010500016C08091AE028823A1F0883280F428E087 -:10106000829FC001112468E270E00E945C2D862FEF +:10106000829FC001112468E270E00E94632D862FE8 :10107000672B39F0089582E0089584E0089588E0B0 :10108000089581E008958091B00280FD14C081FD33 :1010900014C082FD16C08091AF02882381F0843194 :1010A00080F422E3829FC001112464E170E00E9479 -:1010B0005C2D862F08958CE0089589E1089585E0E0 +:1010B000632D862F08958CE0089589E1089585E0D9 :1010C000089582E30895803F31F40E94430881959A :1010D0008093B8020895813F19F40E944308F8CF25 :1010E000823F31F40E94430881958093B7020895AE @@ -452,1053 +452,1054 @@ :101C3000EAF7DF91CF911F910F910C94CC0BC770F5 :101C400081E001C0880FCA95EAF7F3CFDF91CF9109 :101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E94CF2D2196C11588E0D807B9F783 +:101C6000CE010E94D62D2196C11588E0D807B9F77C :101C7000DF91CF9108956F927F928F929F92AF9252 :101C8000BF92CF92DF92EF92FF920F931F93CF9369 :101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 :101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E94CF2D682DC80101960E9490 -:101CC000CF2D82E0A80EB11C0E5F1F4FC017D107A9 +:101CB000692DC8010E94D62D682DC80101960E9489 +:101CC000D62D82E0A80EB11C0E5F1F4FC017D107A2 :101CD00061F788E1680E711C6896CE15DF0529F062 :101CE0008E01085111095301E0CF7E0180E6E80E14 :101CF000F11C80E6C80ED11C8FE5E81684E0F806DA :101D000079F6DF91CF911F910F91FF90EF90DF90C7 :101D1000CF90BF90AF909F908F907F906F900895DD :101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D3000CF2D6FEFC11161E184E290E00E94CF2DC1 -:101D40006FEFC11167E085E290E0CF910C94CF2D49 -:101D500080E00E94900E60E086E290E00E94CF2D2D +:101D3000D62D6FEFC11161E184E290E00E94D62DB3 +:101D40006FEFC11165E285E290E0CF910C94D62D42 +:101D500080E00E94900E60E086E290E00E94D62D26 :101D60000E943B0E0E942B0E81E00C94900ECF93AC -:101D7000C091D602C2FB992790F9981781F080FB99 -:101D8000C2F9C093D6026091D50284E090E00E942F -:101D9000CF2D6C2F82E290E0CF910C94CF2DCF917C -:101DA00008950F931F93CF93DF93C42FD0E0CC0FF0 -:101DB000DD1F28E1629FC00DD11D112430E6839FF5 -:101DC000C00DD11D1124CE0187960E94BB2D082F76 -:101DD00010E0102F0027CE0188960E94BB2D98019D -:101DE000282BC901DF91CF911F910F910895462FA4 -:101DF0008A3038F4743028F46C3018F4672F0C945F -:101E0000D10E90E080E00895BF92CF92DF92EF92E2 -:101E1000FF920F931F93CF93DF937C0100910903EF -:101E200010910A0380915A0290915B02082B192BA2 -:101E3000CFE0D0E0CC24C394D12CBC2EC6010C2E14 -:101E400002C0880F991F0A94E2F780239123892BFF -:101E500071F4219790F7B12C8B2DDF91CF911F91C9 -:101E60000F91FF90EF90DF90CF90BF900895B70152 -:101E70008C2F0E94F70E0E941909019751F3ECCFA5 -:101E8000CF93DF93EC010E94040FBE010E94F70E76 -:101E9000DF91CF910C941909FC01808191810E94FE -:101EA000400F292F2F7092959F7092509E3078F49A -:101EB000E92FF0E0E75BF14D0C94702D803F19F0B5 -:101EC00020F4883E20F481E00895843FE1F380E02F -:101ED0000895883EC0F3813FD1F7F5CF822F8695D4 -:101EE00086958695089583E290E00E94BB2D81320D -:101EF00089F484E290E00E94BB2D813159F485E29F -:101F000090E00E94BB2D91E0873009F090E0892F8E -:101F10008170089580E0FCCFCF9384E090E00E9430 -:101F2000BB2DC82F82E290E00E94BB2D982F8C2FF2 -:101F3000CF91089560918903669570E04BE050E081 -:101F40008AE091E00E94A12D892B19F481E0809311 -:101F5000C5020E9488069093BF028093BE02089536 -:101F60004F925F926F927F928F929F92AF92BF92A9 -:101F7000CF92DF92EF92FF920F931F93CF93DF9355 -:101F8000CDB7DEB7CE57D1090FB6F894DEBF0FBE7E -:101F9000CDBF509019018091890380FF5DC0809072 -:101FA000BC029090BD028114910409F068C0EDEC70 -:101FB000F3E09E012F5F3F4FBE0161587F4FC90183 -:101FC000A4914A2F50E0DA01AA0FBB1FA40FB51F3E -:101FD000A55FBC4FCD90DD90EC90D901CD92DD9204 -:101FE000ED929D0131966A177B0751F720911801F8 -:101FF00043E0249F800D911D11246E9A2EB12F7BFA -:102000003EB130645FB7F894BC01549E600D711D01 -:1020100011248617970709F08DC05FBF8FE594E004 -:102020000197F1F700C00000C258DF4F0FB6F894D7 -:10203000DEBF0FBECDBFDF91CF911F910F91FF90FB -:10204000EF90DF90CF90BF90AF909F908F907F9058 -:102050006F905F904F90089580911A0190911B01AD -:1020600023E0829FF0011124E55FFC4F891708F0FF -:1020700096CF1182108212828F5F3396F7CF8091B4 -:10208000BB02811194CFD12CC12C66246394712C96 -:1020900053E0452E8091C60293010C2C01C0220F03 -:1020A0000A94EAF7822309F43CC0F601EE0FFF1F01 -:1020B000E80DF91DE590F490E114F10409F477CFEF -:1020C00045E050E0B701CE0101960E94982D0981AC -:1020D0000F3F39F18A81800F9927991F8B32910523 -:1020E00014F08AE290E05C01AA0CBB1C8A0D9B1DD7 -:1020F000DC01A55FBC4F5D01049D80011124055FDB -:102100001C4F0A151B0520F0B5E0EB0EF11CD8CFD3 -:1021100098014D816C818B810E94E8060D5F1F4FF5 -:10212000F0CFEFEFCE1ADE0AF8E0CF16D10409F0B7 -:10213000B1CF3DCFFC014191CF01E8E03EB90000B5 -:1021400000C047FF2EB9440F000000C000C000C00F -:102150002EB900C0EA9591F75CCFCF93DF9300D002 -:102160000F92CDB7DEB78091890380FF13C09E0127 -:102170002F5F3F4F44E666EE80E00E94E8068B81C9 -:1021800099812A812093840390938303809385030C -:102190000E94B00F0F900F900F90DF91CF91089594 -:1021A0000F931F93CF93DF93EC0110E000E0909129 -:1021B0001C019017110609F06CF40E94B00F8C817D -:1021C00090E00196817099278C83DF91CF911F91C8 -:1021D0000F91089520911A01A801420F511D9A01F3 -:1021E000220F331F240F351F255F3C4F4C81609118 -:1021F0008B0380918A0396959017110651F04CF04D -:10220000442349F040918C030E94E8060F5F1F4F62 -:10221000CECF4423B9F340E0F7CF8F929F92AF9295 -:10222000BF92CF92DF92EF92FF920F931F93CF93C3 -:10223000DF93EC014C81042F10E09801D8010E943B -:10224000382E9B01AC010E94032E4B015C01E0E2A1 -:10225000F0E0E01BF10BA5E5B0E0AC019B010E94B2 -:10226000032E6B017C019F01DF010E947D2D9B01EC -:10227000AC010E940E2E9B01AC01280D391D4A1D98 -:102280005B1DC701B6010E94162EF22E822F90E030 -:1022900039E23F1560F143E0249F90011124359508 -:1022A0002795122F109500E085E5E82EEF18809114 -:1022B0001C01081758F10E94B00F9C8181E09923FE -:1022C00019F0903219F48FEF809317018091170164 -:1022D000890F8C83DF91CF911F910F91FF90EF9029 -:1022E000DF90CF90BF90AF909F908F90089525E59D -:1022F00030E0B901681B790B9B01220F331F260FB9 -:10230000371F37FFCCCF2F5F3F4FC9CF8E2D01FD39 -:102310008F2D20911A01622F600F7727771F9B0165 -:10232000220F331F260F371F255F3C4F412F60912F -:102330008B030E94E8060F5FBACF0F931F93CF93D2 -:10234000DF9380911A0190911B0123E0829FF0019D -:102350001124E55FFC4F891740F1C0E0D3E06091A4 -:102360001C01C61740F10E94B00F20911501809109 -:10237000C802820F8093C80290911601920F909329 -:102380001601191654F4082E000C990B40911C01EB -:102390004150550B841795071CF02195209315018A -:1023A000DF91CF911F910F910895118210821282B7 -:1023B0008F5F3396D0CF0C2F10E070E0C8010E94E1 -:1023C0005C2D20911A01820F482F50E02091C80205 -:1023D000022E000C330B02171307BCF020911601DC -:1023E000022E000C330B201731077CF08D9F9001DB -:1023F0001124255F3C4F40918C0360918B038091A9 -:102400008A030E94E806CF5FAACFFA01EE0FFF1FF2 -:10241000E40FF51FE55FFC4F118210821282F3CFAB -:102420001F93CF93DF93FC018281DFEF80FFD1E028 -:10243000C0E01AE290911C01C91788F00E94B00F09 -:102440008091C702D130C9F5811102C080911C0171 -:1024500081508093C702DF91CF911F910895E09141 -:102460001A014C2F50E09A012E0F311DF901EE0F89 -:10247000FF1FE20FF31FE55FFC4F118210821282F3 -:102480008091C7028B32ACF0612F0E943A2D892FC8 -:10249000082E000C990B4817590749F49F014091E9 -:1024A0008C0360918B0380918A030E94E806CF5FC2 -:1024B000C1CF87FFEDCF890FEBCF90E00196609100 -:1024C0001C0170E00E945C2DC4CFEF92FF921F931D -:1024D000CF93DF93EC0110E0EE24EA94F12C6091AD -:1024E0001C01161770F00E94B00F9A818C8190FF2A -:1024F00027C08F5F8C83DF91CF911F91FF90EF906A -:10250000089520911A01422F410F5527551FCA01E6 -:102510009A01220F331F280F391F255F3C4F70E0AF -:10252000C7010E945C2D962F8C8140918C03609195 -:102530008B03199F800D11240E94E8061F5FCFCFE7 -:102540008150D8CF9091890390FF14C090911A01C7 -:1025500020911B0133E0939FF0011124E55FFC4FB4 -:10256000921710F00C94B00F8183608342839F5FB9 -:102570003396F6CF08950F931F93CF93DF9300D038 -:102580000F92CDB7DEB78C018091C90281110AC0CC -:102590009E012F5F3F4F44EB6FEF0E94E8068A8158 -:1025A0008093C902F8016481613069F08091C902A9 -:1025B00040E0662361F040E0623011F44091C902CE -:1025C00080E060E004C06091C90240E080E00E94C9 -:1025D000A212F801848190E0019663E070E00E940D -:1025E0005C2D84830F900F900F90DF91CF911F91FE -:1025F0000F910895CF93DF9300D00F92CDB7DEB740 -:102600009091890390FF0AC09E012F5F3F4F0E9467 -:10261000E8064B8169818A810E94A2120F900F9077 -:102620000F90DF91CF910895CF93DF93EC01E9E80C -:10263000F3E0438162818C810E94FA128C818F5F6A -:102640008C83DF91CF910895CF93DF93EC01EC81E0 -:10265000F0E0EA50FC4F4491E9E8F3E062818181C7 -:102660000E94FA128C818F5F8C83DF91CF91089545 -:10267000CF92DF92EF92FF926B017C010E94D20613 -:10268000B701A60188E090E0FF90EF90DF90CF9037 -:102690000C94E12DAF92BF92CF92DF92EF92FF9216 -:1026A0000F931F93CF93DF9300D00F92CDB7DEB778 -:1026B000182FF62E042FE22E9091890390FF29C047 -:1026C000E92FE695AE2FB0E0A255BE4F8C918093D6 -:1026D000C4029E7F923059F59E012F5F3F4F812F9C -:1026E0000E94E8064B8169818A810E94A2121093A0 -:1026F0008A03F0928B0300938C03EE2051F06091DB -:10270000890370918A0380918B0390918C030E94BE -:1027100038130F900F900F90DF91CF911F910F9171 -:10272000FF90EF90DF90CF90BF90AF9008958230F0 -:1027300019F400918C03DBCF863019F410918A03D1 -:10274000D6CF8930D9F3893191F6E9518E2F817036 -:10275000D82EE695F0E0E853FC4FA590B490C12C3C -:10276000BB2460911C01C61618F00E94B00FBFCFA9 -:102770002C2D30E0A29EC001A39E900DB29E900D24 -:10278000112470E00E94482D812FD11013C0860FB4 -:1027900040911A01420F532F511D9A01220F331FEE -:1027A000240F351F255F3C4F402F6F2D0E94E806F8 -:1027B000C394D7CF861BECCFE9E8F3E0438128E050 -:1027C000421B08F440E021E0628181810C944A13AD -:1027D000E9E8F3E0438128E0420F08F44FEF21E0FD -:1027E000628181810C944A13E9E8F3E0628128E078 -:1027F000621B08F460E021E0438181810C944A135C -:10280000E9E8F3E0628128E0620F08F46FEF21E06D -:10281000438181810C944A13E9E8F3E0818121E04E -:102820004381628188500C944A13E9E8F3E0818186 -:1028300021E043816281885F0C944A1380918D036B -:10284000882319F0815080938D03609189037091E2 -:102850008A0380918B0390918C030C9438138091A0 -:102860008D03833018F48F5F80938D03609189030B -:1028700070918A0380918B0390918C030C94381390 -:102880009091890390FF36C09170811129C09260A8 -:1028900090938903662351F06091890370918A03B4 -:1028A00080918B0390918C030E943813609189036F -:1028B000669570E04BE050E08AE091E00E94A12D27 -:1028C000892BA9F01092C50281E08093C10220E01B -:1028D00040918C0360918B0380918A030C944A137E -:1028E000853210F09864D4CF880F982BD1CF0E94F6 -:1028F0009A0FEACF089560E00C94401421E030E094 -:10290000A90102C0440F551F8A95E2F7CA01209120 -:10291000C602662391F0822B8093C6028091C50285 -:10292000811105C08091890386950E947B14809156 -:10293000890380FD05C00C94B00F80958223ECCFF5 -:102940000895CF93DF93C82FC17082FBDD27D0F9A4 -:1029500081FB662760F984E00E947E1461E06C27A9 -:1029600085E00E947E146D2F86E0DF91CF910C945C -:102970007E140F931F93CF93DF93EC0161E00097D8 -:1029800009F0682F617080E00E947E1460E020975B -:1029900021F0BE0176956795617081E00E947E14FA -:1029A00060E0209731F0BE01769567957695679542 -:1029B000617082E00E947E1460E0209739F0BE01D1 -:1029C000B3E076956795BA95E1F7617083E00E9470 -:1029D0007E14AE0170E060E0BB27A72F962F852FF5 -:1029E0000097A105B105D9F1AC01BD0188E08A01CC -:1029F0009B01F4E03695279517950795FA95D1F741 -:102A0000011511052105310519F08C5FB901A801E7 -:102A10008A019B01E2E03695279517950795EA957F -:102A2000D1F7011511052105310519F08E5FB901A6 -:102A3000A8017695679557954795452B462B472BCB -:102A400009F08F5F8130C9F0882359F08230D1F0CE -:102A50008330E9F020E04EE16FEF80E406C080E0D3 -:102A6000C6CF20E04EE16FEF82E30E944A13CE0111 -:102A7000DF91CF911F910F91089520E04EE16FEF0C -:102A80008EE1F3CF20E04EE16FEF8AE6EECF20E05B -:102A90004EE16FEF87EDE9CF0E94B91490930A03DE -:102AA000809309030C94A90B8091090390910A0368 -:102AB0009C01267033272630310519F488600C9468 -:102AC0004C15877FFCCF21E030E002C0220F331F7E -:102AD0008A95E2F7209530958091090390910A0339 -:102AE000822393230C944C15909155028095892351 -:102AF00080935502282F277039F4282F082E000CB8 -:102B0000330B9217130621F49091D60292FF07C05F -:102B10008595859585950E946315109255020895B7 -:102B200021E030E002C0220F331F8A95E2F7809146 -:102B3000090390910A03822B932B0C944C158091DE -:102B400089038695815009F484E261E00C94401475 -:102B50008091890386958F5F853208F081E061E07E -:102B60000C9440149091890390FF07C09695981794 -:102B700020F0961710F40C94A81561E00C94401402 -:102B8000E9E8F3E083E0808311828FEF828384EBB6 -:102B90008383148260817181828193810C943813C4 -:102BA00069EE7EEF90E080E00E94ED2D60E082E033 -:102BB00090E00E94CF2D60E083E090E00E94CF2D56 -:102BC00010925B0210925A0260E084E090E00E9452 -:102BD000CF2D60E082E290E00E94CF2D60E085E0A2 -:102BE00090E00E94CF2D60E086E090E00E94CF2D23 -:102BF0006FEF87E090E00E94CF2D40E050E0BA01F7 -:102C000088E090E00E94E12D60E08DE090E00E947D -:102C1000CF2D40E050E0BA0188E190E00E94E12D24 -:102C200060E087E190E00E94CF2D40E050E0BA01E3 -:102C30008CE190E00E94E12D70E060E080E290E0A5 -:102C40000E94ED2D40E050E0BA0188E190E00E9442 -:102C5000E12D80E00E94900E0E94A80E40E050E01E -:102C6000BA018FE090E00E94E12D40E050E0BA010F -:102C700083E190E00C94E12D90E080E00E94C92D6A -:102C8000893E9E4F11F40C94730F80E008951092CA -:102C9000580280911D01E6EEF1E0882359F0809101 -:102CA000D50287FF07C08EE1DF011D928A95E9F703 -:102CB0000C94A90B86E0F8CF1F93CF93DF93CDB789 -:102CC000DEB7AA970FB6F894DEBF0FBECDBF81E086 -:102CD00093E02091F100DC012D93CD01B3E0893028 -:102CE0009B07B9F780910203833009F471C0B8F4EF -:102CF000813009F448C0823009F4B2C08091E80004 -:102D000083FF3AC180910103909102039A3008F049 -:102D100033C1E92FF0E0E95AF14D0C94702D8A305F -:102D200009F48DC08B3009F470C0893039F7809177 -:102D30000103813219F780910503909106030097F2 -:102D400011F00297D9F68091E800877F8093E80020 -:102D50008091E80082FF37C08091F2009091F300EB -:102D6000029729F48091F1008B7F813021F48091CA -:102D7000F1008093DC028091E8008B778093E8007B -:102D80000E946605BBCF80910103813A09F0B6CF5E -:102D90008091E800877F8093E800809105039091FF -:102DA0000603892B61F460E28DED92E070E00E94F1 -:102DB00019068091E8008B778093E8009FCF60E050 -:102DC00090E080E0F3CF8091FF028111C1CF96CFD8 -:102DD00080910103813A09F091CF80910503909190 -:102DE0000603892B09F08ACF8091E800877F8093C2 -:102DF000E8008091E80080FFFCCF80911D01809366 -:102E0000F1008091E8008E77B9CF80910103813283 -:102E100009F074CF8091050390910603892B09F086 -:102E20006DCF8091E800877F8093E8000E9466055F -:102E30008091030380931D010E9447165FCF80910C -:102E40000103813209F05ACF8091E800877F809397 -:102E5000E8000E946605809104038093DB024ECF58 -:102E600080910103813A09F049CF8091E800877F82 -:102E70008093E8008091E80080FFFCCF8091DB0226 -:102E8000BECF803899F0823809F076C08091050372 -:102E90008F70873008F070C08093E9008091EB005C -:102EA00085FB882780F91092E90006C08091FD0219 -:102EB0009091FE02911182609091E800977F90932B -:102EC000E8008093F1001092F1008091E8008E7785 -:102ED000B5C1882309F4A2C1823009F04DC08091A8 -:102EE00003038111A6C1809105038F702FEF280F76 -:102EF000263008F041C08093E9002091EB0020FFCC -:102F000098C1933031F48091EB0080628093EB00A4 -:102F100090C19091EB0090619093EB0021E030E044 -:102F200001C0220F8A95EAF72093EA001092EA0086 -:102F30008091EB008860EACF81111EC010910303DD -:102F40001F778091E3008078812B8093E30080914C -:102F5000E800877F8093E8000E9466058091E80082 -:102F600080FFFCCF8091E30080688093E30082E0E3 -:102F7000111183E08093FF028091E80083FF0AC073 -:102F80008091E800877F8093E8008091EB00806269 -:102F90008093EB00AA960FB6F894DEBF0FBECDBFAC -:102FA000DF91CF911F9108958058823028F72091AA -:102FB0000303309104032C3DE3E03E07A1F583E0D9 -:102FC0008A838AE289834FB7F894DE01139620E062 -:102FD0003EE051E2E32FF0E050935700E49120FFF0 -:102FE00003C0E295EF703F5FEF708E2F90E0EA3004 -:102FF000C0F0C7968D939D932F5F243159F74FBF33 -:103000008091E800877F8093E8006AE270E0CE015B -:1030100001960E9419068091E8008B778093E80062 -:10302000ABCFC096E7CF8091050390910603432F65 -:1030300055274330510509F44AC078F54130510510 -:1030400009F47AC08BE590E0E6EBF8E042305105F8 -:1030500009F092CF2091E800277F2093E80020918B -:103060000703309108038217930708F49C0140E09E -:103070002115310509F065C0411163C08091E80058 -:1030800082FDC9CF8091FF02882329F2853019F291 -:103090008091E80083FFF2CFBECF4132510509F4A1 -:1030A0003CC04232510509F067CF8330910508F0EA -:1030B00063CFFC01EE0FFF1FEA52FE4F0190F0813B -:1030C000E02D8D529E4FDC018C9190E01AC0332789 -:1030D00021303105D1F02115310561F02230310563 -:1030E00009F04ACFE3E2F9E0E4918E2F90E0E3E2C9 -:1030F000F9E007C0E1E4F9E0E4918E2F90E0E1E42B -:10310000F9E0009709F438CFA5CFEDE2F9E0E491BA -:103110008E2F90E0EDE2F9E0F4CF8330910508F0D6 -:103120002BCF880F991FFC01E452FE4F0190F081D4 -:10313000E02D89E090E08ECF82E190E0E1E1F9E0DE -:1031400089CF8091FF02882309F465CF853009F487 -:1031500062CF8091E80083FD5ECF8091E80082FD20 -:103160008DCF8091E80080FF83CF8091F200909115 -:10317000F3002115310519F08830910550F041E038 -:10318000089709F040E08091E8008E778093E8008E -:103190006FCF44914093F10031962150310901964F -:1031A000E8CF803809F0E8CE8091E800877F8093EF -:1031B000E800809100038093F10087CE8111DCCE7E -:1031C00010910303123008F0D7CE8091E800877F7A -:1031D0008093E800109300030E946605112311F00C -:1031E00084E005C08091E30087FDFACF81E0809301 -:1031F000FF0242E061EC81E00E94850542E261EC61 -:1032000084E00E94850542E261EC82E00E9485052F -:1032100042E260EC83E00E948505AECE809103031C -:10322000813009F0A9CE81E0933009F080E08093ED -:10323000FE021092E9008091E800877F8093E80009 -:103240000E94660599CE3F924F925F926F927F9255 -:103250008F929F92AF92BF92CF92DF92EF92FF92A6 -:103260000F931F93CF93DF9300D000D00F92CDB771 -:10327000DEB78C01FC0183819481892B31F0808140 -:10328000918189238F3F09F05DC60F900F900F90B9 -:103290000F900F90DF91CF911F910F91FF90EF90C2 -:1032A000DF90CF90BF90AF909F908F907F906F9066 -:1032B0005F904F903F9008950E94040FF82E682F62 -:1032C00089819A810E947D0B69817A818F2D0E946C -:1032D000F70E7C01F8018281882309F425C6970145 -:1032E00022513F452031310508F0DDC58FEF97E0D1 -:1032F0000E94BB2DFEEEEF0E57EE852E53E0952E6D -:10330000882381F180915502877009F4BECFF801BE -:103310008281882309F4B9CF82E00F900F900F903B -:103320000F900F90DF91CF911F910F91FF90EF9031 -:10333000DF90CF90BF90AF909F908F907F906F90D5 -:103340005F904F903F900C947415811428E0920682 -:10335000C9F2C4010E94BB2D811101C0EA943FEF64 -:10336000831A930AE110F1CF1C821B8244244394F8 -:103370004AE0342E74014FEFE41AF40AC4010E94AB -:10338000BB2D89831A82882309F4BCCF9FEF980F45 -:10339000933000F58A83498252E0850E911CC70163 -:1033A0000E94BB2D8B83882309F4ACCFCE010196FC -:1033B0007C01F70120812223E9F2213009F049C084 -:1033C00091818281913041F4F2E0EF0EF11C0E9474 -:1033D000AA0D09C04701EACF923049F422E0E20E7B -:1033E000F11C0E94F50C3FEFE31AF30AE2CF933091 -:1033F00031F432E0E30EF11C0E94E10BF4CF943083 -:1034000021F04FEFE41AF40AEECF52E0E50EF11C82 -:1034100030E020E0B7016F5F7F4FF70141818053BB -:10342000990B8A30910550F021503109E0F28FE973 -:103430009FE00197F1F700C00000F6CF329EF00147 -:10344000339EF00D11249C012E0F3F1F842F7B0112 -:10345000E1CFE22FF0E0EA5DFD4F5490822F869598 -:103460008695869590E0FC01EA5EFD4F649027709A -:10347000712C022E02C0759467940A94E2F7E1E081 -:103480006E227724FC01EA5FFD4FA490B12C022E3E -:1034900002C0B594A7940A94E2F7F1E0AF22BB24EE -:1034A000FC01EA50FE4FC490D12C02C0D594C794C1 -:1034B0002A95E2F721E0C222DD246114710419F09B -:1034C00081EE0E94F50CA114B10419F086EE0E9461 -:1034D000F50C852D0E94AA0DAB2819F086EE0E94EE -:1034E000E10B672819F081EE0E94E10BCD2809F469 -:1034F0007ACF8CE26CCF81E00E9490150E94541527 -:1035000001CF81E00E946315F9CF82E0F5CFF3E8A7 -:10351000EF16FFE5FF0609F4CCC024E8E2162FE51C -:10352000F20609F0E0C4882309F4ECCEF0906A02B8 -:10353000EE24E394FE24F0926A020E94880690939F -:103540006802809367028091690210921A018823B1 -:1035500009F4BDC08AE280931B0180931C0181E2C3 -:103560000E947B140E94AD10E0926A0210926902E0 -:103570001092660210926502C5CE882309F481C0BC -:1035800080916D02811106C081E080936D0282EE10 -:103590000E94F50C0E94880690936C0280936B0247 -:1035A0008BE20E94F50CF8018281882309F4DBC4C8 -:1035B00010929003F3E0EF16FDE5FF0608F0BAC0A5 -:1035C0002AEFE2162CE5F20630F4C70182509C4542 -:1035D000449708F0B5C00E948C0F9093D602809358 -:1035E000D50240E1E4164CE5F40609F491C108F077 -:1035F000FFC088E0E8168CE5F80609F477C108F00A -:10360000CBC0E4E0EE16ECE5FE0609F461C108F07B -:10361000ADC022E0E2162CE5F20609F453C1809118 -:10362000D502826033E0E3163CE5F30609F44DC1B0 -:103630006091D502F090D60284E090E00E94CF2DF8 -:103640006F2D82E290E00E94CF2D0E9447165ACE45 -:103650008823A1F080916D02811106C081E08093E2 -:103660006D0282EE0E94F50C0E94880690936C0217 -:1036700080936B0281EE0E94F50C92CF81EE0E9446 -:10368000E10B8BE20E94E10B8ECF882309F48BCFF4 -:1036900081EE0E94F50C83EE0E94F50C8FE40E94EF -:1036A000F50C8FE40E94E10B83EE0E94E10B81EEAA -:1036B000E9CF882309F477CF81EE0E94F50C83EEE1 -:1036C0000E94F50C80E50E94F50C80E5EBCF8AE2C4 -:1036D00080931B0180931C0181E2FF2029F00E944E -:1036E0007B140E94AD1042CF0E947B143FCFE5EFC8 -:1036F000EE16ECE5FE06B9F090F026EFE2162CE5AA -:10370000F20609F050CF27E245EE66EE09C427E243 -:1037100045EE65EE05C426E241EE60EE01C427E207 -:1037200045EE64EEFDC326E241EE62EEF9C328E207 -:1037300041E0EFCF31E6E3163DE5F30609F44BCF68 -:103740008091580246E1E4164CE5F40609F018C4ED -:103750008A7A91E009F490E0909304028111FDC00F -:1037600089E20E94170B0E94A70ACCCD8091D50256 -:10377000806146E0E4164CE5F40609F4A6C08091A9 -:10378000D502886057E0E5165CE5F50608F49DC0B3 -:103790008091D502806299C08CE0E8168CE5F8062D -:1037A00009F4AEC078F48091D5028C60EAE0EE16A0 -:1037B000ECE5FE0609F489C008F49CC08091D502AE -:1037C0008E7F83C08091D502877F2EE0E2162CE5A4 -:1037D000F20609F47AC08091D5028B7F3FE0E316B0 -:1037E0003CE5F30608F471C08091D5028F7E6DC070 -:1037F0004CEFE4164CE5F40609F486C0A0F584E12C -:10380000E8168CE5F80609F497C098F4E2E1EE16A4 -:10381000ECE5FE0609F480C08091D5028F7BF3E1D0 -:10382000EF16FCE5FF0608F450C08091D502837FB7 -:103830004CC02AEFE2162CE5F20609F44DC008F060 -:1038400051C045E1E4164CE5F40609F0F1CE809153 -:10385000D50282FB992790F921E0922790FB82F90B -:1038600090FB83F932C0E1145DE5F50609F45AC016 -:10387000A0F48091D60283609EEFE9169CE5F906DC -:1038800071F18091D6028D7FEFEFEE16ECE5FE062A -:1038900030F18091D6028C7F22C0F2E0EF16FDE578 -:1038A000FF0609F458C008F450C031E6E3163DE5C0 -:1038B000F30609F0BDCE9091D502892F8F7E94FF3B -:1038C000806103C08091D50281608093D502B0CE23 -:1038D0008091D5028460F9CF8091D6028160809377 -:1038E000D602A6CE8091D6028260F9CF8091D50211 -:1038F0008064EBCF0E9447168091D5028068E5CFA7 -:103900008091D5028D7FE1CF8091D6028E7FE7CF67 -:103910008091D5028F7DD9CF0E9447168091D50224 -:103920008F77D3CF8091D602982F909591708E7F0C -:10393000892B90FB81F9D3CF0E9447169091D50235 -:10394000892F97FB87F98058C0CF61E08EE090E027 -:103950000E94CF2D6DCE60E0F9CF85E302CF85E3E5 -:103960000CC38091890380FF1BC08E7F80938903E5 -:103970006091890370918A0380918B0390918C03ED -:103980000E9438131092C5025FEF80E792E0515019 -:1039900080409040E1F700C000000E94B00FB2CC20 -:1039A00081608093890361E086950E944014AACCCF -:1039B0004FE955E168EA75E10E94CC06A3CC48EADC -:1039C00055E16FE975E1F8CF45E154E16CE074E150 -:1039D000F3CF44EF53E160E074E1EECF4CED53E1FF -:1039E00068EE73E1E9CF48EE53E16CED73E1E4CFAB -:1039F0004FE254E16EE174E1DFCF61E081E0D5CFC9 -:103A000065E082E00E94B2157DCC68E086E0FACFE6 -:103A100064E18FE0F7CF67E185E1F4CF62E289E10D -:103A2000F1CF61E083E2C1CF4BE5E4164DE5F4064A -:103A300011F15CE5E5165DE5F50609F0D3C280916C -:103A4000D60282FB882780F991E089270E94B70E71 -:103A5000C9C20E9447168FEF94E3ECE0815090407A -:103A6000E040E1F700C000000E94D10C0E94D01598 -:103A700049CC81E0EBCF80E0E9CFC7010E94550B34 -:103A8000D82EBFC22F2D2F70C22E8F2D807F19F000 -:103A9000C29490EFC922DD20C9F0CC2069F080E209 -:103AA0008E0D883010F081100BC080915802C82A0A -:103AB000C09258020E94A70A8E2D0E94F50C19C0D0 -:103AC00080915702C82AC0925702F4CF8E2D0E94CF -:103AD000E10BCC2071F0C09480E28E0D883010F0A4 -:103AE00081103EC080915802C822C09258020E94A4 -:103AF000A70AE92DE850FF0B349720F40E94C00676 -:103B00000E94A114AA2009F4C0CB8091550280FD27 -:103B1000BCCBF80112828595859585950E949015FC -:103B2000C8010E9423198091550285958595859538 -:103B30000F900F900F900F900F90DF91CF911F91EA -:103B40000F91FF90EF90DF90CF90BF90AF909F903C -:103B50008F907F906F905F904F903F900C94631583 -:103B600080915702C822C0925702C1CF3F2D3F70AB -:103B7000B32E8F2D807F803219F0B29480EFB8225F -:103B8000882071F041E0841681F1DD20D9F1CC204C -:103B900091F1F801858180FF8FCF8F7085832BC0D5 -:103BA000DD20B1F0909159028B2D892BC11003C0FB -:103BB0000E94D70B9ECF51E0C512FACF2091D602BA -:103BC00022FD97CF981709F494CF8093590291CF93 -:103BD000C11006C00E94A10A8B2D0E94CC0B89CF78 -:103BE00081E0C81609F485CFF5CFDD2031F095E0EE -:103BF0009C1508F47ECF8B2DDBCFE4E0EC1508F4A8 -:103C000078CFEACFCC2041F3F9E38F1209C02FEF30 -:103C100037EE43E0215030404040E1F700C0000063 -:103C20008E2D0E94E10B65CF8F2D86958695837032 -:103C300061F0813009F05DCFC7019370D11002C0EF -:103C400090E080E00E94940654CFC7019370D11099 -:103C500002C090E080E00E94AA064BCF8E2DDD20AE -:103C600029F00E9463080E94810743CF0E94A807A1 -:103C7000FACF8F2D837009F040C0D1103ACF4E2D6E -:103C8000429546954770440F440F8E2D8F7090E0FB -:103C9000042E02C0880F991F0A94E2F730E020E05A -:103CA000E4FE09C02FE030E002C0220F331F4A9526 -:103CB000E2F7209530954F2D46954695437042305A -:103CC00099F078F460915A0270915B02413039F0BA -:103CD000822B932B862397230E94C60B0ACF862B19 -:103CE000972B822B932BF8CF822B932B20915A0268 -:103CF00030915B0282279327EFCF8695DD2011F06C -:103D00008F2D8170882309F4F4CE4E2D429546956F -:103D10004770440F440F8E2D8F7090E0042E02C028 -:103D2000880F991F0A94E2F730E020E0E4FE09C012 -:103D30002FE030E002C0220F331F4A95E2F72095B2 -:103D400030954F2D469546954370423099F078F462 -:103D50006091090370910A03413039F0822B932B53 -:103D6000862397230E944C15C4CE862B972B822B3B -:103D7000932BF8CF822B932B2091090330910A03C8 -:103D800082279327EFCF5F2D5F70F52EDD2029F07E -:103D9000852F0E9490158E2D0BCF8E2D0E94CC0B5F -:103DA0008F2D0E946315A5CE8E2D92EF891609F4F2 -:103DB00049C0981570F0E0EF8E1639F1F1EF8F16CB -:103DC000C9F1DD2009F45FC0C11076CE8F2D8F714F -:103DD00036C023EF8216D9F134EF8312F2CFDD2003 -:103DE00009F446C0FF2DFF71FF2E8F2F0E94901502 -:103DF0008091D60282FD07C028E0F29EC001112406 -:103E00008360809355028F2D1AC0DD2071F044E04D -:103E10004C1508F46ECE2F2D2F7181E090E002C07A -:103E2000880F991F2A95E2F7A7CF55E05C1508F493 -:103E300060CEF1CF8F2D8F71DD2009F4B2CF0E94BB -:103E4000901557CE8F2D8F71DD20C9F3AACF90E04A -:103E500080E0DD2009F486CF9F2D9F7121E030E0C6 -:103E6000F90102C0EE0FFF1F9A95E2F7CF017ACF5A -:103E700081E00E94741531E03C1508F03ACE82E0F2 -:103E80000E94741536CECC2059F0893309F0C8CE83 -:103E90004FEF57EE83E0415050408040E1F7BECEF7 -:103EA0008F2D8F717ECFF0E1EF16FFE5FF0609F44D -:103EB00022CB21E1E2162FE5F20609F426CB42E8F7 -:103EC000E4164FE5F40609F4E0CB08F020CB90E8C7 -:103ED000E9169FE5F90609F450CBE1E8EE16EFE5A7 -:103EE000FE0609F4B5CB33EFE3163CE5F30609F41F -:103EF00012CC08F0FCCB58EDE5165CE5F50609F4AC -:103F000006CC89EDE8168CE5F80609F410CC97ED9F -:103F1000E9169CE5F90609F046CB26E241EE61EE92 -:103F2000C8010E94C70DEEC930E1E3163FE5F30674 -:103F300009F4E7CA41E1E4164FE5F40609F0BFCF02 -:103F400082E0E0CA85E0DE01119601900D928A952B -:103F5000E1F7F801228189819A812111ADC90E947E -:103F6000550BF82EB1C9F6E1EF16FCE5FF06D1F5C9 -:103F7000809104028111F3CC89E20E94EC0AF3CB18 -:103F800082722CECE2162CE5F20609F431CD08F031 -:103F9000A7C046ECE4164CE5F40609F415CD08F08C -:103FA00076C093ECE9169CE5F90609F401CD08F01A -:103FB0005DC0F2ECEF16FCE5FF0609F4D2CCEAE5B1 -:103FC000EE16EDE5FE0609F454CD08F02DCDE11412 -:103FD0002CE5F20609F43DCD3EEDE3163CE5F30693 -:103FE00009F444CDF8018281E080F180882309F44E -:103FF00044CDC7010E94040FD82E682FC7010E942C -:104000007D0BB7018D2D0E94F70E0E9419097C01CE -:10401000882EF801D280C580C2943FE0C3228091EF -:1040200055028770A1F0AD2CDD2091F08F2D807F9F -:10403000803421F080E28E0D883048F082E00E94CA -:104040007415809155028770AA24A3948111A12C24 -:104050009F2C92942FE09222FBE0F91508F449CDB1 -:10406000E92DF0E0EF59F14D0C94702D24ECE2169F -:104070002CE5F20609F4A3CC4CE054E165E174E1CF -:1040800035ECE3163CE5F30609F496CC98CF49EC01 -:10409000E4164CE5F40609F4A1CC88F497ECE91693 -:1040A0009CE5F90609F495CC40E054E164EF73E136 -:1040B000E8ECEE16ECE5FE0609F47ECC80CFFAECD7 -:1040C000EF16FCE5FF0609F48ECC4EE154E16FE2F9 -:1040D00074E12BECE2162CE5F20609F46DCC6FCFFF -:1040E00031EDE3163CE5F30609F492CCB8F45EEC4E -:1040F000E5165CE5F50609F483CC08F47ECC9FEC6C -:10410000E9169CE5F90609F480CC6EE089E0E0ED63 -:10411000EE16ECE5FE0609F475CC51CFF4EDEF1682 -:10412000FCE5FF0609F47ACC78F432EDE3163CE5C1 -:10413000F30609F470CC61E088E143EDE4164CE548 -:10414000F40609F432CC3BCF55EDE5165CE5F506F7 -:1041500009F467CC8DE5E816F80609F4D3C82FCF2B -:104160001F93CF93DF9380912202807FA9F48091E7 -:104170001F02882389F080915402D091230260911C -:104180001D0270911E02A0912002B0912102C62F43 -:10419000C72316E0D81304C0DF91CF911F91089573 -:1041A00090E0109711F0CF3F19F401968770F2CF8D -:1041B000189F9001199F300D1124F901EC5DFD4FFE -:1041C00041814713F2CF40814613EFCF4281411125 -:1041D000ECCF438154814A1B5B0B483C510528F7C7 -:1041E000809122028F70806180932202F901E75D45 -:1041F000FD4F80818F70806180838DE192E00E940D -:104200002319DF91CF911F910C944B0BAF92BF926A -:10421000CF92DF92EF92FF920F931F93CF93DF9392 -:10422000CDB7DEB761970FB6F894DEBF0FBECDBF36 -:104230008C0185E0F801DE011D9601900D928A95B2 -:10424000E1F7F801E2808DE1A82E82E0B82E6091BE -:104250002002709121026115710509F432C190911B -:104260001D0240911E02892F84238F3F09F429C12A -:1042700020813181C380D480F0901F02F601E61BBB -:10428000F70BFF2009F4E8C080912202582F507FDD -:10429000E83CF10508F0ABC0511177C0FE2C431388 -:1042A00021C092131FC0E1101DC08F7080618093E8 -:1042B0002202C5010E94231980912202F801858300 -:1042C0008F2D61960FB6F894DEBF0FBECDBFDF9184 -:1042D000CF911F910F91FF90EF90DF90CF90BF9003 -:1042E000AF900895CD2829F0822F83238F3F09F0C6 -:1042F00003C180E0F82FF170DF2E80FF3CC0809179 -:1043000054024091230256E0841315C02D873E8746 -:104310008D859E850E94400F292F22952F70223077 -:10432000F0F0243018F59F70F1F0F8019581907F3E -:10433000D1F4D12C1EC090E0589FF001599FF00D90 -:104340001124EC5DFD4F6181361306C06081261398 -:1043500003C06281E6120FC001968770D5CF9F70AF -:1043600011F0882331F3805E883018F3C8010E9471 -:104370002319FD2CA5CFEE2009F4A2CF80912202B3 -:10438000816080932202F12C9BCF431306C09213CD -:1043900004C0F801EE2009F479C0C8010E944C0F56 -:1043A000882309F1EE20F9F080912202803270F02A -:1043B00020911D0230911E0238872F831986DB86DB -:1043C000CA868C87CE0107960E94231986E0F801E1 -:1043D000ADE1B2E001900D928A95E1F70E94B02024 -:1043E000FF24F3946DCFC8010E942319F9CF511116 -:1043F0000AC08DE192E00E94231986E0F501119236 -:104400008A95E9F7C0CF43130FC092130DC0E11096 -:104410000BC0F8018583C8010E94231986E0F501CD -:1044200011928A95E9F74CCFC8010E944C0F88235E -:10443000D1F2EE20C1F280912202803238F2209136 -:104440001D0230911E023A8329831B82DD82CC82B9 -:104450008E83CE010196B8CFE83CF105F8F6FE2C2C -:10446000EE2009F243131FC092131DC08091220257 -:1044700080FD10C0982F907F69F0F8018583903FF0 -:1044800031F0982F907F905F8F70892B8583C801C2 -:104490000E94231986E0F801ADE1B2E001900D928F -:1044A0008A95E1F70DCFC8010E944C0F81118ECF84 -:1044B00080912202816080932202C8010E94231908 -:1044C000FFCEEE2009F48FCFC8010E944C0FF82ECA -:1044D000882309F488CF86E0F801ADE1B2E00190CD -:1044E0000D928A95E1F780911D0290911E020E9423 -:1044F000400F0E94B020E4CE81E08E25FBCE1F93BA -:10450000CF93DF93CDB7DEB767970FB6F894DEBFD2 -:104510000FBECDBF4B8B5C8B6D8B7E8B8F8B6111F8 -:10452000109257021A8A198A85E0FE017396DE01FD -:104530001D9601900D928A95E1F786E0FE013D9669 -:10454000DE01179601900D928A95E1F7CE0107964C -:104550000E940621882389F016E0809154029091F0 -:104560002302891349C067960FB6F894DEBF0FBEC9 -:10457000CDBFDF91CF911F91089586E0FE01379660 -:10458000DE01119601900D928A95E1F78A859B854F -:10459000892B11F38F81988589238F3FE9F2209130 -:1045A000230230E0C9010196877099274091540297 -:1045B0004817190671F40E944716109223021092B0 -:1045C000540286E0EDE1F2E0DF011D928A95E9F701 -:1045D000C3CF96E0929FD001939FB00D1124AC5DA4 -:1045E000BD4FFE01319601900D929A95E1F78093AF -:1045F00023020E944B0BB0CF819FC00111248C5D20 -:104600009D4F0E940621882309F4ADCF809154026A -:1046100090E0019687709927809354029ECF6F9205 -:104620007F928F929F92AF92BF92CF92DF92EF9242 -:10463000FF920F931F93CF93DF93CDB7DEB72D97E4 -:104640000FB6F894DEBF0FBECDBF8E010F5F1F4FB8 -:1046500088E0F80111928A95E9F74FE4E42E41E0F1 -:10466000F42E680153E5652E51E0752E882483945D -:10467000912CF70181917F018F3F09F44BC0F89491 -:10468000E82FE295EF70F0E021A18F70A40102C045 -:10469000440F551F8A95E2F7CA01922F982B91A3D8 -:1046A00092A18095892382A3789400C0E3E5F1E08C -:1046B00030E020E0B12CA12C81918F3F09F47CC027 -:1046C000A82FA295AF70B0E090964C9150E08F70FB -:1046D00002C0559547958A95E2F740FD6DC0C4012B -:1046E000022E02C0880F991F0A94E2F7A82AB92A5D -:1046F0002F5F3F4F2C303105F9F6F701319780815C -:104700008F3F11F00E94BF0850EA5A95F1F7F60169 -:10471000B182A082F2E0CF0ED11C6E147F0409F0AA -:10472000A8CF48E050E0B8018EE692E00E94AE2D9E -:10473000CC24C394009709F4C12C892B09F43FC001 -:1047400088E0F801AEE6B2E001900D928A95E1F7BB -:1047500081E080935E020E94880690935D028093C0 -:104760005C0280915C0290915D020E94790605973F -:1047700050F180916E0290916F029093A702809306 -:10478000A60280917002909171029093A902809389 -:10479000A80280917202909173029093AB02809371 -:1047A000AA0280917402909175029093AD02809359 -:1047B000AC0210925E0207C090E080E097CF80913B -:1047C0005E028111CECF80916D02882371F08091BD -:1047D0006B0290916C020E947906893E934028F00A -:1047E00082EE0E94E10B10926D0280916A02882392 -:1047F00099F18091690281112FC080916702909197 -:1048000068020E94790681369A4E78F0809165029E -:1048100090916602019690936602809365020E94D1 -:104820008806909368028093670280916502909158 -:1048300066024F9788F010921A018AE280931B015A -:1048400080931C018FE00E947B1481E080936902B9 -:10485000109266021092650238E7E32E32E0F32EE2 -:1048600010E000E0BB24B394F701D1907F01DD207C -:1048700051F10115110509F058C0B09263020E9470 -:1048800088069093600280935F02D694C801880FD7 -:10489000991FDD2009F456C08F589E4FFC0180817E -:1048A00091819A8789871B860E9488068160782F6C -:1048B0009D878C87F7013197108249855A856B85D2 -:1048C0008D850E947F220F5F1F4F0930110561F611 -:1048D000109164028091630211115DC08823A9F1D7 -:1048E00010921A0184E080931B0180931C018FE0D9 -:1048F0000E947B141092630281E0809364028C2DED -:104900002D960FB6F894DEBF0FBECDBFDF91CF91CD -:104910001F910F91FF90EF90DF90CF90BF90AF90DD -:104920009F908F907F906F9008950530110519F436 -:10493000B0926202A4CF0630110509F0A6CFB09262 -:1049400061029DCF815A9E4FA9CF80916202882338 -:1049500079F086E180931A018AE180931B0184E05B -:1049600080931C018FE00E947B1410926202C4CFDE -:10497000809161028823A9F08AE180931A018EE177 -:1049800080931B0184E080931C018FE00E947B14C4 -:1049900010926102B1CF81112BC08091620281110E -:1049A00027C080916102811123C080915F029091A4 -:1049B00060020E947906853F9140D0F0112379F082 -:1049C00010921A018AE280931B0180931C0181E2FC -:1049D0000E947B1480916A0281110E94AD10109296 -:1049E000630210926202109261021092640287CFF9 -:1049F00010926302109262021092610280CF1F92A5 -:104A00000F920FB60F9211242F933F934F935F9302 -:104A10006F937F938F939F93AF93BF93CF93DF93C6 -:104A2000EF93FF93D091E900DF708091EC00C82FE5 -:104A3000C17080FDC0E81092E9008091F000877F8E -:104A40008093F00078940E945C161092E9008091A7 -:104A5000F00088608093F000CD2BCF70C093E90008 -:104A6000FF91EF91DF91CF91BF91AF919F918F9186 -:104A70007F916F915F914F913F912F910F900FBE5A -:104A80000F901F9018951F920F920FB60F9211243E -:104A90002F933F934F935F936F937F938F939F9346 -:104AA000AF93BF93EF93FF938091E10082FF09C022 -:104AB0008091E20082FF05C08091E1008B7F8093AE -:104AC000E1008091DA0080FF24C08091D80080FF4F -:104AD00020C08091DA008E7F8093DA008091D90027 -:104AE00080FF9BC088E189BD8AE189BD09B400FED1 -:104AF000FDCF81E08093FF028091DA02811109C02D -:104B00000E94EC040E94B7058091E20084608093CB -:104B1000E2008091E10080FF17C08091E20080FFF9 -:104B200013C08091E2008E7F8093E2008091E200CA -:104B300080618093E2008091D80080628093D800E9 -:104B400019BC85E08093FF028091E10084FF29C0B9 -:104B50008091E20084FF25C088E189BD8AE189BD9A -:104B600089B5982F917080FFFBCF8091D8008F7D01 -:104B70008093D8008091E1008F7E8093E100809146 -:104B8000E2008F7E8093E2008091E200816080935A -:104B9000E20080910003882309F445C084E08093FB -:104BA000FF028091E10083FF27C08091E20083FF34 -:104BB00023C08091E100877F8093E10082E08093B1 -:104BC000FF02109200038091E1008E7F8093E1004C -:104BD0008091E2008E7F8093E2008091E20080610C -:104BE0008093E20042E060E080E00E9485058091D1 -:104BF000F00088608093F000FF91EF91BF91AF913A -:104C00009F918F917F916F915F914F913F912F91E4 -:104C10000F900FBE0F901F90189519BC1092FF02B5 -:104C20001092DA0276CF8091E30087FD93E09093B3 -:104C3000FF02B7CF78941F921FB61F9211248F9353 -:104C40009F93AF93BF938091D1029091D202A09194 -:104C5000D302B091D4020196A11DB11D8093D1025F -:104C60009093D202A093D302B093D402BF91AF919C -:104C70009F918F911F901FBE1F9018951F921FB676 -:104C80001F9211248F939F93AF93BF938091D00273 -:104C9000811113C08091D1029091D202A091D302D0 -:104CA000B091D4024196A11DB11D8093D102909381 -:104CB000D202A093D302B093D402BF91AF919F913F -:104CC0008F911F901FBE1F901895CDB7DEB7E0974C -:104CD0000FB6F894DEBF0FBECDBF84B7877F84BF09 -:104CE0000FB6F894A8958091600088618093600069 -:104CF000109260000FBE80E890E00FB6F8948093A9 -:104D00006100909361000FBE85B7806885BF85B74D -:104D1000806885BF8DEB98E09093E3018093E2017A -:104D20000E94EC040E94B7058091E20084608093A9 -:104D3000E20078948091FF028823A1F01091E900AD -:104D40001F709091EC00892F817090FD80E8182BE6 -:104D50001092E9008091E80083FD0E945C161F70AC -:104D60001093E90082E084BD93E095BD9AEF97BD72 -:104D700080936E000E94730F811102C00E94A80EE2 -:104D800080EF0E94BF0881EF0E94BF0882EF0E945F -:104D9000BF0883EF0E94BF0803E511E0FFE5EF2E97 -:104DA000F1E0FF2ED8018D918D018F3F11F00E940F -:104DB000BF08E016F106B1F710926F0210926E0272 -:104DC0001092A7021092A602109271021092700225 -:104DD0001092A9021092A80210927302109272020D -:104DE0001092AB021092AA021092750210927402F5 -:104DF0001092AD021092AC020E943C16811102C0CA -:104E00000E94D01582E090E00E94BB2D80939D020D -:104E10000E948C0F9093D6028093D5020E940F239C -:104E2000EFE3FCE93197F1F700C000000E940F2387 -:104E30008091A60280FF08C06FEF7FEF90E080E0D6 -:104E40000E94ED2D0E94D10C83E090E00E94BB2DCA -:104E500090E00E94C60B8091090390910A030E9482 -:104E6000B91480917602811132C00E943C168111E2 -:104E700004C00E94D0150E94C01588E090E00E94F6 -:104E8000C32D6093890370938A0380938B0390935F -:104E90008C036E7F71F40E94C01588E090E00E9440 -:104EA000C32D6093890370938A0380938B0390933F -:104EB0008C030E94D2061092C5028091890380FF64 -:104EC00003C086950E947B1481E0809376026EEA8F -:104ED00071E0E3E98E2EE2E09E2E2CE931E0E5EA76 -:104EE000F1E041E050E01191812F82958F7090E0C8 -:104EF000DC019196FC9091971F70E12E6A0101C030 -:104F0000CC0C1A95EAF70C2D00950F2191960C9375 -:104F1000919792961C9192971C2992961C93D90175 -:104F2000FD909D010F2D02950F7010E0D801919614 -:104F3000BC90BF2DBF70FB2E6A0101C0CC0CBA958E -:104F4000EAF7DC2CD094DB20D8019196DC92919783 -:104F50009296DC909297DC289296DC92DC019096F7 -:104F60008C9190E002C095958795EA94E2F7817064 -:104F7000D80190960C9110E002C015950795FA940F -:104F8000E2F790E000FD92E0892BD4018D934D0172 -:104F90006E177F0709F0A7CF86EA92E09093BD02D3 -:104FA0008093BC0281E20E947B1481E090E00E9429 -:104FB0004C1580E091E09093CD028093CC0258E1B3 -:104FC000252E312C8091FF02FF24F39408E11AE191 -:104FD000853009F4B3C20E940F23882359F08FB79C -:104FE000F8944091D1025091D2026091D302709115 -:104FF000D4028FBFA6EAB2E0EEE9F2E010E000E0F2 -:10500000702F8D919D91219131912817390709F4C5 -:10501000BEC22827392760E0EE24E394F12CA901D1 -:105020004E215F21452B09F4ACC269A37AA39C01F0 -:105030002E213F2191E0232B09F490E09BA30E94B5 -:1050400088068160782F9DA38CA349A15AA16BA1EA -:105050008DA10E947F22000F111FF801E256FD4F23 -:1050600080819181E826F926F182E0828091C50253 -:105070008823D1F18091C402E0918903E695E81B71 -:10508000E093C002823009F099C2F0E0EC53FD4F8A -:10509000E4910E2F10E024E2E22E23E1F22E809123 -:1050A000C102882361F01092C1020E948806909389 -:1050B000BF028093BE021092C3021092C2020E94ED -:1050C0008806E091BE02F091BF028E1B9F0B8F3FBE -:1050D0009F4750F4E00FF11FF093BF02E093BE0230 -:1050E0008EEB92E0F70109953AE8E32E32E0F32ED9 -:1050F00001E812E048E7842E42E0942E83E991E033 -:105100009CA78BA7D12CC12CACE9B1E0BEA7ADA761 -:10511000E5EAF1E0F8ABEFA753E9652E52E0752E12 -:10512000512C44244394D301ED913D01EE0FEE0F39 -:10513000AFA5B8A92D91B8ABAFA7A22FA295AF701C -:10514000B0E090968C9190E02F7002C09595879575 -:105150002A95E2F781709927ADA5BEA54D91BEA70E -:10516000ADA7A42FA295AF70B0E090962C9130E03F -:105170004F7002C0359527954A95E2F7A901417015 -:10518000552720FF02C042E050E0842BE82BD301DA -:105190001197EC93ABA5BCA5AD90BCA7ABA7EF70E6 -:1051A000F0E0ED57FE4F8081F7019081890F8083F9 -:1051B000B12C082E000C990B20E08A159B05DCF021 -:1051C000D8018C918F5F8C93F601E15AFE4F80815C -:1051D00091819A8389834B820E9488068160782F0F -:1051E0009D838C83F401408249815A816B818D813A -:1051F0000E947F2221E0D7018C91082E000C990B90 -:10520000442755274A195B0948175907E4F0F80164 -:10521000808181508083F601EF58FE4F808191811B -:105220009A8389834B820E9488068160782F9D83B0 -:105230008C83E2E0D401EC9349815A816B818D81AA -:105240000E947F2221E0D7018C91082E000C990B3F -:10525000B5010E945C2DF70181937F01522A0F5FF7 -:105260001F4FFFEF8F1A9F0A22E0C20ED11C42E1AE -:10527000C416D10409F057CF552059F08FB7F894D0 -:105280004091D1025091D2026091D3027091D40228 -:105290008FBF86E0E5EBF2E0DE01119601900D9202 -:1052A0008A95E1F7F090B702E090B8021091B90248 -:1052B0000091BA021092B7021092B8021092B9028D -:1052C0001092BA028F2D8E2909F448C08091B30242 -:1052D0009091B4020E9479069C019091AF029923AB -:1052E00009F4C3C323333105C8F19F3F19F09F5F11 -:1052F0009093AF02FF2059F00E9443089FEF1F14C4 -:105300000CF491E0899F802D11248093B702EE2048 -:1053100059F00E9443089FEF1E140CF491E0899FFE -:10532000802D11248093B8023091B7023323B1F05D -:105330002091B802222391F045EB3403C0011124DF -:10534000992309F495C19093B70245EB240390018A -:105350001124332309F490C13093B802812F802B9C -:1053600009F448C08091B1029091B2020E9479067E -:105370009C019091AE02992309F472C32536310540 -:10538000C8F19F3F19F09F5F9093AE02112359F02F -:105390000E9421089FEF11160CF491E0899F802D47 -:1053A00011248093B902002359F00E9421089FEF35 -:1053B00010160CF491E0899F802D11248093BA027D -:1053C0003091B9023323B1F02091BA02222391F037 -:1053D00045EB3403C0011124992309F451C1909382 -:1053E000B90245EB240390011124332309F44CC185 -:1053F0003093BA028091B7029091B802892B9091B4 -:10540000B902892B9091BA02892B11F00E94810771 -:1054100086E0FE013196A5EBB2E001900D928A95EF -:10542000E1F70E94C00690919C02891731F00E941A -:10543000C00680939C020E94A1148091FF028430D8 -:1054400009F0C0CD83E08093E9008091E80082FFFD -:10545000B9CD8091E80090E085FF06C00E940B0561 -:10546000882309F415C191E08091E8008B7780933F -:10547000E800992309F4A6CDE981E150E33108F071 -:105480009BC1F0E0E359F14D0C94702D8091FF0227 -:10549000843009F441C080E00E94A1141092C5023A -:1054A0008091BB02811116C0F092BB0280918903EA -:1054B000982F9170909377028E7F80938903BFEF2E -:1054C000E0E7F2E0B150E040F040E1F700C000005A -:1054D0000E94B00F1092D00220E40FB6F894A89565 -:1054E000209260000FBE2093600083B7817F8460AC -:1054F00083BF83B7816083BF7894889583B78E7F9D -:1055000083BF0FB6F894A89580916000886180935E -:105510006000109260000FBE8091FE02882371F03F -:105520000E940F23E6EAF2E081919191892B09F024 -:1055300078C28EEA92E08E179F07B1F78091FF0242 -:10554000853009F4A3CF0E9447160E94C0060E942E -:10555000A1141092BB0280917702882359F08091A8 -:10556000890381608093890386950E947B140E9441 -:105570009A0F31CD8091C6028823C9F30E94B00FE3 -:10558000F6CF6F5FEE0CFF1C6C3009F048CD0F5F5B -:105590001F4F0430110509F033CD8FEF8EA38FA379 -:1055A00018A60E9488068160782F9AA789A74EA125 -:1055B0005FA168A58AA50E947F2258CD863059F444 -:1055C000F0E0EF53FD4FE4910E2F10E094E1E92E4F -:1055D00093E1F92E64CD893061F4E695F0E0E25470 -:1055E000FD4FE4910E2F10E085E6E82E82E1F82EC3 -:1055F00056CD8F3061F4E695F0E0E554FD4FE4912F -:105600000E2F10E0B0E1EB2EB2E1FB2E48CD85313C -:1056100059F4F0E0E854FD4FE4910E2F10E0ADE9AD -:10562000EA2EA1E1FA2E3BCD08E210E07DE0E72E64 -:1056300071E1F72E883109F432CD833249F4E6EB7B -:10564000F2E005911491FBEBEF2EF2E1FF2E27CD56 -:1056500004EF11E0E0EDEE2EE0E1FE2E843209F4DD -:105660001ECD00ED17E061EDE62E66E0F62E17CDBB -:1056700081E08093B70269CE81E08093B8026ECE5C -:1056800081E08093B902ADCE81E08093BA02B2CEC0 -:1056900000E210E0CE0101967C018091E80085FDDA -:1056A0000AC08091E8008B778093E8000E940B0588 -:1056B000882399F3D8CE8091F100D7018D937D0195 -:1056C0000150110951F7CFCE1A8289E08B833FC078 -:1056D0008A81823009F4BBC18330A9F0813009F09E -:1056E0006BC02FB7F8946091D1027091D202809173 -:1056F000D3029091D4022FBF0E94762D6B837C83BE -:105700008D839E8324C08091A6029091A702982742 -:10571000892798279C838B838091A8029091A90266 -:105720009827892798279E838D838091AA0290913C -:10573000AB0298278927982798878F838091AC029E -:105740009091AD029827892798279A878987809119 -:10575000FF02843009F036CC1091E9001F7090915F -:10576000EC00892F817090FD80E8182B82E08093F7 -:10577000E9008091E80080FF0DC050E040E060E269 -:1057800070E0CE0101960E943C058091E8008E7782 -:105790008093E8001F701093E90014CC8A81823056 -:1057A00059F46B817C818D819E810E94762D86E2E9 -:1057B00090E00E94CF2DCBCF8FEF8983C8CF4C8153 -:1057C0006B818A810E94D10E9827892798279E8312 -:1057D0008D83BDCFED80FE80FE24EF24FE248A81E0 -:1057E0000B81B8E10B9F80011124E0E68E9F000D34 -:1057F000111D11248C8190E0880F991F080F191F2B -:105800006F2DC80187960E94CF2D6E2DC8018896F6 -:10581000D0CF0E943B0E9BCF8A818138C1F060F4CB -:10582000803809F094CF20E04B8160918B03809108 -:105830008A030E944A138BCF823849F1833809F0DA -:1058400086CF20E040918C036C818B81F2CF8B81DD -:105850000E947B149B8180918903911111C08E7FDE -:10586000809389031092C502FFEF20E742E0F150D8 -:1058700020404040E1F700C000000E94B00F67CF19 -:1058800081608093890386950E947B1460CF8B8111 -:1058900080938D035CCF8A81813899F030F4803811 -:1058A00009F055CF80918C0311CF823891F0833865 -:1058B00009F04DCF80918A038B8380918B038C8379 -:1058C00046CF8091890380FF02C08695FFCE80E09D -:1058D000FDCE80918D03FACE6091890370918A0389 -:1058E00080918B0390918C030E94381330CF80E11C -:1058F0008A832DCF84E08A8389E1E8CE0A811B81E7 -:10590000102701271027CE0101966C01EC80DC01E5 -:10591000AE0DB11D7D01C80189519C4FEC14FD04F1 -:1059200009F415CF0931B4E01B0750F40E94BB2DD8 -:10593000F60184830F5F1F4FBFEFCB1ADB0AEBCF5B -:10594000D60114961C92F6CF0A811B8110270127DD -:105950001027FE0131966F01EC80E00EF12EF11C54 -:10596000C80189519C4FE016F10609F4F0CE0931C7 -:10597000F4E01F0728F4D60114966C910E94CF2DF5 -:10598000BFEFCB1ADB0A0F5F1F4FEACF0E942B0E2F -:10599000DECE8AE0ADCF0A811B81102701271027B8 -:1059A000FE0131966F01EC80CF018E0D911D7C01BF -:1059B000C8018796EC14FD0409F4C9CE003CA3E0AD -:1059C0001A0750F40E94BB2DF60184830F5F1F4F0E -:1059D000BFEFCB1ADB0AECCFD60114961C92F6CFA0 -:1059E0000A811B81102701271027FE0131966F01C4 -:1059F000EC80E00EF12EF11CC8018796E016F1064E -:105A000009F4A5CE003CF3E01F0728F4D601149654 -:105A10006C910E94CF2DBFEFCB1ADB0A0F5F1F4F97 -:105A2000EBCF09BD19BD09B400FEFDCF8091D800B0 -:105A30008F7D8093D8008091E00082608093E000A9 -:105A40008091E00081FDFCCF0E94471677CD86E271 -:105A500090E00E94BB2D1B821C821D828E8377CE1C -:105A60002D32314008F08FCCC5CC2D32314008F0BA -:105A70003ECC74CC87FB082E062687FD819567FDFA -:105A800061950E948C2D0EF4919507FC81950895E7 -:105A9000AA1BBB1B51E107C0AA1FBB1FA617B70754 -:105AA00010F0A61BB70B881F991F5A95A9F7809570 -:105AB0009095BC01CD01089597FB072E16F4009434 -:105AC00007D077FD09D00E94482D07FC05D03EF491 -:105AD000909581959F4F0895709561957F4F08959A -:105AE000EE0FFF1F0590F491E02D0994692796278A -:105AF000692778278727782708950E94382E33232F -:105B000012F48A1B9B0B0C94872D0E94382EB7FF32 -:105B10000895821B930B0895991B79E004C0991F87 -:105B2000961708F0961B881F7A95C9F780950895F7 -:105B3000FB01DC0102C005900D9241505040D8F7A6 -:105B40000895FC014150504030F001900616D1F705 -:105B50003197CF010895882799270895FB01DC012B -:105B600004C08D910190801921F441505040C8F734 -:105B7000881B990B0895F999FECF92BD81BDF89AC3 -:105B8000992780B50895A6E1B0E044E050E00C9478 -:105B9000F52DA8E1B0E042E050E00C94F52D262F61 -:105BA000F999FECF92BD81BDF89A019700B4021613 -:105BB00039F01FBA20BD0FB6F894FA9AF99A0FBEC1 -:105BC00008950396272F0E94D02D0E94CF2D252FB8 -:105BD0000E94D02D242F0C94D02D0196272F0E94A7 -:105BE000D02D0C94CF2DDC01CB01FC01F999FECF17 -:105BF00006C0F2BDE1BDF89A319600B40D92415055 -:105C00005040B8F708950E94382EA59F900DB49F7C -:105C1000900DA49F800D911D11240895B7FF0C9441 -:105C2000032E0E94032E821B930B0895A1E21A2ECD -:105C3000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F30 -:105C4000A217B307E407F50720F0A21BB30BE40B80 -:105C5000F50B661F771F881F991F1A9469F76095C7 -:105C60007095809590959B01AC01BD01CF01089581 -:105C7000A29FB001B39FC001A39F700D811D11248D -:105C8000911DB29F700D811D1124911D0895F894EE -:105C9000FFCF5E0F5E0F670F670F690F670F670F0C -:105CA000670F5E0F5E0F6E0F670F670F6E0F411766 -:105CB0006917BC176917BC179C17D417BC17D118E4 -:105CC000DE18421D421DB61DB61D141E2E1E791D66 -:105CD000791D391EC31ED41ED41E642B682BCE2BF7 -:105CE000DF2BEA2B092C0C2C4B2C6C2CDC2BDC2B0B -:105CF000772C7A2C7E2CA42CC62CC92CCB2CF02CE7 -:105D00007606910C700C6C0C680C01191A1B1C1D8A -:105D10001E1F202122010201002A002A2A0181825D -:105D200083E200E900EA00B500B600B700CD0083C9 -:105D300001CC008A01920194012102230224022550 -:105D400002260227022A02B300B4006F007000F09E -:105D5000F1F2F3F5F6F700010203040537363502D8 -:105D600000020102020B000B010B020B03050308EA -:105D700003000000010002090009010902090303F0 -:105D800003060300FF0100010000FFFF0000010007 -:105D900001FF000404040404040402026162646656 -:105DA00090929497066063656791939596070001BA -:105DB000020202020606060909090909090F0F0F66 -:105DC0000F0F0F151515181919191919191919196E -:105DD0001923244022B6B6019401DE00C808E10868 -:025DE0000109B7 +:101D7000C92F682F84E090E00E94D62D6C2F82E25C +:101D800090E0CF910C94D62D9091D60292FB222711 +:101D900020F9281751F080FB92F99093D602809198 +:101DA000D5029091D6020C94B70E08950F931F930D +:101DB000CF93DF93C42FD0E0CC0FDD1F28E1629FCB +:101DC000C00DD11D112430E6839FC00DD11D1124FB +:101DD000CE0187960E94C22D082F10E0102F0027F9 +:101DE000CE0188960E94C22D9801282BC901DF914F +:101DF000CF911F910F910895462F8A3038F4743097 +:101E000028F46C3018F4672F0C94D60E90E080E024 +:101E10000895BF92CF92DF92EF92FF920F931F939C +:101E2000CF93DF937C010091090310910A03809105 +:101E30005A0290915B02082B192BCFE0D0E0CC2402 +:101E4000C394D12CBC2EC6010C2E02C0880F991F42 +:101E50000A94E2F780239123892B71F4219790F75C +:101E6000B12C8B2DDF91CF911F910F91FF90EF90AF +:101E7000DF90CF90BF900895B7018C2F0E94FC0E89 +:101E80000E941909019751F3ECCFCF93DF93EC0136 +:101E90000E94090FBE010E94FC0EDF91CF910C94AD +:101EA0001909FC01808191810E94450F292F2F7013 +:101EB00092959F7092509E3078F4E92FF0E0E05BAD +:101EC000F14D0C94772D803F19F020F4883E20F4DA +:101ED00081E00895843FE1F380E00895883EC0F3F7 +:101EE000813FD1F7F5CF822F869586958695089507 +:101EF00083E290E00E94C22D813289F484E290E076 +:101F00000E94C22D813159F485E290E00E94C22DD9 +:101F100091E0853209F090E0892F8170089580E08A +:101F2000FCCFCF9384E090E00E94C22DC82F82E2C4 +:101F300090E00E94C22D982F8C2FCF910895609130 +:101F40008903669570E04BE050E08AE091E00E94E2 +:101F5000A82D892B19F481E08093C5020E94880680 +:101F60009093BF028093BE0208954F925F926F924A +:101F70007F928F929F92AF92BF92CF92DF92EF9219 +:101F8000FF920F931F93CF93DF93CDB7DEB7CE575A +:101F9000D1090FB6F894DEBF0FBECDBF5090190126 +:101FA0008091890380FF5DC08090BC029090BD024B +:101FB0008114910409F068C0EDECF3E09E012F5FFD +:101FC0003F4FBE0161587F4FC901A4914A2F50E095 +:101FD000DA01AA0FBB1FA40FB51FA55FBC4FCD90A0 +:101FE000DD90EC90D901CD92DD92ED929D0131967C +:101FF0006A177B0751F72091180143E0249F800D59 +:10200000911D11246E9A2EB12F7B3EB130645FB7C3 +:10201000F894BC01549E600D711D1124861797071A +:1020200009F08DC05FBF8FE594E00197F1F700C024 +:102030000000C258DF4F0FB6F894DEBF0FBECDBF11 +:10204000DF91CF911F910F91FF90EF90DF90CF9094 +:10205000BF90AF909F908F907F906F905F904F90C8 +:10206000089580911A0190911B0123E0829FF00155 +:102070001124E55FFC4F891708F096CF118210827A +:1020800012828F5F3396F7CF8091BB02811194CF7C +:10209000D12CC12C66246394712C53E0452E809181 +:1020A000C60293010C2C01C0220F0A94EAF7822386 +:1020B00009F43CC0F601EE0FFF1FE80DF91DE59095 +:1020C000F490E114F10409F477CF45E050E0B70152 +:1020D000CE0101960E949F2D09810F3F39F18A811F +:1020E000800F9927991F8B32910514F08AE290E0B6 +:1020F0005C01AA0CBB1C8A0D9B1DDC01A55FBC4FBB +:102100005D01049D80011124055F1C4F0A151B050C +:1021100020F0B5E0EB0EF11CD8CF98014D816C8119 +:102120008B810E94E8060D5F1F4FF0CFEFEFCE1AB4 +:10213000DE0AF8E0CF16D10409F0B1CF3DCFFC01A3 +:102140004191CF01E8E03EB9000000C047FF2EB941 +:10215000440F000000C000C000C02EB900C0EA95C6 +:1021600091F75CCFCF93DF9300D00F92CDB7DEB75E +:102170008091890380FF13C09E012F5F3F4F44E68B +:1021800066EE80E00E94E8068B8199812A81209387 +:10219000840390938303809385030E94B50F0F906F +:1021A0000F900F90DF91CF9108950F931F93CF93CE +:1021B000DF93EC0110E000E090911C0190171106F4 +:1021C00009F06CF40E94B50F8C8190E0019681704B +:1021D00099278C83DF91CF911F910F9108952091C2 +:1021E0001A01A801420F511D9A01220F331F240F1B +:1021F000351F255F3C4F4C8160918B0380918A0392 +:1022000096959017110651F04CF0442349F04091F7 +:102210008C030E94E8060F5F1F4FCECF4423B9F313 +:1022200040E0F7CF8F929F92AF92BF92CF92DF9212 +:10223000EF92FF920F931F93CF93DF93EC014C81AA +:10224000042F10E09801D8010E943F2E9B01AC01A1 +:102250000E940A2E4B015C01E0E2F0E0E01BF10B72 +:10226000A5E5B0E0AC019B010E940A2E6B017C0148 +:102270009F01DF010E94842D9B01AC010E94152E5D +:102280009B01AC01280D391D4A1D5B1DC701B6011C +:102290000E941D2EF22E822F90E039E23F1560F150 +:1022A00043E0249F9001112435952795122F109516 +:1022B00000E085E5E82EEF1880911C01081758F121 +:1022C0000E94B50F9C8181E0992319F0903219F496 +:1022D0008FEF8093170180911701890F8C83DF9115 +:1022E000CF911F910F91FF90EF90DF90CF90BF9013 +:1022F000AF909F908F90089525E530E0B901681B5D +:10230000790B9B01220F331F260F371F37FFCCCFCE +:102310002F5F3F4FC9CF8E2D01FD8F2D20911A01C8 +:10232000622F600F7727771F9B01220F331F260F25 +:10233000371F255F3C4F412F60918B030E94E806B9 +:102340000F5FBACF0F931F93CF93DF9380911A0142 +:1023500090911B0123E0829FF0011124E55FFC4F67 +:10236000891740F1C0E0D3E060911C01C61740F12D +:102370000E94B50F209115018091C802820F8093B1 +:10238000C80290911601920F90931601191654F4F9 +:10239000082E000C990B40911C014150550B8417DD +:1023A00095071CF0219520931501DF91CF911F9186 +:1023B0000F9108951182108212828F5F3396D0CFD1 +:1023C0000C2F10E070E0C8010E94632D20911A01CB +:1023D000820F482F50E02091C802022E000C330BD0 +:1023E00002171307BCF020911601022E000C330BCC +:1023F000201731077CF08D9F90011124255F3C4F01 +:1024000040918C0360918B0380918A030E94E806BF +:10241000CF5FAACFFA01EE0FFF1FE40FF51FE55FB4 +:10242000FC4F118210821282F3CF1F93CF93DF9360 +:10243000FC018281DFEF80FFD1E0C0E01AE29091E1 +:102440001C01C91788F00E94B50F8091C702D130D6 +:10245000C9F5811102C080911C0181508093C7028F +:10246000DF91CF911F910895E0911A014C2F50E018 +:102470009A012E0F311DF901EE0FFF1FE20FF31F1E +:10248000E55FFC4F1182108212828091C7028B326D +:10249000ACF0612F0E94412D892F082E000C990B62 +:1024A0004817590749F49F0140918C0360918B03B1 +:1024B00080918A030E94E806CF5FC1CF87FFEDCFEE +:1024C000890FEBCF90E0019660911C0170E00E94B3 +:1024D000632DC4CFEF92FF921F93CF93DF93EC0154 +:1024E00010E0EE24EA94F12C60911C01161770F0B4 +:1024F0000E94B50F9A818C8190FF27C08F5F8C83DB +:10250000DF91CF911F91FF90EF90089520911A01D4 +:10251000422F410F5527551FCA019A01220F331F21 +:10252000280F391F255F3C4F70E0C7010E94632DC3 +:10253000962F8C8140918C0360918B03199F800DA5 +:1025400011240E94E8061F5FCFCF8150D8CF909111 +:10255000890390FF14C090911A0120911B0133E070 +:10256000939FF0011124E55FFC4F921710F00C943B +:10257000B50F8183608342839F5F3396F6CF0895C2 +:102580000F931F93CF93DF9300D00F92CDB7DEB799 +:102590008C018091C90281110AC09E012F5F3F4FBB +:1025A00044EB6FEF0E94E8068A818093C902F8012C +:1025B0006481613069F08091C90240E0662361F076 +:1025C00040E0623011F44091C90280E060E004C054 +:1025D0006091C90240E080E00E94A712F801848166 +:1025E00090E0019663E070E00E94632D84830F9079 +:1025F0000F900F90DF91CF911F910F910895CF937E +:10260000DF9300D00F92CDB7DEB79091890390FF92 +:102610000AC09E012F5F3F4F0E94E8064B816981EF +:102620008A810E94A7120F900F900F90DF91CF9197 +:102630000895CF93DF93EC01E9E8F3E043816281F1 +:102640008C810E94FF128C818F5F8C83DF91CF91F0 +:102650000895CF93DF93EC01EC81F0E0EA50FC4F5A +:102660004491E9E8F3E0628181810E94FF128C814C +:102670008F5F8C83DF91CF910895CF92DF92EF929D +:10268000FF926B017C010E94D206B701A60188E08F +:1026900090E0FF90EF90DF90CF900C94E82DAF92F8 +:1026A000BF92CF92DF92EF92FF920F931F93CF933F +:1026B000DF9300D00F92CDB7DEB7182FF62E042F80 +:1026C000E22E9091890390FF29C0E92FE695AE2F65 +:1026D000B0E0A255BE4F8C918093C4029E7F923091 +:1026E00059F59E012F5F3F4F812F0E94E8064B81D5 +:1026F00069818A810E94A71210938A03F0928B034A +:1027000000938C03EE2051F06091890370918A034D +:1027100080918B0390918C030E943D130F900F903A +:102720000F90DF91CF911F910F91FF90EF90DF906D +:10273000CF90BF90AF900895823019F400918C0330 +:10274000DBCF863019F410918A03D6CF8930D9F3C4 +:10275000893191F6E9518E2F8170D82EE695F0E0FF +:10276000E853FC4FA590B490C12CBB2460911C0190 +:10277000C61618F00E94B50FBFCF2C2D30E0A29ED8 +:10278000C001A39E900DB29E900D112470E00E9496 +:102790004F2D812FD11013C0860F40911A01420F87 +:1027A000532F511D9A01220F331F240F351F255F10 +:1027B0003C4F402F6F2D0E94E806C394D7CF861B55 +:1027C000ECCFE9E8F3E0438128E0421B08F440E065 +:1027D00021E0628181810C944F13E9E8F3E04381A9 +:1027E00028E0420F08F44FEF21E0628181810C94D0 +:1027F0004F13E9E8F3E0628128E0621B08F460E02F +:1028000021E0438181810C944F13E9E8F3E0628178 +:1028100028E0620F08F46FEF21E0438181810C947E +:102820004F13E9E8F3E0818121E043816281885020 +:102830000C944F13E9E8F3E0818121E04381628148 +:10284000885F0C944F1380918D03882319F0815079 +:1028500080938D036091890370918A0380918B032B +:1028600090918C030C943D1380918D03833018F468 +:102870008F5F80938D036091890370918A038091AB +:102880008B0390918C030C943D139091890390FFDE +:1028900036C09170811129C092609093890366239C +:1028A00051F06091890370918A0380918B0390911C +:1028B0008C030E943D1360918903669570E04BE0A4 +:1028C00050E08AE091E00E94A82D892BA9F0109297 +:1028D000C50281E08093C10220E040918C036091A9 +:1028E0008B0380918A030C944F13853210F0986407 +:1028F000D4CF880F982BD1CF0E949F0FEACF089595 +:1029000060E00C94451421E030E0A90102C0440FBE +:10291000551F8A95E2F7CA012091C602662391F0FD +:10292000822B8093C6028091C502811105C08091DF +:10293000890386950E9480148091890380FD05C0DB +:102940000C94B50F80958223ECCF0895CF93DF933D +:10295000C82FC17082FBDD27D0F981FB662760F9A3 +:1029600084E00E94831461E06C2785E00E94831458 +:102970006D2F86E0DF91CF910C9483140F931F93FA +:10298000CF93DF93EC0161E0009709F0682F61704D +:1029900080E00E94831460E0209721F0BE017695CC +:1029A0006795617081E00E94831460E0209731F0A8 +:1029B000BE017695679576956795617082E00E9475 +:1029C000831460E0209739F0BE01B3E076956795F7 +:1029D000BA95E1F7617083E00E948314AE0170E064 +:1029E00060E0BB27A72F962F852F0097A105B10583 +:1029F000D9F1AC01BD0188E08A019B01F4E0369574 +:102A0000279517950795FA95D1F701151105210519 +:102A1000310519F08C5FB901A8018A019B01E2E040 +:102A20003695279517950795EA95D1F70115110564 +:102A30002105310519F08E5FB901A80176956795DA +:102A400057954795452B462B472B09F08F5F8130D3 +:102A5000C9F0882359F08230D1F08330E9F020E0CA +:102A60004EE16FEF80E406C080E0C6CF20E04EE18B +:102A70006FEF82E30E944F13CE01DF91CF911F9140 +:102A80000F91089520E04EE16FEF8EE1F3CF20E04B +:102A90004EE16FEF8AE6EECF20E04EE16FEF87ED7B +:102AA000E9CF0E94BE1490930A03809309030C940B +:102AB000A90B8091090390910A039C01267033278A +:102AC0002630310519F488600C945115877FFCCFAE +:102AD00021E030E002C0220F331F8A95E2F72095F3 +:102AE00030958091090390910A03822393230C94DB +:102AF0005115909155028095892380935502282F76 +:102B0000277039F4282F082E000C330B9217130668 +:102B100021F49091D60292FF07C085958595859501 +:102B20000E94681510925502089521E030E002C01D +:102B3000220F331F8A95E2F78091090390910A03CF +:102B4000822B932B0C94511580918903869581508B +:102B500009F484E261E00C94451480918903869520 +:102B60008F5F853208F081E061E00C94451490910C +:102B7000890390FF07C09695981720F0961710F4D8 +:102B80000C94AD1561E00C944514E9E8F3E083E0A2 +:102B9000808311828FEF828384EB83831482608130 +:102BA0007181828193810C943D1369EE7EEF90E0F8 +:102BB00080E00E94F42D60E082E090E00E94D62D3B +:102BC00060E083E090E00E94D62D10925B021092AC +:102BD0005A0260E084E090E00E94D62D60E082E23C +:102BE00090E00E94D62D60E085E090E00E94D62D16 +:102BF00060E086E090E00E94D62D6FEF87E090E0E5 +:102C00000E94D62D40E050E0BA0188E090E00E949A +:102C1000E82D60E08DE090E00E94D62D40E050E08D +:102C2000BA0188E190E00E94E82D60E087E190E041 +:102C30000E94D62D40E050E0BA018CE190E00E9465 +:102C4000E82D70E060E080E290E00E94F42D40E02A +:102C500050E0BA0188E190E00E94E82D80E00E94F7 +:102C6000900E0E94A80E40E050E0BA018FE090E084 +:102C70000E94E82D40E050E0BA0183E190E00C941E +:102C8000E82D90E080E00E94D02D893E9E4F11F407 +:102C90000C94780F80E008951092580280911D01E5 +:102CA000E6EEF1E0882359F08091D50287FF07C056 +:102CB0008EE1DF011D928A95E9F70C94A90B86E05D +:102CC000F8CF1F93CF93DF93CDB7DEB7AA970FB698 +:102CD000F894DEBF0FBECDBF81E093E02091F100FC +:102CE000DC012D93CD01B3E089309B07B9F78091CA +:102CF0000203833009F471C0B8F4813009F448C08C +:102D0000823009F4B2C08091E80083FF3AC180911B +:102D10000103909102039A3008F033C1E92FF0E0EB +:102D2000E25AF14D0C94772D8A3009F48DC08B3026 +:102D300009F470C0893039F780910103813219F7A5 +:102D40008091050390910603009711F00297D9F640 +:102D50008091E800877F8093E8008091E80082FFFF +:102D600037C08091F2009091F300029729F480918E +:102D7000F1008B7F813021F48091F1008093DC029F +:102D80008091E8008B778093E8000E946605BBCFB6 +:102D900080910103813A09F0B6CF8091E800877FE6 +:102DA0008093E8008091050390910603892B61F4DC +:102DB00060E28DED92E070E00E9419068091E800DB +:102DC0008B778093E8009FCF60E090E080E0F3CFC6 +:102DD0008091FF028111C1CF96CF80910103813A8A +:102DE00009F091CF8091050390910603892B09F09A +:102DF0008ACF8091E800877F8093E8008091E80087 +:102E000080FFFCCF80911D018093F1008091E8004C +:102E10008E77B9CF80910103813209F074CF809110 +:102E2000050390910603892B09F06DCF8091E8008E +:102E3000877F8093E8000E9466058091030380935A +:102E40001D010E944C165FCF80910103813209F071 +:102E50005ACF8091E800877F8093E8000E94660542 +:102E6000809104038093DB024ECF80910103813A6D +:102E700009F049CF8091E800877F8093E800809136 +:102E8000E80080FFFCCF8091DB02BECF803899F054 +:102E9000823809F076C0809105038F70873008F082 +:102EA00070C08093E9008091EB0085FB882780F952 +:102EB0001092E90006C08091FD029091FE029111EE +:102EC00082609091E800977F9093E8008093F100F2 +:102ED0001092F1008091E8008E77B5C1882309F443 +:102EE000A2C1823009F04DC0809103038111A6C1B7 +:102EF000809105038F702FEF280F263008F041C016 +:102F00008093E9002091EB0020FF98C1933031F4C9 +:102F10008091EB0080628093EB0090C19091EB0078 +:102F200090619093EB0021E030E001C0220F8A9580 +:102F3000EAF72093EA001092EA008091EB008860A3 +:102F4000EACF81111EC0109103031F778091E30027 +:102F50008078812B8093E3008091E800877F8093C5 +:102F6000E8000E9466058091E80080FFFCCF809118 +:102F7000E30080688093E30082E0111183E0809396 +:102F8000FF028091E80083FF0AC08091E800877FFC +:102F90008093E8008091EB0080628093EB00AA961A +:102FA0000FB6F894DEBF0FBECDBFDF91CF911F915A +:102FB00008958058823028F720910303309104034C +:102FC0002C3DE3E03E07A1F583E08A838AE2898312 +:102FD0004FB7F894DE01139620E03EE051E2E32F74 +:102FE000F0E050935700E49120FF03C0E295EF70AA +:102FF0003F5FEF708E2F90E0EA30C0F0C7968D9360 +:103000009D932F5F243159F74FBF8091E800877F50 +:103010008093E8006AE270E0CE0101960E941906F2 +:103020008091E8008B778093E800ABCFC096E7CF24 +:103030008091050390910603432F55274330510596 +:1030400009F44AC078F54130510509F47AC08BE59E +:1030500090E0E6EBF8E04230510509F092CF209184 +:10306000E800277F2093E8002091070330910803B0 +:103070008217930708F49C0140E02115310509F0FF +:1030800065C0411163C08091E80082FDC9CF809185 +:10309000FF02882329F2853019F28091E80083FF2E +:1030A000F2CFBECF4132510509F43CC04232510546 +:1030B00009F067CF8330910508F063CFFC01EE0F74 +:1030C000FF1FEA52FE4F0190F081E02D8D529E4F7E +:1030D000DC018C9190E01AC0332721303105D1F00A +:1030E0002115310561F02230310509F04ACFE3E2C4 +:1030F000F9E0E4918E2F90E0E3E2F9E007C0E1E42B +:10310000F9E0E4918E2F90E0E1E4F9E0009709F412 +:1031100038CFA5CFEDE2F9E0E4918E2F90E0EDE21B +:10312000F9E0F4CF8330910508F02BCF880F991F79 +:10313000FC01E452FE4F0190F081E02D89E090E027 +:103140008ECF82E190E0E1E1F9E089CF8091FF024A +:10315000882309F465CF853009F462CF8091E800B7 +:1031600083FD5ECF8091E80082FD8DCF8091E800E5 +:1031700080FF83CF8091F2009091F30021153105FB +:1031800019F08830910550F041E0089709F040E0CF +:103190008091E8008E778093E8006FCF4491409350 +:1031A000F1003196215031090196E8CF803809F0BD +:1031B000E8CE8091E800877F8093E800809100034B +:1031C0008093F10087CE8111DCCE10910303123081 +:1031D00008F0D7CE8091E800877F8093E8001093B5 +:1031E00000030E946605112311F084E005C0809160 +:1031F000E30087FDFACF81E08093FF0242E061ECBB +:1032000081E00E94850542E261EC84E00E94850530 +:1032100042E261EC82E00E94850542E260EC83E0DC +:103220000E948505AECE80910303813009F0A9CEBE +:1032300081E0933009F080E08093FE021092E90073 +:103240008091E800877F8093E8000E94660599CE10 +:103250003F924F925F926F927F928F929F92AF9226 +:10326000BF92CF92DF92EF92FF920F931F93CF9373 +:10327000DF9300D000D00F92CDB7DEB78C01FC01F8 +:1032800083819481892B31F08081918189238F3FC3 +:1032900009F056C60F900F900F900F900F90DF918E +:1032A000CF911F910F91FF90EF90DF90CF90BF9043 +:1032B000AF909F908F907F906F905F904F903F90D6 +:1032C00008950E94090FF82E682F89819A810E9423 +:1032D0007D0B69817A818F2D0E94FC0E7C01F801A3 +:1032E0008281882309F41EC6970122513F4520316F +:1032F000310508F0D6C58FEF97E00E94C22DFEEE93 +:10330000EF0E57EE852E53E0952E882381F18091A4 +:103310005502877009F4BECFF8018281882309F431 +:10332000B9CF82E00F900F900F900F900F90DF9128 +:10333000CF911F910F91FF90EF90DF90CF90BF90B2 +:10334000AF909F908F907F906F905F904F903F9045 +:103350000C947915811428E09206C9F2C4010E94E8 +:10336000C22D811101C0EA943FEF831A930AE11044 +:10337000F1CF1C821B82442443944AE0342E740112 +:103380004FEFE41AF40AC4010E94C22D89831A8205 +:10339000882309F4BCCF9FEF980F933000F58A8300 +:1033A000498252E0850E911CC7010E94C22D8B8379 +:1033B000882309F4ACCFCE0101967C01F70120816E +:1033C0002223E9F2213009F049C0918182819130B4 +:1033D00041F4F2E0EF0EF11C0E94AA0D09C0470172 +:1033E000EACF923049F422E0E20EF11C0E94F50C83 +:1033F0003FEFE31AF30AE2CF933031F432E0E30E09 +:10340000F11C0E94E10BF4CF943021F04FEFE41A4D +:10341000F40AEECF52E0E50EF11C30E020E0B701F7 +:103420006F5F7F4FF70141818053990B8A3091057F +:1034300050F021503109E0F28FE99FE00197F1F758 +:1034400000C00000F6CF329EF001339EF00D112433 +:103450009C012E0F3F1F842F7B01E1CFE22FF0E074 +:10346000EA5DFD4F5490822F86958695869590E073 +:10347000FC01EA5EFD4F64902770712C022E02C0A1 +:10348000759467940A94E2F7E1E06E227724FC01D8 +:10349000EA5FFD4FA490B12C022E02C0B594A79410 +:1034A0000A94E2F7F1E0AF22BB24FC01EA50FE4FA0 +:1034B000C490D12C02C0D594C7942A95E2F721E09C +:1034C000C222DD246114710419F081EE0E94F50C12 +:1034D000A114B10419F086EE0E94F50C852D0E940E +:1034E000AA0DAB2819F086EE0E94E10B672819F0AF +:1034F00081EE0E94E10BCD2809F47ACF8CE26CCFEB +:1035000081E00E9495150E94591501CF81E00E942B +:103510006815F9CF82E0F5CFF3E8EF16FFE5FF0677 +:1035200009F4C5C024E8E2162FE5F20609F0D9C473 +:10353000882309F4ECCEF0906A02EE24E394FE2492 +:10354000F0926A020E948806909368028093670254 +:103550008091690210921A01882309F4B6C08AE2A8 +:1035600080931B0180931C0181E20E9480140E94C1 +:10357000B210E0926A0210926902109266021092F2 +:103580006502C5CE882309F47AC080916D0281114D +:1035900006C081E080936D0282EE0E94F50C0E94CD +:1035A000880690936C0280936B028BE20E94F50C6C +:1035B000F8018281882309F4D4C410929003F3E0C7 +:1035C000EF16FDE5FF0608F0B3C02AEFE2162CE582 +:1035D000F20630F4C70182509C45449708F0AEC013 +:1035E0000E94910F9093D6028093D50240E1E41699 +:1035F0004CE5F40609F48AC108F0F8C088E0E81642 +:103600008CE5F80609F470C108F0C4C0E4E0EE16D9 +:10361000ECE5FE0609F45AC108F0A6C022E0E21665 +:103620002CE5F20609F44CC18091D502826033E0AA +:10363000E3163CE5F30609F446C18091D50290916A +:10364000D6020E94B70E0E944C1661CE8823A1F0CC +:1036500080916D02811106C081E080936D0282EE3F +:103660000E94F50C0E94880690936C0280936B0276 +:1036700081EE0E94F50C99CF81EE0E94E10B8BE266 +:103680000E94E10B95CF882309F492CF81EE0E942E +:10369000F50C83EE0E94F50C8FE40E94F50C8FE48C +:1036A0000E94E10B83EE0E94E10B81EEE9CF8823BB +:1036B00009F47ECF81EE0E94F50C83EE0E94F50C9A +:1036C00080E50E94F50C80E5EBCF8AE280931B0138 +:1036D00080931C0181E2FF2029F00E9480140E9447 +:1036E000B21049CF0E94801446CFE5EFEE16ECE50C +:1036F000FE06B9F090F026EFE2162CE5F20609F08E +:1037000057CF27E245EE66EE09C427E245EE65EEA7 +:1037100005C426E241EE60EE01C427E245EE64EE08 +:10372000FDC326E241EE62EEF9C328E241E0EFCFAD +:1037300031E6E3163DE5F30609F452CF80915802D5 +:1037400046E1E4164CE5F40609F018C48A7A91E0E3 +:1037500009F490E0909304028111FDC089E20E9477 +:10376000170B0E94A70AD3CD8091D502806146E055 +:10377000E4164CE5F40609F4A6C08091D5028860F1 +:1037800057E0E5165CE5F50608F49DC08091D5028A +:10379000806299C08CE0E8168CE5F80609F4AEC0AA +:1037A00078F48091D5028C60EAE0EE16ECE5FE0636 +:1037B00009F489C008F49CC08091D5028E7F83C033 +:1037C0008091D502877F2EE0E2162CE5F20609F4FF +:1037D0007AC08091D5028B7F3FE0E3163CE5F3068B +:1037E00008F471C08091D5028F7E6DC04CEFE41655 +:1037F0004CE5F40609F486C0A0F584E1E8168CE5F2 +:10380000F80609F497C098F4E2E1EE16ECE5FE063E +:1038100009F480C08091D5028F7BF3E1EF16FCE5BF +:10382000FF0608F450C08091D502837F4CC02AEF78 +:10383000E2162CE5F20609F44DC008F051C045E14E +:10384000E4164CE5F40609F0F8CE8091D50282FB2F +:10385000992790F921E0922790FB82F990FB83F958 +:1038600032C0E1145DE5F50609F45AC0A0F4809178 +:10387000D60283609EEFE9169CE5F90671F180910E +:10388000D6028D7FEFEFEE16ECE5FE0630F180916B +:10389000D6028C7F22C0F2E0EF16FDE5FF0609F4A8 +:1038A00058C008F450C031E6E3163DE5F30609F0D0 +:1038B000C4CE9091D502892F8F7E94FF806103C082 +:1038C0008091D50281608093D502B7CE8091D502D8 +:1038D0008460F9CF8091D60281608093D602ADCE0C +:1038E0008091D6028260F9CF8091D5028064EBCFBF +:1038F0000E944C168091D5028068E5CF8091D50258 +:103900008D7FE1CF8091D6028E7FE7CF8091D50267 +:103910008F7DD9CF0E944C168091D5028F77D3CF5F +:103920008091D602982F909591708E7F892B90FB75 +:1039300081F9D3CF0E944C169091D502892F97FB25 +:1039400087F98058C0CF61E08EE090E00E94D62DCC +:1039500074CE60E0F9CF85E302CF85E30CC380919C +:10396000890380FF1BC08E7F809389036091890348 +:1039700070918A0380918B0390918C030E943D1378 +:103980001092C5025FEF80E792E051508040904076 +:10399000E1F700C000000E94B50FB9CC81608093B0 +:1039A000890361E086950E944514B1CC44EA55E153 +:1039B0006DEA75E10E94CC06AACC4DEA55E164EAB5 +:1039C00075E1F8CF4AE154E161E174E1F3CF49EFE9 +:1039D00053E165E074E1EECF41EE53E16DEE73E14A +:1039E000E9CF4DEE53E161EE73E1E4CF44E354E1FE +:1039F00063E274E1DFCF61E081E0D5CF65E082E092 +:103A00000E94B71584CC68E086E0FACF64E18FE0CD +:103A1000F7CF67E185E1F4CF62E289E1F1CF61E0C0 +:103A200083E2C1CF4BE5E4164DE5F40611F15CE508 +:103A3000E5165DE5F50609F0D3C28091D60282FB5A +:103A4000882780F991E089270E94C40EC9C20E948C +:103A50004C168FEF94E3ECE081509040E040E1F7AA +:103A600000C000000E94D10C0E94D51550CC81E00E +:103A7000EBCF80E0E9CFC7010E94550BD82EBFC223 +:103A80002F2D2F70C22E8F2D807F19F0C29490EFB2 +:103A9000C922DD20C9F0CC2069F080E28E0D88308B +:103AA00010F081100BC080915802C82AC0925802B1 +:103AB0000E94A70A8E2D0E94F50C19C08091570212 +:103AC000C82AC0925702F4CF8E2D0E94E10BCC2061 +:103AD00071F0C09480E28E0D883010F081103EC0ED +:103AE00080915802C822C09258020E94A70AE92D6C +:103AF000E850FF0B349720F40E94C0060E94A614E1 +:103B0000AA2009F4C7CB8091550280FDC3CBF801F0 +:103B100012828595859585950E949515C8010E940C +:103B20002819809155028595859585950F900F9060 +:103B30000F900F900F90DF91CF911F910F91FF90F9 +:103B4000EF90DF90CF90BF90AF909F908F907F903D +:103B50006F905F904F903F900C9468158091570242 +:103B6000C822C0925702C1CF3F2D3F70B32E8F2D78 +:103B7000807F803219F0B29480EFB822882071F0F3 +:103B800041E0841681F1DD20D9F1CC2091F1F801DA +:103B9000858180FF8FCF8F7085832BC0DD20B1F0B2 +:103BA000909159028B2D892BC11003C00E94D70B15 +:103BB0009ECF51E0C512FACF2091D60222FD97CFB9 +:103BC000981709F494CF8093590291CFC11006C081 +:103BD0000E94A10A8B2D0E94CC0B89CF81E0C816D0 +:103BE00009F485CFF5CFDD2031F095E09C1508F480 +:103BF0007ECF8B2DDBCFE4E0EC1508F478CFEACF55 +:103C0000CC2041F3F9E38F1209C02FEF37EE43E0E8 +:103C1000215030404040E1F700C000008E2D0E944E +:103C2000E10B65CF8F2D86958695837061F081308D +:103C300009F05DCFC7019370D11002C090E080E021 +:103C40000E94940654CFC7019370D11002C090E037 +:103C500080E00E94AA064BCF8E2DDD2029F00E9425 +:103C600063080E94810743CF0E94A807FACF8F2DD7 +:103C7000837009F040C0D1103ACF4E2D4295469541 +:103C80004770440F440F8E2D8F7090E0042E02C0B9 +:103C9000880F991F0A94E2F730E020E0E4FE09C0A3 +:103CA0002FE030E002C0220F331F4A95E2F7209543 +:103CB00030954F2D469546954370423099F078F4F3 +:103CC00060915A0270915B02413039F0822B932B44 +:103CD000862397230E94C60B0ACF862B972B822B15 +:103CE000932BF8CF822B932B20915A0230915B02B9 +:103CF00082279327EFCF8695DD2011F08F2D8170DD +:103D0000882309F4F4CE4E2D429546954770440F12 +:103D1000440F8E2D8F7090E0042E02C0880F991FE3 +:103D20000A94E2F730E020E0E4FE09C02FE030E042 +:103D300002C0220F331F4A95E2F7209530954F2D90 +:103D4000469546954370423099F078F460910903A6 +:103D500070910A03413039F0822B932B86239723ED +:103D60000E945115C4CE862B972B822B932BF8CF14 +:103D7000822B932B2091090330910A0382279327EA +:103D8000EFCF5F2D5F70F52EDD2029F0852F0E948B +:103D900095158E2D0BCF8E2D0E94CC0B8F2D0E9452 +:103DA0006815A5CE8E2D92EF891609F449C0981595 +:103DB00070F0E0EF8E1639F1F1EF8F16C9F1DD20CA +:103DC00009F45FC0C11076CE8F2D8F7136C023EFFE +:103DD0008216D9F134EF8312F2CFDD2009F446C008 +:103DE000FF2DFF71FF2E8F2F0E9495158091D60217 +:103DF00082FD07C028E0F29EC001112483608093F9 +:103E000055028F2D1AC0DD2071F044E04C1508F4E6 +:103E10006ECE2F2D2F7181E090E002C0880F991F88 +:103E20002A95E2F7A7CF55E05C1508F460CEF1CFF4 +:103E30008F2D8F71DD2009F4B2CF0E94951557CEDA +:103E40008F2D8F71DD20C9F3AACF90E080E0DD20B7 +:103E500009F486CF9F2D9F7121E030E0F90102C067 +:103E6000EE0FFF1F9A95E2F7CF017ACF81E00E9413 +:103E7000791531E03C1508F03ACE82E00E947915C0 +:103E800036CECC2059F0893309F0C8CE4FEF57EE2B +:103E900083E0415050408040E1F7BECE8F2D8F71BE +:103EA0007ECFF0E1EF16FFE5FF0609F429CB21E113 +:103EB000E2162FE5F20609F42DCB42E8E4164FE5B1 +:103EC000F40609F4E0CB08F027CB90E8E9169FE56B +:103ED000F90609F457CBE1E8EE16EFE5FE0609F422 +:103EE000B5CB33EFE3163CE5F30609F412CC08F04A +:103EF000FCCB58EDE5165CE5F50609F406CC89ED3A +:103F0000E8168CE5F80609F410CC97EDE9169CE567 +:103F1000F90609F04DCB26E241EE61EEC8010E94A0 +:103F2000C70DF5C930E1E3163FE5F30609F4EECA23 +:103F300041E1E4164FE5F40609F0BFCF82E0E7CA9D +:103F400085E0DE01119601900D928A95E1F7F80166 +:103F5000228189819A812111B4C90E94550BF82EC2 +:103F6000B8C9F6E1EF16FCE5FF06D1F58091040231 +:103F70008111F3CC89E20E94EC0AF3CB82722CEC23 +:103F8000E2162CE5F20609F431CD08F0A7C046ECA4 +:103F9000E4164CE5F40609F415CD08F076C093EC70 +:103FA000E9169CE5F90609F401CD08F05DC0F2ECD4 +:103FB000EF16FCE5FF0609F4D2CCEAE5EE16EDE5D6 +:103FC000FE0609F454CD08F02DCDE1142CE5F206DF +:103FD00009F43DCD3EEDE3163CE5F30609F444CD8E +:103FE000F8018281E080F180882309F444CDC70183 +:103FF0000E94090FD82E682FC7010E947D0BB701C0 +:104000008D2D0E94FC0E0E9419097C01882EF8015A +:10401000D280C580C2943FE0C32280915502877050 +:10402000A1F0AD2CDD2091F08F2D807F803421F028 +:1040300080E28E0D883048F082E00E9479158091F0 +:1040400055028770AA24A3948111A12C9F2C9294CD +:104050002FE09222FBE0F91508F449CDE92DF0E0BC +:10406000E859F14D0C94772D24ECE2162CE5F2067C +:1040700009F4A3CC41E154E16AE174E135ECE316C3 +:104080003CE5F30609F496CC98CF49ECE4164CE5F0 +:10409000F40609F4A1CC88F497ECE9169CE5F9063E +:1040A00009F495CC45E054E169EF73E1E8ECEE16D4 +:1040B000ECE5FE0609F47ECC80CFFAECEF16FCE5C9 +:1040C000FF0609F48ECC43E254E164E374E12BEC87 +:1040D000E2162CE5F20609F46DCC6FCF31EDE31654 +:1040E0003CE5F30609F492CCB8F45EECE5165CE529 +:1040F000F50609F483CC08F47ECC9FECE9169CE528 +:10410000F90609F480CC6EE089E0E0EDEE16ECE50E +:10411000FE0609F475CC51CFF4EDEF16FCE5FF0671 +:1041200009F47ACC78F432EDE3163CE5F30609F4B1 +:1041300070CC61E088E143EDE4164CE5F40609F447 +:1041400032CC3BCF55EDE5165CE5F50609F467CCBE +:104150008DE5E816F80609F4DAC82FCF1F93CF9340 +:10416000DF9380912202807FA9F480911F0288232F +:1041700089F080915402D091230260911D027091C8 +:104180001E02A0912002B0912102C62FC72316E083 +:10419000D81304C0DF91CF911F91089590E010973C +:1041A00011F0CF3F19F401968770F2CF189F90015C +:1041B000199F300D1124F901EC5DFD4F418147132A +:1041C000F2CF40814613EFCF42814111ECCF4381C2 +:1041D00054814A1B5B0B483C510528F78091220211 +:1041E0008F70806180932202F901E75DFD4F80812D +:1041F0008F70806180838DE192E00E942819DF91A9 +:10420000CF911F910C944B0BAF92BF92CF92DF9244 +:10421000EF92FF920F931F93CF93DF93CDB7DEB74B +:1042200061970FB6F894DEBF0FBECDBF8C0185E05D +:10423000F801DE011D9601900D928A95E1F7F801D3 +:10424000E2808DE1A82E82E0B82E6091200270916C +:1042500021026115710509F432C190911D0240914E +:104260001E02892F84238F3F09F429C120813181C7 +:10427000C380D480F0901F02F601E61BF70BFF20ED +:1042800009F4E8C080912202582F507FE83CF105E4 +:1042900008F0ABC0511177C0FE2C431321C092131C +:1042A0001FC0E1101DC08F70806180932202C50184 +:1042B0000E94281980912202F80185838F2D619632 +:1042C0000FB6F894DEBF0FBECDBFDF91CF911F9127 +:1042D0000F91FF90EF90DF90CF90BF90AF90089537 +:1042E000CD2829F0822F83238F3F09F003C180E07E +:1042F000F82FF170DF2E80FF3CC080915402409176 +:10430000230256E0841315C02D873E878D859E8538 +:104310000E94450F292F22952F702230F0F0243073 +:1043200018F59F70F1F0F8019581907FD1F4D12CB0 +:104330001EC090E0589FF001599FF00D1124EC5DD4 +:10434000FD4F6181361306C06081261303C0628170 +:10435000E6120FC001968770D5CF9F7011F08823A9 +:1043600031F3805E883018F3C8010E942819FD2CB3 +:10437000A5CFEE2009F4A2CF809122028160809324 +:104380002202F12C9BCF431306C0921304C0F80104 +:10439000EE2009F479C0C8010E94510F882309F169 +:1043A000EE20F9F080912202803270F020911D02FF +:1043B00030911E0238872F831986DB86CA868C8748 +:1043C000CE0107960E94281986E0F801ADE1B2E01F +:1043D00001900D928A95E1F70E94AE20FF24F3949C +:1043E0006DCFC8010E942819F9CF51110AC08DE183 +:1043F00092E00E94281986E0F50111928A95E9F76A +:10440000C0CF43130FC092130DC0E1100BC0F801D1 +:104410008583C8010E94281986E0F50111928A95CA +:10442000E9F74CCFC8010E94510F8823D1F2EE204A +:10443000C1F280912202803238F220911D02309127 +:104440001E023A8329831B82DD82CC828E83CE01B9 +:104450000196B8CFE83CF105F8F6FE2CEE2009F203 +:1044600043131FC092131DC08091220280FD10C013 +:10447000982F907F69F0F8018583903F31F0982F55 +:10448000907F905F8F70892B8583C8010E942819C7 +:1044900086E0F801ADE1B2E001900D928A95E1F776 +:1044A0000DCFC8010E94510F81118ECF8091220241 +:1044B000816080932202C8010E942819FFCEEE205D +:1044C00009F48FCFC8010E94510FF82E882309F4F8 +:1044D00088CF86E0F801ADE1B2E001900D928A95B7 +:1044E000E1F780911D0290911E020E94450F0E94EB +:1044F000AE20E4CE81E08E25FBCE1F93CF93DF93D9 +:10450000CDB7DEB767970FB6F894DEBF0FBECDBF4D +:104510004B8B5C8B6D8B7E8B8F8B61111092570256 +:104520001A8A198A85E0FE017396DE011D960190B4 +:104530000D928A95E1F786E0FE013D96DE01179621 +:1045400001900D928A95E1F7CE0107960E94042111 +:10455000882389F016E080915402909123028913F8 +:1045600049C067960FB6F894DEBF0FBECDBFDF918E +:10457000CF911F91089586E0FE013796DE011196D6 +:1045800001900D928A95E1F78A859B85892B11F31D +:104590008F81988589238F3FE9F22091230230E0B3 +:1045A000C90101968770992740915402481719064E +:1045B00071F40E944C16109223021092540286E06D +:1045C000EDE1F2E0DF011D928A95E9F7C3CF96E0B5 +:1045D000929FD001939FB00D1124AC5DBD4FFE01A1 +:1045E000319601900D929A95E1F7809323020E94F3 +:1045F0004B0BB0CF819FC00111248C5D9D4F0E9459 +:104600000421882309F4ADCF8091540290E00196F3 +:1046100087709927809354029ECF8F929F92AF927A +:10462000BF92CF92DF92EF92FF920F931F93CF939F +:10463000DF93CDB7DEB72D970FB6F894DEBF0FBE70 +:10464000CDBF8E010F5F1F4F88E0F80111928A9550 +:10465000E9F74FE4E42E41E0F42E6801AA24A39484 +:10466000B12CF70181917F018F3F09F44BC0F89481 +:10467000E82FE295EF70F0E021A18F70A50102C054 +:10468000440F551F8A95E2F7CA01922F982B91A3E8 +:1046900092A18095892382A3789400C0E3E5F1E09C +:1046A00030E020E0912C812C81918F3F09F47EC075 +:1046B000A82FA295AF70B0E090964C9150E08F700B +:1046C00002C0559547958A95E2F740FD6FC0C50138 +:1046D000022E02C0880F991F0A94E2F7882A992AAD +:1046E0002F5F3F4F2C303105F9F6F701319780816C +:1046F0008F3F11F00E94BF0850EA5A95F1F7F6017A +:1047000091828082F2E0CF0ED11C23E5E21621E0F7 +:10471000F20609F0A6CF48E050E0B8018EE692E03C +:104720000E94B52DCC24C394009709F4C12C892B89 +:1047300009F43FC088E0F801AEE6B2E001900D92C6 +:104740008A95E1F781E080935E020E94880690934B +:104750005D0280935C0280915C0290915D020E94F8 +:104760007906069750F180916E0290916F029093B6 +:10477000A7028093A602809170029091710290939B +:10478000A9028093A8028091720290917302909383 +:10479000AB028093AA02809174029091750290936B +:1047A000AD028093AC0210925E0207C090E080E000 +:1047B00095CF80915E028111CECF80916D028823CA +:1047C00071F080916B0290916C020E947906893E93 +:1047D000934028F082EE0E94E10B10926D028091CE +:1047E0006A02882399F18091690281112FC080911A +:1047F0006702909168020E94790681369A4E78F09D +:104800008091650290916602019690936602809372 +:1048100065020E94880690936802809367028091E7 +:104820006502909166024F9788F010921A018AE211 +:1048300080931B0180931C018FE00E94801481E013 +:1048400080936902109266021092650238E7E32EA7 +:1048500032E0F32E10E000E0BB24B394F701D190D6 +:104860007F01DD2051F10115110509F05FC0B09203 +:1048700063020E9488069093600280935F02D69440 +:10488000C801880F991FDD2009F45DC08F589E4F25 +:10489000FC01808191819A8789871B860E94880606 +:1048A0008160782F9D878C87F70131971082498529 +:1048B0005A856B858D850E947D220F5F1F4F0930C1 +:1048C000110561F61091640280916302111164C0B8 +:1048D0008823E1F110921A0184E080931B018093F8 +:1048E0001C018FE00E9480141092630281E080938B +:1048F000640280916902811105C080916A02811170 +:104900000E94B2108C2D2D960FB6F894DEBF0FBE0C +:10491000CDBFDF91CF911F910F91FF90EF90DF906E +:10492000CF90BF90AF909F908F9008950530110564 +:1049300019F4B09262029DCF0630110509F09FCFA5 +:10494000B092610296CF815A9E4FA2CF80916202AF +:10495000882379F086E180931A018AE180931B0114 +:1049600084E080931C018FE00E9480141092620208 +:10497000BDCF809161028823A9F08AE180931A015A +:104980008EE180931B0184E080931C018FE00E94E4 +:10499000801410926102AACF811126C08091620218 +:1049A000811122C08091610281111EC080915F023D +:1049B000909160020E947906853F9140A8F01123F2 +:1049C00051F010921A018AE280931B0180931C011E +:1049D00081E20E948014109263021092620210928F +:1049E00061021092640285CF1092630210926202FB +:1049F000109261027ECF1F920F920FB60F92112478 +:104A00002F933F934F935F936F937F938F939F93D6 +:104A1000AF93BF93CF93DF93EF93FF93D091E900D0 +:104A2000DF708091EC00C82FC17080FDC0E810924B +:104A3000E9008091F000877F8093F00078940E94D5 +:104A400061161092E9008091F00088608093F00078 +:104A5000CD2BCF70C093E900FF91EF91DF91CF9103 +:104A6000BF91AF919F918F917F916F915F914F9186 +:104A70003F912F910F900FBE0F901F9018951F928E +:104A80000F920FB60F9211242F933F934F935F9382 +:104A90006F937F938F939F93AF93BF93EF93FF9306 +:104AA0008091E10082FF09C08091E20082FF05C091 +:104AB0008091E1008B7F8093E1008091DA0080FF9C +:104AC00024C08091D80080FF20C08091DA008E7FC2 +:104AD0008093DA008091D90080FF9BC088E189BD76 +:104AE0008AE189BD09B400FEFDCF81E08093FF0219 +:104AF0008091DA02811109C00E94EC040E94B7057E +:104B00008091E20084608093E2008091E10080FF68 +:104B100017C08091E20080FF13C08091E2008E7F79 +:104B20008093E2008091E20080618093E2008091B6 +:104B3000D80080628093D80019BC85E08093FF0282 +:104B40008091E10084FF29C08091E20084FF25C0AC +:104B500088E189BD8AE189BD89B5982F917080FF70 +:104B6000FBCF8091D8008F7D8093D8008091E100A9 +:104B70008F7E8093E1008091E2008F7E8093E2003F +:104B80008091E20081608093E2008091000388239D +:104B900009F445C084E08093FF028091E10083FF27 +:104BA00027C08091E20083FF23C08091E100877FCE +:104BB0008093E10082E08093FF02109200038091D5 +:104BC000E1008E7F8093E1008091E2008E7F8093F0 +:104BD000E2008091E20080618093E20042E060E0C8 +:104BE00080E00E9485058091F00088608093F0004D +:104BF000FF91EF91BF91AF919F918F917F916F91B5 +:104C00005F914F913F912F910F900FBE0F901F908A +:104C1000189519BC1092FF021092DA0276CF80919B +:104C2000E30087FD93E09093FF02B7CF78941F9243 +:104C30001FB61F9211248F939F93AF93BF938091C0 +:104C4000D1029091D202A091D302B091D4020196E8 +:104C5000A11DB11D8093D1029093D202A093D302E3 +:104C6000B093D402BF91AF919F918F911F901FBEBF +:104C70001F9018951F921FB61F9211248F939F9318 +:104C8000AF93BF938091D002811113C08091D10264 +:104C90009091D202A091D302B091D4024196A11D6D +:104CA000B11D8093D1029093D202A093D302B0930E +:104CB000D402BF91AF919F918F911F901FBE1F9003 +:104CC0001895CDB7DEB7E0970FB6F894DEBF0FBEEC +:104CD000CDBF84B7877F84BF0FB6F894A895809125 +:104CE0006000886180936000109260000FBE80E8D1 +:104CF00090E00FB6F89480936100909361000FBE2E +:104D000085B7806885BF85B7806885BF8DEB98E0E3 +:104D10009093E3018093E2010E94EC040E94B705A6 +:104D20008091E20084608093E20078948091FF0299 +:104D30008823A1F01091E9001F709091EC00892F59 +:104D4000817090FD80E8182B1092E9008091E800B6 +:104D500083FD0E9461161F701093E90082E084BDFC +:104D600093E095BD9AEF97BD80936E000E94780FF7 +:104D7000811102C00E94A80E80EF0E94BF0881EF3F +:104D80000E94BF0882EF0E94BF0883EF0E94BF0805 +:104D900003E511E0FFE5EF2EF1E0FF2ED8018D9144 +:104DA0008D018F3F11F00E94BF08E016F106B1F7A8 +:104DB00010926F0210926E021092A7021092A60239 +:104DC00010927102109270021092A9021092A80221 +:104DD00010927302109272021092AB021092AA0209 +:104DE00010927502109274021092AD021092AC02F1 +:104DF0000E944116811102C00E94D51582E090E008 +:104E00000E94C22D80939D020E94910F9093D60222 +:104E10008093D5020E940D23EFE7FBEB3197F1F76A +:104E200000C000000E940D238091A60280FF08C0F0 +:104E30006FEF7FEF90E080E00E94F42D0E94D10C94 +:104E400083E090E00E94C22D90E00E94C60B80910A +:104E5000090390910A030E94BE1480917602811189 +:104E600032C00E944116811104C00E94D5150E94D3 +:104E7000C51588E090E00E94CA2D60938903709365 +:104E80008A0380938B0390938C036E7F71F40E944E +:104E9000C51588E090E00E94CA2D60938903709345 +:104EA0008A0380938B0390938C030E94D206109206 +:104EB000C5028091890380FF03C086950E948014FB +:104EC00081E0809376026EEA71E0E3E98E2EE2E003 +:104ED0009E2E2CE931E0E5EAF1E041E050E011914D +:104EE000812F82958F7090E0DC019196FC909197D4 +:104EF0001F70E12E6A0101C0CC0C1A95EAF70C2D47 +:104F000000950F2191960C93919792961C919297F0 +:104F10001C2992961C93D901FD909D010F2D02959D +:104F20000F7010E0D8019196BC90BF2DBF70FB2E82 +:104F30006A0101C0CC0CBA95EAF7DC2CD094DB20D6 +:104F4000D8019196DC9291979296DC909297DC280A +:104F50009296DC92DC0190968C9190E002C095953F +:104F60008795EA94E2F78170D80190960C9110E051 +:104F700002C015950795FA94E2F790E000FD92E0E3 +:104F8000892BD4018D934D016E177F0709F0A7CFB0 +:104F90008091D50280688093D5028091D50290914E +:104FA000D6020E94B70E86EA92E09093BD028093EB +:104FB000BC0281E20E94801481E090E00E945115C1 +:104FC00080E091E09093CD028093CC0258E1252EB1 +:104FD000312C8091FF02FF24F39408E11AE185301F +:104FE00009F4B3C20E940D23882359F08FB7F894B7 +:104FF0004091D1025091D2026091D3027091D402BB +:105000008FBFA6EAB2E0EEE9F2E010E000E0702F18 +:105010008D919D91219131912817390709F4BEC2D4 +:105020002827392760E0EE24E394F12CA9014E21D2 +:105030005F21452B09F4ACC269A37AA39C012E2100 +:105040003F2191E0232B09F490E09BA30E94880666 +:105050008160782F9DA38CA349A15AA16BA18DA13A +:105060000E947D22000F111FF801E256FD4F808142 +:105070009181E826F926F182E0828091C502882399 +:10508000D1F18091C402E0918903E695E81BE09399 +:10509000C002823009F099C2F0E0EC53FD4FE49178 +:1050A0000E2F10E029E2E22E23E1F22E8091C102C0 +:1050B000882361F01092C1020E9488069093BF027B +:1050C0008093BE021092C3021092C2020E94880610 +:1050D000E091BE02F091BF028E1B9F0B8F3F9F4756 +:1050E00050F4E00FF11FF093BF02E093BE028EEB8D +:1050F00092E0F70109953AE8E32E32E0F32E01E859 +:1051000012E048E7842E42E0942E83E991E09CA7C8 +:105110008BA7D12CC12CACE9B1E0BEA7ADA7E5EAC5 +:10512000F1E0F8ABEFA753E9652E52E0752E512C54 +:1051300044244394D301ED913D01EE0FEE0FAFA552 +:10514000B8A92D91B8ABAFA7A22FA295AF70B0E0D0 +:1051500090968C9190E02F7002C0959587952A9536 +:10516000E2F781709927ADA5BEA54D91BEA7ADA769 +:10517000A42FA295AF70B0E090962C9130E04F70C4 +:1051800002C0359527954A95E2F7A9014170552748 +:1051900020FF02C042E050E0842BE82BD30111979E +:1051A000EC93ABA5BCA5AD90BCA7ABA7EF70F0E0AE +:1051B000ED57FE4F8081F7019081890F8083B12CDC +:1051C000082E000C990B20E08A159B05DCF0D80115 +:1051D0008C918F5F8C93F601E15AFE4F8081918113 +:1051E0009A8389834B820E9488068160782F9D83F1 +:1051F0008C83F401408249815A816B818D810E94A8 +:105200007D2221E0D7018C91082E000C990B4427B8 +:1052100055274A195B0948175907E4F0F8018081BE +:1052200081508083F601EF58FE4F808191819A83EF +:1052300089834B820E9488068160782F9D838C83AE +:10524000E2E0D401EC9349815A816B818D810E9407 +:105250007D2221E0D7018C91082E000C990BB5011D +:105260000E94632DF70181937F01522A0F5F1F4F28 +:10527000FFEF8F1A9F0A22E0C20ED11C42E1C41632 +:10528000D10409F057CF552059F08FB7F8944091C9 +:10529000D1025091D2026091D3027091D4028FBF9B +:1052A00086E0E5EBF2E0DE01119601900D928A9521 +:1052B000E1F7F090B702E090B8021091B9020091C6 +:1052C000BA021092B7021092B8021092B90210926C +:1052D000BA028F2D8E2909F448C08091B3029091B3 +:1052E000B4020E9479069C019091AF02992309F4BF +:1052F000C3C323333105C8F19F3F19F09F5F9093DB +:10530000AF02FF2059F00E9443089FEF1F140CF4D6 +:1053100091E0899F802D11248093B702EE2059F0EF +:105320000E9443089FEF1E140CF491E0899F802D8A +:1053300011248093B8023091B7023323B1F0209149 +:10534000B802222391F045EB3403C00111249923C4 +:1053500009F495C19093B70245EB24039001112401 +:10536000332309F490C13093B802812F802B09F4C4 +:1053700048C08091B1029091B2020E9479069C01CE +:105380009091AE02992309F472C325363105C8F114 +:105390009F3F19F09F5F9093AE02112359F00E9436 +:1053A00021089FEF11160CF491E0899F802D1124A4 +:1053B0008093B902002359F00E9421089FEF101634 +:1053C0000CF491E0899F802D11248093BA023091D2 +:1053D000B9023323B1F02091BA02222391F045EBB8 +:1053E0003403C0011124992309F451C19093B902E7 +:1053F00045EB240390011124332309F44CC130936D +:10540000BA028091B7029091B802892B9091B902AB +:10541000892B9091BA02892B11F00E94810786E0B6 +:10542000FE013196A5EBB2E001900D928A95E1F76D +:105430000E94C00690919C02891731F00E94C0061C +:1054400080939C020E94A6148091FF02843009F090 +:10545000C0CD83E08093E9008091E80082FFB9CD60 +:105460008091E80090E085FF06C00E940B0588232C +:1054700009F415C191E08091E8008B778093E800F2 +:10548000992309F4A6CDE981E150E33108F09BC1ED +:10549000F0E0EC58F14D0C94772D8091FF028430B0 +:1054A00009F441C080E00E94A6141092C5028091C8 +:1054B000BB02811116C0F092BB0280918903982F24 +:1054C0009170909377028E7F80938903BFEFE0E71E +:1054D000F2E0B150E040F040E1F700C000000E946F +:1054E000B50F1092D00220E40FB6F894A895209240 +:1054F00060000FBE2093600083B7817F846083BF0C +:1055000083B7816083BF7894889583B78E7F83BF8C +:105510000FB6F894A8958091600088618093600030 +:10552000109260000FBE8091FE02882371F00E94ED +:105530000D23E6EAF2E081919191892B09F078C27E +:105540008EEA92E08E179F07B1F78091FF028530B7 +:1055500009F4A3CF0E944C160E94C0060E94A61414 +:105560001092BB0280917702882359F080918903C1 +:1055700081608093890386950E9480140E949F0F0A +:1055800031CD8091C6028823C9F30E94B50FF6CFB2 +:105590006F5FEE0CFF1C6C3009F048CD0F5F1F4FA2 +:1055A0000430110509F033CD8FEF8EA38FA318A619 +:1055B0000E9488068160782F9AA789A74EA15FA1D3 +:1055C00068A58AA50E947D2258CD863059F4F0E066 +:1055D000EF53FD4FE4910E2F10E099E1E92E93E196 +:1055E000F92E64CD893061F4E695F0E0E254FD4F88 +:1055F000E4910E2F10E08AE6E82E82E1F82E56CDD7 +:105600008F3061F4E695F0E0E554FD4FE4910E2F04 +:1056100010E0B5E1EB2EB2E1FB2E48CD853159F417 +:10562000F0E0E854FD4FE4910E2F10E0A2EAEA2EDC +:10563000A1E1FA2E3BCD08E210E072E1E72E71E124 +:10564000F72E883109F432CD833249F4E6EBF2E0EB +:1056500005911491F0ECEF2EF2E1FF2E27CD04EF2F +:1056600011E0E5EDEE2EE0E1FE2E843209F41ECDD0 +:1056700000ED17E061EDE62E66E0F62E17CD81E035 +:105680008093B70269CE81E08093B8026ECE81E04C +:105690008093B902ADCE81E08093BA02B2CE00E22F +:1056A00010E0CE0101967C018091E80085FD0AC0E2 +:1056B0008091E8008B778093E8000E940B05882397 +:1056C00099F3D8CE8091F100D7018D937D010150DF +:1056D000110951F7CFCE1A8289E08B833FC08A81AE +:1056E000823009F4BBC18330A9F0813009F06BC06E +:1056F0002FB7F8946091D1027091D2028091D302B9 +:105700009091D4022FBF0E947D2D6B837C838D836B +:105710009E8324C08091A6029091A7029827892792 +:1057200098279C838B838091A8029091A902982747 +:10573000892798279E838D838091AA029091AB023E +:1057400098278927982798878F838091AC0290911A +:10575000AD029827892798279A8789878091FF0229 +:10576000843009F036CC1091E9001F709091EC0064 +:10577000892F817090FD80E8182B82E08093E900EA +:105780008091E80080FF0DC050E040E060E270E0F2 +:10579000CE0101960E943C058091E8008E778093AF +:1057A000E8001F701093E90014CC8A81823059F40C +:1057B0006B817C818D819E810E947D2D86E290E0AF +:1057C0000E94D62DCBCF8FEF8983C8CF4C816B81C0 +:1057D0008A810E94D60E9827892798279E838D83D9 +:1057E000BDCFED80FE80FE24EF24FE248A810B8154 +:1057F000B8E10B9F80011124E0E68E9F000D111D82 +:1058000011248C8190E0880F991F080F191F6F2DAC +:10581000C80187960E94D62D6E2DC8018896D0CFDC +:105820000E943B0E9BCF8A818138C1F060F48038A2 +:1058300009F094CF20E04B8160918B0380918A0323 +:105840000E944F138BCF823849F1833809F086CFFD +:1058500020E040918C036C818B81F2CF8B810E9480 +:1058600080149B8180918903911111C08E7F809358 +:1058700089031092C502FFEF20E742E0F15020407B +:105880004040E1F700C000000E94B50F67CF816083 +:105890008093890386950E94801460CF8B818093CA +:1058A0008D035CCF8A81813899F030F4803809F01B +:1058B00055CF80918C0311CF823891F0833809F055 +:1058C0004DCF80918A038B8380918B038C8346CF4D +:1058D0008091890380FF02C08695FFCE80E0FDCED7 +:1058E00080918D03FACE6091890370918A03809133 +:1058F0008B0390918C030E943D1330CF80E18A830B +:105900002DCF84E08A8389E1E8CE0A811B811027AC +:1059100001271027CE0101966C01EC80DC01AE0D51 +:10592000B11D7D01C80189519C4FEC14FD0409F49F +:1059300015CF0931B4E01B0750F40E94C22DF601C7 +:1059400084830F5F1F4FBFEFCB1ADB0AEBCFD6016B +:1059500014961C92F6CF0A811B811027012710276D +:10596000FE0131966F01EC80E00EF12EF11CC801B2 +:1059700089519C4FE016F10609F4F0CE0931F4E0AC +:105980001F0728F4D60114966C910E94D62DBFEF04 +:10599000CB1ADB0A0F5F1F4FEACF0E942B0EDECE21 +:1059A0008AE0ADCF0A811B81102701271027FE0155 +:1059B00031966F01EC80CF018E0D911D7C01C801E5 +:1059C0008796EC14FD0409F4C9CE003CA3E01A0745 +:1059D00050F40E94C22DF60184830F5F1F4FBFEF6A +:1059E000CB1ADB0AECCFD60114961C92F6CF0A81B3 +:1059F0001B81102701271027FE0131966F01EC80D3 +:105A0000E00EF12EF11CC8018796E016F10609F4AC +:105A1000A5CE003CF3E01F0728F4D60114966C9144 +:105A20000E94D62DBFEFCB1ADB0A0F5F1F4FEBCFC3 +:105A300009BD19BD09B400FEFDCF8091D8008F7D4E +:105A40008093D8008091E00082608093E000809194 +:105A5000E00081FDFCCF0E944C1677CD86E290E0FD +:105A60000E94C22D1B821C821D828E8377CE2D3216 +:105A7000314008F08FCCC5CC2D32314008F03ECCFF +:105A800074CC87FB082E062687FD819567FD6195FE +:105A90000E94932D0EF4919507FC81950895AA1B01 +:105AA000BB1B51E107C0AA1FBB1FA617B70710F009 +:105AB000A61BB70B881F991F5A95A9F7809590953B +:105AC000BC01CD01089597FB072E16F4009407D072 +:105AD00077FD09D00E944F2D07FC05D03EF490952C +:105AE00081959F4F0895709561957F4F0895EE0FB2 +:105AF000FF1F0590F491E02D0994692796276927E7 +:105B000078278727782708950E943F2E332312F4A1 +:105B10008A1B9B0B0C948E2D0E943F2EB7FF08957D +:105B2000821B930B0895991B79E004C0991F961767 +:105B300008F0961B881F7A95C9F780950895FB0198 +:105B4000DC0102C005900D9241505040D8F70895F5 +:105B5000FC014150504030F001900616D1F73197CA +:105B6000CF010895882799270895FB01DC0104C01F +:105B70008D910190801921F441505040C8F7881B45 +:105B8000990B0895F999FECF92BD81BDF89A992796 +:105B900080B50895A6E1B0E044E050E00C94FC2DFF +:105BA000A8E1B0E042E050E00C94FC2D262FF999DA +:105BB000FECF92BD81BDF89A019700B4021639F06C +:105BC0001FBA20BD0FB6F894FA9AF99A0FBE08953D +:105BD0000396272F0E94D72D0E94D62D252F0E9495 +:105BE000D72D242F0C94D72D0196272F0E94D72D27 +:105BF0000C94D62DDC01CB01FC01F999FECF06C037 +:105C0000F2BDE1BDF89A319600B40D92415050407A +:105C1000B8F708950E943F2EA59F900DB49F900D58 +:105C2000A49F800D911D11240895B7FF0C940A2E96 +:105C30000E940A2E821B930B0895A1E21A2EAA1B22 +:105C4000BB1BFD010DC0AA1FBB1FEE1FFF1FA2172C +:105C5000B307E407F50720F0A21BB30BE40BF50B29 +:105C6000661F771F881F991F1A9469F760957095B2 +:105C7000809590959B01AC01BD01CF010895A29F35 +:105C8000B001B39FC001A39F700D811D1124911D10 +:105C9000B29F700D811D1124911D0895F894FFCFBE +:105CA000630F630F6C0F6C0F6E0F6C0F6C0F6C0F2C +:105CB000630F630F730F6C0F6C0F730F46176E1724 +:105CC000C1176E17C117A117D917C117D618E31836 +:105CD000401D401DB41DB41D121E2C1E771D771DC6 +:105CE000371EC11ED21ED21E6B2B6F2BD52BE62B5F +:105CF000F12B102C132C522C732CE32BE32B7E2C2A +:0E5D0000812C852CAB2CCD2CD02CD22CF72C4A +:105D0E007606910C700C6C0C680C01191A1B1C1D7C +:105D1E001E1F202122010201002A002A2A0181824F +:105D2E0083E200E900EA00B500B600B700CD0083BB +:105D3E0001CC008A01920194012102230224022542 +:105D4E0002260227022A02B300B4006F007000F090 +:105D5E00F1F2F3F5F6F700010203040537363502CA +:105D6E0000020102020B000B010B020B03050308DC +:105D7E0003000000010002090009010902090303E2 +:105D8E0003060300FF0100010000FFFF00000100F9 +:105D9E0001FF000404040404040402026162646648 +:105DAE0090929497066063656791939596070001AC +:105DBE00020202020606060909090909090F0F0F58 +:105DCE000F0F0F1515151819191919191919191960 +:105DDE001923244022B6B6019401DE00C808E1085A +:025DEE000109A9 :00000001FF From 4c4fa49af580979932bf4c5bd97a575485c5558a Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 25 Nov 2021 23:25:32 -0500 Subject: [PATCH 61/94] Test lower trackball interval --- keyboards/solartempest/sofle/config.h | 2 +- keyboards/solartempest/sofle/solartempest_sofle_via.hex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 59542d516202..fd39b7d5c5df 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -110,7 +110,7 @@ // Pimoroni trackball settings #ifdef POINTING_DEVICE_ENABLE - #define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms + #define PIMORONI_TRACKBALL_INTERVAL_MS 8 //Default is 8ms //#define PIMORONI_TRACKBALL_ROTATE //Change according to your particular installed trackball orientation. #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INVERT_X diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 70ededaff297..70a9d0c25c6f 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1393,7 +1393,7 @@ :10570000930B6F3F7F4F8F4F9F4710F40E94800D88 :10571000E11001C0F1100E949B0D809142038A307C :1057200008F0BAC380914003909141030E94E31BAB -:10573000069708F4B1C304E610E025E030E04BE33F +:10573000089708F4B1C304E610E025E030E04BE33D :1057400053E064E084E10E948832892B09F075C33C :105750001092420320913203222359F080913B039F :1057600090913C0398278927982790933C03809336 From 5f48cf8042758950a03b4f602d0c236de0c004c0 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 26 Nov 2021 00:32:59 -0500 Subject: [PATCH 62/94] Code cleanup --- .../pro/ansi/keymaps/solartempest/config.h | 17 +++++++---- .../gmmk_pro_ansi_solartempest.bin | Bin 36412 -> 36584 bytes .../pro/ansi/keymaps/solartempest/jonavin.c | 27 ------------------ .../pro/ansi/keymaps/solartempest/jonavin.h | 18 ++++++------ .../pro/ansi/keymaps/solartempest/keymap.c | 24 +--------------- .../keymaps/solartempest/rgb_matrix_map.h | 4 +-- .../pro/ansi/keymaps/solartempest/rules.mk | 25 ++++++++-------- 7 files changed, 35 insertions(+), 80 deletions(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h index 1e3dddd33e83..5d79e27b89a1 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h @@ -19,19 +19,24 @@ #define TAPPING_TOGGLE 2 // TT set to two taps #define TAPPING_TERM 180 -/* Handle GRAVESC combo keys */ +// Handle GRAVESC combo keys //#define GRAVE_ESC_ALT_OVERRIDE //Always send Escape if Alt is pressed //#define GRAVE_ESC_CTRL_OVERRIDE //Always send Escape if Control is pressed +// NKRO Settings +#ifdef NKRO_ENABLE + #define FORCE_NKRO //Force NKRO if enabled. +#endif +//RGB Settings #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE #define RGB_DISABLE_WHEN_USB_SUSPENDED #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_SOLID_COLOR + #define DISABLE_RGB_MATRIX_SOLID_COLOR //Remove or keep effects not desired #define DISABLE_RGB_MATRIX_BREATHING - #define DISABLE_RGB_MATRIX_ALPHAS_MODS //Remove effects not desired + #define DISABLE_RGB_MATRIX_ALPHAS_MODS #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT #define DISABLE_RGB_MATRIX_BAND_SAT @@ -56,9 +61,9 @@ #define DISABLE_RGB_MATRIX_HUE_BREATHING #define DISABLE_RGB_MATRIX_HUE_PENDULUM //#define DISABLE_RGB_MATRIX_HUE_WAVE - //#define DISABLE_RGB_MATRIX_PIXEL_RAIN - //#define DISABLE_RGB_MATRIX_PIXEL_FLOW - //#define DISABLE_RGB_MATRIX_PIXEL_FRACTAL + #define DISABLE_RGB_MATRIX_PIXEL_RAIN + #define DISABLE_RGB_MATRIX_PIXEL_FLOW + #define DISABLE_RGB_MATRIX_PIXEL_FRACTAL #define DISABLE_RGB_MATRIX_TYPING_HEATMAP #define DISABLE_RGB_MATRIX_DIGITAL_RAIN #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin index 26bd2c82cbb83577c0f24a5920dde9ceccb94bac..1f9b33233744c3b04a261bad6aa7f09b3ad93933 100644 GIT binary patch delta 5584 zcma)Adwdhc_Mh2on(aG%&^9fho2JmTr91_SP)J`1ZCWS-S`Y-3iWMsXtX8?&^0a_@ z#ktoH3J7vRe1Ou%`U{Ux6t1re*A}f5l$U@hqTVSWo5ybUcQy_E-QWHF^ULS+opa`# zGc#vq&z>`zBiops?aZq~nYxEJ51XVLxeRfofZ2dLz$(CB0q>EKIG1_3e)G|XH}g^P zE)aDBt^vG&=;fP--HW?O9p0<1m(+AN(J|IxGk}{aB~~O>?kiHAo9SWGnyp?pL$MfF z5%<4jYC6G1USX1$wVTL0OqJ$dIp9{)+eBiraib$kRl_KnSJbI<)^0+assZP!I@Gqb zh9AP1uFE{4_Z}V(ZM_S%pU6P`|J9p=`fDLQQ=ZTq*@7n|G})~sQHbZ-Sc(IL2{Y$j zlcwI8Z`@K8b~XZx@aTjlmVPgpnvBg8TEfcXo8K%_ee3GUH>;?N)P;?2d{SJkiR>z~ zr8F=mbvGVytTn}s>BpX-7T#iaVfv7`CM>**2j_m3rYfzd@aLu9-I!L1pKI7I^UY~m zME~i#1`?}SqDksv!JSdE+WFTk@tLh=;)z)uqxq4_6^N*k^)+t7tKiG%mgI zx4>0*>7AOYYwpArS?CCyhu))A7u-Wz(#jJW)=;cUuzw4(#Z}+A(a`TY6o1l#-VO{N zmoC`89+Z%vx37wa!LmJQ84;9gf;(cNy$+hz4i#rNKi`NrC8VB;MZC6+ zwXhWV!C|zsi0yFoXw5TV!LB1(7uSYpofq@6@T<(yW)a&`nm7oz1{gOE!t0u^P?Ow+ zjAt`s!vj1+^>QEoAn?f{z8d(r5I-0ANV$=vU-`7K%j8aFU@?ygLy?TPDm@FB_yT== z3GlZ=ycPK011#O=Tdf)1Wial^IBO^a+0{TFUjh7u5MKp+cZi<>{OJ&14*bc0VN!5# zC3HRyDW(H|EX2bj95DBsafm#SjM5D<^;puoA`6gU9=FfpdDzmpc z=Tx$p13Wkq8Rd*71D?px)gjHS%JBct)DwM#9zRMZMCj6HhpZ;`kAFI2V{m*0SsI}m zH#wvq-9O7+{iu-UusgdlCbYuljNgM}Gf8`dZcK8>Vo?9wcl8k=jjn&zyBdi^N9xk3 z)VHhHO71^qzCsEk6LOwdg}60<#{ka(UIY-pRsiNz^eZPMEBd+9ZYAp@UsJykkGQ`R zeNC*dVzx)I`^0{&WvpBq4?iy{6P`A77@n6+yWw+O(lL)=qq z$!jtB%or~@8DnM=y(A_!6`v>Bv4!{=Spw||vOhKrBwxk0F`P`Aw23uU9wn z$I72^tI~gH-I*KHt+!!I%3~@zns~Lv_*+sCmz;g(=)X+rvzXoxl@&2P?9#eUL?b>C z{D+e>Rd=j5#exSL$n$YV{0wHFLT(DTnP=PE>iUPlsmff!UO& zF^6Qur{iZF*7!(_-y$;-PT`HjkeHsmP-=1yZaHx)9I2>Hdd_XK_y9NEms$t6VEVWp z(~06zNXy3^wTaK;?7dQzCCz=}7R$c_tt#VktJ#96T1NB>@6Mn9M-m{hNjvydQSl{9 zMD!WJCcr@v)9d~|pEQRZ|4gc4a5+iWW#O^JsvCz>NuzFm!dk!FD!Au0Y#Vsqy@s=dX@025rXiH8KbJ`hv_qrko^0)7r`7{QHf+ z1w(P#9eEkzF|BvPp#pukktZB09pg{$%40?Bg7EbxJQQ77Aorw z_aK9^%3z=>9%W+6d-OH~%r_8fc&f(`TrCNx8m!`hh5?Q7$OaA22l!9`Q?8z{Wn=dnTwg=Ht2#&q7+Lqc-M4OmYdrGq`Oa|Li zV5^j^yz6w@x&w&X{L1s#O>Sfq;Qu1oMt#CPvKh+Qeoqu)J|I0R6cA>S*~ZdBu3yf6 zkZ@g*X9qC72J4gspQ%NTs6ceP2aWG?F=LpMu z9WzDi9B&Q&5jP$?qGTS)qvSCaJqb}LcrYAFzDK1|cPV@8d-N$TW#_WcqwEza+;Yzzni+E+{e}cl>mmx)&3xi1| zVE~b{l9_c!2yYrlMwmD<(ZpjXnP-|D_A0#L_H|^J=^nh2oH5nj6^v2ML{X}Hri2;^JfMxBd3NM zA;G-uaUp#i z^j~u1-dl-vZv<2aU~RvrZDQrbsiwy;9pq;%nBF3rC!B=?Su)Y4yX23VqJ=97^5|@$ zaMm9XjJ}kE0bw8cW}+S+ar`#%2L``LzM4FG?A`!t;SVBekWnUY@wmdL)X@2A#-O%a z;rA|3OL%x7uEwgt!_&FW?lQ zbTZ=ffHwfk0KI@t0M{l8$vzJ9MN|c!G3_=gR9?X|vcfk7`A(8s^j_}C^@#fu580>9 z$OnYgvcZHqlw6bvy_IsD$g83^YynT)ii$3E*C)bLKxuueS$4x)KvzSXF&m9DgEa>KgS zRHMTD7W1)IQMg~qw_F8UL3UUN;40E)J>Phxsq_vrV|!6rcj+B(@%AFNd(R)vVrD`@ zZc?`-6pKqLO79E+Ip4&C1qLp%n{SqcB2g5?0Mrt=r!R!@JstTj7+I<+h|kM`JH46? z8#T7rYMVA|VNGq_v(K+uw`ngyeQU*p);f1~&)7c>maZ(&nzAK$G3hKT9#Ro9KC^xZv z44)0p%I_sFlqW?__U&9L3DrIcLU>2HVaiGmHX2uGUCNgw)5$f9!g42*i#w+@d);WI<;Ew*o~4z z0^bzkAMq*2f@!$VeDlo=J|wLU_U_tG5BB;- z1T)PIhFXcLvMyHZOD{{Gg5i^M5VYG#W92H`K=4$ZW}e7`WRk-$wTxkU4w5ITQYyoP zS6M`jN4Yk?P%bHjBp}R`5bqZ@$r#?!C@7@8!9rucxqAVo$#CzsTeVPR{BYU@a4q&g zQo7VC2`fowRYGxQa1K$>$)YeC;0j2>UU&s$;p<>~2Ikuu@C&nK1han+CF*LZZ1Ki5 zx8j;HJx8*pr{k}Qb-EtXU(NK7@L$P*`?7EuDY&n&RBef}^jXG00cUem9Vj?1-<7)I zbQst5Lv3{}oZqsj5s2o?zBbf~|$hrHf@oQxC zjO$oW^fMdrWwL$dmGmDWp`jNM_i+s3^-vY+heWkk9Y;gjcyRT!UoD9A7+88vCWh9niwv;}S%LEPP4Qs*MaiLd?}kkw^*_?kTeH z16f#Y(CzX|!fh|4ir^Jm7Cvl;Gxy5^L$+4e>*j+i_W;a*50!!1ij{i=B4Y3=g}s(8Dgd05O`sfwayoQafSL35R!X zJ%i_vrSl7zx95`&=a0e$a(R9sMh@eGaV(zVcyQ4kjO!iv(L4-6G<4dq zJ8M%~5;Ks&D`Yy(EFQx~UxFF;EJoaqKrc9SPb91GRWfqv4rn`<9&fw~V)(9tEuRhs zlPnx_-tL!u8IpbCWH;WmI~tPhb0+r7J`TxtIWzlZ?}ubtocHw0c7|lHI7|9u^I_rF zL&CMrnf-<@g=Eh;7xl|lhh%o=Q~k1rknBBU5lcd1!s= z*j2M2+U|oZ%1o%qK%<)BJ_E=Eu<`L|89e)qfcF6>0r?=G)9m!*ju>u(3kl#so8#w=hp^t2g}6bZA`%BJ;!H?J zvaFJWKNe}2=2`gK!_3~Z?{5zyxBI#OT=;y~`u)DY z-(G9&_4xhPp8h?|(YKga#xo}tHcfaSerqk_-T)i~oB;Fyt^%amrU~Pi%TG5Qd#s5M zi`1<|TnZo?PzqSMvT4G7IJK!YgEZr()k%_?s)(K`oFIv6>K3C*qDw!>RsA^A%_cM! z4!Rh6#;YsQ{Vz^U`;L;GObpZe0(piBuRFCb1; zhtpJDYFk3xxge(JGLLBd-?O2dG;<i%I-XB+Lar0HUyk-MpOe!cS`04Q{&XupyJ5JH*;0rJNvUNDoV)mpzQiG zag!#rXNE1Vjxnoy@xGfN+~L`Q@ZZLbfWl~ zhV8N3DAywTp{Ea+v0}a^riTTOc1d}ycJXH@+r)Ax5BbaSlES3=tz#s16yNI_2c2Ux z(=7|DD?F@#zx5o9vl6`SS9TRTc7t67)JT6_iGV- z+_M{)pS*d2VLavU=qdj&o)jzK$wmJ1vY)viDuX;HvM>r|HE^0T3Z49{Yd`SQq&2QJ zq(>8#(cJpp?IV`Qvi8=g&6&Ly`w>-5iAYQtpWHgC2+@CeQ>>~>1$Q2+Ks3l>hG{El zjU|a(QvG$`6<5KX#T9+7=vGha;-ie?3mTLC#A!mvxX9o zdjoO>$lnFzDv-Yl$i*Ok7LZFpJ|2)OK|T_YXM+5ZZ@K^UsNvP(t+F8$xc$Bw*hz@$ zyo@=!OJ#nR$icA*ulb^>%--s*E@hKPx^XBn$;Ji)zMrAn$)pfHeva5e^w}!{UaG?r zon@tA0Z*s#JHKajz?xqg9$1Z%*aJ>19LC$mX6^f8`X3rR>A9q>vX z_G&U-_qU=WhEP3b$<$DNf*=izH@cJy^mW(kSF$2hZ#^HdFLMpWisxXZk2fIh4B#l> z8^Ae$3-E6M=2i4l2gDS5+_BHN*MMNAVmrxap|7gvMj~!2Sr9fhZ7E2v#~@DGYO>HJ zm)}}ftEQPA-l}XiSvcQ``PxFRT^2qjhr*`e!{oQH`dK*=qE8Jnv|V=ga~4eJ!FE*9 zbpdU*Q+Wc>lcFqmWb2LhwQAZvsCcq8?nqWUHmISm19GaBwW?^JFBKw=iXw7ignm+p zjLZXFLrjc>%+~_)Qy}*RjCbnM?|^;t|Wi%O4}wmP-WlOqtn1jY|DXP(ow$s7SA zSV){Y6D}v0b$Xmjyt=}aqGM=a4)a}G%s94JnNekV%L1)kfYy}Ns31>9CgB|Ww#ZP7 z*Af!-HJ(WpMkl3aOAW4+){{4bk&2q6buP2j1GwS3)RxkUX|)&A$>Iu#q8;{q(Hn5; zN~yw{;5vDe<==x+WxU*Gu_Ee)H~oCD`IrA;ZjthsclaA#Wh}B6(PulSz2JPkFQ~q-f_S_ zhe=@q6WAKiA=1Hgp0sO{nsDSanS%g(LFShzGs)1K$H;zufBnz?tyq3XUWs^2mpWil zpV;21z%>}IV-sIBh&UlHHXrgduDPqaZS z25!3B5MtzqmMz#_nRkt`;CMw2O1W@xz^(W$UG_JFMiZ0T2N`PRdT+Puo#e@LdArr{H0gDEj8Mz%nz zI_M5V%mLD`LO$V9a?n(e^Q-SJ&mM@ns_+>;C4FN$!@qtNa!3iHdqjp#l}vS;b2VKI zog(qI>ch@{TJ95~Nk(!Cb8?G)Uh-?0d2NgRM#@h(;`C7^%1CY{W~pd1IX_lk?>VZx zku3Bp?|>BPZz9(r3l>Qhj*FZvu2vR45jBu3W#JmUPlxCe&d4mJ4`oaEgx@;NTEr^} zSP8E~kxzuSxOPdH?r#&e-@~PytT~o6m|60Qna3}YR`c|r zD{!VyZXtKf_rO6;ORc#}yqP)S^|-aW6BtiWt&O_;XT_o`;jk_VffCV{b|SRD*eY&Ao>(95a1p z#z^f}2=5=MN)|2IYhB=GZPhS%Em@e^iI>|ASvIWexEGRzl_^#>?<{x|Og3Z_o$^@v zRk=`Y#ZA#xpRk-5?n|HajmQoJ30=wGFS~2Y*eN)fkS4ijmw#*PQyhsbz4CL0^L_q}$ zlkSP@@ChHo&FB|MB|pHjCDcVxF+w@NN^&{}_aLo3XWBUi*N{X@#+2F3d~9xM8M+jLcsi^;Jh+9g{YqOO+Phh0|i;^)}f5 zoWB|~?go2^wHo6Pvb0c-4P)1?#3AXyek(^>XQF{eCeCrInfCOV{maLZ-SrxVoBZ zzb3n981PZzoMFO$Czod|#al^faUOo0G!>5w4H2y_#Cu@=%1CSR$XU;M-mM#9Th)r_ zeuT^;JFyWN@8whZ_*zLA<&lId9=M4+6Y5Y}bf>~gg5IOd{w-GnuiVkG39d0~E$by= zfu|YDweZYol3+93^M)InOslm{<*SbA<{Cxe6$g`syNenJT@X5k+1fal`jiV$T#2y`Xgj!7QR3?@hF5( zzv|Ar=$_fIi*%R#AtF@PfNK%B-Y?@RyGTT7M&&{ee$!$or>{WToey$DK%V7MqBo}A zLCcLdjeLMD_9)t2|2)4o^n^c*Tw`c9A*IVB7*EoSq#{h$ild=?nM9Or#7~i?GQFl; zWPzDzZ!Md_FcXguu_CV2>sDesq9c!S?Ox%Jk`mQ@!YT>zUcoM7IBeq}0}lAF4wf5x zt1%6BK;S6ULKgADY|n=vC2ltbURafz9^5x8W zTuElk`Z;Oh^N5=X_$VCliT<>uq(-fgEkXv5@EWl_G#5WZS{{0lse7JGp8bGQt(xr) ze#D94jv@>5$m%%-5w|4nuof-`mtf^(;h*I5IVRH>f3p3nPg5idmwY)l8YjY40S@;R z$$!HF_9_`M*P!q9N&@c@1vBtUWz7G$q1Xi4GRHF`UYtr74iz%IaEz+phRy=QI& z4qnsc zj<`5`%Yrowe6u7}Ph)OBLgrOZhWFf2or52;e_Nf&;S{AFqS>*hRcc9!*`ze$; zE2HX*zzE+$@Zw+i_Yr(IIpz#=#{%33jwQp~M*;3#N8K>DKfvvBG!Apk0dA*b*D&{5 zfZO7De~7a|$1erQbq>d{-b`rs|#>XIC_V*JPQhwl0Qdkra4!Kq+-9G*?Fg>l2ur^b z@SlJtz;3{cfc1c-00e*IcOou%EaLA%(G~vg-~UtBg1;ZX^N;bj@jGHjC;PT1MCxGT zE+r$L9|PBX;M*T2|J;5dWP1(V5SAhC^JV1N3#UWu#c*)|Tr9S~`r;8BT{9MOqbG+% zk6y%?k&I*+t}CQ^M@8_q`9q`T3Emk+=ngJO>B~Ex{J3K@&L)F9K8^hHA^33. #include QMK_KEYBOARD_H #include "jonavin.h" -bool spam_arrow; -uint16_t spam_timer = false; -uint16_t spam_interval = 1000; // (1000ms == 1s) -bool teams_muted; #ifdef TD_LSFT_CAPSLOCK_ENABLE // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled @@ -108,10 +104,6 @@ void matrix_scan_user(void) { timeout_tick_timer(); matrix_scan_keymap(); #endif - if (spam_arrow && timer_elapsed(spam_timer) >= spam_interval) { - spam_timer = timer_read(); - tap_code(KC_F24); - } } @@ -261,25 +253,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { unregister_code(KC_LSFT); } return true; - - case SPAMARROW: // Moves arrow up and down - if (record->event.pressed) { - spam_arrow ^= 1; - spam_timer = timer_read(); - } - return false; - - case TEAMSMUTE: //Mute MS teams and simply change LED for key 1 colour - if (record->event.pressed) { - register_code(KC_LCTRL); - register_code(KC_LSFT); - register_code(KC_M); - unregister_code(KC_M); - unregister_code(KC_LSFT); - unregister_code(KC_LCTRL); - teams_muted ^= 1; - } - return true; default: if (record->event.pressed) { diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h index 47e1cfa42073..151fe19372b8 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h @@ -32,15 +32,13 @@ enum custom_user_layers { // KEYCODES enum custom_user_keycodes { KC_00 = SAFE_RANGE, - ENCFUNC, - KC_WINLCK, //Toggles Win key on and off - RGB_TOI, // Timeout idle time up - RGB_TOD, // Timeout idle time down - RGB_NITE, // Turns off all rgb but allow rgb indicators to work - NMR, //Move window to monitor on right - NML, //Move window to monitor on left - SPAMARROW, //Spam F24. - TEAMSMUTE //MS Teams mute shortcut and simple LED status + ENCFUNC, //Encoder functions + KC_WINLCK, //Toggles Win key on and off + RGB_TOI, //Timeout idle time up + RGB_TOD, //Timeout idle time down + RGB_NITE, //Turns off all rgb but allow rgb indicators to work + NMR, //Move window to monitor on right + NML //Move window to monitor on left }; #define KC_CAD LALT(LCTL(KC_DEL)) @@ -86,4 +84,4 @@ enum custom_user_keycodes { // OTHER FUNCTION PROTOTYPE -void activate_numlock(bool turn_on); \ No newline at end of file +void activate_numlock(bool turn_on); diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c index 58f816b8b6e0..bba76349175d 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c @@ -19,9 +19,6 @@ along with this program. If not, see . #include "rgb_matrix_map.h" #include "jonavin.h" -bool spam_arrow; -bool teams_muted; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute) @@ -72,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef RGB_MATRIX_ENABLE - // Capslock, Scroll lock and Numlock indicator on Left side lights. + // Capslock, Scroll lock and Numlock indicator on Left side lights. void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { if (IS_HOST_LED_ON(USB_LED_SCROLL_LOCK)) { rgb_matrix_set_color(LED_L7, RGB_GOLD); @@ -99,16 +96,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (keymap_config.no_gui) { rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled } - if(spam_arrow==1) { //Change LED colour on nav cluster to indicate on - for (uint8_t i=0; i Date: Fri, 26 Nov 2021 17:20:43 -0500 Subject: [PATCH 63/94] Fix lock key LED indicators --- .../solartempest/sofle/keymaps/via/keymap.c | 10 +- .../sofle/solartempest_sofle_via.hex | 3553 +++++++++-------- 2 files changed, 1787 insertions(+), 1776 deletions(-) diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 721ed049eac8..1dee3a263e65 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -392,12 +392,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { //LED Lock keys status indicators are used since the sofle doesn't have dedicated LEDS for this. //Note 1: These will assign static colour and brightness to the LED range specified. //Note 2: Base layer0 is required for lock layers to work, even if range for static LED colours is set to 0,0. - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //RGB colour is ignored as range is 0,0. + const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Static RGB colour is ignored as range is 0,0. + const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); + const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); + const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); + const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication. Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers my_layer0_layer, //Base layer with no indications + my_layer1_layer, + my_layer2_layer, + my_layer3_layer, + my_layer4_layer, my_capslock_layer, //Highest status indicators override other layers my_numlock_layer, my_scrollock_layer diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 70a9d0c25c6f..adec533353db 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,1782 +1,1785 @@ -:100000000C9431060C9478060C9478060C94833387 -:100010000C9478060C9478060C9478060C94780668 -:100020000C9478060C9478060C94E81A0C94A41A94 -:100030000C94E3270C9478060C9478060C947806BC -:100040000C9478060C9478060C9478060C94780638 -:100050000C9478060C94BF1B0C9478060C947806CC -:100060000C9478060C9478060C9478060C94780618 -:100070000C9478060C9478060C9478060C94780608 -:100080000C9478060C9478060C9478060C947806F8 -:100090000C9478060C9478060C9478060C947806E8 -:1000A0000C9478060C9478060C94780637032B642D +:100000000C9449060C9490060C9490060C949B3327 +:100010000C9490060C9490060C9490060C94900608 +:100020000C9490060C9490060C94001B0C94BC1A33 +:100030000C94FB270C9490060C9490060C9490065C +:100040000C9490060C9490060C9490060C949006D8 +:100050000C9490060C94D71B0C9490060C9490066C +:100060000C9490060C9490060C9490060C949006B8 +:100070000C9490060C9490060C9490060C949006A8 +:100080000C9490060C9490060C9490060C94900698 +:100090000C9490060C9490060C9490060C94900688 +:1000A0000C9490060C9490060C94900637032B64E5 :1000B000AAFF000000001C032B64AAFF0000000040 -:1000C00004032B64AAFF0000000000005FFF5AFF3A -:1000D0000000000005010902A10185020901A1003B -:1000E00005091901290815002501950875018102E6 -:1000F0000501093009311581257F950275088106B2 -:1001000009381581257F950175088106050C0A3887 -:10011000021581257F950175088106C0C00501097A -:1001200080A101850319012AB700150126B70095A2 -:100130000175108100C0050C0901A1018504190198 -:100140002AA002150126A002950175108100C006A3 -:1001500060FF0961A1010962150026FF0095207565 -:100160000881020963150026FF0095207508910299 -:10017000C005010906A101050719E029E7150025B9 -:10018000019508750181029501750881010507191E -:100190000029FF150026FF00950675088100050857 -:1001A00019012905950575019102950175039101C4 -:1001B000C00000000000000000000000000000007F -:1001C000000000000000000000000000000000002F -:1001D00000000000007E0F00D4FFFFFFC7000000FA -:1001E0007800000000000000002A2B28000000001A -:1001F00000000000000000000000000029000000D6 -:10020000002C1E3420212224342627252E362D377B -:1002100038271E1F202122232425263333362E374C -:10022000381F0405060708090A0B0C0D0E0F1011E4 -:1002300012131415161718191A1B1C1D2F313023F1 -:100240002D350405060708090A0B0C0D0E0F1011B9 -:1002500012131415161718191A1B1C1D2F313035BF -:100260004C00DA02815AD9F1DB20A4A62EAF00A0FF -:10027000C000A1C800AED580A81FD300408D1420B7 -:1002800000CA00C000B600AC000000000000000082 -:100290000000000000E0F0F0F8F8CCCCF8F8F0F046 -:1002A00060000000000000000000000000000000EE -:1002B00000000000000F3F7FFCF9F1E1C181000068 -:1002C000000000000000000000000000000000002E -:1002D0000C387060E0E0F0F0F8F9FFFFFFFFFF7E00 -:1002E0001C000000000000000000000000000000F2 -:1002F0000000000000E0F0F0F8F8CCCCF8F8F0F0E6 -:10030000600000000000000000000000000000008D -:1003100000000000000F3F7FFCF9F1E1C181000007 -:10032000010102060C0400000000000000000000B3 -:1003300000387C60E0E0F0F0F8F9FFFFFFFFFF7E9F -:100340001C00000000000000000000000000000091 -:10035000000000000000000000000000000000009D -:100360000000000000000000000000000000CCF8C9 -:1003700070000000000000C0F0F8F87CFCEEE6FC25 -:10038000FC7878B00000000000000000003F7FF122 -:10039000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCF5 -:1003A000F8F06000010306020000000000000000F9 -:1003B000000000000000000000000000000000003D -:1003C0000000000000000000000000000080E0F8D5 -:1003D0001C000000000000C0F0F8F87CFCEEE6FC19 -:1003E000FC7878300000000000000000003F7FF043 -:1003F000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC95 -:10040000F8F06000000000000000000000000000A4 -:1004100080C0C0E0E03070E0E0C0C08000000000BC -:100420000000000000000000000000000000001FAD -:100430007FFFFFE7E7EFEFCFCB83830100000000F2 -:1004400000000000000000000000000000061C3852 -:1004500078F1E3E3E7F7F7FFFFFFFF7F3E000000DF -:10046000000000000000000000000000000000008C -:100470000000000000000000000000000080C0E05C -:10048000E060E0C0C08080000000000000000000CC -:100490000000000020F8FEFFFFFF9F0F0E1F1F3F10 -:1004A0003F7EE683030F43439088080000031E3C11 -:1004B00078F0E0E0F0F0FBFFFFFF7F7F3800000006 -:1004C0000000000000000000000000000004F6B87A -:1004D000F8D8F0E0C000000080C0E0E0F0F0F0F0FC -:1004E000E0E0C080000000000000000080C0E1F3F8 -:1004F000FB7F1F0F0000F0FFFF3F030100000080A3 -:10050000C1F3FF7F1F000080C0E0301E3F3F7FF936 -:10051000F0F070783C3F1F0F03000000001C3F7F8D -:100520007FFBF1F0783C1E0F030000000101010188 -:10053000010101010102020202020202020203039E -:10054000030303030303040404040404040505056E -:100550000505060606060607070707070808080830 -:10056000090909090A0A0A0B0B0B0C0C0C0D0D0DDD -:100570000E0E0E0F0F0F1010111111121213131473 -:1005800014151516161717181819191A1A1B1B1CEB -:100590001D1D1E1E1F202021222223242425262645 -:1005A000272829292A2B2C2D2D2E2F30313232337A -:1005B0003435363738393A3B3C3D3E3F4041424383 -:1005C0004445464748494A4C4D4E4F505153545567 -:1005D0005658595A5B5D5E5F616264656668696B17 -:1005E0006C6D6F7072737577787A7B7D7E80828395 -:1005F0008587888A8C8E8F91939596989A9C9EA0D9 -:10060000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0E5 -:10061000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E4AE -:10062000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55409E -:100630001C1004010D190A24232221201F1E1D1B3A -:100640001A18171615141312110F0E0C0B090807A0 -:1006500006050302002D3945483C303F2526272852 -:10066000292A2B2C2E2F31323334353637383A3B6A -:100670003D3E404142434446474907087F08070042 -:100680003E5B4F5B3E003E6B4F6B3E001C3E7C3E34 -:100690001C00183C7E3C18001C577D571C001C5E3B -:1006A0007F5E1C0000183C180000FFE7C3E7FF0056 -:1006B000001824180000FFE7DBE7FF0030483A0687 -:1006C0000E00262979292600407F05050700407F76 -:1006D00005253F005A3CE73C5A007F3E1C1C0800A1 -:1006E000081C1C3E7F0014227F2214005F5F005F05 -:1006F0005F0006097F017F00006689956A006060DF -:100700006060600094A2FFA2940008047E040800C8 -:1007100010207E20100008082A1C0800081C2A0847 -:1007200008001E10101010000C1E0C1E0C0030389B -:100730003E383000060E3E0E0600000000000000AD -:1007400000005F000000000700070000147F147F16 -:100750001400242A7F2A12002313086462003649F9 -:1007600056205000000807030000001C2241000032 -:100770000041221C00002A1C7F1C2A0008083E0899 -:100780000800008070300000080808080800000019 -:10079000606000002010080402003E5149453E0000 -:1007A00000427F4000007249494946002141494DBD -:1007B00033001814127F10002745454539003C4A84 -:1007C000494931004121110907003649494936009C -:1007D000464949291E000000140000000040340072 -:1007E00000000008142241001414141414000041E5 -:1007F000221408000201590906003E415D594E00CD -:100800007C1211127C007F49494936003E4141412A -:1008100022007F4141413E007F49494941007F0913 -:10082000090901003E41415173007F0808087F001B -:1008300000417F4100002040413F01007F08142219 -:1008400041007F40404040007F021C027F007F0447 -:1008500008107F003E4141413E007F090909060022 -:100860003E4151215E007F09192946002649494928 -:10087000320003017F0103003F4040403F001F2042 -:1008800040201F003F4038403F00631408146300BD -:100890000304780403006159494D4300007F41413E -:1008A0004100020408102000004141417F00040281 -:1008B00001020400404040404000000307080000DF -:1008C0002054547840007F2844443800384444443D -:1008D0002800384444287F00385454541800000835 -:1008E0007E09020018A4A49C78007F080404780004 -:1008F00000447D4000002040403D00007F1028441F -:10090000000000417F4000007C04780478007C08EF -:1009100004047800384444443800FC1824241800A7 -:1009200018242418FC007C0804040800485454547B -:10093000240004043F4424003C4040207C001C2050 -:1009400040201C003C4030403C004428102844001B -:100950004C9090907C004464544C44000008364114 -:10096000000000007700000000413608000002018E -:10097000020402003C2623263C0000000000000088 -:10098000404040F0F8F8FF38FFF8F83FF8F8FF383B -:10099000FFF8F8F040404000000000000080C0C0B8 -:1009A000C0800000C0C08000000080C0C000C0C087 -:1009B000000080C0C00000000000C0C0C0C0C00077 -:1009C000C0C00000000000000000000000000000A7 -:1009D0000000000000000000000000000000000017 -:1009E0000000000000000000000000000000000007 -:1009F000000000000000000000C0F0F8FC3E1E06F1 -:100A0000010000007F4141417F007F4141417F0063 -:100A10000080C0E07E5B4F5BFEC00000C000DCD702 -:100A2000DEDEDED7DC00C0000000000000000000B9 -:100A300000000000000000000000000000000000B6 -:100A4000494949FFFFFFFFE0DFBFBF00BFBFDFE055 -:100A5000FFFFFFFF49494900000000001F3F6060A1 -:100A6000E0BF1F007F7F071E381E077F7F007F7F4C -:100A70000E1F3B716000000000007F7F0C0C0C001B -:100A80007E7E007F7E0303007F7E03037E7E030362 -:100A90007F7E000F3E703C063C703E0F00327B496B -:100AA000493F7E007F7E0303001E3F69696F260079 -:100AB000000000000000000000030F1F3F3C7870A2 -:100AC000600000007F4141417F007F4141417F0044 -:100AD000307B7F7830202030787F3B0003000F7F11 -:100AE0000F0F0F7F0F000300000000000000000048 -:100AF00000000000000000000000000000000000F6 -:100B0000010101070F0F7F0F7F0F0F7E0F0F7F0F68 -:100B10007F0F0F070101010000000000000000002E -:100B200000010100000000000000000000000000C3 -:100B300000000000000000000000000000000000B5 -:100B400000000000000000000000000000000000A5 -:100B50000000000000000000000000000000000095 +:1000C00004032B64AAFF000000000000D7FF78FFA4 +:1000D00000000000000080FF64FF0000000000003E +:1000E0005FFF5AFF000000000000FCFF7DFF0000E2 +:1000F000000000005FFF5AFF000000000501090238 +:10010000A10185020901A1000509190129081500AD +:100110002501950875018102050109300931158114 +:10012000257F95027508810609381581257F95017F +:1001300075088106050C0A38021581257F95017521 +:10014000088106C0C005010980A101850319012AA3 +:10015000B700150126B700950175108100C0050C88 +:100160000901A101850419012AA002150126A00296 +:10017000950175108100C00660FF0961A101096247 +:10018000150026FF009520750881020963150026D9 +:10019000FF00952075089102C005010906A101051F +:1001A0000719E029E71500250195087501810295D9 +:1001B00001750881010507190029FF150026FF00B8 +:1001C0009506750881000508190129059505750131 +:1001D0009102950175039101C0000000000000002C +:1001E000000000000000000000000000000000000F +:1001F000000000000000000000000000007E0F0072 +:10020000D4FFFFFFC70000007800000000000000DE +:10021000002A2B2800000000000000000000000061 +:100220000000000029000000002C1E3420212224A0 +:10023000342627252E362D3738271E1F202122232E +:100240002425263333362E37381F040506070809C0 +:100250000A0B0C0D0E0F1011121314151617181986 +:100260001A1B1C1D2F3130232D35040506070809E4 +:100270000A0B0C0D0E0F1011121314151617181966 +:100280001A1B1C1D2F3130354C00DA02815AD9F16E +:10029000DB20A4A62EAF00A0C000A1C800AED58070 +:1002A000A81FD300408D142000F200E800DE00D427 +:1002B00000CA00C000B600AC000000000000000052 +:1002C0000000000000E0F0F0F8F8CCCCF8F8F0F016 +:1002D00060000000000000000000000000000000BE +:1002E00000000000000F3F7FFCF9F1E1C181000038 +:1002F00000000000000000000000000000000000FE +:100300000C387060E0E0F0F0F8F9FFFFFFFFFF7ECF +:100310001C000000000000000000000000000000C1 +:100320000000000000E0F0F0F8F8CCCCF8F8F0F0B5 +:10033000600000000000000000000000000000005D +:1003400000000000000F3F7FFCF9F1E1C1810000D7 +:10035000010102060C040000000000000000000083 +:1003600000387C60E0E0F0F0F8F9FFFFFFFFFF7E6F +:100370001C00000000000000000000000000000061 +:10038000000000000000000000000000000000006D +:100390000000000000000000000000000000CCF899 +:1003A00070000000000000C0F0F8F87CFCEEE6FCF5 +:1003B000FC7878B00000000000000000003F7FF1F2 +:1003C000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCC5 +:1003D000F8F06000010306020000000000000000C9 +:1003E000000000000000000000000000000000000D +:1003F0000000000000000000000000000080E0F8A5 +:100400001C000000000000C0F0F8F87CFCEEE6FCE8 +:10041000FC7878300000000000000000003F7FF012 +:10042000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC64 +:10043000F8F0600000000000000000000000000074 +:1004400080C0C0E0E03070E0E0C0C080000000008C +:100450000000000000000000000000000000001F7D +:100460007FFFFFE7E7EFEFCFCB83830100000000C2 +:1004700000000000000000000000000000061C3822 +:1004800078F1E3E3E7F7F7FFFFFFFF7F3E000000AF +:10049000000000000000000000000000000000005C +:1004A0000000000000000000000000000080C0E02C +:1004B000E060E0C0C080800000000000000000009C +:1004C0000000000020F8FEFFFFFF9F0F0E1F1F3FE0 +:1004D0003F7EE683030F43439088080000031E3CE1 +:1004E00078F0E0E0F0F0FBFFFFFF7F7F38000000D6 +:1004F0000000000000000000000000000004F6B84A +:10050000F8D8F0E0C000000080C0E0E0F0F0F0F0CB +:10051000E0E0C080000000000000000080C0E1F3C7 +:10052000FB7F1F0F0000F0FFFF3F03010000008072 +:10053000C1F3FF7F1F000080C0E0301E3F3F7FF906 +:10054000F0F070783C3F1F0F03000000001C3F7F5D +:100550007FFBF1F0783C1E0F030000000101010158 +:10056000010101010102020202020202020203036E +:10057000030303030303040404040404040505053E +:100580000505060606060607070707070808080800 +:10059000090909090A0A0A0B0B0B0C0C0C0D0D0DAD +:1005A0000E0E0E0F0F0F1010111111121213131443 +:1005B00014151516161717181819191A1A1B1B1CBB +:1005C0001D1D1E1E1F202021222223242425262615 +:1005D000272829292A2B2C2D2D2E2F30313232334A +:1005E0003435363738393A3B3C3D3E3F4041424353 +:1005F0004445464748494A4C4D4E4F505153545537 +:100600005658595A5B5D5E5F616264656668696BE6 +:100610006C6D6F7072737577787A7B7D7E80828364 +:100620008587888A8C8E8F91939596989A9C9EA0A8 +:10063000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0B5 +:10064000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E47E +:10065000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55406E +:100660001C1004010D190A24232221201F1E1D1B0A +:100670001A18171615141312110F0E0C0B09080770 +:1006800006050302002D3945483C303F2526272822 +:10069000292A2B2C2E2F31323334353637383A3B3A +:1006A0003D3E404142434446474907087F08070012 +:1006B0003E5B4F5B3E003E6B4F6B3E001C3E7C3E04 +:1006C0001C00183C7E3C18001C577D571C001C5E0B +:1006D0007F5E1C0000183C180000FFE7C3E7FF0026 +:1006E000001824180000FFE7DBE7FF0030483A0657 +:1006F0000E00262979292600407F05050700407F46 +:1007000005253F005A3CE73C5A007F3E1C1C080070 +:10071000081C1C3E7F0014227F2214005F5F005FD4 +:100720005F0006097F017F00006689956A006060AE +:100730006060600094A2FFA2940008047E04080098 +:1007400010207E20100008082A1C0800081C2A0817 +:1007500008001E10101010000C1E0C1E0C0030386B +:100760003E383000060E3E0E06000000000000007D +:1007700000005F000000000700070000147F147FE6 +:100780001400242A7F2A12002313086462003649C9 +:1007900056205000000807030000001C2241000002 +:1007A0000041221C00002A1C7F1C2A0008083E0869 +:1007B00008000080703000000808080808000000E9 +:1007C000606000002010080402003E5149453E00D0 +:1007D00000427F4000007249494946002141494D8D +:1007E00033001814127F10002745454539003C4A54 +:1007F000494931004121110907003649494936006C +:10080000464949291E000000140000000040340041 +:1008100000000008142241001414141414000041B4 +:10082000221408000201590906003E415D594E009C +:100830007C1211127C007F49494936003E414141FA +:1008400022007F4141413E007F49494941007F09E3 +:10085000090901003E41415173007F0808087F00EB +:1008600000417F4100002040413F01007F081422E9 +:1008700041007F40404040007F021C027F007F0417 +:1008800008107F003E4141413E007F0909090600F2 +:100890003E4151215E007F091929460026494949F8 +:1008A000320003017F0103003F4040403F001F2012 +:1008B00040201F003F4038403F006314081463008D +:1008C0000304780403006159494D4300007F41410E +:1008D0004100020408102000004141417F00040251 +:1008E00001020400404040404000000307080000AF +:1008F0002054547840007F2844443800384444440D +:100900002800384444287F00385454541800000804 +:100910007E09020018A4A49C78007F0804047800D3 +:1009200000447D4000002040403D00007F102844EE +:10093000000000417F4000007C04780478007C08BF +:1009400004047800384444443800FC182424180077 +:1009500018242418FC007C0804040800485454544B +:10096000240004043F4424003C4040207C001C2020 +:1009700040201C003C4030403C00442810284400EB +:100980004C9090907C004464544C440000083641E4 +:10099000000000007700000000413608000002015E +:1009A000020402003C2623263C0000000000000058 +:1009B000404040F0F8F8FF38FFF8F83FF8F8FF380B +:1009C000FFF8F8F040404000000000000080C0C088 +:1009D000C0800000C0C08000000080C0C000C0C057 +:1009E000000080C0C00000000000C0C0C0C0C00047 +:1009F000C0C0000000000000000000000000000077 +:100A000000000000000000000000000000000000E6 +:100A100000000000000000000000000000000000D6 +:100A2000000000000000000000C0F0F8FC3E1E06C0 +:100A3000010000007F4141417F007F4141417F0033 +:100A40000080C0E07E5B4F5BFEC00000C000DCD7D2 +:100A5000DEDEDED7DC00C000000000000000000089 +:100A60000000000000000000000000000000000086 +:100A7000494949FFFFFFFFE0DFBFBF00BFBFDFE025 +:100A8000FFFFFFFF49494900000000001F3F606071 +:100A9000E0BF1F007F7F071E381E077F7F007F7F1C +:100AA0000E1F3B716000000000007F7F0C0C0C00EB +:100AB0007E7E007F7E0303007F7E03037E7E030332 +:100AC0007F7E000F3E703C063C703E0F00327B493B +:100AD000493F7E007F7E0303001E3F69696F260049 +:100AE000000000000000000000030F1F3F3C787072 +:100AF000600000007F4141417F007F4141417F0014 +:100B0000307B7F7830202030787F3B0003000F7FE0 +:100B10000F0F0F7F0F000300000000000000000017 +:100B200000000000000000000000000000000000C5 +:100B3000010101070F0F7F0F7F0F0F7E0F0F7F0F38 +:100B40007F0F0F07010101000000000000000000FE +:100B50000001010000000000000000000000000093 :100B60000000000000000000000000000000000085 :100B70000000000000000000000000000000000075 :100B80000000000000000000000000000000000065 :100B90000000000000000000000000000000000055 :100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000AF00AE0902CD -:100BC0005B00030100A0FA09040000010301010019 -:100BD0000921110100012240000705810308000AD4 -:100BE0000904010002030000000921110100012293 -:100BF00022000705820320000107050303200001EE -:100C00000904020001030000000921110100012272 -:100C10007B000705840320000A1201000200000087 -:100C20000832FC87120200010200011E0353006F0C -:100C3000006C00610072006900750073005F005372 -:100C4000006F0066006C006500000010034B00653B -:100C5000007900680069007600650000000403095F -:100C6000040011241FBECFEFDAE0DEBFCDBF04B613 -:100C700003FE27C08091800690918106A091820694 -:100C8000B09183068730904BA740B04BD1F41092BF -:100C9000800610928106109282061092830614BE7E -:100CA00084B7877F84BF0FB6F894A89580916000C1 -:100CB000886180936000109260000FBEE0E0F8E36E -:100CC000099512E0A0E0B1E0EEE1FEE602C0059079 -:100CD0000D92AE32B107D9F726E0AEE2B2E001C024 -:100CE0001D92A038B207E1F70E940A280C94C93679 -:100CF0000C940000CF93DF9340917E0650917F06C5 -:100D00004E5754409A01205A3F4F21303240C0F094 -:100D100020E032E0241B350B60917C0470917D044F -:100D2000FC01CA01240F351FC1E0D0E082179307F0 -:100D300050F070937D0460937C04DF91CF9108950F -:100D400020E630E0E9CF4491DC01A258BB4F5C9132 -:100D5000451781F04C93AC01A5E056954795AA95AF -:100D6000E1F7DE0102C0AA0FBB1F4A95E2F7AD0111 -:100D70006A2B752B01963196D9CFE8EDF0E0808192 -:100D80008E7F80831092E2001092DA001092E100D0 -:100D9000A0EEB0E08C9181608C9380818F7780830E -:100DA00019BCA7EDB0E08C918E7F8C9380818F7EF3 -:100DB000808310925E0408952091E4003091E50054 -:100DC00095E6A9012091EC00822F817020FF06C0DA -:100DD0008091E80080FF06C080E008952091E8003F -:100DE00022FD1AC080916C04882389F0853089F037 -:100DF0008091EB0085FD0FC02091E4003091E5006B -:100E000042175307F9F29150E1F684E0089582E029 -:100E1000089583E0089581E00895EF92FF920F9383 -:100E20001F93CF937C018B010E94DC06C82F811198 -:100E300017C08091E80085FD0BC08091E8008E7797 -:100E40008093E8000E94DC06882399F3C82F08C02D -:100E5000F70181917F018093F1000150110949F759 -:100E60008C2FCF911F910F91FF90EF90089580915B -:100E70006E0487FF13C08091E80082FF06C0809156 -:100E8000E8008B778093E80004C080916C048111A6 -:100E9000F2CF089580916C048823D9F38091E80003 -:100EA00080FFF8CF8091E8008E77ECCF982F909359 -:100EB000E900242F762F50E0891731F07091EC0073 -:100EC0002091ED005091F00021FD07C09F5F973009 -:100ED00071F78093E90081E008953091EB003E7F47 -:100EE0003093EB003091ED003D7F3093ED00309179 -:100EF000EB0031603093EB007093EC002093ED0039 -:100F00005093F0002091EE0027FDE0CF80E008959F -:100F1000CF92DF92EF92FF920F931F93CF93DF93C5 -:100F2000C8EDD0E088818F7E8883E7EDF0E0808196 -:100F30008160808384E082BF81E080935E04888149 -:100F40008E7F888302EE10E0F80110821092DA00A2 -:100F500081EEC82ED12CF601108288818F7788838C -:100F600088818068888388818F7D888319BC1092EE -:100F70006C0410926D0410926B0410926A0490EE4F -:100F8000E92EF12CF70180818B7F8083888181603D -:100F9000888342E060E080E00E945607F60180818D -:100FA0008E7F8083F801808181608083808188606A -:100FB0008083F70180818E7F808388818061888330 -:100FC000DF91CF911F910F91FF90EF90DF90CF9025 -:100FD0000895FC0180917404909175048617970719 -:100FE000A0F06115710529F49091E8009E77909327 -:100FF000E80090E06115710551F4911108C08091ED -:10100000E80082FF34C080E00895BC01F2CF8091F7 -:101010006C048823C1F18530C1F18091E80083FD23 -:1010200030C08091E80082FDEACF8091E80080FF27 -:10103000E1CF8091F3002091F200382F6115710506 -:1010400019F02830310558F091E02830310509F0C9 -:1010500090E02091E8002E772093E800CBCF81919B -:101060008093F100615071092F5F3F4FE7CF80916E -:101070006C04882341F0853041F08091E80083FFC3 -:10108000BECF81E0089582E0089583E008958091C5 -:10109000610408952FB7F894609157047091580433 -:1010A0008091590490915A042FBF089520915404BF -:1010B000309155042817390771F0909355048093A7 -:1010C0005404E0915204F0915304309721F00084CD -:1010D000F185E02D09940895209150043091510438 -:1010E0002817390771F09093510480935004E091D0 -:1010F0005204F0915304309721F00680F781E02DDF -:10110000099408952091430436E0839FC00111247F -:10111000629F800D911D1124811522E0920714F029 -:1011200090E080E082589B4F90937F0680937E06EC -:101130000895883E9105C8F4803E910548F48B32AD -:10114000910540F48832910518F404974A9758F4B1 -:1011500080E008958C32910530F089339105C0F319 -:1011600084369105A9F381E011C0811522E592072B -:1011700070F48115E1E59E0758F790548115904170 -:1011800090F7FB019581907F81E011F3089581151F -:1011900028E5920740F38115E9E59E0728F090566F -:1011A0008115904270F3DFCFFB019581907F81E044 -:1011B000903271F6EBCFFC01680F791F8FEF91E34E -:1011C0002191822728E030E087FF09C0880F892716 -:1011D00021503109C9F7E617F70791F70895880FED -:1011E000F7CFFA01811101C0FB01099480917704C6 -:1011F000982F9E7F61F48170826080937704809144 -:101200007A04813A18F080EA80937A04089588314C -:10121000B0F381708661F1CFAF92BF92DF92EF920F -:10122000FF920F931F93CF93DF93082F162FE9019F -:10123000E42FF0E0E55DFA4F611110C0E4915E2FFC -:101240004E2F4983E8835A83DF91CF911F910F91ED -:10125000FF90EF90DF90BF90AF900895E62EF12CB5 -:101260004491D42EE42FF0E026E0829FC0011124A7 -:101270002FEF30E0B9010E94FD34802F90E0880FFD -:10128000991F55E5569FD001579FB00D11248A1B19 -:101290009B0B982F990F890F5901AE18BF08AE9E6E -:1012A000D001AF9EB00DBE9EB00D11245B2F189FD4 -:1012B00080011124012F11275901A01AB10AAE9EF5 -:1012C0008001AF9E100DBE9E100D11245901A81A69 -:1012D000B108AE9CC001AF9C900DBE9C900D112436 -:1012E000892F9927281B390B2E9FC0012F9F900D06 -:1012F0003E9F900D1124E92F62307105A1F050F44A -:101300006115710509F49DCF6130710581F0EB2FF6 -:10131000512F97CF6430710569F080F06630710508 -:1013200009F48FCFF4CFE42F4B2F592F8ACFE42F1E -:10133000412F87CFEB2F542F492F83CF4B2F5D2D7C -:10134000E12F7FCF80E0089578940895F894E82FF6 -:10135000E295EF70F0E031A1282F2F7081E090E04E -:1013600001C0880F2A95EAF7982F9095932391A3AF -:1013700092A1892B82A30C94A4099091D60292FF8A -:1013800006C0282F28712830F9F4877F846093FFE6 -:1013900006C0282F28712831F1F4877E84612091BE -:1013A000D70220FF06C0382F38713830D9F4877F34 -:1013B000816021FF06C0282F28712831D1F4877E53 -:1013C000816194FD877E0895282F24712430F9F6D9 -:1013D0008B7F8860DCCF282F2471243101F78B7E2E -:1013E0008861DDCF382F3171313019F78E7F8860F9 -:1013F000E0CF282F2171213121F78E7E8861E1CF46 -:10140000CF93DF93EC018238910581F1B0F5813300 -:10141000910509F491C020F58932910509F485C040 -:101420008A9709F490C0C11521E5D20708F0AAC037 -:10143000C11530E5D30708F0F2C0CF3BD10508F065 -:1014400089C0C83AD10508F0DFC0C53AD10508F017 -:10145000D3C0C430D105F8F4C130D105E1F040C0AB -:101460008533910509F45AC0C997E9F68091D602EF -:10147000837089F0C0EED0E00EC0833E910599F1F3 -:1014800070F4803E910501F1823E910561F68091F4 -:10149000D60282FD21C0CE01DF91CF910895863E14 -:1014A000910561F1873E910571F1843E910509F046 -:1014B000BACF8091D70281FFEECF8091D602C7EEDE -:1014C000D0E084FD0DC0E7CF8091D60280FDF7C04B -:1014D0009091D70290FFDFCFC3EED0E084FFDBCF47 -:1014E000D0E0C0E0D8CF8091D60282FDEBC09091D1 -:1014F000D70290FDBFCF84FFCECFF2CF8091D6022E -:1015000083FDDDCFC8CF8091D60283FDDEC09091F0 -:10151000D70291FFF0CFC4EED0E0BDCF8091D602CC -:1015200085FFB9CFC9E2D0E0B6CF8091D60285FF62 -:10153000B2CFC5E3D0E0AFCF8091D60286FFABCF6C -:10154000CAE2D0E0A8CF8091D60286FFA4CFC1E343 -:10155000D0E0A1CFC11540E2D40760F4C11581E00D -:10156000D80708F098CFCE01815E9109079708F45B -:1015700092CFB6CFC11590E4D90708F4B1CFDF7090 -:10158000D06A89CFC11524E5D20778F4C11533E5B7 -:10159000D30708F072C0C11542E5D40708F05CC05B -:1015A000DC2FCC27C16FD06A76CFC1158AE5D8076A -:1015B00078F4C11599E5D90708F073C0C11528E57D -:1015C000D20708F48DCFDC2FCC27C06FD06A63CF51 -:1015D000CE0190568115904208F082CF8D2F8F71E9 -:1015E0000E94BD0990E0982F882788279F719C0151 -:1015F0002C2BE901D0624FCFC55AD0E0C154DE4F49 -:10160000C881D0E0D06447CFC85AD0E0CC0FDD1FEE -:10161000CE53DE4F0990D881C02DD4643CCFCE018B -:1016200064E0969587956A95E1F783702C2F26954F -:101630002695237040E2249F90011124382B8C2F93 -:101640008370C1E0D0E002C0CC0FDD1F8A95E2F7C5 -:10165000C22BD32BDC681FCFCE018370992721E0EA -:1016600030E002C0220F331F8A95E2F7C695C69577 -:1016700080E2C89FE0011124EBCFCE01837099274F -:1016800021E030E002C0220F331F8A95E2F7C695B1 -:10169000C69590E2C99FE0011124C22BD32BDA68D2 -:1016A000FACE8C2F8F700E94BD0934E0D695C79575 -:1016B0003A95E1F7CF709C2FEC01D069ECCEC9E3ED -:1016C000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE8A -:1016D0000C944A0880915F0490919102892B90911B -:1016E0009002892B80933002E0915204F0915304D0 -:1016F000309731F00280F381E02D80E392E009948D -:10170000089580918F0290915E02981301C0089510 -:101710008F5F8770FACF27E0929F800D1124982F5A -:10172000977086958695869523E0829FF001112417 -:10173000E35CFD4F50E040E080E0219130E0092E75 -:1017400002C0369527950A94E2F721703327042EBC -:1017500001C0220F0A94EAF7822B4F5F5F4F43309C -:10176000510559F7089527E0929F800D1124982F75 -:10177000977041E001C0440F9A95EAF786958695E7 -:10178000869593E0899FF0011124E35CFD4F90E082 -:1017900080E070E05191DF0111979B01082E02C09B -:1017A000369527950A94E2F7217021952527242361 -:1017B00025272C9301968330910561F7089590E0D9 -:1017C00080E00E946C0890E080E00E945608109231 -:1017D0009102109290020C946A0B809392020C94E6 -:1017E000DF0B882341F0809590915F0489238093DB -:1017F0005F040C946A0B0895882339F090915F047C -:10180000982B90935F040C946A0B08958823B1F190 -:101810009CEF980F913A70F4E2E3F2E09191891312 -:1018200003C0DF0111971C9242E0E833F407B1F7DF -:101830000C946A0B90E2980F983088F4877021E03E -:1018400030E0A90102C0440F551F8A95E2F7CA0192 -:10185000809590915F04892380935F04E9CF9BE595 -:10186000980F933020F490E080E00C946C08885A34 -:10187000873120F490E080E00C94560808950F938F -:101880001F93CF93C82F882309F469C08CEF8C0F66 -:10189000813AB0F502E312E088E392E0F801219189 -:1018A000C21701F122E0E833F207C9F7EFEF80E059 -:1018B000D8019D918D01C91781F0EF3F19F4911165 -:1018C00001C0E82F8F5F863099F7EF3F31F00E2E81 -:1018D000000CFF0BE05DFD4FC283CF911F910F9174 -:1018E0000C946A0BE2E3F2E02191C21303C0DF0122 -:1018F00011971C928E179F07B9F70E946A0BD6CFDB -:1019000080E28C0F883068F4C77021E030E001C0BD -:10191000220FCA95EAF780915F04822B80935F04BF -:10192000DCCFEBE5EC0FE33050F4F0E0E154FE4F98 -:10193000808190E0CF911F910F910C946C08C85A50 -:10194000C73168F4EC2FF0E0EE0FFF1FEE53FE4FAF -:1019500080819181CF911F910F910C945608CF9166 -:101960001F910F910895982F92959F7011F0892FD4 -:1019700094E0282F2695269511F09E5F822F86955C -:1019800009F09F5F892F0895DC01FB01808191811F -:10199000803891054CF08FE78C93808191818F572F -:1019A000910991838083089581382FEF92073CF449 -:1019B00081E88C938081918181589F4FF2CF8C93E5 -:1019C000118210820895681708F5861B682F21E0A0 -:1019D000469FA0011124649FF001659FF00D112422 -:1019E0004091590150915A01E49FC001E59F900D2B -:1019F000F49F900D1124880F892F881F990B9195C2 -:101A0000222319F09195819591090895681B20E092 -:101A1000DFCF0F931F93CF93DF9300D000D0CDB7CC -:101A2000DEB789836A834B831C8204E610E024E0DE -:101A300030E0AE014F5F5F4F60E084E10E945B32B7 -:101A40000F900F900F900F90DF91CF911F910F91FA -:101A5000089580913203882329F047E669E98BE2F3 -:101A60000C94090D6091590170915A0190E080E049 -:101A70000E94AA3520E030E040E05CE30E940B3693 -:101A800020E030E040E85FE30E94A535882321F0A4 -:101A900047EC6BE180E0E4CF41E265EA89EDE0CF1D -:101AA000CF92DF92EF92FF920F931F93CF93DF932A -:101AB0006C017B0164E670E088E70E944331EC0131 -:101AC00097FD12C010E000E0F601E00FF11F8491D5 -:101AD00064E670E00E94BD31EC01892B29F40F5FB0 -:101AE0001F4F0E151F0581F70E94D732CE01DF91DF -:101AF000CF911F910F91FF90EF90DF90CF900895BD -:101B000080914E0490914F04911103C091E0892778 -:101B10000895882369F062E070E08CEB9BE00E94FE -:101B2000500D892B19F080914E04089510924E04A7 -:101B300080914E04EBCFCF93C0914E0480914F041F -:101B40008823D1F00E944A086058774C8E4F9F4FEF -:101B500060934A0470934B0480934C0490934D041B -:101B6000C11108C062E070E08AEB9BE00E94500D5A -:101B7000892B29F0C0914E048C2FCF91089581E0DC -:101B800080934E04F7CF90916C04943029F58093A4 -:101B90005B0470935D0460935C049093E9008FEFA5 -:101BA0009091E800815095FD06C095ED9A95F1F76A -:101BB00000008111F5CF8091E80085FF0DC050E055 -:101BC00040E063E070E08BE594E00E940D078091B7 -:101BD000E8008E778093E8000895BC0184E00C94BF -:101BE000C30DBC0183E00C94C30D9C0184E0809381 -:101BF000E9009FEF8091E800915085FD06C085EDDA -:101C00008A95F1F700009111F5CF8091E80085FFEA -:101C10000CC050E040E066E070E0C9010E940D0792 -:101C20008091E8008E778093E8000895CF93DF934A -:101C3000EC0181E08093E9008FEF9091E800815002 -:101C400095FD06C095ED9A95F1F700008111F5CF4D -:101C50008091E80085FF14C050E040E068E070E04B -:101C6000CE010E940D078091E8008E778093E800F6 -:101C700088E0FE01A2E6B4E001900D928A95E1F7BA -:101C8000DF91CF9108959F92AF92BF92CF92DF9252 -:101C9000EF92FF920F931F93CF93DF937C015B0131 -:101CA0006A018091D10201E010E08A3010F40AE06C -:101CB00010E0C1E0D0E0F894B501C701F601099544 -:101CC000982E0E94A409911004C021960C171D079C -:101CD0006CF4892DDF91CF911F910F91FF90EF90C0 -:101CE000DF90CF90BF90AF909F900895CC9F9001D0 -:101CF000CD9F300D300D112490E080E045E34A95F2 -:101D0000F1F70000019682179307C1F7D4CF8091B5 -:101D1000A102811110C08091D80080618093D80009 -:101D20008AE18A95F1F700C08091D90080FF0AC04E -:101D300081E08093A10281E09091A102913009F0AD -:101D400080E0089582E08093A1020E94BD06109277 -:101D50006C04F1CF0E94870E882351F0E091520469 -:101D6000F0915304309721F00190F081E02D099417 -:101D700080E008951F93CF93DF93182FEB010E940B -:101D80003F0C8FE99FE00197F1F700C00000219719 -:101D9000C1F7812FDF91CF911F910C94060C4F92C8 -:101DA0005F926F927F928F929F92AF92BF92CF92EB -:101DB000DF92EF92FF920F931F93CF93DF93CDB7F4 -:101DC000DEB7CE5DD1090FB6F894DEBF0FBECDBF32 -:101DD000509070019091770490FF5DC080905D03FA -:101DE00090905E038114910409F068C0E0E3F6E08E -:101DF0009E012F5F3F4FBE0161527F4FC901A491E9 -:101E00004A2F50E0DA01AA0FBB1FA40FB51FA15A39 -:101E1000BC4FCD90DD90EC90D901CD92DD92ED924A -:101E20009D0131966A177B0751F720916F0143E0BE -:101E3000249F800D911D1124539A2BB1277F3BB114 -:101E400038605FB7F894BC01549E600D711D112479 -:101E50008617970709F08EC05FBF8FE594E0019762 -:101E6000F1F700C00000C252DF4F0FB6F894DEBF9A -:101E70000FBECDBFDF91CF911F910F91FF90EF90DB -:101E8000DF90CF90BF90AF909F908F907F906F909A -:101E90005F904F900895809171012091720133E01D -:101EA000839FF0011124E15AFC4F821708F096CF6E -:101EB0001182108212828F5F3396F7CF90FF96CFF8 -:101EC000D12CC12C66246394712C53E0452E809153 -:101ED0005C0393010C2C01C0220F0A94EAF78223C1 -:101EE00009F43FC0F601EE0FFF1FE80DF91DE59064 -:101EF000F490E114F10409F479CF45E050E0B70122 -:101F0000CE0101960E943E3509810F3F51F18A8131 -:101F1000800F9927991F8B34910514F08AE490E083 -:101F20005C01AA0CBB1C8A0D9B1DDC01A15ABC4F95 -:101F30005D01049D80011124015A1C4F0A151B05E7 -:101F400020F0B5E0EB0EF11CD8CF4D81413A08F0FE -:101F500040EA98016C818B810E940C090D5F1F4F34 -:101F6000EDCFEFEFCE1ADE0AF8E0CF16D10409F07C -:101F7000AECF3CCFFC014191CF01E8E03BB900007E -:101F800000C047FF2BB9440F000000C000C000C0D4 -:101F90002BB900C0EA9591F75BCFE7E7F4E08081C9 -:101FA0008E7F8083E9E5F3E08281816082832FEF79 -:101FB00080E792E0215080409040E1F700C00000AF -:101FC0000C94CF0EE2E3F2E086E0DF011D928A95E9 -:101FD000E9F70C94DF0B1F93CF93DF93CDB7DEB7F8 -:101FE000AA970FB6F894DEBF0FBECDBF8EE694E081 -:101FF0002091F100DC012D93CD01B4E086379B07E1 -:10200000B9F780916F04833009F471C0B8F481305E -:1020100009F448C0823009F4B4C08091E80083FF1D -:102020003CC180916E0490916F049A3008F035C1E4 -:10203000E92FF0E0E553F94C0C9431358A3009F47E -:102040008FC08B3009F470C0893039F780916E04ED -:10205000813219F78091720490917304009711F006 -:102060000297D9F68091E800877F8093E8008091FD -:10207000E80082FF37C09091F3008091F200029750 -:1020800029F48091F1008B7F813021F48091F1005F -:10209000809361048091E8008B778093E8000E9430 -:1020A0003707BBCF80916E04813A09F0B6CF80919B -:1020B000E800877F8093E800809172049091730418 -:1020C000892B61F468E082E694E070E00E94E90701 -:1020D0008091E8008B778093E8009FCF60E090E0EC -:1020E00080E0F3CF80916C048111C1CF96CF8091B5 -:1020F0006E04813A09F091CF80917204909173043B -:10210000892B09F08ACF8091E800877F8093E800CF -:102110008091E80080FFFCCF809174018093F100F2 -:102120008091E8008E77B9CF80916E04813209F0FA -:1021300074CF8091720490917304892B09F06DCF54 -:102140008091E800877F8093E8000E9437078091A4 -:1021500070048093740110925F040E94E20F5DCFBF -:1021600080916E04813209F058CF8091E800877F1A -:102170008093E8000E943707809171048093600487 -:102180004CCF80916E04813A09F047CF8091E800EE -:10219000877F8093E8008091E80080FFFCCF8091EA -:1021A0006004BCCF803899F0823809F076C0809105 -:1021B00072048F70873008F070C08093E9008091BE -:1021C000EB0085FB882780F91092E90006C080911A -:1021D0006A0490916B04911182609091E800977F5E -:1021E0009093E8008093F1001092F1008091E80054 -:1021F0008E77B5C1882309F4A2C1823009F04DC0A1 -:10220000809170048111A6C1809172048F702FEFAC -:10221000280F263008F041C08093E9002091EB00A0 -:1022200020FF98C1933031F48091EB00806280935D -:10223000EB0090C19091EB0090619093EB0021E056 -:1022400030E001C0220F8A95EAF72093EA0010924D -:10225000EA008091EB008860EACF81111EC01091E6 -:1022600070041F778091E3008078812B8093E300D6 -:102270008091E800877F8093E8000E943707809173 -:10228000E80080FFFCCF8091E30080688093E3004A -:1022900082E0111183E080936C048091E80083FF59 -:1022A0000AC08091E800877F8093E8008091EB006E -:1022B00080628093EB00AA960FB6F894DEBF0FBE43 -:1022C000CDBFDF91CF911F9108958058823028F7BC -:1022D00020917004309171042C3DE3E03E07A1F59C -:1022E00083E08A838AE289834FB7F894DE011396EC -:1022F00020E03EE051E2E32FF0E050935700E491FC -:1023000020FF03C0E295EF703F5FEF708E2F90E0EB -:10231000EA30C0F0C7968D939D932F5F243159F713 -:102320004FBF8091E800877F8093E8006AE270E009 -:10233000CE0101960E94E9078091E8008B77809397 -:10234000E800ABCFC096E7CF809172049091730400 -:10235000432F55274330510509F44AC078F54130E1 -:10236000510509F47AC08BE590E0EEEBFBE04230DA -:10237000510509F092CF2091E800277F2093E800D3 -:1023800020917404309175048217930708F49C011E -:1023900040E02115310509F065C0411163C080910D -:1023A000E80082FDC9CF80916C04882329F2853032 -:1023B00019F28091E80083FFF2CFBECF4132510580 -:1023C00009F43CC04232510509F067CF83309105D2 -:1023D00008F063CFFC01EE0FFF1FEF5DFD4F019092 -:1023E000F081E02D825E9D4FDC018C9190E01AC05F -:1023F000332721303105D1F02115310561F022302C -:10240000310509F04ACFEBE2FCE0E4918E2F90E039 -:10241000EBE2FCE007C0EDE5FCE0E4918E2F90E0FC -:10242000EDE5FCE0009709F438CFA5CFEBE4FCE044 -:10243000E4918E2F90E0EBE4FCE0F4CF8330910543 -:1024400008F02BCF880F991FFC01E95DFD4F01902B -:10245000F081E02D89E090E08ECF82E190E0E9E12B -:10246000FCE089CF80916C04882309F465CF853026 -:1024700009F462CF8091E80083FD5ECF8091E8008F -:1024800082FD8DCF8091E80080FF83CF9091F30093 -:102490008091F2002115310519F08830910550F036 -:1024A00041E0089709F040E08091E8008E77809342 -:1024B000E8006FCF44914093F100319621503109EB -:1024C0000196E8CF803809F0E8CE8091E800877F58 -:1024D0008093E80080916D048093F10087CE811194 -:1024E000DCCE10917004123008F0D7CE8091E80055 -:1024F000877F8093E80010936D040E9437071123B3 -:1025000011F084E005C08091E30087FDFACF81E0FF -:1025100080936C0442E061EC81E00E94560742E245 -:1025200061EC84E00E94560742E261EC82E00E9486 -:10253000560742E260EC83E00E945607AECE8091DF -:102540007004813009F0A9CE81E0933009F080E079 -:1025500080936B041092E9008091E800877F80935C -:10256000E8000E94370799CE1F93CF93DF93162F71 -:10257000C0917E06D0917F068A30D1F42091430429 -:10258000CE018E579440622F70E00E94FD34281BCC -:10259000822F66E00E941135C82FC15020F4DF91D0 -:1025A000CF911F91089560E080E20E94B412F5CFB0 -:1025B0008D30E9F4CE57D44020914304622F70E06F -:1025C000CE010E94FD34281B822F9E01280F311D51 -:1025D0002115324018F080E0D0E0C0E0C80FD11DD6 -:1025E000C258DB4FD0937F06C0937E06D8CF96E0CB -:1025F000FE01A4E4B4E001900D929A95E1F7803ECB -:1026000090F186E0FE0111928A95E9F7C0917E066D -:10261000D0917F06111133C046E050E0BE0184E442 -:1026200094E00E9447359E012E573440892B91F546 -:102630002A5F3F4F40914304642F70E0C9010E941C -:10264000FD34481B463010F4240F311D211572E073 -:10265000370710F030E020E022583B4F30937F06E0 -:1026600020937E069CCFF6E08F9FB0011124665820 -:10267000794F46E050E0CE010E943E35C7CF9E0123 -:102680002A5F3F4FFE012E173F0731F28081809570 -:102690008193F9CFC90145E0969587954A95E1F771 -:1026A00041E050E0BA0102C0660F771F8A95E2F759 -:1026B000CB0160917C0470917D04862B972BB9012E -:1026C0006B5F7F4FE5E076956795EA95E1F702C08D -:1026D000440F551F6A95E2F7842B952B90937D0448 -:1026E00080937C04A5CFFF920F931F93CF93DF932A -:1026F000EC01F62EFC0101900020E9F78F0101505A -:102700001109C017D10730F0DF91CF911F910F91C0 -:10271000FF9008956F2D89910E94B412F2CFE1E4E9 -:10272000F4E08083618324E630E042E050E0BF01C2 -:1027300084EB0C943432CF93C82F60E08CE00E947D -:102740008F136C2F84E00E948F1361E08CE0CF9197 -:102750000C948F131F93CF93DF93CDB7DEB762979F -:102760000FB6F894DEBF0FBECDBF96E0E4E2F3E013 -:10277000DE01179601900D929A95E1F796E0FE0121 -:102780003796DE011D9601900D929A95E1F7188516 -:10279000882309F1162B84E00E949B131E8786E094 -:1027A000FE013D96DE01119601900D928A95E1F7AA -:1027B00086E0FE013196A4E2B3E001900D928A9585 -:1027C000E1F762960FB6F894DEBF0FBECDBFDF9182 -:1027D000CF911F91089560951623E0CFCF93DF939B -:1027E000C3EED2E060E0CE010E9471352196C115A2 -:1027F00084E0D807B9F7DF91CF9108956F927F9267 -:102800008F929F92AF92BF92CF92DF92EF92FF9200 -:102810000F931F93CF93DF938AE7C82E86E0D82EBD -:1028200091ECE92EF12CE701CC58D10936011BC0FF -:10283000F50185909490692DC8010E947135682D2D -:10284000C80101960E94713582E0A80EB11C0E5F8E -:102850001F4FC017D10761F78EE0680E711C2E96CE -:10286000CE15DF0529F08E010E5011095301E0CF7E -:102870007E018CE8E80EF11C8CE8C80ED11C8DE7B7 -:10288000E81683E0F80679F6DF91CF911F910F915A -:10289000FF90EF90DF90CF90BF90AF909F908F9080 -:1028A0007F906F900895CF93C82F6FEF811161E2F1 -:1028B00083E290E00E9471356FEFC11161E184E223 -:1028C00090E00E9471356FEFC11165E285E290E002 -:1028D000CF910C94713580E00E94531460E086E241 -:1028E00090E00E9471350E94FE130E94EE1381E079 -:1028F0000C9453140F931F93CF93DF93C42FD0E006 -:10290000CC0FDD1F2EE0629FC00DD11D11243CE8CD -:10291000839FC00DD11D1124CE0187960E945D3585 -:10292000082F10E0102F0027CE0188960E945D35F9 -:102930009801282BC901DF91CF911F910F91089524 -:10294000462F853038F47A3028F4673018F4672F32 -:102950000C947A1490E080E00895CF92DF92FF9279 -:102960000F931F93CF93DF936C01009176048091B6 -:102970009202082BC7E0D0E010E0FC2EC8010C2E1C -:1029800002C0959587950A94E2F780FD0CC02197C7 -:10299000A0F7F12C8F2DDF91CF911F910F91FF9018 -:1029A000DF90CF900895B6018C2F0E94A0140E9452 -:1029B000000A019761F3EECFCF93DF93EC010E9401 -:1029C000AD14BE010E94A014DF91CF910C94000AB7 -:1029D000FC01808191810E94DC14292F2F70929537 -:1029E0009F7092509E3078F4E92FF0E0EB52F94C52 -:1029F0000C943135803F19F020F4883E20F481E0BA -:102A00000895843FE1F380E00895883EC0F3813F5C -:102A1000D1F7F5CF822F869586958695089583E226 -:102A200090E00E945D35813289F484E290E00E945A -:102A30005D35813159F485E290E00E945D3591E089 -:102A4000853209F090E0892F8170089580E0FCCFF5 -:102A5000CF92DF92EF92FF926B017C010E94F60809 -:102A6000B701A60188E090E0FF90EF90DF90CF9053 -:102A70000C948335AF92BF92CF92DF92EF92FF9288 -:102A80000F931F93CF93DF9300D00F92CDB7DEB794 -:102A9000082FF62E142FE22E8091770480FF4FC06E -:102AA000E82FE695AE2FB0E0AE5EBD4F9C919093BF -:102AB00059038E7F823009F056C0413A08F040EA4F -:102AC0009E012F5F3F4F6F2D802F0E940C09809138 -:102AD000770480FF11C02B8139814A818091710177 -:102AE0009091720153E0859FF0011124E15AFC4F4F -:102AF000891798F10E94CF0E80917804801308C046 -:102B0000809179048F1104C080917A04811729F093 -:102B100080915B03826080935B0300937804F09262 -:102B2000790410937A04EE2051F06091770470914B -:102B300078048091790490917A040E9428150F906E -:102B40000F900F90DF91CF911F910F91FF90EF9019 -:102B5000DF90CF90BF90AF90089541833083228360 -:102B60008F5F3396C5CF923039F6E2508E2F817049 -:102B7000D82EE695F0E0E55DF94FA590B490C12C14 -:102B8000BB2460917301C61608F0B4CF2C2D30E041 -:102B9000A29EC001A39E900DB29E900D112470E0E4 -:102BA0000E94FD34802FD11016C0860F4091710114 -:102BB000420F532F511D9A01220F331F240F351F2F -:102BC000215A3C4F412F113A08F040EA6F2D0E94E4 -:102BD0000C09C394D6CF861BE9CFE7E7F4E0438125 -:102BE00021E1421B08F440E021E0628181810C94E4 -:102BF0003A15E7E7F4E0438121E1420F08F44FEF93 -:102C000021E0628181810C943A15E7E7F4E062816A -:102C100021E1621B08F460E021E0438181810C9492 -:102C20003A15E7E7F4E0628121E1620F08F46FEF03 -:102C300021E0438181810C943A15E7E7F4E081813A -:102C400021E04381628188500C943A15E7E7F4E073 -:102C5000818121E043816281885F0C943A158091E3 -:102C60007B04882319F0815080937B046091770462 -:102C7000709178048091790490917A040C942815CD -:102C800080917B04833018F48F5F80937B04609184 -:102C90007704709178048091790490917A040C946F -:102CA00028159091770490FF27C0917081111DC065 -:102CB00092609093770480915B03816080935B03C3 -:102CC000662351F0609177047091780480917904C3 -:102CD00090917A040E94281520E040917A04609136 -:102CE0007904809178040C943A158C3010F0966138 -:102CF000E0CF880F982BDDCF089521E030E0A901C7 -:102D000002C0440F551F8A95E2F7CA0120915C0367 -:102D1000662391F0822B80935C0380915B0380613A -:102D200080935B0380915A03811109C080917704DD -:102D300060E086950C94511680958223ECCF08951F -:102D4000CF93DF93C82FC17082FBDD27D0F981FBC1 -:102D5000662760F985E00E947D1661E06C2786E0B9 -:102D60000E947D166D2F87E0DF91CF910C947D1628 -:102D70000F931F93CF93C82F61E08111682F61706B -:102D800080E00E947D16C1FB662760F9C11101C079 -:102D900060E081E00E947D16C2FB662760F9C111E8 -:102DA00001C060E082E00E947D16C3FB662760F9E7 -:102DB000C11101C060E083E00E947D16C4FB66275C -:102DC00060F9C11101C060E084E00E947D164C2FC3 -:102DD00050E070E060E0DB01CA01F4E0B695A79531 -:102DE00097958795FA95D1F70097A105B10549F117 -:102DF000AC01BD0184E08A019B01E2E03695279594 -:102E000017950795EA95D1F70115110521053105AB -:102E100019F08E5FB901A80176956795579547958A -:102E2000452B462B472B09F08F5F8230D1F158F4A8 -:102E30008823E9F0813059F18C2FCF911F910F91A8 -:102E4000089580E0D8CF8330A1F18430A9F720E045 -:102E500040E56FEF8AED0E943A1587E00E949B13D0 -:102E600080910001882341F3109232030DC020E0CD -:102E700040E56FEF82E30E943A15809100018823BC -:102E800099F381E0809332030E94290DD5CF20E091 -:102E900040E56FEF8CEF0E943A1585E40E949B138A -:102EA000CBCF20E040E56FEF80E50E943A1585E248 -:102EB000F5CF20E040E56FEF86E70E943A158FE1FD -:102EC000EDCF0E94B816809376040C94DF0B8091AE -:102ED0007604982F9670963019F488600C946117D8 -:102EE000877FFCCF21E030E001C0220F8A95EAF70E -:102EF00020958091760482230C94611721E030E0C4 -:102F000001C0220F8A95EAF780917604822B0C94F7 -:102F10006117809177048695815009F48BE061E018 -:102F20000C9451168091770486958F5F8C3008F051 -:102F300081E061E00C9451168091770480FF07C016 -:102F4000869582588F77893010F40C94921761E03F -:102F500082E00C945116E7E7F4E083E0808311826D -:102F60008FEF828380EA83831482A9E5B3E012960F -:102F70008C911297836012968C936081718182810B -:102F800093810C942815AB01BC0188E190E00C946E -:102F90008335CF93C82FEFE3F4E0982F990F990F63 -:102FA000990F80818770892B8083E0E4F4E09C2F67 -:102FB0009295969597708081887F892B8083609108 -:102FC0003D0470913E0480913F04909140040E9422 -:102FD000C3176C2F82E0CF910C948F13EDE3F4E0D4 -:102FE00089E88083118282818C7F828360913D0495 -:102FF00070913E0480913F04909140040C94C3175B -:10300000EDE3F4E080818E7F808360913D047091D8 -:103010003E0480913F04909140040C94C317EDE36B -:10302000F4E080818160808360913D0470913E0472 -:1030300080913F04909140040C94C31769EE7EEF99 -:1030400090E080E00E948F3560E082E090E00E9496 -:10305000713560E083E090E00E9471351092920239 -:1030600060E084E090E00E94713560E082E290E0F0 -:103070000E94713560E085E090E00E94713560E06B -:1030800086E090E00E9471356FEF87E090E00E944B -:10309000713540E050E0BA0188E090E00E9483354D -:1030A00060E08DE090E00E94713540E050E0BA01B0 -:1030B00088E190E00E94833560E087E190E00E9423 -:1030C000713540E050E0BA018CE190E00E94833518 -:1030D00070E060E080E290E00E948F350E94EE1781 -:1030E00080E00E9453140E946B1440E050E0BA014B -:1030F0008FE090E00E94833540E050E0BA0183E128 -:1031000090E00C9483350F931F93CF93DF9300D0FF -:1031100000D0CDB7DEB74091C5025091C602609194 -:10312000C7027091C8022FB7F8948091570490910C -:103130005804A0915904B0915A042FBF841B950BD9 -:10314000A60BB70B84369105A105B10588F10E9445 -:10315000870E882379F10E944A086E5F7F4F8F4F58 -:103160009F4F69837A838B839C8380912C019091FC -:103170002D0181559D4F40912B0150E04530510567 -:1031800010F044E050E0BE016F5F7F4F0E94543565 -:1031900084E090E00E944934892BD9F40E944A08C7 -:1031A0006093C5027093C6028093C7029093C802D1 -:1031B00081E010C00E944A080091D2021091D3020F -:1031C0002091D4023091D502600F711F821F931F8E -:1031D000C4CF80E00F900F900F900F90DF91CF91B0 -:1031E0001F910F9108958F929F92AF92BF92CF92AD -:1031F000DF92EF92FF920F931F93CF93DF93EB0138 -:1032000088809980AA80BB809FB7F894C0905704AB -:10321000D0905804E0905904F0905A049FBFC81809 -:10322000D908EA08FB0894E6C916D104E104F104C0 -:1032300010F4442311F1E82E082E000CFF089AE048 -:103240008902F0011124EF5FFE4F83819481815543 -:103250009D4F428150E00417150708F4A801B901F9 -:103260000E945435C7010E944934892BA1F40E9461 -:103270004A08688379838A839B8381E0DF91CF91B9 -:103280001F910F91FF90EF90DF90CF90BF90AF9084 -:103290009F908F90089580E0F1CF0F931F93CF936D -:1032A000DF930F92CDB7DEB780914E0489832091D2 -:1032B000C40290E041E02817190609F440E001E05B -:1032C00010E09E012F5F3F4F6DEC72E086E00E94A0 -:1032D000F3180F90DF91CF911F910F9108950F93E5 -:1032E0001F93CF93DF93CDB7DEB729970FB6F8942E -:1032F000DEBF0FBECDBF85E0E7E7F4E0DE0111964B -:1033000001900D928A95E1F78091590390915A03AB -:10331000A0915B03B0915C038E839F83A887B987DC -:1033200041E08885811101C040E009E010E09E0184 -:103330002F5F3F4F69EC72E085E00E94F318811126 -:1033400010925B0329960FB6F894DEBF0FBECDBF77 -:10335000DF91CF911F910F9108956F927F928F927D -:103360009F92AF92BF92CF92DF92EF92FF920F9314 -:103370001F93CF93DF930F92CDB7DEB7862E5A01FE -:103380006901682E880F7708C3010E944934892B90 -:1033900009F088C08AE0869DF001879DF00D112418 -:1033A000EF5FFE4F458150E04115510511F041E0BE -:1033B00050E08AE0869DF001879DF00D1124EF5FBB -:1033C000FE4F6681778161557D4FCE0101960E9447 -:1033D0005435F50140815181628173812FB7F89492 -:1033E0008091570490915804A0915904B0915A04C7 -:1033F0002FBF841B950BA60BB70B84369105A10537 -:10340000B10540F4B701C8010E94DB089981891712 -:1034100009F44FC0082C000C9908C4010E944934DB -:10342000892B91F0B12C8B2D0F90DF91CF911F91B3 -:103430000F91FF90EF90DF90CF90BF90AF909F9053 -:103440008F907F906F9008958AE0889DF001899D0C -:10345000F00D1124EF5FFE4F458150E0E416F506B4 -:1034600008F4A7018AE0889DF001899DF00D1124E0 -:10347000EF5FFE4F6681778161557D4FC6010E94E7 -:103480005435B701C8010E94DB0899818913CACF5E -:103490000E944A08F5016083718382839383BB2471 -:1034A000B394C1CFB12CA701B801C6010E94543515 -:1034B000BACFBB24B394F7CFCF92DF92EF92FF92B3 -:1034C0000F931F93CF93DF9300D000D00F92CDB70F -:1034D000DEB76B0185E0E82EF12C00EB12E09E01D7 -:1034E0002F5F3F4F47EA52E061E080E00E94AD1954 -:1034F000882349F095E0FE013196A2EAB2E00190FE -:103500000D929A95E1F795E0E2EAF2E0D60101909A -:103510000D929A95E1F70F900F900F900F900F90EA -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:10353000089590E080E00E946B35893E9E4F11F423 -:103540000C940F1580E008951F920F920FB60F9202 -:1035500011242F933F934F935F936F937F938F9398 -:103560009F93AF93BF93CF93DF93EF93FF93D0914C -:10357000E900DF708091EC00C82FC17080FDC0E8C9 -:103580001092E9008091F000877F8093F00078949A -:103590000E94EB0F1092E9008091F0008860809308 -:1035A000F000CD2BCF70C093E900FF91EF91DF9138 -:1035B000CF91BF91AF919F918F917F916F915F91CB -:1035C0004F913F912F910F900FBE0F901F90189524 -:1035D0001F920F920FB60F9211242F933F934F9388 -:1035E0005F936F937F938F939F93AF93BF93EF936B -:1035F000FF938091E10082FF09C08091E20082FF89 -:1036000005C08091E1008B7F8093E1008091DA001A -:1036100080FF24C08091D80080FF20C08091DA0014 -:103620008E7F8093DA008091D90080FF9BC080E17B -:1036300089BD82E189BD09B400FEFDCF81E08093A0 -:103640006C0480915E04811109C00E94BD060E9435 -:1036500088078091E20084608093E2008091E1001D -:1036600080FF17C08091E20080FF13C08091E200CC -:103670008E7F8093E2008091E20080618093E2007F -:103680008091D80080628093D80019BC85E0809337 -:103690006C048091E10084FF29C08091E20084FFE6 -:1036A00025C080E189BD82E189BD89B5982F9170DF -:1036B00080FFFBCF8091D8008F7D8093D8008091D0 -:1036C000E1008F7E8093E1008091E2008F7E809305 -:1036D000E2008091E20081608093E20080916D04BD -:1036E000882309F445C084E080936C048091E10054 -:1036F00083FF27C08091E20083FF23C08091E10017 -:10370000877F8093E10082E080936C0410926D04C7 -:103710008091E1008E7F8093E1008091E2008E7FB6 -:103720008093E2008091E20080618093E20042E0B9 -:1037300060E080E00E9456078091F00088608093EE -:10374000F000FF91EF91BF91AF919F918F917F9189 -:103750006F915F914F913F912F910F900FBE0F90FE -:103760001F90189519BC10926C0410925E0476CFCD -:103770008091E30087FD93E090936C04B7CF789439 -:103780001F921FB61F9211248F939F93AF93BF93E5 -:103790008091570490915804A0915904B0915A0413 -:1037A0000196A11DB11D8093570490935804A093D6 -:1037B0005904B0935A04BF91AF919F918F911F907C -:1037C0001FBE1F9018959C014FB7F8948091570425 -:1037D00090915804A0915904B0915A044FBF821B94 -:1037E000930B08952FB7F894809157049091580443 -:1037F000A0915904B0915A042FBF08955F926F921F -:103800007F928F929F92AF92BF92CF92DF92EF9270 -:10381000FF920F931F93CF93DF9300D000D00F92AE -:10382000CDB7DEB77C01FC0183819481892B31F017 -:103830008081918189238F3F09F08CC60F900F9072 -:103840000F900F900F90DF91CF911F910F91FF90EC -:10385000EF90DF90CF90BF90AF909F908F907F9030 -:103860006F905F9008950E94AD14182F682F898182 -:103870009A810E94B30B69817A81812F0E94A014E2 -:103880008C01F7018281882361F0F801E65EFC4536 -:10389000ED30F10530F4ED51F94C0C9431350E94C6 -:1038A0000F18D0903D04D0FE1CC08D2D86958370DE -:1038B000F7019281992309F460C1823090F4B70135 -:1038C000C8010E949908882361F0D694D694D694B2 -:1038D00080913E0483708295880F807E8D290E949E -:1038E0009B13F7018281882309F429C6C8018251FC -:1038F0009F45409708F0ECC58FEF93E00E945D353F -:10390000025193EEA92E92E0B92E811197CF0111A9 -:1039100038C11C821B82662463948AE0582E85017C -:103920000F5F1F4FC5010E945D3589831A8288236E -:1039300009F484CF9FEF980F933008F031C18A8348 -:10394000698232E0A30EB11CC8010E945D358B83F1 -:10395000882309F473CF8E010F5F1F4FF801208178 -:103960002223E9F2213009F055C191818281913001 -:1039700009F018C10E5F1F4F6AE070E0893311F43F -:1039800060E570E00E94BA0E13C10E94001889CF52 -:1039900080913D0480FF0DC00E94001860913D049D -:1039A00070913E0480913F04909140040E94C3179F -:1039B00078CF0E940F18F2CF0E94EE1772CF90912D -:1039C0003D04892F86958F5F8370880F997F892B9F -:1039D00080933D04982F9670963001F7897F8093ED -:1039E0003D04DCCF90913E04892F8B7F92FF846051 -:1039F00080933E04D3CF80913D04982F9695969561 -:103A0000969580913E0483708295880F807E892BE5 -:103A10008C3798F48F5F282F220F220F220F90915E -:103A20003D049770922B90933D0482958695837008 -:103A300090913E049C7F892BDBCF81E0ECCF80917D -:103A40003D04982F96959695969580913E048370A7 -:103A50008295880F807E892B11F08150DCCF8BE717 -:103A6000DACF30913E04932F9695969596952091B6 -:103A70003F04822F83708295880F807E892B90E08F -:103A80000196482F440F440F440F3770342B309366 -:103A90003E0435E0969587953A95E1F783702C7F43 -:103AA000822B80933F047ACF30913E04932F9695DA -:103AB0009695969520913F04822F83708295880F6A -:103AC000807E892B8150990BDCCF80913F0482FF4F -:103AD00012C08B7F80933F0460913D0470913E043F -:103AE00080913F04909140040E94C31760E081E000 -:103AF0000E948F13D6CE846080933F0460913D0472 -:103B000070913E0480913F04909140040E94C3173D -:103B100060E08CE00E948F1364E182E00E948F13CA -:103B200065E081E00E948F1361E08CE0E1CF80913D -:103B30003F04982F9695969596958091400482958E -:103B4000880F807E892B883720F4865F0E94C917F2 -:103B5000A8CE88E7FBCF80913F04982F9695969545 -:103B60009695809140048295880F807E892B8431C0 -:103B700010F08A50EBCF84E1E9CF882309F4B1CE6D -:103B80009ECEA114F4E0BF0609F458CEC5010E94F0 -:103B90005D35811101C001502FEFA21AB20AB7CED4 -:103BA0005801D9CE923039F40E5F1F4F0E943F0C5E -:103BB0000F5F1F4FD3CE933029F40E5F1F4F0E942B -:103BC000060CF6CF943019F00F5F1F4FF1CF0E5F48 -:103BD0001F4F30E020E0B8016F5F7F4FF801418157 -:103BE0008053990B8A30910550F02150310900F330 -:103BF0008FE99FE00197F1F700C00000F6CF529ED9 -:103C0000F001539EF00D11249C012E0F3F1F842FB5 -:103C10008B01E1CFE22FF0E0EF51FE4F7490822F45 -:103C200086958695869590E0FC01EF52FE4FE490D4 -:103C30002770F12C022E02C0F594E7940A94E2F763 -:103C4000E1E0EE22FF24FC01EF53FE4FC490D12CA3 -:103C5000022E02C0D594C7940A94E2F7F1E0CF2275 -:103C6000DD24FC01EF54FE4F8490912C02C095940A -:103C700087942A95E2F721E082229924E114F10445 -:103C800019F081EE0E943F0CC114D10419F086EEA8 -:103C90000E943F0C39E36AE070E0731202C060E5F5 -:103CA00070E0872D0E94BA0ECD2819F086EE0E9492 -:103CB000060CEF2819F081EE0E94060C892809F401 -:103CC00077CF6AE070E08CE25DCE81E00E947E17E3 -:103CD00003C081E00E9472170F900F900F900F9019 -:103CE0000F90DF91CF911F910F91FF90EF90DF9098 -:103CF000CF90BF90AF909F908F907F906F905F908C -:103D00000C94671782E0E2CF043F110509F455C116 -:103D100008F057C1053E110509F4DDC0F701928195 -:103D200091113CC280915F0482720A3CFCE51F073E -:103D300009F414C208F06AC1053C3CE5130709F414 -:103D4000F9C108F04EC1033C5CE5150709F4D3C185 -:103D500008F0EBC1023C1C4509F47DC1F70100816C -:103D60001181992309F434C2C8010E94AD14D82EE0 -:103D7000682FC8010E94B30BB8018D2D0E94A014BA -:103D80000E94000A182FB82EF70122814581342F96 -:103D900032953F70892F82958F70C82ED12C8C3030 -:103DA00008F04EC2F601E051F94C0C94313503385D -:103DB000FFE51F0709F481C018F501383FE5130737 -:103DC00009F44AC008F065C000385FE5150709F03E -:103DD000A5CF882309F459C080919C02811106C0A7 -:103DE00081E080939C0282EE0E943F0C0E94F21BB5 -:103DF00090939B0280939A028BE20E943F0C8ECF9D -:103E000005389FE5190709F4BEC008F476C00638E6 -:103E1000FFE51F0709F082CF882309F4CEC0609127 -:103E2000590170915A0190E080E00E94AA3520E08B -:103E300030E040E05CE30E940B3620E030E040E8F8 -:103E40005FE30E94A5358111B5C080EE90E09093AC -:103E50005A0180935901A1C08823A1F080919C024E -:103E6000811106C081E080939C0282EE0E943F0C8B -:103E70000E94F21B90939B0280939A0281EE0E9413 -:103E80003F0CBACF81EE0E94060C8BE20E94060C1A -:103E900045CF882309F442CF81EE0E943F0C83EE88 -:103EA0000E943F0C8FE40E943F0C8FE40E94060C9E -:103EB00083EE0E94060C81EEE9CF882309F42ECF11 -:103EC00081EE0E943F0C83EE0E943F0C80E50E9431 -:103ED0003F0C80E5EBCF80933C0210933B020093B4 -:103EE0003A02882321F081E08093EE0217CF1092EE -:103EF000EE0214CF80933902F0CF882379F18091BC -:103F00003902882349F080913A020E94060C80EE23 -:103F10000E943F0C8AE20CC080913C028823D1F3BE -:103F200080913A020E94060C80EE0E943F0C8CE4C5 -:103F30000F900F900F900F900F90DF91CF911F91E6 -:103F40000F91FF90EF90DF90CF90BF90AF909F9038 -:103F50008F907F906F905F900C943F0C8AE20E944C -:103F6000060C8CE40E94060C80EE0E94060C8091E8 -:103F70003902811105C080913C02882309F45ECC8E -:103F800080913A02D5CF8823C1F0809132038823F3 -:103F900039F010923203109200010E94290DBECE1A -:103FA000809100018111F7CF81E0809332038093EB -:103FB0000001F3CF80E890E04ACF61E00E94AA13AD -:103FC000ADCE62E0FBCF64E0F9CF882321F081E041 -:103FD0008093ED02A3CE1092ED02A0CE1092F002DB -:103FE0009DCE073C2CE5120709F4AEC008F4A7C02B -:103FF000083C4CE5140709F4ACC0093C1C4509F029 -:10400000ADCE4DEE55E169EF75E179C0043DECE5CB -:104010001E07A8F40E3CFCE51F0708F00FCC0C3C73 -:104020002CE5120709F49FC04FE256E160E476E107 -:104030000D3C1C4508F463C061E081E046C0053DCD -:104040004CE5140709F4FACB08F492C00D351D4570 -:1040500009F4F4CB83CE8091770480FF31C08E7F4A -:10406000809377046091770470917804809179044B -:1040700090917A040E94281580915B03816080935F -:104080005B039FEFE0E7F2E09150E040F040E1F7A2 -:1040900000C000000F900F900F900F900F90DF91D5 -:1040A000CF911F910F91FF90EF90DF90CF90BF9035 -:1040B000AF909F908F907F906F905F900C94CF0EF9 -:1040C00081608093770461E086950F900F900F9048 -:1040D0000F900F90DF91CF911F910F91FF90EF9074 -:1040E000DF90CF90BF90AF909F908F907F906F9018 -:1040F0005F900C94511649E857E162E977E10F901F -:104100000F900F900F900F90DF91CF911F910F9113 -:10411000FF90EF90DF90CF90BF90AF909F908F90E7 -:104120007F906F905F900C94F10842E957E169E845 -:1041300077E1E5CF4DE156E166E276E1E0CF46E298 -:1041400056E16DE176E1DBCF45E056E161E176E1F4 -:10415000D6CF41E156E165E076E1D1CF49EF55E1B7 -:104160006DEE75E1CCCF40E456E16FE276E1C7CF6A -:104170000F900F900F900F900F90DF91CF911F91A4 -:104180000F91FF90EF90DF90CF90BF90AF909F90F6 -:104190008F907F906F905F900C949C170E3D1C4504 -:1041A00009F0DCCD0F900F900F900F900F90DF91E2 -:1041B000CF911F910F91FF90EF90DF90CF90BF9024 -:1041C000AF909F908F907F906F905F900C941E188F -:1041D000C8010E948B0BD82ECFCD092F0F70907F76 -:1041E00011F00295007F812F2223C9F0002369F08E -:1041F00090E2910F983010F011110BC080915F0484 -:10420000082B00935F040E946A0B812F0E943F0CD1 -:1042100017C080919102082B00939102F4CF0E9465 -:10422000060C002369F00095105E183010F0B110F4 -:1042300027C080915F04082300935F040E946A0BEB -:1042400098E0C91AD108E4E0CE16D10408F0F6CA05 -:104250000E94AA0E0F900F900F900F900F90DF9179 -:10426000CF911F910F91FF90EF90DF90CF90BF9073 -:10427000AF909F908F907F906F905F900C94A0165E -:1042800080919102082300939102D8CF892F8F70DB -:10429000907F903211F08295807FF1E0BF120CC0C8 -:1042A000222329F0333060F60E94FC0BC9CF323054 -:1042B00038F60E94F10BC4CF222341F03323A1F33F -:1042C00040FFA3CF4F70F7014583EECF332389F32F -:1042D000193309F0F5C0FFEF27EE33E0F15020402D -:1042E0003040E1F700C00000812F0E94060CA8CFEB -:1042F000892F86958695837061F0813009F0A0CF73 -:10430000812F9370211102C090E080E00E94560836 -:1043100097CF812F9370211102C090E080E00E941E -:104320006C088ECF892F8370A1F5211189CF812F41 -:10433000829586958770880F880F412F4F70082EC1 -:1043400001C0440F0A94EAF7212F207114FF07C01F -:104350002FE030E001C0220F8A95EAF7209596956C -:1043600096959370923081F0822F842B933030F4A5 -:1043700080919202913029F0242B82230E94ED0B30 -:104380005FCF842B822BFACF242B8091920282273D -:10439000F5CF8695222311F0892F8170882309F4A7 -:1043A0004FCF812F829586958770880F880F412F78 -:1043B0004F70082E01C0440F0A94EAF7212F207194 -:1043C00014FF07C02FE030E001C0220F8A95EAF702 -:1043D0002095969596959370923081F0822F842B3C -:1043E000933030F480917604913029F0242B82238D -:1043F0000E94611725CF842B822BFACF242B80912A -:1044000076048227F5CF092F0F70222329F0802F01 -:104410000E947E17812F48CF812F0E94F10B802FA1 -:104420000E9472170DCF812FE1EF1E1789F1E1175E -:1044300050F0F0EF1F17B9F02223B1F13111E5CEA2 -:10444000892F8F7129C042EF141749F153EF1513CB -:10445000F3CF80E0222361F29F7181E001C0880FD9 -:104460009A95EAF7C5CF222379F0323008F0E8CEEA -:10447000292F2F7181E090E001C0880F2A95EAF77B -:10448000909176048927B4CF333008F0D9CEF0CF9D -:10449000892F8F71222321F20E947E17D1CE892F7E -:1044A0008F712223C9F3BCCF332379F0893341F4D0 -:1044B0008FEF97EEE3E081509040E040E1F712CFBC -:1044C0008FE39CE90197F1F70DCF892F8F71A8CF6A -:1044D0000031FFE51F0709F4F8CB01312FE5120782 -:1044E00009F410CC0E944A086093F5027093F6021A -:1044F0008093F7029093F802F7018281063F11053D -:1045000009F461CD08F053CC043E110509F45DCDEA -:1045100008F0FACB003E110509F457CD013E110514 -:1045200009F4E8CC0C32110509F0F8CB882309F422 -:1045300055CD81E08093F00210926701EFCB0031FE -:104540003FE5130709F4C5CB01314FE51407A1F688 -:1045500082E0C0CB85E0DE01119601900D928A9534 -:10456000E1F7F701228189819A8121117CC90E949A -:104570008B0B182F80C91F93CF93DF9380915D021F -:10458000807FA9F480915A02882389F080918F025C -:10459000D0915E026091580270915902A0915B0225 -:1045A000B0915C02C62FC72316E0D81304C0DF9178 -:1045B000CF911F91089590E0109711F0CF3F19F41B -:1045C00001968770F2CF189F9001199F300D11242A -:1045D000F901E15AFD4F41814713F2CF4081461363 -:1045E000EFCF42814111ECCF438154814A1B5B0BD9 -:1045F000403A510528F780915D028F708061809369 -:104600005D02F901EC59FD4F80818F7080618083DC -:1046100088E592E00E94FE1BDF91CF911F910C94E0 -:10462000810BAF92BF92CF92DF92EF92FF920F93E6 -:104630001F93CF93DF93CDB7DEB761970FB6F89492 -:10464000DEBF0FBECDBF8C0185E0F801DE011D96F7 -:1046500001900D928A95E1F7F801E28088E5A82E95 -:1046600082E0B82E60915B0270915C026115710569 -:1046700009F432C19091580240915902892F842344 -:104680008F3F09F429C120813181C380D480F0900B -:104690005A02F601E61BF70BFF2009F4E8C08091EF -:1046A0005D02582F507FE03AF10508F0ABC0511180 -:1046B00077C0FE2C431321C092131FC0E1101DC010 -:1046C0008F70806180935D02C5010E94FE1B809106 -:1046D0005D02F80185838F2D61960FB6F894DEBFD9 -:1046E0000FBECDBFDF91CF911F910F91FF90EF9043 -:1046F000DF90CF90BF90AF900895CD2829F0822F02 -:1047000083238F3F09F003C180E0F82FF170DF2E83 -:1047100080FF3CC080918F0240915E0256E084137E -:1047200015C02D873E878D859E850E94DC14292F1C -:1047300022952F702230F0F0243018F59F70F1F0A0 -:10474000F8019581907FD1F4D12C1EC090E0589F44 -:10475000F001599FF00D1124E15AFD4F618136138C -:1047600006C06081261303C06281E6120FC0019665 -:104770008770D5CF9F7011F0882331F3805E883029 -:1047800018F3C8010E94FE1BFD2CA5CFEE2009F4F2 -:10479000A2CF80915D02816080935D02F12C9BCF5E -:1047A000431306C0921304C0F801EE2009F479C047 -:1047B000C8010E94E814882309F1EE20F9F08091E5 -:1047C0005D02803270F02091580230915902388792 -:1047D0002F831986DB86CA868C87CE0107960E94B6 -:1047E000FE1B86E0F801A8E5B2E001900D928A95E3 -:1047F000E1F70E94BB22FF24F3946DCFC8010E9411 -:10480000FE1BF9CF51110AC088E592E00E94FE1B01 -:1048100086E0F50111928A95E9F7C0CF43130FC0E6 -:1048200092130DC0E1100BC0F8018583C8010E94EE -:10483000FE1B86E0F50111928A95E9F74CCFC8017D -:104840000E94E8148823D1F2EE20C1F280915D022B -:10485000803238F220915802309159023A832983EC -:104860001B82DD82CC828E83CE010196B8CFE03AE6 -:10487000F105F8F6FE2CEE2009F243131FC0921347 -:104880001DC080915D0280FD10C0982F907F69F05F -:10489000F8018583903F31F0982F907F905F8F7063 -:1048A000892B8583C8010E94FE1B86E0F801A8E5DC -:1048B000B2E001900D928A95E1F70DCFC8010E94F8 -:1048C000E81481118ECF80915D02816080935D023A -:1048D000C8010E94FE1BFFCEEE2009F48FCFC80155 -:1048E0000E94E814F82E882309F488CF86E0F801A6 -:1048F000A8E5B2E001900D928A95E1F78091580207 -:10490000909159020E94DC140E94BB22E4CE81E007 -:104910008E25FBCE1F93CF93DF93CDB7DEB767977E -:104920000FB6F894DEBF0FBECDBF4B8B5C8B6D8B8B -:104930007E8B8F8B6111109291021A8A198A85E001 -:10494000FE017396DE011D9601900D928A95E1F7A6 -:1049500086E0FE013D96DE01179601900D928A9544 -:10496000E1F7CE0107960E941123882389F016E013 -:1049700080918F0290915E0289134BC067960FB6AB -:10498000F894DEBF0FBECDBFDF91CF911F91089588 -:1049900086E0FE013796DE01119601900D928A9510 -:1049A000E1F78A859B85892B11F38F81988589236F -:1049B0008F3FE9F220915E0230E0C90101968770D5 -:1049C000992740918F024817190681F410925F04CD -:1049D0000E94E20F10925E0210928F0286E0E8E5DC -:1049E000F2E0DF011D928A95E9F7C1CF96E0929F30 -:1049F000D001939FB00D1124A15ABD4FFE013196F5 -:104A000001900D929A95E1F780935E020E94810BCE -:104A1000AECF819FC0011124815A9D4F0E94112366 -:104A2000882309F4ABCF80918F0290E001968770C4 -:104A3000992780938F029CCF9F92AF92BF92CF9283 -:104A4000DF92EF92FF920F931F93CF93DF93CDB737 -:104A5000DEB764970FB6F894DEBF0FBECDBF8E01F0 -:104A60000F5F1F4F8AE0D8011D928A95E9F79EE4F7 -:104A7000C92E91E0D92EF12CE12CAA24A394B12CBB -:104A8000F60181916F018F3F09F44AC0F894E82F35 -:104A9000E295EF70F0E021A18F70A50102C0440FF4 -:104AA000551F8A95E2F7CA01922F982B91A392A1E4 -:104AB0008095892382A30E94A40900C0E7E4F1E065 -:104AC00030E020E0912C41914F3F09F47DC0A42FAC -:104AD000A295AF70B0E090968C9190E04F7002C0BC -:104AE000959587954A95E2F780FD6EC08A2D022E36 -:104AF00001C0880F0A94EAF7982A2F5F3F4F2730AA -:104B0000310509F7F601319780818F3F11F00E943E -:104B1000A60950EA5A95F1F7F801EE0DFF1D9082B3 -:104B20008FEFE81AF80A95E0E916F10409F0A8CF2A -:104B30004AE050E0B80188ED92E00E9447357C01E0 -:104B4000892B41F08AE0F801A8EDB2E001900D92C6 -:104B50008A95E1F71091E302E114F104B9F181E0E3 -:104B6000809395020E94F21B90939402809393028B -:104B700080919302909194020E94E31B069770F03B -:104B8000A8EDB2E0E12FF0E0E15BFC4F8D91819365 -:104B900022E0AD3DB207D1F71092950281E090E09E -:104BA000EF28C1F064960FB6F894DEBF0FBECDBFFC -:104BB000DF91CF911F910F91FF90EF90DF90CF90F9 -:104BC000BF90AF909F90089580E096CF809195021E -:104BD0008111CECF0E94870EB82EE091E302882388 -:104BE00009F4C7C08E01005F1F4F85E0D8011D92F8 -:104BF0008A95E9F7F0E09F01215B3C4F79018091B4 -:104C0000D102AE014B5E5F4F6A018A3008F086C068 -:104C10004CE55AE1B801C7010E94430E882309F40C -:104C200094C04DE857E2B801C7010E94430E8823A3 -:104C300009F48BC043E858E1B801C7010E94430E54 -:104C4000882309F482C04FE659E1B801C7010E94E8 -:104C5000430E882309F479C04DE459E1B801C70136 -:104C60000E94430E882309F470C01092D102E09193 -:104C7000E202F0E0AF01415B5C4FD80110E0FA01C5 -:104C80009191AF018D91981731F09F012150310919 -:104C9000F90180831B2DCA16DB0689F780919C02DF -:104CA000882371F080919A0290919B020E94E31BED -:104CB000893E934028F082EE0E94060C10929C02DE -:104CC00088E9C82E82E0D82EF12CE12CD6018D91F6 -:104CD0006D018823D1F08695F70109F447C0EC50A7 -:104CE000FE4F808191819C878B871D860E94F21BDD -:104CF0008160782F9F878E87F601319710824B85D0 -:104D00005C856D858F850E948A24B2E0EB0EF11CD4 -:104D1000E4E0EE16F104D1F6812F44CF80919602A3 -:104D2000909197020E94E31B843F914008F070CF5E -:104D3000A091E202B0E0A15BBC4FF8011D9211927C -:104D4000CE16DF06D9F71B2DA9CF8091D1028F3F58 -:104D500031F08F5F8093D1028A3008F488CF0E94AF -:104D6000F21B9093970280939602E2CFE051FE4FA0 -:104D7000B8CFF0E0E15BFC4FF89485E0A0EBB2E047 -:104D800001900D928A95E1F765E070E080EB92E08A -:104D90000E94DB088093AF020E94A409F894E0917E -:104DA000EB02F0E0E851FD4F80818B878093B602E3 -:104DB00061E070E0CE010B960E94DB088093B502A3 -:104DC0000E94A409F894C090B702D090B802E09075 -:104DD000B902F090BA0280919D0290919E02A0913A -:104DE0009F02B091A002C816D906EA06FB06D1F0D0 -:104DF000C0929D02D0929E02E0929F02F092A00289 -:104E00000E94870E81110EC00E944A08C61AD70A56 -:104E1000E80AF90AC092D202D092D302E092D402F8 -:104E2000F092D5020E94A409F8948091C2028823CE -:104E300021F184FF04C09091C30290935C0380FF32 -:104E40000DC08091BB0280FF25C0909177049160D6 -:104E50009093770460E086950E9451168091C2027B -:104E600081FF09C020E04091BE026091BD028091A7 -:104E7000BC020E943A151092C2020E94A409F89442 -:104E80008091C402882349F00E949B0D0E94A409CE -:104E900080E088CE0E94CD0FE1CF0E94800DF6CF3A -:104EA000EF92FF920F931F93CF93DF9300D000D028 -:104EB0000F92CDB7DEB7162FE82EF12CC701880F61 -:104EC000991F662339F18C509E4FFC01808191819E -:104ED0009A83898301E00B830E94F21B8160782F03 -:104EE0009D838C83F701E856FD4F0127110F102B8E -:104EF000108349815A816B818D810F900F900F90A3 -:104F00000F900F90DF91CF911F910F91FF90EF9035 -:104F10000C948A2480519E4FD8CFCF92DF92EF928B -:104F2000FF920F931F93CF93DF930F92CDB7DEB70E -:104F3000EE24E394F12C06EB12E09E012F5F3F4F2D -:104F40004BEA52E063E082E00E94AD19082F88230B -:104F500021F1C090E5028C2D90E09C0128513D4F3D -:104F600079011981F9018081181BD12E80E00AC0D6 -:104F7000DA94F70180818F5F808360E08C2D0E943E -:104F80005027802F1D14A4F3912F17FD90E0191BBB -:104F900011110EC081110E94680B802F0F90DF91BC -:104FA000CF911F910F91FF90EF90DF90CF900895D8 -:104FB0001F5FF70180818150808361E08C2D0E940A -:104FC0005027802FE5CF1F921FB61F9211248F9379 -:104FD0009F93AF93BF9380915604811113C080912A -:104FE000570490915804A0915904B0915A044196E5 -:104FF000A11DB11D8093570490935804A0935904A8 -:10500000B0935A04BF91AF919F918F911F901FBE93 -:105010001F901895CDB7DEB7E9970FB6F894DEBFAD -:105020000FBECDBF84B7877F84BF0FB6F894A89515 -:1050300080916000886180936000109260000FBED4 -:1050400080E890E00FB6F89480936100909361003F -:105050000FBE85B7806885BF85B7806885BF82EA47 -:1050600099E090932F0280932E020E94BD060E9429 -:1050700088078091E20084608093E20078948091B8 -:105080006C048823A1F01091E9001F709091EC004E -:10509000892F817090FD80E8182B1092E900809193 -:1050A000E80083FD0E94EB0F1F701093E90082E07F -:1050B00084BD93E095BD9AEF97BD80936E001092EA -:1050C000D2021092D3021092D4021092D5020E9402 -:1050D0000F15811102C00E946B140E94870E8093ED -:1050E000580180915801882309F4C6C010926F01BD -:1050F00085E2809370010E94870E81110E943C33EB -:105100008091580181112FC0FE01359686E0DF01A4 -:105110001D928A95E9F786E6898387E98A8386EC7A -:105120008B8384E38C8385E38D833497AEE4B1E095 -:10513000CE010B9621912D938E179F07D9F787E00B -:10514000E5E7F1E0DE01919601900D928A95E1F795 -:10515000FE01B196A7E4B1E0CE01889621912D938E -:105160008E179F07D9F78091580195E0811190E043 -:105170009093E30285E0891B8093E2020EE411E044 -:10518000A3E5EA2EA1E0FA2EF80181918F018F3F6D -:1051900011F00E94A609E016F106B1F707E411E04C -:1051A000FEE4EF2EF1E0FF2ED8018D918D018F3FAF -:1051B00011F00E94A609E016F106B1F7E8EDF2E061 -:1051C00082EE92E0AFE4B3E011921D928E179F073A -:1051D000D9F70E94991A811102C00E941E1882E01C -:1051E00090E00E945D358093440384E090E00E944B -:1051F0005D35182F82E290E00E945D35982F812F57 -:105200009093D7028093D6020E941C25EFE7FBEB18 -:105210003197F1F700C000000E941C2580914F03D8 -:1052200080FF2EC06FEF7FEF90E080E00E948F350F -:1052300081E08093E00080E28093D8001092C90062 -:105240008FE19EE40197F1F700C0000087E090EB4A -:10525000DC018093800690938106A0938206B09330 -:10526000830688E19CE00FB6F894A89580936000CF -:105270000FBE90936000FFCF85E280936F0139CF1E -:1052800083E090E00E945D350E94ED0B80917604F2 -:105290000E94B8160E94991A811102C00E941E181D -:1052A00088E190E00E94653560933D0470933E0470 -:1052B00080933F0490934004672B682B692B11F473 -:1052C0000E94EE170E943D3167E081E00E948F133B -:1052D00065E586E10E948F1363E687E10E948F13E4 -:1052E00060EA8AE10E948F1369E98BE10E948F13C3 -:1052F00065EF8CE10E948F1360EA8DE10E948F13AD -:1053000060E38EE10E948F1366E083E00E948F13BA -:1053100061E08CE00E948F1360E081E00E948F13B7 -:1053200060E08CE00E948F136FE084E00E948F1396 -:1053300061E08CE00E948F130E94870E811102C0F1 -:105340000E943F3383E080931A0380E280934304FA -:105350000E943D316DE070E084E792E00E94500DC4 -:10536000892BE9F580911A0363E070E081FD9EC20C -:1053700081E792E00E94500D892B89F56DE070E085 -:1053800081E692E00E94500D892B49F50E944A085F -:105390006058774C8E4F9F4F60934A0470934B0434 -:1053A00080934C0490934D04EEE7F4E080E092E0AB -:1053B000DF019C011D9221503040E1F7F0937F0600 -:1053C000E0937E068FEF9FEF90937D0480937C04A3 -:1053D00081E080934F0480934E0410921B038091D0 -:1053E000E402811136C00E94991A811104C00E9402 -:1053F0001E180E94AB1788E090E00E94653560930C -:105400007704709378048093790490937A04809160 -:105410005B03836080935B036E7F71F40E94AB1724 -:1054200088E090E00E94653560937704709378047B -:105430008093790490937A040E94F608809177040F -:1054400080FF04C060E086950E94511681E0809341 -:10545000E40280915801811106C084EF80936601B7 -:1054600085EF8093650120916601A22FA295AF7010 -:10547000B0E091963C9191972F7081E090E0BC0153 -:10548000022E01C0660F0A94EAF7462F4095432387 -:1054900091964C93919792963C919297362B929637 -:1054A0003C93929740916501E42FE295EF70F0E014 -:1054B00031A14F70042E01C0880F0A94EAF7982F8B -:1054C0009095932391A392A1892B82A390968C917E -:1054D00090E002C0959587952A95E2F7817020A10A -:1054E00030E002C0359527954A95E2F792E020FF1B -:1054F00090E0892B8093EC028091580111E0812784 -:105500008093EB02312F381B3093E5020E943D312E -:1055100040E060E080E00E94090D60E08AE00E94C7 -:10552000511681E892E090935E0380935D0381E0E1 -:105530000E94611780EE90E090935A018093590188 -:10554000109332030E94290D8BE591E09093530450 -:10555000809352043E018DE3680E711C80916C04AF -:10556000FF24F39400E112E1853009F4F2C10E94B6 -:105570001C25E82E81110E944A08E5E4F3E0AFE41F -:10558000B3E010E000E0B02EDD9081918D1509F4BC -:1055900004C28D25C12CFF24F394982F9F2109F478 -:1055A000F7C10E94870E882399F0CEA6BFA6DF2000 -:1055B00081E009F480E088AB0E94F21B8160782FC3 -:1055C0009AAB89AB4EA55FA568A98AA90E948A24D7 -:1055D000F801EB5BFC4F8081F826F0828091EC02B1 -:1055E000E82FEE0FEE0F90916601A92FA295AF70F4 -:1055F000B0E090962C9130E09F7002C035952795D1 -:105600009A95E2F72170332790916501A92FA29511 -:10561000AF70B0E090964C9150E09F7002C05595ED -:1056200047959A95E2F7CA018170992740FF02C019 -:1056300082E090E0822B8E2B8093EC021091EB02A3 -:105640008F70E82FF0E0E650FE4F80819091EA02E3 -:10565000890F8093EA02F12C84306CF0E12FF0E0A6 -:10566000E851FD4F80818F5F808360E0812F0E9431 -:105670005027FF24F3948091EA028D3F6CF4E12FD0 -:10568000F0E0E851FD4F80818150808361E0812FFF -:105690000E945027FF24F3948091EA02082E000C08 -:1056A000990B64E070E00E941D358093EA02F110CE -:1056B0000E94680B80914F04882351F180911C0354 -:1056C00090911D030E94E31BC29708F07DC12091B9 -:1056D0007C0430917D042115310509F0A0C2809130 -:1056E0004E048823A9F00E944A0800914A041091B0 -:1056F0004B0420914C0430914D04601B710B820BC4 -:10570000930B6F3F7F4F8F4F9F4710F40E94800D88 -:10571000E11001C0F1100E949B0D809142038A307C -:1057200008F0BAC380914003909141030E94E31BAB -:10573000089708F4B1C304E610E025E030E04BE33D -:1057400053E064E084E10E948832892B09F075C33C -:105750001092420320913203222359F080913B039F -:1057600090913C0398278927982790933C03809336 -:105770003B0386E0E4E2F3E0DE01919601900D92B6 -:105780008A95E1F786E0FE01B196DE01119601905F -:105790000D928A95E1F786E0FE013196A5E3B3E02C -:1057A00001900D928A95E1F790913F038091360325 -:1057B00097FD3AC38E7F8093360380913303909197 -:1057C0003403009709F02AC360913B0380913C03A6 -:1057D00000913D0310913E03222309F4F2C241E0FF -:1057E0000E94E30C2091300330913103820F931F0C -:1057F000909331038093300341E0602F812F0E940A -:10580000E30C20912E0330912F03820F931F90936E -:105810002F0380932E0360E373E08AE393E00E94FA -:10582000C40C6EE273E089E393E00E94C40C109212 -:1058300037031092380386E0E5E3F3E0DE011196CA -:1058400001900D928A95E1F786E0FE013196A4E27F -:10585000B3E001900D928A95E1F7309126032091F3 -:105860002703909128038091290370912003609170 -:1058700021034091220350912303F0912503E091ED -:105880001F03FE13E0C2332311F07313DCC2222383 -:1058900011F02613D8C2882311F08513D4C299239E -:1058A00019F081E04913D0C280E0CEC28EE692E0CA -:1058B00061CD80916C04843009F43BC00E94800D5E -:1058C00040E060E080E00E94090D80E00E94A016A8 -:1058D0008091E702811109C0F092E702809177047C -:1058E00081708093E6020E94CD0F10925604A8E1C9 -:1058F000B0E0E0E40FB6F894A895A09360000FBE66 -:10590000E093600083B7817F846083BF83B7816049 -:1059100083BF7894889583B78E7F83BF0FB6F89442 -:10592000A89580916000886180936000109260006B -:105930000FBE80916B04882361F00E941C25EFE468 -:10594000F3E08191811178C429E533E02E173F07F8 -:10595000C1F780916C04853009F4ABCF10925F04DD -:105960000E94E20F0E94AA0E0E94A0161092E70267 -:105970008091E602882349F08091770481608093CA -:10598000770460E086950E9451160E94290DEFCDA4 -:10599000C394FF0C37E0C31200CE0F5F1F4F0A30D5 -:1059A000110509F0F0CD8FEF8BAB8CAB1DAA0E94D7 -:1059B000F21B8160782F9FAB8EAB4BA95CA96DA9C0 -:1059C0008FA90E948A240ACE0E94F21B90931D0385 -:1059D00080931C0360E080E00E9482080E94AA0E6F -:1059E0008093F9020E94870E882331F14091F502DD -:1059F0005091F6026091F7027091F8022FB7F89477 -:105A00008091570490915804A0915904B0915A0480 -:105A10002FBF841B950BA60BB70B81339547A105B0 -:105A2000B10540F00E94800D80914F04882309F455 -:105A300056CE4DCE0E949B0D0E94870E882309F4FE -:105A4000D5C061E080E00E94820860E08CE791E0D0 -:105A50000E94731362E080E00E94820880917604C5 -:105A60000E94B30C823009F49BC008F090C08823D8 -:105A700009F496C0813009F499C065E080E00E9485 -:105A8000820860E08AE991E00E94731366E080E09A -:105A90000E9482086091F902669561708FE991E039 -:105AA0000E94731367E080E00E9482086091F9020F -:105AB0006095617084EA91E00E94731368E080E071 -:105AC0000E9482086091F90262FB662760F988EA09 -:105AD00091E00E9473137DA66CA64091F102509153 -:105AE000F2026091F3027091F4022FB7F894809162 -:105AF000570490915804A0915904B0915A042FBFB3 -:105B0000841B950BA60BB70B8D329140A105B105F7 -:105B100008F48ACF0E944A086093F1027093F2025F -:105B20008093F3029093F4028091F002811104C0FB -:105B300080916701811142C06DE080E00E9482087F -:105B400060E08DEA91E00E9473136AE080E00E94B9 -:105B5000820881E0809367018091EF0290E00196D6 -:105B6000817099278093EF0221E030E0281B390BE8 -:105B700040E6429FC001439F900D11242091EE0208 -:105B8000222351F1855F9B4F0E947A064DCF8330CF -:105B900089F0843009F071CF60E08EE891E003C0B5 -:105BA00060E082E891E00E94731367CF60E088E8CC -:105BB00091E0F9CF60E084E991E0F5CF6AE080E020 -:105BC0000E94820860E08DEA91E00E9473136BE00E -:105BD00080E00E948208C0CF2091ED02222319F0BC -:105BE000855B9C4FD1CF85579D4FCECF64E080E041 -:105BF0000E94820860E083EB91E00E94731365E0ED -:105C000080E00E94820860E089EB91E00E947313BB -:105C100069E080E00E9482088BEC94E0B5CF80912F -:105C20001B0361E070E081115ACD082F10E02B01B9 -:105C3000082E02C0440C551C0A94E2F7A901442125 -:105C40005521452B09F448C090911A0390FD46C098 -:105C50008295880F807680936A0198013695279502 -:105C60003695279520936D01815E80936B0110928C -:105C70006E0124E630E047E050E068E671E088E736 -:105C80000E943432892B09F02ACDA80175E0440F17 -:105C9000551F7A95E1F780911A0380FD2DC0425877 -:105CA0005B4F04E610E020E230E060E488E70E9409 -:105CB0005B32892B09F013CD0E949B0DC2018095A8 -:105CC000909540907C0450907D0448225922509237 -:105CD0007D0440927C0403CD8F5FA7CF880F880F8F -:105CE000880F80936A0110926D01895F80936B0128 -:105CF00083E080936E01BDCFEAEFF2E080E2DF0146 -:105D00001D928A95E9F7EEE0F2E0F9AFE8AF0AE01C -:105D100012E099249394A8ADB9AD2D91B9AFA8AF75 -:105D2000F80121908F01240E352E311CC1018258BB -:105D30009B4F1C01E22FF0E0E650FD4F30E020E0E9 -:105D400067E0A62EA21AB92C022E01C0BB0C0A9441 -:105D5000EAF7610190E0D6018D916D018B216A2DEA -:105D6000691B6770862E062E000C770BB82F01C0BA -:105D7000BB0F8A94EAF78B2E719561957109677054 -:105D8000772701C086956A95EAF7882A8081882A54 -:105D900080829F5F9830F9F62F5F3F4F3196283011 -:105DA000310571F6E2E1F2E028AD39ADE217F30713 -:105DB00009F0B1CF04E610E020E230E04AEF52E013 -:105DC00074CF45E00E94E30C20912C0330912D0309 -:105DD000281B390B30932D0320932C0345E0602FB3 -:105DE000812F0E94E30C20912A0330912B03281B62 -:105DF000390B30932B0320932A036CE273E087E383 -:105E000093E00E94C40C6AE273E088E393E00E948E -:105E1000C40C10923A03109239030DCD0197909360 -:105E200034038093330307CD81608093360384E08D -:105E30000E949B1384E190E0F2CF809142038F5F38 -:105E400080934203F8CC81E080FF0FC0E0915204C0 -:105E5000F0915304309749F082E08093240304804A -:105E6000F581E02D84E293E00995109226031092CB -:105E70002703109228031092290386E0E4E2F3E05E -:105E8000AEE1B3E001900D928A95E1F70E94F21B1A -:105E900090934103809340030E94AA0E9091430384 -:105EA000891731F00E94AA0E809343030E94A01626 -:105EB00080916C04843009F051CB83E08093E90039 -:105EC0008091E80082FF4ACB8091E80090E085FF56 -:105ED0000BC00E94DC0630E2E32EF12C8E010F5F36 -:105EE0001F4F8823E1F091E08091E8008B77809349 -:105EF000E800992309F432CBE981E150E33108F05D -:105F000071C0F0E0E450F94C0C9431358091F1000F -:105F1000D8018D938D01B1E0EB1AF10821F3809146 -:105F2000E80085FDF3CF8091E8008B778093E8004F -:105F30000E94DC06882399F3D6CF1A8289E08B83EE -:105F400011C08A81823009F48FC1833091F1813090 -:105F500009F048C00E944A080E9437356B837C8351 -:105F60008D839E8380916C04843009F0F7CA109170 -:105F7000E9001F709091EC00892F817090FD80E8FE -:105F8000182B82E08093E9008091E80080FF0DC02B -:105F900050E040E060E270E0CE0101960E940D0703 -:105FA0008091E8008E778093E8001F701093E900DD -:105FB000D5CADE011396EFE4F3E081918D9323E0DF -:105FC000E935F207D1F7CECF8A81823059F46B815F -:105FD0007C818D819E810E94373586E290E00E940F -:105FE0007135C0CF8FEF8983BDCF4C816B818A81A2 -:105FF0000E947A149827892798279E838D83B2CF91 -:106000000D811E811027012710278A81EB803EE039 -:10601000E39E700111249CE8899FE00CF11C11247F -:106020008C8190E0880F991FE80EF91E612FC7013F -:1060300087960E947135602FC7018896D0CF0E9445 -:10604000FE1390CF8A818138C1F060F4803809F066 -:1060500089CF20E04B8160917904809178040E947F -:106060003A1580CF8238E9F0833809F07BCF20E001 -:1060700040917A046C818B81F2CF60E08B810E9429 -:1060800051168B81811103C00E94CD0F6BCF80917F -:10609000770481608093770460E086950E945116B2 -:1060A00061CF8B8180937B045DCF8A81813899F0A9 -:1060B00030F4803809F056CF80917A0440CF82388E -:1060C00091F0833809F04ECF809178048B838091D2 -:1060D00079048C8347CF8091770480FF02C0869536 -:1060E0002ECF80E02CCF80917B0429CF6091770464 -:1060F000709178048091790490917A040E94281517 -:1061000031CF80E18A832ECF81E08A838DE117CF62 -:10611000CA80DB80DC24CD24DC248E010F5F1F4F7E -:10612000EC80E00EF12EF11CC6018D519D4F0E1535 -:106130001F0509F417CFADE1CA16A1E0DA0650F445 -:106140000E945D35F8018483BFEFCB1ADB0A0F5F35 -:106150001F4FEACFD80114961C92F6CF0A811B81FB -:10616000102701271027FE0131966F01EC80E00E09 -:10617000F12EF11CC8018D519D4FE016F10609F476 -:10618000F1CE0D31F1E01F0728F4D60114966C9181 -:106190000E947135BFEFCB1ADB0A0F5F1F4FEACFAA -:1061A0000E94EE13DFCE85E0ADCFCA80DB80DC2419 -:1061B000CD24DC248E010F5F1F4FEC80E00EF12E0A -:1061C000F11CC6018796E016F10609F4CBCEECEB84 -:1061D000CE16E2E0DE0658F40E945D35D801149632 -:1061E0008C93FFEFCF1ADF0A0F5F1F4FEACFF80142 -:1061F0001482F7CF0A811B811027012710279E01E7 -:106200002F5F3F4F6901EC80E00EF12EF11CC801B9 -:106210008796E016F10609F4A5CE0C3B32E0130791 -:1062200028F4D60114966C910E947135BFEFCB1AF9 -:10623000DB0A0F5F1F4FEBCF09BD19BD09B400FE8C -:10624000FDCF8091D8008F7D8093D8008091E000B1 -:1062500082608093E0008091E00081FDFCCF10928D -:106260005F040E94E20F75CB86E290E00E945D35EC -:106270001B821C821D828E8375CE1092B9008CE029 -:106280008093B80008959F92AF92BF92CF92DF9211 -:10629000EF92FF920F931F93CF93DF93B82EEB01F2 -:1062A0000E94F21B6C01EE24E394F12CC431D10561 -:1062B00060F025E0E22EF12CCF3FDC0731F0CE017B -:1062C00064E170E00E94FD347B0184EAA82E94E82A -:1062D000992E1092BC00A092BC000E94F21B8C016F -:1062E0008091BC0087FF0DC08091B900887F883005 -:1062F00039F18091B900887F803111F10FEF1FEFE4 -:1063000009C00E94F21B801B910B8E159F0540F364 -:106310000EEF1FEFCF3FDC07E1F2C6010E94E31B47 -:106320008C179D07B0F2C801DF91CF911F910F919B -:10633000FF90EF90DF90CF90BF90AF909F90089527 -:10634000B092BB009092BC000E94F21B8C01809125 -:10635000BC0087FF0AC08091B900887F883111F0A6 -:10636000803461F610E000E0DECF0E94F21B801B5B -:10637000910B8E159F0558F3CBCF0F931F93CF939F -:10638000DF93EB018093BB0084E88093BC000E9404 -:10639000F21B8C018091BC0087FF11C02091B900D5 -:1063A000287F81E090E0283211F490E080E0919520 -:1063B00081959109DF91CF911F910F910895CF3F62 -:1063C000DC0741F30E94F21B801B910B8C179D0789 -:1063D00008F38EEF9FEFEECF0F931F93CF93DF93D2 -:1063E000EC0184EC8093BC000E94F21B8C01809134 -:1063F000BC0087FF08C08091BB0090E0DF91CF9187 -:106400001F910F910895CF3FDC0789F30E94F21B83 -:10641000801B910B8C179D0750F38EEF9FEFEECFF3 -:106420000F931F93CF93DF93EC0184E88093BC001C -:106430000E94F21B8C018091BC0087FF08C08091F4 -:10644000BB0090E0DF91CF911F910F910895CF3F56 -:10645000DC0789F30E94F21B801B910B8C179D07B0 -:1064600050F38EEF9FEFEECFCF92DF92EF92FF923D -:106470000F931F93CF93DF936B018A017901B901C9 -:106480000E944331E6010C0D1D1DC017D10761F4B8 -:1064900024E92093BC00DF91CF911F910F91FF90D1 -:1064A000EF90DF90CF90089597FDF2CFB7018991DB -:1064B0000E94BD31EACFCF92DF92EF92FF920F930D -:1064C0001F93CF93DF93C62F6A017901B8010E9411 -:1064D000433197FD0CC0B8018C2F0E94BD31E601FD -:1064E000EC0CFD1CCE15DF0511F097FF0CC024E964 -:1064F0002093BC00DF91CF911F910F91FF90EF90FF -:10650000DF90CF900895B80189910E94BD31EACF04 -:10651000CF92DF92EF92FF920F931F93CF93DF936F -:10652000F82EE62EEA016901B8010E94433197FD79 -:1065300015C0B8018E2D0E94BD3197FD0FC0B80166 -:106540008F2D81600E944331F12CE12C21E0C21A91 -:10655000D108EC14FD0400F597FF11C024E9209345 -:10656000BC001816190614F490E080E0DF91CF917A -:106570001F910F91FF90EF90DF90CF900895C80189 -:106580000E94EC3197FD04C0FE01EE0DFF1D8083DB -:106590002FEFE21AF20ADDCF97FDE0CFC8010E948B -:1065A000103297FDDBCFCC0DDD1D8883D7CF84E97A -:1065B0008093BC0008958EE14A9B02C08150E1F7B0 -:1065C0004A9BFECF08955A9880E28A95F1F75A9A2D -:1065D0000895FC013BE03A95F1F798E020E080E077 -:1065E00031E040E14A95F1F7880F4A9B02C0816093 -:1065F000232742E04A95F1F7000040E14A95F1F780 -:10660000915079F790E19A95F1F799B132E03A9586 -:10661000F1F7000040E14A95F1F792FB992790F9D4 -:1066200092272081920F90830895EF92FF920F930B -:106630001F93CF93DF930F92CDB7DEB719828C01F2 -:106640007C01E60EF11C0E151F0561F481E09981B5 -:10665000911180E00F90DF91CF911F910F91FF90EA -:10666000EF9008950E94DB32CE0101960E94E9323C -:10667000F80181938F01E7CF529A5A9A0895529860 -:106680005A9AEA9AE9E6F0E080818F7C8083089547 -:106690006150770B91E001C0990F6A95EAF720E00D -:1066A00031E0911108C0222391F05A9A80E28A9534 -:1066B000F1F75A980895492F482339F05A9A232719 -:1066C00040E24A95F1F79695ECCF5A98F9CF5A984F -:1066D000EDCFFF920F931F93CF93DF93EC018C01CB -:1066E000060F111DC017D10731F4DF91CF911F9113 -:1066F0000F91FF900895F9900E94E33268E08F2D8A -:106700000E944833EFCF1F920F920FB60F921124C1 -:10671000EF92FF920F931F932F933F934F935F93AB -:106720006F937F938F939F93AF93BF93EF93FF9359 -:10673000CF93DF930F92CDB7DEB719820E94DB3281 -:10674000CE0101960E94E932A82FA695A695A6959E -:10675000282F229525709A2F9570290F922F9370CC -:1067600026952695920F982797708981982B09F086 -:1067700075C0A83008F072C080E18A95F1F75A9A86 -:10678000529AB2E0BA95F1F700C05A98EA2EF12C6D -:10679000EAE0AE9FD0011124AF5FBE4F1896ED9195 -:1067A000FC9119973097B1F06091F8017091F9015F -:1067B00016962D913C911797260F371F13968D91A2 -:1067C0009C911497680F791F15964C911597129606 -:1067D0008C9109958AE08E9DF0018F9DF00D11241A -:1067E000EF5FFE4F6581662351F02091F8013091F3 -:1067F000F90186819781820F931F0E9469330E945D -:10680000E332F0E1FA95F1F75A9852985A9A80E1FA -:106810008A95F1F78AE08E9D80018F9D100D1124DD -:106820000F5F1E4FD80112966C911297662371F17B -:106830002091F8013091F90113968D919C91820F6E -:10684000931F0E941533D801ED91FC91882311F01C -:1068500088E001C082E080830E94DB320F90DF91EC -:10686000CF91FF91EF91BF91AF919F918F917F91C8 -:106870006F915F914F913F912F911F910F91FF90D9 -:10688000EF900F900FBE0F901F901895ED91FC9117 -:10689000DFCF0F931F93CF93DF93EC0108970CF09A -:1068A000A9C08AE08C9FF0018D9FF00D1124EF5F4D -:1068B000FE4F80819181892B09F49CC0F894529AF3 -:1068C0005A9885E08A95F1F700008C2F869585709F -:1068D0009C2F9570890F982F937086958695890FB8 -:1068E0008E0193E0000F111F9A95E1F7082B0E948B -:1068F000E33200C068E0802F0E944833A0E1AA95EF -:10690000F1F752985A9A4A9B27C087E090E04A993B -:1069100025C08AE08C9F80018D9F100D11240F5F90 -:106920001E4FF80165816623A1F12091F801309195 -:10693000F90186819781820F931F0E94153381117F -:1069400028C0529A5A9AD801ED91FC9182E0808336 -:10695000789482E090E016C000C0D5CF0197B9F4DA -:10696000529A5A9A8AE08C9FF0018D9FF00D112463 -:10697000EF5FFE4F0190F081E02D81E080837894FD -:1069800081E090E0DF91CF911F910F91089500C0B9 -:10699000BECF0E94DB32B0E2BA95F1F75A98529A14 -:1069A000E0E1EA95F1F78AE08C9FF0018D9FF00D10 -:1069B0001124EF5FFE4F6281662351F02091F801B0 -:1069C0003091F90183819481820F931F0E94693372 -:1069D0000E94E3328AE08C9FF0018D9FF00D11241C -:1069E000EF5FFE4F0190F081E02D1082789490E0EF -:1069F00080E0C8CF84E090E0C5CFAA1BBB1B51E16B -:106A000007C0AA1FBB1FA617B70710F0A61BB70B1E -:106A1000881F991F5A95A9F780959095BC01CD01C3 -:106A20000895991B79E004C0991F961708F0961BEA -:106A3000881F7A95C9F78095089597FB072E16F45D -:106A4000009407D077FD09D00E94FD3407FC05D0E3 -:106A50003EF4909581959F4F0895709561957F4F75 -:106A60000895EE0FFF1F0590F491E02D099469271A -:106A7000962769277827872778270895FB01DC0167 -:106A800002C005900D9241505040D8F70895FB0187 -:106A9000DC0104C08D910190801921F441505040D7 -:106AA000C8F7881B990B0895FB01DC0102C0019017 -:106AB0000D9241505040D8F70895F999FECF92BDFC -:106AC00081BDF89A992780B50895A6E1B0E044E029 -:106AD00050E00C949735A8E1B0E042E050E00C940F -:106AE0009735262FF999FECF92BD81BDF89A01976F -:106AF00000B4021639F01FBA20BD0FB6F894FA9A06 -:106B0000F99A0FBE08950396272F0E9472350E94AE -:106B10007135252F0E947235242F0C947235019601 -:106B2000272F0E9472350C947135DC01CB01FC01DA -:106B3000F999FECF06C0F2BDE1BDF89A319600B4D6 -:106B40000D9241505040B8F708950E94E73508F47F -:106B500081E00895E89409C097FB3EF490958095F4 -:106B6000709561957F4F8F4F9F4F9923A9F0F92F13 -:106B700096E9BB279395F695879577956795B79591 -:106B8000F111F8CFFAF4BB0F11F460FF1BC06F5F77 -:106B90007F4F8F4F9F4F16C0882311F096E911C089 -:106BA000772321F09EE8872F762F05C0662371F0AA -:106BB00096E8862F70E060E02AF09A95660F771FBE -:106BC000881FDAF7880F9695879597F90895990F9A -:106BD0000008550FAA0BE0E8FEEF16161706E807A7 -:106BE000F907C0F012161306E407F50798F0621BC8 -:106BF000730B840B950B39F40A2661F0232B242B9D -:106C0000252B21F408950A2609F4A140A6958FEFBB -:106C1000811D811D08950E941E360C948F360E949E -:106C2000813638F00E94883620F0952311F00C94BC -:106C300078360C947E3611240C94C3360E94A0360C -:106C400070F3959FC1F3950F50E0551F629FF001BF -:106C5000729FBB27F00DB11D639FAA27F00DB11DD8 -:106C6000AA1F649F6627B00DA11D661F829F222761 -:106C7000B00DA11D621F739FB00DA11D621F839FE8 -:106C8000A00D611D221F749F3327A00D611D231FBE -:106C9000849F600D211D822F762F6A2F11249F570C -:106CA00050409AF0F1F088234AF0EE0FFF1FBB1F0F -:106CB000661F771F881F91505040A9F79E3F5105CE -:106CC00080F00C9478360C94C3365F3FE4F3983E22 -:106CD000D4F3869577956795B795F795E7959F5F78 -:106CE000C1F7FE2B880F911D9695879597F908950A -:106CF00097F99F6780E870E060E008959FEF80EC6F -:106D0000089500240A941616170618060906089511 -:106D100000240A9412161306140605060895092E77 -:106D20000394000C11F4882352F0BB0F40F4BF2BE6 -:106D300011F460FF04C06F5F7F4F8F4F9F4F089526 -:106D400057FD9058440F551F59F05F3F71F047951C -:106D5000880F97FB991F61F09F3F79F08795089501 -:106D6000121613061406551FF2CF4695F1DF08C020 -:106D7000161617061806991FF1CF8695710561053D -:106D800008940895E894BB2766277727CB0197F9E5 -:106D90000895F894FFCFD210FA104D11FA104D114A -:106DA0002D1165114D1162126F12FA14FA140315A8 -:106DB00003150515031503150315FA14FA140A151E -:106DC000031503150A154F1CC51CC81CDC1CDF1C51 -:106DD000F21CFB1C1F1D651D971DAB1D311D541D95 -:106DE000ED20ED204621462178212021202120215F -:106DF00092210322132213229D2FA12FE42FF52F7E -:106E000000301F30223055307630F22FF22F813093 -:0E6E100084308830AE30D030D330D530FA30F8 -:106E1E0001380200000001000000003802000000EE -:106E2E0005010000003802000000010600000038D5 -:106E3E0002000000010700000038020408000000F4 -:106E4E000000003802090C000000000000380201AA -:106E5E001500000000000036323331F7F6676697F2 -:106E6E00C6343500000000000180004708160EF5FC -:106E7E000DF10DED0DF4F5010021007F2200030050 -:106E8E004A004A4A01F6F731333236674C415945CA -:106E9E00520042617365200047616D6520005261AA -:106EAE00697365004C6F776572004C4F434B00431E -:106EBE00617073004E756D005363726C002020205C -:106ECE00202000534F4C415200544D5053540081DA -:106EDE008283E200E900EA00B500B600B700CD00FB -:106EEE008301CC008A019201940121022302240223 -:106EFE002502260227022A02B300B4006F0070009A -:106F0E000603060806010606AF0200FF0100010097 -:106F1E0000FFFF0000010001FF000008101818100C -:106F2E0008000001020202020202020202024022D4 -:0E6F3E007B71014F01D400D00BE90B090C0050 +:100BB0000000000000000000000000000000000035 +:100BC0000000000000000000000000000000000025 +:100BD0000000000000000000000000000000000015 +:100BE0000000000000000000000000AF00AE09029D +:100BF0005B00030100A0FA090400000103010100E9 +:100C00000921110100012240000705810308000AA3 +:100C10000904010002030000000921110100012262 +:100C200022000705820320000107050303200001BD +:100C30000904020001030000000921110100012242 +:100C40007B000705840320000A1201000200000057 +:100C50000832FC87120200010200011E0353006FDC +:100C6000006C00610072006900750073005F005342 +:100C7000006F0066006C006500000010034B00650B +:100C8000007900680069007600650000000403092F +:100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 +:100CA00003FE27C08091800690918106A091820664 +:100CB000B09183068730904BA740B04BD1F410928F +:100CC000800610928106109282061092830614BE4E +:100CD00084B7877F84BF0FB6F894A8958091600091 +:100CE000886180936000109260000FBEE0E0F8E33E +:100CF000099512E0A0E0B1E0EEE4FEE602C0059046 +:100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 +:100D10001D92A038B207E1F70E9422280C94E13618 +:100D20000C940000CF93DF9340917E0650917F0694 +:100D30004E5754409A01205A3F4F21303240C0F064 +:100D400020E032E0241B350B60917C0470917D041F +:100D5000FC01CA01240F351FC1E0D0E082179307C0 +:100D600050F070937D0460937C04DF91CF910895DF +:100D700020E630E0E9CF4491DC01A258BB4F5C9102 +:100D8000451781F04C93AC01A5E056954795AA957F +:100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 +:100DA0006A2B752B01963196D9CFE8EDF0E0808162 +:100DB0008E7F80831092E2001092DA001092E100A0 +:100DC000A0EEB0E08C9181608C9380818F778083DE +:100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 +:100DE000808310925E0408952091E4003091E50024 +:100DF00095E6A9012091EC00822F817020FF06C0AA +:100E00008091E80080FF06C080E008952091E8000E +:100E100022FD1AC080916C04882389F0853089F006 +:100E20008091EB0085FD0FC02091E4003091E5003A +:100E300042175307F9F29150E1F684E0089582E0F9 +:100E4000089583E0089581E00895EF92FF920F9353 +:100E50001F93CF937C018B010E94F406C82F811150 +:100E600017C08091E80085FD0BC08091E8008E7767 +:100E70008093E8000E94F406882399F3C82F08C0E5 +:100E8000F70181917F018093F1000150110949F729 +:100E90008C2FCF911F910F91FF90EF90089580912B +:100EA0006E0487FF13C08091E80082FF06C0809126 +:100EB000E8008B778093E80004C080916C04811176 +:100EC000F2CF089580916C048823D9F38091E800D3 +:100ED00080FFF8CF8091E8008E77ECCF982F909329 +:100EE000E900242F762F50E0891731F07091EC0043 +:100EF0002091ED005091F00021FD07C09F5F9730D9 +:100F000071F78093E90081E008953091EB003E7F16 +:100F10003093EB003091ED003D7F3093ED00309148 +:100F2000EB0031603093EB007093EC002093ED0008 +:100F30005093F0002091EE0027FDE0CF80E008956F +:100F4000CF92DF92EF92FF920F931F93CF93DF9395 +:100F5000C8EDD0E088818F7E8883E7EDF0E0808166 +:100F60008160808384E082BF81E080935E04888119 +:100F70008E7F888302EE10E0F80110821092DA0072 +:100F800081EEC82ED12CF601108288818F7788835C +:100F900088818068888388818F7D888319BC1092BE +:100FA0006C0410926D0410926B0410926A0490EE1F +:100FB000E92EF12CF70180818B7F8083888181600D +:100FC000888342E060E080E00E946E07F601808145 +:100FD0008E7F8083F801808181608083808188603A +:100FE0008083F70180818E7F808388818061888300 +:100FF000DF91CF911F910F91FF90EF90DF90CF90F5 +:101000000895FC01809174049091750486179707E8 +:10101000A0F06115710529F49091E8009E779093F6 +:10102000E80090E06115710551F4911108C08091BC +:10103000E80082FF34C080E00895BC01F2CF8091C7 +:101040006C048823C1F18530C1F18091E80083FDF3 +:1010500030C08091E80082FDEACF8091E80080FFF7 +:10106000E1CF8091F3002091F200382F61157105D6 +:1010700019F02830310558F091E02830310509F099 +:1010800090E02091E8002E772093E800CBCF81916B +:101090008093F100615071092F5F3F4FE7CF80913E +:1010A0006C04882341F0853041F08091E80083FF93 +:1010B000BECF81E0089582E0089583E00895809195 +:1010C000610408952FB7F894609157047091580403 +:1010D0008091590490915A042FBF0895209154048F +:1010E000309155042817390771F090935504809377 +:1010F0005404E0915204F0915304309721F000849D +:10110000F185E02D09940895209150043091510407 +:101110002817390771F09093510480935004E0919F +:101120005204F0915304309721F00680F781E02DAE +:10113000099408952091430436E0839FC00111244F +:10114000629F800D911D1124811522E0920714F0F9 +:1011500090E080E082589B4F90937F0680937E06BC +:101160000895883E9105C8F4803E910548F48B327D +:10117000910540F48832910518F404974A9758F481 +:1011800080E008958C32910530F089339105C0F3E9 +:1011900084369105A9F381E011C0811522E59207FB +:1011A00070F48115E1E59E0758F790548115904140 +:1011B00090F7FB019581907F81E011F308958115EF +:1011C00028E5920740F38115E9E59E0728F090563F +:1011D0008115904270F3DFCFFB019581907F81E014 +:1011E000903271F6EBCFFC01680F791F8FEF91E31E +:1011F0002191822728E030E087FF09C0880F8927E6 +:1012000021503109C9F7E617F70791F70895880FBC +:10121000F7CFFA01811101C0FB0109948091770495 +:10122000982F9E7F61F48170826080937704809113 +:101230007A04813A18F080EA80937A04089588311C +:10124000B0F381708661F1CFAF92BF92DF92EF92DF +:10125000FF920F931F93CF93DF93082F162FE9016F +:10126000E42FF0E0E55AFA4F611110C0E4915E2FCF +:101270004E2F4983E8835A83DF91CF911F910F91BD +:10128000FF90EF90DF90BF90AF900895E62EF12C85 +:101290004491D42EE42FF0E026E0829FC001112477 +:1012A0002FEF30E0B9010E941535802F90E0880FB4 +:1012B000991F55E5569FD001579FB00D11248A1BE9 +:1012C0009B0B982F990F890F5901AE18BF08AE9E3E +:1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 +:1012E00080011124012F11275901A01AB10AAE9EC5 +:1012F0008001AF9E100DBE9E100D11245901A81A39 +:10130000B108AE9CC001AF9C900DBE9C900D112405 +:10131000892F9927281B390B2E9FC0012F9F900DD5 +:101320003E9F900D1124E92F62307105A1F050F419 +:101330006115710509F49DCF6130710581F0EB2FC6 +:10134000512F97CF6430710569F080F066307105D8 +:1013500009F48FCFF4CFE42F4B2F592F8ACFE42FEE +:10136000412F87CFEB2F542F492F83CF4B2F5D2D4C +:10137000E12F7FCF80E0089578940895F894E82FC6 +:10138000E295EF70F0E031A1282F2F7081E090E01E +:1013900001C0880F2A95EAF7982F9095932391A37F +:1013A00092A1892B82A30C94BC099091D60292FF42 +:1013B00006C0282F28712830F9F4877F846093FFB6 +:1013C00006C0282F28712831F1F4877E846120918E +:1013D000D70220FF06C0382F38713830D9F4877F04 +:1013E000816021FF06C0282F28712831D1F4877E23 +:1013F000816194FD877E0895282F24712430F9F6A9 +:101400008B7F8860DCCF282F2471243101F78B7EFD +:101410008861DDCF382F3171313019F78E7F8860C8 +:10142000E0CF282F2171213121F78E7E8861E1CF15 +:10143000CF93DF93EC018238910581F1B0F58133D0 +:10144000910509F491C020F58932910509F485C010 +:101450008A9709F490C0C11521E5D20708F0AAC007 +:10146000C11530E5D30708F0F2C0CF3BD10508F035 +:1014700089C0C83AD10508F0DFC0C53AD10508F0E7 +:10148000D3C0C430D105F8F4C130D105E1F040C07B +:101490008533910509F45AC0C997E9F68091D602BF +:1014A000837089F0C0EED0E00EC0833E910599F1C3 +:1014B00070F4803E910501F1823E910561F68091C4 +:1014C000D60282FD21C0CE01DF91CF910895863EE4 +:1014D000910561F1873E910571F1843E910509F016 +:1014E000BACF8091D70281FFEECF8091D602C7EEAE +:1014F000D0E084FD0DC0E7CF8091D60280FDF7C01B +:101500009091D70290FFDFCFC3EED0E084FFDBCF16 +:10151000D0E0C0E0D8CF8091D60282FDEBC09091A0 +:10152000D70290FDBFCF84FFCECFF2CF8091D602FD +:1015300083FDDDCFC8CF8091D60283FDDEC09091C0 +:10154000D70291FFF0CFC4EED0E0BDCF8091D6029C +:1015500085FFB9CFC9E2D0E0B6CF8091D60285FF32 +:10156000B2CFC5E3D0E0AFCF8091D60286FFABCF3C +:10157000CAE2D0E0A8CF8091D60286FFA4CFC1E313 +:10158000D0E0A1CFC11540E2D40760F4C11581E0DD +:10159000D80708F098CFCE01815E9109079708F42B +:1015A00092CFB6CFC11590E4D90708F4B1CFDF7060 +:1015B000D06A89CFC11524E5D20778F4C11533E587 +:1015C000D30708F072C0C11542E5D40708F05CC02B +:1015D000DC2FCC27C16FD06A76CFC1158AE5D8073A +:1015E00078F4C11599E5D90708F073C0C11528E54D +:1015F000D20708F48DCFDC2FCC27C06FD06A63CF21 +:10160000CE0190568115904208F082CF8D2F8F71B8 +:101610000E94D50990E0982F882788279F719C0108 +:101620002C2BE901D0624FCFC55AD0E0C154DE4F18 +:10163000C881D0E0D06447CFC85AD0E0CC0FDD1FBE +:10164000CE53DE4F0990D881C02DD4643CCFCE015B +:1016500064E0969587956A95E1F783702C2F26951F +:101660002695237040E2249F90011124382B8C2F63 +:101670008370C1E0D0E002C0CC0FDD1F8A95E2F795 +:10168000C22BD32BDC681FCFCE018370992721E0BA +:1016900030E002C0220F331F8A95E2F7C695C69547 +:1016A00080E2C89FE0011124EBCFCE01837099271F +:1016B00021E030E002C0220F331F8A95E2F7C69581 +:1016C000C69590E2C99FE0011124C22BD32BDA68A2 +:1016D000FACE8C2F8F700E94D50934E0D695C7952D +:1016E0003A95E1F7CF709C2FEC01D069ECCEC9E3BD +:1016F000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE5A +:101700000C94620880915F0490919102892B9091D2 +:101710009002892B80933002E0915204F09153049F +:10172000309731F00280F381E02D80E392E009945C +:10173000089580918F0290915E02981301C00895E0 +:101740008F5F8770FACF27E0929F800D1124982F2A +:10175000977086958695869523E0829FF0011124E7 +:10176000E35CFD4F50E040E080E0219130E0092E45 +:1017700002C0369527950A94E2F721703327042E8C +:1017800001C0220F0A94EAF7822B4F5F5F4F43306C +:10179000510559F7089527E0929F800D1124982F45 +:1017A000977041E001C0440F9A95EAF786958695B7 +:1017B000869593E0899FF0011124E35CFD4F90E052 +:1017C00080E070E05191DF0111979B01082E02C06B +:1017D000369527950A94E2F7217021952527242331 +:1017E00025272C9301968330910561F7089590E0A9 +:1017F00080E00E94840890E080E00E946E081092D1 +:101800009102109290020C94820B809392020C949D +:10181000F70B882341F0809590915F048923809392 +:101820005F040C94820B0895882339F090915F0433 +:10183000982B90935F040C94820B08958823B1F148 +:101840009CEF980F913A70F4E2E3F2E091918913E2 +:1018500003C0DF0111971C9242E0E833F407B1F7AF +:101860000C94820B90E2980F983088F4877021E0F6 +:1018700030E0A90102C0440F551F8A95E2F7CA0162 +:10188000809590915F04892380935F04E9CF9BE565 +:10189000980F933020F490E080E00C948408885AEC +:1018A000873120F490E080E00C946E0808950F9347 +:1018B0001F93CF93C82F882309F469C08CEF8C0F36 +:1018C000813AB0F502E312E088E392E0F801219159 +:1018D000C21701F122E0E833F207C9F7EFEF80E029 +:1018E000D8019D918D01C91781F0EF3F19F4911135 +:1018F00001C0E82F8F5F863099F7EF3F31F00E2E51 +:10190000000CFF0BE05DFD4FC283CF911F910F9143 +:101910000C94820BE2E3F2E02191C21303C0DF01D9 +:1019200011971C928E179F07B9F70E94820BD6CF92 +:1019300080E28C0F883068F4C77021E030E001C08D +:10194000220FCA95EAF780915F04822B80935F048F +:10195000DCCFEBE5EC0FE33050F4F0E0E154FE4F68 +:10196000808190E0CF911F910F910C948408C85A08 +:10197000C73168F4EC2FF0E0EE0FFF1FEE53FE4F7F +:1019800080819181CF911F910F910C946E08CF911E +:101990001F910F910895982F92959F7011F0892FA4 +:1019A00094E0282F2695269511F09E5F822F86952C +:1019B00009F09F5F892F0895DC01FB0180819181EF +:1019C000803891054CF08FE78C93808191818F57FF +:1019D000910991838083089581382FEF92073CF419 +:1019E00081E88C938081918181589F4FF2CF8C93B5 +:1019F000118210820895681708F5861B682F21E070 +:101A0000469FA0011124649FF001659FF00D1124F1 +:101A10004091590150915A01E49FC001E59F900DFA +:101A2000F49F900D1124880F892F881F990B919591 +:101A3000222319F09195819591090895681B20E062 +:101A4000DFCF0F931F93CF93DF9300D000D0CDB79C +:101A5000DEB789836A834B831C8204E610E024E0AE +:101A600030E0AE014F5F5F4F60E084E10E9473326F +:101A70000F900F900F900F90DF91CF911F910F91CA +:101A8000089580913203882329F047E669E98BE2C3 +:101A90000C94210D6091590170915A0190E080E001 +:101AA0000E94C23520E030E040E05CE30E94233633 +:101AB00020E030E040E85FE30E94BD35882321F05C +:101AC00047EC6BE180E0E4CF41E265EA89EDE0CFED +:101AD000CF92DF92EF92FF920F931F93CF93DF93FA +:101AE0006C017B0164E670E088E70E945B31EC01E9 +:101AF00097FD12C010E000E0F601E00FF11F8491A5 +:101B000064E670E00E94D531EC01892B29F40F5F67 +:101B10001F4F0E151F0581F70E94EF32CE01DF9196 +:101B2000CF911F910F91FF90EF90DF90CF9008958C +:101B300080914E0490914F04911103C091E0892748 +:101B40000895882369F062E070E08CEE9BE00E94CB +:101B5000680D892B19F080914E04089510924E045F +:101B600080914E04EBCFCF93C0914E0480914F04EF +:101B70008823D1F00E9462086058774C8E4F9F4FA7 +:101B800060934A0470934B0480934C0490934D04EB +:101B9000C11108C062E070E08AEE9BE00E94680D0F +:101BA000892B29F0C0914E048C2FCF91089581E0AC +:101BB00080934E04F7CF90916C04943029F5809374 +:101BC0005B0470935D0460935C049093E9008FEF75 +:101BD0009091E800815095FD06C095ED9A95F1F73A +:101BE00000008111F5CF8091E80085FF0DC050E025 +:101BF00040E063E070E08BE594E00E94250780916F +:101C0000E8008E778093E8000895BC0184E00C948E +:101C1000DB0DBC0183E00C94DB0D9C0184E0809320 +:101C2000E9009FEF8091E800915085FD06C085EDA9 +:101C30008A95F1F700009111F5CF8091E80085FFBA +:101C40000CC050E040E066E070E0C9010E9425074A +:101C50008091E8008E778093E8000895CF93DF931A +:101C6000EC0181E08093E9008FEF9091E8008150D2 +:101C700095FD06C095ED9A95F1F700008111F5CF1D +:101C80008091E80085FF14C050E040E068E070E01B +:101C9000CE010E9425078091E8008E778093E800AE +:101CA00088E0FE01A2E6B4E001900D928A95E1F78A +:101CB000DF91CF9108959F92AF92BF92CF92DF9222 +:101CC000EF92FF920F931F93CF93DF937C015B0101 +:101CD0006A018091D10201E010E08A3010F40AE03C +:101CE00010E0C1E0D0E0F894B501C701F601099514 +:101CF000982E0E94BC09911004C021960C171D0754 +:101D00006CF4892DDF91CF911F910F91FF90EF908F +:101D1000DF90CF90BF90AF909F900895CC9F90019F +:101D2000CD9F300D300D112490E080E045E34A95C1 +:101D3000F1F70000019682179307C1F7D4CF809185 +:101D4000A102811110C08091D80080618093D800D9 +:101D50008AE18A95F1F700C08091D90080FF0AC01E +:101D600081E08093A10281E09091A102913009F07D +:101D700080E0089582E08093A1020E94D50610922F +:101D80006C04F1CF0E949F0E882351F0E091520421 +:101D9000F0915304309721F00190F081E02D0994E7 +:101DA00080E008951F93CF93DF93182FEB010E94DB +:101DB000570C8FE99FE00197F1F700C000002197D1 +:101DC000C1F7812FDF91CF911F910C941E0C4F9280 +:101DD0005F926F927F928F929F92AF92BF92CF92BB +:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4 +:101DF000DEB7CE5DD1090FB6F894DEBF0FBECDBF02 +:101E0000509070019091770490FF5DC080905D03C9 +:101E100090905E038114910409F068C0E0E6F6E05A +:101E20009E012F5F3F4FBE0161527F4FC901A491B8 +:101E30004A2F50E0DA01AA0FBB1FA40FB51FA15A09 +:101E4000BC4FCD90DD90EC90D901CD92DD92ED921A +:101E50009D0131966A177B0751F720916F0143E08E +:101E6000249F800D911D1124539A2BB1277F3BB1E4 +:101E700038605FB7F894BC01549E600D711D112449 +:101E80008617970709F08EC05FBF8FE594E0019732 +:101E9000F1F700C00000C252DF4F0FB6F894DEBF6A +:101EA0000FBECDBFDF91CF911F910F91FF90EF90AB +:101EB000DF90CF90BF90AF909F908F907F906F906A +:101EC0005F904F900895809171012091720133E0ED +:101ED000839FF0011124E15AFC4F821708F096CF3E +:101EE0001182108212828F5F3396F7CF90FF96CFC8 +:101EF000D12CC12C66246394712C53E0452E809123 +:101F00005C0393010C2C01C0220F0A94EAF7822390 +:101F100009F43FC0F601EE0FFF1FE80DF91DE59033 +:101F2000F490E114F10409F479CF45E050E0B701F1 +:101F3000CE0101960E94563509810F3F51F18A81E9 +:101F4000800F9927991F8B34910514F08AE490E053 +:101F50005C01AA0CBB1C8A0D9B1DDC01A15ABC4F65 +:101F60005D01049D80011124015A1C4F0A151B05B7 +:101F700020F0B5E0EB0EF11CD8CF4D81413A08F0CE +:101F800040EA98016C818B810E9424090D5F1F4FEC +:101F9000EDCFEFEFCE1ADE0AF8E0CF16D10409F04C +:101FA000AECF3CCFFC014191CF01E8E03BB900004E +:101FB00000C047FF2BB9440F000000C000C000C0A4 +:101FC0002BB900C0EA9591F75BCFE7E7F4E0808199 +:101FD0008E7F8083E9E5F3E08281816082832FEF49 +:101FE00080E792E0215080409040E1F700C000007F +:101FF0000C94E70EE2E3F2E086E0DF011D928A95A1 +:10200000E9F70C94F70B1F93CF93DF93CDB7DEB7AF +:10201000AA970FB6F894DEBF0FBECDBF8EE694E050 +:102020002091F100DC012D93CD01B4E086379B07B0 +:10203000B9F780916F04833009F471C0B8F481302E +:1020400009F448C0823009F4B4C08091E80083FFED +:102050003CC180916E0490916F049A3008F035C1B4 +:10206000E92FF0E0ED51F94C0C9449358A3009F430 +:102070008FC08B3009F470C0893039F780916E04BD +:10208000813219F78091720490917304009711F0D6 +:102090000297D9F68091E800877F8093E8008091CD +:1020A000E80082FF37C09091F3008091F200029720 +:1020B00029F48091F1008B7F813021F48091F1002F +:1020C000809361048091E8008B778093E8000E9400 +:1020D0004F07BBCF80916E04813A09F0B6CF809153 +:1020E000E800877F8093E8008091720490917304E8 +:1020F000892B61F468E082E694E070E00E940108B8 +:102100008091E8008B778093E8009FCF60E090E0BB +:1021100080E0F3CF80916C048111C1CF96CF809184 +:102120006E04813A09F091CF80917204909173040A +:10213000892B09F08ACF8091E800877F8093E8009F +:102140008091E80080FFFCCF809174018093F100C2 +:102150008091E8008E77B9CF80916E04813209F0CA +:1021600074CF8091720490917304892B09F06DCF24 +:102170008091E800877F8093E8000E944F0780915C +:1021800070048093740110925F040E94FA0F5DCF77 +:1021900080916E04813209F058CF8091E800877FEA +:1021A0008093E8000E944F0780917104809360043F +:1021B0004CCF80916E04813A09F047CF8091E800BE +:1021C000877F8093E8008091E80080FFFCCF8091BA +:1021D0006004BCCF803899F0823809F076C08091D5 +:1021E00072048F70873008F070C08093E90080918E +:1021F000EB0085FB882780F91092E90006C08091EA +:102200006A0490916B04911182609091E800977F2D +:102210009093E8008093F1001092F1008091E80023 +:102220008E77B5C1882309F4A2C1823009F04DC070 +:10223000809170048111A6C1809172048F702FEF7C +:10224000280F263008F041C08093E9002091EB0070 +:1022500020FF98C1933031F48091EB00806280932D +:10226000EB0090C19091EB0090619093EB0021E026 +:1022700030E001C0220F8A95EAF72093EA0010921D +:10228000EA008091EB008860EACF81111EC01091B6 +:1022900070041F778091E3008078812B8093E300A6 +:1022A0008091E800877F8093E8000E944F0780912B +:1022B000E80080FFFCCF8091E30080688093E3001A +:1022C00082E0111183E080936C048091E80083FF29 +:1022D0000AC08091E800877F8093E8008091EB003E +:1022E00080628093EB00AA960FB6F894DEBF0FBE13 +:1022F000CDBFDF91CF911F9108958058823028F78C +:1023000020917004309171042C3DE3E03E07A1F56B +:1023100083E08A838AE289834FB7F894DE011396BB +:1023200020E03EE051E2E32FF0E050935700E491CB +:1023300020FF03C0E295EF703F5FEF708E2F90E0BB +:10234000EA30C0F0C7968D939D932F5F243159F7E3 +:102350004FBF8091E800877F8093E8006AE270E0D9 +:10236000CE0101960E9401088091E8008B7780934E +:10237000E800ABCFC096E7CF8091720490917304D0 +:10238000432F55274330510509F44AC078F54130B1 +:10239000510509F47AC08BE590E0EEEEFBE04230A7 +:1023A000510509F092CF2091E800277F2093E800A3 +:1023B00020917404309175048217930708F49C01EE +:1023C00040E02115310509F065C0411163C08091DD +:1023D000E80082FDC9CF80916C04882329F2853002 +:1023E00019F28091E80083FFF2CFBECF4132510550 +:1023F00009F43CC04232510509F067CF83309105A2 +:1024000008F063CFFC01EE0FFF1FEF5DFD4F019061 +:10241000F081E02D825E9D4FDC018C9190E01AC02E +:10242000332721303105D1F02115310561F02230FB +:10243000310509F04ACFEBE5FCE0E4918E2F90E006 +:10244000EBE5FCE007C0EDE8FCE0E4918E2F90E0C6 +:10245000EDE8FCE0009709F438CFA5CFEBE7FCE00E +:10246000E4918E2F90E0EBE7FCE0F4CF8330910510 +:1024700008F02BCF880F991FFC01E95DFD4F0190FB +:10248000F081E02D89E090E08ECF82E190E0E9E4F8 +:10249000FCE089CF80916C04882309F465CF8530F6 +:1024A00009F462CF8091E80083FD5ECF8091E8005F +:1024B00082FD8DCF8091E80080FF83CF9091F30063 +:1024C0008091F2002115310519F08830910550F006 +:1024D00041E0089709F040E08091E8008E77809312 +:1024E000E8006FCF44914093F100319621503109BB +:1024F0000196E8CF803809F0E8CE8091E800877F28 +:102500008093E80080916D048093F10087CE811163 +:10251000DCCE10917004123008F0D7CE8091E80024 +:10252000877F8093E80010936D040E944F0711236A +:1025300011F084E005C08091E30087FDFACF81E0CF +:1025400080936C0442E061EC81E00E946E0742E2FD +:1025500061EC84E00E946E0742E261EC82E00E943E +:102560006E0742E260EC83E00E946E07AECE80917F +:102570007004813009F0A9CE81E0933009F080E049 +:1025800080936B041092E9008091E800877F80932C +:10259000E8000E944F0799CE1F93CF93DF93162F29 +:1025A000C0917E06D0917F068A30D1F420914304F9 +:1025B000CE018E579440622F70E00E941535281B83 +:1025C000822F66E00E942935C82FC15020F4DF9188 +:1025D000CF911F91089560E080E20E94CC12F5CF68 +:1025E0008D30E9F4CE57D44020914304622F70E03F +:1025F000CE010E941535281B822F9E01280F311D08 +:102600002115324018F080E0D0E0C0E0C80FD11DA5 +:10261000C258DB4FD0937F06C0937E06D8CF96E09A +:10262000FE01A4E4B4E001900D929A95E1F7803E9A +:1026300090F186E0FE0111928A95E9F7C0917E063D +:10264000D0917F06111133C046E050E0BE0184E412 +:1026500094E00E945F359E012E573440892B91F5FE +:102660002A5F3F4F40914304642F70E0C9010E94EC +:102670001535481B463010F4240F311D211572E02A +:10268000370710F030E020E022583B4F30937F06B0 +:1026900020937E069CCFF6E08F9FB00111246655F3 +:1026A000794F46E050E0CE010E945635C7CF9E01DB +:1026B0002A5F3F4FFE012E173F0731F28081809540 +:1026C0008193F9CFC90145E0969587954A95E1F741 +:1026D00041E050E0BA0102C0660F771F8A95E2F729 +:1026E000CB0160917C0470917D04862B972BB901FE +:1026F0006B5F7F4FE5E076956795EA95E1F702C05D +:10270000440F551F6A95E2F7842B952B90937D0417 +:1027100080937C04A5CFFF920F931F93CF93DF93F9 +:10272000EC01F62EFC0101900020E9F78F01015029 +:102730001109C017D10730F0DF91CF911F910F9190 +:10274000FF9008956F2D89910E94CC12F2CFE1E4A1 +:10275000F4E08083618324E630E042E050E0BF0192 +:1027600084EB0C944C32CF93C82F60E08CE00E9435 +:10277000A7136C2F84E00E94A71361E08CE0CF9137 +:102780000C94A7131F93CF93DF93CDB7DEB7629757 +:102790000FB6F894DEBF0FBECDBF96E0E4E2F3E0E3 +:1027A000DE01179601900D929A95E1F796E0FE01F1 +:1027B0003796DE011D9601900D929A95E1F71885E6 +:1027C000882309F1162B84E00E94B3131E8786E04C +:1027D000FE013D96DE01119601900D928A95E1F77A +:1027E00086E0FE013196A4E2B3E001900D928A9555 +:1027F000E1F762960FB6F894DEBF0FBECDBFDF9152 +:10280000CF911F91089560951623E0CFCF93DF936A +:10281000C3EED2E060E0CE010E9489352196C11559 +:1028200084E0D807B9F7DF91CF9108956F927F9236 +:102830008F929F92AF92BF92CF92DF92EF92FF92D0 +:102840000F931F93CF93DF938AEAC82E86E0D82E8A +:1028500091ECE92EF12CE701CC58D10936011BC0CF +:10286000F50185909490692DC8010E948935682DE5 +:10287000C80101960E94893582E0A80EB11C0E5F46 +:102880001F4FC017D10761F78EE0680E711C2E969E +:10289000CE15DF0529F08E010E5011095301E0CF4E +:1028A0007E018CE8E80EF11C8CE8C80ED11C8DE787 +:1028B000E81683E0F80679F6DF91CF911F910F912A +:1028C000FF90EF90DF90CF90BF90AF909F908F9050 +:1028D0007F906F900895CF93C82F6FEF811161E2C1 +:1028E00083E290E00E9489356FEFC11161E184E2DB +:1028F00090E00E9489356FEFC11166E285E290E0B9 +:10290000CF910C94893580E00E946B1460E086E2E0 +:1029100090E00E9489350E9416140E94061481E0FE +:102920000C946B140F931F93CF93DF93C42FD0E0BD +:10293000CC0FDD1F2EE0629FC00DD11D11243CE89D +:10294000839FC00DD11D1124CE0187960E9475353D +:10295000082F10E0102F0027CE0188960E947535B1 +:102960009801282BC901DF91CF911F910F910895F4 +:10297000462F853038F47A3028F4673018F4672F02 +:102980000C94921490E080E00895CF92DF92FF9231 +:102990000F931F93CF93DF936C0100917604809186 +:1029A0009202082BC7E0D0E010E0FC2EC8010C2EEC +:1029B00002C0959587950A94E2F780FD0CC0219797 +:1029C000A0F7F12C8F2DDF91CF911F910F91FF90E8 +:1029D000DF90CF900895B6018C2F0E94B8140E940A +:1029E000180A019761F3EECFCF93DF93EC010E94B9 +:1029F000C514BE010E94B814DF91CF910C94180A3F +:102A0000FC01808191810E94F414292F2F709295EE +:102A10009F7092509E3078F4E92FF0E0E351F94C2A +:102A20000C944935803F19F020F4883E20F481E071 +:102A30000895843FE1F380E00895883EC0F3813F2C +:102A4000D1F7F5CF822F869586958695089583E2F6 +:102A500090E00E947535813289F484E290E00E9412 +:102A60007535813159F485E290E00E94753591E029 +:102A7000863209F090E0892F8170089580E0FCCFC4 +:102A8000CF92DF92EF92FF926B017C010E940E09C0 +:102A9000B701A60188E090E0FF90EF90DF90CF9023 +:102AA0000C949B35AF92BF92CF92DF92EF92FF9240 +:102AB0000F931F93CF93DF9300D00F92CDB7DEB764 +:102AC000082FF62E142FE22E8091770480FF4FC03E +:102AD000E82FE695AE2FB0E0AE5EBD4F9C9190938F +:102AE00059038E7F823009F056C0413A08F040EA1F +:102AF0009E012F5F3F4F6F2D802F0E9424098091F0 +:102B0000770480FF11C02B8139814A818091710146 +:102B10009091720153E0859FF0011124E15AFC4F1E +:102B2000891798F10E94E70E80917804801308C0FD +:102B3000809179048F1104C080917A04811729F063 +:102B400080915B03826080935B0300937804F09232 +:102B5000790410937A04EE2051F06091770470911B +:102B600078048091790490917A040E9440150F9026 +:102B70000F900F90DF91CF911F910F91FF90EF90E9 +:102B8000DF90CF90BF90AF90089541833083228330 +:102B90008F5F3396C5CF923039F6E2508E2F817019 +:102BA000D82EE695F0E0E55AF94FA590B490C12CE7 +:102BB000BB2460917301C61608F0B4CF2C2D30E011 +:102BC000A29EC001A39E900DB29E900D112470E0B4 +:102BD0000E941535802FD11016C0860F40917101CB +:102BE000420F532F511D9A01220F331F240F351FFF +:102BF000215A3C4F412F113A08F040EA6F2D0E94B4 +:102C00002409C394D6CF861BE9CFE7E7F4E04381DC +:102C100021E1421B08F440E021E0628181810C94B3 +:102C20005215E7E7F4E0438121E1420F08F44FEF4A +:102C300021E0628181810C945215E7E7F4E0628122 +:102C400021E1621B08F460E021E0438181810C9462 +:102C50005215E7E7F4E0628121E1620F08F46FEFBB +:102C600021E0438181810C945215E7E7F4E08181F2 +:102C700021E04381628188500C945215E7E7F4E02B +:102C8000818121E043816281885F0C94521580919B +:102C90007B04882319F0815080937B046091770432 +:102CA000709178048091790490917A040C94401585 +:102CB00080917B04833018F48F5F80937B04609154 +:102CC0007704709178048091790490917A040C943F +:102CD00040159091770490FF27C0917081111DC01D +:102CE00092609093770480915B03816080935B0393 +:102CF000662351F060917704709178048091790493 +:102D000090917A040E94401520E040917A046091ED +:102D10007904809178040C9452158C3010F09661EF +:102D2000E0CF880F982BDDCF089521E030E0A90196 +:102D300002C0440F551F8A95E2F7CA0120915C0337 +:102D4000662391F0822B80935C0380915B0380610A +:102D500080935B0380915A03811109C080917704AD +:102D600060E086950C94691680958223ECCF0895D7 +:102D7000CF93DF93C82FC17082FBDD27D0F981FB91 +:102D8000662760F985E00E94951661E06C2786E071 +:102D90000E9495166D2F87E0DF91CF910C949516C8 +:102DA0000F931F93CF93C82F61E08111682F61703B +:102DB00080E00E949516C1FB662760F9C11101C031 +:102DC00060E081E00E949516C2FB662760F9C111A0 +:102DD00001C060E082E00E949516C3FB662760F99F +:102DE000C11101C060E083E00E949516C4FB662714 +:102DF00060F9C11101C060E084E00E9495164C2F7B +:102E000050E070E060E0DB01CA01F4E0B695A79500 +:102E100097958795FA95D1F70097A105B10549F1E6 +:102E2000AC01BD0184E08A019B01E2E03695279563 +:102E300017950795EA95D1F701151105210531057B +:102E400019F08E5FB901A80176956795579547955A +:102E5000452B462B472B09F08F5F8230D1F158F478 +:102E60008823E9F0813059F18C2FCF911F910F9178 +:102E7000089580E0D8CF8330A1F18430A9F720E015 +:102E800040E56FEF8AED0E94521587E00E94B31370 +:102E900080910001882341F3109232030DC020E09D +:102EA00040E56FEF82E30E94521580910001882374 +:102EB00099F381E0809332030E94410DD5CF20E049 +:102EC00040E56FEF8CEF0E94521585E40E94B3132A +:102ED000CBCF20E040E56FEF80E50E94521585E200 +:102EE000F5CF20E040E56FEF86E70E9452158FE1B5 +:102EF000EDCF0E94D016809376040C94F70B80914E +:102F00007604982F9670963019F488600C9479178F +:102F1000877FFCCF21E030E001C0220F8A95EAF7DD +:102F200020958091760482230C94791721E030E07B +:102F300001C0220F8A95EAF780917604822B0C94C7 +:102F40007917809177048695815009F48BE061E0D0 +:102F50000C9469168091770486958F5F8C3008F009 +:102F600081E061E00C9469168091770480FF07C0CE +:102F7000869582588F77893010F40C94AA1761E0F7 +:102F800082E00C946916E7E7F4E083E08083118225 +:102F90008FEF828380EA83831482A9E5B3E01296DF +:102FA0008C911297836012968C93608171818281DB +:102FB00093810C944015AB01BC0188E190E00C9426 +:102FC0009B35CF93C82FEFE3F4E0982F990F990F1B +:102FD000990F80818770892B8083E0E4F4E09C2F37 +:102FE0009295969597708081887F892B80836091D8 +:102FF0003D0470913E0480913F04909140040E94F2 +:10300000DB176C2F82E0CF910C94A713EDE3F4E073 +:1030100089E88083118282818C7F828360913D0464 +:1030200070913E0480913F04909140040C94DB1712 +:10303000EDE3F4E080818E7F808360913D047091A8 +:103040003E0480913F04909140040C94DB17EDE323 +:10305000F4E080818160808360913D0470913E0442 +:1030600080913F04909140040C94DB1769EE7EEF51 +:1030700090E080E00E94A73560E082E090E00E944E +:10308000893560E083E090E00E94893510929202D9 +:1030900060E084E090E00E94893560E082E290E0A8 +:1030A0000E94893560E085E090E00E94893560E00B +:1030B00086E090E00E9489356FEF87E090E00E9403 +:1030C000893540E050E0BA0188E090E00E949B35ED +:1030D00060E08DE090E00E94893540E050E0BA0168 +:1030E00088E190E00E949B3560E087E190E00E94DB +:1030F000893540E050E0BA018CE190E00E949B35B8 +:1031000070E060E080E290E00E94A7350E9406181F +:1031100080E00E946B140E94831440E050E0BA01EA +:103120008FE090E00E949B3540E050E0BA0183E1DF +:1031300090E00C949B350F931F93CF93DF9300D0B7 +:1031400000D0CDB7DEB74091C5025091C602609164 +:10315000C7027091C8022FB7F894809157049091DC +:103160005804A0915904B0915A042FBF841B950BA9 +:10317000A60BB70B84369105A105B10588F10E9415 +:103180009F0E882379F10E9462086E5F7F4F8F4FF8 +:103190009F4F69837A838B839C8380912C019091CC +:1031A0002D0181559D4F40912B0150E04530510537 +:1031B00010F044E050E0BE016F5F7F4F0E946C351D +:1031C00084E090E00E946134892BD9F40E94620867 +:1031D0006093C5027093C6028093C7029093C802A1 +:1031E00081E010C00E9462080091D2021091D302C7 +:1031F0002091D4023091D502600F711F821F931F5E +:10320000C4CF80E00F900F900F900F90DF91CF917F +:103210001F910F9108958F929F92AF92BF92CF927C +:10322000DF92EF92FF920F931F93CF93DF93EB0107 +:1032300088809980AA80BB809FB7F894C09057047B +:10324000D0905804E0905904F0905A049FBFC818D9 +:10325000D908EA08FB0894E6C916D104E104F10490 +:1032600010F4442311F1E82E082E000CFF089AE018 +:103270008902F0011124EF5FFE4F83819481815513 +:103280009D4F428150E00417150708F4A801B901C9 +:103290000E946C35C7010E946134892BA1F40E9401 +:1032A0006208688379838A839B8381E0DF91CF9171 +:1032B0001F910F91FF90EF90DF90CF90BF90AF9054 +:1032C0009F908F90089580E0F1CF0F931F93CF933D +:1032D000DF930F92CDB7DEB780914E0489832091A2 +:1032E000C40290E041E02817190609F440E001E02B +:1032F00010E09E012F5F3F4F6DEC72E086E00E9470 +:103300000B190F90DF91CF911F910F9108950F939B +:103310001F93CF93DF93CDB7DEB729970FB6F894FD +:10332000DEBF0FBECDBF85E0E7E7F4E0DE0111961A +:1033300001900D928A95E1F78091590390915A037B +:10334000A0915B03B0915C038E839F83A887B987AC +:1033500041E08885811101C040E009E010E09E0154 +:103360002F5F3F4F69EC72E085E00E940B198111DD +:1033700010925B0329960FB6F894DEBF0FBECDBF47 +:10338000DF91CF911F910F9108956F927F928F924D +:103390009F92AF92BF92CF92DF92EF92FF920F93E4 +:1033A0001F93CF93DF930F92CDB7DEB7862E5A01CE +:1033B0006901682E880F7708C3010E946134892B48 +:1033C00009F088C08AE0869DF001879DF00D1124E8 +:1033D000EF5FFE4F458150E04115510511F041E08E +:1033E00050E08AE0869DF001879DF00D1124EF5F8B +:1033F000FE4F6681778161557D4FCE0101960E9417 +:103400006C35F50140815181628173812FB7F89449 +:103410008091570490915804A0915904B0915A0496 +:103420002FBF841B950BA60BB70B84369105A10506 +:10343000B10540F4B701C8010E94F30899818917CA +:1034400009F44FC0082C000C9908C4010E94613493 +:10345000892B91F0B12C8B2D0F90DF91CF911F9183 +:103460000F91FF90EF90DF90CF90BF90AF909F9023 +:103470008F907F906F9008958AE0889DF001899DDC +:10348000F00D1124EF5FFE4F458150E0E416F50684 +:1034900008F4A7018AE0889DF001899DF00D1124B0 +:1034A000EF5FFE4F6681778161557D4FC6010E94B7 +:1034B0006C35B701C8010E94F30899818913CACFFE +:1034C0000E946208F5016083718382839383BB2429 +:1034D000B394C1CFB12CA701B801C6010E946C35CD +:1034E000BACFBB24B394F7CFCF92DF92EF92FF9283 +:1034F0000F931F93CF93DF9300D000D00F92CDB7DF +:10350000DEB76B0185E0E82EF12C00EB12E09E01A6 +:103510002F5F3F4F47EA52E061E080E00E94C5190B +:10352000882349F095E0FE013196A2EAB2E00190CD +:103530000D929A95E1F795E0E2EAF2E0D60101906A +:103540000D929A95E1F70F900F900F900F900F90BA +:10355000DF91CF911F910F91FF90EF90DF90CF906F +:10356000089590E080E00E948335893E9E4F11F4DB +:103570000C94271580E008951F920F920FB60F92BA +:1035800011242F933F934F935F936F937F938F9368 +:103590009F93AF93BF93CF93DF93EF93FF93D0911C +:1035A000E900DF708091EC00C82FC17080FDC0E899 +:1035B0001092E9008091F000877F8093F00078946A +:1035C0000E9403101092E9008091F00088608093BF +:1035D000F000CD2BCF70C093E900FF91EF91DF9108 +:1035E000CF91BF91AF919F918F917F916F915F919B +:1035F0004F913F912F910F900FBE0F901F901895F4 +:103600001F920F920FB60F9211242F933F934F9357 +:103610005F936F937F938F939F93AF93BF93EF933A +:10362000FF938091E10082FF09C08091E20082FF58 +:1036300005C08091E1008B7F8093E1008091DA00EA +:1036400080FF24C08091D80080FF20C08091DA00E4 +:103650008E7F8093DA008091D90080FF9BC080E14B +:1036600089BD82E189BD09B400FEFDCF81E0809370 +:103670006C0480915E04811109C00E94D5060E94ED +:10368000A0078091E20084608093E2008091E100D5 +:1036900080FF17C08091E20080FF13C08091E2009C +:1036A0008E7F8093E2008091E20080618093E2004F +:1036B0008091D80080628093D80019BC85E0809307 +:1036C0006C048091E10084FF29C08091E20084FFB6 +:1036D00025C080E189BD82E189BD89B5982F9170AF +:1036E00080FFFBCF8091D8008F7D8093D8008091A0 +:1036F000E1008F7E8093E1008091E2008F7E8093D5 +:10370000E2008091E20081608093E20080916D048C +:10371000882309F445C084E080936C048091E10023 +:1037200083FF27C08091E20083FF23C08091E100E6 +:10373000877F8093E10082E080936C0410926D0497 +:103740008091E1008E7F8093E1008091E2008E7F86 +:103750008093E2008091E20080618093E20042E089 +:1037600060E080E00E946E078091F00088608093A6 +:10377000F000FF91EF91BF91AF919F918F917F9159 +:103780006F915F914F913F912F910F900FBE0F90CE +:103790001F90189519BC10926C0410925E0476CF9D +:1037A0008091E30087FD93E090936C04B7CF789409 +:1037B0001F921FB61F9211248F939F93AF93BF93B5 +:1037C0008091570490915804A0915904B0915A04E3 +:1037D0000196A11DB11D8093570490935804A093A6 +:1037E0005904B0935A04BF91AF919F918F911F904C +:1037F0001FBE1F9018959C014FB7F89480915704F5 +:1038000090915804A0915904B0915A044FBF821B63 +:10381000930B08952FB7F894809157049091580412 +:10382000A0915904B0915A042FBF08955F926F92EE +:103830007F928F929F92AF92BF92CF92DF92EF9240 +:10384000FF920F931F93CF93DF9300D000D00F927E +:10385000CDB7DEB77C01FC0183819481892B31F0E7 +:103860008081918189238F3F09F08CC60F900F9042 +:103870000F900F900F90DF91CF911F910F91FF90BC +:10388000EF90DF90CF90BF90AF909F908F907F9000 +:103890006F905F9008950E94C514182F682F89813A +:1038A0009A810E94CB0B69817A81812F0E94B81482 +:1038B0008C01F7018281882361F0F801E65EFC4506 +:1038C000ED30F10530F4E550F94C0C9449350E9487 +:1038D0002718D0903D04D0FE1CC08D2D8695837096 +:1038E000F7019281992309F460C1823090F4B70105 +:1038F000C8010E94B108882361F0D694D694D6946A +:1039000080913E0483708295880F807E8D290E946D +:10391000B313F7018281882309F429C6C8018251B3 +:103920009F45409708F0ECC58FEF93E00E947535F6 +:10393000025193EEA92E92E0B92E811197CF011179 +:1039400038C11C821B82662463948AE0582E85014C +:103950000F5F1F4FC5010E94753589831A82882326 +:1039600009F484CF9FEF980F933008F031C18A8318 +:10397000698232E0A30EB11CC8010E9475358B83A9 +:10398000882309F473CF8E010F5F1F4FF801208148 +:103990002223E9F2213009F055C1918182819130D1 +:1039A00009F018C10E5F1F4F6AE070E0893311F40F +:1039B00060E570E00E94D20E13C10E94181889CFF2 +:1039C00080913D0480FF0DC00E94181860913D0455 +:1039D00070913E0480913F04909140040E94DB1757 +:1039E00078CF0E942718F2CF0E94061872CF9091CC +:1039F0003D04892F86958F5F8370880F997F892B6F +:103A000080933D04982F9670963001F7897F8093BC +:103A10003D04DCCF90913E04892F8B7F92FF846020 +:103A200080933E04D3CF80913D04982F9695969530 +:103A3000969580913E0483708295880F807E892BB5 +:103A40008C3798F48F5F282F220F220F220F90912E +:103A50003D049770922B90933D04829586958370D8 +:103A600090913E049C7F892BDBCF81E0ECCF80914D +:103A70003D04982F96959695969580913E04837077 +:103A80008295880F807E892B11F08150DCCF8BE7E7 +:103A9000DACF30913E04932F969596959695209186 +:103AA0003F04822F83708295880F807E892B90E05F +:103AB0000196482F440F440F440F3770342B309336 +:103AC0003E0435E0969587953A95E1F783702C7F13 +:103AD000822B80933F047ACF30913E04932F9695AA +:103AE0009695969520913F04822F83708295880F3A +:103AF000807E892B8150990BDCCF80913F0482FF1F +:103B000012C08B7F80933F0460913D0470913E040E +:103B100080913F04909140040E94DB1760E081E0B7 +:103B20000E94A713D6CE846080933F0460913D0429 +:103B300070913E0480913F04909140040E94DB17F5 +:103B400060E08CE00E94A71364E182E00E94A7136A +:103B500065E081E00E94A71361E08CE0E1CF8091F5 +:103B60003F04982F9695969596958091400482955E +:103B7000880F807E892B883720F4865F0E94E117AA +:103B8000A8CE88E7FBCF80913F04982F9695969515 +:103B90009695809140048295880F807E892B843190 +:103BA00010F08A50EBCF84E1E9CF882309F4B1CE3D +:103BB0009ECEA114F4E0BF0609F458CEC5010E94C0 +:103BC0007535811101C001502FEFA21AB20AB7CE8C +:103BD0005801D9CE923039F40E5F1F4F0E94570C16 +:103BE0000F5F1F4FD3CE933029F40E5F1F4F0E94FB +:103BF0001E0CF6CF943019F00F5F1F4FF1CF0E5F00 +:103C00001F4F30E020E0B8016F5F7F4FF801418126 +:103C10008053990B8A30910550F02150310900F3FF +:103C20008FE99FE00197F1F700C00000F6CF529EA8 +:103C3000F001539EF00D11249C012E0F3F1F842F85 +:103C40008B01E1CFE22FF0E0E75FFD4F7490822F10 +:103C500086958695869590E0FC01E750FE4FE490AE +:103C60002770F12C022E02C0F594E7940A94E2F733 +:103C7000E1E0EE22FF24FC01E751FE4FC490D12C7D +:103C8000022E02C0D594C7940A94E2F7F1E0CF2245 +:103C9000DD24FC01E752FE4F8490912C02C09594E4 +:103CA00087942A95E2F721E082229924E114F10415 +:103CB00019F081EE0E94570CC114D10419F086EE60 +:103CC0000E94570C39E36AE070E0731202C060E5AD +:103CD00070E0872D0E94D20ECD2819F086EE0E944A +:103CE0001E0CEF2819F081EE0E941E0C892809F4A1 +:103CF00077CF6AE070E08CE25DCE81E00E9496179B +:103D000003C081E00E948A170F900F900F900F90D0 +:103D10000F90DF91CF911F910F91FF90EF90DF9067 +:103D2000CF90BF90AF909F908F907F906F905F905B +:103D30000C947F1782E0E2CF043F110509F455C1CE +:103D400008F057C1053E110509F4DDC0F701928165 +:103D500091113CC280915F0482720A3CFCE51F070E +:103D600009F414C208F06AC1053C3CE5130709F4E4 +:103D7000F9C108F04EC1033C5CE5150709F4D3C155 +:103D800008F0EBC1023C1C4509F47DC1F70100813C +:103D90001181992309F434C2C8010E94C514D82E98 +:103DA000682FC8010E94CB0BB8018D2D0E94B8145A +:103DB0000E94180A182FB82EF70122814581342F4E +:103DC00032953F70892F82958F70C82ED12C8C3000 +:103DD00008F04EC2F601E85FF84C0C944935033800 +:103DE000FFE51F0709F481C018F501383FE5130707 +:103DF00009F44AC008F065C000385FE5150709F00E +:103E0000A5CF882309F459C080919C02811106C076 +:103E100081E080939C0282EE0E94570C0E940A1C53 +:103E200090939B0280939A028BE20E94570C8ECF54 +:103E300005389FE5190709F4BEC008F476C00638B6 +:103E4000FFE51F0709F082CF882309F4CEC06091F7 +:103E5000590170915A0190E080E00E94C23520E043 +:103E600030E040E05CE30E94233620E030E040E8B0 +:103E70005FE30E94BD358111B5C080EE90E0909364 +:103E80005A0180935901A1C08823A1F080919C021E +:103E9000811106C081E080939C0282EE0E94570C43 +:103EA0000E940A1C90939B0280939A0281EE0E94CA +:103EB000570CBACF81EE0E941E0C8BE20E941E0CA2 +:103EC00045CF882309F442CF81EE0E94570C83EE40 +:103ED0000E94570C8FE40E94570C8FE40E941E0C26 +:103EE00083EE0E941E0C81EEE9CF882309F42ECFC9 +:103EF00081EE0E94570C83EE0E94570C80E50E94D1 +:103F0000570C80E5EBCF80933C0210933B0200936B +:103F10003A02882321F081E08093EE0217CF1092BD +:103F2000EE0214CF80933902F0CF882379F180918B +:103F30003902882349F080913A020E941E0C80EEDB +:103F40000E94570C8AE20CC080913C028823D1F376 +:103F500080913A020E941E0C80EE0E94570C8CE465 +:103F60000F900F900F900F900F90DF91CF911F91B6 +:103F70000F91FF90EF90DF90CF90BF90AF909F9008 +:103F80008F907F906F905F900C94570C8AE20E9404 +:103F90001E0C8CE40E941E0C80EE0E941E0C809170 +:103FA0003902811105C080913C02882309F45ECC5E +:103FB00080913A02D5CF8823C1F0809132038823C3 +:103FC00039F010923203109200010E94410DBECED2 +:103FD000809100018111F7CF81E0809332038093BB +:103FE0000001F3CF80E890E04ACF61E00E94C21365 +:103FF000ADCE62E0FBCF64E0F9CF882321F081E011 +:104000008093ED02A3CE1092ED02A0CE1092F002AA +:104010009DCE073C2CE5120709F4AEC008F4A7C0FA +:10402000083C4CE5140709F4ACC0093C1C4509F0F8 +:10403000ADCE45E056E161E176E179C0043DECE5C5 +:104040001E07A8F40E3CFCE51F0708F00FCC0C3C43 +:104050002CE5120709F49FC047E456E168E576E1D4 +:104060000D3C1C4508F463C061E081E046C0053D9D +:104070004CE5140709F4FACB08F492C00D351D4540 +:1040800009F4F4CB83CE8091770480FF31C08E7F1A +:10409000809377046091770470917804809179041B +:1040A00090917A040E94401580915B038160809317 +:1040B0005B039FEFE0E7F2E09150E040F040E1F772 +:1040C00000C000000F900F900F900F900F90DF91A5 +:1040D000CF911F910F91FF90EF90DF90CF90BF9005 +:1040E000AF909F908F907F906F905F900C94E70EB1 +:1040F00081608093770461E086950F900F900F9018 +:104100000F900F90DF91CF911F910F91FF90EF9043 +:10411000DF90CF90BF90AF909F908F907F906F90E7 +:104120005F900C94691641EA57E16AEA77E10F90D3 +:104130000F900F900F900F90DF91CF911F910F91E3 +:10414000FF90EF90DF90CF90BF90AF909F908F90B7 +:104150007F906F905F900C9409094AEA57E161EAF9 +:1041600077E1E5CF45E356E16EE376E1E0CF4EE35C +:1041700056E165E376E1DBCF4DE156E169E276E1B8 +:10418000D6CF49E256E16DE176E1D1CF41E156E18A +:1041900065E076E1CCCF48E556E167E476E1C7CF4C +:1041A0000F900F900F900F900F90DF91CF911F9174 +:1041B0000F91FF90EF90DF90CF90BF90AF909F90C6 +:1041C0008F907F906F905F900C94B4170E3D1C45BC +:1041D00009F0DCCD0F900F900F900F900F90DF91B2 +:1041E000CF911F910F91FF90EF90DF90CF90BF90F4 +:1041F000AF909F908F907F906F905F900C94361847 +:10420000C8010E94A30BD82ECFCD092F0F70907F2D +:1042100011F00295007F812F2223C9F0002369F05D +:1042200090E2910F983010F011110BC080915F0453 +:10423000082B00935F040E94820B812F0E94570C71 +:1042400017C080919102082B00939102F4CF0E9435 +:104250001E0C002369F00095105E183010F0B110AC +:1042600027C080915F04082300935F040E94820BA3 +:1042700098E0C91AD108E4E0CE16D10408F0F6CAD5 +:104280000E94C20E0F900F900F900F900F90DF9131 +:10429000CF911F910F91FF90EF90DF90CF90BF9043 +:1042A000AF909F908F907F906F905F900C94B81616 +:1042B00080919102082300939102D8CF892F8F70AB +:1042C000907F903211F08295807FF1E0BF120CC098 +:1042D000222329F0333060F60E94140CC9CF32300B +:1042E00038F60E94090CC4CF222341F03323A1F3F6 +:1042F00040FFA3CF4F70F7014583EECF332389F3FF +:10430000193309F0F5C0FFEF27EE33E0F1502040FC +:104310003040E1F700C00000812F0E941E0CA8CFA2 +:10432000892F86958695837061F0813009F0A0CF42 +:10433000812F9370211102C090E080E00E946E08EE +:1043400097CF812F9370211102C090E080E00E94EE +:1043500084088ECF892F8370A1F5211189CF812FF9 +:10436000829586958770880F880F412F4F70082E91 +:1043700001C0440F0A94EAF7212F207114FF07C0EF +:104380002FE030E001C0220F8A95EAF7209596953C +:1043900096959370923081F0822F842B933030F475 +:1043A00080919202913029F0242B82230E94050CE7 +:1043B0005FCF842B822BFACF242B8091920282270D +:1043C000F5CF8695222311F0892F8170882309F477 +:1043D0004FCF812F829586958770880F880F412F48 +:1043E0004F70082E01C0440F0A94EAF7212F207164 +:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 +:104400002095969596959370923081F0822F842B0B +:10441000933030F480917604913029F0242B82235C +:104420000E94791725CF842B822BFACF242B8091E1 +:1044300076048227F5CF092F0F70222329F0802FD1 +:104440000E949617812F48CF812F0E94090C802F40 +:104450000E948A170DCF812FE1EF1E1789F1E11716 +:1044600050F0F0EF1F17B9F02223B1F13111E5CE72 +:10447000892F8F7129C042EF141749F153EF15139B +:10448000F3CF80E0222361F29F7181E001C0880FA9 +:104490009A95EAF7C5CF222379F0323008F0E8CEBA +:1044A000292F2F7181E090E001C0880F2A95EAF74B +:1044B000909176048927B4CF333008F0D9CEF0CF6D +:1044C000892F8F71222321F20E949617D1CE892F36 +:1044D0008F712223C9F3BCCF332379F0893341F4A0 +:1044E0008FEF97EEE3E081509040E040E1F712CF8C +:1044F0008FE39CE90197F1F70DCF892F8F71A8CF3A +:104500000031FFE51F0709F4F8CB01312FE5120751 +:1045100009F410CC0E9462086093F5027093F602D1 +:104520008093F7029093F802F7018281063F11050C +:1045300009F461CD08F053CC043E110509F45DCDBA +:1045400008F0FACB003E110509F457CD013E1105E4 +:1045500009F4E8CC0C32110509F0F8CB882309F4F2 +:1045600055CD81E08093F00210926701EFCB0031CE +:104570003FE5130709F4C5CB01314FE51407A1F658 +:1045800082E0C0CB85E0DE01119601900D928A9504 +:10459000E1F7F701228189819A8121117CC90E946A +:1045A000A30B182F80C91F93CF93DF9380915D02D7 +:1045B000807FA9F480915A02882389F080918F022C +:1045C000D0915E026091580270915902A0915B02F5 +:1045D000B0915C02C62FC72316E0D81304C0DF9148 +:1045E000CF911F91089590E0109711F0CF3F19F4EB +:1045F00001968770F2CF189F9001199F300D1124FA +:10460000F901E15AFD4F41814713F2CF4081461332 +:10461000EFCF42814111ECCF438154814A1B5B0BA8 +:10462000403A510528F780915D028F708061809338 +:104630005D02F901EC59FD4F80818F7080618083AC +:1046400088E592E00E94161CDF91CF911F910C9497 +:10465000990BAF92BF92CF92DF92EF92FF920F939E +:104660001F93CF93DF93CDB7DEB761970FB6F89462 +:10467000DEBF0FBECDBF8C0185E0F801DE011D96C7 +:1046800001900D928A95E1F7F801E28088E5A82E65 +:1046900082E0B82E60915B0270915C026115710539 +:1046A00009F432C19091580240915902892F842314 +:1046B0008F3F09F429C120813181C380D480F090DB +:1046C0005A02F601E61BF70BFF2009F4E8C08091BF +:1046D0005D02582F507FE03AF10508F0ABC0511150 +:1046E00077C0FE2C431321C092131FC0E1101DC0E0 +:1046F0008F70806180935D02C5010E94161C8091BD +:104700005D02F80185838F2D61960FB6F894DEBFA8 +:104710000FBECDBFDF91CF911F910F91FF90EF9012 +:10472000DF90CF90BF90AF900895CD2829F0822FD1 +:1047300083238F3F09F003C180E0F82FF170DF2E53 +:1047400080FF3CC080918F0240915E0256E084134E +:1047500015C02D873E878D859E850E94F414292FD4 +:1047600022952F702230F0F0243018F59F70F1F070 +:10477000F8019581907FD1F4D12C1EC090E0589F14 +:10478000F001599FF00D1124E15AFD4F618136135C +:1047900006C06081261303C06281E6120FC0019635 +:1047A0008770D5CF9F7011F0882331F3805E8830F9 +:1047B00018F3C8010E94161CFD2CA5CFEE2009F4A9 +:1047C000A2CF80915D02816080935D02F12C9BCF2E +:1047D000431306C0921304C0F801EE2009F479C017 +:1047E000C8010E940015882309F1EE20F9F080919C +:1047F0005D02803270F02091580230915902388762 +:104800002F831986DB86CA868C87CE0107960E9485 +:10481000161C86E0F801A8E5B2E001900D928A9599 +:10482000E1F70E94D322FF24F3946DCFC8010E94C8 +:10483000161CF9CF51110AC088E592E00E94161C9F +:1048400086E0F50111928A95E9F7C0CF43130FC0B6 +:1048500092130DC0E1100BC0F8018583C8010E94BE +:10486000161C86E0F50111928A95E9F74CCFC80134 +:104870000E9400158823D1F2EE20C1F280915D02E2 +:10488000803238F220915802309159023A832983BC +:104890001B82DD82CC828E83CE010196B8CFE03AB6 +:1048A000F105F8F6FE2CEE2009F243131FC0921317 +:1048B0001DC080915D0280FD10C0982F907F69F02F +:1048C000F8018583903F31F0982F907F905F8F7033 +:1048D000892B8583C8010E94161C86E0F801A8E593 +:1048E000B2E001900D928A95E1F70DCFC8010E94C8 +:1048F000001581118ECF80915D02816080935D02F1 +:10490000C8010E94161CFFCEEE2009F48FCFC8010B +:104910000E940015F82E882309F488CF86E0F8015C +:10492000A8E5B2E001900D928A95E1F780915802D6 +:10493000909159020E94F4140E94D322E4CE81E0A7 +:104940008E25FBCE1F93CF93DF93CDB7DEB767974E +:104950000FB6F894DEBF0FBECDBF4B8B5C8B6D8B5B +:104960007E8B8F8B6111109291021A8A198A85E0D1 +:10497000FE017396DE011D9601900D928A95E1F776 +:1049800086E0FE013D96DE01179601900D928A9514 +:10499000E1F7CE0107960E942923882389F016E0CB +:1049A00080918F0290915E0289134BC067960FB67B +:1049B000F894DEBF0FBECDBFDF91CF911F91089558 +:1049C00086E0FE013796DE01119601900D928A95E0 +:1049D000E1F78A859B85892B11F38F81988589233F +:1049E0008F3FE9F220915E0230E0C90101968770A5 +:1049F000992740918F024817190681F410925F049D +:104A00000E94FA0F10925E0210928F0286E0E8E593 +:104A1000F2E0DF011D928A95E9F7C1CF96E0929FFF +:104A2000D001939FB00D1124A15ABD4FFE013196C4 +:104A300001900D929A95E1F780935E020E94990B86 +:104A4000AECF819FC0011124815A9D4F0E9429231E +:104A5000882309F4ABCF80918F0290E00196877094 +:104A6000992780938F029CCF9F92AF92BF92CF9253 +:104A7000DF92EF92FF920F931F93CF93DF93CDB707 +:104A8000DEB764970FB6F894DEBF0FBECDBF8E01C0 +:104A90000F5F1F4F8AE0D8011D928A95E9F79EE4C7 +:104AA000C92E91E0D92EF12CE12CAA24A394B12C8B +:104AB000F60181916F018F3F09F44AC0F894E82F05 +:104AC000E295EF70F0E021A18F70A50102C0440FC4 +:104AD000551F8A95E2F7CA01922F982B91A392A1B4 +:104AE0008095892382A30E94BC0900C0E7E4F1E01D +:104AF00030E020E0912C41914F3F09F47DC0A42F7C +:104B0000A295AF70B0E090968C9190E04F7002C08B +:104B1000959587954A95E2F780FD6EC08A2D022E05 +:104B200001C0880F0A94EAF7982A2F5F3F4F273079 +:104B3000310509F7F601319780818F3F11F00E940E +:104B4000BE0950EA5A95F1F7F801EE0DFF1D90826B +:104B50008FEFE81AF80A95E0E916F10409F0A8CFFA +:104B60004AE050E0B80188ED92E00E945F357C0198 +:104B7000892B41F08AE0F801A8EDB2E001900D9296 +:104B80008A95E1F71091E302E114F104B9F181E0B3 +:104B9000809395020E940A1C909394028093930242 +:104BA00080919302909194020E94FB1B069770F0F3 +:104BB000A8EDB2E0E12FF0E0E15BFC4F8D91819335 +:104BC00022E0AD3DB207D1F71092950281E090E06E +:104BD000EF28C1F064960FB6F894DEBF0FBECDBFCC +:104BE000DF91CF911F910F91FF90EF90DF90CF90C9 +:104BF000BF90AF909F90089580E096CF80919502EE +:104C00008111CECF0E949F0EB82EE091E30288233F +:104C100009F4C7C08E01005F1F4F85E0D8011D92C7 +:104C20008A95E9F7F0E09F01215B3C4F7901809183 +:104C3000D102AE014B5E5F4F6A018A3008F086C038 +:104C400044E75AE1B801C7010E945B0E882309F4CA +:104C500094C045EA57E2B801C7010E945B0E882361 +:104C600009F48BC04BE958E1B801C7010E945B0E03 +:104C7000882309F482C047E859E1B801C7010E94BE +:104C80005B0E882309F479C045E659E1B801C701F4 +:104C90000E945B0E882309F470C01092D102E0914B +:104CA000E202F0E0AF01415B5C4FD80110E0FA0195 +:104CB0009191AF018D91981731F09F0121503109E9 +:104CC000F90180831B2DCA16DB0689F780919C02AF +:104CD000882371F080919A0290919B020E94FB1BA5 +:104CE000893E934028F082EE0E941E0C10929C0296 +:104CF00088E9C82E82E0D82EF12CE12CD6018D91C6 +:104D00006D018823D1F08695F70109F447C0EC5076 +:104D1000FE4F808191819C878B871D860E940A1C93 +:104D20008160782F9F878E87F601319710824B859F +:104D30005C856D858F850E94A224B2E0EB0EF11C8C +:104D4000E4E0EE16F104D1F6812F44CF8091960273 +:104D5000909197020E94FB1B843F914008F070CF16 +:104D6000A091E202B0E0A15BBC4FF8011D9211924C +:104D7000CE16DF06D9F71B2DA9CF8091D1028F3F28 +:104D800031F08F5F8093D1028A3008F488CF0E947F +:104D90000A1C9093970280939602E2CFE051FE4F57 +:104DA000B8CFF0E0E15BFC4FF89485E0A0EBB2E017 +:104DB00001900D928A95E1F765E070E080EB92E05A +:104DC0000E94F3088093AF020E94BC09F894E0911E +:104DD000EB02F0E0E851FD4F80818B878093B602B3 +:104DE00061E070E0CE010B960E94F3088093B5025B +:104DF0000E94BC09F894C090B702D090B802E0902D +:104E0000B902F090BA0280919D0290919E02A09109 +:104E10009F02B091A002C816D906EA06FB06D1F09F +:104E2000C0929D02D0929E02E0929F02F092A00258 +:104E30000E949F0E81110EC00E946208C61AD70AF6 +:104E4000E80AF90AC092D202D092D302E092D402C8 +:104E5000F092D5020E94BC09F8948091C202882386 +:104E600021F184FF04C09091C30290935C0380FF02 +:104E70000DC08091BB0280FF25C0909177049160A6 +:104E80009093770460E086950E9469168091C20233 +:104E900081FF09C020E04091BE026091BD02809177 +:104EA000BC020E9452151092C2020E94BC09F894E2 +:104EB0008091C402882349F00E94B30D0E94BC096E +:104EC00080E088CE0E94E50FE1CF0E94980DF6CFDA +:104ED000EF92FF920F931F93CF93DF9300D000D0F8 +:104EE0000F92CDB7DEB7162FE82EF12CC701880F31 +:104EF000991F662339F18C509E4FFC01808191816E +:104F00009A83898301E00B830E940A1C8160782FB9 +:104F10009D838C83F701E856FD4F0127110F102B5D +:104F2000108349815A816B818D810F900F900F9072 +:104F30000F900F90DF91CF911F910F91FF90EF9005 +:104F40000C94A22480519E4FD8CFCF92DF92EF9243 +:104F5000FF920F931F93CF93DF930F92CDB7DEB7DE +:104F6000EE24E394F12C06EB12E09E012F5F3F4FFD +:104F70004BEA52E063E082E00E94C519082F8823C3 +:104F800021F1C090E5028C2D90E09C0128513D4F0D +:104F900079011981F9018081181BD12E80E00AC0A6 +:104FA000DA94F70180818F5F808360E08C2D0E940E +:104FB0006827802F1D14A4F3912F17FD90E0191B73 +:104FC00011110EC081110E94800B802F0F90DF9174 +:104FD000CF911F910F91FF90EF90DF90CF900895A8 +:104FE0001F5FF70180818150808361E08C2D0E94DA +:104FF0006827802FE5CF1F921FB61F9211248F9331 +:105000009F93AF93BF9380915604811113C08091F9 +:10501000570490915804A0915904B0915A044196B4 +:10502000A11DB11D8093570490935804A093590477 +:10503000B0935A04BF91AF919F918F911F901FBE63 +:105040001F901895CDB7DEB7E9970FB6F894DEBF7D +:105050000FBECDBF84B7877F84BF0FB6F894A895E5 +:1050600080916000886180936000109260000FBEA4 +:1050700080E890E00FB6F89480936100909361000F +:105080000FBE85B7806885BF85B7806885BF8AEB0E +:1050900099E090932F0280932E020E94D5060E94E1 +:1050A000A0078091E20084608093E2007894809170 +:1050B0006C048823A1F01091E9001F709091EC001E +:1050C000892F817090FD80E8182B1092E900809163 +:1050D000E80083FD0E9403101F701093E90082E036 +:1050E00084BD93E095BD9AEF97BD80936E001092BA +:1050F000D2021092D3021092D4021092D5020E94D2 +:105100002715811102C00E9483140E949F0E809374 +:10511000580180915801882309F4C6C010926F018C +:1051200085E2809370010E949F0E81110E9454338A +:105130008091580181112FC0FE01359686E0DF0174 +:105140001D928A95E9F786E6898387E98A8386EC4A +:105150008B8384E38C8385E38D833497AEE4B1E065 +:10516000CE010B9621912D938E179F07D9F787E0DB +:10517000E5E7F1E0DE01919601900D928A95E1F765 +:10518000FE01B196A7E4B1E0CE01889621912D935E +:105190008E179F07D9F78091580195E0811190E013 +:1051A0009093E30285E0891B8093E2020EE411E014 +:1051B000A3E5EA2EA1E0FA2EF80181918F018F3F3D +:1051C00011F00E94BE09E016F106B1F707E411E004 +:1051D000FEE4EF2EF1E0FF2ED8018D918D018F3F7F +:1051E00011F00E94BE09E016F106B1F7E8EDF2E019 +:1051F00082EE92E0AFE4B3E011921D928E179F070A +:10520000D9F70E94B11A811102C00E94361882E0BB +:1052100090E00E9475358093440384E090E00E9402 +:105220007535182F82E290E00E947535982F812FF6 +:105230009093D7028093D6020E943425EFE7FBEBD0 +:105240003197F1F700C000000E94342580914F0390 +:1052500080FF2EC06FEF7FEF90E080E00E94A735C7 +:1052600081E08093E00080E28093D8001092C90032 +:105270008FE19EE40197F1F700C0000087E090EB1A +:10528000DC018093800690938106A0938206B09300 +:10529000830688E19CE00FB6F894A895809360009F +:1052A0000FBE90936000FFCF85E280936F0139CFEE +:1052B00083E090E00E9475350E94050C8091760491 +:1052C0000E94D0160E94B11A811102C00E943618A5 +:1052D00088E190E00E947D3560933D0470933E0428 +:1052E00080933F0490934004672B682B692B11F443 +:1052F0000E9406180E94553167E081E00E94A713C2 +:1053000065E586E10E94A71363E687E10E94A71383 +:1053100060EA8AE10E94A71369E98BE10E94A71362 +:1053200065EF8CE10E94A71360EA8DE10E94A7134C +:1053300060E38EE10E94A71366E083E00E94A7135A +:1053400061E08CE00E94A71360E081E00E94A71357 +:1053500060E08CE00E94A7136FE084E00E94A71336 +:1053600061E08CE00E94A7130E949F0E811102C091 +:105370000E94573383E080931A0380E280934304B2 +:105380000E9455316DE070E08CE992E00E94680D5A +:10539000892BE9F580911A0363E070E081FD9EC2DC +:1053A00089E992E00E94680D892B89F56DE070E033 +:1053B00089E892E00E94680D892B49F50E946208F5 +:1053C0006058774C8E4F9F4F60934A0470934B0404 +:1053D00080934C0490934D04EEE7F4E080E092E07B +:1053E000DF019C011D9221503040E1F7F0937F06D0 +:1053F000E0937E068FEF9FEF90937D0480937C0473 +:1054000081E080934F0480934E0410921B0380919F +:10541000E402811136C00E94B11A811104C00E94B9 +:1054200036180E94C31788E090E00E947D35609393 +:105430007704709378048093790490937A04809130 +:105440005B03836080935B036E7F71F40E94C317DC +:1054500088E090E00E947D35609377047093780433 +:105460008093790490937A040E940E0980917704C6 +:1054700080FF04C060E086950E94691681E08093F9 +:10548000E40280915801811106C084EF8093660187 +:1054900085EF8093650120916601A22FA295AF70E0 +:1054A000B0E091963C9191972F7081E090E0BC0123 +:1054B000022E01C0660F0A94EAF7462F4095432357 +:1054C00091964C93919792963C919297362B929607 +:1054D0003C93929740916501E42FE295EF70F0E0E4 +:1054E00031A14F70042E01C0880F0A94EAF7982F5B +:1054F0009095932391A392A1892B82A390968C914E +:1055000090E002C0959587952A95E2F7817020A1D9 +:1055100030E002C0359527954A95E2F792E020FFEA +:1055200090E0892B8093EC028091580111E0812753 +:105530008093EB02312F381B3093E5020E945531E6 +:1055400040E060E080E00E94210D60E08AE00E947F +:10555000691689EA92E090935E0380935D0381E08F +:105560000E94791780EE90E090935A018093590140 +:10557000109332030E94410D8BE591E09093530408 +:10558000809352043E018DE3680E711C80916C047F +:10559000FF24F39400E112E1853009F4F2C10E9486 +:1055A0003425E82E81110E946208E5E4F3E0AFE4BF +:1055B000B3E010E000E0B02EDD9081918D1509F48C +:1055C00004C28D25C12CFF24F394982F9F2109F448 +:1055D000F7C10E949F0E882399F0CEA6BFA6DF20B8 +:1055E00081E009F480E088AB0E940A1C8160782F7A +:1055F0009AAB89AB4EA55FA568A98AA90E94A2248F +:10560000F801EB5BFC4F8081F826F0828091EC0280 +:10561000E82FEE0FEE0F90916601A92FA295AF70C3 +:10562000B0E090962C9130E09F7002C035952795A0 +:105630009A95E2F72170332790916501A92FA295E1 +:10564000AF70B0E090964C9150E09F7002C05595BD +:1056500047959A95E2F7CA018170992740FF02C0E9 +:1056600082E090E0822B8E2B8093EC021091EB0273 +:105670008F70E82FF0E0E650FE4F80819091EA02B3 +:10568000890F8093EA02F12C84306CF0E12FF0E076 +:10569000E851FD4F80818F5F808360E0812F0E9401 +:1056A0006827FF24F3948091EA028D3F6CF4E12F88 +:1056B000F0E0E851FD4F80818150808361E0812FCF +:1056C0000E946827FF24F3948091EA02082E000CC0 +:1056D000990B64E070E00E9435358093EA02F11086 +:1056E0000E94800B80914F04882351F180911C030C +:1056F00090911D030E94FB1BC29708F07DC1209171 +:105700007C0430917D042115310509F0A0C28091FF +:105710004E048823A9F00E94620800914A04109167 +:105720004B0420914C0430914D04601B710B820B93 +:10573000930B6F3F7F4F8F4F9F4710F40E94980D40 +:10574000E11001C0F1100E94B30D809142038A3034 +:1057500008F0BAC380914003909141030E94FB1B63 +:10576000089708F4B1C304E610E025E030E04BE30D +:1057700053E064E084E10E94A032892B09F075C3F4 +:105780001092420320913203222359F080913B036F +:1057900090913C0398278927982790933C03809306 +:1057A0003B0386E0E4E2F3E0DE01919601900D9286 +:1057B0008A95E1F786E0FE01B196DE01119601902F +:1057C0000D928A95E1F786E0FE013196A5E3B3E0FC +:1057D00001900D928A95E1F790913F0380913603F5 +:1057E00097FD3AC38E7F8093360380913303909167 +:1057F0003403009709F02AC360913B0380913C0376 +:1058000000913D0310913E03222309F4F2C241E0CE +:105810000E94FB0C2091300330913103820F931FC3 +:10582000909331038093300341E0602F812F0E94D9 +:10583000FB0C20912E0330912F03820F931F909326 +:105840002F0380932E0360E373E08AE393E00E94CA +:10585000DC0C6EE273E089E393E00E94DC0C1092B2 +:1058600037031092380386E0E5E3F3E0DE0111969A +:1058700001900D928A95E1F786E0FE013196A4E24F +:10588000B3E001900D928A95E1F7309126032091C3 +:105890002703909128038091290370912003609140 +:1058A00021034091220350912303F0912503E091BD +:1058B0001F03FE13E0C2332311F07313DCC2222353 +:1058C00011F02613D8C2882311F08513D4C299236E +:1058D00019F081E04913D0C280E0CEC286E992E09F +:1058E00061CD80916C04843009F43BC00E94980D16 +:1058F00040E060E080E00E94210D80E00E94B81648 +:105900008091E702811109C0F092E702809177044B +:1059100081708093E6020E94E50F10925604A8E180 +:10592000B0E0E0E40FB6F894A895A09360000FBE35 +:10593000E093600083B7817F846083BF83B7816019 +:1059400083BF7894889583B78E7F83BF0FB6F89412 +:10595000A89580916000886180936000109260003B +:105960000FBE80916B04882361F00E943425EFE420 +:10597000F3E08191811178C429E533E02E173F07C8 +:10598000C1F780916C04853009F4ABCF10925F04AD +:105990000E94FA0F0E94C20E0E94B8161092E702EF +:1059A0008091E602882349F080917704816080939A +:1059B000770460E086950E9469160E94410DEFCD44 +:1059C000C394FF0C37E0C31200CE0F5F1F4F0A30A5 +:1059D000110509F0F0CD8FEF8BAB8CAB1DAA0E94A7 +:1059E0000A1C8160782F9FAB8EAB4BA95CA96DA977 +:1059F0008FA90E94A2240ACE0E940A1C90931D0324 +:105A000080931C0360E080E00E949A080E94C20E0E +:105A10008093F9020E949F0E882331F14091F50294 +:105A20005091F6026091F7027091F8022FB7F89446 +:105A30008091570490915804A0915904B0915A0450 +:105A40002FBF841B950BA60BB70B81339547A10580 +:105A5000B10540F00E94980D80914F04882309F40D +:105A600056CE4DCE0E94B30D0E949F0E882309F49E +:105A7000D5C061E080E00E949A0860E08CE791E088 +:105A80000E948B1362E080E00E949A088091760465 +:105A90000E94CB0C823009F49BC008F090C0882390 +:105AA00009F496C0813009F499C065E080E00E9455 +:105AB0009A0860E08AE991E00E948B1366E080E03A +:105AC0000E949A086091F902669561708FE991E0F1 +:105AD0000E948B1367E080E00E949A086091F902AF +:105AE0006095617084EA91E00E948B1368E080E029 +:105AF0000E949A086091F90262FB662760F988EAC1 +:105B000091E00E948B137DA66CA64091F10250910A +:105B1000F2026091F3027091F4022FB7F894809131 +:105B2000570490915804A0915904B0915A042FBF82 +:105B3000841B950BA60BB70B8D329140A105B105C7 +:105B400008F48ACF0E9462086093F1027093F20217 +:105B50008093F3029093F4028091F002811104C0CB +:105B600080916701811142C06DE080E00E949A0837 +:105B700060E08DEA91E00E948B136AE080E00E9471 +:105B80009A0881E0809367018091EF0290E001968E +:105B9000817099278093EF0221E030E0281B390BB8 +:105BA00040E6429FC001439F900D11242091EE02D8 +:105BB000222351F1855C9B4F0E9492064DCF83308A +:105BC00089F0843009F071CF60E08EE891E003C085 +:105BD00060E082E891E00E948B1367CF60E088E884 +:105BE00091E0F9CF60E084E991E0F5CF6AE080E0F0 +:105BF0000E949A0860E08DEA91E00E948B136BE0AE +:105C000080E00E949A08C0CF2091ED02222319F073 +:105C100085589C4FD1CF85549D4FCECF64E080E016 +:105C20000E949A0860E083EB91E00E948B1365E08C +:105C300080E00E949A0860E089EB91E00E948B135B +:105C400069E080E00E949A088BEF94E0B5CF8091E4 +:105C50001B0361E070E081115ACD082F10E02B0189 +:105C6000082E02C0440C551C0A94E2F7A9014421F5 +:105C70005521452B09F448C090911A0390FD46C068 +:105C80008295880F807680936A01980136952795D2 +:105C90003695279520936D01815E80936B0110925C +:105CA0006E0124E630E047E050E068E671E088E706 +:105CB0000E944C32892B09F02ACDA80175E0440FCF +:105CC000551F7A95E1F780911A0380FD2DC0425847 +:105CD0005B4F04E610E020E230E060E488E70E94D9 +:105CE0007332892B09F013CD0E94B30DC201809548 +:105CF000909540907C0450907D0448225922509207 +:105D00007D0440927C0403CD8F5FA7CF880F880F5E +:105D1000880F80936A0110926D01895F80936B01F7 +:105D200083E080936E01BDCFEAEFF2E080E2DF0115 +:105D30001D928A95E9F7EEE0F2E0F9AFE8AF0AE0EC +:105D400012E099249394A8ADB9AD2D91B9AFA8AF45 +:105D5000F80121908F01240E352E311CC10182588B +:105D60009B4F1C01E22FF0E0E650FD4F30E020E0B9 +:105D700067E0A62EA21AB92C022E01C0BB0C0A9411 +:105D8000EAF7610190E0D6018D916D018B216A2DBA +:105D9000691B6770862E062E000C770BB82F01C08A +:105DA000BB0F8A94EAF78B2E719561957109677024 +:105DB000772701C086956A95EAF7882A8081882A24 +:105DC00080829F5F9830F9F62F5F3F4F31962830E1 +:105DD000310571F6E2E1F2E028AD39ADE217F307E3 +:105DE00009F0B1CF04E610E020E230E04AEF52E0E3 +:105DF00074CF45E00E94FB0C20912C0330912D03C1 +:105E0000281B390B30932D0320932C0345E0602F82 +:105E1000812F0E94FB0C20912A0330912B03281B19 +:105E2000390B30932B0320932A036CE273E087E352 +:105E300093E00E94DC0C6AE273E088E393E00E9446 +:105E4000DC0C10923A03109239030DCD0197909318 +:105E500034038093330307CD81608093360384E05D +:105E60000E94B31384E190E0F2CF809142038F5FF0 +:105E700080934203F8CC81E080FF0FC0E091520490 +:105E8000F0915304309749F082E08093240304801A +:105E9000F581E02D84E293E009951092260310929B +:105EA0002703109228031092290386E0E4E2F3E02E +:105EB000AEE1B3E001900D928A95E1F70E940A1CD1 +:105EC00090934103809340030E94C20E909143033C +:105ED000891731F00E94C20E809343030E94B816C6 +:105EE00080916C04843009F051CB83E08093E90009 +:105EF0008091E80082FF4ACB8091E80090E085FF26 +:105F00000BC00E94F40630E2E32EF12C8E010F5FED +:105F10001F4F8823E1F091E08091E8008B77809318 +:105F2000E800992309F432CBE981E150E33108F02C +:105F300071C0F0E0EC5EF84C0C9449358091F100B2 +:105F4000D8018D938D01B1E0EB1AF10821F3809116 +:105F5000E80085FDF3CF8091E8008B778093E8001F +:105F60000E94F406882399F3D6CF1A8289E08B83A6 +:105F700011C08A81823009F48FC1833091F1813060 +:105F800009F048C00E9462080E944F356B837C83F1 +:105F90008D839E8380916C04843009F0F7CA109140 +:105FA000E9001F709091EC00892F817090FD80E8CE +:105FB000182B82E08093E9008091E80080FF0DC0FB +:105FC00050E040E060E270E0CE0101960E942507BB +:105FD0008091E8008E778093E8001F701093E900AD +:105FE000D5CADE011396EFE4F3E081918D9323E0AF +:105FF000E935F207D1F7CECF8A81823059F46B812F +:106000007C818D819E810E944F3586E290E00E94C6 +:106010008935C0CF8FEF8983BDCF4C816B818A8159 +:106020000E9492149827892798279E838D83B2CF48 +:106030000D811E811027012710278A81EB803EE009 +:10604000E39E700111249CE8899FE00CF11C11244F +:106050008C8190E0880F991FE80EF91E612FC7010F +:1060600087960E948935602FC7018896D0CF0E94FD +:10607000161490CF8A818138C1F060F4803809F01D +:1060800089CF20E04B8160917904809178040E944F +:10609000521580CF8238E9F0833809F07BCF20E0B9 +:1060A00040917A046C818B81F2CF60E08B810E94F9 +:1060B00069168B81811103C00E94E50F6BCF80911F +:1060C000770481608093770460E086950E9469166A +:1060D00061CF8B8180937B045DCF8A81813899F079 +:1060E00030F4803809F056CF80917A0440CF82385E +:1060F00091F0833809F04ECF809178048B838091A2 +:1061000079048C8347CF8091770480FF02C0869505 +:106110002ECF80E02CCF80917B0429CF6091770433 +:10612000709178048091790490917A040E944015CE +:1061300031CF80E18A832ECF81E08A838DE117CF32 +:10614000CA80DB80DC24CD24DC248E010F5F1F4F4E +:10615000EC80E00EF12EF11CC6018D519D4F0E1505 +:106160001F0509F417CFADE1CA16A1E0DA0650F415 +:106170000E947535F8018483BFEFCB1ADB0A0F5FED +:106180001F4FEACFD80114961C92F6CF0A811B81CB +:10619000102701271027FE0131966F01EC80E00ED9 +:1061A000F12EF11CC8018D519D4FE016F10609F446 +:1061B000F1CE0D31F1E01F0728F4D60114966C9151 +:1061C0000E948935BFEFCB1ADB0A0F5F1F4FEACF62 +:1061D0000E940614DFCE85E0ADCFCA80DB80DC24D0 +:1061E000CD24DC248E010F5F1F4FEC80E00EF12EDA +:1061F000F11CC6018796E016F10609F4CBCEECEB54 +:10620000CE16E2E0DE0658F40E947535D8011496E9 +:106210008C93FFEFCF1ADF0A0F5F1F4FEACFF80111 +:106220001482F7CF0A811B811027012710279E01B6 +:106230002F5F3F4F6901EC80E00EF12EF11CC80189 +:106240008796E016F10609F4A5CE0C3B32E0130761 +:1062500028F4D60114966C910E948935BFEFCB1AB1 +:10626000DB0A0F5F1F4FEBCF09BD19BD09B400FE5C +:10627000FDCF8091D8008F7D8093D8008091E00081 +:1062800082608093E0008091E00081FDFCCF10925D +:106290005F040E94FA0F75CB86E290E00E9475358C +:1062A0001B821C821D828E8375CE1092B9008CE0F9 +:1062B0008093B80008959F92AF92BF92CF92DF92E1 +:1062C000EF92FF920F931F93CF93DF93B82EEB01C2 +:1062D0000E940A1C6C01EE24E394F12CC431D10518 +:1062E00060F025E0E22EF12CCF3FDC0731F0CE014B +:1062F00064E170E00E9415357B0184EAA82E94E8E1 +:10630000992E1092BC00A092BC000E940A1C8C0125 +:106310008091BC0087FF0DC08091B900887F8830D4 +:1063200039F18091B900887F803111F10FEF1FEFB3 +:1063300009C00E940A1C801B910B8E159F0540F31B +:106340000EEF1FEFCF3FDC07E1F2C6010E94FB1BFF +:106350008C179D07B0F2C801DF91CF911F910F916B +:10636000FF90EF90DF90CF90BF90AF909F900895F7 +:10637000B092BB009092BC000E940A1C8C018091DC +:10638000BC0087FF0AC08091B900887F883111F076 +:10639000803461F610E000E0DECF0E940A1C801B12 +:1063A000910B8E159F0558F3CBCF0F931F93CF936F +:1063B000DF93EB018093BB0084E88093BC000E94D4 +:1063C0000A1C8C018091BC0087FF11C02091B9008C +:1063D000287F81E090E0283211F490E080E09195F0 +:1063E00081959109DF91CF911F910F910895CF3F32 +:1063F000DC0741F30E940A1C801B910B8C179D0740 +:1064000008F38EEF9FEFEECF0F931F93CF93DF93A1 +:10641000EC0184EC8093BC000E940A1C8C018091EA +:10642000BC0087FF08C08091BB0090E0DF91CF9156 +:106430001F910F910895CF3FDC0789F30E940A1C3A +:10644000801B910B8C179D0750F38EEF9FEFEECFC3 +:106450000F931F93CF93DF93EC0184E88093BC00EC +:106460000E940A1C8C018091BC0087FF08C08091AB +:10647000BB0090E0DF91CF911F910F910895CF3F26 +:10648000DC0789F30E940A1C801B910B8C179D0767 +:1064900050F38EEF9FEFEECFCF92DF92EF92FF920D +:1064A0000F931F93CF93DF936B018A017901B90199 +:1064B0000E945B31E6010C0D1D1DC017D10761F470 +:1064C00024E92093BC00DF91CF911F910F91FF90A1 +:1064D000EF90DF90CF90089597FDF2CFB7018991AB +:1064E0000E94D531EACFCF92DF92EF92FF920F93C5 +:1064F0001F93CF93DF93C62F6A017901B8010E94E1 +:106500005B3197FD0CC0B8018C2F0E94D531E6019C +:10651000EC0CFD1CCE15DF0511F097FF0CC024E933 +:106520002093BC00DF91CF911F910F91FF90EF90CE +:10653000DF90CF900895B80189910E94D531EACFBC +:10654000CF92DF92EF92FF920F931F93CF93DF933F +:10655000F82EE62EEA016901B8010E945B3197FD31 +:1065600015C0B8018E2D0E94D53197FD0FC0B8011E +:106570008F2D81600E945B31F12CE12C21E0C21A49 +:10658000D108EC14FD0400F597FF11C024E9209315 +:10659000BC001816190614F490E080E0DF91CF914A +:1065A0001F910F91FF90EF90DF90CF900895C80159 +:1065B0000E94043297FD04C0FE01EE0DFF1D808392 +:1065C0002FEFE21AF20ADDCF97FDE0CFC8010E945B +:1065D000283297FDDBCFCC0DDD1D8883D7CF84E932 +:1065E0008093BC0008958EE14A9B02C08150E1F780 +:1065F0004A9BFECF08955A9880E28A95F1F75A9AFD +:106600000895FC013BE03A95F1F798E020E080E046 +:1066100031E040E14A95F1F7880F4A9B02C0816062 +:10662000232742E04A95F1F7000040E14A95F1F74F +:10663000915079F790E19A95F1F799B132E03A9556 +:10664000F1F7000040E14A95F1F792FB992790F9A4 +:1066500092272081920F90830895EF92FF920F93DB +:106660001F93CF93DF930F92CDB7DEB719828C01C2 +:106670007C01E60EF11C0E151F0561F481E0998185 +:10668000911180E00F90DF91CF911F910F91FF90BA +:10669000EF9008950E94F332CE0101960E940133DB +:1066A000F80181938F01E7CF529A5A9A0895529830 +:1066B0005A9AEA9AE9E6F0E080818F7C8083089517 +:1066C0006150770B91E001C0990F6A95EAF720E0DD +:1066D00031E0911108C0222391F05A9A80E28A9504 +:1066E000F1F75A980895492F482339F05A9A2327E9 +:1066F00040E24A95F1F79695ECCF5A98F9CF5A981F +:10670000EDCFFF920F931F93CF93DF93EC018C019A +:10671000060F111DC017D10731F4DF91CF911F91E2 +:106720000F91FF900895F9900E94FB3268E08F2D41 +:106730000E946033EFCF1F920F920FB60F92112479 +:10674000EF92FF920F931F932F933F934F935F937B +:106750006F937F938F939F93AF93BF93EF93FF9329 +:10676000CF93DF930F92CDB7DEB719820E94F33239 +:10677000CE0101960E940133A82FA695A695A69555 +:10678000282F229525709A2F9570290F922F93709C +:1067900026952695920F982797708981982B09F056 +:1067A00075C0A83008F072C080E18A95F1F75A9A56 +:1067B000529AB2E0BA95F1F700C05A98EA2EF12C3D +:1067C000EAE0AE9FD0011124AF5FBE4F1896ED9165 +:1067D000FC9119973097B1F06091F8017091F9012F +:1067E00016962D913C911797260F371F13968D9172 +:1067F0009C911497680F791F15964C9115971296D6 +:106800008C9109958AE08E9DF0018F9DF00D1124E9 +:10681000EF5FFE4F6581662351F02091F8013091C2 +:10682000F90186819781820F931F0E9481330E9414 +:10683000FB32F0E1FA95F1F75A9852985A9A80E1B2 +:106840008A95F1F78AE08E9D80018F9D100D1124AD +:106850000F5F1E4FD80112966C911297662371F14B +:106860002091F8013091F90113968D919C91820F3E +:10687000931F0E942D33D801ED91FC91882311F0D4 +:1068800088E001C082E080830E94F3320F90DF91A4 +:10689000CF91FF91EF91BF91AF919F918F917F9198 +:1068A0006F915F914F913F912F911F910F91FF90A9 +:1068B000EF900F900FBE0F901F901895ED91FC91E7 +:1068C000DFCF0F931F93CF93DF93EC0108970CF06A +:1068D000A9C08AE08C9FF0018D9FF00D1124EF5F1D +:1068E000FE4F80819181892B09F49CC0F894529AC3 +:1068F0005A9885E08A95F1F700008C2F869585706F +:106900009C2F9570890F982F937086958695890F87 +:106910008E0193E0000F111F9A95E1F7082B0E945A +:10692000FB3200C068E0802F0E946033A0E1AA958E +:10693000F1F752985A9A4A9B27C087E090E04A990B +:1069400025C08AE08C9F80018D9F100D11240F5F60 +:106950001E4FF80165816623A1F12091F801309165 +:10696000F90186819781820F931F0E942D33811137 +:1069700028C0529A5A9AD801ED91FC9182E0808306 +:10698000789482E090E016C000C0D5CF0197B9F4AA +:10699000529A5A9A8AE08C9FF0018D9FF00D112433 +:1069A000EF5FFE4F0190F081E02D81E080837894CD +:1069B00081E090E0DF91CF911F910F91089500C089 +:1069C000BECF0E94F332B0E2BA95F1F75A98529ACC +:1069D000E0E1EA95F1F78AE08C9FF0018D9FF00DE0 +:1069E0001124EF5FFE4F6281662351F02091F80180 +:1069F0003091F90183819481820F931F0E9481332A +:106A00000E94FB328AE08C9FF0018D9FF00D1124D3 +:106A1000EF5FFE4F0190F081E02D1082789490E0BE +:106A200080E0C8CF84E090E0C5CFAA1BBB1B51E13A +:106A300007C0AA1FBB1FA617B70710F0A61BB70BEE +:106A4000881F991F5A95A9F780959095BC01CD0193 +:106A50000895991B79E004C0991F961708F0961BBA +:106A6000881F7A95C9F78095089597FB072E16F42D +:106A7000009407D077FD09D00E94153507FC05D09A +:106A80003EF4909581959F4F0895709561957F4F45 +:106A90000895EE0FFF1F0590F491E02D09946927EA +:106AA000962769277827872778270895FB01DC0137 +:106AB00002C005900D9241505040D8F70895FB0157 +:106AC000DC0104C08D910190801921F441505040A7 +:106AD000C8F7881B990B0895FB01DC0102C00190E7 +:106AE0000D9241505040D8F70895F999FECF92BDCC +:106AF00081BDF89A992780B50895A6E1B0E044E0F9 +:106B000050E00C94AF35A8E1B0E042E050E00C94C6 +:106B1000AF35262FF999FECF92BD81BDF89A019726 +:106B200000B4021639F01FBA20BD0FB6F894FA9AD5 +:106B3000F99A0FBE08950396272F0E948A350E9466 +:106B40008935252F0E948A35242F0C948A35019689 +:106B5000272F0E948A350C948935DC01CB01FC017A +:106B6000F999FECF06C0F2BDE1BDF89A319600B4A6 +:106B70000D9241505040B8F708950E94FF3508F437 +:106B800081E00895E89409C097FB3EF490958095C4 +:106B9000709561957F4F8F4F9F4F9923A9F0F92FE3 +:106BA00096E9BB279395F695879577956795B79561 +:106BB000F111F8CFFAF4BB0F11F460FF1BC06F5F47 +:106BC0007F4F8F4F9F4F16C0882311F096E911C059 +:106BD000772321F09EE8872F762F05C0662371F07A +:106BE00096E8862F70E060E02AF09A95660F771F8E +:106BF000881FDAF7880F9695879597F90895990F6A +:106C00000008550FAA0BE0E8FEEF16161706E80776 +:106C1000F907C0F012161306E407F50798F0621B97 +:106C2000730B840B950B39F40A2661F0232B242B6C +:106C3000252B21F408950A2609F4A140A6958FEF8B +:106C4000811D811D08950E9436360C94A7360E943E +:106C5000993638F00E94A03620F0952311F00C945C +:106C600090360C94963611240C94DB360E94B8367C +:106C700070F3959FC1F3950F50E0551F629FF0018F +:106C8000729FBB27F00DB11D639FAA27F00DB11DA8 +:106C9000AA1F649F6627B00DA11D661F829F222731 +:106CA000B00DA11D621F739FB00DA11D621F839FB8 +:106CB000A00D611D221F749F3327A00D611D231F8E +:106CC000849F600D211D822F762F6A2F11249F57DC +:106CD00050409AF0F1F088234AF0EE0FFF1FBB1FDF +:106CE000661F771F881F91505040A9F79E3F51059E +:106CF00080F00C9490360C94DB365F3FE4F3983EC2 +:106D0000D4F3869577956795B795F795E7959F5F47 +:106D1000C1F7FE2B880F911D9695879597F90895D9 +:106D200097F99F6780E870E060E008959FEF80EC3E +:106D3000089500240A9416161706180609060895E1 +:106D400000240A9412161306140605060895092E47 +:106D50000394000C11F4882352F0BB0F40F4BF2BB6 +:106D600011F460FF04C06F5F7F4F8F4F9F4F0895F6 +:106D700057FD9058440F551F59F05F3F71F04795EC +:106D8000880F97FB991F61F09F3F79F087950895D1 +:106D9000121613061406551FF2CF4695F1DF08C0F0 +:106DA000161617061806991FF1CF8695710561050D +:106DB00008940895E894BB2766277727CB0197F9B5 +:106DC0000895F894FFCFEA101211651112116511A0 +:106DD00045117D1165117A128712121512151B15B6 +:106DE0001B151D151B151B151B151215121522152C +:106DF0001B151B152215671CDD1CE01CF41CF71C61 +:106E00000A1D131D371D7D1DAF1DC31D491D6C1DA2 +:106E1000052105215E215E2190213821382138216C +:106E2000AA211B222B222B22B52FB92FFC2F0D308C +:106E3000183037303A306D308E300A300A309930A1 +:0E6E40009C30A030C630E830EB30ED3012311F +:106E4E0001380200000001000000003802000000BE +:106E5E0005010000003802000000010600000038A5 +:106E6E0002000000010700000038020408000000C4 +:106E7E000000003802090C0000000000003802017A +:106E8E001500000000000036323331F7F6676697C2 +:106E9E00C6343500000000000180005F082E0E0D84 +:106EAE000E090E050EF4F5010021007F22000300ED +:106EBE004A004A4A01F6F731333236674C4159459A +:106ECE00520042617365200047616D65200052617A +:106EDE00697365004C6F776572004C4F434B0043EE +:106EEE00617073004E756D005363726C002020202C +:106EFE00202000534F4C415200544D5053540081AA +:106F0E008283E200E900EA00B500B600B700CD00CA +:106F1E008301CC008A0192019401210223022402F2 +:106F2E002502260227022A02B300B4006F00700069 +:106F3E000603060806010606AF0200FF0100010067 +:106F4E0000FFFF0000010001FF00000810181810DC +:106F5E0008000001020202020202020202024022A4 +:0E6F6E007B99017701FC00000C190C390C0016 :00000001FF From 61ce7a21b52e6be32bf7923fe14a58dda050509e Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 26 Nov 2021 23:11:17 -0500 Subject: [PATCH 64/94] Add gaming layer haptic feedback --- .../solartempest/sofle/keymaps/via/keymap.c | 20 +- keyboards/solartempest/sofle/readme.md | 1 + .../sofle/solartempest_sofle_via.hex | 1736 +++++++++-------- 3 files changed, 891 insertions(+), 866 deletions(-) diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 1dee3a263e65..0bc1726b0b61 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -332,7 +332,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { run_trackball_cleanup(); break; } - # if !defined(MOUSEKEY_ENABLE) //Allow for using mouse buttons in the keymap when mouse keys is not enabled. + #if !defined(MOUSEKEY_ENABLE) //Allow for using mouse buttons in the keymap when mouse keys is not enabled. case KC_MS_BTN1: mouse_button_one = record->event.pressed; trackball_button_one = record->event.pressed; @@ -345,7 +345,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_MS_BTN3: trackball_register_button(record->event.pressed, MOUSE_BTN3); break; - # endif + #endif #endif #ifdef KEYBOARD_PET // KEYBOARD PET STATUS @@ -366,6 +366,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; #endif + + #ifdef HAPTIC_ENABLE //Set different patterns for keys on certain layers. In this case it is for gaming feedback. + case KC_G: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(50); //buzz_40 + } + case KC_R: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(52); //pulsing_strong + } + case KC_F: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(49); //buzz_60 + } + #endif + } return true; } diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index 6513a217e0e3..b76181de980a 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -48,6 +48,7 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j - Supports Pimoroni Haptic Bzzz installed on master side. - Different vibrations when layers are activated. - Provides tactile feedback when trackball is clicked or mouse keys are used. +- Tactile feedback for specific keys on gaming layer. ### Tap and Other Features: - Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index adec533353db..315fa5275ec2 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,7 +1,7 @@ -:100000000C9449060C9490060C9490060C949B3327 +:100000000C9449060C9490060C9490060C94D733EB :100010000C9490060C9490060C9490060C94900608 :100020000C9490060C9490060C94001B0C94BC1A33 -:100030000C94FB270C9490060C9490060C9490065C +:100030000C9437280C9490060C9490060C9490061F :100040000C9490060C9490060C9490060C949006D8 :100050000C9490060C94D71B0C9490060C9490066C :100060000C9490060C9490060C9490060C949006B8 @@ -205,9 +205,9 @@ :100CC000800610928106109282061092830614BE4E :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0EEE4FEE602C0059046 +:100CF000099512E0A0E0B1E0E6ECFEE602C0059046 :100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92A038B207E1F70E9422280C94E13618 +:100D10001D92A038B207E1F70E945E280C941D379F :100D20000C940000CF93DF9340917E0650917F0694 :100D30004E5754409A01205A3F4F21303240C0F064 :100D400020E032E0241B350B60917C0470917D041F @@ -296,7 +296,7 @@ :101270004E2F4983E8835A83DF91CF911F910F91BD :10128000FF90EF90DF90BF90AF900895E62EF12C85 :101290004491D42EE42FF0E026E0829FC001112477 -:1012A0002FEF30E0B9010E941535802F90E0880FB4 +:1012A0002FEF30E0B9010E945135802F90E0880F78 :1012B000991F55E5569FD001579FB00D11248A1BE9 :1012C0009B0B982F990F890F5901AE18BF08AE9E3E :1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 @@ -420,18 +420,18 @@ :101A3000222319F09195819591090895681B20E062 :101A4000DFCF0F931F93CF93DF9300D000D0CDB79C :101A5000DEB789836A834B831C8204E610E024E0AE -:101A600030E0AE014F5F5F4F60E084E10E9473326F +:101A600030E0AE014F5F5F4F60E084E10E94AF3233 :101A70000F900F900F900F90DF91CF911F910F91CA :101A8000089580913203882329F047E669E98BE2C3 :101A90000C94210D6091590170915A0190E080E001 -:101AA0000E94C23520E030E040E05CE30E94233633 -:101AB00020E030E040E85FE30E94BD35882321F05C +:101AA0000E94FE3520E030E040E05CE30E945F36BB +:101AB00020E030E040E85FE30E94F935882321F020 :101AC00047EC6BE180E0E4CF41E265EA89EDE0CFED :101AD000CF92DF92EF92FF920F931F93CF93DF93FA -:101AE0006C017B0164E670E088E70E945B31EC01E9 +:101AE0006C017B0164E670E088E70E949731EC01AD :101AF00097FD12C010E000E0F601E00FF11F8491A5 -:101B000064E670E00E94D531EC01892B29F40F5F67 -:101B10001F4F0E151F0581F70E94EF32CE01DF9196 +:101B000064E670E00E941132EC01892B29F40F5F2A +:101B10001F4F0E151F0581F70E942B33CE01DF9159 :101B2000CF911F910F91FF90EF90DF90CF9008958C :101B300080914E0490914F04911103C091E0892748 :101B40000895882369F062E070E08CEE9BE00E94CB @@ -497,7 +497,7 @@ :101F00005C0393010C2C01C0220F0A94EAF7822390 :101F100009F43FC0F601EE0FFF1FE80DF91DE59033 :101F2000F490E114F10409F479CF45E050E0B701F1 -:101F3000CE0101960E94563509810F3F51F18A81E9 +:101F3000CE0101960E94923509810F3F51F18A81AD :101F4000800F9927991F8B34910514F08AE490E053 :101F50005C01AA0CBB1C8A0D9B1DDC01A15ABC4F65 :101F60005D01049D80011124015A1C4F0A151B05B7 @@ -516,7 +516,7 @@ :10203000B9F780916F04833009F471C0B8F481302E :1020400009F448C0823009F4B4C08091E80083FFED :102050003CC180916E0490916F049A3008F035C1B4 -:10206000E92FF0E0ED51F94C0C9449358A3009F430 +:10206000E92FF0E0E15EF84C0C9485358A3009F4F4 :102070008FC08B3009F470C0893039F780916E04BD :10208000813219F78091720490917304009711F0D6 :102090000297D9F68091E800877F8093E8008091CD @@ -601,22 +601,22 @@ :1025800080936B041092E9008091E800877F80932C :10259000E8000E944F0799CE1F93CF93DF93162F29 :1025A000C0917E06D0917F068A30D1F420914304F9 -:1025B000CE018E579440622F70E00E941535281B83 -:1025C000822F66E00E942935C82FC15020F4DF9188 +:1025B000CE018E579440622F70E00E945135281B47 +:1025C000822F66E00E946535C82FC15020F4DF914C :1025D000CF911F91089560E080E20E94CC12F5CF68 :1025E0008D30E9F4CE57D44020914304622F70E03F -:1025F000CE010E941535281B822F9E01280F311D08 +:1025F000CE010E945135281B822F9E01280F311DCC :102600002115324018F080E0D0E0C0E0C80FD11DA5 :10261000C258DB4FD0937F06C0937E06D8CF96E09A :10262000FE01A4E4B4E001900D929A95E1F7803E9A :1026300090F186E0FE0111928A95E9F7C0917E063D :10264000D0917F06111133C046E050E0BE0184E412 -:1026500094E00E945F359E012E573440892B91F5FE +:1026500094E00E949B359E012E573440892B91F5C2 :102660002A5F3F4F40914304642F70E0C9010E94EC -:102670001535481B463010F4240F311D211572E02A +:102670005135481B463010F4240F311D211572E0EE :10268000370710F030E020E022583B4F30937F06B0 :1026900020937E069CCFF6E08F9FB00111246655F3 -:1026A000794F46E050E0CE010E945635C7CF9E01DB +:1026A000794F46E050E0CE010E949235C7CF9E019F :1026B0002A5F3F4FFE012E173F0731F28081809540 :1026C0008193F9CFC90145E0969587954A95E1F741 :1026D00041E050E0BA0102C0660F771F8A95E2F729 @@ -628,7 +628,7 @@ :102730001109C017D10730F0DF91CF911F910F9190 :10274000FF9008956F2D89910E94CC12F2CFE1E4A1 :10275000F4E08083618324E630E042E050E0BF0192 -:1027600084EB0C944C32CF93C82F60E08CE00E9435 +:1027600084EB0C948832CF93C82F60E08CE00E94F9 :10277000A7136C2F84E00E94A71361E08CE0CF9137 :102780000C94A7131F93CF93DF93CDB7DEB7629757 :102790000FB6F894DEBF0FBECDBF96E0E4E2F3E0E3 @@ -639,27 +639,27 @@ :1027E00086E0FE013196A4E2B3E001900D928A9555 :1027F000E1F762960FB6F894DEBF0FBECDBFDF9152 :10280000CF911F91089560951623E0CFCF93DF936A -:10281000C3EED2E060E0CE010E9489352196C11559 +:10281000C3EED2E060E0CE010E94C5352196C1151D :1028200084E0D807B9F7DF91CF9108956F927F9236 :102830008F929F92AF92BF92CF92DF92EF92FF92D0 :102840000F931F93CF93DF938AEAC82E86E0D82E8A :1028500091ECE92EF12CE701CC58D10936011BC0CF -:10286000F50185909490692DC8010E948935682DE5 -:10287000C80101960E94893582E0A80EB11C0E5F46 +:10286000F50185909490692DC8010E94C535682DA9 +:10287000C80101960E94C53582E0A80EB11C0E5F0A :102880001F4FC017D10761F78EE0680E711C2E969E :10289000CE15DF0529F08E010E5011095301E0CF4E :1028A0007E018CE8E80EF11C8CE8C80ED11C8DE787 :1028B000E81683E0F80679F6DF91CF911F910F912A :1028C000FF90EF90DF90CF90BF90AF909F908F9050 :1028D0007F906F900895CF93C82F6FEF811161E2C1 -:1028E00083E290E00E9489356FEFC11161E184E2DB -:1028F00090E00E9489356FEFC11166E285E290E0B9 -:10290000CF910C94893580E00E946B1460E086E2E0 -:1029100090E00E9489350E9416140E94061481E0FE +:1028E00083E290E00E94C5356FEFC11161E184E29F +:1028F00090E00E94C5356FEFC11166E285E290E07D +:10290000CF910C94C53580E00E946B1460E086E2A4 +:1029100090E00E94C5350E9416140E94061481E0C2 :102920000C946B140F931F93CF93DF93C42FD0E0BD :10293000CC0FDD1F2EE0629FC00DD11D11243CE89D -:10294000839FC00DD11D1124CE0187960E9475353D -:10295000082F10E0102F0027CE0188960E947535B1 +:10294000839FC00DD11D1124CE0187960E94B13501 +:10295000082F10E0102F0027CE0188960E94B13575 :102960009801282BC901DF91CF911F910F910895F4 :10297000462F853038F47A3028F4673018F4672F02 :102980000C94921490E080E00895CF92DF92FF9231 @@ -671,16 +671,16 @@ :1029E000180A019761F3EECFCF93DF93EC010E94B9 :1029F000C514BE010E94B814DF91CF910C94180A3F :102A0000FC01808191810E94F414292F2F709295EE -:102A10009F7092509E3078F4E92FF0E0E351F94C2A -:102A20000C944935803F19F020F4883E20F481E071 +:102A10009F7092509E3078F4E92FF0E0E75DF84C1B +:102A20000C948535803F19F020F4883E20F481E035 :102A30000895843FE1F380E00895883EC0F3813F2C :102A4000D1F7F5CF822F869586958695089583E2F6 -:102A500090E00E947535813289F484E290E00E9412 -:102A60007535813159F485E290E00E94753591E029 +:102A500090E00E94B135813289F484E290E00E94D6 +:102A6000B135813159F485E290E00E94B13591E0B1 :102A7000863209F090E0892F8170089580E0FCCFC4 :102A8000CF92DF92EF92FF926B017C010E940E09C0 :102A9000B701A60188E090E0FF90EF90DF90CF9023 -:102AA0000C949B35AF92BF92CF92DF92EF92FF9240 +:102AA0000C94D735AF92BF92CF92DF92EF92FF9204 :102AB0000F931F93CF93DF9300D00F92CDB7DEB764 :102AC000082FF62E142FE22E8091770480FF4FC03E :102AD000E82FE695AE2FB0E0AE5EBD4F9C9190938F @@ -699,7 +699,7 @@ :102BA000D82EE695F0E0E55AF94FA590B490C12CE7 :102BB000BB2460917301C61608F0B4CF2C2D30E011 :102BC000A29EC001A39E900DB29E900D112470E0B4 -:102BD0000E941535802FD11016C0860F40917101CB +:102BD0000E945135802FD11016C0860F409171018F :102BE000420F532F511D9A01220F331F240F351FFF :102BF000215A3C4F412F113A08F040EA6F2D0E94B4 :102C00002409C394D6CF861BE9CFE7E7F4E04381DC @@ -762,7 +762,7 @@ :102F90008FEF828380EA83831482A9E5B3E01296DF :102FA0008C911297836012968C93608171818281DB :102FB00093810C944015AB01BC0188E190E00C9426 -:102FC0009B35CF93C82FEFE3F4E0982F990F990F1B +:102FC000D735CF93C82FEFE3F4E0982F990F990FDF :102FD000990F80818770892B8083E0E4F4E09C2F37 :102FE0009295969597708081887F892B80836091D8 :102FF0003D0470913E0480913F04909140040E94F2 @@ -773,19 +773,19 @@ :103040003E0480913F04909140040C94DB17EDE323 :10305000F4E080818160808360913D0470913E0442 :1030600080913F04909140040C94DB1769EE7EEF51 -:1030700090E080E00E94A73560E082E090E00E944E -:10308000893560E083E090E00E94893510929202D9 -:1030900060E084E090E00E94893560E082E290E0A8 -:1030A0000E94893560E085E090E00E94893560E00B -:1030B00086E090E00E9489356FEF87E090E00E9403 -:1030C000893540E050E0BA0188E090E00E949B35ED -:1030D00060E08DE090E00E94893540E050E0BA0168 -:1030E00088E190E00E949B3560E087E190E00E94DB -:1030F000893540E050E0BA018CE190E00E949B35B8 -:1031000070E060E080E290E00E94A7350E9406181F +:1030700090E080E00E94E33560E082E090E00E9412 +:10308000C53560E083E090E00E94C5351092920261 +:1030900060E084E090E00E94C53560E082E290E06C +:1030A0000E94C53560E085E090E00E94C53560E093 +:1030B00086E090E00E94C5356FEF87E090E00E94C7 +:1030C000C53540E050E0BA0188E090E00E94D73575 +:1030D00060E08DE090E00E94C53540E050E0BA012C +:1030E00088E190E00E94D73560E087E190E00E949F +:1030F000C53540E050E0BA018CE190E00E94D73540 +:1031000070E060E080E290E00E94E3350E940618E3 :1031100080E00E946B140E94831440E050E0BA01EA -:103120008FE090E00E949B3540E050E0BA0183E1DF -:1031300090E00C949B350F931F93CF93DF9300D0B7 +:103120008FE090E00E94D73540E050E0BA0183E1A3 +:1031300090E00C94D7350F931F93CF93DF9300D07B :1031400000D0CDB7DEB74091C5025091C602609164 :10315000C7027091C8022FB7F894809157049091DC :103160005804A0915904B0915A042FBF841B950BA9 @@ -793,8 +793,8 @@ :103180009F0E882379F10E9462086E5F7F4F8F4FF8 :103190009F4F69837A838B839C8380912C019091CC :1031A0002D0181559D4F40912B0150E04530510537 -:1031B00010F044E050E0BE016F5F7F4F0E946C351D -:1031C00084E090E00E946134892BD9F40E94620867 +:1031B00010F044E050E0BE016F5F7F4F0E94A835E1 +:1031C00084E090E00E949D34892BD9F40E9462082B :1031D0006093C5027093C6028093C7029093C802A1 :1031E00081E010C00E9462080091D2021091D302C7 :1031F0002091D4023091D502600F711F821F931F5E @@ -807,7 +807,7 @@ :1032600010F4442311F1E82E082E000CFF089AE018 :103270008902F0011124EF5FFE4F83819481815513 :103280009D4F428150E00417150708F4A801B901C9 -:103290000E946C35C7010E946134892BA1F40E9401 +:103290000E94A835C7010E949D34892BA1F40E9489 :1032A0006208688379838A839B8381E0DF91CF9171 :1032B0001F910F91FF90EF90DF90CF90BF90AF9054 :1032C0009F908F90089580E0F1CF0F931F93CF933D @@ -825,25 +825,25 @@ :10338000DF91CF911F910F9108956F927F928F924D :103390009F92AF92BF92CF92DF92EF92FF920F93E4 :1033A0001F93CF93DF930F92CDB7DEB7862E5A01CE -:1033B0006901682E880F7708C3010E946134892B48 +:1033B0006901682E880F7708C3010E949D34892B0C :1033C00009F088C08AE0869DF001879DF00D1124E8 :1033D000EF5FFE4F458150E04115510511F041E08E :1033E00050E08AE0869DF001879DF00D1124EF5F8B :1033F000FE4F6681778161557D4FCE0101960E9417 -:103400006C35F50140815181628173812FB7F89449 +:10340000A835F50140815181628173812FB7F8940D :103410008091570490915804A0915904B0915A0496 :103420002FBF841B950BA60BB70B84369105A10506 :10343000B10540F4B701C8010E94F30899818917CA -:1034400009F44FC0082C000C9908C4010E94613493 +:1034400009F44FC0082C000C9908C4010E949D3457 :10345000892B91F0B12C8B2D0F90DF91CF911F9183 :103460000F91FF90EF90DF90CF90BF90AF909F9023 :103470008F907F906F9008958AE0889DF001899DDC :10348000F00D1124EF5FFE4F458150E0E416F50684 :1034900008F4A7018AE0889DF001899DF00D1124B0 :1034A000EF5FFE4F6681778161557D4FC6010E94B7 -:1034B0006C35B701C8010E94F30899818913CACFFE +:1034B000A835B701C8010E94F30899818913CACFC2 :1034C0000E946208F5016083718382839383BB2429 -:1034D000B394C1CFB12CA701B801C6010E946C35CD +:1034D000B394C1CFB12CA701B801C6010E94A83591 :1034E000BACFBB24B394F7CFCF92DF92EF92FF9283 :1034F0000F931F93CF93DF9300D000D00F92CDB7DF :10350000DEB76B0185E0E82EF12C00EB12E09E01A6 @@ -852,7 +852,7 @@ :103530000D929A95E1F795E0E2EAF2E0D60101906A :103540000D929A95E1F70F900F900F900F900F90BA :10355000DF91CF911F910F91FF90EF90DF90CF906F -:10356000089590E080E00E948335893E9E4F11F4DB +:10356000089590E080E00E94BF35893E9E4F11F49F :103570000C94271580E008951F920F920FB60F92BA :1035800011242F933F934F935F936F937F938F9368 :103590009F93AF93BF93CF93DF93EF93FF93D0911C @@ -900,24 +900,24 @@ :103830007F928F929F92AF92BF92CF92DF92EF9240 :10384000FF920F931F93CF93DF9300D000D00F927E :10385000CDB7DEB77C01FC0183819481892B31F0E7 -:103860008081918189238F3F09F08CC60F900F9042 +:103860008081918189238F3F09F0C8C60F900F9006 :103870000F900F900F90DF91CF911F910F91FF90BC :10388000EF90DF90CF90BF90AF909F908F907F9000 :103890006F905F9008950E94C514182F682F89813A :1038A0009A810E94CB0B69817A81812F0E94B81482 :1038B0008C01F7018281882361F0F801E65EFC4506 -:1038C000ED30F10530F4E550F94C0C9449350E9487 +:1038C000ED30F10530F4E95CF84C0C9485350E943C :1038D0002718D0903D04D0FE1CC08D2D8695837096 :1038E000F7019281992309F460C1823090F4B70105 :1038F000C8010E94B108882361F0D694D694D6946A :1039000080913E0483708295880F807E8D290E946D -:10391000B313F7018281882309F429C6C8018251B3 -:103920009F45409708F0ECC58FEF93E00E947535F6 +:10391000B313F7018281882309F465C6C801825177 +:103920009F45409708F021C68FEF93E00E94B13584 :10393000025193EEA92E92E0B92E811197CF011179 :1039400038C11C821B82662463948AE0582E85014C -:103950000F5F1F4FC5010E94753589831A82882326 +:103950000F5F1F4FC5010E94B13589831A828823EA :1039600009F484CF9FEF980F933008F031C18A8318 -:10397000698232E0A30EB11CC8010E9475358B83A9 +:10397000698232E0A30EB11CC8010E94B1358B836D :10398000882309F473CF8E010F5F1F4FF801208148 :103990002223E9F2213009F055C1918182819130D1 :1039A00009F018C10E5F1F4F6AE070E0893311F40F @@ -954,7 +954,7 @@ :103B90009695809140048295880F807E892B843190 :103BA00010F08A50EBCF84E1E9CF882309F4B1CE3D :103BB0009ECEA114F4E0BF0609F458CEC5010E94C0 -:103BC0007535811101C001502FEFA21AB20AB7CE8C +:103BC000B135811101C001502FEFA21AB20AB7CE50 :103BD0005801D9CE923039F40E5F1F4F0E94570C16 :103BE0000F5F1F4FD3CE933029F40E5F1F4F0E94FB :103BF0001E0CF6CF943019F00F5F1F4FF1CF0E5F00 @@ -977,809 +977,817 @@ :103D000003C081E00E948A170F900F900F900F90D0 :103D10000F90DF91CF911F910F91FF90EF90DF9067 :103D2000CF90BF90AF909F908F907F906F905F905B -:103D30000C947F1782E0E2CF043F110509F455C1CE -:103D400008F057C1053E110509F4DDC0F701928165 -:103D500091113CC280915F0482720A3CFCE51F070E -:103D600009F414C208F06AC1053C3CE5130709F4E4 -:103D7000F9C108F04EC1033C5CE5150709F4D3C155 -:103D800008F0EBC1023C1C4509F47DC1F70100813C -:103D90001181992309F434C2C8010E94C514D82E98 +:103D30000C947F1782E0E2CF013E110509F404C123 +:103D400008F04DC0003E110509F469C1F7019281E8 +:103D5000911171C280915F0482720A3CFCE51F07D9 +:103D600009F449C208F09FC1053C3CE5130709F47A +:103D70002EC208F083C1033C5CE5150709F408C2B4 +:103D800008F020C2023C1C4509F4B2C1F7010081D1 +:103D90001181992309F469C2C8010E94C514D82E63 :103DA000682FC8010E94CB0BB8018D2D0E94B8145A :103DB0000E94180A182FB82EF70122814581342F4E :103DC00032953F70892F82958F70C82ED12C8C3000 -:103DD00008F04EC2F601E85FF84C0C944935033800 -:103DE000FFE51F0709F481C018F501383FE5130707 -:103DF00009F44AC008F065C000385FE5150709F00E -:103E0000A5CF882309F459C080919C02811106C076 -:103E100081E080939C0282EE0E94570C0E940A1C53 -:103E200090939B0280939A028BE20E94570C8ECF54 -:103E300005389FE5190709F4BEC008F476C00638B6 -:103E4000FFE51F0709F082CF882309F4CEC06091F7 -:103E5000590170915A0190E080E00E94C23520E043 -:103E600030E040E05CE30E94233620E030E040E8B0 -:103E70005FE30E94BD358111B5C080EE90E0909364 -:103E80005A0180935901A1C08823A1F080919C021E -:103E9000811106C081E080939C0282EE0E94570C43 -:103EA0000E940A1C90939B0280939A0281EE0E94CA -:103EB000570CBACF81EE0E941E0C8BE20E941E0CA2 -:103EC00045CF882309F442CF81EE0E94570C83EE40 -:103ED0000E94570C8FE40E94570C8FE40E941E0C26 -:103EE00083EE0E941E0C81EEE9CF882309F42ECFC9 -:103EF00081EE0E94570C83EE0E94570C80E50E94D1 -:103F0000570C80E5EBCF80933C0210933B0200936B -:103F10003A02882321F081E08093EE0217CF1092BD -:103F2000EE0214CF80933902F0CF882379F180918B -:103F30003902882349F080913A020E941E0C80EEDB -:103F40000E94570C8AE20CC080913C028823D1F376 -:103F500080913A020E941E0C80EE0E94570C8CE465 -:103F60000F900F900F900F900F90DF91CF911F91B6 -:103F70000F91FF90EF90DF90CF90BF90AF909F9008 -:103F80008F907F906F905F900C94570C8AE20E9404 -:103F90001E0C8CE40E941E0C80EE0E941E0C809170 -:103FA0003902811105C080913C02882309F45ECC5E -:103FB00080913A02D5CF8823C1F0809132038823C3 -:103FC00039F010923203109200010E94410DBECED2 -:103FD000809100018111F7CF81E0809332038093BB -:103FE0000001F3CF80E890E04ACF61E00E94C21365 -:103FF000ADCE62E0FBCF64E0F9CF882321F081E011 -:104000008093ED02A3CE1092ED02A0CE1092F002AA -:104010009DCE073C2CE5120709F4AEC008F4A7C0FA -:10402000083C4CE5140709F4ACC0093C1C4509F0F8 -:10403000ADCE45E056E161E176E179C0043DECE5C5 -:104040001E07A8F40E3CFCE51F0708F00FCC0C3C43 -:104050002CE5120709F49FC047E456E168E576E1D4 -:104060000D3C1C4508F463C061E081E046C0053D9D -:104070004CE5140709F4FACB08F492C00D351D4540 -:1040800009F4F4CB83CE8091770480FF31C08E7F1A -:10409000809377046091770470917804809179041B -:1040A00090917A040E94401580915B038160809317 -:1040B0005B039FEFE0E7F2E09150E040F040E1F772 -:1040C00000C000000F900F900F900F900F90DF91A5 -:1040D000CF911F910F91FF90EF90DF90CF90BF9005 -:1040E000AF909F908F907F906F905F900C94E70EB1 -:1040F00081608093770461E086950F900F900F9018 -:104100000F900F90DF91CF911F910F91FF90EF9043 -:10411000DF90CF90BF90AF909F908F907F906F90E7 -:104120005F900C94691641EA57E16AEA77E10F90D3 +:103DD00008F083C2F601EC5BF84C0C948535043E88 +:103DE000110509F41CC1053E110509F0AFCF809300 +:103DF0003C0210933B0200933A02882309F4A1C0CD +:103E000081E08093EE02A2CF0238FFE51F0709F49C +:103E100076C038F5063F110509F4FFC008F4FBC071 +:103E200000383FE5130709F44DC001384FE514078A +:103E300009F08CCF882309F45BC080919C0281112A +:103E400006C081E080939C0282EE0E94570C0E9483 +:103E50000A1C90939B0280939A0281EE0E94570C59 +:103E600043C004385FE5150709F471C008F45BC06E +:103E70000538EFE51E0709F4B0C00638FFE51F0757 +:103E800009F064CF882309F4C2C060915901709190 +:103E90005A0190E080E00E94FE3520E030E040E0F2 +:103EA0005CE30E945F3620E030E040E85FE30E9480 +:103EB000F9358111A9C080EE90E090935A0180936A +:103EC000590195C08823B9F080919C02811106C0E8 +:103ED00081E080939C0282EE0E94570C0E940A1C93 +:103EE00090939B0280939A028BE20E94570C2ECFF4 +:103EF00081EE0E941E0C8BE20E941E0C27CF8823AD +:103F000009F424CF81EE0E94570C83EE0E94570CD7 +:103F10008FE40E94570C8FE40E941E0C83EE0E94D7 +:103F20001E0C81EEE9CF882309F410CF81EE0E94A8 +:103F3000570C83EE0E94570C80E50E94570C80E5D9 +:103F4000EBCF1092EE0202CF8093390252CF88233A +:103F500079F180913902882349F080913A020E94D8 +:103F60001E0C80EE0E94570C8AE20CC080913C022D +:103F70008823D1F380913A020E941E0C80EE0E94A9 +:103F8000570C8CE40F900F900F900F900F90DF91D3 +:103F9000CF911F910F91FF90EF90DF90CF90BF9046 +:103FA000AF909F908F907F906F905F900C94570C84 +:103FB0008AE20E941E0C8CE40E941E0C80EE0E947D +:103FC0001E0C80913902811105C080913C0288232A +:103FD00009F44CCC80913A02D5CF8823C1F080916E +:103FE0003203882339F010923203109200010E94AC +:103FF000410DACCE809100018111F7CF81E080931B +:10400000320380930001F3CF80E890E056CF61E067 +:104010000E94C2139BCE62E0FBCF64E0F9CF8823FD +:1040200021F081E08093ED0291CE1092ED028ECED0 +:10403000882331F081E08093F0021092670186CEF0 +:104040001092F00283CE882349F0809176040E947A +:10405000CB0C813019F482E30E94B313F701828103 +:10406000882309F4B0C2809176040E94CB0C813081 +:1040700009F0A9C284E30E94B313A5C2073C2CE552 +:10408000120709F4AEC008F4A7C0083C4CE51407B9 +:1040900009F4ACC0093C1C4509F078CE45E056E176 +:1040A00061E176E179C0043DECE51E07A8F40E3C21 +:1040B000FCE51F0708F0DACB0C3C2CE5120709F4ED +:1040C0009FC047E456E168E576E10D3C1C4508F4E5 +:1040D00063C061E081E046C0053D4CE5140709F48A +:1040E000C5CB08F492C00D351D4509F4BFCB4ECEAB +:1040F0008091770480FF31C08E7F80937704609138 +:104100007704709178048091790490917A040E94E8 +:10411000401580915B03816080935B039FEFE0E734 +:10412000F2E09150E040F040E1F700C000000F9055 :104130000F900F900F900F90DF91CF911F910F91E3 :10414000FF90EF90DF90CF90BF90AF909F908F90B7 -:104150007F906F905F900C9409094AEA57E161EAF9 -:1041600077E1E5CF45E356E16EE376E1E0CF4EE35C -:1041700056E165E376E1DBCF4DE156E169E276E1B8 -:10418000D6CF49E256E16DE176E1D1CF41E156E18A -:1041900065E076E1CCCF48E556E167E476E1C7CF4C -:1041A0000F900F900F900F900F90DF91CF911F9174 -:1041B0000F91FF90EF90DF90CF90BF90AF909F90C6 -:1041C0008F907F906F905F900C94B4170E3D1C45BC -:1041D00009F0DCCD0F900F900F900F900F90DF91B2 -:1041E000CF911F910F91FF90EF90DF90CF90BF90F4 -:1041F000AF909F908F907F906F905F900C94361847 -:10420000C8010E94A30BD82ECFCD092F0F70907F2D -:1042100011F00295007F812F2223C9F0002369F05D -:1042200090E2910F983010F011110BC080915F0453 -:10423000082B00935F040E94820B812F0E94570C71 -:1042400017C080919102082B00939102F4CF0E9435 -:104250001E0C002369F00095105E183010F0B110AC -:1042600027C080915F04082300935F040E94820BA3 -:1042700098E0C91AD108E4E0CE16D10408F0F6CAD5 -:104280000E94C20E0F900F900F900F900F90DF9131 -:10429000CF911F910F91FF90EF90DF90CF90BF9043 -:1042A000AF909F908F907F906F905F900C94B81616 -:1042B00080919102082300939102D8CF892F8F70AB -:1042C000907F903211F08295807FF1E0BF120CC098 -:1042D000222329F0333060F60E94140CC9CF32300B -:1042E00038F60E94090CC4CF222341F03323A1F3F6 -:1042F00040FFA3CF4F70F7014583EECF332389F3FF -:10430000193309F0F5C0FFEF27EE33E0F1502040FC -:104310003040E1F700C00000812F0E941E0CA8CFA2 -:10432000892F86958695837061F0813009F0A0CF42 -:10433000812F9370211102C090E080E00E946E08EE -:1043400097CF812F9370211102C090E080E00E94EE -:1043500084088ECF892F8370A1F5211189CF812FF9 -:10436000829586958770880F880F412F4F70082E91 -:1043700001C0440F0A94EAF7212F207114FF07C0EF -:104380002FE030E001C0220F8A95EAF7209596953C -:1043900096959370923081F0822F842B933030F475 -:1043A00080919202913029F0242B82230E94050CE7 -:1043B0005FCF842B822BFACF242B8091920282270D -:1043C000F5CF8695222311F0892F8170882309F477 -:1043D0004FCF812F829586958770880F880F412F48 -:1043E0004F70082E01C0440F0A94EAF7212F207164 -:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 -:104400002095969596959370923081F0822F842B0B -:10441000933030F480917604913029F0242B82235C -:104420000E94791725CF842B822BFACF242B8091E1 -:1044300076048227F5CF092F0F70222329F0802FD1 -:104440000E949617812F48CF812F0E94090C802F40 -:104450000E948A170DCF812FE1EF1E1789F1E11716 -:1044600050F0F0EF1F17B9F02223B1F13111E5CE72 -:10447000892F8F7129C042EF141749F153EF15139B -:10448000F3CF80E0222361F29F7181E001C0880FA9 -:104490009A95EAF7C5CF222379F0323008F0E8CEBA -:1044A000292F2F7181E090E001C0880F2A95EAF74B -:1044B000909176048927B4CF333008F0D9CEF0CF6D -:1044C000892F8F71222321F20E949617D1CE892F36 -:1044D0008F712223C9F3BCCF332379F0893341F4A0 -:1044E0008FEF97EEE3E081509040E040E1F712CF8C -:1044F0008FE39CE90197F1F70DCF892F8F71A8CF3A -:104500000031FFE51F0709F4F8CB01312FE5120751 -:1045100009F410CC0E9462086093F5027093F602D1 -:104520008093F7029093F802F7018281063F11050C -:1045300009F461CD08F053CC043E110509F45DCDBA -:1045400008F0FACB003E110509F457CD013E1105E4 -:1045500009F4E8CC0C32110509F0F8CB882309F4F2 -:1045600055CD81E08093F00210926701EFCB0031CE -:104570003FE5130709F4C5CB01314FE51407A1F658 -:1045800082E0C0CB85E0DE01119601900D928A9504 -:10459000E1F7F701228189819A8121117CC90E946A -:1045A000A30B182F80C91F93CF93DF9380915D02D7 -:1045B000807FA9F480915A02882389F080918F022C -:1045C000D0915E026091580270915902A0915B02F5 -:1045D000B0915C02C62FC72316E0D81304C0DF9148 -:1045E000CF911F91089590E0109711F0CF3F19F4EB -:1045F00001968770F2CF189F9001199F300D1124FA -:10460000F901E15AFD4F41814713F2CF4081461332 -:10461000EFCF42814111ECCF438154814A1B5B0BA8 -:10462000403A510528F780915D028F708061809338 -:104630005D02F901EC59FD4F80818F7080618083AC -:1046400088E592E00E94161CDF91CF911F910C9497 -:10465000990BAF92BF92CF92DF92EF92FF920F939E -:104660001F93CF93DF93CDB7DEB761970FB6F89462 -:10467000DEBF0FBECDBF8C0185E0F801DE011D96C7 -:1046800001900D928A95E1F7F801E28088E5A82E65 -:1046900082E0B82E60915B0270915C026115710539 -:1046A00009F432C19091580240915902892F842314 -:1046B0008F3F09F429C120813181C380D480F090DB -:1046C0005A02F601E61BF70BFF2009F4E8C08091BF -:1046D0005D02582F507FE03AF10508F0ABC0511150 -:1046E00077C0FE2C431321C092131FC0E1101DC0E0 -:1046F0008F70806180935D02C5010E94161C8091BD -:104700005D02F80185838F2D61960FB6F894DEBFA8 -:104710000FBECDBFDF91CF911F910F91FF90EF9012 -:10472000DF90CF90BF90AF900895CD2829F0822FD1 -:1047300083238F3F09F003C180E0F82FF170DF2E53 -:1047400080FF3CC080918F0240915E0256E084134E -:1047500015C02D873E878D859E850E94F414292FD4 -:1047600022952F702230F0F0243018F59F70F1F070 -:10477000F8019581907FD1F4D12C1EC090E0589F14 -:10478000F001599FF00D1124E15AFD4F618136135C -:1047900006C06081261303C06281E6120FC0019635 -:1047A0008770D5CF9F7011F0882331F3805E8830F9 -:1047B00018F3C8010E94161CFD2CA5CFEE2009F4A9 -:1047C000A2CF80915D02816080935D02F12C9BCF2E -:1047D000431306C0921304C0F801EE2009F479C017 -:1047E000C8010E940015882309F1EE20F9F080919C -:1047F0005D02803270F02091580230915902388762 -:104800002F831986DB86CA868C87CE0107960E9485 -:10481000161C86E0F801A8E5B2E001900D928A9599 -:10482000E1F70E94D322FF24F3946DCFC8010E94C8 -:10483000161CF9CF51110AC088E592E00E94161C9F -:1048400086E0F50111928A95E9F7C0CF43130FC0B6 -:1048500092130DC0E1100BC0F8018583C8010E94BE -:10486000161C86E0F50111928A95E9F74CCFC80134 -:104870000E9400158823D1F2EE20C1F280915D02E2 -:10488000803238F220915802309159023A832983BC -:104890001B82DD82CC828E83CE010196B8CFE03AB6 -:1048A000F105F8F6FE2CEE2009F243131FC0921317 -:1048B0001DC080915D0280FD10C0982F907F69F02F -:1048C000F8018583903F31F0982F907F905F8F7033 -:1048D000892B8583C8010E94161C86E0F801A8E593 -:1048E000B2E001900D928A95E1F70DCFC8010E94C8 -:1048F000001581118ECF80915D02816080935D02F1 -:10490000C8010E94161CFFCEEE2009F48FCFC8010B -:104910000E940015F82E882309F488CF86E0F8015C -:10492000A8E5B2E001900D928A95E1F780915802D6 -:10493000909159020E94F4140E94D322E4CE81E0A7 -:104940008E25FBCE1F93CF93DF93CDB7DEB767974E -:104950000FB6F894DEBF0FBECDBF4B8B5C8B6D8B5B -:104960007E8B8F8B6111109291021A8A198A85E0D1 -:10497000FE017396DE011D9601900D928A95E1F776 -:1049800086E0FE013D96DE01179601900D928A9514 -:10499000E1F7CE0107960E942923882389F016E0CB -:1049A00080918F0290915E0289134BC067960FB67B -:1049B000F894DEBF0FBECDBFDF91CF911F91089558 -:1049C00086E0FE013796DE01119601900D928A95E0 -:1049D000E1F78A859B85892B11F38F81988589233F -:1049E0008F3FE9F220915E0230E0C90101968770A5 -:1049F000992740918F024817190681F410925F049D -:104A00000E94FA0F10925E0210928F0286E0E8E593 -:104A1000F2E0DF011D928A95E9F7C1CF96E0929FFF -:104A2000D001939FB00D1124A15ABD4FFE013196C4 -:104A300001900D929A95E1F780935E020E94990B86 -:104A4000AECF819FC0011124815A9D4F0E9429231E -:104A5000882309F4ABCF80918F0290E00196877094 -:104A6000992780938F029CCF9F92AF92BF92CF9253 -:104A7000DF92EF92FF920F931F93CF93DF93CDB707 -:104A8000DEB764970FB6F894DEBF0FBECDBF8E01C0 -:104A90000F5F1F4F8AE0D8011D928A95E9F79EE4C7 -:104AA000C92E91E0D92EF12CE12CAA24A394B12C8B -:104AB000F60181916F018F3F09F44AC0F894E82F05 -:104AC000E295EF70F0E021A18F70A50102C0440FC4 -:104AD000551F8A95E2F7CA01922F982B91A392A1B4 -:104AE0008095892382A30E94BC0900C0E7E4F1E01D -:104AF00030E020E0912C41914F3F09F47DC0A42F7C -:104B0000A295AF70B0E090968C9190E04F7002C08B -:104B1000959587954A95E2F780FD6EC08A2D022E05 -:104B200001C0880F0A94EAF7982A2F5F3F4F273079 -:104B3000310509F7F601319780818F3F11F00E940E -:104B4000BE0950EA5A95F1F7F801EE0DFF1D90826B -:104B50008FEFE81AF80A95E0E916F10409F0A8CFFA -:104B60004AE050E0B80188ED92E00E945F357C0198 -:104B7000892B41F08AE0F801A8EDB2E001900D9296 -:104B80008A95E1F71091E302E114F104B9F181E0B3 -:104B9000809395020E940A1C909394028093930242 -:104BA00080919302909194020E94FB1B069770F0F3 -:104BB000A8EDB2E0E12FF0E0E15BFC4F8D91819335 -:104BC00022E0AD3DB207D1F71092950281E090E06E -:104BD000EF28C1F064960FB6F894DEBF0FBECDBFCC -:104BE000DF91CF911F910F91FF90EF90DF90CF90C9 -:104BF000BF90AF909F90089580E096CF80919502EE -:104C00008111CECF0E949F0EB82EE091E30288233F -:104C100009F4C7C08E01005F1F4F85E0D8011D92C7 -:104C20008A95E9F7F0E09F01215B3C4F7901809183 -:104C3000D102AE014B5E5F4F6A018A3008F086C038 -:104C400044E75AE1B801C7010E945B0E882309F4CA -:104C500094C045EA57E2B801C7010E945B0E882361 -:104C600009F48BC04BE958E1B801C7010E945B0E03 -:104C7000882309F482C047E859E1B801C7010E94BE -:104C80005B0E882309F479C045E659E1B801C701F4 -:104C90000E945B0E882309F470C01092D102E0914B -:104CA000E202F0E0AF01415B5C4FD80110E0FA0195 -:104CB0009191AF018D91981731F09F0121503109E9 -:104CC000F90180831B2DCA16DB0689F780919C02AF -:104CD000882371F080919A0290919B020E94FB1BA5 -:104CE000893E934028F082EE0E941E0C10929C0296 -:104CF00088E9C82E82E0D82EF12CE12CD6018D91C6 -:104D00006D018823D1F08695F70109F447C0EC5076 -:104D1000FE4F808191819C878B871D860E940A1C93 -:104D20008160782F9F878E87F601319710824B859F -:104D30005C856D858F850E94A224B2E0EB0EF11C8C -:104D4000E4E0EE16F104D1F6812F44CF8091960273 -:104D5000909197020E94FB1B843F914008F070CF16 -:104D6000A091E202B0E0A15BBC4FF8011D9211924C -:104D7000CE16DF06D9F71B2DA9CF8091D1028F3F28 -:104D800031F08F5F8093D1028A3008F488CF0E947F -:104D90000A1C9093970280939602E2CFE051FE4F57 -:104DA000B8CFF0E0E15BFC4FF89485E0A0EBB2E017 -:104DB00001900D928A95E1F765E070E080EB92E05A -:104DC0000E94F3088093AF020E94BC09F894E0911E -:104DD000EB02F0E0E851FD4F80818B878093B602B3 -:104DE00061E070E0CE010B960E94F3088093B5025B -:104DF0000E94BC09F894C090B702D090B802E0902D -:104E0000B902F090BA0280919D0290919E02A09109 -:104E10009F02B091A002C816D906EA06FB06D1F09F -:104E2000C0929D02D0929E02E0929F02F092A00258 -:104E30000E949F0E81110EC00E946208C61AD70AF6 -:104E4000E80AF90AC092D202D092D302E092D402C8 -:104E5000F092D5020E94BC09F8948091C202882386 -:104E600021F184FF04C09091C30290935C0380FF02 -:104E70000DC08091BB0280FF25C0909177049160A6 -:104E80009093770460E086950E9469168091C20233 -:104E900081FF09C020E04091BE026091BD02809177 -:104EA000BC020E9452151092C2020E94BC09F894E2 -:104EB0008091C402882349F00E94B30D0E94BC096E -:104EC00080E088CE0E94E50FE1CF0E94980DF6CFDA -:104ED000EF92FF920F931F93CF93DF9300D000D0F8 -:104EE0000F92CDB7DEB7162FE82EF12CC701880F31 -:104EF000991F662339F18C509E4FFC01808191816E -:104F00009A83898301E00B830E940A1C8160782FB9 -:104F10009D838C83F701E856FD4F0127110F102B5D -:104F2000108349815A816B818D810F900F900F9072 -:104F30000F900F90DF91CF911F910F91FF90EF9005 -:104F40000C94A22480519E4FD8CFCF92DF92EF9243 -:104F5000FF920F931F93CF93DF930F92CDB7DEB7DE -:104F6000EE24E394F12C06EB12E09E012F5F3F4FFD -:104F70004BEA52E063E082E00E94C519082F8823C3 -:104F800021F1C090E5028C2D90E09C0128513D4F0D -:104F900079011981F9018081181BD12E80E00AC0A6 -:104FA000DA94F70180818F5F808360E08C2D0E940E -:104FB0006827802F1D14A4F3912F17FD90E0191B73 -:104FC00011110EC081110E94800B802F0F90DF9174 -:104FD000CF911F910F91FF90EF90DF90CF900895A8 -:104FE0001F5FF70180818150808361E08C2D0E94DA -:104FF0006827802FE5CF1F921FB61F9211248F9331 -:105000009F93AF93BF9380915604811113C08091F9 -:10501000570490915804A0915904B0915A044196B4 -:10502000A11DB11D8093570490935804A093590477 -:10503000B0935A04BF91AF919F918F911F901FBE63 -:105040001F901895CDB7DEB7E9970FB6F894DEBF7D -:105050000FBECDBF84B7877F84BF0FB6F894A895E5 -:1050600080916000886180936000109260000FBEA4 -:1050700080E890E00FB6F89480936100909361000F -:105080000FBE85B7806885BF85B7806885BF8AEB0E -:1050900099E090932F0280932E020E94D5060E94E1 -:1050A000A0078091E20084608093E2007894809170 -:1050B0006C048823A1F01091E9001F709091EC001E -:1050C000892F817090FD80E8182B1092E900809163 -:1050D000E80083FD0E9403101F701093E90082E036 -:1050E00084BD93E095BD9AEF97BD80936E001092BA -:1050F000D2021092D3021092D4021092D5020E94D2 -:105100002715811102C00E9483140E949F0E809374 -:10511000580180915801882309F4C6C010926F018C -:1051200085E2809370010E949F0E81110E9454338A -:105130008091580181112FC0FE01359686E0DF0174 -:105140001D928A95E9F786E6898387E98A8386EC4A -:105150008B8384E38C8385E38D833497AEE4B1E065 -:10516000CE010B9621912D938E179F07D9F787E0DB -:10517000E5E7F1E0DE01919601900D928A95E1F765 -:10518000FE01B196A7E4B1E0CE01889621912D935E -:105190008E179F07D9F78091580195E0811190E013 -:1051A0009093E30285E0891B8093E2020EE411E014 -:1051B000A3E5EA2EA1E0FA2EF80181918F018F3F3D -:1051C00011F00E94BE09E016F106B1F707E411E004 -:1051D000FEE4EF2EF1E0FF2ED8018D918D018F3F7F -:1051E00011F00E94BE09E016F106B1F7E8EDF2E019 -:1051F00082EE92E0AFE4B3E011921D928E179F070A -:10520000D9F70E94B11A811102C00E94361882E0BB -:1052100090E00E9475358093440384E090E00E9402 -:105220007535182F82E290E00E947535982F812FF6 -:105230009093D7028093D6020E943425EFE7FBEBD0 -:105240003197F1F700C000000E94342580914F0390 -:1052500080FF2EC06FEF7FEF90E080E00E94A735C7 -:1052600081E08093E00080E28093D8001092C90032 -:105270008FE19EE40197F1F700C0000087E090EB1A -:10528000DC018093800690938106A0938206B09300 -:10529000830688E19CE00FB6F894A895809360009F -:1052A0000FBE90936000FFCF85E280936F0139CFEE -:1052B00083E090E00E9475350E94050C8091760491 -:1052C0000E94D0160E94B11A811102C00E943618A5 -:1052D00088E190E00E947D3560933D0470933E0428 -:1052E00080933F0490934004672B682B692B11F443 -:1052F0000E9406180E94553167E081E00E94A713C2 -:1053000065E586E10E94A71363E687E10E94A71383 -:1053100060EA8AE10E94A71369E98BE10E94A71362 -:1053200065EF8CE10E94A71360EA8DE10E94A7134C -:1053300060E38EE10E94A71366E083E00E94A7135A -:1053400061E08CE00E94A71360E081E00E94A71357 -:1053500060E08CE00E94A7136FE084E00E94A71336 -:1053600061E08CE00E94A7130E949F0E811102C091 -:105370000E94573383E080931A0380E280934304B2 -:105380000E9455316DE070E08CE992E00E94680D5A -:10539000892BE9F580911A0363E070E081FD9EC2DC -:1053A00089E992E00E94680D892B89F56DE070E033 -:1053B00089E892E00E94680D892B49F50E946208F5 -:1053C0006058774C8E4F9F4F60934A0470934B0404 -:1053D00080934C0490934D04EEE7F4E080E092E07B -:1053E000DF019C011D9221503040E1F7F0937F06D0 -:1053F000E0937E068FEF9FEF90937D0480937C0473 -:1054000081E080934F0480934E0410921B0380919F -:10541000E402811136C00E94B11A811104C00E94B9 -:1054200036180E94C31788E090E00E947D35609393 -:105430007704709378048093790490937A04809130 -:105440005B03836080935B036E7F71F40E94C317DC -:1054500088E090E00E947D35609377047093780433 -:105460008093790490937A040E940E0980917704C6 -:1054700080FF04C060E086950E94691681E08093F9 -:10548000E40280915801811106C084EF8093660187 -:1054900085EF8093650120916601A22FA295AF70E0 -:1054A000B0E091963C9191972F7081E090E0BC0123 -:1054B000022E01C0660F0A94EAF7462F4095432357 -:1054C00091964C93919792963C919297362B929607 -:1054D0003C93929740916501E42FE295EF70F0E0E4 -:1054E00031A14F70042E01C0880F0A94EAF7982F5B -:1054F0009095932391A392A1892B82A390968C914E -:1055000090E002C0959587952A95E2F7817020A1D9 -:1055100030E002C0359527954A95E2F792E020FFEA -:1055200090E0892B8093EC028091580111E0812753 -:105530008093EB02312F381B3093E5020E945531E6 -:1055400040E060E080E00E94210D60E08AE00E947F -:10555000691689EA92E090935E0380935D0381E08F -:105560000E94791780EE90E090935A018093590140 -:10557000109332030E94410D8BE591E09093530408 -:10558000809352043E018DE3680E711C80916C047F -:10559000FF24F39400E112E1853009F4F2C10E9486 -:1055A0003425E82E81110E946208E5E4F3E0AFE4BF -:1055B000B3E010E000E0B02EDD9081918D1509F48C -:1055C00004C28D25C12CFF24F394982F9F2109F448 -:1055D000F7C10E949F0E882399F0CEA6BFA6DF20B8 -:1055E00081E009F480E088AB0E940A1C8160782F7A -:1055F0009AAB89AB4EA55FA568A98AA90E94A2248F -:10560000F801EB5BFC4F8081F826F0828091EC0280 -:10561000E82FEE0FEE0F90916601A92FA295AF70C3 -:10562000B0E090962C9130E09F7002C035952795A0 -:105630009A95E2F72170332790916501A92FA295E1 -:10564000AF70B0E090964C9150E09F7002C05595BD -:1056500047959A95E2F7CA018170992740FF02C0E9 -:1056600082E090E0822B8E2B8093EC021091EB0273 -:105670008F70E82FF0E0E650FE4F80819091EA02B3 -:10568000890F8093EA02F12C84306CF0E12FF0E076 -:10569000E851FD4F80818F5F808360E0812F0E9401 -:1056A0006827FF24F3948091EA028D3F6CF4E12F88 -:1056B000F0E0E851FD4F80818150808361E0812FCF -:1056C0000E946827FF24F3948091EA02082E000CC0 -:1056D000990B64E070E00E9435358093EA02F11086 -:1056E0000E94800B80914F04882351F180911C030C -:1056F00090911D030E94FB1BC29708F07DC1209171 -:105700007C0430917D042115310509F0A0C28091FF -:105710004E048823A9F00E94620800914A04109167 -:105720004B0420914C0430914D04601B710B820B93 -:10573000930B6F3F7F4F8F4F9F4710F40E94980D40 -:10574000E11001C0F1100E94B30D809142038A3034 -:1057500008F0BAC380914003909141030E94FB1B63 -:10576000089708F4B1C304E610E025E030E04BE30D -:1057700053E064E084E10E94A032892B09F075C3F4 -:105780001092420320913203222359F080913B036F -:1057900090913C0398278927982790933C03809306 -:1057A0003B0386E0E4E2F3E0DE01919601900D9286 -:1057B0008A95E1F786E0FE01B196DE01119601902F -:1057C0000D928A95E1F786E0FE013196A5E3B3E0FC -:1057D00001900D928A95E1F790913F0380913603F5 -:1057E00097FD3AC38E7F8093360380913303909167 -:1057F0003403009709F02AC360913B0380913C0376 -:1058000000913D0310913E03222309F4F2C241E0CE -:105810000E94FB0C2091300330913103820F931FC3 -:10582000909331038093300341E0602F812F0E94D9 -:10583000FB0C20912E0330912F03820F931F909326 -:105840002F0380932E0360E373E08AE393E00E94CA -:10585000DC0C6EE273E089E393E00E94DC0C1092B2 -:1058600037031092380386E0E5E3F3E0DE0111969A -:1058700001900D928A95E1F786E0FE013196A4E24F -:10588000B3E001900D928A95E1F7309126032091C3 -:105890002703909128038091290370912003609140 -:1058A00021034091220350912303F0912503E091BD -:1058B0001F03FE13E0C2332311F07313DCC2222353 -:1058C00011F02613D8C2882311F08513D4C299236E -:1058D00019F081E04913D0C280E0CEC286E992E09F -:1058E00061CD80916C04843009F43BC00E94980D16 -:1058F00040E060E080E00E94210D80E00E94B81648 -:105900008091E702811109C0F092E702809177044B -:1059100081708093E6020E94E50F10925604A8E180 -:10592000B0E0E0E40FB6F894A895A09360000FBE35 -:10593000E093600083B7817F846083BF83B7816019 -:1059400083BF7894889583B78E7F83BF0FB6F89412 -:10595000A89580916000886180936000109260003B -:105960000FBE80916B04882361F00E943425EFE420 -:10597000F3E08191811178C429E533E02E173F07C8 -:10598000C1F780916C04853009F4ABCF10925F04AD -:105990000E94FA0F0E94C20E0E94B8161092E702EF -:1059A0008091E602882349F080917704816080939A -:1059B000770460E086950E9469160E94410DEFCD44 -:1059C000C394FF0C37E0C31200CE0F5F1F4F0A30A5 -:1059D000110509F0F0CD8FEF8BAB8CAB1DAA0E94A7 -:1059E0000A1C8160782F9FAB8EAB4BA95CA96DA977 -:1059F0008FA90E94A2240ACE0E940A1C90931D0324 -:105A000080931C0360E080E00E949A080E94C20E0E -:105A10008093F9020E949F0E882331F14091F50294 -:105A20005091F6026091F7027091F8022FB7F89446 -:105A30008091570490915804A0915904B0915A0450 -:105A40002FBF841B950BA60BB70B81339547A10580 -:105A5000B10540F00E94980D80914F04882309F40D -:105A600056CE4DCE0E94B30D0E949F0E882309F49E -:105A7000D5C061E080E00E949A0860E08CE791E088 -:105A80000E948B1362E080E00E949A088091760465 -:105A90000E94CB0C823009F49BC008F090C0882390 -:105AA00009F496C0813009F499C065E080E00E9455 -:105AB0009A0860E08AE991E00E948B1366E080E03A -:105AC0000E949A086091F902669561708FE991E0F1 -:105AD0000E948B1367E080E00E949A086091F902AF -:105AE0006095617084EA91E00E948B1368E080E029 -:105AF0000E949A086091F90262FB662760F988EAC1 -:105B000091E00E948B137DA66CA64091F10250910A -:105B1000F2026091F3027091F4022FB7F894809131 -:105B2000570490915804A0915904B0915A042FBF82 -:105B3000841B950BA60BB70B8D329140A105B105C7 -:105B400008F48ACF0E9462086093F1027093F20217 -:105B50008093F3029093F4028091F002811104C0CB -:105B600080916701811142C06DE080E00E949A0837 -:105B700060E08DEA91E00E948B136AE080E00E9471 -:105B80009A0881E0809367018091EF0290E001968E -:105B9000817099278093EF0221E030E0281B390BB8 -:105BA00040E6429FC001439F900D11242091EE02D8 -:105BB000222351F1855C9B4F0E9492064DCF83308A -:105BC00089F0843009F071CF60E08EE891E003C085 -:105BD00060E082E891E00E948B1367CF60E088E884 -:105BE00091E0F9CF60E084E991E0F5CF6AE080E0F0 -:105BF0000E949A0860E08DEA91E00E948B136BE0AE -:105C000080E00E949A08C0CF2091ED02222319F073 -:105C100085589C4FD1CF85549D4FCECF64E080E016 -:105C20000E949A0860E083EB91E00E948B1365E08C -:105C300080E00E949A0860E089EB91E00E948B135B -:105C400069E080E00E949A088BEF94E0B5CF8091E4 -:105C50001B0361E070E081115ACD082F10E02B0189 -:105C6000082E02C0440C551C0A94E2F7A9014421F5 -:105C70005521452B09F448C090911A0390FD46C068 -:105C80008295880F807680936A01980136952795D2 -:105C90003695279520936D01815E80936B0110925C -:105CA0006E0124E630E047E050E068E671E088E706 -:105CB0000E944C32892B09F02ACDA80175E0440FCF -:105CC000551F7A95E1F780911A0380FD2DC0425847 -:105CD0005B4F04E610E020E230E060E488E70E94D9 -:105CE0007332892B09F013CD0E94B30DC201809548 -:105CF000909540907C0450907D0448225922509207 -:105D00007D0440927C0403CD8F5FA7CF880F880F5E -:105D1000880F80936A0110926D01895F80936B01F7 -:105D200083E080936E01BDCFEAEFF2E080E2DF0115 -:105D30001D928A95E9F7EEE0F2E0F9AFE8AF0AE0EC -:105D400012E099249394A8ADB9AD2D91B9AFA8AF45 -:105D5000F80121908F01240E352E311CC10182588B -:105D60009B4F1C01E22FF0E0E650FD4F30E020E0B9 -:105D700067E0A62EA21AB92C022E01C0BB0C0A9411 -:105D8000EAF7610190E0D6018D916D018B216A2DBA -:105D9000691B6770862E062E000C770BB82F01C08A -:105DA000BB0F8A94EAF78B2E719561957109677024 -:105DB000772701C086956A95EAF7882A8081882A24 -:105DC00080829F5F9830F9F62F5F3F4F31962830E1 -:105DD000310571F6E2E1F2E028AD39ADE217F307E3 -:105DE00009F0B1CF04E610E020E230E04AEF52E0E3 -:105DF00074CF45E00E94FB0C20912C0330912D03C1 -:105E0000281B390B30932D0320932C0345E0602F82 -:105E1000812F0E94FB0C20912A0330912B03281B19 -:105E2000390B30932B0320932A036CE273E087E352 -:105E300093E00E94DC0C6AE273E088E393E00E9446 -:105E4000DC0C10923A03109239030DCD0197909318 -:105E500034038093330307CD81608093360384E05D -:105E60000E94B31384E190E0F2CF809142038F5FF0 -:105E700080934203F8CC81E080FF0FC0E091520490 -:105E8000F0915304309749F082E08093240304801A -:105E9000F581E02D84E293E009951092260310929B -:105EA0002703109228031092290386E0E4E2F3E02E -:105EB000AEE1B3E001900D928A95E1F70E940A1CD1 -:105EC00090934103809340030E94C20E909143033C -:105ED000891731F00E94C20E809343030E94B816C6 -:105EE00080916C04843009F051CB83E08093E90009 -:105EF0008091E80082FF4ACB8091E80090E085FF26 -:105F00000BC00E94F40630E2E32EF12C8E010F5FED -:105F10001F4F8823E1F091E08091E8008B77809318 -:105F2000E800992309F432CBE981E150E33108F02C -:105F300071C0F0E0EC5EF84C0C9449358091F100B2 -:105F4000D8018D938D01B1E0EB1AF10821F3809116 -:105F5000E80085FDF3CF8091E8008B778093E8001F -:105F60000E94F406882399F3D6CF1A8289E08B83A6 -:105F700011C08A81823009F48FC1833091F1813060 -:105F800009F048C00E9462080E944F356B837C83F1 -:105F90008D839E8380916C04843009F0F7CA109140 -:105FA000E9001F709091EC00892F817090FD80E8CE -:105FB000182B82E08093E9008091E80080FF0DC0FB -:105FC00050E040E060E270E0CE0101960E942507BB -:105FD0008091E8008E778093E8001F701093E900AD -:105FE000D5CADE011396EFE4F3E081918D9323E0AF -:105FF000E935F207D1F7CECF8A81823059F46B812F -:106000007C818D819E810E944F3586E290E00E94C6 -:106010008935C0CF8FEF8983BDCF4C816B818A8159 -:106020000E9492149827892798279E838D83B2CF48 -:106030000D811E811027012710278A81EB803EE009 -:10604000E39E700111249CE8899FE00CF11C11244F -:106050008C8190E0880F991FE80EF91E612FC7010F -:1060600087960E948935602FC7018896D0CF0E94FD -:10607000161490CF8A818138C1F060F4803809F01D -:1060800089CF20E04B8160917904809178040E944F -:10609000521580CF8238E9F0833809F07BCF20E0B9 -:1060A00040917A046C818B81F2CF60E08B810E94F9 -:1060B00069168B81811103C00E94E50F6BCF80911F -:1060C000770481608093770460E086950E9469166A -:1060D00061CF8B8180937B045DCF8A81813899F079 -:1060E00030F4803809F056CF80917A0440CF82385E -:1060F00091F0833809F04ECF809178048B838091A2 -:1061000079048C8347CF8091770480FF02C0869505 -:106110002ECF80E02CCF80917B0429CF6091770433 -:10612000709178048091790490917A040E944015CE -:1061300031CF80E18A832ECF81E08A838DE117CF32 -:10614000CA80DB80DC24CD24DC248E010F5F1F4F4E -:10615000EC80E00EF12EF11CC6018D519D4F0E1505 -:106160001F0509F417CFADE1CA16A1E0DA0650F415 -:106170000E947535F8018483BFEFCB1ADB0A0F5FED -:106180001F4FEACFD80114961C92F6CF0A811B81CB -:10619000102701271027FE0131966F01EC80E00ED9 -:1061A000F12EF11CC8018D519D4FE016F10609F446 -:1061B000F1CE0D31F1E01F0728F4D60114966C9151 -:1061C0000E948935BFEFCB1ADB0A0F5F1F4FEACF62 -:1061D0000E940614DFCE85E0ADCFCA80DB80DC24D0 -:1061E000CD24DC248E010F5F1F4FEC80E00EF12EDA -:1061F000F11CC6018796E016F10609F4CBCEECEB54 -:10620000CE16E2E0DE0658F40E947535D8011496E9 -:106210008C93FFEFCF1ADF0A0F5F1F4FEACFF80111 -:106220001482F7CF0A811B811027012710279E01B6 -:106230002F5F3F4F6901EC80E00EF12EF11CC80189 -:106240008796E016F10609F4A5CE0C3B32E0130761 -:1062500028F4D60114966C910E948935BFEFCB1AB1 -:10626000DB0A0F5F1F4FEBCF09BD19BD09B400FE5C -:10627000FDCF8091D8008F7D8093D8008091E00081 -:1062800082608093E0008091E00081FDFCCF10925D -:106290005F040E94FA0F75CB86E290E00E9475358C -:1062A0001B821C821D828E8375CE1092B9008CE0F9 -:1062B0008093B80008959F92AF92BF92CF92DF92E1 -:1062C000EF92FF920F931F93CF93DF93B82EEB01C2 -:1062D0000E940A1C6C01EE24E394F12CC431D10518 -:1062E00060F025E0E22EF12CCF3FDC0731F0CE014B -:1062F00064E170E00E9415357B0184EAA82E94E8E1 -:10630000992E1092BC00A092BC000E940A1C8C0125 -:106310008091BC0087FF0DC08091B900887F8830D4 -:1063200039F18091B900887F803111F10FEF1FEFB3 -:1063300009C00E940A1C801B910B8E159F0540F31B -:106340000EEF1FEFCF3FDC07E1F2C6010E94FB1BFF -:106350008C179D07B0F2C801DF91CF911F910F916B -:10636000FF90EF90DF90CF90BF90AF909F900895F7 -:10637000B092BB009092BC000E940A1C8C018091DC -:10638000BC0087FF0AC08091B900887F883111F076 -:10639000803461F610E000E0DECF0E940A1C801B12 -:1063A000910B8E159F0558F3CBCF0F931F93CF936F -:1063B000DF93EB018093BB0084E88093BC000E94D4 -:1063C0000A1C8C018091BC0087FF11C02091B9008C -:1063D000287F81E090E0283211F490E080E09195F0 -:1063E00081959109DF91CF911F910F910895CF3F32 -:1063F000DC0741F30E940A1C801B910B8C179D0740 -:1064000008F38EEF9FEFEECF0F931F93CF93DF93A1 -:10641000EC0184EC8093BC000E940A1C8C018091EA -:10642000BC0087FF08C08091BB0090E0DF91CF9156 -:106430001F910F910895CF3FDC0789F30E940A1C3A -:10644000801B910B8C179D0750F38EEF9FEFEECFC3 -:106450000F931F93CF93DF93EC0184E88093BC00EC -:106460000E940A1C8C018091BC0087FF08C08091AB -:10647000BB0090E0DF91CF911F910F910895CF3F26 -:10648000DC0789F30E940A1C801B910B8C179D0767 -:1064900050F38EEF9FEFEECFCF92DF92EF92FF920D -:1064A0000F931F93CF93DF936B018A017901B90199 -:1064B0000E945B31E6010C0D1D1DC017D10761F470 -:1064C00024E92093BC00DF91CF911F910F91FF90A1 -:1064D000EF90DF90CF90089597FDF2CFB7018991AB -:1064E0000E94D531EACFCF92DF92EF92FF920F93C5 -:1064F0001F93CF93DF93C62F6A017901B8010E94E1 -:106500005B3197FD0CC0B8018C2F0E94D531E6019C -:10651000EC0CFD1CCE15DF0511F097FF0CC024E933 -:106520002093BC00DF91CF911F910F91FF90EF90CE -:10653000DF90CF900895B80189910E94D531EACFBC -:10654000CF92DF92EF92FF920F931F93CF93DF933F -:10655000F82EE62EEA016901B8010E945B3197FD31 -:1065600015C0B8018E2D0E94D53197FD0FC0B8011E -:106570008F2D81600E945B31F12CE12C21E0C21A49 -:10658000D108EC14FD0400F597FF11C024E9209315 -:10659000BC001816190614F490E080E0DF91CF914A -:1065A0001F910F91FF90EF90DF90CF900895C80159 -:1065B0000E94043297FD04C0FE01EE0DFF1D808392 -:1065C0002FEFE21AF20ADDCF97FDE0CFC8010E945B -:1065D000283297FDDBCFCC0DDD1D8883D7CF84E932 -:1065E0008093BC0008958EE14A9B02C08150E1F780 -:1065F0004A9BFECF08955A9880E28A95F1F75A9AFD -:106600000895FC013BE03A95F1F798E020E080E046 -:1066100031E040E14A95F1F7880F4A9B02C0816062 -:10662000232742E04A95F1F7000040E14A95F1F74F -:10663000915079F790E19A95F1F799B132E03A9556 -:10664000F1F7000040E14A95F1F792FB992790F9A4 -:1066500092272081920F90830895EF92FF920F93DB -:106660001F93CF93DF930F92CDB7DEB719828C01C2 -:106670007C01E60EF11C0E151F0561F481E0998185 -:10668000911180E00F90DF91CF911F910F91FF90BA -:10669000EF9008950E94F332CE0101960E940133DB -:1066A000F80181938F01E7CF529A5A9A0895529830 -:1066B0005A9AEA9AE9E6F0E080818F7C8083089517 -:1066C0006150770B91E001C0990F6A95EAF720E0DD -:1066D00031E0911108C0222391F05A9A80E28A9504 -:1066E000F1F75A980895492F482339F05A9A2327E9 -:1066F00040E24A95F1F79695ECCF5A98F9CF5A981F -:10670000EDCFFF920F931F93CF93DF93EC018C019A -:10671000060F111DC017D10731F4DF91CF911F91E2 -:106720000F91FF900895F9900E94FB3268E08F2D41 -:106730000E946033EFCF1F920F920FB60F92112479 -:10674000EF92FF920F931F932F933F934F935F937B -:106750006F937F938F939F93AF93BF93EF93FF9329 -:10676000CF93DF930F92CDB7DEB719820E94F33239 -:10677000CE0101960E940133A82FA695A695A69555 -:10678000282F229525709A2F9570290F922F93709C -:1067900026952695920F982797708981982B09F056 -:1067A00075C0A83008F072C080E18A95F1F75A9A56 -:1067B000529AB2E0BA95F1F700C05A98EA2EF12C3D -:1067C000EAE0AE9FD0011124AF5FBE4F1896ED9165 -:1067D000FC9119973097B1F06091F8017091F9012F -:1067E00016962D913C911797260F371F13968D9172 -:1067F0009C911497680F791F15964C9115971296D6 -:106800008C9109958AE08E9DF0018F9DF00D1124E9 -:10681000EF5FFE4F6581662351F02091F8013091C2 -:10682000F90186819781820F931F0E9481330E9414 -:10683000FB32F0E1FA95F1F75A9852985A9A80E1B2 -:106840008A95F1F78AE08E9D80018F9D100D1124AD -:106850000F5F1E4FD80112966C911297662371F14B -:106860002091F8013091F90113968D919C91820F3E -:10687000931F0E942D33D801ED91FC91882311F0D4 -:1068800088E001C082E080830E94F3320F90DF91A4 -:10689000CF91FF91EF91BF91AF919F918F917F9198 -:1068A0006F915F914F913F912F911F910F91FF90A9 -:1068B000EF900F900FBE0F901F901895ED91FC91E7 -:1068C000DFCF0F931F93CF93DF93EC0108970CF06A -:1068D000A9C08AE08C9FF0018D9FF00D1124EF5F1D -:1068E000FE4F80819181892B09F49CC0F894529AC3 -:1068F0005A9885E08A95F1F700008C2F869585706F -:106900009C2F9570890F982F937086958695890F87 -:106910008E0193E0000F111F9A95E1F7082B0E945A -:10692000FB3200C068E0802F0E946033A0E1AA958E -:10693000F1F752985A9A4A9B27C087E090E04A990B -:1069400025C08AE08C9F80018D9F100D11240F5F60 -:106950001E4FF80165816623A1F12091F801309165 -:10696000F90186819781820F931F0E942D33811137 -:1069700028C0529A5A9AD801ED91FC9182E0808306 -:10698000789482E090E016C000C0D5CF0197B9F4AA -:10699000529A5A9A8AE08C9FF0018D9FF00D112433 -:1069A000EF5FFE4F0190F081E02D81E080837894CD -:1069B00081E090E0DF91CF911F910F91089500C089 -:1069C000BECF0E94F332B0E2BA95F1F75A98529ACC -:1069D000E0E1EA95F1F78AE08C9FF0018D9FF00DE0 -:1069E0001124EF5FFE4F6281662351F02091F80180 -:1069F0003091F90183819481820F931F0E9481332A -:106A00000E94FB328AE08C9FF0018D9FF00D1124D3 -:106A1000EF5FFE4F0190F081E02D1082789490E0BE -:106A200080E0C8CF84E090E0C5CFAA1BBB1B51E13A -:106A300007C0AA1FBB1FA617B70710F0A61BB70BEE -:106A4000881F991F5A95A9F780959095BC01CD0193 -:106A50000895991B79E004C0991F961708F0961BBA -:106A6000881F7A95C9F78095089597FB072E16F42D -:106A7000009407D077FD09D00E94153507FC05D09A -:106A80003EF4909581959F4F0895709561957F4F45 -:106A90000895EE0FFF1F0590F491E02D09946927EA -:106AA000962769277827872778270895FB01DC0137 -:106AB00002C005900D9241505040D8F70895FB0157 -:106AC000DC0104C08D910190801921F441505040A7 -:106AD000C8F7881B990B0895FB01DC0102C00190E7 -:106AE0000D9241505040D8F70895F999FECF92BDCC -:106AF00081BDF89A992780B50895A6E1B0E044E0F9 -:106B000050E00C94AF35A8E1B0E042E050E00C94C6 -:106B1000AF35262FF999FECF92BD81BDF89A019726 -:106B200000B4021639F01FBA20BD0FB6F894FA9AD5 -:106B3000F99A0FBE08950396272F0E948A350E9466 -:106B40008935252F0E948A35242F0C948A35019689 -:106B5000272F0E948A350C948935DC01CB01FC017A -:106B6000F999FECF06C0F2BDE1BDF89A319600B4A6 -:106B70000D9241505040B8F708950E94FF3508F437 -:106B800081E00895E89409C097FB3EF490958095C4 -:106B9000709561957F4F8F4F9F4F9923A9F0F92FE3 -:106BA00096E9BB279395F695879577956795B79561 -:106BB000F111F8CFFAF4BB0F11F460FF1BC06F5F47 -:106BC0007F4F8F4F9F4F16C0882311F096E911C059 -:106BD000772321F09EE8872F762F05C0662371F07A -:106BE00096E8862F70E060E02AF09A95660F771F8E -:106BF000881FDAF7880F9695879597F90895990F6A -:106C00000008550FAA0BE0E8FEEF16161706E80776 -:106C1000F907C0F012161306E407F50798F0621B97 -:106C2000730B840B950B39F40A2661F0232B242B6C -:106C3000252B21F408950A2609F4A140A6958FEF8B -:106C4000811D811D08950E9436360C94A7360E943E -:106C5000993638F00E94A03620F0952311F00C945C -:106C600090360C94963611240C94DB360E94B8367C -:106C700070F3959FC1F3950F50E0551F629FF0018F -:106C8000729FBB27F00DB11D639FAA27F00DB11DA8 -:106C9000AA1F649F6627B00DA11D661F829F222731 -:106CA000B00DA11D621F739FB00DA11D621F839FB8 -:106CB000A00D611D221F749F3327A00D611D231F8E -:106CC000849F600D211D822F762F6A2F11249F57DC -:106CD00050409AF0F1F088234AF0EE0FFF1FBB1FDF -:106CE000661F771F881F91505040A9F79E3F51059E -:106CF00080F00C9490360C94DB365F3FE4F3983EC2 -:106D0000D4F3869577956795B795F795E7959F5F47 -:106D1000C1F7FE2B880F911D9695879597F90895D9 -:106D200097F99F6780E870E060E008959FEF80EC3E -:106D3000089500240A9416161706180609060895E1 -:106D400000240A9412161306140605060895092E47 -:106D50000394000C11F4882352F0BB0F40F4BF2BB6 -:106D600011F460FF04C06F5F7F4F8F4F9F4F0895F6 -:106D700057FD9058440F551F59F05F3F71F04795EC -:106D8000880F97FB991F61F09F3F79F087950895D1 -:106D9000121613061406551FF2CF4695F1DF08C0F0 -:106DA000161617061806991FF1CF8695710561050D -:106DB00008940895E894BB2766277727CB0197F9B5 -:106DC0000895F894FFCFEA101211651112116511A0 -:106DD00045117D1165117A128712121512151B15B6 -:106DE0001B151D151B151B151B151215121522152C -:106DF0001B151B152215671CDD1CE01CF41CF71C61 -:106E00000A1D131D371D7D1DAF1DC31D491D6C1DA2 -:106E1000052105215E215E2190213821382138216C -:106E2000AA211B222B222B22B52FB92FFC2F0D308C -:106E3000183037303A306D308E300A300A309930A1 -:0E6E40009C30A030C630E830EB30ED3012311F -:106E4E0001380200000001000000003802000000BE -:106E5E0005010000003802000000010600000038A5 -:106E6E0002000000010700000038020408000000C4 -:106E7E000000003802090C0000000000003802017A -:106E8E001500000000000036323331F7F6676697C2 -:106E9E00C6343500000000000180005F082E0E0D84 -:106EAE000E090E050EF4F5010021007F22000300ED -:106EBE004A004A4A01F6F731333236674C4159459A -:106ECE00520042617365200047616D65200052617A -:106EDE00697365004C6F776572004C4F434B0043EE -:106EEE00617073004E756D005363726C002020202C -:106EFE00202000534F4C415200544D5053540081AA -:106F0E008283E200E900EA00B500B600B700CD00CA -:106F1E008301CC008A0192019401210223022402F2 -:106F2E002502260227022A02B300B4006F00700069 -:106F3E000603060806010606AF0200FF0100010067 -:106F4E0000FFFF0000010001FF00000810181810DC -:106F5E0008000001020202020202020202024022A4 -:0E6F6E007B99017701FC00000C190C390C0016 +:104150007F906F905F900C94E70E8160809377045E +:1041600061E086950F900F900F900F900F90DF9168 +:10417000CF911F910F91FF90EF90DF90CF90BF9064 +:10418000AF909F908F907F906F905F900C94691686 +:1041900041EA57E16AEA77E10F900F900F900F9094 +:1041A0000F90DF91CF911F910F91FF90EF90DF90D3 +:1041B000CF90BF90AF909F908F907F906F905F90C7 +:1041C0000C9409094AEA57E161EA77E1E5CF45E352 +:1041D00056E16EE376E1E0CF4EE356E165E376E14A +:1041E000DBCF4DE156E169E276E1D6CF49E256E117 +:1041F0006DE176E1D1CF41E156E165E076E1CCCFEA +:1042000048E556E167E476E1C7CF0F900F900F9035 +:104210000F900F90DF91CF911F910F91FF90EF9032 +:10422000DF90CF90BF90AF909F908F907F906F90D6 +:104230005F900C94B4170E3D1C4509F0A7CD0F906C +:104240000F900F900F900F90DF91CF911F910F91D2 +:10425000FF90EF90DF90CF90BF90AF909F908F90A6 +:104260007F906F905F900C943618C8010E94A30B4A +:10427000D82E9ACD092F0F70907F11F00295007FF4 +:10428000812F2223C9F0002369F090E2910F98302A +:1042900010F011110BC080915F04082B00935F0494 +:1042A0000E94820B812F0E94570C17C080919102AF +:1042B000082B00939102F4CF0E941E0C002369F09A +:1042C0000095105E183010F0B11027C080915F0487 +:1042D000082300935F040E94820B98E0C91AD1085A +:1042E000E4E0CE16D10408F0C1CA0E94C20E0F90BD +:1042F0000F900F900F900F90DF91CF911F910F9122 +:10430000FF90EF90DF90CF90BF90AF909F908F90F5 +:104310007F906F905F900C94B81680919102082363 +:1043200000939102D8CF892F8F70907F903211F037 +:104330008295807FF1E0BF120CC0222329F0333038 +:1043400060F60E94140CC9CF323038F60E94090C76 +:10435000C4CF222341F03323A1F340FFA3CF4F70FA +:10436000F7014583EECF332389F3193309F0F5C004 +:10437000FFEF27EE33E0F15020403040E1F700C07E +:104380000000812F0E941E0CA8CF892F869586954C +:10439000837061F0813009F0A0CF812F93702111DB +:1043A00002C090E080E00E946E0897CF812F93704A +:1043B000211102C090E080E00E9484088ECF892FF6 +:1043C0008370A1F5211189CF812F82958695877001 +:1043D000880F880F412F4F70082E01C0440F0A9498 +:1043E000EAF7212F207114FF07C02FE030E001C051 +:1043F000220F8A95EAF720959695969593709230BC +:1044000081F0822F842B933030F48091920291308E +:1044100029F0242B82230E94050C5FCF842B822B52 +:10442000FACF242B809192028227F5CF8695222302 +:1044300011F0892F8170882309F44FCF812F829545 +:1044400086958770880F880F412F4F70082E01C006 +:10445000440F0A94EAF7212F207114FF07C02FE0C0 +:1044600030E001C0220F8A95EAF72095969596953F +:104470009370923081F0822F842B933030F48091AE +:104480007604913029F0242B82230E94791725CFBE +:10449000842B822BFACF242B809176048227F5CFB0 +:1044A000092F0F70222329F0802F0E949617812F49 +:1044B00048CF812F0E94090C802F0E948A170DCFB0 +:1044C000812FE1EF1E1789F1E11750F0F0EF1F1770 +:1044D000B9F02223B1F13111E5CE892F8F7129C0B6 +:1044E00042EF141749F153EF1513F3CF80E0222365 +:1044F00061F29F7181E001C0880F9A95EAF7C5CFFC +:10450000222379F0323008F0E8CE292F2F7181E094 +:1045100090E001C0880F2A95EAF7909176048927E8 +:10452000B4CF333008F0D9CEF0CF892F8F7122234A +:1045300021F20E949617D1CE892F8F712223C9F3C1 +:10454000BCCF332379F0893341F48FEF97EEE3E06A +:1045500081509040E040E1F712CF8FE39CE9019752 +:10456000F1F70DCF892F8F71A8CF0031FFE51F071D +:1045700009F4C3CB01312FE5120709F4DBCB0E940C +:1045800062086093F5027093F6028093F7029093AD +:10459000F802F7018281043F110509F438CD08F0D3 +:1045A00033CC0C32110509F443CD08F0C5CB0A30E9 +:1045B000110509F448CD0531110509F44FCD093035 +:1045C000110509F0C3CBF7018281882309F4BECB22 +:1045D000809176040E94CB0C813009F0B7CB81E347 +:1045E0000E94B313B3CB00313FE5130709F489CB25 +:1045F00001314FE5140769F682E084CB85E0DE01E6 +:10460000119601900D928A95E1F7F7012281898137 +:104610009A81211140C90E94A30B182F44C91F93EE +:10462000CF93DF9380915D02807FA9F480915A023D +:10463000882389F080918F02D0915E0260915802A8 +:1046400070915902A0915B02B0915C02C62FC72302 +:1046500016E0D81304C0DF91CF911F91089590E028 +:10466000109711F0CF3F19F401968770F2CF189F81 +:104670009001199F300D1124F901E15AFD4F41813C +:104680004713F2CF40814613EFCF42814111ECCF67 +:10469000438154814A1B5B0B403A510528F78091B6 +:1046A0005D028F70806180935D02F901EC59FD4FCE +:1046B00080818F708061808388E592E00E94161C63 +:1046C000DF91CF911F910C94990BAF92BF92CF9233 +:1046D000DF92EF92FF920F931F93CF93DF93CDB7AB +:1046E000DEB761970FB6F894DEBF0FBECDBF8C0169 +:1046F00085E0F801DE011D9601900D928A95E1F7A3 +:10470000F801E28088E5A82E82E0B82E60915B0275 +:1047100070915C026115710509F432C190915802E3 +:1047200040915902892F84238F3F09F429C12081A8 +:104730003181C380D480F0905A02F601E61BF70B5A +:10474000FF2009F4E8C080915D02582F507FE03AC5 +:10475000F10508F0ABC0511177C0FE2C431321C006 +:1047600092131FC0E1101DC08F70806180935D02A5 +:10477000C5010E94161C80915D02F80185838F2D72 +:1047800061960FB6F894DEBF0FBECDBFDF91CF911B +:104790001F910F91FF90EF90DF90CF90BF90AF905F +:1047A0000895CD2829F0822F83238F3F09F003C17C +:1047B00080E0F82FF170DF2E80FF3CC080918F02E7 +:1047C00040915E0256E0841315C02D873E878D858B +:1047D0009E850E94F414292F22952F702230F0F02C +:1047E000243018F59F70F1F0F8019581907FD1F495 +:1047F000D12C1EC090E0589FF001599FF00D11245C +:10480000E15AFD4F6181361306C06081261303C053 +:104810006281E6120FC001968770D5CF9F7011F0AC +:10482000882331F3805E883018F3C8010E94161C7B +:10483000FD2CA5CFEE2009F4A2CF80915D0281600E +:1048400080935D02F12C9BCF431306C0921304C0EA +:10485000F801EE2009F479C0C8010E9400158823F0 +:1048600009F1EE20F9F080915D02803270F0209124 +:1048700058023091590238872F831986DB86CA8601 +:104880008C87CE0107960E94161C86E0F801A8E5E9 +:10489000B2E001900D928A95E1F70E940F23FF2468 +:1048A000F3946DCFC8010E94161CF9CF51110AC0B4 +:1048B00088E592E00E94161C86E0F50111928A9527 +:1048C000E9F7C0CF43130FC092130DC0E1100BC026 +:1048D000F8018583C8010E94161C86E0F50111923B +:1048E0008A95E9F74CCFC8010E9400158823D1F2C0 +:1048F000EE20C1F280915D02803238F220915802A0 +:10490000309159023A8329831B82DD82CC828E83C7 +:10491000CE010196B8CFE03AF105F8F6FE2CEE2074 +:1049200009F243131FC092131DC080915D0280FDE8 +:1049300010C0982F907F69F0F8018583903F31F087 +:10494000982F907F905F8F70892B8583C8010E947C +:10495000161C86E0F801A8E5B2E001900D928A9558 +:10496000E1F70DCFC8010E94001581118ECF809113 +:104970005D02816080935D02C8010E94161CFFCE1B +:10498000EE2009F48FCFC8010E940015F82E88236D +:1049900009F488CF86E0F801A8E5B2E001900D9215 +:1049A0008A95E1F780915802909159020E94F4147F +:1049B0000E940F23E4CE81E08E25FBCE1F93CF9380 +:1049C000DF93CDB7DEB767970FB6F894DEBF0FBEA3 +:1049D000CDBF4B8B5C8B6D8B7E8B8F8B611110925F +:1049E00091021A8A198A85E0FE017396DE011D96EE +:1049F00001900D928A95E1F786E0FE013D96DE0179 +:104A0000179601900D928A95E1F7CE0107960E94C4 +:104A10006523882389F016E080918F0290915E02D1 +:104A200089134BC067960FB6F894DEBF0FBECDBF9B +:104A3000DF91CF911F91089586E0FE013796DE0148 +:104A4000119601900D928A95E1F78A859B85892BB5 +:104A500011F38F81988589238F3FE9F220915E02BF +:104A600030E0C90101968770992740918F0248175D +:104A7000190681F410925F040E94FA0F10925E02F0 +:104A800010928F0286E0E8E5F2E0DF011D928A9540 +:104A9000E9F7C1CF96E0929FD001939FB00D11240A +:104AA000A15ABD4FFE01319601900D929A95E1F702 +:104AB00080935E020E94990BAECF819FC0011124AA +:104AC000815A9D4F0E946523882309F4ABCF8091C2 +:104AD0008F0290E001968770992780938F029CCF78 +:104AE0009F92AF92BF92CF92DF92EF92FF920F937D +:104AF0001F93CF93DF93CDB7DEB764970FB6F894CB +:104B0000DEBF0FBECDBF8E010F5F1F4F8AE0D80101 +:104B10001D928A95E9F79EE4C92E91E0D92EF12CD9 +:104B2000E12CAA24A394B12CF60181916F018F3F4F +:104B300009F44AC0F894E82FE295EF70F0E021A163 +:104B40008F70A50102C0440F551F8A95E2F7CA0174 +:104B5000922F982B91A392A18095892382A30E94E2 +:104B6000BC0900C0E7E4F1E030E020E0912C419185 +:104B70004F3F09F47DC0A42FA295AF70B0E090968E +:104B80008C9190E04F7002C0959587954A95E2F719 +:104B900080FD6EC08A2D022E01C0880F0A94EAF7AC +:104BA000982A2F5F3F4F2730310509F7F6013197DB +:104BB00080818F3F11F00E94BE0950EA5A95F1F7AB +:104BC000F801EE0DFF1D90828FEFE81AF80A95E0CC +:104BD000E916F10409F0A8CF4AE050E0B80188EDE9 +:104BE00092E00E949B357C01892B41F08AE0F8011C +:104BF000A8EDB2E001900D928A95E1F71091E302E1 +:104C0000E114F104B9F181E0809395020E940A1C3D +:104C100090939402809393028091930290919402D6 +:104C20000E94FB1B069770F0A8EDB2E0E12FF0E0C8 +:104C3000E15BFC4F8D91819322E0AD3DB207D1F74E +:104C40001092950281E090E0EF28C1F064960FB6D3 +:104C5000F894DEBF0FBECDBFDF91CF911F910F91B2 +:104C6000FF90EF90DF90CF90BF90AF909F9008950E +:104C700080E096CF809195028111CECF0E949F0E49 +:104C8000B82EE091E302882309F4C7C08E01005FCB +:104C90001F4F85E0D8011D928A95E9F7F0E09F014A +:104CA000215B3C4F79018091D102AE014B5E5F4F99 +:104CB0006A018A3008F086C044E75AE1B801C701AA +:104CC0000E945B0E882309F494C041EE57E2B801BC +:104CD000C7010E945B0E882309F48BC04BE958E1A1 +:104CE000B801C7010E945B0E882309F482C047E81F +:104CF00059E1B801C7010E945B0E882309F479C00D +:104D000045E659E1B801C7010E945B0E882309F40A +:104D100070C01092D102E091E202F0E0AF01415B7D +:104D20005C4FD80110E0FA019191AF018D91981775 +:104D300031F09F0121503109F90180831B2DCA16E2 +:104D4000DB0689F780919C02882371F080919A029A +:104D500090919B020E94FB1B893E934028F082EEBB +:104D60000E941E0C10929C0288E9C82E82E0D82E68 +:104D7000F12CE12CD6018D916D018823D1F086951F +:104D8000F70109F447C0EC50FE4F808191819C8768 +:104D90008B871D860E940A1C8160782F9F878E87D3 +:104DA000F601319710824B855C856D858F850E9459 +:104DB000DE24B2E0EB0EF11CE4E0EE16F104D1F6D5 +:104DC000812F44CF80919602909197020E94FB1B05 +:104DD000843F914008F070CFA091E202B0E0A15B67 +:104DE000BC4FF8011D921192CE16DF06D9F71B2D8C +:104DF000A9CF8091D1028F3F31F08F5F8093D10294 +:104E00008A3008F488CF0E940A1C909397028093FE +:104E10009602E2CFE051FE4FB8CFF0E0E15BFC4FED +:104E2000F89485E0A0EBB2E001900D928A95E1F74D +:104E300065E070E080EB92E00E94F3088093AF029F +:104E40000E94BC09F894E091EB02F0E0E851FD4FBC +:104E500080818B878093B60261E070E0CE010B9673 +:104E60000E94F3088093B5020E94BC09F894C09098 +:104E7000B702D090B802E090B902F090BA028091E7 +:104E80009D0290919E02A0919F02B091A002C8162F +:104E9000D906EA06FB06D1F0C0929D02D0929E028E +:104EA000E0929F02F092A0020E949F0E81110EC01C +:104EB0000E946208C61AD70AE80AF90AC092D2020A +:104EC000D092D302E092D402F092D5020E94BC09A3 +:104ED000F8948091C202882321F184FF04C090914C +:104EE000C30290935C0380FF0DC08091BB0280FFE2 +:104EF00025C09091770491609093770460E0869547 +:104F00000E9469168091C20281FF09C020E0409191 +:104F1000BE026091BD028091BC020E9452151092A7 +:104F2000C2020E94BC09F8948091C402882349F00F +:104F30000E94B30D0E94BC0980E088CE0E94E50F5C +:104F4000E1CF0E94980DF6CFEF92FF920F931F933F +:104F5000CF93DF9300D000D00F92CDB7DEB7162FDE +:104F6000E82EF12CC701880F991F662339F18C5068 +:104F70009E4FFC01808191819A83898301E00B839C +:104F80000E940A1C8160782F9D838C83F701E8566C +:104F9000FD4F0127110F102B108349815A816B811E +:104FA0008D810F900F900F900F900F90DF91CF9108 +:104FB0001F910F91FF90EF900C94DE2480519E4F33 +:104FC000D8CFCF92DF92EF92FF920F931F93CF93A0 +:104FD000DF930F92CDB7DEB7EE24E394F12C06EB0E +:104FE00012E09E012F5F3F4F4BEA52E063E082E008 +:104FF0000E94C519082F882321F1C090E5028C2D4D +:1050000090E09C0128513D4F79011981F90180817F +:10501000181BD12E80E00AC0DA94F70180818F5FDF +:10502000808360E08C2D0E94A427802F1D14A4F3A0 +:10503000912F17FD90E0191B11110EC081110E94D4 +:10504000800B802F0F90DF91CF911F910F91FF90D8 +:10505000EF90DF90CF9008951F5FF701808181501E +:10506000808361E08C2D0E94A427802FE5CF1F92C2 +:105070001FB61F9211248F939F93AF93BF9380917C +:105080005604811113C08091570490915804A09147 +:105090005904B0915A044196A11DB11D8093570443 +:1050A00090935804A0935904B0935A04BF91AF91C0 +:1050B0009F918F911F901FBE1F901895CDB7DEB79F +:1050C000E9970FB6F894DEBF0FBECDBF84B7877FD8 +:1050D00084BF0FB6F894A895809160008861809392 +:1050E0006000109260000FBE80E890E00FB6F89468 +:1050F00080936100909361000FBE85B7806885BF83 +:1051000085B7806885BF8AEB99E090932F028093E2 +:105110002E020E94D5060E94A0078091E2008460C2 +:105120008093E200789480916C048823A1F0109120 +:10513000E9001F709091EC00892F817090FD80E84C +:10514000182B1092E9008091E80083FD0E94031063 +:105150001F701093E90082E084BD93E095BD9AEF43 +:1051600097BD80936E001092D2021092D3021092DB +:10517000D4021092D5020E942715811102C00E940C +:1051800083140E949F0E80935801809158018823B8 +:1051900009F4C6C010926F0185E2809370010E94ED +:1051A0009F0E81110E9490338091580181112FC070 +:1051B000FE01359686E0DF011D928A95E9F786E6C5 +:1051C000898387E98A8386EC8B8384E38C8385E3F8 +:1051D0008D833497AEE4B1E0CE010B9621912D93EF +:1051E0008E179F07D9F787E0E5E7F1E0DE0191969A +:1051F00001900D928A95E1F7FE01B196A7E4B1E026 +:10520000CE01889621912D938E179F07D9F7809113 +:10521000580195E0811190E09093E30285E0891BAD +:105220008093E2020EE411E0A3E5EA2EA1E0FA2E5B +:10523000F80181918F018F3F11F00E94BE09E016A5 +:10524000F106B1F707E411E0FEE4EF2EF1E0FF2EE6 +:10525000D8018D918D018F3F11F00E94BE09E0169B +:10526000F106B1F7E8EDF2E082EE92E0AFE4B3E0F0 +:1052700011921D928E179F07D9F70E94B11A8111C2 +:1052800002C00E94361882E090E00E94B1358093FF +:10529000440384E090E00E94B135182F82E290E050 +:1052A0000E94B135982F812F9093D7028093D60218 +:1052B0000E947025EFE7FBEB3197F1F700C000008B +:1052C0000E94702580914F0380FF2EC06FEF7FEF0B +:1052D00090E080E00E94E33581E08093E00080E28E +:1052E0008093D8001092C9008FE19EE40197F1F7F6 +:1052F00000C0000087E090EBDC0180938006909373 +:105300008106A0938206B093830688E19CE00FB6E5 +:10531000F894A895809360000FBE90936000FFCF33 +:1053200085E280936F0139CF83E090E00E94B13530 +:105330000E94050C809176040E94D0160E94B11A3A +:10534000811102C00E94361888E190E00E94B935B0 +:1053500060933D0470933E0480933F049093400417 +:10536000672B682B692B11F40E9406180E9491315B +:1053700067E081E00E94A71365E586E10E94A7131C +:1053800063E687E10E94A71360EA8AE10E94A713FF +:1053900069E98BE10E94A71365EF8CE10E94A713D6 +:1053A00060EA8DE10E94A71360E38EE10E94A713DB +:1053B00066E083E00E94A71361E08CE00E94A713DF +:1053C00060E081E00E94A71360E08CE00E94A713D8 +:1053D0006FE084E00E94A71361E08CE00E94A713B5 +:1053E0000E949F0E811102C00E94933383E080933C +:1053F0001A0380E2809343040E9491316DE070E0D3 +:105400008CE992E00E94680D892BE9F580911A03DE +:1054100063E070E081FD9EC289E992E00E94680D20 +:10542000892B89F56DE070E089E892E00E94680DB3 +:10543000892B49F50E9462086058774C8E4F9F4F28 +:1054400060934A0470934B0480934C0490934D04F2 +:10545000EEE7F4E080E092E0DF019C011D92215034 +:105460003040E1F7F0937F06E0937E068FEF9FEFE9 +:1054700090937D0480937C0481E080934F0480931B +:105480004E0410921B038091E402811136C00E94E9 +:10549000B11A811104C00E9436180E94C31788E017 +:1054A00090E00E94B93560937704709378048093FC +:1054B000790490937A0480915B03836080935B030B +:1054C0006E7F71F40E94C31788E090E00E94B935A6 +:1054D00060937704709378048093790490937A04AE +:1054E0000E940E098091770480FF04C060E08695D9 +:1054F0000E94691681E08093E40280915801811135 +:1055000006C084EF8093660185EF8093650120914A +:105510006601A22FA295AF70B0E091963C91919751 +:105520002F7081E090E0BC01022E01C0660F0A944A +:10553000EAF7462F4095432391964C939197929684 +:105540003C919297362B92963C93929740916501AD +:10555000E42FE295EF70F0E031A14F70042E01C00E +:10556000880F0A94EAF7982F9095932391A392A11C +:10557000892B82A390968C9190E002C09595879597 +:105580002A95E2F7817020A130E002C03595279579 +:105590004A95E2F792E020FF90E0892B8093EC029D +:1055A0008091580111E081278093EB02312F381B45 +:1055B0003093E5020E94913140E060E080E00E947B +:1055C000210D60E08AE00E94691689EA92E09093DA +:1055D0005E0380935D0381E00E94791780EE90E086 +:1055E00090935A0180935901109332030E94410D08 +:1055F0008BE591E090935304809352043E018DE338 +:10560000680E711C80916C04FF24F39400E112E198 +:10561000853009F4F2C10E947025E82E81110E94A4 +:105620006208E5E4F3E0AFE4B3E010E000E0B02EA0 +:10563000DD9081918D1509F404C28D25C12CFF24C4 +:10564000F394982F9F2109F4F7C10E949F0E88239D +:1056500099F0CEA6BFA6DF2081E009F480E088ABF8 +:105660000E940A1C8160782F9AAB89AB4EA55FA57A +:1056700068A98AA90E94DE24F801EB5BFC4F8081B7 +:10568000F826F0828091EC02E82FEE0FEE0F909159 +:105690006601A92FA295AF70B0E090962C9130E0F2 +:1056A0009F7002C0359527959A95E2F721703327B0 +:1056B00090916501A92FA295AF70B0E090964C91A2 +:1056C00050E09F7002C0559547959A95E2F7CA0140 +:1056D0008170992740FF02C082E090E0822B8E2BE0 +:1056E0008093EC021091EB028F70E82FF0E0E6500F +:1056F000FE4F80819091EA02890F8093EA02F12C9B +:1057000084306CF0E12FF0E0E851FD4F80818F5F35 +:10571000808360E0812F0E94A427FF24F39480916E +:10572000EA028D3F6CF4E12FF0E0E851FD4F8081FB +:105730008150808361E0812F0E94A427FF24F3948D +:105740008091EA02082E000C990B64E070E00E9440 +:1057500071358093EA02F1100E94800B80914F0412 +:10576000882351F180911C0390911D030E94FB1B23 +:10577000C29708F07DC120917C0430917D042115F1 +:10578000310509F0A0C280914E048823A9F00E943F +:10579000620800914A0410914B0420914C0430910E +:1057A0004D04601B710B820B930B6F3F7F4F8F4F2C +:1057B0009F4710F40E94980DE11001C0F1100E9463 +:1057C000B30D809142038A3008F0BAC38091400340 +:1057D000909141030E94FB1B089708F4B1C304E6B3 +:1057E00010E025E030E04BE353E064E084E10E9408 +:1057F000DC32892B09F075C31092420320913203E9 +:10580000222359F080913B0390913C0398278927EC +:10581000982790933C0380933B0386E0E4E2F3E017 +:10582000DE01919601900D928A95E1F786E0FE01E6 +:10583000B196DE01119601900D928A95E1F786E00E +:10584000FE013196A5E3B3E001900D928A95E1F750 +:1058500090913F038091360397FD3AC38E7F8093EA +:1058600036038091330390913403009709F02AC3E3 +:1058700060913B0380913C0300913D0310913E03F6 +:10588000222309F4F2C241E00E94FB0C2091300374 +:1058900030913103820F931F909331038093300333 +:1058A00041E0602F812F0E94FB0C20912E0330914C +:1058B0002F03820F931F90932F0380932E0360E397 +:1058C00073E08AE393E00E94DC0C6EE273E089E30C +:1058D00093E00E94DC0C109237031092380386E0AC +:1058E000E5E3F3E0DE01119601900D928A95E1F770 +:1058F00086E0FE013196A4E2B3E001900D928A9514 +:10590000E1F730912603209127039091280380919D +:10591000290370912003609121034091220350914B +:105920002303F0912503E0911F03FE13E0C233230C +:1059300011F07313DCC2222311F02613D8C288237E +:1059400011F08513D4C2992319F081E04913D0C214 +:1059500080E0CEC286E992E061CD80916C04843013 +:1059600009F43BC00E94980D40E060E080E00E9496 +:10597000210D80E00E94B8168091E702811109C0D4 +:10598000F092E7028091770481708093E6020E9492 +:10599000E50F10925604A8E1B0E0E0E40FB6F894E9 +:1059A000A895A09360000FBEE093600083B7817F4D +:1059B000846083BF83B7816083BF7894889583B701 +:1059C0008E7F83BF0FB6F894A895809160008861A0 +:1059D00080936000109260000FBE80916B0488235A +:1059E00061F00E947025EFE4F3E08191811178C4A9 +:1059F00029E533E02E173F07C1F780916C0485300D +:105A000009F4ABCF10925F040E94FA0F0E94C20EFD +:105A10000E94B8161092E7028091E602882349F0AE +:105A20008091770481608093770460E086950E947E +:105A300069160E94410DEFCDC394FF0C37E0C312ED +:105A400000CE0F5F1F4F0A30110509F0F0CD8FEF28 +:105A50008BAB8CAB1DAA0E940A1C8160782F9FAB78 +:105A60008EAB4BA95CA96DA98FA90E94DE240ACE3A +:105A70000E940A1C90931D0380931C0360E080E049 +:105A80000E949A080E94C20E8093F9020E949F0E03 +:105A9000882331F14091F5025091F6026091F702AE +:105AA0007091F8022FB7F8948091570490915804A0 +:105AB000A0915904B0915A042FBF841B950BA60BDB +:105AC000B70B81339547A105B10540F00E94980DB1 +:105AD00080914F04882309F456CE4DCE0E94B30D19 +:105AE0000E949F0E882309F4D5C061E080E00E94E7 +:105AF0009A0860E08CE791E00E948B1362E080E0FE +:105B00000E949A08809176040E94CB0C823009F49E +:105B10009BC008F090C0882309F496C0813009F436 +:105B200099C065E080E00E949A0860E08AE991E00F +:105B30000E948B1366E080E00E949A086091F9024F +:105B4000669561708FE991E00E948B1367E080E0B9 +:105B50000E949A086091F9026095617084EA91E070 +:105B60000E948B1368E080E00E949A086091F9021D +:105B700062FB662760F988EA91E00E948B137DA69C +:105B80006CA64091F1025091F2026091F302709183 +:105B9000F4022FB7F8948091570490915804A09183 +:105BA0005904B0915A042FBF841B950BA60BB70B59 +:105BB0008D329140A105B10508F48ACF0E94620898 +:105BC0006093F1027093F2028093F3029093F402D7 +:105BD0008091F002811104C080916701811142C05F +:105BE0006DE080E00E949A0860E08DEA91E00E94FA +:105BF0008B136AE080E00E949A0881E0809367013D +:105C00008091EF0290E00196817099278093EF02D6 +:105C100021E030E0281B390B40E6429FC001439F42 +:105C2000900D11242091EE02222351F1855C9B4FAF +:105C30000E9492064DCF833089F0843009F071CFF5 +:105C400060E08EE891E003C060E082E891E00E94AD +:105C50008B1367CF60E088E891E0F9CF60E084E9DA +:105C600091E0F5CF6AE080E00E949A0860E08DEA5A +:105C700091E00E948B136BE080E00E949A08C0CFF5 +:105C80002091ED02222319F085589C4FD1CF8554E5 +:105C90009D4FCECF64E080E00E949A0860E083EBE5 +:105CA00091E00E948B1365E080E00E949A0860E01A +:105CB00089EB91E00E948B1369E080E00E949A08D2 +:105CC0008BEF94E0B5CF80911B0361E070E0811110 +:105CD0005ACD082F10E02B01082E02C0440C551C91 +:105CE0000A94E2F7A90144215521452B09F448C043 +:105CF00090911A0390FD46C08295880F807680931C +:105D00006A019801369527953695279520936D0160 +:105D1000815E80936B0110926E0124E630E047E0D3 +:105D200050E068E671E088E70E948832892B09F02C +:105D30002ACDA80175E0440F551F7A95E1F78091AF +:105D40001A0380FD2DC042585B4F04E610E020E2AC +:105D500030E060E488E70E94AF32892B09F013CD70 +:105D60000E94B30DC2018095909540907C045090A4 +:105D70007D044822592250927D0440927C0403CD38 +:105D80008F5FA7CF880F880F880F80936A011092CA +:105D90006D01895F80936B0183E080936E01BDCFBD +:105DA000EAEFF2E080E2DF011D928A95E9F7EEE08A +:105DB000F2E0F9AFE8AF0AE012E099249394A8ADBD +:105DC000B9AD2D91B9AFA8AFF80121908F01240E84 +:105DD000352E311CC10182589B4F1C01E22FF0E08F +:105DE000E650FD4F30E020E067E0A62EA21AB92C65 +:105DF000022E01C0BB0C0A94EAF7610190E0D601C3 +:105E00008D916D018B216A2D691B6770862E062E80 +:105E1000000C770BB82F01C0BB0F8A94EAF78B2ECA +:105E20007195619571096770772701C086956A95AC +:105E3000EAF7882A8081882A80829F5F9830F9F665 +:105E40002F5F3F4F31962830310571F6E2E1F2E0E5 +:105E500028AD39ADE217F30709F0B1CF04E610E041 +:105E600020E230E04AEF52E074CF45E00E94FB0CA4 +:105E700020912C0330912D03281B390B30932D03D7 +:105E800020932C0345E0602F812F0E94FB0C209172 +:105E90002A0330912B03281B390B30932B032093BB +:105EA0002A036CE273E087E393E00E94DC0C6AE271 +:105EB00073E088E393E00E94DC0C10923A031092A6 +:105EC00039030DCD0197909334038093330307CDAD +:105ED00081608093360384E00E94B31384E190E0F4 +:105EE000F2CF809142038F5F80934203F8CC81E030 +:105EF00080FF0FC0E0915204F0915304309749F0B5 +:105F000082E0809324030480F581E02D84E293E015 +:105F100009951092260310922703109228031092DD +:105F2000290386E0E4E2F3E0AEE1B3E001900D92F4 +:105F30008A95E1F70E940A1C9093410380934003E5 +:105F40000E94C20E90914303891731F00E94C20E45 +:105F5000809343030E94B81680916C04843009F04A +:105F600051CB83E08093E9008091E80082FF4ACB27 +:105F70008091E80090E085FF0BC00E94F40630E2BB +:105F8000E32EF12C8E010F5F1F4F8823E1F091E08B +:105F90008091E8008B778093E800992309F432CB55 +:105FA000E981E150E33108F071C0F0E0E05BF84CCA +:105FB0000C9485358091F100D8018D938D01B1E06D +:105FC000EB1AF10821F38091E80085FDF3CF809171 +:105FD000E8008B778093E8000E94F406882399F309 +:105FE000D6CF1A8289E08B8311C08A81823009F46E +:105FF0008FC1833091F1813009F048C00E9462085E +:106000000E948B356B837C838D839E8380916C048F +:10601000843009F0F7CA1091E9001F709091EC00EC +:10602000892F817090FD80E8182B82E08093E90031 +:106030008091E80080FF0DC050E040E060E270E039 +:10604000CE0101960E9425078091E8008E7780930B +:10605000E8001F701093E900D5CADE011396EFE443 +:10606000F3E081918D9323E0E935F207D1F7CECFAC +:106070008A81823059F46B817C818D819E810E945E +:106080008B3586E290E00E94C535C0CF8FEF8983C3 +:10609000BDCF4C816B818A810E94921498278927F9 +:1060A00098279E838D83B2CF0D811E8110270127F3 +:1060B00010278A81EB803EE0E39E700111249CE86A +:1060C000899FE00CF11C11248C8190E0880F991FAE +:1060D000E80EF91E612FC70187960E94C535602F13 +:1060E000C7018896D0CF0E94161490CF8A8181383C +:1060F000C1F060F4803809F089CF20E04B816091D5 +:106100007904809178040E94521580CF8238E9F09A +:10611000833809F07BCF20E040917A046C818B8139 +:10612000F2CF60E08B810E9469168B81811103C0E0 +:106130000E94E50F6BCF8091770481608093770494 +:1061400060E086950E94691661CF8B8180937B0405 +:106150005DCF8A81813899F030F4803809F056CFCC +:1061600080917A0440CF823891F0833809F04ECF85 +:10617000809178048B83809179048C8347CF8091C0 +:10618000770480FF02C086952ECF80E02CCF8091CF +:106190007B0429CF60917704709178048091790411 +:1061A00090917A040E94401531CF80E18A832ECFEE +:1061B00081E08A838DE117CFCA80DB80DC24CD2487 +:1061C000DC248E010F5F1F4FEC80E00EF12EF11CDE +:1061D000C6018D519D4F0E151F0509F417CFADE176 +:1061E000CA16A1E0DA0650F40E94B135F8018483A2 +:1061F000BFEFCB1ADB0A0F5F1F4FEACFD80114960F +:106200001C92F6CF0A811B81102701271027FE015F +:1062100031966F01EC80E00EF12EF11CC8018D511A +:106220009D4FE016F10609F4F1CE0D31F1E01F07A4 +:1062300028F4D60114966C910E94C535BFEFCB1A95 +:10624000DB0A0F5F1F4FEACF0E940614DFCE85E006 +:10625000ADCFCA80DB80DC24CD24DC248E010F5F2F +:106260001F4FEC80E00EF12EF11CC6018796E01660 +:10627000F10609F4CBCEECEBCE16E2E0DE0658F4E4 +:106280000E94B135D80114968C93FFEFCF1ADF0A24 +:106290000F5F1F4FEACFF8011482F7CF0A811B81ED +:1062A0001027012710279E012F5F3F4F6901EC80C7 +:1062B000E00EF12EF11CC8018796E016F10609F4F4 +:1062C000A5CE0C3B32E0130728F4D60114966C914E +:1062D0000E94C535BFEFCB1ADB0A0F5F1F4FEBCF14 +:1062E00009BD19BD09B400FEFDCF8091D8008F7D96 +:1062F0008093D8008091E00082608093E0008091DC +:10630000E00081FDFCCF10925F040E94FA0F75CB74 +:1063100086E290E00E94B1351B821C821D828E8332 +:1063200075CE1092B9008CE08093B80008959F92CA +:10633000AF92BF92CF92DF92EF92FF920F931F9393 +:10634000CF93DF93B82EEB010E940A1C6C01EE2460 +:10635000E394F12CC431D10560F025E0E22EF12C5C +:10636000CF3FDC0731F0CE0164E170E00E9451358F +:106370007B0184EAA82E94E8992E1092BC00A0928A +:10638000BC000E940A1C8C018091BC0087FF0DC0DC +:106390008091B900887F883039F18091B900887F79 +:1063A000803111F10FEF1FEF09C00E940A1C801B02 +:1063B000910B8E159F0540F30EEF1FEFCF3FDC07CB +:1063C000E1F2C6010E94FB1B8C179D07B0F2C801C9 +:1063D000DF91CF911F910F91FF90EF90DF90CF90C1 +:1063E000BF90AF909F900895B092BB009092BC0078 +:1063F0000E940A1C8C018091BC0087FF0AC080911A +:10640000B900887F883111F0803461F610E000E037 +:10641000DECF0E940A1C801B910B8E159F0558F33E +:10642000CBCF0F931F93CF93DF93EB018093BB00F0 +:1064300084E88093BC000E940A1C8C018091BC00FF +:1064400087FF11C02091B900287F81E090E02832B9 +:1064500011F490E080E0919581959109DF91CF91C1 +:106460001F910F910895CF3FDC0741F30E940A1C52 +:10647000801B910B8C179D0708F38EEF9FEFEECFDB +:106480000F931F93CF93DF93EC0184EC8093BC00B8 +:106490000E940A1C8C018091BC0087FF08C080917B +:1064A000BB0090E0DF91CF911F910F910895CF3FF6 +:1064B000DC0789F30E940A1C801B910B8C179D0737 +:1064C00050F38EEF9FEFEECF0F931F93CF93DF9399 +:1064D000EC0184E88093BC000E940A1C8C0180912E +:1064E000BC0087FF08C08091BB0090E0DF91CF9196 +:1064F0001F910F910895CF3FDC0789F30E940A1C7A +:10650000801B910B8C179D0750F38EEF9FEFEECF02 +:10651000CF92DF92EF92FF920F931F93CF93DF936F +:106520006B018A017901B9010E949731E6010C0DD6 +:106530001D1DC017D10761F424E92093BC00DF9131 +:10654000CF911F910F91FF90EF90DF90CF90089522 +:1065500097FDF2CFB70189910E941132EACFCF9215 +:10656000DF92EF92FF920F931F93CF93DF93C62F8B +:106570006A017901B8010E94973197FD0CC0B801FA +:106580008C2F0E941132E601EC0CFD1CCE15DF05AC +:1065900011F097FF0CC024E92093BC00DF91CF914C +:1065A0001F910F91FF90EF90DF90CF900895B80169 +:1065B00089910E941132EACFCF92DF92EF92FF923F +:1065C0000F931F93CF93DF93F82EE62EEA01690114 +:1065D000B8010E94973197FD15C0B8018E2D0E9419 +:1065E000113297FD0FC0B8018F2D81600E94973145 +:1065F000F12CE12C21E0C21AD108EC14FD0400F5C5 +:1066000097FF11C024E92093BC001816190614F452 +:1066100090E080E0DF91CF911F910F91FF90EF907C +:10662000DF90CF900895C8010E94403297FD04C0CA +:10663000FE01EE0DFF1D80832FEFE21AF20ADDCF7F +:1066400097FDE0CFC8010E94643297FDDBCFCC0DEF +:10665000DD1D8883D7CF84E98093BC0008958EE147 +:106660004A9B02C08150E1F74A9BFECF08955A9899 +:1066700080E28A95F1F75A9A0895FC013BE03A9539 +:10668000F1F798E020E080E031E040E14A95F1F751 +:10669000880F4A9B02C08160232742E04A95F1F7A8 +:1066A000000040E14A95F1F7915079F790E19A9511 +:1066B000F1F799B132E03A95F1F7000040E14A95DF +:1066C000F1F792FB992790F992272081920F9083FE +:1066D0000895EF92FF920F931F93CF93DF930F9242 +:1066E000CDB7DEB719828C017C01E60EF11C0E15C8 +:1066F0001F0561F481E09981911180E00F90DF9195 +:10670000CF911F910F91FF90EF9008950E942F332A +:10671000CE0101960E943D33F80181938F01E7CFAE +:10672000529A5A9A089552985A9AEA9AE9E6F0E0EB +:1067300080818F7C808308956150770B91E001C048 +:10674000990F6A95EAF720E031E0911108C0222301 +:1067500091F05A9A80E28A95F1F75A980895492F54 +:10676000482339F05A9A232740E24A95F1F7969543 +:10677000ECCF5A98F9CF5A98EDCFFF920F931F9311 +:10678000CF93DF93EC018C01060F111DC017D107C9 +:1067900031F4DF91CF911F910F91FF900895F990FF +:1067A0000E94373368E08F2D0E949C33EFCF1F92F9 +:1067B0000F920FB60F921124EF92FF920F931F9337 +:1067C0002F933F934F935F936F937F938F939F93F9 +:1067D000AF93BF93EF93FF93CF93DF930F92CDB718 +:1067E000DEB719820E942F33CE0101960E943D33FD +:1067F000A82FA695A695A695282F229525709A2FA5 +:106800009570290F922F937026952695920F9827B1 +:1068100097708981982B09F075C0A83008F072C074 +:1068200080E18A95F1F75A9A529AB2E0BA95F1F757 +:1068300000C05A98EA2EF12CEAE0AE9FD001112454 +:10684000AF5FBE4F1896ED91FC9119973097B1F05C +:106850006091F8017091F90116962D913C9117976E +:10686000260F371F13968D919C911497680F791FEF +:1068700015964C91159712968C9109958AE08E9DEC +:10688000F0018F9DF00D1124EF5FFE4F65816623AF +:1068900051F02091F8013091F90186819781820FA2 +:1068A000931F0E94BD330E943733F0E1FA95F1F750 +:1068B0005A9852985A9A80E18A95F1F78AE08E9D0B +:1068C00080018F9D100D11240F5F1E4FD80112966D +:1068D0006C911297662371F12091F8013091F901C2 +:1068E00013968D919C91820F931F0E946933D8015A +:1068F000ED91FC91882311F088E001C082E0808353 +:106900000E942F330F90DF91CF91FF91EF91BF91B4 +:10691000AF919F918F917F916F915F914F913F9137 +:106920002F911F910F91FF90EF900F900FBE0F903E +:106930001F901895ED91FC91DFCF0F931F93CF938C +:10694000DF93EC0108970CF0A9C08AE08C9FF0015E +:106950008D9FF00D1124EF5FFE4F80819181892B77 +:1069600009F49CC0F894529A5A9885E08A95F1F7F8 +:1069700000008C2F869585709C2F9570890F982F1D +:10698000937086958695890F8E0193E0000F111FF5 +:106990009A95E1F7082B0E94373300C068E0802FFA +:1069A0000E949C33A0E1AA95F1F752985A9A4A9B0B +:1069B00027C087E090E04A9925C08AE08C9F80013B +:1069C0008D9F100D11240F5F1E4FF8016581662306 +:1069D000A1F12091F8013091F90186819781820F10 +:1069E000931F0E946933811128C0529A5A9AD80184 +:1069F000ED91FC9182E08083789482E090E016C073 +:106A000000C0D5CF0197B9F4529A5A9A8AE08C9F68 +:106A1000F0018D9FF00D1124EF5FFE4F0190F0818A +:106A2000E02D81E08083789481E090E0DF91CF9148 +:106A30001F910F91089500C0BECF0E942F33B0E286 +:106A4000BA95F1F75A98529AE0E1EA95F1F78AE09F +:106A50008C9FF0018D9FF00D1124EF5FFE4F62813E +:106A6000662351F02091F8013091F90183819481DE +:106A7000820F931F0E94BD330E9437338AE08C9FA0 +:106A8000F0018D9FF00D1124EF5FFE4F0190F0811A +:106A9000E02D1082789490E080E0C8CF84E090E010 +:106AA000C5CFAA1BBB1B51E107C0AA1FBB1FA6175E +:106AB000B70710F0A61BB70B881F991F5A95A9F7A7 +:106AC00080959095BC01CD010895991B79E004C093 +:106AD000991F961708F0961B881F7A95C9F780951D +:106AE000089597FB072E16F4009407D077FD09D080 +:106AF0000E94513507FC05D03EF4909581959F4F3B +:106B00000895709561957F4F0895EE0FFF1F0590D2 +:106B1000F491E02D0994692796276927782787271C +:106B200078270895FB01DC0102C005900D924150C9 +:106B30005040D8F70895FB01DC0104C08D9101900D +:106B4000801921F441505040C8F7881B990B0895D3 +:106B5000FB01DC0102C001900D9241505040D8F77A +:106B60000895F999FECF92BD81BDF89A992780B515 +:106B70000895A6E1B0E044E050E00C94EB35A8E1C4 +:106B8000B0E042E050E00C94EB35262FF999FECFAF +:106B900092BD81BDF89A019700B4021639F01FBA70 +:106BA00020BD0FB6F894FA9AF99A0FBE089503968D +:106BB000272F0E94C6350E94C535252F0E94C63555 +:106BC000242F0C94C6350196272F0E94C6350C94AD +:106BD000C535DC01CB01FC01F999FECF06C0F2BD41 +:106BE000E1BDF89A319600B40D9241505040B8F78B +:106BF00008950E943B3608F481E00895E89409C0A6 +:106C000097FB3EF490958095709561957F4F8F4FDF +:106C10009F4F9923A9F0F92F96E9BB279395F695F5 +:106C2000879577956795B795F111F8CFFAF4BB0F73 +:106C300011F460FF1BC06F5F7F4F8F4F9F4F16C0D7 +:106C4000882311F096E911C0772321F09EE8872F61 +:106C5000762F05C0662371F096E8862F70E060E01D +:106C60002AF09A95660F771F881FDAF7880F969596 +:106C7000879597F90895990F0008550FAA0BE0E83A +:106C8000FEEF16161706E807F907C0F012161306EE +:106C9000E407F50798F0621B730B840B950B39F42E +:106CA0000A2661F0232B242B252B21F408950A2694 +:106CB00009F4A140A6958FEF811D811D08950E94C2 +:106CC00072360C94E3360E94D53638F00E94DC36DA +:106CD00020F0952311F00C94CC360C94D23611246C +:106CE0000C9417370E94F43670F3959FC1F3950FFB +:106CF00050E0551F629FF001729FBB27F00DB11D40 +:106D0000639FAA27F00DB11DAA1F649F6627B00DCF +:106D1000A11D661F829F2227B00DA11D621F739FB8 +:106D2000B00DA11D621F839FA00D611D221F749FC6 +:106D30003327A00D611D231F849F600D211D822F0D +:106D4000762F6A2F11249F5750409AF0F1F0882334 +:106D50004AF0EE0FFF1FBB1F661F771F881F915061 +:106D60005040A9F79E3F510580F00C94CC360C940E +:106D700017375F3FE4F3983ED4F386957795679590 +:106D8000B795F795E7959F5FC1F7FE2B880F911D8B +:106D90009695879597F9089597F99F6780E870E031 +:106DA00060E008959FEF80EC089500240A94161681 +:106DB000170618060906089500240A9412161306E9 +:106DC000140605060895092E0394000C11F4882377 +:106DD00052F0BB0F40F4BF2B11F460FF04C06F5F93 +:106DE0007F4F8F4F9F4F089557FD9058440F551F69 +:106DF00059F05F3F71F04795880F97FB991F61F03D +:106E00009F3F79F087950895121613061406551FB3 +:106E1000F2CF4695F1DF08C0161617061806991F1F +:106E2000F1CF86957105610508940895E894BB2714 +:106E300066277727CB0197F90895F894FFCFEA10DA +:106E4000121165111211651145117D1165117A122A +:106E50008712121512151B151B151D151B151B1559 +:106E60001B151215121522151B151B152215671C53 +:106E7000DD1CE01CF41CF71C0A1D131D371D7D1DB5 +:106E8000AF1DC31D491D6C1D3A213A219321932149 +:106E9000C5216D216D216D21DF21502260226022EC +:106EA000F12FF52F38304930543073307630A93017 +:106EB000CA3046304630D530D830DC30023124314B +:066EC000273129314E319B +:106EC6000138020000000100000000380200000046 +:106ED600050100000038020000000106000000382D +:106EE600020000000107000000380204080000004C +:106EF6000000003802090C00000000000038020102 +:106F06001500000000000036323331F7F667669749 +:106F1600C6343500000000000180005F082E0E0D0B +:106F26000E090E050EF4F5010021007F2200030074 +:106F36004A004A4A01F6F731333236674C41594521 +:106F4600520042617365200047616D652000526101 +:106F5600697365004C6F776572004C4F434B004375 +:106F6600617073004E756D005363726C00202020B3 +:106F7600202000534F4C415200544D505354008131 +:106F86008283E200E900EA00B500B600B700CD0052 +:106F96008301CC008A01920194012102230224027A +:106FA6002502260227022A02B300B4006F007000F1 +:106FB6000603060806010606AF0200FF01000100EF +:106FC60000FFFF0000010001FF0000081018181064 +:106FD600080000010202020202020202020240222C +:0E6FE6007B99017701FC00000C190C390C009E :00000001FF From 053ce1e1ac77926117c0cf74207cb6545aac3b91 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 01:19:29 -0500 Subject: [PATCH 65/94] Added haptic feedback for control key on game layer. --- keyboards/solartempest/sofle/config.h | 7 +- .../solartempest/sofle/keymaps/via/keymap.c | 9 +- .../solartempest/sofle/keymaps/via/snakey.c | 4 +- .../sofle/sofle VIA layout trackball.json | 4 +- .../sofle/solartempest_sofle_via.hex | 2776 ++++++++--------- 5 files changed, 1405 insertions(+), 1395 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index fd39b7d5c5df..1a347769b69a 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -63,8 +63,11 @@ #define NO_ACTION_FUNCTION // Disabled to save space -#define NO_ACTION_ONESHOT //Save 244 bytes (-244). -#define NO_RESET //Save 40 bytes (-40). +#define NO_ACTION_ONESHOT //Save 244 bytes (-244). +#define NO_RESET //Save 40 bytes (-40). +#undef LOCKING_SUPPORT_ENABLE //For MX lock keys only. +#undef LOCKING_RESYNC_ENABLE //For MX lock keys only. +#define LAYER_STATE_8BIT //For less than 8 bits worth of layers. // Encoder support #define ENCODERS_PAD_A { F5 } diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 0bc1726b0b61..a92b78ff829d 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -168,9 +168,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these report_mouse_t currentReport = pointing_device_get_report(); if (pressed) { currentReport.buttons |= button; - #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed + /*#ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed DRV_pulse(4); //sharp_click - #endif + #endif*/ } else { currentReport.buttons &= ~button; } @@ -356,6 +356,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else { isSneaking = false; } + #ifdef HAPTIC_ENABLE //Set different patterns for keys on certain layers. In this case it is for gaming feedback. + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(51); //buzz_20 + } + #endif return true; case KC_SPC: if (record->event.pressed) { //Pet jumps when enter is pressed. diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index 8f1f59dba073..c8dc8bdfb420 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -234,7 +234,9 @@ /* wpm counter */ char wpm_str[8]; oled_set_cursor(0,13); - sprintf(wpm_str, " %03d", current_wpm_read); + //sprintf(wpm_str, " %03d", current_wpm_read); //Replaced with two lines of code below to save space. + oled_write_P(PSTR("WPM: "), false); + oled_write(get_u8_str(get_current_wpm(), ' '), false); oled_write(wpm_str, false); oled_set_cursor(0,14); oled_write(" wpm", false); diff --git a/keyboards/solartempest/sofle/sofle VIA layout trackball.json b/keyboards/solartempest/sofle/sofle VIA layout trackball.json index f794311887be..c8673f835d02 100644 --- a/keyboards/solartempest/sofle/sofle VIA layout trackball.json +++ b/keyboards/solartempest/sofle/sofle VIA layout trackball.json @@ -268,7 +268,7 @@ "KC_8", "KC_7", "KC_6", - "C(KC_MINS)", + "C(S(KC_TAB))", "KC_PIPE", "KC_RPRN", "KC_LPRN", @@ -282,7 +282,7 @@ "KC_DOT", "KC_RBRC", "KC_LBRC", - "C(KC_PPLS)", + "C(KC_TAB)", "KC_TRNS", "KC_TRNS", "KC_TRNS", diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 315fa5275ec2..136dfb3bc2c3 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C9449060C9490060C9490060C94D733EB +:100000000C9449060C9490060C9490060C94DA33E8 :100010000C9490060C9490060C9490060C94900608 -:100020000C9490060C9490060C94001B0C94BC1A33 -:100030000C9437280C9490060C9490060C9490061F +:100020000C9490060C9490060C94FB1A0C94B71A3E +:100030000C943A280C9490060C9490060C9490061C :100040000C9490060C9490060C9490060C949006D8 -:100050000C9490060C94D71B0C9490060C9490066C +:100050000C9490060C94D21B0C9490060C94900671 :100060000C9490060C9490060C9490060C949006B8 :100070000C9490060C9490060C9490060C949006A8 :100080000C9490060C9490060C9490060C94900698 @@ -205,9 +205,9 @@ :100CC000800610928106109282061092830614BE4E :100CD00084B7877F84BF0FB6F894A8958091600091 :100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0E6ECFEE602C0059046 +:100CF000099512E0A0E0B1E0ECECFEE602C0059040 :100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92A038B207E1F70E945E280C941D379F +:100D10001D92A038B207E1F70E9461280C94203799 :100D20000C940000CF93DF9340917E0650917F0694 :100D30004E5754409A01205A3F4F21303240C0F064 :100D400020E032E0241B350B60917C0470917D041F @@ -296,7 +296,7 @@ :101270004E2F4983E8835A83DF91CF911F910F91BD :10128000FF90EF90DF90BF90AF900895E62EF12C85 :101290004491D42EE42FF0E026E0829FC001112477 -:1012A0002FEF30E0B9010E945135802F90E0880F78 +:1012A0002FEF30E0B9010E945435802F90E0880F75 :1012B000991F55E5569FD001579FB00D11248A1BE9 :1012C0009B0B982F990F890F5901AE18BF08AE9E3E :1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 @@ -409,1385 +409,1385 @@ :1019800080819181CF911F910F910C946E08CF911E :101990001F910F910895982F92959F7011F0892FA4 :1019A00094E0282F2695269511F09E5F822F86952C -:1019B00009F09F5F892F0895DC01FB0180819181EF -:1019C000803891054CF08FE78C93808191818F57FF -:1019D000910991838083089581382FEF92073CF419 -:1019E00081E88C938081918181589F4FF2CF8C93B5 -:1019F000118210820895681708F5861B682F21E070 -:101A0000469FA0011124649FF001659FF00D1124F1 -:101A10004091590150915A01E49FC001E59F900DFA -:101A2000F49F900D1124880F892F881F990B919591 -:101A3000222319F09195819591090895681B20E062 -:101A4000DFCF0F931F93CF93DF9300D000D0CDB79C -:101A5000DEB789836A834B831C8204E610E024E0AE -:101A600030E0AE014F5F5F4F60E084E10E94AF3233 -:101A70000F900F900F900F90DF91CF911F910F91CA -:101A8000089580913203882329F047E669E98BE2C3 -:101A90000C94210D6091590170915A0190E080E001 -:101AA0000E94FE3520E030E040E05CE30E945F36BB -:101AB00020E030E040E85FE30E94F935882321F020 -:101AC00047EC6BE180E0E4CF41E265EA89EDE0CFED -:101AD000CF92DF92EF92FF920F931F93CF93DF93FA -:101AE0006C017B0164E670E088E70E949731EC01AD -:101AF00097FD12C010E000E0F601E00FF11F8491A5 -:101B000064E670E00E941132EC01892B29F40F5F2A -:101B10001F4F0E151F0581F70E942B33CE01DF9159 -:101B2000CF911F910F91FF90EF90DF90CF9008958C -:101B300080914E0490914F04911103C091E0892748 -:101B40000895882369F062E070E08CEE9BE00E94CB -:101B5000680D892B19F080914E04089510924E045F -:101B600080914E04EBCFCF93C0914E0480914F04EF -:101B70008823D1F00E9462086058774C8E4F9F4FA7 -:101B800060934A0470934B0480934C0490934D04EB -:101B9000C11108C062E070E08AEE9BE00E94680D0F -:101BA000892B29F0C0914E048C2FCF91089581E0AC -:101BB00080934E04F7CF90916C04943029F5809374 -:101BC0005B0470935D0460935C049093E9008FEF75 -:101BD0009091E800815095FD06C095ED9A95F1F73A -:101BE00000008111F5CF8091E80085FF0DC050E025 -:101BF00040E063E070E08BE594E00E94250780916F -:101C0000E8008E778093E8000895BC0184E00C948E -:101C1000DB0DBC0183E00C94DB0D9C0184E0809320 -:101C2000E9009FEF8091E800915085FD06C085EDA9 -:101C30008A95F1F700009111F5CF8091E80085FFBA -:101C40000CC050E040E066E070E0C9010E9425074A -:101C50008091E8008E778093E8000895CF93DF931A -:101C6000EC0181E08093E9008FEF9091E8008150D2 -:101C700095FD06C095ED9A95F1F700008111F5CF1D -:101C80008091E80085FF14C050E040E068E070E01B -:101C9000CE010E9425078091E8008E778093E800AE -:101CA00088E0FE01A2E6B4E001900D928A95E1F78A -:101CB000DF91CF9108959F92AF92BF92CF92DF9222 -:101CC000EF92FF920F931F93CF93DF937C015B0101 -:101CD0006A018091D10201E010E08A3010F40AE03C -:101CE00010E0C1E0D0E0F894B501C701F601099514 -:101CF000982E0E94BC09911004C021960C171D0754 -:101D00006CF4892DDF91CF911F910F91FF90EF908F -:101D1000DF90CF90BF90AF909F900895CC9F90019F -:101D2000CD9F300D300D112490E080E045E34A95C1 -:101D3000F1F70000019682179307C1F7D4CF809185 -:101D4000A102811110C08091D80080618093D800D9 -:101D50008AE18A95F1F700C08091D90080FF0AC01E -:101D600081E08093A10281E09091A102913009F07D -:101D700080E0089582E08093A1020E94D50610922F -:101D80006C04F1CF0E949F0E882351F0E091520421 -:101D9000F0915304309721F00190F081E02D0994E7 -:101DA00080E008951F93CF93DF93182FEB010E94DB -:101DB000570C8FE99FE00197F1F700C000002197D1 -:101DC000C1F7812FDF91CF911F910C941E0C4F9280 -:101DD0005F926F927F928F929F92AF92BF92CF92BB -:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4 -:101DF000DEB7CE5DD1090FB6F894DEBF0FBECDBF02 -:101E0000509070019091770490FF5DC080905D03C9 -:101E100090905E038114910409F068C0E0E6F6E05A -:101E20009E012F5F3F4FBE0161527F4FC901A491B8 -:101E30004A2F50E0DA01AA0FBB1FA40FB51FA15A09 -:101E4000BC4FCD90DD90EC90D901CD92DD92ED921A -:101E50009D0131966A177B0751F720916F0143E08E -:101E6000249F800D911D1124539A2BB1277F3BB1E4 -:101E700038605FB7F894BC01549E600D711D112449 -:101E80008617970709F08EC05FBF8FE594E0019732 -:101E9000F1F700C00000C252DF4F0FB6F894DEBF6A -:101EA0000FBECDBFDF91CF911F910F91FF90EF90AB -:101EB000DF90CF90BF90AF909F908F907F906F906A -:101EC0005F904F900895809171012091720133E0ED -:101ED000839FF0011124E15AFC4F821708F096CF3E -:101EE0001182108212828F5F3396F7CF90FF96CFC8 -:101EF000D12CC12C66246394712C53E0452E809123 -:101F00005C0393010C2C01C0220F0A94EAF7822390 -:101F100009F43FC0F601EE0FFF1FE80DF91DE59033 -:101F2000F490E114F10409F479CF45E050E0B701F1 -:101F3000CE0101960E94923509810F3F51F18A81AD -:101F4000800F9927991F8B34910514F08AE490E053 -:101F50005C01AA0CBB1C8A0D9B1DDC01A15ABC4F65 -:101F60005D01049D80011124015A1C4F0A151B05B7 -:101F700020F0B5E0EB0EF11CD8CF4D81413A08F0CE -:101F800040EA98016C818B810E9424090D5F1F4FEC -:101F9000EDCFEFEFCE1ADE0AF8E0CF16D10409F04C -:101FA000AECF3CCFFC014191CF01E8E03BB900004E -:101FB00000C047FF2BB9440F000000C000C000C0A4 -:101FC0002BB900C0EA9591F75BCFE7E7F4E0808199 -:101FD0008E7F8083E9E5F3E08281816082832FEF49 -:101FE00080E792E0215080409040E1F700C000007F -:101FF0000C94E70EE2E3F2E086E0DF011D928A95A1 -:10200000E9F70C94F70B1F93CF93DF93CDB7DEB7AF -:10201000AA970FB6F894DEBF0FBECDBF8EE694E050 -:102020002091F100DC012D93CD01B4E086379B07B0 -:10203000B9F780916F04833009F471C0B8F481302E -:1020400009F448C0823009F4B4C08091E80083FFED -:102050003CC180916E0490916F049A3008F035C1B4 -:10206000E92FF0E0E15EF84C0C9485358A3009F4F4 -:102070008FC08B3009F470C0893039F780916E04BD -:10208000813219F78091720490917304009711F0D6 -:102090000297D9F68091E800877F8093E8008091CD -:1020A000E80082FF37C09091F3008091F200029720 -:1020B00029F48091F1008B7F813021F48091F1002F -:1020C000809361048091E8008B778093E8000E9400 -:1020D0004F07BBCF80916E04813A09F0B6CF809153 -:1020E000E800877F8093E8008091720490917304E8 -:1020F000892B61F468E082E694E070E00E940108B8 -:102100008091E8008B778093E8009FCF60E090E0BB -:1021100080E0F3CF80916C048111C1CF96CF809184 -:102120006E04813A09F091CF80917204909173040A -:10213000892B09F08ACF8091E800877F8093E8009F -:102140008091E80080FFFCCF809174018093F100C2 -:102150008091E8008E77B9CF80916E04813209F0CA -:1021600074CF8091720490917304892B09F06DCF24 -:102170008091E800877F8093E8000E944F0780915C -:1021800070048093740110925F040E94FA0F5DCF77 -:1021900080916E04813209F058CF8091E800877FEA -:1021A0008093E8000E944F0780917104809360043F -:1021B0004CCF80916E04813A09F047CF8091E800BE -:1021C000877F8093E8008091E80080FFFCCF8091BA -:1021D0006004BCCF803899F0823809F076C08091D5 -:1021E00072048F70873008F070C08093E90080918E -:1021F000EB0085FB882780F91092E90006C08091EA -:102200006A0490916B04911182609091E800977F2D -:102210009093E8008093F1001092F1008091E80023 -:102220008E77B5C1882309F4A2C1823009F04DC070 -:10223000809170048111A6C1809172048F702FEF7C -:10224000280F263008F041C08093E9002091EB0070 -:1022500020FF98C1933031F48091EB00806280932D -:10226000EB0090C19091EB0090619093EB0021E026 -:1022700030E001C0220F8A95EAF72093EA0010921D -:10228000EA008091EB008860EACF81111EC01091B6 -:1022900070041F778091E3008078812B8093E300A6 -:1022A0008091E800877F8093E8000E944F0780912B -:1022B000E80080FFFCCF8091E30080688093E3001A -:1022C00082E0111183E080936C048091E80083FF29 -:1022D0000AC08091E800877F8093E8008091EB003E -:1022E00080628093EB00AA960FB6F894DEBF0FBE13 -:1022F000CDBFDF91CF911F9108958058823028F78C -:1023000020917004309171042C3DE3E03E07A1F56B -:1023100083E08A838AE289834FB7F894DE011396BB -:1023200020E03EE051E2E32FF0E050935700E491CB -:1023300020FF03C0E295EF703F5FEF708E2F90E0BB -:10234000EA30C0F0C7968D939D932F5F243159F7E3 -:102350004FBF8091E800877F8093E8006AE270E0D9 -:10236000CE0101960E9401088091E8008B7780934E -:10237000E800ABCFC096E7CF8091720490917304D0 -:10238000432F55274330510509F44AC078F54130B1 -:10239000510509F47AC08BE590E0EEEEFBE04230A7 -:1023A000510509F092CF2091E800277F2093E800A3 -:1023B00020917404309175048217930708F49C01EE -:1023C00040E02115310509F065C0411163C08091DD -:1023D000E80082FDC9CF80916C04882329F2853002 -:1023E00019F28091E80083FFF2CFBECF4132510550 -:1023F00009F43CC04232510509F067CF83309105A2 -:1024000008F063CFFC01EE0FFF1FEF5DFD4F019061 -:10241000F081E02D825E9D4FDC018C9190E01AC02E -:10242000332721303105D1F02115310561F02230FB -:10243000310509F04ACFEBE5FCE0E4918E2F90E006 -:10244000EBE5FCE007C0EDE8FCE0E4918E2F90E0C6 -:10245000EDE8FCE0009709F438CFA5CFEBE7FCE00E -:10246000E4918E2F90E0EBE7FCE0F4CF8330910510 -:1024700008F02BCF880F991FFC01E95DFD4F0190FB -:10248000F081E02D89E090E08ECF82E190E0E9E4F8 -:10249000FCE089CF80916C04882309F465CF8530F6 -:1024A00009F462CF8091E80083FD5ECF8091E8005F -:1024B00082FD8DCF8091E80080FF83CF9091F30063 -:1024C0008091F2002115310519F08830910550F006 -:1024D00041E0089709F040E08091E8008E77809312 -:1024E000E8006FCF44914093F100319621503109BB -:1024F0000196E8CF803809F0E8CE8091E800877F28 -:102500008093E80080916D048093F10087CE811163 -:10251000DCCE10917004123008F0D7CE8091E80024 -:10252000877F8093E80010936D040E944F0711236A -:1025300011F084E005C08091E30087FDFACF81E0CF -:1025400080936C0442E061EC81E00E946E0742E2FD -:1025500061EC84E00E946E0742E261EC82E00E943E -:102560006E0742E260EC83E00E946E07AECE80917F -:102570007004813009F0A9CE81E0933009F080E049 -:1025800080936B041092E9008091E800877F80932C -:10259000E8000E944F0799CE1F93CF93DF93162F29 -:1025A000C0917E06D0917F068A30D1F420914304F9 -:1025B000CE018E579440622F70E00E945135281B47 -:1025C000822F66E00E946535C82FC15020F4DF914C -:1025D000CF911F91089560E080E20E94CC12F5CF68 -:1025E0008D30E9F4CE57D44020914304622F70E03F -:1025F000CE010E945135281B822F9E01280F311DCC -:102600002115324018F080E0D0E0C0E0C80FD11DA5 -:10261000C258DB4FD0937F06C0937E06D8CF96E09A -:10262000FE01A4E4B4E001900D929A95E1F7803E9A -:1026300090F186E0FE0111928A95E9F7C0917E063D -:10264000D0917F06111133C046E050E0BE0184E412 -:1026500094E00E949B359E012E573440892B91F5C2 -:102660002A5F3F4F40914304642F70E0C9010E94EC -:102670005135481B463010F4240F311D211572E0EE -:10268000370710F030E020E022583B4F30937F06B0 -:1026900020937E069CCFF6E08F9FB00111246655F3 -:1026A000794F46E050E0CE010E949235C7CF9E019F -:1026B0002A5F3F4FFE012E173F0731F28081809540 -:1026C0008193F9CFC90145E0969587954A95E1F741 -:1026D00041E050E0BA0102C0660F771F8A95E2F729 -:1026E000CB0160917C0470917D04862B972BB901FE -:1026F0006B5F7F4FE5E076956795EA95E1F702C05D -:10270000440F551F6A95E2F7842B952B90937D0417 -:1027100080937C04A5CFFF920F931F93CF93DF93F9 -:10272000EC01F62EFC0101900020E9F78F01015029 -:102730001109C017D10730F0DF91CF911F910F9190 -:10274000FF9008956F2D89910E94CC12F2CFE1E4A1 -:10275000F4E08083618324E630E042E050E0BF0192 -:1027600084EB0C948832CF93C82F60E08CE00E94F9 -:10277000A7136C2F84E00E94A71361E08CE0CF9137 -:102780000C94A7131F93CF93DF93CDB7DEB7629757 -:102790000FB6F894DEBF0FBECDBF96E0E4E2F3E0E3 -:1027A000DE01179601900D929A95E1F796E0FE01F1 -:1027B0003796DE011D9601900D929A95E1F71885E6 -:1027C000882309F1162B84E00E94B3131E8786E04C -:1027D000FE013D96DE01119601900D928A95E1F77A -:1027E00086E0FE013196A4E2B3E001900D928A9555 -:1027F000E1F762960FB6F894DEBF0FBECDBFDF9152 -:10280000CF911F91089560951623E0CFCF93DF936A -:10281000C3EED2E060E0CE010E94C5352196C1151D -:1028200084E0D807B9F7DF91CF9108956F927F9236 -:102830008F929F92AF92BF92CF92DF92EF92FF92D0 -:102840000F931F93CF93DF938AEAC82E86E0D82E8A -:1028500091ECE92EF12CE701CC58D10936011BC0CF -:10286000F50185909490692DC8010E94C535682DA9 -:10287000C80101960E94C53582E0A80EB11C0E5F0A -:102880001F4FC017D10761F78EE0680E711C2E969E -:10289000CE15DF0529F08E010E5011095301E0CF4E -:1028A0007E018CE8E80EF11C8CE8C80ED11C8DE787 -:1028B000E81683E0F80679F6DF91CF911F910F912A -:1028C000FF90EF90DF90CF90BF90AF909F908F9050 -:1028D0007F906F900895CF93C82F6FEF811161E2C1 -:1028E00083E290E00E94C5356FEFC11161E184E29F -:1028F00090E00E94C5356FEFC11166E285E290E07D -:10290000CF910C94C53580E00E946B1460E086E2A4 -:1029100090E00E94C5350E9416140E94061481E0C2 -:102920000C946B140F931F93CF93DF93C42FD0E0BD -:10293000CC0FDD1F2EE0629FC00DD11D11243CE89D -:10294000839FC00DD11D1124CE0187960E94B13501 -:10295000082F10E0102F0027CE0188960E94B13575 -:102960009801282BC901DF91CF911F910F910895F4 -:10297000462F853038F47A3028F4673018F4672F02 -:102980000C94921490E080E00895CF92DF92FF9231 -:102990000F931F93CF93DF936C0100917604809186 -:1029A0009202082BC7E0D0E010E0FC2EC8010C2EEC -:1029B00002C0959587950A94E2F780FD0CC0219797 -:1029C000A0F7F12C8F2DDF91CF911F910F91FF90E8 -:1029D000DF90CF900895B6018C2F0E94B8140E940A -:1029E000180A019761F3EECFCF93DF93EC010E94B9 -:1029F000C514BE010E94B814DF91CF910C94180A3F -:102A0000FC01808191810E94F414292F2F709295EE -:102A10009F7092509E3078F4E92FF0E0E75DF84C1B -:102A20000C948535803F19F020F4883E20F481E035 -:102A30000895843FE1F380E00895883EC0F3813F2C -:102A4000D1F7F5CF822F869586958695089583E2F6 -:102A500090E00E94B135813289F484E290E00E94D6 -:102A6000B135813159F485E290E00E94B13591E0B1 -:102A7000863209F090E0892F8170089580E0FCCFC4 -:102A8000CF92DF92EF92FF926B017C010E940E09C0 -:102A9000B701A60188E090E0FF90EF90DF90CF9023 -:102AA0000C94D735AF92BF92CF92DF92EF92FF9204 -:102AB0000F931F93CF93DF9300D00F92CDB7DEB764 -:102AC000082FF62E142FE22E8091770480FF4FC03E -:102AD000E82FE695AE2FB0E0AE5EBD4F9C9190938F -:102AE00059038E7F823009F056C0413A08F040EA1F -:102AF0009E012F5F3F4F6F2D802F0E9424098091F0 -:102B0000770480FF11C02B8139814A818091710146 -:102B10009091720153E0859FF0011124E15AFC4F1E -:102B2000891798F10E94E70E80917804801308C0FD -:102B3000809179048F1104C080917A04811729F063 -:102B400080915B03826080935B0300937804F09232 -:102B5000790410937A04EE2051F06091770470911B -:102B600078048091790490917A040E9440150F9026 -:102B70000F900F90DF91CF911F910F91FF90EF90E9 -:102B8000DF90CF90BF90AF90089541833083228330 -:102B90008F5F3396C5CF923039F6E2508E2F817019 -:102BA000D82EE695F0E0E55AF94FA590B490C12CE7 -:102BB000BB2460917301C61608F0B4CF2C2D30E011 -:102BC000A29EC001A39E900DB29E900D112470E0B4 -:102BD0000E945135802FD11016C0860F409171018F -:102BE000420F532F511D9A01220F331F240F351FFF -:102BF000215A3C4F412F113A08F040EA6F2D0E94B4 -:102C00002409C394D6CF861BE9CFE7E7F4E04381DC -:102C100021E1421B08F440E021E0628181810C94B3 -:102C20005215E7E7F4E0438121E1420F08F44FEF4A -:102C300021E0628181810C945215E7E7F4E0628122 -:102C400021E1621B08F460E021E0438181810C9462 -:102C50005215E7E7F4E0628121E1620F08F46FEFBB -:102C600021E0438181810C945215E7E7F4E08181F2 -:102C700021E04381628188500C945215E7E7F4E02B -:102C8000818121E043816281885F0C94521580919B -:102C90007B04882319F0815080937B046091770432 -:102CA000709178048091790490917A040C94401585 -:102CB00080917B04833018F48F5F80937B04609154 -:102CC0007704709178048091790490917A040C943F -:102CD00040159091770490FF27C0917081111DC01D -:102CE00092609093770480915B03816080935B0393 -:102CF000662351F060917704709178048091790493 -:102D000090917A040E94401520E040917A046091ED -:102D10007904809178040C9452158C3010F09661EF -:102D2000E0CF880F982BDDCF089521E030E0A90196 -:102D300002C0440F551F8A95E2F7CA0120915C0337 -:102D4000662391F0822B80935C0380915B0380610A -:102D500080935B0380915A03811109C080917704AD -:102D600060E086950C94691680958223ECCF0895D7 -:102D7000CF93DF93C82FC17082FBDD27D0F981FB91 -:102D8000662760F985E00E94951661E06C2786E071 -:102D90000E9495166D2F87E0DF91CF910C949516C8 -:102DA0000F931F93CF93C82F61E08111682F61703B -:102DB00080E00E949516C1FB662760F9C11101C031 -:102DC00060E081E00E949516C2FB662760F9C111A0 -:102DD00001C060E082E00E949516C3FB662760F99F -:102DE000C11101C060E083E00E949516C4FB662714 -:102DF00060F9C11101C060E084E00E9495164C2F7B -:102E000050E070E060E0DB01CA01F4E0B695A79500 -:102E100097958795FA95D1F70097A105B10549F1E6 -:102E2000AC01BD0184E08A019B01E2E03695279563 -:102E300017950795EA95D1F701151105210531057B -:102E400019F08E5FB901A80176956795579547955A -:102E5000452B462B472B09F08F5F8230D1F158F478 -:102E60008823E9F0813059F18C2FCF911F910F9178 -:102E7000089580E0D8CF8330A1F18430A9F720E015 -:102E800040E56FEF8AED0E94521587E00E94B31370 -:102E900080910001882341F3109232030DC020E09D -:102EA00040E56FEF82E30E94521580910001882374 -:102EB00099F381E0809332030E94410DD5CF20E049 -:102EC00040E56FEF8CEF0E94521585E40E94B3132A -:102ED000CBCF20E040E56FEF80E50E94521585E200 -:102EE000F5CF20E040E56FEF86E70E9452158FE1B5 -:102EF000EDCF0E94D016809376040C94F70B80914E -:102F00007604982F9670963019F488600C9479178F -:102F1000877FFCCF21E030E001C0220F8A95EAF7DD -:102F200020958091760482230C94791721E030E07B -:102F300001C0220F8A95EAF780917604822B0C94C7 -:102F40007917809177048695815009F48BE061E0D0 -:102F50000C9469168091770486958F5F8C3008F009 -:102F600081E061E00C9469168091770480FF07C0CE -:102F7000869582588F77893010F40C94AA1761E0F7 -:102F800082E00C946916E7E7F4E083E08083118225 -:102F90008FEF828380EA83831482A9E5B3E01296DF -:102FA0008C911297836012968C93608171818281DB -:102FB00093810C944015AB01BC0188E190E00C9426 -:102FC000D735CF93C82FEFE3F4E0982F990F990FDF -:102FD000990F80818770892B8083E0E4F4E09C2F37 -:102FE0009295969597708081887F892B80836091D8 -:102FF0003D0470913E0480913F04909140040E94F2 -:10300000DB176C2F82E0CF910C94A713EDE3F4E073 -:1030100089E88083118282818C7F828360913D0464 -:1030200070913E0480913F04909140040C94DB1712 -:10303000EDE3F4E080818E7F808360913D047091A8 -:103040003E0480913F04909140040C94DB17EDE323 -:10305000F4E080818160808360913D0470913E0442 -:1030600080913F04909140040C94DB1769EE7EEF51 -:1030700090E080E00E94E33560E082E090E00E9412 -:10308000C53560E083E090E00E94C5351092920261 -:1030900060E084E090E00E94C53560E082E290E06C -:1030A0000E94C53560E085E090E00E94C53560E093 -:1030B00086E090E00E94C5356FEF87E090E00E94C7 -:1030C000C53540E050E0BA0188E090E00E94D73575 -:1030D00060E08DE090E00E94C53540E050E0BA012C -:1030E00088E190E00E94D73560E087E190E00E949F -:1030F000C53540E050E0BA018CE190E00E94D73540 -:1031000070E060E080E290E00E94E3350E940618E3 -:1031100080E00E946B140E94831440E050E0BA01EA -:103120008FE090E00E94D73540E050E0BA0183E1A3 -:1031300090E00C94D7350F931F93CF93DF9300D07B -:1031400000D0CDB7DEB74091C5025091C602609164 -:10315000C7027091C8022FB7F894809157049091DC -:103160005804A0915904B0915A042FBF841B950BA9 -:10317000A60BB70B84369105A105B10588F10E9415 -:103180009F0E882379F10E9462086E5F7F4F8F4FF8 -:103190009F4F69837A838B839C8380912C019091CC -:1031A0002D0181559D4F40912B0150E04530510537 -:1031B00010F044E050E0BE016F5F7F4F0E94A835E1 -:1031C00084E090E00E949D34892BD9F40E9462082B -:1031D0006093C5027093C6028093C7029093C802A1 -:1031E00081E010C00E9462080091D2021091D302C7 -:1031F0002091D4023091D502600F711F821F931F5E -:10320000C4CF80E00F900F900F900F90DF91CF917F -:103210001F910F9108958F929F92AF92BF92CF927C -:10322000DF92EF92FF920F931F93CF93DF93EB0107 -:1032300088809980AA80BB809FB7F894C09057047B -:10324000D0905804E0905904F0905A049FBFC818D9 -:10325000D908EA08FB0894E6C916D104E104F10490 -:1032600010F4442311F1E82E082E000CFF089AE018 -:103270008902F0011124EF5FFE4F83819481815513 -:103280009D4F428150E00417150708F4A801B901C9 -:103290000E94A835C7010E949D34892BA1F40E9489 -:1032A0006208688379838A839B8381E0DF91CF9171 -:1032B0001F910F91FF90EF90DF90CF90BF90AF9054 -:1032C0009F908F90089580E0F1CF0F931F93CF933D -:1032D000DF930F92CDB7DEB780914E0489832091A2 -:1032E000C40290E041E02817190609F440E001E02B -:1032F00010E09E012F5F3F4F6DEC72E086E00E9470 -:103300000B190F90DF91CF911F910F9108950F939B -:103310001F93CF93DF93CDB7DEB729970FB6F894FD -:10332000DEBF0FBECDBF85E0E7E7F4E0DE0111961A -:1033300001900D928A95E1F78091590390915A037B -:10334000A0915B03B0915C038E839F83A887B987AC -:1033500041E08885811101C040E009E010E09E0154 -:103360002F5F3F4F69EC72E085E00E940B198111DD -:1033700010925B0329960FB6F894DEBF0FBECDBF47 -:10338000DF91CF911F910F9108956F927F928F924D -:103390009F92AF92BF92CF92DF92EF92FF920F93E4 -:1033A0001F93CF93DF930F92CDB7DEB7862E5A01CE -:1033B0006901682E880F7708C3010E949D34892B0C -:1033C00009F088C08AE0869DF001879DF00D1124E8 -:1033D000EF5FFE4F458150E04115510511F041E08E -:1033E00050E08AE0869DF001879DF00D1124EF5F8B -:1033F000FE4F6681778161557D4FCE0101960E9417 -:10340000A835F50140815181628173812FB7F8940D -:103410008091570490915804A0915904B0915A0496 -:103420002FBF841B950BA60BB70B84369105A10506 -:10343000B10540F4B701C8010E94F30899818917CA -:1034400009F44FC0082C000C9908C4010E949D3457 -:10345000892B91F0B12C8B2D0F90DF91CF911F9183 -:103460000F91FF90EF90DF90CF90BF90AF909F9023 -:103470008F907F906F9008958AE0889DF001899DDC -:10348000F00D1124EF5FFE4F458150E0E416F50684 -:1034900008F4A7018AE0889DF001899DF00D1124B0 -:1034A000EF5FFE4F6681778161557D4FC6010E94B7 -:1034B000A835B701C8010E94F30899818913CACFC2 -:1034C0000E946208F5016083718382839383BB2429 -:1034D000B394C1CFB12CA701B801C6010E94A83591 -:1034E000BACFBB24B394F7CFCF92DF92EF92FF9283 -:1034F0000F931F93CF93DF9300D000D00F92CDB7DF -:10350000DEB76B0185E0E82EF12C00EB12E09E01A6 -:103510002F5F3F4F47EA52E061E080E00E94C5190B -:10352000882349F095E0FE013196A2EAB2E00190CD -:103530000D929A95E1F795E0E2EAF2E0D60101906A -:103540000D929A95E1F70F900F900F900F900F90BA -:10355000DF91CF911F910F91FF90EF90DF90CF906F -:10356000089590E080E00E94BF35893E9E4F11F49F -:103570000C94271580E008951F920F920FB60F92BA -:1035800011242F933F934F935F936F937F938F9368 -:103590009F93AF93BF93CF93DF93EF93FF93D0911C -:1035A000E900DF708091EC00C82FC17080FDC0E899 -:1035B0001092E9008091F000877F8093F00078946A -:1035C0000E9403101092E9008091F00088608093BF -:1035D000F000CD2BCF70C093E900FF91EF91DF9108 -:1035E000CF91BF91AF919F918F917F916F915F919B -:1035F0004F913F912F910F900FBE0F901F901895F4 -:103600001F920F920FB60F9211242F933F934F9357 -:103610005F936F937F938F939F93AF93BF93EF933A -:10362000FF938091E10082FF09C08091E20082FF58 -:1036300005C08091E1008B7F8093E1008091DA00EA -:1036400080FF24C08091D80080FF20C08091DA00E4 -:103650008E7F8093DA008091D90080FF9BC080E14B -:1036600089BD82E189BD09B400FEFDCF81E0809370 -:103670006C0480915E04811109C00E94D5060E94ED -:10368000A0078091E20084608093E2008091E100D5 -:1036900080FF17C08091E20080FF13C08091E2009C -:1036A0008E7F8093E2008091E20080618093E2004F -:1036B0008091D80080628093D80019BC85E0809307 -:1036C0006C048091E10084FF29C08091E20084FFB6 -:1036D00025C080E189BD82E189BD89B5982F9170AF -:1036E00080FFFBCF8091D8008F7D8093D8008091A0 -:1036F000E1008F7E8093E1008091E2008F7E8093D5 -:10370000E2008091E20081608093E20080916D048C -:10371000882309F445C084E080936C048091E10023 -:1037200083FF27C08091E20083FF23C08091E100E6 -:10373000877F8093E10082E080936C0410926D0497 -:103740008091E1008E7F8093E1008091E2008E7F86 -:103750008093E2008091E20080618093E20042E089 -:1037600060E080E00E946E078091F00088608093A6 -:10377000F000FF91EF91BF91AF919F918F917F9159 -:103780006F915F914F913F912F910F900FBE0F90CE -:103790001F90189519BC10926C0410925E0476CF9D -:1037A0008091E30087FD93E090936C04B7CF789409 -:1037B0001F921FB61F9211248F939F93AF93BF93B5 -:1037C0008091570490915804A0915904B0915A04E3 -:1037D0000196A11DB11D8093570490935804A093A6 -:1037E0005904B0935A04BF91AF919F918F911F904C -:1037F0001FBE1F9018959C014FB7F89480915704F5 -:1038000090915804A0915904B0915A044FBF821B63 -:10381000930B08952FB7F894809157049091580412 -:10382000A0915904B0915A042FBF08955F926F92EE -:103830007F928F929F92AF92BF92CF92DF92EF9240 -:10384000FF920F931F93CF93DF9300D000D00F927E -:10385000CDB7DEB77C01FC0183819481892B31F0E7 -:103860008081918189238F3F09F0C8C60F900F9006 -:103870000F900F900F90DF91CF911F910F91FF90BC -:10388000EF90DF90CF90BF90AF909F908F907F9000 -:103890006F905F9008950E94C514182F682F89813A -:1038A0009A810E94CB0B69817A81812F0E94B81482 -:1038B0008C01F7018281882361F0F801E65EFC4506 -:1038C000ED30F10530F4E95CF84C0C9485350E943C -:1038D0002718D0903D04D0FE1CC08D2D8695837096 -:1038E000F7019281992309F460C1823090F4B70105 -:1038F000C8010E94B108882361F0D694D694D6946A -:1039000080913E0483708295880F807E8D290E946D -:10391000B313F7018281882309F465C6C801825177 -:103920009F45409708F021C68FEF93E00E94B13584 -:10393000025193EEA92E92E0B92E811197CF011179 -:1039400038C11C821B82662463948AE0582E85014C -:103950000F5F1F4FC5010E94B13589831A828823EA -:1039600009F484CF9FEF980F933008F031C18A8318 -:10397000698232E0A30EB11CC8010E94B1358B836D -:10398000882309F473CF8E010F5F1F4FF801208148 -:103990002223E9F2213009F055C1918182819130D1 -:1039A00009F018C10E5F1F4F6AE070E0893311F40F -:1039B00060E570E00E94D20E13C10E94181889CFF2 -:1039C00080913D0480FF0DC00E94181860913D0455 -:1039D00070913E0480913F04909140040E94DB1757 -:1039E00078CF0E942718F2CF0E94061872CF9091CC -:1039F0003D04892F86958F5F8370880F997F892B6F -:103A000080933D04982F9670963001F7897F8093BC -:103A10003D04DCCF90913E04892F8B7F92FF846020 -:103A200080933E04D3CF80913D04982F9695969530 -:103A3000969580913E0483708295880F807E892BB5 -:103A40008C3798F48F5F282F220F220F220F90912E -:103A50003D049770922B90933D04829586958370D8 -:103A600090913E049C7F892BDBCF81E0ECCF80914D -:103A70003D04982F96959695969580913E04837077 -:103A80008295880F807E892B11F08150DCCF8BE7E7 -:103A9000DACF30913E04932F969596959695209186 -:103AA0003F04822F83708295880F807E892B90E05F -:103AB0000196482F440F440F440F3770342B309336 -:103AC0003E0435E0969587953A95E1F783702C7F13 -:103AD000822B80933F047ACF30913E04932F9695AA -:103AE0009695969520913F04822F83708295880F3A -:103AF000807E892B8150990BDCCF80913F0482FF1F -:103B000012C08B7F80933F0460913D0470913E040E -:103B100080913F04909140040E94DB1760E081E0B7 -:103B20000E94A713D6CE846080933F0460913D0429 -:103B300070913E0480913F04909140040E94DB17F5 -:103B400060E08CE00E94A71364E182E00E94A7136A -:103B500065E081E00E94A71361E08CE0E1CF8091F5 -:103B60003F04982F9695969596958091400482955E -:103B7000880F807E892B883720F4865F0E94E117AA -:103B8000A8CE88E7FBCF80913F04982F9695969515 -:103B90009695809140048295880F807E892B843190 -:103BA00010F08A50EBCF84E1E9CF882309F4B1CE3D -:103BB0009ECEA114F4E0BF0609F458CEC5010E94C0 -:103BC000B135811101C001502FEFA21AB20AB7CE50 -:103BD0005801D9CE923039F40E5F1F4F0E94570C16 -:103BE0000F5F1F4FD3CE933029F40E5F1F4F0E94FB -:103BF0001E0CF6CF943019F00F5F1F4FF1CF0E5F00 -:103C00001F4F30E020E0B8016F5F7F4FF801418126 -:103C10008053990B8A30910550F02150310900F3FF -:103C20008FE99FE00197F1F700C00000F6CF529EA8 -:103C3000F001539EF00D11249C012E0F3F1F842F85 -:103C40008B01E1CFE22FF0E0E75FFD4F7490822F10 -:103C500086958695869590E0FC01E750FE4FE490AE -:103C60002770F12C022E02C0F594E7940A94E2F733 -:103C7000E1E0EE22FF24FC01E751FE4FC490D12C7D -:103C8000022E02C0D594C7940A94E2F7F1E0CF2245 -:103C9000DD24FC01E752FE4F8490912C02C09594E4 -:103CA00087942A95E2F721E082229924E114F10415 -:103CB00019F081EE0E94570CC114D10419F086EE60 -:103CC0000E94570C39E36AE070E0731202C060E5AD -:103CD00070E0872D0E94D20ECD2819F086EE0E944A -:103CE0001E0CEF2819F081EE0E941E0C892809F4A1 -:103CF00077CF6AE070E08CE25DCE81E00E9496179B -:103D000003C081E00E948A170F900F900F900F90D0 -:103D10000F90DF91CF911F910F91FF90EF90DF9067 -:103D2000CF90BF90AF909F908F907F906F905F905B -:103D30000C947F1782E0E2CF013E110509F404C123 -:103D400008F04DC0003E110509F469C1F7019281E8 -:103D5000911171C280915F0482720A3CFCE51F07D9 -:103D600009F449C208F09FC1053C3CE5130709F47A -:103D70002EC208F083C1033C5CE5150709F408C2B4 -:103D800008F020C2023C1C4509F4B2C1F7010081D1 -:103D90001181992309F469C2C8010E94C514D82E63 -:103DA000682FC8010E94CB0BB8018D2D0E94B8145A -:103DB0000E94180A182FB82EF70122814581342F4E -:103DC00032953F70892F82958F70C82ED12C8C3000 -:103DD00008F083C2F601EC5BF84C0C948535043E88 -:103DE000110509F41CC1053E110509F0AFCF809300 -:103DF0003C0210933B0200933A02882309F4A1C0CD -:103E000081E08093EE02A2CF0238FFE51F0709F49C -:103E100076C038F5063F110509F4FFC008F4FBC071 -:103E200000383FE5130709F44DC001384FE514078A -:103E300009F08CCF882309F45BC080919C0281112A -:103E400006C081E080939C0282EE0E94570C0E9483 -:103E50000A1C90939B0280939A0281EE0E94570C59 -:103E600043C004385FE5150709F471C008F45BC06E -:103E70000538EFE51E0709F4B0C00638FFE51F0757 -:103E800009F064CF882309F4C2C060915901709190 -:103E90005A0190E080E00E94FE3520E030E040E0F2 -:103EA0005CE30E945F3620E030E040E85FE30E9480 -:103EB000F9358111A9C080EE90E090935A0180936A -:103EC000590195C08823B9F080919C02811106C0E8 -:103ED00081E080939C0282EE0E94570C0E940A1C93 -:103EE00090939B0280939A028BE20E94570C2ECFF4 -:103EF00081EE0E941E0C8BE20E941E0C27CF8823AD -:103F000009F424CF81EE0E94570C83EE0E94570CD7 -:103F10008FE40E94570C8FE40E941E0C83EE0E94D7 -:103F20001E0C81EEE9CF882309F410CF81EE0E94A8 -:103F3000570C83EE0E94570C80E50E94570C80E5D9 -:103F4000EBCF1092EE0202CF8093390252CF88233A -:103F500079F180913902882349F080913A020E94D8 -:103F60001E0C80EE0E94570C8AE20CC080913C022D -:103F70008823D1F380913A020E941E0C80EE0E94A9 -:103F8000570C8CE40F900F900F900F900F90DF91D3 -:103F9000CF911F910F91FF90EF90DF90CF90BF9046 -:103FA000AF909F908F907F906F905F900C94570C84 -:103FB0008AE20E941E0C8CE40E941E0C80EE0E947D -:103FC0001E0C80913902811105C080913C0288232A -:103FD00009F44CCC80913A02D5CF8823C1F080916E -:103FE0003203882339F010923203109200010E94AC -:103FF000410DACCE809100018111F7CF81E080931B -:10400000320380930001F3CF80E890E056CF61E067 -:104010000E94C2139BCE62E0FBCF64E0F9CF8823FD -:1040200021F081E08093ED0291CE1092ED028ECED0 -:10403000882331F081E08093F0021092670186CEF0 -:104040001092F00283CE882349F0809176040E947A -:10405000CB0C813019F482E30E94B313F701828103 -:10406000882309F4B0C2809176040E94CB0C813081 -:1040700009F0A9C284E30E94B313A5C2073C2CE552 -:10408000120709F4AEC008F4A7C0083C4CE51407B9 -:1040900009F4ACC0093C1C4509F078CE45E056E176 -:1040A00061E176E179C0043DECE51E07A8F40E3C21 -:1040B000FCE51F0708F0DACB0C3C2CE5120709F4ED -:1040C0009FC047E456E168E576E10D3C1C4508F4E5 -:1040D00063C061E081E046C0053D4CE5140709F48A -:1040E000C5CB08F492C00D351D4509F4BFCB4ECEAB -:1040F0008091770480FF31C08E7F80937704609138 -:104100007704709178048091790490917A040E94E8 -:10411000401580915B03816080935B039FEFE0E734 -:10412000F2E09150E040F040E1F700C000000F9055 -:104130000F900F900F900F90DF91CF911F910F91E3 -:10414000FF90EF90DF90CF90BF90AF909F908F90B7 -:104150007F906F905F900C94E70E8160809377045E -:1041600061E086950F900F900F900F900F90DF9168 -:10417000CF911F910F91FF90EF90DF90CF90BF9064 -:10418000AF909F908F907F906F905F900C94691686 -:1041900041EA57E16AEA77E10F900F900F900F9094 -:1041A0000F90DF91CF911F910F91FF90EF90DF90D3 -:1041B000CF90BF90AF909F908F907F906F905F90C7 -:1041C0000C9409094AEA57E161EA77E1E5CF45E352 -:1041D00056E16EE376E1E0CF4EE356E165E376E14A -:1041E000DBCF4DE156E169E276E1D6CF49E256E117 -:1041F0006DE176E1D1CF41E156E165E076E1CCCFEA -:1042000048E556E167E476E1C7CF0F900F900F9035 -:104210000F900F90DF91CF911F910F91FF90EF9032 -:10422000DF90CF90BF90AF909F908F907F906F90D6 -:104230005F900C94B4170E3D1C4509F0A7CD0F906C -:104240000F900F900F900F90DF91CF911F910F91D2 -:10425000FF90EF90DF90CF90BF90AF909F908F90A6 -:104260007F906F905F900C943618C8010E94A30B4A -:10427000D82E9ACD092F0F70907F11F00295007FF4 -:10428000812F2223C9F0002369F090E2910F98302A -:1042900010F011110BC080915F04082B00935F0494 -:1042A0000E94820B812F0E94570C17C080919102AF -:1042B000082B00939102F4CF0E941E0C002369F09A -:1042C0000095105E183010F0B11027C080915F0487 -:1042D000082300935F040E94820B98E0C91AD1085A -:1042E000E4E0CE16D10408F0C1CA0E94C20E0F90BD -:1042F0000F900F900F900F90DF91CF911F910F9122 -:10430000FF90EF90DF90CF90BF90AF909F908F90F5 -:104310007F906F905F900C94B81680919102082363 -:1043200000939102D8CF892F8F70907F903211F037 -:104330008295807FF1E0BF120CC0222329F0333038 -:1043400060F60E94140CC9CF323038F60E94090C76 -:10435000C4CF222341F03323A1F340FFA3CF4F70FA -:10436000F7014583EECF332389F3193309F0F5C004 -:10437000FFEF27EE33E0F15020403040E1F700C07E -:104380000000812F0E941E0CA8CF892F869586954C -:10439000837061F0813009F0A0CF812F93702111DB -:1043A00002C090E080E00E946E0897CF812F93704A -:1043B000211102C090E080E00E9484088ECF892FF6 -:1043C0008370A1F5211189CF812F82958695877001 -:1043D000880F880F412F4F70082E01C0440F0A9498 -:1043E000EAF7212F207114FF07C02FE030E001C051 -:1043F000220F8A95EAF720959695969593709230BC -:1044000081F0822F842B933030F48091920291308E -:1044100029F0242B82230E94050C5FCF842B822B52 -:10442000FACF242B809192028227F5CF8695222302 -:1044300011F0892F8170882309F44FCF812F829545 -:1044400086958770880F880F412F4F70082E01C006 -:10445000440F0A94EAF7212F207114FF07C02FE0C0 -:1044600030E001C0220F8A95EAF72095969596953F -:104470009370923081F0822F842B933030F48091AE -:104480007604913029F0242B82230E94791725CFBE -:10449000842B822BFACF242B809176048227F5CFB0 -:1044A000092F0F70222329F0802F0E949617812F49 -:1044B00048CF812F0E94090C802F0E948A170DCFB0 -:1044C000812FE1EF1E1789F1E11750F0F0EF1F1770 -:1044D000B9F02223B1F13111E5CE892F8F7129C0B6 -:1044E00042EF141749F153EF1513F3CF80E0222365 -:1044F00061F29F7181E001C0880F9A95EAF7C5CFFC -:10450000222379F0323008F0E8CE292F2F7181E094 -:1045100090E001C0880F2A95EAF7909176048927E8 -:10452000B4CF333008F0D9CEF0CF892F8F7122234A -:1045300021F20E949617D1CE892F8F712223C9F3C1 -:10454000BCCF332379F0893341F48FEF97EEE3E06A -:1045500081509040E040E1F712CF8FE39CE9019752 -:10456000F1F70DCF892F8F71A8CF0031FFE51F071D -:1045700009F4C3CB01312FE5120709F4DBCB0E940C -:1045800062086093F5027093F6028093F7029093AD -:10459000F802F7018281043F110509F438CD08F0D3 -:1045A00033CC0C32110509F443CD08F0C5CB0A30E9 -:1045B000110509F448CD0531110509F44FCD093035 -:1045C000110509F0C3CBF7018281882309F4BECB22 -:1045D000809176040E94CB0C813009F0B7CB81E347 -:1045E0000E94B313B3CB00313FE5130709F489CB25 -:1045F00001314FE5140769F682E084CB85E0DE01E6 -:10460000119601900D928A95E1F7F7012281898137 -:104610009A81211140C90E94A30B182F44C91F93EE -:10462000CF93DF9380915D02807FA9F480915A023D -:10463000882389F080918F02D0915E0260915802A8 -:1046400070915902A0915B02B0915C02C62FC72302 -:1046500016E0D81304C0DF91CF911F91089590E028 -:10466000109711F0CF3F19F401968770F2CF189F81 -:104670009001199F300D1124F901E15AFD4F41813C -:104680004713F2CF40814613EFCF42814111ECCF67 -:10469000438154814A1B5B0B403A510528F78091B6 -:1046A0005D028F70806180935D02F901EC59FD4FCE -:1046B00080818F708061808388E592E00E94161C63 -:1046C000DF91CF911F910C94990BAF92BF92CF9233 -:1046D000DF92EF92FF920F931F93CF93DF93CDB7AB -:1046E000DEB761970FB6F894DEBF0FBECDBF8C0169 -:1046F00085E0F801DE011D9601900D928A95E1F7A3 -:10470000F801E28088E5A82E82E0B82E60915B0275 -:1047100070915C026115710509F432C190915802E3 -:1047200040915902892F84238F3F09F429C12081A8 -:104730003181C380D480F0905A02F601E61BF70B5A -:10474000FF2009F4E8C080915D02582F507FE03AC5 -:10475000F10508F0ABC0511177C0FE2C431321C006 -:1047600092131FC0E1101DC08F70806180935D02A5 -:10477000C5010E94161C80915D02F80185838F2D72 -:1047800061960FB6F894DEBF0FBECDBFDF91CF911B -:104790001F910F91FF90EF90DF90CF90BF90AF905F -:1047A0000895CD2829F0822F83238F3F09F003C17C -:1047B00080E0F82FF170DF2E80FF3CC080918F02E7 -:1047C00040915E0256E0841315C02D873E878D858B -:1047D0009E850E94F414292F22952F702230F0F02C -:1047E000243018F59F70F1F0F8019581907FD1F495 -:1047F000D12C1EC090E0589FF001599FF00D11245C -:10480000E15AFD4F6181361306C06081261303C053 -:104810006281E6120FC001968770D5CF9F7011F0AC -:10482000882331F3805E883018F3C8010E94161C7B -:10483000FD2CA5CFEE2009F4A2CF80915D0281600E -:1048400080935D02F12C9BCF431306C0921304C0EA -:10485000F801EE2009F479C0C8010E9400158823F0 -:1048600009F1EE20F9F080915D02803270F0209124 -:1048700058023091590238872F831986DB86CA8601 -:104880008C87CE0107960E94161C86E0F801A8E5E9 -:10489000B2E001900D928A95E1F70E940F23FF2468 -:1048A000F3946DCFC8010E94161CF9CF51110AC0B4 -:1048B00088E592E00E94161C86E0F50111928A9527 -:1048C000E9F7C0CF43130FC092130DC0E1100BC026 -:1048D000F8018583C8010E94161C86E0F50111923B -:1048E0008A95E9F74CCFC8010E9400158823D1F2C0 -:1048F000EE20C1F280915D02803238F220915802A0 -:10490000309159023A8329831B82DD82CC828E83C7 -:10491000CE010196B8CFE03AF105F8F6FE2CEE2074 -:1049200009F243131FC092131DC080915D0280FDE8 -:1049300010C0982F907F69F0F8018583903F31F087 -:10494000982F907F905F8F70892B8583C8010E947C -:10495000161C86E0F801A8E5B2E001900D928A9558 -:10496000E1F70DCFC8010E94001581118ECF809113 -:104970005D02816080935D02C8010E94161CFFCE1B -:10498000EE2009F48FCFC8010E940015F82E88236D -:1049900009F488CF86E0F801A8E5B2E001900D9215 -:1049A0008A95E1F780915802909159020E94F4147F -:1049B0000E940F23E4CE81E08E25FBCE1F93CF9380 -:1049C000DF93CDB7DEB767970FB6F894DEBF0FBEA3 -:1049D000CDBF4B8B5C8B6D8B7E8B8F8B611110925F -:1049E00091021A8A198A85E0FE017396DE011D96EE -:1049F00001900D928A95E1F786E0FE013D96DE0179 -:104A0000179601900D928A95E1F7CE0107960E94C4 -:104A10006523882389F016E080918F0290915E02D1 -:104A200089134BC067960FB6F894DEBF0FBECDBF9B -:104A3000DF91CF911F91089586E0FE013796DE0148 -:104A4000119601900D928A95E1F78A859B85892BB5 -:104A500011F38F81988589238F3FE9F220915E02BF -:104A600030E0C90101968770992740918F0248175D -:104A7000190681F410925F040E94FA0F10925E02F0 -:104A800010928F0286E0E8E5F2E0DF011D928A9540 -:104A9000E9F7C1CF96E0929FD001939FB00D11240A -:104AA000A15ABD4FFE01319601900D929A95E1F702 -:104AB00080935E020E94990BAECF819FC0011124AA -:104AC000815A9D4F0E946523882309F4ABCF8091C2 -:104AD0008F0290E001968770992780938F029CCF78 -:104AE0009F92AF92BF92CF92DF92EF92FF920F937D -:104AF0001F93CF93DF93CDB7DEB764970FB6F894CB -:104B0000DEBF0FBECDBF8E010F5F1F4F8AE0D80101 -:104B10001D928A95E9F79EE4C92E91E0D92EF12CD9 -:104B2000E12CAA24A394B12CF60181916F018F3F4F -:104B300009F44AC0F894E82FE295EF70F0E021A163 -:104B40008F70A50102C0440F551F8A95E2F7CA0174 -:104B5000922F982B91A392A18095892382A30E94E2 -:104B6000BC0900C0E7E4F1E030E020E0912C419185 -:104B70004F3F09F47DC0A42FA295AF70B0E090968E -:104B80008C9190E04F7002C0959587954A95E2F719 -:104B900080FD6EC08A2D022E01C0880F0A94EAF7AC -:104BA000982A2F5F3F4F2730310509F7F6013197DB -:104BB00080818F3F11F00E94BE0950EA5A95F1F7AB -:104BC000F801EE0DFF1D90828FEFE81AF80A95E0CC -:104BD000E916F10409F0A8CF4AE050E0B80188EDE9 -:104BE00092E00E949B357C01892B41F08AE0F8011C -:104BF000A8EDB2E001900D928A95E1F71091E302E1 -:104C0000E114F104B9F181E0809395020E940A1C3D -:104C100090939402809393028091930290919402D6 -:104C20000E94FB1B069770F0A8EDB2E0E12FF0E0C8 -:104C3000E15BFC4F8D91819322E0AD3DB207D1F74E -:104C40001092950281E090E0EF28C1F064960FB6D3 -:104C5000F894DEBF0FBECDBFDF91CF911F910F91B2 -:104C6000FF90EF90DF90CF90BF90AF909F9008950E -:104C700080E096CF809195028111CECF0E949F0E49 -:104C8000B82EE091E302882309F4C7C08E01005FCB -:104C90001F4F85E0D8011D928A95E9F7F0E09F014A -:104CA000215B3C4F79018091D102AE014B5E5F4F99 -:104CB0006A018A3008F086C044E75AE1B801C701AA -:104CC0000E945B0E882309F494C041EE57E2B801BC -:104CD000C7010E945B0E882309F48BC04BE958E1A1 -:104CE000B801C7010E945B0E882309F482C047E81F -:104CF00059E1B801C7010E945B0E882309F479C00D -:104D000045E659E1B801C7010E945B0E882309F40A -:104D100070C01092D102E091E202F0E0AF01415B7D -:104D20005C4FD80110E0FA019191AF018D91981775 -:104D300031F09F0121503109F90180831B2DCA16E2 -:104D4000DB0689F780919C02882371F080919A029A -:104D500090919B020E94FB1B893E934028F082EEBB -:104D60000E941E0C10929C0288E9C82E82E0D82E68 -:104D7000F12CE12CD6018D916D018823D1F086951F -:104D8000F70109F447C0EC50FE4F808191819C8768 -:104D90008B871D860E940A1C8160782F9F878E87D3 -:104DA000F601319710824B855C856D858F850E9459 -:104DB000DE24B2E0EB0EF11CE4E0EE16F104D1F6D5 -:104DC000812F44CF80919602909197020E94FB1B05 -:104DD000843F914008F070CFA091E202B0E0A15B67 -:104DE000BC4FF8011D921192CE16DF06D9F71B2D8C -:104DF000A9CF8091D1028F3F31F08F5F8093D10294 -:104E00008A3008F488CF0E940A1C909397028093FE -:104E10009602E2CFE051FE4FB8CFF0E0E15BFC4FED -:104E2000F89485E0A0EBB2E001900D928A95E1F74D -:104E300065E070E080EB92E00E94F3088093AF029F -:104E40000E94BC09F894E091EB02F0E0E851FD4FBC -:104E500080818B878093B60261E070E0CE010B9673 -:104E60000E94F3088093B5020E94BC09F894C09098 -:104E7000B702D090B802E090B902F090BA028091E7 -:104E80009D0290919E02A0919F02B091A002C8162F -:104E9000D906EA06FB06D1F0C0929D02D0929E028E -:104EA000E0929F02F092A0020E949F0E81110EC01C -:104EB0000E946208C61AD70AE80AF90AC092D2020A -:104EC000D092D302E092D402F092D5020E94BC09A3 -:104ED000F8948091C202882321F184FF04C090914C -:104EE000C30290935C0380FF0DC08091BB0280FFE2 -:104EF00025C09091770491609093770460E0869547 -:104F00000E9469168091C20281FF09C020E0409191 -:104F1000BE026091BD028091BC020E9452151092A7 -:104F2000C2020E94BC09F8948091C402882349F00F -:104F30000E94B30D0E94BC0980E088CE0E94E50F5C -:104F4000E1CF0E94980DF6CFEF92FF920F931F933F -:104F5000CF93DF9300D000D00F92CDB7DEB7162FDE -:104F6000E82EF12CC701880F991F662339F18C5068 -:104F70009E4FFC01808191819A83898301E00B839C -:104F80000E940A1C8160782F9D838C83F701E8566C -:104F9000FD4F0127110F102B108349815A816B811E -:104FA0008D810F900F900F900F900F90DF91CF9108 -:104FB0001F910F91FF90EF900C94DE2480519E4F33 -:104FC000D8CFCF92DF92EF92FF920F931F93CF93A0 -:104FD000DF930F92CDB7DEB7EE24E394F12C06EB0E -:104FE00012E09E012F5F3F4F4BEA52E063E082E008 -:104FF0000E94C519082F882321F1C090E5028C2D4D -:1050000090E09C0128513D4F79011981F90180817F -:10501000181BD12E80E00AC0DA94F70180818F5FDF -:10502000808360E08C2D0E94A427802F1D14A4F3A0 -:10503000912F17FD90E0191B11110EC081110E94D4 -:10504000800B802F0F90DF91CF911F910F91FF90D8 -:10505000EF90DF90CF9008951F5FF701808181501E -:10506000808361E08C2D0E94A427802FE5CF1F92C2 -:105070001FB61F9211248F939F93AF93BF9380917C -:105080005604811113C08091570490915804A09147 -:105090005904B0915A044196A11DB11D8093570443 -:1050A00090935804A0935904B0935A04BF91AF91C0 -:1050B0009F918F911F901FBE1F901895CDB7DEB79F -:1050C000E9970FB6F894DEBF0FBECDBF84B7877FD8 -:1050D00084BF0FB6F894A895809160008861809392 -:1050E0006000109260000FBE80E890E00FB6F89468 -:1050F00080936100909361000FBE85B7806885BF83 -:1051000085B7806885BF8AEB99E090932F028093E2 -:105110002E020E94D5060E94A0078091E2008460C2 -:105120008093E200789480916C048823A1F0109120 -:10513000E9001F709091EC00892F817090FD80E84C -:10514000182B1092E9008091E80083FD0E94031063 -:105150001F701093E90082E084BD93E095BD9AEF43 -:1051600097BD80936E001092D2021092D3021092DB -:10517000D4021092D5020E942715811102C00E940C -:1051800083140E949F0E80935801809158018823B8 -:1051900009F4C6C010926F0185E2809370010E94ED -:1051A0009F0E81110E9490338091580181112FC070 -:1051B000FE01359686E0DF011D928A95E9F786E6C5 -:1051C000898387E98A8386EC8B8384E38C8385E3F8 -:1051D0008D833497AEE4B1E0CE010B9621912D93EF -:1051E0008E179F07D9F787E0E5E7F1E0DE0191969A -:1051F00001900D928A95E1F7FE01B196A7E4B1E026 -:10520000CE01889621912D938E179F07D9F7809113 -:10521000580195E0811190E09093E30285E0891BAD -:105220008093E2020EE411E0A3E5EA2EA1E0FA2E5B -:10523000F80181918F018F3F11F00E94BE09E016A5 -:10524000F106B1F707E411E0FEE4EF2EF1E0FF2EE6 -:10525000D8018D918D018F3F11F00E94BE09E0169B -:10526000F106B1F7E8EDF2E082EE92E0AFE4B3E0F0 -:1052700011921D928E179F07D9F70E94B11A8111C2 -:1052800002C00E94361882E090E00E94B1358093FF -:10529000440384E090E00E94B135182F82E290E050 -:1052A0000E94B135982F812F9093D7028093D60218 -:1052B0000E947025EFE7FBEB3197F1F700C000008B -:1052C0000E94702580914F0380FF2EC06FEF7FEF0B -:1052D00090E080E00E94E33581E08093E00080E28E -:1052E0008093D8001092C9008FE19EE40197F1F7F6 -:1052F00000C0000087E090EBDC0180938006909373 -:105300008106A0938206B093830688E19CE00FB6E5 -:10531000F894A895809360000FBE90936000FFCF33 -:1053200085E280936F0139CF83E090E00E94B13530 -:105330000E94050C809176040E94D0160E94B11A3A -:10534000811102C00E94361888E190E00E94B935B0 -:1053500060933D0470933E0480933F049093400417 -:10536000672B682B692B11F40E9406180E9491315B -:1053700067E081E00E94A71365E586E10E94A7131C -:1053800063E687E10E94A71360EA8AE10E94A713FF -:1053900069E98BE10E94A71365EF8CE10E94A713D6 -:1053A00060EA8DE10E94A71360E38EE10E94A713DB -:1053B00066E083E00E94A71361E08CE00E94A713DF -:1053C00060E081E00E94A71360E08CE00E94A713D8 -:1053D0006FE084E00E94A71361E08CE00E94A713B5 -:1053E0000E949F0E811102C00E94933383E080933C -:1053F0001A0380E2809343040E9491316DE070E0D3 -:105400008CE992E00E94680D892BE9F580911A03DE -:1054100063E070E081FD9EC289E992E00E94680D20 -:10542000892B89F56DE070E089E892E00E94680DB3 -:10543000892B49F50E9462086058774C8E4F9F4F28 -:1054400060934A0470934B0480934C0490934D04F2 -:10545000EEE7F4E080E092E0DF019C011D92215034 -:105460003040E1F7F0937F06E0937E068FEF9FEFE9 -:1054700090937D0480937C0481E080934F0480931B -:105480004E0410921B038091E402811136C00E94E9 -:10549000B11A811104C00E9436180E94C31788E017 -:1054A00090E00E94B93560937704709378048093FC -:1054B000790490937A0480915B03836080935B030B -:1054C0006E7F71F40E94C31788E090E00E94B935A6 -:1054D00060937704709378048093790490937A04AE -:1054E0000E940E098091770480FF04C060E08695D9 -:1054F0000E94691681E08093E40280915801811135 -:1055000006C084EF8093660185EF8093650120914A -:105510006601A22FA295AF70B0E091963C91919751 -:105520002F7081E090E0BC01022E01C0660F0A944A -:10553000EAF7462F4095432391964C939197929684 -:105540003C919297362B92963C93929740916501AD -:10555000E42FE295EF70F0E031A14F70042E01C00E -:10556000880F0A94EAF7982F9095932391A392A11C -:10557000892B82A390968C9190E002C09595879597 -:105580002A95E2F7817020A130E002C03595279579 -:105590004A95E2F792E020FF90E0892B8093EC029D -:1055A0008091580111E081278093EB02312F381B45 -:1055B0003093E5020E94913140E060E080E00E947B -:1055C000210D60E08AE00E94691689EA92E09093DA -:1055D0005E0380935D0381E00E94791780EE90E086 -:1055E00090935A0180935901109332030E94410D08 -:1055F0008BE591E090935304809352043E018DE338 -:10560000680E711C80916C04FF24F39400E112E198 -:10561000853009F4F2C10E947025E82E81110E94A4 -:105620006208E5E4F3E0AFE4B3E010E000E0B02EA0 -:10563000DD9081918D1509F404C28D25C12CFF24C4 -:10564000F394982F9F2109F4F7C10E949F0E88239D -:1056500099F0CEA6BFA6DF2081E009F480E088ABF8 -:105660000E940A1C8160782F9AAB89AB4EA55FA57A -:1056700068A98AA90E94DE24F801EB5BFC4F8081B7 -:10568000F826F0828091EC02E82FEE0FEE0F909159 -:105690006601A92FA295AF70B0E090962C9130E0F2 -:1056A0009F7002C0359527959A95E2F721703327B0 -:1056B00090916501A92FA295AF70B0E090964C91A2 -:1056C00050E09F7002C0559547959A95E2F7CA0140 -:1056D0008170992740FF02C082E090E0822B8E2BE0 -:1056E0008093EC021091EB028F70E82FF0E0E6500F -:1056F000FE4F80819091EA02890F8093EA02F12C9B -:1057000084306CF0E12FF0E0E851FD4F80818F5F35 -:10571000808360E0812F0E94A427FF24F39480916E -:10572000EA028D3F6CF4E12FF0E0E851FD4F8081FB -:105730008150808361E0812F0E94A427FF24F3948D -:105740008091EA02082E000C990B64E070E00E9440 -:1057500071358093EA02F1100E94800B80914F0412 -:10576000882351F180911C0390911D030E94FB1B23 -:10577000C29708F07DC120917C0430917D042115F1 -:10578000310509F0A0C280914E048823A9F00E943F -:10579000620800914A0410914B0420914C0430910E -:1057A0004D04601B710B820B930B6F3F7F4F8F4F2C -:1057B0009F4710F40E94980DE11001C0F1100E9463 -:1057C000B30D809142038A3008F0BAC38091400340 -:1057D000909141030E94FB1B089708F4B1C304E6B3 -:1057E00010E025E030E04BE353E064E084E10E9408 -:1057F000DC32892B09F075C31092420320913203E9 -:10580000222359F080913B0390913C0398278927EC -:10581000982790933C0380933B0386E0E4E2F3E017 -:10582000DE01919601900D928A95E1F786E0FE01E6 -:10583000B196DE01119601900D928A95E1F786E00E -:10584000FE013196A5E3B3E001900D928A95E1F750 -:1058500090913F038091360397FD3AC38E7F8093EA -:1058600036038091330390913403009709F02AC3E3 -:1058700060913B0380913C0300913D0310913E03F6 -:10588000222309F4F2C241E00E94FB0C2091300374 -:1058900030913103820F931F909331038093300333 -:1058A00041E0602F812F0E94FB0C20912E0330914C -:1058B0002F03820F931F90932F0380932E0360E397 -:1058C00073E08AE393E00E94DC0C6EE273E089E30C -:1058D00093E00E94DC0C109237031092380386E0AC -:1058E000E5E3F3E0DE01119601900D928A95E1F770 -:1058F00086E0FE013196A4E2B3E001900D928A9514 -:10590000E1F730912603209127039091280380919D -:10591000290370912003609121034091220350914B -:105920002303F0912503E0911F03FE13E0C233230C -:1059300011F07313DCC2222311F02613D8C288237E -:1059400011F08513D4C2992319F081E04913D0C214 -:1059500080E0CEC286E992E061CD80916C04843013 -:1059600009F43BC00E94980D40E060E080E00E9496 -:10597000210D80E00E94B8168091E702811109C0D4 -:10598000F092E7028091770481708093E6020E9492 -:10599000E50F10925604A8E1B0E0E0E40FB6F894E9 -:1059A000A895A09360000FBEE093600083B7817F4D -:1059B000846083BF83B7816083BF7894889583B701 -:1059C0008E7F83BF0FB6F894A895809160008861A0 -:1059D00080936000109260000FBE80916B0488235A -:1059E00061F00E947025EFE4F3E08191811178C4A9 -:1059F00029E533E02E173F07C1F780916C0485300D -:105A000009F4ABCF10925F040E94FA0F0E94C20EFD -:105A10000E94B8161092E7028091E602882349F0AE -:105A20008091770481608093770460E086950E947E -:105A300069160E94410DEFCDC394FF0C37E0C312ED -:105A400000CE0F5F1F4F0A30110509F0F0CD8FEF28 -:105A50008BAB8CAB1DAA0E940A1C8160782F9FAB78 -:105A60008EAB4BA95CA96DA98FA90E94DE240ACE3A -:105A70000E940A1C90931D0380931C0360E080E049 -:105A80000E949A080E94C20E8093F9020E949F0E03 -:105A9000882331F14091F5025091F6026091F702AE -:105AA0007091F8022FB7F8948091570490915804A0 -:105AB000A0915904B0915A042FBF841B950BA60BDB -:105AC000B70B81339547A105B10540F00E94980DB1 -:105AD00080914F04882309F456CE4DCE0E94B30D19 -:105AE0000E949F0E882309F4D5C061E080E00E94E7 -:105AF0009A0860E08CE791E00E948B1362E080E0FE -:105B00000E949A08809176040E94CB0C823009F49E -:105B10009BC008F090C0882309F496C0813009F436 -:105B200099C065E080E00E949A0860E08AE991E00F -:105B30000E948B1366E080E00E949A086091F9024F -:105B4000669561708FE991E00E948B1367E080E0B9 -:105B50000E949A086091F9026095617084EA91E070 -:105B60000E948B1368E080E00E949A086091F9021D -:105B700062FB662760F988EA91E00E948B137DA69C -:105B80006CA64091F1025091F2026091F302709183 -:105B9000F4022FB7F8948091570490915804A09183 -:105BA0005904B0915A042FBF841B950BA60BB70B59 -:105BB0008D329140A105B10508F48ACF0E94620898 -:105BC0006093F1027093F2028093F3029093F402D7 -:105BD0008091F002811104C080916701811142C05F -:105BE0006DE080E00E949A0860E08DEA91E00E94FA -:105BF0008B136AE080E00E949A0881E0809367013D -:105C00008091EF0290E00196817099278093EF02D6 -:105C100021E030E0281B390B40E6429FC001439F42 -:105C2000900D11242091EE02222351F1855C9B4FAF -:105C30000E9492064DCF833089F0843009F071CFF5 -:105C400060E08EE891E003C060E082E891E00E94AD -:105C50008B1367CF60E088E891E0F9CF60E084E9DA -:105C600091E0F5CF6AE080E00E949A0860E08DEA5A -:105C700091E00E948B136BE080E00E949A08C0CFF5 -:105C80002091ED02222319F085589C4FD1CF8554E5 -:105C90009D4FCECF64E080E00E949A0860E083EBE5 -:105CA00091E00E948B1365E080E00E949A0860E01A -:105CB00089EB91E00E948B1369E080E00E949A08D2 -:105CC0008BEF94E0B5CF80911B0361E070E0811110 -:105CD0005ACD082F10E02B01082E02C0440C551C91 -:105CE0000A94E2F7A90144215521452B09F448C043 -:105CF00090911A0390FD46C08295880F807680931C -:105D00006A019801369527953695279520936D0160 -:105D1000815E80936B0110926E0124E630E047E0D3 -:105D200050E068E671E088E70E948832892B09F02C -:105D30002ACDA80175E0440F551F7A95E1F78091AF -:105D40001A0380FD2DC042585B4F04E610E020E2AC -:105D500030E060E488E70E94AF32892B09F013CD70 -:105D60000E94B30DC2018095909540907C045090A4 -:105D70007D044822592250927D0440927C0403CD38 -:105D80008F5FA7CF880F880F880F80936A011092CA -:105D90006D01895F80936B0183E080936E01BDCFBD -:105DA000EAEFF2E080E2DF011D928A95E9F7EEE08A -:105DB000F2E0F9AFE8AF0AE012E099249394A8ADBD -:105DC000B9AD2D91B9AFA8AFF80121908F01240E84 -:105DD000352E311CC10182589B4F1C01E22FF0E08F -:105DE000E650FD4F30E020E067E0A62EA21AB92C65 -:105DF000022E01C0BB0C0A94EAF7610190E0D601C3 -:105E00008D916D018B216A2D691B6770862E062E80 -:105E1000000C770BB82F01C0BB0F8A94EAF78B2ECA -:105E20007195619571096770772701C086956A95AC -:105E3000EAF7882A8081882A80829F5F9830F9F665 -:105E40002F5F3F4F31962830310571F6E2E1F2E0E5 -:105E500028AD39ADE217F30709F0B1CF04E610E041 -:105E600020E230E04AEF52E074CF45E00E94FB0CA4 -:105E700020912C0330912D03281B390B30932D03D7 -:105E800020932C0345E0602F812F0E94FB0C209172 -:105E90002A0330912B03281B390B30932B032093BB -:105EA0002A036CE273E087E393E00E94DC0C6AE271 -:105EB00073E088E393E00E94DC0C10923A031092A6 -:105EC00039030DCD0197909334038093330307CDAD -:105ED00081608093360384E00E94B31384E190E0F4 -:105EE000F2CF809142038F5F80934203F8CC81E030 -:105EF00080FF0FC0E0915204F0915304309749F0B5 -:105F000082E0809324030480F581E02D84E293E015 -:105F100009951092260310922703109228031092DD -:105F2000290386E0E4E2F3E0AEE1B3E001900D92F4 -:105F30008A95E1F70E940A1C9093410380934003E5 -:105F40000E94C20E90914303891731F00E94C20E45 -:105F5000809343030E94B81680916C04843009F04A -:105F600051CB83E08093E9008091E80082FF4ACB27 -:105F70008091E80090E085FF0BC00E94F40630E2BB -:105F8000E32EF12C8E010F5F1F4F8823E1F091E08B -:105F90008091E8008B778093E800992309F432CB55 -:105FA000E981E150E33108F071C0F0E0E05BF84CCA -:105FB0000C9485358091F100D8018D938D01B1E06D -:105FC000EB1AF10821F38091E80085FDF3CF809171 -:105FD000E8008B778093E8000E94F406882399F309 -:105FE000D6CF1A8289E08B8311C08A81823009F46E -:105FF0008FC1833091F1813009F048C00E9462085E -:106000000E948B356B837C838D839E8380916C048F -:10601000843009F0F7CA1091E9001F709091EC00EC -:10602000892F817090FD80E8182B82E08093E90031 -:106030008091E80080FF0DC050E040E060E270E039 -:10604000CE0101960E9425078091E8008E7780930B -:10605000E8001F701093E900D5CADE011396EFE443 -:10606000F3E081918D9323E0E935F207D1F7CECFAC -:106070008A81823059F46B817C818D819E810E945E -:106080008B3586E290E00E94C535C0CF8FEF8983C3 -:10609000BDCF4C816B818A810E94921498278927F9 -:1060A00098279E838D83B2CF0D811E8110270127F3 -:1060B00010278A81EB803EE0E39E700111249CE86A -:1060C000899FE00CF11C11248C8190E0880F991FAE -:1060D000E80EF91E612FC70187960E94C535602F13 -:1060E000C7018896D0CF0E94161490CF8A8181383C -:1060F000C1F060F4803809F089CF20E04B816091D5 -:106100007904809178040E94521580CF8238E9F09A -:10611000833809F07BCF20E040917A046C818B8139 -:10612000F2CF60E08B810E9469168B81811103C0E0 -:106130000E94E50F6BCF8091770481608093770494 -:1061400060E086950E94691661CF8B8180937B0405 -:106150005DCF8A81813899F030F4803809F056CFCC -:1061600080917A0440CF823891F0833809F04ECF85 -:10617000809178048B83809179048C8347CF8091C0 -:10618000770480FF02C086952ECF80E02CCF8091CF -:106190007B0429CF60917704709178048091790411 -:1061A00090917A040E94401531CF80E18A832ECFEE -:1061B00081E08A838DE117CFCA80DB80DC24CD2487 -:1061C000DC248E010F5F1F4FEC80E00EF12EF11CDE -:1061D000C6018D519D4F0E151F0509F417CFADE176 -:1061E000CA16A1E0DA0650F40E94B135F8018483A2 -:1061F000BFEFCB1ADB0A0F5F1F4FEACFD80114960F -:106200001C92F6CF0A811B81102701271027FE015F -:1062100031966F01EC80E00EF12EF11CC8018D511A -:106220009D4FE016F10609F4F1CE0D31F1E01F07A4 -:1062300028F4D60114966C910E94C535BFEFCB1A95 -:10624000DB0A0F5F1F4FEACF0E940614DFCE85E006 -:10625000ADCFCA80DB80DC24CD24DC248E010F5F2F -:106260001F4FEC80E00EF12EF11CC6018796E01660 -:10627000F10609F4CBCEECEBCE16E2E0DE0658F4E4 -:106280000E94B135D80114968C93FFEFCF1ADF0A24 -:106290000F5F1F4FEACFF8011482F7CF0A811B81ED -:1062A0001027012710279E012F5F3F4F6901EC80C7 -:1062B000E00EF12EF11CC8018796E016F10609F4F4 -:1062C000A5CE0C3B32E0130728F4D60114966C914E -:1062D0000E94C535BFEFCB1ADB0A0F5F1F4FEBCF14 -:1062E00009BD19BD09B400FEFDCF8091D8008F7D96 -:1062F0008093D8008091E00082608093E0008091DC -:10630000E00081FDFCCF10925F040E94FA0F75CB74 -:1063100086E290E00E94B1351B821C821D828E8332 -:1063200075CE1092B9008CE08093B80008959F92CA -:10633000AF92BF92CF92DF92EF92FF920F931F9393 -:10634000CF93DF93B82EEB010E940A1C6C01EE2460 -:10635000E394F12CC431D10560F025E0E22EF12C5C -:10636000CF3FDC0731F0CE0164E170E00E9451358F -:106370007B0184EAA82E94E8992E1092BC00A0928A -:10638000BC000E940A1C8C018091BC0087FF0DC0DC -:106390008091B900887F883039F18091B900887F79 -:1063A000803111F10FEF1FEF09C00E940A1C801B02 -:1063B000910B8E159F0540F30EEF1FEFCF3FDC07CB -:1063C000E1F2C6010E94FB1B8C179D07B0F2C801C9 -:1063D000DF91CF911F910F91FF90EF90DF90CF90C1 -:1063E000BF90AF909F900895B092BB009092BC0078 -:1063F0000E940A1C8C018091BC0087FF0AC080911A -:10640000B900887F883111F0803461F610E000E037 -:10641000DECF0E940A1C801B910B8E159F0558F33E -:10642000CBCF0F931F93CF93DF93EB018093BB00F0 -:1064300084E88093BC000E940A1C8C018091BC00FF -:1064400087FF11C02091B900287F81E090E02832B9 -:1064500011F490E080E0919581959109DF91CF91C1 -:106460001F910F910895CF3FDC0741F30E940A1C52 -:10647000801B910B8C179D0708F38EEF9FEFEECFDB -:106480000F931F93CF93DF93EC0184EC8093BC00B8 -:106490000E940A1C8C018091BC0087FF08C080917B -:1064A000BB0090E0DF91CF911F910F910895CF3FF6 -:1064B000DC0789F30E940A1C801B910B8C179D0737 -:1064C00050F38EEF9FEFEECF0F931F93CF93DF9399 -:1064D000EC0184E88093BC000E940A1C8C0180912E -:1064E000BC0087FF08C08091BB0090E0DF91CF9196 -:1064F0001F910F910895CF3FDC0789F30E940A1C7A -:10650000801B910B8C179D0750F38EEF9FEFEECF02 -:10651000CF92DF92EF92FF920F931F93CF93DF936F -:106520006B018A017901B9010E949731E6010C0DD6 -:106530001D1DC017D10761F424E92093BC00DF9131 -:10654000CF911F910F91FF90EF90DF90CF90089522 -:1065500097FDF2CFB70189910E941132EACFCF9215 -:10656000DF92EF92FF920F931F93CF93DF93C62F8B -:106570006A017901B8010E94973197FD0CC0B801FA -:106580008C2F0E941132E601EC0CFD1CCE15DF05AC -:1065900011F097FF0CC024E92093BC00DF91CF914C -:1065A0001F910F91FF90EF90DF90CF900895B80169 -:1065B00089910E941132EACFCF92DF92EF92FF923F -:1065C0000F931F93CF93DF93F82EE62EEA01690114 -:1065D000B8010E94973197FD15C0B8018E2D0E9419 -:1065E000113297FD0FC0B8018F2D81600E94973145 -:1065F000F12CE12C21E0C21AD108EC14FD0400F5C5 -:1066000097FF11C024E92093BC001816190614F452 -:1066100090E080E0DF91CF911F910F91FF90EF907C -:10662000DF90CF900895C8010E94403297FD04C0CA -:10663000FE01EE0DFF1D80832FEFE21AF20ADDCF7F -:1066400097FDE0CFC8010E94643297FDDBCFCC0DEF -:10665000DD1D8883D7CF84E98093BC0008958EE147 -:106660004A9B02C08150E1F74A9BFECF08955A9899 -:1066700080E28A95F1F75A9A0895FC013BE03A9539 -:10668000F1F798E020E080E031E040E14A95F1F751 -:10669000880F4A9B02C08160232742E04A95F1F7A8 -:1066A000000040E14A95F1F7915079F790E19A9511 -:1066B000F1F799B132E03A95F1F7000040E14A95DF -:1066C000F1F792FB992790F992272081920F9083FE -:1066D0000895EF92FF920F931F93CF93DF930F9242 -:1066E000CDB7DEB719828C017C01E60EF11C0E15C8 -:1066F0001F0561F481E09981911180E00F90DF9195 -:10670000CF911F910F91FF90EF9008950E942F332A -:10671000CE0101960E943D33F80181938F01E7CFAE -:10672000529A5A9A089552985A9AEA9AE9E6F0E0EB -:1067300080818F7C808308956150770B91E001C048 -:10674000990F6A95EAF720E031E0911108C0222301 -:1067500091F05A9A80E28A95F1F75A980895492F54 -:10676000482339F05A9A232740E24A95F1F7969543 -:10677000ECCF5A98F9CF5A98EDCFFF920F931F9311 -:10678000CF93DF93EC018C01060F111DC017D107C9 -:1067900031F4DF91CF911F910F91FF900895F990FF -:1067A0000E94373368E08F2D0E949C33EFCF1F92F9 -:1067B0000F920FB60F921124EF92FF920F931F9337 -:1067C0002F933F934F935F936F937F938F939F93F9 -:1067D000AF93BF93EF93FF93CF93DF930F92CDB718 -:1067E000DEB719820E942F33CE0101960E943D33FD -:1067F000A82FA695A695A695282F229525709A2FA5 -:106800009570290F922F937026952695920F9827B1 -:1068100097708981982B09F075C0A83008F072C074 -:1068200080E18A95F1F75A9A529AB2E0BA95F1F757 -:1068300000C05A98EA2EF12CEAE0AE9FD001112454 -:10684000AF5FBE4F1896ED91FC9119973097B1F05C -:106850006091F8017091F90116962D913C9117976E -:10686000260F371F13968D919C911497680F791FEF -:1068700015964C91159712968C9109958AE08E9DEC -:10688000F0018F9DF00D1124EF5FFE4F65816623AF -:1068900051F02091F8013091F90186819781820FA2 -:1068A000931F0E94BD330E943733F0E1FA95F1F750 -:1068B0005A9852985A9A80E18A95F1F78AE08E9D0B -:1068C00080018F9D100D11240F5F1E4FD80112966D -:1068D0006C911297662371F12091F8013091F901C2 -:1068E00013968D919C91820F931F0E946933D8015A -:1068F000ED91FC91882311F088E001C082E0808353 -:106900000E942F330F90DF91CF91FF91EF91BF91B4 -:10691000AF919F918F917F916F915F914F913F9137 -:106920002F911F910F91FF90EF900F900FBE0F903E -:106930001F901895ED91FC91DFCF0F931F93CF938C -:10694000DF93EC0108970CF0A9C08AE08C9FF0015E -:106950008D9FF00D1124EF5FFE4F80819181892B77 -:1069600009F49CC0F894529A5A9885E08A95F1F7F8 -:1069700000008C2F869585709C2F9570890F982F1D -:10698000937086958695890F8E0193E0000F111FF5 -:106990009A95E1F7082B0E94373300C068E0802FFA -:1069A0000E949C33A0E1AA95F1F752985A9A4A9B0B -:1069B00027C087E090E04A9925C08AE08C9F80013B -:1069C0008D9F100D11240F5F1E4FF8016581662306 -:1069D000A1F12091F8013091F90186819781820F10 -:1069E000931F0E946933811128C0529A5A9AD80184 -:1069F000ED91FC9182E08083789482E090E016C073 -:106A000000C0D5CF0197B9F4529A5A9A8AE08C9F68 -:106A1000F0018D9FF00D1124EF5FFE4F0190F0818A -:106A2000E02D81E08083789481E090E0DF91CF9148 -:106A30001F910F91089500C0BECF0E942F33B0E286 -:106A4000BA95F1F75A98529AE0E1EA95F1F78AE09F -:106A50008C9FF0018D9FF00D1124EF5FFE4F62813E -:106A6000662351F02091F8013091F90183819481DE -:106A7000820F931F0E94BD330E9437338AE08C9FA0 -:106A8000F0018D9FF00D1124EF5FFE4F0190F0811A -:106A9000E02D1082789490E080E0C8CF84E090E010 -:106AA000C5CFAA1BBB1B51E107C0AA1FBB1FA6175E -:106AB000B70710F0A61BB70B881F991F5A95A9F7A7 -:106AC00080959095BC01CD010895991B79E004C093 -:106AD000991F961708F0961B881F7A95C9F780951D -:106AE000089597FB072E16F4009407D077FD09D080 -:106AF0000E94513507FC05D03EF4909581959F4F3B -:106B00000895709561957F4F0895EE0FFF1F0590D2 -:106B1000F491E02D0994692796276927782787271C -:106B200078270895FB01DC0102C005900D924150C9 -:106B30005040D8F70895FB01DC0104C08D9101900D -:106B4000801921F441505040C8F7881B990B0895D3 -:106B5000FB01DC0102C001900D9241505040D8F77A -:106B60000895F999FECF92BD81BDF89A992780B515 -:106B70000895A6E1B0E044E050E00C94EB35A8E1C4 -:106B8000B0E042E050E00C94EB35262FF999FECFAF -:106B900092BD81BDF89A019700B4021639F01FBA70 -:106BA00020BD0FB6F894FA9AF99A0FBE089503968D -:106BB000272F0E94C6350E94C535252F0E94C63555 -:106BC000242F0C94C6350196272F0E94C6350C94AD -:106BD000C535DC01CB01FC01F999FECF06C0F2BD41 -:106BE000E1BDF89A319600B40D9241505040B8F78B -:106BF00008950E943B3608F481E00895E89409C0A6 -:106C000097FB3EF490958095709561957F4F8F4FDF -:106C10009F4F9923A9F0F92F96E9BB279395F695F5 -:106C2000879577956795B795F111F8CFFAF4BB0F73 -:106C300011F460FF1BC06F5F7F4F8F4F9F4F16C0D7 -:106C4000882311F096E911C0772321F09EE8872F61 -:106C5000762F05C0662371F096E8862F70E060E01D -:106C60002AF09A95660F771F881FDAF7880F969596 -:106C7000879597F90895990F0008550FAA0BE0E83A -:106C8000FEEF16161706E807F907C0F012161306EE -:106C9000E407F50798F0621B730B840B950B39F42E -:106CA0000A2661F0232B242B252B21F408950A2694 -:106CB00009F4A140A6958FEF811D811D08950E94C2 -:106CC00072360C94E3360E94D53638F00E94DC36DA -:106CD00020F0952311F00C94CC360C94D23611246C -:106CE0000C9417370E94F43670F3959FC1F3950FFB -:106CF00050E0551F629FF001729FBB27F00DB11D40 -:106D0000639FAA27F00DB11DAA1F649F6627B00DCF -:106D1000A11D661F829F2227B00DA11D621F739FB8 -:106D2000B00DA11D621F839FA00D611D221F749FC6 -:106D30003327A00D611D231F849F600D211D822F0D -:106D4000762F6A2F11249F5750409AF0F1F0882334 -:106D50004AF0EE0FFF1FBB1F661F771F881F915061 -:106D60005040A9F79E3F510580F00C94CC360C940E -:106D700017375F3FE4F3983ED4F386957795679590 -:106D8000B795F795E7959F5FC1F7FE2B880F911D8B -:106D90009695879597F9089597F99F6780E870E031 -:106DA00060E008959FEF80EC089500240A94161681 -:106DB000170618060906089500240A9412161306E9 -:106DC000140605060895092E0394000C11F4882377 -:106DD00052F0BB0F40F4BF2B11F460FF04C06F5F93 -:106DE0007F4F8F4F9F4F089557FD9058440F551F69 -:106DF00059F05F3F71F04795880F97FB991F61F03D -:106E00009F3F79F087950895121613061406551FB3 -:106E1000F2CF4695F1DF08C0161617061806991F1F -:106E2000F1CF86957105610508940895E894BB2714 -:106E300066277727CB0197F90895F894FFCFEA10DA -:106E4000121165111211651145117D1165117A122A -:106E50008712121512151B151B151D151B151B1559 -:106E60001B151215121522151B151B152215671C53 -:106E7000DD1CE01CF41CF71C0A1D131D371D7D1DB5 -:106E8000AF1DC31D491D6C1D3A213A219321932149 -:106E9000C5216D216D216D21DF21502260226022EC -:106EA000F12FF52F38304930543073307630A93017 -:106EB000CA3046304630D530D830DC30023124314B -:066EC000273129314E319B -:106EC6000138020000000100000000380200000046 -:106ED600050100000038020000000106000000382D -:106EE600020000000107000000380204080000004C -:106EF6000000003802090C00000000000038020102 -:106F06001500000000000036323331F7F667669749 -:106F1600C6343500000000000180005F082E0E0D0B -:106F26000E090E050EF4F5010021007F2200030074 -:106F36004A004A4A01F6F731333236674C41594521 -:106F4600520042617365200047616D652000526101 -:106F5600697365004C6F776572004C4F434B004375 -:106F6600617073004E756D005363726C00202020B3 -:106F7600202000534F4C415200544D505354008131 -:106F86008283E200E900EA00B500B600B700CD0052 -:106F96008301CC008A01920194012102230224027A -:106FA6002502260227022A02B300B4006F007000F1 -:106FB6000603060806010606AF0200FF01000100EF -:106FC60000FFFF0000010001FF0000081018181064 -:106FD600080000010202020202020202020240222C -:0E6FE6007B99017701FC00000C190C390C009E +:1019B00009F09F5F892F0895CF93DF93CDB7DEB7EE +:1019C00062970FB6F894DEBF0FBECDBF96E0E4E29B +:1019D000F3E0DE01179601900D929A95E1F796E0FB +:1019E000FE013796DE011D9601900D929A95E1F762 +:1019F00098858823E9F0962B9E8786E0FE013D9628 +:101A0000DE01119601900D928A95E1F786E0FE01C4 +:101A10003196A4E2B3E001900D928A95E1F76296C7 +:101A20000FB6F894DEBF0FBECDBFDF91CF91089502 +:101A300060959623E1CFDC01FB01808191818038A4 +:101A400091054CF08FE78C93808191818F5791099C +:101A500091838083089581382FEF92073CF481E8C9 +:101A60008C938081918181589F4FF2CF8C9311820A +:101A700010820895681708F5861B682F21E0469F9D +:101A8000A0011124649FF001659FF00D1124409185 +:101A9000590150915A01E49FC001E59F900DF49FB8 +:101AA000900D1124880F892F881F990B919522235F +:101AB00019F09195819591090895681B20E0DFCF79 +:101AC0000F931F93CF93DF9300D000D0CDB7DEB735 +:101AD00089836A834B831C8204E610E024E030E0B3 +:101AE000AE014F5F5F4F60E084E10E94B2320F9021 +:101AF0000F900F900F90DF91CF911F910F9108954C +:101B000080913203882329F047E669E98BE20C943F +:101B1000600D6091590170915A0190E080E00E943F +:101B2000013620E030E040E05CE30E94623620E0D5 +:101B300030E040E85FE30E94FC35882321F047EC69 +:101B40006BE180E0E4CF41E265EA89EDE0CFCF923E +:101B5000DF92EF92FF920F931F93CF93DF936C016D +:101B60007B0164E670E088E70E949A31EC0197FD02 +:101B700012C010E000E0F601E00FF11F849164E66E +:101B800070E00E941432EC01892B29F40F5F1F4F83 +:101B90000E151F0581F70E942E33CE01DF91CF91E4 +:101BA0001F910F91FF90EF90DF90CF90089580915B +:101BB0004E0490914F04911103C091E0892708953C +:101BC000882369F062E070E08CEE9BE00E94A70D34 +:101BD000892B19F080914E04089510924E04809143 +:101BE0004E04EBCFCF93C0914E0480914F048823D5 +:101BF000D1F00E9462086058774C8E4F9F4F6093DF +:101C00004A0470934B0480934C0490934D04C1118B +:101C100008C062E070E08AEE9BE00E94A70D892B6D +:101C200029F0C0914E048C2FCF91089581E08093CC +:101C30004E04F7CF90916C04943029F580935B04A7 +:101C400070935D0460935C049093E9008FEF909132 +:101C5000E800815095FD06C095ED9A95F1F70000DA +:101C60008111F5CF8091E80085FF0DC050E040E084 +:101C700063E070E08BE594E00E9425078091E80026 +:101C80008E778093E8000895BC0184E00C941A0ECE +:101C9000BC0183E00C941A0E9C0184E08093E9005F +:101CA0009FEF8091E800915085FD06C085ED8A95F3 +:101CB000F1F700009111F5CF8091E80085FF0CC08D +:101CC00050E040E066E070E0C9010E942507809185 +:101CD000E8008E778093E8000895CF93DF93EC01BE +:101CE00081E08093E9008FEF9091E800815095FDAD +:101CF00006C095ED9A95F1F700008111F5CF80911E +:101D0000E80085FF14C050E040E068E070E0CE01DC +:101D10000E9425078091E8008E778093E80088E094 +:101D2000FE01A2E6B4E001900D928A95E1F7DF9101 +:101D3000CF9108959F92AF92BF92CF92DF92EF9290 +:101D4000FF920F931F93CF93DF937C015B016A0196 +:101D50008091D10201E010E08A3010F40AE010E036 +:101D6000C1E0D0E0F894B501C701F6010995982EBD +:101D70000E94BC09911004C021960C171D076CF439 +:101D8000892DDF91CF911F910F91FF90EF90DF9000 +:101D9000CF90BF90AF909F900895CC9F9001CD9F22 +:101DA000300D300D112490E080E045E34A95F1F7C5 +:101DB0000000019682179307C1F7D4CF8091A1024A +:101DC000811110C08091D80080618093D8008AE191 +:101DD0008A95F1F700C08091D90080FF0AC081E0A8 +:101DE0008093A10281E09091A102913009F080E0FE +:101DF000089582E08093A1020E94D50610926C049F +:101E0000F1CF0E94DE0E882351F0E0915204F09150 +:101E10005304309721F00190F081E02D099480E087 +:101E200008951F93CF93DF93182FEB010E94570C57 +:101E30008FE99FE00197F1F700C000002197C1F7FB +:101E4000812FDF91CF911F910C941E0C4F925F92C6 +:101E50006F927F928F929F92AF92BF92CF92DF92BA +:101E6000EF92FF920F931F93CF93DF93CDB7DEB71F +:101E7000CE5DD1090FB6F894DEBF0FBECDBF509036 +:101E800070019091770490FF5DC080905D03909009 +:101E90005E038114910409F068C0E0E6F6E09E015B +:101EA0002F5F3F4FBE0161527F4FC901A4914A2F5E +:101EB00050E0DA01AA0FBB1FA40FB51FA15ABC4FF7 +:101EC000CD90DD90EC90D901CD92DD92ED929D0107 +:101ED00031966A177B0751F720916F0143E0249FE9 +:101EE000800D911D1124539A2BB1277F3BB138608F +:101EF0005FB7F894BC01549E600D711D11248617C4 +:101F0000970709F08EC05FBF8FE594E00197F1F766 +:101F100000C00000C252DF4F0FB6F894DEBF0FBE04 +:101F2000CDBFDF91CF911F910F91FF90EF90DF9088 +:101F3000CF90BF90AF909F908F907F906F905F9069 +:101F40004F900895809171012091720133E0839F39 +:101F5000F0011124E15AFC4F821708F096CF11824C +:101F6000108212828F5F3396F7CF90FF96CFD12CDD +:101F7000C12C66246394712C53E0452E80915C0340 +:101F800093010C2C01C0220F0A94EAF7822309F472 +:101F90003FC0F601EE0FFF1FE80DF91DE590F4902C +:101FA000E114F10409F479CF45E050E0B701CE0126 +:101FB00001960E94953509810F3F51F18A81800F6A +:101FC0009927991F8B34910514F08AE490E05C0105 +:101FD000AA0CBB1C8A0D9B1DDC01A15ABC4F5D01E4 +:101FE000049D80011124015A1C4F0A151B0520F085 +:101FF000B5E0EB0EF11CD8CF4D81413A08F040EA34 +:1020000098016C818B810E9424090D5F1F4FEDCFD9 +:10201000EFEFCE1ADE0AF8E0CF16D10409F0AECF0A +:102020003CCFFC014191CF01E8E03BB9000000C08A +:1020300047FF2BB9440F000000C000C000C02BB9FF +:1020400000C0EA9591F75BCFE7E7F4E080818E7FEF +:102050008083E9E5F3E08281816082832FEF80E76E +:1020600092E0215080409040E1F700C000000C94C5 +:10207000260FE2E3F2E086E0DF011D928A95E9F7A0 +:102080000C94F70B1F93CF93DF93CDB7DEB7AA97CE +:102090000FB6F894DEBF0FBECDBF8EE694E0209160 +:1020A000F100DC012D93CD01B4E086379B07B9F731 +:1020B00080916F04833009F471C0B8F4813009F461 +:1020C00048C0823009F4B4C08091E80083FF3CC16D +:1020D00080916E0490916F049A3008F035C1E92F19 +:1020E000F0E0EE5DF84C0C9488358A3009F48FC02E +:1020F0008B3009F470C0893039F780916E048132D9 +:1021000019F78091720490917304009711F002976F +:10211000D9F68091E800877F8093E8008091E800FD +:1021200082FF37C09091F3008091F200029729F46A +:102130008091F1008B7F813021F48091F1008093B8 +:1021400061048091E8008B778093E8000E944F073C +:10215000BBCF80916E04813A09F0B6CF8091E80040 +:10216000877F8093E8008091720490917304892B9B +:1021700061F468E082E694E070E00E9401088091DA +:10218000E8008B778093E8009FCF60E090E080E0EC +:10219000F3CF80916C048111C1CF96CF80916E04F2 +:1021A000813A09F091CF8091720490917304892B48 +:1021B00009F08ACF8091E800877F8093E8008091C2 +:1021C000E80080FFFCCF809174018093F100809142 +:1021D000E8008E77B9CF80916E04813209F074CF18 +:1021E0008091720490917304892B09F06DCF8091D6 +:1021F000E800877F8093E8000E944F078091700479 +:102200008093740110925F040E9439105DCF809119 +:102210006E04813209F058CF8091E800877F809367 +:10222000E8000E944F0780917104809360044CCFB6 +:1022300080916E04813A09F047CF8091E800877F52 +:102240008093E8008091E80080FFFCCF80916004DB +:10225000BCCF803899F0823809F076C08091720442 +:102260008F70873008F070C08093E9008091EB0098 +:1022700085FB882780F91092E90006C080916A04E6 +:1022800090916B04911182609091E800977F9093F8 +:10229000E8008093F1001092F1008091E8008E77C1 +:1022A000B5C1882309F4A2C1823009F04DC08091E4 +:1022B00070048111A6C1809172048F702FEF280FD6 +:1022C000263008F041C08093E9002091EB0020FF08 +:1022D00098C1933031F48091EB0080628093EB00E1 +:1022E00090C19091EB0090619093EB0021E030E081 +:1022F00001C0220F8A95EAF72093EA001092EA00C3 +:102300008091EB008860EACF81111EC010917004AB +:102310001F778091E3008078812B8093E300809188 +:10232000E800877F8093E8000E944F078091E800D3 +:1023300080FFFCCF8091E30080688093E30082E01F +:10234000111183E080936C048091E80083FF0AC040 +:102350008091E800877F8093E8008091EB008062A5 +:102360008093EB00AA960FB6F894DEBF0FBECDBFE8 +:10237000DF91CF911F9108958058823028F72091E6 +:102380007004309171042C3DE3E03E07A1F583E039 +:102390008A838AE289834FB7F894DE01139620E09E +:1023A0003EE051E2E32FF0E050935700E49120FF2C +:1023B00003C0E295EF703F5FEF708E2F90E0EA3040 +:1023C000C0F0C7968D939D932F5F243159F74FBF6F +:1023D0008091E800877F8093E8006AE270E0CE0198 +:1023E00001960E9401088091E8008B778093E800B5 +:1023F000ABCFC096E7CF8091720490917304432FC6 +:1024000055274330510509F44AC078F5413051054C +:1024100009F47AC08BE590E0EEEEFBE04230510526 +:1024200009F092CF2091E800277F2093E8002091C7 +:102430007404309175048217930708F49C0140E0FE +:102440002115310509F065C0411163C08091E80094 +:1024500082FDC9CF80916C04882329F2853019F25E +:102460008091E80083FFF2CFBECF4132510509F4DD +:102470003CC04232510509F067CF8330910508F026 +:1024800063CFFC01EE0FFF1FEF5DFD4F0190F08168 +:10249000E02D825E9D4FDC018C9190E01AC03327C5 +:1024A00021303105D1F02115310561F0223031059F +:1024B00009F04ACFEBE5FCE0E4918E2F90E0EBE5EC +:1024C000FCE007C0EDE8FCE0E4918E2F90E0EDE841 +:1024D000FCE0009709F438CFA5CFEBE7FCE0E491EE +:1024E0008E2F90E0EBE7FCE0F4CF8330910508F00D +:1024F0002BCF880F991FFC01E95DFD4F0190F08102 +:10250000E02D89E090E08ECF82E190E0E9E4FCE00C +:1025100089CF80916C04882309F465CF853009F454 +:1025200062CF8091E80083FD5ECF8091E80082FD5C +:102530008DCF8091E80080FF83CF9091F300809150 +:10254000F2002115310519F08830910550F041E075 +:10255000089709F040E08091E8008E778093E800CA +:102560006FCF44914093F10031962150310901968B +:10257000E8CF803809F0E8CE8091E800877F80932B +:10258000E80080916D048093F10087CE8111DCCE4C +:1025900010917004123008F0D7CE8091E800877F48 +:1025A0008093E80010936D040E944F07112311F0EF +:1025B00084E005C08091E30087FDFACF81E080933D +:1025C0006C0442E061EC81E00E946E0742E261EC43 +:1025D00084E00E946E0742E261EC82E00E946E0796 +:1025E00042E260EC83E00E946E07AECE8091700400 +:1025F000813009F0A9CE81E0933009F080E080932A +:102600006B041092E9008091E800877F8093E800D6 +:102610000E944F0799CE1F93CF93DF93162FC0913F +:102620007E06D0917F068A30D1F420914304CE01FA +:102630008E579440622F70E00E945435281B822FE1 +:1026400066E00E946835C82FC15020F4DF91CF9119 +:102650001F91089560E080E20E940B13F5CF8D304A +:10266000E9F4CE57D44020914304622F70E0CE01AC +:102670000E945435281B822F9E01280F311D2115E1 +:10268000324018F080E0D0E0C0E0C80FD11DC25841 +:10269000DB4FD0937F06C0937E06D8CF96E0FE0135 +:1026A000A4E4B4E001900D929A95E1F7803E90F198 +:1026B00086E0FE0111928A95E9F7C0917E06D091DD +:1026C0007F06111133C046E050E0BE0184E494E07F +:1026D0000E949E359E012E573440892B91F52A5F2A +:1026E0003F4F40914304642F70E0C9010E9454356C +:1026F000481B463010F4240F311D211572E03707B6 +:1027000010F030E020E022583B4F30937F062093BA +:102710007E069CCFF6E08F9FB00111246655794F5D +:1027200046E050E0CE010E949535C7CF9E012A5F5A +:102730003F4FFE012E173F0731F280818095819334 +:10274000F9CFC90145E0969587954A95E1F741E0B3 +:1027500050E0BA0102C0660F771F8A95E2F7CB01FD +:1027600060917C0470917D04862B972BB9016B5F7F +:102770007F4FE5E076956795EA95E1F702C0440F53 +:10278000551F6A95E2F7842B952B90937D048093D7 +:102790007C04A5CFFF920F931F93CF93DF93EC019F +:1027A000F62EFC0101900020E9F78F01015011097C +:1027B000C017D10730F0DF91CF911F910F91FF909B +:1027C00008956F2D89910E940B13F2CFE1E4F4E09C +:1027D0008083618324E630E042E050E0BF0184EB77 +:1027E0000C948B32CF93C82F60E08CE00E94E613EC +:1027F0006C2F84E00E94E61361E08CE0CF910C9492 +:10280000E613CF93DF93C3EED2E060E0CE010E94E7 +:10281000C8352196C11584E0D807B9F7DF91CF916B +:1028200008956F927F928F929F92AF92BF92CF92B4 +:10283000DF92EF92FF920F931F93CF93DF938AEA79 +:10284000C82E86E0D82E91ECE92EF12CE701CC5869 +:10285000D10936011BC0F50185909490692DC801FE +:102860000E94C835682DC80101960E94C83582E0D3 +:10287000A80EB11C0E5F1F4FC017D10761F78EE085 +:10288000680E711C2E96CE15DF0529F08E010E50B4 +:1028900011095301E0CF7E018CE8E80EF11C8CE8B1 +:1028A000C80ED11C8DE7E81683E0F80679F6DF91B3 +:1028B000CF911F910F91FF90EF90DF90CF90BF903D +:1028C000AF909F908F907F906F900895CF93C82F77 +:1028D0006FEF811161E283E290E00E94C8356FEFF3 +:1028E000C11161E184E290E00E94C8356FEFC1112F +:1028F00068E285E290E0CF910C94C83580E00E94B8 +:10290000661460E086E290E00E94C8350E941114CF +:102910000E94011481E00C9466140F931F93CF93CF +:10292000DF93C42FD0E0CC0FDD1F2EE0629FC00DDF +:10293000D11D11243CE8839FC00DD11D1124CE016F +:1029400087960E94B435082F10E0102F0027CE0183 +:1029500088960E94B4359801282BC901DF91CF9148 +:102960001F910F910895462F853038F47A3028F45E +:10297000673018F4672F0C948D1490E080E0089570 +:10298000CF92DF92FF920F931F93CF93DF936C014F +:102990000091760480919202082BC7E0D0E010E00D +:1029A000FC2EC8010C2E02C0959587950A94E2F77B +:1029B00080FD0CC02197A0F7F12C8F2DDF91CF91D6 +:1029C0001F910F91FF90DF90CF900895B6018C2F4B +:1029D0000E94B3140E94180A019761F3EECFCF93BF +:1029E000DF93EC010E94C014BE010E94B314DF917A +:1029F000CF910C94180AFC01808191810E94EF1400 +:102A0000292F2F7092959F7092509E3078F4E92F65 +:102A1000F0E0E45DF84C0C948835803F19F020F428 +:102A2000883E20F481E00895843FE1F380E008953A +:102A3000883EC0F3813FD1F7F5CF822F86958695EA +:102A40008695089583E290E00E94B435813289F43E +:102A500084E290E00E94B435813159F485E290E03F +:102A60000E94B43591E0883209F090E0892F81709E +:102A7000089580E0FCCFCF92DF92EF92FF926B013E +:102A80007C010E940E09B701A60188E090E0FF904A +:102A9000EF90DF90CF900C94DA35AF92BF92CF9247 +:102AA000DF92EF92FF920F931F93CF93DF9300D0AB +:102AB0000F92CDB7DEB7082FF62E142FE22E80919D +:102AC000770480FF4FC0E82FE695AE2FB0E0AE5EF2 +:102AD000BD4F9C91909359038E7F823009F056C070 +:102AE000413A08F040EA9E012F5F3F4F6F2D802F43 +:102AF0000E9424098091770480FF11C02B813981C5 +:102B00004A81809171019091720153E0859FF0019B +:102B10001124E15AFC4F891798F10E94260F8091E9 +:102B20007804801308C0809179048F1104C08091CB +:102B30007A04811729F080915B03826080935B03A4 +:102B400000937804F092790410937A04EE2051F007 +:102B500060917704709178048091790490917A045F +:102B60000E943B150F900F900F90DF91CF911F9116 +:102B70000F91FF90EF90DF90CF90BF90AF900895AE +:102B80004183308322838F5F3396C5CF923039F6ED +:102B9000E2508E2F8170D82EE695F0E0E55AF94F7D +:102BA000A590B490C12CBB2460917301C61608F0A7 +:102BB000B4CF2C2D30E0A29EC001A39E900DB29EFA +:102BC000900D112470E00E945435802FD11016C052 +:102BD000860F40917101420F532F511D9A01220F10 +:102BE000331F240F351F215A3C4F412F113A08F053 +:102BF00040EA6F2D0E942409C394D6CF861BE9CFEB +:102C0000E7E7F4E0438121E1421B08F440E021E0E2 +:102C1000628181810C944D15E7E7F4E0438121E165 +:102C2000420F08F44FEF21E0628181810C944D1531 +:102C3000E7E7F4E0628121E1621B08F460E021E053 +:102C4000438181810C944D15E7E7F4E0628121E135 +:102C5000620F08F46FEF21E0438181810C944D15E0 +:102C6000E7E7F4E0818121E04381628188500C94A0 +:102C70004D15E7E7F4E0818121E043816281885FBF +:102C80000C944D1580917B04882319F0815080931A +:102C90007B0460917704709178048091790490911D +:102CA0007A040C943B1580917B04833018F48F5F79 +:102CB00080937B046091770470917804809179040B +:102CC00090917A040C943B159091770490FF27C063 +:102CD000917081111DC092609093770480915B0385 +:102CE000816080935B03662351F06091770470915B +:102CF00078048091790490917A040E943B1520E039 +:102D000040917A0460917904809178040C944D1577 +:102D10008C3010F09661E0CF880F982BDDCF0895AE +:102D200021E030E0A90102C0440F551F8A95E2F767 +:102D3000CA0120915C03662391F0822B80935C038F +:102D400080915B03806180935B0380915A038111C2 +:102D500009C08091770460E086950C946416809594 +:102D60008223ECCF0895CF93DF93C82FC17082FBED +:102D7000DD27D0F981FB662760F985E00E94901677 +:102D800061E06C2786E00E9490166D2F87E0DF914E +:102D9000CF910C9490160F931F93CF93C82F61E09F +:102DA0008111682F617080E00E949016C1FB662738 +:102DB00060F9C11101C060E081E00E949016C2FB81 +:102DC000662760F9C11101C060E082E00E949016A0 +:102DD000C3FB662760F9C11101C060E083E00E9477 +:102DE0009016C4FB662760F9C11101C060E084E061 +:102DF0000E9490164C2F50E070E060E0DB01CA01A9 +:102E0000F4E0B695A79597958795FA95D1F7009731 +:102E1000A105B10549F1AC01BD0184E08A019B0126 +:102E2000E2E03695279517950795EA95D1F70115B4 +:102E300011052105310519F08E5FB901A8017695BC +:102E4000679557954795452B462B472B09F08F5F84 +:102E50008230D1F158F48823E9F0813059F18C2F78 +:102E6000CF911F910F91089580E0D8CF8330A1F1C9 +:102E70008430A9F720E040E56FEF8AED0E944D1500 +:102E800087E00E94F21380910001882341F31092A1 +:102E900032030DC020E040E56FEF82E30E944D1544 +:102EA00080910001882399F381E0809332030E948E +:102EB000800DD5CF20E040E56FEF8CEF0E944D15DF +:102EC00085E40E94F213CBCF20E040E56FEF80E570 +:102ED0000E944D1585E2F5CF20E040E56FEF86E7D3 +:102EE0000E944D158FE1EDCF0E94CB1680937604A2 +:102EF0000C94F70B80917604982F9670963019F405 +:102F000088600C947417877FFCCF21E030E001C00B +:102F1000220F8A95EAF720958091760482230C94FB +:102F2000741721E030E001C0220F8A95EAF7809102 +:102F30007604822B0C9474178091770486958150C7 +:102F400009F48BE061E00C94641680917704869517 +:102F50008F5F8C3008F081E061E00C946416809102 +:102F6000770480FF07C0869582588F77893010F4E8 +:102F70000C94A51761E082E00C946416E7E7F4E096 +:102F800083E0808311828FEF828380EA83831482BF +:102F9000A9E5B3E012968C911297836012968C93F8 +:102FA00060817181828193810C943B15AB01BC01DE +:102FB00088E190E00C94DA35CF93C82FEFE3F4E08A +:102FC000982F990F990F990F80818770892B808393 +:102FD000E0E4F4E09C2F9295969597708081887F2D +:102FE000892B808360913D0470913E0480913F0461 +:102FF000909140040E94D6176C2F82E0CF910C94E0 +:10300000E613EDE3F4E089E88083118282818C7F0E +:10301000828360913D0470913E0480913F049091C1 +:1030200040040C94D617EDE3F4E080818E7F80831A +:1030300060913D0470913E0480913F049091400462 +:103040000C94D617EDE3F4E0808181608083609179 +:103050003D0470913E0480913F04909140040C9493 +:10306000D61769EE7EEF90E080E00E94E63560E0E2 +:1030700082E090E00E94C83560E083E090E00E942A +:10308000C8351092920260E084E090E00E94C8355A +:1030900060E082E290E00E94C83560E085E090E068 +:1030A0000E94C83560E086E090E00E94C8356FEF6E +:1030B00087E090E00E94C83540E050E0BA0188E027 +:1030C00090E00E94DA3560E08DE090E00E94C83523 +:1030D00040E050E0BA0188E190E00E94DA3560E01B +:1030E00087E190E00E94C83540E050E0BA018CE1F1 +:1030F00090E00E94DA3570E060E080E290E00E94AB +:10310000E6350E94011880E00E9466140E947E1439 +:1031100040E050E0BA018FE090E00E94DA3540E0F4 +:1031200050E0BA0183E190E00C94DA350F931F93DD +:10313000CF93DF9300D000D0CDB7DEB74091C5026A +:103140005091C6026091C7027091C8022FB7F894DF +:103150008091570490915804A0915904B0915A0459 +:103160002FBF841B950BA60BB70B84369105A105C9 +:10317000B10588F10E94DE0E882379F10E94620871 +:103180006E5F7F4F8F4F9F4F69837A838B839C83C2 +:1031900080912C0190912D0181559D4F40912B01E3 +:1031A00050E04530510510F044E050E0BE016F5F43 +:1031B0007F4F0E94AB3584E090E00E94A034892BC1 +:1031C000D9F40E9462086093C5027093C60280938E +:1031D000C7029093C80281E010C00E94620800916B +:1031E000D2021091D3022091D4023091D502600F07 +:1031F000711F821F931FC4CF80E00F900F900F901C +:103200000F90DF91CF911F910F9108958F929F9210 +:10321000AF92BF92CF92DF92EF92FF920F931F93E4 +:10322000CF93DF93EB0188809980AA80BB809FB702 +:10323000F894C0905704D0905804E0905904F0904E +:103240005A049FBFC818D908EA08FB0894E6C916B3 +:10325000D104E104F10410F4442311F1E82E082E06 +:10326000000CFF089AE08902F0011124EF5FFE4F85 +:103270008381948181559D4F428150E00417150749 +:1032800008F4A801B9010E94AB35C7010E94A0341F +:10329000892BA1F40E946208688379838A839B83C7 +:1032A00081E0DF91CF911F910F91FF90EF90DF9020 +:1032B000CF90BF90AF909F908F90089580E0F1CF16 +:1032C0000F931F93CF93DF930F92CDB7DEB780910B +:1032D0004E0489832091C40290E041E0281719062A +:1032E00009F440E001E010E09E012F5F3F4F6DECDC +:1032F00072E086E00E9406190F90DF91CF911F9136 +:103300000F9108950F931F93CF93DF93CDB7DEB73F +:1033100029970FB6F894DEBF0FBECDBF85E0E7E773 +:10332000F4E0DE01119601900D928A95E1F780910B +:10333000590390915A03A0915B03B0915C038E8373 +:103340009F83A887B98741E08885811101C040E04B +:1033500009E010E09E012F5F3F4F69EC72E085E0CD +:103360000E940619811110925B0329960FB6F894FA +:10337000DEBF0FBECDBFDF91CF911F910F9108959A +:103380006F927F928F929F92AF92BF92CF92DF9275 +:10339000EF92FF920F931F93CF93DF930F92CDB7CE +:1033A000DEB7862E5A016901682E880F7708C3019F +:1033B0000E94A034892B09F088C08AE0869DF00124 +:1033C000879DF00D1124EF5FFE4F458150E04115C0 +:1033D000510511F041E050E08AE0869DF001879DA3 +:1033E000F00D1124EF5FFE4F6681778161557D4FAF +:1033F000CE0101960E94AB35F50140815181628179 +:1034000073812FB7F8948091570490915804A0913C +:103410005904B0915A042FBF841B950BA60BB70B10 +:1034200084369105A105B10540F4B701C8010E9499 +:10343000F3089981891709F44FC0082C000C9908EA +:10344000C4010E94A034892B91F0B12C8B2D0F90D8 +:10345000DF91CF911F910F91FF90EF90DF90CF9070 +:10346000BF90AF909F908F907F906F9008958AE06B +:10347000889DF001899DF00D1124EF5FFE4F45817D +:1034800050E0E416F50608F4A7018AE0889DF001F3 +:10349000899DF00D1124EF5FFE4F668177816155A4 +:1034A0007D4FC6010E94AB35B701C8010E94F308E9 +:1034B00099818913CACF0E946208F50160837183E4 +:1034C00082839383BB24B394C1CFB12CA701B801ED +:1034D000C6010E94AB35BACFBB24B394F7CFCF92CD +:1034E000DF92EF92FF920F931F93CF93DF9300D061 +:1034F00000D00F92CDB7DEB76B0185E0E82EF12C3E +:1035000000EB12E09E012F5F3F4F47EA52E061E07F +:1035100080E00E94C019882349F095E0FE013196B1 +:10352000A2EAB2E001900D929A95E1F795E0E2EA05 +:10353000F2E0D60101900D929A95E1F70F900F906D +:103540000F900F900F90DF91CF911F910F91FF90EF +:10355000EF90DF90CF90089590E080E00E94C23518 +:10356000893E9E4F11F40C94221580E008951F921D +:103570000F920FB60F9211242F933F934F935F93A7 +:103580006F937F938F939F93AF93BF93CF93DF936B +:10359000EF93FF93D091E900DF708091EC00C82F8A +:1035A000C17080FDC0E81092E9008091F000877F33 +:1035B0008093F00078940E9442101092E90080916C +:1035C000F00088608093F000CD2BCF70C093E900AD +:1035D000FF91EF91DF91CF91BF91AF919F918F912B +:1035E0007F916F915F914F913F912F910F900FBEFF +:1035F0000F901F9018951F920F920FB60F921124E3 +:103600002F933F934F935F936F937F938F939F93EA +:10361000AF93BF93EF93FF938091E10082FF09C0C6 +:103620008091E20082FF05C08091E1008B7F809352 +:10363000E1008091DA0080FF24C08091D80080FFF3 +:1036400020C08091DA008E7F8093DA008091D900CB +:1036500080FF9BC080E189BD82E189BD09B400FE85 +:10366000FDCF81E080936C0480915E04811109C0DC +:103670000E94D5060E94A0078091E200846080939A +:10368000E2008091E10080FF17C08091E20080FF9E +:1036900013C08091E2008E7F8093E2008091E2006F +:1036A00080618093E2008091D80080628093D8008E +:1036B00019BC85E080936C048091E10084FF29C0EF +:1036C0008091E20084FF25C080E189BD82E189BD4F +:1036D00089B5982F917080FFFBCF8091D8008F7DA6 +:1036E0008093D8008091E1008F7E8093E1008091EB +:1036F000E2008F7E8093E2008091E20081608093FF +:10370000E20080916D04882309F445C084E0809331 +:103710006C048091E10083FF27C08091E20083FF69 +:1037200023C08091E100877F8093E10082E0809355 +:103730006C0410926D048091E1008E7F8093E10013 +:103740008091E2008E7F8093E2008091E2008061B0 +:103750008093E20042E060E080E00E946E0780918A +:10376000F00088608093F000FF91EF91BF91AF91DE +:103770009F918F917F916F915F914F913F912F9189 +:103780000F900FBE0F901F90189519BC10926C04EB +:1037900010925E0476CF8091E30087FD93E09093D2 +:1037A0006C04B7CF78941F921FB61F9211248F9389 +:1037B0009F93AF93BF938091570490915804A09129 +:1037C0005904B0915A040196A11DB11D809357046C +:1037D00090935804A0935904B0935A04BF91AF91A9 +:1037E0009F918F911F901FBE1F9018959C014FB7FE +:1037F000F8948091570490915804A0915904B09185 +:103800005A044FBF821B930B08952FB7F8948091F1 +:10381000570490915804A0915904B0915A042FBFB5 +:1038200008955F926F927F928F929F92AF92BF9214 +:10383000CF92DF92EF92FF920F931F93CF93DF937C +:1038400000D000D00F92CDB7DEB77C01FC018381A0 +:103850009481892B31F08081918189238F3F09F0F8 +:10386000D0C60F900F900F900F900F90DF91CF91D7 +:103870001F910F91FF90EF90DF90CF90BF90AF908E +:103880009F908F907F906F905F9008950E94C014DA +:10389000182F682F89819A810E94CB0B69817A81C8 +:1038A000812F0E94B3148C01F7018281882361F07B +:1038B000F801E65EFC45ED30F10530F4E65CF84CCD +:1038C0000C9488350E942218D0903D04D0FE1CC074 +:1038D0008D2D86958370F7019281992309F460C13B +:1038E000823090F4B701C8010E94B108882361F0CA +:1038F000D694D694D69480913E0483708295880F96 +:10390000807E8D290E94F213F7018281882309F4B9 +:103910006DC6C80182519F45409708F02BC68FEFB6 +:1039200093E00E94B435025193EEA92E92E0B92E95 +:10393000811197CF011138C11C821B8266246394C8 +:103940008AE0582E85010F5F1F4FC5010E94B435D4 +:1039500089831A82882309F484CF9FEF980F9330CC +:1039600008F031C18A83698232E0A30EB11CC8011C +:103970000E94B4358B83882309F473CF8E010F5FC7 +:103980001F4FF80120812223E9F2213009F055C1AF +:1039900091818281913009F018C10E5F1F4F6AE05A +:1039A00070E0893311F460E570E00E94110F13C1DB +:1039B0000E94131889CF80913D0480FF0DC00E94A2 +:1039C000131860913D0470913E0480913F049091E2 +:1039D00040040E94D61778CF0E942218F2CF0E948E +:1039E000011872CF90913D04892F86958F5F837067 +:1039F000880F997F892B80933D04982F967096307D +:103A000001F7897F80933D04DCCF90913E04892F9C +:103A10008B7F92FF846080933E04D3CF80913D04DE +:103A2000982F96959695969580913E0483708295F1 +:103A3000880F807E892B8C3798F48F5F282F220F78 +:103A4000220F220F90913D049770922B90933D048A +:103A500082958695837090913E049C7F892BDBCF65 +:103A600081E0ECCF80913D04982F969596959695A0 +:103A700080913E0483708295880F807E892B11F09F +:103A80008150DCCF8BE7DACF30913E04932F9695AF +:103A90009695969520913F04822F83708295880F8A +:103AA000807E892B90E00196482F440F440F440FED +:103AB0003770342B30933E0435E0969587953A95D0 +:103AC000E1F783702C7F822B80933F047ACF309173 +:103AD0003E04932F96959695969520913F04822FBC +:103AE00083708295880F807E892B8150990BDCCF63 +:103AF00080913F0482FF12C08B7F80933F046091CE +:103B00003D0470913E0480913F04909140040E94D6 +:103B1000D61760E081E00E94E613D6CE84608093E1 +:103B20003F0460913D0470913E0480913F04909168 +:103B300040040E94D61760E08CE00E94E61364E126 +:103B400082E00E94E61365E081E00E94E61361E0F6 +:103B50008CE0E1CF80913F04982F969596959695AD +:103B6000809140048295880F807E892B883720F4CD +:103B7000865F0E94DC17A8CE88E7FBCF80913F04C8 +:103B8000982F969596959695809140048295880FEA +:103B9000807E892B843110F08A50EBCF84E1E9CF0D +:103BA000882309F4B1CE9ECEA114F4E0BF0609F437 +:103BB00058CEC5010E94B435811101C001502FEFCC +:103BC000A21AB20AB7CE5801D9CE923039F40E5F9C +:103BD0001F4F0E94570C0F5F1F4FD3CE933029F415 +:103BE0000E5F1F4F0E941E0CF6CF943019F00F5F2E +:103BF0001F4FF1CF0E5F1F4F30E020E0B8016F5F25 +:103C00007F4FF80141818053990B8A30910550F024 +:103C10002150310900F38FE99FE00197F1F700C0CF +:103C20000000F6CF529EF001539EF00D11249C012E +:103C30002E0F3F1F842F8B01E1CFE22FF0E0E75FD3 +:103C4000FD4F7490822F86958695869590E0FC01B5 +:103C5000E750FE4FE4902770F12C022E02C0F5943D +:103C6000E7940A94E2F7E1E0EE22FF24FC01E75139 +:103C7000FE4FC490D12C022E02C0D594C7940A9452 +:103C8000E2F7F1E0CF22DD24FC01E752FE4F849001 +:103C9000912C02C0959487942A95E2F721E0822224 +:103CA0009924E114F10419F081EE0E94570CC1141B +:103CB000D10419F086EE0E94570C39E36AE070E0F7 +:103CC000731202C060E570E0872D0E94110FCD28AD +:103CD00019F086EE0E941E0CEF2819F081EE0E946A +:103CE0001E0C892809F477CF6AE070E08CE25DCE83 +:103CF00081E00E94911703C081E00E9485170F9018 +:103D00000F900F900F900F90DF91CF911F910F9117 +:103D1000FF90EF90DF90CF90BF90AF909F908F90EB +:103D20007F906F905F900C947A1782E0E2CF013E13 +:103D3000110509F404C108F04DC0003E110509F455 +:103D400069C1F701928191117BC280915F048272F7 +:103D50000A3CFCE51F0709F453C208F0A9C1053C61 +:103D60003CE5130709F438C208F08DC1033C5CE55B +:103D7000150709F412C208F02AC2023C1C4509F4D6 +:103D8000BCC1F70100811181992309F473C2C801F4 +:103D90000E94C014D82E682FC8010E94CB0BB80116 +:103DA0008D2D0E94B3140E94180A182FB82EF70107 +:103DB00022814581342F32953F70892F82958F70F3 +:103DC000C82ED12C8C3008F08DC2F601E95BF84C7E +:103DD0000C948835043E110509F41CC1053E1105FB +:103DE00009F0AFCF80933C0210933B0200933A025C +:103DF000882309F4A1C081E08093EE02A2CF0238AB +:103E0000FFE51F0709F476C038F5063F110509F4F0 +:103E1000FFC008F4FBC000383FE5130709F44DC0AC +:103E200001384FE5140709F08CCF882309F45BC0F3 +:103E300080919C02811106C081E080939C0282EEF9 +:103E40000E94570C0E94051C90939B0280939A023B +:103E500081EE0E94570C43C004385FE5150709F452 +:103E600071C008F45BC00538EFE51E0709F4B0C067 +:103E70000638FFE51F0709F064CF882309F4C2C0A4 +:103E80006091590170915A0190E080E00E940136E2 +:103E900020E030E040E05CE30E94623620E030E069 +:103EA00040E85FE30E94FC358111A9C080EE90E0FC +:103EB00090935A018093590195C08823B9F080915D +:103EC0009C02811106C081E080939C0282EE0E94D8 +:103ED000570C0E94051C90939B0280939A028BE2E0 +:103EE0000E94570C2ECF81EE0E941E0C8BE20E9486 +:103EF0001E0C27CF882309F424CF81EE0E94570C93 +:103F000083EE0E94570C8FE40E94570C8FE40E94AE +:103F10001E0C83EE0E941E0C81EEE9CF882309F46B +:103F200010CF81EE0E94570C83EE0E94570C80E563 +:103F30000E94570C80E5EBCF1092EE0202CF8093E7 +:103F4000390252CF882379F180913902882349F0D0 +:103F500080913A020E941E0C80EE0E94570C8AE269 +:103F60000CC080913C028823D1F380913A020E94D8 +:103F70001E0C80EE0E94570C8CE40F900F900F9057 +:103F80000F900F90DF91CF911F910F91FF90EF90C5 +:103F9000DF90CF90BF90AF909F908F907F906F9069 +:103FA0005F900C94570C8AE20E941E0C8CE40E94D5 +:103FB0001E0C80EE0E941E0C80913902811105C0FA +:103FC00080913C02882309F44CCC80913A02D5CFF1 +:103FD0008823C1F080913203882339F01092320394 +:103FE000109200010E94800DACCE809100018111E1 +:103FF000F7CF81E08093320380930001F3CF80E814 +:1040000090E056CF61E00E94DC0C9BCE62E0FBCFDB +:1040100064E0F9CF882371F081E08093ED02809114 +:1040200076040E94CB0C813009F08BCE83E30E9492 +:10403000F21387CE1092ED0284CE882331F081E016 +:104040008093F002109267017CCE1092F00279CE3C +:10405000882349F0809176040E94CB0C813019F4BA +:1040600082E30E94F213F7018281882309F4B0C22F +:10407000809176040E94CB0C813009F0A9C284E3C0 +:104080000E94F213A5C2073C2CE5120709F4AEC04A +:1040900008F4A7C0083C4CE5140709F4ACC0093C7F +:1040A0001C4509F06ECE40E056E16CE076E179C047 +:1040B000043DECE51E07A8F40E3CFCE51F0708F0E4 +:1040C000D0CB0C3C2CE5120709F49FC042E456E12A +:1040D00063E576E10D3C1C4508F463C061E081E0D6 +:1040E00046C0053D4CE5140709F4BBCB08F492C06B +:1040F0000D351D4509F4B5CB44CE8091770480FF82 +:1041000031C08E7F8093770460917704709178043A +:104110008091790490917A040E943B1580915B0311 +:10412000816080935B039FEFE0E7F2E09150E04015 +:10413000F040E1F700C000000F900F900F900F903B +:104140000F90DF91CF911F910F91FF90EF90DF9033 +:10415000CF90BF90AF909F908F907F906F905F9027 +:104160000C94260F81608093770461E086950F9010 +:104170000F900F900F900F90DF91CF911F910F91A3 +:10418000FF90EF90DF90CF90BF90AF909F908F9077 +:104190007F906F905F900C9464164CE957E165EA4C +:1041A00077E10F900F900F900F900F90DF91CF91CC +:1041B0001F910F91FF90EF90DF90CF90BF90AF9045 +:1041C0009F908F907F906F905F900C94090945EAC3 +:1041D00057E16CE977E1E5CF40E356E169E376E149 +:1041E000E0CF49E356E160E376E1DBCF48E156E119 +:1041F00064E276E1D6CF44E256E168E176E1D1CFE0 +:104200004CE056E160E076E1CCCF43E556E162E474 +:1042100076E1C7CF0F900F900F900F900F90DF9126 +:10422000CF911F910F91FF90EF90DF90CF90BF90B3 +:10423000AF909F908F907F906F905F900C94AF178E +:104240000E3D1C4509F09DCD0F900F900F900F90E3 +:104250000F90DF91CF911F910F91FF90EF90DF9022 +:10426000CF90BF90AF909F908F907F906F905F9016 +:104270000C943118C8010E94A30BD82E90CD092FA1 +:104280000F70907F11F00295007F812F2223C9F0DB +:10429000002369F090E2910F983010F011110BC0DB +:1042A00080915F04082B00935F040E94820B812F92 +:1042B0000E94570C17C080919102082B0093910225 +:1042C000F4CF0E941E0C002369F00095105E183098 +:1042D00010F0B11027C080915F04082300935F04A1 +:1042E0000E94820B98E0C91AD108E4E0CE16D104EE +:1042F00008F0B7CA0E94010F0F900F900F900F9017 +:104300000F90DF91CF911F910F91FF90EF90DF9071 +:10431000CF90BF90AF909F908F907F906F905F9065 +:104320000C94B31680919102082300939102D8CF88 +:10433000892F8F70907F903211F08295807FF1E00D +:10434000BF120CC0222329F0333060F60E94140CF7 +:10435000C9CF323038F60E94090CC4CF222341F075 +:104360003323A1F340FFA3CF4F70F7014583EECF76 +:10437000332389F3193309F0F5C0FFEF27EE33E05B +:10438000F15020403040E1F700C00000812F0E9432 +:104390001E0CA8CF892F86958695837061F0813099 +:1043A00009F0A0CF812F9370211102C090E080E02E +:1043B0000E946E0897CF812F9370211102C090E068 +:1043C00080E00E9484088ECF892F8370A1F521118F +:1043D00089CF812F829586958770880F880F412F0E +:1043E0004F70082E01C0440F0A94EAF7212F207164 +:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 +:104400002095969596959370923081F0822F842B0B +:10441000933030F480919202913029F0242B822342 +:104420000E94050C5FCF842B822BFACF242B809126 +:1044300092028227F5CF8695222311F0892F817071 +:10444000882309F44FCF812F829586958770880F36 +:10445000880F412F4F70082E01C0440F0A94EAF7CD +:10446000212F207114FF07C02FE030E001C0220F80 +:104470008A95EAF72095969596959370923081F0FB +:10448000822F842B933030F480917604913029F080 +:10449000242B82230E94741725CF842B822BFACFE2 +:1044A000242B809176048227F5CF092F0F702223C9 +:1044B00029F0802F0E949117812F48CF812F0E94D1 +:1044C000090C802F0E9485170DCF812FE1EF1E1759 +:1044D00089F1E11750F0F0EF1F17B9F02223B1F185 +:1044E0003111E5CE892F8F7129C042EF141749F1A0 +:1044F00053EF1513F3CF80E0222361F29F7181E027 +:1045000001C0880F9A95EAF7C5CF222379F032309F +:1045100008F0E8CE292F2F7181E090E001C0880FCC +:104520002A95EAF7909176048927B4CF333008F0C2 +:10453000D9CEF0CF892F8F71222321F20E949117BB +:10454000D1CE892F8F712223C9F3BCCF332379F0C9 +:10455000893341F48FEF97EEE3E081509040E040E3 +:10456000E1F712CF8FE39CE90197F1F70DCF892F87 +:104570008F71A8CF0031FFE51F0709F4B9CB0131D6 +:104580002FE5120709F4D1CB0E9462086093F5026F +:104590007093F6028093F7029093F802F7018281FC +:1045A000043F110509F42ECD08F029CC0C32110579 +:1045B00009F443CD08F0BBCB0A30110509F448CD0E +:1045C0000531110509F44FCD0930110509F0B9CBBA +:1045D000F7018281882309F4B4CB809176040E948C +:1045E000CB0C813009F0ADCB81E321CD00313FE52B +:1045F000130709F481CB01314FE5140779F682E006 +:104600007CCB85E0DE01119601900D928A95E1F751 +:10461000F701228189819A81211138C90E94A30B57 +:10462000182F3CC91F93CF93DF9380915D02807F49 +:10463000A9F480915A02882389F080918F02D09149 +:104640005E026091580270915902A0915B02B09194 +:104650005C02C62FC72316E0D81304C0DF91CF91A8 +:104660001F91089590E0109711F0CF3F19F4019633 +:104670008770F2CF189F9001199F300D1124F90116 +:10468000E15AFD4F41814713F2CF40814613EFCFEE +:1046900042814111ECCF438154814A1B5B0B403A6C +:1046A000510528F780915D028F70806180935D02D3 +:1046B000F901EC59FD4F80818F708061808388E51E +:1046C00092E00E94111CDF91CF911F910C94990BE5 +:1046D000AF92BF92CF92DF92EF92FF920F931F9310 +:1046E000CF93DF93CDB7DEB761970FB6F894DEBFF7 +:1046F0000FBECDBF8C0185E0F801DE011D96019053 +:104700000D928A95E1F7F801E28088E5A82E82E013 +:10471000B82E60915B0270915C026115710509F41D +:1047200032C19091580240915902892F84238F3FC2 +:1047300009F429C120813181C380D480F0905A02CC +:10474000F601E61BF70BFF2009F4E8C080915D023B +:10475000582F507FE03AF10508F0ABC0511177C0F7 +:10476000FE2C431321C092131FC0E1101DC08F7097 +:10477000806180935D02C5010E94111C80915D02E1 +:10478000F80185838F2D61960FB6F894DEBF0FBEBA +:10479000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1047A000CF90BF90AF900895CD2829F0822F83231A +:1047B0008F3F09F003C180E0F82FF170DF2E80FFFA +:1047C0003CC080918F0240915E0256E0841315C078 +:1047D0002D873E878D859E850E94EF14292F229577 +:1047E0002F702230F0F0243018F59F70F1F0F801AE +:1047F0009581907FD1F4D12C1EC090E0589FF0019C +:10480000599FF00D1124E15AFD4F6181361306C006 +:104810006081261303C06281E6120FC00196877083 +:10482000D5CF9F7011F0882331F3805E883018F364 +:10483000C8010E94111CFD2CA5CFEE2009F4A2CFC7 +:1048400080915D02816080935D02F12C9BCF4313C8 +:1048500006C0921304C0F801EE2009F479C0C80123 +:104860000E94FB14882309F1EE20F9F080915D028B +:10487000803270F0209158023091590238872F838E +:104880001986DB86CA868C87CE0107960E94111C8A +:1048900086E0F801A8E5B2E001900D928A95E1F773 +:1048A0000E941223FF24F3946DCFC8010E94111CB3 +:1048B000F9CF51110AC088E592E00E94111C86E0F0 +:1048C000F50111928A95E9F7C0CF43130FC09213F7 +:1048D0000DC0E1100BC0F8018583C8010E94111CB6 +:1048E00086E0F50111928A95E9F74CCFC8010E9444 +:1048F000FB148823D1F2EE20C1F280915D02803258 +:1049000038F220915802309159023A8329831B8250 +:10491000DD82CC828E83CE010196B8CFE03AF105DC +:10492000F8F6FE2CEE2009F243131FC092131DC0AF +:1049300080915D0280FD10C0982F907F69F0F80192 +:104940008583903F31F0982F907F905F8F70892BF7 +:104950008583C8010E94111C86E0F801A8E5B2E039 +:1049600001900D928A95E1F70DCFC8010E94FB14CA +:1049700081118ECF80915D02816080935D02C801BC +:104980000E94111CFFCEEE2009F48FCFC8010E94B7 +:10499000FB14F82E882309F488CF86E0F801A8E5F7 +:1049A000B2E001900D928A95E1F7809158029091C2 +:1049B00059020E94EF140E941223E4CE81E08E255A +:1049C000FBCE1F93CF93DF93CDB7DEB767970FB6BC +:1049D000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B97 +:1049E0008F8B6111109291021A8A198A85E0FE015B +:1049F0007396DE011D9601900D928A95E1F786E08F +:104A0000FE013D96DE01179601900D928A95E1F721 +:104A1000CE0107960E946823882389F016E08091D2 +:104A20008F0290915E0289134BC067960FB6F8947F +:104A3000DEBF0FBECDBFDF91CF911F91089586E0FD +:104A4000FE013796DE01119601900D928A95E1F7ED +:104A50008A859B85892B11F38F81988589238F3FC8 +:104A6000E9F220915E0230E0C90101968770992732 +:104A700040918F024817190681F410925F040E943A +:104A8000391010925E0210928F0286E0E8E5F2E0A3 +:104A9000DF011D928A95E9F7C1CF96E0929FD00180 +:104AA000939FB00D1124A15ABD4FFE013196019084 +:104AB0000D929A95E1F780935E020E94990BAECF1A +:104AC000819FC0011124815A9D4F0E946823882331 +:104AD00009F4ABCF80918F0290E0019687709927FF +:104AE00080938F029CCF9F92AF92BF92CF92DF9222 +:104AF000EF92FF920F931F93CF93DF93CDB7DEB763 +:104B000064970FB6F894DEBF0FBECDBF8E010F5F66 +:104B10001F4F8AE0D8011D928A95E9F79EE4C92EBD +:104B200091E0D92EF12CE12CAA24A394B12CF6010A +:104B300081916F018F3F09F44AC0F894E82FE29504 +:104B4000EF70F0E021A18F70A50102C0440F551F46 +:104B50008A95E2F7CA01922F982B91A392A1809592 +:104B6000892382A30E94BC0900C0E7E4F1E030E0A1 +:104B700020E0912C41914F3F09F47DC0A42FA295D4 +:104B8000AF70B0E090968C9190E04F7002C0959518 +:104B900087954A95E2F780FD6EC08A2D022E01C0EE +:104BA000880F0A94EAF7982A2F5F3F4F2730310584 +:104BB00009F7F601319780818F3F11F00E94BE09FD +:104BC00050EA5A95F1F7F801EE0DFF1D90828FEF34 +:104BD000E81AF80A95E0E916F10409F0A8CF4AE0CE +:104BE00050E0B80188ED92E00E949E357C01892B4F +:104BF00041F08AE0F801A8EDB2E001900D928A95AB +:104C0000E1F71091E302E114F104B9F181E080933E +:104C100095020E94051C90939402809393028091C8 +:104C20009302909194020E94F61B069770F0A8EDF3 +:104C3000B2E0E12FF0E0E15BFC4F8D91819322E047 +:104C4000AD3DB207D1F71092950281E090E0EF28D8 +:104C5000C1F064960FB6F894DEBF0FBECDBFDF91F2 +:104C6000CF911F910F91FF90EF90DF90CF90BF9069 +:104C7000AF909F90089580E096CF8091950281112A +:104C8000CECF0E94DE0EB82EE091E302882309F415 +:104C9000C7C08E01005F1F4F85E0D8011D928A9525 +:104CA000E9F7F0E09F01215B3C4F79018091D1024F +:104CB000AE014B5E5F4F6A018A3008F086C04FE656 +:104CC0005AE1B801C7010E949A0E882309F494C0E2 +:104CD00044EE57E2B801C7010E949A0E882309F4F6 +:104CE0008BC046E958E1B801C7010E949A0E88239B +:104CF00009F482C042E859E1B801C7010E949A0E46 +:104D0000882309F479C040E659E1B801C7010E943F +:104D10009A0E882309F470C01092D102E091E20249 +:104D2000F0E0AF01415B5C4FD80110E0FA019191D6 +:104D3000AF018D91981731F09F0121503109F90190 +:104D400080831B2DCA16DB0689F780919C0288237D +:104D500071F080919A0290919B020E94F61B893E0D +:104D6000934028F082EE0E941E0C10929C0288E96B +:104D7000C82E82E0D82EF12CE12CD6018D916D0148 +:104D80008823D1F08695F70109F447C0EC50FE4F17 +:104D9000808191819C878B871D860E94051C816084 +:104DA000782F9F878E87F601319710824B855C851F +:104DB0006D858F850E94E124B2E0EB0EF11CE4E0EA +:104DC000EE16F104D1F6812F44CF80919602909196 +:104DD00097020E94F61B843F914008F070CFA0918B +:104DE000E202B0E0A15BBC4FF8011D921192CE1619 +:104DF000DF06D9F71B2DA9CF8091D1028F3F31F06B +:104E00008F5F8093D1028A3008F488CF0E94051CFE +:104E10009093970280939602E2CFE051FE4FB8CF75 +:104E2000F0E0E15BFC4FF89485E0A0EBB2E001908C +:104E30000D928A95E1F765E070E080EB92E00E94C8 +:104E4000F3088093AF020E94BC09F894E091EB0252 +:104E5000F0E0E851FD4F80818B878093B60261E0DE +:104E600070E0CE010B960E94F3088093B5020E9479 +:104E7000BC09F894C090B702D090B802E090B90293 +:104E8000F090BA0280919D0290919E02A0919F02A3 +:104E9000B091A002C816D906EA06FB06D1F0C0926E +:104EA0009D02D0929E02E0929F02F092A0020E9488 +:104EB000DE0E81110EC00E946208C61AD70AE80AE7 +:104EC000F90AC092D202D092D302E092D402F092B8 +:104ED000D5020E94BC09F8948091C202882321F176 +:104EE00084FF04C09091C30290935C0380FF0DC0C7 +:104EF0008091BB0280FF25C09091770491609093D0 +:104F0000770460E086950E9464168091C20281FF5A +:104F100009C020E04091BE026091BD028091BC02B8 +:104F20000E944D151092C2020E94BC09F894809113 +:104F3000C402882349F00E94F20D0E94BC0980E05F +:104F400088CE0E942410E1CF0E94D70DF6CFEF92B9 +:104F5000FF920F931F93CF93DF9300D000D00F9257 +:104F6000CDB7DEB7162FE82EF12CC701880F991F99 +:104F7000662339F18C509E4FFC01808191819A8388 +:104F8000898301E00B830E94051C8160782F9D833B +:104F90008C83F701E856FD4F0127110F102B10836A +:104FA00049815A816B818D810F900F900F900F90E6 +:104FB0000F90DF91CF911F910F91FF90EF900C9484 +:104FC000E12480519E4FD8CFCF92DF92EF92FF9293 +:104FD0000F931F93CF93DF930F92CDB7DEB7EE24DD +:104FE000E394F12C06EB12E09E012F5F3F4F4BEA5A +:104FF00052E063E082E00E94C019082F882321F16B +:10500000C090E5028C2D90E09C0128513D4F790124 +:105010001981F9018081181BD12E80E00AC0DA9431 +:10502000F70180818F5F808360E08C2D0E94A7272D +:10503000802F1D14A4F3912F17FD90E0191B11115F +:105040000EC081110E94800B802F0F90DF91CF91B5 +:105050001F910F91FF90EF90DF90CF9008951F5F09 +:10506000F70180818150808361E08C2D0E94A72709 +:10507000802FE5CF1F921FB61F9211248F939F930D +:10508000AF93BF9380915604811113C08091570450 +:1050900090915804A0915904B0915A044196A11DD1 +:1050A000B11D8093570490935804A0935904B09372 +:1050B0005A04BF91AF919F918F911F901FBE1F9077 +:1050C0001895CDB7DEB7E9970FB6F894DEBF0FBEDF +:1050D000CDBF84B7877F84BF0FB6F894A895809121 +:1050E0006000886180936000109260000FBE80E8CD +:1050F00090E00FB6F89480936100909361000FBE2A +:1051000085B7806885BF85B7806885BF8AEB99E0E1 +:1051100090932F0280932E020E94D5060E94A00732 +:105120008091E20084608093E200789480916C0426 +:105130008823A1F01091E9001F709091EC00892F55 +:10514000817090FD80E8182B1092E9008091E800B2 +:1051500083FD0E9442101F701093E90082E084BD1D +:1051600093E095BD9AEF97BD80936E001092D202A6 +:105170001092D3021092D4021092D5020E942215EE +:10518000811102C00E947E140E94DE0E809358019D +:1051900080915801882309F4C6C010926F0185E2FE +:1051A000809370010E94DE0E81110E9493338091E2 +:1051B000580181112FC0FE01359686E0DF011D9256 +:1051C0008A95E9F786E6898387E98A8386EC8B836B +:1051D00084E38C8385E38D833497AEE4B1E0CE0124 +:1051E0000B9621912D938E179F07D9F787E0E5E75E +:1051F000F1E0DE01919601900D928A95E1F7FE01B2 +:10520000B196A7E4B1E0CE01889621912D938E1737 +:105210009F07D9F78091580195E0811190E0909314 +:10522000E30285E0891B8093E2020EE411E0A3E52E +:10523000EA2EA1E0FA2EF80181918F018F3F11F043 +:105240000E94BE09E016F106B1F707E411E0FEE4A2 +:10525000EF2EF1E0FF2ED8018D918D018F3F11F0DF +:105260000E94BE09E016F106B1F7E8EDF2E082EE29 +:1052700092E0AFE4B3E011921D928E179F07D9F729 +:105280000E94AC1A811102C00E94311882E090E0A5 +:105290000E94B4358093440384E090E00E94B435CA +:1052A000182F82E290E00E94B435982F812F9093BE +:1052B000D7028093D6020E947325EFE7FBEB31976C +:1052C000F1F700C000000E94732580914F0380FF1A +:1052D0002EC06FEF7FEF90E080E00E94E63581E026 +:1052E0008093E00080E28093D8001092C9008FE1A3 +:1052F0009EE40197F1F700C0000087E090EBDC012D +:105300008093800690938106A0938206B0938306D3 +:1053100088E19CE00FB6F894A895809360000FBEDA +:1053200090936000FFCF85E280936F0139CF83E0D7 +:1053300090E00E94B4350E94050C809176040E9492 +:10534000CB160E94AC1A811102C00E94311888E16C +:1053500090E00E94BC3560933D0470933E048093BE +:105360003F0490934004672B682B692B11F40E9433 +:1053700001180E94943167E081E00E94E61365E520 +:1053800086E10E94E61363E687E10E94E61360EA85 +:105390008AE10E94E61369E98BE10E94E61365EF5A +:1053A0008CE10E94E61360EA8DE10E94E61360E35F +:1053B0008EE10E94E61366E083E00E94E61361E05E +:1053C0008CE00E94E61360E081E00E94E61360E05A +:1053D0008CE00E94E6136FE084E00E94E61361E037 +:1053E0008CE00E94E6130E94DE0E811102C00E9432 +:1053F000963383E080931A0380E2809343040E94F3 +:1054000094316DE070E08CE992E00E94A70D892B49 +:10541000E9F580911A0363E070E081FD9EC289E99D +:1054200092E00E94A70D892B89F56DE070E089E874 +:1054300092E00E94A70D892B49F50E9462086058EE +:10544000774C8E4F9F4F60934A0470934B04809328 +:105450004C0490934D04EEE7F4E080E092E0DF012D +:105460009C011D9221503040E1F7F0937F06E093BC +:105470007E068FEF9FEF90937D0480937C0481E004 +:1054800080934F0480934E0410921B038091E4029A +:10549000811136C00E94AC1A811104C00E943118DB +:1054A0000E94BE1788E090E00E94BC3560937704AC +:1054B000709378048093790490937A0480915B03CD +:1054C000836080935B036E7F71F40E94BE1788E057 +:1054D00090E00E94BC3560937704709378048093C9 +:1054E000790490937A040E940E098091770480FFDA +:1054F00004C060E086950E94641681E08093E40217 +:1055000080915801811106C084EF8093660185EF78 +:105510008093650120916601A22FA295AF70B0E043 +:1055200091963C9191972F7081E090E0BC01022E02 +:1055300001C0660F0A94EAF7462F409543239196DF +:105540004C93919792963C919297362B92963C93DE +:10555000929740916501E42FE295EF70F0E031A160 +:105560004F70042E01C0880F0A94EAF7982F909587 +:10557000932391A392A1892B82A390968C9190E082 +:1055800002C0959587952A95E2F7817020A130E0B9 +:1055900002C0359527954A95E2F792E020FF90E00A +:1055A000892B8093EC028091580111E08127809330 +:1055B000EB02312F381B3093E5020E94943140E01A +:1055C00060E080E00E94600D60E08AE00E94641666 +:1055D00089EA92E090935E0380935D0381E00E94EC +:1055E000741780EE90E090935A01809359011093C4 +:1055F00032030E94800D8BE591E0909353048093D9 +:1056000052043E018DE3680E711C80916C04FF24EE +:10561000F39400E112E1853009F4F2C10E94732590 +:10562000E82E81110E946208E5E4F3E0AFE4B3E004 +:1056300010E000E0B02EDD9081918D1509F404C2D8 +:105640008D25C12CFF24F394982F9F2109F4F7C1D5 +:105650000E94DE0E882399F0CEA6BFA6DF2081E04F +:1056600009F480E088AB0E94051C8160782F9AAB1A +:1056700089AB4EA55FA568A98AA90E94E124F8011B +:10568000EB5BFC4F8081F826F0828091EC02E82FE2 +:10569000EE0FEE0F90916601A92FA295AF70B0E0CA +:1056A00090962C9130E09F7002C0359527959A9581 +:1056B000E2F72170332790916501A92FA295AF7071 +:1056C000B0E090964C9150E09F7002C05595479580 +:1056D0009A95E2F7CA018170992740FF02C082E0E3 +:1056E00090E0822B8E2B8093EC021091EB028F7056 +:1056F000E82FF0E0E650FE4F80819091EA02890F9A +:105700008093EA02F12C84306CF0E12FF0E0E85154 +:10571000FD4F80818F5F808360E0812F0E94A727EB +:10572000FF24F3948091EA028D3F6CF4E12FF0E0C6 +:10573000E851FD4F80818150808361E0812F0E947C +:10574000A727FF24F3948091EA02082E000C990BFE +:1057500064E070E00E9474358093EA02F1100E94C8 +:10576000800B80914F04882351F180911C0390910C +:105770001D030E94F61BC29708F07DC120917C0496 +:1057800030917D042115310509F0A0C280914E04AD +:105790008823A9F00E94620800914A0410914B04EA +:1057A00020914C0430914D04601B710B820B930BC4 +:1057B0006F3F7F4F8F4F9F4710F40E94D70DE1102E +:1057C00001C0F1100E94F20D809142038A3008F06E +:1057D000BAC380914003909141030E94F61B089741 +:1057E00008F4B1C304E610E025E030E04BE353E0F9 +:1057F00064E084E10E94DF32892B09F075C31092C6 +:10580000420320913203222359F080913B0390916F +:105810003C0398278927982790933C0380933B0368 +:1058200086E0E4E2F3E0DE01919601900D928A9524 +:10583000E1F786E0FE01B196DE01119601900D922E +:105840008A95E1F786E0FE013196A5E3B3E0019089 +:105850000D928A95E1F790913F038091360397FD71 +:105860003AC38E7F80933603809133039091340343 +:10587000009709F02AC360913B0380913C0300919B +:105880003D0310913E03222309F4F2C241E00E943D +:105890003A0D2091300330913103820F931F909382 +:1058A00031038093300341E0602F812F0E943A0D35 +:1058B00020912E0330912F03820F931F90932F037B +:1058C00080932E0360E373E08AE393E00E941B0D54 +:1058D0006EE273E089E393E00E941B0D10923703A0 +:1058E0001092380386E0E5E3F3E0DE0111960190C3 +:1058F0000D928A95E1F786E0FE013196A4E2B3E0CD +:1059000001900D928A95E1F73091260320912703AB +:1059100090912803809129037091200360912103C5 +:105920004091220350912303F0912503E0911F033E +:10593000FE13E0C2332311F07313DCC2222311F0F3 +:105940002613D8C2882311F08513D4C2992319F0E5 +:1059500081E04913D0C280E0CEC286E992E061CDF9 +:1059600080916C04843009F43BC00E94D70D40E064 +:1059700060E080E00E94600D80E00E94B31680919C +:10598000E702811109C0F092E702809177048170EB +:105990008093E6020E94241010925604A8E1B0E021 +:1059A000E0E40FB6F894A895A09360000FBEE093D2 +:1059B000600083B7817F846083BF83B7816083BFCA +:1059C0007894889583B78E7F83BF0FB6F894A89597 +:1059D00080916000886180936000109260000FBE2B +:1059E00080916B04882361F00E947325EFE4F3E05B +:1059F0008191811178C429E533E02E173F07C1F763 +:105A000080916C04853009F4ABCF10925F040E9442 +:105A100039100E94010F0E94B3161092E702809184 +:105A2000E602882349F080917704816080937704AF +:105A300060E086950E9464160E94800DEFCDC394AD +:105A4000FF0C37E0C31200CE0F5F1F4F0A30110565 +:105A500009F0F0CD8FEF8BAB8CAB1DAA0E94051C1B +:105A60008160782F9FAB8EAB4BA95CA96DA98FA9E4 +:105A70000E94E1240ACE0E94051C90931D0380938E +:105A80001C0360E080E00E949A080E94010F80934E +:105A9000F9020E94DE0E882331F14091F502509107 +:105AA000F6026091F7027091F8022FB7F894809196 +:105AB000570490915804A0915904B0915A042FBFF3 +:105AC000841B950BA60BB70B81339547A105B10538 +:105AD00040F00E94D70D80914F04882309F456CEE0 +:105AE0004DCE0E94F20D0E94DE0E882309F4D5C02F +:105AF00061E080E00E949A0860E08CE791E00E94FB +:105B0000CA1362E080E00E949A08809176040E94A5 +:105B1000CB0C823009F49BC008F090C0882309F4B4 +:105B200096C0813009F499C065E080E00E949A082F +:105B300060E08AE991E00E94CA1366E080E00E947A +:105B40009A086091F902669561708FE991E00E9470 +:105B5000CA1367E080E00E949A086091F90260959C +:105B6000617084EA91E00E94CA1368E080E00E94BC +:105B70009A086091F90262FB662760F988EA91E071 +:105B80000E94CA137DA66CA64091F1025091F202C8 +:105B90006091F3027091F4022FB7F894809157044A +:105BA00090915804A0915904B0915A042FBF841BBE +:105BB000950BA60BB70B8D329140A105B10508F4EA +:105BC0008ACF0E9462086093F1027093F202809380 +:105BD000F3029093F4028091F002811104C080914D +:105BE0006701811142C06DE080E00E949A0860E088 +:105BF0008DEA91E00E94CA136AE080E00E949A0850 +:105C000081E0809367018091EF0290E001968170BE +:105C100099278093EF0221E030E0281B390B40E602 +:105C2000429FC001439F900D11242091EE02222338 +:105C300051F1855C9B4F0E9492064DCF833089F0D5 +:105C4000843009F071CF60E08EE891E003C060E03D +:105C500082E891E00E94CA1367CF60E088E891E093 +:105C6000F9CF60E084E991E0F5CF6AE080E00E943E +:105C70009A0860E08DEA91E00E94CA136BE080E030 +:105C80000E949A08C0CF2091ED02222319F0855876 +:105C90009C4FD1CF85549D4FCECF64E080E00E94D1 +:105CA0009A0860E083EB91E00E94CA1365E080E00F +:105CB0000E949A0860E089EB91E00E94CA1369E0B3 +:105CC00080E00E949A088BEF94E0B5CF80911B038F +:105CD00061E070E081115ACD082F10E02B01082EF1 +:105CE00002C0440C551C0A94E2F7A9014421552135 +:105CF000452B09F448C090911A0390FD46C0829547 +:105D0000880F807680936A0198013695279536959D +:105D1000279520936D01815E80936B0110926E0137 +:105D200024E630E047E050E068E671E088E70E9452 +:105D30008B32892B09F02ACDA80175E0440F551F3D +:105D40007A95E1F780911A0380FD2DC042585B4F90 +:105D500004E610E020E230E060E488E70E94B2321E +:105D6000892B09F013CD0E94F20DC2018095909508 +:105D700040907C0450907D044822592250927D042A +:105D800040927C0403CD8F5FA7CF880F880F880FC8 +:105D900080936A0110926D01895F80936B0183E0AB +:105DA00080936E01BDCFEAEFF2E080E2DF011D9249 +:105DB0008A95E9F7EEE0F2E0F9AFE8AF0AE012E029 +:105DC00099249394A8ADB9AD2D91B9AFA8AFF801BE +:105DD00021908F01240E352E311CC10182589B4F1A +:105DE0001C01E22FF0E0E650FD4F30E020E067E0DC +:105DF000A62EA21AB92C022E01C0BB0C0A94EAF7F7 +:105E0000610190E0D6018D916D018B216A2D691B96 +:105E10006770862E062E000C770BB82F01C0BB0FC3 +:105E20008A94EAF78B2E71956195710967707727CF +:105E300001C086956A95EAF7882A8081882A80823F +:105E40009F5F9830F9F62F5F3F4F3196283031052C +:105E500071F6E2E1F2E028AD39ADE217F30709F09F +:105E6000B1CF04E610E020E230E04AEF52E074CF18 +:105E700045E00E943A0D20912C0330912D03281B00 +:105E8000390B30932D0320932C0345E0602F812F95 +:105E90000E943A0D20912A0330912B03281B390BC5 +:105EA00030932B0320932A036CE273E087E393E0A3 +:105EB0000E941B0D6AE273E088E393E00E941B0DD1 +:105EC00010923A03109239030DCD01979093340349 +:105ED0008093330307CD81608093360384E00E9472 +:105EE000F21384E190E0F2CF809142038F5F8093C0 +:105EF0004203F8CC81E080FF0FC0E0915204F091A2 +:105F00005304309749F082E0809324030480F581A4 +:105F1000E02D84E293E00995109226031092270366 +:105F2000109228031092290386E0E4E2F3E0AEE148 +:105F3000B3E001900D928A95E1F70E94051C9093C1 +:105F40004103809340030E94010F909143038917FE +:105F500031F00E94010F809343030E94B316809199 +:105F60006C04843009F051CB83E08093E900809188 +:105F7000E80082FF4ACB8091E80090E085FF0BC0EB +:105F80000E94F40630E2E32EF12C8E010F5F1F4FCA +:105F90008823E1F091E08091E8008B778093E8001E +:105FA000992309F432CBE981E150E33108F071C063 +:105FB000F0E0ED5AF84C0C9488358091F100D8014E +:105FC0008D938D01B1E0EB1AF10821F38091E80087 +:105FD00085FDF3CF8091E8008B778093E8000E94E5 +:105FE000F406882399F3D6CF1A8289E08B8311C0F7 +:105FF0008A81823009F48FC1833091F1813009F0B8 +:1060000048C00E9462080E948E356B837C838D831A +:106010009E8380916C04843009F0F7CA1091E900E6 +:106020001F709091EC00892F817090FD80E8182BF3 +:1060300082E08093E9008091E80080FF0DC050E08D +:1060400040E060E270E0CE0101960E942507809159 +:10605000E8008E778093E8001F701093E900D5CA9E +:10606000DE011396EFE4F3E081918D9323E0E935AF +:10607000F207D1F7CECF8A81823059F46B817C81CF +:106080008D819E810E948E3586E290E00E94C83507 +:10609000C0CF8FEF8983BDCF4C816B818A810E94F5 +:1060A0008D149827892798279E838D83B2CF0D81E1 +:1060B0001E811027012710278A81EB803EE0E39E96 +:1060C000700111249CE8899FE00CF11C11248C8143 +:1060D00090E0880F991FE80EF91E612FC70187967F +:1060E0000E94C835602FC7018896D0CF0E94111436 +:1060F00090CF8A818138C1F060F4803809F089CF6F +:1061000020E04B8160917904809178040E944D15C4 +:1061100080CF8238E9F0833809F07BCF20E04091CE +:106120007A046C818B81F2CF60E08B810E946416CF +:106130008B81811103C00E9424106BCF8091770462 +:1061400081608093770460E086950E94641661CF39 +:106150008B8180937B045DCF8A81813899F030F404 +:10616000803809F056CF80917A0440CF823891F080 +:10617000833809F04ECF809178048B838091790425 +:106180008C8347CF8091770480FF02C086952ECF05 +:1061900080E02CCF80917B0429CF609177047091AF +:1061A00078048091790490917A040E943B1531CF54 +:1061B00080E18A832ECF81E08A838DE117CFCA8068 +:1061C000DB80DC24CD24DC248E010F5F1F4FEC80AC +:1061D000E00EF12EF11CC6018D519D4F0E151F05CD +:1061E00009F417CFADE1CA16A1E0DA0650F40E9417 +:1061F000B435F8018483BFEFCB1ADB0A0F5F1F4F62 +:10620000EACFD80114961C92F6CF0A811B81102781 +:1062100001271027FE0131966F01EC80E00EF12E70 +:10622000F11CC8018D519D4FE016F10609F4F1CE25 +:106230000D31F1E01F0728F4D60114966C910E94ED +:10624000C835BFEFCB1ADB0A0F5F1F4FEACF0E94A2 +:106250000114DFCE85E0ADCFCA80DB80DC24CD2405 +:10626000DC248E010F5F1F4FEC80E00EF12EF11C3D +:10627000C6018796E016F10609F4CBCEECEBCE16FC +:10628000E2E0DE0658F40E94B435D80114968C93EF +:10629000FFEFCF1ADF0A0F5F1F4FEACFF80114821A +:1062A000F7CF0A811B811027012710279E012F5F3E +:1062B0003F4F6901EC80E00EF12EF11CC80187967A +:1062C000E016F10609F4A5CE0C3B32E0130728F4E2 +:1062D000D60114966C910E94C835BFEFCB1ADB0A29 +:1062E0000F5F1F4FEBCF09BD19BD09B400FEFDCFF5 +:1062F0008091D8008F7D8093D8008091E0008260EB +:106300008093E0008091E00081FDFCCF10925F045B +:106310000E94391075CB86E290E00E94B4351B8252 +:106320001C821D828E8375CE1092B9008CE0809302 +:10633000B80008959F92AF92BF92CF92DF92EF92F2 +:10634000FF920F931F93CF93DF93B82EEB010E9420 +:10635000051C6C01EE24E394F12CC431D10560F0EE +:1063600025E0E22EF12CCF3FDC0731F0CE0164E1D5 +:1063700070E00E9454357B0184EAA82E94E8992E9F +:106380001092BC00A092BC000E94051C8C01809160 +:10639000BC0087FF0DC08091B900887F883039F13B +:1063A0008091B900887F803111F10FEF1FEF09C094 +:1063B0000E94051C801B910B8E159F0540F30EEF6C +:1063C0001FEFCF3FDC07E1F2C6010E94F61B8C17DE +:1063D0009D07B0F2C801DF91CF911F910F91FF90FF +:1063E000EF90DF90CF90BF90AF909F900895B092C4 +:1063F000BB009092BC000E94051C8C018091BC00E7 +:1064000087FF0AC08091B900887F883111F08034FD +:1064100061F610E000E0DECF0E94051C801B910BAE +:106420008E159F0558F3CBCF0F931F93CF93DF9318 +:10643000EB018093BB0084E88093BC000E94051CA4 +:106440008C018091BC0087FF11C02091B900287F8A +:1064500081E090E0283211F490E080E09195819500 +:106460009109DF91CF911F910F910895CF3FDC07E4 +:1064700041F30E94051C801B910B8C179D0708F3AC +:106480008EEF9FEFEECF0F931F93CF93DF93EC012F +:1064900084EC8093BC000E94051C8C018091BC00A0 +:1064A00087FF08C08091BB0090E0DF91CF911F91E2 +:1064B0000F910895CF3FDC0789F30E94051C801BD4 +:1064C000910B8C179D0750F38EEF9FEFEECF0F933C +:1064D0001F93CF93DF93EC0184E88093BC000E946C +:1064E000051C8C018091BC0087FF08C08091BB0017 +:1064F00090E0DF91CF911F910F910895CF3FDC077E +:1065000089F30E94051C801B910B8C179D0750F38B +:106510008EEF9FEFEECFCF92DF92EF92FF920F932D +:106520001F93CF93DF936B018A017901B9010E9418 +:106530009A31E6010C0D1D1DC017D10761F424E945 +:106540002093BC00DF91CF911F910F91FF90EF90AE +:10655000DF90CF90089597FDF2CFB70189910E9407 +:106560001432EACFCF92DF92EF92FF920F931F93F4 +:10657000CF93DF93C62F6A017901B8010E949A3147 +:1065800097FD0CC0B8018C2F0E941432E601EC0C70 +:10659000FD1CCE15DF0511F097FF0CC024E92093F8 +:1065A000BC00DF91CF911F910F91FF90EF90DF9092 +:1065B000CF900895B80189910E941432EACFCF920A +:1065C000DF92EF92FF920F931F93CF93DF93F82EFA +:1065D000E62EEA016901B8010E949A3197FD15C0C3 +:1065E000B8018E2D0E94143297FD0FC0B8018F2D77 +:1065F00081600E949A31F12CE12C21E0C21AD1086D +:10660000EC14FD0400F597FF11C024E92093BC00B1 +:106610001816190614F490E080E0DF91CF911F91D5 +:106620000F91FF90EF90DF90CF900895C8010E94E6 +:10663000433297FD04C0FE01EE0DFF1D80832FEF56 +:10664000E21AF20ADDCF97FDE0CFC8010E9467325F +:1066500097FDDBCFCC0DDD1D8883D7CF84E98093F8 +:10666000BC0008958EE14A9B02C08150E1F74A9B2D +:10667000FECF08955A9880E28A95F1F75A9A0895C4 +:10668000FC013BE03A95F1F798E020E080E031E052 +:1066900040E14A95F1F7880F4A9B02C081602327A9 +:1066A00042E04A95F1F7000040E14A95F1F7915038 +:1066B00079F790E19A95F1F799B132E03A95F1F7CF +:1066C000000040E14A95F1F792FB992790F9922753 +:1066D0002081920F90830895EF92FF920F931F9362 +:1066E000CF93DF930F92CDB7DEB719828C017C0177 +:1066F000E60EF11C0E151F0561F481E099819111E0 +:1067000080E00F90DF91CF911F910F91FF90EF905C +:1067100008950E943233CE0101960E944033F80161 +:1067200081938F01E7CF529A5A9A089552985A9AB4 +:10673000EA9AE9E6F0E080818F7C808308956150D9 +:10674000770B91E001C0990F6A95EAF720E031E0FC +:10675000911108C0222391F05A9A80E28A95F1F7AC +:106760005A980895492F482339F05A9A232740E22E +:106770004A95F1F79695ECCF5A98F9CF5A98EDCF04 +:10678000FF920F931F93CF93DF93EC018C01060FC1 +:10679000111DC017D10731F4DF91CF911F910F91D7 +:1067A000FF900895F9900E943A3368E08F2D0E947F +:1067B0009F33EFCF1F920F920FB60F921124EF92DB +:1067C000FF920F931F932F933F934F935F936F937A +:1067D0007F938F939F93AF93BF93EF93FF93CF9349 +:1067E000DF930F92CDB7DEB719820E943233CE010C +:1067F00001960E944033A82FA695A695A695282F0E +:10680000229525709A2F9570290F922F93702695B7 +:106810002695920F982797708981982B09F075C05B +:10682000A83008F072C080E18A95F1F75A9A529A1E +:10683000B2E0BA95F1F700C05A98EA2EF12CEAE0DE +:10684000AE9FD0011124AF5FBE4F1896ED91FC9121 +:1068500019973097B1F06091F8017091F90116968F +:106860002D913C911797260F371F13968D919C9170 +:106870001497680F791F15964C91159712968C9165 +:1068800009958AE08E9DF0018F9DF00D1124EF5F38 +:10689000FE4F6581662351F02091F8013091F90196 +:1068A00086819781820F931F0E94C0330E943A33E2 +:1068B000F0E1FA95F1F75A9852985A9A80E18A9540 +:1068C000F1F78AE08E9D80018F9D100D11240F5FDE +:1068D0001E4FD80112966C911297662371F1209188 +:1068E000F8013091F90113968D919C91820F931FBD +:1068F0000E946C33D801ED91FC91882311F088E05F +:1069000001C082E080830E9432330F90DF91CF91EB +:10691000FF91EF91BF91AF919F918F917F916F9177 +:106920005F914F913F912F911F910F91FF90EF90A9 +:106930000F900FBE0F901F901895ED91FC91DFCF37 +:106940000F931F93CF93DF93EC0108970CF0A9C02E +:106950008AE08C9FF0018D9FF00D1124EF5FFE4FB8 +:1069600080819181892B09F49CC0F894529A5A989D +:1069700085E08A95F1F700008C2F869585709C2F15 +:106980009570890F982F937086958695890F8E0143 +:1069900093E0000F111F9A95E1F7082B0E943A33FC +:1069A00000C068E0802F0E949F33A0E1AA95F1F714 +:1069B00052985A9A4A9B27C087E090E04A9925C08E +:1069C0008AE08C9F80018D9F100D11240F5F1E4F58 +:1069D000F80165816623A1F12091F8013091F90158 +:1069E00086819781820F931F0E946C33811128C08A +:1069F000529A5A9AD801ED91FC9182E08083789462 +:106A000082E090E016C000C0D5CF0197B9F4529A49 +:106A10005A9A8AE08C9FF0018D9FF00D1124EF5F50 +:106A2000FE4F0190F081E02D81E08083789481E039 +:106A300090E0DF91CF911F910F91089500C0BECFDC +:106A40000E943233B0E2BA95F1F75A98529AE0E1D7 +:106A5000EA95F1F78AE08C9FF0018D9FF00D1124EB +:106A6000EF5FFE4F6281662351F02091F801309173 +:106A7000F90183819481820F931F0E94C0330E9489 +:106A80003A338AE08C9FF0018D9FF00D1124EF5F67 +:106A9000FE4F0190F081E02D1082789490E080E02C +:106AA000C8CF84E090E0C5CFAA1BBB1B51E107C053 +:106AB000AA1FBB1FA617B70710F0A61BB70B881F8E +:106AC000991F5A95A9F780959095BC01CD0108951D +:106AD000991B79E004C0991F961708F0961B881F30 +:106AE0007A95C9F78095089597FB072E16F40094C0 +:106AF00007D077FD09D00E94543507FC05D03EF43D +:106B0000909581959F4F0895709561957F4F089559 +:106B1000EE0FFF1F0590F491E02D09946927962749 +:106B200069277827872778270895FB01DC0102C0B1 +:106B300005900D9241505040D8F70895FB01DC01BB +:106B400004C08D910190801921F441505040C8F744 +:106B5000881B990B0895FB01DC0102C001900D9286 +:106B600041505040D8F70895F999FECF92BD81BDAC +:106B7000F89A992780B50895A6E1B0E044E050E086 +:106B80000C94EE35A8E1B0E042E050E00C94EE3514 +:106B9000262FF999FECF92BD81BDF89A019700B4D6 +:106BA000021639F01FBA20BD0FB6F894FA9AF99A76 +:106BB0000FBE08950396272F0E94C9350E94C8353D +:106BC000252F0E94C935242F0C94C9350196272FF3 +:106BD0000E94C9350C94C835DC01CB01FC01F99940 +:106BE000FECF06C0F2BDE1BDF89A319600B40D9219 +:106BF00041505040B8F708950E943E3608F481E0B5 +:106C00000895E89409C097FB3EF49095809570959F +:106C100061957F4F8F4F9F4F9923A9F0F92F96E9E8 +:106C2000BB279395F695879577956795B795F1115D +:106C3000F8CFFAF4BB0F11F460FF1BC06F5F7F4FFA +:106C40008F4F9F4F16C0882311F096E911C077230C +:106C500021F09EE8872F762F05C0662371F096E815 +:106C6000862F70E060E02AF09A95660F771F881FE4 +:106C7000DAF7880F9695879597F90895990F000888 +:106C8000550FAA0BE0E8FEEF16161706E807F907FE +:106C9000C0F012161306E407F50798F0621B730B99 +:106CA000840B950B39F40A2661F0232B242B252B1A +:106CB00021F408950A2609F4A140A6958FEF811DBD +:106CC000811D08950E9475360C94E6360E94D836D0 +:106CD00038F00E94DF3620F0952311F00C94CF3667 +:106CE0000C94D53611240C941A370E94F73670F3A1 +:106CF000959FC1F3950F50E0551F629FF001729F61 +:106D0000BB27F00DB11D639FAA27F00DB11DAA1F6F +:106D1000649F6627B00DA11D661F829F2227B00DBC +:106D2000A11D621F739FB00DA11D621F839FA00D47 +:106D3000611D221F749F3327A00D611D231F849F97 +:106D4000600D211D822F762F6A2F11249F575040EE +:106D50009AF0F1F088234AF0EE0FFF1FBB1F661F69 +:106D6000771F881F91505040A9F79E3F510580F032 +:106D70000C94CF360C941A375F3FE4F3983ED4F36B +:106D8000869577956795B795F795E7959F5FC1F7D6 +:106D9000FE2B880F911D9695879597F9089597F981 +:106DA0009F6780E870E060E008959FEF80EC0895B1 +:106DB00000240A94161617061806090608950024DA +:106DC0000A9412161306140605060895092E039454 +:106DD000000C11F4882352F0BB0F40F4BF2B11F4C8 +:106DE00060FF04C06F5F7F4F8F4F9F4F089557FD27 +:106DF0009058440F551F59F05F3F71F04795880F29 +:106E000097FB991F61F09F3F79F0879508951216BF +:106E100013061406551FF2CF4695F1DF08C016166B +:106E200017061806991FF1CF86957105610508941C +:106E30000895E894BB2766277727CB0197F9089533 +:106E4000F894FFCF29115111A4115111A4118411EB +:106E5000BC11A411B912C6120D150D151615161573 +:106E600018151615161516150D150D151D151615D3 +:106E700016151D15621CD81CDB1CEF1CF21C051D11 +:106E80000E1D321D781DAA1DBE1D441D671D3F210C +:106E90003F2198219821CA21722172217221E42177 +:106EA000552265226522F42FF82F3B304C305730A5 +:106EB00076307930AC30CD3049304930D830DB30A5 +:0C6EC000DF30053127312A312C315131EF +:106ECC000138020000000100000000380200000040 +:106EDC000501000000380200000001060000003827 +:106EEC000200000001070000003802040800000046 +:106EFC000000003802090C000000000000380201FC +:106F0C001500000000000036323331F7F667669743 +:106F1C00C6343500000000000180005F086D0E4C87 +:106F2C000E480E440EF4F5010021007F22000300F0 +:106F3C004A004A4A01F6F731333236674C4159451B +:106F4C00520042617365200047616D6520005261FB +:106F5C00697365004C6F776572004C4F434B00436F +:106F6C00617073004E756D005363726C00202020AD +:106F7C00202000534F4C415200544D50535400812B +:106F8C008283E200E900EA00B500B600B700CD004C +:106F9C008301CC008A019201940121022302240274 +:106FAC002502260227022A02B300B4006F007000EB +:106FBC000603060806010606AF0200FF01000100E9 +:106FCC0000FFFF0000010001FF000008101818105E +:106FDC000800000102020202020202020202402226 +:0E6FEC007B99017701FC00000C190C390C0098 :00000001FF From 6d17ddc6fb590f486484f24de8e207bb602f2c93 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 01:27:41 -0500 Subject: [PATCH 66/94] Update ignores --- .gitignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f3b76f7edf5b..939da4a87f60 100644 --- a/.gitignore +++ b/.gitignore @@ -20,11 +20,12 @@ api_data/v1 doxygen/ quantum/version.h -*.bin +#*.bin *.eep -*.hex +#*.hex *.qmk *.uf2 +.lnk # Old-style QMK Makefiles /keyboards/*/Makefile From 96346e5bbbff51a254a0f5efd13f5d32d725396e Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 20:32:34 -0500 Subject: [PATCH 67/94] Updated for breaking changes. Minor code still in progress. --- keyboards/solartempest/sofle/config.h | 25 +- .../solartempest/sofle/keymaps/via/bongocat.c | 3 +- .../solartempest/sofle/keymaps/via/keymap.c | 237 +- .../solartempest/sofle/keymaps/via/luna.c | 5 +- .../solartempest/sofle/keymaps/via/oled.c | 3 +- .../solartempest/sofle/keymaps/via/snakey.c | 59 +- .../sofle/keymaps/via/snakey_minimal.c | 61 +- keyboards/solartempest/sofle/rules.mk | 8 +- .../sofle/solartempest_sofle_via.hex | 3478 ++++++++--------- 9 files changed, 1937 insertions(+), 1942 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 1a347769b69a..2c62293e841d 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -58,16 +58,15 @@ #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. #endif -// Disabled for LTO +// Disabled to save space #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION - -// Disabled to save space #define NO_ACTION_ONESHOT //Save 244 bytes (-244). #define NO_RESET //Save 40 bytes (-40). +#define LAYER_STATE_8BIT //For less than 8 bits worth of layers. #undef LOCKING_SUPPORT_ENABLE //For MX lock keys only. #undef LOCKING_RESYNC_ENABLE //For MX lock keys only. -#define LAYER_STATE_8BIT //For less than 8 bits worth of layers. +//#define SUPER_ALT_TAB_ENABLE //Enable super alt tab custom keycode(+178). // Encoder support #define ENCODERS_PAD_A { F5 } @@ -81,15 +80,16 @@ // OLED settings #ifdef OLED_ENABLE - #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. - #define OLED_BRIGHTNESS 90 //Default is 100. - #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). - //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). + #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. + #define OLED_BRIGHTNESS 90 //Default is 100. + #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). + //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). //#define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). //#define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). - #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). - //#define OLED_NO_SLAVE //Enable for snakey to not render slave OLED (-160). + #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). + //#define OLED_NO_SLAVE //Enable for snakey keyboard pet code to not render slave OLED (-160). + #define SNEAK_DISABLE //Disable snakey keyboard pet sneak animation to save space (-132). #endif // Haptic feedback settings @@ -104,6 +104,7 @@ #define V_RMS 2.0 //Per ELV1411A datasheet. #define F_LRA 150 //Resonant frequency per ELV1411A datasheet. + //#define HAPTIC_OFF_IN_LOW_POWER 1 //Turn off haptic feedback while sleeping (+54). #define NO_HAPTIC_PUNCTUATION #define NO_HAPTIC_ALPHA #define NO_HAPTIC_MOD @@ -113,11 +114,10 @@ // Pimoroni trackball settings #ifdef POINTING_DEVICE_ENABLE - #define PIMORONI_TRACKBALL_INTERVAL_MS 8 //Default is 8ms + //#define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms //#define PIMORONI_TRACKBALL_ROTATE //Change according to your particular installed trackball orientation. #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INVERT_X - //#define PIMORONI_TRACKBALL_CLICK //Incompatible with keymap mouse keys. Use trackball_register_button() and trackball_click() instead. #endif // RGB settings @@ -130,7 +130,6 @@ #define RGBLIGHT_LIMIT_VAL 160 //Power draw may still exceed the USB limitations of 0.6A at max brightness with white colour with this setting. #define RGBLIGHT_LAYERS //Enable layer light indicators #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) - //#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF //Shows lock key lighting status even when RGB is off //RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. //First section is the LED matrix, second section is the electrical wiring order, and the third section is the desired mapping diff --git a/keyboards/solartempest/sofle/keymaps/via/bongocat.c b/keyboards/solartempest/sofle/keymaps/via/bongocat.c index 73ded11b4a76..093736b7a196 100644 --- a/keyboards/solartempest/sofle/keymaps/via/bongocat.c +++ b/keyboards/solartempest/sofle/keymaps/via/bongocat.c @@ -198,7 +198,7 @@ static void render_anim(void) { } } -void oled_task_user(void) { +bool oled_task_user(void) { led_usb_state = host_keyboard_led_state(); if (is_keyboard_master()) { print_status_narrow(); @@ -209,5 +209,6 @@ void oled_task_user(void) { sprintf(wpm_str, " %03d\n WPM", get_current_wpm()); oled_write(wpm_str, false); } + return false; } #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index a92b78ff829d..08840a31fe0f 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -17,7 +17,6 @@ */ #include QMK_KEYBOARD_H -#include //This is required for OLED sprintf. #ifdef ENCODER_ENABLE #include "encoder.c" @@ -26,14 +25,16 @@ #ifdef OLED_ENABLE //#include "oled.c" //Stock OLED code //Note that the keyboard animations below take a large amount of space! - //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. Disable RGBLIGHT to make enough space. + //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. //#include "snakey.c" //OLED code for Snakey, customized from Luna. If not used, do not use OLED_LOGO in config.h. + //#include //This is required for OLED sprintf (should not be required anymore since sprintf removed from my code). #include "snakey_minimal.c" //OLED code for Snakey, without WPM/related animations to save space. If not used, do not use OLED_LOGO in config.h. #endif #ifdef POINTING_DEVICE_ENABLE - #include "drivers/sensors/pimoroni_trackball.h" + bool trackball_is_scrolling = true; //Default mode is scrolling + bool trackball_is_precision = false; //Default mode is less precise bool was_scrolling = true; //Remember preferred state of trackball scrolling #endif @@ -47,8 +48,10 @@ //Variables for custom keycodes -bool is_alt_tab_active = false; // Super Alt Tab Code -uint16_t alt_tab_timer = 0; +#ifdef SUPER_ALT_TAB_ENABLE + bool is_alt_tab_active = false; // Super Alt Tab Code + uint16_t alt_tab_timer = 0; +#endif bool lshift_held = false; // LShift Backspace Delete whole Word Code bool rshift_held = false; // RShift Backspace Delete whole Word Code static uint16_t held_shift = 0; @@ -133,74 +136,72 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //Can skip these #ifdef POINTING_DEVICE_ENABLE void run_trackball_cleanup(void) { //Set colour of trackball LED. Does not require RGBLIGHT_ENABLE if colour shorthands are not used. #ifdef POINTING_DEVICE_ENABLE - if (trackball_is_scrolling()) { - trackball_set_rgbw(43, 153, 103, 0x00); - } else if (trackball_get_precision() != 1.0) { - trackball_set_rgbw(0, 27, 199, 0x00); + if (trackball_is_scrolling) { + pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); + } else if (!trackball_is_precision) { + pimoroni_trackball_set_rgbw(0, 27, 199, 0x00); } else { - trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. + pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. } #endif } - #if defined(PIMORONI_TRACKBALL_ROTATE) || defined(PIMORONI_TRACKBALL_INVERT_Y) - bool pointing_device_task_user(pimoroni_data* trackball_data) { //Code from Dasky. This corrects the rotate/inversion scrolling issue currently in QMK Master. - if (trackball_is_scrolling()) { - pimoroni_data temp = *trackball_data; - #ifdef PIMORONI_TRACKBALL_ROTATE - trackball_data->up = temp.down; - trackball_data->down = temp.up; - #endif - #ifdef PIMORONI_TRACKBALL_INVERT_Y - trackball_data->left = temp.right; - trackball_data->right = temp.left; - #endif - } - return true; + uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, pointing_device_buttons_t button) { + if (pressed) { + buttons |= 1 << (button); + #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed + DRV_pulse(4); //sharp_click + #endif + } else { + buttons &= ~(1 << (button)); } - #endif + return buttons; + } + + report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + if (trackball_is_scrolling) { + mouse_report.h = mouse_report.x; + #ifndef PIMORONI_TRACKBALL_INVERT_X + mouse_report.v = 0.3*mouse_report.y; //Multiplier to lower scrolling sensitivity + #else + mouse_report.v = 0.3*-mouse_report.y; //invert vertical scroll direction + #endif + mouse_report.x = mouse_report.y = 0; + } + return mouse_report; + } #if !defined(MOUSEKEY_ENABLE) //Allows for button clicks on keymap even though mousekeys is not defined. static bool mouse_button_one, trackball_button_one; #endif - void trackball_register_button(bool pressed, enum mouse_buttons button) { //Register mouse keys for trackball. + void trackball_register_button(bool pressed, enum mouse_buttons button) { report_mouse_t currentReport = pointing_device_get_report(); if (pressed) { currentReport.buttons |= button; - /*#ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed - DRV_pulse(4); //sharp_click - #endif*/ } else { currentReport.buttons &= ~button; } pointing_device_set_report(currentReport); } - - void trackball_click(bool pressed, report_mouse_t* mouse) { //Use for mouse buttons. Click+drag is done with keymap and not compatible with trackball click functions. - if (pressed) { //trackball pressed - //tap_code_delay(KC_A,300); //Use delay as simple debounce for key strokes - mouse->buttons |= MOUSE_BTN1; - #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed - DRV_pulse(4); //sharp_click - #endif - } else { //released - mouse->buttons &= ~MOUSE_BTN1; - } - } #endif void matrix_scan_user(void) { - if (is_alt_tab_active) { //Allows for use of super alt tab. - if (timer_elapsed(alt_tab_timer) > 1000) { - unregister_code(KC_LALT); - is_alt_tab_active = false; - } - } - #ifdef ENCODER_ENABLE - encoder_action_unregister(); - #endif + #ifdef SUPER_ALT_TAB_ENABLE + if (is_alt_tab_active) { //Allows for use of super alt tab. + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + #endif + #ifdef ENCODER_ENABLE + encoder_action_unregister(); + #endif + if (timer_elapsed32(oled_timer) > 60000) { //60000ms = 60s + pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is idle for 1 minute. Would use suspend_power_down_user but the code is not working. + } } @@ -212,32 +213,34 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif switch (keycode) { //For keycode overrides + #ifdef SUPER_ALT_TAB_ENABLE case ATABF: //Alt tab forwards - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_TAB); - } else { - unregister_code(KC_TAB); - } - return true; + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; case ATABR: //Alt tab reverse - if (record->event.pressed) { - if (!is_alt_tab_active) { - is_alt_tab_active = true; - register_code(KC_LALT); - } - alt_tab_timer = timer_read(); - register_code(KC_LSHIFT); - register_code(KC_TAB); - } else { - unregister_code(KC_LSHIFT); - unregister_code(KC_TAB); - } - return true; + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + #endif case NMR: //Move window to next monitor on right if (record->event.pressed) { @@ -308,15 +311,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef POINTING_DEVICE_ENABLE //Allow modes when trackball is enabled. case PM_SCROLL: if (record->event.pressed) { - if (trackball_is_scrolling()){ //Enable toggling for trackball scrolling - trackball_set_scrolling(false); + if (trackball_is_scrolling || was_scrolling){ //Enable toggling for trackball scrolling + trackball_is_scrolling=false; was_scrolling=false; //Tracks status of scrolling setting. Works with holding of layer key for mouse mode. - }else if(was_scrolling==true){ - trackball_set_scrolling(false); - was_scrolling=false; - } - else{ - trackball_set_scrolling(true); + } else{ + trackball_is_scrolling=true; was_scrolling=true; } run_trackball_cleanup(); @@ -324,38 +323,40 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } case PM_PRECISION: if (record->event.pressed) { - if (trackball_get_precision()==1){ //Enable toggling for trackball precision - trackball_set_precision(1.75); + if (trackball_is_precision){ //Enable toggling for trackball precision + pimoroni_trackball_set_precision(1.75); + trackball_is_precision=false; } else{ - trackball_set_precision(1); + pimoroni_trackball_set_precision(0.8); + trackball_is_precision=true; } run_trackball_cleanup(); break; } - #if !defined(MOUSEKEY_ENABLE) //Allow for using mouse buttons in the keymap when mouse keys is not enabled. - case KC_MS_BTN1: - mouse_button_one = record->event.pressed; - trackball_button_one = record->event.pressed; - //trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); - trackball_register_button(mouse_button_one, MOUSE_BTN1); - break; - case KC_MS_BTN2: - trackball_register_button(record->event.pressed, MOUSE_BTN2); - break; - case KC_MS_BTN3: - trackball_register_button(record->event.pressed, MOUSE_BTN3); - break; - #endif + #ifndef MOUSEKEY_ENABLE //Allow for using mouse buttons in the keymap when mouse keys is not enabled. + case KC_MS_BTN1: + mouse_button_one = record->event.pressed; + trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + break; + case KC_MS_BTN2: + trackball_register_button(record->event.pressed, MOUSE_BTN2); + break; + case KC_MS_BTN3: + trackball_register_button(record->event.pressed, MOUSE_BTN3); + break; + #endif #endif #ifdef KEYBOARD_PET // KEYBOARD PET STATUS case KC_LCTL: case KC_RCTL: + #ifndef SNEAK_DISABLE if (record->event.pressed) { //Pet sneaks when control held. isSneaking = true; } else { isSneaking = false; } + #endif #ifdef HAPTIC_ENABLE //Set different patterns for keys on certain layers. In this case it is for gaming feedback. if (record->event.pressed && (get_highest_layer(layer_state)==1)) { DRV_pulse(51); //buzz_20 @@ -392,23 +393,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } -#if defined(OLED_ENABLE) || defined(POINTING_DEVICE_ENABLE) - void suspend_power_down_user(void) { - #ifdef OLED_ENABLE //Turn off OLEDs when computer is sleeping - oled_off(); - #endif - #ifdef POINTING_DEVICE_ENABLE - trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is sleeping - #endif - } -#endif -#ifdef POINTING_DEVICE_ENABLE - void suspend_wakeup_init_user(void) { //turn on Pimoroni LED when awoken - run_trackball_cleanup(); - } -#endif - - #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) //LED Lock keys status indicators are used since the sofle doesn't have dedicated LEDS for this. //Note 1: These will assign static colour and brightness to the LED range specified. @@ -447,10 +431,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_sethsv_noeeprom(50,255,80); #ifdef POINTING_DEVICE_ENABLE if (was_scrolling==true){ //Check if was scrolling when layer was left - trackball_set_scrolling(true); + trackball_is_scrolling=true; run_trackball_cleanup(); } else{ - trackball_set_scrolling(false); + trackball_is_scrolling=false; run_trackball_cleanup(); } #endif @@ -480,7 +464,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif #ifdef POINTING_DEVICE_ENABLE //Set trackball mouse mode when layer 4 is activated if (was_scrolling==true){ //Check if in scrolling mode when layer was activated - trackball_set_scrolling(false); + trackball_is_scrolling=false; run_trackball_cleanup(); } #endif @@ -508,8 +492,19 @@ void keyboard_post_init_user(void) #endif layer_move(0); //Start on layer0 by default to set LED colours. Can remove to save a very small amount of space. #ifdef POINTING_DEVICE_ENABLE - trackball_set_precision(1.75); //Start trackball with lower precision mode - trackball_set_scrolling(true); //Start trackball in scrolling mode + pimoroni_trackball_set_precision(1.75); //Start trackball with lower precision mode run_trackball_cleanup(); #endif } + +#ifdef POINTING_DEVICE_ENABLE + void suspend_power_down_user(void) { //Code does not work, need to confirm why + pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is sleeping + } +#endif + +#ifdef POINTING_DEVICE_ENABLE + void suspend_wakeup_init_user(void) { //turn on Pimoroni LED when awoken + run_trackball_cleanup(); + } +#endif diff --git a/keyboards/solartempest/sofle/keymaps/via/luna.c b/keyboards/solartempest/sofle/keymaps/via/luna.c index a18a7889e8c5..d19eda64cad0 100644 --- a/keyboards/solartempest/sofle/keymaps/via/luna.c +++ b/keyboards/solartempest/sofle/keymaps/via/luna.c @@ -285,7 +285,7 @@ return OLED_ROTATION_270; } - void oled_task_user(void) { + bool oled_task_user(void) { /* KEYBOARD PET VARIABLES START */ current_wpm_read = get_current_wpm(); led_usb_state = host_keyboard_led_state(); @@ -295,7 +295,7 @@ if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations if (timer_elapsed32(oled_timer) > 30000) { oled_off(); - return; + return false; } else { oled_on(); } @@ -306,5 +306,6 @@ } else { print_logo_narrow(); } + return false; } #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/oled.c b/keyboards/solartempest/sofle/keymaps/via/oled.c index 190477ab5cca..2cd5456d78d4 100644 --- a/keyboards/solartempest/sofle/keymaps/via/oled.c +++ b/keyboards/solartempest/sofle/keymaps/via/oled.c @@ -72,11 +72,12 @@ return rotation; } - void oled_task_user(void) { + bool oled_task_user(void) { if (is_keyboard_master()) { print_status_narrow(); } else { render_logo(); } + return false; } #endif \ No newline at end of file diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index c8dc8bdfb420..3485f880a7f7 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -41,7 +41,9 @@ // status variables int current_wpm_read = 0; - bool isSneaking = false; + #ifndef SNEAK_DISABLE + bool isSneaking = false; + #endif bool isJumping = false; bool showedJump = true; bool isBarking = false; @@ -157,27 +159,29 @@ }; // Sneak - static const char PROGMEM sneak[2][ANIM_SIZE] = { - // 'sneak1', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, - }, - - // 'sneak2', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; + #ifndef SNEAK_DISABLE + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + #endif // animation void animate_luna(void) { @@ -201,8 +205,10 @@ // current status if(isBarking) { oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); - } else if(isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #ifndef SNEAK_DISABLE + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #endif } else if(current_wpm_read <= MIN_WALK_SPEED) { oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); } else if(current_wpm_read <= MIN_RUN_SPEED) { @@ -295,7 +301,7 @@ return OLED_ROTATION_270; } - void oled_task_user(void) { + bool oled_task_user(void) { /* KEYBOARD PET VARIABLES START */ current_wpm_read = get_current_wpm(); /* KEYBOARD PET VARIABLES END */ @@ -304,7 +310,7 @@ if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations if (timer_elapsed32(oled_timer) > 30000) { oled_off(); - return; + return false; } else { oled_on(); } @@ -315,5 +321,6 @@ } else { print_logo_narrow(); } + return false; } #endif diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c index ab2069a2fde6..37a533938ab6 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -37,7 +37,9 @@ uint8_t current_frame = 0; // status variables - bool isSneaking = false; + #ifndef SNEAK_DISABLE + bool isSneaking = false; + #endif bool isJumping = false; bool showedJump = true; bool isBarking = false; @@ -109,27 +111,28 @@ }; // Sneak - static const char PROGMEM sneak[2][ANIM_SIZE] = { - // 'sneak1', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, - }, - - // 'sneak2', 32x22px - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, - 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, - 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - } - }; + #ifndef SNEAK_DISABLE + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + #endif // animation void animate_luna(void) { @@ -153,9 +156,10 @@ // current status if(isBarking) { oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); - - } else if(isSneaking) { - oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #ifndef SNEAK_DISABLE + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #endif } else { oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); } @@ -224,13 +228,13 @@ return OLED_ROTATION_270; } - void oled_task_user(void) { + bool oled_task_user(void) { led_usb_state = host_keyboard_led_state(); - if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations + if (is_keyboard_master()) { //OLED timeout 30000ms = 30s if (timer_elapsed32(oled_timer) > 30000) { oled_off(); - return; + return false; } else { oled_on(); } @@ -243,5 +247,6 @@ print_logo_narrow(); #endif } + return false; } #endif diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index 0fa232935525..a72ebd90003e 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -12,9 +12,9 @@ GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) LTO_ENABLE = yes # Save space by link time optimization -EXTRAKEY_ENABLE = yes # Audio control and System control (+450) RGBLIGHT_ENABLE = yes # RGB lighting (+3826) ENCODER_ENABLE = yes # Rotary encoders (+1112) +EXTRAKEY_ENABLE = yes # Audio control and System control (+450) MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. NKRO_ENABLE = no # 6KRO by default. NKRO works if enabled (+328) COMBO_ENABLE = no # Tap combo chording (+952) @@ -25,7 +25,7 @@ OLED_DRIVER = SSD1306 # Specify OLED driver WPM_ENABLE = no # WPM counter for typing-speed-reactive keyboard pets (+1298) POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) -QUANTUM_LIB_SRC += i2c_master.c -SRC += drivers/sensors/pimoroni_trackball.c +POINTING_DEVICE_DRIVER = pimoroni_trackball -HAPTIC_ENABLE += DRV2605L # Enable Pimoroni Haptic Bzzz LRA (+1192) +HAPTIC_ENABLE = yes # Enable Pimoroni Haptic Bzzz LRA (+1192) +HAPTIC_DRIVER += DRV2605L diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 136dfb3bc2c3..53e65b8de97e 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,14 +1,14 @@ -:100000000C9449060C9490060C9490060C94DA33E8 -:100010000C9490060C9490060C9490060C94900608 -:100020000C9490060C9490060C94FB1A0C94B71A3E -:100030000C943A280C9490060C9490060C9490061C -:100040000C9490060C9490060C9490060C949006D8 -:100050000C9490060C94D21B0C9490060C94900671 -:100060000C9490060C9490060C9490060C949006B8 -:100070000C9490060C9490060C9490060C949006A8 -:100080000C9490060C9490060C9490060C94900698 -:100090000C9490060C9490060C9490060C94900688 -:1000A0000C9490060C9490060C94900637032B64E5 +:100000000C94E9050C9430060C9430060C945E3385 +:100010000C9430060C9430060C9430060C94300688 +:100020000C9430060C9430060C941B240C94D723AB +:100030000C9414290C9430060C9430060C94300661 +:100040000C9430060C9430060C9430060C94300658 +:100050000C9430060C94F4240C9430060C94300666 +:100060000C9430060C9430060C9430060C94300638 +:100070000C9430060C9430060C9430060C94300628 +:100080000C9430060C9430060C9430060C94300618 +:100090000C9430060C9430060C9430060C94300608 +:1000A0000C9430060C9430060C94300637032B6405 :1000B000AAFF000000001C032B64AAFF0000000040 :1000C00004032B64AAFF000000000000D7FF78FFA4 :1000D00000000000000080FF64FF0000000000003E @@ -54,1740 +54,1726 @@ :10035000010102060C040000000000000000000083 :1003600000387C60E0E0F0F0F8F9FFFFFFFFFF7E6F :100370001C00000000000000000000000000000061 -:10038000000000000000000000000000000000006D -:100390000000000000000000000000000000CCF899 -:1003A00070000000000000C0F0F8F87CFCEEE6FCF5 -:1003B000FC7878B00000000000000000003F7FF1F2 -:1003C000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFCC5 -:1003D000F8F06000010306020000000000000000C9 -:1003E000000000000000000000000000000000000D -:1003F0000000000000000000000000000080E0F8A5 -:100400001C000000000000C0F0F8F87CFCEEE6FCE8 -:10041000FC7878300000000000000000003F7FF012 -:10042000F8F87C7CF8F0F0F1E7EFEFFEFEFEFCFC64 -:10043000F8F0600000000000000000000000000074 -:1004400080C0C0E0E03070E0E0C0C080000000008C -:100450000000000000000000000000000000001F7D -:100460007FFFFFE7E7EFEFCFCB83830100000000C2 -:1004700000000000000000000000000000061C3822 -:1004800078F1E3E3E7F7F7FFFFFFFF7F3E000000AF -:10049000000000000000000000000000000000005C -:1004A0000000000000000000000000000080C0E02C -:1004B000E060E0C0C080800000000000000000009C -:1004C0000000000020F8FEFFFFFF9F0F0E1F1F3FE0 -:1004D0003F7EE683030F43439088080000031E3CE1 -:1004E00078F0E0E0F0F0FBFFFFFF7F7F38000000D6 -:1004F0000000000000000000000000000004F6B84A -:10050000F8D8F0E0C000000080C0E0E0F0F0F0F0CB -:10051000E0E0C080000000000000000080C0E1F3C7 -:10052000FB7F1F0F0000F0FFFF3F03010000008072 -:10053000C1F3FF7F1F000080C0E0301E3F3F7FF906 -:10054000F0F070783C3F1F0F03000000001C3F7F5D -:100550007FFBF1F0783C1E0F030000000101010158 -:10056000010101010102020202020202020203036E -:10057000030303030303040404040404040505053E -:100580000505060606060607070707070808080800 -:10059000090909090A0A0A0B0B0B0C0C0C0D0D0DAD -:1005A0000E0E0E0F0F0F1010111111121213131443 -:1005B00014151516161717181819191A1A1B1B1CBB -:1005C0001D1D1E1E1F202021222223242425262615 -:1005D000272829292A2B2C2D2D2E2F30313232334A -:1005E0003435363738393A3B3C3D3E3F4041424353 -:1005F0004445464748494A4C4D4E4F505153545537 -:100600005658595A5B5D5E5F616264656668696BE6 -:100610006C6D6F7072737577787A7B7D7E80828364 -:100620008587888A8C8E8F91939596989A9C9EA0A8 -:10063000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0B5 -:10064000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E47E -:10065000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55406E -:100660001C1004010D190A24232221201F1E1D1B0A -:100670001A18171615141312110F0E0C0B09080770 -:1006800006050302002D3945483C303F2526272822 -:10069000292A2B2C2E2F31323334353637383A3B3A -:1006A0003D3E404142434446474907087F08070012 -:1006B0003E5B4F5B3E003E6B4F6B3E001C3E7C3E04 -:1006C0001C00183C7E3C18001C577D571C001C5E0B -:1006D0007F5E1C0000183C180000FFE7C3E7FF0026 -:1006E000001824180000FFE7DBE7FF0030483A0657 -:1006F0000E00262979292600407F05050700407F46 -:1007000005253F005A3CE73C5A007F3E1C1C080070 -:10071000081C1C3E7F0014227F2214005F5F005FD4 -:100720005F0006097F017F00006689956A006060AE -:100730006060600094A2FFA2940008047E04080098 -:1007400010207E20100008082A1C0800081C2A0817 -:1007500008001E10101010000C1E0C1E0C0030386B -:100760003E383000060E3E0E06000000000000007D -:1007700000005F000000000700070000147F147FE6 -:100780001400242A7F2A12002313086462003649C9 -:1007900056205000000807030000001C2241000002 -:1007A0000041221C00002A1C7F1C2A0008083E0869 -:1007B00008000080703000000808080808000000E9 -:1007C000606000002010080402003E5149453E00D0 -:1007D00000427F4000007249494946002141494D8D -:1007E00033001814127F10002745454539003C4A54 -:1007F000494931004121110907003649494936006C -:10080000464949291E000000140000000040340041 -:1008100000000008142241001414141414000041B4 -:10082000221408000201590906003E415D594E009C -:100830007C1211127C007F49494936003E414141FA -:1008400022007F4141413E007F49494941007F09E3 -:10085000090901003E41415173007F0808087F00EB -:1008600000417F4100002040413F01007F081422E9 -:1008700041007F40404040007F021C027F007F0417 -:1008800008107F003E4141413E007F0909090600F2 -:100890003E4151215E007F091929460026494949F8 -:1008A000320003017F0103003F4040403F001F2012 -:1008B00040201F003F4038403F006314081463008D -:1008C0000304780403006159494D4300007F41410E -:1008D0004100020408102000004141417F00040251 -:1008E00001020400404040404000000307080000AF -:1008F0002054547840007F2844443800384444440D -:100900002800384444287F00385454541800000804 -:100910007E09020018A4A49C78007F0804047800D3 -:1009200000447D4000002040403D00007F102844EE -:10093000000000417F4000007C04780478007C08BF -:1009400004047800384444443800FC182424180077 -:1009500018242418FC007C0804040800485454544B -:10096000240004043F4424003C4040207C001C2020 -:1009700040201C003C4030403C00442810284400EB -:100980004C9090907C004464544C440000083641E4 -:10099000000000007700000000413608000002015E -:1009A000020402003C2623263C0000000000000058 -:1009B000404040F0F8F8FF38FFF8F83FF8F8FF380B -:1009C000FFF8F8F040404000000000000080C0C088 -:1009D000C0800000C0C08000000080C0C000C0C057 -:1009E000000080C0C00000000000C0C0C0C0C00047 -:1009F000C0C0000000000000000000000000000077 -:100A000000000000000000000000000000000000E6 -:100A100000000000000000000000000000000000D6 -:100A2000000000000000000000C0F0F8FC3E1E06C0 -:100A3000010000007F4141417F007F4141417F0033 -:100A40000080C0E07E5B4F5BFEC00000C000DCD7D2 -:100A5000DEDEDED7DC00C000000000000000000089 +:1003800080C0C0E0E03070E0E0C0C080000000004D +:100390000000000000000000000000000000001F3E +:1003A0007FFFFFE7E7EFEFCFCB8383010000000083 +:1003B00000000000000000000000000000061C38E3 +:1003C00078F1E3E3E7F7F7FFFFFFFF7F3E00000070 +:1003D000000000000000000000000000000000001D +:1003E0000000000000000000000000000080C0E0ED +:1003F000E060E0C0C080800000000000000000005D +:100400000000000020F8FEFFFFFF9F0F0E1F1F3FA0 +:100410003F7EE683030F43439088080000031E3CA1 +:1004200078F0E0E0F0F0FBFFFFFF7F7F3800000096 +:100430000000000000000000000000000004F6B80A +:10044000F8D8F0E0C000000080C0E0E0F0F0F0F08C +:10045000E0E0C080000000000000000080C0E1F388 +:10046000FB7F1F0F0000F0FFFF3F03010000008033 +:10047000C1F3FF7F1F000080C0E0301E3F3F7FF9C7 +:10048000F0F070783C3F1F0F03000000001C3F7F1E +:100490007FFBF1F0783C1E0F030000000101010119 +:1004A000010101010102020202020202020203032F +:1004B00003030303030304040404040404050505FF +:1004C00005050606060606070707070708080808C1 +:1004D000090909090A0A0A0B0B0B0C0C0C0D0D0D6E +:1004E0000E0E0E0F0F0F1010111111121213131404 +:1004F00014151516161717181819191A1A1B1B1C7C +:100500001D1D1E1E1F2020212222232424252626D5 +:10051000272829292A2B2C2D2D2E2F30313232330A +:100520003435363738393A3B3C3D3E3F4041424313 +:100530004445464748494A4C4D4E4F5051535455F7 +:100540005658595A5B5D5E5F616264656668696BA7 +:100550006C6D6F7072737577787A7B7D7E80828325 +:100560008587888A8C8E8F91939596989A9C9EA069 +:10057000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC076 +:10058000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E43F +:10059000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55402F +:1005A0001C1004010D190A24232221201F1E1D1BCB +:1005B0001A18171615141312110F0E0C0B09080731 +:1005C00006050302002D3945483C303F25262728E3 +:1005D000292A2B2C2E2F31323334353637383A3BFB +:1005E0003D3E404142434446474907087F080700D3 +:1005F0003E5B4F5B3E003E6B4F6B3E001C3E7C3EC5 +:100600001C00183C7E3C18001C577D571C001C5ECB +:100610007F5E1C0000183C180000FFE7C3E7FF00E6 +:10062000001824180000FFE7DBE7FF0030483A0617 +:100630000E00262979292600407F05050700407F06 +:1006400005253F005A3CE73C5A007F3E1C1C080031 +:10065000081C1C3E7F0014227F2214005F5F005F95 +:100660005F0006097F017F00006689956A0060606F +:100670006060600094A2FFA2940008047E04080059 +:1006800010207E20100008082A1C0800081C2A08D8 +:1006900008001E10101010000C1E0C1E0C0030382C +:1006A0003E383000060E3E0E06000000000000003E +:1006B00000005F000000000700070000147F147FA7 +:1006C0001400242A7F2A120023130864620036498A +:1006D00056205000000807030000001C22410000C3 +:1006E0000041221C00002A1C7F1C2A0008083E082A +:1006F00008000080703000000808080808000000AA +:10070000606000002010080402003E5149453E0090 +:1007100000427F4000007249494946002141494D4D +:1007200033001814127F10002745454539003C4A14 +:10073000494931004121110907003649494936002C +:10074000464949291E000000140000000040340002 +:100750000000000814224100141414141400004175 +:10076000221408000201590906003E415D594E005D +:100770007C1211127C007F49494936003E414141BB +:1007800022007F4141413E007F49494941007F09A4 +:10079000090901003E41415173007F0808087F00AC +:1007A00000417F4100002040413F01007F081422AA +:1007B00041007F40404040007F021C027F007F04D8 +:1007C00008107F003E4141413E007F0909090600B3 +:1007D0003E4151215E007F091929460026494949B9 +:1007E000320003017F0103003F4040403F001F20D3 +:1007F00040201F003F4038403F006314081463004E +:100800000304780403006159494D4300007F4141CE +:100810004100020408102000004141417F00040211 +:10082000010204004040404040000003070800006F +:100830002054547840007F284444380038444444CD +:100840002800384444287F003854545418000008C5 +:100850007E09020018A4A49C78007F080404780094 +:1008600000447D4000002040403D00007F102844AF +:10087000000000417F4000007C04780478007C0880 +:1008800004047800384444443800FC182424180038 +:1008900018242418FC007C0804040800485454540C +:1008A000240004043F4424003C4040207C001C20E1 +:1008B00040201C003C4030403C00442810284400AC +:1008C0004C9090907C004464544C440000083641A5 +:1008D000000000007700000000413608000002011F +:1008E000020402003C2623263C0000000000000019 +:1008F000404040F0F8F8FF38FFF8F83FF8F8FF38CC +:10090000FFF8F8F040404000000000000080C0C048 +:10091000C0800000C0C08000000080C0C000C0C017 +:10092000000080C0C00000000000C0C0C0C0C00007 +:10093000C0C0000000000000000000000000000037 +:1009400000000000000000000000000000000000A7 +:100950000000000000000000000000000000000097 +:10096000000000000000000000C0F0F8FC3E1E0681 +:10097000010000007F4141417F007F4141417F00F4 +:100980000080C0E07E5B4F5BFEC00000C000DCD793 +:10099000DEDEDED7DC00C00000000000000000004A +:1009A0000000000000000000000000000000000047 +:1009B000494949FFFFFFFFE0DFBFBF00BFBFDFE0E6 +:1009C000FFFFFFFF49494900000000001F3F606032 +:1009D000E0BF1F007F7F071E381E077F7F007F7FDD +:1009E0000E1F3B716000000000007F7F0C0C0C00AC +:1009F0007E7E007F7E0303007F7E03037E7E0303F3 +:100A00007F7E000F3E703C063C703E0F00327B49FB +:100A1000493F7E007F7E0303001E3F69696F260009 +:100A2000000000000000000000030F1F3F3C787032 +:100A3000600000007F4141417F007F4141417F00D4 +:100A4000307B7F7830202030787F3B0003000F7FA1 +:100A50000F0F0F7F0F0003000000000000000000D8 :100A60000000000000000000000000000000000086 -:100A7000494949FFFFFFFFE0DFBFBF00BFBFDFE025 -:100A8000FFFFFFFF49494900000000001F3F606071 -:100A9000E0BF1F007F7F071E381E077F7F007F7F1C -:100AA0000E1F3B716000000000007F7F0C0C0C00EB -:100AB0007E7E007F7E0303007F7E03037E7E030332 -:100AC0007F7E000F3E703C063C703E0F00327B493B -:100AD000493F7E007F7E0303001E3F69696F260049 -:100AE000000000000000000000030F1F3F3C787072 -:100AF000600000007F4141417F007F4141417F0014 -:100B0000307B7F7830202030787F3B0003000F7FE0 -:100B10000F0F0F7F0F000300000000000000000017 -:100B200000000000000000000000000000000000C5 -:100B3000010101070F0F7F0F7F0F0F7E0F0F7F0F38 -:100B40007F0F0F07010101000000000000000000FE -:100B50000001010000000000000000000000000093 -:100B60000000000000000000000000000000000085 -:100B70000000000000000000000000000000000075 -:100B80000000000000000000000000000000000065 -:100B90000000000000000000000000000000000055 -:100BA0000000000000000000000000000000000045 -:100BB0000000000000000000000000000000000035 -:100BC0000000000000000000000000000000000025 -:100BD0000000000000000000000000000000000015 -:100BE0000000000000000000000000AF00AE09029D -:100BF0005B00030100A0FA090400000103010100E9 -:100C00000921110100012240000705810308000AA3 -:100C10000904010002030000000921110100012262 -:100C200022000705820320000107050303200001BD -:100C30000904020001030000000921110100012242 -:100C40007B000705840320000A1201000200000057 -:100C50000832FC87120200010200011E0353006FDC -:100C6000006C00610072006900750073005F005342 -:100C7000006F0066006C006500000010034B00650B -:100C8000007900680069007600650000000403092F -:100C9000040011241FBECFEFDAE0DEBFCDBF04B6E3 -:100CA00003FE27C08091800690918106A091820664 -:100CB000B09183068730904BA740B04BD1F410928F -:100CC000800610928106109282061092830614BE4E -:100CD00084B7877F84BF0FB6F894A8958091600091 -:100CE000886180936000109260000FBEE0E0F8E33E -:100CF000099512E0A0E0B1E0ECECFEE602C0059040 -:100D00000D92AE32B107D9F726E0AEE2B2E001C0F3 -:100D10001D92A038B207E1F70E9461280C94203799 -:100D20000C940000CF93DF9340917E0650917F0694 -:100D30004E5754409A01205A3F4F21303240C0F064 -:100D400020E032E0241B350B60917C0470917D041F -:100D5000FC01CA01240F351FC1E0D0E082179307C0 -:100D600050F070937D0460937C04DF91CF910895DF -:100D700020E630E0E9CF4491DC01A258BB4F5C9102 -:100D8000451781F04C93AC01A5E056954795AA957F -:100D9000E1F7DE0102C0AA0FBB1F4A95E2F7AD01E1 -:100DA0006A2B752B01963196D9CFE8EDF0E0808162 -:100DB0008E7F80831092E2001092DA001092E100A0 -:100DC000A0EEB0E08C9181608C9380818F778083DE -:100DD00019BCA7EDB0E08C918E7F8C9380818F7EC3 -:100DE000808310925E0408952091E4003091E50024 -:100DF00095E6A9012091EC00822F817020FF06C0AA -:100E00008091E80080FF06C080E008952091E8000E -:100E100022FD1AC080916C04882389F0853089F006 -:100E20008091EB0085FD0FC02091E4003091E5003A -:100E300042175307F9F29150E1F684E0089582E0F9 -:100E4000089583E0089581E00895EF92FF920F9353 -:100E50001F93CF937C018B010E94F406C82F811150 -:100E600017C08091E80085FD0BC08091E8008E7767 -:100E70008093E8000E94F406882399F3C82F08C0E5 -:100E8000F70181917F018093F1000150110949F729 -:100E90008C2FCF911F910F91FF90EF90089580912B -:100EA0006E0487FF13C08091E80082FF06C0809126 -:100EB000E8008B778093E80004C080916C04811176 -:100EC000F2CF089580916C048823D9F38091E800D3 -:100ED00080FFF8CF8091E8008E77ECCF982F909329 -:100EE000E900242F762F50E0891731F07091EC0043 -:100EF0002091ED005091F00021FD07C09F5F9730D9 -:100F000071F78093E90081E008953091EB003E7F16 -:100F10003093EB003091ED003D7F3093ED00309148 -:100F2000EB0031603093EB007093EC002093ED0008 -:100F30005093F0002091EE0027FDE0CF80E008956F -:100F4000CF92DF92EF92FF920F931F93CF93DF9395 -:100F5000C8EDD0E088818F7E8883E7EDF0E0808166 -:100F60008160808384E082BF81E080935E04888119 -:100F70008E7F888302EE10E0F80110821092DA0072 -:100F800081EEC82ED12CF601108288818F7788835C -:100F900088818068888388818F7D888319BC1092BE -:100FA0006C0410926D0410926B0410926A0490EE1F -:100FB000E92EF12CF70180818B7F8083888181600D -:100FC000888342E060E080E00E946E07F601808145 -:100FD0008E7F8083F801808181608083808188603A -:100FE0008083F70180818E7F808388818061888300 -:100FF000DF91CF911F910F91FF90EF90DF90CF90F5 -:101000000895FC01809174049091750486179707E8 -:10101000A0F06115710529F49091E8009E779093F6 -:10102000E80090E06115710551F4911108C08091BC -:10103000E80082FF34C080E00895BC01F2CF8091C7 -:101040006C048823C1F18530C1F18091E80083FDF3 -:1010500030C08091E80082FDEACF8091E80080FFF7 -:10106000E1CF8091F3002091F200382F61157105D6 -:1010700019F02830310558F091E02830310509F099 -:1010800090E02091E8002E772093E800CBCF81916B -:101090008093F100615071092F5F3F4FE7CF80913E -:1010A0006C04882341F0853041F08091E80083FF93 -:1010B000BECF81E0089582E0089583E00895809195 -:1010C000610408952FB7F894609157047091580403 -:1010D0008091590490915A042FBF0895209154048F -:1010E000309155042817390771F090935504809377 -:1010F0005404E0915204F0915304309721F000849D -:10110000F185E02D09940895209150043091510407 -:101110002817390771F09093510480935004E0919F -:101120005204F0915304309721F00680F781E02DAE -:10113000099408952091430436E0839FC00111244F -:10114000629F800D911D1124811522E0920714F0F9 -:1011500090E080E082589B4F90937F0680937E06BC -:101160000895883E9105C8F4803E910548F48B327D -:10117000910540F48832910518F404974A9758F481 -:1011800080E008958C32910530F089339105C0F3E9 -:1011900084369105A9F381E011C0811522E59207FB -:1011A00070F48115E1E59E0758F790548115904140 -:1011B00090F7FB019581907F81E011F308958115EF -:1011C00028E5920740F38115E9E59E0728F090563F -:1011D0008115904270F3DFCFFB019581907F81E014 -:1011E000903271F6EBCFFC01680F791F8FEF91E31E -:1011F0002191822728E030E087FF09C0880F8927E6 -:1012000021503109C9F7E617F70791F70895880FBC -:10121000F7CFFA01811101C0FB0109948091770495 -:10122000982F9E7F61F48170826080937704809113 -:101230007A04813A18F080EA80937A04089588311C -:10124000B0F381708661F1CFAF92BF92DF92EF92DF -:10125000FF920F931F93CF93DF93082F162FE9016F -:10126000E42FF0E0E55AFA4F611110C0E4915E2FCF -:101270004E2F4983E8835A83DF91CF911F910F91BD -:10128000FF90EF90DF90BF90AF900895E62EF12C85 -:101290004491D42EE42FF0E026E0829FC001112477 -:1012A0002FEF30E0B9010E945435802F90E0880F75 -:1012B000991F55E5569FD001579FB00D11248A1BE9 -:1012C0009B0B982F990F890F5901AE18BF08AE9E3E -:1012D000D001AF9EB00DBE9EB00D11245B2F189FA4 -:1012E00080011124012F11275901A01AB10AAE9EC5 -:1012F0008001AF9E100DBE9E100D11245901A81A39 -:10130000B108AE9CC001AF9C900DBE9C900D112405 -:10131000892F9927281B390B2E9FC0012F9F900DD5 -:101320003E9F900D1124E92F62307105A1F050F419 -:101330006115710509F49DCF6130710581F0EB2FC6 -:10134000512F97CF6430710569F080F066307105D8 -:1013500009F48FCFF4CFE42F4B2F592F8ACFE42FEE -:10136000412F87CFEB2F542F492F83CF4B2F5D2D4C -:10137000E12F7FCF80E0089578940895F894E82FC6 -:10138000E295EF70F0E031A1282F2F7081E090E01E -:1013900001C0880F2A95EAF7982F9095932391A37F -:1013A00092A1892B82A30C94BC099091D60292FF42 -:1013B00006C0282F28712830F9F4877F846093FFB6 -:1013C00006C0282F28712831F1F4877E846120918E -:1013D000D70220FF06C0382F38713830D9F4877F04 -:1013E000816021FF06C0282F28712831D1F4877E23 -:1013F000816194FD877E0895282F24712430F9F6A9 -:101400008B7F8860DCCF282F2471243101F78B7EFD -:101410008861DDCF382F3171313019F78E7F8860C8 -:10142000E0CF282F2171213121F78E7E8861E1CF15 -:10143000CF93DF93EC018238910581F1B0F58133D0 -:10144000910509F491C020F58932910509F485C010 -:101450008A9709F490C0C11521E5D20708F0AAC007 -:10146000C11530E5D30708F0F2C0CF3BD10508F035 -:1014700089C0C83AD10508F0DFC0C53AD10508F0E7 -:10148000D3C0C430D105F8F4C130D105E1F040C07B -:101490008533910509F45AC0C997E9F68091D602BF -:1014A000837089F0C0EED0E00EC0833E910599F1C3 -:1014B00070F4803E910501F1823E910561F68091C4 -:1014C000D60282FD21C0CE01DF91CF910895863EE4 -:1014D000910561F1873E910571F1843E910509F016 -:1014E000BACF8091D70281FFEECF8091D602C7EEAE -:1014F000D0E084FD0DC0E7CF8091D60280FDF7C01B -:101500009091D70290FFDFCFC3EED0E084FFDBCF16 -:10151000D0E0C0E0D8CF8091D60282FDEBC09091A0 -:10152000D70290FDBFCF84FFCECFF2CF8091D602FD -:1015300083FDDDCFC8CF8091D60283FDDEC09091C0 -:10154000D70291FFF0CFC4EED0E0BDCF8091D6029C -:1015500085FFB9CFC9E2D0E0B6CF8091D60285FF32 -:10156000B2CFC5E3D0E0AFCF8091D60286FFABCF3C -:10157000CAE2D0E0A8CF8091D60286FFA4CFC1E313 -:10158000D0E0A1CFC11540E2D40760F4C11581E0DD -:10159000D80708F098CFCE01815E9109079708F42B -:1015A00092CFB6CFC11590E4D90708F4B1CFDF7060 -:1015B000D06A89CFC11524E5D20778F4C11533E587 -:1015C000D30708F072C0C11542E5D40708F05CC02B -:1015D000DC2FCC27C16FD06A76CFC1158AE5D8073A -:1015E00078F4C11599E5D90708F073C0C11528E54D -:1015F000D20708F48DCFDC2FCC27C06FD06A63CF21 -:10160000CE0190568115904208F082CF8D2F8F71B8 -:101610000E94D50990E0982F882788279F719C0108 -:101620002C2BE901D0624FCFC55AD0E0C154DE4F18 -:10163000C881D0E0D06447CFC85AD0E0CC0FDD1FBE -:10164000CE53DE4F0990D881C02DD4643CCFCE015B -:1016500064E0969587956A95E1F783702C2F26951F -:101660002695237040E2249F90011124382B8C2F63 -:101670008370C1E0D0E002C0CC0FDD1F8A95E2F795 -:10168000C22BD32BDC681FCFCE018370992721E0BA -:1016900030E002C0220F331F8A95E2F7C695C69547 -:1016A00080E2C89FE0011124EBCFCE01837099271F -:1016B00021E030E002C0220F331F8A95E2F7C69581 -:1016C000C69590E2C99FE0011124C22BD32BDA68A2 -:1016D000FACE8C2F8F700E94D50934E0D695C7952D -:1016E0003A95E1F7CF709C2FEC01D069ECCEC9E3BD -:1016F000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE5A -:101700000C94620880915F0490919102892B9091D2 -:101710009002892B80933002E0915204F09153049F -:10172000309731F00280F381E02D80E392E009945C -:10173000089580918F0290915E02981301C00895E0 -:101740008F5F8770FACF27E0929F800D1124982F2A -:10175000977086958695869523E0829FF0011124E7 -:10176000E35CFD4F50E040E080E0219130E0092E45 -:1017700002C0369527950A94E2F721703327042E8C -:1017800001C0220F0A94EAF7822B4F5F5F4F43306C -:10179000510559F7089527E0929F800D1124982F45 -:1017A000977041E001C0440F9A95EAF786958695B7 -:1017B000869593E0899FF0011124E35CFD4F90E052 -:1017C00080E070E05191DF0111979B01082E02C06B -:1017D000369527950A94E2F7217021952527242331 -:1017E00025272C9301968330910561F7089590E0A9 -:1017F00080E00E94840890E080E00E946E081092D1 -:101800009102109290020C94820B809392020C949D -:10181000F70B882341F0809590915F048923809392 -:101820005F040C94820B0895882339F090915F0433 -:10183000982B90935F040C94820B08958823B1F148 -:101840009CEF980F913A70F4E2E3F2E091918913E2 -:1018500003C0DF0111971C9242E0E833F407B1F7AF -:101860000C94820B90E2980F983088F4877021E0F6 -:1018700030E0A90102C0440F551F8A95E2F7CA0162 -:10188000809590915F04892380935F04E9CF9BE565 -:10189000980F933020F490E080E00C948408885AEC -:1018A000873120F490E080E00C946E0808950F9347 -:1018B0001F93CF93C82F882309F469C08CEF8C0F36 -:1018C000813AB0F502E312E088E392E0F801219159 -:1018D000C21701F122E0E833F207C9F7EFEF80E029 -:1018E000D8019D918D01C91781F0EF3F19F4911135 -:1018F00001C0E82F8F5F863099F7EF3F31F00E2E51 -:10190000000CFF0BE05DFD4FC283CF911F910F9143 -:101910000C94820BE2E3F2E02191C21303C0DF01D9 -:1019200011971C928E179F07B9F70E94820BD6CF92 -:1019300080E28C0F883068F4C77021E030E001C08D -:10194000220FCA95EAF780915F04822B80935F048F -:10195000DCCFEBE5EC0FE33050F4F0E0E154FE4F68 -:10196000808190E0CF911F910F910C948408C85A08 -:10197000C73168F4EC2FF0E0EE0FFF1FEE53FE4F7F -:1019800080819181CF911F910F910C946E08CF911E -:101990001F910F910895982F92959F7011F0892FA4 -:1019A00094E0282F2695269511F09E5F822F86952C -:1019B00009F09F5F892F0895CF93DF93CDB7DEB7EE -:1019C00062970FB6F894DEBF0FBECDBF96E0E4E29B -:1019D000F3E0DE01179601900D929A95E1F796E0FB -:1019E000FE013796DE011D9601900D929A95E1F762 -:1019F00098858823E9F0962B9E8786E0FE013D9628 -:101A0000DE01119601900D928A95E1F786E0FE01C4 -:101A10003196A4E2B3E001900D928A95E1F76296C7 -:101A20000FB6F894DEBF0FBECDBFDF91CF91089502 -:101A300060959623E1CFDC01FB01808191818038A4 -:101A400091054CF08FE78C93808191818F5791099C -:101A500091838083089581382FEF92073CF481E8C9 -:101A60008C938081918181589F4FF2CF8C9311820A -:101A700010820895681708F5861B682F21E0469F9D -:101A8000A0011124649FF001659FF00D1124409185 -:101A9000590150915A01E49FC001E59F900DF49FB8 -:101AA000900D1124880F892F881F990B919522235F -:101AB00019F09195819591090895681B20E0DFCF79 -:101AC0000F931F93CF93DF9300D000D0CDB7DEB735 -:101AD00089836A834B831C8204E610E024E030E0B3 -:101AE000AE014F5F5F4F60E084E10E94B2320F9021 -:101AF0000F900F900F90DF91CF911F910F9108954C -:101B000080913203882329F047E669E98BE20C943F -:101B1000600D6091590170915A0190E080E00E943F -:101B2000013620E030E040E05CE30E94623620E0D5 -:101B300030E040E85FE30E94FC35882321F047EC69 -:101B40006BE180E0E4CF41E265EA89EDE0CFCF923E -:101B5000DF92EF92FF920F931F93CF93DF936C016D -:101B60007B0164E670E088E70E949A31EC0197FD02 -:101B700012C010E000E0F601E00FF11F849164E66E -:101B800070E00E941432EC01892B29F40F5F1F4F83 -:101B90000E151F0581F70E942E33CE01DF91CF91E4 -:101BA0001F910F91FF90EF90DF90CF90089580915B -:101BB0004E0490914F04911103C091E0892708953C -:101BC000882369F062E070E08CEE9BE00E94A70D34 -:101BD000892B19F080914E04089510924E04809143 -:101BE0004E04EBCFCF93C0914E0480914F048823D5 -:101BF000D1F00E9462086058774C8E4F9F4F6093DF -:101C00004A0470934B0480934C0490934D04C1118B -:101C100008C062E070E08AEE9BE00E94A70D892B6D -:101C200029F0C0914E048C2FCF91089581E08093CC -:101C30004E04F7CF90916C04943029F580935B04A7 -:101C400070935D0460935C049093E9008FEF909132 -:101C5000E800815095FD06C095ED9A95F1F70000DA -:101C60008111F5CF8091E80085FF0DC050E040E084 -:101C700063E070E08BE594E00E9425078091E80026 -:101C80008E778093E8000895BC0184E00C941A0ECE -:101C9000BC0183E00C941A0E9C0184E08093E9005F -:101CA0009FEF8091E800915085FD06C085ED8A95F3 -:101CB000F1F700009111F5CF8091E80085FF0CC08D -:101CC00050E040E066E070E0C9010E942507809185 -:101CD000E8008E778093E8000895CF93DF93EC01BE -:101CE00081E08093E9008FEF9091E800815095FDAD -:101CF00006C095ED9A95F1F700008111F5CF80911E -:101D0000E80085FF14C050E040E068E070E0CE01DC -:101D10000E9425078091E8008E778093E80088E094 -:101D2000FE01A2E6B4E001900D928A95E1F7DF9101 -:101D3000CF9108959F92AF92BF92CF92DF92EF9290 -:101D4000FF920F931F93CF93DF937C015B016A0196 -:101D50008091D10201E010E08A3010F40AE010E036 -:101D6000C1E0D0E0F894B501C701F6010995982EBD -:101D70000E94BC09911004C021960C171D076CF439 -:101D8000892DDF91CF911F910F91FF90EF90DF9000 -:101D9000CF90BF90AF909F900895CC9F9001CD9F22 -:101DA000300D300D112490E080E045E34A95F1F7C5 -:101DB0000000019682179307C1F7D4CF8091A1024A -:101DC000811110C08091D80080618093D8008AE191 -:101DD0008A95F1F700C08091D90080FF0AC081E0A8 -:101DE0008093A10281E09091A102913009F080E0FE -:101DF000089582E08093A1020E94D50610926C049F -:101E0000F1CF0E94DE0E882351F0E0915204F09150 -:101E10005304309721F00190F081E02D099480E087 -:101E200008951F93CF93DF93182FEB010E94570C57 -:101E30008FE99FE00197F1F700C000002197C1F7FB -:101E4000812FDF91CF911F910C941E0C4F925F92C6 -:101E50006F927F928F929F92AF92BF92CF92DF92BA -:101E6000EF92FF920F931F93CF93DF93CDB7DEB71F -:101E7000CE5DD1090FB6F894DEBF0FBECDBF509036 -:101E800070019091770490FF5DC080905D03909009 -:101E90005E038114910409F068C0E0E6F6E09E015B -:101EA0002F5F3F4FBE0161527F4FC901A4914A2F5E -:101EB00050E0DA01AA0FBB1FA40FB51FA15ABC4FF7 -:101EC000CD90DD90EC90D901CD92DD92ED929D0107 -:101ED00031966A177B0751F720916F0143E0249FE9 -:101EE000800D911D1124539A2BB1277F3BB138608F -:101EF0005FB7F894BC01549E600D711D11248617C4 -:101F0000970709F08EC05FBF8FE594E00197F1F766 -:101F100000C00000C252DF4F0FB6F894DEBF0FBE04 -:101F2000CDBFDF91CF911F910F91FF90EF90DF9088 -:101F3000CF90BF90AF909F908F907F906F905F9069 -:101F40004F900895809171012091720133E0839F39 -:101F5000F0011124E15AFC4F821708F096CF11824C -:101F6000108212828F5F3396F7CF90FF96CFD12CDD -:101F7000C12C66246394712C53E0452E80915C0340 -:101F800093010C2C01C0220F0A94EAF7822309F472 -:101F90003FC0F601EE0FFF1FE80DF91DE590F4902C -:101FA000E114F10409F479CF45E050E0B701CE0126 -:101FB00001960E94953509810F3F51F18A81800F6A -:101FC0009927991F8B34910514F08AE490E05C0105 -:101FD000AA0CBB1C8A0D9B1DDC01A15ABC4F5D01E4 -:101FE000049D80011124015A1C4F0A151B0520F085 -:101FF000B5E0EB0EF11CD8CF4D81413A08F040EA34 -:1020000098016C818B810E9424090D5F1F4FEDCFD9 -:10201000EFEFCE1ADE0AF8E0CF16D10409F0AECF0A -:102020003CCFFC014191CF01E8E03BB9000000C08A -:1020300047FF2BB9440F000000C000C000C02BB9FF -:1020400000C0EA9591F75BCFE7E7F4E080818E7FEF -:102050008083E9E5F3E08281816082832FEF80E76E -:1020600092E0215080409040E1F700C000000C94C5 -:10207000260FE2E3F2E086E0DF011D928A95E9F7A0 -:102080000C94F70B1F93CF93DF93CDB7DEB7AA97CE -:102090000FB6F894DEBF0FBECDBF8EE694E0209160 -:1020A000F100DC012D93CD01B4E086379B07B9F731 -:1020B00080916F04833009F471C0B8F4813009F461 -:1020C00048C0823009F4B4C08091E80083FF3CC16D -:1020D00080916E0490916F049A3008F035C1E92F19 -:1020E000F0E0EE5DF84C0C9488358A3009F48FC02E -:1020F0008B3009F470C0893039F780916E048132D9 -:1021000019F78091720490917304009711F002976F -:10211000D9F68091E800877F8093E8008091E800FD -:1021200082FF37C09091F3008091F200029729F46A -:102130008091F1008B7F813021F48091F1008093B8 -:1021400061048091E8008B778093E8000E944F073C -:10215000BBCF80916E04813A09F0B6CF8091E80040 -:10216000877F8093E8008091720490917304892B9B -:1021700061F468E082E694E070E00E9401088091DA -:10218000E8008B778093E8009FCF60E090E080E0EC -:10219000F3CF80916C048111C1CF96CF80916E04F2 -:1021A000813A09F091CF8091720490917304892B48 -:1021B00009F08ACF8091E800877F8093E8008091C2 -:1021C000E80080FFFCCF809174018093F100809142 -:1021D000E8008E77B9CF80916E04813209F074CF18 -:1021E0008091720490917304892B09F06DCF8091D6 -:1021F000E800877F8093E8000E944F078091700479 -:102200008093740110925F040E9439105DCF809119 -:102210006E04813209F058CF8091E800877F809367 -:10222000E8000E944F0780917104809360044CCFB6 -:1022300080916E04813A09F047CF8091E800877F52 -:102240008093E8008091E80080FFFCCF80916004DB -:10225000BCCF803899F0823809F076C08091720442 -:102260008F70873008F070C08093E9008091EB0098 -:1022700085FB882780F91092E90006C080916A04E6 -:1022800090916B04911182609091E800977F9093F8 -:10229000E8008093F1001092F1008091E8008E77C1 -:1022A000B5C1882309F4A2C1823009F04DC08091E4 -:1022B00070048111A6C1809172048F702FEF280FD6 -:1022C000263008F041C08093E9002091EB0020FF08 -:1022D00098C1933031F48091EB0080628093EB00E1 -:1022E00090C19091EB0090619093EB0021E030E081 -:1022F00001C0220F8A95EAF72093EA001092EA00C3 -:102300008091EB008860EACF81111EC010917004AB -:102310001F778091E3008078812B8093E300809188 -:10232000E800877F8093E8000E944F078091E800D3 -:1023300080FFFCCF8091E30080688093E30082E01F -:10234000111183E080936C048091E80083FF0AC040 -:102350008091E800877F8093E8008091EB008062A5 -:102360008093EB00AA960FB6F894DEBF0FBECDBFE8 -:10237000DF91CF911F9108958058823028F72091E6 -:102380007004309171042C3DE3E03E07A1F583E039 -:102390008A838AE289834FB7F894DE01139620E09E -:1023A0003EE051E2E32FF0E050935700E49120FF2C -:1023B00003C0E295EF703F5FEF708E2F90E0EA3040 -:1023C000C0F0C7968D939D932F5F243159F74FBF6F -:1023D0008091E800877F8093E8006AE270E0CE0198 -:1023E00001960E9401088091E8008B778093E800B5 -:1023F000ABCFC096E7CF8091720490917304432FC6 -:1024000055274330510509F44AC078F5413051054C -:1024100009F47AC08BE590E0EEEEFBE04230510526 -:1024200009F092CF2091E800277F2093E8002091C7 -:102430007404309175048217930708F49C0140E0FE -:102440002115310509F065C0411163C08091E80094 -:1024500082FDC9CF80916C04882329F2853019F25E -:102460008091E80083FFF2CFBECF4132510509F4DD -:102470003CC04232510509F067CF8330910508F026 -:1024800063CFFC01EE0FFF1FEF5DFD4F0190F08168 -:10249000E02D825E9D4FDC018C9190E01AC03327C5 -:1024A00021303105D1F02115310561F0223031059F -:1024B00009F04ACFEBE5FCE0E4918E2F90E0EBE5EC -:1024C000FCE007C0EDE8FCE0E4918E2F90E0EDE841 -:1024D000FCE0009709F438CFA5CFEBE7FCE0E491EE -:1024E0008E2F90E0EBE7FCE0F4CF8330910508F00D -:1024F0002BCF880F991FFC01E95DFD4F0190F08102 -:10250000E02D89E090E08ECF82E190E0E9E4FCE00C -:1025100089CF80916C04882309F465CF853009F454 -:1025200062CF8091E80083FD5ECF8091E80082FD5C -:102530008DCF8091E80080FF83CF9091F300809150 -:10254000F2002115310519F08830910550F041E075 -:10255000089709F040E08091E8008E778093E800CA -:102560006FCF44914093F10031962150310901968B -:10257000E8CF803809F0E8CE8091E800877F80932B -:10258000E80080916D048093F10087CE8111DCCE4C -:1025900010917004123008F0D7CE8091E800877F48 -:1025A0008093E80010936D040E944F07112311F0EF -:1025B00084E005C08091E30087FDFACF81E080933D -:1025C0006C0442E061EC81E00E946E0742E261EC43 -:1025D00084E00E946E0742E261EC82E00E946E0796 -:1025E00042E260EC83E00E946E07AECE8091700400 -:1025F000813009F0A9CE81E0933009F080E080932A -:102600006B041092E9008091E800877F8093E800D6 -:102610000E944F0799CE1F93CF93DF93162FC0913F -:102620007E06D0917F068A30D1F420914304CE01FA -:102630008E579440622F70E00E945435281B822FE1 -:1026400066E00E946835C82FC15020F4DF91CF9119 -:102650001F91089560E080E20E940B13F5CF8D304A -:10266000E9F4CE57D44020914304622F70E0CE01AC -:102670000E945435281B822F9E01280F311D2115E1 -:10268000324018F080E0D0E0C0E0C80FD11DC25841 -:10269000DB4FD0937F06C0937E06D8CF96E0FE0135 -:1026A000A4E4B4E001900D929A95E1F7803E90F198 -:1026B00086E0FE0111928A95E9F7C0917E06D091DD -:1026C0007F06111133C046E050E0BE0184E494E07F -:1026D0000E949E359E012E573440892B91F52A5F2A -:1026E0003F4F40914304642F70E0C9010E9454356C -:1026F000481B463010F4240F311D211572E03707B6 -:1027000010F030E020E022583B4F30937F062093BA -:102710007E069CCFF6E08F9FB00111246655794F5D -:1027200046E050E0CE010E949535C7CF9E012A5F5A -:102730003F4FFE012E173F0731F280818095819334 -:10274000F9CFC90145E0969587954A95E1F741E0B3 -:1027500050E0BA0102C0660F771F8A95E2F7CB01FD -:1027600060917C0470917D04862B972BB9016B5F7F -:102770007F4FE5E076956795EA95E1F702C0440F53 -:10278000551F6A95E2F7842B952B90937D048093D7 -:102790007C04A5CFFF920F931F93CF93DF93EC019F -:1027A000F62EFC0101900020E9F78F01015011097C -:1027B000C017D10730F0DF91CF911F910F91FF909B -:1027C00008956F2D89910E940B13F2CFE1E4F4E09C -:1027D0008083618324E630E042E050E0BF0184EB77 -:1027E0000C948B32CF93C82F60E08CE00E94E613EC -:1027F0006C2F84E00E94E61361E08CE0CF910C9492 -:10280000E613CF93DF93C3EED2E060E0CE010E94E7 -:10281000C8352196C11584E0D807B9F7DF91CF916B -:1028200008956F927F928F929F92AF92BF92CF92B4 -:10283000DF92EF92FF920F931F93CF93DF938AEA79 -:10284000C82E86E0D82E91ECE92EF12CE701CC5869 -:10285000D10936011BC0F50185909490692DC801FE -:102860000E94C835682DC80101960E94C83582E0D3 -:10287000A80EB11C0E5F1F4FC017D10761F78EE085 -:10288000680E711C2E96CE15DF0529F08E010E50B4 -:1028900011095301E0CF7E018CE8E80EF11C8CE8B1 -:1028A000C80ED11C8DE7E81683E0F80679F6DF91B3 -:1028B000CF911F910F91FF90EF90DF90CF90BF903D -:1028C000AF909F908F907F906F900895CF93C82F77 -:1028D0006FEF811161E283E290E00E94C8356FEFF3 -:1028E000C11161E184E290E00E94C8356FEFC1112F -:1028F00068E285E290E0CF910C94C83580E00E94B8 -:10290000661460E086E290E00E94C8350E941114CF -:102910000E94011481E00C9466140F931F93CF93CF -:10292000DF93C42FD0E0CC0FDD1F2EE0629FC00DDF -:10293000D11D11243CE8839FC00DD11D1124CE016F -:1029400087960E94B435082F10E0102F0027CE0183 -:1029500088960E94B4359801282BC901DF91CF9148 -:102960001F910F910895462F853038F47A3028F45E -:10297000673018F4672F0C948D1490E080E0089570 -:10298000CF92DF92FF920F931F93CF93DF936C014F -:102990000091760480919202082BC7E0D0E010E00D -:1029A000FC2EC8010C2E02C0959587950A94E2F77B -:1029B00080FD0CC02197A0F7F12C8F2DDF91CF91D6 -:1029C0001F910F91FF90DF90CF900895B6018C2F4B -:1029D0000E94B3140E94180A019761F3EECFCF93BF -:1029E000DF93EC010E94C014BE010E94B314DF917A -:1029F000CF910C94180AFC01808191810E94EF1400 -:102A0000292F2F7092959F7092509E3078F4E92F65 -:102A1000F0E0E45DF84C0C948835803F19F020F428 -:102A2000883E20F481E00895843FE1F380E008953A -:102A3000883EC0F3813FD1F7F5CF822F86958695EA -:102A40008695089583E290E00E94B435813289F43E -:102A500084E290E00E94B435813159F485E290E03F -:102A60000E94B43591E0883209F090E0892F81709E -:102A7000089580E0FCCFCF92DF92EF92FF926B013E -:102A80007C010E940E09B701A60188E090E0FF904A -:102A9000EF90DF90CF900C94DA35AF92BF92CF9247 -:102AA000DF92EF92FF920F931F93CF93DF9300D0AB -:102AB0000F92CDB7DEB7082FF62E142FE22E80919D -:102AC000770480FF4FC0E82FE695AE2FB0E0AE5EF2 -:102AD000BD4F9C91909359038E7F823009F056C070 -:102AE000413A08F040EA9E012F5F3F4F6F2D802F43 -:102AF0000E9424098091770480FF11C02B813981C5 -:102B00004A81809171019091720153E0859FF0019B -:102B10001124E15AFC4F891798F10E94260F8091E9 -:102B20007804801308C0809179048F1104C08091CB -:102B30007A04811729F080915B03826080935B03A4 -:102B400000937804F092790410937A04EE2051F007 -:102B500060917704709178048091790490917A045F -:102B60000E943B150F900F900F90DF91CF911F9116 -:102B70000F91FF90EF90DF90CF90BF90AF900895AE -:102B80004183308322838F5F3396C5CF923039F6ED -:102B9000E2508E2F8170D82EE695F0E0E55AF94F7D -:102BA000A590B490C12CBB2460917301C61608F0A7 -:102BB000B4CF2C2D30E0A29EC001A39E900DB29EFA -:102BC000900D112470E00E945435802FD11016C052 -:102BD000860F40917101420F532F511D9A01220F10 -:102BE000331F240F351F215A3C4F412F113A08F053 -:102BF00040EA6F2D0E942409C394D6CF861BE9CFEB -:102C0000E7E7F4E0438121E1421B08F440E021E0E2 -:102C1000628181810C944D15E7E7F4E0438121E165 -:102C2000420F08F44FEF21E0628181810C944D1531 -:102C3000E7E7F4E0628121E1621B08F460E021E053 -:102C4000438181810C944D15E7E7F4E0628121E135 -:102C5000620F08F46FEF21E0438181810C944D15E0 -:102C6000E7E7F4E0818121E04381628188500C94A0 -:102C70004D15E7E7F4E0818121E043816281885FBF -:102C80000C944D1580917B04882319F0815080931A -:102C90007B0460917704709178048091790490911D -:102CA0007A040C943B1580917B04833018F48F5F79 -:102CB00080937B046091770470917804809179040B -:102CC00090917A040C943B159091770490FF27C063 -:102CD000917081111DC092609093770480915B0385 -:102CE000816080935B03662351F06091770470915B -:102CF00078048091790490917A040E943B1520E039 -:102D000040917A0460917904809178040C944D1577 -:102D10008C3010F09661E0CF880F982BDDCF0895AE -:102D200021E030E0A90102C0440F551F8A95E2F767 -:102D3000CA0120915C03662391F0822B80935C038F -:102D400080915B03806180935B0380915A038111C2 -:102D500009C08091770460E086950C946416809594 -:102D60008223ECCF0895CF93DF93C82FC17082FBED -:102D7000DD27D0F981FB662760F985E00E94901677 -:102D800061E06C2786E00E9490166D2F87E0DF914E -:102D9000CF910C9490160F931F93CF93C82F61E09F -:102DA0008111682F617080E00E949016C1FB662738 -:102DB00060F9C11101C060E081E00E949016C2FB81 -:102DC000662760F9C11101C060E082E00E949016A0 -:102DD000C3FB662760F9C11101C060E083E00E9477 -:102DE0009016C4FB662760F9C11101C060E084E061 -:102DF0000E9490164C2F50E070E060E0DB01CA01A9 -:102E0000F4E0B695A79597958795FA95D1F7009731 -:102E1000A105B10549F1AC01BD0184E08A019B0126 -:102E2000E2E03695279517950795EA95D1F70115B4 -:102E300011052105310519F08E5FB901A8017695BC -:102E4000679557954795452B462B472B09F08F5F84 -:102E50008230D1F158F48823E9F0813059F18C2F78 -:102E6000CF911F910F91089580E0D8CF8330A1F1C9 -:102E70008430A9F720E040E56FEF8AED0E944D1500 -:102E800087E00E94F21380910001882341F31092A1 -:102E900032030DC020E040E56FEF82E30E944D1544 -:102EA00080910001882399F381E0809332030E948E -:102EB000800DD5CF20E040E56FEF8CEF0E944D15DF -:102EC00085E40E94F213CBCF20E040E56FEF80E570 -:102ED0000E944D1585E2F5CF20E040E56FEF86E7D3 -:102EE0000E944D158FE1EDCF0E94CB1680937604A2 -:102EF0000C94F70B80917604982F9670963019F405 -:102F000088600C947417877FFCCF21E030E001C00B -:102F1000220F8A95EAF720958091760482230C94FB -:102F2000741721E030E001C0220F8A95EAF7809102 -:102F30007604822B0C9474178091770486958150C7 -:102F400009F48BE061E00C94641680917704869517 -:102F50008F5F8C3008F081E061E00C946416809102 -:102F6000770480FF07C0869582588F77893010F4E8 -:102F70000C94A51761E082E00C946416E7E7F4E096 -:102F800083E0808311828FEF828380EA83831482BF -:102F9000A9E5B3E012968C911297836012968C93F8 -:102FA00060817181828193810C943B15AB01BC01DE -:102FB00088E190E00C94DA35CF93C82FEFE3F4E08A -:102FC000982F990F990F990F80818770892B808393 -:102FD000E0E4F4E09C2F9295969597708081887F2D -:102FE000892B808360913D0470913E0480913F0461 -:102FF000909140040E94D6176C2F82E0CF910C94E0 -:10300000E613EDE3F4E089E88083118282818C7F0E -:10301000828360913D0470913E0480913F049091C1 -:1030200040040C94D617EDE3F4E080818E7F80831A -:1030300060913D0470913E0480913F049091400462 -:103040000C94D617EDE3F4E0808181608083609179 -:103050003D0470913E0480913F04909140040C9493 -:10306000D61769EE7EEF90E080E00E94E63560E0E2 -:1030700082E090E00E94C83560E083E090E00E942A -:10308000C8351092920260E084E090E00E94C8355A -:1030900060E082E290E00E94C83560E085E090E068 -:1030A0000E94C83560E086E090E00E94C8356FEF6E -:1030B00087E090E00E94C83540E050E0BA0188E027 -:1030C00090E00E94DA3560E08DE090E00E94C83523 -:1030D00040E050E0BA0188E190E00E94DA3560E01B -:1030E00087E190E00E94C83540E050E0BA018CE1F1 -:1030F00090E00E94DA3570E060E080E290E00E94AB -:10310000E6350E94011880E00E9466140E947E1439 -:1031100040E050E0BA018FE090E00E94DA3540E0F4 -:1031200050E0BA0183E190E00C94DA350F931F93DD -:10313000CF93DF9300D000D0CDB7DEB74091C5026A -:103140005091C6026091C7027091C8022FB7F894DF -:103150008091570490915804A0915904B0915A0459 -:103160002FBF841B950BA60BB70B84369105A105C9 -:10317000B10588F10E94DE0E882379F10E94620871 -:103180006E5F7F4F8F4F9F4F69837A838B839C83C2 -:1031900080912C0190912D0181559D4F40912B01E3 -:1031A00050E04530510510F044E050E0BE016F5F43 -:1031B0007F4F0E94AB3584E090E00E94A034892BC1 -:1031C000D9F40E9462086093C5027093C60280938E -:1031D000C7029093C80281E010C00E94620800916B -:1031E000D2021091D3022091D4023091D502600F07 -:1031F000711F821F931FC4CF80E00F900F900F901C -:103200000F90DF91CF911F910F9108958F929F9210 -:10321000AF92BF92CF92DF92EF92FF920F931F93E4 -:10322000CF93DF93EB0188809980AA80BB809FB702 -:10323000F894C0905704D0905804E0905904F0904E -:103240005A049FBFC818D908EA08FB0894E6C916B3 -:10325000D104E104F10410F4442311F1E82E082E06 -:10326000000CFF089AE08902F0011124EF5FFE4F85 -:103270008381948181559D4F428150E00417150749 -:1032800008F4A801B9010E94AB35C7010E94A0341F -:10329000892BA1F40E946208688379838A839B83C7 -:1032A00081E0DF91CF911F910F91FF90EF90DF9020 -:1032B000CF90BF90AF909F908F90089580E0F1CF16 -:1032C0000F931F93CF93DF930F92CDB7DEB780910B -:1032D0004E0489832091C40290E041E0281719062A -:1032E00009F440E001E010E09E012F5F3F4F6DECDC -:1032F00072E086E00E9406190F90DF91CF911F9136 -:103300000F9108950F931F93CF93DF93CDB7DEB73F -:1033100029970FB6F894DEBF0FBECDBF85E0E7E773 -:10332000F4E0DE01119601900D928A95E1F780910B -:10333000590390915A03A0915B03B0915C038E8373 -:103340009F83A887B98741E08885811101C040E04B -:1033500009E010E09E012F5F3F4F69EC72E085E0CD -:103360000E940619811110925B0329960FB6F894FA -:10337000DEBF0FBECDBFDF91CF911F910F9108959A -:103380006F927F928F929F92AF92BF92CF92DF9275 -:10339000EF92FF920F931F93CF93DF930F92CDB7CE -:1033A000DEB7862E5A016901682E880F7708C3019F -:1033B0000E94A034892B09F088C08AE0869DF00124 -:1033C000879DF00D1124EF5FFE4F458150E04115C0 -:1033D000510511F041E050E08AE0869DF001879DA3 -:1033E000F00D1124EF5FFE4F6681778161557D4FAF -:1033F000CE0101960E94AB35F50140815181628179 -:1034000073812FB7F8948091570490915804A0913C -:103410005904B0915A042FBF841B950BA60BB70B10 -:1034200084369105A105B10540F4B701C8010E9499 -:10343000F3089981891709F44FC0082C000C9908EA -:10344000C4010E94A034892B91F0B12C8B2D0F90D8 -:10345000DF91CF911F910F91FF90EF90DF90CF9070 -:10346000BF90AF909F908F907F906F9008958AE06B -:10347000889DF001899DF00D1124EF5FFE4F45817D -:1034800050E0E416F50608F4A7018AE0889DF001F3 -:10349000899DF00D1124EF5FFE4F668177816155A4 -:1034A0007D4FC6010E94AB35B701C8010E94F308E9 -:1034B00099818913CACF0E946208F50160837183E4 -:1034C00082839383BB24B394C1CFB12CA701B801ED -:1034D000C6010E94AB35BACFBB24B394F7CFCF92CD -:1034E000DF92EF92FF920F931F93CF93DF9300D061 -:1034F00000D00F92CDB7DEB76B0185E0E82EF12C3E -:1035000000EB12E09E012F5F3F4F47EA52E061E07F -:1035100080E00E94C019882349F095E0FE013196B1 -:10352000A2EAB2E001900D929A95E1F795E0E2EA05 -:10353000F2E0D60101900D929A95E1F70F900F906D -:103540000F900F900F90DF91CF911F910F91FF90EF -:10355000EF90DF90CF90089590E080E00E94C23518 -:10356000893E9E4F11F40C94221580E008951F921D -:103570000F920FB60F9211242F933F934F935F93A7 -:103580006F937F938F939F93AF93BF93CF93DF936B -:10359000EF93FF93D091E900DF708091EC00C82F8A -:1035A000C17080FDC0E81092E9008091F000877F33 -:1035B0008093F00078940E9442101092E90080916C -:1035C000F00088608093F000CD2BCF70C093E900AD -:1035D000FF91EF91DF91CF91BF91AF919F918F912B -:1035E0007F916F915F914F913F912F910F900FBEFF -:1035F0000F901F9018951F920F920FB60F921124E3 -:103600002F933F934F935F936F937F938F939F93EA -:10361000AF93BF93EF93FF938091E10082FF09C0C6 -:103620008091E20082FF05C08091E1008B7F809352 -:10363000E1008091DA0080FF24C08091D80080FFF3 -:1036400020C08091DA008E7F8093DA008091D900CB -:1036500080FF9BC080E189BD82E189BD09B400FE85 -:10366000FDCF81E080936C0480915E04811109C0DC -:103670000E94D5060E94A0078091E200846080939A -:10368000E2008091E10080FF17C08091E20080FF9E -:1036900013C08091E2008E7F8093E2008091E2006F -:1036A00080618093E2008091D80080628093D8008E -:1036B00019BC85E080936C048091E10084FF29C0EF -:1036C0008091E20084FF25C080E189BD82E189BD4F -:1036D00089B5982F917080FFFBCF8091D8008F7DA6 -:1036E0008093D8008091E1008F7E8093E1008091EB -:1036F000E2008F7E8093E2008091E20081608093FF -:10370000E20080916D04882309F445C084E0809331 -:103710006C048091E10083FF27C08091E20083FF69 -:1037200023C08091E100877F8093E10082E0809355 -:103730006C0410926D048091E1008E7F8093E10013 -:103740008091E2008E7F8093E2008091E2008061B0 -:103750008093E20042E060E080E00E946E0780918A -:10376000F00088608093F000FF91EF91BF91AF91DE -:103770009F918F917F916F915F914F913F912F9189 -:103780000F900FBE0F901F90189519BC10926C04EB -:1037900010925E0476CF8091E30087FD93E09093D2 -:1037A0006C04B7CF78941F921FB61F9211248F9389 -:1037B0009F93AF93BF938091570490915804A09129 -:1037C0005904B0915A040196A11DB11D809357046C -:1037D00090935804A0935904B0935A04BF91AF91A9 -:1037E0009F918F911F901FBE1F9018959C014FB7FE -:1037F000F8948091570490915804A0915904B09185 -:103800005A044FBF821B930B08952FB7F8948091F1 -:10381000570490915804A0915904B0915A042FBFB5 -:1038200008955F926F927F928F929F92AF92BF9214 -:10383000CF92DF92EF92FF920F931F93CF93DF937C -:1038400000D000D00F92CDB7DEB77C01FC018381A0 -:103850009481892B31F08081918189238F3F09F0F8 -:10386000D0C60F900F900F900F900F90DF91CF91D7 -:103870001F910F91FF90EF90DF90CF90BF90AF908E -:103880009F908F907F906F905F9008950E94C014DA -:10389000182F682F89819A810E94CB0B69817A81C8 -:1038A000812F0E94B3148C01F7018281882361F07B -:1038B000F801E65EFC45ED30F10530F4E65CF84CCD -:1038C0000C9488350E942218D0903D04D0FE1CC074 -:1038D0008D2D86958370F7019281992309F460C13B -:1038E000823090F4B701C8010E94B108882361F0CA -:1038F000D694D694D69480913E0483708295880F96 -:10390000807E8D290E94F213F7018281882309F4B9 -:103910006DC6C80182519F45409708F02BC68FEFB6 -:1039200093E00E94B435025193EEA92E92E0B92E95 -:10393000811197CF011138C11C821B8266246394C8 -:103940008AE0582E85010F5F1F4FC5010E94B435D4 -:1039500089831A82882309F484CF9FEF980F9330CC -:1039600008F031C18A83698232E0A30EB11CC8011C -:103970000E94B4358B83882309F473CF8E010F5FC7 -:103980001F4FF80120812223E9F2213009F055C1AF -:1039900091818281913009F018C10E5F1F4F6AE05A -:1039A00070E0893311F460E570E00E94110F13C1DB -:1039B0000E94131889CF80913D0480FF0DC00E94A2 -:1039C000131860913D0470913E0480913F049091E2 -:1039D00040040E94D61778CF0E942218F2CF0E948E -:1039E000011872CF90913D04892F86958F5F837067 -:1039F000880F997F892B80933D04982F967096307D -:103A000001F7897F80933D04DCCF90913E04892F9C -:103A10008B7F92FF846080933E04D3CF80913D04DE -:103A2000982F96959695969580913E0483708295F1 -:103A3000880F807E892B8C3798F48F5F282F220F78 -:103A4000220F220F90913D049770922B90933D048A -:103A500082958695837090913E049C7F892BDBCF65 -:103A600081E0ECCF80913D04982F969596959695A0 -:103A700080913E0483708295880F807E892B11F09F -:103A80008150DCCF8BE7DACF30913E04932F9695AF -:103A90009695969520913F04822F83708295880F8A -:103AA000807E892B90E00196482F440F440F440FED -:103AB0003770342B30933E0435E0969587953A95D0 -:103AC000E1F783702C7F822B80933F047ACF309173 -:103AD0003E04932F96959695969520913F04822FBC -:103AE00083708295880F807E892B8150990BDCCF63 -:103AF00080913F0482FF12C08B7F80933F046091CE -:103B00003D0470913E0480913F04909140040E94D6 -:103B1000D61760E081E00E94E613D6CE84608093E1 -:103B20003F0460913D0470913E0480913F04909168 -:103B300040040E94D61760E08CE00E94E61364E126 -:103B400082E00E94E61365E081E00E94E61361E0F6 -:103B50008CE0E1CF80913F04982F969596959695AD -:103B6000809140048295880F807E892B883720F4CD -:103B7000865F0E94DC17A8CE88E7FBCF80913F04C8 -:103B8000982F969596959695809140048295880FEA -:103B9000807E892B843110F08A50EBCF84E1E9CF0D -:103BA000882309F4B1CE9ECEA114F4E0BF0609F437 -:103BB00058CEC5010E94B435811101C001502FEFCC -:103BC000A21AB20AB7CE5801D9CE923039F40E5F9C -:103BD0001F4F0E94570C0F5F1F4FD3CE933029F415 -:103BE0000E5F1F4F0E941E0CF6CF943019F00F5F2E -:103BF0001F4FF1CF0E5F1F4F30E020E0B8016F5F25 -:103C00007F4FF80141818053990B8A30910550F024 -:103C10002150310900F38FE99FE00197F1F700C0CF -:103C20000000F6CF529EF001539EF00D11249C012E -:103C30002E0F3F1F842F8B01E1CFE22FF0E0E75FD3 -:103C4000FD4F7490822F86958695869590E0FC01B5 -:103C5000E750FE4FE4902770F12C022E02C0F5943D -:103C6000E7940A94E2F7E1E0EE22FF24FC01E75139 -:103C7000FE4FC490D12C022E02C0D594C7940A9452 -:103C8000E2F7F1E0CF22DD24FC01E752FE4F849001 -:103C9000912C02C0959487942A95E2F721E0822224 -:103CA0009924E114F10419F081EE0E94570CC1141B -:103CB000D10419F086EE0E94570C39E36AE070E0F7 -:103CC000731202C060E570E0872D0E94110FCD28AD -:103CD00019F086EE0E941E0CEF2819F081EE0E946A -:103CE0001E0C892809F477CF6AE070E08CE25DCE83 -:103CF00081E00E94911703C081E00E9485170F9018 -:103D00000F900F900F900F90DF91CF911F910F9117 -:103D1000FF90EF90DF90CF90BF90AF909F908F90EB -:103D20007F906F905F900C947A1782E0E2CF013E13 -:103D3000110509F404C108F04DC0003E110509F455 -:103D400069C1F701928191117BC280915F048272F7 -:103D50000A3CFCE51F0709F453C208F0A9C1053C61 -:103D60003CE5130709F438C208F08DC1033C5CE55B -:103D7000150709F412C208F02AC2023C1C4509F4D6 -:103D8000BCC1F70100811181992309F473C2C801F4 -:103D90000E94C014D82E682FC8010E94CB0BB80116 -:103DA0008D2D0E94B3140E94180A182FB82EF70107 -:103DB00022814581342F32953F70892F82958F70F3 -:103DC000C82ED12C8C3008F08DC2F601E95BF84C7E -:103DD0000C948835043E110509F41CC1053E1105FB -:103DE00009F0AFCF80933C0210933B0200933A025C -:103DF000882309F4A1C081E08093EE02A2CF0238AB -:103E0000FFE51F0709F476C038F5063F110509F4F0 -:103E1000FFC008F4FBC000383FE5130709F44DC0AC -:103E200001384FE5140709F08CCF882309F45BC0F3 -:103E300080919C02811106C081E080939C0282EEF9 -:103E40000E94570C0E94051C90939B0280939A023B -:103E500081EE0E94570C43C004385FE5150709F452 -:103E600071C008F45BC00538EFE51E0709F4B0C067 -:103E70000638FFE51F0709F064CF882309F4C2C0A4 -:103E80006091590170915A0190E080E00E940136E2 -:103E900020E030E040E05CE30E94623620E030E069 -:103EA00040E85FE30E94FC358111A9C080EE90E0FC -:103EB00090935A018093590195C08823B9F080915D -:103EC0009C02811106C081E080939C0282EE0E94D8 -:103ED000570C0E94051C90939B0280939A028BE2E0 -:103EE0000E94570C2ECF81EE0E941E0C8BE20E9486 -:103EF0001E0C27CF882309F424CF81EE0E94570C93 -:103F000083EE0E94570C8FE40E94570C8FE40E94AE -:103F10001E0C83EE0E941E0C81EEE9CF882309F46B -:103F200010CF81EE0E94570C83EE0E94570C80E563 -:103F30000E94570C80E5EBCF1092EE0202CF8093E7 -:103F4000390252CF882379F180913902882349F0D0 -:103F500080913A020E941E0C80EE0E94570C8AE269 -:103F60000CC080913C028823D1F380913A020E94D8 -:103F70001E0C80EE0E94570C8CE40F900F900F9057 -:103F80000F900F90DF91CF911F910F91FF90EF90C5 -:103F9000DF90CF90BF90AF909F908F907F906F9069 -:103FA0005F900C94570C8AE20E941E0C8CE40E94D5 -:103FB0001E0C80EE0E941E0C80913902811105C0FA -:103FC00080913C02882309F44CCC80913A02D5CFF1 -:103FD0008823C1F080913203882339F01092320394 -:103FE000109200010E94800DACCE809100018111E1 -:103FF000F7CF81E08093320380930001F3CF80E814 -:1040000090E056CF61E00E94DC0C9BCE62E0FBCFDB -:1040100064E0F9CF882371F081E08093ED02809114 -:1040200076040E94CB0C813009F08BCE83E30E9492 -:10403000F21387CE1092ED0284CE882331F081E016 -:104040008093F002109267017CCE1092F00279CE3C -:10405000882349F0809176040E94CB0C813019F4BA -:1040600082E30E94F213F7018281882309F4B0C22F -:10407000809176040E94CB0C813009F0A9C284E3C0 -:104080000E94F213A5C2073C2CE5120709F4AEC04A -:1040900008F4A7C0083C4CE5140709F4ACC0093C7F -:1040A0001C4509F06ECE40E056E16CE076E179C047 -:1040B000043DECE51E07A8F40E3CFCE51F0708F0E4 -:1040C000D0CB0C3C2CE5120709F49FC042E456E12A -:1040D00063E576E10D3C1C4508F463C061E081E0D6 -:1040E00046C0053D4CE5140709F4BBCB08F492C06B -:1040F0000D351D4509F4B5CB44CE8091770480FF82 -:1041000031C08E7F8093770460917704709178043A -:104110008091790490917A040E943B1580915B0311 -:10412000816080935B039FEFE0E7F2E09150E04015 -:10413000F040E1F700C000000F900F900F900F903B -:104140000F90DF91CF911F910F91FF90EF90DF9033 -:10415000CF90BF90AF909F908F907F906F905F9027 -:104160000C94260F81608093770461E086950F9010 -:104170000F900F900F900F90DF91CF911F910F91A3 -:10418000FF90EF90DF90CF90BF90AF909F908F9077 -:104190007F906F905F900C9464164CE957E165EA4C -:1041A00077E10F900F900F900F900F90DF91CF91CC -:1041B0001F910F91FF90EF90DF90CF90BF90AF9045 -:1041C0009F908F907F906F905F900C94090945EAC3 -:1041D00057E16CE977E1E5CF40E356E169E376E149 -:1041E000E0CF49E356E160E376E1DBCF48E156E119 -:1041F00064E276E1D6CF44E256E168E176E1D1CFE0 -:104200004CE056E160E076E1CCCF43E556E162E474 -:1042100076E1C7CF0F900F900F900F900F90DF9126 -:10422000CF911F910F91FF90EF90DF90CF90BF90B3 -:10423000AF909F908F907F906F905F900C94AF178E -:104240000E3D1C4509F09DCD0F900F900F900F90E3 -:104250000F90DF91CF911F910F91FF90EF90DF9022 -:10426000CF90BF90AF909F908F907F906F905F9016 -:104270000C943118C8010E94A30BD82E90CD092FA1 -:104280000F70907F11F00295007F812F2223C9F0DB -:10429000002369F090E2910F983010F011110BC0DB -:1042A00080915F04082B00935F040E94820B812F92 -:1042B0000E94570C17C080919102082B0093910225 -:1042C000F4CF0E941E0C002369F00095105E183098 -:1042D00010F0B11027C080915F04082300935F04A1 -:1042E0000E94820B98E0C91AD108E4E0CE16D104EE -:1042F00008F0B7CA0E94010F0F900F900F900F9017 -:104300000F90DF91CF911F910F91FF90EF90DF9071 -:10431000CF90BF90AF909F908F907F906F905F9065 -:104320000C94B31680919102082300939102D8CF88 -:10433000892F8F70907F903211F08295807FF1E00D -:10434000BF120CC0222329F0333060F60E94140CF7 -:10435000C9CF323038F60E94090CC4CF222341F075 -:104360003323A1F340FFA3CF4F70F7014583EECF76 -:10437000332389F3193309F0F5C0FFEF27EE33E05B -:10438000F15020403040E1F700C00000812F0E9432 -:104390001E0CA8CF892F86958695837061F0813099 -:1043A00009F0A0CF812F9370211102C090E080E02E -:1043B0000E946E0897CF812F9370211102C090E068 -:1043C00080E00E9484088ECF892F8370A1F521118F -:1043D00089CF812F829586958770880F880F412F0E -:1043E0004F70082E01C0440F0A94EAF7212F207164 -:1043F00014FF07C02FE030E001C0220F8A95EAF7D2 -:104400002095969596959370923081F0822F842B0B -:10441000933030F480919202913029F0242B822342 -:104420000E94050C5FCF842B822BFACF242B809126 -:1044300092028227F5CF8695222311F0892F817071 -:10444000882309F44FCF812F829586958770880F36 -:10445000880F412F4F70082E01C0440F0A94EAF7CD -:10446000212F207114FF07C02FE030E001C0220F80 -:104470008A95EAF72095969596959370923081F0FB -:10448000822F842B933030F480917604913029F080 -:10449000242B82230E94741725CF842B822BFACFE2 -:1044A000242B809176048227F5CF092F0F702223C9 -:1044B00029F0802F0E949117812F48CF812F0E94D1 -:1044C000090C802F0E9485170DCF812FE1EF1E1759 -:1044D00089F1E11750F0F0EF1F17B9F02223B1F185 -:1044E0003111E5CE892F8F7129C042EF141749F1A0 -:1044F00053EF1513F3CF80E0222361F29F7181E027 -:1045000001C0880F9A95EAF7C5CF222379F032309F -:1045100008F0E8CE292F2F7181E090E001C0880FCC -:104520002A95EAF7909176048927B4CF333008F0C2 -:10453000D9CEF0CF892F8F71222321F20E949117BB -:10454000D1CE892F8F712223C9F3BCCF332379F0C9 -:10455000893341F48FEF97EEE3E081509040E040E3 -:10456000E1F712CF8FE39CE90197F1F70DCF892F87 -:104570008F71A8CF0031FFE51F0709F4B9CB0131D6 -:104580002FE5120709F4D1CB0E9462086093F5026F -:104590007093F6028093F7029093F802F7018281FC -:1045A000043F110509F42ECD08F029CC0C32110579 -:1045B00009F443CD08F0BBCB0A30110509F448CD0E -:1045C0000531110509F44FCD0930110509F0B9CBBA -:1045D000F7018281882309F4B4CB809176040E948C -:1045E000CB0C813009F0ADCB81E321CD00313FE52B -:1045F000130709F481CB01314FE5140779F682E006 -:104600007CCB85E0DE01119601900D928A95E1F751 -:10461000F701228189819A81211138C90E94A30B57 -:10462000182F3CC91F93CF93DF9380915D02807F49 -:10463000A9F480915A02882389F080918F02D09149 -:104640005E026091580270915902A0915B02B09194 -:104650005C02C62FC72316E0D81304C0DF91CF91A8 -:104660001F91089590E0109711F0CF3F19F4019633 -:104670008770F2CF189F9001199F300D1124F90116 -:10468000E15AFD4F41814713F2CF40814613EFCFEE -:1046900042814111ECCF438154814A1B5B0B403A6C -:1046A000510528F780915D028F70806180935D02D3 -:1046B000F901EC59FD4F80818F708061808388E51E -:1046C00092E00E94111CDF91CF911F910C94990BE5 -:1046D000AF92BF92CF92DF92EF92FF920F931F9310 -:1046E000CF93DF93CDB7DEB761970FB6F894DEBFF7 -:1046F0000FBECDBF8C0185E0F801DE011D96019053 -:104700000D928A95E1F7F801E28088E5A82E82E013 -:10471000B82E60915B0270915C026115710509F41D -:1047200032C19091580240915902892F84238F3FC2 -:1047300009F429C120813181C380D480F0905A02CC -:10474000F601E61BF70BFF2009F4E8C080915D023B -:10475000582F507FE03AF10508F0ABC0511177C0F7 -:10476000FE2C431321C092131FC0E1101DC08F7097 -:10477000806180935D02C5010E94111C80915D02E1 -:10478000F80185838F2D61960FB6F894DEBF0FBEBA -:10479000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1047A000CF90BF90AF900895CD2829F0822F83231A -:1047B0008F3F09F003C180E0F82FF170DF2E80FFFA -:1047C0003CC080918F0240915E0256E0841315C078 -:1047D0002D873E878D859E850E94EF14292F229577 -:1047E0002F702230F0F0243018F59F70F1F0F801AE -:1047F0009581907FD1F4D12C1EC090E0589FF0019C -:10480000599FF00D1124E15AFD4F6181361306C006 -:104810006081261303C06281E6120FC00196877083 -:10482000D5CF9F7011F0882331F3805E883018F364 -:10483000C8010E94111CFD2CA5CFEE2009F4A2CFC7 -:1048400080915D02816080935D02F12C9BCF4313C8 -:1048500006C0921304C0F801EE2009F479C0C80123 -:104860000E94FB14882309F1EE20F9F080915D028B -:10487000803270F0209158023091590238872F838E -:104880001986DB86CA868C87CE0107960E94111C8A -:1048900086E0F801A8E5B2E001900D928A95E1F773 -:1048A0000E941223FF24F3946DCFC8010E94111CB3 -:1048B000F9CF51110AC088E592E00E94111C86E0F0 -:1048C000F50111928A95E9F7C0CF43130FC09213F7 -:1048D0000DC0E1100BC0F8018583C8010E94111CB6 -:1048E00086E0F50111928A95E9F74CCFC8010E9444 -:1048F000FB148823D1F2EE20C1F280915D02803258 -:1049000038F220915802309159023A8329831B8250 -:10491000DD82CC828E83CE010196B8CFE03AF105DC -:10492000F8F6FE2CEE2009F243131FC092131DC0AF -:1049300080915D0280FD10C0982F907F69F0F80192 -:104940008583903F31F0982F907F905F8F70892BF7 -:104950008583C8010E94111C86E0F801A8E5B2E039 -:1049600001900D928A95E1F70DCFC8010E94FB14CA -:1049700081118ECF80915D02816080935D02C801BC -:104980000E94111CFFCEEE2009F48FCFC8010E94B7 -:10499000FB14F82E882309F488CF86E0F801A8E5F7 -:1049A000B2E001900D928A95E1F7809158029091C2 -:1049B00059020E94EF140E941223E4CE81E08E255A -:1049C000FBCE1F93CF93DF93CDB7DEB767970FB6BC -:1049D000F894DEBF0FBECDBF4B8B5C8B6D8B7E8B97 -:1049E0008F8B6111109291021A8A198A85E0FE015B -:1049F0007396DE011D9601900D928A95E1F786E08F -:104A0000FE013D96DE01179601900D928A95E1F721 -:104A1000CE0107960E946823882389F016E08091D2 -:104A20008F0290915E0289134BC067960FB6F8947F -:104A3000DEBF0FBECDBFDF91CF911F91089586E0FD -:104A4000FE013796DE01119601900D928A95E1F7ED -:104A50008A859B85892B11F38F81988589238F3FC8 -:104A6000E9F220915E0230E0C90101968770992732 -:104A700040918F024817190681F410925F040E943A -:104A8000391010925E0210928F0286E0E8E5F2E0A3 -:104A9000DF011D928A95E9F7C1CF96E0929FD00180 -:104AA000939FB00D1124A15ABD4FFE013196019084 -:104AB0000D929A95E1F780935E020E94990BAECF1A -:104AC000819FC0011124815A9D4F0E946823882331 -:104AD00009F4ABCF80918F0290E0019687709927FF -:104AE00080938F029CCF9F92AF92BF92CF92DF9222 -:104AF000EF92FF920F931F93CF93DF93CDB7DEB763 -:104B000064970FB6F894DEBF0FBECDBF8E010F5F66 -:104B10001F4F8AE0D8011D928A95E9F79EE4C92EBD -:104B200091E0D92EF12CE12CAA24A394B12CF6010A -:104B300081916F018F3F09F44AC0F894E82FE29504 -:104B4000EF70F0E021A18F70A50102C0440F551F46 -:104B50008A95E2F7CA01922F982B91A392A1809592 -:104B6000892382A30E94BC0900C0E7E4F1E030E0A1 -:104B700020E0912C41914F3F09F47DC0A42FA295D4 -:104B8000AF70B0E090968C9190E04F7002C0959518 -:104B900087954A95E2F780FD6EC08A2D022E01C0EE -:104BA000880F0A94EAF7982A2F5F3F4F2730310584 -:104BB00009F7F601319780818F3F11F00E94BE09FD -:104BC00050EA5A95F1F7F801EE0DFF1D90828FEF34 -:104BD000E81AF80A95E0E916F10409F0A8CF4AE0CE -:104BE00050E0B80188ED92E00E949E357C01892B4F -:104BF00041F08AE0F801A8EDB2E001900D928A95AB -:104C0000E1F71091E302E114F104B9F181E080933E -:104C100095020E94051C90939402809393028091C8 -:104C20009302909194020E94F61B069770F0A8EDF3 -:104C3000B2E0E12FF0E0E15BFC4F8D91819322E047 -:104C4000AD3DB207D1F71092950281E090E0EF28D8 -:104C5000C1F064960FB6F894DEBF0FBECDBFDF91F2 -:104C6000CF911F910F91FF90EF90DF90CF90BF9069 -:104C7000AF909F90089580E096CF8091950281112A -:104C8000CECF0E94DE0EB82EE091E302882309F415 -:104C9000C7C08E01005F1F4F85E0D8011D928A9525 -:104CA000E9F7F0E09F01215B3C4F79018091D1024F -:104CB000AE014B5E5F4F6A018A3008F086C04FE656 -:104CC0005AE1B801C7010E949A0E882309F494C0E2 -:104CD00044EE57E2B801C7010E949A0E882309F4F6 -:104CE0008BC046E958E1B801C7010E949A0E88239B -:104CF00009F482C042E859E1B801C7010E949A0E46 -:104D0000882309F479C040E659E1B801C7010E943F -:104D10009A0E882309F470C01092D102E091E20249 -:104D2000F0E0AF01415B5C4FD80110E0FA019191D6 -:104D3000AF018D91981731F09F0121503109F90190 -:104D400080831B2DCA16DB0689F780919C0288237D -:104D500071F080919A0290919B020E94F61B893E0D -:104D6000934028F082EE0E941E0C10929C0288E96B -:104D7000C82E82E0D82EF12CE12CD6018D916D0148 -:104D80008823D1F08695F70109F447C0EC50FE4F17 -:104D9000808191819C878B871D860E94051C816084 -:104DA000782F9F878E87F601319710824B855C851F -:104DB0006D858F850E94E124B2E0EB0EF11CE4E0EA -:104DC000EE16F104D1F6812F44CF80919602909196 -:104DD00097020E94F61B843F914008F070CFA0918B -:104DE000E202B0E0A15BBC4FF8011D921192CE1619 -:104DF000DF06D9F71B2DA9CF8091D1028F3F31F06B -:104E00008F5F8093D1028A3008F488CF0E94051CFE -:104E10009093970280939602E2CFE051FE4FB8CF75 -:104E2000F0E0E15BFC4FF89485E0A0EBB2E001908C -:104E30000D928A95E1F765E070E080EB92E00E94C8 -:104E4000F3088093AF020E94BC09F894E091EB0252 -:104E5000F0E0E851FD4F80818B878093B60261E0DE -:104E600070E0CE010B960E94F3088093B5020E9479 -:104E7000BC09F894C090B702D090B802E090B90293 -:104E8000F090BA0280919D0290919E02A0919F02A3 -:104E9000B091A002C816D906EA06FB06D1F0C0926E -:104EA0009D02D0929E02E0929F02F092A0020E9488 -:104EB000DE0E81110EC00E946208C61AD70AE80AE7 -:104EC000F90AC092D202D092D302E092D402F092B8 -:104ED000D5020E94BC09F8948091C202882321F176 -:104EE00084FF04C09091C30290935C0380FF0DC0C7 -:104EF0008091BB0280FF25C09091770491609093D0 -:104F0000770460E086950E9464168091C20281FF5A -:104F100009C020E04091BE026091BD028091BC02B8 -:104F20000E944D151092C2020E94BC09F894809113 -:104F3000C402882349F00E94F20D0E94BC0980E05F -:104F400088CE0E942410E1CF0E94D70DF6CFEF92B9 -:104F5000FF920F931F93CF93DF9300D000D00F9257 -:104F6000CDB7DEB7162FE82EF12CC701880F991F99 -:104F7000662339F18C509E4FFC01808191819A8388 -:104F8000898301E00B830E94051C8160782F9D833B -:104F90008C83F701E856FD4F0127110F102B10836A -:104FA00049815A816B818D810F900F900F900F90E6 -:104FB0000F90DF91CF911F910F91FF90EF900C9484 -:104FC000E12480519E4FD8CFCF92DF92EF92FF9293 -:104FD0000F931F93CF93DF930F92CDB7DEB7EE24DD -:104FE000E394F12C06EB12E09E012F5F3F4F4BEA5A -:104FF00052E063E082E00E94C019082F882321F16B -:10500000C090E5028C2D90E09C0128513D4F790124 -:105010001981F9018081181BD12E80E00AC0DA9431 -:10502000F70180818F5F808360E08C2D0E94A7272D -:10503000802F1D14A4F3912F17FD90E0191B11115F -:105040000EC081110E94800B802F0F90DF91CF91B5 -:105050001F910F91FF90EF90DF90CF9008951F5F09 -:10506000F70180818150808361E08C2D0E94A72709 -:10507000802FE5CF1F921FB61F9211248F939F930D -:10508000AF93BF9380915604811113C08091570450 -:1050900090915804A0915904B0915A044196A11DD1 -:1050A000B11D8093570490935804A0935904B09372 -:1050B0005A04BF91AF919F918F911F901FBE1F9077 -:1050C0001895CDB7DEB7E9970FB6F894DEBF0FBEDF -:1050D000CDBF84B7877F84BF0FB6F894A895809121 -:1050E0006000886180936000109260000FBE80E8CD -:1050F00090E00FB6F89480936100909361000FBE2A -:1051000085B7806885BF85B7806885BF8AEB99E0E1 -:1051100090932F0280932E020E94D5060E94A00732 -:105120008091E20084608093E200789480916C0426 -:105130008823A1F01091E9001F709091EC00892F55 -:10514000817090FD80E8182B1092E9008091E800B2 -:1051500083FD0E9442101F701093E90082E084BD1D -:1051600093E095BD9AEF97BD80936E001092D202A6 -:105170001092D3021092D4021092D5020E942215EE -:10518000811102C00E947E140E94DE0E809358019D -:1051900080915801882309F4C6C010926F0185E2FE -:1051A000809370010E94DE0E81110E9493338091E2 -:1051B000580181112FC0FE01359686E0DF011D9256 -:1051C0008A95E9F786E6898387E98A8386EC8B836B -:1051D00084E38C8385E38D833497AEE4B1E0CE0124 -:1051E0000B9621912D938E179F07D9F787E0E5E75E -:1051F000F1E0DE01919601900D928A95E1F7FE01B2 -:10520000B196A7E4B1E0CE01889621912D938E1737 -:105210009F07D9F78091580195E0811190E0909314 -:10522000E30285E0891B8093E2020EE411E0A3E52E -:10523000EA2EA1E0FA2EF80181918F018F3F11F043 -:105240000E94BE09E016F106B1F707E411E0FEE4A2 -:10525000EF2EF1E0FF2ED8018D918D018F3F11F0DF -:105260000E94BE09E016F106B1F7E8EDF2E082EE29 -:1052700092E0AFE4B3E011921D928E179F07D9F729 -:105280000E94AC1A811102C00E94311882E090E0A5 -:105290000E94B4358093440384E090E00E94B435CA -:1052A000182F82E290E00E94B435982F812F9093BE -:1052B000D7028093D6020E947325EFE7FBEB31976C -:1052C000F1F700C000000E94732580914F0380FF1A -:1052D0002EC06FEF7FEF90E080E00E94E63581E026 -:1052E0008093E00080E28093D8001092C9008FE1A3 -:1052F0009EE40197F1F700C0000087E090EBDC012D -:105300008093800690938106A0938206B0938306D3 -:1053100088E19CE00FB6F894A895809360000FBEDA -:1053200090936000FFCF85E280936F0139CF83E0D7 -:1053300090E00E94B4350E94050C809176040E9492 -:10534000CB160E94AC1A811102C00E94311888E16C -:1053500090E00E94BC3560933D0470933E048093BE -:105360003F0490934004672B682B692B11F40E9433 -:1053700001180E94943167E081E00E94E61365E520 -:1053800086E10E94E61363E687E10E94E61360EA85 -:105390008AE10E94E61369E98BE10E94E61365EF5A -:1053A0008CE10E94E61360EA8DE10E94E61360E35F -:1053B0008EE10E94E61366E083E00E94E61361E05E -:1053C0008CE00E94E61360E081E00E94E61360E05A -:1053D0008CE00E94E6136FE084E00E94E61361E037 -:1053E0008CE00E94E6130E94DE0E811102C00E9432 -:1053F000963383E080931A0380E2809343040E94F3 -:1054000094316DE070E08CE992E00E94A70D892B49 -:10541000E9F580911A0363E070E081FD9EC289E99D -:1054200092E00E94A70D892B89F56DE070E089E874 -:1054300092E00E94A70D892B49F50E9462086058EE -:10544000774C8E4F9F4F60934A0470934B04809328 -:105450004C0490934D04EEE7F4E080E092E0DF012D -:105460009C011D9221503040E1F7F0937F06E093BC -:105470007E068FEF9FEF90937D0480937C0481E004 -:1054800080934F0480934E0410921B038091E4029A -:10549000811136C00E94AC1A811104C00E943118DB -:1054A0000E94BE1788E090E00E94BC3560937704AC -:1054B000709378048093790490937A0480915B03CD -:1054C000836080935B036E7F71F40E94BE1788E057 -:1054D00090E00E94BC3560937704709378048093C9 -:1054E000790490937A040E940E098091770480FFDA -:1054F00004C060E086950E94641681E08093E40217 -:1055000080915801811106C084EF8093660185EF78 -:105510008093650120916601A22FA295AF70B0E043 -:1055200091963C9191972F7081E090E0BC01022E02 -:1055300001C0660F0A94EAF7462F409543239196DF -:105540004C93919792963C919297362B92963C93DE -:10555000929740916501E42FE295EF70F0E031A160 -:105560004F70042E01C0880F0A94EAF7982F909587 -:10557000932391A392A1892B82A390968C9190E082 -:1055800002C0959587952A95E2F7817020A130E0B9 -:1055900002C0359527954A95E2F792E020FF90E00A -:1055A000892B8093EC028091580111E08127809330 -:1055B000EB02312F381B3093E5020E94943140E01A -:1055C00060E080E00E94600D60E08AE00E94641666 -:1055D00089EA92E090935E0380935D0381E00E94EC -:1055E000741780EE90E090935A01809359011093C4 -:1055F00032030E94800D8BE591E0909353048093D9 -:1056000052043E018DE3680E711C80916C04FF24EE -:10561000F39400E112E1853009F4F2C10E94732590 -:10562000E82E81110E946208E5E4F3E0AFE4B3E004 -:1056300010E000E0B02EDD9081918D1509F404C2D8 -:105640008D25C12CFF24F394982F9F2109F4F7C1D5 -:105650000E94DE0E882399F0CEA6BFA6DF2081E04F -:1056600009F480E088AB0E94051C8160782F9AAB1A -:1056700089AB4EA55FA568A98AA90E94E124F8011B -:10568000EB5BFC4F8081F826F0828091EC02E82FE2 -:10569000EE0FEE0F90916601A92FA295AF70B0E0CA -:1056A00090962C9130E09F7002C0359527959A9581 -:1056B000E2F72170332790916501A92FA295AF7071 -:1056C000B0E090964C9150E09F7002C05595479580 -:1056D0009A95E2F7CA018170992740FF02C082E0E3 -:1056E00090E0822B8E2B8093EC021091EB028F7056 -:1056F000E82FF0E0E650FE4F80819091EA02890F9A -:105700008093EA02F12C84306CF0E12FF0E0E85154 -:10571000FD4F80818F5F808360E0812F0E94A727EB -:10572000FF24F3948091EA028D3F6CF4E12FF0E0C6 -:10573000E851FD4F80818150808361E0812F0E947C -:10574000A727FF24F3948091EA02082E000C990BFE -:1057500064E070E00E9474358093EA02F1100E94C8 -:10576000800B80914F04882351F180911C0390910C -:105770001D030E94F61BC29708F07DC120917C0496 -:1057800030917D042115310509F0A0C280914E04AD -:105790008823A9F00E94620800914A0410914B04EA -:1057A00020914C0430914D04601B710B820B930BC4 -:1057B0006F3F7F4F8F4F9F4710F40E94D70DE1102E -:1057C00001C0F1100E94F20D809142038A3008F06E -:1057D000BAC380914003909141030E94F61B089741 -:1057E00008F4B1C304E610E025E030E04BE353E0F9 -:1057F00064E084E10E94DF32892B09F075C31092C6 -:10580000420320913203222359F080913B0390916F -:105810003C0398278927982790933C0380933B0368 -:1058200086E0E4E2F3E0DE01919601900D928A9524 -:10583000E1F786E0FE01B196DE01119601900D922E -:105840008A95E1F786E0FE013196A5E3B3E0019089 -:105850000D928A95E1F790913F038091360397FD71 -:105860003AC38E7F80933603809133039091340343 -:10587000009709F02AC360913B0380913C0300919B -:105880003D0310913E03222309F4F2C241E00E943D -:105890003A0D2091300330913103820F931F909382 -:1058A00031038093300341E0602F812F0E943A0D35 -:1058B00020912E0330912F03820F931F90932F037B -:1058C00080932E0360E373E08AE393E00E941B0D54 -:1058D0006EE273E089E393E00E941B0D10923703A0 -:1058E0001092380386E0E5E3F3E0DE0111960190C3 -:1058F0000D928A95E1F786E0FE013196A4E2B3E0CD -:1059000001900D928A95E1F73091260320912703AB -:1059100090912803809129037091200360912103C5 -:105920004091220350912303F0912503E0911F033E -:10593000FE13E0C2332311F07313DCC2222311F0F3 -:105940002613D8C2882311F08513D4C2992319F0E5 -:1059500081E04913D0C280E0CEC286E992E061CDF9 -:1059600080916C04843009F43BC00E94D70D40E064 -:1059700060E080E00E94600D80E00E94B31680919C -:10598000E702811109C0F092E702809177048170EB -:105990008093E6020E94241010925604A8E1B0E021 -:1059A000E0E40FB6F894A895A09360000FBEE093D2 -:1059B000600083B7817F846083BF83B7816083BFCA -:1059C0007894889583B78E7F83BF0FB6F894A89597 -:1059D00080916000886180936000109260000FBE2B -:1059E00080916B04882361F00E947325EFE4F3E05B -:1059F0008191811178C429E533E02E173F07C1F763 -:105A000080916C04853009F4ABCF10925F040E9442 -:105A100039100E94010F0E94B3161092E702809184 -:105A2000E602882349F080917704816080937704AF -:105A300060E086950E9464160E94800DEFCDC394AD -:105A4000FF0C37E0C31200CE0F5F1F4F0A30110565 -:105A500009F0F0CD8FEF8BAB8CAB1DAA0E94051C1B -:105A60008160782F9FAB8EAB4BA95CA96DA98FA9E4 -:105A70000E94E1240ACE0E94051C90931D0380938E -:105A80001C0360E080E00E949A080E94010F80934E -:105A9000F9020E94DE0E882331F14091F502509107 -:105AA000F6026091F7027091F8022FB7F894809196 -:105AB000570490915804A0915904B0915A042FBFF3 -:105AC000841B950BA60BB70B81339547A105B10538 -:105AD00040F00E94D70D80914F04882309F456CEE0 -:105AE0004DCE0E94F20D0E94DE0E882309F4D5C02F -:105AF00061E080E00E949A0860E08CE791E00E94FB -:105B0000CA1362E080E00E949A08809176040E94A5 -:105B1000CB0C823009F49BC008F090C0882309F4B4 -:105B200096C0813009F499C065E080E00E949A082F -:105B300060E08AE991E00E94CA1366E080E00E947A -:105B40009A086091F902669561708FE991E00E9470 -:105B5000CA1367E080E00E949A086091F90260959C -:105B6000617084EA91E00E94CA1368E080E00E94BC -:105B70009A086091F90262FB662760F988EA91E071 -:105B80000E94CA137DA66CA64091F1025091F202C8 -:105B90006091F3027091F4022FB7F894809157044A -:105BA00090915804A0915904B0915A042FBF841BBE -:105BB000950BA60BB70B8D329140A105B10508F4EA -:105BC0008ACF0E9462086093F1027093F202809380 -:105BD000F3029093F4028091F002811104C080914D -:105BE0006701811142C06DE080E00E949A0860E088 -:105BF0008DEA91E00E94CA136AE080E00E949A0850 -:105C000081E0809367018091EF0290E001968170BE -:105C100099278093EF0221E030E0281B390B40E602 -:105C2000429FC001439F900D11242091EE02222338 -:105C300051F1855C9B4F0E9492064DCF833089F0D5 -:105C4000843009F071CF60E08EE891E003C060E03D -:105C500082E891E00E94CA1367CF60E088E891E093 -:105C6000F9CF60E084E991E0F5CF6AE080E00E943E -:105C70009A0860E08DEA91E00E94CA136BE080E030 -:105C80000E949A08C0CF2091ED02222319F0855876 -:105C90009C4FD1CF85549D4FCECF64E080E00E94D1 -:105CA0009A0860E083EB91E00E94CA1365E080E00F -:105CB0000E949A0860E089EB91E00E94CA1369E0B3 -:105CC00080E00E949A088BEF94E0B5CF80911B038F -:105CD00061E070E081115ACD082F10E02B01082EF1 -:105CE00002C0440C551C0A94E2F7A9014421552135 -:105CF000452B09F448C090911A0390FD46C0829547 -:105D0000880F807680936A0198013695279536959D -:105D1000279520936D01815E80936B0110926E0137 -:105D200024E630E047E050E068E671E088E70E9452 -:105D30008B32892B09F02ACDA80175E0440F551F3D -:105D40007A95E1F780911A0380FD2DC042585B4F90 -:105D500004E610E020E230E060E488E70E94B2321E -:105D6000892B09F013CD0E94F20DC2018095909508 -:105D700040907C0450907D044822592250927D042A -:105D800040927C0403CD8F5FA7CF880F880F880FC8 -:105D900080936A0110926D01895F80936B0183E0AB -:105DA00080936E01BDCFEAEFF2E080E2DF011D9249 -:105DB0008A95E9F7EEE0F2E0F9AFE8AF0AE012E029 -:105DC00099249394A8ADB9AD2D91B9AFA8AFF801BE -:105DD00021908F01240E352E311CC10182589B4F1A -:105DE0001C01E22FF0E0E650FD4F30E020E067E0DC -:105DF000A62EA21AB92C022E01C0BB0C0A94EAF7F7 -:105E0000610190E0D6018D916D018B216A2D691B96 -:105E10006770862E062E000C770BB82F01C0BB0FC3 -:105E20008A94EAF78B2E71956195710967707727CF -:105E300001C086956A95EAF7882A8081882A80823F -:105E40009F5F9830F9F62F5F3F4F3196283031052C -:105E500071F6E2E1F2E028AD39ADE217F30709F09F -:105E6000B1CF04E610E020E230E04AEF52E074CF18 -:105E700045E00E943A0D20912C0330912D03281B00 -:105E8000390B30932D0320932C0345E0602F812F95 -:105E90000E943A0D20912A0330912B03281B390BC5 -:105EA00030932B0320932A036CE273E087E393E0A3 -:105EB0000E941B0D6AE273E088E393E00E941B0DD1 -:105EC00010923A03109239030DCD01979093340349 -:105ED0008093330307CD81608093360384E00E9472 -:105EE000F21384E190E0F2CF809142038F5F8093C0 -:105EF0004203F8CC81E080FF0FC0E0915204F091A2 -:105F00005304309749F082E0809324030480F581A4 -:105F1000E02D84E293E00995109226031092270366 -:105F2000109228031092290386E0E4E2F3E0AEE148 -:105F3000B3E001900D928A95E1F70E94051C9093C1 -:105F40004103809340030E94010F909143038917FE -:105F500031F00E94010F809343030E94B316809199 -:105F60006C04843009F051CB83E08093E900809188 -:105F7000E80082FF4ACB8091E80090E085FF0BC0EB -:105F80000E94F40630E2E32EF12C8E010F5F1F4FCA -:105F90008823E1F091E08091E8008B778093E8001E -:105FA000992309F432CBE981E150E33108F071C063 -:105FB000F0E0ED5AF84C0C9488358091F100D8014E -:105FC0008D938D01B1E0EB1AF10821F38091E80087 -:105FD00085FDF3CF8091E8008B778093E8000E94E5 -:105FE000F406882399F3D6CF1A8289E08B8311C0F7 -:105FF0008A81823009F48FC1833091F1813009F0B8 -:1060000048C00E9462080E948E356B837C838D831A -:106010009E8380916C04843009F0F7CA1091E900E6 -:106020001F709091EC00892F817090FD80E8182BF3 -:1060300082E08093E9008091E80080FF0DC050E08D -:1060400040E060E270E0CE0101960E942507809159 -:10605000E8008E778093E8001F701093E900D5CA9E -:10606000DE011396EFE4F3E081918D9323E0E935AF -:10607000F207D1F7CECF8A81823059F46B817C81CF -:106080008D819E810E948E3586E290E00E94C83507 -:10609000C0CF8FEF8983BDCF4C816B818A810E94F5 -:1060A0008D149827892798279E838D83B2CF0D81E1 -:1060B0001E811027012710278A81EB803EE0E39E96 -:1060C000700111249CE8899FE00CF11C11248C8143 -:1060D00090E0880F991FE80EF91E612FC70187967F -:1060E0000E94C835602FC7018896D0CF0E94111436 -:1060F00090CF8A818138C1F060F4803809F089CF6F -:1061000020E04B8160917904809178040E944D15C4 -:1061100080CF8238E9F0833809F07BCF20E04091CE -:106120007A046C818B81F2CF60E08B810E946416CF -:106130008B81811103C00E9424106BCF8091770462 -:1061400081608093770460E086950E94641661CF39 -:106150008B8180937B045DCF8A81813899F030F404 -:10616000803809F056CF80917A0440CF823891F080 -:10617000833809F04ECF809178048B838091790425 -:106180008C8347CF8091770480FF02C086952ECF05 -:1061900080E02CCF80917B0429CF609177047091AF -:1061A00078048091790490917A040E943B1531CF54 -:1061B00080E18A832ECF81E08A838DE117CFCA8068 -:1061C000DB80DC24CD24DC248E010F5F1F4FEC80AC -:1061D000E00EF12EF11CC6018D519D4F0E151F05CD -:1061E00009F417CFADE1CA16A1E0DA0650F40E9417 -:1061F000B435F8018483BFEFCB1ADB0A0F5F1F4F62 -:10620000EACFD80114961C92F6CF0A811B81102781 -:1062100001271027FE0131966F01EC80E00EF12E70 -:10622000F11CC8018D519D4FE016F10609F4F1CE25 -:106230000D31F1E01F0728F4D60114966C910E94ED -:10624000C835BFEFCB1ADB0A0F5F1F4FEACF0E94A2 -:106250000114DFCE85E0ADCFCA80DB80DC24CD2405 -:10626000DC248E010F5F1F4FEC80E00EF12EF11C3D -:10627000C6018796E016F10609F4CBCEECEBCE16FC -:10628000E2E0DE0658F40E94B435D80114968C93EF -:10629000FFEFCF1ADF0A0F5F1F4FEACFF80114821A -:1062A000F7CF0A811B811027012710279E012F5F3E -:1062B0003F4F6901EC80E00EF12EF11CC80187967A -:1062C000E016F10609F4A5CE0C3B32E0130728F4E2 -:1062D000D60114966C910E94C835BFEFCB1ADB0A29 -:1062E0000F5F1F4FEBCF09BD19BD09B400FEFDCFF5 -:1062F0008091D8008F7D8093D8008091E0008260EB -:106300008093E0008091E00081FDFCCF10925F045B -:106310000E94391075CB86E290E00E94B4351B8252 -:106320001C821D828E8375CE1092B9008CE0809302 -:10633000B80008959F92AF92BF92CF92DF92EF92F2 -:10634000FF920F931F93CF93DF93B82EEB010E9420 -:10635000051C6C01EE24E394F12CC431D10560F0EE -:1063600025E0E22EF12CCF3FDC0731F0CE0164E1D5 -:1063700070E00E9454357B0184EAA82E94E8992E9F -:106380001092BC00A092BC000E94051C8C01809160 -:10639000BC0087FF0DC08091B900887F883039F13B -:1063A0008091B900887F803111F10FEF1FEF09C094 -:1063B0000E94051C801B910B8E159F0540F30EEF6C -:1063C0001FEFCF3FDC07E1F2C6010E94F61B8C17DE -:1063D0009D07B0F2C801DF91CF911F910F91FF90FF -:1063E000EF90DF90CF90BF90AF909F900895B092C4 -:1063F000BB009092BC000E94051C8C018091BC00E7 -:1064000087FF0AC08091B900887F883111F08034FD -:1064100061F610E000E0DECF0E94051C801B910BAE -:106420008E159F0558F3CBCF0F931F93CF93DF9318 -:10643000EB018093BB0084E88093BC000E94051CA4 -:106440008C018091BC0087FF11C02091B900287F8A -:1064500081E090E0283211F490E080E09195819500 -:106460009109DF91CF911F910F910895CF3FDC07E4 -:1064700041F30E94051C801B910B8C179D0708F3AC -:106480008EEF9FEFEECF0F931F93CF93DF93EC012F -:1064900084EC8093BC000E94051C8C018091BC00A0 -:1064A00087FF08C08091BB0090E0DF91CF911F91E2 -:1064B0000F910895CF3FDC0789F30E94051C801BD4 -:1064C000910B8C179D0750F38EEF9FEFEECF0F933C -:1064D0001F93CF93DF93EC0184E88093BC000E946C -:1064E000051C8C018091BC0087FF08C08091BB0017 -:1064F00090E0DF91CF911F910F910895CF3FDC077E -:1065000089F30E94051C801B910B8C179D0750F38B -:106510008EEF9FEFEECFCF92DF92EF92FF920F932D -:106520001F93CF93DF936B018A017901B9010E9418 -:106530009A31E6010C0D1D1DC017D10761F424E945 -:106540002093BC00DF91CF911F910F91FF90EF90AE -:10655000DF90CF90089597FDF2CFB70189910E9407 -:106560001432EACFCF92DF92EF92FF920F931F93F4 -:10657000CF93DF93C62F6A017901B8010E949A3147 -:1065800097FD0CC0B8018C2F0E941432E601EC0C70 -:10659000FD1CCE15DF0511F097FF0CC024E92093F8 -:1065A000BC00DF91CF911F910F91FF90EF90DF9092 -:1065B000CF900895B80189910E941432EACFCF920A -:1065C000DF92EF92FF920F931F93CF93DF93F82EFA -:1065D000E62EEA016901B8010E949A3197FD15C0C3 -:1065E000B8018E2D0E94143297FD0FC0B8018F2D77 -:1065F00081600E949A31F12CE12C21E0C21AD1086D -:10660000EC14FD0400F597FF11C024E92093BC00B1 -:106610001816190614F490E080E0DF91CF911F91D5 -:106620000F91FF90EF90DF90CF900895C8010E94E6 -:10663000433297FD04C0FE01EE0DFF1D80832FEF56 -:10664000E21AF20ADDCF97FDE0CFC8010E9467325F -:1066500097FDDBCFCC0DDD1D8883D7CF84E98093F8 -:10666000BC0008958EE14A9B02C08150E1F74A9B2D -:10667000FECF08955A9880E28A95F1F75A9A0895C4 -:10668000FC013BE03A95F1F798E020E080E031E052 -:1066900040E14A95F1F7880F4A9B02C081602327A9 -:1066A00042E04A95F1F7000040E14A95F1F7915038 -:1066B00079F790E19A95F1F799B132E03A95F1F7CF -:1066C000000040E14A95F1F792FB992790F9922753 -:1066D0002081920F90830895EF92FF920F931F9362 -:1066E000CF93DF930F92CDB7DEB719828C017C0177 -:1066F000E60EF11C0E151F0561F481E099819111E0 -:1067000080E00F90DF91CF911F910F91FF90EF905C -:1067100008950E943233CE0101960E944033F80161 -:1067200081938F01E7CF529A5A9A089552985A9AB4 -:10673000EA9AE9E6F0E080818F7C808308956150D9 -:10674000770B91E001C0990F6A95EAF720E031E0FC -:10675000911108C0222391F05A9A80E28A95F1F7AC -:106760005A980895492F482339F05A9A232740E22E -:106770004A95F1F79695ECCF5A98F9CF5A98EDCF04 -:10678000FF920F931F93CF93DF93EC018C01060FC1 -:10679000111DC017D10731F4DF91CF911F910F91D7 -:1067A000FF900895F9900E943A3368E08F2D0E947F -:1067B0009F33EFCF1F920F920FB60F921124EF92DB -:1067C000FF920F931F932F933F934F935F936F937A -:1067D0007F938F939F93AF93BF93EF93FF93CF9349 -:1067E000DF930F92CDB7DEB719820E943233CE010C -:1067F00001960E944033A82FA695A695A695282F0E -:10680000229525709A2F9570290F922F93702695B7 -:106810002695920F982797708981982B09F075C05B -:10682000A83008F072C080E18A95F1F75A9A529A1E -:10683000B2E0BA95F1F700C05A98EA2EF12CEAE0DE -:10684000AE9FD0011124AF5FBE4F1896ED91FC9121 -:1068500019973097B1F06091F8017091F90116968F -:106860002D913C911797260F371F13968D919C9170 -:106870001497680F791F15964C91159712968C9165 -:1068800009958AE08E9DF0018F9DF00D1124EF5F38 -:10689000FE4F6581662351F02091F8013091F90196 -:1068A00086819781820F931F0E94C0330E943A33E2 -:1068B000F0E1FA95F1F75A9852985A9A80E18A9540 -:1068C000F1F78AE08E9D80018F9D100D11240F5FDE -:1068D0001E4FD80112966C911297662371F1209188 -:1068E000F8013091F90113968D919C91820F931FBD -:1068F0000E946C33D801ED91FC91882311F088E05F -:1069000001C082E080830E9432330F90DF91CF91EB -:10691000FF91EF91BF91AF919F918F917F916F9177 -:106920005F914F913F912F911F910F91FF90EF90A9 -:106930000F900FBE0F901F901895ED91FC91DFCF37 -:106940000F931F93CF93DF93EC0108970CF0A9C02E -:106950008AE08C9FF0018D9FF00D1124EF5FFE4FB8 -:1069600080819181892B09F49CC0F894529A5A989D -:1069700085E08A95F1F700008C2F869585709C2F15 -:106980009570890F982F937086958695890F8E0143 -:1069900093E0000F111F9A95E1F7082B0E943A33FC -:1069A00000C068E0802F0E949F33A0E1AA95F1F714 -:1069B00052985A9A4A9B27C087E090E04A9925C08E -:1069C0008AE08C9F80018D9F100D11240F5F1E4F58 -:1069D000F80165816623A1F12091F8013091F90158 -:1069E00086819781820F931F0E946C33811128C08A -:1069F000529A5A9AD801ED91FC9182E08083789462 -:106A000082E090E016C000C0D5CF0197B9F4529A49 -:106A10005A9A8AE08C9FF0018D9FF00D1124EF5F50 -:106A2000FE4F0190F081E02D81E08083789481E039 -:106A300090E0DF91CF911F910F91089500C0BECFDC -:106A40000E943233B0E2BA95F1F75A98529AE0E1D7 -:106A5000EA95F1F78AE08C9FF0018D9FF00D1124EB -:106A6000EF5FFE4F6281662351F02091F801309173 -:106A7000F90183819481820F931F0E94C0330E9489 -:106A80003A338AE08C9FF0018D9FF00D1124EF5F67 -:106A9000FE4F0190F081E02D1082789490E080E02C -:106AA000C8CF84E090E0C5CFAA1BBB1B51E107C053 -:106AB000AA1FBB1FA617B70710F0A61BB70B881F8E -:106AC000991F5A95A9F780959095BC01CD0108951D -:106AD000991B79E004C0991F961708F0961B881F30 -:106AE0007A95C9F78095089597FB072E16F40094C0 -:106AF00007D077FD09D00E94543507FC05D03EF43D -:106B0000909581959F4F0895709561957F4F089559 -:106B1000EE0FFF1F0590F491E02D09946927962749 -:106B200069277827872778270895FB01DC0102C0B1 -:106B300005900D9241505040D8F70895FB01DC01BB -:106B400004C08D910190801921F441505040C8F744 -:106B5000881B990B0895FB01DC0102C001900D9286 -:106B600041505040D8F70895F999FECF92BD81BDAC -:106B7000F89A992780B50895A6E1B0E044E050E086 -:106B80000C94EE35A8E1B0E042E050E00C94EE3514 -:106B9000262FF999FECF92BD81BDF89A019700B4D6 -:106BA000021639F01FBA20BD0FB6F894FA9AF99A76 -:106BB0000FBE08950396272F0E94C9350E94C8353D -:106BC000252F0E94C935242F0C94C9350196272FF3 -:106BD0000E94C9350C94C835DC01CB01FC01F99940 -:106BE000FECF06C0F2BDE1BDF89A319600B40D9219 -:106BF00041505040B8F708950E943E3608F481E0B5 -:106C00000895E89409C097FB3EF49095809570959F -:106C100061957F4F8F4F9F4F9923A9F0F92F96E9E8 -:106C2000BB279395F695879577956795B795F1115D -:106C3000F8CFFAF4BB0F11F460FF1BC06F5F7F4FFA -:106C40008F4F9F4F16C0882311F096E911C077230C -:106C500021F09EE8872F762F05C0662371F096E815 -:106C6000862F70E060E02AF09A95660F771F881FE4 -:106C7000DAF7880F9695879597F90895990F000888 -:106C8000550FAA0BE0E8FEEF16161706E807F907FE -:106C9000C0F012161306E407F50798F0621B730B99 -:106CA000840B950B39F40A2661F0232B242B252B1A -:106CB00021F408950A2609F4A140A6958FEF811DBD -:106CC000811D08950E9475360C94E6360E94D836D0 -:106CD00038F00E94DF3620F0952311F00C94CF3667 -:106CE0000C94D53611240C941A370E94F73670F3A1 -:106CF000959FC1F3950F50E0551F629FF001729F61 -:106D0000BB27F00DB11D639FAA27F00DB11DAA1F6F -:106D1000649F6627B00DA11D661F829F2227B00DBC -:106D2000A11D621F739FB00DA11D621F839FA00D47 -:106D3000611D221F749F3327A00D611D231F849F97 -:106D4000600D211D822F762F6A2F11249F575040EE -:106D50009AF0F1F088234AF0EE0FFF1FBB1F661F69 -:106D6000771F881F91505040A9F79E3F510580F032 -:106D70000C94CF360C941A375F3FE4F3983ED4F36B -:106D8000869577956795B795F795E7959F5FC1F7D6 -:106D9000FE2B880F911D9695879597F9089597F981 -:106DA0009F6780E870E060E008959FEF80EC0895B1 -:106DB00000240A94161617061806090608950024DA -:106DC0000A9412161306140605060895092E039454 -:106DD000000C11F4882352F0BB0F40F4BF2B11F4C8 -:106DE00060FF04C06F5F7F4F8F4F9F4F089557FD27 -:106DF0009058440F551F59F05F3F71F04795880F29 -:106E000097FB991F61F09F3F79F0879508951216BF -:106E100013061406551FF2CF4695F1DF08C016166B -:106E200017061806991FF1CF86957105610508941C -:106E30000895E894BB2766277727CB0197F9089533 -:106E4000F894FFCF29115111A4115111A4118411EB -:106E5000BC11A411B912C6120D150D151615161573 -:106E600018151615161516150D150D151D151615D3 -:106E700016151D15621CD81CDB1CEF1CF21C051D11 -:106E80000E1D321D781DAA1DBE1D441D671D3F210C -:106E90003F2198219821CA21722172217221E42177 -:106EA000552265226522F42FF82F3B304C305730A5 -:106EB00076307930AC30CD3049304930D830DB30A5 -:0C6EC000DF30053127312A312C315131EF -:106ECC000138020000000100000000380200000040 -:106EDC000501000000380200000001060000003827 -:106EEC000200000001070000003802040800000046 -:106EFC000000003802090C000000000000380201FC -:106F0C001500000000000036323331F7F667669743 -:106F1C00C6343500000000000180005F086D0E4C87 -:106F2C000E480E440EF4F5010021007F22000300F0 -:106F3C004A004A4A01F6F731333236674C4159451B -:106F4C00520042617365200047616D6520005261FB -:106F5C00697365004C6F776572004C4F434B00436F -:106F6C00617073004E756D005363726C00202020AD -:106F7C00202000534F4C415200544D50535400812B -:106F8C008283E200E900EA00B500B600B700CD004C -:106F9C008301CC008A019201940121022302240274 -:106FAC002502260227022A02B300B4006F007000EB -:106FBC000603060806010606AF0200FF01000100E9 -:106FCC0000FFFF0000010001FF000008101818105E -:106FDC000800000102020202020202020202402226 -:0E6FEC007B99017701FC00000C190C390C0098 +:100A7000010101070F0F7F0F7F0F0F7E0F0F7F0FF9 +:100A80007F0F0F07010101000000000000000000BF +:100A90000001010000000000000000000000000054 +:100AA0000000000000000000000000000000000046 +:100AB0000000000000000000000000000000000036 +:100AC0000000000000000000000000000000000026 +:100AD0000000000000000000000000000000000016 +:100AE0000000000000000000000000000000000006 +:100AF00000000000000000000000000000000000F6 +:100B000000000000000000000000000000000000E5 +:100B100000000000000000000000000000000000D5 +:100B20000000000000000000000000AF00AE09025D +:100B30005B00030100A0FA090400000103010100A9 +:100B40000921110100012240000705810308000A64 +:100B50000904010002030000000921110100012223 +:100B6000220007058203200001070503032000017E +:100B70000904020001030000000921110100012203 +:100B80007B000705840320000A1201000200000018 +:100B90000832FC87120200010200011E0353006F9D +:100BA000006C00610072006900750073005F005303 +:100BB000006F0066006C006500000010034B0065CC +:100BC00000790068006900760065000000040309F0 +:100BD000040011241FBECFEFDAE0DEBFCDBF04B6A4 +:100BE00003FE27C08091700690917106A091720655 +:100BF000B09173068730904BA740B04BD1F4109260 +:100C0000700610927106109272061092730614BE4E +:100C100084B7877F84BF0FB6F894A8958091600051 +:100C2000886180936000109260000FBEE0E0F8E3FE +:100C3000099512E0A0E0B1E0EEEEFDE602C00590FD +:100C40000D92A033B107D9F726E0A0E3B2E001C0CE +:100C50001D92A037B207E1F70E943B290C94B136F0 +:100C60000C940000CF93DF9340916E0650916F0675 +:100C70004E5654409A01205A3F4F21303240C0F026 +:100C800020E032E0241B350B60916C0470916D0400 +:100C9000FC01CA01240F351FC1E0D0E08217930781 +:100CA00050F070936D0460936C04DF91CF910895C0 +:100CB00020E630E0E9CF4491DC01A259BB4F5C91C2 +:100CC000451781F04C93AC01A5E056954795AA9540 +:100CD000E1F7DE0102C0AA0FBB1F4A95E2F7AD01A2 +:100CE0006A2B752B01963196D9CFE8EDF0E0808123 +:100CF0008E7F80831092E2001092DA001092E10061 +:100D0000A0EEB0E08C9181608C9380818F7780839E +:100D100019BCA7EDB0E08C918E7F8C9380818F7E83 +:100D2000808310924E0408952091E4003091E500F4 +:100D300095E6A9012091EC00822F817020FF06C06A +:100D40008091E80080FF06C080E008952091E800CF +:100D500022FD1AC080915C04882389F0853089F0D7 +:100D60008091EB0085FD0FC02091E4003091E500FB +:100D700042175307F9F29150E1F684E0089582E0BA +:100D8000089583E0089581E00895EF92FF920F9314 +:100D90001F93CF937C018B010E949406C82F811171 +:100DA00017C08091E80085FD0BC08091E8008E7728 +:100DB0008093E8000E949406882399F3C82F08C006 +:100DC000F70181917F018093F1000150110949F7EA +:100DD0008C2FCF911F910F91FF90EF9008958091EC +:100DE0005E0487FF13C08091E80082FF06C08091F7 +:100DF000E8008B778093E80004C080915C04811147 +:100E0000F2CF089580915C048823D9F38091E800A3 +:100E100080FFF8CF8091E8008E77ECCF982F9093E9 +:100E2000E900242F762F50E0891731F07091EC0003 +:100E30002091ED005091F00021FD07C09F5F973099 +:100E400071F78093E90081E008953091EB003E7FD7 +:100E50003093EB003091ED003D7F3093ED00309109 +:100E6000EB0031603093EB007093EC002093ED00C9 +:100E70005093F0002091EE0027FDE0CF80E0089530 +:100E8000CF92DF92EF92FF920F931F93CF93DF9356 +:100E9000C8EDD0E088818F7E8883E7EDF0E0808127 +:100EA0008160808384E082BF81E080934E048881EA +:100EB0008E7F888302EE10E0F80110821092DA0033 +:100EC00081EEC82ED12CF601108288818F7788831D +:100ED00088818068888388818F7D888319BC10927F +:100EE0005C0410925D0410925B0410925A0490EE20 +:100EF000E92EF12CF70180818B7F808388818160CE +:100F0000888342E060E080E00E940E07F601808165 +:100F10008E7F8083F80180818160808380818860FA +:100F20008083F70180818E7F8083888180618883C0 +:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 +:100F40000895FC01809164049091650486179707C9 +:100F5000A0F06115710529F49091E8009E779093B7 +:100F6000E80090E06115710551F4911108C080917D +:100F7000E80082FF34C080E00895BC01F2CF809188 +:100F80005C048823C1F18530C1F18091E80083FDC4 +:100F900030C08091E80082FDEACF8091E80080FFB8 +:100FA000E1CF8091F3002091F200382F6115710597 +:100FB00019F02830310558F091E02830310509F05A +:100FC00090E02091E8002E772093E800CBCF81912C +:100FD0008093F100615071092F5F3F4FE7CF8091FF +:100FE0005C04882341F0853041F08091E80083FF64 +:100FF000BECF81E0089582E0089583E008950895CA +:10100000809151040895CF92DF92EF92FF922FB713 +:10101000F894C0904704D0904804E0904904F090C0 +:101020004A042FBFA7019601261B370B480B590B0B +:10103000CA01B901FF90EF90DF90CF9008952FB7CC +:10104000F89460914704709148048091490490910C +:101050004A042FBF08952091440430914504281775 +:10106000390771F09093450480934404E091420461 +:10107000F0914304309721F00084F185E02D09942C +:10108000089520914004309141042817390771F0E8 +:101090009093410480934004E0914204F091430412 +:1010A000309721F00680F781E02D0994089581158D +:1010B00020E59207F8F48115E0E49E0788F589336E +:1010C000910570F48C32910548F48430910580F0DC +:1010D0008E31910518F08897039750F480E00895B9 +:1010E00084369105D9F320F0805E91090897B0F31A +:1010F00081E01BC08115F9E59F0750F4811528E5B3 +:101100009207A0F491558F3F910509F088F7E6CF3B +:101110008115EAE59E0710F390568115904240F73D +:10112000FB019581907F81E0C9F20895FB019581D3 +:10113000907F81E0903291F6F8CF20912F0436E035 +:10114000839FC0011124629F800D911D1124811580 +:1011500022E0920714F090E080E082599B4F909338 +:101160006F0680936E060895FC01680F791F8FEF5C +:1011700091E32191822728E030E087FF09C0880FA2 +:10118000892721503109C9F7E617F70791F7089524 +:10119000880FF7CFFA01811101C0FB0109948091FA +:1011A0006704982F9E7F61F481708260809367044A +:1011B00080916A04813A18F080EA80936A04089565 +:1011C0008831B0F381708661F1CFAF92BF92DF9228 +:1011D000EF92FF920F931F93CF93DF93082F162F59 +:1011E000E901E42FF0E0E556FB4F611110C0E491F6 +:1011F0005E2F4E2F4983E8835A83DF91CF911F9151 +:101200000F91FF90EF90DF90BF90AF900895E62E82 +:10121000F12C4491D42EE42FF0E026E0829FC0010F +:1012200011242FEF30E0B9010E94D834802F90E0D4 +:10123000880F991F55E5569FD001579FB00D112477 +:101240008A1B9B0B982F990F890F5901AE18BF0865 +:10125000AE9ED001AF9EB00DBE9EB00D11245B2F8F +:10126000189F80011124012F11275901A01AB10ADA +:10127000AE9E8001AF9E100DBE9E100D112459012F +:10128000A81AB108AE9CC001AF9C900DBE9C900DF9 +:101290001124892F9927281B390B2E9FC0012F9FBE +:1012A000900D3E9F900D1124E92F62307105A1F041 +:1012B00050F46115710509F49DCF6130710581F01D +:1012C000EB2F512F97CF6430710569F080F06630B5 +:1012D000710509F48FCFF4CFE42F4B2F592F8ACF0C +:1012E000E42F412F87CFEB2F542F492F83CF4B2F44 +:1012F0005D2DE12F7FCF80E0089578940895F894D4 +:10130000E82FE295EF70F0E031A1282F2F7081E0F7 +:1013100090E001C0880F2A95EAF7982F90959323C3 +:1013200091A392A1892B82A30C947D099091D7025D +:1013300092FF06C0282F28712830F9F4877F846037 +:1013400093FF06C0282F28712831F1F4877E84612D +:101350002091D80220FF06C0382F38713830D9F4D8 +:10136000877F816021FF06C0282F28712831D1F4A2 +:10137000877E816194FD877E0895282F2471243013 +:10138000F9F68B7F8860DCCF282F2471243101F798 +:101390008B7E8861DDCF382F3171313019F78E7F28 +:1013A0008860E0CF282F2171213121F78E7E88615E +:1013B000E1CFCF93DF93EC018238910581F1B0F555 +:1013C0008133910509F491C020F58932910509F422 +:1013D00085C08A9709F490C0C11521E5D20708F0AD +:1013E000AAC0C11530E5D30708F0F2C0CF3BD10544 +:1013F00008F089C0C83AD10508F0DFC0C53AD10568 +:1014000008F0D3C0C430D105F8F4C130D105E1F003 +:1014100040C08533910509F45AC0C997E9F6809117 +:10142000D702837089F0C0EED0E00EC0833E9105F4 +:1014300099F170F4803E910501F1823E910561F6CB +:101440008091D70282FD21C0CE01DF91CF91089516 +:10145000863E910561F1873E910571F1843E9105CB +:1014600009F0BACF8091D80281FFEECF8091D702E8 +:10147000C7EED0E084FD0DC0E7CF8091D70280FD9C +:10148000F7C09091D80290FFDFCFC3EED0E084FF89 +:10149000DBCFD0E0C0E0D8CF8091D70282FDEBC097 +:1014A0009091D80290FDBFCF84FFCECFF2CF809134 +:1014B000D70283FDDDCFC8CF8091D70283FDDEC088 +:1014C0009091D80291FFF0CFC4EED0E0BDCF8091D3 +:1014D000D70285FFB9CFC9E2D0E0B6CF8091D7025D +:1014E00085FFB2CFC5E3D0E0AFCF8091D70286FFB2 +:1014F000ABCFCAE2D0E0A8CF8091D70286FFA4CFBD +:10150000C1E3D0E0A1CFC11540E2D40760F4C1151A +:1015100081E0D80708F098CFCE01815E9109079746 +:1015200008F492CFB6CFC11590E4D90708F4B1CF33 +:10153000DF70D06A89CFC11524E5D20778F4C115D0 +:1015400033E5D30708F072C0C11542E5D40708F0AF +:101550005CC0DC2FCC27C16FD06A76CFC1158AE57D +:10156000D80778F4C11599E5D90708F073C0C115FB +:1015700028E5D20708F48DCFDC2FCC27C06FD06AC6 +:1015800063CFCE0190568115904208F082CF8D2F07 +:101590008F710E94960990E0982F882788279F7165 +:1015A0009C012C2BE901D0624FCFC55AD0E0CE531D +:1015B000DE4FC881D0E0D06447CFC85AD0E0CC0F0E +:1015C000DD1FCB53DE4F0990D881C02DD4643CCFB2 +:1015D000CE0164E0969587956A95E1F783702C2F8C +:1015E00026952695237040E2249F90011124382BE4 +:1015F0008C2F8370C1E0D0E002C0CC0FDD1F8A9534 +:10160000E2F7C22BD32BDC681FCFCE018370992762 +:1016100021E030E002C0220F331F8A95E2F7C69521 +:10162000C69580E2C89FE0011124EBCFCE01837004 +:10163000992721E030E002C0220F331F8A95E2F79C +:10164000C695C69590E2C99FE0011124C22BD32B09 +:10165000DA68FACE8C2F8F700E94960934E0D69506 +:10166000C7953A95E1F7CF709C2FEC01D069ECCE8D +:10167000C9E3D0E0E9CEC2EED0E0E6CEC6EED0E0DF +:10168000E3CE0C941F0880914F0490919402892B13 +:1016900090919302892B80933202E0914204F09161 +:1016A0004304309731F00280F381E02D82E392E031 +:1016B000099408958091920290916102981301C05B +:1016C00008958F5F8770FACF27E0929F800D1124D5 +:1016D000982F977086958695869523E0829FF001D6 +:1016E0001124E05CFD4F50E040E080E0219130E0CB +:1016F000092E02C0369527950A94E2F72170332708 +:10170000042E01C0220F0A94EAF7822B4F5F5F4F2D +:101710004330510559F7089527E0929F800D112419 +:10172000982F977041E001C0440F9A95EAF786958B +:101730008695869593E0899FF0011124E05CFD4F2A +:1017400090E080E070E05191DF0111979B01082E3D +:1017500002C0369527950A94E2F721702195252736 +:10176000242325272C9301968330910561F7089552 +:1017700090E080E00E94410890E080E00E942B0809 +:1017800010929402109293020C94430B8093950252 +:101790000C94B80B882341F0809590914F048923D5 +:1017A00080934F040C94430B0895882339F0909153 +:1017B0004F04982B90934F040C94430B0895882367 +:1017C000B1F19CEF980F913A70F4E4E3F2E091915B +:1017D000891303C0DF0111971C9242E0EA33F4073A +:1017E000B1F70C94430B90E2980F983088F487700F +:1017F00021E030E0A90102C0440F551F8A95E2F7AD +:10180000CA01809590914F04892380934F04E9CFBA +:101810009BE5980F933020F490E080E00C94410811 +:10182000885A873120F490E080E00C942B080895CA +:101830000F931F93CF93C82F882309F469C08CEFAF +:101840008C0F813AB0F504E312E08AE392E0F801EC +:101850002191C21701F122E0EA33F207C9F7EFEF55 +:1018600080E0D8019D918D01C91781F0EF3F19F4F7 +:10187000911101C0E82F8F5F863099F7EF3F31F06B +:101880000E2E000CFF0BEE5CFD4FC283CF911F911B +:101890000F910C94430BE4E3F2E02191C21303C0D7 +:1018A000DF0111971C928E179F07B9F70E94430B17 +:1018B000D6CF80E28C0F883068F4C77021E030E02A +:1018C00001C0220FCA95EAF780914F04822B8093C2 +:1018D0004F04DCCFEBE5EC0FE33050F4F0E0EE53D7 +:1018E000FE4F808190E0CF911F910F910C944108A1 +:1018F000C85AC73168F4EC2FF0E0EE0FFF1FEB532E +:10190000FE4F80819181CF911F910F910C942B08F4 +:10191000CF911F910F910895982F92959F7011F07C +:10192000892F94E0282F2695269511F09E5F822F0F +:10193000869509F09F5F892F0895CF93DF93CDB7E8 +:10194000DEB762970FB6F894DEBF0FBECDBF96E04C +:10195000EAE3F3E0DE01179601900D929A95E1F724 +:1019600096E0FE013796DE011D9601900D929A9544 +:10197000E1F798858823E9F0962B9E8786E0FE01A3 +:101980003D96DE01119601900D928A95E1F786E071 +:10199000FE013196AAE3B3E001900D928A95E1F73A +:1019A00062960FB6F894DEBF0FBECDBFDF91CF9128 +:1019B000089560959623E1CF0F931F93CF93DF9304 +:1019C00000D000D0CDB7DEB789836A834B831C82F9 +:1019D00004E610E024E030E0AE014F5F5F4F60E0CE +:1019E00084E10E9436320F900F900F900F90DF919C +:1019F000CF911F910F91089580916F01882329F055 +:101A000047E669E98BE20C94DC0C80913B0247ECE1 +:101A10006BE18823C1F341E265EA89EDF4CFCF920F +:101A2000DF92EF92FF920F931F93CF93DF936C019E +:101A30007B0164E670E088E70E941E31EC0197FDAF +:101A400012C010E000E0F601E00FF11F849164E69F +:101A500070E00E949831EC01892B29F40F5F1F4F31 +:101A60000E151F0581F70E94B232CE01DF91CF9192 +:101A70001F910F91FF90EF90DF90CF90089580918C +:101A80003A0490913B04911103C091E08927089595 +:101A9000882369F062E070E08CE29BE00E940F0D09 +:101AA000892B19F080913A04089510923A0480919C +:101AB0003A04EBCFCF93C0913A0480913B04882342 +:101AC000D1F00E941F086058774C8E4F9F4F609353 +:101AD0003604709337048093380490933904C1110D +:101AE00008C062E070E08AE29BE00E940F0D892B43 +:101AF00029F0C0913A048C2FCF91089581E0809312 +:101B00003A04F7CF80934B0470934D0460934C04D8 +:101B100080915C048430F9F48093E9008FEF909118 +:101B2000E800815095FD06C095ED9A95F1F700000B +:101B30008111F5CF8091E80085FF0DC050E040E0B5 +:101B400063E070E08BE494E00E94C5068091E800B9 +:101B50008E778093E8000895BC0184E00C94820D98 +:101B6000BC0183E00C94820D9C0184E08093E90029 +:101B70009FEF8091E800915085FD06C085ED8A9524 +:101B8000F1F700009111F5CF8091E80085FF0CC0BE +:101B900050E040E066E070E0C9010E94C506809117 +:101BA000E8008E778093E8000895CF93DF93EC01EF +:101BB00081E08093E9008FEF9091E800815095FDDE +:101BC00006C095ED9A95F1F700008111F5CF80914F +:101BD000E80085FF14C050E040E068E070E0CE010E +:101BE0000E94C5068091E8008E778093E80088E027 +:101BF000FE01A2E5B4E001900D928A95E1F7DF9134 +:101C0000CF9108959F92AF92BF92CF92DF92EF92C1 +:101C1000FF920F931F93CF93DF937C015B016A01C7 +:101C20008091D20201E010E08A3010F40AE010E066 +:101C3000C1E0D0E0F894B501C701F6010995982EEE +:101C40000E947D09911004C021960C171D076CF4A9 +:101C5000892DDF91CF911F910F91FF90EF90DF9031 +:101C6000CF90BF90AF909F900895CC9F9001CD9F53 +:101C7000300D300D112490E080E045E34A95F1F7F6 +:101C80000000019682179307C1F7D4CF8091A2027A +:101C9000811110C08091D80080618093D8008AE1C2 +:101CA0008A95F1F700C08091D90080FF0AC081E0D9 +:101CB0008093A20281E09091A202913009F080E02D +:101CC000089582E08093A2020E94750610925C043F +:101CD000F1CF0E94460E882351F0E0914204F0912A +:101CE0004304309721F00190F081E02D099480E0C9 +:101CF00008951F93CF93DF93182FEB010E94180CC8 +:101D00008FE99FE00197F1F700C000002197C1F72C +:101D1000812FDF91CF911F910C94DF0BCF93DF9335 +:101D2000C3EED2E060E0CE010E944C352196C11591 +:101D300084E0D807B9F7DF91CF9108956F927F9231 +:101D40008F929F92AF92BF92CF92DF92EF92FF92CB +:101D50000F931F93CF93DF938EE2C82E8BE0D82E84 +:101D600091ECE92EF12CE701CC58D10936011BC0CA +:101D7000F50185909490692DC8010E944C35682D1D +:101D8000C80101960E944C3582E0A80EB11C0E5F7E +:101D90001F4FC017D10761F78EE0680E711C2E9699 +:101DA000CE15DF0529F08E010E5011095301E0CF49 +:101DB0007E018CE8E80EF11C8CE8C80ED11C8DE782 +:101DC000E81683E0F80679F6DF91CF911F910F9125 +:101DD000FF90EF90DF90CF90BF90AF909F908F904B +:101DE0007F906F900895CF93C82F6FEF811161E2BC +:101DF00083E290E00E944C356FEFC11161E184E213 +:101E000090E00E944C356FEFC11168E285E290E0EE +:101E1000CF910C944C3580E00E94F30E60E086E296 +:101E200090E00E944C350E949E0E0E948E0E81E032 +:101E30000C94F30E0F931F93CF93DF93C42FD0E036 +:101E4000CC0FDD1F2EE0629FC00DD11D11243CE898 +:101E5000839FC00DD11D1124CE0187960E94383575 +:101E6000082F10E0102F0027CE0188960E943835E9 +:101E70009801282BC901DF91CF911F910F910895EF +:101E8000462F853038F47A3028F4673018F4672FFD +:101E90000C941A0F90E080E00895CF92DF92FF92A9 +:101EA0000F931F93CF93DF936C0100916604809191 +:101EB0009502082BC7E0D0E010E0FC2EC8010C2EE4 +:101EC00002C0959587950A94E2F780FD0CC0219792 +:101ED000A0F7F12C8F2DDF91CF911F910F91FF90E3 +:101EE000DF90CF900895B6018C2F0E94400F0E9482 +:101EF000D909019761F3EECFCF93DF93EC010E94F4 +:101F00004D0FBE010E94400FDF91CF910C94D90973 +:101F1000FC01808191810E947C0F292F2F70929566 +:101F20009F7092509E3078F4E92FF0E0ED54F94C18 +:101F30000C940C35803F19F020F4883E20F481E0A9 +:101F40000895843FE1F380E00895883EC0F3813F27 +:101F5000D1F7F5CF822F869586958695089583E2F1 +:101F600090E00E943835813289F484E290E00E944A +:101F70003835813159F485E290E00E94383591E09E +:101F8000883209F090E0892F8170089580E0FCCFBD +:101F90001F93CF93DF93CDB7DEB768970FB6F89452 +:101FA000DEBF0FBECDBF40913A0350913B0360911D +:101FB0003C0370913D0380913E0390913F030E944A +:101FC000332520933A0330933B0360933E03709391 +:101FD0003F03142F119510933C03652F6195609377 +:101FE0003D0386E0EAE3F3E0DE01179601900D92EF +:101FF0008A95E1F786E0FE013796DE0111960190A1 +:102000000D928A95E1F79B858C8520916F012223A3 +:10201000B1F0772761950CF47095072E000C880BB2 +:10202000990B0E94B8352AE939E949E95EE30E9433 +:102030001C360E948035962F812F60E010E01B83B4 +:102040006C839D838E8386E0FE013196DE011D96B2 +:1020500001900D928A95E1F786E0FE013D96DE0142 +:10206000539601900D928A95E1F786E0FE017396F2 +:10207000DE01119601900D928A95E1F786E0FE014E +:102080003196AAE3B3E001900D928A95E1F786E0DC +:10209000EAE3F3E0DE01179601900D928A95E1F7ED +:1020A00086E0E4E3F3E0DE01119601900D928A955B +:1020B000E1F746E050E0BE016F5F7F4FCE0107962B +:1020C0000E942235892B79F0E0914204F09143047B +:1020D000309749F082E080933A030480F581E02D47 +:1020E0008AE393E0099510923C0310923D0310920D +:1020F0003E0310923F0386E0EAE3F3E0A4E3B3E09B +:1021000001900D928A95E1F768960FB6F894DEBFBC +:102110000FBECDBFDF91CF911F9108954F925F9277 +:102120006F927F928F929F92AF92BF92CF92DF92E7 +:10213000EF92FF920F931F93CF93DF93CDB7DEB74C +:10214000CE5DD1090FB6F894DEBF0FBECDBF509063 +:1021500073019091670490FF5DC080904D03909053 +:102160004E038114910409F068C0E0EAF5E09E0195 +:102170002F5F3F4FBE0161527F4FC901A4914A2F8B +:1021800050E0DA01AA0FBB1FA40FB51FA15BBC4F23 +:10219000CD90DD90EC90D901CD92DD92ED929D0134 +:1021A00031966A177B0751F72091720143E0249F13 +:1021B000800D911D1124539A2BB1277F3BB13860BC +:1021C0005FB7F894BC01549E600D711D11248617F1 +:1021D000970709F08EC05FBF8FE594E00197F1F794 +:1021E00000C00000C252DF4F0FB6F894DEBF0FBE32 +:1021F000CDBFDF91CF911F910F91FF90EF90DF90B6 +:10220000CF90BF90AF909F908F907F906F905F9096 +:102210004F900895809174012091750133E0839F60 +:10222000F0011124E15BFC4F821708F096CF118278 +:10223000108212828F5F3396F7CF90FF96CFD12C0A +:10224000C12C66246394712C53E0452E80914C037D +:1022500093010C2C01C0220F0A94EAF7822309F49F +:102260003FC0F601EE0FFF1FE80DF91DE590F49059 +:10227000E114F10409F479CF45E050E0B701CE0153 +:1022800001960E94193509810F3F51F18A81800F13 +:102290009927991F8B34910514F08AE490E05C0132 +:1022A000AA0CBB1C8A0D9B1DDC01A15BBC4F5D0110 +:1022B000049D80011124015B1C4F0A151B0520F0B1 +:1022C000B5E0EB0EF11CD8CF4D81413A08F040EA61 +:1022D00098016C818B810E94E5080D5F1F4FEDCF47 +:1022E000EFEFCE1ADE0AF8E0CF16D10409F0AECF38 +:1022F0003CCFFC014191CF01E8E03BB9000000C0B8 +:1023000047FF2BB9440F000000C000C000C02BB92C +:1023100000C0EA9591F75BCFE7E6F4E080818E7F1D +:102320008083E9E4F3E08281816082832FEF80E79C +:1023300092E0215080409040E1F700C000000C94F2 +:102340008E10E4E3F2E086E0DF011D928A95E9F762 +:102350000C94B80B1F93CF93DF93CDB7DEB7AA973A +:102360000FB6F894DEBF0FBECDBF8EE594E020918E +:10237000F100DC012D93CD01B4E086369B07B9F75F +:1023800080915F04833009F472C0B8F4813009F49D +:1023900049C0823009F4B5C08091E80083FF8DC246 +:1023A00080915E0490915F049A3008F086C2E92F14 +:1023B000F0E0EF53F94C0C940C358A3009F490C0DE +:1023C0008B3009F471C0893039F780915E04813215 +:1023D00019F78091620490916304009711F00297BD +:1023E000D9F68091E800877F8093E8008091E8002B +:1023F00082FF38C09091F3008091F200029731F48F +:102400008091F100813011F0863021F48091F1004B +:10241000809351048091E8008B778093E8000E94BC +:10242000EF06BACF80915E04813A09F0B5CF809172 +:10243000E800877F8093E8008091620490916304B4 +:10244000892B61F468E082E594E070E00E94A107C6 +:102450008091E8008B778093E8009ECF60E090E069 +:1024600080E0F3CF80915C048111C0CF95CF809143 +:102470005E04813A09F090CF8091620490916304E8 +:10248000892B09F089CF8091E800877F8093E8004D +:102490008091E80080FFFCCF809177018093F1006C +:1024A0008091E8008E77B9CF80915E04813209F087 +:1024B00073CF8091620490916304892B09F06CCFF3 +:1024C0008091E800877F8093E8000E94EF0680916A +:1024D00060048093770110924F040E94A1115CCF99 +:1024E00080915E04813209F057CF8091E800877FA8 +:1024F0008093E8000E94EF0680916104809350046D +:102500004BCF80915E04813A09F046CF8091E8007C +:10251000877F8093E8008091E80080FFFCCF809166 +:102520005004BCCF803899F0823809F0C6C1809140 +:1025300062048F70873008F0C0C18093E9008091F9 +:10254000EB0085FB882780F91092E90006C0809196 +:102550005A0490915B04911182609091E800977FFA +:102560009093E8008093F1001092F1008091E800D0 +:102570008E779FC1882309F48DC1823009F09DC1F7 +:1025800080916004811190C1809162048F702FEF5F +:10259000280F263008F091C18093E9002091EB00CC +:1025A00020FF82C1933031F48091EB0080628093F0 +:1025B000EB007AC19091EB0090619093EB0021E0E9 +:1025C00030E001C0220F8A95EAF72093EA001092CA +:1025D000EA008091EB008860EACF81116EC1109112 +:1025E00060041F778091E3008078812B8093E30063 +:1025F0008091E800877F8093E8000E94EF06809139 +:10260000E80080FFFCCF8091E30080688093E300C6 +:1026100082E0111183E080935C044FC180588230C6 +:1026200008F04BC120916004309161042C3DE3E03F +:102630003E07A1F583E08A838AE289834FB7F89445 +:10264000DE01139620E03EE051E2E32FF0E05093EC +:102650005700E49120FF03C0E295EF703F5FEF70F9 +:102660008E2F90E0EA30C0F0C7968D939D932F5F38 +:10267000243159F74FBF8091E800877F8093E800AD +:102680006AE270E0CE0101960E94A1078091E80005 +:102690008B778093E80011C1C096E7CF80916204E8 +:1026A00090916304432F55274330510509F44AC0E4 +:1026B00078F54130510509F47AC08BE590E0EEE2FF +:1026C000FBE04230510509F0F8C02091E800277F77 +:1026D0002093E800209164043091650482179307E9 +:1026E00008F49C0140E02115310509F065C0411155 +:1026F00063C08091E80082FDC9CF80915C0488238B +:1027000029F2853019F28091E80083FFF2CFBECF25 +:102710004132510509F43CC04232510509F0CDC0A7 +:102720008330910508F0C9C0FC01EE0FFF1FEC5D7E +:10273000FD4F0190F081E02D8F5D9D4FDC018C916C +:1027400090E01AC0332721303105D1F02115310531 +:1027500061F02230310509F0B0C0EBE9FBE0E49113 +:102760008E2F90E0EBE9FBE007C0EDECFBE0E4919D +:102770008E2F90E0EDECFBE0009709F49EC0A5CF12 +:10278000EBEBFBE0E4918E2F90E0EBEBFBE0F4CF82 +:102790008330910508F091C0880F991FFC01E65D18 +:1027A000FD4F0190F081E02D89E090E08ECF82E135 +:1027B00090E0E9E8FBE089CF80915C04882309F48C +:1027C00065CF853009F462CF8091E80083FD5ECF4C +:1027D0008091E80082FD8DCF8091E80080FF83CF5B +:1027E0009091F3008091F2002115310519F08830A5 +:1027F000910550F041E0089709F040E08091E80031 +:102800008E778093E8006FCF44914093F10031962A +:10281000215031090196E8CF803809F04EC08091EF +:10282000E800877F8093E80080915D048093F10049 +:102830009DCE811142C0109160041230F0F580915C +:10284000E800877F8093E80010935D040E94EF0604 +:10285000112311F084E005C08091E30087FDFACFD9 +:1028600081E080935C0442E061EC81E00E940E070D +:1028700042E261EC84E00E940E0742E261EC82E0F9 +:102880000E940E0742E260EC83E00E940E078091F6 +:102890005C0413C080916004813079F481E093304E +:1028A00009F080E080935B041092E9008091E800D9 +:1028B000877F8093E8000E94EF068091E80083FF05 +:1028C0000AC08091E800877F8093E8008091EB0048 +:1028D00080628093EB00AA960FB6F894DEBF0FBE1D +:1028E000CDBFDF91CF911F9108951F93CF93DF93B9 +:1028F000162FC0916E06D0916F068A30D1F42091C8 +:102900002F04CE018E569440622F70E00E94D8347E +:10291000281B822F66E00E94EC34C82FC15020F49F +:10292000DF91CF911F91089560E080E20E947514BD +:10293000F5CF8D30E9F4CE56D44020912F04622F8C +:1029400070E0CE010E94D834281B822F9E01280FF0 +:10295000311D2115324018F080E0D0E0C0E0C80FF2 +:10296000D11DC259DB4FD0936F06C0936E06D8CFEE +:1029700096E0FE01A0E3B4E001900D929A95E1F794 +:10298000803E90F186E0FE0111928A95E9F7C091B0 +:102990006E06D0916F06111133C046E050E0BE01C3 +:1029A00080E394E00E9422359E012E563440892B0C +:1029B00091F52A5F3F4F40912F04642F70E0C901C9 +:1029C0000E94D834481B463010F4240F311D2115C5 +:1029D00072E0370710F030E020E022593B4F30938F +:1029E0006F0620936E069CCFF6E08F9FB0011124F6 +:1029F00066517A4F46E050E0CE010E941935C7CFAC +:102A00009E012A5F3F4FFE012E173F0731F2808162 +:102A100080958193F9CFC90145E0969587954A95B0 +:102A2000E1F741E050E0BA0102C0660F771F8A95D6 +:102A3000E2F7CB0160916C0470916D04862B972BAB +:102A4000B9016B5F7F4FE5E076956795EA95E1F711 +:102A500002C0440F551F6A95E2F7842B952B909383 +:102A60006D0480936C04A5CFFF920F931F93CF93B7 +:102A7000DF93EC01F62EFC0101900020E9F78F01B5 +:102A800001501109C017D10730F0DF91CF911F918C +:102A90000F91FF9008956F2D89910E947514F2CFC8 +:102AA000EDE2F4E08083618324E630E042E050E030 +:102AB000BF0184EB0C940F32CF93C82F60E08CE001 +:102AC0000E9450156C2F84E00E94501561E08CE04C +:102AD000CF910C945015CF92DF92EF92FF926B0141 +:102AE0007C010E94CF08B701A60188E090E0FF902A +:102AF000EF90DF90CF900C945E35AF92BF92CF9263 +:102B0000DF92EF92FF920F931F93CF93DF9300D04A +:102B10000F92CDB7DEB7082FF62E142FE22E80913C +:102B2000670480FF4FC0E82FE695AE2FB0E0AB5EA4 +:102B3000BD4F9C91909349038E7F823009F056C01F +:102B4000413A08F040EA9E012F5F3F4F6F2D802FE2 +:102B50000E94E5088091670480FF11C02B813981B4 +:102B60004A81809174019091750153E0859FF00135 +:102B70001124E15BFC4F891798F10E948E1080911F +:102B80006804801308C0809169048F1104C080918B +:102B90006A04811729F080914B03826080934B0374 +:102BA00000936804F092690410936A04EE2051F0D7 +:102BB00060916704709168048091690490916A043F +:102BC0000E946B150F900F900F90DF91CF911F9186 +:102BD0000F91FF90EF90DF90CF90BF90AF9008954E +:102BE0004183308322838F5F3396C5CF923039F68D +:102BF000E2508E2F8170D82EE695F0E0E556FA4F20 +:102C0000A590B490C12CBB2460917601C61608F043 +:102C1000B4CF2C2D30E0A29EC001A39E900DB29E99 +:102C2000900D112470E00E94D834802FD11016C06E +:102C3000860F40917401420F532F511D9A01220FAC +:102C4000331F240F351F215B3C4F412F113A08F0F1 +:102C500040EA6F2D0E94E508C394D6CF861BE9CFCA +:102C6000E7E6F4E0438121E1421B08F440E021E083 +:102C7000628181810C947D15E7E6F4E0438121E1D6 +:102C8000420F08F44FEF21E0628181810C947D15A1 +:102C9000E7E6F4E0628121E1621B08F460E021E0F4 +:102CA000438181810C947D15E7E6F4E0628121E1A6 +:102CB000620F08F46FEF21E0438181810C947D1550 +:102CC000E7E6F4E0818121E04381628188500C9441 +:102CD0007D15E7E6F4E0818121E043816281885F30 +:102CE0000C947D1580916B04882319F0815080939A +:102CF0006B046091670470916804809169049091FD +:102D00006A040C946B1580916B04833018F48F5F08 +:102D100080936B04609167047091680480916904EA +:102D200090916A040C946B159091670490FF27C0F2 +:102D3000917081111DC092609093670480914B0344 +:102D4000816080934B03662351F06091670470911A +:102D500068048091690490916A040E946B1520E0D8 +:102D600040916A0460916904809168040C947D1517 +:102D70008C3010F09661E0CF880F982BDDCF08954E +:102D800021E030E0A90102C0440F551F8A95E2F707 +:102D9000CA0120914C03662391F0822B80934C034F +:102DA00080914B03806180934B0380914A03811192 +:102DB00009C08091670460E086950C949416809514 +:102DC0008223ECCF0895CF93DF93C82FC17082FB8D +:102DD000DD27D0F981FB662760F985E00E94C016E7 +:102DE00061E06C2786E00E94C0166D2F87E0DF91BE +:102DF000CF910C94C0160F931F93CF93C82F61E00F +:102E00008111682F617080E00E94C016C1FB6627A7 +:102E100060F9C11101C060E081E00E94C016C2FBF0 +:102E2000662760F9C11101C060E082E00E94C0160F +:102E3000C3FB662760F9C11101C060E083E00E9416 +:102E4000C016C4FB662760F9C11101C060E084E0D0 +:102E50000E94C0164C2F50E070E060E0DB01CA0118 +:102E6000F4E0B695A79597958795FA95D1F70097D1 +:102E7000A105B10549F1AC01BD0184E08A019B01C6 +:102E8000E2E03695279517950795EA95D1F7011554 +:102E900011052105310519F08E5FB901A80176955C +:102EA000679557954795452B462B472B09F08F5F24 +:102EB0008230D1F158F48823E9F0813059F18C2F18 +:102EC000CF911F910F91089580E0D8CF8330A1F169 +:102ED0008430A9F720E040E56FEF8AED0E947D1570 +:102EE00087E00E945C1580910001882341F31092D5 +:102EF0006F010DC020E040E56FEF82E30E947D1579 +:102F000080910001882399F381E080936F010E94F2 +:102F1000FC0CD5CF20E040E56FEF8CEF0E947D15D3 +:102F200085E40E945C15CBCF20E040E56FEF80E5A3 +:102F30000E947D1585E2F5CF20E040E56FEF86E742 +:102F40000E947D158FE1EDCF0E94FB1680936604F1 +:102F50000C94B80B80916604982F9670963019F4F3 +:102F600088600C94A417877FFCCF21E030E001C07B +:102F7000220F8A95EAF720958091660482230C94AB +:102F8000A41721E030E001C0220F8A95EAF7809172 +:102F90006604822B0C94A417809167048695815057 +:102FA00009F48BE061E00C94941680916704869597 +:102FB0008F5F8C3008F081E061E00C949416809172 +:102FC000670480FF07C0869582588F77893010F498 +:102FD0000C94D51761E082E00C949416E7E6F4E0D7 +:102FE00083E0808311828FEF828380EA838314825F +:102FF000A9E4B3E012968C911297836012968C9399 +:1030000060817181828193810C946B15AB01BC014D +:1030100088E190E00C945E35CF93C82FEEE3F4E0A6 +:10302000982F990F990F990F80818770892B808332 +:10303000EFE3F4E09C2F9295969597708081887FBE +:10304000892B808360913C0470913D0480913E0403 +:1030500090913F040E9406186C2F82E0CF910C944F +:103060005015ECE3F4E089E88083118282818C7F43 +:10307000828360913C0470913D0480913E04909164 +:103080003F040C940618ECE3F4E080818E7F80838B +:1030900060913C0470913D0480913E0490913F0406 +:1030A0000C940618ECE3F4E08081816080836091E9 +:1030B0003C0470913D0480913E0490913F040C9437 +:1030C00006180E94183140E060E080E00C94DC0CAF +:1030D00069EE7EEF90E080E00E946A3560E082E079 +:1030E00090E00E944C3560E083E090E00E944C3517 +:1030F0001092950260E084E090E00E944C3560E020 +:1031000082E290E00E944C3560E085E090E00E9411 +:103110004C3560E086E090E00E944C356FEF87E030 +:1031200090E00E944C3540E050E0BA0188E090E029 +:103130000E945E3560E08DE090E00E944C3540E0FA +:1031400050E0BA0188E190E00E945E3560E087E1DE +:1031500090E00E944C3540E050E0BA018CE190E0F4 +:103160000E945E3570E060E080E290E00E946A3587 +:103170000E94311880E00E94F30E0E940B0F40E085 +:1031800050E0BA018FE090E00E945E3540E050E0F0 +:10319000BA0183E190E00C945E355F926F927F926A +:1031A0008F929F92AF92BF92CF92DF92EF92FF9257 +:1031B0000F931F93CF93DF9300D000D00F92CDB722 +:1031C000DEB77C01FC0183819481892B31F0808101 +:1031D000918189238F3F09F081C60F900F900F9046 +:1031E0000F900F90DF91CF911F910F91FF90EF9073 +:1031F000DF90CF90BF90AF909F908F907F906F9017 +:103200005F9008950E944D0F182F682F89819A8131 +:103210000E948C0B69817A81812F0E94400F8C0162 +:10322000F7018281882361F0F801E65EFC45ED300C +:10323000F10530F4E553F94C0C940C350E9452180A +:10324000D0903C04D0FE1CC08D2D86958370F70174 +:103250009281992309F460C1823090F4B701C801CA +:103260000E945708882361F0D694D694D694809112 +:103270003D0483708295880F807E8D290E945C15A5 +:10328000F7018281882309F41EC6C80182519F4537 +:10329000409708F0DCC58FEF93E00E94383502516B +:1032A00093EEA92E92E0B92E811197CF011138C16A +:1032B0001C821B82662463948AE0582E85010F5F6E +:1032C0001F4FC5010E94383589831A82882309F46B +:1032D00084CF9FEF980F933008F031C18A836982C1 +:1032E00032E0A30EB11CC8010E9438358B838823BD +:1032F00009F473CF8E010F5F1F4FF8012081222345 +:10330000E9F2213009F055C191818281913009F0B3 +:1033100018C10E5F1F4F6AE070E0893311F460E559 +:1033200070E00E94790E13C10E94431889CF8091EA +:103330003C0480FF0DC00E94431860913C047091D2 +:103340003D0480913E0490913F040E94061878CF7E +:103350000E945218F2CF0E94311872CF90913C0413 +:10336000892F86958F5F8370880F997F892B809333 +:103370003C04982F9670963001F7897F80933C0427 +:10338000DCCF90913D04892F8B7F92FF84608093E6 +:103390003D04D3CF80913C04982F969596959695B1 +:1033A00080913D0483708295880F807E892B8C37B5 +:1033B00098F48F5F282F220F220F220F90913C0448 +:1033C0009770922B90933C04829586958370909190 +:1033D0003D049C7F892BDBCF81E0ECCF80913C04C6 +:1033E000982F96959695969580913D048370829539 +:1033F000880F807E892B11F08150DCCF8BE7DACFEC +:1034000030913D04932F96959695969520913E0484 +:10341000822F83708295880F807E892B90E00196A1 +:10342000482F440F440F440F3770342B30933D0422 +:1034300035E0969587953A95E1F783702C7F822B3E +:1034400080933E047ACF30913D04932F96959695C4 +:10345000969520913E04822F83708295880F807EFE +:10346000892B8150990BDCCF80913E0482FF12C0E2 +:103470008B7F80933E0460913C0470913D04809169 +:103480003E0490913F040E94061860E081E00E9493 +:103490005015D6CE846080933E0460913C047091B8 +:1034A0003D0480913E0490913F040E94061860E024 +:1034B0008CE00E94501564E182E00E94501565E0A6 +:1034C00081E00E94501561E08CE0E1CF80913E04E4 +:1034D000982F96959695969580913F048295880FA2 +:1034E000807E892B883720F4865F0E940C18A8CE36 +:1034F00088E7FBCF80913E04982F969596959695F8 +:1035000080913F048295880F807E892B843110F052 +:103510008A50EBCF84E1E9CF882309F4B1CE9ECE67 +:10352000A114F4E0BF0609F458CEC5010E94383555 +:10353000811101C001502FEFA21AB20AB7CE580173 +:10354000D9CE923039F40E5F1F4F0E94180C0F5FD6 +:103550001F4FD3CE933029F40E5F1F4F0E94DF0B15 +:10356000F6CF943019F00F5F1F4FF1CF0E5F1F4F52 +:1035700030E020E0B8016F5F7F4FF8014181805358 +:10358000990B8A30910550F02150310900F38FE9F1 +:103590009FE00197F1F700C00000F6CF529EF001C6 +:1035A000539EF00D11249C012E0F3F1F842F8B0181 +:1035B000E1CFE22FF0E0E75FFD4F7490822F869518 +:1035C0008695869590E0FC01E750FE4FE4902770C9 +:1035D000F12C022E02C0F594E7940A94E2F7E1E0A0 +:1035E000EE22FF24FC01E751FE4FC490D12C022EA5 +:1035F00002C0D594C7940A94E2F7F1E0CF22DD240B +:10360000FC01E752FE4F8490912C02C09594879460 +:103610002A95E2F721E082229924E114F10419F0BD +:1036200081EE0E94180CC114D10419F086EE0E949C +:10363000180C39E36AE070E0731202C060E570E0D4 +:10364000872D0E94790ECD2819F086EE0E94DF0B9F +:10365000EF2819F081EE0E94DF0B892809F477CF5B +:103660006AE070E08CE25DCE81E00E94C11703C089 +:1036700081E00E94B5170F900F900F900F900F9060 +:10368000DF91CF911F910F91FF90EF90DF90CF903E +:10369000BF90AF909F908F907F906F905F900C94B1 +:1036A000AA1782E0E2CF013E110509F4B4C0043E3E +:1036B000110519F0003E110591F5882381F18091E3 +:1036C00066040E948C0C813051F583E30E945C15E6 +:1036D00026C00238FFE51F0709F46AC078F4053FE9 +:1036E000110509F413C1063F110509F411C1043F86 +:1036F0001105A9F461E00E949D0C11C004383FE55A +:10370000130709F48BC008F469C005385FE5150795 +:1037100009F4CAC006389FE5190709F4DDC0F701AE +:1037200092819111FAC180914F0482720A3CFCE5AA +:103730001F0709F4D2C108F028C1053C3CE5130776 +:1037400009F4B7C108F00CC1033C5CE5150709F4A6 +:1037500091C108F0A9C1023C1C4509F43BC1F70125 +:1037600000811181992309F4F2C1C8010E944D0F13 +:10377000D82E682FC8010E948C0BB8018D2D0E9495 +:10378000400F0E94D909182FB82EF70122814581D8 +:10379000342F32953F70892F82958F70C82ED12C8F +:1037A0008C3008F00CC2F601E852F94C0C940C3540 +:1037B000882309F4B4CF81EE0E94180C83EE0E9496 +:1037C000180C8FE40E94180C8FE40E94DF0B83EE2C +:1037D0000E94DF0B81EE0E94DF0BA1CF882309F44A +:1037E0009ECF81EE0E94180C83EE0E94180C80E59B +:1037F0000E94180C80E5E9CF80933F0210933E02AF +:1038000000933D02882321F081E08093EE0287CF70 +:103810001092EE0284CF80933C02F0CF882379F19E +:1038200080913C02882349F080913D020E94DF0B89 +:1038300080EE0E94180C8AE20CC080913F0288231F +:10384000D1F380913D020E94DF0B80EE0E94180CA4 +:103850008CE40F900F900F900F900F90DF91CF910D +:103860001F910F91FF90EF90DF90CF90BF90AF909E +:103870009F908F907F906F905F900C94180C8AE2CD +:103880000E94DF0B8CE40E94DF0B80EE0E94DF0BB6 +:1038900080913C02811105C080913F02882309F488 +:1038A0009CCC80913D02D5CF882309F423CF809111 +:1038B0006F01811104C080910001882339F01092BA +:1038C0006F01109200010E94FC0C29CF81E08093CF +:1038D0006F0180930001F7CF882309F40BCF80910B +:1038E0003B02882349F080EE90E090937101809331 +:1038F000700110923B02E7CF86E690E09093710151 +:103900008093700181E080933B02DDCF62E0F3CED3 +:1039100064E0F1CE882331F081E08093F0021092D0 +:103920006701FDCE1092F002FACE882349F0809113 +:1039300066040E948C0C813019F482E30E945C15AD +:10394000F7018281882309F4B0C2809166040E9445 +:103950008C0C813009F0A9C284E30E945C15A5C2D9 +:10396000073C2CE5120709F4AEC008F4A7C0083CD8 +:103970004CE5140709F4ACC0093C1C4509F0EFCE36 +:1039800040E356E16CE376E179C0043DECE51E07C7 +:10399000A8F40E3CFCE51F0708F01FCC0C3C2CE5FE +:1039A000120709F49FC042E756E163E876E10D3C57 +:1039B0001C4508F463C061E081E046C0053D4CE56C +:1039C000140709F40ACC08F492C00D351D4509F41A +:1039D00004CCC5CE8091670480FF31C08E7F809378 +:1039E0006704609167047091680480916904909104 +:1039F0006A040E946B1580914B03816080934B0396 +:103A00009FEFE0E7F2E09150E040F040E1F700C0C6 +:103A100000000F900F900F900F900F90DF91CF91BB +:103A20001F910F91FF90EF90DF90CF90BF90AF90DC +:103A30009F908F907F906F905F900C948E1081601C +:103A40008093670461E086950F900F900F900F9020 +:103A50000F90DF91CF911F910F91FF90EF90DF902A +:103A6000CF90BF90AF909F908F907F906F905F901E +:103A70000C9494164CEC57E165ED77E10F900F90A4 +:103A80000F900F900F90DF91CF911F910F91FF90AA +:103A9000EF90DF90CF90BF90AF909F908F907F90EE +:103AA0006F905F900C94CA0845ED57E16CEC77E19C +:103AB000E5CF40E656E169E676E1E0CF49E656E13A +:103AC00060E676E1DBCF48E456E164E576E1D6CF07 +:103AD00044E556E168E476E1D1CF4CE356E160E39A +:103AE00076E1CCCF43E856E162E776E1C7CF0F90AD +:103AF0000F900F900F900F90DF91CF911F910F912A +:103B0000FF90EF90DF90CF90BF90AF909F908F90FD +:103B10007F906F905F900C94DF170E3D1C4509F06D +:103B20001ECE0F900F900F900F900F90DF91CF91BE +:103B30001F910F91FF90EF90DF90CF90BF90AF90CB +:103B40009F908F907F906F905F900C946818C80141 +:103B50000E94640BD82E11CE092F0F70907F11F0A8 +:103B60000295007F812F2223C9F0002369F090E2A3 +:103B7000910F983010F011110BC080914F04082B59 +:103B800000934F040E94430B812F0E94180C17C012 +:103B900080919402082B00939402F4CF0E94DF0BD3 +:103BA000002369F00095105E183010F0B11027C0A6 +:103BB00080914F04082300934F040E94430B98E028 +:103BC000C91AD108E4E0CE16D10408F006CB0E9451 +:103BD000690E0F900F900F900F900F90DF91CF9183 +:103BE0001F910F91FF90EF90DF90CF90BF90AF901B +:103BF0009F908F907F906F905F900C94E3168091D0 +:103C00009402082300939402D8CF892F8F70907F5D +:103C1000903211F08295807FF1E0BF120CC0222318 +:103C200029F0333060F60E94D50BC9CF323038F618 +:103C30000E94CA0BC4CF222341F03323A1F340FFDB +:103C4000A3CF4F70F7014583EECF332389F31933A8 +:103C500009F0F5C0FFEF27EE33E0F150204030408F +:103C6000E1F700C00000812F0E94DF0BA8CF892F51 +:103C700086958695837061F0813009F0A0CF812F01 +:103C80009370211102C090E080E00E942B0897CF32 +:103C9000812F9370211102C090E080E00E944108C2 +:103CA0008ECF892F8370A1F5211189CF812F829525 +:103CB00086958770880F880F412F4F70082E01C09E +:103CC000440F0A94EAF7212F207114FF07C02FE058 +:103CD00030E001C0220F8A95EAF7209596959695D7 +:103CE0009370923081F0822F842B933030F4809146 +:103CF0009502913029F0242B82230E94C60B5FCFBE +:103D0000842B822BFACF242B809195028227F5CF2A +:103D10008695222311F0892F8170882309F44FCFD3 +:103D2000812F829586958770880F880F412F4F705D +:103D3000082E01C0440F0A94EAF7212F207114FFC6 +:103D400007C02FE030E001C0220F8A95EAF72095E6 +:103D5000969596959370923081F0822F842B9330B4 +:103D600030F480916604913029F0242B82230E9444 +:103D7000A41725CF842B822BFACF242B80916604A5 +:103D80008227F5CF092F0F70222329F0802F0E9460 +:103D9000C117812F48CF812F0E94CA0B802F0E940C +:103DA000B5170DCF812FE1EF1E1789F1E11750F004 +:103DB000F0EF1F17B9F02223B1F13111E5CE892FB1 +:103DC0008F7129C042EF141749F153EF1513F3CF48 +:103DD00080E0222361F29F7181E001C0880F9A95F3 +:103DE000EAF7C5CF222379F0323008F0E8CE292F48 +:103DF0002F7181E090E001C0880F2A95EAF7909139 +:103E000066048927B4CF333008F0D9CEF0CF892F9C +:103E10008F71222321F20E94C117D1CE892F8F7179 +:103E20002223C9F3BCCF332379F0893341F48FEFD8 +:103E300097EEE3E081509040E040E1F712CF8FE34E +:103E40009CE90197F1F70DCF892F8F71A8CF003131 +:103E5000FFE51F0709F408CC01312FE5120709F42B +:103E600020CC0E941F086093F5027093F6028093A5 +:103E7000F7029093F802F7018281053E110509F4DB +:103E8000BBCC08F026CC0C32110509F443CD08F068 +:103E90000ACC0A30110509F448CD0531110509F4A1 +:103EA0004FCD0930110509F03ACCF7018281882302 +:103EB00009F435CC809166040E948C0C813009F0A5 +:103EC0002ECC81E303CC00313FE5130709F4D0CBBE +:103ED00001314FE5140779F682E0CBCB85E0DE01B6 +:103EE000119601900D928A95E1F7F701228189815F +:103EF0009A81211187C90E94640B182F8BC91F93C7 +:103F0000CF93DF9380916002807FA9F480915D025E +:103F1000882389F080919202D091610260915B02C6 +:103F200070915C02A0915E02B0915F02C62FC72320 +:103F300016E0D81304C0DF91CF911F91089590E04F +:103F4000109711F0CF3F19F401968770F2CF189FA8 +:103F50009001199F300D1124F901EE59FD4F418157 +:103F60004713F2CF40814613EFCF42814111ECCF8E +:103F7000438154814A1B5B0B403A510528F78091DD +:103F800060028F70806180936002F901E959FD4FF2 +:103F900080818F70806180838BE592E00E94CD18D4 +:103FA000DF91CF911F910C945A0BAF92BF92CF9299 +:103FB000DF92EF92FF920F931F93CF93DF93CDB7D2 +:103FC000DEB761970FB6F894DEBF0FBECDBF8C0190 +:103FD00085E0F801DE011D9601900D928A95E1F7CA +:103FE000F801E2808BE5A82E82E0B82E60915E0297 +:103FF00070915F026115710509F432C190915B0205 +:1040000040915C02892F84238F3F09F429C12081CC +:104010003181C380D480F0905D02F601E61BF70B7E +:10402000FF2009F4E8C080916002582F507FE03AE9 +:10403000F10508F0ABC0511177C0FE2C431321C02D +:1040400092131FC0E1101DC08F70806180936002C9 +:10405000C5010E94CD1880916002F80185838F2DE3 +:1040600061960FB6F894DEBF0FBECDBFDF91CF9142 +:104070001F910F91FF90EF90DF90CF90BF90AF9086 +:104080000895CD2829F0822F83238F3F09F003C1A3 +:1040900080E0F82FF170DF2E80FF3CC0809192020B +:1040A0004091610256E0841315C02D873E878D85AF +:1040B0009E850E947C0F292F22952F702230F0F0D0 +:1040C000243018F59F70F1F0F8019581907FD1F4BC +:1040D000D12C1EC090E0589FF001599FF00D112483 +:1040E000EE59FD4F6181361306C06081261303C06F +:1040F0006281E6120FC001968770D5CF9F7011F0D4 +:10410000882331F3805E883018F3C8010E94CD18EF +:10411000FD2CA5CFEE2009F4A2CF80916002816032 +:1041200080936002F12C9BCF431306C0921304C00E +:10413000F801EE2009F479C0C8010E94880F882395 +:1041400009F1EE20F9F080916002803270F0209148 +:104150005B0230915C0238872F831986DB86CA8622 +:104160008C87CE0107960E94CD1886E0F801ABE55A +:10417000B2E001900D928A95E1F70E947F1FFF2423 +:10418000F3946DCFC8010E94CD18F9CF51110AC028 +:104190008BE592E00E94CD1886E0F50111928A9598 +:1041A000E9F7C0CF43130FC092130DC0E1100BC04D +:1041B000F8018583C8010E94CD1886E0F5011192AF +:1041C0008A95E9F74CCFC8010E94880F8823D1F265 +:1041D000EE20C1F280916002803238F220915B02C1 +:1041E00030915C023A8329831B82DD82CC828E83EC +:1041F000CE010196B8CFE03AF105F8F6FE2CEE209C +:1042000009F243131FC092131DC08091600280FD0C +:1042100010C0982F907F69F0F8018583903F31F0AE +:10422000982F907F905F8F70892B8583C8010E94A3 +:10423000CD1886E0F801ABE5B2E001900D928A95C9 +:10424000E1F70DCFC8010E94880F81118ECF8091B8 +:104250006002816080936002C8010E94CD18FFCE89 +:10426000EE2009F48FCFC8010E94880FF82E882312 +:1042700009F488CF86E0F801ABE5B2E001900D9239 +:104280008A95E1F780915B0290915C020E947C0F1D +:104290000E947F1FE4CE81E08E25FBCE1F93CF933B +:1042A000DF93CDB7DEB767970FB6F894DEBF0FBECA +:1042B000CDBF4B8B5C8B6D8B7E8B8F8B6111109286 +:1042C00094021A8A198A85E0FE017396DE011D9612 +:1042D00001900D928A95E1F786E0FE013D96DE01A0 +:1042E000179601900D928A95E1F7CE0107960E94EC +:1042F000D51F882389F016E0809192029091610287 +:1043000089134BC067960FB6F894DEBF0FBECDBFC2 +:10431000DF91CF911F91089586E0FE013796DE016F +:10432000119601900D928A95E1F78A859B85892BDC +:1043300011F38F81988589238F3FE9F220916102E3 +:1043400030E0C90101968770992740919202481781 +:10435000190681F410924F040E94A111109261027B +:104360001092920286E0EBE5F2E0DF011D928A9561 +:10437000E9F7C1CF96E0929FD001939FB00D112431 +:10438000AE59BD4FFE01319601900D929A95E1F71D +:10439000809361020E945A0BAECF819FC00111240D +:1043A0008E599D4F0E94D51F882309F4ABCF809171 +:1043B000920290E0019687709927809392029CCF99 +:1043C0000F931F93CF93DF9300D000D0CDB7DEB70C +:1043D0006091C6027091C7028091C8029091C90293 +:1043E0000E940308643671058105910588F10E94D9 +:1043F000460E882379F10E941F086E5F7F4F8F4F12 +:104400009F4F69837A838B839C8380912C01909149 +:104410002D0180559D4F40912B0150E045305105B5 +:1044200010F044E050E0BE016F5F7F4F0E942F35D7 +:1044300084E090E00E942434892BD9F40E941F0864 +:104440006093C6027093C7028093C8029093C9021A +:1044500081E010C00E941F080091D3021091D40285 +:104460002091D5023091D602600F711F821F931FD9 +:10447000C4CF80E00F900F900F900F90DF91CF91FD +:104480001F910F910895BF92CF92DF92EF92FF920A +:104490000F931F93CF93DF93B82EEB01F42E690196 +:1044A000688179818A819B810E9403086436710545 +:1044B0008105910510F4FF2019F1EB2C0B2C000C59 +:1044C000FF088B2D9AE08902F0011124EF5FFE4F67 +:1044D0008381948180559D4F428150E004171507D8 +:1044E00008F4A801B6010E942F35C7010E942434A8 +:1044F000892B89F40E941F08688379838A839B83B0 +:1045000081E0DF91CF911F910F91FF90EF90DF90AD +:10451000CF90BF90089580E0F4CF0F931F93CF9377 +:10452000DF930F92CDB7DEB780913A048983209153 +:10453000C50290E041E02817190609F440E001E0C7 +:1045400010E09E012F5F3F4F6EEC72E086E00E940C +:1045500043220F90DF91CF911F910F9108950F93F8 +:104560001F93CF93DF93CDB7DEB729970FB6F8949B +:10457000DEBF0FBECDBF85E0E7E6F4E0DE011196B9 +:1045800001900D928A95E1F78091490390914A0339 +:10459000A0914B03B0914C038E839F83A887B9876A +:1045A00041E08885811101C040E009E010E09E01F2 +:1045B0002F5F3F4F6AEC72E085E00E944322811139 +:1045C00010924B0329960FB6F894DEBF0FBECDBFF5 +:1045D000DF91CF911F910F9108956F927F928F92EB +:1045E0009F92AF92BF92CF92DF92EF92FF920F9382 +:1045F0001F93CF93DF930F92CDB7DEB7862E5A016C +:104600006901682E880F7708C3010E942434892B22 +:1046100009F07BC08AE0869DF001879DF00D112492 +:10462000EF5FFE4F458150E04115510511F041E02B +:1046300050E08AE0869DF001879DF00D1124EF5F28 +:10464000FE4F6681778160557D4FCE0101960E94B5 +:104650002F35F50160817181828193810E94030869 +:10466000643671058105910540F4B701C8010E94C7 +:10467000B4089981891709F44FC0082C000C9908D7 +:10468000C4010E942434892B91F0B12C8B2D0F9002 +:10469000DF91CF911F910F91FF90EF90DF90CF901E +:1046A000BF90AF909F908F907F906F9008958AE019 +:1046B000889DF001899DF00D1124EF5FFE4F45812B +:1046C00050E0E416F50608F4A7018AE0889DF001A1 +:1046D000899DF00D1124EF5FFE4F66817781605553 +:1046E0007D4FC6010E942F35B701C8010E94B40852 +:1046F00099818913CACF0E941F08F50160837183D5 +:1047000082839383BB24B394C1CFB12CA701B8019A +:10471000C6010E942F35BACFBB24B394F7CFCF92F6 +:10472000DF92EF92FF920F931F93CF93DF9300D00E +:1047300000D00F92CDB7DEB76B0185E0E82EF12CEB +:1047400001EB12E09E012F5F3F4F48EA52E061E02B +:1047500080E00E94ED22882349F095E0FE01319629 +:10476000A3EAB2E001900D929A95E1F795E0E3EAB1 +:10477000F2E0D60101900D929A95E1F70F900F901B +:104780000F900F900F90DF91CF911F910F91FF909D +:10479000EF90DF90CF90089590E080E00E94463542 +:1047A000893E9E4F11F40C94AF0F80E008951F9244 +:1047B0000F920FB60F9211242F933F934F935F9355 +:1047C0006F937F938F939F93AF93BF93CF93DF9319 +:1047D000EF93FF93D091E900DF708091EC00C82F38 +:1047E000C17080FDC0E81092E9008091F000877FE1 +:1047F0008093F00078940E94AA111092E9008091B1 +:10480000F00088608093F000CD2BCF70C093E9005A +:10481000FF91EF91DF91CF91BF91AF919F918F91D8 +:104820007F916F915F914F913F912F910F900FBEAC +:104830000F901F9018951F920F920FB60F92112490 +:104840002F933F934F935F936F937F938F939F9398 +:10485000AF93BF93EF93FF938091E10082FF09C074 +:104860008091E20082FF05C08091E1008B7F809300 +:10487000E1008091DA0080FF24C08091D80080FFA1 +:1048800020C08091DA008E7F8093DA008091D90079 +:1048900080FF9DC080E189BD82E189BD09B400FE31 +:1048A000FDCF81E080935C0480914E04811109C0AA +:1048B0000E9475060E9440078091E2008460809308 +:1048C000E2008091E10080FF17C08091E20080FF4C +:1048D00013C08091E2008E7F8093E2008091E2001D +:1048E00080618093E2008091D80080628093D8003C +:1048F00019BC85E080935C048091E10084FF2BC0AB +:104900008091E20084FF27C080E189BD82E189BDFA +:1049100089B5982F917080FFFBCF8091D8008F7D53 +:104920008093D8008091E1008F7E8093E100809198 +:10493000E2008F7E8093E2008091E20081608093AC +:10494000E20080915D04882309F447C084E08093ED +:104950005C0480915C048091E10083FF27C080911A +:10496000E20083FF23C08091E100877F8093E10014 +:1049700082E080935C0410925D048091E1008E7F60 +:104980008093E1008091E2008E7F8093E20080912D +:10499000E20080618093E20042E060E080E00E94FB +:1049A0000E078091F00088608093F000FF91EF91F6 +:1049B000BF91AF919F918F917F916F915F914F9137 +:1049C0003F912F910F900FBE0F901F90189519BC1B +:1049D00010925C0410924E0474CF8091E30087FD26 +:1049E00093E090935C04B5CF78941F921FB61F920A +:1049F00011248F939F93AF93BF938091470490911D +:104A00004804A0914904B0914A040196A11DB11D2A +:104A10008093470490934804A0934904B0934A04B8 +:104A2000BF91AF919F918F911F901FBE1F901895BE +:104A30009C014FB7F8948091470490914804A0914D +:104A40004904B0914A044FBF821B930B08952FB7BE +:104A5000F8948091470490914804A0914904B09142 +:104A60004A042FBF0895AF92BF92DF92EF92FF9258 +:104A70000F931F93CF93DF93CDB7DEB761970FB638 +:104A8000F894DEBF0FBECDBF4C87888B998BE52E87 +:104A9000D62EF72E5E0127E0A20EB11C85E0F501AF +:104AA00011928A95E9F7809148038A3008F095C001 +:104AB00080914603909147030E941825089708F4B7 +:104AC0008CC004E610E025E030E0A50164E084E15C +:104AD0000E946332892B09F0DEC0109248038B8557 +:104AE00087FDD1C0E894E0F880914403909145039C +:104AF000009709F0C2C08F819885891708F091C08E +:104B0000981B892F41E02091700130917101889F9D +:104B1000C001112455E0589FF001599FF00D112458 +:104B2000E29FB001E39F700DF29F700D1124660F9C +:104B3000672F661F770B7195442319F07195619566 +:104B400071098091420390914303680F791F898511 +:104B50009A85891708F068C0981B892F41E0889FC3 +:104B6000C001112455E0589FF001599FF00D112408 +:104B7000E29FC001E39F900DF29F900D1124880FDA +:104B8000892F881F990B9195442319F09195819550 +:104B900091092091400330914103820F931F6038A7 +:104BA00071050CF444C06F5771097093430360930F +:104BB00042033FE7D32E803891050CF44BC08F574A +:104BC000910990934103809340039FE7F92E0E943F +:104BD00027259093470380934603ED86DE86FF8664 +:104BE00086E0FE013C96DE01119601900D928A95B9 +:104BF000E1F729813A814B815C816D817E8180E082 +:104C000090E061960FB6F894DEBF0FBECDBFDF9186 +:104C1000CF911F910F91FF90EF90DF90BF90AF90D9 +:104C20000895891B40E06FCF891B40E098CF613821 +:104C3000FFEF7F074CF461587F4F709343036093FD +:104C4000420321E8D22EB7CFD62E10924303109202 +:104C50004203B1CF81382FEF92074CF481589F4F18 +:104C6000909341038093400381E8F82EB0CFF82E53 +:104C70001092410310924003AACF019790934503ED +:104C800080934403A4CF6894E0F884E00E945C150C +:104C900084E190E0F3CF809148038F5F80934803D5 +:104CA00096CF9F92AF92BF92CF92DF92EF92FF92F8 +:104CB0000F931F93CF93DF93CDB7DEB764970FB6F3 +:104CC000F894DEBF0FBECDBF8E010F5F1F4F8AE08D +:104CD000D8011D928A95E9F79EE4C92E91E0D92E5C +:104CE000F12CE12CAA24A394B12CF60181916F013F +:104CF0008F3F09F444C0F894E82FE295EF70F0E09C +:104D000021A18F70A50102C0440F551F8A95E2F7BB +:104D1000CA01922F982B91A392A18095892382A3F7 +:104D20000E947D0900C0E7E4F1E0912C31E021917F +:104D30002F3F09F478C0A22FA295AF70B0E09096F3 +:104D40008C9190E02F7002C0959587952A95E2F797 +:104D500080FD69C0832F982A330F51E0EE34F507A8 +:104D600031F7F601319780818F3F11F00E947F0962 +:104D700080EA8A95F1F7F801EE0DFF1D9082AFEF02 +:104D8000EA1AFA0AB5E0EB16F10409F0AECF4AE0F0 +:104D900050E0B80189ED92E00E9422357C01892B18 +:104DA00041F08AE0F801A9EDB2E001900D928A95F8 +:104DB000E1F71091E402E114F104B9F181E080938C +:104DC00098020E94272590939702809396028091E3 +:104DD0009602909197020E941825069770F0A9ED0F +:104DE000B2E0E12FF0E0E65DFC4F8D91819322E08F +:104DF000AE3DB207D1F71092980281E090E0EF2823 +:104E0000C1F064960FB6F894DEBF0FBECDBFDF9140 +:104E1000CF911F910F91FF90EF90DF90CF90BF90B7 +:104E2000AF909F90089580E096CF80919802811175 +:104E3000CECF0E94460ED82EE091E402882309F4DA +:104E4000C9C07E0140E1E40EF11C85E0D7011D924E +:104E50008A95E9F70E2F10E0065D1C4F8091D20273 +:104E60008A3008F080C04FE853E2B701C8010E94C1 +:104E7000020E882309F49AC04EEB58E2B701C8012C +:104E80000E94020E882309F491C040EE51E2B7015E +:104E9000C8010E94020E882309F488C04FEA52E23A +:104EA000B701C8010E94020E882309F47FC04DE8B3 +:104EB00052E2B701C8010E94020E882309F476C0AD +:104EC0001092D2028091E30290E045E050E0B701F9 +:104ED000865D9C4F0E94223521E02093A102892B00 +:104EE00009F057C0D12C8BE9E82E82E0F82E10E0B3 +:104EF00000E0D7018D917D018823D1F08695F801DE +:104F000009F465C0E950FE4F808191819C878B87B1 +:104F10001D860E9427258160782F9F878E87F70145 +:104F2000319710824B855C856D858F850E944E215F +:104F30000E5F1F4F04301105E1F66091F50270918C +:104F4000F6028091F7029091F8020E940308613600 +:104F50007A4E8105910528F040E060E080E00E94F3 +:104F6000DC0C8D2D4ECF8091990290919A020E9477 +:104F70001825843F914008F076CF8091A1028823C4 +:104F800009F4B0CF85E0F70111928A95E9F7109204 +:104F9000A102A091E302B0E0A65DBC4F85E0FE0156 +:104FA000709601900D928A95E1F79DCF8091D20283 +:104FB0008F3F31F08F5F8093D2028A3008F482CF26 +:104FC0000E94272590939A0280939902D6CFED50A4 +:104FD000FE4F9ACFF0E0E65DFC4FF89485E0A1EB40 +:104FE000B2E001900D928A95E1F765E070E081EB07 +:104FF00092E00E94B4088093B0020E947D09F89468 +:10500000E091EC02F0E0E751FD4F80818B878093C7 +:10501000B70261E070E0CE010B960E94B408809365 +:10502000B6020E947D09F894C090B802D090B902EF +:10503000E090BA02F090BB0280919D0290919E0296 +:10504000A0919F02B091A002C816D906EA06FB06FD +:10505000D1F0C0929D02D0929E02E0929F02F09207 +:10506000A0020E94460E81110EC00E941F08C61A9F +:10507000D70AE80AF90AC092D302D092D402E09289 +:10508000D502F092D6020E947D09F8948091C30265 +:10509000882321F184FF04C09091C40290934C03B3 +:1050A00080FF0DC08091BC0280FF25C090916704F5 +:1050B00091609093670460E086950E9494168091B9 +:1050C000C30281FF09C020E04091BF026091BE028F +:1050D0008091BD020E947D151092C3020E947D093D +:1050E000F8948091C502882349F00E945A0D0E94CD +:1050F0007D0980E086CE0E948C11E1CF0E943F0D99 +:10510000F6CFEF92FF920F931F93CF93DF9300D0D0 +:1051100000D00F92CDB7DEB7162FE82EF12CC701C5 +:10512000880F991F662339F189509E4FFC018081B9 +:1051300091819A83898301E00B830E9427258160F6 +:10514000782F9D838C83F701E556FD4F0127110FC2 +:10515000102B108349815A816B818D810F900F90A4 +:105160000F900F900F90DF91CF911F910F91FF90B3 +:10517000EF900C944E218D509E4FD8CFCF92DF925E +:10518000EF92FF920F931F93CF93DF930F92CDB7C0 +:10519000DEB7EE24E394F12C07EB12E09E012F5FC3 +:1051A0003F4F4CEA52E063E082E00E94ED22082F7C +:1051B000882321F1C090E6028C2D90E09C012751BC +:1051C0003D4F79011981F9018081181BD12E80E0B2 +:1051D0000AC0DA94F70180818F5F808360E08C2DB4 +:1051E0000E948128802F1D14A4F3912F17FD90E0B9 +:1051F000191B11110EC081110E94410B802F0F90BD +:10520000DF91CF911F910F91FF90EF90DF90CF90A2 +:1052100008951F5FF70180818150808361E08C2DAC +:105220000E948128802FE5CF1F921FB61F92112464 +:105230008F939F93AF93BF9380914604811113C0C6 +:105240008091470490914804A0914904B0914A0488 +:105250004196A11DB11D8093470490934804A093EB +:105260004904B0934A04BF91AF919F918F911F90D1 +:105270001FBE1F901895CDB7DEB7E0970FB6F89414 +:10528000DEBF0FBECDBF84B7877F84BF0FB6F89453 +:10529000A895809160008861809360001092600002 +:1052A0000FBE80E890E00FB6F89480936100909371 +:1052B00061000FBE85B7806885BF85B7806885BFF0 +:1052C0008BE799E090933102809330020E9475063B +:1052D0000E9440078091E20084608093E20078940D +:1052E00080915C048823A1F01091E9001F709091D7 +:1052F000EC00892F817090FD80E8182B1092E90056 +:105300008091E80083FD0E94AA111F701093E900AC +:1053100082E084BD93E095BD9AEF97BD80936E00C7 +:105320001092D3021092D4021092D5021092D6029B +:105330000E94AF0F811102C00E940B0F0E94460E07 +:105340008093580180915801882309F4C9C01092B4 +:10535000720185E2809373010E94460E81110E94C2 +:1053600017338091580181112FC0FE01359686E0D8 +:10537000DF011D928A95E9F786E6898387E98A83AA +:1053800086EC8B8384E38C8385E38D833497AEE452 +:10539000B1E0CE010B9621912D938E179F07D9F77F +:1053A00087E0E8E7F1E0DE01919601900D928A95A1 +:1053B000E1F7FE01B196A7E4B1E0CE018896219114 +:1053C0002D938E179F07D9F78091580195E0811191 +:1053D00090E09093E40285E0891B8093E3020EE461 +:1053E00011E083E5E82E81E0F82EF80181918F012C +:1053F0008F3F11F00E947F09E016F106B1F707E434 +:1054000011E0BEE4EB2EB1E0FB2ED8018D918D01B1 +:105410008F3F11F00E947F09E016F106B1F78AE094 +:10542000EAE2F3E0DF01282F1D922A95E9F7E9ED82 +:10543000F2E0DF011D928A95E9F70E94CC238111E9 +:1054400002C00E94681882E090E00E943835809384 +:105450001F0384E090E00E943835182F82E290E02C +:105460000E943835982F812F9093D8028093D702CD +:105470000E945126EFE7FBEB3197F1F700C00000E7 +:105480000E94512680912A0380FF2EC06FEF7FEF8C +:1054900090E080E00E946A3581E08093E00080E245 +:1054A0008093D8001092C9008FE19EE40197F1F734 +:1054B00000C0000087E090EBDC01809370069093C1 +:1054C0007106A0937206B093730688E19CE00FB654 +:1054D000F894A895809360000FBE90936000FFCF72 +:1054E00085E28093720136CF83E090E00E943835E8 +:1054F0000E94C60B809166040E94FB160E94CC237A +:10550000811102C00E94681888E190E00E94403535 +:1055100060933C0470933D0480933E0490933F0459 +:10552000672B682B692B11F40E9431180E941831E7 +:1055300067E081E00E94501565E586E10E94501504 +:1055400063E687E10E94501560EA8AE10E945015E7 +:1055500069E98BE10E94501565EF8CE10E945015BE +:1055600060EA8DE10E94501560E38EE10E945015C3 +:1055700066E083E00E94501561E08CE00E945015C7 +:1055800060E081E00E94501560E08CE00E945015C0 +:105590006FE084E00E94501561E08CE00E9450159D +:1055A0000E94460E811102C00E941A3383E080934C +:1055B0001A0380E280932F040E9418316DE070E09E +:1055C0008CE992E00E940F0D892BE9F580911A0376 +:1055D00063E070E081FD0BC289E992E00E940F0D4B +:1055E000892B89F56DE070E089E892E00E940F0D4B +:1055F000892B49F50E941F086058774C8E4F9F4FAA +:105600006093360470933704809338049093390480 +:10561000EEE6F4E080E092E0DF019C011D92215073 +:105620003040E1F7F0936F06E0936E068FEF9FEF47 +:1056300090936D0480936C0481E080933B0480938D +:105640003A0410921B038091E502811136C00E943A +:10565000CC23811104C00E9468180E94EE1788E0D4 +:1056600090E00E94403560936704709368048093D3 +:10567000690490936A0480914B03836080934B0389 +:105680006E7F71F40E94EE1788E090E00E94403532 +:1056900060936704709368048093690490936A042C +:1056A0000E94CF088091670480FF04C060E0869567 +:1056B0000E94941681E08093E50280915801811147 +:1056C00006C084EF8093660185EF80936501209189 +:1056D0006601A22FA295AF70B0E091963C91919790 +:1056E0002F7081E090E0BC01022E01C0660F0A9489 +:1056F000EAF7462F4095432391964C9391979296C3 +:105700003C919297362B92963C93929740916501EB +:10571000E42FE295EF70F0E031A14F70042E01C04C +:10572000880F0A94EAF7982F9095932391A392A15A +:10573000892B82A390968C9190E002C095958795D5 +:105740002A95E2F7817020A130E002C035952795B7 +:105750004A95E2F792E020FF90E0892B8093ED02DA +:105760009091580181E098279093EC02891B8093D7 +:10577000E6020E94611860E08AE00E94941689EABD +:1057800092E090934E0380934D0381E00E94A41712 +:1057900080EE90E090937101809370010E94FC0C68 +:1057A00089E591E09093430480934204A0E46A2E3B +:1057B00080915C04FF24F39400E112E1853009F448 +:1057C00065C10E945126E82E81110E941F08FAE24D +:1057D0002F2EF3E03F2EE0E2F3E0D10110E000E0F5 +:1057E000B02EDD9081918D1509F474C18D25C12CE9 +:1057F000FF24F394982F9F2109F467C10E94460E5D +:10580000882399F0C9A2BAA2DF2081E009F480E0E0 +:105810008BA30E9427258160782F9DA38CA349A18B +:105820005AA16BA18DA10E944E21F801E05EFC4FB0 +:105830008081F826F0828091ED02E82FEE0FEE0FC6 +:1058400090916601A92FA295AF70B0E090962C912F +:1058500030E09F7002C0359527959A95E2F7217048 +:10586000332790916501A92FA295AF70B0E0909673 +:105870004C9150E09F7002C0559547959A95E2F77C +:10588000CA018170992740FF02C082E090E0822B1C +:105890008E2B8093ED021091EC028F70E82FF0E0D8 +:1058A000E350FE4F80819091EB02890F8093EB02D1 +:1058B000F12C84306CF0E12FF0E0E751FD4F808156 +:1058C0008F5F808360E0812F0E948128FF24F39402 +:1058D0008091EB028D3F6CF4E12FF0E0E751FD4F3A +:1058E00080818150808361E0812F0E948128FF2484 +:1058F000F3948091EB02082E000C990B64E070E0A9 +:105900000E94F8348093EB02F1100E94410B8091C9 +:105910003B04882351F180911C0390911D030E9448 +:105920001825C29708F0EDC020916C0430916D04E9 +:105930002115310509F0EDC180913A048823A9F0C1 +:105940000E941F08009136041091370420913804FA +:1059500030913904601B710B820B930B6F3F7F4FAB +:105960008F4F9F4710F40E943F0DE11001C0F110CE +:105970000E945A0D0E94C80F0E94690E90911E034A +:10598000891731F00E94690E80931E030E94E3166E +:1059900080915C04843009F00BCF83E08093E900B0 +:1059A0008091E80082FF04CF8091E80090E085FFBD +:1059B0000CC00E94940630E2E32EF12C8E010F5FA2 +:1059C0001F4F882309F484C291E08091E8008B770F +:1059D0008093E800992309F4EBCEE981E150E331AB +:1059E00008F0DAC2F0E0EC51F94C0C940C3586E981 +:1059F00092E0F4CD80915C04843009F437C080E0FB +:105A00000E94E3168091E802811109C0F092E80239 +:105A10008091670481708093E7020E948C110E943C +:105A20003F0D0E94C80F1092460488E190E00FB627 +:105A3000F894A895809360000FBE6092600083B7D1 +:105A4000817F846083BF83B7816083BF78948895AA +:105A500083B78E7F83BF0FB6F894A89580916000BE +:105A6000886180936000109260000FBE80915B049B +:105A7000882361F00E945126EAE2F3E081918111CE +:105A8000B6C3A4E3B3E0AE17BF07C1F780915C04CF +:105A9000853009F4AFCF10924F040E94A1110E94EB +:105AA000690E0E94E3161092E8028091E7028823B3 +:105AB00049F08091670481608093670460E0869577 +:105AC0000E9494160E94FC0C7CCEC394FF0C27E02D +:105AD000C21290CE0F5F1F4F0A30110509F080CE21 +:105AE0008FEF88A789A71AA60E9427258160782FA3 +:105AF0009CA78BA748A559A56AA58CA50E944E21F5 +:105B00009ACE0E94272590931D0380931C0360E08A +:105B100080E00E949D080E94690E8093F9020E9415 +:105B2000460E8823C9F06091F5027091F6028091CB +:105B3000F7029091F8020E940308613375478105CE +:105B4000910540F00E943F0D80913B04882309F4A9 +:105B5000F3CEEACE0E945A0D0E94460E882309F425 +:105B6000BFC061E080E00E949D0860E08FE791E0A7 +:105B70000E94341562E080E00E949D0880916604D6 +:105B80000E948C0C823009F48CC008F081C08823FC +:105B900009F487C0813009F48AC065E080E00E9482 +:105BA0009D0860E08DE991E00E94341566E080E098 +:105BB0000E949D086091F9026695617082EA91E009 +:105BC0000E94341567E080E00E949D086091F90210 +:105BD0006095617087EA91E00E94341568E080E08A +:105BE0000E949D086091F90262FB662760F98BEACA +:105BF00091E00E9434156091F1027091F20280915F +:105C0000F3029091F4020E9403086D327140810505 +:105C1000910508F499CF0E941F086093F1027093D8 +:105C2000F2028093F3029093F4028091F0028111CA +:105C300004C080916701811142C06DE080E00E9444 +:105C40009D0860E080EB91E00E9434156AE080E0FE +:105C50000E949D0881E0809367018091EF0290E0AF +:105C60000196817099278093EF0221E030E0281B94 +:105C7000390B40E6429FC001439F900D11242091B3 +:105C8000EE02222351F185589C4F0E9432065CCFD0 +:105C9000833089F0843009F080CF60E081E991E0C1 +:105CA00003C060E085E891E00E94341576CF60E0A3 +:105CB0008BE891E0F9CF60E087E991E0F5CF6AE009 +:105CC00080E00E949D0860E080EB91E00E94341526 +:105CD0006BE080E00E949D08C0CF85549D4FD5CFDA +:105CE00064E080E00E949D0860E086EB91E00E9405 +:105CF000341565E080E00E949D0860E08CEB91E047 +:105D00000E94341569E080E00E949D088BE394E0D6 +:105D1000BCCF80911B0361E070E081110DCE082F94 +:105D200010E02B01082E02C0440C551C0A94E2F727 +:105D3000A90144215521452B09F448C090911A032B +:105D400090FD46C08295880F807680936A01980105 +:105D5000369527953695279520936D01815E809322 +:105D60006B0110926E0124E630E047E050E068E6F7 +:105D700071E088E70E940F32892B09F0DDCDA80180 +:105D800075E0440F551F7A95E1F780911A0380FD65 +:105D90002DC042595B4F04E610E020E230E060E4A1 +:105DA00088E70E943632892B09F0C6CD0E945A0D31 +:105DB000C2018095909540906C0450906D044822EB +:105DC000592250926D0440926C04B6CD8F5FA7CFDC +:105DD000880F880F880F80936A0110926D01895F88 +:105DE00080936B0183E080936E01BDCFEAEFF2E018 +:105DF00080E2DF011D928A95E9F7E1E1F2E0F8AB7C +:105E0000EFA70DE012E067E0A62E99249394AFA5CA +:105E1000B8A96D91B8ABAFA7F80181918F01840F3C +:105E2000952F911D9C0122593B4F3EA72DA7E62F90 +:105E3000F0E0E650FD4F30E020E07A2C721AB92CE9 +:105E4000022E01C0BB0C0A94EAF7CDA4DEA490E0B8 +:105E5000D6018D916D018B21672D691B6770862E90 +:105E6000062E000C770BB82F01C0BB0F8A94EAF7FF +:105E70008B2E7195619571096770772701C08695A2 +:105E80006A95EAF7882A8081882A80829F5F983005 +:105E9000F9F62F5F3F4F31962830310571F6E5E175 +:105EA000F2E02FA538A9E217F30709F0B0CF04E616 +:105EB00010E020E230E04AEF52E071CF8091F10033 +:105EC000D8018D938D01B1E0EB1AF10809F47CCD76 +:105ED0008091E80085FDF2CF8091E8008B77809378 +:105EE000E8000E949406882399F36ECD1A8289E017 +:105EF0008B8311C08A81823009F491C1833091F182 +:105F0000813009F049C00E941F080E9412356B833E +:105F10007C838D839E8380915C04843009F048CC1F +:105F20001091E9001F709091EC00892F817090FD15 +:105F300080E8182B82E08093E9008091E80080FFE0 +:105F40000DC050E040E060E270E0CE0101960E949A +:105F5000C5068091E8008E778093E8001F7010934B +:105F6000E90026CCFE013396D1018D911D0181936C +:105F7000B4E32B16B3E03B06B9F7CDCF8A8182306C +:105F800059F46B817C818D819E810E94123586E25D +:105F900090E00E944C35BFCF8FEF8983BCCF4C81FE +:105FA0006B818A810E941A0F9827892798279E83E0 +:105FB0008D83B1CFED80FE80FE24EF24FE248A8104 +:105FC0000B81EEE00E9F80011124FCE88F9F000DF5 +:105FD000111D11248C8190E0880F991F080F191F43 +:105FE0006F2DC80187960E944C356E2DC80188968A +:105FF000D0CF0E949E0E8FCF8A818138C1F060F48D +:10600000803809F088CF20E04B816091690480914D +:1060100068040E947D157FCF8238E9F0833809F04B +:106020007ACF20E040916A046C818B81F2CF60E0EE +:106030008B810E9494168B81811103C00E948C1168 +:106040006ACF8091670481608093670460E08695E1 +:106050000E94941660CF8B8180936B045CCF8A8101 +:10606000813899F030F4803809F055CF80916A0476 +:106070003FCF823891F0833809F04DCF809168048A +:106080008B83809169048C8346CF8091670480FF65 +:1060900002C086952DCF80E02BCF80916B0428CF56 +:1060A00060916704709168048091690490916A041A +:1060B0000E946B1530CF80E18A832DCF81E08A83E7 +:1060C0008DE116CFCA80DB80DC24CD24DC248E0158 +:1060D0000F5F1F4FEC80E00EF12EF11CC6018D51B9 +:1060E0009D4F0E151F0509F416CF2DE1C21621E0B4 +:1060F000D20658F40E943835D80114968C93FFEFDD +:10610000CF1ADF0A0F5F1F4FE9CFF8011482F7CFD4 +:106110000A811B811027012710279E012F5F3F4F07 +:106120006901EC80E00EF12EF11CC8018D519D4FEC +:10613000E016F10609F4EFCE0D3131E0130728F433 +:10614000D60114966C910E944C35BFEFCB1ADB0A36 +:106150000F5F1F4FEACF0E948E0EDDCE85E0ACCFE1 +:10616000CA80DB80DC24CD24DC248E010F5F1F4F2E +:10617000EC80E00EF12EF11CC6018796E016F106C8 +:1061800009F4C9CEECEBCE16E2E0DE0658F40E942C +:106190003835D80114968C93FFEFCF1ADF0A0F5FC2 +:1061A0001F4FEACFF8011482F7CF0A811B81102715 +:1061B000012710279E012F5F3F4F6901EC80E00E01 +:1061C000F12EF11CC8018796E016F10609F4A3CE62 +:1061D0000C3B32E0130728F4D60114966C910E9410 +:1061E0004C35BFEFCB1ADB0A0F5F1F4FEBCF09BD5A +:1061F00019BD09B400FEFDCF8091D8008F7D80933A +:10620000D8008091E00082608093E0008091E000FF +:1062100081FDFCCF10924F040E94A11137CC86E281 +:1062200090E00E9438351B821C821D828E8373CEC3 +:106230001092B9008CE08093B80008959F92AF92BD +:10624000BF92CF92DF92EF92FF920F931F93CF9363 +:10625000DF93B82EEB010E9427256C01EE24E39416 +:10626000F12CC431D10560F025E0E22EF12CCF3FB6 +:10627000DC0731F0CE0164E170E00E94D8347B018C +:1062800084EAA82E94E8992E1092BC00A092BC003B +:106290000E9427258C018091BC0087FF0DC0809152 +:1062A000B900887F883039F18091B900887F8031CA +:1062B00011F10FEF1FEF09C00E942725801B910BE2 +:1062C0008E159F0540F30EEF1FEFCF3FDC07E1F285 +:1062D000C6010E9418258C179D07B0F2C801DF91F6 +:1062E000CF911F910F91FF90EF90DF90CF90BF90D3 +:1062F000AF909F900895B092BB009092BC000E9416 +:1063000027258C018091BC0087FF0AC08091B900CD +:10631000887F883111F0803461F610E000E0DECF34 +:106320000E942725801B910B8E159F0558F3CBCF1C +:106330000F931F93CF93DF93EB018093BB0084E80F +:106340008093BC000E9427258C018091BC0087FFB0 +:1063500011C02091B900287F81E090E0283211F42B +:1063600090E080E0919581959109DF91CF911F9107 +:106370000F910895CF3FDC0741F30E942725801B32 +:10638000910B8C179D0708F38EEF9FEFEECF0F93C5 +:106390001F93CF93DF93EC0184EC8093BC000E94A9 +:1063A00027258C018091BC0087FF08C08091BB002D +:1063B00090E0DF91CF911F910F910895CF3FDC07BF +:1063C00089F30E942725801B910B8C179D0750F3A2 +:1063D0008EEF9FEFEECF0F931F93CF93DF93EC01E0 +:1063E00084E88093BC000E9427258C018091BC002A +:1063F00087FF08C08091BB0090E0DF91CF911F9193 +:106400000F910895CF3FDC0789F30E942725801B59 +:10641000910B8C179D0750F38EEF9FEFEECFCF922D +:10642000DF92EF92FF920F931F93CF93DF936B0155 +:106430008A017901B9010E941E31E6010C0D1D1D72 +:10644000C017D10761F424E92093BC00DF91CF91FC +:106450001F910F91FF90EF90DF90CF90089597FDDF +:10646000F2CFB70189910E949831EACFCF92DF92A3 +:10647000EF92FF920F931F93CF93DF93C62F6A0182 +:106480007901B8010E941E3197FD0CC0B8018C2F14 +:106490000E949831E601EC0CFD1CCE15DF0511F0D1 +:1064A00097FF0CC024E92093BC00DF91CF911F918E +:1064B0000F91FF90EF90DF90CF900895B8018991F0 +:1064C0000E949831EACFCF92DF92EF92FF920F9322 +:1064D0001F93CF93DF93F82EE62EEA016901B801EE +:1064E0000E941E3197FD15C0B8018E2D0E94983173 +:1064F00097FD0FC0B8018F2D81600E941E31F12CD5 +:10650000E12C21E0C21AD108EC14FD0400F597FF3C +:1065100011C024E92093BC001816190614F490E069 +:1065200080E0DF91CF911F910F91FF90EF90DF906E +:10653000CF900895C8010E94C73197FD04C0FE01A5 +:10654000EE0DFF1D80832FEFE21AF20ADDCF97FDDB +:10655000E0CFC8010E94EB3197FDDBCFCC0DDD1DF4 +:106560008883D7CF84E98093BC0008958EE14A9B4D +:1065700002C08150E1F74A9BFECF08955A9880E20D +:106580008A95F1F75A9A0895FC013BE03A95F1F7A4 +:1065900098E020E080E031E040E14A95F1F7880F93 +:1065A0004A9B02C08160232742E04A95F1F7000030 +:1065B00040E14A95F1F7915079F790E19A95F1F71A +:1065C00099B132E03A95F1F7000040E14A95F1F7D0 +:1065D00092FB992790F992272081920F908308953A +:1065E000EF92FF920F931F93CF93DF930F92CDB74C +:1065F000DEB719828C017C01E60EF11C0E151F0519 +:1066000061F481E09981911180E00F90DF91CF9149 +:106610001F910F91FF90EF9008950E94B632CE0126 +:1066200001960E94C432F80181938F01E7CF529AFC +:106630005A9A089552985A9AEA9AE9E6F0E08081C7 +:106640008F7C808308956150770B91E001C0990F92 +:106650006A95EAF720E031E0911108C0222391F019 +:106660005A9A80E28A95F1F75A980895492F48235B +:1066700039F05A9A232740E24A95F1F79695ECCFE4 +:106680005A98F9CF5A98EDCFFF920F931F93CF935B +:10669000DF93EC018C01060F111DC017D10731F4F7 +:1066A000DF91CF911F910F91FF900895F9900E9473 +:1066B000BE3268E08F2D0E942333EFCF1F920F92DE +:1066C0000FB60F921124EF92FF920F931F932F9307 +:1066D0003F934F935F936F937F938F939F93AF936A +:1066E000BF93EF93FF93CF93DF930F92CDB7DEB7B6 +:1066F00019820E94B632CE0101960E94C432A82FA0 +:10670000A695A695A695282F229525709A2F957067 +:10671000290F922F937026952695920F98279770A0 +:106720008981982B09F075C0A83008F072C080E10B +:106730008A95F1F75A9A529AB2E0BA95F1F700C0E9 +:106740005A98EA2EF12CEAE0AE9FD0011124AF5FF7 +:10675000BE4F1896ED91FC9119973097B1F060916A +:10676000FB017091FC0116962D913C911797260F15 +:10677000371F13968D919C911497680F791F15966A +:106780004C91159712968C9109958AE08E9DF00197 +:106790008F9DF00D1124EF5FFE4F6581662351F050 +:1067A0002091FB013091FC0186819781820F931F1C +:1067B0000E9444330E94BE32F0E1FA95F1F75A98F4 +:1067C00052985A9A80E18A95F1F78AE08E9D80016D +:1067D0008F9D100D11240F5F1E4FD80112966C91E2 +:1067E0001297662371F12091FB013091FC01139601 +:1067F0008D919C91820F931F0E94F032D801ED91F0 +:10680000FC91882311F088E001C082E080830E941F +:10681000B6320F90DF91CF91FF91EF91BF91AF9181 +:106820009F918F917F916F915F914F913F912F91A8 +:106830001F910F91FF90EF900F900FBE0F901F9040 +:106840001895ED91FC91DFCF0F931F93CF93DF93BA +:10685000EC0108970CF0A9C08AE08C9FF0018D9F95 +:10686000F00D1124EF5FFE4F80819181892B09F497 +:106870009CC0F894529A5A9885E08A95F1F70000E6 +:106880008C2F869585709C2F9570890F982F93700B +:1068900086958695890F8E0193E0000F111F9A95BA +:1068A000E1F7082B0E94BE3200C068E0802F0E94F2 +:1068B0002333A0E1AA95F1F752985A9A4A9B27C030 +:1068C00087E090E04A9925C08AE08C9F80018D9FE7 +:1068D000100D11240F5F1E4FF80165816623A1F191 +:1068E0002091FB013091FC0186819781820F931FDB +:1068F0000E94F032811128C0529A5A9AD801ED9123 +:10690000FC9182E08083789482E090E016C000C021 +:10691000D5CF0197B9F4529A5A9A8AE08C9FF00128 +:106920008D9FF00D1124EF5FFE4F0190F081E02D5F +:1069300081E08083789481E090E0DF91CF911F9196 +:106940000F91089500C0BECF0E94B632B0E2BA9552 +:10695000F1F75A98529AE0E1EA95F1F78AE08C9FB4 +:10696000F0018D9FF00D1124EF5FFE4F62816623D1 +:1069700051F02091FB013091FC0183819481820FC1 +:10698000931F0E9444330E94BE328AE08C9FF00124 +:106990008D9FF00D1124EF5FFE4F0190F081E02DEF +:1069A0001082789490E080E0C8CF84E090E0C5CF7A +:1069B000AA1BBB1B51E107C0AA1FBB1FA617B70725 +:1069C00010F0A61BB70B881F991F5A95A9F7809541 +:1069D0009095BC01CD010895991B79E004C0991FE1 +:1069E000961708F0961B881F7A95C9F78095089529 +:1069F00097FB072E16F4009407D077FD09D00E946C +:106A0000D83407FC05D03EF4909581959F4F0895AA +:106A1000709561957F4F0895EE0FFF1F0590F491DB +:106A2000E02D0994692796276927782787277827F3 +:106A30000895FB01DC0102C005900D9241505040C9 +:106A4000D8F70895FB01DC0104C08D9101908019F5 +:106A500021F441505040C8F7881B990B0895FB0161 +:106A6000DC0102C001900D9241505040D8F70895CA +:106A7000F999FECF92BD81BDF89A992780B5089506 +:106A8000A6E1B0E044E050E00C947235A8E1B0E03B +:106A900042E050E00C947235262FF999FECF92BD5A +:106AA00081BDF89A019700B4021639F01FBA20BDD3 +:106AB0000FB6F894FA9AF99A0FBE08950396272F05 +:106AC0000E944D350E944C35252F0E944D35242FB4 +:106AD0000C944D350196272F0E944D350C944C3562 +:106AE000DC01CB01FC01F999FECF06C0F2BDE1BD8E +:106AF000F89A319600B40D9241505040B8F708957D +:106B00000E9487356894B1110C94163608950E943E +:106B1000FB3588F09F5798F0B92F9927B751B0F0FF +:106B2000E1F0660F771F881F991F1AF0BA95C9F711 +:106B300014C0B13091F00E941536B1E008950C9464 +:106B40001536672F782F8827B85F39F0B93FCCF317 +:106B5000869577956795B395D9F73EF4909580958E +:106B6000709561957F4F8F4F9F4F0895E89409C0AE +:106B700097FB3EF490958095709561957F4F8F4F70 +:106B80009F4F9923A9F0F92F96E9BB279395F69586 +:106B9000879577956795B795F111F8CFFAF4BB0F04 +:106BA00011F460FF1BC06F5F7F4F8F4F9F4F16C068 +:106BB000882311F096E911C0772321F09EE8872FF2 +:106BC000762F05C0662371F096E8862F70E060E0AE +:106BD0002AF09A95660F771F881FDAF7880F969527 +:106BE000879597F9089557FD9058440F551F59F010 +:106BF0005F3F71F04795880F97FB991F61F09F3FAA +:106C000079F087950895121613061406551FF2CFD2 +:106C10004695F1DF08C0161617061806991FF1CF22 +:106C200086957105610508940895E894BB27662749 +:106C30007727CB0197F908950E942F360C94A03640 +:106C40000E94923638F00E94993620F0952311F078 +:106C50000C9489360C948F3611240C9416360E94AD +:106C6000F33570F3959FC1F3950F50E0551F629F68 +:106C7000F001729FBB27F00DB11D639FAA27F00D95 +:106C8000B11DAA1F649F6627B00DA11D661F829FBC +:106C90002227B00DA11D621F739FB00DA11D621FA1 +:106CA000839FA00D611D221F749F3327A00D611DBE +:106CB000231F849F600D211D822F762F6A2F1124A0 +:106CC0009F5750409AF0F1F088234AF0EE0FFF1FD3 +:106CD000BB1F661F771F881F91505040A9F79E3F2A +:106CE000510580F00C9489360C9416365F3FE4F31E +:106CF000983ED4F3869577956795B795F795E79580 +:106D00009F5FC1F7FE2B880F911D9695879597F988 +:106D1000089597F99F6780E870E060E008959FEF1D +:106D200080EC089500240A94161617061806090622 +:106D3000089500240A9412161306140605060895F1 +:106D4000092E0394000C11F4882352F0BB0F40F479 +:106D5000BF2B11F460FF04C06F5F7F4F8F4F9F4FB9 +:106D60000895F894FFCF9A0F9A0FA30FA30FA50FC2 +:106D7000A30FA30FA30F9A0F9A0FAA0FA30FA30F8E +:106D8000AA0F9212BA125D14BA125D14ED120E130C +:106D90005D140C1419141E1994199719AB19AE1916 +:106DA000C119CA19EE19341A661A7A1A001A231A66 +:106DB000AC1DAC1D051E051E371EDF1DDF1DDF1DB2 +:106DC000511EC21ED21ED21E762F7A2FBE2FCF2F5B +:106DD000DA2FF92FFC2F2F305030CC2FCC2F5B30F7 +:0E6DE0005E3062308830AB30AE30B030D5302F +:106DEE00013A0200000001000000003A020000001B +:106DFE0005010000003A0200000001060000003A02 +:106E0E000200000001070000003A02040800000022 +:106E1E000000003A02090C0000000000003A0201D6 +:106E2E001500000000000036323331F7F667669722 +:106E3E00C634350000000000010008D50DB40DB0B9 +:106E4E000DAC0DFF07F4F5010021007F22000301B8 +:106E5E008000004A004A4A01F6F731333236674C59 +:106E6E00415945520042617365200047616D6520AE +:106E7E00005261697365004C6F776572004C4F4329 +:106E8E004B0043617073004E756D005363726C005E +:106E9E00202020202000534F4C415200544D50537F +:106EAE005400818283E200E900EA00B500B600B723 +:106EBE0000CD008301CC008A0192019401210223AE +:106ECE000224022502260227022A02B300B4006F12 +:106EDE000070000603060806010606B00200FF0158 +:106EEE0000010000FFFF0000010001FF000008107C +:106EFE001818100800000102020202020202020229 +:106F0E000240227B99017701FC00400B590B790B53 :00000001FF From bb72963fa62b910b0535210e8d69f886e1c608b7 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 20:39:32 -0500 Subject: [PATCH 68/94] Add firmware file for breaking changes updates. --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 768f40b1918c..7dc97231b350 100644 --- a/.gitignore +++ b/.gitignore @@ -20,9 +20,9 @@ api_data/v1 doxygen/ quantum/version.h -*.bin +#*.bin *.eep -*.hex +#*.hex *.qmk *.uf2 From f4899eb28844edcd67a96b13ffda9237cc46f01b Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 20:44:08 -0500 Subject: [PATCH 69/94] Updated firmware file only for breaking changes. No code changes. --- .../ps17/solartempest_ps17_via.hex | 2720 +++++++++-------- 1 file changed, 1366 insertions(+), 1354 deletions(-) diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index 1ebdd82124ae..bae27a5b97ac 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -1,9 +1,9 @@ :100000000C949E030C94E5030C94E5030C94E50317 :100010000C94E5030C94E5030C94E5030C94E503C0 -:100020000C94E5030C94E5030C9434260C94F02511 -:100030000C942F270C94E5030C94E5030C94E50332 +:100020000C94E5030C94E5030C9487260C9443266A +:100030000C9484270C94E5030C94E5030C94E503DD :100040000C94E5030C94E5030C94E5030C94E50390 -:100050000C94E5030C940B270C94E5030C94E50336 +:100050000C94E5030C9460270C94E5030C94E503E1 :100060000C94E5030C94E5030C94E5030C94E50370 :100070000C94E5030C94E5030C94E5030C94E50360 :100080000C94E5030C94E5030C94E5030C94E50350 @@ -19,7 +19,7 @@ :100120000319012AB700150126B700950175108142 :1001300000C0050C0901A101850419012AA00215BE :100140000126A002950175108100C005010906A1D4 -:10015000018505050719E029E715002501950875B2 +:10015000018506050719E029E715002501950875B1 :100160000181020507190029EF1500250195F07599 :10017000018102050819012905950575019102956E :100180000175039101C00660FF0961A101096215B3 @@ -115,21 +115,21 @@ :10072000370000001203410054004C0041004E000D :1007300054004900530000000403090411241FBEA3 :10074000CFEFDAE0DEBFCDBF04B603FE27C0809155 -:100750009A0390919B03A0919C03B0919D038730D5 -:10076000904BA740B04BD1F410929A0310929B0388 -:1007700010929C0310929D0314BE84B7877F84BFA0 +:100750009D0390919E03A0919F03B091A0038730C9 +:10076000904BA740B04BD1F410929D0310929E0382 +:1007700010929F031092A00314BE84B7877F84BF9A :100780000FB6F894A895809160008861809360000E :10079000109260000FBEE0E0F8E3099511E0A0E0E0 -:1007A000B1E0EEE7FDE502C005900D92A83CB1076F -:1007B000D9F723E0A8ECB1E001C01D92AA39B20735 -:1007C000E1F70E9456270C947F2E0C940000E8ED70 +:1007A000B1E0EAE3FEE502C005900D92AA3CB10774 +:1007B000D9F723E0AAECB1E001C01D92AD39B20730 +:1007C000E1F70E94AB270C94DD2E0C940000E8EDBD :1007D000F0E080818E7F80831092E2001092DA0038 :1007E0001092E100A0EEB0E08C9181608C9380814A :1007F0008F77808319BCA7EDB0E08C918E7F8C93AE -:1008000080818F7E80831092680308952091E40098 +:1008000080818F7E808310926B0308952091E40095 :100810003091E50095E6A9012091EC00822F8170CE :1008200020FF06C08091E80080FF06C080E00895A8 -:100830002091E80022FD1AC080918E03882389F060 +:100830002091E80022FD1AC080919103882389F05D :10084000853089F08091EB0085FD0FC02091E40098 :100850003091E50042175307F9F29150E1F684E038 :10086000089582E0089583E0089581E00895EF926D @@ -138,9 +138,9 @@ :10089000E8008E778093E8000E940604882399F38D :1008A000C82F08C0F70181917F018093F1000150AA :1008B000110949F78C2FCF911F910F91FF90EF9065 -:1008C00008958091900387FF13C08091E80082FF14 +:1008C00008958091930387FF13C08091E80082FF11 :1008D00006C08091E8008B778093E80004C0809187 -:1008E0008E038111F2CF089580918E038823D9F36E +:1008E00091038111F2CF0895809191038823D9F368 :1008F0008091E80080FFF8CF8091E8008E77ECCF00 :10090000982F9093E900242F762F50E0891731F02B :100910007091EC002091ED005091F00021FD07C096 @@ -151,1360 +151,1372 @@ :1009600080E00895CF92DF92EF92FF920F931F9352 :10097000CF93DF93C8EDD0E088818F7E8883E7ED49 :10098000F0E080818160808384E082BF81E0809399 -:10099000680388818E7F888302EE10E0F801108260 +:100990006B0388818E7F888302EE10E0F80110825D :1009A0001092DA0081EEC82ED12CF60110828881D7 :1009B0008F77888388818068888388818F7D88830A -:1009C00019BC10928E0310928F0310928D03109217 -:1009D0008C0390EEE92EF12CF70180818B7F8083D0 +:1009C00019BC10929103109292031092900310920E +:1009D0008F0390EEE92EF12CF70180818B7F8083CD :1009E00088818160888342E060E080E00E9480042A :1009F000F60180818E7F8083F80180818160808311 :100A0000808188608083F70180818E7F80838881E8 :100A100080618883DF91CF911F910F91FF90EF90BC -:100A2000DF90CF900895FC018091960390919703F9 +:100A2000DF90CF900895FC018091990390919A03F3 :100A300086179707A0F06115710529F49091E800D9 :100A40009E779093E80090E06115710551F4911143 :100A500008C08091E80082FF34C080E00895BC01A6 -:100A6000F2CF80918E038823C1F18530C1F180914E +:100A6000F2CF809191038823C1F18530C1F180914B :100A7000E80083FD30C08091E80082FDEACF8091DC :100A8000E80080FFE1CF8091F3002091F200382F41 :100A90006115710519F02830310558F091E02830C2 :100AA000310509F090E02091E8002E772093E800CE :100AB000CBCF81918093F100615071092F5F3F4F3F -:100AC000E7CF80918E03882341F0853041F08091FB +:100AC000E7CF80919103882341F0853041F08091F8 :100AD000E80083FFBECF81E0089582E0089583E0BF -:100AE000089580916B0308959C014FB7F89480910D -:100AF0005F0390916003A0916103B09162034FBFC7 -:100B0000821B930B08952FB7F89480915F03909107 -:100B10006003A0916103B09162032FBF08952091FB -:100B20005C0330915D032817390771F090935D03E2 -:100B300080935C03E0915A03F0915B03309721F0BE -:100B40000084F185E02D0994089520915803309197 -:100B500059032817390771F090935903809358036C -:100B6000E0915A03F0915B03309721F00680F78102 -:100B7000E02D09940895E0915A03F0915B033097BA -:100B800021F00190F081E02D099480E00895DC01CE -:100B90006091540380915503962F891301C00895E5 -:100BA000292F30E0F901EE0FFF1FE45BFC4F40817D -:100BB00051814A175B07A1F487E08A9FA0018B9FB0 -:100BC000500D1124435E5E4F81E0FA018483961339 -:100BD000E6CF2F5F3F4F23703327209354030895B0 -:100BE0002F5F3F4F922F9370D8CF1092E90210924F -:100BF000E802EDE1F1E08581811102C014821682E4 -:100C0000379681E0E734F807B1F70895FA018111CA -:100C100001C0FB01099408958091E302982F9E7F03 -:100C200061F4817082608093E3028091E602853BEB -:100C300018F084EB8093E60208958A34B0F3817053 -:100C40008864F1CFAF92BF92DF92EF92FF920F9341 -:100C50001F93CF93DF93182F062FE901453B08F030 -:100C600044EBE42FF0E0E655FD4F011110C0E49194 -:100C70005E2F4E2F4983E8835A83DF91CF911F91D6 -:100C80000F91FF90EF90DF90BF90AF900895202FCD -:100C900030E04491D42EE42EF12C56E0159FC00193 -:100CA0001124EFEFF0E0BF010E94892D812F90E029 -:100CB000880F991F55E5569FD001579FB00D1124FD -:100CC0008A1B9B0B982F990F890F5F01A21AB30AF9 -:100CD000AE9CD001AF9CB00DBE9CB00D11245B2F1B -:100CE000089F80011124012F11275F01A01AB10A6A -:100CF000AE9C8001AF9C100DBE9C100D11245F01B5 -:100D0000A81AB108A29EC001A39E900DB29E900D9C -:100D10001124892F9927E81BF90BEE9DC001EF9D47 -:100D2000900DFE9D900D1124E92F62307105A1F008 -:100D300050F46115710509F49DCF6130710581F0A2 -:100D4000EB2F512F97CF6430710569F080F066303A -:100D5000710509F48FCFF4CFE42F4B2F592F8ACF91 -:100D6000E42F412F87CFEB2F542F492F83CF4B2FC9 -:100D70005D2DE12F7FCF0E9483059C0190917E0223 -:100D800080917F02982B21F030937B0220937A028E -:100D90009091800280918102982B21F0309379020A -:100DA00020937802E0915A03F0915B03309749F069 -:100DB00082E080937C020480F581E02D8CE792E054 -:100DC0000994089540917E02803F59F480917F02FA -:100DD00087FF0DC010927F0241110BC01092760266 -:100DE00008C0813F81F480917F0218169CF3442350 -:100DF00081F08091800290918102892B09F05AC084 -:100E0000109275020895823F49F447FFF0CF109287 -:100E10007E0280917F028111ECCFE0CF833F19F4F5 -:100E20001416ACF3E4CF90918002893F29F419168F -:100E3000F4F610928002DBCF8A3F19F497FFD7CFE8 -:100E4000F8CF909181028B3F29F497FFD0CF109279 -:100E50008102CDCF8C3F19F41916CCF3C8CF9CE09A -:100E6000980F953090F4845F990B21E030E0B90140 -:100E700002C0660F771F8A95E2F7CB0180959091AB -:100E80007D02892380937D02B2CF8D3F31F4809122 -:100E900077028E7F80937702AACF8E3F21F48091D4 -:100EA00077028D7FF7CF8F3F09F0A1CF8091770236 -:100EB0008B7FF0CF08958091770280FD16C081FD71 -:100EC00016C082FD16C0809175028823A1F0883279 -:100ED00080F428E0829FC001112468E270E00E9443 -:100EE0009D2D862F672B39F0089582E0089584E0C8 -:100EF000089588E0089581E008958091770280FD4B -:100F000014C081FD14C082FD16C080917602882332 -:100F100081F0843180F422E3829FC001112464E1D6 -:100F200070E00E949D2D862F08958CE0089589E140 -:100F3000089585E0089582E30895803F31F40E948A -:100F40007D07819580937F020895813F19F40E9467 -:100F50007D07F8CF823F31F40E947D078195809311 -:100F60007E020895833F19F40E947D07F8CF893FE0 -:100F700029F40E945B078093800208958A3F21F440 -:100F80000E945B078195F7CF8B3F31F40E945B078E -:100F900081958093810208958C3F19F40E945B072C -:100FA000F8CF9CE0980F953070F4845F990B21E0A6 -:100FB00030E001C0220F8A95EAF780917D02822BF2 -:100FC00080937D0208958D3F31F480917702816096 -:100FD0008093770208958E3F21F48091770282609A -:100FE000F7CF8F3FB9F7809177028460F1CF80E02F -:100FF0000895F894E82FE295EF70F0E031A1282FE2 -:101000002F7081E090E001C0880F2A95EAF7982FB1 -:101010009095932391A392A1892B82A3789408950C -:101020009091630392FF06C0282F28712830F9F4AD -:10103000877F846093FF06C0282F28712831F1F440 -:10104000877E84612091640320FF06C0382F3871A9 -:101050003830D9F4877F816021FF06C0282F28719E -:101060002831D1F4877E816194FD877E0895282FF1 -:1010700024712430F9F68B7F8860DCCF282F24710F -:10108000243101F78B7E8861DDCF382F317131300B -:1010900019F78E7F8860E0CF282F2171213121F749 -:1010A0008E7E8861E1CFCF93DF93EC01823891058A -:1010B000A9F1D8F58133910509F496C048F5893234 -:1010C000910509F48AC08A9709F495C0C11521E5F4 -:1010D000D20708F0BCC0C11530E5D30708F014C131 -:1010E000C83ED10508F09CC0C03ED10560F5C83AA5 -:1010F000D10508F087C0C53AD10508F0FDC0C13060 -:10110000D10509F12097F9F0C430D105E0F440C0D1 -:101110008533910509F45AC0C997C1F680916303DC -:10112000837089F0C0EED0E00EC0833E910599F146 -:1011300070F4803E910501F1823E910539F680916F -:10114000630382FD21C0CE01DF91CF910895863ED9 -:10115000910561F1873E910571F1843E910509F099 -:10116000B5CF8091640381FFEECF80916303C7EE1A -:10117000D0E084FD0DC0E7CF8091630380FD12C1F4 -:101180009091640390FFDFCFC3EED0E084FFDBCF0C -:10119000D0E0C0E0D8CF8091630382FD06C190917A -:1011A000640390FDBFCF84FFCECFF2CF8091630365 -:1011B00083FDDDCFC8CF8091630383FDF9C090919B -:1011C000640391FFF0CFC4EED0E0BDCF8091630304 -:1011D00085FFB9CFC9E2D0E0B6CF8091630385FF28 -:1011E000B2CFC5E3D0E0AFCF8091630386FFABCF32 -:1011F000CAE2D0E0A8CF8091630386FFA4CFC1E309 -:10120000D0E0A1CFCF3BD10518F6C85AD0E0CC0F23 -:10121000DD1FC45BDE4F0990D881C02DD46493CF0D -:10122000C11540E2D40758F4C11581E0D80708F091 -:101230008ACFC03FD10508F4ABCFD06584CFC115AC -:1012400090E4D90708F4A4CFDF70D06A7CCFC11531 -:1012500025E5D20700F5C11534E5D30708F08AC0AB -:10126000C11543E5D40708F071C0C11582E5D80760 -:1012700008F467C0CE018370992721E030E002C0F6 -:10128000220F331F8A95E2F7C695C69580E2C89F64 -:10129000E001112452C0C11599E5D907A8F4C11580 -:1012A00028E5D20708F06BC0C11536E5D30708F072 -:1012B0006FCF8C2F0E941008C82FD0E0DC2FCC27D6 -:1012C000CC27DF71D0623FCFC1154AE5D40708F4BF -:1012D0005BC0CE0190568115904208F059CF8D2FFA -:1012E0008F710E94100890E0982F882788279F719F -:1012F0009C012C2BE901E6CFC55AD0E0C75BDE4F3D -:10130000C881D0E0D0641FCFCE01E4E096958795E8 -:10131000EA95E1F783702C2F26952695237040E2FD -:10132000249F90011124382B8C2F8370C1E0D0E0D2 -:1013300002C0CC0FDD1F8A95E2F7C22BD32BDC68ED -:1013400002CFDC2FCC27C16FD06AFDCECE018370D7 -:10135000992721E030E002C0220F331F8A95E2F77F -:10136000C695C69590E2C99FE0011124C22BD32BEC -:10137000DA68E9CEDC2FCC27C46FD06AE4CEDC2F4C -:10138000CC27C06FD06ADFCE8C2F8F700E941008E0 -:1013900034E0D695C7953A95E1F7CF709C2FEC01D4 -:1013A000D069D1CEC9E3D0E0CECEC2EED0E0CBCE74 -:1013B000C6EED0E0C8CE8091450281111092450260 -:1013C00008958091690390914402892B9091430282 -:1013D000892B8093CA01909145029923A1F0892B12 -:1013E0008093CA0180914801882341F18091630371 -:1013F00087FF24C08EE1ECECF1E090E0815000F535 -:1014000091110E94DB09E0915A03F0915B03309740 -:10141000E1F080914801882359F08091630387FFB0 -:1014200007C08091CA018093CB0185E08093CA01F7 -:101430000280F381E02D8AEC91E0099486E0DBCF15 -:1014400021912223D9F29F5FD9CF0895909148012D -:101450009923D1F09091630397FF16C0E82FE6958A -:10146000E695E695EE31E0F4F0E0E653FE4F282FE6 -:10147000277081E090E001C0880F2A95EAF78095F7 -:101480009281892382830895ECECF1E09191891394 -:1014900003C0DF0111971C9291E0E23DF907B1F71B -:1014A0000895909148019923C1F09091630397FFAB -:1014B00014C0E82FE695E695E695EE31F8F4F0E0F5 -:1014C000E653FE4F877021E030E001C0220F8A957D -:1014D000EAF78281822B82830895ACECB1E0EFEFD2 -:1014E00090E02D91821751F0EF3F19F4211101C0C6 -:1014F000E92F9F5F9630A9F7EF3F09F408950E2E6C -:10150000000CFF0BE653FE4FE6CF80914102909115 -:101510000002981301C008958F5F8770FACF990F6A -:10152000990F890F982F977086958695869524E058 -:10153000829FF0011124E451FE4F50E040E080E032 -:10154000219130E0092E02C0369527950A94E2F7E2 -:1015500021703327042E01C0220F0A94EAF7822B50 -:101560004F5F5F4F4430510559F70895990F990F18 -:10157000890F982F977041E001C0440F9A95EAF7C0 -:1015800086958695869594E0899FF0011124E45113 -:10159000FE4F30E020E070E05191DF011197CB0168 -:1015A000022E02C0969587950A94E2F78170819584 -:1015B0008527842385278C932F5F3F4F2430310567 -:1015C00059F7089590E080E00E94A50590E080E042 -:1015D0000E948F0510924402109243020E94E1097A -:1015E00086E0ECE7F2E0DF011D928A95E9F71092C0 -:1015F000760210927502109277020C94BB069093BB -:101600004702809346020C94E20A882341F08095B9 -:10161000909144028923809344020C94E109089537 -:10162000882339F090914402982B909344020C94B3 -:10163000E1090895882341F08095909169038923F9 -:10164000809369030C94E1090895882339F09091FF -:101650006903982B909369030C94E10908958823FA -:1016600009F459C0823871F40E94BB0581FF53C050 -:1016700089E30E94510A0E94E10989E30E94260A37 -:101680000C94E109833859F40E94BB0580FF43C0E4 -:1016900083E50E94510A0E94E10983E5EFCF843877 -:1016A00059F40E94BB0582FF36C087E40E94510AAC -:1016B0000E94E10987E4E2CF9CEF980F913AF0F2A3 -:1016C00090E2980F983088F4877021E030E0A9010B -:1016D00002C0440F551F8A95E2F7CA018095909188 -:1016E0006903892380936903CBCF9BE5980F9330DF -:1016F00020F490E080E00C94A50598E5980F9731D0 -:1017000020F490E080E00C948F05803F20F00E9450 -:10171000E2060C94BB060895809580FF08C0589A95 -:1017200081FF07C05D9A82FF06C05C9A08955898B1 -:10173000F7CF5D98F8CF5C98089590918E03943020 -:1017400029F5809365037093670360936603909314 -:10175000E9008FEF9091E800815095FD06C095ED6E -:101760009A95F1F700008111F5CF8091E80085FF8F -:101770000DC050E040E063E070E085E693E00E9439 -:1017800037048091E8008E778093E8000895BC01CB -:1017900084E00C949D0BBC0183E00C949D0B9C0198 -:1017A00084E08093E9009FEF8091E800915085FDEF -:1017B00006C085ED8A95F1F700009111F5CF809173 -:1017C000E80085FF0CC050E040E066E070E0C90131 -:1017D0000E9437048091E8008E778093E800089596 -:1017E000CF93DF93EC01809148018823B1F1809180 -:1017F000630387FF32C060E284E08093E9008FEFEB -:101800009091E800815095FD06C095ED9A95F1F70D -:1018100000008111F5CF8091E80085FF1BC0809109 -:10182000480170E050E040E0811104C050E040E029 -:1018300068E070E0CE010E9437048091E8008E7766 -:101840008093E80080E2FE01ACE6B3E001900D92E7 -:101850008A95E1F7DF91CF91089568E081E0CDCFDF -:1018600081E08093E00080E28093D8001092C9006C -:101870008FE19EE40197F1F700C0000087E090EB54 -:10188000DC0180939A0390939B03A0939C03B093F5 -:101890009D0388E19CE00FB6F894A89580936000C2 -:1018A0000FBE90936000FFCFCF93C82F882309F419 -:1018B000AEC08238C1F40E94BB0581FDA8C089E397 -:1018C0000E94510A0E94E1092FEF81EE94E021501D -:1018D00080409040E1F700C0000089E30E94260AA2 -:1018E000CF910C94E1098338A1F40E94BB0580FDDF -:1018F0008EC083E50E94510A0E94E1092FEF81EE1C -:1019000094E0215080409040E1F700C0000083E562 -:10191000E5CF8438A1F40E94BB0582FD78C087E43E -:101920000E94510A0E94E1092FEF81EE94E02150BC -:1019300080409040E1F700C0000087E4CFCF8CEFFB -:101940008C0F813A88F580914801882301F18091BC -:10195000630387FF1CC0EC2FE695E695E695F0E063 -:10196000E653FE4F828190E04C2F477021E030E03B -:1019700002C0220F331F4A95E2F782239323892B5B -:1019800079F08C2F0E94260A0E94E10909C0ECEC34 -:10199000F1E08191C817A9F321E0E23DF207C9F710 -:1019A0008C2F0E94510A9CCF80E28C0F883068F403 -:1019B000C77021E030E001C0220FCA95EAF780919C -:1019C0006903822B809369038BCFEBE5EC0FE33047 -:1019D00040F4F0E0E75BFE4F808190E0CF910C9403 -:1019E000A505E8E5EC0FE73150F4F0E0EE0FFF1F3E -:1019F000E45BFE4F80819181CF910C948F05C03FB5 -:101A000030F08C2F0E949D07CF910C94BB06CF9194 -:101A100008951F93CF93DF93182FCAE0D0E0893346 -:101A200011F4C0E5D0E0812F0E94540C8FE99FE0B3 -:101A30000197F1F700C000002197C1F7812FDF91D6 -:101A4000CF911F910C942F0BDF92EF92FF920F9387 -:101A50001F93CF93DF93E82FF0E0E85EFD4FD49023 -:101A6000282F26952695269530E0F901E85FFD4F51 -:101A70000491877010E0082E02C0159507950A940E -:101A8000E2F701701127F901E850FE4FE490F12CC4 -:101A9000082E02C0F594E7940A94E2F791E0E92257 -:101AA000FF24F901E851FE4FC491D0E002C0D59562 -:101AB000C7958A95E2F7C170DD270115110519F068 -:101AC00081EE0E94540CE114F10419F086EE0E949C -:101AD000540C8D2D0E94090DEF2819F086EE0E94FE -:101AE0002F0B012B19F081EE0E942F0BCD2B51F003 -:101AF0008CE2DF91CF911F910F91FF90EF90DF90DB -:101B00000C94090DDF91CF911F910F91FF90EF90F1 -:101B1000DF900895CF93DF93C7E0D2E060E0CE017D -:101B20000E944B2E2196C11584E0D807B9F7DF91AA -:101B3000CF9108956F927F928F929F92AF92BF92B2 -:101B4000CF92DF92EF92FF920F931F93CF93DF9389 -:101B50008BECC82E84E0D82E0FE510E0E801E0976A -:101B600036011CC0F50185909490692DC7010E9433 -:101B70004B2E682DC70101960E944B2E82E0A80EC5 -:101B8000B11C82E0E80EF11CCE15DF0559F788E0A4 -:101B9000680E711C28960C171D0731F07E0188E035 -:101BA000E81AF1085301DECF005D1F4F80E3C80E35 -:101BB000D11C0F3382E0180789F6DF91CF911F9176 -:101BC0000F91FF90EF90DF90CF90BF90AF909F90DC -:101BD0008F907F906F900895CF93C82F6FEF8111F2 -:101BE00061E283E290E00E944B2E6FEFC11161E150 -:101BF00084E290E00E944B2E6FEFC11165E285E216 -:101C000090E0CF910C944B2E80E00E94EC0D60E0B0 -:101C100086E290E00E944B2E0E949A0D0E948A0D4F -:101C200081E00C94EC0DCF93C0916403C2FB992723 -:101C300090F9981781F080FBC2F9C093640360911A -:101C4000630384E090E00E944B2E6C2F82E290E0D0 -:101C5000CF910C944B2ECF9108950F931F93CF9358 -:101C6000DF9328E0629FE001112450E0440F551FEC -:101C7000C40FD51F30E3839FC00DD11D1124CE01A9 -:101C800087960E94372E082F10E0102F0027CE01D4 -:101C900088960E94372E9801282BC901DF91CF9199 -:101CA0001F910F910895462F8A3038F4763028F42A -:101CB000643018F4672F0C942D0E90E080E00895A6 -:101CC000BF92CF92DF92EF92FF920F931F93CF9329 -:101CD000DF937C0100919803109199038091460253 -:101CE00090914702082B192BCFE0D0E0CC24C3946D -:101CF000D12CBC2EC6010C2E02C0880F991F0A944D -:101D0000E2F780239123892B71F4219790F7B12C6E -:101D10008B2DDF91CF911F910F91FF90EF90DF906E -:101D2000CF90BF900895B7018C2F0E94530E0E9450 -:101D30005308019751F3ECCFCF93DF93EC010E944E -:101D4000600EBE010E94530EDF91CF910C94530898 -:101D5000FC0186819781009779F00E945308292F12 -:101D60002F7092959F7092509E30A0F4E92FF0E072 -:101D7000EF57F14D0C94D32D808191810E949C0EE0 -:101D8000EECF803F19F020F4883E20F481E00895E2 -:101D9000843FE1F380E00895883EC0F3813FD1F7AE -:101DA000F5CF822F86958695869508951F93CF93BC -:101DB000DF9300D000D00F92CDB7DEB7FC012681B3 -:101DC00037812115310541F525E0DE01119601909D -:101DD0000D922A95E1F7FC01228189819A812223C3 -:101DE000B9F06623A9F00E94600E182F682F898130 -:101DF0009A810E94B60A69817A81812F0F900F9093 -:101E00000F900F900F90DF91CF911F910C94530E74 -:101E10000E948F0A182FEFCFC9010F900F900F90DB -:101E20000F900F90DF91CF911F91089583E290E082 -:101E30000E94372E813289F484E290E00E94372E8E -:101E4000813159F485E290E00E94372E91E085328D -:101E500009F090E0892F8170089580E0FCCF6091B7 -:101E6000E302669570E04BE050E08AE091E00E946A -:101E70001D2E892B19F481E080938A020E9483052C -:101E800090938402809383020895CF92DF92EF9221 -:101E90000F931F93CF93DF93CDB7DEB7C455D1090E -:101EA0000FB6F894DEBF0FBECDBF609119018091CF -:101EB000E30280FF4CC0EFEAF3E09E012F5F3F4F4B -:101EC0008E010B5A1F4FC901A4914A2F50E0DA012D -:101ED000AA0FBB1FA40FB51FA157BD4FCD90DD901A -:101EE000EC90D901CD92DD92ED929D0131960A17C9 -:101EF0001B0751F72091180143E0249F800D911D8D -:101F00001124279A25B12F7735B130685FB7F8943F -:101F1000FC01649FE00DF11D1124BF0168177907D2 -:101F200049F55FBFEFE5F4E03197F1F700C000003D -:101F3000CC5ADF4F0FB6F894DEBF0FBECDBFDF9196 -:101F4000CF911F910F91EF90DF90CF9008958091E6 -:101F50001A0190911B0123E0829FF0011124E157A7 -:101F6000FD4F891708F0A7CF1182108212828F5F70 -:101F70003396F7CFDC014D91CD01E8E035B9000093 -:101F800000C047FF25B9440F000000C000C000C0DA -:101F900025B900C0EA9591F7C1CF0F931F93CF9356 -:101FA000DF93EC0110E000E090911C019017110606 -:101FB00009F06CF40E94450F8C8190E001968170CD -:101FC00099278C83DF91CF911F910F9108952091D4 -:101FD0001A01A801420F511D9A01220F331F240F2D -:101FE000351F21573D4F4C816091E5028091E402FD -:101FF00096959017110651F04CF0442349F040910A -:10200000E6020E9422060F5F1F4FCECF4423B9F392 -:1020100040E0F7CF8F929F92AF92BF92CF92DF9224 -:10202000EF92FF920F931F93CF93DF93EC014C81BC -:10203000042F10E09801D8010E94E82D9B01AC010B -:102040000E94FE2D4B015C01E0E2F0E0E01BF10B91 -:10205000A5E5B0E0AC019B010E94FE2D6B017C0167 -:102060009F01DF010E94E02D9B01AC010E94092E1F -:102070009B01AC01280D391D4A1D5B1DC701B6012E -:102080000E94B12DF22E822F90E039E23F1560F1CF -:1020900043E0249F9001112435952795122F109528 -:1020A00000E085E5E82EEF1880911C01081758F133 -:1020B0000E94450F9C8181E0992319F0903219F418 -:1020C0008FEF8093170180911701890F8C83DF9127 -:1020D000CF911F910F91FF90EF90DF90CF90BF9025 -:1020E000AF909F908F90089525E530E0B901681B6F -:1020F000790B9B01220F331F260F371F37FFCCCFE1 -:102100002F5F3F4FC9CF8E2D01FD8F2D20911A01DA -:10211000622F600F7727771F9B01220F331F260F37 -:10212000371F21573D4F412F6091E5020E94220643 -:102130000F5FBACF0F931F93CF93DF9380911A0154 -:1021400090911B0123E0829FF0011124E157FD4F84 -:10215000891740F1C0E0D3E060911C01C61740F13F -:102160000E94450F2091150180918D02820F80936E -:102170008D0290911601920F90931601191654F446 -:10218000082E000C990B40911C014150550B8417EF -:1021900095071CF0219520931501DF91CF911F9198 -:1021A0000F9108951182108212828F5F3396D0CFE3 -:1021B0000C2F10E070E0C8010E949D2D20911A01A3 -:1021C000820F482F50E020918D02022E000C330B1D -:1021D00002171307BCF020911601022E000C330BDE -:1021E000201731077CF08D9F9001112421573D4F1E -:1021F0004091E6026091E5028091E4020E9422068D -:10220000CF5FAACFFA01EE0FFF1FE40FF51FE157D2 -:10221000FD4F118210821282F3CF9F92AF92BF9234 -:10222000CF92DF92EF92FF920F931F93CF93DF93A2 -:10223000FC0182810FEF80FF01E010E04CE1942E61 -:10224000A0901C011A15D0F00E94450F80918C02BD -:10225000013009F054C0811102C080911C018150ED -:1022600080938C02DF91CF911F910F91FF90EF909F -:10227000DF90CF90BF90AF909F900895C0911A01CA -:10228000C12ED12CCC0DDD2DD11DCE01880F991F73 -:10229000C80FD91FC157DD4F198218821A8234E046 -:1022A000E32EF12CB12C80918C028B0D8D311CF121 -:1022B000692D0E947B2D892F082E000C990BC816C2 -:1022C000D90691F48091E6028E9DA0018F9D500D5C -:1022D000112455954795559547959E016091E502C6 -:1022E0008091E4020E942206B00EF1E0EF1AF1089C -:1022F000D1F61F5FA5CF87FFDFCF8A0DDDCF90E03E -:10230000019660911C0170E00E949D2DA9CFEF9273 -:10231000FF921F93CF93DF93EC0110E0EE24EA9439 -:10232000F12C60911C01161770F00E94450F9A81E4 -:102330008C8190FF27C08F5F8C83DF91CF911F919D -:10234000FF90EF90089520911A01422F410F5527D9 -:10235000551FCA019A01220F331F280F391F215719 -:102360003D4F70E0C7010E949D2D962F8C814091BA -:10237000E6026091E502199F800D11240E94220659 -:102380001F5FCFCF8150D8CF1F93CF93DF9300D063 -:102390000F92CDB7DEB7122F9091E30290FF16C0D7 -:1023A0009E012F5F3F4F0E9422068B819981212F32 -:1023B00030E0F901EE0FFF1FE20FF31FE157FD4F71 -:1023C0002A812183908382830E94450F0F900F9072 -:1023D0000F90DF91CF911F9108959091E30290FFAC -:1023E00014C090911A0120911B0133E0939FF001DA -:1023F0001124E157FD4F921710F00C94450F818383 -:10240000608342839F5F3396F6CF08950F931F93A7 -:10241000CF93DF9300D00F92CDB7DEB78C018091C0 -:102420008E0281110AC09E012F5F3F4F44EB6FEF78 -:102430000E9422068A8180938E02F80164816130B5 -:1024400069F080918E0240E0662361F040E06230E6 -:1024500011F440918E0280E060E004C060918E0231 -:1024600040E080E00E94ED11F801848190E0019647 -:1024700063E070E00E949D2D84830F900F900F9079 -:10248000DF91CF911F910F910895CF93DF9300D0EB -:102490000F92CDB7DEB79091E30290FF0AC09E0184 -:1024A0002F5F3F4F0E9422064B8169818A810E94E3 -:1024B000ED110F900F900F90DF91CF910895CF9372 -:1024C000DF93EC01E3EEF2E0438162818C810E94B4 -:1024D00045128C818F5F8C83DF91CF910895CF93CC -:1024E000DF93EC01EC81F0E0E553FC4F4491E3EE27 -:1024F000F2E0628181810E9445128C818F5F8C8322 -:10250000DF91CF910895CF92DF92EF92FF926B010E -:102510007C010E940C06B701A60188E090E0FF90C4 -:10252000EF90DF90CF900C945D2EAF92BF92CF9240 -:10253000DF92EF92FF920F931F93CF93DF9300D020 -:102540000F92CDB7DEB7182FF62E042FE22E909102 -:10255000E30290FF29C0E92FE695AE2FB0E0AC561C -:10256000BE4F8C91809389029E7F923059F59E01D7 -:102570002F5F3F4F812F0E9422064B8169818A8104 -:102580000E94ED111093E402F092E5020093E6023E -:10259000EE2051F06091E3027091E4028091E50237 -:1025A0009091E6020E9483120F900F900F90DF919E -:1025B000CF911F910F91FF90EF90DF90CF90BF9040 -:1025C000AF900895823019F40091E602DBCF863097 -:1025D00019F41091E402D6CF8930D9F3893191F6FC -:1025E000E9518E2F8170D82EE695F0E0E655FC4F2C -:1025F000A590B490C12CBB2460911C01C61618F0A4 -:102600000E94450FBFCF2C2D30E0A29EC001A39E9B -:10261000900DB29E900D112470E00E94892D812FA3 -:10262000D11013C0860F40911A01420F532F511D34 -:102630009A01220F331F240F351F21573D4F402F82 -:102640006F2D0E942206C394D7CF861BECCFE3EEFA -:10265000F2E0438128E0421B08F440E021E062817F -:1026600081810C949512E3EEF2E0438128E0420F61 -:1026700008F44FEF21E0628181810C949512E3EE22 -:10268000F2E0628128E0621B08F460E021E043810F -:1026900081810C949512E3EEF2E0628128E0620FF2 -:1026A00008F46FEF21E0438181810C949512E3EEF1 -:1026B000F2E0818121E04381628188500C9495127F -:1026C000E3EEF2E0818121E043816281885F0C9436 -:1026D00095128091E702882319F081508093E702D8 -:1026E0006091E3027091E4028091E5029091E6022C -:1026F0000C9483128091E702833018F48F5F8093EB -:10270000E7026091E3027091E4028091E50290910A -:10271000E6020C9483129091E30290FF36C0917010 -:10272000811129C092609093E302662351F0609179 -:10273000E3027091E4028091E5029091E6020E942A -:1027400083126091E302669570E04BE050E08AE00E -:1027500091E00E941D2E892BA9F010928A0281E03F -:102760008093860220E04091E6026091E50280912C -:10277000E4020C949512853210F09864D4CF880F3F -:10278000982BD1CF0E942F0FEACF089560E00C94D0 -:102790008B1321E030E0A90102C0440F551F8A9538 -:1027A000E2F7CA0120918B02662391F0822B80937D -:1027B0008B0280918A02811105C08091E302869587 -:1027C0000E94C6138091E30280FD05C00C94450F62 -:1027D00080958223ECCF08950F931F93CF93DF93BF -:1027E000EC0161E0009709F0682F617080E00E94C1 -:1027F000C91360E0209721F0BE017695679561705E -:1028000081E00E94C91360E0209731F0BE01769507 -:10281000679576956795617082E00E94C91360E0C4 -:10282000209739F0BE0113E0769567951A95E1F788 -:10283000617083E00E94C91360E0209739F0BE0107 -:10284000B4E076956795BA95E1F7617084E00E94EF -:10285000C913AE0170E060E0BB27A72F962F852F2C -:102860000097A105B105D9F1AC01BD0188E08A014D -:102870009B01F4E03695279517950795FA95D1F7C2 -:10288000011511052105310519F08C5FB901A80169 -:102890008A019B01E2E03695279517950795EA9501 -:1028A000D1F7011511052105310519F08E5FB90128 -:1028B000A8017695679557954795452B462B472B4D -:1028C00009F08F5F823019F160F4882399F081302C -:1028D000C1F0CE01DF91CF911F910F91089580E05B -:1028E000C6CF8330C9F08430A1F720E044E66FEF13 -:1028F0008FE004C020E044E66FEF82E30E9495126F -:10290000E8CF20E044E66FEF85E00E94951220E0DA -:1029100044E66FEF80E8F2CF20E044E66FEF87ED0A -:10292000EDCF0E94EC1390939903809398030C943D -:10293000E20A80919803909199039C0126703327B5 -:102940002630310519F488600C949114877FFCCFF0 -:1029500021E030E002C0220F331F8A95E2F7209574 -:1029600030958091980390919903822393230C943E -:102970009114909142028095892380934202282FDE -:10298000277039F4282F082E000C330B92171306EA -:1029900021F49091640392FF07C0859585958595F4 -:1029A0000E94A81410924202089521E030E002C073 -:1029B000220F331F8A95E2F7809198039091990333 -:1029C000822B932B0C9491148091E3028695815075 -:1029D00009F484E261E00C948B138091E302869504 -:1029E0008F5F853208F081E061E00C948B13909149 -:1029F000E30290FF07C09695981720F0961710F401 -:102A00000C94ED1461E00C948B13E3EEF2E083E0A0 +:100AE0000895089580916E0308959C014FB7F8947E +:100AF0008091620390916303A0916403B0916503B8 +:100B00004FBF821B930B08952FB7F8948091620317 +:100B100090916303A0916403B09165032FBF089582 +:100B200020915F03309160032817390771F090938B +:100B3000600380935F03E0915D03F0915E03309763 +:100B400021F00084F185E02D0994089520915B0344 +:100B500030915C032817390771F090935C03809300 +:100B60005B03E0915D03F0915E03309721F0068016 +:100B7000F781E02D09940895E0915D03F0915E0303 +:100B8000309721F00190F081E02D099480E00895E4 +:100B9000DC016091570380915803962F891301C09F +:100BA0000895292F30E0F901EE0FFF1FE15BFC4FA4 +:100BB000408151814A175B07A1F487E08A9FA00119 +:100BC0008B9F500D1124415E5E4F81E0FA018483BA +:100BD0009613E6CF2F5F3F4F2370332720935703A1 +:100BE00008952F5F3F4F922F9370D8CF1092EC0251 +:100BF0001092EB02EFE1F1E08581811102C01482D5 +:100C00001682379681E0E934F807B1F70895FA01C2 +:100C1000811101C0FB01099408958091E602982F8B +:100C20009E7F61F4817082608093E6028091E90288 +:100C3000853B18F084EB8093E90208958A34B0F381 +:100C400081708864F1CFAF92BF92DF92EF92FF92F2 +:100C50000F931F93CF93DF93182F062FE901453B86 +:100C600008F044EBE42FF0E0E655FD4F011110C011 +:100C7000E4915E2F4E2F4983E8835A83DF91CF9111 +:100C80001F910F91FF90EF90DF90BF90AF9008956C +:100C9000202F30E04491D42EE42EF12C56E0159F05 +:100CA000C0011124EFEFF0E0BF010E94E72D812F7A +:100CB00090E0880F991F55E5569FD001579FB00DC2 +:100CC00011248A1B9B0B982F990F890F5F01A21A81 +:100CD000B30AAE9CD001AF9CB00DBE9CB00D1124E8 +:100CE0005B2F089F80011124012F11275F01A01A9B +:100CF000B10AAE9C8001AF9C100DBE9C100D11245A +:100D00005F01A81AB108A29EC001A39E900DB29ED9 +:100D1000900D1124892F9927E81BF90BEE9DC00136 +:100D2000EF9D900DFE9D900D1124E92F623071050D +:100D3000A1F050F46115710509F49DCF6130710582 +:100D400081F0EB2F512F97CF6430710569F080F05F +:100D50006630710509F48FCFF4CFE42F4B2F592F54 +:100D60008ACFE42F412F87CFEB2F542F492F83CFEA +:100D70004B2F5D2DE12F7FCF0E9484059C01909128 +:100D8000810280918202982B21F030937E02209381 +:100D90007D029091830280918402982B21F0309300 +:100DA0007C0220937B02E0915D03F0915E0330971B +:100DB00049F082E080937F020480F581E02D8FE787 +:100DC00092E00994089540918102803F59F4809106 +:100DD000820287FF0DC01092820241110BC0109257 +:100DE000790208C0813F81F48091820218169CF339 +:100DF000442381F08091830290918402892B09F031 +:100E00005AC0109278020895823F49F447FFF0CF0C +:100E100010928102809182028111ECCFE0CF833F5A +:100E200019F41416ACF3E4CF90918302893F29F4AE +:100E30001916F4F610928302DBCF8A3F19F497FF5C +:100E4000D7CFF8CF909184028B3F29F497FFD0CF72 +:100E500010928402CDCF8C3F19F41916CCF3C8CF71 +:100E60009CE0980F953090F4845F990B21E030E07E +:100E7000B90102C0660F771F8A95E2F7CB01809512 +:100E800090918002892380938002B2CF8D3F31F40C +:100E900080917A028E7F80937A02AACF8E3F21F4CE +:100EA00080917A028D7FF7CF8F3F09F0A1CF80919B +:100EB0007A028B7FF0CF089580917A0280FD16C070 +:100EC00081FD16C082FD16C0809178028823A1F0B2 +:100ED000883280F428E0829FC001112468E270E02B +:100EE0000E94FB2D862F672B39F0089582E008952C +:100EF00084E0089588E0089581E0089580917A0261 +:100F000080FD14C081FD14C082FD16C0809179025D +:100F1000882381F0843180F422E3829FC001112470 +:100F200064E170E00E94FB2D862F08958CE0089507 +:100F300089E1089585E0089582E30895803F31F4C2 +:100F40000E947E078195809382020895813F19F463 +:100F50000E947E07F8CF823F31F40E947E07819580 +:100F6000809381020895833F19F40E947E07F8CF91 +:100F7000893F29F40E945C078093830208958A3F89 +:100F800021F40E945C078195F7CF8B3F31F40E94DA +:100F90005C0781958093840208958C3F19F40E9428 +:100FA0005C07F8CF9CE0980F953070F4845F990B44 +:100FB00021E030E001C0220F8A95EAF7809180029B +:100FC000822B8093800208958D3F31F480917A02C4 +:100FD000816080937A0208958E3F21F480917A0295 +:100FE0008260F7CF8F3FB9F780917A028460F1CFAA +:100FF00080E00895F894E82FE295EF70F0E031A1D9 +:10100000282F2F7081E090E001C0880F2A95EAF721 +:10101000982F9095932391A392A1892B82A37894E2 +:1010200008959091660392FF06C0282F28712830FA +:10103000F9F4877F846093FF06C0282F2871283138 +:10104000F1F4877E84612091670320FF06C0382F6A +:1010500038713830D9F4877F816021FF06C0282F8E +:1010600028712831D1F4877E816194FD877E0895AF +:10107000282F24712430F9F68B7F8860DCCF282F4D +:101080002471243101F78B7E8861DDCF382F3171D7 +:10109000313019F78E7F8860E0CF282F2171213100 +:1010A00021F78E7E8861E1CFCF93DF93EC01823808 +:1010B0009105A9F1D8F58133910509F496C048F559 +:1010C0008932910509F48AC08A9709F495C0C1153F +:1010D00021E5D20708F0BCC0C11530E5D30708F000 +:1010E00014C1C83ED10508F09CC0C03ED10560F5D2 +:1010F000C83AD10508F087C0C53AD10508F0FDC04F +:10110000C130D10509F12097F9F0C430D105E0F4E0 +:1011100040C08533910509F45AC0C997C1F6809142 +:101120006603837089F0C0EED0E00EC0833E910567 +:1011300099F170F4803E910501F1823E910539F6F6 +:101140008091660382FD21C0CE01DF91CF91089589 +:10115000863E910561F1873E910571F1843E9105CE +:1011600009F0B5CF8091670381FFEECF80916603D0 +:10117000C7EED0E084FD0DC0E7CF8091660380FD0F +:1011800012C19091670390FFDFCFC3EED0E084FFE0 +:10119000DBCFD0E0C0E0D8CF8091660382FD06C1EE +:1011A0009091670390FDBFCF84FFCECFF2CF8091A7 +:1011B000660383FDDDCFC8CF8091660383FDF9C050 +:1011C0009091670391FFF0CFC4EED0E0BDCF809146 +:1011D000660385FFB9CFC9E2D0E0B6CF8091660340 +:1011E00085FFB2CFC5E3D0E0AFCF8091660386FF25 +:1011F000ABCFCAE2D0E0A8CF8091660386FFA4CF30 +:10120000C1E3D0E0A1CFCF3BD10518F6C85AD0E05A +:10121000CC0FDD1FC25BDE4F0990D881C02DD46496 +:1012200093CFC11540E2D40758F4C11581E0D80727 +:1012300008F08ACFC03FD10508F4ABCFD06584CF8A +:10124000C11590E4D90708F4A4CFDF70D06A7CCF31 +:10125000C11525E5D20700F5C11534E5D30708F01F +:101260008AC0C11543E5D40708F071C0C11582E5F5 +:10127000D80708F467C0CE018370992721E030E0D9 +:1012800002C0220F331F8A95E2F7C695C69580E209 +:10129000C89FE001112452C0C11599E5D907A8F4EF +:1012A000C11528E5D20708F06BC0C11536E5D30794 +:1012B00008F06FCF8C2F0E941108C82FD0E0DC2FD0 +:1012C000CC27CC27DF71D0623FCFC1154AE5D407C8 +:1012D00008F45BC0CE0190568115904208F059CFBA +:1012E0008D2F8F710E94110890E0982F88278827F2 +:1012F0009F719C012C2BE901E6CFC55AD0E0C55B5C +:10130000DE4FC881D0E0D0641FCFCE01E4E09695D7 +:101310008795EA95E1F783702C2F26952695237003 +:1013200040E2249F90011124382B8C2F8370C1E060 +:10133000D0E002C0CC0FDD1F8A95E2F7C22BD32B81 +:10134000DC6802CFDC2FCC27C16FD06AFDCECE0186 +:101350008370992721E030E002C0220F331F8A9565 +:10136000E2F7C695C69590E2C99FE0011124C22B11 +:10137000D32BDA68E9CEDC2FCC27C46FD06AE4CE59 +:10138000DC2FCC27C06FD06ADFCE8C2F8F700E94ED +:10139000110834E0D695C7953A95E1F7CF709C2FA8 +:1013A000EC01D069D1CEC9E3D0E0CECEC2EED0E020 +:1013B000CBCEC6EED0E0C8CE80914802811110920B +:1013C00048020895809590916C03982390936C0344 +:1013D000089580916C0390914702892B9091460269 +:1013E000892B8093CC01909148029923A1F0892BFD +:1013F0008093CC0180914A01882341F1809166035A +:1014000087FF24C08EE1EEECF1E090E0815000F522 +:1014100091110E94DC09E0915D03F0915E03309729 +:10142000E1F080914A01882359F08091660387FF9B +:1014300007C08091CC018093CD0186E08093CC01E0 +:101440000280F381E02D8CEC91E0099486E0DBCF03 +:1014500021912223D9F29F5FD9CF089590914A011B +:101460009923D1F09091660397FF16C0E82FE69577 +:10147000E695E695EE31E0F4F0E0E453FE4F282FD8 +:10148000277081E090E001C0880F2A95EAF78095E7 +:101490009281892382830895EEECF1E09191891382 +:1014A00003C0DF0111971C9291E0E43DF907B1F709 +:1014B000089590914A019923C1F09091660397FF96 +:1014C00014C0E82FE695E695E695EE31F8F4F0E0E5 +:1014D000E453FE4F877021E030E001C0220F8A956F +:1014E000EAF78281822B82830895AEECB1E0EFEFC0 +:1014F00090E02D91821751F0EF3F19F4211101C0B6 +:10150000E92F9F5F9630A9F7EF3F09F408950E2E5B +:10151000000CFF0BE453FE4FE6CF80914402909104 +:101520000302981301C008958F5F8770FACF990F57 +:10153000990F890F982F977086958695869524E048 +:10154000829FF0011124E151FE4F50E040E080E025 +:10155000219130E0092E02C0369527950A94E2F7D2 +:1015600021703327042E01C0220F0A94EAF7822B40 +:101570004F5F5F4F4430510559F70895990F990F08 +:10158000890F982F977041E001C0440F9A95EAF7B0 +:1015900086958695869594E0899FF0011124E15106 +:1015A000FE4F30E020E070E05191DF011197CB0158 +:1015B000022E02C0969587950A94E2F78170819574 +:1015C0008527842385278C932F5F3F4F2430310557 +:1015D00059F7089590E080E00E94A60590E080E031 +:1015E0000E94900510924702109246020E94E9095B +:1015F00086E0EFE7F2E0DF011D928A95E9F71092AD +:1016000079021092780210927A020C94BC069093A0 +:101610004A02809349020C94EA0A882341F080959B +:10162000909147028923809347020C94E909089519 +:10163000882339F090914702982B909347020C949D +:10164000E9090895882321F00E94E2090C94E90930 +:101650000895882339F090916C03982B90936C0334 +:101660000C94E9090895882309F452C0823871F472 +:101670000E94BC0581FF4CC089E30E94590A0E9468 +:10168000E90989E30E942E0A0C94E909833859F488 +:101690000E94BC0580FF3CC083E50E94590A0E945D +:1016A000E90983E5EFCF843859F40E94BC0582FF35 +:1016B0002FC087E40E94590A0E94E90987E4E2CF1B +:1016C0009CEF980F913AF0F290E2980F983050F416 +:1016D000877091E001C0990F8A95EAF7892F0E94DF +:1016E000E209D2CF9BE5980F933020F490E080E0A0 +:1016F0000C94A60598E5980F973120F490E080E0CF +:101700000C949005803F20F00E94E3060C94BC06E8 +:101710000895809580FF08C0589A81FF07C05D9AA0 +:1017200082FF06C05C9A08955898F7CF5D98F8CF6D +:101730005C9808958093680370936A0360936903CB +:10174000809191038430F9F48093E9008FEF9091B8 +:10175000E800815095FD06C095ED9A95F1F70000DF +:101760008111F5CF8091E80085FF0DC050E040E089 +:1017700063E070E088E693E00E9437048091E8001F +:101780008E778093E8000895BC0184E00C949A0B56 +:10179000BC0183E00C949A0B9C0184E08093E900E7 +:1017A0009FEF8091E800915085FD06C085ED8A95F8 +:1017B000F1F700009111F5CF8091E80085FF0CC092 +:1017C00050E040E066E070E0C9010E94370480917B +:1017D000E8008E778093E8000895CF93DF93EC01C3 +:1017E00080914A018823B1F18091660387FF32C05E +:1017F00060E284E08093E9008FEF9091E8008150EF +:1018000095FD06C095ED9A95F1F700008111F5CF91 +:101810008091E80085FF1BC080914A0170E050E094 +:1018200040E0811104C050E040E068E070E0CE018B +:101830000E9437048091E8008E778093E80080E270 +:10184000FE01AFE6B3E001900D928A95E1F7DF91DA +:10185000CF91089568E081E0CDCF81E08093E000F2 +:1018600080E28093D8001092C9008FE19EE4019736 +:10187000F1F700C0000087E090EBDC0180939D034E +:1018800090939E03A0939F03B093A00388E19CE0F4 +:101890000FB6F894A895809360000FBE90936000F7 +:1018A000FFCFCF93C82F882309F4AEC08238C1F48C +:1018B0000E94BC0581FDA8C089E30E94590A0E94CC +:1018C000E9092FEF81EE94E0215080409040E1F74C +:1018D00000C0000089E30E942E0ACF910C94E90910 +:1018E0008338A1F40E94BC0580FD8EC083E50E9470 +:1018F000590A0E94E9092FEF81EE94E021508040BF +:101900009040E1F700C0000083E5E5CF8438A1F402 +:101910000E94BC0582FD78C087E40E94590A0E949B +:10192000E9092FEF81EE94E0215080409040E1F7EB +:1019300000C0000087E4CFCF8CEF8C0F813A88F590 +:1019400080914A01882301F18091660387FF1CC0C2 +:10195000EC2FE695E695E695F0E0E453FE4F8281A4 +:1019600090E04C2F477021E030E002C0220F331F7F +:101970004A95E2F782239323892B79F08C2F0E94DA +:101980002E0A0E94E90909C0EEECF1E08191C81726 +:10199000A9F321E0E43DF207C9F78C2F0E94590A10 +:1019A0009CCF80E28C0F883068F4C77021E030E073 +:1019B00001C0220FCA95EAF780916C03822B8093B5 +:1019C0006C038BCFEBE5EC0FE33040F4F0E0E55B2C +:1019D000FE4F808190E0CF910C94A605E8E5EC0FD6 +:1019E000E73150F4F0E0EE0FFF1FE25BFE4F808125 +:1019F0009181CF910C949005C03F30F08C2F0E94C4 +:101A00009E07CF910C94BC06CF9108951F93CF935E +:101A1000DF93182FCAE0D0E0893311F4C0E5D0E09D +:101A2000812F0E94510C8FE99FE00197F1F700C0D0 +:101A300000002197C1F7812FDF91CF911F910C9466 +:101A4000330BDF92EF92FF920F931F93CF93DF93AD +:101A5000E82FF0E0E85EFD4FD490282F26952695DC +:101A6000269530E0F901E85FFD4F0491877010E0A2 +:101A7000082E02C0159507950A94E2F70170112708 +:101A8000F901E850FE4FE490F12C082E02C0F594C5 +:101A9000E7940A94E2F791E0E922FF24F901E85182 +:101AA000FE4FC491D0E002C0D595C7958A95E2F764 +:101AB000C170DD270115110519F081EE0E94510C4E +:101AC000E114F10419F086EE0E94510C8D2D0E9454 +:101AD000060DEF2819F086EE0E94330B012B19F04A +:101AE00081EE0E94330BCD2B51F08CE2DF91CF9130 +:101AF0001F910F91FF90EF90DF900C94060DDF91F6 +:101B0000CF911F910F91FF90EF90DF900895CF93A9 +:101B1000DF93C7E0D2E060E0CE010E94A92E2196BB +:101B2000C11584E0D807B9F7DF91CF9108956F927E +:101B30007F928F929F92AF92BF92CF92DF92EF925D +:101B4000FF920F931F93CF93DF938BECC82E84E00B +:101B5000D82E0FE510E0E801E09736011CC0F50132 +:101B600085909490692DC7010E94A92E682DC70108 +:101B700001960E94A92E82E0A80EB11C82E0E80E18 +:101B8000F11CCE15DF0559F788E0680E711C289608 +:101B90000C171D0731F07E0188E0E81AF1085301A7 +:101BA000DECF005D1F4F80E3C80ED11C0F3382E0F3 +:101BB000180789F6DF91CF911F910F91FF90EF9059 +:101BC000DF90CF90BF90AF909F908F907F906F905D +:101BD0000895CF93C82F6FEF811161E283E290E007 +:101BE0000E94A92E6FEFC11161E184E290E00E9492 +:101BF000A92E6FEFC11168E285E290E0CF910C94BD +:101C0000A92E80E00E94E90D60E086E290E00E944B +:101C1000A92E0E94970D0E94870D81E00C94E90D7A +:101C20000F931F93CF93DF9328E0629FE00111246D +:101C300050E0440F551FC40FD51F30E3839FC00DE4 +:101C4000D11D1124CE0187960E94952E082F10E0F9 +:101C5000102F0027CE0188960E94952E9801282BE0 +:101C6000C901DF91CF911F910F910895462F8A30BE +:101C700038F4763028F4643018F4672F0C94100E82 +:101C800090E080E00895BF92CF92DF92EF92FF92B2 +:101C90000F931F93CF93DF937C0100919B031091CF +:101CA0009C038091490290914A02082B192BCFE0A6 +:101CB000D0E0CC24C394D12CBC2EC6010C2E02C083 +:101CC000880F991F0A94E2F780239123892B71F4DE +:101CD000219790F7B12C8B2DDF91CF911F910F9110 +:101CE000FF90EF90DF90CF90BF900895B7018C2FB9 +:101CF0000E94360E0E945408019751F3ECCFCF9307 +:101D0000DF93EC010E94430EBE010E94360EDF916C +:101D1000CF910C945408FC0186819781009779F04B +:101D20000E945408292F2F7092959F7092509E30D8 +:101D3000A0F4E92FF0E0E152F14D0C94312E8081B6 +:101D400091810E947F0EEECF803F19F020F4883EF3 +:101D500020F481E00895843FE1F380E00895883E17 +:101D6000C0F3813FD1F7F5CF822F86958695869572 +:101D700008951F93CF93DF9300D000D00F92CDB77B +:101D8000DEB7FC01268137812115310541F525E0BB +:101D9000DE01119601900D922A95E1F7FC01228156 +:101DA00089819A812223B9F06623A9F00E94430E0B +:101DB000182F682F89819A810E94BE0A69817A81D1 +:101DC000812F0F900F900F900F900F90DF91CF9178 +:101DD0001F910C94360E0E94970A182FEFCFC9015D +:101DE0000F900F900F900F900F90DF91CF911F9158 +:101DF000089583E290E00E94952E813289F484E276 +:101E000090E00E94952E813159F485E290E00E9485 +:101E1000952E91E0883209F090E0892F8170089525 +:101E200080E0FCCF6091E602669570E04BE050E008 +:101E30008CE091E00E947B2E892B19F481E0809345 +:101E40008D020E94840590938702809386020895F4 +:101E5000CF92DF92EF920F931F93CF93DF93CDB783 +:101E6000DEB7C455D1090FB6F894DEBF0FBECDBFA3 +:101E700060911B018091E60280FF4CC0EFEAF3E025 +:101E80009E012F5F3F4F8E010B5A1F4FC901A49136 +:101E90004A2F50E0DA01AA0FBB1FA40FB51FAE56A0 +:101EA000BD4FCD90DD90EC90D901CD92DD92ED92B9 +:101EB0009D0131960A171B0751F720911A0143E043 +:101EC000249F800D911D1124279A25B12F7735B1BC +:101ED00030685FB7F894FC01649FE00DF11D112498 +:101EE000BF016817790749F55FBFEFE5F4E0319767 +:101EF000F1F700C00000CC5ADF4F0FB6F894DEBFF8 +:101F00000FBECDBFDF91CF911F910F91EF90DF906A +:101F1000CF90089580911C0190911D0123E0829F34 +:101F2000F0011124EE56FD4F891708F0A7CF11825A +:101F3000108212828F5F3396F7CFDC014D91CD0175 +:101F4000E8E035B9000000C047FF25B9440F0000A4 +:101F500000C000C000C025B900C0EA9591F7C1CF0C +:101F60000F931F93CF93DF93EC0110E000E090916B +:101F70001E019017110609F06CF40E94280F8C8145 +:101F800090E00196817099278C83DF91CF911F910A +:101F90000F91089520911C01A801420F511D9A0133 +:101FA000220F331F240F351F2E563D4F4C81609159 +:101FB000E8028091E70296959017110651F04CF0D7 +:101FC000442349F04091E9020E9423060F5F1F4F0E +:101FD000CECF4423B9F340E0F7CF8F929F92AF92D8 +:101FE000BF92CF92DF92EF92FF920F931F93CF9306 +:101FF000DF93EC014C81042F10E09801D8010E947E +:10200000462E9B01AC010E945C2E4B015C01E0E27C +:10201000F0E0E01BF10BA5E5B0E0AC019B010E94F4 +:102020005C2E6B017C019F01DF010E943E2E9B0113 +:10203000AC010E94672E9B01AC01280D391D4A1D81 +:102040005B1DC701B6010E940F2EF22E822F90E079 +:1020500039E23F1560F143E0249F9001112435954A +:102060002795122F109500E085E5E82EEF18809156 +:102070001E01081758F10E94280F9C8181E09923C6 +:1020800019F0903219F48FEF8093190180911901A2 +:10209000890F8C83DF91CF911F910F91FF90EF906B +:1020A000DF90CF90BF90AF909F908F90089525E5DF +:1020B00030E0B901681B790B9B01220F331F260FFB +:1020C000371F37FFCCCF2F5F3F4FC9CF8E2D01FD7C +:1020D0008F2D20911C01622F600F7727771F9B01A6 +:1020E000220F331F260F371F2E563D4F412F609171 +:1020F000E8020E9423060F5FBACF0F931F93CF937E +:10210000DF9380911C0190911D0123E0829FF001DB +:102110001124EE56FD4F891740F1C0E0D3E06091E5 +:102120001E01C61740F10E94280F209117018091CF +:102130009002820F8093900290911801920F9093D9 +:102140001801191654F4082E000C990B40911E0129 +:102150004150550B841795071CF0219520931701CA +:10216000DF91CF911F910F910895118210821282F9 +:102170008F5F3396D0CF0C2F10E070E0C8010E9423 +:10218000FB2D20911C01820F482F50E020919002DE +:10219000022E000C330B02171307BCF0209118011C +:1021A000022E000C330B201731077CF08D9F90011D +:1021B00011242E563D4F4091E9026091E802809132 +:1021C000E7020E942306CF5FAACFFA01EE0FFF1F9E +:1021D000E40FF51FEE56FD4F118210821282F3CFED +:1021E0009F92AF92BF92CF92DF92EF92FF920F93A6 +:1021F0001F93CF93DF93FC0182810FEF80FF01E0FB +:1022000010E04CE1942EA0901E011A15D0F00E940F +:10221000280F80918F02013009F054C0811102C053 +:1022200080911E01815080938F02DF91CF911F9189 +:102230000F91FF90EF90DF90CF90BF90AF909F9065 +:102240000895C0911C01C12ED12CCC0DDD2DD11DC6 +:10225000CE01880F991FC80FD91FCE56DD4F1982A6 +:1022600018821A8234E0E32EF12CB12C80918F0277 +:102270008B0D8D311CF1692D0E94D92D892F082ECF +:10228000000C990BC816D90691F48091E9028E9D35 +:10229000A0018F9D500D1124559547955595479553 +:1022A0009E016091E8028091E7020E942306B00E31 +:1022B000F1E0EF1AF108D1F61F5FA5CF87FFDFCF5E +:1022C0008A0DDDCF90E0019660911E0170E00E94C2 +:1022D000FB2DA9CFEF92FF921F93CF93DF93EC01D9 +:1022E00010E0EE24EA94F12C60911E01161770F0B4 +:1022F0000E94280F9A818C8190FF27C08F5F8C836A +:10230000DF91CF911F91FF90EF90089520911C01D4 +:10231000422F410F5527551FCA019A01220F331F23 +:10232000280F391F2E563D4F70E0C7010E94FB2D2C +:10233000962F8C814091E9026091E802199F800DEF +:1023400011240E9423061F5FCFCF8150D8CF1F9347 +:10235000CF93DF9300D00F92CDB7DEB7122F9091BD +:10236000E60290FF16C09E012F5F3F4F0E9423069A +:102370008B819981212F30E0F901EE0FFF1FE20FD1 +:10238000F31FEE56FD4F2A812183908382830E94A2 +:10239000280F0F900F900F90DF91CF911F9108950C +:1023A0009091E60290FF14C090911C0120911D01B4 +:1023B00033E0939FF0011124EE56FD4F921710F079 +:1023C0000C94280F8183608342839F5F3396F6CFFE +:1023D00008950F931F93CF93DF9300D00F92CDB743 +:1023E000DEB78C018091910281110AC09E012F5F9E +:1023F0003F4F44EB6FEF0E9423068A818093910246 +:10240000F8016481613069F08091910240E06623B7 +:1024100061F040E0623011F44091910280E060E0B0 +:1024200004C06091910240E080E00E94D011F80168 +:10243000848190E0019663E070E00E94FB2D84832C +:102440000F900F900F90DF91CF911F910F910895F2 +:10245000CF93DF9300D00F92CDB7DEB79091E60215 +:1024600090FF0AC09E012F5F3F4F0E9423064B81C1 +:1024700069818A810E94D0110F900F900F90DF9197 +:10248000CF910895CF93DF93EC01E6EEF2E0438124 +:1024900062818C810E9428128C818F5F8C83DF91F6 +:1024A000CF910895CF93DF93EC01EC81F0E0E553F9 +:1024B000FC4F4491E6EEF2E0628181810E94281295 +:1024C0008C818F5F8C83DF91CF910895CF92DF92C3 +:1024D000EF92FF926B017C010E940D06B701A601ED +:1024E00088E090E0FF90EF90DF90CF900C94BB2EAF +:1024F000AF92BF92CF92DF92EF92FF920F931F9312 +:10250000CF93DF9300D00F92CDB7DEB7182FF62E02 +:10251000042FE22E9091E60290FF29C0E92FE69564 +:10252000AE2FB0E0AA56BE4F8C9180938C029E7F56 +:10253000923059F59E012F5F3F4F812F0E94230655 +:102540004B8169818A810E94D0111093E702F09239 +:10255000E8020093E902EE2051F06091E6027091EA +:10256000E7028091E8029091E9020E9466120F90C2 +:102570000F900F90DF91CF911F910F91FF90EF90EF +:10258000DF90CF90BF90AF900895823019F4009102 +:10259000E902DBCF863019F41091E702D6CF8930FB +:1025A000D9F3893191F6E9518E2F8170D82EE695B5 +:1025B000F0E0E655FC4FA590B490C12CBB2460918F +:1025C0001E01C61618F00E94280FBFCF2C2D30E038 +:1025D000A29EC001A39E900DB29E900D112470E0AA +:1025E0000E94E72D812FD11013C0860F40911C014E +:1025F000420F532F511D9A01220F331F240F351FF5 +:102600002E563D4F402F6F2D0E942306C394D7CFE7 +:10261000861BECCFE6EEF2E0438128E0421B08F493 +:1026200040E021E0628181810C947812E6EEF2E0D4 +:10263000438128E0420F08F44FEF21E0628181815D +:102640000C947812E6EEF2E0628128E0621B08F456 +:1026500060E021E0438181810C947812E6EEF2E0A3 +:10266000628128E0620F08F46FEF21E043818181ED +:102670000C947812E6EEF2E0818121E043816281E0 +:1026800088500C947812E6EEF2E0818121E04381DB +:102690006281885F0C9478128091EA02882319F095 +:1026A00081508093EA026091E6027091E702809186 +:1026B000E8029091E9020C9466128091EA0283305C +:1026C00018F48F5F8093EA026091E6027091E7024E +:1026D0008091E8029091E9020C9466129091E602D2 +:1026E00090FF36C09170811129C092609093E602EC +:1026F000662351F06091E6027091E7028091E80252 +:102700009091E9020E9466126091E602669570E07F +:102710004BE050E08CE091E00E947B2E892BA9F0E9 +:1027200010928D0281E08093890220E04091E902BD +:102730006091E8028091E7020C947812853210F0E3 +:102740009864D4CF880F982BD1CF0E94120FEACF74 +:10275000089560E00C946E1321E030E0A90102C0FE +:10276000440F551F8A95E2F7CA0120918E02662315 +:1027700091F0822B80938E0280918D02811105C091 +:102780008091E60286950E94A9138091E60280FD61 +:1027900005C00C94280F80958223ECCF08950F93E9 +:1027A0001F93CF93DF93EC0161E0009709F0682F4E +:1027B000617080E00E94AC1360E0209721F0BE01C0 +:1027C00076956795617081E00E94AC1360E0209778 +:1027D00031F0BE017695679576956795617082E0D8 +:1027E0000E94AC1360E0209739F0BE0113E07695AB +:1027F00067951A95E1F7617083E00E94AC1360E081 +:10280000209739F0BE01B4E076956795BA95E1F767 +:10281000617084E00E94AC13AE0170E060E0BB2701 +:10282000A72F962F852F0097A105B105D9F1AC01EF +:10283000BD0188E08A019B01F4E036952795179544 +:102840000795FA95D1F7011511052105310519F004 +:102850008C5FB901A8018A019B01E2E036952795BA +:1028600017950795EA95D1F7011511052105310551 +:1028700019F08E5FB901A801769567955795479530 +:10288000452B462B472B09F08F5F823019F160F4FE +:10289000882399F08130C1F0CE01DF91CF911F9153 +:1028A0000F91089580E0C6CF8330C9F08430A1F73E +:1028B00020E044E66FEF8FE004C020E044E66FEFD5 +:1028C00082E30E947812E8CF20E044E66FEF85E0D3 +:1028D0000E94781220E044E66FEF80E8F2CF20E01B +:1028E00044E66FEF87EDEDCF0E94CF1390939C03EA +:1028F00080939B030C94EA0A80919B0390919C0324 +:102900009C01267033272630310519F488600C9419 +:102910007414877FFCCF21E030E002C0220F331F08 +:102920008A95E2F72095309580919B0390919C03C6 +:10293000822393230C9474149091450280958923EB +:1029400080934502282F277091F4282F082E000C21 +:10295000330B9217130659F09091670392FD07C04D +:102960008595859585950E948B1410924502089552 +:10297000CF93C0916703C2FB992790F9981799F0FC +:1029800080FBC2F9C09367036091660384E090E026 +:102990000E94A92E6C2F82E290E00E94A92E82E074 +:1029A000CF910C949C14CF91089521E030E002C0A7 +:1029B000220F331F8A95E2F780919B0390919C032D +:1029C000822B932B0C9474148091E602869581508F +:1029D00009F484E261E00C946E138091E60286951E +:1029E0008F5F853208F081E061E00C946E13909166 +:1029F000E60290FF07C09695981720F0961710F4FE +:102A00000C94ED1461E00C946E13E6EEF2E083E0BA :102A1000808311828FEF828388E2838314826081B6 -:102A20007181828193810C94831269EE7EEF90E034 -:102A300080E00E94692E60E082E090E00E944B2ED0 -:102A400060E083E090E00E944B2E109247021092CB -:102A5000460260E084E090E00E944B2E60E082E25B -:102A600090E00E944B2E60E085E090E00E944B2EAB -:102A700060E086E090E00E944B2E6FEF87E090E0F0 -:102A80000E944B2E40E050E0BA0188E090E00E94A6 -:102A90005D2E60E08DE090E00E944B2E40E050E023 -:102AA000BA0188E190E00E945D2E60E087E190E04D -:102AB0000E944B2E40E050E0BA018CE190E00E9471 -:102AC0005D2E70E060E080E290E00E94692E40E0C0 -:102AD00050E0BA0188E190E00E945D2E80E00E9403 -:102AE000EC0D0E94040E40E050E0BA018FE090E04F -:102AF0000E945D2E40E050E0BA0183E190E00C942A -:102B00005D2E90E080E00E94452E893E9E4F11F49C -:102B10000C94160F80E0089580914801ECECF1E0F0 -:102B2000882359F08091630387FF07C08EE1DF019E -:102B30001D928A95E9F70C94E20A86E0F8CF9F92FD -:102B4000AF92BF92CF92DF92EF92FF920F931F93BB -:102B5000CF93DF9300D000D0CDB7DEB77C01FC016E -:102B600083819481892B31F08081918189238F3FEA -:102B700009F001C60F900F900F900F90DF91CF9149 -:102B80001F910F91FF90EF90DF90CF90BF90AF908B -:102B90009F900895980122513F452031310508F05A -:102BA000DFC58FEF93E00E94372E025167E0C62EFB -:102BB00062E0D62E882339F1809142028770D1F2EB -:102BC000F70182818823B1F282E00F900F900F907D -:102BD0000F90DF91CF911F910F91FF90EF90DF90B9 -:102BE000CF90BF90AF909F900C94B914C114F4E0B3 -:102BF000DF0611F3C6010E94372E811101C001507A -:102C00002FEFC21AD20A0111F1CF1C821B82BB2402 -:102C1000B3945AE0A52E86010F5F1F4FC6010E9494 -:102C2000372E89831A82882339F29FEF980F9330C9 -:102C300008F58A83B98232E0C30ED11CC8010E9414 -:102C4000372E8B83882309F4B7CF8E010F5F1F4F78 -:102C5000F80180818823F9F2813009F043C0918125 -:102C60008281913049F40E5F1F4F0E94090D0F5F62 -:102C70001F4FEECF6801E9CF923029F40E5F1F4F4E -:102C80000E94540CF4CF933029F40E5F1F4F0E9422 -:102C90002F0BEDCF943019F00F5F1F4FE8CF0E5F71 -:102CA0001F4F30E020E0B8016F5F7F4FF801418196 -:102CB0008053990B8A30910550F021503109B8F2B8 -:102CC0008FE99FE00197F1F700C00000F6CFA29EC8 -:102CD000F001A39EF00D11249C012E0F3F1F842FA5 -:102CE0008B01E1CF0E94240DC2CF81E00E94D51458 -:102CF0000E94991461CF81E00E94A814F9CF82E06C -:102D0000FBCF882309F404C180915702811106C0CA -:102D100081E08093570282EE0E94540C0E9483054A -:102D200090935602809355028BE20E94540CF70157 -:102D30008281882369F0C801815E9C45059740F433 -:102D40006FE1600F609358028CE090E00E944B2E80 -:102D500017FF5EC0F7018281882309F459C00E94E1 -:102D6000BB05869581708093EB019091580291305C -:102D700029F4882319F089E30E94090D80916903E1 -:102D80008093EA011092690380915802813009F41E -:102D9000A8C1882309F4A1C1823009F4B5C18430E7 -:102DA00009F4B9C1EFE3FCE93197F1F700C0000085 -:102DB0005801E894B7F84CE0C42ED12CC5010C2C76 -:102DC00002C0969587950A94E2F78F7096EF980F58 -:102DD000963008F4A5C1805D0E94240DF4E0CF1A5E -:102DE000D1082CEFC2162FEFD20641F7809158027E -:102DF000813009F49BC1882309F494C1823009F41D -:102E000091C1843009F49EC18091EA0180936903E5 -:102E1000F7018281882369F18091690382720C3CF9 -:102E2000FCE51F0709F441C208F0C1C1063C3CE5BE -:102E3000130709F426C208F098C1033CECE51E070D -:102E400009F415C208F080C1023C2CE5120709F410 -:102E5000E7C10A358DE5180709F465C208F03FC2DD -:102E60000115ECE51E0709F44CC20E3D1C4509F4A2 -:102E700057C2F70186819781009709F458C20E94D2 -:102E800053088C01F701D280C580C2943FE0C32271 -:102E9000809142028770A1F0AD2CDD2091F0812F4E -:102EA000807F803421F080E2800F883048F082E01B -:102EB0000E94B914809142028770AA24A3948111C0 -:102EC000A12C912E92942FE09222FBE0F91508F4A8 -:102ED0007BC2E92DF0E0E157F14D0C94D32D88230E -:102EE000A1F080915702811106C081E080935702C2 -:102EF00082EE0E94540C0E948305909356028093A8 -:102F0000550281EE0E94540C0FCF81EE0E942F0BD0 -:102F10008BE20E942F0B0BCF882309F408CF81EEA0 -:102F20000E94540C83EE0E94540C8FE40E94540CB7 -:102F30008FE40E942F0B83EE0E942F0B81EEE9CFCE -:102F4000882309F4F4CE81EE0E94540C83EE0E9493 -:102F5000540C80E50E94540C80E5EBCF882309F4E3 -:102F60002BCE1091540281E01827109354020E9436 -:102F7000830590935302809352021123C9F028E1F4 -:102F800048E76FEF8FE00E94C41129E148E76FEF37 -:102F90008FE00E94C4112AE148E76FEF8FE00E94A2 -:102FA000C4112BE148E76FEF8FE00E94C41104CEFB -:102FB00010921A018CE180931B0180931C0181E225 -:102FC0000E94C613F9CD882309F4B1CE80EE0E9489 -:102FD000540C81EE0E94540C80E10E94540C80E15C -:102FE0000E942F0B81EE0E942F0B80EE0E942F0B70 -:102FF00080914B0291E022E148E76FEF89278093AF -:103000004B02882351F08FE00E94C41126E148E76B -:103010006FEF8FE00E94C4118ACE8FEA0E94C41124 -:1030200026E148E76FEF8FEAF5CF882309F4C4CD96 -:103030001091510201E01027109351020E94830564 -:1030400090934F0280934E028091500210921A0189 -:10305000882319F18CE180931B0180931C0181E28C -:103060000E94C61328E044E666EE80E00E94C41188 -:1030700029E044E666EE80E00E94C4112DE044E6BB -:1030800066EE80E00E94C41100935102109250023B -:1030900010924D0210924C028FCD8CE180931B0157 -:1030A00080931C0181E21123A9F00E94C61328E03D -:1030B00044E666EE80E00E94C41129E044E666EE34 -:1030C00080E00E94C4112DE044E666EE80E00E949C -:1030D000C411DCCF0E94C613D9CF82EE0E94540CDB -:1030E00061CE83E00E94100B88E10E94540C8FE3B4 -:1030F0009CE90197F1F700C0000088E10E942F0BC6 -:1031000083E00E94050B4ECE82EE0E94540C87E5B0 -:103110000E94090D47CE86EE0E94090D88E1F8CF86 -:10312000895A5ACE82EE0E942F0B6ECE8CE20E94FC -:10313000090D8091EB01882309F466CE89E30E9492 -:10314000090D62CE88E2FBCF043C3CE5130709F48D -:1031500093C047E553E160E673E1053C9CE5190740 -:1031600009F077CE0E94060627CD093CECE51E0744 -:1031700009F491C070F4073C2CE5120709F486C0ED -:103180004BE453E16FE373E1083C3CE5130751F373 -:1031900060CE0A3C9CE5190709F482C049E653E178 -:1031A0006AE773E10B3CECE51E07E1F252CE013D0C -:1031B000FCE51F0709F487C0B0F40E3C3CE513079B -:1031C00009F47BC008F476C00F3C9CE5190709F4AC -:1031D00077C06EE089E0003DECE51E0709F039CECE -:1031E0000E94F714E9CC043DFCE51F0709F471C007 -:1031F00068F4023D3CE5130709F468C0033D8CE523 -:10320000180709F026CE61E088E12EC0053D9CE557 -:10321000190709F461C00D35100709F4CDCC19CE9A -:103220008091E30280FF1BC08E7F8093E302609158 -:10323000E3027091E4028091E5029091E6020E941F -:10324000831210928A02FFEF20E732E0F150204013 -:103250003040E1F700C000000E94450FADCC816016 -:103260008093E30261E086950E948B13A5CC44EE27 -:1032700054E16DEE74E176CF4DEE54E164EE74E10D -:1032800071CF40E653E167E573E16CCF4FE353E163 -:103290006BE473E167CF47E253E163E373E162CF2D -:1032A00043E353E167E273E15DCF4AE753E169E647 -:1032B00073E158CF61E081E0D7CF65E082E090CF45 -:1032C00068E086E08DCF64E18FE08ACF67E185E139 -:1032D00087CF62E289E184CF61E083E2C5CF0B351D -:1032E0002DE5120711F10C351D4509F0C2CD809175 -:1032F000640382FB882780F991E089270E94130EDE -:10330000B8CD109269030E948C158FEF94E3ECE026 -:1033100081509040E040E1F700C000000E94300C76 -:103320000E94151549CC81E0E9CF80E0E7CF82818A -:1033300000811181882369F0C8010E94600ED82E97 -:10334000682FC8010E94B60AB8018D2D0E94530E45 -:1033500096CDC8010E948F0AD82EF6CF212F2F704C -:10336000C22E107F19F0C29490EFC922DD20C9F05F -:10337000CC2069F080E2800F883010F001110BC082 -:1033800080916903C82AC09269030E94E109802FD5 -:103390000E94540C19C080914402C82AC092440271 -:1033A000F4CF802F0E942F0BCC2071F0C09480E2CC -:1033B000800F883010F001113BC080916903C82252 -:1033C000C09269030E94E109292D2850330B243053 -:1033D000310520F40E94BB050E948C0BAA20A9F0A5 -:1033E0008091420280FD11C0F7011282859585957A -:1033F00085950E94D514C7010E949F1580914202B5 -:103400008595859585950E94A81460E0C7010F9069 -:103410000F900F900F90DF91CF911F910F91FF9020 -:10342000EF90DF90CF90BF90AF909F900C94D60E0E -:1034300080914402C822C0924402C4CF312F3F7011 -:10344000B32E107F103219F0B29480EFB82200230F -:1034500069F0013081F1DD20D9F1CC2091F1F70143 -:10346000858180FF94CF8F7085832BC0DD20B1F0E4 -:1034700090914502892F8B29C11003C00E94250B12 -:10348000A3CFE1E0CE12FACF2091640322FD9CCFBE -:10349000981709F499CF8093450296CFC11006C0C2 -:1034A0000E94DB098B2D0E941A0B8ECFF1E0CF1604 -:1034B00009F48ACFF5CFDD2031F022E02C1508F495 -:1034C00083CF8B2DDBCF31E03C1508F47DCFEACFE5 -:1034D000CC2041F3093369F4FFEF27EE33E0F150DC -:1034E00020403040E1F700C00000802F0E942F0BE9 -:1034F0006BCF8FE39CE90197F1F7F5CF812F86958C -:103500008695837061F0813009F05ECFC8019370B9 -:10351000D11002C090E080E00E948F0555CFC80115 -:103520009370D11002C090E080E00E94A5054CCFBE -:10353000802FDD2029F00E949D070E94BB0644CF0A -:103540000E94E206FACF812F837009F03FC0D110AC -:103550003BCF402F429546954770440F440F802F34 -:103560008F7090E0042E02C0880F991F0A94E2F732 -:1035700030E020E004FF09C02FE030E002C0220F5D -:10358000331F4A95E2F720953095169516951370DE -:10359000123099F078F44091460250914702113070 -:1035A00039F0822B932B842395230E94FF0A0CCFA2 -:1035B000842B952B822B932BF8CF822B932B20914E -:1035C00046023091470282279327EFCF8695DD2070 -:1035D00011F0812F8170882309F4F6CE402F429597 -:1035E00046954770440F440F802F8F7090E0042E53 -:1035F00002C0880F991F0A94E2F730E020E004FF30 -:1036000009C02FE030E002C0220F331F4A95E2F7D5 -:1036100020953095169516951370123099F078F420 -:103620004091980350919903113039F0822B932BDC -:10363000842395230E949114C7CE842B952B822B33 -:10364000932BF8CF822B932B2091980330919903E1 -:1036500082279327EFCF1F70DD2029F0812F0E9452 -:10366000D514802F0BCF802F0E941A0B812F0E9420 -:10367000A814AACE023F09F441C060F4003F11F142 -:10368000013FA1F1DD2009F457C0C11080CE812F88 -:103690008F7131C0033FB9F1043FA1F7DD2009F478 -:1036A00040C01F71812F0E94D5148091640382FD58 -:1036B00007C0F8E01F9FC00111248360809342027D -:1036C000812F19C0DD2069F091E09C1508F47CCEB3 -:1036D0001F7181E090E002C0880F991F1A95E2F7F0 -:1036E000B3CFE2E0EC1508F46FCEF2CF812F8F71EB -:1036F000DD2009F4BCCF0E94D51466CE812F8F71D6 -:10370000DD20C9F3B4CF90E080E0DD2009F492CF52 -:103710001F7181E090E002C0880F991F1A95E2F7AF -:1037200089CF81E00E94B91421E02C1508F04CCE1D -:1037300082E00E94B91448CECC2079F0093341F4DC -:103740003FEF87EE93E0315080409040E1F7CBCEE1 -:10375000EFE3FCE93197F1F7C6CE812F8F7187CF68 -:1037600000313FE5130709F4C0CA01319FE519078D -:10377000A9F482E0BBCA61E0C7010E94D60E8C01A9 -:10378000F7018281811106CA0031FFE51F0709F4A4 -:10379000B2CA01312FE5120709F4B1CAF801E058A5 -:1037A000FF45E730F10508F0C2CAE556F14D0C942B -:1037B000D32DCF93DF938091FD01807FA1F4809181 -:1037C000FA01882381F080914102D091000260913A -:1037D000F8017091F901A091FB01B091FC01C62F95 -:1037E000C723D81303C0DF91CF91089590E01097BD -:1037F00011F0CF3F19F401968770F3CF9C0143E09D -:10380000220F331F4A95E1F7F901EF5FFD4F418128 -:103810004713F1CF40814613EECF42814111EBCFE8 -:10382000438154814A1B5B0B403A510520F780913C -:10383000FD018F7080618093FD01F901EA5FFD4F0A -:1038400080818F708061808388EF91E00E949F1556 -:10385000DF91CF910C94850AAF92BF92CF92DF9205 -:10386000EF92FF920F931F93CF93DF93CDB7DEB705 -:1038700065970FB6F894DEBF0FBECDBF8C0185E013 -:10388000F801DE01519601900D928A95E1F7F80159 -:10389000E28068EFA62E61E0B62E6091FB01709188 -:1038A000FC016115710509F468C19091F80140911E -:1038B000F901892F84238F3F09F45FC12081318171 -:1038C000C380D480F090FA01F601E61BF70BFF20CD -:1038D00009F41DC18091FD01582F507FE03AF10598 -:1038E00008F0D0C0511181C0FE2C43132BC092139D -:1038F00029C06091FE017091FF01F8014681578156 -:1039000064177507F9F4E1101DC08F708061809312 -:10391000FD01C5010E949F158091FD01F80185837D -:103920008F2D65960FB6F894DEBF0FBECDBFDF9129 -:10393000CF911F910F91FF90EF90DF90CF90BF90AC -:10394000AF900895CD2829F0822F83238F3F09F06F -:103950002FC180E0F82FF170DF2E80FF3CC08091F6 -:10396000410240910002841315C0298B3A8B89894A -:103970009A890E949C0E292F22952F702230F8F0F0 -:10398000243020F59F70F9F0F8019581907FD9F4EB -:10399000D12C1FC090E0FC0153E0EE0FFF1F5A95A1 -:1039A000E1F7EF5FFD4F5181351306C050812513BC -:1039B00003C05281E5120FC001968770D4CF9F706B -:1039C00011F0882329F3805E883010F3C8010E942B -:1039D0009F15FD2CA5CFEE2009F4A2CF8091FD010B -:1039E00081608093FD01F12C9BCF43131BC0921388 -:1039F00019C04091FE015091FF01F80126813781E5 -:103A00004217530779F4E1100DC08583C8010E9465 -:103A10009F1588E0F801A8EFB1E001900D928A951A -:103A2000E1F77ECFC8010E94A80E882339F1EE206D -:103A300029F18091FD018032A0F02091F8013091B0 -:103A4000F9013A8729871B86DD86CC868E8780918F -:103A5000FE019091FF01988B8F87CE0109960E94FD -:103A60009F1588E0F801A8EFB1E001900D928A95CA -:103A7000E1F70E94D91BFF24F39452CFC8010E94A2 -:103A80009F15F9CF51110AC088EF91E00E949F1550 -:103A900088E0F50111928A95E9F7A5CF431318C084 -:103AA000921316C04091FE015091FF01F80126814A -:103AB00037814217530761F4E1100AC08583C801BA -:103AC0000E949F1588E0F50111928A95E9F728CFA9 -:103AD000C8010E94A80E882389F2EE2079F2809115 -:103AE000FD01803208F4BDCF2091F8013091F90139 -:103AF0003A8329831B82DD82CC828E838091FE01F2 -:103B00009091FF0198878F83CE010196A8CFE03A6C -:103B1000F105C0F6FE2CEE2009F4B0CF43131FC010 -:103B200092131DC02091FE013091FF01F8018681A2 -:103B300097812817390799F49091FD0190FD69CF7D -:103B4000907F09F466CF8091FD018583903F09F451 -:103B50005DCF982F907F905F8F70892B56CFC801D3 -:103B60000E94A80E81117DCF8091FD01816080931C -:103B7000FD01C8010E949F15D3CEEE2009F47ECF2F -:103B8000C8010E94A80EF82E882309F477CF88E098 -:103B9000F801A8EFB1E001900D928A95E1F78091CC -:103BA000F8019091F9010E949C0E0E94D91BB8CE99 -:103BB00081E08E25CFCE1F93CF93DF93CDB7DEB7B5 -:103BC000AA970FB6F894DEBF0FBECDBF80E993E091 -:103BD0002091F100DC012D93CD01B3E088399B07E2 -:103BE000B9F780919103833009F471C0B8F4813042 -:103BF00009F448C0823009F4B4C08091E80083FF22 -:103C00003CC180919003909191039A3008F035C1A6 -:103C1000E92FF0E0EE55F14D0C94D32D8A3009F4E4 -:103C20008FC08B3009F470C0893039F780919003D0 -:103C3000813219F78091940390919503009711F0C8 -:103C40000297D9F68091E800877F8093E800809101 -:103C5000E80082FF37C09091F3008091F200029754 -:103C600029F48091F1008B7F813021F48091F10063 -:103C700080936B038091E8008B778093E8000E942B -:103C80006104BBCF80919003813A09F0B6CF809157 -:103C9000E800877F8093E8008091940390919503DA -:103CA000892B61F460E28CE693E070E00E941305DA -:103CB0008091E8008B778093E8009FCF60E090E0F0 -:103CC00080E0F3CF80918E038111C1CF96CF809198 -:103CD0009003813A09F091CF8091940390919503DC -:103CE000892B09F08ACF8091E800877F8093E800D4 -:103CF0008091E80080FFFCCF809148018093F10023 -:103D00008091E8008E77B9CF80919003813209F0DD -:103D100074CF8091940390919503892B09F06DCF16 -:103D20008091E800877F8093E8000E946104809181 -:103D3000920380934801109269030E948C155DCF15 -:103D400080919003813209F058CF8091E800877FFD -:103D50008093E8000E9461048091930380936A033A -:103D60004CCF80919003813A09F047CF8091E800D1 -:103D7000877F8093E8008091E80080FFFCCF8091EE -:103D80006A03BCCF803899F0823809F076C0809100 -:103D900094038F70873008F070C08093E9008091A1 -:103DA000EB0085FB882780F91092E90006C080911E -:103DB0008C0390918D03911182609091E800977F20 -:103DC0009093E8008093F1001092F1008091E80058 -:103DD0008E77B5C1882309F4A2C1823009F04DC0A5 -:103DE000809192038111A6C1809194038F702FEF6F -:103DF000280F263008F041C08093E9002091EB00A5 -:103E000020FF98C1933031F48091EB008062809361 -:103E1000EB0090C19091EB0090619093EB0021E05A -:103E200030E001C0220F8A95EAF72093EA00109251 -:103E3000EA008091EB008860EACF81111EC01091EA -:103E400092031F778091E3008078812B8093E300B9 -:103E50008091E800877F8093E8000E946104809150 -:103E6000E80080FFFCCF8091E30080688093E3004E -:103E700082E0111183E080938E038091E80083FF3C -:103E80000AC08091E800877F8093E8008091EB0072 -:103E900080628093EB00AA960FB6F894DEBF0FBE47 -:103EA000CDBFDF91CF911F9108958058823028F7C0 -:103EB00020919203309193032C3DE3E03E07A1F55E -:103EC00083E08A838AE289834FB7F894DE011396F0 -:103ED00020E03EE051E2E32FF0E050935700E49100 -:103EE00020FF03C0E295EF703F5FEF708E2F90E0F0 -:103EF000EA30C0F0C7968D939D932F5F243159F718 -:103F00004FBF8091E800877F8093E8006AE270E00D -:103F1000CE0101960E9413058091E8008B77809373 -:103F2000E800ABCFC096E7CF8091940390919503C2 -:103F3000432F55274330510509F44AC078F54130E5 -:103F4000510509F47AC08BE590E0EBEAF6E04230E7 -:103F5000510509F092CF2091E800277F2093E800D7 -:103F600020919603309197038217930708F49C01E0 -:103F700040E02115310509F065C0411163C0809111 -:103F8000E80082FDC9CF80918E03882329F2853015 -:103F900019F28091E80083FFF2CFBECF4132510584 -:103FA00009F43CC04232510509F067CF83309105D6 -:103FB00008F063CFFC01EE0FFF1FE454FE4F0190A9 -:103FC000F081E02D87549E4FDC018C9190E01AC067 -:103FD000332721303105D1F02115310561F0223030 -:103FE000310509F04ACFE8E1F7E0E4918E2F90E047 -:103FF000E8E1F7E007C0E8E3F7E0E4918E2F90E016 -:10400000E8E3F7E0009709F438CFA5CFE4E2F7E062 -:10401000E4918E2F90E0E4E2F7E0F4CF8330910555 -:1040200008F02BCF880F991FFC01EE53FE4F019033 -:10403000F081E02D89E090E08ECF82E190E0E6E033 -:10404000F7E089CF80918E03882309F465CF85300E -:1040500009F462CF8091E80083FD5ECF8091E80093 -:1040600082FD8DCF8091E80080FF83CF9091F30097 -:104070008091F2002115310519F08830910550F03A -:1040800041E0089709F040E08091E8008E77809346 -:10409000E8006FCF44914093F100319621503109EF -:1040A0000196E8CF803809F0E8CE8091E800877F5C -:1040B0008093E80080918F038093F10087CE811177 -:1040C000DCCE10919203123008F0D7CE8091E80038 -:1040D000877F8093E80010938F030E94610411236F -:1040E00011F084E005C08091E30087FDFACF81E004 -:1040F00080938E0342E061EC81E00E94800442E202 -:1041000061EC84E00E94800442E261EC82E00E9463 -:10411000800442E260EC83E00E948004AECE809195 -:104120009203813009F0A9CE81E0933009F080E05C -:1041300080938D031092E9008091E800877F80933F -:10414000E8000E94610499CECF93DF93CDB7DEB72C -:1041500060970FB6F894DEBF0FBECDBF29873A87B0 -:104160004B875C876D877E878F87988BCE010996FA -:104170000E942C1C811112C088E0FE013996DE01DC -:10418000119601900D928A95E1F78C859D85892B7A -:1041900029F089859A8589238F3FA9F5809141026D -:1041A0009091000289131CC060960FB6F894DEBF90 -:1041B0000FBECDBFDF91CF91089593E0AA0FBB1F33 -:1041C0009A95E1F7AF5FBD4F98E0FE0131960190FF -:1041D0000D929A95E1F7809300020E94850ADECF46 -:1041E000B8E08B9FC00111248F5F9D4F0E942C1C53 -:1041F0008823D1F28091410290E00196877099273F -:1042000080934102CBCFA0910002B0E0CD01019696 -:1042100087709927209141022817190671F610928C -:1042200069030E948C15109200021092410288E0EE -:10423000E8EFF1E0DF011D928A95E9F7AFCF0F9328 -:104240001F93CF93DF938091EB02E091EA02CCE0E1 -:1042500081111AC0DF91CF911F910F910895D1E084 -:10426000DE0FD093EA020E2F10E0EC9FF001112434 -:10427000E451FD4F83819481892B29F080819181C4 -:1042800089238F3F51F4ED2F8091EB02E81738F32B -:104290001092EB021092EA02DDCFC09FD001C19FC5 -:1042A000B00D1124A451BD4F16968D919C91179776 -:1042B000892B29F418968D919C91019651F42081B7 -:1042C00031814281538164817581868197810E9409 -:1042D000A420C09FF001C19FF00D1124E451FD4FB7 -:1042E00014821382D0CF109257031092560310926B -:1042F000470180915503809354030E94F5050C9467 -:104300001F212F923F924F925F926F927F928F92D6 -:104310009F92AF92BF92CF92DF92EF92FF920F9354 -:104320001F93CF93DF93C0915403E7E0FE2E01E08B -:1043300010E0FCE02F2EAEEFEA2E809155038C1397 -:1043400016C00E941F21DF91CF911F910F91FF9006 -:10435000EF90DF90CF90BF90AF909F908F907F9025 -:104360006F905F904F903F902F900C94F505D0E0A8 -:10437000FE01EE0FFF1FE45BFC4F80819181F89EF0 -:10438000F001F99EF00D1124E35EFE4F248121110E -:1043900058C03090EB02ACEEB2E030E020E0412CAF -:1043A0005F01231508F04BC01A966D907C901B9707 -:1043B000F501808091804FEF5FEF512CC52CD12CFF -:1043C000F601EE0FFF1FE80DF91D65917491661659 -:1043D000770609F4A601672B11F05394EFCF4F3FF6 -:1043E0005407B1F1B80102C0660F771F4A95E2F792 -:1043F000462AA80102C0440F551F5A94E2F74150C3 -:1044000051094416150601F5229EF001239EF00D78 -:104410001124E451FD4FF89ED001F99EB00D1124F6 -:10442000A35EBE4F12962D913C911397378326833E -:10443000E082E1829187808771E015967C930E94EB -:10444000C7052196C37079CF14961C921E921397BC -:104450002F5F3F4F1C96A5CF9F92AF92BF92CF92F6 -:10446000DF92EF92FF920F931F93CF93DF9300D0D1 -:1044700000D000D0CDB7DEB78E010F5F1F4F86E0B2 -:10448000F80111928A95E9F78AE7C82E81E0D82EC3 -:10449000F12CE12CAA24A394B12CF60181916F0197 -:1044A0008F3F09F449C0F894E82FE295EF70F0E0EF -:1044B00021A18F70A50102C0440F551F8A95E2F714 -:1044C000CA01922F982B91A392A18095892382A350 -:1044D000789400C0E0E8F1E030E020E0912C4191D8 -:1044E0004F3F09F473C0A42FA295AF70B0E090962F -:1044F0008C9190E04F7002C0959587954A95E2F7B0 -:1045000080FD64C08A2D022E01C0880F0A94EAF74C -:10451000982A2F5F3F4F2430310509F7F601319774 -:1045200080818F3F11F00E94F90750EA5A95F1F708 -:10453000F801EE0DFF1D90828FEFE81AF80AE6E011 -:10454000EE16F10409F0A9CF46E050E0B8018CE581 -:1045500092E00E942A2EFF24F394009709F4F12C94 -:10456000892BB1F186E0F801ACE5B2E001900D9243 -:104570008A95E1F781E080934A020E948305909337 -:1045800049028093480280914802909149020E941A -:104590007405059708F180915C0280936F02809109 -:1045A0005D028093700280915E028093710280911F -:1045B0005F02809372028091600280937302809107 -:1045C00061028093740210924A0206C080E0A0CF7C -:1045D00080914A028111D7CF80914701882301F150 -:1045E00080915603909157030097D1F00E94740573 -:1045F0002091E8023091E9022817390788F4909158 -:10460000540380915503981709F47EC00E948121BC -:104610001092E9021092E80210925703109256038A -:1046200080915702882371F0809155029091560233 -:104630000E947405893E934028F082EE0E942F0B61 -:104640001092570280915402882391F08091520277 -:10465000909153020E947405883E934048F00E9456 -:104660008305909353028093520283E70E94090DC1 -:104670008091500290915102992309F44EC081110A -:1046800030C080914E0290914F020E947405813695 -:104690009A4E78F080914C0290914D020196909341 -:1046A0004D0280934C020E94830590934F028093A9 -:1046B0004E0280914C0290914D024F9708F45CC0DD -:1046C00010921A018CE180931B0180931C018FE0F2 -:1046D0000E94C61381E08093500210924D02109206 -:1046E0004C028F2D26960FB6F894DEBF0FBECDBFBD -:1046F000DF91CF911F910F91FF90EF90DF90CF90BE -:10470000BF90AF909F9008950E941F211092570371 -:10471000109256030E94F50583CF8111E2CF80915C -:104720004B02882361F022E148E76FEF8FE00E949F -:10473000C41126E148E76FEF8FE00E94C411809119 -:104740005402882371F228E148E76FEF8FE00E945E -:10475000C41129E148E76FEF8FE00E94C4112AE1FC -:1047600048E76FEF8FE00E94C4112BE148E76FEF3D -:104770008FE00E94C411B5CF28E044E666EE80E0E9 -:104780000E94C41129E044E666EE80E00E94C41154 -:104790002DE044E666EE80E00E94C411C0CF2F9267 -:1047A0003F924F925F926F927F928F929F92AF92C1 -:1047B000BF92CF92DF92EF92FF920F931F93CF930E -:1047C000DF93CDB7DEB769970FB6F894DEBF0FBEA3 -:1047D000CDBF498B5A8B6B8B7C8B8D8B611110926B -:1047E00044021D861E861F86188A85E0FE0171968A -:1047F000DE01199601900D928A95E1F78C859D85D1 -:10480000892B31F089859A8589238F3F09F0D4C19E -:1048100029853A854B855C856D857E858F85988950 -:104820000E94A420C3C028EFC2162CE5D20629F4AA -:10483000882379F00E947321EBCF39EFC3163CE552 -:10484000D30639F4882329F0809147018111F2CFF2 -:10485000C3C10DE111E0E12CB12CA12C882483947B -:10486000912C9EEF592E44244394F801608171816C -:1048700066246A94762C20E0422F50E0FA01EE0F75 -:10488000FF1FE60FF71F85919491C816D90609F40A -:104890003A01892B11F02F5FEFCFF12CFFEF6F164C -:1048A0007F0609F445C0F8014481F09047018F2D3F -:1048B000411180E0F82FF170FF2EF80125808681EC -:1048C0009B85992309F408C1FF2009F405C1211033 -:1048D00014C0A40101C0440F6A94EAF7842B8683B4 -:1048E0008091E8029091E9028039914030F440E9EA -:1048F00051E05093E9024093E802C40102C0880FDE -:10490000991F2A95E2F70197F801268128171906C1 -:1049100079F48091560390915703009709F45FC092 -:104920000E9474058139914008F459C0F80144820D -:10493000EF28FFEFAF1ABF0A095F1F4F26E0A2164C -:10494000B10409F092CF8B85882309F420C1EE20B1 -:1049500009F41DC10E948305909357038093560369 -:104960008091EB02883010F591E0980F9093EB0264 -:1049700098E0FE013996DE01119601900D929A950C -:10498000E1F73CE0839FC001112484519D4F28E052 -:10499000FE013196DC0101900D922A95E1F72FEF8F -:1049A0003FEFFC0131872087D386C28669960FB618 -:1049B000F894DEBF0FBECDBFDF91CF911F910F9155 -:1049C000FF90EF90DF90CF90BF90AF909F908F902F -:1049D0007F906F905F904F903F902F9008958091BF -:1049E000540360905503982FF0E0E0E0861114C066 -:1049F000909354030E171F0709F49ACF90E0FC011F -:104A0000EE0FFF1FE45BFC4FB182A0820196837022 -:104A10009927809355038CCF282E312CF101EE0F6E -:104A2000FF1FE45BFC4F20813181F7E0F29FD00152 -:104A3000F39FB00D1124A35EBE4F2D913C911197B1 -:104A4000398F288F712C60E070E0E72FF0E0EE0FD7 -:104A5000FF1F288D398DE20FF31F25913491211509 -:104A60003105E1F0F8010190F081E02DFF8BEE8B34 -:104A700060E005C02417350709F47F2C6F5FE62F2F -:104A8000F0E0EE0FFF1F4E895F89E40FF51F45919F -:104A900054914115510571F77F5FD7CF7720C9F049 -:104AA000F801671708F0FD0144820E171F0721F473 -:104AB00090935403F72C3CCF981305C0AE17BF0753 -:104AC00011F49F5F937091012F5F3F4F822F83708E -:104AD0008DCFF0E0E0E0F7CF90E021101FC0B401EF -:104AE00002C0660F771F2A95E2F79B01215031091A -:104AF0002817390731F4442309F447C0C5010E943F -:104B0000C705C40101C0880F6A94EAF7982F9095F1 -:104B1000F801868189238683F22C0ACF9C01062C1A -:104B200002C0359527950A94E2F7A90141705527EF -:104B3000BC016150710986239723892B11F5452B00 -:104B400001F1F80182819381892BC1F01B821C82C3 -:104B50001D821E8259825A820E9483058160582FCD -:104B60009D838C83F801828193818F83988729812B -:104B70003A814B816D817E810E94A420F8011582CB -:104B8000C0CFF22FF1702F2EBCCF2F2CBACF909127 -:104B9000540380915503981731F00E948121EE2033 -:104BA00009F436CE03CF0E941F21109257031092B2 -:104BB00056030E94F505F3CF61E0CE0109960E94ED -:104BC000D60E6C018B85F7EFCF16FCE5DF0609F0FA -:104BD0002ACE882309F43DCE81E08093470118CE88 -:104BE0001F920F920FB60F9211242F933F934F9362 -:104BF0005F936F937F938F939F93AF93BF93CF9365 -:104C0000DF93EF93FF93D091E900DF708091EC0088 -:104C1000C82FC17080FDC0E81092E9008091F000BB -:104C2000877F8093F00078940E94DB1D1092E9004A -:104C30008091F00088608093F000CD2BCF70C093FE -:104C4000E900FF91EF91DF91CF91BF91AF919F91DB -:104C50008F917F916F915F914F913F912F910F9025 -:104C60000FBE0F901F9018951F920F920FB60F92C4 -:104C700011242F933F934F935F936F937F938F9361 -:104C80009F93AF93BF93EF93FF938091E10082FFD7 -:104C900009C08091E20082FF05C08091E1008B7F16 -:104CA0008093E1008091DA0080FF24C08091D800D9 -:104CB00080FF20C08091DA008E7F8093DA0080919F -:104CC000D90080FF9BC080E189BD82E189BD09B424 -:104CD00000FEFDCF81E080938E03809168038111F7 -:104CE00009C00E94E7030E94B2048091E200846040 -:104CF0008093E2008091E10080FF17C08091E20084 -:104D000080FF13C08091E2008E7F8093E20080914B -:104D1000E20080618093E2008091D80080628093FD -:104D2000D80019BC85E080938E038091E10084FF58 -:104D300029C08091E20084FF25C080E189BD82E125 -:104D400089BD89B5982F917080FFFBCF8091D800E5 -:104D50008F7D8093D8008091E1008F7E8093E10069 -:104D60008091E2008F7E8093E2008091E20081607A -:104D70008093E20080918F03882309F445C084E08A -:104D800080938E038091E10083FF27C08091E20031 -:104D900083FF23C08091E100877F8093E10082E060 -:104DA00080938E0310928F038091E1008E7F809319 -:104DB000E1008091E2008E7F8093E2008091E2002A -:104DC00080618093E20042E060E080E00E94800425 -:104DD0008091F00088608093F000FF91EF91BF9187 -:104DE000AF919F918F917F916F915F914F913F9183 -:104DF0002F910F900FBE0F901F90189519BC109215 -:104E00008E031092680376CF8091E30087FD93E0D4 -:104E100090938E03B7CF78941F921FB61F921124E0 -:104E20008F939F93AF93BF9380915F0390916003A3 -:104E3000A0916103B09162030196A11DB11D809301 -:104E40005F0390936003A0936103B0936203BF91EB -:104E5000AF919F918F911F901FBE1F9018951F9229 -:104E60001FB61F9211248F939F93AF93BF9380918E -:104E70005E03811113C080915F0390916003A09144 -:104E80006103B09162034196A11DB11D80935F0340 -:104E900090936003A0936103B0936203BF91AF91BD -:104EA0009F918F911F901FBE1F901895CDB7DEB7B1 -:104EB000EE970FB6F894DEBF0FBECDBF84B7877FE5 -:104EC00084BF0FB6F894A8958091600088618093A4 -:104ED0006000109260000FBE80E890E00FB6F8947A -:104EE00080936100909361000FBE85B7806885BF95 -:104EF00085B7806885BF87EF97E09093C90180935D -:104F0000C8010E94E7030E94B2048091E20084601D -:104F10008093E200789480918E038823A1F0109111 -:104F2000E9001F709091EC00892F817090FD80E85E -:104F3000182B1092E9008091E80083FD0E94DB1D90 -:104F40001F701093E90082E084BD93E095BD9AEF55 -:104F500097BD80936E000E94160F811102C00E94BF -:104F6000040E0AE711E020E8C22E21E0D22EF8015B -:104F700081918F018F3F11F00E94F907C016D10671 -:104F8000B1F786EF0E94F90787EF0E94F90783E9DE -:104F90000E94F90786E90E94F907ECE5F2E082E653 -:104FA00092E0AFE6B2E011921D928E179F07D9F7FB -:104FB0000E948115811102C00E94151582E090E0C7 -:104FC0000E94372E8093680284E090E00E94372E82 -:104FD000182F82E290E00E94372E982F812F909315 -:104FE0006403809363030E942C228FE39CE9019762 -:104FF000F1F700C000000E942C2280916F0280FF18 -:1050000008C06FEF7FEF90E080E00E94692E0E9461 -:10501000300C83E090E00E94372E90E00E94FF0A5F -:1050200080919803909199030E94EC13509A589A9A -:10503000559A5D9A549A5C9A8CE090E00E94372EC3 -:1050400090E0B0E0A0E08093580290935902A093C2 -:105050005A02B0935B0280916202811132C00E94B9 -:105060008115811104C00E9415150E94051588E064 -:1050700090E00E943F2E6093E3027093E4028093DD -:10508000E5029093E6026E7F71F40E94051588E0B8 -:1050900090E00E943F2E6093E3027093E4028093BD -:1050A000E5029093E6020E940C0610928A0280911B -:1050B000E30280FF03C086950E94C61381E08093BF -:1050C00062025198599A52985A9A89B1869581707C -:1050D0004A9931C290E0892B809366026091630304 -:1050E0006068609363031091640384E090E00E9421 -:1050F0004B2E612F82E290E00E944B2E81E20E94B3 -:10510000C61381E090E00E94911480E091E09093BA -:105110005B0380935A0318E1C12ED12C00E4A02E2A -:105120008FE692E096E0B92EB80E80918E03992416 -:10513000939400E112E1853009F451C20E942C22BF -:10514000882359F08FB7F89440915F035091600322 -:1051500060916103709162038FBFE9E6F2E0AFE610 -:10516000B2E010E000E0302F8D919191981709F492 -:1051700060C2292F282790E099249394422F492137 -:1051800009F452C29DAB3EAB892191E009F490E055 -:105190009FAB0E9483058160782F99AF88AF4DA99E -:1051A0005EA96FA989AD0E94CF23F801E759FD4F91 -:1051B00080819826908280918A028823D1F1809103 -:1051C0008902E091E302E695E81BE09385028230D4 -:1051D00009F046C2F0E0EA55FD4FE4910E2F10E0D1 -:1051E000BFE68B2EB2E19B2E80918602882361F070 -:1051F000109286020E94830590938402809383021A -:1052000010928802109287020E948305E091830227 -:10521000F09184028E1B9F0B8F3F9F4750F4E00F4D -:10522000F11FF0938402E093830283E892E0F4019B -:105230000995E0916602EE0FEE0FE093660289B1E8 -:1052400081FBEE24E0F84A9965C280E08E29E82BC4 -:10525000E0936602EF70F0E0EC57FE4F8081909192 -:105260006502890F8093650220E0843034F18091DB -:1052700064028F5F8093640212E018AB19AA81E088 -:105280008AAB0E9483058160782F9CAB8BAB48A9C9 -:1052900059A96AA98CA90E94CF231BA71CA61DA6E9 -:1052A0000E9483058160782F9FA78EA74BA55CA5E0 -:1052B0006DA58FA50E94CF2321E0809165028D3FCF -:1052C0002CF5809164028150809364021EA21FA27B -:1052D00081E088A70E9483058160782F9AA789A71B -:1052E0004EA15FA168A58AA50E94CF2319A21AA288 -:1052F0001BA20E9483058160782F9DA38CA349A1E6 -:105300005AA16BA18DA10E94CF2321E0809165025B -:10531000082E000C990B64E070E00E949D2D809394 -:105320006502222359F08FB7F89440915F035091A2 -:10533000600360916103709162038FBF86E0ECE7C8 -:10534000F2E0DE01119601900D928A95E1F79090BE -:105350007E0280907F021091800200918102109263 -:105360007E0210927F021092800210928102892D9B -:10537000882909F448C080917A0290917B020E94AA -:1053800074059C0190917602992309F4AFC32333ED -:105390003105C8F19F3F19F09F5F909376029920E5 -:1053A00059F00E947D079FEF19140CF491E0899F3A -:1053B000802D112480937E02882059F00E947D0761 -:1053C0009FEF18140CF491E0899F802D1124809395 -:1053D0007F0230917E023323B1F020917F0222239D -:1053E00091F045EB3403C0011124992309F495C1D0 -:1053F00090937E0245EB240390011124332309F49A -:1054000090C130937F02812F802B09F448C0809196 -:105410007802909179020E9474059C019091750226 -:10542000992309F45EC325363105C8F19F3F19F071 -:105430009F5F90937502112359F00E945B079FEFC5 -:1054400011160CF491E0899F802D11248093800225 -:10545000002359F00E945B079FEF10160CF491E0B7 -:10546000899F802D11248093810230918002332303 -:10547000B1F020918102222391F045EB3403C00169 -:105480001124992309F451C19093800245EB240320 -:1054900090011124332309F44CC13093810280918F -:1054A0007E0290917F02892B90918002892B9091AE -:1054B0008102892B11F00E94BB0686E0FE01319625 -:1054C000ACE7B2E001900D928A95E1F70E94BB052E -:1054D00090916702891731F00E94BB0580936702A3 -:1054E0000E948C0B80918E03843009F01ECE83E0E5 -:1054F0008093E9008091E80082FF17CE8091E80058 -:1055000090E085FF06C00E940604882309F415C1B7 -:1055100091E08091E8008B778093E800992309F46B -:1055200004CEE981E150E33108F089C1F0E0E455AF -:10553000F14D0C94D32D92E0CECD80918E0384302A -:1055400009F440C080E00E948C0B10928A02809186 -:105550008202811116C0909282028091E302982FFC -:105560009170909363028E7F8093E3029FEFE0E758 -:10557000F2E09150E040F040E1F700C000000E94EE -:10558000450F10925E030FB6F894A895C092600084 -:105590000FBEA092600083B7817F846083BF83B712 -:1055A000816083BF7894889583B78E7F83BF0FB661 -:1055B000F894A895809160008861809360001092B3 -:1055C00060000FBE80918D03882349F00E942C2239 -:1055D000EFE6F2E08191811163C2BE12FBCF8091B0 -:1055E0008E03853009F4A9CF109269030E948C15AF -:1055F0000E94BB050E948C0B109282028091630274 -:10560000882359F08091E30281608093E3028695BC -:105610000E94C6130E942F0F91CD80918B02882388 -:10562000C9F30E94450FF6CF9F5F990C943009F0A3 -:10563000A5CD0F5F1F4F0630110509F094CD8FEFF8 -:105640008AAF8BAF1CAE0E9483058160782F9EAF1E -:105650008DAF4AAD5BAD6CAD8EAD0E94CF23ABCDAF -:10566000863059F4F0E0ED55FD4FE4910E2F10E037 -:10567000AFE58A2EA2E19A2EB7CD893061F4E69586 -:10568000F0E0E056FD4FE4910E2F10E0F7E88F2E8A -:10569000F1E19F2EA9CD8F3061F4E695F0E0E3565D -:1056A000FD4FE4910E2F10E0EDE08E2EE1E19E2EF5 -:1056B0009BCD853159F4F0E0E656FD4FE4910E2F75 -:1056C00010E07AE9872E70E1972E8ECD08E210E087 -:1056D0004AE0842E40E1942E883109F485CD83324E -:1056E00049F4E8E9F2E00591149166E0862E62E162 -:1056F000962E7ACD04EF11E05DEC852E5FE0952EBD -:10570000843209F471CD00ED17E03BE0832E36E0E2 -:10571000932E6ACD82E090E099CD81E080937E0265 -:1057200069CE81E080937F026ECE81E0809380021B -:10573000ADCE81E080938102B2CE00E210E0CE01D6 -:1057400001964C018091E80085FD0AC08091E80037 -:105750008B778093E8000E940604882399F3D8CEC3 -:105760008091F100F40181934F010150110951F72B -:10577000CFCE1A8289E08B832DC08A81823009F4D2 -:10578000A7C18330A9F0813009F059C02FB7F89430 -:1057900060915F0370916003809161039091620357 -:1057A0002FBF0E94D92D6B837C838D839E8312C073 -:1057B00080916F028B83809170028C838091710243 -:1057C0008D83809172028E83809173028F8380918A -:1057D0007402888780918E03843009F0A6CC1091E2 -:1057E000E9001F709091EC00892F817090FD80E896 -:1057F000182B82E08093E9008091E80080FF0DC0C3 -:1058000050E040E060E270E0CE0101960E94370473 -:105810008091E8008E778093E8001F701093E90074 -:1058200084CC8A81823059F46B817C818D819E8108 -:105830000E94D92D86E290E00E944B2ECBCF8FEFB5 -:105840008983C8CF4C816B818A810E942D0E982755 -:10585000892798279E838D83BDCF8D809E80982435 -:10586000892498248A810B81F8E00F9F80011124FC -:1058700020E3829F000D111D11248C8190E0880F80 -:10588000991F080F191F692DC80187960E944B2E7A -:10589000682DC8018896D0CF0E949A0D9BCF8A812F -:1058A0008138C1F060F4803809F094CF20E04B815A -:1058B0006091E5028091E4020E9495128BCF8238BC -:1058C00049F1833809F086CF20E04091E6026C81EF -:1058D0008B81F2CF8B810E94C6139B818091E30262 -:1058E000911111C08E7F8093E30210928A024FEFD4 -:1058F00080E792E0415080409040E1F700C0000016 -:105900000E94450F67CF81608093E30286950E94D5 -:10591000C61360CF8B818093E7025CCF8A81813888 -:1059200099F030F4803809F055CF8091E60223CF0A -:10593000823891F0833809F04DCF8091E4028B8357 -:105940008091E5028C8346CF8091E30280FF02C004 -:10595000869511CF80E00FCF8091E7020CCF609148 -:10596000E3027091E4028091E5029091E6020E94C8 -:10597000831230CF80E18A832DCF81E08A8389EF43 -:10598000FACE0A811B81102701271027FE013196CC -:105990003F018C80CF01880D911D4C01C801895FAA -:1059A0009D4F8614970409F415CF093FE1E01E07C7 -:1059B00050F40E94372EF30184830F5F1F4FFFEFD7 -:1059C0006F1A7F0AEBCFF3011482F7CF0A811B8194 -:1059D000102701271027CE0101963C018C80800EF4 -:1059E000912E911CC801895F9D4F8016910609F484 -:1059F000F1CE093FE1E01E0720F4F30164810E942B -:105A00004B2EFFEF6F1A7F0A0F5F1F4FEBCF0E94E5 -:105A10008A0DE0CE8AE0AFCF0A811B8110270127D3 -:105A20001027CE0101963C018C80FC01E80DF11D90 -:105A30004F01C80187968614970409F4CBCE003E27 -:105A4000F1E01F0750F40E94372EF30184830F5FAB -:105A50001F4FFFEF6F1A7F0AECCFF3011482F7CFCD -:105A60000A811B81102701271027CE0101963C01D6 -:105A70008C80800E912E911CC8018796801691060D -:105A800009F4A8CE003EE1E01E0720F4F301648192 -:105A90000E944B2EFFEF6F1A7F0A0F5F1F4FECCF54 -:105AA00009BD19BD09B400FEFDCF8091D8008F7DDE -:105AB0008093D8008091E00082608093E000809124 -:105AC000E00081FDFCCF109269030E948C1587CD08 -:105AD00086E290E00E94372E1B821C821D828E83FC -:105AE00079CE2D32314008F0A3CCD9CC2D323140C3 -:105AF00008F052CC88CC87FB082E062687FD8195BE -:105B000067FD61950E94112E0EF4919507FC819519 -:105B10000895AA1BBB1B51E107C0AA1FBB1FA617F4 -:105B2000B70710F0A61BB70B881F991F5A95A9F746 -:105B300080959095BC01CD01089597FB072E16F432 -:105B4000009407D077FD09D00E94892D07FC05D06D -:105B50003EF4909581959F4F0895709561957F4F84 -:105B60000895A1E21A2EAA1BBB1BFD010DC0AA1F9E -:105B7000BB1FEE1FFF1FA217B307E407F50720F0B6 -:105B8000A21BB30BE40BF50B661F771F881F991F31 -:105B90001A9469F760957095809590959B01AC017A -:105BA000BD01CF010895EE0FFF1F0590F491E02D88 -:105BB00009946927962769277827872778270895E2 -:105BC0000E94E82D332312F48A1B9B0B0C94F92DB1 -:105BD000A29FB001B39FC001A39F700D811D11242E -:105BE000911DB29F700D811D1124911D08950E9479 -:105BF000E82DB7FF0895821B930B08950E94E82DAE -:105C0000A59F900DB49F900DA49F800D911D112410 -:105C10000895B7FF0C94FE2D0E94FE2D821B930B5E -:105C20000895991B79E004C0991F961708F0961BF8 -:105C3000881F7A95C9F780950895FC01415050401E -:105C400030F001900616D1F73197CF0108958827DB -:105C500099270895FB01DC0104C08D910190801902 -:105C600021F441505040C8F7881B990B0895F999C9 -:105C7000FECF92BD81BDF89A992780B50895A6E11F -:105C8000B0E044E050E00C94712EA8E1B0E042E0B6 -:105C900050E00C94712E262FF999FECF92BD81BD54 -:105CA000F89A019700B4021639F01FBA20BD0FB65A -:105CB000F894FA9AF99A0FBE08950396272F0E9436 -:105CC0004C2E0E944B2E252F0E944C2E242F0C94DC -:105CD0004C2E0196272F0E944C2E0C944B2EDC014B -:105CE000CB01FC01F999FECF06C0F2BDE1BDF89AE7 -:105CF000319600B40D9241505040B8F70895F89491 -:105D0000FFCFC10EC10ECA0ECA0ECC0ECA0ECA0EED -:105D1000CA0EC10EC10ED10ECA0ECA0ED10EAE19D8 -:105D2000AE191E1A1E1A7E1A981AE419E419A31A3B -:105D30002B1B3A1B3A1B81166F178C17A017AE1737 -:105D4000E3171518C21EEA1E3D1FEA1E3D1F1D1F48 -:105D5000551F3D1F52205F20B92BBD2B112C222C2B -:105D60002D2C4C2C4F2C8E2CAF2C1F2C1F2CBA2CD6 -:0E5D7000BD2CC12CE62C072D0A2D0C2D302D3C -:105D7E007105F00BCF0BCB0BC70B01191A1B1C1D9A -:105D8E001E1F202122010201001C001C1CCA002A19 -:105D9E0000000000C4004C00000000BE00500000D7 -:105DAE000000B8005100000000B2004F00000000DB -:105DBE00AC0052000000000101818283E200E90084 -:105DCE00EA00B500B600B700CD008301CC008A0111 -:105DDE0092019401210223022402250226022702A7 -:105DEE002A02B300B4006F007000F03435366667D7 -:105DFE00F6F7939600FF0100010000FFFF0000017F -:105E0E000001FF000001020202020606060909094E -:105E1E000909090F0F0F0F0F0F151515181919195D -:105E2E001919191919191923244022B6A801860126 -:085E3E00D000BD06D606F606F1 +:102A20007181828193810C94661280914A01EEEC4F +:102A3000F1E0882359F08091660387FF07C08EE19B +:102A4000DF011D928A95E9F70C94EA0A86E0F8CF37 +:102A50001F93CF93DF93CDB7DEB7AA970FB6F89445 +:102A6000DEBF0FBECDBF83E993E02091F100DC0112 +:102A70002D93CD01B3E08B399B07B9F78091940377 +:102A8000833009F472C0B8F4813009F449C082304F +:102A900009F4B5C08091E80083FF8DC28091930353 +:102AA000909194039A3008F086C2E92FF0E0E35148 +:102AB000F14D0C94312E8A3009F490C08B3009F41A +:102AC00071C0893039F780919303813219F7809171 +:102AD000970390919803009711F00297D9F680918F +:102AE000E800877F8093E8008091E80082FF38C08B +:102AF0009091F3008091F200029731F48091F100FF +:102B0000813011F0863021F48091F10080936E03C2 +:102B10008091E8008B778093E8000E946104BACF2F +:102B200080919303813A09F0B5CF8091E800877FC7 +:102B30008093E8008091970390919803892B61F42A +:102B400060E28FE693E070E00E9413058091E80058 +:102B50008B778093E8009ECF60E090E080E0F3CF39 +:102B6000809191038111C0CF95CF80919303813AD9 +:102B700009F090CF8091970390919803892B09F0E9 +:102B800089CF8091E800877F8093E8008091E800FA +:102B900080FFFCCF80914A018093F1008091E80092 +:102BA0008E77B9CF80919303813209F073CF8091F2 +:102BB000970390919803892B09F06CCF8091E800DE +:102BC000877F8093E8000E94610480919503809341 +:102BD0004A0110926C030E9415155CCF80919303FB +:102BE000813209F057CF8091E800877F8093E80019 +:102BF0000E9461048091960380936D034BCF809176 +:102C00009303813A09F046CF8091E800877F809353 +:102C1000E8008091E80080FFFCCF80916D03BCCF7D +:102C2000803899F0823809F0C6C1809197038F707F +:102C3000873008F0C0C18093E9008091EB0085FBEC +:102C4000882780F91092E90006C080918F03909147 +:102C50009003911182609091E800977F9093E80033 +:102C60008093F1001092F1008091E8008E779FC16F +:102C7000882309F48DC1823009F09DC180919503AC +:102C8000811190C1809197038F702FEF280F26300C +:102C900008F091C18093E9002091EB0020FF82C1F0 +:102CA000933031F48091EB0080628093EB007AC125 +:102CB0009091EB0090619093EB0021E030E001C037 +:102CC000220F8A95EAF72093EA001092EA00809199 +:102CD000EB008860EACF81116EC1109195031F77D8 +:102CE0008091E3008078812B8093E3008091E8005D +:102CF000877F8093E8000E9461048091E80080FF54 +:102D0000FCCF8091E30080688093E30082E01111A2 +:102D100083E0809391034FC18058823008F04BC10B +:102D200020919503309196032C3DE3E03E07A1F5F9 +:102D300083E08A838AE289834FB7F894DE01139691 +:102D400020E03EE051E2E32FF0E050935700E491A1 +:102D500020FF03C0E295EF703F5FEF708E2F90E091 +:102D6000EA30C0F0C7968D939D932F5F243159F7B9 +:102D70004FBF8091E800877F8093E8006AE270E0AF +:102D8000CE0101960E9413058091E8008B77809315 +:102D9000E80011C1C096E7CF809197039091980306 +:102DA000432F55274330510509F44AC078F5413087 +:102DB000510509F47AC08BE590E0EBEAF6E0423089 +:102DC000510509F0F8C02091E800277F2093E80022 +:102DD0002091990330919A038217930708F49C017C +:102DE00040E02115310509F065C0411163C08091B3 +:102DF000E80082FDC9CF80919103882329F28530B4 +:102E000019F28091E80083FFF2CFBECF4132510525 +:102E100009F43CC04232510509F0CDC08330910520 +:102E200008F0C9C0FC01EE0FFF1FE254FE4F0190F5 +:102E3000F081E02D85549E4FDC018C9190E01AC00A +:102E4000332721303105D1F02115310561F02230D1 +:102E5000310509F0B0C0E8E1F7E0E4918E2F90E091 +:102E6000E8E1F7E007C0E8E3F7E0E4918E2F90E0B7 +:102E7000E8E3F7E0009709F49EC0A5CFE4E2F7E0AD +:102E8000E4918E2F90E0E4E2F7E0F4CF83309105F7 +:102E900008F091C0880F991FFC01EC53FE4F019080 +:102EA000F081E02D89E090E08ECF82E190E0E6E0D5 +:102EB000F7E089CF80919103882309F465CF8530AD +:102EC00009F462CF8091E80083FD5ECF8091E80035 +:102ED00082FD8DCF8091E80080FF83CF9091F30039 +:102EE0008091F2002115310519F08830910550F0DC +:102EF00041E0089709F040E08091E8008E778093E8 +:102F0000E8006FCF44914093F10031962150310990 +:102F10000196E8CF803809F04EC08091E800877FA5 +:102F20008093E800809192038093F1009DCE8111FF +:102F300042C0109195031230F0F58091E800877F30 +:102F40008093E800109392030E946104112311F012 +:102F500084E005C08091E30087FDFACF81E0809393 +:102F6000910342E061EC81E00E94800442E261EC66 +:102F700084E00E94800442E261EC82E00E948004CE +:102F800042E260EC83E00E9480048091910313C0D0 +:102F900080919503813079F481E0933009F080E0ED +:102FA000809390031092E9008091E800877F8093DE +:102FB000E8000E9461048091E80083FF0AC08091CC +:102FC000E800877F8093E8008091EB008062809327 +:102FD000EB00AA960FB6F894DEBF0FBECDBFDF910F +:102FE000CF911F91089569EE7EEF90E080E00E94FE +:102FF000C72E60E082E090E00E94A92E60E083E0AE +:1030000090E00E94A92E10924A021092490260E0BC +:1030100084E090E00E94A92E60E082E290E00E94AD +:10302000A92E60E085E090E00E94A92E60E086E095 +:1030300090E00E94A92E6FEF87E090E00E94A92EF9 +:1030400040E050E0BA0188E090E00E94BB2E60E0D2 +:103050008DE090E00E94A92E40E050E0BA0188E1A6 +:1030600090E00E94BB2E60E087E190E00E94A92ED4 +:1030700040E050E0BA018CE190E00E94BB2E70E08D +:1030800060E080E290E00E94C72E40E050E0BA018C +:1030900088E190E00E94BB2E80E00E94E90D0E9432 +:1030A000010E40E050E0BA018FE090E00E94BB2E9C +:1030B00040E050E0BA0183E190E00C94BB2E8F9287 +:1030C0009F92AF92BF92CF92DF92EF92FF920F93B7 +:1030D0001F93CF93DF9300D000D0CDB7DEB76C0144 +:1030E000FC0183819481892B31F080819181892336 +:1030F0008F3F09F057C60F900F900F900F90DF9100 +:10310000CF911F910F91FF90EF90DF90CF90BF90E4 +:10311000AF909F908F900895980122513F452031A4 +:10312000310508F034C68FEF93E00E94952E0251CE +:1031300077E0E72E72E0F72E882361F18091450257 +:103140008770C9F2F60182818823A9F28091670312 +:1031500082FDD1CF82E00F900F900F900F90DF9102 +:10316000CF911F910F91FF90EF90DF90CF90BF9084 +:10317000AF909F908F900C949C14E114F4E0FF06A4 +:10318000E9F2C7010E94952E811101C001502FEF75 +:10319000E21AF20A0111F1CF1C821B82BB24B39404 +:1031A0006AE0A62E87010F5F1F4FC7010E94952E70 +:1031B00089831A82882311F29FEF980F933008F5C4 +:1031C0008A83B98232E0E30EF11CC8010E94952E79 +:1031D0008B83882309F4B2CF8E010F5F1F4FF80154 +:1031E00080818823F9F2813009F043C09181828186 +:1031F000913049F40E5F1F4F0E94060D0F5F1F4F65 +:10320000EECF7801E9CF923029F40E5F1F4F0E9474 +:10321000510CF4CF933029F40E5F1F4F0E94330BF3 +:10322000EDCF943019F00F5F1F4FE8CF0E5F1F4FA7 +:1032300030E020E0B8016F5F7F4FF801418180539B +:10324000990B8A30910550F021503109B8F28FE97D +:103250009FE00197F1F700C00000F6CFA29EF001B9 +:10326000A39EF00D11249C012E0F3F1F842F8B0174 +:10327000E1CF0E94210DC2CF81E00E94D5140E94AF +:103280007C145CCF81E00E948B14F9CF82E0FBCFED +:10329000882309F41AC180915A02811106C081E085 +:1032A00080935A0282EE0E94510C0E9484059093F2 +:1032B0005902809358028BE20E94510CF6018281E0 +:1032C000882369F0C801815E9C45059740F46FE151 +:1032D000600F60935B028CE090E00E94A92E17FFC4 +:1032E00070C0F6018281882309F46BC00E94BC057E +:1032F000869581708093EE010E94BC058170809359 +:10330000ED0180915B02813039F48091EE018823D8 +:1033100019F089E30E94060D80916C038093EC0103 +:1033200010926C0380915B02813009F4B7C188234D +:1033300009F4B0C1823009F4C4C1843009F4D5C1A4 +:103340008FE39CE90197F1F700C000005801E89471 +:10335000B7F84CE0E42EF12C5AE0852E912CC501F3 +:103360000E2C02C0969587950A94E2F78F70909183 +:103370005B02923009F0C0C18A3008F0BBC190E016 +:103380000996B4010E94FB2D875A0E94060D94E015 +:10339000E91AF108ECEFEE16EFEFFE0601F7809167 +:1033A0005B02813009F4B6C1882309F4AFC18230D1 +:1033B00009F4BCC1843009F4C2C18091EC0180934E +:1033C0006C03F6018281882369F180916C0382721B +:1033D0000C3CFCE51F0709F465C208F0E5C1063C9A +:1033E0003CE5130709F44AC208F0BCC1033CECE514 +:1033F0001E0709F439C208F0A4C1023C2CE51207EB +:1034000009F40BC20A358DE5180709F489C208F0E2 +:1034100063C20115ECE51E0709F470C20E3D1C45A0 +:1034200009F47BC2F60186819781009709F47CC27A +:103430000E9454088C01F601F280B580B2943FE0FE +:10344000B322809145028770C1F0AF2CFF20B1F00C +:10345000812F807F803421F080E2800F883068F0F7 +:103460008091670382FD09C082E00E949C148091D4 +:1034700045028770AA24A3948111A12C912E9294C5 +:103480002FE09222FBE0F91508F4CDC2E92DF0E01F +:10349000E950F14D0C94312E8823A1F080915A020D +:1034A000811106C081E080935A0282EE0E94510C85 +:1034B0000E948405909359028093580281EE0E94E5 +:1034C000510CF9CE81EE0E94330B8BE20E94330B3C +:1034D000F5CE882309F4F2CE81EE0E94510C83EEE2 +:1034E0000E94510C8FE40E94510C8FE40E94330B18 +:1034F00083EE0E94330B81EEE9CF882309F4DECE00 +:1035000081EE0E94510C83EE0E94510C80E50E94D6 +:10351000510C80E5EBCF882309F410CE10915702AF +:1035200081E01827109357020E9484059093560259 +:10353000809355021123C9F028E148E76FEF8FE02F +:103540000E94A71129E148E76FEF8FE00E94A711C1 +:103550002AE148E76FEF8FE00E94A7112BE148E7CF +:103560006FEF8FE00E94A711E9CD10921C018CE152 +:1035700080931D0180931E0181E20E94A913DECD7C +:10358000882309F49BCE80EE0E94510C81EE0E94AC +:10359000510C80E10E94510C80E10E94330B81EEBE +:1035A0000E94330B80EE0E94330B80914E0291E01B +:1035B00022E148E76FEF892780934E02882351F07C +:1035C0008FE00E94A71126E148E76FEF8FE00E948D +:1035D000A71174CE8FEA0E94A71126E148E76FEF8A +:1035E0008FEAF5CF882309F4A9CD1091540201E0A8 +:1035F0001027109354020E948405909352028093E6 +:1036000051028091530210921C01882319F18CE120 +:1036100080931D0180931E0181E20E94A91328E07E +:1036200044E666EE80E00E94A71129E044E666EEDB +:1036300080E00E94A7112DE044E666EE80E00E9443 +:10364000A71100935402109253021092500210924C +:103650004F0274CD8CE180931D0180931E0181E2A5 +:103660001123A9F00E94A91328E044E666EE80E049 +:103670000E94A71129E044E666EE80E00E94A711AF +:103680002DE044E666EE80E00E94A711DCCF0E94A8 +:10369000A913D9CF82EE0E94510C52CE83E00E9432 +:1036A000180B88E10E94510C8FE39CE90197F1F718 +:1036B00000C0000088E10E94330B83E00E940D0BE4 +:1036C0003FCE8091ED01811103C083E50E94060D7C +:1036D00082EE0E94510CEFE3FCE93197F1F700C054 +:1036E000000087E50E94060D2BCE86EE0E94060D97 +:1036F00088E1F8CF865049CE96EF980F963020F0AB +:10370000805D0E94210D43CE895AFBCF82EE0E943C +:10371000330B53CE8CE20E94060D8091EE0188237C +:1037200009F44BCE89E30E94060D47CE82EE0E943B +:10373000330B8091ED01811140CE83E5F4CF88E217 +:10374000F2CF043C3CE5130709F493C04AE353E18C +:1037500063E473E1053C9CE5190709F053CE0E9430 +:103760000706ECCC093CECE51E0709F491C070F4A7 +:10377000073C2CE5120709F486C04EE253E162E2F1 +:1037800073E1083C3CE5130751F33CCE0A3C9CE551 +:10379000190709F482C04CE453E16DE573E10B3C79 +:1037A000ECE51E07E1F22ECE013DFCE51F0709F412 +:1037B00087C0B0F40E3C3CE5130709F47BC008F465 +:1037C00076C00F3C9CE5190709F477C06EE089E0EC +:1037D000003DECE51E0709F015CE0E94F714AECCB3 +:1037E000043DFCE51F0709F471C068F4023D3CE5A7 +:1037F000130709F468C0033D8CE5180709F002CEF1 +:1038000061E088E12EC0053D9CE5190709F461C01F +:103810000D35100709F492CCF5CD8091E60280FFBA +:103820001BC08E7F8093E6026091E6027091E702F2 +:103830008091E8029091E9020E94661210928D0236 +:10384000FFEF20E732E0F15020403040E1F700C0C8 +:1038500000000E94280F72CC81608093E60261E034 +:1038600086950E946E136ACC44EE54E16DEE74E1CD +:1038700076CF4DEE54E164EE74E171CF43E453E151 +:103880006AE373E16CCF42E253E16EE273E167CF2A +:103890004AE053E166E173E162CF46E153E16AE059 +:1038A00073E15DCF4DE553E16CE473E158CF61E026 +:1038B00081E0D7CF65E082E090CF68E086E08DCFF1 +:1038C00064E18FE08ACF67E185E187CF62E289E139 +:1038D00084CF61E083E2C5CF0B352DE5120711F1EE +:1038E0000C351D4509F09ECD8091670382FB88272A +:1038F00080F991E089270E94B81494CD10926C034E +:103900000E9415158FEF94E3ECE081509040E04069 +:10391000E1F700C000000E942D0C0E94F3170ECCAE +:1039200081E0E9CF80E0E7CF8281008111818823A7 +:1039300069F0C8010E94430EF82E682FC8010E944A +:10394000BE0AB8018F2D0E94360E72CDC8010E94AA +:10395000970AF82EF6CF212F2F70E22E107F19F044 +:10396000E29490EFE922FF20B9F0EE2069F080E2C6 +:10397000800F883010F0011109C080916C03E82A93 +:10398000E0926C030E94E909802F4BC080914702AE +:10399000E82AE0924702F6CF802F0E94330BEE20F8 +:1039A00009F441C080E2800F883010F0011104C09A +:1039B0008E2D0E94E20906C0E09480914702E82221 +:1039C000E09247020E94E9092EC0312F3F70E32E9A +:1039D000107F103219F0E29480EFE822002381F08A +:1039E000013009F47EC0FF2009F488C0BB2009F42F +:1039F0007EC0F601858180FFC7CF8F70858377C039 +:103A00002091670322FF4AC0FF2009F441C0EE2045 +:103A100039F080916C03E82AE0926C030E94E90976 +:103A200080E00E94510C292D2850330B24303105A1 +:103A300020F40E94BC050E94890BAA20A9F0809165 +:103A4000450280FD11C0F601128285958595859508 +:103A50000E94D514C6010E945F1880914502859589 +:103A6000859585950E948B1460E0C6010F900F909C +:103A70000F900F90DF91CF911F910F91FF90EF90DA +:103A8000DF90CF90BF90AF909F908F900C94B90E25 +:103A900080E00E94330BEE2031F28ACFFF20A1F0AC +:103AA000909148028E2D892BB11003C00E94290BE2 +:103AB000BACFE1E0BE12FACF22FDB5CF891709F4E3 +:103AC000B2CF80934802AFCFB11006C00E94DC098C +:103AD0008E2D0E94220BA7CFF1E0BF1609F4A3CFD1 +:103AE000F5CFFF2031F022E02B1508F49CCF8E2D6E +:103AF000DDCF31E03B1508F496CFEACFBB2041F390 +:103B0000093369F4FFEF27EE33E0F15020403040F5 +:103B1000E1F700C00000802F0E94330B84CF8FE3B9 +:103B20009CE90197F1F7F5CF812F869586958370F3 +:103B300061F0813009F077CFC8019370F11002C0B5 +:103B400090E080E00E9490056ECFC8019370F11064 +:103B500002C090E080E00E94A60565CF802FFF2084 +:103B600029F00E949E070E94BC065DCF0E94E306DA +:103B7000FACF812F837009F03FC0F11054CF402F4E +:103B8000429546954770440F440F802F8F7090E008 +:103B9000042E02C0880F991F0A94E2F730E020E05B +:103BA00004FF09C02FE030E002C0220F331F4A9506 +:103BB000E2F720953095169516951370123099F00E +:103BC00078F44091490250914A02113039F0822B29 +:103BD000932B842395230E94070B25CF842B952BB1 +:103BE000822B932BF8CF822B932B2091490230917B +:103BF0004A0282279327EFCF8695FF2011F0812F6D +:103C00008170882309F40FCF402F42954695477065 +:103C1000440F440F802F8F7090E0042E02C0880F55 +:103C2000991F0A94E2F730E020E004FF09C02FE07A +:103C300030E002C0220F331F4A95E2F720953095FD +:103C4000169516951370123099F078F440919B03F5 +:103C500050919C03113039F0822B932B84239523B0 +:103C60000E947414E0CE842B952B822B932BF8CFDB +:103C7000822B932B20919B0330919C0382279327C7 +:103C8000EFCF1F70FF2029F0812F0E94D514802FC5 +:103C90000DCF802F0E94220B812F0E948B14C3CE48 +:103CA000023F71F160F4003FB9F0013F81F0FF2065 +:103CB00009F459C0B11068CE812F8F7125C0033F20 +:103CC00031F1043FA1F78091670382FF2EC0812F5D +:103CD0008F71FF2011F318C0FF2069F091E09B1550 +:103CE00008F4A1CE1F7181E090E002C0880F991FF7 +:103CF0001A95E2F7BFCFE2E0EB1508F494CEF2CFCD +:103D0000812F8F71F110C9CF0E94D5148CCE90E015 +:103D100080E0FF2009F4A4CF1F7181E090E002C091 +:103D2000880F991F1A95E2F79BCFFF2089F01F712A +:103D3000812F0E94D5148091670382FD07C0F8E0AF +:103D40001F9FC0011124836080934502812FDCCF27 +:103D500081E00E949C1421E02B1508F064CE82E0E3 +:103D60000E949C1460CEBB2079F0093341F43FEFF0 +:103D700087EE93E0315080409040E1F7CACEEFE308 +:103D8000FCE93197F1F7C5CE812F8F7186CF0031D5 +:103D90003FE5130709F470CA01319FE51907A9F43B +:103DA00082E06BCA61E0C6010E94B90E8C01F60187 +:103DB00082818111B1C90031FFE51F0709F462CA90 +:103DC00001312FE5120709F461CAF801E058FF45F7 +:103DD000E730F10508F072CAED5FF04D0C94312E1A +:103DE000CF93DF9380910002807FA1F48091FD0149 +:103DF000882381F080914402D09103026091FB01FD +:103E00007091FC01A091FE01B091FF01C62FC72364 +:103E1000D81303C0DF91CF91089590E0109711F06F +:103E2000CF3F19F401968770F3CF9C0143E0220F36 +:103E3000331F4A95E1F7F901EC5FFD4F41814713CC +:103E4000F1CF40814613EECF42814111EBCF438148 +:103E500054814A1B5B0B403A510520F780910002C8 +:103E60008F70806180930002F901E75FFD4F8081D0 +:103E70008F70806180838BEF91E00E945F18DF91EB +:103E8000CF910C948D0AAF92BF92CF92DF92EF92B6 +:103E9000FF920F931F93CF93DF93CDB7DEB7659754 +:103EA0000FB6F894DEBF0FBECDBF8C0185E0F801E0 +:103EB000DE01519601900D928A95E1F7F801E280BA +:103EC0006BEFA62E61E0B62E6091FE017091FF01AE +:103ED0006115710509F468C19091FB014091FC01E5 +:103EE000892F84238F3F09F45FC120813181C380F2 +:103EF000D480F090FD01F601E61BF70BFF2009F4DA +:103F00001DC180910002582F507FE03AF10508F062 +:103F1000D0C0511181C0FE2C43132BC0921329C075 +:103F20006091010270910202F80146815781641785 +:103F30007507F9F4E1101DC08F7080618093000255 +:103F4000C5010E945F1880910002F80185838F2DC2 +:103F500065960FB6F894DEBF0FBECDBFDF91CF914F +:103F60001F910F91FF90EF90DF90CF90BF90AF9097 +:103F70000895CD2829F0822F83238F3F09F02FC188 +:103F800080E0F82FF170DF2E80FF3CC0809144026A +:103F900040910302841315C0298B3A8B89899A8931 +:103FA0000E947F0E292F22952F702230F8F02430A6 +:103FB00020F59F70F9F0F8019581907FD9F4D12C0C +:103FC0001FC090E0FC0153E0EE0FFF1F5A95E1F790 +:103FD000EC5FFD4F5181351306C05081251303C09E +:103FE0005281E5120FC001968770D4CF9F7011F0F7 +:103FF000882329F3805E883010F3C8010E945F187F +:10400000FD2CA5CFEE2009F4A2CF809100028160A3 +:1040100080930002F12C9BCF43131BC0921319C055 +:104020004091010250910202F80126813781421726 +:10403000530779F4E1100DC08583C8010E945F1811 +:1040400088E0F801ABEFB1E001900D928A95E1F7BD +:104050007ECFC8010E948B0E882339F1EE2029F112 +:10406000809100028032A0F02091FB013091FC0190 +:104070003A8729871B86DD86CC868E878091010250 +:1040800090910202988B8F87CE0109960E945F184B +:1040900088E0F801ABEFB1E001900D928A95E1F76D +:1040A0000E94F01EFF24F39452CFC8010E945F18B3 +:1040B000F9CF51110AC08BEF91E00E945F1888E0A0 +:1040C000F50111928A95E9F7A5CF431318C0921311 +:1040D00016C04091010250910202F80126813781F9 +:1040E0004217530761F4E1100AC08583C8010E949A +:1040F0005F1888E0F50111928A95E9F728CFC80189 +:104100000E948B0E882389F2EE2079F280910002C2 +:10411000803208F4BDCF2091FB013091FC013A833D +:1041200029831B82DD82CC828E8380910102909153 +:10413000020298878F83CE010196A8CFE03AF1055D +:10414000C0F6FE2CEE2009F4B0CF43131FC092132B +:104150001DC02091010230910202F80186819781F1 +:104160002817390799F49091000290FD69CF907F4C +:1041700009F466CF809100028583903F09F45DCFFA +:10418000982F907F905F8F70892B56CFC8010E9427 +:104190008B0E81117DCF809100028160809300029F +:1041A000C8010E945F18D3CEEE2009F47ECFC8016B +:1041B0000E948B0EF82E882309F477CF88E0F8014F +:1041C000ABEFB1E001900D928A95E1F78091FB0190 +:1041D0009091FC010E947F0E0E94F01EB8CE81E0FB +:1041E0008E25CFCECF93DF93CDB7DEB760970FB6D6 +:1041F000F894DEBF0FBECDBF29873A874B875C8717 +:104200006D877E878F87988BCE0109960E94431F0A +:10421000811112C088E0FE013996DE0111960190ED +:104220000D928A95E1F78C859D85892B29F08985EA +:104230009A8589238F3FA9F58091440290910302CA +:1042400089131CC060960FB6F894DEBF0FBECDBFB9 +:10425000DF91CF91089593E0AA0FBB1F9A95E1F7E4 +:10426000AC5FBD4F98E0FE01319601900D929A959A +:10427000E1F7809303020E948D0ADECFB8E08B9FA6 +:10428000C00111248C5F9D4F0E94431F8823D1F2EF +:104290008091440290E001968770992780934402B0 +:1042A000CBCFA0910302B0E0CD0101968770992792 +:1042B000209144022817190671F610926C030E948F +:1042C0001515109203021092440288E0EBEFF1E022 +:1042D000DF011D928A95E9F7AFCF0F931F93CF931C +:1042E000DF938091EE02E091ED02CCE081111AC0E3 +:1042F000DF91CF911F910F910895D1E0DE0FD09300 +:10430000ED020E2F10E0EC9FF0011124E151FD4F62 +:1043100083819481892B29F08081918189238F3F2A +:1043200051F4ED2F8091EE02E81738F31092EE026F +:104330001092ED02DDCFC09FD001C19FB00D1124BE +:10434000A151BD4F16968D919C911797892B29F4F9 +:1043500018968D919C91019651F420813181428172 +:10436000538164817581868197810E94F220C09F6C +:10437000F001C19FF00D1124E151FD4F1482138211 +:10438000D0CF10925A031092590310924901809194 +:104390005803809357030E94F6050C946D212F92C9 +:1043A0003F924F925F926F927F928F929F92AF92C5 +:1043B000BF92CF92DF92EF92FF920F931F93CF9312 +:1043C000DF93C0915703E7E0FE2E01E010E0FCE030 +:1043D0002F2EAEEFEA2E809158038C1316C00E9448 +:1043E0006D21DF91CF911F910F91FF90EF90DF90A2 +:1043F000CF90BF90AF909F908F907F906F905F9085 +:104400004F903F902F900C94F605D0E0FE01EE0FF8 +:10441000FF1FE15BFC4F80819181F89EF001F99EC6 +:10442000F00D1124E15EFE4F2481211158C030901F +:10443000EE02AFEEB2E030E020E0412C5F01231548 +:1044400008F04BC01A966D907C901B97F501808008 +:1044500091804FEF5FEF512CC52CD12CF601EE0F60 +:10446000FF1FE80DF91D659174916616770609F432 +:10447000A601672B11F05394EFCF4F3F5407B1F1D2 +:10448000B80102C0660F771F4A95E2F7462AA801D5 +:1044900002C0440F551F5A94E2F741505109441687 +:1044A000150601F5229EF001239EF00D1124E15125 +:1044B000FD4FF89ED001F99EB00D1124A15EBE4FB4 +:1044C00012962D913C91139737832683E082E182E7 +:1044D0009187808771E015967C930E94C80521968C +:1044E000C37079CF14961C921E9213972F5F3F4F83 +:1044F0001C96A5CF2F923F924F925F926F927F9220 +:104500008F929F92AF92BF92CF92DF92EF92FF92E3 +:104510000F931F93CF93DF93CDB7DEB769970FB695 +:10452000F894DEBF0FBECDBF498B5A8B6B8B7C8B53 +:104530008D8B6111109247021D861E861F86188A78 +:1045400085E0FE017196DE01199601900D928A9523 +:10455000E1F78C859D85892B31F089859A858923A2 +:104560008F3F09F0D4C129853A854B855C856D85DF +:104570007E858F8598890E94F220C3C028EFC216DD +:104580002CE5D20629F4882379F00E94C121EBCFD3 +:1045900039EFC3163CE5D30639F4882329F080911E +:1045A00049018111F2CFC3C10FE111E0E12CB12C1F +:1045B000A12C88248394912C9EEF592E442443945B +:1045C000F8016081718166246A94762C20E0422F84 +:1045D00050E0FA01EE0FFF1FE60FF71F859194914F +:1045E000C816D90609F43A01892B11F02F5FEFCFD5 +:1045F000F12CFFEF6F167F0609F445C0F8014481E6 +:10460000F09049018F2D411180E0F82FF170FF2EBD +:10461000F801258086819B85992309F408C1FF2034 +:1046200009F405C1211014C0A40101C0440F6A940B +:10463000EAF7842B86838091EB029091EC0280391B +:10464000914030F440E951E05093EC024093EB028A +:10465000C40102C0880F991F2A95E2F70197F8015B +:1046600026812817190679F48091590390915A03ED +:10467000009709F45FC00E9475058139914008F4E4 +:1046800059C0F8014482EF28FFEFAF1ABF0A095F53 +:104690001F4F26E0A216B10409F092CF8B85882324 +:1046A00009F420C1EE2009F41DC10E9484059093F5 +:1046B0005A03809359038091EE02883010F591E0FF +:1046C000980F9093EE0298E0FE013996DE01119664 +:1046D00001900D929A95E1F73CE0839FC00111246F +:1046E00081519D4F28E0FE013196DC0101900D9231 +:1046F0002A95E1F72FEF3FEFFC0131872087D38622 +:10470000C28669960FB6F894DEBF0FBECDBFDF91AB +:10471000CF911F910F91FF90EF90DF90CF90BF90BE +:10472000AF909F908F907F906F905F904F903F9051 +:104730002F9008958091570360905803982FF0E0D0 +:10474000E0E0861114C0909357030E171F0709F479 +:104750009ACF90E0FC01EE0FFF1FE15BFC4FB182AE +:10476000A082019683709927809358038CCF282EBE +:10477000312CF101EE0FFF1FE15BFC4F20813181F5 +:10478000F7E0F29FD001F39FB00D1124A15EBE4F60 +:104790002D913C911197398F288F712C60E070E03A +:1047A000E72FF0E0EE0FFF1F288D398DE20FF31F8A +:1047B0002591349121153105E1F0F8010190F08146 +:1047C000E02DFF8BEE8B60E005C02417350709F460 +:1047D0007F2C6F5FE62FF0E0EE0FFF1F4E895F89A1 +:1047E000E40FF51F459154914115510571F77F5F15 +:1047F000D7CF7720C9F0F801671708F0FD01448290 +:104800000E171F0721F490935703F72C3CCF9813F2 +:1048100005C0AE17BF0711F49F5F937091012F5F22 +:104820003F4F822F83708DCFF0E0E0E0F7CF90E034 +:1048300021101FC0B40102C0660F771F2A95E2F74E +:104840009B01215031092817390731F4442309F419 +:1048500047C0C5010E94C805C40101C0880F6A9401 +:10486000EAF7982F9095F801868189238683F22CA8 +:104870000ACF9C01062C02C0359527950A94E2F7D1 +:10488000A90141705527BC01615071098623972306 +:10489000892B11F5452B01F1F80182819381892B38 +:1048A000C1F01B821C821D821E8259825A820E9484 +:1048B00084058160582F9D838C83F80182819381C8 +:1048C0008F83988729813A814B816D817E810E94F7 +:1048D000F220F8011582C0CFF22FF1702F2EBCCF3D +:1048E0002F2CBACF9091570380915803981731F02D +:1048F0000E94CF21EE2009F436CE03CF0E946D2115 +:1049000010925A03109259030E94F605F3CF61E00A +:10491000CE0109960E94B90E6C018B85F7EFCF1678 +:10492000FCE5DF0609F02ACE882309F43DCE81E0BC +:104930008093490118CE9F92AF92BF92CF92DF929F +:10494000EF92FF920F931F93CF93DF9300D000D08D +:1049500000D0CDB7DEB78E010F5F1F4F86E0F801A4 +:1049600011928A95E9F78CE7C82E81E0D82EF12CB8 +:10497000E12CAA24A394B12CF60181916F018F3F01 +:1049800009F443C0F894E82FE295EF70F0E021A11C +:104990008F70A50102C0440F551F8A95E2F7CA0126 +:1049A000922F982B91A392A18095892382A378942A +:1049B00000C0E2E8F1E0912C31E021912F3F09F4B1 +:1049C0006EC0A22FA295AF70B0E090968C9190E04F +:1049D0002F7002C0959587952A95E2F780FD5FC0FC +:1049E000832F982A330F51E0E638F50731F7F601A7 +:1049F000319780818F3F11F00E94FA0780EA8A95F3 +:104A0000F1F7F801EE0DFF1D9082EFEFEE1AFE0AAE +:104A1000F6E0EF16F10409F0AFCF46E050E0B80140 +:104A20008FE592E00E94882EFF24F394009709F40A +:104A3000F12C892BB1F186E0F801AFE5B2E00190ED +:104A40000D928A95E1F781E080934D020E948405E2 +:104A500090934C0280934B0280914B0290914C02B8 +:104A60000E947505059708F180915F02809372029C +:104A7000809160028093730280916102809374023E +:104A80008091620280937502809163028093760226 +:104A9000809164028093770210924D0206C080E0FC +:104AA000A0CF80914D028111D7CF809149018823F9 +:104AB00001F18091590390915A030097D1F00E941F +:104AC00075052091EB023091EC022817390788F424 +:104AD0009091570380915803981709F47EC00E9463 +:104AE000CF211092EC021092EB0210925A03109216 +:104AF000590380915A02882371F080915802909155 +:104B000059020E947505893E934028F082EE0E946A +:104B1000330B10925A0280915702882391F08091B2 +:104B20005502909156020E947505883E934048F0C8 +:104B30000E948405909356028093550283E70E9459 +:104B4000060D8091530290915402992309F44EC0AE +:104B5000811130C080915102909152020E947505DE +:104B600081369A4E78F080914F02909150020196D2 +:104B70009093500280934F020E94840590935202BA +:104B80008093510280914F02909150024F9708F408 +:104B90005CC010921C018CE180931D0180931E016A +:104BA0008FE00E94A91381E080935302109250027B +:104BB00010924F028F2D26960FB6F894DEBF0FBECF +:104BC000CDBFDF91CF911F910F91FF90EF90DF90BC +:104BD000CF90BF90AF909F9008950E946D2110924A +:104BE0005A03109259030E94F60583CF8111E2CF38 +:104BF00080914E02882361F022E148E76FEF8FE059 +:104C00000E94A71126E148E76FEF8FE00E94A711ED +:104C100080915702882371F228E148E76FEF8FE017 +:104C20000E94A71129E148E76FEF8FE00E94A711CA +:104C30002AE148E76FEF8FE00E94A7112BE148E7D8 +:104C40006FEF8FE00E94A711B5CF28E044E666EE33 +:104C500080E00E94A71129E044E666EE80E00E9411 +:104C6000A7112DE044E666EE80E00E94A711C0CFB8 +:104C700090E080E00E94A32E893E9E4F11F40C9498 +:104C8000F90E80E008951F920F920FB60F92112433 +:104C90002F933F934F935F936F937F938F939F9344 +:104CA000AF93BF93CF93DF93EF93FF93D091E9003E +:104CB000DF708091EC00C82FC17080FDC0E81092B9 +:104CC000E9008091F000877F8093F00078940E9443 +:104CD00028151092E9008091F00088608093F00020 +:104CE000CD2BCF70C093E900FF91EF91DF91CF9171 +:104CF000BF91AF919F918F917F916F915F914F91F4 +:104D00003F912F910F900FBE0F901F9018951F92FB +:104D10000F920FB60F9211242F933F934F935F93EF +:104D20006F937F938F939F93AF93BF93EF93FF9373 +:104D30008091E10082FF09C08091E20082FF05C0FE +:104D40008091E1008B7F8093E1008091DA0080FF09 +:104D500024C08091D80080FF20C08091DA008E7F2F +:104D60008093DA008091D90080FF9DC080E189BDE9 +:104D700082E189BD09B400FEFDCF81E080939103FB +:104D800080916B03811109C00E94E7030E94B20465 +:104D90008091E20084608093E2008091E10080FFD6 +:104DA00017C08091E20080FF13C08091E2008E7FE7 +:104DB0008093E2008091E20080618093E200809124 +:104DC000D80080628093D80019BC85E0809391035D +:104DD0008091E10084FF2BC08091E20084FF27C016 +:104DE00080E189BD82E189BD89B5982F917080FFEE +:104DF000FBCF8091D8008F7D8093D8008091E10017 +:104E00008F7E8093E1008091E2008F7E8093E200AC +:104E10008091E20081608093E20080919203882378 +:104E200009F447C084E080939103809191038091BD +:104E3000E10083FF27C08091E20083FF23C08091BF +:104E4000E100877F8093E10082E0809391031092DC +:104E500092038091E1008E7F8093E1008091E200D7 +:104E60008E7F8093E2008091E20080618093E20077 +:104E700042E060E080E00E9480048091F000886061 +:104E80008093F000FF91EF91BF91AF919F918F912F +:104E90007F916F915F914F913F912F910F900FBE36 +:104EA0000F901F90189519BC1092910310926B03EC +:104EB00074CF8091E30087FD93E090939103B5CF89 +:104EC00078941F921FB61F9211248F939F93AF93D4 +:104ED000BF938091620390916303A0916403B091AA +:104EE00065030196A11DB11D809362039093630336 +:104EF000A0936403B0936503BF91AF919F918F918D +:104F00001F901FBE1F9018951F921FB61F9211244D +:104F10008F939F93AF93BF9380916103811113C0CF +:104F20008091620390916303A0916403B091650343 +:104F30004196A11DB11D8093620390936303A093DA +:104F40006403B0936503BF91AF919F918F911F90C0 +:104F50001FBE1F901895CDB7DEB7EE970FB6F89429 +:104F6000DEBF0FBECDBF84B7877F84BF0FB6F89476 +:104F7000A895809160008861809360001092600025 +:104F80000FBE80E890E00FB6F89480936100909394 +:104F900061000FBE85B7806885BF85B7806885BF13 +:104FA00088EF97E09093CB018093CA010E94E703BA +:104FB0000E94B2048091E20084608093E2007894C1 +:104FC000809191038823A1F01091E9001F709091C6 +:104FD000EC00892F817090FD80E8182B1092E90079 +:104FE0008091E80083FD0E9428151F701093E9004E +:104FF00082E084BD93E095BD9AEF97BD80936E00EB +:105000000E94F90E811102C00E94010E0CE711E00E +:1050100022E8C22E21E0D22ED8018D918D018F3F42 +:1050200011F00E94FA07C016D106B1F786EF0E9470 +:10503000FA0787EF0E94FA0783E90E94FA0786E9D8 +:105040000E94FA0786E0E2E7F2E0DF01282F1D92D6 +:105050002A95E9F7EFE5F2E0DF011D928A95E9F77D +:105060000E943826811102C00E94F31782E090E06E +:105070000E94952E80936B0284E090E00E94952E12 +:10508000182F82E290E00E94952E982F812F909306 +:105090006703809366030E949B24EFE3FCE931974A +:1050A000F1F700C000000E949B248091720280FFF3 +:1050B00008C06FEF7FEF90E080E00E94C72E0E9453 +:1050C0002D0C83E090E00E94952E90E00E94070B4B +:1050D00080919B0390919C030E94CF13509A589A01 +:1050E000559A5D9A549A5C9A8CE090E00E94952EB5 +:1050F00090E0B0E0A0E080935B0290935C02A0930C +:105100005D02B0935E0280916502811132C00E94FF +:105110003826811104C00E94F3170E94051588E00B +:1051200090E00E949D2E6093E6027093E7028093C8 +:10513000E8029093E9026E7F71F40E94051588E001 +:1051400090E00E949D2E6093E6027093E7028093A8 +:10515000E8029093E9020E940D0610928D02809160 +:10516000E60280FF03C086950E94A91381E0809328 +:1051700065025198599A52985A9A89B186958170C8 +:105180004A994EC290E0892B809369026091660330 +:105190006068609366031091670384E090E00E946A +:1051A000A92E612F82E290E00E94A92E81E20E9446 +:1051B000A91381E090E00E94741480E091E0909344 +:1051C0005E0380935D0308E1C02ED12C82E792E05C +:1051D00096E0B92EB80E80919103853021F510E448 +:1051E000912E8824839400E112E18091910385300F +:1051F00009F418C210926C030E9415150E94BC0598 +:105200000E94890B1092850280916602882309F41E +:105210005DC28091E60281608093E60286950E94DD +:10522000A9130E94120F0E949B24882359F08FB764 +:10523000F89440916203509163036091640370910C +:1052400065038FBFA2E7B2E0ECE6F2E010E000E019 +:10525000302F8D919191981709F445C2292F282755 +:1052600090E099249394422F492109F437C29DABD1 +:105270003EAB892191E009F490E09FAB0E94840548 +:105280008160782F99AF88AF4DA95EA96FA989ADCC +:105290000E947A22F801E459FD4F8081982690827D +:1052A00080918D028823D1F180918C02E091E602F9 +:1052B000E695E81BE0938802823009F02BC2F0E00B +:1052C000EA55FD4FE4910E2F10E0B2E58B2EB2E1CE +:1052D0009B2E80918902882361F0109289020E949E +:1052E0008405909387028093860210928B0210921D +:1052F0008A020E948405E0918602F09187028E1B4B +:105300009F0B8F3F9F4750F4E00FF11FF0938702F0 +:10531000E093860286E892E0F4010995E091690243 +:10532000EE0FEE0FE093690289B181FBEE24E0F805 +:105330004A994AC280E08E29E82BE0936902EF7017 +:10534000F0E0EA57FE4F808190916802890F8093C8 +:10535000680220E0843034F1809167028F5F80938F +:10536000670212E018AB19AA81E08AAB0E9484059B +:105370008160782F9CAB8BAB48A959A96AA98CA9ED +:105380000E947A221BA71CA61DA60E94840581608C +:10539000782F9FA78EA74BA55CA56DA58FA50E9412 +:1053A0007A2221E0809168028D3F2CF5809167027E +:1053B0008150809367021EA21FA281E088A70E94ED +:1053C00084058160782F9AA789A74EA15FA168A55F +:1053D0008AA50E947A2219A21AA21BA20E94840501 +:1053E0008160782F9DA38CA349A15AA16BA18DA1A7 +:1053F0000E947A2221E080916802082E000C990B0D +:1054000064E070E00E94FB2D80936802222359F033 +:105410008FB7F894409162035091630360916403E5 +:10542000709165038FBF86E0EFE7F2E0DE01119631 +:1054300001900D928A95E1F790908102809082020E +:1054400010918302009184021092810210928202D4 +:105450001092830210928402892D882909F448C091 +:1054600080917D0290917E020E9475059C01909131 +:105470007902992309F498C323333105C8F19F3F7A +:1054800019F09F5F90937902992059F00E947E074E +:105490009FEF19140CF491E0899F802D11248093C3 +:1054A0008102882059F00E947E079FEF18140CF4A7 +:1054B00091E0899F802D1124809382023091810296 +:1054C0003323B1F020918202222391F045EB340383 +:1054D000C0011124992309F47AC19093810245EB0C +:1054E000240390011124332309F475C130938202FF +:1054F000812F802B09F448C080917B0290917C021F +:105500000E9475059C0190917802992309F447C384 +:1055100025363105C8F19F3F19F09F5F90937802BF +:10552000112359F00E945C079FEF11160CF491E0D3 +:10553000899F802D112480938302002359F00E94BB +:105540005C079FEF10160CF491E0899F802D1124C9 +:1055500080938402309183023323B1F0209184023E +:10556000222391F045EB3403C0011124992309F45F +:1055700036C19093830245EB240390011124332319 +:1055800009F431C1309384028091810290918202AA +:10559000892B90918302892B90918402892B11F0A1 +:1055A0000E94BC0686E0FE013196AFE7B2E00190B2 +:1055B0000D928A95E1F70E94BC0590916A028917C5 +:1055C00031F00E94BC0580936A020E94890B809191 +:1055D0009103843009F0FFCD83E08093E90080914E +:1055E000E80082FFF8CD8091E80090E085FF06C0DA +:1055F0000E940604882309F4FAC091E08091E80033 +:105600008B778093E800992309F4E5CDE981E15097 +:10561000E33108F06EC1F0E0E65FF04D0C94312EFE +:1056200092E0B1CD80919103843009F440C080E0D4 +:105630000E94890B10928D0280918502811116C003 +:10564000809285028091E602982F91709093660275 +:105650008E7F8093E602FFEF20E742E0F15020408A +:105660004040E1F700C000000E94280F1092610343 +:105670000FB6F894A895C09260000FBE909260009B +:1056800083B7817F846083BF83B7816083BF789451 +:10569000889583B78E7F83BF0FB6F894A8958091C5 +:1056A0006000886180936000109260000FBE80915E +:1056B0009003882309F499CD0E949B24E2E7F2E04D +:1056C000819181114BC2BE12FBCF8FCD80918E0292 +:1056D000882309F4A6CD0E94280FA3CD9F5F990CC3 +:1056E000943009F0C0CD0F5F1F4F0630110509F04F +:1056F000AFCD8FEF8AAF8BAF1CAE0E948405816067 +:10570000782F9EAF8DAF4AAD5BAD6CAD8EAD0E9474 +:105710007A22C6CD863059F4F0E0ED55FD4FE49184 +:105720000E2F10E0A2E48A2EA2E19A2ED2CD89306B +:1057300061F4E695F0E0E056FD4FE4910E2F10E0A5 +:10574000FAE68F2EF1E19F2EC4CD8F3061F4E695FD +:10575000F0E0E356FD4FE4910E2F10E0E0EF8E2EC7 +:10576000E0E19E2EB6CD853159F4F0E0E656FD4FCE +:10577000E4910E2F10E07DE7872E70E1972EA9CDE2 +:1057800008E210E04DEE842E4FE0942E883109F4AB +:10579000A0CD833249F4E8E9F2E00591149169EE75 +:1057A000862E61E1962E95CD04EF11E050EB852E0B +:1057B0005FE0952E843209F48CCD00ED17E03CE0DB +:1057C000832E36E0932E85CD82E090E0B4CD81E04B +:1057D0008093810284CE81E08093820289CE81E031 +:1057E00080938302C8CE81E080938402CDCE00E214 +:1057F00010E0CE0101964C018091E80085FD0AC0C1 +:105800008091E8008B778093E8000E94060488234B +:1058100099F3F3CE8091F100D4018D934D010150A5 +:10582000110951F7EACE1A8289E08B832DC08A8153 +:10583000823009F4ABC18330A9F0813009F059C03E +:105840002FB7F894609162037091630380916403B1 +:10585000909165032FBF0E94372E6B837C838D83CD +:105860009E8312C0809172028B83809173028C831D +:10587000809174028D83809175028E83809176026F +:105880008F8380917702888780919103843009F01B +:10589000A2CC1091E9001F709091EC00892F8170CB +:1058A00090FD80E8182B82E08093E9008091E80069 +:1058B00080FF0DC050E040E060E270E0CE01019654 +:1058C0000E9437048091E8008E778093E8001F7073 +:1058D0001093E90080CC8A81823059F46B817C81FD +:1058E0008D819E810E94372E86E290E00E94A92E33 +:1058F000CBCF8FEF8983C8CF4C816B818A810E9487 +:10590000100E9827892798279E838D83BDCF8D8081 +:105910009E809824892498248A810B81B8E00B9F6B +:1059200080011124E0E38E9F000D111D11248C8154 +:1059300090E0880F991F080F191F692DC8018796DD +:105940000E94A92E682DC8018896D0CF0E94970D7D +:105950009BCF8A818138C1F060F4803809F094CF00 +:1059600020E04B816091E8028091E7020E9478126A +:105970008BCF823849F1833809F086CF20E04091FF +:10598000E9026C818B81F2CF8B810E94A9139B81EC +:105990008091E602911111C08E7F8093E6021092F1 +:1059A0008D02FFEF20E742E0F15020404040E1F758 +:1059B00000C000000E94280F67CF81608093E6023C +:1059C00086950E94A91360CF8B818093EA025CCFF9 +:1059D0008A81813899F030F4803809F055CF809170 +:1059E000E90223CF823891F0833809F04DCF8091BE +:1059F000E7028B838091E8028C8346CF8091E60298 +:105A000080FF02C0869511CF80E00FCF8091EA021F +:105A10000CCF6091E6027091E7028091E8029091CC +:105A2000E9020E94661230CF80E18A832DCF81E0A7 +:105A30008A8389EFFACE0A811B811027012710275C +:105A4000CE0101963C018C80DC01A80DB11D4D01F9 +:105A5000C801895F9D4F8614970409F415CF093F4B +:105A6000B1E01B0750F40E94952EF30184830F5F71 +:105A70001F4FBFEF6B1A7B0AEBCFD30114961C921A +:105A8000F6CF0A811B81102701271027FE013196CE +:105A90003F018C80800E912E911CC801895F9D4F23 +:105AA0008016910609F4F0CE093FF1E01F0728F4B3 +:105AB000D30114966C910E94A92EBFEF6B1A7B0A3A +:105AC0000F5F1F4FEACF0E94870DDECE8AE0ADCF79 +:105AD0000A811B81102701271027FE0131963F0103 +:105AE0008C80CF01880D911D4C01C80187968614CA +:105AF000970409F4C9CE003EA1E01A0750F40E94B1 +:105B0000952EF30184830F5F1F4FBFEF6B1A7B0A43 +:105B1000ECCFD30114961C92F6CF0A811B8110277B +:105B200001271027FE0131963F018C80800E912EB7 +:105B3000911CC80187968016910609F4A5CE003EF7 +:105B4000F1E01F0728F4D30114966C910E94A92E4E +:105B5000BFEF6B1A7B0A0F5F1F4FEBCF09BD19BD5B +:105B600009B400FEFDCF8091D8008F7D8093D800CE +:105B70008091E00082608093E0008091E00081FDF0 +:105B8000FCCF10926C030E9415152FCB86E290E09B +:105B90000E94952E1B821C821D828E8375CE2D3213 +:105BA000314008F0BACCF0CC2D32314008F069CC4D +:105BB0009FCC87FB082E062687FD819567FD6195A2 +:105BC0000E946F2E0EF4919507FC81950895AA1BF3 +:105BD000BB1B51E107C0AA1FBB1FA617B70710F0D8 +:105BE000A61BB70B881F991F5A95A9F7809590950A +:105BF000BC01CD01089597FB072E16F4009407D041 +:105C000077FD09D00E94E72D07FC05D03EF4909562 +:105C100081959F4F0895709561957F4F0895A1E2FA +:105C20001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F16 +:105C3000FF1FA217B307E407F50720F0A21BB30B61 +:105C4000E40BF50B661F771F881F991F1A9469F7DD +:105C500060957095809590959B01AC01BD01CF0139 +:105C60000895EE0FFF1F0590F491E02D0994692728 +:105C70009627692778278727782708950E94462E38 +:105C8000332312F48A1B9B0B0C94572EA29FB00156 +:105C9000B39FC001A39F700D811D1124911DB29F60 +:105CA000700D811D1124911D08950E94462EB7FF8D +:105CB0000895821B930B08950E94462EA59F900D78 +:105CC000B49F900DA49F800D911D11240895B7FFDE +:105CD0000C945C2E0E945C2E821B930B0895991BE2 +:105CE00079E004C0991F961708F0961B881F7A95D3 +:105CF000C9F780950895FC014150504030F0019063 +:105D00000616D1F73197CF0108958827992708956E +:105D1000FB01DC0104C08D910190801921F44150F8 +:105D20005040C8F7881B990B0895F999FECF92BD92 +:105D300081BDF89A992780B50895A6E1B0E044E0C6 +:105D400050E00C94CF2EA8E1B0E042E050E00C947B +:105D5000CF2E262FF999FECF92BD81BDF89A0197DB +:105D600000B4021639F01FBA20BD0FB6F894FA9AA3 +:105D7000F99A0FBE08950396272F0E94AA2E0E941B +:105D8000A92E252F0E94AA2E242F0C94AA2E01960C +:105D9000272F0E94AA2E0C94A92EDC01CB01FC0116 +:105DA000F999FECF06C0F2BDE1BDF89A319600B474 +:105DB0000D9241505040B8F70895F894FFCFA40ECB +:105DC000A40EAD0EAD0EAF0EAD0EAD0EAD0EA40E0B +:105DD000A40EB40EAD0EAD0EB40E10163816DB17B1 +:105DE0003816DB176B168C16DB178A179717AB1C48 +:105DF000AB1CE51CE51C941DAE1D131D131DB91D28 +:105E0000411E501E501E48194C1A691A7D1A8B1AD1 +:105E1000C01AF21A132C172C6B2C7C2C872CA62C56 +:105E2000A92CE82C092D792C792C142D172D1B2D3C +:0A5E3000412D632D662D682D8D2D88 +:105E3A007205ED0BCC0BC80BC40B710501191A1BAB +:105E4A001C1D1E1F202122010201001C001C1CCA4D +:105E5A00002A00000000C4004C00000000BE0050F0 +:105E6A0000000000B8005100000000B2004F00001E +:105E7A000000AC0052000000000101818283E200B0 +:105E8A00E900EA00B500B600B700CD008301CC00F6 +:105E9A008A01920194012102230224022502260288 +:105EAA0027022A02B300B4006F007000F0343536BE +:105EBA006667F6F7939600FF0100010000FFFF00F6 +:105ECA0000010001FF0000010202020206060609A3 +:105EDA0009090909090F0F0F0F0F0F1515151819C1 +:105EEA0019191919191919191923244022B6A801BF +:0A5EFA008601D000BD06D606F606AC :00000001FF From 5d0a402901d0c98c9e137940a876e0b5fee9af65 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 20:48:16 -0500 Subject: [PATCH 70/94] Update firmware for breaking changes. No code changes. --- .../solartempest/9e/solartempest_9e_via.hex | 2641 +++++++++-------- 1 file changed, 1322 insertions(+), 1319 deletions(-) diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index 231ed93af297..de104edae5a8 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -1,9 +1,9 @@ :100000000C94A3040C94EA040C94EA040C94EA04FF :100010000C94EA040C94EA040C94EA040C94EA04A8 -:100020000C94EA040C94EA040C943F250C94FB24F1 -:100030000C943A260C94EA040C94EA040C94EA0416 +:100020000C94EA040C94EA040C9464250C942025A6 +:100030000C9461260C94EA040C94EA040C94EA04EF :100040000C94EA040C94EA040C94EA040C94EA0478 -:100050000C94EA040C9416260C94EA040C94EA041A +:100050000C94EA040C943D260C94EA040C94EA04F3 :100060000C94EA040C94EA040C94EA040C94EA0458 :100070000C94EA040C94EA040C94EA040C94EA0448 :100080000C94EA040C94EA040C94EA040C94EA0438 @@ -20,7 +20,7 @@ :10013000012AB700150126B700950175108100C08E :10014000050C0901A101850419012AA00215012647 :10015000A002950175108100C005010906A1018565 -:1001600005050719E029E7150025019508750181A6 +:1001600006050719E029E7150025019508750181A5 :10017000020507190029EF1500250195F075018189 :10018000020508190129059505750191029501756A :10019000039101C00660FF0961A1010962150026F3 @@ -147,22 +147,22 @@ :100920000200010803410039006500000012034184 :100930000074006C0061006E0074006900730000B8 :1009400000040309040011241FBECFEFD0E1DEBF75 -:10095000CDBF04B603FE27C080919103909192030E -:10096000A0919303B09194038730904BA740B04B74 -:10097000D1F410929103109292031092930310926B -:10098000940314BE84B7877F84BF0FB6F894A895EC +:10095000CDBF04B603FE27C080919303909194030A +:10096000A0919503B09196038730904BA740B04B70 +:10097000D1F4109293031092940310929503109265 +:10098000960314BE84B7877F84BF0FB6F894A895EA :1009900080916000886180936000109260000FBEBB -:1009A000E0E0F8E7099523E0A2EEB1E001C01D9276 -:1009B000A139B207E1F711E0A0E0B1E0EEE0FDE51A -:1009C00002C005900D92A23EB107D9F70E946126A0 -:1009D0000C944E2E0C940000E8EDF0E080818C7FAA +:1009A000E0E0F8E7099523E0A4EEB1E001C01D9274 +:1009B000A339B207E1F711E0A0E0B1E0E8E3FDE51B +:1009C00002C005900D92A43EB107D9F70E94882677 +:1009D0000C94632E0C940000E8EDF0E080818C7F95 :1009E00080831092E2001092DA001092E100A0EEF3 :1009F000B0E08C9181608C9380818F77808319BC6B :100A0000A7EDB0E08C918E7F8C9380818F7E808368 -:100A10001092DA0208952091E4003091E50095E605 +:100A10001092DC0208952091E4003091E50095E603 :100A2000A9012091EC00822F817020FF06C08091E7 :100A3000E80080FF06C080E008952091E80022FDD4 -:100A40001AC08091FF02882389F0853089F0809157 +:100A40001AC080910103882389F0853089F0809154 :100A5000EB0085FD0FC02091E4003091E5004217C6 :100A60005307F9F29150E1F684E0089582E0089589 :100A700083E0089581E00895EF92FF920F931F9312 @@ -170,10 +170,10 @@ :100A90008091E80085FD0BC08091E8008E778093FF :100AA000E8000E940B05882399F3C82F08C0F701BE :100AB00081917F018093F1000150110949F78C2F3A -:100AC000CF911F910F91FF90EF90089580910103B6 +:100AC000CF911F910F91FF90EF90089580910303B4 :100AD00087FF13C08091E80082FF06C08091E80084 -:100AE0008B778093E80004C08091FF028111F2CFE0 -:100AF00008958091FF028823D9F38091E80080FF58 +:100AE0008B778093E80004C0809101038111F2CFDD +:100AF0000895809101038823D9F38091E80080FF55 :100B0000F8CF8091E8008E77ECCF982F9093E90092 :100B1000242F762F50E0891731F07091EC0020914E :100B2000ED005091F00021FD07C09F5F973071F7F5 @@ -183,1323 +183,1326 @@ :100B6000F0002091EE0027FDE0CF80E00895CF92C5 :100B7000DF92EF92FF920F931F93CF93DF93C8ED15 :100B8000D0E088818F7E8883E7EDF0E0808181600E -:100B9000808381E08093DA0288818C7F888302EEF3 +:100B9000808381E08093DC0288818C7F888302EEF1 :100BA00010E0D8011C921092DA0081EEC82ED12CF0 :100BB000D6011C9288818F7788838881806888839A :100BC00088818F7D888380818068808319BC1092A2 -:100BD000FF02109200031092FE021092FD0290EEAE +:100BD000010310920203109200031092FF0290EEA4 :100BE000E92EF12CF70180818B7F808388818160E1 :100BF000888342E060E080E00E948505D6018C9108 :100C00008E7F8C93F80180818160808380818860F1 :100C10008083D7018C918E7F8C93888180618883BB :100C2000DF91CF911F910F91FF90EF90DF90CF90C8 -:100C30000895FC0180910703909108038617970798 +:100C30000895FC018091090390910A038617970794 :100C4000A0F06115710529F49091E8009E779093CA :100C5000E80090E06115710551F4911108C0809190 :100C6000E80082FF33C080E00895BC01F2CF80919C -:100C7000FF028823B9F18530B9F18091E80083FD46 +:100C700001038823B9F18530B9F18091E80083FD43 :100C80002FC08091E80082FDEACF8091E80080FFCC :100C9000E1CF2091F2003091F3006115710519F058 :100CA0002830310558F091E02830310509F090E006 :100CB0002091E8002E772093E800CCCF819180939B -:100CC000F100615071092F5F3F4FE7CF8091FF0224 +:100CC000F100615071092F5F3F4FE7CF8091010321 :100CD000882341F0853041F08091E80083FFBFCF49 -:100CE00081E0089582E0089583E008958091DC0218 -:100CF00008959C014FB7F8948091D1029091D2024F -:100D0000A091D302B091D4024FBF821B930B0895E0 -:100D10002FB7F8948091D1029091D202A091D30282 -:100D2000B091D4022FBF08952091CE023091CF020E -:100D30002817390771F09093CF028093CE02E0918B -:100D4000CC02F091CD02309721F00084F185E02DA6 -:100D5000099408952091CA023091CB0228173907CF -:100D600071F09093CB028093CA02E091CC02F09193 -:100D7000CD02309721F00680F781E02D0994089587 -:100D8000E091CC02F091CD02309721F00190F081FA -:100D9000E02D099480E00895FA01811101C0FB0162 -:100DA0000994089580918903982F9E7F61F4817042 -:100DB00082608093890380918C03853B18F084EBDB -:100DC00080938C0308958A34B0F381708864F1CFE6 -:100DD000AF92BF92DF92EF92FF920F931F93CF9348 -:100DE000DF93182F062FE901453B08F044EBE42F71 -:100DF000F0E0E853FD4F011110C0E4915E2F4E2F3B -:100E00004983E8835A83DF91CF911F910F91FF901F -:100E1000EF90DF90BF90AF900895202F30E0449185 -:100E2000D42EE42EF12C56E0159FC0011124EFEFD3 -:100E3000F0E0BF010E944F2D812F90E0880F991F95 -:100E400055E5569FD001579FB00D11248A1B9B0B6F -:100E5000982F990F890F5F01A21AB30AAE9CD00197 -:100E6000AF9CB00DBE9CB00D11245B2F089F80017C -:100E70001124012F11275F01A01AB10AAE9C800135 -:100E8000AF9C100DBE9C100D11245F01A81AB10873 -:100E9000A29EC001A39E900DB29E900D1124892F99 -:100EA0009927E81BF90BEE9DC001EF9D900DFE9D6B -:100EB000900D1124E92F62307105A1F050F46115F5 -:100EC000710509F49DCF6130710581F0EB2F512F31 -:100ED00097CF6430710569F080F06630710509F4D0 -:100EE0008FCFF4CFE42F4B2F592F8ACFE42F412FF0 -:100EF00087CFEB2F542F492F83CF4B2F5D2DE12F21 -:100F00007FCF0E9488069C019091B7028091B80221 -:100F1000982B21F03093B4022093B3029091B90240 -:100F20008091BA02982B21F03093B2022093B10243 -:100F3000E091CC02F091CD02309749F082E08093AD -:100F4000B5020480F581E02D85EB92E009940895C7 -:100F50004091B702803F59F48091B80287FF0DC0DD -:100F60001092B80241110BC01092AF0208C0813F2D -:100F700081F48091B80218169CF3442381F080918B -:100F8000B9029091BA02892B09F05AC01092AE02B0 -:100F90000895823F49F447FFF0CF1092B702809145 -:100FA000B8028111ECCFE0CF833F19F41416ACF3F3 -:100FB000E4CF9091B902893F29F41916F4F6109202 -:100FC000B902DBCF8A3F19F497FFD7CFF8CF9091C2 -:100FD000BA028B3F29F497FFD0CF1092BA02CDCF3F -:100FE0008C3F19F41916CCF3C8CF9CE0980F9530BC -:100FF00090F4845F990B21E030E0B90102C0660FE4 -:10100000771F8A95E2F7CB0180959091B6028923EC -:101010008093B602B2CF8D3F31F48091B0028E7FC3 -:101020008093B002AACF8E3F21F48091B0028D7FD1 -:10103000F7CF8F3F09F0A1CF8091B0028B7FF0CF27 -:1010400008958091B00280FD16C081FD16C082FD1A -:1010500016C08091AE028823A1F0883280F428E087 -:10106000829FC001112468E270E00E94632D862FE8 -:10107000672B39F0089582E0089584E0089588E0B0 -:10108000089581E008958091B00280FD14C081FD33 -:1010900014C082FD16C08091AF02882381F0843194 -:1010A00080F422E3829FC001112464E170E00E9479 -:1010B000632D862F08958CE0089589E1089585E0D9 -:1010C000089582E30895803F31F40E94430881959A -:1010D0008093B8020895813F19F40E944308F8CF25 -:1010E000823F31F40E94430881958093B7020895AE -:1010F000833F19F40E944308F8CF893F29F40E94E6 -:1011000021088093B90208958A3F21F40E942108A2 -:101110008195F7CF8B3F31F40E9421088195809310 -:10112000BA0208958C3F19F40E942108F8CF9CE080 -:10113000980F953070F4845F990B21E030E001C086 -:10114000220F8A95EAF78091B602822B8093B6022D -:1011500008958D3F31F48091B00281608093B00298 -:1011600008958E3F21F48091B0028260F7CF8F3FC7 -:10117000B9F78091B0028460F1CF80E00895F894CF -:10118000E82FE295EF70F0E031A1282F2F7081E079 -:1011900090E001C0880F2A95EAF7982F9095932345 -:1011A00091A392A1892B82A3789408959091D5025E -:1011B00092FF06C0282F28712830F9F4877F8460B9 -:1011C00093FF06C0282F28712831F1F4877E8461AF -:1011D0002091D60220FF06C0382F38713830D9F45C -:1011E000877F816021FF06C0282F28712831D1F424 -:1011F000877E816194FD877E0895282F2471243095 -:10120000F9F68B7F8860DCCF282F2471243101F719 -:101210008B7E8861DDCF382F3171313019F78E7FA9 -:101220008860E0CF282F2171213121F78E7E8861DF -:10123000E1CFCF93DF93EC0182389105A9F1D8F586 -:101240008133910509F496C048F58932910509F476 -:101250008AC08A9709F495C0C11521E5D20708F024 -:10126000BCC0C11530E5D30708F014C1C83ED10594 -:1012700008F09CC0C03ED10560F5C83AD10508F021 -:1012800087C0C53AD10508F0FDC0C130D10509F1CC -:101290002097F9F0C430D105E0F440C085339105C2 -:1012A00009F45AC0C997C1F68091D502837089F0BC -:1012B000C0EED0E00EC0833E910599F170F4803EFF -:1012C000910501F1823E910539F68091D50282FDAA -:1012D00021C0CE01DF91CF910895863E910561F145 -:1012E000873E910571F1843E910509F0B5CF80915B -:1012F000D60281FFEECF8091D502C7EED0E084FD0B -:101300000DC0E7CF8091D50280FD12C19091D60229 -:1013100090FFDFCFC3EED0E084FFDBCFD0E0C0E0B2 -:10132000D8CF8091D50282FD06C19091D60290FD62 -:10133000BFCF84FFCECFF2CF8091D50283FDDDCF2A -:10134000C8CF8091D50283FDF9C09091D60291FF5C -:10135000F0CFC4EED0E0BDCF8091D50285FFB9CFEC -:10136000C9E2D0E0B6CF8091D50285FFB2CFC5E308 -:10137000D0E0AFCF8091D50286FFABCFCAE2D0E0FC -:10138000A8CF8091D50286FFA4CFC1E3D0E0A1CF42 -:10139000CF3BD10518F6C85AD0E0CC0FDD1FCF5D8A -:1013A000DE4F0990D881C02DD46493CFC11540E29F -:1013B000D40758F4C11581E0D80708F08ACFC03FA0 -:1013C000D10508F4ABCFD06584CFC11590E4D9071F -:1013D00008F4A4CFDF70D06A7CCFC11525E5D20711 -:1013E00000F5C11534E5D30708F08AC0C11543E5FF -:1013F000D40708F071C0C11582E5D80708F467C0AA -:10140000CE018370992721E030E002C0220F331F04 -:101410008A95E2F7C695C69580E2C89FE00111243F -:1014200052C0C11599E5D907A8F4C11528E5D2071E -:1014300008F06BC0C11536E5D30708F06FCF8C2FCD -:101440000E94D608C82FD0E0DC2FCC27CC27DF7134 -:10145000D0623FCFC1154AE5D40708F45BC0CE0186 -:1014600090568115904208F059CF8D2F8F710E94B0 -:10147000D60890E0982F882788279F719C012C2BF5 -:10148000E901E6CFC55AD0E0C25EDE4FC881D0E0A8 -:10149000D0641FCFCE01E4E096958795EA95E1F7F9 -:1014A00083702C2F26952695237040E2249F90016F -:1014B0001124382B8C2F8370C1E0D0E002C0CC0FF8 -:1014C000DD1F8A95E2F7C22BD32BDC6802CFDC2F1D -:1014D000CC27C16FD06AFDCECE018370992721E061 -:1014E00030E002C0220F331F8A95E2F7C695C695F9 -:1014F00090E2C99FE0011124C22BD32BDA68E9CE18 -:10150000DC2FCC27C46FD06AE4CEDC2FCC27C06F91 -:10151000D06ADFCE8C2F8F700E94D60834E0D6952B -:10152000C7953A95E1F7CF709C2FEC01D069D1CEE9 -:10153000C9E3D0E0CECEC2EED0E0CBCEC6EED0E056 -:10154000C8CE80915902811110925902089580915C -:10155000580290915702892B90915602892B8093C3 -:10156000E401909159029923A1F0892B8093E40121 -:1015700080911D01882341F18091D50287FF24C00D -:101580008EE1E6EEF1E090E0815000F591110E94CD -:10159000A10AE091CC02F091CD023097E1F0809168 -:1015A0001D01882359F08091D50287FF07C08091E3 -:1015B000E4018093E50185E08093E4010280F381FA -:1015C000E02D84EE91E0099486E0DBCF2191222387 -:1015D000D9F29F5FD9CF089590911D019923D1F041 -:1015E0009091D50297FF16C0E82FE695E695E6950F -:1015F000EE31E0F4F0E0EC51FE4F282F277081E04F -:1016000090E001C0880F2A95EAF78095928189239E -:1016100082830895E6EEF1E09191891303C0DF0122 -:1016200011971C9291E0EC3EF907B1F70895909163 -:101630001D019923C1F09091D50297FF14C0E82FA6 -:10164000E695E695E695EE31F8F4F0E0EC51FE4FC4 -:10165000877021E030E001C0220F8A95EAF782818D -:10166000822B82830895A6EEB1E0EFEF90E02D91FA -:10167000821751F0EF3F19F4211101C0E92F9F5F4C -:101680009630A9F7EF3F09F408950E2E000CFF0BDA -:10169000EC51FE4FE6CF80915402909123029813B3 -:1016A00001C008958F5F8770FACF2CE0929F800D64 -:1016B0001124982F977086958695869524E0829FB1 -:1016C000F0011124EB5FFD4F50E040E080E02191FC -:1016D00030E0092E02C0369527950A94E2F7217072 -:1016E0003327042E01C0220F0A94EAF7822B4F5FA2 -:1016F0005F4F4430510559F708952CE0929F800DBB -:101700001124982F977041E001C0440F9A95EAF791 -:1017100086958695869594E0899FF0011124EB5F6C -:10172000FD4F90E080E070E05191DF0111979B0147 -:10173000082E02C0369527950A94E2F7217021956C -:101740002527242325272C9301968430910561F7C2 -:10175000089590E080E00E94AA0690E080E00E9458 -:10176000940610925702109256020E94A70A86E031 -:10177000E5EBF2E0DF011D928A95E9F71092AF02E6 -:101780001092AE021092B0020C94810790935B020B -:1017900080935A020C94A90B882341F08095909174 -:1017A00058028923809358020C94A70A089588232D -:1017B00039F090915802982B909358020C94A70AF4 -:1017C0000895882309F459C0823871F40E94C00634 -:1017D00081FF53C089E30E94170B0E94A70A89E387 -:1017E0000E94EC0A0C94A70A833859F40E94C006A0 -:1017F00080FF43C083E50E94170B0E94A70A83E580 -:10180000EFCF843859F40E94C00682FF36C087E4C7 -:101810000E94170B0E94A70A87E4E2CF9CEF980F63 -:10182000913AF0F290E2980F983088F4877021E0B6 -:1018300030E0A90102C0440F551F8A95E2F7CA01A2 -:10184000809590915802892380935802CBCF9BE5D5 -:10185000980F933020F490E080E00C94AA0698E56D -:10186000980F973120F490E080E00C949406803F2C -:1018700020F00E94A8070C94810708959091FF0220 -:10188000943029F58093D7027093D9026093D802DF -:101890009093E9008FEF9091E800815095FD06C08C -:1018A00095ED9A95F1F700008111F5CF8091E80050 -:1018B00085FF0DC050E040E063E070E087ED92E00E -:1018C0000E943C058091E8008E778093E80008959F -:1018D000BC0184E00C943E0CBC0183E00C943E0CF3 -:1018E0009C0184E08093E9009FEF8091E800915093 -:1018F00085FD06C085ED8A95F1F700009111F5CFC1 -:101900008091E80085FF0CC050E040E066E070E0A8 -:10191000C9010E943C058091E8008E778093E80021 -:101920000895CF93DF93EC0180911D018823B1F1DD -:101930008091D50287FF32C060E284E08093E900A5 -:101940008FEF9091E800815095FD06C095ED9A9536 -:10195000F1F700008111F5CF8091E80085FF1BC0F1 -:1019600080911D0170E050E040E0811104C050E022 -:1019700040E068E070E0CE010E943C058091E80004 -:101980008E778093E80080E2FE01ADEDB2E0019039 -:101990000D928A95E1F7DF91CF91089568E081E09B -:1019A000CDCF81E08093E00080E28093D800109258 -:1019B000C9008FE19EE40197F1F700C0000087E0C5 -:1019C00090EBDC018093910390939203A093930397 -:1019D000B093940388E19CE00FB6F894A8958093A7 -:1019E00060000FBE90936000FFCFCF93C82F882375 -:1019F00009F4AEC08238C1F40E94C00681FDA8C0BF -:101A000089E30E94170B0E94A70A2FEF81EE94E052 -:101A1000215080409040E1F700C0000089E30E941F -:101A2000EC0ACF910C94A70A8338A1F40E94C00657 -:101A300080FD8EC083E50E94170B0E94A70A2FEF3E -:101A400081EE94E0215080409040E1F700C000001A -:101A500083E5E5CF8438A1F40E94C00682FD78C0FA -:101A600087E40E94170B0E94A70A2FEF81EE94E0F3 -:101A7000215080409040E1F700C0000087E4CFCFC4 -:101A80008CEF8C0F813A88F580911D01882301F13C -:101A90008091D50287FF1CC0EC2FE695E695E69570 -:101AA000F0E0EC51FE4F828190E04C2F477021E036 -:101AB00030E002C0220F331F4A95E2F782239323BE -:101AC000892B79F08C2F0E94EC0A0E94A70A09C08A -:101AD000E6EEF1E08191C817A9F321E0EC3EF207B0 -:101AE000C9F78C2F0E94170B9CCF80E28C0F883097 -:101AF00068F4C77021E030E001C0220FCA95EAF710 -:101B000080915802822B809358028BCFEBE5EC0F2B -:101B1000E33040F4F0E0E25EFE4F808190E0CF9150 -:101B20000C94AA06E8E5EC0FE73150F4F0E0EE0F74 -:101B3000FF1FEF5DFE4F80819181CF910C94940641 -:101B4000C03F30F08C2F0E946308CF910C94810726 -:101B5000CF9108951F93CF93DF93182FD0E0C0E06B -:101B6000893311F4C0E5D0E0812F0E94F50C209755 -:101B700031F4812FDF91CF911F910C94E10B8FE90C -:101B80009FE00197F1F700C000002197F0CF0F937D -:101B90001F93CF93DF93C62FD42F022FFC01828196 -:101BA0008823A1F0609390030E94880690938F038E -:101BB00080938E03C77081E001C0880FCA95EAF751 -:101BC000DF91CF911F910F910C94D70B80919003CF -:101BD000681335C080918E0390918F030E9479061F -:101BE000883C910560F510E21D0FCD17B9F080E239 -:101BF0008C0F883040F4C77081E001C0880FCA950F -:101C0000EAF70E94CC0B183048F481E09D2F9770C2 -:101C100001C0880F9A95EAF70E94D70B802F0E9487 -:101C2000AA0D183098F4D77081E001C0880FDA95BA -:101C3000EAF7DF91CF911F910F910C94CC0BC770F5 -:101C400081E001C0880FCA95EAF7F3CFDF91CF9109 -:101C50001F910F910895CF93DF93C7EED3E060E01B -:101C6000CE010E94D62D2196C11588E0D807B9F77C -:101C7000DF91CF9108956F927F928F929F92AF9252 -:101C8000BF92CF92DF92EF92FF920F931F93CF9369 -:101C9000DF9386EFC82E84E0D82E9FE9E92EF12C41 -:101CA000E701C056D10936011BC0F501859094901B -:101CB000692DC8010E94D62D682DC80101960E9489 -:101CC000D62D82E0A80EB11C0E5F1F4FC017D107A2 -:101CD00061F788E1680E711C6896CE15DF0529F062 -:101CE0008E01085111095301E0CF7E0180E6E80E14 -:101CF000F11C80E6C80ED11C8FE5E81684E0F806DA -:101D000079F6DF91CF911F910F91FF90EF90DF90C7 -:101D1000CF90BF90AF909F908F907F906F900895DD -:101D2000CF93C82F6FEF811161E283E290E00E94B0 -:101D3000D62D6FEFC11161E184E290E00E94D62DB3 -:101D40006FEFC11165E285E290E0CF910C94D62D42 -:101D500080E00E94900E60E086E290E00E94D62D26 -:101D60000E943B0E0E942B0E81E00C94900ECF93AC -:101D7000C92F682F84E090E00E94D62D6C2F82E25C -:101D800090E0CF910C94D62D9091D60292FB222711 -:101D900020F9281751F080FB92F99093D602809198 -:101DA000D5029091D6020C94B70E08950F931F930D -:101DB000CF93DF93C42FD0E0CC0FDD1F28E1629FCB -:101DC000C00DD11D112430E6839FC00DD11D1124FB -:101DD000CE0187960E94C22D082F10E0102F0027F9 -:101DE000CE0188960E94C22D9801282BC901DF914F -:101DF000CF911F910F910895462F8A3038F4743097 -:101E000028F46C3018F4672F0C94D60E90E080E024 -:101E10000895BF92CF92DF92EF92FF920F931F939C -:101E2000CF93DF937C010091090310910A03809105 -:101E30005A0290915B02082B192BCFE0D0E0CC2402 -:101E4000C394D12CBC2EC6010C2E02C0880F991F42 -:101E50000A94E2F780239123892B71F4219790F75C -:101E6000B12C8B2DDF91CF911F910F91FF90EF90AF -:101E7000DF90CF90BF900895B7018C2F0E94FC0E89 -:101E80000E941909019751F3ECCFCF93DF93EC0136 -:101E90000E94090FBE010E94FC0EDF91CF910C94AD -:101EA0001909FC01808191810E94450F292F2F7013 -:101EB00092959F7092509E3078F4E92FF0E0E05BAD -:101EC000F14D0C94772D803F19F020F4883E20F4DA -:101ED00081E00895843FE1F380E00895883EC0F3F7 -:101EE000813FD1F7F5CF822F869586958695089507 -:101EF00083E290E00E94C22D813289F484E290E076 -:101F00000E94C22D813159F485E290E00E94C22DD9 -:101F100091E0853209F090E0892F8170089580E08A -:101F2000FCCFCF9384E090E00E94C22DC82F82E2C4 -:101F300090E00E94C22D982F8C2FCF910895609130 -:101F40008903669570E04BE050E08AE091E00E94E2 -:101F5000A82D892B19F481E08093C5020E94880680 -:101F60009093BF028093BE0208954F925F926F924A -:101F70007F928F929F92AF92BF92CF92DF92EF9219 -:101F8000FF920F931F93CF93DF93CDB7DEB7CE575A -:101F9000D1090FB6F894DEBF0FBECDBF5090190126 -:101FA0008091890380FF5DC08090BC029090BD024B -:101FB0008114910409F068C0EDECF3E09E012F5FFD -:101FC0003F4FBE0161587F4FC901A4914A2F50E095 -:101FD000DA01AA0FBB1FA40FB51FA55FBC4FCD90A0 -:101FE000DD90EC90D901CD92DD92ED929D0131967C -:101FF0006A177B0751F72091180143E0249F800D59 -:10200000911D11246E9A2EB12F7B3EB130645FB7C3 -:10201000F894BC01549E600D711D1124861797071A -:1020200009F08DC05FBF8FE594E00197F1F700C024 -:102030000000C258DF4F0FB6F894DEBF0FBECDBF11 -:10204000DF91CF911F910F91FF90EF90DF90CF9094 -:10205000BF90AF909F908F907F906F905F904F90C8 -:10206000089580911A0190911B0123E0829FF00155 -:102070001124E55FFC4F891708F096CF118210827A -:1020800012828F5F3396F7CF8091BB02811194CF7C -:10209000D12CC12C66246394712C53E0452E809181 -:1020A000C60293010C2C01C0220F0A94EAF7822386 -:1020B00009F43CC0F601EE0FFF1FE80DF91DE59095 -:1020C000F490E114F10409F477CF45E050E0B70152 -:1020D000CE0101960E949F2D09810F3F39F18A811F -:1020E000800F9927991F8B32910514F08AE290E0B6 -:1020F0005C01AA0CBB1C8A0D9B1DDC01A55FBC4FBB -:102100005D01049D80011124055F1C4F0A151B050C -:1021100020F0B5E0EB0EF11CD8CF98014D816C8119 -:102120008B810E94E8060D5F1F4FF0CFEFEFCE1AB4 -:10213000DE0AF8E0CF16D10409F0B1CF3DCFFC01A3 -:102140004191CF01E8E03EB9000000C047FF2EB941 -:10215000440F000000C000C000C02EB900C0EA95C6 -:1021600091F75CCFCF93DF9300D00F92CDB7DEB75E -:102170008091890380FF13C09E012F5F3F4F44E68B -:1021800066EE80E00E94E8068B8199812A81209387 -:10219000840390938303809385030E94B50F0F906F -:1021A0000F900F90DF91CF9108950F931F93CF93CE -:1021B000DF93EC0110E000E090911C0190171106F4 -:1021C00009F06CF40E94B50F8C8190E0019681704B -:1021D00099278C83DF91CF911F910F9108952091C2 -:1021E0001A01A801420F511D9A01220F331F240F1B -:1021F000351F255F3C4F4C8160918B0380918A0392 -:1022000096959017110651F04CF0442349F04091F7 -:102210008C030E94E8060F5F1F4FCECF4423B9F313 -:1022200040E0F7CF8F929F92AF92BF92CF92DF9212 -:10223000EF92FF920F931F93CF93DF93EC014C81AA -:10224000042F10E09801D8010E943F2E9B01AC01A1 -:102250000E940A2E4B015C01E0E2F0E0E01BF10B72 -:10226000A5E5B0E0AC019B010E940A2E6B017C0148 -:102270009F01DF010E94842D9B01AC010E94152E5D -:102280009B01AC01280D391D4A1D5B1DC701B6011C -:102290000E941D2EF22E822F90E039E23F1560F150 -:1022A00043E0249F9001112435952795122F109516 -:1022B00000E085E5E82EEF1880911C01081758F121 -:1022C0000E94B50F9C8181E0992319F0903219F496 -:1022D0008FEF8093170180911701890F8C83DF9115 -:1022E000CF911F910F91FF90EF90DF90CF90BF9013 -:1022F000AF909F908F90089525E530E0B901681B5D -:10230000790B9B01220F331F260F371F37FFCCCFCE -:102310002F5F3F4FC9CF8E2D01FD8F2D20911A01C8 -:10232000622F600F7727771F9B01220F331F260F25 -:10233000371F255F3C4F412F60918B030E94E806B9 -:102340000F5FBACF0F931F93CF93DF9380911A0142 -:1023500090911B0123E0829FF0011124E55FFC4F67 -:10236000891740F1C0E0D3E060911C01C61740F12D -:102370000E94B50F209115018091C802820F8093B1 -:10238000C80290911601920F90931601191654F4F9 -:10239000082E000C990B40911C014150550B8417DD -:1023A00095071CF0219520931501DF91CF911F9186 -:1023B0000F9108951182108212828F5F3396D0CFD1 -:1023C0000C2F10E070E0C8010E94632D20911A01CB -:1023D000820F482F50E02091C802022E000C330BD0 -:1023E00002171307BCF020911601022E000C330BCC -:1023F000201731077CF08D9F90011124255F3C4F01 -:1024000040918C0360918B0380918A030E94E806BF -:10241000CF5FAACFFA01EE0FFF1FE40FF51FE55FB4 -:10242000FC4F118210821282F3CF1F93CF93DF9360 -:10243000FC018281DFEF80FFD1E0C0E01AE29091E1 -:102440001C01C91788F00E94B50F8091C702D130D6 -:10245000C9F5811102C080911C0181508093C7028F -:10246000DF91CF911F910895E0911A014C2F50E018 -:102470009A012E0F311DF901EE0FFF1FE20FF31F1E -:10248000E55FFC4F1182108212828091C7028B326D -:10249000ACF0612F0E94412D892F082E000C990B62 -:1024A0004817590749F49F0140918C0360918B03B1 -:1024B00080918A030E94E806CF5FC1CF87FFEDCFEE -:1024C000890FEBCF90E0019660911C0170E00E94B3 -:1024D000632DC4CFEF92FF921F93CF93DF93EC0154 -:1024E00010E0EE24EA94F12C60911C01161770F0B4 -:1024F0000E94B50F9A818C8190FF27C08F5F8C83DB -:10250000DF91CF911F91FF90EF90089520911A01D4 -:10251000422F410F5527551FCA019A01220F331F21 -:10252000280F391F255F3C4F70E0C7010E94632DC3 -:10253000962F8C8140918C0360918B03199F800DA5 -:1025400011240E94E8061F5FCFCF8150D8CF909111 -:10255000890390FF14C090911A0120911B0133E070 -:10256000939FF0011124E55FFC4F921710F00C943B -:10257000B50F8183608342839F5F3396F6CF0895C2 -:102580000F931F93CF93DF9300D00F92CDB7DEB799 -:102590008C018091C90281110AC09E012F5F3F4FBB -:1025A00044EB6FEF0E94E8068A818093C902F8012C -:1025B0006481613069F08091C90240E0662361F076 -:1025C00040E0623011F44091C90280E060E004C054 -:1025D0006091C90240E080E00E94A712F801848166 -:1025E00090E0019663E070E00E94632D84830F9079 -:1025F0000F900F90DF91CF911F910F910895CF937E -:10260000DF9300D00F92CDB7DEB79091890390FF92 -:102610000AC09E012F5F3F4F0E94E8064B816981EF -:102620008A810E94A7120F900F900F90DF91CF9197 -:102630000895CF93DF93EC01E9E8F3E043816281F1 -:102640008C810E94FF128C818F5F8C83DF91CF91F0 -:102650000895CF93DF93EC01EC81F0E0EA50FC4F5A -:102660004491E9E8F3E0628181810E94FF128C814C -:102670008F5F8C83DF91CF910895CF92DF92EF929D -:10268000FF926B017C010E94D206B701A60188E08F -:1026900090E0FF90EF90DF90CF900C94E82DAF92F8 -:1026A000BF92CF92DF92EF92FF920F931F93CF933F -:1026B000DF9300D00F92CDB7DEB7182FF62E042F80 -:1026C000E22E9091890390FF29C0E92FE695AE2F65 -:1026D000B0E0A255BE4F8C918093C4029E7F923091 -:1026E00059F59E012F5F3F4F812F0E94E8064B81D5 -:1026F00069818A810E94A71210938A03F0928B034A -:1027000000938C03EE2051F06091890370918A034D -:1027100080918B0390918C030E943D130F900F903A -:102720000F90DF91CF911F910F91FF90EF90DF906D -:10273000CF90BF90AF900895823019F400918C0330 -:10274000DBCF863019F410918A03D6CF8930D9F3C4 -:10275000893191F6E9518E2F8170D82EE695F0E0FF -:10276000E853FC4FA590B490C12CBB2460911C0190 -:10277000C61618F00E94B50FBFCF2C2D30E0A29ED8 -:10278000C001A39E900DB29E900D112470E00E9496 -:102790004F2D812FD11013C0860F40911A01420F87 -:1027A000532F511D9A01220F331F240F351F255F10 -:1027B0003C4F402F6F2D0E94E806C394D7CF861B55 -:1027C000ECCFE9E8F3E0438128E0421B08F440E065 -:1027D00021E0628181810C944F13E9E8F3E04381A9 -:1027E00028E0420F08F44FEF21E0628181810C94D0 -:1027F0004F13E9E8F3E0628128E0621B08F460E02F -:1028000021E0438181810C944F13E9E8F3E0628178 -:1028100028E0620F08F46FEF21E0438181810C947E -:102820004F13E9E8F3E0818121E043816281885020 -:102830000C944F13E9E8F3E0818121E04381628148 -:10284000885F0C944F1380918D03882319F0815079 -:1028500080938D036091890370918A0380918B032B -:1028600090918C030C943D1380918D03833018F468 -:102870008F5F80938D036091890370918A038091AB -:102880008B0390918C030C943D139091890390FFDE -:1028900036C09170811129C092609093890366239C -:1028A00051F06091890370918A0380918B0390911C -:1028B0008C030E943D1360918903669570E04BE0A4 -:1028C00050E08AE091E00E94A82D892BA9F0109297 -:1028D000C50281E08093C10220E040918C036091A9 -:1028E0008B0380918A030C944F13853210F0986407 -:1028F000D4CF880F982BD1CF0E949F0FEACF089595 -:1029000060E00C94451421E030E0A90102C0440FBE -:10291000551F8A95E2F7CA012091C602662391F0FD -:10292000822B8093C6028091C502811105C08091DF -:10293000890386950E9480148091890380FD05C0DB -:102940000C94B50F80958223ECCF0895CF93DF933D -:10295000C82FC17082FBDD27D0F981FB662760F9A3 -:1029600084E00E94831461E06C2785E00E94831458 -:102970006D2F86E0DF91CF910C9483140F931F93FA -:10298000CF93DF93EC0161E0009709F0682F61704D -:1029900080E00E94831460E0209721F0BE017695CC -:1029A0006795617081E00E94831460E0209731F0A8 -:1029B000BE017695679576956795617082E00E9475 -:1029C000831460E0209739F0BE01B3E076956795F7 -:1029D000BA95E1F7617083E00E948314AE0170E064 -:1029E00060E0BB27A72F962F852F0097A105B10583 -:1029F000D9F1AC01BD0188E08A019B01F4E0369574 -:102A0000279517950795FA95D1F701151105210519 -:102A1000310519F08C5FB901A8018A019B01E2E040 -:102A20003695279517950795EA95D1F70115110564 -:102A30002105310519F08E5FB901A80176956795DA -:102A400057954795452B462B472B09F08F5F8130D3 -:102A5000C9F0882359F08230D1F08330E9F020E0CA -:102A60004EE16FEF80E406C080E0C6CF20E04EE18B -:102A70006FEF82E30E944F13CE01DF91CF911F9140 -:102A80000F91089520E04EE16FEF8EE1F3CF20E04B -:102A90004EE16FEF8AE6EECF20E04EE16FEF87ED7B -:102AA000E9CF0E94BE1490930A03809309030C940B -:102AB000A90B8091090390910A039C01267033278A -:102AC0002630310519F488600C945115877FFCCFAE -:102AD00021E030E002C0220F331F8A95E2F72095F3 -:102AE00030958091090390910A03822393230C94DB -:102AF0005115909155028095892380935502282F76 -:102B0000277039F4282F082E000C330B9217130668 -:102B100021F49091D60292FF07C085958595859501 -:102B20000E94681510925502089521E030E002C01D -:102B3000220F331F8A95E2F78091090390910A03CF -:102B4000822B932B0C94511580918903869581508B -:102B500009F484E261E00C94451480918903869520 -:102B60008F5F853208F081E061E00C94451490910C -:102B7000890390FF07C09695981720F0961710F4D8 -:102B80000C94AD1561E00C944514E9E8F3E083E0A2 +:100CE00081E0089582E0089583E008950895809159 +:100CF000DE0208959C014FB7F8948091D302909141 +:100D0000D402A091D502B091D6024FBF821B930BA3 +:100D100008952FB7F8948091D3029091D402A091B6 +:100D2000D502B091D6022FBF08952091D002309104 +:100D3000D1022817390771F09093D1028093D00225 +:100D4000E091CE02F091CF02309721F00084F1853E +:100D5000E02D099408952091CC023091CD022817FE +:100D6000390771F09093CD028093CC02E091CE02CE +:100D7000F091CF02309721F00680F781E02D0994A1 +:100D80000895E091CE02F091CF02309721F00190CA +:100D9000F081E02D099480E00895FA01811101C0ED +:100DA000FB010994089580918B03982F9E7F61F435 +:100DB0008170826080938B0380918E03853B18F055 +:100DC00084EB80938E0308958A34B0F38170886435 +:100DD000F1CFAF92BF92DF92EF92FF920F931F93EA +:100DE000CF93DF93182F062FE901453B08F044EB22 +:100DF000E42FF0E0E853FD4F011110C0E4915E2FA5 +:100E00004E2F4983E8835A83DF91CF911F910F9131 +:100E1000FF90EF90DF90BF90AF900895202F30E0CB +:100E20004491D42EE42EF12C56E0159FC0011124DC +:100E3000EFEFF0E0BF010E94642D812F90E0880F5A +:100E4000991F55E5569FD001579FB00D11248A1B5D +:100E50009B0B982F990F890F5F01A21AB30AAE9CC2 +:100E6000D001AF9CB00DBE9CB00D11245B2F089F2C +:100E700080011124012F11275F01A01AB10AAE9C35 +:100E80008001AF9C100DBE9C100D11245F01A81AAB +:100E9000B108A29EC001A39E900DB29E900D112498 +:100EA000892F9927E81BF90BEE9DC001EF9D900D4E +:100EB000FE9D900D1124E92F62307105A1F050F4D0 +:100EC0006115710509F49DCF6130710581F0EB2F3B +:100ED000512F97CF6430710569F080F0663071054D +:100EE00009F48FCFF4CFE42F4B2F592F8ACFE42F63 +:100EF000412F87CFEB2F542F492F83CF4B2F5D2DC1 +:100F0000E12F7FCF0E9489069C019091B9028091C8 +:100F1000BA02982B21F03093B6022093B50290913B +:100F2000BB028091BC02982B21F03093B402209335 +:100F3000B302E091CE02F091CF02309749F082E007 +:100F40008093B7020480F581E02D87EB92E009944D +:100F500008954091B902803F59F48091BA0287FF09 +:100F60000DC01092BA0241110BC01092B10208C01C +:100F7000813F81F48091BA0218169CF3442381F0DA +:100F80008091BB029091BC02892B09F05AC010924B +:100F9000B0020895823F49F447FFF0CF1092B902A2 +:100FA0008091BA028111ECCFE0CF833F19F414167F +:100FB000ACF3E4CF9091BB02893F29F41916F4F603 +:100FC0001092BB02DBCF8A3F19F497FFD7CFF8CF3F +:100FD0009091BC028B3F29F497FFD0CF1092BC02B6 +:100FE000CDCF8C3F19F41916CCF3C8CF9CE0980FE5 +:100FF000953090F4845F990B21E030E0B90102C094 +:10100000660F771F8A95E2F7CB0180959091B80221 +:1010100089238093B802B2CF8D3F31F48091B20220 +:101020008E7F8093B202AACF8E3F21F48091B202CC +:101030008D7FF7CF8F3F09F0A1CF8091B2028B7FD8 +:10104000F0CF08958091B20280FD16C081FD16C0D8 +:1010500082FD16C08091B0028823A1F0883280F40E +:1010600028E0829FC001112468E270E00E94782D80 +:10107000862F672B39F0089582E0089584E0089563 +:1010800088E0089581E008958091B20280FD14C047 +:1010900081FD14C082FD16C08091B102882381F0C9 +:1010A000843180F422E3829FC001112464E170E066 +:1010B0000E94782D862F08958CE0089589E1089587 +:1010C00085E0089582E30895803F31F40E9444084A +:1010D00081958093BA020895813F19F40E944408D3 +:1010E000F8CF823F31F40E94440881958093B90281 +:1010F0000895833F19F40E944408F8CF893F29F4EA +:101100000E9422088093BB0208958A3F21F40E9426 +:1011100022088195F7CF8B3F31F40E9422088195F8 +:101120008093BC0208958C3F19F40E942208F8CFE6 +:101130009CE0980F953070F4845F990B21E030E0CB +:1011400001C0220F8A95EAF78091B802822B809322 +:10115000B80208958D3F31F48091B202816080938E +:10116000B20208958E3F21F48091B2028260F7CFDF +:101170008F3FB9F78091B2028460F1CF80E008958B +:10118000F894E82FE295EF70F0E031A1282F2F704E +:1011900081E090E001C0880F2A95EAF7982F90959A +:1011A000932391A392A1892B82A37894089590917F +:1011B000D70292FF06C0282F28712830F9F4877FC4 +:1011C000846093FF06C0282F28712831F1F4877EB0 +:1011D00084612091D80220FF06C0382F3871383042 +:1011E000D9F4877F816021FF06C0282F287128311C +:1011F000D1F4877E816194FD877E0895282F247124 +:101200002430F9F68B7F8860DCCF282F24712431BD +:1012100001F78B7E8861DDCF382F3171313019F7BE +:101220008E7F8860E0CF282F2171213121F78E7EBB +:101230008861E1CFCF93DF93EC0182389105A9F16A +:10124000D8F58133910509F496C048F589329105A6 +:1012500009F48AC08A9709F495C0C11521E5D2071F +:1012600008F0BCC0C11530E5D30708F014C1C83E72 +:10127000D10508F09CC0C03ED10560F5C83AD10543 +:1012800008F087C0C53AD10508F0FDC0C130D105CE +:1012900009F12097F9F0C430D105E0F440C085335E +:1012A000910509F45AC0C997C1F68091D70283709D +:1012B00089F0C0EED0E00EC0833E910599F170F444 +:1012C000803E910501F1823E910539F68091D70269 +:1012D00082FD21C0CE01DF91CF910895863E910518 +:1012E00061F1873E910571F1843E910509F0B5CF1A +:1012F0008091D80281FFEECF8091D702C7EED0E077 +:1013000084FD0DC0E7CF8091D70280FD12C190917E +:10131000D80290FFDFCFC3EED0E084FFDBCFD0E078 +:10132000C0E0D8CF8091D70282FD06C19091D8024B +:1013300090FDBFCF84FFCECFF2CF8091D70283FD47 +:10134000DDCFC8CF8091D70283FDF9C09091D8023C +:1013500091FFF0CFC4EED0E0BDCF8091D70285FFE2 +:10136000B9CFC9E2D0E0B6CF8091D70285FFB2CF26 +:10137000C5E3D0E0AFCF8091D70286FFABCFCAE202 +:10138000D0E0A8CF8091D70286FFA4CFC1E3D0E000 +:10139000A1CFCF3BD10518F6C85AD0E0CC0FDD1F46 +:1013A000CD5DDE4F0990D881C02DD46493CFC11597 +:1013B00040E2D40758F4C11581E0D80708F08ACF7D +:1013C000C03FD10508F4ABCFD06584CFC11590E400 +:1013D000D90708F4A4CFDF70D06A7CCFC11525E50A +:1013E000D20700F5C11534E5D30708F08AC0C1154E +:1013F00043E5D40708F071C0C11582E5D80708F4A9 +:1014000067C0CE018370992721E030E002C0220F2F +:10141000331F8A95E2F7C695C69580E2C89FE00122 +:10142000112452C0C11599E5D907A8F4C11528E5C2 +:10143000D20708F06BC0C11536E5D30708F06FCFAF +:101440008C2F0E94D708C82FD0E0DC2FCC27CC27C8 +:10145000DF71D0623FCFC1154AE5D40708F45BC005 +:10146000CE0190568115904208F059CF8D2F8F7183 +:101470000E94D70890E0982F882788279F719C01A9 +:101480002C2BE901E6CFC55AD0E0C05EDE4FC88103 +:10149000D0E0D0641FCFCE01E4E096958795EA9521 +:1014A000E1F783702C2F26952695237040E2249F28 +:1014B00090011124382B8C2F8370C1E0D0E002C042 +:1014C000CC0FDD1F8A95E2F7C22BD32BDC6802CF4D +:1014D000DC2FCC27C16FD06AFDCECE018370992757 +:1014E00021E030E002C0220F331F8A95E2F7C69553 +:1014F000C69590E2C99FE0011124C22BD32BDA6874 +:10150000E9CEDC2FCC27C46FD06AE4CEDC2FCC2709 +:10151000C06FD06ADFCE8C2F8F700E94D70834E066 +:10152000D695C7953A95E1F7CF709C2FEC01D0691D +:10153000D1CEC9E3D0E0CECEC2EED0E0CBCEC6EE67 +:10154000D0E0C8CE80915B02811110925B020895B9 +:10155000809590915A02982390935A020895809111 +:101560005A0290915902892B90915802892B8093AD +:10157000E60190915B029923A1F0892B8093E6010B +:1015800080911F01882341F18091D70287FF24C0F9 +:101590008EE1E8EEF1E090E0815000F591110E94BB +:1015A000A20AE091CE02F091CF023097E1F0809153 +:1015B0001F01882359F08091D70287FF07C08091CF +:1015C000E6018093E70186E08093E6010280F381E3 +:1015D000E02D86EE91E0099486E0DBCF2191222375 +:1015E000D9F29F5FD9CF089590911F019923D1F02F +:1015F0009091D70297FF16C0E82FE695E695E695FD +:10160000EE31E0F4F0E0EA51FE4F282F277081E040 +:1016100090E001C0880F2A95EAF78095928189238E +:1016200082830895E8EEF1E09191891303C0DF0110 +:1016300011971C9291E0EE3EF907B1F70895909151 +:101640001F019923C1F09091D70297FF14C0E82F92 +:10165000E695E695E695EE31F8F4F0E0EA51FE4FB6 +:10166000877021E030E001C0220F8A95EAF782817D +:10167000822B82830895A8EEB1E0EFEF90E02D91E8 +:10168000821751F0EF3F19F4211101C0E92F9F5F3C +:101690009630A9F7EF3F09F408950E2E000CFF0BCA +:1016A000EA51FE4FE6CF80915602909125029813A1 +:1016B00001C008958F5F8770FACF2CE0929F800D54 +:1016C0001124982F977086958695869524E0829FA1 +:1016D000F0011124E95FFD4F50E040E080E02191EE +:1016E00030E0092E02C0369527950A94E2F7217062 +:1016F0003327042E01C0220F0A94EAF7822B4F5F92 +:101700005F4F4430510559F708952CE0929F800DAA +:101710001124982F977041E001C0440F9A95EAF781 +:1017200086958695869594E0899FF0011124E95F5E +:10173000FD4F90E080E070E05191DF0111979B0137 +:10174000082E02C0369527950A94E2F7217021955C +:101750002527242325272C9301968430910561F7B2 +:10176000089590E080E00E94AB0690E080E00E9447 +:10177000950610925902109258020E94AF0A86E014 +:10178000E7EBF2E0DF011D928A95E9F71092B102D2 +:101790001092B0021092B2020C94820790935D02F4 +:1017A00080935C020C94B10B882321F00E94A80A5C +:1017B0000C94AF0A0895882339F090915A02982B1F +:1017C00090935A020C94AF0A0895882309F452C0EA +:1017D000823871F40E94C10681FF4CC089E30E94E7 +:1017E0001F0B0E94AF0A89E30E94F40A0C94AF0A0F +:1017F000833859F40E94C10680FF3CC083E50E94F3 +:101800001F0B0E94AF0A83E5EFCF843859F40E9482 +:10181000C10682FF2FC087E40E941F0B0E94AF0AFF +:1018200087E4E2CF9CEF980F913AF0F290E2980FA4 +:10183000983050F4877091E001C0990F8A95EAF7CB +:10184000892F0E94A80AD2CF9BE5980F933020F4ED +:1018500090E080E00C94AB0698E5980F973120F467 +:1018600090E080E00C949506803F20F00E94A9074C +:101870000C94820708958093D9027093DB026093E1 +:10188000DA02809101038430F9F48093E9008FEF4C +:101890009091E800815095FD06C095ED9A95F1F77D +:1018A00000008111F5CF8091E80085FF0DC050E068 +:1018B00040E063E070E089ED92E00E943C05809199 +:1018C000E8008E778093E8000895BC0184E00C94D2 +:1018D0003B0CBC0183E00C943B0C9C0184E08093A6 +:1018E000E9009FEF8091E800915085FD06C085EDED +:1018F0008A95F1F700009111F5CF8091E80085FFFE +:101900000CC050E040E066E070E0C9010E943C0578 +:101910008091E8008E778093E8000895CF93DF935D +:10192000EC0180911F018823B1F18091D70287FFDC +:1019300032C060E284E08093E9008FEF9091E8008C +:10194000815095FD06C095ED9A95F1F70000811143 +:10195000F5CF8091E80085FF1BC080911F0170E0EA +:1019600050E040E0811104C050E040E068E070E0E9 +:10197000CE010E943C058091E8008E778093E800BC +:1019800080E2FE01AFEDB2E001900D928A95E1F7A1 +:10199000DF91CF91089568E081E0CDCF81E0809321 +:1019A000E00080E28093D8001092C9008FE19EE4AD +:1019B0000197F1F700C0000087E090EBDC01809315 +:1019C000930390939403A0939503B093960388E1B7 +:1019D0009CE00FB6F894A895809360000FBE90939A +:1019E0006000FFCFCF93C82F882309F4AEC08238A0 +:1019F000C1F40E94C10681FDA8C089E30E941F0BAB +:101A00000E94AF0A2FEF81EE94E021508040904079 +:101A1000E1F700C0000089E30E94F40ACF910C9422 +:101A2000AF0A8338A1F40E94C10680FD8EC083E511 +:101A30000E941F0B0E94AF0A2FEF81EE94E021500D +:101A400080409040E1F700C0000083E5E5CF843896 +:101A5000A1F40E94C10682FD78C087E40E941F0B9A +:101A60000E94AF0A2FEF81EE94E021508040904019 +:101A7000E1F700C0000087E4CFCF8CEF8C0F813AF4 +:101A800088F580911F01882301F18091D70287FF9B +:101A90001CC0EC2FE695E695E695F0E0EA51FE4F86 +:101AA000828190E04C2F477021E030E002C0220F8D +:101AB000331F4A95E2F782239323892B79F08C2FE9 +:101AC0000E94F40A0E94AF0A09C0E8EEF1E0819199 +:101AD000C817A9F321E0EE3EF207C9F78C2F0E9448 +:101AE0001F0B9CCF80E28C0F883068F4C77021E018 +:101AF00030E001C0220FCA95EAF780915A02822B8A +:101B000080935A028BCFEBE5EC0FE33040F4F0E02A +:101B1000E05EFE4F808190E0CF910C94AB06E8E54B +:101B2000EC0FE73150F4F0E0EE0FFF1FED5DFE4FDC +:101B300080819181CF910C949506C03F30F08C2F1D +:101B40000E946408CF910C948207CF9108951F934F +:101B5000CF93DF93182FD0E0C0E0893311F4C0E5B4 +:101B6000D0E0812F0E94F20C209731F4812FDF9179 +:101B7000CF911F910C94E50B8FE99FE00197F1F74E +:101B800000C000002197F0CF0F931F93CF93DF93F6 +:101B9000C62FD42F022FFC0182818823A1F06093ED +:101BA00092030E9489069093910380939003C770DB +:101BB00081E001C0880FCA95EAF7DF91CF911F91AC +:101BC0000F910C94DB0B80919203681335C08091C8 +:101BD0009003909191030E947A06883C910560F5EC +:101BE00010E21D0FCD17B9F080E28C0F883040F461 +:101BF000C77081E001C0880FCA95EAF70E94D40B34 +:101C0000183048F481E09D2F977001C0880F9A9595 +:101C1000EAF70E94DB0B802F0E94A70D183098F482 +:101C2000D77081E001C0880FDA95EAF7DF91CF9194 +:101C30001F910F910C94D40BC77081E001C0880FE5 +:101C4000CA95EAF7F3CFDF91CF911F910F910895D5 +:101C5000CF93DF93C7EED3E060E0CE010E94EB2D7F +:101C60002196C11588E0D807B9F7DF91CF91089583 +:101C70006F927F928F929F92AF92BF92CF92DF929C +:101C8000EF92FF920F931F93CF93DF9386EFC82EAF +:101C900084E0D82E9FE9E92EF12CE701C056D10946 +:101CA00036011BC0F50185909490692DC8010E94F2 +:101CB000EB2D682DC80101960E94EB2D82E0A80E45 +:101CC000B11C0E5F1F4FC017D10761F788E1680E86 +:101CD000711C6896CE15DF0529F08E010851110997 +:101CE0005301E0CF7E0180E6E80EF11C80E6C80ECD +:101CF000D11C8FE5E81684E0F80679F6DF91CF91E4 +:101D00001F910F91FF90EF90DF90CF90BF90AF9019 +:101D10009F908F907F906F900895CF93C82F6FEF13 +:101D2000811161E283E290E00E94EB2D6FEFC1111F +:101D300061E184E290E00E94EB2D6FEFC11168E257 +:101D400085E290E0CF910C94EB2D80E00E948D0E07 +:101D500060E086E290E00E94EB2D0E94380E0E9427 +:101D6000280E81E00C948D0ECF93C92F682F84E04C +:101D700090E00E94EB2D6C2F82E290E0CF910C94CA +:101D8000EB2D0F931F93CF93DF93C42FD0E0CC0F95 +:101D9000DD1F28E1629FC00DD11D112430E6839F15 +:101DA000C00DD11D1124CE0187960E94D72D082F7A +:101DB00010E0102F0027CE0188960E94D72D9801A1 +:101DC000282BC901DF91CF911F910F910895462FC4 +:101DD0008A3038F4743028F46C3018F4672F0C947F +:101DE000C10E90E080E00895BF92CF92DF92EF9213 +:101DF000FF920F931F93CF93DF937C0100910B030E +:101E000010910C0380915C0290915D02082B192BBC +:101E1000CFE0D0E0CC24C394D12CBC2EC6010C2E34 +:101E200002C0880F991F0A94E2F780239123892B1F +:101E300071F4219790F7B12C8B2DDF91CF911F91E9 +:101E40000F91FF90EF90DF90CF90BF900895B70172 +:101E50008C2F0E94E70E0E941A09019751F3ECCFD4 +:101E6000CF93DF93EC010E94F40EBE010E94E70EB7 +:101E7000DF91CF910C941A09FC01808191810E941D +:101E8000300F292F2F7092959F7092509E3078F4CA +:101E9000E92FF0E0EB59F14D0C948C2D803F19F0B7 +:101EA00020F4883E20F481E00895843FE1F380E04F +:101EB0000895883EC0F3813FD1F7F5CF822F8695F4 +:101EC00086958695089583E290E00E94D72D813211 +:101ED00089F484E290E00E94D72D813159F485E2A3 +:101EE00090E00E94D72D91E0883209F090E0892F90 +:101EF0008170089580E0FCCFCF9384E090E00E9451 +:101F0000D72DC82F82E290E00E94D72D982F8C2FDA +:101F1000CF91089560918B03669570E04BE050E09F +:101F20008CE091E00E94BD2D892B19F481E0809313 +:101F3000C7020E9489069093C1028093C00208954F +:101F40004F925F926F927F928F929F92AF92BF92C9 +:101F5000CF92DF92EF92FF920F931F93CF93DF9375 +:101F6000CDB7DEB7CE57D1090FB6F894DEBF0FBE9E +:101F7000CDBF50901B0180918B0380FF5DC080908E +:101F8000BE029090BF028114910409F068C0EDEC8C +:101F9000F3E09E012F5F3F4FBE0161587F4FC901A3 +:101FA000A4914A2F50E0DA01AA0FBB1FA40FB51F5E +:101FB000A35FBC4FCD90DD90EC90D901CD92DD9226 +:101FC000ED929D0131966A177B0751F720911A0116 +:101FD00043E0249F800D911D11246E9A2EB12F7B1A +:101FE0003EB130645FB7F894BC01549E600D711D22 +:101FF00011248617970709F08DC05FBF8FE594E025 +:102000000197F1F700C00000C258DF4F0FB6F894F7 +:10201000DEBF0FBECDBFDF91CF911F910F91FF901B +:10202000EF90DF90CF90BF90AF909F908F907F9078 +:102030006F905F904F90089580911C0190911D01C9 +:1020400023E0829FF0011124E35FFC4F891708F021 +:1020500096CF1182108212828F5F3396F7CF8091D4 +:10206000BD02811194CFD12CC12C66246394712CB4 +:1020700053E0452E8091C80293010C2C01C0220F21 +:102080000A94EAF7822309F43CC0F601EE0FFF1F21 +:10209000E80DF91DE590F490E114F10409F477CF0F +:1020A00045E050E0B701CE0101960E94B42D0981B0 +:1020B0000F3F39F18A81800F9927991F8B32910543 +:1020C00014F08AE290E05C01AA0CBB1C8A0D9B1DF7 +:1020D000DC01A35FBC4F5D01049D80011124035FFF +:1020E0001C4F0A151B0520F0B5E0EB0EF11CD8CFF4 +:1020F00098014D816C818B810E94E9060D5F1F4F15 +:10210000F0CFEFEFCE1ADE0AF8E0CF16D10409F0D7 +:10211000B1CF3DCFFC014191CF01E8E03EB90000D5 +:1021200000C047FF2EB9440F000000C000C000C02F +:102130002EB900C0EA9591F75CCFCF93DF9300D022 +:102140000F92CDB7DEB780918B0380FF13C09E0145 +:102150002F5F3F4F44E666EE80E00E94E9068B81E8 +:1021600099812A8120938603909385038093870326 +:102170000E94A00F0F900F900F90DF91CF910895C4 +:102180000F931F93CF93DF93EC0110E000E0909149 +:102190001E019017110609F06CF40E94A00F8C81AB +:1021A00090E00196817099278C83DF91CF911F91E8 +:1021B0000F91089520911C01A801420F511D9A0111 +:1021C000220F331F240F351F235F3C4F4C8160913A +:1021D0008D0380918C0396959017110651F04CF069 +:1021E000442349F040918E030E94E9060F5F1F4F80 +:1021F000CECF4423B9F340E0F7CF8F929F92AF92B6 +:10220000BF92CF92DF92EF92FF920F931F93CF93E3 +:10221000DF93EC014C81042F10E09801D8010E945B +:10222000542E9B01AC010E941F2E4B015C01E0E289 +:10223000F0E0E01BF10BA5E5B0E0AC019B010E94D2 +:102240001F2E6B017C019F01DF010E94992D9B01D4 +:10225000AC010E942A2E9B01AC01280D391D4A1D9C +:102260005B1DC701B6010E94322EF22E822F90E034 +:1022700039E23F1560F143E0249F90011124359528 +:102280002795122F109500E085E5E82EEF18809134 +:102290001E01081758F10E94A00F9C8181E099232C +:1022A00019F0903219F48FEF809319018091190180 +:1022B000890F8C83DF91CF911F910F91FF90EF9049 +:1022C000DF90CF90BF90AF909F908F90089525E5BD +:1022D00030E0B901681B790B9B01220F331F260FD9 +:1022E000371F37FFCCCF2F5F3F4FC9CF8E2D01FD5A +:1022F0008F2D20911C01622F600F7727771F9B0184 +:10230000220F331F260F371F235F3C4F412F609151 +:102310008D030E94E9060F5FBACF0F931F93CF93EF +:10232000DF9380911C0190911D0123E0829FF001B9 +:102330001124E35FFC4F891740F1C0E0D3E06091C6 +:102340001E01C61740F10E94A00F20911701809135 +:10235000CA02820F8093CA0290911801920F909343 +:102360001801191654F4082E000C990B40911E0107 +:102370004150550B841795071CF0219520931701A8 +:10238000DF91CF911F910F910895118210821282D7 +:102390008F5F3396D0CF0C2F10E070E0C8010E9401 +:1023A000782D20911C01820F482F50E02091CA0205 +:1023B000022E000C330B02171307BCF020911801FA +:1023C000022E000C330B201731077CF08D9F9001FB +:1023D0001124235F3C4F40918E0360918D038091C7 +:1023E0008C030E94E906CF5FAACFFA01EE0FFF1F10 +:1023F000E40FF51FE35FFC4F118210821282F3CFCE +:102400001F93CF93DF93FC018281DFEF80FFD1E048 +:10241000C0E01AE290911E01C91788F00E94A00F37 +:102420008091C902D130C9F5811102C080911E018D +:1024300081508093C902DF91CF911F910895E0915F +:102440001C014C2F50E09A012E0F311DF901EE0FA7 +:10245000FF1FE20FF31FE35FFC4F11821082128215 +:102460008091C9028B32ACF0612F0E94562D892FCA +:10247000082E000C990B4817590749F49F01409109 +:102480008E0360918D0380918C030E94E906CF5FDB +:10249000C1CF87FFEDCF890FEBCF90E00196609120 +:1024A0001E0170E00E94782DC4CFEF92FF921F931F +:1024B000CF93DF93EC0110E0EE24EA94F12C6091CD +:1024C0001E01161770F00E94A00F9A818C8190FF58 +:1024D00027C08F5F8C83DF91CF911F91FF90EF908A +:1024E000089520911C01422F410F5527551FCA0105 +:1024F0009A01220F331F280F391F235F3C4F70E0D2 +:10250000C7010E94782D962F8C8140918E03609197 +:102510008D03199F800D11240E94E9061F5FCFCF04 +:102520008150D8CF90918B0390FF14C090911C01E3 +:1025300020911D0133E0939FF0011124E35FFC4FD4 +:10254000921710F00C94A00F8183608342839F5FE9 +:102550003396F6CF08950F931F93CF93DF9300D058 +:102560000F92CDB7DEB78C018091CB0281110AC0EA +:102570009E012F5F3F4F44EB6FEF0E94E9068A8177 +:102580008093CB02F8016481613069F08091CB02C5 +:1025900040E0662361F040E0623011F44091CB02EC +:1025A00080E060E004C06091CB0240E080E00E94E7 +:1025B0009212F801848190E0019663E070E00E943D +:1025C000782D84830F900F900F90DF91CF911F9102 +:1025D0000F910895CF93DF9300D00F92CDB7DEB760 +:1025E00090918B0390FF0AC09E012F5F3F4F0E9486 +:1025F000E9064B8169818A810E9492120F900F90A7 +:102600000F90DF91CF910895CF93DF93EC01EBE82A +:10261000F3E0438162818C810E94EA128C818F5F9A +:102620008C83DF91CF910895CF93DF93EC01EC8100 +:10263000F0E0EA50FC4F4491EBE8F3E062818181E5 +:102640000E94EA128C818F5F8C83DF91CF91089575 +:10265000CF92DF92EF92FF926B017C010E94D30632 +:10266000B701A60188E090E0FF90EF90DF90CF9057 +:102670000C94FD2DAF92BF92CF92DF92EF92FF921A +:102680000F931F93CF93DF9300D00F92CDB7DEB798 +:10269000182FF62E042FE22E90918B0390FF29C065 +:1026A000E92FE695AE2FB0E0A055BE4F8C918093F8 +:1026B000C6029E7F923059F59E012F5F3F4F812FBA +:1026C0000E94E9064B8169818A810E9492121093CF +:1026D0008C03F0928D0300938E03EE2051F06091F5 +:1026E0008B0370918C0380918D0390918E030E94D7 +:1026F00028130F900F900F90DF91CF911F910F91A2 +:10270000FF90EF90DF90CF90BF90AF900895823010 +:1027100019F400918E03DBCF863019F410918C03ED +:10272000D6CF8930D9F3893191F6E9518E2F817056 +:10273000D82EE695F0E0E853FC4FA590B490C12C5C +:10274000BB2460911E01C61618F00E94A00FBFCFD7 +:102750002C2D30E0A29EC001A39E900DB29E900D44 +:10276000112470E00E94642D812FD11013C0860FB8 +:1027700040911C01420F532F511D9A01220F331F0C +:10278000240F351F235F3C4F402F6F2D0E94E90619 +:10279000C394D7CF861BECCFEBE8F3E0438128E06E +:1027A000421B08F440E021E0628181810C943A13DD +:1027B000EBE8F3E0438128E0420F08F44FEF21E01B +:1027C000628181810C943A13EBE8F3E0628128E0A6 +:1027D000621B08F460E021E0438181810C943A138C +:1027E000EBE8F3E0628128E0620F08F46FEF21E08C +:1027F000438181810C943A13EBE8F3E0818121E07D +:102800004381628188500C943A13EBE8F3E08181B4 +:1028100021E043816281885F0C943A1380918F0399 +:10282000882319F0815080938F0360918B037091FE +:102830008C0380918D0390918E030C9428138091CA +:102840008F03833018F48F5F80938F0360918B0325 +:1028500070918C0380918D0390918E030C942813BA +:1028600090918B0390FF36C09170811129C09260C6 +:1028700090938B03662351F060918B0370918C03CE +:1028800080918D0390918E030E94281360918B0399 +:10289000669570E04BE050E08CE091E00E94BD2D29 +:1028A000892BA9F01092C70281E08093C30220E037 +:1028B00040918E0360918D0380918C030C943A13A8 +:1028C000853210F09864D4CF880F982BD1CF0E9416 +:1028D0008A0FEACF089560E00C94301421E030E0D4 +:1028E000A90102C0440F551F8A95E2F7CA01209141 +:1028F000C802662391F0822B8093C8028091C702A0 +:10290000811105C080918B0386950E946B14809184 +:102910008B0380FD05C00C94A00F80958223ECCF23 +:102920000895CF93DF93C82FC17082FBDD27D0F9C4 +:1029300081FB662760F984E00E946E1461E06C27D9 +:1029400085E00E946E146D2F86E0DF91CF910C948C +:102950006E140F931F93CF93DF93EC0161E0009708 +:1029600009F0682F617080E00E946E1460E020978B +:1029700021F0BE0176956795617081E00E946E142A +:1029800060E0209731F0BE01769567957695679562 +:10299000617082E00E946E1460E0209739F0BE0101 +:1029A000B3E076956795BA95E1F7617083E00E9490 +:1029B0006E14AE0170E060E0BB27A72F962F852F25 +:1029C0000097A105B105D9F1AC01BD0188E08A01EC +:1029D0009B01F4E03695279517950795FA95D1F761 +:1029E000011511052105310519F08C5FB901A80108 +:1029F0008A019B01E2E03695279517950795EA95A0 +:102A0000D1F7011511052105310519F08E5FB901C6 +:102A1000A8017695679557954795452B462B472BEB +:102A200009F08F5F8130C9F0882359F08230D1F0EE +:102A30008330E9F020E04EE16FEF80E406C080E0F3 +:102A4000C6CF20E04EE16FEF82E30E943A13CE0141 +:102A5000DF91CF911F910F91089520E04EE16FEF2C +:102A60008EE1F3CF20E04EE16FEF8AE6EECF20E07B +:102A70004EE16FEF87EDE9CF0E94A91490930C030C +:102A800080930B030C94B10B80910B0390910C037A +:102A90009C01267033272630310519F488600C9488 +:102AA0003C15877FFCCF21E030E002C0220F331FAE +:102AB0008A95E2F72095309580910B0390910C0355 +:102AC000822393230C943C1590915702809589237F +:102AD00080935702282F277091F4282F082E000C7E +:102AE000330B9217130659F09091D80292FD07C04C +:102AF0008595859585950E945315109257020895E6 +:102B00009091D80292FB222720F9281769F080FBC8 +:102B100092F99093D8028091D7029091D8020E94A6 +:102B2000B40E82E00C946415089521E030E002C0F8 +:102B3000220F331F8A95E2F780910B0390910C03CB +:102B4000822B932B0C943C1580918B03869581509E +:102B500009F484E261E00C94301480918B03869533 +:102B60008F5F853208F081E061E00C943014909121 +:102B70008B0390FF07C09695981720F0961710F4D6 +:102B80000C94AD1561E00C943014EBE8F3E083E0B5 :102B9000808311828FEF828384EB83831482608130 -:102BA0007181828193810C943D1369EE7EEF90E0F8 -:102BB00080E00E94F42D60E082E090E00E94D62D3B -:102BC00060E083E090E00E94D62D10925B021092AC -:102BD0005A0260E084E090E00E94D62D60E082E23C -:102BE00090E00E94D62D60E085E090E00E94D62D16 -:102BF00060E086E090E00E94D62D6FEF87E090E0E5 -:102C00000E94D62D40E050E0BA0188E090E00E949A -:102C1000E82D60E08DE090E00E94D62D40E050E08D -:102C2000BA0188E190E00E94E82D60E087E190E041 -:102C30000E94D62D40E050E0BA018CE190E00E9465 -:102C4000E82D70E060E080E290E00E94F42D40E02A -:102C500050E0BA0188E190E00E94E82D80E00E94F7 -:102C6000900E0E94A80E40E050E0BA018FE090E084 -:102C70000E94E82D40E050E0BA0183E190E00C941E -:102C8000E82D90E080E00E94D02D893E9E4F11F407 -:102C90000C94780F80E008951092580280911D01E5 -:102CA000E6EEF1E0882359F08091D50287FF07C056 -:102CB0008EE1DF011D928A95E9F70C94A90B86E05D -:102CC000F8CF1F93CF93DF93CDB7DEB7AA970FB698 -:102CD000F894DEBF0FBECDBF81E093E02091F100FC -:102CE000DC012D93CD01B3E089309B07B9F78091CA -:102CF0000203833009F471C0B8F4813009F448C08C -:102D0000823009F4B2C08091E80083FF3AC180911B -:102D10000103909102039A3008F033C1E92FF0E0EB -:102D2000E25AF14D0C94772D8A3009F48DC08B3026 -:102D300009F470C0893039F780910103813219F7A5 -:102D40008091050390910603009711F00297D9F640 -:102D50008091E800877F8093E8008091E80082FFFF -:102D600037C08091F2009091F300029729F480918E -:102D7000F1008B7F813021F48091F1008093DC029F -:102D80008091E8008B778093E8000E946605BBCFB6 -:102D900080910103813A09F0B6CF8091E800877FE6 -:102DA0008093E8008091050390910603892B61F4DC -:102DB00060E28DED92E070E00E9419068091E800DB -:102DC0008B778093E8009FCF60E090E080E0F3CFC6 -:102DD0008091FF028111C1CF96CF80910103813A8A -:102DE00009F091CF8091050390910603892B09F09A -:102DF0008ACF8091E800877F8093E8008091E80087 -:102E000080FFFCCF80911D018093F1008091E8004C -:102E10008E77B9CF80910103813209F074CF809110 -:102E2000050390910603892B09F06DCF8091E8008E -:102E3000877F8093E8000E9466058091030380935A -:102E40001D010E944C165FCF80910103813209F071 -:102E50005ACF8091E800877F8093E8000E94660542 -:102E6000809104038093DB024ECF80910103813A6D -:102E700009F049CF8091E800877F8093E800809136 -:102E8000E80080FFFCCF8091DB02BECF803899F054 -:102E9000823809F076C0809105038F70873008F082 -:102EA00070C08093E9008091EB0085FB882780F952 -:102EB0001092E90006C08091FD029091FE029111EE -:102EC00082609091E800977F9093E8008093F100F2 -:102ED0001092F1008091E8008E77B5C1882309F443 -:102EE000A2C1823009F04DC0809103038111A6C1B7 -:102EF000809105038F702FEF280F263008F041C016 -:102F00008093E9002091EB0020FF98C1933031F4C9 -:102F10008091EB0080628093EB0090C19091EB0078 -:102F200090619093EB0021E030E001C0220F8A9580 -:102F3000EAF72093EA001092EA008091EB008860A3 -:102F4000EACF81111EC0109103031F778091E30027 -:102F50008078812B8093E3008091E800877F8093C5 -:102F6000E8000E9466058091E80080FFFCCF809118 -:102F7000E30080688093E30082E0111183E0809396 -:102F8000FF028091E80083FF0AC08091E800877FFC -:102F90008093E8008091EB0080628093EB00AA961A -:102FA0000FB6F894DEBF0FBECDBFDF91CF911F915A -:102FB00008958058823028F720910303309104034C -:102FC0002C3DE3E03E07A1F583E08A838AE2898312 -:102FD0004FB7F894DE01139620E03EE051E2E32F74 -:102FE000F0E050935700E49120FF03C0E295EF70AA -:102FF0003F5FEF708E2F90E0EA30C0F0C7968D9360 -:103000009D932F5F243159F74FBF8091E800877F50 -:103010008093E8006AE270E0CE0101960E941906F2 -:103020008091E8008B778093E800ABCFC096E7CF24 -:103030008091050390910603432F55274330510596 -:1030400009F44AC078F54130510509F47AC08BE59E -:1030500090E0E6EBF8E04230510509F092CF209184 -:10306000E800277F2093E8002091070330910803B0 -:103070008217930708F49C0140E02115310509F0FF -:1030800065C0411163C08091E80082FDC9CF809185 -:10309000FF02882329F2853019F28091E80083FF2E -:1030A000F2CFBECF4132510509F43CC04232510546 -:1030B00009F067CF8330910508F063CFFC01EE0F74 -:1030C000FF1FEA52FE4F0190F081E02D8D529E4F7E -:1030D000DC018C9190E01AC0332721303105D1F00A -:1030E0002115310561F02230310509F04ACFE3E2C4 -:1030F000F9E0E4918E2F90E0E3E2F9E007C0E1E42B -:10310000F9E0E4918E2F90E0E1E4F9E0009709F412 -:1031100038CFA5CFEDE2F9E0E4918E2F90E0EDE21B -:10312000F9E0F4CF8330910508F02BCF880F991F79 -:10313000FC01E452FE4F0190F081E02D89E090E027 -:103140008ECF82E190E0E1E1F9E089CF8091FF024A -:10315000882309F465CF853009F462CF8091E800B7 -:1031600083FD5ECF8091E80082FD8DCF8091E800E5 -:1031700080FF83CF8091F2009091F30021153105FB -:1031800019F08830910550F041E0089709F040E0CF -:103190008091E8008E778093E8006FCF4491409350 -:1031A000F1003196215031090196E8CF803809F0BD -:1031B000E8CE8091E800877F8093E800809100034B -:1031C0008093F10087CE8111DCCE10910303123081 -:1031D00008F0D7CE8091E800877F8093E8001093B5 -:1031E00000030E946605112311F084E005C0809160 -:1031F000E30087FDFACF81E08093FF0242E061ECBB -:1032000081E00E94850542E261EC84E00E94850530 -:1032100042E261EC82E00E94850542E260EC83E0DC -:103220000E948505AECE80910303813009F0A9CEBE -:1032300081E0933009F080E08093FE021092E90073 -:103240008091E800877F8093E8000E94660599CE10 -:103250003F924F925F926F927F928F929F92AF9226 -:10326000BF92CF92DF92EF92FF920F931F93CF9373 -:10327000DF9300D000D00F92CDB7DEB78C01FC01F8 -:1032800083819481892B31F08081918189238F3FC3 -:1032900009F056C60F900F900F900F900F90DF918E -:1032A000CF911F910F91FF90EF90DF90CF90BF9043 -:1032B000AF909F908F907F906F905F904F903F90D6 -:1032C00008950E94090FF82E682F89819A810E9423 -:1032D0007D0B69817A818F2D0E94FC0E7C01F801A3 -:1032E0008281882309F41EC6970122513F4520316F -:1032F000310508F0D6C58FEF97E00E94C22DFEEE93 -:10330000EF0E57EE852E53E0952E882381F18091A4 -:103310005502877009F4BECFF8018281882309F431 -:10332000B9CF82E00F900F900F900F900F90DF9128 -:10333000CF911F910F91FF90EF90DF90CF90BF90B2 -:10334000AF909F908F907F906F905F904F903F9045 -:103350000C947915811428E09206C9F2C4010E94E8 -:10336000C22D811101C0EA943FEF831A930AE11044 -:10337000F1CF1C821B82442443944AE0342E740112 -:103380004FEFE41AF40AC4010E94C22D89831A8205 -:10339000882309F4BCCF9FEF980F933000F58A8300 -:1033A000498252E0850E911CC7010E94C22D8B8379 -:1033B000882309F4ACCFCE0101967C01F70120816E -:1033C0002223E9F2213009F049C0918182819130B4 -:1033D00041F4F2E0EF0EF11C0E94AA0D09C0470172 -:1033E000EACF923049F422E0E20EF11C0E94F50C83 -:1033F0003FEFE31AF30AE2CF933031F432E0E30E09 -:10340000F11C0E94E10BF4CF943021F04FEFE41A4D -:10341000F40AEECF52E0E50EF11C30E020E0B701F7 -:103420006F5F7F4FF70141818053990B8A3091057F -:1034300050F021503109E0F28FE99FE00197F1F758 -:1034400000C00000F6CF329EF001339EF00D112433 -:103450009C012E0F3F1F842F7B01E1CFE22FF0E074 -:10346000EA5DFD4F5490822F86958695869590E073 -:10347000FC01EA5EFD4F64902770712C022E02C0A1 -:10348000759467940A94E2F7E1E06E227724FC01D8 -:10349000EA5FFD4FA490B12C022E02C0B594A79410 -:1034A0000A94E2F7F1E0AF22BB24FC01EA50FE4FA0 -:1034B000C490D12C02C0D594C7942A95E2F721E09C -:1034C000C222DD246114710419F081EE0E94F50C12 -:1034D000A114B10419F086EE0E94F50C852D0E940E -:1034E000AA0DAB2819F086EE0E94E10B672819F0AF -:1034F00081EE0E94E10BCD2809F47ACF8CE26CCFEB -:1035000081E00E9495150E94591501CF81E00E942B -:103510006815F9CF82E0F5CFF3E8EF16FFE5FF0677 -:1035200009F4C5C024E8E2162FE5F20609F0D9C473 -:10353000882309F4ECCEF0906A02EE24E394FE2492 -:10354000F0926A020E948806909368028093670254 -:103550008091690210921A01882309F4B6C08AE2A8 -:1035600080931B0180931C0181E20E9480140E94C1 -:10357000B210E0926A0210926902109266021092F2 -:103580006502C5CE882309F47AC080916D0281114D -:1035900006C081E080936D0282EE0E94F50C0E94CD -:1035A000880690936C0280936B028BE20E94F50C6C -:1035B000F8018281882309F4D4C410929003F3E0C7 -:1035C000EF16FDE5FF0608F0B3C02AEFE2162CE582 -:1035D000F20630F4C70182509C45449708F0AEC013 -:1035E0000E94910F9093D6028093D50240E1E41699 -:1035F0004CE5F40609F48AC108F0F8C088E0E81642 -:103600008CE5F80609F470C108F0C4C0E4E0EE16D9 -:10361000ECE5FE0609F45AC108F0A6C022E0E21665 -:103620002CE5F20609F44CC18091D502826033E0AA -:10363000E3163CE5F30609F446C18091D50290916A -:10364000D6020E94B70E0E944C1661CE8823A1F0CC -:1036500080916D02811106C081E080936D0282EE3F -:103660000E94F50C0E94880690936C0280936B0276 -:1036700081EE0E94F50C99CF81EE0E94E10B8BE266 -:103680000E94E10B95CF882309F492CF81EE0E942E -:10369000F50C83EE0E94F50C8FE40E94F50C8FE48C -:1036A0000E94E10B83EE0E94E10B81EEE9CF8823BB -:1036B00009F47ECF81EE0E94F50C83EE0E94F50C9A -:1036C00080E50E94F50C80E5EBCF8AE280931B0138 -:1036D00080931C0181E2FF2029F00E9480140E9447 -:1036E000B21049CF0E94801446CFE5EFEE16ECE50C -:1036F000FE06B9F090F026EFE2162CE5F20609F08E -:1037000057CF27E245EE66EE09C427E245EE65EEA7 -:1037100005C426E241EE60EE01C427E245EE64EE08 -:10372000FDC326E241EE62EEF9C328E241E0EFCFAD -:1037300031E6E3163DE5F30609F452CF80915802D5 -:1037400046E1E4164CE5F40609F018C48A7A91E0E3 -:1037500009F490E0909304028111FDC089E20E9477 -:10376000170B0E94A70AD3CD8091D502806146E055 -:10377000E4164CE5F40609F4A6C08091D5028860F1 -:1037800057E0E5165CE5F50608F49DC08091D5028A -:10379000806299C08CE0E8168CE5F80609F4AEC0AA -:1037A00078F48091D5028C60EAE0EE16ECE5FE0636 -:1037B00009F489C008F49CC08091D5028E7F83C033 -:1037C0008091D502877F2EE0E2162CE5F20609F4FF -:1037D0007AC08091D5028B7F3FE0E3163CE5F3068B -:1037E00008F471C08091D5028F7E6DC04CEFE41655 -:1037F0004CE5F40609F486C0A0F584E1E8168CE5F2 -:10380000F80609F497C098F4E2E1EE16ECE5FE063E -:1038100009F480C08091D5028F7BF3E1EF16FCE5BF -:10382000FF0608F450C08091D502837F4CC02AEF78 -:10383000E2162CE5F20609F44DC008F051C045E14E -:10384000E4164CE5F40609F0F8CE8091D50282FB2F -:10385000992790F921E0922790FB82F990FB83F958 -:1038600032C0E1145DE5F50609F45AC0A0F4809178 -:10387000D60283609EEFE9169CE5F90671F180910E -:10388000D6028D7FEFEFEE16ECE5FE0630F180916B -:10389000D6028C7F22C0F2E0EF16FDE5FF0609F4A8 -:1038A00058C008F450C031E6E3163DE5F30609F0D0 -:1038B000C4CE9091D502892F8F7E94FF806103C082 -:1038C0008091D50281608093D502B7CE8091D502D8 -:1038D0008460F9CF8091D60281608093D602ADCE0C -:1038E0008091D6028260F9CF8091D5028064EBCFBF -:1038F0000E944C168091D5028068E5CF8091D50258 -:103900008D7FE1CF8091D6028E7FE7CF8091D50267 -:103910008F7DD9CF0E944C168091D5028F77D3CF5F -:103920008091D602982F909591708E7F892B90FB75 -:1039300081F9D3CF0E944C169091D502892F97FB25 -:1039400087F98058C0CF61E08EE090E00E94D62DCC -:1039500074CE60E0F9CF85E302CF85E30CC380919C -:10396000890380FF1BC08E7F809389036091890348 -:1039700070918A0380918B0390918C030E943D1378 -:103980001092C5025FEF80E792E051508040904076 -:10399000E1F700C000000E94B50FB9CC81608093B0 -:1039A000890361E086950E944514B1CC44EA55E153 -:1039B0006DEA75E10E94CC06AACC4DEA55E164EAB5 -:1039C00075E1F8CF4AE154E161E174E1F3CF49EFE9 -:1039D00053E165E074E1EECF41EE53E16DEE73E14A -:1039E000E9CF4DEE53E161EE73E1E4CF44E354E1FE -:1039F00063E274E1DFCF61E081E0D5CF65E082E092 -:103A00000E94B71584CC68E086E0FACF64E18FE0CD -:103A1000F7CF67E185E1F4CF62E289E1F1CF61E0C0 -:103A200083E2C1CF4BE5E4164DE5F40611F15CE508 -:103A3000E5165DE5F50609F0D3C28091D60282FB5A -:103A4000882780F991E089270E94C40EC9C20E948C -:103A50004C168FEF94E3ECE081509040E040E1F7AA -:103A600000C000000E94D10C0E94D51550CC81E00E -:103A7000EBCF80E0E9CFC7010E94550BD82EBFC223 -:103A80002F2D2F70C22E8F2D807F19F0C29490EFB2 -:103A9000C922DD20C9F0CC2069F080E28E0D88308B -:103AA00010F081100BC080915802C82AC0925802B1 -:103AB0000E94A70A8E2D0E94F50C19C08091570212 -:103AC000C82AC0925702F4CF8E2D0E94E10BCC2061 -:103AD00071F0C09480E28E0D883010F081103EC0ED -:103AE00080915802C822C09258020E94A70AE92D6C -:103AF000E850FF0B349720F40E94C0060E94A614E1 -:103B0000AA2009F4C7CB8091550280FDC3CBF801F0 -:103B100012828595859585950E949515C8010E940C -:103B20002819809155028595859585950F900F9060 -:103B30000F900F900F90DF91CF911F910F91FF90F9 -:103B4000EF90DF90CF90BF90AF909F908F907F903D -:103B50006F905F904F903F900C9468158091570242 -:103B6000C822C0925702C1CF3F2D3F70B32E8F2D78 -:103B7000807F803219F0B29480EFB822882071F0F3 -:103B800041E0841681F1DD20D9F1CC2091F1F801DA -:103B9000858180FF8FCF8F7085832BC0DD20B1F0B2 -:103BA000909159028B2D892BC11003C00E94D70B15 -:103BB0009ECF51E0C512FACF2091D60222FD97CFB9 -:103BC000981709F494CF8093590291CFC11006C081 -:103BD0000E94A10A8B2D0E94CC0B89CF81E0C816D0 -:103BE00009F485CFF5CFDD2031F095E09C1508F480 -:103BF0007ECF8B2DDBCFE4E0EC1508F478CFEACF55 -:103C0000CC2041F3F9E38F1209C02FEF37EE43E0E8 -:103C1000215030404040E1F700C000008E2D0E944E -:103C2000E10B65CF8F2D86958695837061F081308D -:103C300009F05DCFC7019370D11002C090E080E021 -:103C40000E94940654CFC7019370D11002C090E037 -:103C500080E00E94AA064BCF8E2DDD2029F00E9425 -:103C600063080E94810743CF0E94A807FACF8F2DD7 -:103C7000837009F040C0D1103ACF4E2D4295469541 -:103C80004770440F440F8E2D8F7090E0042E02C0B9 -:103C9000880F991F0A94E2F730E020E0E4FE09C0A3 -:103CA0002FE030E002C0220F331F4A95E2F7209543 -:103CB00030954F2D469546954370423099F078F4F3 -:103CC00060915A0270915B02413039F0822B932B44 -:103CD000862397230E94C60B0ACF862B972B822B15 -:103CE000932BF8CF822B932B20915A0230915B02B9 -:103CF00082279327EFCF8695DD2011F08F2D8170DD -:103D0000882309F4F4CE4E2D429546954770440F12 -:103D1000440F8E2D8F7090E0042E02C0880F991FE3 -:103D20000A94E2F730E020E0E4FE09C02FE030E042 -:103D300002C0220F331F4A95E2F7209530954F2D90 -:103D4000469546954370423099F078F460910903A6 -:103D500070910A03413039F0822B932B86239723ED -:103D60000E945115C4CE862B972B822B932BF8CF14 -:103D7000822B932B2091090330910A0382279327EA -:103D8000EFCF5F2D5F70F52EDD2029F0852F0E948B -:103D900095158E2D0BCF8E2D0E94CC0B8F2D0E9452 -:103DA0006815A5CE8E2D92EF891609F449C0981595 -:103DB00070F0E0EF8E1639F1F1EF8F16C9F1DD20CA -:103DC00009F45FC0C11076CE8F2D8F7136C023EFFE -:103DD0008216D9F134EF8312F2CFDD2009F446C008 -:103DE000FF2DFF71FF2E8F2F0E9495158091D60217 -:103DF00082FD07C028E0F29EC001112483608093F9 -:103E000055028F2D1AC0DD2071F044E04C1508F4E6 -:103E10006ECE2F2D2F7181E090E002C0880F991F88 -:103E20002A95E2F7A7CF55E05C1508F460CEF1CFF4 -:103E30008F2D8F71DD2009F4B2CF0E94951557CEDA -:103E40008F2D8F71DD20C9F3AACF90E080E0DD20B7 -:103E500009F486CF9F2D9F7121E030E0F90102C067 -:103E6000EE0FFF1F9A95E2F7CF017ACF81E00E9413 -:103E7000791531E03C1508F03ACE82E00E947915C0 -:103E800036CECC2059F0893309F0C8CE4FEF57EE2B -:103E900083E0415050408040E1F7BECE8F2D8F71BE -:103EA0007ECFF0E1EF16FFE5FF0609F429CB21E113 -:103EB000E2162FE5F20609F42DCB42E8E4164FE5B1 -:103EC000F40609F4E0CB08F027CB90E8E9169FE56B -:103ED000F90609F457CBE1E8EE16EFE5FE0609F422 -:103EE000B5CB33EFE3163CE5F30609F412CC08F04A -:103EF000FCCB58EDE5165CE5F50609F406CC89ED3A -:103F0000E8168CE5F80609F410CC97EDE9169CE567 -:103F1000F90609F04DCB26E241EE61EEC8010E94A0 -:103F2000C70DF5C930E1E3163FE5F30609F4EECA23 -:103F300041E1E4164FE5F40609F0BFCF82E0E7CA9D -:103F400085E0DE01119601900D928A95E1F7F80166 -:103F5000228189819A812111B4C90E94550BF82EC2 -:103F6000B8C9F6E1EF16FCE5FF06D1F58091040231 -:103F70008111F3CC89E20E94EC0AF3CB82722CEC23 -:103F8000E2162CE5F20609F431CD08F0A7C046ECA4 -:103F9000E4164CE5F40609F415CD08F076C093EC70 -:103FA000E9169CE5F90609F401CD08F05DC0F2ECD4 -:103FB000EF16FCE5FF0609F4D2CCEAE5EE16EDE5D6 -:103FC000FE0609F454CD08F02DCDE1142CE5F206DF -:103FD00009F43DCD3EEDE3163CE5F30609F444CD8E -:103FE000F8018281E080F180882309F444CDC70183 -:103FF0000E94090FD82E682FC7010E947D0BB701C0 -:104000008D2D0E94FC0E0E9419097C01882EF8015A -:10401000D280C580C2943FE0C32280915502877050 -:10402000A1F0AD2CDD2091F08F2D807F803421F028 -:1040300080E28E0D883048F082E00E9479158091F0 -:1040400055028770AA24A3948111A12C9F2C9294CD -:104050002FE09222FBE0F91508F449CDE92DF0E0BC -:10406000E859F14D0C94772D24ECE2162CE5F2067C -:1040700009F4A3CC41E154E16AE174E135ECE316C3 -:104080003CE5F30609F496CC98CF49ECE4164CE5F0 -:10409000F40609F4A1CC88F497ECE9169CE5F9063E -:1040A00009F495CC45E054E169EF73E1E8ECEE16D4 -:1040B000ECE5FE0609F47ECC80CFFAECEF16FCE5C9 -:1040C000FF0609F48ECC43E254E164E374E12BEC87 -:1040D000E2162CE5F20609F46DCC6FCF31EDE31654 -:1040E0003CE5F30609F492CCB8F45EECE5165CE529 -:1040F000F50609F483CC08F47ECC9FECE9169CE528 -:10410000F90609F480CC6EE089E0E0EDEE16ECE50E -:10411000FE0609F475CC51CFF4EDEF16FCE5FF0671 -:1041200009F47ACC78F432EDE3163CE5F30609F4B1 -:1041300070CC61E088E143EDE4164CE5F40609F447 -:1041400032CC3BCF55EDE5165CE5F50609F467CCBE -:104150008DE5E816F80609F4DAC82FCF1F93CF9340 -:10416000DF9380912202807FA9F480911F0288232F -:1041700089F080915402D091230260911D027091C8 -:104180001E02A0912002B0912102C62FC72316E083 -:10419000D81304C0DF91CF911F91089590E010973C -:1041A00011F0CF3F19F401968770F2CF189F90015C -:1041B000199F300D1124F901EC5DFD4F418147132A -:1041C000F2CF40814613EFCF42814111ECCF4381C2 -:1041D00054814A1B5B0B483C510528F78091220211 -:1041E0008F70806180932202F901E75DFD4F80812D -:1041F0008F70806180838DE192E00E942819DF91A9 -:10420000CF911F910C944B0BAF92BF92CF92DF9244 -:10421000EF92FF920F931F93CF93DF93CDB7DEB74B -:1042200061970FB6F894DEBF0FBECDBF8C0185E05D -:10423000F801DE011D9601900D928A95E1F7F801D3 -:10424000E2808DE1A82E82E0B82E6091200270916C -:1042500021026115710509F432C190911D0240914E -:104260001E02892F84238F3F09F429C120813181C7 -:10427000C380D480F0901F02F601E61BF70BFF20ED -:1042800009F4E8C080912202582F507FE83CF105E4 -:1042900008F0ABC0511177C0FE2C431321C092131C -:1042A0001FC0E1101DC08F70806180932202C50184 -:1042B0000E94281980912202F80185838F2D619632 -:1042C0000FB6F894DEBF0FBECDBFDF91CF911F9127 -:1042D0000F91FF90EF90DF90CF90BF90AF90089537 -:1042E000CD2829F0822F83238F3F09F003C180E07E -:1042F000F82FF170DF2E80FF3CC080915402409176 -:10430000230256E0841315C02D873E878D859E8538 -:104310000E94450F292F22952F702230F0F0243073 -:1043200018F59F70F1F0F8019581907FD1F4D12CB0 -:104330001EC090E0589FF001599FF00D1124EC5DD4 -:10434000FD4F6181361306C06081261303C0628170 -:10435000E6120FC001968770D5CF9F7011F08823A9 -:1043600031F3805E883018F3C8010E942819FD2CB3 -:10437000A5CFEE2009F4A2CF809122028160809324 -:104380002202F12C9BCF431306C0921304C0F80104 -:10439000EE2009F479C0C8010E94510F882309F169 -:1043A000EE20F9F080912202803270F020911D02FF -:1043B00030911E0238872F831986DB86CA868C8748 -:1043C000CE0107960E94281986E0F801ADE1B2E01F -:1043D00001900D928A95E1F70E94AE20FF24F3949C -:1043E0006DCFC8010E942819F9CF51110AC08DE183 -:1043F00092E00E94281986E0F50111928A95E9F76A -:10440000C0CF43130FC092130DC0E1100BC0F801D1 -:104410008583C8010E94281986E0F50111928A95CA -:10442000E9F74CCFC8010E94510F8823D1F2EE204A -:10443000C1F280912202803238F220911D02309127 -:104440001E023A8329831B82DD82CC828E83CE01B9 -:104450000196B8CFE83CF105F8F6FE2CEE2009F203 -:1044600043131FC092131DC08091220280FD10C013 -:10447000982F907F69F0F8018583903F31F0982F55 -:10448000907F905F8F70892B8583C8010E942819C7 -:1044900086E0F801ADE1B2E001900D928A95E1F776 -:1044A0000DCFC8010E94510F81118ECF8091220241 -:1044B000816080932202C8010E942819FFCEEE205D -:1044C00009F48FCFC8010E94510FF82E882309F4F8 -:1044D00088CF86E0F801ADE1B2E001900D928A95B7 -:1044E000E1F780911D0290911E020E94450F0E94EB -:1044F000AE20E4CE81E08E25FBCE1F93CF93DF93D9 -:10450000CDB7DEB767970FB6F894DEBF0FBECDBF4D -:104510004B8B5C8B6D8B7E8B8F8B61111092570256 -:104520001A8A198A85E0FE017396DE011D960190B4 -:104530000D928A95E1F786E0FE013D96DE01179621 -:1045400001900D928A95E1F7CE0107960E94042111 -:10455000882389F016E080915402909123028913F8 -:1045600049C067960FB6F894DEBF0FBECDBFDF918E -:10457000CF911F91089586E0FE013796DE011196D6 -:1045800001900D928A95E1F78A859B85892B11F31D -:104590008F81988589238F3FE9F22091230230E0B3 -:1045A000C90101968770992740915402481719064E -:1045B00071F40E944C16109223021092540286E06D -:1045C000EDE1F2E0DF011D928A95E9F7C3CF96E0B5 -:1045D000929FD001939FB00D1124AC5DBD4FFE01A1 -:1045E000319601900D929A95E1F7809323020E94F3 -:1045F0004B0BB0CF819FC00111248C5D9D4F0E9459 -:104600000421882309F4ADCF8091540290E00196F3 -:1046100087709927809354029ECF8F929F92AF927A -:10462000BF92CF92DF92EF92FF920F931F93CF939F -:10463000DF93CDB7DEB72D970FB6F894DEBF0FBE70 -:10464000CDBF8E010F5F1F4F88E0F80111928A9550 -:10465000E9F74FE4E42E41E0F42E6801AA24A39484 -:10466000B12CF70181917F018F3F09F44BC0F89481 -:10467000E82FE295EF70F0E021A18F70A50102C054 -:10468000440F551F8A95E2F7CA01922F982B91A3E8 -:1046900092A18095892382A3789400C0E3E5F1E09C -:1046A00030E020E0912C812C81918F3F09F47EC075 -:1046B000A82FA295AF70B0E090964C9150E08F700B -:1046C00002C0559547958A95E2F740FD6FC0C50138 -:1046D000022E02C0880F991F0A94E2F7882A992AAD -:1046E0002F5F3F4F2C303105F9F6F701319780816C -:1046F0008F3F11F00E94BF0850EA5A95F1F7F6017A -:1047000091828082F2E0CF0ED11C23E5E21621E0F7 -:10471000F20609F0A6CF48E050E0B8018EE692E03C -:104720000E94B52DCC24C394009709F4C12C892B89 -:1047300009F43FC088E0F801AEE6B2E001900D92C6 -:104740008A95E1F781E080935E020E94880690934B -:104750005D0280935C0280915C0290915D020E94F8 -:104760007906069750F180916E0290916F029093B6 -:10477000A7028093A602809170029091710290939B -:10478000A9028093A8028091720290917302909383 -:10479000AB028093AA02809174029091750290936B -:1047A000AD028093AC0210925E0207C090E080E000 -:1047B00095CF80915E028111CECF80916D028823CA -:1047C00071F080916B0290916C020E947906893E93 -:1047D000934028F082EE0E94E10B10926D028091CE -:1047E0006A02882399F18091690281112FC080911A -:1047F0006702909168020E94790681369A4E78F09D -:104800008091650290916602019690936602809372 -:1048100065020E94880690936802809367028091E7 -:104820006502909166024F9788F010921A018AE211 -:1048300080931B0180931C018FE00E94801481E013 -:1048400080936902109266021092650238E7E32EA7 -:1048500032E0F32E10E000E0BB24B394F701D190D6 -:104860007F01DD2051F10115110509F05FC0B09203 -:1048700063020E9488069093600280935F02D69440 -:10488000C801880F991FDD2009F45DC08F589E4F25 -:10489000FC01808191819A8789871B860E94880606 -:1048A0008160782F9D878C87F70131971082498529 -:1048B0005A856B858D850E947D220F5F1F4F0930C1 -:1048C000110561F61091640280916302111164C0B8 -:1048D0008823E1F110921A0184E080931B018093F8 -:1048E0001C018FE00E9480141092630281E080938B -:1048F000640280916902811105C080916A02811170 -:104900000E94B2108C2D2D960FB6F894DEBF0FBE0C -:10491000CDBFDF91CF911F910F91FF90EF90DF906E -:10492000CF90BF90AF909F908F9008950530110564 -:1049300019F4B09262029DCF0630110509F09FCFA5 -:10494000B092610296CF815A9E4FA2CF80916202AF -:10495000882379F086E180931A018AE180931B0114 -:1049600084E080931C018FE00E9480141092620208 -:10497000BDCF809161028823A9F08AE180931A015A -:104980008EE180931B0184E080931C018FE00E94E4 -:10499000801410926102AACF811126C08091620218 -:1049A000811122C08091610281111EC080915F023D -:1049B000909160020E947906853F9140A8F01123F2 -:1049C00051F010921A018AE280931B0180931C011E -:1049D00081E20E948014109263021092620210928F -:1049E00061021092640285CF1092630210926202FB -:1049F000109261027ECF1F920F920FB60F92112478 -:104A00002F933F934F935F936F937F938F939F93D6 -:104A1000AF93BF93CF93DF93EF93FF93D091E900D0 -:104A2000DF708091EC00C82FC17080FDC0E810924B -:104A3000E9008091F000877F8093F00078940E94D5 -:104A400061161092E9008091F00088608093F00078 -:104A5000CD2BCF70C093E900FF91EF91DF91CF9103 -:104A6000BF91AF919F918F917F916F915F914F9186 -:104A70003F912F910F900FBE0F901F9018951F928E -:104A80000F920FB60F9211242F933F934F935F9382 -:104A90006F937F938F939F93AF93BF93EF93FF9306 -:104AA0008091E10082FF09C08091E20082FF05C091 -:104AB0008091E1008B7F8093E1008091DA0080FF9C -:104AC00024C08091D80080FF20C08091DA008E7FC2 -:104AD0008093DA008091D90080FF9BC088E189BD76 -:104AE0008AE189BD09B400FEFDCF81E08093FF0219 -:104AF0008091DA02811109C00E94EC040E94B7057E -:104B00008091E20084608093E2008091E10080FF68 -:104B100017C08091E20080FF13C08091E2008E7F79 -:104B20008093E2008091E20080618093E2008091B6 -:104B3000D80080628093D80019BC85E08093FF0282 -:104B40008091E10084FF29C08091E20084FF25C0AC -:104B500088E189BD8AE189BD89B5982F917080FF70 -:104B6000FBCF8091D8008F7D8093D8008091E100A9 -:104B70008F7E8093E1008091E2008F7E8093E2003F -:104B80008091E20081608093E2008091000388239D -:104B900009F445C084E08093FF028091E10083FF27 -:104BA00027C08091E20083FF23C08091E100877FCE -:104BB0008093E10082E08093FF02109200038091D5 -:104BC000E1008E7F8093E1008091E2008E7F8093F0 -:104BD000E2008091E20080618093E20042E060E0C8 -:104BE00080E00E9485058091F00088608093F0004D -:104BF000FF91EF91BF91AF919F918F917F916F91B5 -:104C00005F914F913F912F910F900FBE0F901F908A -:104C1000189519BC1092FF021092DA0276CF80919B -:104C2000E30087FD93E09093FF02B7CF78941F9243 -:104C30001FB61F9211248F939F93AF93BF938091C0 -:104C4000D1029091D202A091D302B091D4020196E8 -:104C5000A11DB11D8093D1029093D202A093D302E3 -:104C6000B093D402BF91AF919F918F911F901FBEBF -:104C70001F9018951F921FB61F9211248F939F9318 -:104C8000AF93BF938091D002811113C08091D10264 -:104C90009091D202A091D302B091D4024196A11D6D -:104CA000B11D8093D1029093D202A093D302B0930E -:104CB000D402BF91AF919F918F911F901FBE1F9003 -:104CC0001895CDB7DEB7E0970FB6F894DEBF0FBEEC -:104CD000CDBF84B7877F84BF0FB6F894A895809125 -:104CE0006000886180936000109260000FBE80E8D1 -:104CF00090E00FB6F89480936100909361000FBE2E -:104D000085B7806885BF85B7806885BF8DEB98E0E3 -:104D10009093E3018093E2010E94EC040E94B705A6 -:104D20008091E20084608093E20078948091FF0299 -:104D30008823A1F01091E9001F709091EC00892F59 -:104D4000817090FD80E8182B1092E9008091E800B6 -:104D500083FD0E9461161F701093E90082E084BDFC -:104D600093E095BD9AEF97BD80936E000E94780FF7 -:104D7000811102C00E94A80E80EF0E94BF0881EF3F -:104D80000E94BF0882EF0E94BF0883EF0E94BF0805 -:104D900003E511E0FFE5EF2EF1E0FF2ED8018D9144 -:104DA0008D018F3F11F00E94BF08E016F106B1F7A8 -:104DB00010926F0210926E021092A7021092A60239 -:104DC00010927102109270021092A9021092A80221 -:104DD00010927302109272021092AB021092AA0209 -:104DE00010927502109274021092AD021092AC02F1 -:104DF0000E944116811102C00E94D51582E090E008 -:104E00000E94C22D80939D020E94910F9093D60222 -:104E10008093D5020E940D23EFE7FBEB3197F1F76A -:104E200000C000000E940D238091A60280FF08C0F0 -:104E30006FEF7FEF90E080E00E94F42D0E94D10C94 -:104E400083E090E00E94C22D90E00E94C60B80910A -:104E5000090390910A030E94BE1480917602811189 -:104E600032C00E944116811104C00E94D5150E94D3 -:104E7000C51588E090E00E94CA2D60938903709365 -:104E80008A0380938B0390938C036E7F71F40E944E -:104E9000C51588E090E00E94CA2D60938903709345 -:104EA0008A0380938B0390938C030E94D206109206 -:104EB000C5028091890380FF03C086950E948014FB -:104EC00081E0809376026EEA71E0E3E98E2EE2E003 -:104ED0009E2E2CE931E0E5EAF1E041E050E011914D -:104EE000812F82958F7090E0DC019196FC909197D4 -:104EF0001F70E12E6A0101C0CC0C1A95EAF70C2D47 -:104F000000950F2191960C93919792961C919297F0 -:104F10001C2992961C93D901FD909D010F2D02959D -:104F20000F7010E0D8019196BC90BF2DBF70FB2E82 -:104F30006A0101C0CC0CBA95EAF7DC2CD094DB20D6 -:104F4000D8019196DC9291979296DC909297DC280A -:104F50009296DC92DC0190968C9190E002C095953F -:104F60008795EA94E2F78170D80190960C9110E051 -:104F700002C015950795FA94E2F790E000FD92E0E3 -:104F8000892BD4018D934D016E177F0709F0A7CFB0 -:104F90008091D50280688093D5028091D50290914E -:104FA000D6020E94B70E86EA92E09093BD028093EB -:104FB000BC0281E20E94801481E090E00E945115C1 -:104FC00080E091E09093CD028093CC0258E1252EB1 -:104FD000312C8091FF02FF24F39408E11AE185301F -:104FE00009F4B3C20E940D23882359F08FB7F894B7 -:104FF0004091D1025091D2026091D3027091D402BB -:105000008FBFA6EAB2E0EEE9F2E010E000E0702F18 -:105010008D919D91219131912817390709F4BEC2D4 -:105020002827392760E0EE24E394F12CA9014E21D2 -:105030005F21452B09F4ACC269A37AA39C012E2100 -:105040003F2191E0232B09F490E09BA30E94880666 -:105050008160782F9DA38CA349A15AA16BA18DA13A -:105060000E947D22000F111FF801E256FD4F808142 -:105070009181E826F926F182E0828091C502882399 -:10508000D1F18091C402E0918903E695E81BE09399 -:10509000C002823009F099C2F0E0EC53FD4FE49178 -:1050A0000E2F10E029E2E22E23E1F22E8091C102C0 -:1050B000882361F01092C1020E9488069093BF027B -:1050C0008093BE021092C3021092C2020E94880610 -:1050D000E091BE02F091BF028E1B9F0B8F3F9F4756 -:1050E00050F4E00FF11FF093BF02E093BE028EEB8D -:1050F00092E0F70109953AE8E32E32E0F32E01E859 -:1051000012E048E7842E42E0942E83E991E09CA7C8 -:105110008BA7D12CC12CACE9B1E0BEA7ADA7E5EAC5 -:10512000F1E0F8ABEFA753E9652E52E0752E512C54 -:1051300044244394D301ED913D01EE0FEE0FAFA552 -:10514000B8A92D91B8ABAFA7A22FA295AF70B0E0D0 -:1051500090968C9190E02F7002C0959587952A9536 -:10516000E2F781709927ADA5BEA54D91BEA7ADA769 -:10517000A42FA295AF70B0E090962C9130E04F70C4 -:1051800002C0359527954A95E2F7A9014170552748 -:1051900020FF02C042E050E0842BE82BD30111979E -:1051A000EC93ABA5BCA5AD90BCA7ABA7EF70F0E0AE -:1051B000ED57FE4F8081F7019081890F8083B12CDC -:1051C000082E000C990B20E08A159B05DCF0D80115 -:1051D0008C918F5F8C93F601E15AFE4F8081918113 -:1051E0009A8389834B820E9488068160782F9D83F1 -:1051F0008C83F401408249815A816B818D810E94A8 -:105200007D2221E0D7018C91082E000C990B4427B8 -:1052100055274A195B0948175907E4F0F8018081BE -:1052200081508083F601EF58FE4F808191819A83EF -:1052300089834B820E9488068160782F9D838C83AE -:10524000E2E0D401EC9349815A816B818D810E9407 -:105250007D2221E0D7018C91082E000C990BB5011D -:105260000E94632DF70181937F01522A0F5F1F4F28 -:10527000FFEF8F1A9F0A22E0C20ED11C42E1C41632 -:10528000D10409F057CF552059F08FB7F8944091C9 -:10529000D1025091D2026091D3027091D4028FBF9B -:1052A00086E0E5EBF2E0DE01119601900D928A9521 -:1052B000E1F7F090B702E090B8021091B9020091C6 -:1052C000BA021092B7021092B8021092B90210926C -:1052D000BA028F2D8E2909F448C08091B3029091B3 -:1052E000B4020E9479069C019091AF02992309F4BF -:1052F000C3C323333105C8F19F3F19F09F5F9093DB -:10530000AF02FF2059F00E9443089FEF1F140CF4D6 -:1053100091E0899F802D11248093B702EE2059F0EF -:105320000E9443089FEF1E140CF491E0899F802D8A -:1053300011248093B8023091B7023323B1F0209149 -:10534000B802222391F045EB3403C00111249923C4 -:1053500009F495C19093B70245EB24039001112401 -:10536000332309F490C13093B802812F802B09F4C4 -:1053700048C08091B1029091B2020E9479069C01CE -:105380009091AE02992309F472C325363105C8F114 -:105390009F3F19F09F5F9093AE02112359F00E9436 -:1053A00021089FEF11160CF491E0899F802D1124A4 -:1053B0008093B902002359F00E9421089FEF101634 -:1053C0000CF491E0899F802D11248093BA023091D2 -:1053D000B9023323B1F02091BA02222391F045EBB8 -:1053E0003403C0011124992309F451C19093B902E7 -:1053F00045EB240390011124332309F44CC130936D -:10540000BA028091B7029091B802892B9091B902AB -:10541000892B9091BA02892B11F00E94810786E0B6 -:10542000FE013196A5EBB2E001900D928A95E1F76D -:105430000E94C00690919C02891731F00E94C0061C -:1054400080939C020E94A6148091FF02843009F090 -:10545000C0CD83E08093E9008091E80082FFB9CD60 -:105460008091E80090E085FF06C00E940B0588232C -:1054700009F415C191E08091E8008B778093E800F2 -:10548000992309F4A6CDE981E150E33108F09BC1ED -:10549000F0E0EC58F14D0C94772D8091FF028430B0 -:1054A00009F441C080E00E94A6141092C5028091C8 -:1054B000BB02811116C0F092BB0280918903982F24 -:1054C0009170909377028E7F80938903BFEFE0E71E -:1054D000F2E0B150E040F040E1F700C000000E946F -:1054E000B50F1092D00220E40FB6F894A895209240 -:1054F00060000FBE2093600083B7817F846083BF0C -:1055000083B7816083BF7894889583B78E7F83BF8C -:105510000FB6F894A8958091600088618093600030 -:10552000109260000FBE8091FE02882371F00E94ED -:105530000D23E6EAF2E081919191892B09F078C27E -:105540008EEA92E08E179F07B1F78091FF028530B7 -:1055500009F4A3CF0E944C160E94C0060E94A61414 -:105560001092BB0280917702882359F080918903C1 -:1055700081608093890386950E9480140E949F0F0A -:1055800031CD8091C6028823C9F30E94B50FF6CFB2 -:105590006F5FEE0CFF1C6C3009F048CD0F5F1F4FA2 -:1055A0000430110509F033CD8FEF8EA38FA318A619 -:1055B0000E9488068160782F9AA789A74EA15FA1D3 -:1055C00068A58AA50E947D2258CD863059F4F0E066 -:1055D000EF53FD4FE4910E2F10E099E1E92E93E196 -:1055E000F92E64CD893061F4E695F0E0E254FD4F88 -:1055F000E4910E2F10E08AE6E82E82E1F82E56CDD7 -:105600008F3061F4E695F0E0E554FD4FE4910E2F04 -:1056100010E0B5E1EB2EB2E1FB2E48CD853159F417 -:10562000F0E0E854FD4FE4910E2F10E0A2EAEA2EDC -:10563000A1E1FA2E3BCD08E210E072E1E72E71E124 -:10564000F72E883109F432CD833249F4E6EBF2E0EB -:1056500005911491F0ECEF2EF2E1FF2E27CD04EF2F -:1056600011E0E5EDEE2EE0E1FE2E843209F41ECDD0 -:1056700000ED17E061EDE62E66E0F62E17CD81E035 -:105680008093B70269CE81E08093B8026ECE81E04C -:105690008093B902ADCE81E08093BA02B2CE00E22F -:1056A00010E0CE0101967C018091E80085FD0AC0E2 -:1056B0008091E8008B778093E8000E940B05882397 -:1056C00099F3D8CE8091F100D7018D937D010150DF -:1056D000110951F7CFCE1A8289E08B833FC08A81AE -:1056E000823009F4BBC18330A9F0813009F06BC06E -:1056F0002FB7F8946091D1027091D2028091D302B9 -:105700009091D4022FBF0E947D2D6B837C838D836B -:105710009E8324C08091A6029091A7029827892792 -:1057200098279C838B838091A8029091A902982747 -:10573000892798279E838D838091AA029091AB023E -:1057400098278927982798878F838091AC0290911A -:10575000AD029827892798279A8789878091FF0229 -:10576000843009F036CC1091E9001F709091EC0064 -:10577000892F817090FD80E8182B82E08093E900EA -:105780008091E80080FF0DC050E040E060E270E0F2 -:10579000CE0101960E943C058091E8008E778093AF -:1057A000E8001F701093E90014CC8A81823059F40C -:1057B0006B817C818D819E810E947D2D86E290E0AF -:1057C0000E94D62DCBCF8FEF8983C8CF4C816B81C0 -:1057D0008A810E94D60E9827892798279E838D83D9 -:1057E000BDCFED80FE80FE24EF24FE248A810B8154 -:1057F000B8E10B9F80011124E0E68E9F000D111D82 -:1058000011248C8190E0880F991F080F191F6F2DAC -:10581000C80187960E94D62D6E2DC8018896D0CFDC -:105820000E943B0E9BCF8A818138C1F060F48038A2 -:1058300009F094CF20E04B8160918B0380918A0323 -:105840000E944F138BCF823849F1833809F086CFFD -:1058500020E040918C036C818B81F2CF8B810E9480 -:1058600080149B8180918903911111C08E7F809358 -:1058700089031092C502FFEF20E742E0F15020407B -:105880004040E1F700C000000E94B50F67CF816083 -:105890008093890386950E94801460CF8B818093CA -:1058A0008D035CCF8A81813899F030F4803809F01B -:1058B00055CF80918C0311CF823891F0833809F055 -:1058C0004DCF80918A038B8380918B038C8346CF4D -:1058D0008091890380FF02C08695FFCE80E0FDCED7 -:1058E00080918D03FACE6091890370918A03809133 -:1058F0008B0390918C030E943D1330CF80E18A830B -:105900002DCF84E08A8389E1E8CE0A811B811027AC -:1059100001271027CE0101966C01EC80DC01AE0D51 -:10592000B11D7D01C80189519C4FEC14FD0409F49F -:1059300015CF0931B4E01B0750F40E94C22DF601C7 -:1059400084830F5F1F4FBFEFCB1ADB0AEBCFD6016B -:1059500014961C92F6CF0A811B811027012710276D -:10596000FE0131966F01EC80E00EF12EF11CC801B2 -:1059700089519C4FE016F10609F4F0CE0931F4E0AC -:105980001F0728F4D60114966C910E94D62DBFEF04 -:10599000CB1ADB0A0F5F1F4FEACF0E942B0EDECE21 -:1059A0008AE0ADCF0A811B81102701271027FE0155 -:1059B00031966F01EC80CF018E0D911D7C01C801E5 -:1059C0008796EC14FD0409F4C9CE003CA3E01A0745 -:1059D00050F40E94C22DF60184830F5F1F4FBFEF6A -:1059E000CB1ADB0AECCFD60114961C92F6CF0A81B3 -:1059F0001B81102701271027FE0131966F01EC80D3 -:105A0000E00EF12EF11CC8018796E016F10609F4AC -:105A1000A5CE003CF3E01F0728F4D60114966C9144 -:105A20000E94D62DBFEFCB1ADB0A0F5F1F4FEBCFC3 -:105A300009BD19BD09B400FEFDCF8091D8008F7D4E -:105A40008093D8008091E00082608093E000809194 -:105A5000E00081FDFCCF0E944C1677CD86E290E0FD -:105A60000E94C22D1B821C821D828E8377CE2D3216 -:105A7000314008F08FCCC5CC2D32314008F03ECCFF -:105A800074CC87FB082E062687FD819567FD6195FE -:105A90000E94932D0EF4919507FC81950895AA1B01 -:105AA000BB1B51E107C0AA1FBB1FA617B70710F009 -:105AB000A61BB70B881F991F5A95A9F7809590953B -:105AC000BC01CD01089597FB072E16F4009407D072 -:105AD00077FD09D00E944F2D07FC05D03EF490952C -:105AE00081959F4F0895709561957F4F0895EE0FB2 -:105AF000FF1F0590F491E02D0994692796276927E7 -:105B000078278727782708950E943F2E332312F4A1 -:105B10008A1B9B0B0C948E2D0E943F2EB7FF08957D -:105B2000821B930B0895991B79E004C0991F961767 -:105B300008F0961B881F7A95C9F780950895FB0198 -:105B4000DC0102C005900D9241505040D8F70895F5 -:105B5000FC014150504030F001900616D1F73197CA -:105B6000CF010895882799270895FB01DC0104C01F -:105B70008D910190801921F441505040C8F7881B45 -:105B8000990B0895F999FECF92BD81BDF89A992796 -:105B900080B50895A6E1B0E044E050E00C94FC2DFF -:105BA000A8E1B0E042E050E00C94FC2D262FF999DA -:105BB000FECF92BD81BDF89A019700B4021639F06C -:105BC0001FBA20BD0FB6F894FA9AF99A0FBE08953D -:105BD0000396272F0E94D72D0E94D62D252F0E9495 -:105BE000D72D242F0C94D72D0196272F0E94D72D27 -:105BF0000C94D62DDC01CB01FC01F999FECF06C037 -:105C0000F2BDE1BDF89A319600B40D92415050407A -:105C1000B8F708950E943F2EA59F900DB49F900D58 -:105C2000A49F800D911D11240895B7FF0C940A2E96 -:105C30000E940A2E821B930B0895A1E21A2EAA1B22 -:105C4000BB1BFD010DC0AA1FBB1FEE1FFF1FA2172C -:105C5000B307E407F50720F0A21BB30BE40BF50B29 -:105C6000661F771F881F991F1A9469F760957095B2 -:105C7000809590959B01AC01BD01CF010895A29F35 -:105C8000B001B39FC001A39F700D811D1124911D10 -:105C9000B29F700D811D1124911D0895F894FFCFBE -:105CA000630F630F6C0F6C0F6E0F6C0F6C0F6C0F2C -:105CB000630F630F730F6C0F6C0F730F46176E1724 -:105CC000C1176E17C117A117D917C117D618E31836 -:105CD000401D401DB41DB41D121E2C1E771D771DC6 -:105CE000371EC11ED21ED21E6B2B6F2BD52BE62B5F -:105CF000F12B102C132C522C732CE32BE32B7E2C2A -:0E5D0000812C852CAB2CCD2CD02CD22CF72C4A -:105D0E007606910C700C6C0C680C01191A1B1C1D7C -:105D1E001E1F202122010201002A002A2A0181824F -:105D2E0083E200E900EA00B500B600B700CD0083BB -:105D3E0001CC008A01920194012102230224022542 -:105D4E0002260227022A02B300B4006F007000F090 -:105D5E00F1F2F3F5F6F700010203040537363502CA -:105D6E0000020102020B000B010B020B03050308DC -:105D7E0003000000010002090009010902090303E2 -:105D8E0003060300FF0100010000FFFF00000100F9 -:105D9E0001FF000404040404040402026162646648 -:105DAE0090929497066063656791939596070001AC -:105DBE00020202020606060909090909090F0F0F58 -:105DCE000F0F0F1515151819191919191919191960 -:105DDE001923244022B6B6019401DE00C808E1085A -:025DEE000109A9 +:102BA0007181828193810C94281310925A02809132 +:102BB0001F01E8EEF1E0882359F08091D70287FFEA +:102BC00007C08EE1DF011D928A95E9F70C94B10BE5 +:102BD00086E0F8CF1F93CF93DF93CDB7DEB7AA97E8 +:102BE0000FB6F894DEBF0FBECDBF83E093E0209117 +:102BF000F100DC012D93CD01B3E08B309B07B9F7D9 +:102C000080910403833009F472C0B8F4813009F470 +:102C100049C0823009F4B3C08091E80083FF8BC2C1 +:102C200080910303909104039A3008F084C2E92F45 +:102C3000F0E0ED58F14D0C948C2D8A3009F48EC0E3 +:102C40008B3009F471C0893039F7809103038132E8 +:102C500019F78091070390910803009711F00297EC +:102C6000D9F68091E800877F8093E8008091E800A2 +:102C700082FF38C08091F2009091F300029731F406 +:102C80008091F100813011F0863021F48091F100C3 +:102C90008093DE028091E8008B778093E8000E94A9 +:102CA0006605BACF80910303813A09F0B5CF8091D0 +:102CB000E800877F8093E8008091070390910803E4 +:102CC000892B61F460E28FED92E070E00E941906BA +:102CD0008091E8008B778093E8009ECF60E090E0E1 +:102CE00080E0F3CF809101038111C0CF95CF809117 +:102CF0000303813A09F090CF809107039091080374 +:102D0000892B09F089CF8091E800877F8093E800C4 +:102D10008091E80080FFFCCF80911F018093F1003B +:102D20008091E8008E77B9CF80910303813209F05A +:102D300073CF8091070390910803892B09F06CCF22 +:102D40008091E800877F8093E8000E94660580916B +:102D5000050380931F010E94D5155ECF8091030368 +:102D6000813209F059CF8091E800877F8093E80095 +:102D70000E946605809106038093DD024DCF80910D +:102D80000303813A09F048CF8091E800877F809360 +:102D9000E8008091E80080FFFCCF8091DD02BECF8B +:102DA000803899F0823809F0C6C1809107038F708E +:102DB000873008F0C0C18093E9008091EB0085FB6B +:102DC000882780F91092E90006C08091FF02909157 +:102DD0000003911182609091E800977F9093E80042 +:102DE0008093F1001092F1008091E8008E779FC1EE +:102DF000882309F48DC1823009F09DC180910503BB +:102E0000811190C1809107038F702FEF280F26301A +:102E100008F091C18093E9002091EB0020FF82C16E +:102E2000933031F48091EB0080628093EB007AC1A3 +:102E30009091EB0090619093EB0021E030E001C0B5 +:102E4000220F8A95EAF72093EA001092EA00809117 +:102E5000EB008860EACF81116EC1109105031F77E6 +:102E60008091E3008078812B8093E3008091E800DB +:102E7000877F8093E8000E9466058091E80080FFCC +:102E8000FCCF8091E30080688093E30082E0111121 +:102E900083E0809301034FC18058823008F04BC11A +:102EA00020910503309106032C3DE3E03E07A1F598 +:102EB00083E08A838AE289834FB7F894DE01139610 +:102EC00020E03EE051E2E32FF0E050935700E49120 +:102ED00020FF03C0E295EF703F5FEF708E2F90E010 +:102EE000EA30C0F0C7968D939D932F5F243159F738 +:102EF0004FBF8091E800877F8093E8006AE270E02E +:102F0000CE0101960E9419068091E8008B7780938C +:102F1000E80011C1C096E7CF8091070390910803A4 +:102F2000432F55274330510509F44AC078F5413005 +:102F3000510509F47AC08BE590E0E6EBF8E0423009 +:102F4000510509F0F8C02091E800277F2093E800A0 +:102F50002091090330910A038217930708F49C011A +:102F600040E02115310509F065C0411163C0809131 +:102F7000E80082FDC9CF80910103882329F28530C2 +:102F800019F28091E80083FFF2CFBECF41325105A4 +:102F900009F43CC04232510509F0CDC0833091059F +:102FA00008F0C9C0FC01EE0FFF1FE852FE4F019070 +:102FB000F081E02D8B529E4FDC018C9190E01AC085 +:102FC000332721303105D1F02115310561F0223050 +:102FD000310509F0B0C0E3E2F9E0E4918E2F90E012 +:102FE000E3E2F9E007C0E1E4F9E0E4918E2F90E03C +:102FF000E1E4F9E0009709F49EC0A5CFEDE2F9E025 +:10300000E4918E2F90E0EDE2F9E0F4CF833091056A +:1030100008F091C0880F991FFC01E252FE4F019009 +:10302000F081E02D89E090E08ECF82E190E0E1E157 +:10303000F9E089CF80910103882309F465CF8530B9 +:1030400009F462CF8091E80083FD5ECF8091E800B3 +:1030500082FD8DCF8091E80080FF83CF8091F200C8 +:103060009091F3002115310519F08830910550F049 +:1030700041E0089709F040E08091E8008E77809366 +:10308000E8006FCF44914093F1003196215031090F +:103090000196E8CF803809F04EC08091E800877F24 +:1030A0008093E800809102038093F1009DCE81110E +:1030B00042C0109105031230F0F58091E800877F3F +:1030C0008093E800109302030E946605112311F01B +:1030D00084E005C08091E30087FDFACF81E0809312 +:1030E000010342E061EC81E00E94850542E261EC6F +:1030F00084E00E94850542E261EC82E00E94850541 +:1031000042E260EC83E00E9485058091010313C0D8 +:1031100080910503813079F481E0933009F080E0FB +:10312000809300031092E9008091E800877F8093EC +:10313000E8000E9466058091E80083FF0AC0809144 +:10314000E800877F8093E8008091EB0080628093A5 +:10315000EB00AA960FB6F894DEBF0FBECDBFDF918D +:10316000CF911F91089569EE7EEF90E080E00E947C +:10317000092E60E082E090E00E94EB2D60E083E0A9 +:1031800090E00E94EB2D10925D0210925C0260E0D4 +:1031900084E090E00E94EB2D60E082E290E00E94EB +:1031A000EB2D60E085E090E00E94EB2D60E086E092 +:1031B00090E00E94EB2D6FEF87E090E00E94EB2DF6 +:1031C00040E050E0BA0188E090E00E94FD2D60E010 +:1031D0008DE090E00E94EB2D40E050E0BA0188E1E4 +:1031E00090E00E94FD2D60E087E190E00E94EB2DD1 +:1031F00040E050E0BA018CE190E00E94FD2D70E0CB +:1032000060E080E290E00E94092E40E050E0BA01C8 +:1032100088E190E00E94FD2D80E00E948D0E0E94CA +:10322000A50E40E050E0BA018FE090E00E94FD2D35 +:1032300040E050E0BA0183E190E00C94FD2D3F9214 +:103240004F925F926F927F928F929F92AF92BF92B6 +:10325000CF92DF92EF92FF920F931F93CF93DF9362 +:1032600000D000D00F92CDB7DEB78C01FC01838176 +:103270009481892B31F08081918189238F3F09F0DE +:1032800073C60F900F900F900F900F90DF91CF911A +:103290001F910F91FF90EF90DF90CF90BF90AF9074 +:1032A0009F908F907F906F905F904F903F90089588 +:1032B0000E94F40EF82E682F89819A810E94850B56 +:1032C00069817A818F2D0E94E70E7C01F80182814D +:1032D000882309F43BC6970122513F45203131052F +:1032E00008F0F3C58FEF97E00E94D72DFEEEEF0EAA +:1032F00057EE852E53E0952E8823A1F18091570239 +:10330000877009F4BECFF8018281882309F4B9CF10 +:103310008091D80282FDB5CF82E00F900F900F9080 +:103320000F900F90DF91CF911F910F91FF90EF9031 +:10333000DF90CF90BF90AF909F908F907F906F90D5 +:103340005F904F903F900C946415811428E0920692 +:10335000A9F2C4010E94D72D811101C0EA943FEF68 +:10336000831A930AE110F1CF1C821B8244244394F8 +:103370004AE0342E74014FEFE41AF40AC4010E94AB +:10338000D72D89831A82882309F4B8CF9FEF980F2D +:10339000933000F58A83498252E0850E911CC70163 +:1033A0000E94D72D8B83882309F4A8CFCE010196E4 +:1033B0007C01F70120812223E9F2213009F049C084 +:1033C00091818281913041F4F2E0EF0EF11C0E9474 +:1033D000A70D09C04701EACF923049F422E0E20E7E +:1033E000F11C0E94F20C3FEFE31AF30AE2CF933094 +:1033F00031F432E0E30EF11C0E94E50BF4CF94307F +:1034000021F04FEFE41AF40AEECF52E0E50EF11C82 +:1034100030E020E0B7016F5F7F4FF70141818053BB +:10342000990B8A30910550F021503109E0F28FE973 +:103430009FE00197F1F700C00000F6CF329EF00147 +:10344000339EF00D11249C012E0F3F1F842F7B0112 +:10345000E1CFE22FF0E0EA5DFD4F5490822F869598 +:103460008695869590E0FC01EA5EFD4F649027709A +:10347000712C022E02C0759467940A94E2F7E1E081 +:103480006E227724FC01EA5FFD4FA490B12C022E3E +:1034900002C0B594A7940A94E2F7F1E0AF22BB24EE +:1034A000FC01EA50FE4FC490D12C02C0D594C794C1 +:1034B0002A95E2F721E0C222DD246114710419F09B +:1034C00081EE0E94F20CA114B10419F086EE0E9464 +:1034D000F20C852D0E94A70DAB2819F086EE0E94F4 +:1034E000E50B672819F081EE0E94E50BCD2809F461 +:1034F0007ACF8CE26CCF81E00E9495150E94441532 +:10350000FDCE81E00E945315F9CF82E0F5CFF3E8BC +:10351000EF16FFE5FF0609F4C5C024E8E2162FE523 +:10352000F20609F0F2C4882309F4E8CEF0906C02A8 +:10353000EE24E394FE24F0926C020E94890690939C +:103540006A028093690280916B0210921C018823A9 +:1035500009F4B6C08AE280931D0180931E0181E2C6 +:103560000E946B140E949D10E0926C0210926B02FC +:103570001092680210926702C1CE882309F47AC0C3 +:1035800080916F02811106C081E080936F0282EE0C +:103590000E94F20C0E94890690936E0280936D0245 +:1035A0008BE20E94F20CF8018281882309F4EDC4B9 +:1035B00010929203F3E0EF16FDE5FF0608F0B3C0AA +:1035C0002AEFE2162CE5F20630F4C70182509C4542 +:1035D000449708F0AEC00E947C0F9093D80280936D +:1035E000D70240E1E4164CE5F40609F48AC108F07C +:1035F000F8C088E0E8168CE5F80609F470C108F018 +:10360000C4C0E4E0EE16ECE5FE0609F45AC108F089 +:10361000A6C022E0E2162CE5F20609F44CC1809126 +:10362000D702826033E0E3163CE5F30609F446C1B5 +:103630008091D7029091D8020E94B40E0E94D515B5 +:103640005DCE8823A1F080916F02811106C081E0D8 +:1036500080936F0282EE0E94F20C0E948906909382 +:103660006E0280936D0281EE0E94F20C99CF81EE82 +:103670000E94E50B8BE20E94E50B95CF882309F4AD +:1036800092CF81EE0E94F20C83EE0E94F20C8FE446 +:103690000E94F20C8FE40E94E50B83EE0E94E50B82 +:1036A00081EEE9CF882309F47ECF81EE0E94F20CEF +:1036B00083EE0E94F20C80E50E94F20C80E5EBCFD5 +:1036C0008AE280931D0180931E0181E2FF2029F090 +:1036D0000E946B140E949D1049CF0E946B1446CF2C +:1036E000E5EFEE16ECE5FE06B9F090F026EFE216F7 +:1036F0002CE5F20609F057CF27E245EE66EE22C42C +:1037000027E245EE65EE1EC426E241EE60EE1AC4E5 +:1037100027E245EE64EE16C426E241EE62EE12C4E4 +:1037200028E241E0EFCF31E6E3163DE5F30609F488 +:1037300052CF80915A0246E1E4164CE5F40609F0B6 +:1037400031C48A7A91E009F490E0909306028111E5 +:10375000FDC089E20E941F0B0E94AF0ACFCD80916D +:10376000D702806146E0E4164CE5F40609F4A6C0F1 +:103770008091D702886057E0E5165CE5F50608F40D +:103780009DC08091D702806299C08CE0E8168CE5DC +:10379000F80609F4AEC078F48091D7028C60EAE0B4 +:1037A000EE16ECE5FE0609F489C008F49CC0809191 +:1037B000D7028E7F83C08091D702877F2EE0E216EA +:1037C0002CE5F20609F47AC08091D7028B7F3FE0A6 +:1037D000E3163CE5F30608F471C08091D7028F7EB2 +:1037E0006DC04CEFE4164CE5F40609F486C0A0F574 +:1037F00084E1E8168CE5F80609F497C098F4E2E154 +:10380000EE16ECE5FE0609F480C08091D7028F7BAE +:10381000F3E1EF16FCE5FF0608F450C08091D702F3 +:10382000837F4CC02AEFE2162CE5F20609F44DC066 +:1038300008F051C045E1E4164CE5F40609F0F8CE75 +:103840008091D70282FB992790F921E0922790FB83 +:1038500082F990FB83F932C0E1145DE5F50609F4C5 +:103860005AC0A0F48091D80283609EEFE9169CE5CF +:10387000F90671F18091D8028D7FEFEFEE16ECE53D +:10388000FE0630F18091D8028C7F22C0F2E0EF1664 +:10389000FDE5FF0609F458C008F450C031E6E31610 +:1038A0003DE5F30609F0C4CE9091D702892F8F7EB3 +:1038B00094FF806103C08091D70281608093D7021A +:1038C000B7CE8091D7028460F9CF8091D802816011 +:1038D0008093D802ADCE8091D8028260F9CF8091DA +:1038E000D7028064EBCF0E94D5158091D702806803 +:1038F000E5CF8091D7028D7FE1CF8091D8028E7F76 +:10390000E7CF8091D7028F7DD9CF0E94D5158091C6 +:10391000D7028F77D3CF8091D802982F909591704E +:103920008E7F892B90FB81F9D3CF0E94D515909182 +:10393000D702892F97FB87F98058C0CF61E08EE0CE +:1039400090E00E94EB2D74CE60E0F9CF85E302CFCA +:1039500085E325C380918B0380FF1BC08E7F8093FE +:103960008B0360918B0370918C0380918D039091F8 +:103970008E030E9428131092C7025FEF80E792E047 +:10398000515080409040E1F700C000000E94A00F1D +:10399000B5CC816080938B0361E086950E943014E2 +:1039A000ADCC44EA55E16DEA75E10E94CD06A6CCA6 +:1039B0004DEA55E164EA75E1F8CF45E054E16CEF7A +:1039C00073E1F3CF44EE53E160EF73E1EECF4CECE3 +:1039D00053E168ED73E1E9CF48ED53E16CEC73E13D +:1039E000E4CF4FE154E16EE074E1DFCF61E081E0CC +:1039F000D5CF65E082E00E94B71580CC68E086E014 +:103A0000FACF64E18FE0F7CF67E185E1F4CF62E2BE +:103A100089E1F1CF61E083E2C1CF4BE5E4164DE5EA +:103A2000F40611F15CE5E5165DE5F50609F0ECC27A +:103A30008091D80282FB882780F991E089270E9433 +:103A40008015E2C20E94D5158FEF94E3ECE081501F +:103A50009040E040E1F700C000000E94CE0C0E94C0 +:103A6000B3184CCC81E0EBCF80E0E9CFC7010E94D6 +:103A70005D0BD82ED8C22F2D2F70C22E8F2D807F98 +:103A800019F0C29490EFC922DD20B9F0CC2069F082 +:103A900080E28E0D883010F0811009C080915A02AA +:103AA000C82AC0925A020E94AF0A8E2D4DC0809142 +:103AB0005902C82AC0925902F6CF8E2D0E94E50BFA +:103AC000CC2009F443C080E28E0D883010F08110C4 +:103AD00004C08C2D0E94A80A06C0C094809159028F +:103AE000C822C09259020E94AF0A30C03F2D3F70D9 +:103AF000C32E8F2D807F803219F0C29480EFC822B0 +:103B0000882089F041E0841609F480C0DD2009F4A2 +:103B10008AC0BB2009F480C0F801858180FFC5CF31 +:103B20008F70858379C02091D80222FF4CC0DD20A0 +:103B300009F443C0CC2039F080915A02C82AC092BF +:103B40005A020E94AF0A80E00E94F20CE92DE85070 +:103B5000FF0B349720F40E94C1060E949114AA2002 +:103B600009F48FCB8091570280FD8BCBF801128234 +:103B70008595859585950E949515C8010E941F1908 +:103B8000809157028595859585950F900F900F90A0 +:103B90000F900F90DF91CF911F910F91FF90EF90B9 +:103BA000DF90CF90BF90AF909F908F907F906F905D +:103BB0005F904F903F900C94531580E00E94E50B6E +:103BC000CC2021F286CFDD20A1F090915B028C2DDC +:103BD000892BB11003C00E94DB0BB8CF51E0B512A6 +:103BE000FACF22FDB3CF891709F4B0CF80935B02DF +:103BF000ADCFB11006C00E94A20A8C2D0E94D40B3A +:103C0000A5CF81E0B81609F4A1CFF5CFDD2031F0C2 +:103C100095E09B1508F49ACF8C2DDDCFE4E0EB15F1 +:103C200008F494CFEACFBB2041F3F9E38F1209C027 +:103C30002FEF37EE43E0215030404040E1F700C025 +:103C400000008E2D0E94E50B81CF8F2D86958695E5 +:103C5000837061F0813009F079CFC7019370D11082 +:103C600002C090E080E00E94950670CFC70193707B +:103C7000D11002C090E080E00E94AB0667CF8E2D8D +:103C8000DD2029F00E9464080E9482075FCF0E9415 +:103C9000A907FACF8F2D837009F040C0D11056CFFD +:103CA0004E2D429546954770440F440F8E2D8F70D0 +:103CB00090E0042E02C0880F991F0A94E2F730E0CA +:103CC00020E0E4FE09C02FE030E002C0220F331FE5 +:103CD0004A95E2F7209530954F2D469546954370CD +:103CE000423099F078F460915C0270915D0241304D +:103CF00039F0822B932B862397230E94CE0B26CF5D +:103D0000862B972B822B932BF8CF822B932B2091F2 +:103D10005C0230915D0282279327EFCF8695DD20EC +:103D200011F08F2D8170882309F410CF4E2D42950C +:103D300046954770440F440F8E2D8F7090E0042EEF +:103D400002C0880F991F0A94E2F730E020E0E4FEF9 +:103D500009C02FE030E002C0220F331F4A95E2F77E +:103D6000209530954F2D469546954370423099F0F9 +:103D700078F460910B0370910C03413039F0822B81 +:103D8000932B862397230E943C15E0CE862B972BFE +:103D9000822B932BF8CF822B932B20910B03309106 +:103DA0000C0382279327EFCF5F2D5F70F52EDD2068 +:103DB00029F0852F0E9495158E2D0DCF8E2D0E94F6 +:103DC000D40B8F2D0E945315C1CE8E2D92EF8916E4 +:103DD000A1F1981570F0E0EF8E16D1F0F1EF8F168B +:103DE00091F0DD2009F461C0B1105FCE8F2D8F718D +:103DF00028C023EF821641F134EF8312F2CF809175 +:103E0000D80282FF32C08F2D8F71DD20D9F219C008 +:103E1000DD2071F044E04B1508F498CE2F2D2F7162 +:103E200081E090E002C0880F991F2A95E2F7B5CF94 +:103E300055E05B1508F48ACEF1CF8F2D8F71D1102C +:103E4000C1CF0E94951582CE90E080E0DD2009F47C +:103E50009ACF9F2D9F7121E030E0F90102C0EE0F53 +:103E6000FF1F9A95E2F7CF018ECFDD2099F0FF2D4D +:103E7000FF71FF2E8F2F0E9495158091D80282FD31 +:103E800007C028E0F29EC00111248360809357028E +:103E90008F2DD7CF81E00E94641531E03B1508F0EB +:103EA00055CE82E00E94641551CEBB2059F0893373 +:103EB00009F0C7CE4FEF57EE83E0415050408040AD +:103EC000E1F7BDCE8F2D8F717DCFF0E1EF16FFE5CD +:103ED000FF0609F410CB21E1E2162FE5F20609F402 +:103EE00014CB42E8E4164FE5F40609F4C7CB08F01A +:103EF0000ECB90E8E9169FE5F90609F43ECBE1E820 +:103F0000EE16EFE5FE0609F49CCB33EFE3163CE535 +:103F1000F30609F4F9CB08F0E3CB58EDE5165CE5C0 +:103F2000F50609F4EDCB89EDE8168CE5F80609F401 +:103F3000F7CB97EDE9169CE5F90609F034CB26E2BC +:103F400041EE61EEC8010E94C40DD8C930E1E3160C +:103F50003FE5F30609F4D5CA41E1E4164FE5F4065E +:103F600009F0BFCF82E0CECA85E0DE011196019054 +:103F70000D928A95E1F7F801228189819A812111B8 +:103F800097C90E945D0BF82E9BC9F6E1EF16FCE580 +:103F9000FF06D1F5809106028111DACC89E20E94F8 +:103FA000F40ADACB82722CECE2162CE5F20609F464 +:103FB00018CD08F0ABC046ECE4164CE5F40609F465 +:103FC000FCCC08F07AC093ECE9169CE5F90609F4FC +:103FD000E8CC08F061C0F2ECEF16FCE5FF0609F44E +:103FE000B9CCEAE5EE16EDE5FE0609F43BCD08F0A6 +:103FF00014CDE1142CE5F20609F424CD3EEDE316D0 +:104000003CE5F30609F42BCDF8018281E080F180D4 +:10401000882309F42BCDC7010E94F40ED82E682FF7 +:10402000C7010E94850BB7018D2D0E94E70E0E94EB +:104030001A097C01882EF801D280B580B2943FE045 +:10404000B322809157028770C1F0AD2CDD20B1F012 +:104050008F2D807F803421F080E28E0D883068F0D3 +:104060008091D80282FD09C082E00E94641580918F +:1040700057028770AA24A3948111A12C9F2C92949B +:104080002FE09222FBE0F91508F460CDE92DF0E075 +:10409000E358F14D0C948C2D24ECE2162CE5F2063D +:1040A00009F486CC4CEF53E165E074E135ECE3169E +:1040B0003CE5F30609F479CC94CF49ECE4164CE5E1 +:1040C000F40609F484CC88F497ECE9169CE5F9062B +:1040D00009F478CC40EF53E164EE73E1E8ECEE16BE +:1040E000ECE5FE0609F461CC7CCFFAECEF16FCE5BA +:1040F000FF0609F471CC4EE054E16FE174E12BEC62 +:10410000E2162CE5F20609F450CC6BCF31EDE31644 +:104110003CE5F30609F475CCB8F45EECE5165CE515 +:10412000F50609F466CC08F461CC9FECE9169CE531 +:10413000F90609F463CC6EE089E0E0EDEE16ECE5FB +:10414000FE0609F458CC4DCFF4EDEF16FCE5FF0662 +:1041500009F45DCC78F432EDE3163CE5F30609F49E +:1041600053CC61E088E143EDE4164CE5F40609F434 +:1041700015CC37CF55EDE5165CE5F50609F44ACCCC +:104180008DE5E816F80609F4B9C82BCF1F93CF9335 +:10419000DF9380912402807FA9F4809121028823FB +:1041A00089F080915602D091250260911F02709192 +:1041B0002002A0912202B0912302C62FC72316E04D +:1041C000D81304C0DF91CF911F91089590E010970C +:1041D00011F0CF3F19F401968770F2CF189F90012C +:1041E000199F300D1124F901EA5DFD4F41814713FC +:1041F000F2CF40814613EFCF42814111ECCF438192 +:1042000054814A1B5B0B483C510528F780912402DE +:104210008F70806180932402F901E55DFD4F8081FC +:104220008F70806180838FE192E00E941F19DF917F +:10423000CF911F910C94530BAF92BF92CF92DF920C +:10424000EF92FF920F931F93CF93DF93CDB7DEB71B +:1042500061970FB6F894DEBF0FBECDBF8C0185E02D +:10426000F801DE011D9601900D928A95E1F7F801A3 +:10427000E2808FE1A82E82E0B82E60912202709138 +:1042800023026115710509F432C190911F0240911A +:104290002002892F84238F3F09F429C12081318195 +:1042A000C380D480F0902102F601E61BF70BFF20BB +:1042B00009F4E8C080912402582F507FE83CF105B2 +:1042C00008F0ABC0511177C0FE2C431321C09213EC +:1042D0001FC0E1101DC08F70806180932402C50152 +:1042E0000E941F1980912402F80185838F2D619609 +:1042F0000FB6F894DEBF0FBECDBFDF91CF911F91F7 +:104300000F91FF90EF90DF90CF90BF90AF90089506 +:10431000CD2829F0822F83238F3F09F003C180E04D +:10432000F82FF170DF2E80FF3CC080915602409143 +:10433000250256E0841315C02D873E878D859E8506 +:104340000E94300F292F22952F702230F0F0243058 +:1043500018F59F70F1F0F8019581907FD1F4D12C80 +:104360001EC090E0589FF001599FF00D1124EA5DA6 +:10437000FD4F6181361306C06081261303C0628140 +:10438000E6120FC001968770D5CF9F7011F0882379 +:1043900031F3805E883018F3C8010E941F19FD2C8C +:1043A000A5CFEE2009F4A2CF8091240281608093F2 +:1043B0002402F12C9BCF431306C0921304C0F801D2 +:1043C000EE2009F479C0C8010E943C0F882309F14E +:1043D000EE20F9F080912402803270F020911F02CB +:1043E0003091200238872F831986DB86CA868C8716 +:1043F000CE0107960E941F1986E0F801AFE1B2E0F6 +:1044000001900D928A95E1F70E94C620FF24F39453 +:104410006DCFC8010E941F19F9CF51110AC08FE159 +:1044200092E00E941F1986E0F50111928A95E9F742 +:10443000C0CF43130FC092130DC0E1100BC0F801A1 +:104440008583C8010E941F1986E0F50111928A95A3 +:10445000E9F74CCFC8010E943C0F8823D1F2EE202F +:10446000C1F280912402803238F220911F023091F3 +:1044700020023A8329831B82DD82CC828E83CE0187 +:104480000196B8CFE83CF105F8F6FE2CEE2009F2D3 +:1044900043131FC092131DC08091240280FD10C0E1 +:1044A000982F907F69F0F8018583903F31F0982F25 +:1044B000907F905F8F70892B8583C8010E941F19A0 +:1044C00086E0F801AFE1B2E001900D928A95E1F744 +:1044D0000DCFC8010E943C0F81118ECF8091240224 +:1044E000816080932402C8010E941F19FFCEEE2034 +:1044F00009F48FCFC8010E943C0FF82E882309F4DD +:1045000088CF86E0F801AFE1B2E001900D928A9584 +:10451000E1F780911F02909120020E94300F0E94CB +:10452000C620E4CE81E08E25FBCE1F93CF93DF9390 +:10453000CDB7DEB767970FB6F894DEBF0FBECDBF1D +:104540004B8B5C8B6D8B7E8B8F8B61111092590224 +:104550001A8A198A85E0FE017396DE011D96019084 +:104560000D928A95E1F786E0FE013D96DE011796F1 +:1045700001900D928A95E1F7CE0107960E941C21C9 +:10458000882389F016E080915602909125028913C4 +:1045900049C067960FB6F894DEBF0FBECDBFDF915E +:1045A000CF911F91089586E0FE013796DE011196A6 +:1045B00001900D928A95E1F78A859B85892B11F3ED +:1045C0008F81988589238F3FE9F22091250230E081 +:1045D000C90101968770992740915602481719061C +:1045E00071F40E94D515109225021092560286E0B1 +:1045F000EFE1F2E0DF011D928A95E9F7C3CF96E083 +:10460000929FD001939FB00D1124AA5DBD4FFE0172 +:10461000319601900D929A95E1F7809325020E94C0 +:10462000530BB0CF819FC00111248A5D9D4F0E9422 +:104630001C21882309F4ADCF8091560290E00196A9 +:1046400087709927809356029ECF6F927F928F92A8 +:104650009F92AF92BF92CF92DF92EF92FF920F9311 +:104660001F93CF93DF93CDB7DEB72D970FB6F89496 +:10467000DEBF0FBECDBF8E010F5F1F4F88E0F80178 +:1046800011928A95E9F751E5E52E51E0F52E680182 +:1046900065E5662E61E0762E88248394912CF701DF +:1046A00081917F018F3F09F446C0F894E82FE2958D +:1046B000EF70F0E021A18F70A40102C0440F551FDC +:1046C0008A95E2F7CA01922F982B91A392A1809527 +:1046D000892382A3789400C0E5E5F1E021E030E091 +:1046E000B12CA12C41914F3F09F477C0A42FA29582 +:1046F000AF70B0E090968C9190E04F7002C09595AD +:1047000087954A95E2F780FD68C0C901A82AB92AB1 +:10471000220F331F51E0E136F50721F7F7013197FA +:1047200080818F3F11F00E94C00880EA8A95F1F7DE +:10473000F601B182A082F2E0CF0ED11C6E147F048C +:1047400009F0ADCF48E050E0B80180E792E00E9468 +:10475000CA2DBB24B394009709F4B12C892B09F41A +:104760003FC088E0F801A0E7B2E001900D928A9581 +:10477000E1F781E0809360020E94890690935F02D6 +:1047800080935E0280915E0290915F020E947A06A1 +:10479000069750F180917002909171029093A90256 +:1047A0008093A80280917202909173029093AB0261 +:1047B0008093AA0280917402909175029093AD0249 +:1047C0008093AC0280917602909177029093AF0231 +:1047D0008093AE021092600207C090E080E096CF16 +:1047E000809160028111CECF80916F02882371F099 +:1047F00080916D0290916E020E947A06893E9340EC +:1048000028F082EE0E94E50B10926F0280916C02FC +:10481000882399F180916B0281112FC080916902E8 +:1048200090916A020E947A0681369A4E78F08091C1 +:1048300067029091680201969093680280936702E4 +:104840000E94890690936A028093690280916702B0 +:10485000909168024F9788F010921C018AE2809331 +:104860001D0180931E018FE00E946B1481E08093F4 +:104870006B0210926802109267023AE7E32E32E070 +:10488000F32E10E000E0CC24C394F701D1907F0117 +:10489000DD2051F10115110509F062C0C0926502D9 +:1048A0000E9489069093620280936102D694C801A7 +:1048B000880F991FDD2009F460C08D589E4FFC01C0 +:1048C000808191819A8789871B860E9489068160F1 +:1048D000782F9D878C87F7013197108249855A85FB +:1048E0006B858D850E9495220F5F1F4F0930110542 +:1048F00061F61091660280916502111167C08823EC +:1049000009F43EC010921C0184E080931D01809345 +:104910001E018FE00E946B141092650281E080936B +:10492000660280916B02811105C080916C02811139 +:104930000E949D108B2D2D960FB6F894DEBF0FBEF2 +:10494000CDBFDF91CF911F910F91FF90EF90DF903E +:10495000CF90BF90AF909F908F907F906F90089571 +:104960000530110519F4C09264029ACF0630110582 +:1049700009F09CCFC092630293CF8F599E4F9FCF77 +:1049800080916402882379F086E180931C018AE19A +:1049900080931D0184E080931E018FE00E946B14C0 +:1049A00010926402BBCF809163028823A9F08AE150 +:1049B00080931C018EE180931D0184E080931E0191 +:1049C0008FE00E946B1410926302A8CF811126C061 +:1049D00080916402811122C08091630281111EC006 +:1049E00080916102909162020E947A06853F914017 +:1049F000A8F0112351F010921C018AE280931D014E +:104A000080931E0181E20E946B1410926502109245 +:104A10006402109263021092660283CF10926502C4 +:104A200010926402109263027CCF90E080E00E94BA +:104A3000E52D893E9E4F11F40C94630F80E008959C +:104A40001F920F920FB60F9211242F933F934F9303 +:104A50005F936F937F938F939F93AF93BF93CF9306 +:104A6000DF93EF93FF93D091E900DF708091EC002A +:104A7000C82FC17080FDC0E81092E9008091F0005D +:104A8000877F8093F00078940E94EA151092E900E5 +:104A90008091F00088608093F000CD2BCF70C093A0 +:104AA000E900FF91EF91DF91CF91BF91AF919F917D +:104AB0008F917F916F915F914F913F912F910F90C7 +:104AC0000FBE0F901F9018951F920F920FB60F9266 +:104AD00011242F933F934F935F936F937F938F9303 +:104AE0009F93AF93BF93EF93FF938091E10082FF79 +:104AF00009C08091E20082FF05C08091E1008B7FB8 +:104B00008093E1008091DA0080FF24C08091D8007A +:104B100080FF20C08091DA008E7F8093DA00809140 +:104B2000D90080FF9DC088E189BD8AE189BD09B4B3 +:104B300000FEFDCF81E0809301038091DC028111B2 +:104B400009C00E94EC040E94B7058091E2008460D5 +:104B50008093E2008091E10080FF17C08091E20025 +:104B600080FF13C08091E2008E7F8093E2008091ED +:104B7000E20080618093E2008091D800806280939F +:104B8000D80019BC85E0809301038091E10084FF87 +:104B90002BC08091E20084FF27C088E189BD8AE1B3 +:104BA00089BD89B5982F917080FFFBCF8091D80087 +:104BB0008F7D8093D8008091E1008F7E8093E1000B +:104BC0008091E2008F7E8093E2008091E20081601C +:104BD0008093E20080910203882309F447C084E0B7 +:104BE00080930103809101038091E10083FF27C03E +:104BF0008091E20083FF23C08091E100877F809352 +:104C0000E10082E080930103109202038091E100B1 +:104C10008E7F8093E1008091E2008E7F8093E2009E +:104C20008091E20080618093E20042E060E080E0F9 +:104C30000E9485058091F00088608093F000FF91CC +:104C4000EF91BF91AF919F918F917F916F915F9104 +:104C50004F913F912F910F900FBE0F901F9018957D +:104C600019BC109201031092DC0274CF8091E30012 +:104C700087FD93E090930103B5CF78941F921FB600 +:104C80001F9211248F939F93AF93BF938091D30270 +:104C90009091D402A091D502B091D6020196A11DA7 +:104CA000B11D8093D3029093D402A093D502B09308 +:104CB000D602BF91AF919F918F911F901FBE1F9001 +:104CC00018951F921FB61F9211248F939F93AF9335 +:104CD000BF938091D202811113C08091D302909131 +:104CE000D402A091D502B091D6024196A11DB11D6A +:104CF0008093D3029093D402A093D502B093D602AE +:104D0000BF91AF919F918F911F901FBE1F901895DB +:104D1000CDB7DEB7E0970FB6F894DEBF0FBECDBFBC +:104D200084B7877F84BF0FB6F894A8958091600000 +:104D3000886180936000109260000FBE80E890E070 +:104D40000FB6F89480936100909361000FBE85B711 +:104D5000806885BF85B7806885BF8EEB98E09093AB +:104D6000E5018093E4010E94EC040E94B705809164 +:104D7000E20084608093E2007894809101038823AC +:104D8000A1F01091E9001F709091EC00892F8170C3 +:104D900090FD80E8182B1092E9008091E80083FDD7 +:104DA0000E94EA151F701093E90082E084BD93E031 +:104DB00095BD9AEF97BD80936E000E94630F81119D +:104DC00002C00E94A50E80EF0E94C00881EF0E94E1 +:104DD000C00882EF0E94C00883EF0E94C00805E56A +:104DE00011E0F1E6EF2EF1E0FF2ED8018D918D015B +:104DF0008F3F11F00E94C008E016F106B1F788E07D +:104E0000E8EAF2E0DF01282F1D922A95E9F7E0E7B2 +:104E1000F2E0DF011D928A95E9F70E9415258111C4 +:104E200002C00E94B31882E090E00E94D72D8093C8 +:104E30009F020E947C0F9093D8028093D7020E9419 +:104E40002523EFE7FBEB3197F1F700C000000E944C +:104E500025238091A80280FF08C06FEF7FEF90E0CC +:104E600080E00E94092E0E94CE0C83E090E00E9418 +:104E7000D72D90E00E94CE0B80910B0390910C03F4 +:104E80000E94A91480917802811132C00E941525D8 +:104E9000811104C00E94B3180E94C51588E090E0FB +:104EA0000E94DF2D60938B0370938C0380938D039E +:104EB00090938E036E7F71F40E94C51588E090E098 +:104EC0000E94DF2D60938B0370938C0380938D037E +:104ED00090938E030E94D3061092C70280918B0399 +:104EE00080FF03C086950E946B1481E08093780256 +:104EF00060EB71E0E5E98E2EE2E09E2E2EE931E0D6 +:104F0000E7EAF1E041E050E01191812F82958F7046 +:104F100090E0DC019196FC9091971F70E12E6A0160 +:104F200001C0CC0C1A95EAF70C2D00950F21919633 +:104F30000C93919792961C9192971C2992961C9390 +:104F4000D901FD909D010F2D02950F7010E0D80141 +:104F50009196BC90BF2DBF70FB2E6A0101C0CC0C96 +:104F6000BA95EAF7DC2CD094DB20D8019196DC923C +:104F700091979296DC909297DC289296DC92DC01D5 +:104F800090968C9190E002C095958795EA94E2F70F +:104F90008170D80190960C9110E002C0159507958C +:104FA000FA94E2F790E000FD92E0892BD4018D9312 +:104FB0004D016E177F0709F0A7CF8091D702806857 +:104FC0008093D7028091D7029091D8020E94B40EAC +:104FD00086EA92E09093BF028093BE0281E20E9433 +:104FE0006B1481E090E00E943C1580E091E090938A +:104FF000CF028093CE0258E1252E312C80910103FF +:10500000FF24F39408E11AE1853009F4B3C20E9449 +:105010002523882359F08FB7F8944091D3025091FB +:10502000D4026091D5027091D6028FBFA8EAB2E097 +:10503000E0EAF2E010E000E0702F8D919D91219167 +:1050400031912817390709F4BEC22827392760E0B3 +:10505000EE24E394F12CA9014E215F21452B09F4A4 +:10506000ACC269A37AA39C012E213F2191E0232B9E +:1050700009F490E09BA30E9489068160782F9DA38C +:105080008CA349A15AA16BA18DA10E949522000F6A +:10509000111FF801E056FD4F80819181E826F92625 +:1050A000F182E0828091C7028823D1F18091C6020B +:1050B000E0918B03E695E81BE093C202823009F091 +:1050C00099C2F0E0EC53FD4FE4910E2F10E024E183 +:1050D000E22E23E1F22E8091C302882361F0109228 +:1050E000C3020E9489069093C1028093C00210926D +:1050F000C5021092C4020E948906E091C002F0919C +:10510000C1028E1B9F0B8F3F9F4750F4E00FF11F92 +:10511000F093C102E093C00280EC92E0F7010995A0 +:105120003CE8E32E32E0F32E03E812E04AE7842E57 +:1051300042E0942E85E991E09CA78BA7D12CC12C4D +:10514000AEE9B1E0BEA7ADA7E7EAF1E0F8ABEFA7A3 +:1051500055E9652E52E0752E512C44244394D30119 +:10516000ED913D01EE0FEE0FAFA5B8A92D91B8ABB3 +:10517000AFA7A22FA295AF70B0E090968C9190E06F +:105180002F7002C0959587952A95E2F7817099272F +:10519000ADA5BEA54D91BEA7ADA7A42FA295AF709A +:1051A000B0E090962C9130E04F7002C03595279575 +:1051B0004A95E2F7A9014170552720FF02C042E05D +:1051C00050E0842BE82BD3011197EC93ABA5BCA541 +:1051D000AD90BCA7ABA7EF70F0E0EB57FE4F80811E +:1051E000F7019081890F8083B12C082E000C990B58 +:1051F00020E08A159B05DCF0D8018C918F5F8C93A1 +:10520000F601EF59FE4F808191819A8389834B8209 +:105210000E9489068160782F9D838C83F4014082EF +:1052200049815A816B818D810E94952221E0D701AD +:105230008C91082E000C990B442755274A195B09BD +:1052400048175907E4F0F801808181508083F60106 +:10525000ED58FE4F808191819A8389834B820E9411 +:1052600089068160782F9D838C83E2E0D401EC93E2 +:1052700049815A816B818D810E94952221E0D7015D +:105280008C91082E000C990BB5010E94782DF70126 +:1052900081937F01522A0F5F1F4FFFEF8F1A9F0AE2 +:1052A00022E0C20ED11C42E1C416D10409F057CF4E +:1052B000552059F08FB7F8944091D3025091D40201 +:1052C0006091D5027091D6028FBF86E0E7EBF2E0E5 +:1052D000DE01119601900D928A95E1F7F090B902E6 +:1052E000E090BA021091BB020091BC021092B90288 +:1052F0001092BA021092BB021092BC028F2D8E291E +:1053000009F448C08091B5029091B6020E947A06D5 +:105310009C019091B102992309F4C3C32333310551 +:10532000C8F19F3F19F09F5F9093B102FF2059F0A1 +:105330000E9444089FEF1F140CF491E0899F802D78 +:1053400011248093B902EE2059F00E9444089FEF87 +:105350001E140CF491E0899F802D11248093BA02D1 +:105360003091B9023323B1F02091BA02222391F097 +:1053700045EB3403C0011124992309F495C190939E +:10538000B90245EB240390011124332309F490C1A1 +:105390003093BA02812F802B09F448C08091B30268 +:1053A0009091B4020E947A069C019091B0029923D8 +:1053B00009F472C325363105C8F19F3F19F09F5F8C +:1053C0009093B002112359F00E9422089FEF11160A +:1053D0000CF491E0899F802D11248093BB0200235F +:1053E00059F00E9422089FEF10160CF491E0899F5B +:1053F000802D11248093BC023091BB023323B1F085 +:105400002091BC02222391F045EB3403C00111240A +:10541000992309F451C19093BB0245EB24039001F9 +:105420001124332309F44CC13093BC028091B9029A +:105430009091BA02892B9091BB02892B9091BC026A +:10544000892B11F00E94820786E0FE013196A7EBBE +:10545000B2E001900D928A95E1F70E94C106909109 +:105460009E02891731F00E94C10680939E020E941D +:10547000911480910103843009F0C0CD83E08093C2 +:10548000E9008091E80082FFB9CD8091E80090E0CA +:1054900085FF06C00E940B05882309F415C191E021 +:1054A0008091E8008B778093E800992309F4A6CDDA +:1054B000E981E150E33108F09BC1F0E0E757F14D9D +:1054C0000C948C2D80910103843009F441C080E05C +:1054D0000E9491141092C7028091BD02811116C0E2 +:1054E000F092BD0280918B03982F91709093790276 +:1054F0008E7F80938B03BFEFE0E7F2E0B150E04096 +:10550000F040E1F700C000000E94A00F1092D2020C +:1055100020E40FB6F894A895209260000FBE209367 +:10552000600083B7817F846083BF83B7816083BF5E +:105530007894889583B78E7F83BF0FB6F894A8952B +:1055400080916000886180936000109260000FBEBF +:1055500080910003882371F00E942523E8EAF2E09D +:1055600081919191892B09F078C280EB92E08E179E +:105570009F07B1F780910103853009F4A3CF0E9402 +:10558000D5150E94C1060E9491141092BD0280910F +:105590007902882359F080918B03816080938B037B +:1055A00086950E946B140E948A0F31CD8091C802AB +:1055B0008823C9F30E94A00FF6CF6F5FEE0CFF1C8B +:1055C0006C3009F048CD0F5F1F4F0430110509F012 +:1055D00033CD8FEF8EA38FA318A60E94890681601A +:1055E000782F9AA789A74EA15FA168A58AA50E94D6 +:1055F000952258CD863059F4F0E0EF53FD4FE491F9 +:105600000E2F10E094E0E92E93E1F92E64CD89305D +:1056100061F4E695F0E0E254FD4FE4910E2F10E0C6 +:1056200085E5E82E82E1F82E56CD8F3061F4E695BF +:10563000F0E0E554FD4FE4910E2F10E0B0E0EB2ECA +:10564000B2E1FB2E48CD853159F4F0E0E854FD4F2E +:10565000E4910E2F10E0ADE8EA2EA1E1FA2E3BCD49 +:1056600008E210E07DEFE72E70E1F72E883109F4B3 +:1056700032CD833249F4E6EBF2E005911491FBEA76 +:10568000EF2EF2E1FF2E27CD04EF11E0E0ECEE2E3D +:10569000E0E1FE2E843209F41ECD00ED17E062ED4C +:1056A000E62E66E0F62E17CD81E08093B90269CE32 +:1056B00081E08093BA026ECE81E08093BB02ADCED2 +:1056C00081E08093BC02B2CE00E210E0CE010196F0 +:1056D0007C018091E80085FD0AC08091E8008B770D +:1056E0008093E8000E940B05882399F3D8CE80911F +:1056F000F100D7018D937D010150110951F7CFCEF3 +:105700001A8289E08B833FC08A81823009F4BBC151 +:105710008330A9F0813009F06BC02FB7F894609105 +:10572000D3027091D4028091D5029091D6022FBFFE +:105730000E94922D6B837C838D839E8324C08091F5 +:10574000A8029091A9029827892798279C838B8388 +:105750008091AA029091AB029827892798279E836F +:105760008D838091AC029091AD029827892798276C +:1057700098878F838091AE029091AF0298278927F6 +:1057800098279A87898780910103843009F036CC65 +:105790001091E9001F709091EC00892F817090FDAD +:1057A00080E8182B82E08093E9008091E80080FF78 +:1057B0000DC050E040E060E270E0CE0101960E9432 +:1057C0003C058091E8008E778093E8001F7010936D +:1057D000E90014CC8A81823059F46B817C818D81FF +:1057E0009E810E94922D86E290E00E94EB2DCBCF0D +:1057F0008FEF8983C8CF4C816B818A810E94C10E53 +:105800009827892798279E838D83BDCFED80FE80C2 +:10581000FE24EF24FE248A810B81B8E10B9F8001D6 +:105820001124E0E68E9F000D111D11248C8190E063 +:10583000880F991F080F191F6F2DC80187960E94A6 +:10584000EB2D6E2DC8018896D0CF0E94380E9BCFCD +:105850008A818138C1F060F4803809F094CF20E06B +:105860004B8160918D0380918C030E943A138BCF02 +:10587000823849F1833809F086CF20E040918E03C9 +:105880006C818B81F2CF8B810E946B149B81809104 +:105890008B03911111C08E7F80938B031092C702EE +:1058A000FFEF20E742E0F15020404040E1F700C028 +:1058B00000000E94A00F67CF816080938B038695C4 +:1058C0000E946B1460CF8B8180938F035CCF8A81A1 +:1058D000813899F030F4803809F055CF80918E03EB +:1058E00011CF823891F0833809F04DCF80918C032D +:1058F0008B8380918D038C8346CF80918B0380FFB7 +:1059000002C08695FFCE80E0FDCE80918F03FACE57 +:1059100060918B0370918C0380918D0390918E0325 +:105920000E94281330CF80E18A832DCF84E08A83C0 +:1059300089E1E8CE0A811B81102701271027CE01BB +:1059400001966C01EC80DC01AE0DB11D7D01C8013A +:1059500089519C4FEC14FD0409F415CF0931B4E0D2 +:105960001B0750F40E94D72DF60184830F5F1F4F51 +:10597000BFEFCB1ADB0AEBCFD60114961C92F6CF01 +:105980000A811B81102701271027FE0131966F0124 +:10599000EC80E00EF12EF11CC80189519C4FE016FD +:1059A000F10609F4F0CE0931F4E01F0728F4D6011E +:1059B00014966C910E94EB2DBFEFCB1ADB0A0F5FA0 +:1059C0001F4FEACF0E94280EDECE8AE0ADCF0A81BB +:1059D0001B81102701271027FE0131966F01EC80F3 +:1059E000CF018E0D911D7C01C8018796EC14FD043A +:1059F00009F4C9CE003CA3E01A0750F40E94D72D49 +:105A0000F60184830F5F1F4FBFEFCB1ADB0AECCF89 +:105A1000D60114961C92F6CF0A811B81102701270C +:105A20001027FE0131966F01EC80E00EF12EF11C83 +:105A3000C8018796E016F10609F4A5CE003CF3E014 +:105A40001F0728F4D60114966C910E94EB2DBFEF2E +:105A5000CB1ADB0A0F5F1F4FEBCF09BD19BD09B48D +:105A600000FEFDCF8091D8008F7D8093D80080917B +:105A7000E00082608093E0008091E00081FDFCCF37 +:105A80000E94D51577CD86E290E00E94D72D1B822B +:105A90001C821D828E8377CE2D32314008F08FCC50 +:105AA000C5CC2D32314008F03ECC74CC87FB082E9B +:105AB000062687FD819567FD61950E94A82D0EF44D +:105AC000919507FC81950895AA1BBB1B51E107C066 +:105AD000AA1FBB1FA617B70710F0A61BB70B881F7E +:105AE000991F5A95A9F780959095BC01CD0108950D +:105AF00097FB072E16F4009407D077FD09D00E947B +:105B0000642D07FC05D03EF4909581959F4F089534 +:105B1000709561957F4F0895EE0FFF1F0590F491EA +:105B2000E02D099469279627692778278727782702 +:105B300008950E94542E332312F48A1B9B0B0C945D +:105B4000A32D0E94542EB7FF0895821B930B089536 +:105B5000991B79E004C0991F961708F0961B881FBF +:105B60007A95C9F780950895FB01DC0102C0059084 +:105B70000D9241505040D8F70895FC0141505040DB +:105B800030F001900616D1F73197CF01089588279C +:105B900099270895FB01DC0104C08D9101908019C3 +:105BA00021F441505040C8F7881B990B0895F9998A +:105BB000FECF92BD81BDF89A992780B50895A6E1E0 +:105BC000B0E044E050E00C94112EA8E1B0E042E0D7 +:105BD00050E00C94112E262FF999FECF92BD81BD75 +:105BE000F89A019700B4021639F01FBA20BD0FB61B +:105BF000F894FA9AF99A0FBE08950396272F0E94F7 +:105C0000EC2D0E94EB2D252F0E94EC2D242F0C94BF +:105C1000EC2D0196272F0E94EC2D0C94EB2DDC012E +:105C2000CB01FC01F999FECF06C0F2BDE1BDF89AA7 +:105C3000319600B40D9241505040B8F708950E943B +:105C4000542EA59F900DB49F900DA49F800D911D83 +:105C500011240895B7FF0C941F2E0E941F2E821B43 +:105C6000930B0895A1E21A2EAA1BBB1BFD010DC0C8 +:105C7000AA1FBB1FEE1FFF1FA217B307E407F507FC +:105C800020F0A21BB30BE40BF50B661F771F881FD8 +:105C9000991F1A9469F760957095809590959B016E +:105CA000AC01BD01CF010895A29FB001B39FC00117 +:105CB000A39F700D811D1124911DB29F700D811D38 +:105CC0001124911D0895F894FFCF4E0F4E0F570FDA +:105CD000570F590F570F570F570F4E0F4E0F5E0F9D +:105CE000570F570F5E0FD016F8169B18F8169B1813 +:105CF0002B174C179B184A1857183B1D3B1D761D38 +:105D0000761D251E3F1EA61DA61D4A1ED41EE51E7D +:105D1000E51E802B842BEA2BFB2B062C252C282C14 +:105D2000672C882CF82BF82B932C962C9A2CC02CB3 +:085D3000E22CE52CE72C0C2D00 +:105D380077068E0C6D0C690C650C760601191A1B1A +:105D48001C1D1E1F202122010201002A002A2A01EF +:105D5800818283E200E900EA00B500B600B700CD11 +:105D6800008301CC008A01920194012102230224BC +:105D7800022502260227022A02B300B4006F00702F +:105D880000F0F1F2F3F5F6F70001020304053736E7 +:105D9800350200020102020B000B010B020B030586 +:105DA80003080300000001000209000901090209B3 +:105DB800030303060300FF0100010000FFFF0000CA +:105DC800010001FF000404040404040402026162E7 +:105DD80064669092949706606365679193959607B9 +:105DE8000001020202020606060909090909090F4B +:105DF8000F0F0F0F0F15151518191919191919194A +:105E080019191923244022B6B6019401DE00C808E6 +:045E1800E108010993 :00000001FF From 418c347ce7f108d3955970b7e3f3a3e94d126676 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 28 Nov 2021 22:30:00 -0500 Subject: [PATCH 71/94] Updates after breaking changes. Changed LED timeout and effects definitions. --- .../pro/ansi/keymaps/solartempest/config.h | 91 +++++++++--------- .../gmmk_pro_ansi_solartempest.bin | Bin 36584 -> 36980 bytes .../pro/ansi/keymaps/solartempest/jonavin.c | 73 -------------- .../pro/ansi/keymaps/solartempest/jonavin.h | 19 ---- .../pro/ansi/keymaps/solartempest/keymap.c | 18 +--- .../pro/ansi/keymaps/solartempest/rules.mk | 7 -- 6 files changed, 50 insertions(+), 158 deletions(-) diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h index 5d79e27b89a1..202a321f7689 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/config.h @@ -32,49 +32,52 @@ #ifdef RGB_MATRIX_ENABLE #define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_HUE_WAVE #define RGB_DISABLE_WHEN_USB_SUSPENDED + #define RGB_DISABLE_TIMEOUT 300000 //300000ms = 5 minutes (Suspect the max timer is <5mins). - #define RGB_MATRIX_KEYPRESSES - #define DISABLE_RGB_MATRIX_SOLID_COLOR //Remove or keep effects not desired - #define DISABLE_RGB_MATRIX_BREATHING - #define DISABLE_RGB_MATRIX_ALPHAS_MODS - #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN - #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_BAND_SAT - #define DISABLE_RGB_MATRIX_BAND_VAL - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT - #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT - #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL - #define DISABLE_RGB_MATRIX_CYCLE_ALL - #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT - #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN - #define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL - #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON - #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL - #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL - #define DISABLE_RGB_MATRIX_DUAL_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_BEACON - #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS - #define DISABLE_RGB_MATRIX_RAINDROPS - #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS - #define DISABLE_RGB_MATRIX_HUE_BREATHING - #define DISABLE_RGB_MATRIX_HUE_PENDULUM - //#define DISABLE_RGB_MATRIX_HUE_WAVE - #define DISABLE_RGB_MATRIX_PIXEL_RAIN - #define DISABLE_RGB_MATRIX_PIXEL_FLOW - #define DISABLE_RGB_MATRIX_PIXEL_FRACTAL - #define DISABLE_RGB_MATRIX_TYPING_HEATMAP - #define DISABLE_RGB_MATRIX_DIGITAL_RAIN - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS - #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS - //#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS - #define DISABLE_RGB_MATRIX_SPLASH - #define DISABLE_RGB_MATRIX_MULTISPLASH - #define DISABLE_RGB_MATRIX_SOLID_SPLASH - #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH + #define RGB_MATRIX_KEYPRESSES //Remove or keep effects not desired + #undef ENABLE_RGB_MATRIX_SOLID_COLOR + #undef ENABLE_RGB_MATRIX_ALPHAS_MODS + #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN + #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + #undef ENABLE_RGB_MATRIX_BREATHING + #undef ENABLE_RGB_MATRIX_BAND_SAT + #undef ENABLE_RGB_MATRIX_BAND_VAL + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT + #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL + #undef ENABLE_RGB_MATRIX_CYCLE_ALL + #undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN + #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN + #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL + #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL + #undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL + #undef ENABLE_RGB_MATRIX_DUAL_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON + #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS + #undef ENABLE_RGB_MATRIX_RAINDROPS + #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + #undef ENABLE_RGB_MATRIX_HUE_BREATHING + #undef ENABLE_RGB_MATRIX_HUE_PENDULUM + #define ENABLE_RGB_MATRIX_HUE_WAVE //Enabled + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL + #undef ENABLE_RGB_MATRIX_PIXEL_RAIN + #undef ENABLE_RGB_MATRIX_PIXEL_FLOW + #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL + #undef ENABLE_RGB_MATRIX_TYPING_HEATMAP + #undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS //Enabled + #undef ENABLE_RGB_MATRIX_SPLASH + #undef ENABLE_RGB_MATRIX_MULTISPLASH + #undef ENABLE_RGB_MATRIX_SOLID_SPLASH + #undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin b/keyboards/gmmk/pro/ansi/keymaps/solartempest/gmmk_pro_ansi_solartempest.bin index 1f9b33233744c3b04a261bad6aa7f09b3ad93933..543666052026b5e0669ffca15ac16abb5df215f8 100644 GIT binary patch delta 17310 zcma((33yXg*7v@bH0ho$&=q(|S_ln=LRpFkq-mQjDO3R!0VOSqDT+i?CRN6iP09!g zKK>a5o#}u&D6*tbhaw?t?&D0N;uPFKgs`adN`d#XzW>~p6d9fW`=@;8zI)F-cR%;s zbI!ft(ks;UcFKWdh&e_f<%$0Sew_E;(fwa_buLB94*|Xg=mC&FjvUII$C0ua;QuQ0 zOMKdI{(IVAmi=|w@&8v=4xPIPpc&w|0Gj}QUD1DsYy4&B)&K9bv#;YvJY7~-& zAf_E7}rA8_vV#Fus-WJ&irK9S?`*n0B<)H0YPkZF%Jo}e%)Twg};*J~|4`GfA zx!=+t=GXZrrTlfVe9YLYZJlwZWRuAIMVYD9`AioouJT~c6I!WAJY_Uz+bNyA8S|)RS|z`5OfCV z+#XyO?acFnqYE;ZhgQVJOC5PRY=$B)OC8w|-UWG&hK@r=8m{lOA@0GzcEBtMRm3{7 zMrvw})RC2;yP%{)3PTdcA0pkn86q8d6Jm42t9# zyIfb-{p}^h(Y2`qhTK`;EUZDCEL3Qs&sN=h?JmSA13H+xdM8txXg|@5(pPerYU-6` zB-(!PRo(o{T|fGUIdkhW?5j9TXV|_2+|Iks`_QoS9@3SOQn!XnbETKUogoLAve%@Z zZV!C~q<@!4^Ci+8X*B&IybL+VJT$jGc+iL33sxW{;SIuWs!o|n#$|>Ohf%vx=5bw8 z8Ky&>mk+C4%1*>J`dycl2F!^375BJK87BtI6Ijx{j?dS8ia>Xf8dahK*(sra&3ZsnAeSk5xd@1&e&k^N&r_SiWwg7LTN?0U3bq|T<4E$A2uE^e*n4O;-BgmYhjMd#&6p5@Y zF}tKU5}lAofTajK%>j10z7i=DS0N<_Ukbjd0C@mf0QO|!^I205;o6(Nm(q}OK!2np z+;_AC1OVHdlwSnM5iz95d&Gw8Pub+$Cqc$Um{R1wc9X5A>=gL}?B1lpxh)Zy37gOs z#Ep)imlzYZkI>QFgGUIi9&&qqB(?x@Iq2go=pSuT9YAe!+7e8LD>B1NZ4U@Cv&jEl zs#(>E)H2xAKLSgN{84sD@&v~g7a5hZ6LY~Z;#T`nbL2XCcybbzFj23 z@nqm_2nz!~Dg552?4-DpB7!Zhh;40}+k7xOuOU$hn_k9E@*_?VV79omg2-P3EIU8N zl9Kc+QvR?8Dc8d{w1)jOrHpzKnoTuOGXm_?)Ld#oE4v6%g#q?0_{ak6Pf=uos!4{q zB7wE3iX56qwsZ3(8X<17sDKTD+7P$?FyREGTjp7*%kauLrLaO_`<$F(+eFNj3&v|I zV1^l3+X5u2HwediF-L%K+P+Cde`x}{2C4Q+1JGZS$AZ^JE%b$26l7sNY9 z9bv8M`3^bvSK-x;Uf+0KlKU=of?DJ+yOo_fC*m$fqJ5m?!ox)2w;6eWqg2=M;?OX&B>Q zBCT-#%yk4>g_FJX9fx{SQ_JBb&E+ys2AT)|-bG&{1N`%$YJ4yJ+k;8!uegCj$_qZy z2$UO~!EveC?y>m$jy2AEoqf%fn9%8AUBDhNWj7*>>4CGrRuRER_S^vR(c9=8=yWC! zwnQ+Hya?pqMBeOCCLHRaQ|WG+`$I(J?~WYoL8*v)Yz5+~B5Ow1+cpDh~`X@M|_2` zcu8a-bS(gI&3Cq=(1|%dh(Xz#4dUmnke}4y(0fs_Qor6uj+T?XSd+Xzox`bU%$Lqlsb2wAyFYRfal8FN z2rYi$;>8Y_=Yj#!Hh$FK(#tk%KGqpS-Ar6`Bp|Wt8wAo-4j7 z5)s~rxKVz*g;pc(aCqNE48^_*;}MRVyY>*4|04YQ#bReFtm@T^r0m~)4bJhyZ=duJ zV4eC)9e5Q&T63;LVk_7xpZnXOjH3_rq`2au#Aj=xhj2zGZUZge4qC7uoA4&Y6#*|E z5b&)7Qsl!fgfc+hVpE*PYKrjRMs~FII$a>}8*Yk^Z#8Cn$cmeSHei^&p*H6Z`_oRP zG}J`cvC=W?Fn}<15wiCs_P7+F_NiQCsiMN+XecT!(p`Px!X3lJOBiyt{1hT#5LC}D zfKLE|A)=l~CDN*Q$ay+TN{ReM5JQMt7fW4pvqf3I$FtdESy=_M;ee(1MNuM% zAO*d}Koq8eAmW9t!<~<3|ABe;}u+vM~nPp5gDhDUGcpS{eKVO zS%5gR>OeN=PElH!MEih4QlMrXc?JmhPHp{;79xa|-W~Q*Cu3GO46v)GPO$GXVlTaq zbE#t-w>k9Zw!8QL%y9*txU28d7W*vwM&m#)WA87FVKy3byj$&uy0*4W%T23|Z+o$0 zlTmegdrLwMRyX!4(zidhwWYDwp-A8Qn8-gHrirkH71`j%W8|DdeiG)Fbn5mI9EStB z_%he9cgos*QTC^HM);|rI1T7!J2wkx-(~@~|HXblkhMm5V`x_!(t}~N!X>E4)_Cl9 zM#KeL_t?>JFbrG&RQo?doMU5r+s>;rMS2&{aq)(0ovqR8y5O96%p2hcg?=vHWyV^o{plhR=LO+iEju1VgG)>bGME=O2+DmMg!uLif(pKA?d0Uq zdZ0EHbY|%$;{Xre<#5zG>XPm0c1P`-#(XaY+_frlw3i-*i%xVDoK6`{nuw=~@C{HJqQ%OHKy>7usXFv+r=NV7pmXLbvjts8{?B_h8~ zDp^?*;g>^651hb9B6#qlQuz&Vo;b)f_w!P_ex9rZ8w={C$R~x#q&^K5)Jjd?gbLat zD}B-BiSRRS>+)YcMQvK>^nNcI;q>-(`vE9BUMkxi9OKj0Vm3}A1CALN#M_X5Az2Cs zVT_i#DvO7(#RJ~FI^YIndfT8tn_#S}JUz*TM!ez4tc@1TlbSSF6~&qx3{9O;WPA>L zhEjRBq8*RLdA{s8(MzY}QG_?5vzHr^)sXqK_(+IhF8IJt7YTD8Pj*E2C*g9kN6BQb z0~5h#C~dRU`5rfIW~J8R#R8bDeAVJ(6i!4UWLTV!_x&c$BG?dwk>|{HwH~#3U%qN0ovoXPwW6CuvHT2b^2-Z4qr%mMl z6#g2_m`g#@#mt&Xw&Au2A0Pb8Cj%OhPmk<#>g}V2QY5>2f_^Y2mf|F_B=Yf&klv0< ziNw^~boL4MRmSsP1&AOb&H84GjDnK%ewqXQ$xRgYzI1IYjm_Csnw!%V&13xt9qoM| z*{Ux~Wr=%00V(7rX&T%GDoAI8J?ZE}LIrjbzbX~TwW}(!ZMV|k>> zRyArHe(Twb6@}>H;^o41`p;%rBmd;5g98nbSQ2&oPeb3q-iooq*fq3!f5bA>^Y{NW6nFI zRx&-xPTCx;@k^=3C@!h)ML#MbvtZ~@*^G)5@0T5`jENqFq;V)dC(|wRQDd4o0hBIM zj?@`nr|g^#j3=QJ!68W=| z*MhjVKuv(K8*~iJQu(7^Y-NaYp8w05Xm4prx|4lw!wSsg9;2RsiAxAe8V8!#5eeU&A*WzNBCld{4nQAHJj@1K%%W`4>QSrnq?m#jS?j zzgJYjj1nbFK(x#uqNEFGY}GVq(<5B0O~@A|LnC$ zDL_ApFAEig4fhG^k~#TtCN^$pfn!Mc4I$Tn3Rd@~!92bsX4NUR)8NjcCcnU=hK0gh zDn`vr0QaPU^_Ao2kiBl6FS>VY5t)#UJ9 zEk1FN>yoevslWI2bwbsdSRnH2MGe%XaMXnPC&MHf2Qgci7-{2R`>J64YLLKWWP1Qg zI@jz&1$Z;H8J5+sK}a#2>%cpSruwXyI85*+)o4ukjWE9k&b~}HE<}Ygk0OTK6^g5s z)#y!$8pI_E5gz$b3t-d0O{=A#pCds?7HGS z{PO~gwj1RhqKmpNl^I0- zZFkwNyv@JJJ8)ax|NJ7a1Mzl;oy-01;mGgeYr9qH|JZ3 z#DtD0(OG~?00OOK*ohK(5Pn%T3hi!^R$PON@j2BmwFk$Q~PUcXG&IX2mb9%Aa6CoQEA$(l6&-f0Q0^ z*MaAW0S2^CE5lAHQS1Nik2mYA=jN1Ok*QbZuj|l5xj*`e@8TcCcL6&DP60*~Y2`rn zrIJ-?q@*+g7zx2LZ1KnjJdpkENJl@Cx9>*l+&kQq`RE)Gq!H;=+NdFeNRG%4cZ>Wo zH<3RwQ$JIk^J9hLR2z7zK4*82(x)B~WkMDrf`Z_VvA$7bYVH*AofA!H$Q?Pj==G}# zI<u0)LAp{`x!T!Z$WXO*Ksi{*0(Y+ce*2|7uwd1#P|KYnHTkShaP4m@ zjiaa;YuQC({wS-2OICKq*e9A!!rrIg2OqT8Yde>IrC(P{z{A=8hYzA?;!Fm)2~U zj!F>1ssnWWeCw+wa_wM|aBS1K7l*fqM|%|&$2%ZY6IJ>(5swD@%>6g0NvaLDFRm5& z9Z>s)v8<*{6JKSHdoj;0XDit$Wh3q`@O&$LwXdv})+Fpq=)v+3pAeQ`O{Bdhnnh~) z*13Uoy<3f$-6iI3yDEr#;?p+>MXCfa7PEiRbR{%RjeC#%xNOAunUUPO_?KQ3WM`FI z<9m{l60g=LrS#ww+Vrx3(aQpLl+<#hM@%(bNn&*F22M;#0msBqRzF^=`4bGl0|Ov) z@NR4%*hJM4cDN4)GIAXI%=oc*8{0X)!m&GoM_+&fw?=E;c5Bj#FN@W3aAjqJ`6v%5 zz%DU*O3e5rP?aqOPU=l^&^!rx*RUyiyS7rPXTCn!ql|0JA7vU^Y0VGuLqoEjcuZ3A zo_G}E)gk%SO1u>1jFk7}KsqNR%kD{w5u^bkEi~MQG&=jY!hCk!9kU(C4R^y#ApjXm zS*O~puFC_(KyJ$MGPN1@csuwJ>Djq(>S+hm@32j8X|itxDT6d=CY5O(XwZvAx;P2^ zjdD(wJV1@LSAFgF8fP?L3dK(b}WD5)v z(J%qD2|L`42o;$y$2g4ra3EE8 z<}}j&(>DVat#9#WLi{W%Lxjgp!`yuiKz0~mQZkp_0A#QCGpjoDtXrxxYfym-?x&HE zV-E562GeSOPBjE0{CGgF&n?}2{O{A62h_GWDCk?8lA>}417!}F+5lWOC zP}Iv!*(R-hn?mkcVEeP}J6p+Nk*5!r945yDp`~kSQ;q#2`#QU_ggALmvL8;;;*;!; zlk^bgOdbMZ`D7AbJb6gf?X|-Uw5Uo&z0NIaGr)tk;+>yc?}657l0QLv<^1C$cj-HQ zWqa8hQ0q2!fT48!J0LU|@Nth3Q2_%7X?)EBZmyhC%fUE790Rwmoc9$WTSYEkav*gX zj@&`wW#4Reok2~d`PsJ&t?||sNa=^6+|Q0FuO4teEEY*2r>a_6jZj(Vdb`|&hM7HK z{x|GP<<(Stg#E6(#*rO4?ZXA1fyi4i87c1vxBzerV7vh-(*QOAECBcrU^jrWQ_Dp7 zq=;GvZa6SL3m_$rr0E22A;eImy+=pSG|nvV@qsBiFw?D8!}A8nnH@pHGTmvAA|+-( zD%-6auO@7%bcG#KVevLYd~thQnHgXFJq!Nbc|tX}&f zLfQ&jympn1+(OemY^Et=+cWw_^bipOcy}9MTMEg2!ePEfU<+ywQSA^+EQ4X_(`cARdj!aKLtkYd&BLFc3#a_!ol* zZnQ4py((9#j)%)8rrU5$EQ#;~gWX*~SNM4s-i(J3mvFz}qxl;I85kOJgVk9vkkV&$ zLmZWu01GZZd5{{j0jvva7tvrlq1J$hl=BCaUHH!L$8_K^-M%p=N%F;vl(1abgA-83J6vV1}+~NE6DG~5$B56-%uWN@J|y?fcls{A zW!=QLikWr;2a0ebG}puy*6hzCG4L#DWhQ!=;ps5H+usi1d;Tz=%jTH}^$+s1MXc36 zu5yvrgOpd<7UZY7*}KgB)2oBvRn^P9OdDa3AV0&++RbCN3;jEx1_#vev0o0hrPj7% zsrK>ntr@L0FgawPHO*(e=Gkdx*u%`|Z+&OrsEuML){o2hXP|v$m^b(>kB9kx3GEOn z*|qf(@qG5(`eOVF+gsl-+Zn)H4eADNBRJo7LA*5=QmT)h zl~U0XlA?5#;?^CCs!YhekbPy!ywqudLA8TwFn2IC5JE4TI`y#!tT0bA1{1@8GEsni z3oa~)CzRk+or-#`6_+YKagehKJoK1b8Y1eIRx7+ri zwN)=?zn(f^NSubU&5ouae>Avx$R?%h(yh5pkf}B{MyqbfldlAdFF~AHAo%g7j(sG0w4(b+WFa$gb)aO z9c|8ZQ*eG0pD%gzvl`kVK3iJCT$X%s1P4BOaDdR}DCO6;;jcR&19Mu*hl;pbI75Q` zTp$96qQ_%ZBkD;ciAn1fPmC1fHck= zSC?;<<;B$i?>vdL-v{M5!1sz}t~SK z?q}N!+!_pg59_cR_=AG7QLAimwnXjZ}mXWMoEp?_;*{i_n!08O+9 z|L_f{&0){Y$QjY!yIE*q8m*h5r6~~pMnw*3#sqCLJFCe%x#xTp)*TCJ>-mL9`v$AN zCnIM8D1GN*V;Vm+V{l>ppIG}=fPbGyp8>Bj=loe9Vka`IOVWC4v6qf!U67LqWSM}D?wA)B}SV}f&%VX0rF%biY4x%zs0a}<{T{FS&$#| z;lODFIFJIvf}w#N0d`kuWZ=aM@Y^G_eA%b94U8EQ4}}N(TW)dq4CH428!kBv@66O% zo6;me9=xIof8fhC;nI#dG?z-lTgRf4-Kit5$&%&>8cseFDgSaGQeFlK12_Rb2I%W8 z={XtQ>cQ;W_nI7S;l!FpS0Qd#I05`Dn42ybu2D;gD-Ux|h2x-?XDsAUArrI_CWfn} z&|5G`WP{i`;ee=;nc$ee7mfr0lLP;5a%f;~4)~VkwU4eM?+{6Cq*m7@8{{;&Ncq?` zox^<=Dk3{Mx-tX6a+2v8Z+@M29o$nfsA%As+`4r88Rwa}#LpRRkx8b`1lj+Bz`!Gd z%$fj9M*P|H%`=RLU)e4U7eOMQ$v!@_%0Y#dz+BN; z68Vi_a7Bf^A1+av{n5)M;$8j|#EGbfs}^`~L!L+nkSH))R(KS4h@@4WDfJ@%Xhdt5>-%|0C?Dww@y7#%|HFKJm&ktzg8tJW*i-Pb z2xdfjGIT9+*{5=m0f_uoH*2|nPOcBu;V{4lWIX}80lo(?u4BKrzv!MngejBG`TY{S zP2Iv+;jNcQb`Y840v9=XNo%|ad zGB__R*|Dg(MQ4>wAdG>y6n4|B(js#x-i+B@R>WRu);Cj|N18x1fIB)aEZavIam(-E zVr33eJ~o^EY1X9Kj-ae32^BsGzDkU^yMwER`nyO0k|sJ6;;P>PBat6AS6Hblu8@3eE9_G)QM# z^XSo!y*gje}P6oOmNVybFN`7;0*SiK%hY+laY^I6eFHoO1kE)-@*! zFJVv38B}l>Hm?ePt%BN#c(PSTd2_T}Tp8T`9TF32TQ#J~oqnvX6ta`(ClL2!OhPuj zEvq5Cg}9SlCBQ$1=a8}2OVWI|Ga=$AD!X1XVnn$@_qk+8*?MsTS#5v7e(By_49=*Hs~xpc+wYTyni zGfl{x%o_W9so`Z!do0k%;D;@GOG%}x@wbhLTM@XBkGK~CDDPS0pl)&nu_oZaV{Z8F zShUT$I(KxA&OO?+!$_ST3FpEd@#*HR*3HJG?pfBippr$FewMA)2Q2A%TP=jAgN=eK z&-!Za57MYqo!RyCnztCiJhmFGE36roSr()@4kZ#Qqx9z+RW6MQa-oYz%^GJ}j#G_tcSqvUfB!s4-;ELl*+8(-}sN?X;lS02C)Y|@?uyZz1kVhS3&|$Nx*Fc>mAPoE z)-uOZ)d*Ktk?TIt{wxLyo86=XJE^>BknGP^iuhx}YU3#q^7@vE>Uh=9Ak+GMe^9cl_IEvSH7Y z(R>m9#|1L_2)t#r zfhWzf%8~?b)b(&N$$)WB*1X(;xQAHvLpfzfB5iX_`Bwt+zYI<|=4FX4)t$D`^#;DZ!jYm}kwi!lnfO_m*lJtbZ`! zxYC1BA48c23Bx8JwVyv4M%sCn9bg|r2Q@MiF%_VL>ZB4s-vR0w=1#HUhjQSjB54Af zYaKY~-OxRP?9MICjFWH_8QbB|YsM-;_Q)l#$k(vhu!Z2J?ufFrH7Uo;XvGonRw|RQT+2Akx|4+8xqA^;`(J*D( ztoyq*3s00}a2EM^4}!_V+(TfZlJDK@;za|JHVaQPn}w%Jh$X~6zo@_CMk^{t-1n{V z8fb_i3yIX{AKm^a*$MD_63Gnt!nav?5}txMXi^N++)*q%Tm5URx_kePR>u@iayQmj zdMJ3H97Vqh-`5siSXlVb5}%^hOrpEkS02v8jcnJ$r4C}o zu7G0pk^ymGd|<|ua0+oM5$j|g3Z6j@+&j#?+c(U-3*51Mq*rPHK?CV~Ntp~N@s%ex z4*Y{qY8x?}xs~E)x2VKDeN-QM@?umL@dQwr#iPDV&1y$%8T6(ixW^~UFgQZ2+un;0 zIQ#vFMaqgK`Vw#9e=ap30>ATgTS19QZbr)a@LdQ{*11ubUjka8-sp*&aHb=*sH{6x zKUVUlPZ%>sIe2XLnAqQh3E-P3*$52t?xPaB1Ri1V1vYQ779V3LFV2boHbOWHes{|@ zE*=vPKOK`&Z?b<{JQP2_|HH-Sa00w%&?eSrSf*Rp14|0x3P87i`6C0qNV&)62> z0`{`4!a?%D1q8OjSJID{;AQB+N1(@1+@~?zk%P-`;Xa7r4jf#63wI=jd-LGSw{Qny zxb}l@-NL;Y!~Oo?;V8}l4Y$XT>kt0z7UAz>xRnRLx`kUG!`To1a0|CGhI{m2=oXIL zG%5`uKmTCT`o4iY8pF*xm=8Exb@64s;dt+f47O|Bty4^om9)C*z$m*I3PD$(MFS(B9Jv<+NIq5$u zOFs46DZ3uYk;Q$ke`I-$R?3GfNIyGpSrMMh)-Jmbx3GU+_BgI$`~9X9UtvG~&G=$s z_oXUCk-TR92yPBZ8kh&1%juqY^A=;Ow+@8vwSXDIf3YL&S$OsSTKhOmm91x2w&?Qm z0x4>emjyO~em)W97^rsFWT9Ql2V@`#2*~dJX$OT9b>D zJEtQhf+49|X-vf4lF68lXhsJ>cW*7(f5Ns~Tk(+BhoH%SXADNrbn@(@DW-j=4N<)yq04>1LSfFi-iraY9Q zvZB}Z%wd&qdAUA1}`#+PUe0=Wr{r+2iXYS0I z*O@ajXU;h@;Z_56;{atv62yE?A^G3`16aNEKP&ftwKZ}bl9vL^16U2Pc^$IK{{)e@ z0sgN_zsK*~@Sm6cecgXgTmS!!*?~A0z%>9bK)?0>|2qHPQMk_e-xHtrAF%x;DX>e* zy@uCBZ3syDdA(c`#iq}K==4BJWlGh%divsQL6TWt=5DN0^|%qOan&pLlHR4*{PB831ZMK4c;vQ1L{K@Y0KYPDHmC(S_fh%_y4p$(ZfdKw+dmlGn;LdYk1v;}Kvr__*X`8J9= ze}zH(gyZ8O++atJGu&orf2%H(zDCk2#84H<^|3ZQF}coMRstl;TO>RV(uTA;+JICU zbF2eQ4qQmei=N94a~X1wdPObqmFoJ_wtiKbdI^6mF#XPh>fQRN z3o%fGl$P-S3~1`q^%JeOsEVZey?Xj<`;8(U&D)O`*+~O^otVqyEuyDG6g@ssZpRFC zfXppXY(G}?2%?0ov;CnB4XbowevN;NEcW~~Lz;!sNIP&rdsCVj^B)TNEW?`Zm|yJQ z8Wnw>fx-V0m`*}JiCe!5{N~1djsLGQ$$8z)Y6ar|;kyQyGJlC|zvg87RqG<5~jmF6gtNm$|ZW%i>KXhL+;^#1KLvh>txaA)sTxctxjAN zChcLN$&IaivVU`gu7d#sR5=);>*c^9s3`TH0Y(sCesP+ncwK>6R89 zvdA>^JASx7AuDh|l$DfSr{#&9qp{=^m7{g~!y= z9!YYn`4@NTo#i#Zy0dJU5k0>KuR{8vnrrS9o9J-{zk}3@n(y8Dw#y&C z_i)WQs~hE?a}s(7g+`MVVsCmVd^LpOLZjK`KMo}wp^`Bnyeu?g351=H)8wT2dY|Zd zJ@}RzIlcoiLzeVoFiu5_gq8597lwiw^b)82hC(+B`a6F@VVAd95x?3?X#Pc%@b!KS ztG#cXkAwAp%{Nt+dLF4Ss6^!h48>=Q;rIfGr$*v)A)XkCFNAn3wDh@80i#THk$S}p z<|rPCcppizP{J1s$4eN>3cEg>D1(gOf)f5+-xk@3^Gfv_std|#fV&zD$15TJeI#B3 z@s3D*7R1j+;uR48A`-8H_+KOO84z!e#AieNSa5YnEJ)8!N9qh#RK^1GXt0*7Qodg= zr5W#}HJhARQ|NlADn6&bfMbzbRMjc*B#Pf3OyNbzEtj!M^1GZDgIrLaHepMoz?`b+ z-xb&p$)S%H*r!*;MRM(`v!RAp1i6~%w6XIdg(lx^|8doGp#qhWobh*a`l?O|a<4_F z6^)7%IPT87OZH2u-$IphB6&G?EBEE32D#s$-H zn6ybhMG8CuYmcnEr(oSZvKh&@0+;}v0N4(|0qg_749$PuiXi-JE4MA?kEz3t;c0i= zdyt^lPPERnlTpcAFmDJTex;Y<9ish)T!;DPu#af|^+;-oolt}LGkzks z*_($IQohSeN=kU$v7#2NltPxj!4Jwf~oM9hL&`}GOV(mM;`+vCFg3j*&J zJq=>UU>!=hjH$6Us z`tA?hN=RK3xOd@mM&N!6BV!VlN)UfSPj-1J{BI3Um^*0qTwKW34!~i=LI>dkG*s6(#vNwaLWb@Av!F4-` zczdMm1Ys6)!@Vt3;!3bsHtk#)l(-s1h5WmbB6&g?^NpJx^lejvHohaM{ zjbRc04K(&&B8mMi$Wn>4%sU;1x`|W-g2@0jS*(+$@`Uo{ZxK=wP-;VlM{CB0ziBtAyVu9%|}wkJrRGYLqcb(bMUWw`gpL zw?t^Xeo_vLnqW3YFy8@YSZ7b!vzwl=)Uk2Eu!7*&Xc^mJ8^Qj`cBV(Brg@&$X(dic zHv`<0X$M}QU<7b7@R`9nID9^BI@3dsZ|hF5CQN~YHl0sGNoX1TJBmI1}s^FsR==rrhvgCS*GuF$0vP}l6V}rV%V^DjO=+TRRapU2)U2sN6aEO-&-*XR# zQUiiDFp>%4n^5AA^Nu^)Mh$Q1s9}GC^!^TzV8efNj?a&CRNwN|5ZNfr6pd)!x+GBN&W$7tfhXJ=)(3FYeYq*uhWVAfn4jcd3qs*^ zua`7o)ws|w>#c`BIMbt7)S=T&5HHWc&ZnG+f80CGjrdhw7D9`+*o~6-rCuGd4XgS!C-FF8%B=}pRmym4gE!Ni#8U~E zpy12i{t*7zn*`xZZ-VE>yPc08;t zny2IYXQf!q^4`MuOpq6uo|!*2gWNKhc&d7^LsKOMn*8p4nxJHt=HA%56J z0M7%o`7z(w8x}FLmXMUU&d`3@aOSQ!tqHgrEUj86sTWm#iFOnfgA)M zO2c9P(>>|Akp7mWxf!Wy{1mq#RSV(4)YNI@AjWFihj_65EOT{a3w;hH3BIr8kMB)G zOKtb0Ny|2p=5SgWewv$>HW9*S(njW01nZix=BD$Oo3uqJleN4jND$sFdM=814}Elz zAn8KfnsH9l{S-*Swc73uFtm{9`3JWu zJyZH4(9Ceprw_57^WAViXxX2IMqGC;XYdpWzpYnn^0*fP?mKrF^CVz8+~$^OL-h14 zOLSGCrBRPuX1lcO3_V8}jpmu~XwkC~lxCTPce{bw>i};8P=++qJd^0DJ&7EzL0W0> zwCvrK1VS{%wb!Dz4YXDanx14CR0XSL<4DU(dhDW)^7b?n+O@l0*9_}O(WcLFO1n-; zI03gWvAj^4?cxN~-d`A{c%d}ab173^=N4ut8iJ{uzFdKOwj;@trHn5to#{)#!W}op}_^Ll+d|#CyaWhfSH|w z9KO*^D^yoIp*uwO)NXyY)6@2J`O^lOCDZbB`Eh-g3&Hfi6>RUJN8zETn{qG2!zdFd zJT$LEam&0`<$Nc^@`0}D>=$k{;&W%?reZLQ8rPk1TT$0($t%FxS4yK?3Zbz5g;L6O z$b$0!;=+YAFQdP5lP0heX)imOLUNv7x}X7~J$@Vejr-BkSl0t>hu0CzZ+@*wZCqtq zW)wYAaW_bE(X%Arw0&i3+%!lVcR>Ywl{3^~q}nOOFu>cookF~|K=howr($o5^y_!&e|0X+B0J(aeXKLBYJ!>mJ8bH>QrOgA2oig&X$snkR z`uk}s7;2!m_N6aG(qR9aX#SVha31GHsJ-V?WG;(Vgk%aFMKVYs2T6lx%%XsFTF7Jy zhNa0)M@P5LeDZQK=B{kMk*1@P-2*CY452+L?I*|335abJaIu>aUcl4 zcK{I`oI@z8Vy0!LOx_Z8jvL4%4J2bCMZk$@$gpJC5R+zx5t5>g z7zH<-89ewQQ4Zdr??uK$4rPkZgcFGjiBLrNPkMu*dl{AW?cP@+Qz3eO78Q0<0i^12 z(hHdi;sy=(@NKAvFfOj*WiKiq+|o5E%z7E+`nGASo_5I$3oHv{vh!qWMbGxgQT?4m zZYT9fo8-{`HDu4iY6Yh`gZT}ufQ0WFq54kevfa=OIqxa{BAD@VI|VrlT4@O9wt|fZ zUvLn!D)`n2B|jsku1R56w0ztIt|-7w6O=J3CTu|!w_-K{aJBGFhVMhrp6Kxsy#c=6 z;QaK6RykBg{2L;4y@U`kLO@E=WiEVa2IXL$5wZ`FvYelL71!$cfII0m}B+xSHdBULZdQ9WgnnL}Tq6CBp!3064B&3jKO?0|@ zxgGHICu{|>(iRc{I4QE?V_ik@8}oW2+YtCE~e&xlcibeH{xuodN8 zbN3NJJYGA+=nABsWlXjjPYJRDSw$=ZiBKHzN}Yw&B+jlqE*%Yd z6S$}If9OwQ69Fa>3;=0w9k*_ny5BW8*GO&wz$otEuyI(=T^N>$M>pRdmVm8&S)}rp z(C{eul15w*{{p}XAO#L58@W13MY6dM$YS|@r(`|9=Zmh4hON8AN5aM6qeT1ypA6!2 zVKcw$lNz#&L}-BFB1e~L?nps2)^RNb+Idex**qvc!w1$JzXei7c9hfWmgacflYt@u zX1fiH#fN>d(_<^+s-?MO1uApA?epRtO{AAGKB*?nA!Vu2C-mLmM_2+^6$11$nHxWH z#>BzCA`{-THEW^~q?`A{+s0}s8|^AGbr)~V+R;R?|MG_GBYq&%B(?z5g?@G1CnJ?w z!5eMRn650G`m;nyYG|RxXI^3!dx=>L3qS{ZToh^fWG->k)8y#;9sM znY%s8+MndXZhvrsgEF))6k)>=Dt8nPv67rRFy(%5knpKc_){o+)lt-PTGo%<)}%Q9 zIgFQhNR3&a^du-r$?f9hti1TTCUT1g3ZH{;1nP?oS$T1N*bNTiDJC0N0_(EE_IEh{ z>Y?u2Vnvn&-23>xMD9YNGJz8%LMkGAjpV+{MUNiCCW?5{eJmO>F&%5)?2=Il9n0iv z;p!)c$B62sOEe{q*ais63euMV6nIbG$V{v!l%YOS1|6enU`P( zZ#ybEDtam%RJmN01)jU_VWJ4WFI@x{A4$s$8EmwY5^!eJGly`& zM9+;-nT|hjQALAQgcxl2)|3V_ae_$Z59!L~rb8^4x&~ti$4xJK8L#556r~Qh3T>12 zm%`S-(?m}rXe}R);o`@uqVD~u@J9@xN(J|c6VNt;8f|7O$Ls1OaQ?Vkjp!if1gi11xr6L|pjr){q8$V*? zeZka<=shnBl6LuCnvL#`L$O^t6xWU8j>52@1;vSOF+t;~=EbMNv2Y&|NzZ}woUz=B31ji|+<^(j)+0eY`kFh;(a?wu`|h%7 zSf^Mf1-DEJ8}uym%fNh?;>3G$Y}7kMXg>}Y4caQLMO`A-GT)u)mPakg8pY<7n6mty zLw-qjG$tu&cQo>Q_WPw>C3rnbA1Uolhx99upGfkPpgp$E^CZP zb>_CU>{0d=RvhPQ`eSKI#|f}8k+aY|3fwsK@sSWFg9{Hi_sd5B>u9Yu5u77K@^f7?{e<2a4upn$D4=iDggN4F|u5-1I-iZo-Uf$rAe zS%M^15AeL+>w+%KSgkb+As5(K5#@W~z^w=ELC__`pq_K|H}tQ_GRFfkr+YBm)QX4Ef8ZsIccWRplZJFOVHFi^3C74&5RW>WL`D^kPUJH_;L<_Y#6fs z2%kCt9)tWOgQ6wVw7V>^9OWqBQWOd42EXTWZ+!WGr!MpcJ!)TCThQ|^-0NP4+oW@T zS%^da1fqNs3*cM0!zDYGv|nP4bZl;koi1VPZDTA?w~>|jNlSSRM;c2AIqyJ};}SP#%AjcyNPY~PnN%fNze1IQmZ-{H%X_jY=Z|oZ zA2cUgjON(lWOG48f|BOpB?((@`I}{jMP5Km(@UIviW*v#;H5?n~%# zJ9k@G82uK=69$~QN^a!T{+V%bDagAH2x$tq0wG>xO(z`sv0|s&!Y!Gqq>c;RwyAZ| zm*E{iq8gs8aQ*aU*^dJ`B!z5>GCAmJMJ+E_q%6ueI0K&B+&X<3^=p7TrZ2xgCV0V( zbH0Yny>l{>KLpSX@FhU$6eQ0E*aNT*pc}viAaC(|Qhmfsi>qW*)wj@8Vkvzil6YMx z?h?8E)3WfBT-&rVe4N7->G*vvvqEWo5~z9t;EQLG{3-a#ThvU@vqe;D!1)EHWe%jC z6caUqD;Hvqiw)g_>ACv3Q@h<@XbwzqD3zj;)OZB8a*87nQl!R1kV%*x9$M(Sm`7FT>_alpiV{TDRoBsmwlY-IQ4Brz19ka~bV1Ca{PR1)1-7!^m9n@$R z4*d@Ev9J%ypA~jPm@NDd&K-2O!d&5n-&I&4Y;|*%vVk%82PKp#E9jXS8Vl?nHTh+R*?WjmPjXi@KX` z;4)I;(Lv7}ftRNZNO?8T(FWMub8T=LI79;n?9Ko;blO1n=>Romrx1lqZA3+Fxm~x` z2kyI|XI((vh9`j;JEp@uhQ){d9_0TgTxbg|DeM*t>=Sb~t1-N6%QC}VUVwYQVxVG^ zeW2w{{cu;dA*~+q!vfr;3RQJ&;3x33Ms-NR1B=PMR+Hazf1n5qWWT2}Aj?l8Ia16V z){$8xxi$8_%ScHF@xx=LLC1s2_cSc!KX6rsW(kRL`%5)Uv42%%>7D+?2lPxG(@}Z{ zLoBv~sSkMce!s^bY3-6cSac;!; zAU+xPD6woy?+hs3t%u#mX1W5N#oU65%<(~Q!1GrhJOHw1T97uyF^0*5MceBoi}#kh z4yaPJU^P5KcwF~nz%#|y0O4F;!1FGbSvhEc-}9sZ#@nL`J9$S(x#abJ&-zxbrgA`% ztXB&tiHoTxlkN9B*2-Bb$EpSIVQ3){T3F;GMw8myxL*C}Pj&D<4kWAu)Rirqt8zi& zcV0Y}8U2I%A{>Tc?0r?^l0Wq|YzcVIdX0|;Je$1@5bou+SKWuVaGz8S!#la2s_F%6 zeR!`mu=GK63Gi`DmZ+=3W&O!Ojh(`pVA;rNTABw>V&P9t$fh$gzz( zFnw8q!Z&EzpmGe4$p%7rfJ>-ex2PWY^vK|lP03P#wZQEcam5gvqD5AzHsM0KGYWDR z`6Uoe_Ji_Ss1BKVmtcgX9QYTE#LU?bZIPQ9xs3)b(pr~Bh*U+H7lhN0KN@@# zWJc+VBvXbB1df@DlvUPbN?(T(`?;wQYY4@b)Jz1A$bp(!5O&x61;V#y6k19B=!zuE z)~pJfoHzj)G*ohNpb9C|*j~?#Hl%77C}wY6$c&BjM;^9Bhn}gx&F4vZORuLQKs-@F z&+GtVdOgpJ7{p~9_@lZ*o)+EBLq^P}wi5r90*upMG2pomloUZk)||^t0nd}YX>E8k zaV!w|>35SRb3#q}J?Wy~QwU%W2H^gL2;RSi!f&AYeZgMO91zAq&p+W>{%XiUBX42U zTfwt}`HKPy$3o7vL%;;l!-I9$m;X2L2oBl|MWYN+6h(>jSWbBwO5LJJ==vM z`ynoU))D+C?vq(Va;Nn&MxzOV=^Qe+9iJ%?vrBkFA*-PBk}WcLi_uGCE^&5p{~X|{ zA99OYr11J7++933ezvl5sE7;x<&;)P%KMvXwM6;4fI+@@z)Q;gF!#W9hFsCg%1@bM z*$f-G#@!yk`y>@~xsvU>kR58j0d4P?#l16IS9rjuvBVh~dTAO+Uys!2rn>+seV&)W z4Oxdo&oL21TWH%~g-T?>1i0)ug+ufeudiTKKdw+e488;Pna+$tulqy6Qh>CxT$3OV zGnZHJ?up#SIZA7xp>YMJ{%OT1gZg0%?<7e%?eSNH$7{3(Gz^?SN~BCT=YvACr03J5 z40Eb$FvMTCF{&-V+%(JJ|AoHn2z{mEGf*Z>!B_6gX{m;2%PYc0Cd2$?bdT#2^!3<$ zMt5`bvc38w*D@1y$}EC#qk<5@u!qaYQ>Yi+#iqs;wCSf6Nd2BW&cF#D!9Z@pwKfqt zh#zqrIRcU46E=|fxiS-;J#w4wA7XXoAm%K<#{kJK(!63gnK3_JPmdp45}v!9%A5+k z3oGGqtXExucS|5P&-;q-p#tLFB@~8d2d@Y%p_B?N&UVXpYR3)MK{FML0|()w7IT<71|wPA*Q~V1!9eA zz8IxA$Ea1TL^;3;GWRVZ)c}cZ2G0a5uNdGtu=JuYch%0V1!+7ot^o0u{G_p~&hUH{ z+4srlb8=_`E5CDV?Q2_`7}v~<|cT8V80^iQ6%;^?$-smsjvAdR%g4mwsB?cCXGolkt`UvO62ku z7UBoEMGI4tG6RyMM7L1vK=MD$NAe5vxMvqmUhsUc1Uy5z8^A}0;k|e7HleZxwlpH? zu<)3598@28;VFU69_s~FWdoEcP}qyeTbf)#avHc`N}vtI|Kw+~Nedtm`NiCzMI-yS zgJh*I(-m7*$W*6R&>%m}WtH4Ri?m~mfp%K~IMES*#Q)RUj6XzyrxEYYsLf-OG73t3 zo_T=Hti{}AU>DwmOrwD5E4fb=<>m>#UekiwOj8u}nrXwk;E?cxXBAp{9N189qxTWh z0rACL^5UuKr+q)JO*YNkM0ahW$ymQN?W>&!%zu(wy?BuH9Bf|=_tN72G3Pol1quo) znaCYooKKzZ<-T7$z*+?C3cBGAwWS~2p^Y;D>p#MVxl4m?25^Yq+bRWzOA2+mQ>r49i&UpOWl2QM zAo)T|KeoM-wt~)y_)mP)usk-W>V3AzK`9ptDN`OTjd5v~e$pu|k(Zq5M1=>9M8}3l zV8_l2OnXCD9JM1Yo>hO12LIV~OrP2DXlYy*74>cxf*a^#8N-*RIrbXk(^l2)H8tte zzMcRf&-5X zIhJM|BYF8NNiNuDK0*%8d`{nap)oBh1D*t~+--F{7qXHRC18udwk52AS1@G*tA?}C zmHd7or5aus`LruvH+`CMOrPCR%`?%jo3ty>32_a{CEBHGQ?q`t@vSaOwra^4c+Y{s zdhGA32g$_LI?Hyz_mSF0({cUP3m4rhYn$}_oG+O)OJhqiGdN?TDVIE7q_p{t_B0As zdaw=B+X)dA_+L%~*lwS!UZjctk|mU zMMS?J;6RZ+4p*+$ZtB9W}*^{?o;APOPY9(<7d=aNxUC0t4|T)(BM z&}i<`TpG18T-8$LqV~=x72ZNly{)E?O^tBW77JPVRBf?PnXiYiJYQZ>Eac}?Dq2X( zN2=mZT3IYGS+tOvUo0r{8@n~gT-FJ{a#BQeLh^7c{F?h&?yIG#^mORAb7|(dD)`9) z5$5Cq5WGpXN*isQyM#z<9q}I*^sQRjqy=9oWt_Jp4V-B|aub)Om*hrD5Ju1@_;HUj z!$cWtB4z%1(p*L)Nk5h`ZG#6}MRpn%<3eNU64BEdyyZsf_D+Pj-ODui&)mn$21#I> zV(#j)*UCN%Dr`}P#w7~7)X?iD)Oq0?LBFEQ=wIk^FN`V(KyK&XfJdnt!C7$?b}tM5 z!LNMeB!Ktrt?(3&`+WJhNx;cjl6~|t@V4*!*hqS8@06(8JLUTJ&X~mFWd-)BE5Q)x zlq5o0b;?MjBfKYcI6EbyxJeIvW=&;x!+K<*$$CP$@37|t&C%oFu#I+24LwqCgeTO` zL!O3sG+sQ{8I$x@mo#=}23M+aaP0AJT|(xCLKb)Hs2Pz{`6W1&8&~QIbz>Ws>c&6~ z^5`M9z7tWGizI5lY6JU@Vf{h6)Czjj?qnuoF z%^jj|uxaxAX?74GC*hr=nG6)eNh*5kz{AFX{3J_bDhQZ)K?>~b@IodpEc)^g{F()+ zv1*x7WhQ0&RL)}4*PWD-J84Rjgd!JBD*P4~FlAe(3(HKICfK)d>9V_whE~CB9W)P#CdNmybI042(}0EQ{;LiRL;Ux3(JCmwka@iuTMHQ%nYmO0}(uy(SO(pur=V6#io z{S@{33Myn2o^m(e-fV@}%5}}Rb=EgrV0RT@?LpUv!czssJVlQhak=?6T07pE3QaYv z9qDYm-M$QKU+M^(Xp8SL(T)P$&p5e%Jd#$p>4TXOQxd6918t;D>#a2(kXF^uDwv^j z4nZ7tnVZDR4M(~3)tPXcIA(R>cw(eJ3$-i-*->DbV1|u34^Q7ktdTe=jrEr1gM7n# z?tH@$a8CX!*b{0WLHk+U!PUvbIARF%Pl#XN#YcZY+De9&K6hqDfe#v5n+v~3B#P6O z)v4BkATdn?*B9CP|1UgN1{2+}ckxM9ec#ciwmy$uGh8dw`;rT`-NH z%K*QlCSGhx7&^KmK|3ns10FYWq+B&>WaMw$xKGv`g-JfZS=S80J=~wysMTKu`YaK8 zEp3B^pmw{-VnO`3!SMGJ?%J9$(I+CQH#zm%JiNcTYV8#qgVc(aQ*ctpRB}b@a-t@I zm2!0lw{+d!z9_YRC7#5sUSDh_dGI_8OoU4zzYVxrTCW22VcgjWuD$ivUEF68+()gF z=laT>jNsmFO}UHvFoJu%HRmqwod|As>*z4f3LQ5@kbi6~xm)nn2yR>J?7O%ZBDg17 zm*2&0iQvqwkKM&tBDfW;+wS7lL~sjRUjdxCY*?qK`c%*9WbXY(|Cu@qev)+v(Bx2- z!!rWvd`@}LQ_k&sZ1b4t$i8yH43jd77I`I^^TS>lnA&GLW$I;1r{0XgQ*WlhT8>F3 zhT9|Dj18OM)Q(B!{;@$HLtK2(kHU|&*K-+<4^Q8(Khr6nBXvm(duvs<>Spd;vac2# zGEi&D;}h{A?!e=D%qabQe-2me3}>k?uyb z=-awk3lJK5unVpRE`fSdPb^((!fkHB#?164?_g>4dF>oUkpapz>+yk4&ClX6FK_-eA*m4Ojp!RbIH}#j@ z@fkoH>f!90Qeokp-!u+WN1x;3pVVXy^2IAjUM5%v+T~%FjOaP-D6;Qwp7A8c@|6Ku z#Y`cmfGe=1G_QH82**6ph7^?U9B{a~>FIYVxzK_f1e%R?SLwVJi%u=X2%~cJK7?l$ zKC}p)twF5sAH2~D{aenh-nJbtZN9y&nu<@?A$b5`{8Zrml;)Y+GqCkf-~vMMM*=4p z?IaHD3jNWM?|t`&%P^4E!1f^MzA~HVfV&0Sz_a0!3%+snup|I-03=CCXdPI-&jGvx z@C85-;O7JAR3AlC3s7@c{U(g1+(XZevkn7`G#j7_;68vdfN=mr08#-+w;g|krr{^? zeL&I#-}m<)rWH^=1oxCL4z+O);(txAUQ)XT)h>VJA;`6Z2)GQkBhhLxq?at>7C--e z_L!AO{`n(F{^)8LCeoq9z%l})$O&%V3r7aL!;4mux`M`|5eB#=1Xy6;GInOj-;=_{ zApqB1mx86u)jO?NdINkEcJBNimr;caxd|^0&U`qi@2lh4Nuixv4KE z. } #endif // RGB_MATRIX_ENABLE -// TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - static uint16_t timeout_timer = 0; - static uint16_t timeout_counter = 0; //in minute intervals - static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT; - - uint16_t get_timeout_threshold(void) { - return timeout_threshold; - } - - void timeout_reset_timer(void) { - timeout_timer = timer_read(); - timeout_counter = 0; - }; - - void timeout_update_threshold(bool increase) { - if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++; - if (!increase && timeout_threshold > 0) timeout_threshold--; - }; - - void timeout_tick_timer(void) { - if (timeout_threshold > 0) { - if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick - timeout_counter++; - timeout_timer = timer_read(); - } - #ifdef RGB_MATRIX_ENABLE - if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) { - rgb_matrix_disable_noeeprom(); - } - #endif - } // timeout_threshold = 0 will disable timeout - } - - __attribute__((weak)) void matrix_scan_keymap(void) {} -#endif // IDLE_TIMEOUT_ENABLE - -void matrix_scan_user(void) { - #ifdef IDLE_TIMEOUT_ENABLE - timeout_tick_timer(); - matrix_scan_keymap(); - #endif -} - #if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality #ifndef DYNAMIC_KEYMAP_LAYER_COUNT @@ -145,11 +101,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { register_mods(MOD_BIT(KC_LALT)); } else { switch (selected_layer) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(true); - #endif - break; default: tap_code(KC_VOLU); // Otherwise it just changes volume break; @@ -178,11 +129,6 @@ bool encoder_update_user(uint8_t index, bool clockwise) { register_mods(MOD_BIT(KC_LALT)); } else { switch (selected_layer) { - case _FN1: - #ifdef IDLE_TIMEOUT_ENABLE - timeout_update_threshold(false); - #endif - break; default: tap_code(KC_VOLD); break; @@ -213,18 +159,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } else unregister_code16(keycode); break; - #ifdef IDLE_TIMEOUT_ENABLE - case RGB_TOI: - if(record->event.pressed) { - timeout_update_threshold(true); - } else unregister_code16(keycode); - break; - case RGB_TOD: - if(record->event.pressed) { - timeout_update_threshold(false); //decrease timeout - } else unregister_code16(keycode); - break; - #endif // IDLE_TIMEOUT_ENABLE #ifdef RGB_MATRIX_ENABLE case RGB_NITE: if(record->event.pressed) { @@ -259,9 +193,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef RGB_MATRIX_ENABLE rgb_matrix_enable_noeeprom(); #endif - #ifdef IDLE_TIMEOUT_ENABLE - timeout_reset_timer(); //reset activity timer - #endif } break; } @@ -278,7 +209,6 @@ void activate_numlock(bool turn_on) { // INITIAL STARTUP - __attribute__ ((weak)) void keyboard_post_init_keymap(void) {} void keyboard_post_init_user(void) { @@ -286,7 +216,4 @@ void keyboard_post_init_user(void) { #ifdef STARTUP_NUMLOCK_ON activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results #endif // STARTUP_NUMLOC_ON - #ifdef IDLE_TIMEOUT_ENABLE - timeout_timer = timer_read(); // set inital time for ide timeout - #endif } \ No newline at end of file diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h index 151fe19372b8..49e79054cb90 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/jonavin.h @@ -34,8 +34,6 @@ enum custom_user_keycodes { KC_00 = SAFE_RANGE, ENCFUNC, //Encoder functions KC_WINLCK, //Toggles Win key on and off - RGB_TOI, //Timeout idle time up - RGB_TOD, //Timeout idle time down RGB_NITE, //Turns off all rgb but allow rgb indicators to work NMR, //Move window to monitor on right NML //Move window to monitor on left @@ -61,27 +59,10 @@ enum custom_user_keycodes { #ifdef RGB_MATRIX_ENABLE -//RGB custom colours - #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps - #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours - void activate_rgb_nightmode (bool turn_on); bool get_rgb_nightmode(void); #endif -// IDLE TIMEOUTS -#ifdef IDLE_TIMEOUT_ENABLE - #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes - #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value) - - //prototype functions - uint16_t get_timeout_threshold(void); - void timeout_reset_timer(void); - void timeout_update_threshold(bool increase); - void timeout_tick_timer(void); -#endif //IDLE_TIMEOUT_ENABLE - - // OTHER FUNCTION PROTOTYPE void activate_numlock(bool turn_on); diff --git a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c index bba76349175d..97d30b0cf9c2 100644 --- a/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c +++ b/keyboards/gmmk/pro/ansi/keymaps/solartempest/keymap.c @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, _______, _______, RESET, KC_HOME, KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, - _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______, + _______, _______, RGB_HUI, _______, _______, _______, KC_NLCK, _______, _______, _______, _______, _______, RGB_MOD, _______, _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI ), @@ -114,18 +114,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { for (uint8_t i=0; i= 140 minutes, just show these 3 lights - rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED); - rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED); - }*/ break; case _LOWER: for (uint8_t i=0; i Date: Tue, 30 Nov 2021 20:32:33 -0500 Subject: [PATCH 72/94] Optimized layer lighting and updated OLED WPM. Much more space efficient. --- keyboards/solartempest/sofle/config.h | 10 +- .../solartempest/sofle/keymaps/via/bongocat.c | 12 +- .../solartempest/sofle/keymaps/via/keymap.c | 57 +- .../solartempest/sofle/keymaps/via/luna.c | 7 +- .../solartempest/sofle/keymaps/via/snakey.c | 16 +- .../sofle/keymaps/via/snakey_minimal.c | 8 +- keyboards/solartempest/sofle/rules.mk | 2 +- .../sofle/sofle VIA layout trackball.json | 2 +- .../sofle/solartempest_sofle_via.hex | 3532 ++++++++--------- 9 files changed, 1797 insertions(+), 1849 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 2c62293e841d..b86f2d64ab00 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -83,13 +83,15 @@ #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. #define OLED_BRIGHTNESS 90 //Default is 100. #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). - //#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). + #ifdef WPM_ENABLE + #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). + #endif //#define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). //#define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). - //#define OLED_NO_SLAVE //Enable for snakey keyboard pet code to not render slave OLED (-160). - #define SNEAK_DISABLE //Disable snakey keyboard pet sneak animation to save space (-132). + //#define OLED_NO_SLAVE //Disable snakey keyboard pet slave OLED rendering (-160). + //#define SNEAK_DISABLE //Disable snakey keyboard pet sneak animation to save space (-132). #endif // Haptic feedback settings @@ -128,7 +130,7 @@ //#define RGBLIGHT_ANIMATIONS // Very memory intensive (+2604) #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Preferred RGB effect (+262) #define RGBLIGHT_LIMIT_VAL 160 //Power draw may still exceed the USB limitations of 0.6A at max brightness with white colour with this setting. - #define RGBLIGHT_LAYERS //Enable layer light indicators + //#define RGBLIGHT_LAYERS //Enable layer light indicators. Not required as updates are done in layer_state_set_user and led_update_user (+588). #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) //RGB LED Conversion macro from physical array to electric array (+146). This results in better looking animated effects. diff --git a/keyboards/solartempest/sofle/keymaps/via/bongocat.c b/keyboards/solartempest/sofle/keymaps/via/bongocat.c index 093736b7a196..76d7525d91c8 100644 --- a/keyboards/solartempest/sofle/keymaps/via/bongocat.c +++ b/keyboards/solartempest/sofle/keymaps/via/bongocat.c @@ -4,7 +4,7 @@ Check out their post and other work! https://github.com/foureight84/qmk_firmware/tree/sofle_foureight84 */ #ifdef OLED_ENABLE -char wpm_str[4]; +uint32_t oled_timer = 0; //OLED timeout led_t led_usb_state; static void print_status_narrow(void) { @@ -201,13 +201,19 @@ static void render_anim(void) { bool oled_task_user(void) { led_usb_state = host_keyboard_led_state(); if (is_keyboard_master()) { + if (timer_elapsed32(oled_timer) > 30000) { + oled_off(); + return false; + } else { + oled_on(); + } print_status_narrow(); } else { oled_set_cursor(0,1); render_anim(); oled_set_cursor(0,13); - sprintf(wpm_str, " %03d\n WPM", get_current_wpm()); - oled_write(wpm_str, false); + oled_write_P(PSTR("WPM: "), false); + oled_write(get_u8_str(get_current_wpm(), ' '), false); } return false; } diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index 08840a31fe0f..de017b357bad 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -28,7 +28,6 @@ //#include "bongocat.c" //OLED code for Bongocat, original code by foureight84. //#include "luna.c" //OLED code for Luna, original code by Hellsingcoder and adapted by Jackasaur. //#include "snakey.c" //OLED code for Snakey, customized from Luna. If not used, do not use OLED_LOGO in config.h. - //#include //This is required for OLED sprintf (should not be required anymore since sprintf removed from my code). #include "snakey_minimal.c" //OLED code for Snakey, without WPM/related animations to save space. If not used, do not use OLED_LOGO in config.h. #endif @@ -387,46 +386,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { DRV_pulse(49); //buzz_60 } #endif - } return true; } -#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) - //LED Lock keys status indicators are used since the sofle doesn't have dedicated LEDS for this. - //Note 1: These will assign static colour and brightness to the LED range specified. - //Note 2: Base layer0 is required for lock layers to work, even if range for static LED colours is set to 0,0. - const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); //Static RGB colour is ignored as range is 0,0. - const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 252,255,125}); - const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 95,255,90}); - const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 128,255,100}); - const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, 0, 215,255,120}); - const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 3, 43,100,170}); //White-left caps lock indication - const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({28, 3, 43,100,170}); //White-right num lock indication. Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. - const rgblight_segment_t PROGMEM my_scrollock_layer[] = RGBLIGHT_LAYER_SEGMENTS({55, 3, 43,100,170}); //White-middle-right scroll lock indication - const rgblight_segment_t *const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( //Lighting layers - my_layer0_layer, //Base layer with no indications - my_layer1_layer, - my_layer2_layer, - my_layer3_layer, - my_layer4_layer, - my_capslock_layer, //Highest status indicators override other layers - my_numlock_layer, - my_scrollock_layer - ); -#endif - -#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) - layer_state_t layer_state_set_user(layer_state_t state) //Use for layer lighting. This is independent from lock key LED indicators. +#ifdef RGBLIGHT_ENABLE + layer_state_t layer_state_set_user(layer_state_t state) //Use for layer lighting. This method uses less space than RGBLIGHT_LAYER_SEGMENTS. { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); - rgblight_set_layer_state(1, layer_state_cmp(state, 1)); - rgblight_set_layer_state(2, layer_state_cmp(state, 2)); - rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); - - switch(biton32(state)){ // Change all other LEDs based on layer state as well + switch (get_highest_layer(state)) { // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,80); #ifdef POINTING_DEVICE_ENABLE @@ -471,12 +439,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return state; } - - bool led_update_user(led_t led_state) + + bool led_update_user(led_t led_state) //Lock key status indicators { - rgblight_set_layer_state(5, led_state.caps_lock); //Activate capslock lighting layer - rgblight_set_layer_state(6, !(led_state.num_lock)); //Invert the indication so numlock does not always appear "on". - rgblight_set_layer_state(7, led_state.scroll_lock); //Activate scrollock lighting layer + if(led_state.caps_lock){ + rgblight_sethsv_range(43,100,170, 4,7); //White-left caps lock indication + } + if(!(led_state.num_lock)){ + rgblight_sethsv_range(43,100,170, 28,31); //White-right num lock indication. Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. + } + if(led_state.scroll_lock){ + rgblight_sethsv_range(43,100,170, 16,19); //White-middle scroll lock indication + } return true; } #endif @@ -487,9 +461,6 @@ void keyboard_post_init_user(void) #ifdef RGBLIGHT_ENABLE rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 #endif - #if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) - rgblight_layers = my_rgb_layers; //Enable LED layer lighting - #endif layer_move(0); //Start on layer0 by default to set LED colours. Can remove to save a very small amount of space. #ifdef POINTING_DEVICE_ENABLE pimoroni_trackball_set_precision(1.75); //Start trackball with lower precision mode diff --git a/keyboards/solartempest/sofle/keymaps/via/luna.c b/keyboards/solartempest/sofle/keymaps/via/luna.c index d19eda64cad0..31055609c26b 100644 --- a/keyboards/solartempest/sofle/keymaps/via/luna.c +++ b/keyboards/solartempest/sofle/keymaps/via/luna.c @@ -225,12 +225,9 @@ oled_write("TMPST", false); /* wpm counter */ - char wpm_str[8]; oled_set_cursor(0,10); - sprintf(wpm_str, " %03d", current_wpm_read); - oled_write(wpm_str, false); - oled_set_cursor(0,11); - oled_write(" wpm", false); + oled_write_P(PSTR("WPM: "), false); + oled_write(get_u8_str(get_current_wpm(), ' '), false); } static void print_status_narrow(void) { diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey.c b/keyboards/solartempest/sofle/keymaps/via/snakey.c index 3485f880a7f7..c456e47a9326 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey.c @@ -238,14 +238,9 @@ #endif /* wpm counter */ - char wpm_str[8]; oled_set_cursor(0,13); - //sprintf(wpm_str, " %03d", current_wpm_read); //Replaced with two lines of code below to save space. oled_write_P(PSTR("WPM: "), false); oled_write(get_u8_str(get_current_wpm(), ' '), false); - oled_write(wpm_str, false); - oled_set_cursor(0,14); - oled_write(" wpm", false); } #endif @@ -293,7 +288,7 @@ oled_write("Scrl", led_usb_state.scroll_lock); /* KEYBOARD PET RENDER START */ - render_luna(0,13); + render_luna(0,12); /* KEYBOARD PET RENDER END */ } @@ -306,17 +301,14 @@ current_wpm_read = get_current_wpm(); /* KEYBOARD PET VARIABLES END */ led_usb_state = host_keyboard_led_state(); - - if (is_keyboard_master()) { //Drashna's OLED timeout off code for animations - if (timer_elapsed32(oled_timer) > 30000) { + + if (is_keyboard_master()) { + if (timer_elapsed32(oled_timer) > 30000) {//OLED timeout 30000ms = 30s oled_off(); return false; } else { oled_on(); } - } - - if (is_keyboard_master()) { print_status_narrow(); } else { print_logo_narrow(); diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c index 37a533938ab6..99600c046eb1 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -231,16 +231,14 @@ bool oled_task_user(void) { led_usb_state = host_keyboard_led_state(); - if (is_keyboard_master()) { //OLED timeout 30000ms = 30s - if (timer_elapsed32(oled_timer) > 30000) { + + if (is_keyboard_master()) { + if (timer_elapsed32(oled_timer) > 30000) {//OLED timeout 30000ms = 30s oled_off(); return false; } else { oled_on(); } - } - - if (is_keyboard_master()) { print_status_narrow(); } else { #ifndef OLED_NO_SLAVE diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index a72ebd90003e..9d29739aae44 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -22,7 +22,7 @@ COMBO_ENABLE = no # Tap combo chording (+952) OLED_ENABLE = yes # Must be disabled if OLEDs are not installed (+3608-4774 with pet) OLED_DRIVER = SSD1306 # Specify OLED driver -WPM_ENABLE = no # WPM counter for typing-speed-reactive keyboard pets (+1298) +WPM_ENABLE = no # WPM counter for typing-speed-reactive keyboard pets (+782) POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) POINTING_DEVICE_DRIVER = pimoroni_trackball diff --git a/keyboards/solartempest/sofle/sofle VIA layout trackball.json b/keyboards/solartempest/sofle/sofle VIA layout trackball.json index c8673f835d02..c8e387509ab5 100644 --- a/keyboards/solartempest/sofle/sofle VIA layout trackball.json +++ b/keyboards/solartempest/sofle/sofle VIA layout trackball.json @@ -355,7 +355,7 @@ "USER05", "USER06", "USER02", - "KC_TRNS", + "KC_SLCK", "KC_TRNS", "KC_WWW_REFRESH", "KC_TRNS", diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 53e65b8de97e..3e4f7bc4f42c 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,1779 +1,1761 @@ -:100000000C94E9050C9430060C9430060C945E3385 -:100010000C9430060C9430060C9430060C94300688 -:100020000C9430060C9430060C941B240C94D723AB -:100030000C9414290C9430060C9430060C94300661 -:100040000C9430060C9430060C9430060C94300658 -:100050000C9430060C94F4240C9430060C94300666 -:100060000C9430060C9430060C9430060C94300638 -:100070000C9430060C9430060C9430060C94300628 -:100080000C9430060C9430060C9430060C94300618 -:100090000C9430060C9430060C9430060C94300608 -:1000A0000C9430060C9430060C94300637032B6405 -:1000B000AAFF000000001C032B64AAFF0000000040 -:1000C00004032B64AAFF000000000000D7FF78FFA4 -:1000D00000000000000080FF64FF0000000000003E -:1000E0005FFF5AFF000000000000FCFF7DFF0000E2 -:1000F000000000005FFF5AFF000000000501090238 -:10010000A10185020901A1000509190129081500AD -:100110002501950875018102050109300931158114 -:10012000257F95027508810609381581257F95017F -:1001300075088106050C0A38021581257F95017521 -:10014000088106C0C005010980A101850319012AA3 -:10015000B700150126B700950175108100C0050C88 -:100160000901A101850419012AA002150126A00296 -:10017000950175108100C00660FF0961A101096247 -:10018000150026FF009520750881020963150026D9 -:10019000FF00952075089102C005010906A101051F -:1001A0000719E029E71500250195087501810295D9 -:1001B00001750881010507190029FF150026FF00B8 -:1001C0009506750881000508190129059505750131 -:1001D0009102950175039101C0000000000000002C -:1001E000000000000000000000000000000000000F -:1001F000000000000000000000000000007E0F0072 -:10020000D4FFFFFFC70000007800000000000000DE -:10021000002A2B2800000000000000000000000061 -:100220000000000029000000002C1E3420212224A0 -:10023000342627252E362D3738271E1F202122232E -:100240002425263333362E37381F040506070809C0 -:100250000A0B0C0D0E0F1011121314151617181986 -:100260001A1B1C1D2F3130232D35040506070809E4 -:100270000A0B0C0D0E0F1011121314151617181966 -:100280001A1B1C1D2F3130354C00DA02815AD9F16E -:10029000DB20A4A62EAF00A0C000A1C800AED58070 -:1002A000A81FD300408D142000F200E800DE00D427 -:1002B00000CA00C000B600AC000000000000000052 -:1002C0000000000000E0F0F0F8F8CCCCF8F8F0F016 -:1002D00060000000000000000000000000000000BE -:1002E00000000000000F3F7FFCF9F1E1C181000038 -:1002F00000000000000000000000000000000000FE -:100300000C387060E0E0F0F0F8F9FFFFFFFFFF7ECF -:100310001C000000000000000000000000000000C1 -:100320000000000000E0F0F0F8F8CCCCF8F8F0F0B5 -:10033000600000000000000000000000000000005D -:1003400000000000000F3F7FFCF9F1E1C1810000D7 -:10035000010102060C040000000000000000000083 -:1003600000387C60E0E0F0F0F8F9FFFFFFFFFF7E6F -:100370001C00000000000000000000000000000061 -:1003800080C0C0E0E03070E0E0C0C080000000004D -:100390000000000000000000000000000000001F3E -:1003A0007FFFFFE7E7EFEFCFCB8383010000000083 -:1003B00000000000000000000000000000061C38E3 -:1003C00078F1E3E3E7F7F7FFFFFFFF7F3E00000070 -:1003D000000000000000000000000000000000001D -:1003E0000000000000000000000000000080C0E0ED -:1003F000E060E0C0C080800000000000000000005D -:100400000000000020F8FEFFFFFF9F0F0E1F1F3FA0 -:100410003F7EE683030F43439088080000031E3CA1 -:1004200078F0E0E0F0F0FBFFFFFF7F7F3800000096 -:100430000000000000000000000000000004F6B80A -:10044000F8D8F0E0C000000080C0E0E0F0F0F0F08C -:10045000E0E0C080000000000000000080C0E1F388 -:10046000FB7F1F0F0000F0FFFF3F03010000008033 -:10047000C1F3FF7F1F000080C0E0301E3F3F7FF9C7 -:10048000F0F070783C3F1F0F03000000001C3F7F1E -:100490007FFBF1F0783C1E0F030000000101010119 -:1004A000010101010102020202020202020203032F -:1004B00003030303030304040404040404050505FF -:1004C00005050606060606070707070708080808C1 -:1004D000090909090A0A0A0B0B0B0C0C0C0D0D0D6E -:1004E0000E0E0E0F0F0F1010111111121213131404 -:1004F00014151516161717181819191A1A1B1B1C7C -:100500001D1D1E1E1F2020212222232424252626D5 -:10051000272829292A2B2C2D2D2E2F30313232330A -:100520003435363738393A3B3C3D3E3F4041424313 -:100530004445464748494A4C4D4E4F5051535455F7 -:100540005658595A5B5D5E5F616264656668696BA7 -:100550006C6D6F7072737577787A7B7D7E80828325 -:100560008587888A8C8E8F91939596989A9C9EA069 -:10057000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC076 -:10058000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E43F -:10059000E7E9EBEEF0F3F5F8FAFDFFFFAA7F55402F -:1005A0001C1004010D190A24232221201F1E1D1BCB -:1005B0001A18171615141312110F0E0C0B09080731 -:1005C00006050302002D3945483C303F25262728E3 -:1005D000292A2B2C2E2F31323334353637383A3BFB -:1005E0003D3E404142434446474907087F080700D3 -:1005F0003E5B4F5B3E003E6B4F6B3E001C3E7C3EC5 -:100600001C00183C7E3C18001C577D571C001C5ECB -:100610007F5E1C0000183C180000FFE7C3E7FF00E6 -:10062000001824180000FFE7DBE7FF0030483A0617 -:100630000E00262979292600407F05050700407F06 -:1006400005253F005A3CE73C5A007F3E1C1C080031 -:10065000081C1C3E7F0014227F2214005F5F005F95 -:100660005F0006097F017F00006689956A0060606F -:100670006060600094A2FFA2940008047E04080059 -:1006800010207E20100008082A1C0800081C2A08D8 -:1006900008001E10101010000C1E0C1E0C0030382C -:1006A0003E383000060E3E0E06000000000000003E -:1006B00000005F000000000700070000147F147FA7 -:1006C0001400242A7F2A120023130864620036498A -:1006D00056205000000807030000001C22410000C3 -:1006E0000041221C00002A1C7F1C2A0008083E082A -:1006F00008000080703000000808080808000000AA -:10070000606000002010080402003E5149453E0090 -:1007100000427F4000007249494946002141494D4D -:1007200033001814127F10002745454539003C4A14 -:10073000494931004121110907003649494936002C -:10074000464949291E000000140000000040340002 -:100750000000000814224100141414141400004175 -:10076000221408000201590906003E415D594E005D -:100770007C1211127C007F49494936003E414141BB -:1007800022007F4141413E007F49494941007F09A4 -:10079000090901003E41415173007F0808087F00AC -:1007A00000417F4100002040413F01007F081422AA -:1007B00041007F40404040007F021C027F007F04D8 -:1007C00008107F003E4141413E007F0909090600B3 -:1007D0003E4151215E007F091929460026494949B9 -:1007E000320003017F0103003F4040403F001F20D3 -:1007F00040201F003F4038403F006314081463004E -:100800000304780403006159494D4300007F4141CE -:100810004100020408102000004141417F00040211 -:10082000010204004040404040000003070800006F -:100830002054547840007F284444380038444444CD -:100840002800384444287F003854545418000008C5 -:100850007E09020018A4A49C78007F080404780094 -:1008600000447D4000002040403D00007F102844AF -:10087000000000417F4000007C04780478007C0880 -:1008800004047800384444443800FC182424180038 -:1008900018242418FC007C0804040800485454540C -:1008A000240004043F4424003C4040207C001C20E1 -:1008B00040201C003C4030403C00442810284400AC -:1008C0004C9090907C004464544C440000083641A5 -:1008D000000000007700000000413608000002011F -:1008E000020402003C2623263C0000000000000019 -:1008F000404040F0F8F8FF38FFF8F83FF8F8FF38CC -:10090000FFF8F8F040404000000000000080C0C048 -:10091000C0800000C0C08000000080C0C000C0C017 -:10092000000080C0C00000000000C0C0C0C0C00007 -:10093000C0C0000000000000000000000000000037 -:1009400000000000000000000000000000000000A7 -:100950000000000000000000000000000000000097 -:10096000000000000000000000C0F0F8FC3E1E0681 -:10097000010000007F4141417F007F4141417F00F4 -:100980000080C0E07E5B4F5BFEC00000C000DCD793 -:10099000DEDEDED7DC00C00000000000000000004A +:100000000C9418060C945F060C945F060C94CE3288 +:100010000C945F060C945F060C945F060C945F06CC +:100020000C945F060C945F060C9494230C9450235C +:100030000C9487280C945F060C945F060C945F0662 +:100040000C945F060C945F060C945F060C945F069C +:100050000C945F060C946D240C945F060C945F0660 +:100060000C945F060C945F060C945F060C945F067C +:100070000C945F060C945F060C945F060C945F066C +:100080000C945F060C945F060C945F060C945F065C +:100090000C945F060C945F060C945F060C945F064C +:1000A0000C945F060C945F060C945F060501090230 +:1000B000A10185020901A1000509190129081500FE +:1000C0002501950875018102050109300931158165 +:1000D000257F95027508810609381581257F9501D0 +:1000E00075088106050C0A38021581257F95017572 +:1000F000088106C0C005010980A101850319012AF4 +:10010000B700150126B700950175108100C0050CD8 +:100110000901A101850419012AA002150126A002E6 +:10012000950175108100C00660FF0961A101096297 +:10013000150026FF00952075088102096315002629 +:10014000FF00952075089102C005010906A101056F +:100150000719E029E7150025019508750181029529 +:1001600001750881010507190029FF150026FF0008 +:100170009506750881000508190129059505750181 +:100180009102950175039101C0000000000000007C +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000007E0F00C2 +:1001B000D4FFFFFFC700000078000000000000002F +:1001C000002A2B28000000000000000000000000B2 +:1001D0000000000029000000002C1E3420212224F1 +:1001E000342627252E362D3738271E1F202122237F +:1001F0002425263333362E37381F04050607080911 +:100200000A0B0C0D0E0F10111213141516171819D6 +:100210001A1B1C1D2F3130232D3504050607080934 +:100220000A0B0C0D0E0F10111213141516171819B6 +:100230001A1B1C1D2F3130354C00DA02815AD9F1BE +:10024000DB20A4A62EAF00A0C000A1C800AED580C0 +:10025000A81FD300408D1420000000000000000003 +:10026000000000E0F0F0F8F8CCCCF8F8F0F0600016 +:10027000000000000000000000000000000000007E +:100280000000000F3F7FFCF9F1E1C1810000000098 +:1002900000000000000000000000000000000C381A +:1002A0007060E0E0F0F0F8F9FFFFFFFFFF7E1C0058 +:1002B000000000000000000000000000000000003E +:1002C000000000E0F0F0F8F8CCCCF8F8F0F06000B6 +:1002D000000000000000000000000000000000001E +:1002E0000000000F3F7FFCF9F1E1C1810000010136 +:1002F00002060C04000000000000000000000038AE +:100300007C60E0E0F0F0F8F9FFFFFFFFFF7E1C00EB +:1003100000000000000000000000000000000000DD +:1003200000000000000000000000000000000000CD +:10033000000000000000000000000000CCF8700089 +:100340000000000000C0F0F8F87CFCEEE6FCFC7851 +:1003500078B00000000000000000003F7FF1F8F8D6 +:100360007C7CF8F0F0F1E7EFEFFEFEFEFCFCF8F02D +:100370006000010306020000000000000000000011 +:10038000000000000000000000000000000000006D +:10039000000000000000000000000080E0F81C00E9 +:1003A0000000000000C0F0F8F87CFCEEE6FCFC78F1 +:1003B00078300000000000000000003F7FF0F8F8F7 +:1003C0007C7CF8F0F0F1E7EFEFFEFEFEFCFCF8F0CD +:1003D000600000000000000000000000000080C07D +:1003E000C0E0E03070E0E0C0C0800000000000002D +:1003F000000000000000000000000000001F7FFF60 +:10040000FFE7E7EFEFCFCB838301000000000000A0 +:100410000000000000000000000000061C3878F119 +:10042000E3E3E7F7F7FFFFFFFF7F3E000000000078 +:1004300000000000000000000000000000000000BC +:10044000000000000000000000000080C0E0E0604C +:10045000E0C0C0808000000000000000000000003C +:10046000000020F8FEFFFFFF9F0F0E1F1F3F3F7E83 +:10047000E683030F43439088080000031E3C78F096 +:10048000E0E0F0F0FBFFFFFF7F7F3800000000009E +:10049000000000000000000000000004F6B8F8D8DA +:1004A000F0E0C000000080C0E0E0F0F0F0F0E0E03C +:1004B000C080000000000000000080C0E1F3FB7F6E +:1004C0001F0F0000F0FFFF3F030100000080C1F399 +:1004D000FF7F1F000080C0E0301E3F3F7FF9F0F03B +:1004E00070783C3F1F0F03000000001C3F7F7FFB24 +:1004F000F1F0783C1E0F0300000001010101010131 +:1005000001010102020202020202020203030303CA +:10051000030303030404040404040405050505059A +:100520000606060606070707070708080808090958 +:1005300009090A0A0A0B0B0B0C0C0C0D0D0D0E0E03 +:100540000E0F0F0F10101111111212131314141596 +:100550001516161717181819191A1A1B1B1C1D1D0A +:100560001E1E1F2020212222232424252626272860 +:1005700029292A2B2C2D2D2E2F3031323233343590 +:10058000363738393A3B3C3D3E3F40414243444593 +:10059000464748494A4C4D4E4F5051535455565872 +:1005A000595A5B5D5E5F616264656668696B6C6D1C +:1005B0006F7072737577787A7B7D7E808283858792 +:1005C000888A8C8E8F91939596989A9C9EA0A2A3D0 +:1005D000A5A7A9ABADAFB1B3B5B7BABCBEC0C2C4D5 +:1005E000C6C9CBCDCFD1D4D6D8DBDDDFE2E4E7E995 +:1005F000EBEEF0F3F5F8FAFDFFFFAA7F55401C1073 +:1006000004010D190A24232221201F1E1D1B1A1864 +:10061000171615141312110F0E0C0B0908070605F7 +:100620000302002D3945483C303F25262728292A3A +:100630002B2C2E2F31323334353637383A3B3D3E72 +:10064000404142434446474907087F0807003E5B54 +:100650004F5B3E003E6B4F6B3E001C3E7C3E1C00E1 +:10066000183C7E3C18001C577D571C001C5E7F5EAA +:100670001C0000183C180000FFE7C3E7FF0000184B +:1006800024180000FFE7DBE7FF0030483A060E00C1 +:10069000262979292600407F05050700407F05258A +:1006A0003F005A3CE73C5A007F3E1C1C0800081CD7 +:1006B0001C3E7F0014227F2214005F5F005F5F00FA +:1006C00006097F017F00006689956A0060606060AE +:1006D000600094A2FFA2940008047E040800102089 +:1006E0007E20100008082A1C0800081C2A080800A0 +:1006F0001E10101010000C1E0C1E0C0030383E385E +:100700003000060E3E0E0600000000000000000053 +:100710005F000000000700070000147F147F140032 +:10072000242A7F2A120023130864620036495620C7 +:100730005000000807030000001C22410000004197 +:10074000221C00002A1C7F1C2A0008083E08080002 +:100750000080703000000808080808000000606091 +:1007600000002010080402003E5149453E000042AE +:100770007F4000007249494946002141494D3300FC +:100780001814127F10002745454539003C4A494955 +:1007900031004121110907003649494936004649CF +:1007A00049291E0000001400000000403400000031 +:1007B00000081422410014141414140000412214DF +:1007C00008000201590906003E415D594E007C12A5 +:1007D00011127C007F49494936003E4141412200C7 +:1007E0007F4141413E007F49494941007F09090954 +:1007F00001003E41415173007F0808087F0000411D +:100800007F4100002040413F01007F081422410049 +:100810007F40404040007F021C027F007F040810A0 +:100820007F003E4141413E007F09090906003E41EB +:1008300051215E007F0919294600264949493200A5 +:1008400003017F0103003F4040403F001F20402044 +:100850001F003F4038403F00631408146300030446 +:10086000780403006159494D4300007F4141410034 +:10087000020408102000004141417F0004020102EF +:10088000040040404040400000030708000020549E +:10089000547840007F2844443800384444442800B9 +:1008A000384444287F0038545454180000087E0906 +:1008B000020018A4A49C78007F0804047800004477 +:1008C0007D4000002040403D00007F102844000093 +:1008D00000417F4000007C04780478007C08040418 +:1008E0007800384444443800FC18242418001824A4 +:1008F0002418FC007C0804040800485454542400C4 +:1009000004043F4424003C4040207C001C20402044 +:100910001C003C4030403C004428102844004C90CF +:1009200090907C004464544C440000083641000020 +:1009300000007700000000413608000002010204B8 +:1009400002003C2623263C0000000000000040403E +:1009500040F0F8F8FF38FFF8F83FF8F8FF38FFF8F4 +:10096000F8F040404000000000000080C0C0C0809F +:100970000000C0C08000000080C0C000C0C00000F7 +:1009800080C0C00000000000C0C0C0C0C000C0C027 +:100990000000000000000000000000000000000057 :1009A0000000000000000000000000000000000047 -:1009B000494949FFFFFFFFE0DFBFBF00BFBFDFE0E6 -:1009C000FFFFFFFF49494900000000001F3F606032 -:1009D000E0BF1F007F7F071E381E077F7F007F7FDD -:1009E0000E1F3B716000000000007F7F0C0C0C00AC -:1009F0007E7E007F7E0303007F7E03037E7E0303F3 -:100A00007F7E000F3E703C063C703E0F00327B49FB -:100A1000493F7E007F7E0303001E3F69696F260009 -:100A2000000000000000000000030F1F3F3C787032 -:100A3000600000007F4141417F007F4141417F00D4 -:100A4000307B7F7830202030787F3B0003000F7FA1 -:100A50000F0F0F7F0F0003000000000000000000D8 -:100A60000000000000000000000000000000000086 -:100A7000010101070F0F7F0F7F0F0F7E0F0F7F0FF9 -:100A80007F0F0F07010101000000000000000000BF -:100A90000001010000000000000000000000000054 -:100AA0000000000000000000000000000000000046 -:100AB0000000000000000000000000000000000036 -:100AC0000000000000000000000000000000000026 -:100AD0000000000000000000000000000000000016 -:100AE0000000000000000000000000000000000006 -:100AF00000000000000000000000000000000000F6 +:1009B0000000000000000000000000000000000037 +:1009C00000000000000000C0F0F8FC3E1E06010020 +:1009D00000007F4141417F007F4141417F00008015 +:1009E000C0E07E5B4F5BFEC00000C000DCD7DEDEF7 +:1009F000DED7DC00C00000000000000000000000A6 +:100A00000000000000000000000000000000494954 +:100A100049FFFFFFFFE0DFBFBF00BFBFDFE0FFFF19 +:100A2000FFFF49494900000000001F3F6060E0BF30 +:100A30001F007F7F071E381E077F7F007F7F0E1FEE +:100A40003B716000000000007F7F0C0C0C007E7E7C +:100A5000007F7E0303007F7E03037E7E03037F7E91 +:100A6000000F3E703C063C703E0F00327B49493F10 +:100A70007E007F7E0303001E3F69696F2600000031 +:100A800000000000000000030F1F3F3C7870600072 +:100A900000007F4141417F007F4141417F00307B29 +:100AA0007F7830202030787F3B0003000F7F0F0FCE +:100AB0000F7F0F0003000000000000000000000096 +:100AC0000000000000000000000000000000010124 +:100AD00001070F0F7F0F7F0F0F7E0F0F7F0F7F0F0D +:100AE0000F070101010000000000000000000001EC +:100AF00001000000000000000000000000000000F5 :100B000000000000000000000000000000000000E5 :100B100000000000000000000000000000000000D5 -:100B20000000000000000000000000AF00AE09025D -:100B30005B00030100A0FA090400000103010100A9 -:100B40000921110100012240000705810308000A64 -:100B50000904010002030000000921110100012223 -:100B6000220007058203200001070503032000017E -:100B70000904020001030000000921110100012203 -:100B80007B000705840320000A1201000200000018 -:100B90000832FC87120200010200011E0353006F9D -:100BA000006C00610072006900750073005F005303 -:100BB000006F0066006C006500000010034B0065CC -:100BC00000790068006900760065000000040309F0 -:100BD000040011241FBECFEFDAE0DEBFCDBF04B6A4 -:100BE00003FE27C08091700690917106A091720655 -:100BF000B09173068730904BA740B04BD1F4109260 -:100C0000700610927106109272061092730614BE4E -:100C100084B7877F84BF0FB6F894A8958091600051 -:100C2000886180936000109260000FBEE0E0F8E3FE -:100C3000099512E0A0E0B1E0EEEEFDE602C00590FD -:100C40000D92A033B107D9F726E0A0E3B2E001C0CE -:100C50001D92A037B207E1F70E943B290C94B136F0 -:100C60000C940000CF93DF9340916E0650916F0675 -:100C70004E5654409A01205A3F4F21303240C0F026 -:100C800020E032E0241B350B60916C0470916D0400 -:100C9000FC01CA01240F351FC1E0D0E08217930781 -:100CA00050F070936D0460936C04DF91CF910895C0 -:100CB00020E630E0E9CF4491DC01A259BB4F5C91C2 -:100CC000451781F04C93AC01A5E056954795AA9540 -:100CD000E1F7DE0102C0AA0FBB1F4A95E2F7AD01A2 -:100CE0006A2B752B01963196D9CFE8EDF0E0808123 -:100CF0008E7F80831092E2001092DA001092E10061 -:100D0000A0EEB0E08C9181608C9380818F7780839E -:100D100019BCA7EDB0E08C918E7F8C9380818F7E83 -:100D2000808310924E0408952091E4003091E500F4 -:100D300095E6A9012091EC00822F817020FF06C06A -:100D40008091E80080FF06C080E008952091E800CF -:100D500022FD1AC080915C04882389F0853089F0D7 -:100D60008091EB0085FD0FC02091E4003091E500FB -:100D700042175307F9F29150E1F684E0089582E0BA -:100D8000089583E0089581E00895EF92FF920F9314 -:100D90001F93CF937C018B010E949406C82F811171 -:100DA00017C08091E80085FD0BC08091E8008E7728 -:100DB0008093E8000E949406882399F3C82F08C006 -:100DC000F70181917F018093F1000150110949F7EA -:100DD0008C2FCF911F910F91FF90EF9008958091EC -:100DE0005E0487FF13C08091E80082FF06C08091F7 -:100DF000E8008B778093E80004C080915C04811147 -:100E0000F2CF089580915C048823D9F38091E800A3 -:100E100080FFF8CF8091E8008E77ECCF982F9093E9 -:100E2000E900242F762F50E0891731F07091EC0003 -:100E30002091ED005091F00021FD07C09F5F973099 -:100E400071F78093E90081E008953091EB003E7FD7 -:100E50003093EB003091ED003D7F3093ED00309109 -:100E6000EB0031603093EB007093EC002093ED00C9 -:100E70005093F0002091EE0027FDE0CF80E0089530 -:100E8000CF92DF92EF92FF920F931F93CF93DF9356 -:100E9000C8EDD0E088818F7E8883E7EDF0E0808127 -:100EA0008160808384E082BF81E080934E048881EA -:100EB0008E7F888302EE10E0F80110821092DA0033 -:100EC00081EEC82ED12CF601108288818F7788831D -:100ED00088818068888388818F7D888319BC10927F -:100EE0005C0410925D0410925B0410925A0490EE20 -:100EF000E92EF12CF70180818B7F808388818160CE -:100F0000888342E060E080E00E940E07F601808165 -:100F10008E7F8083F80180818160808380818860FA -:100F20008083F70180818E7F8083888180618883C0 -:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 -:100F40000895FC01809164049091650486179707C9 -:100F5000A0F06115710529F49091E8009E779093B7 -:100F6000E80090E06115710551F4911108C080917D -:100F7000E80082FF34C080E00895BC01F2CF809188 -:100F80005C048823C1F18530C1F18091E80083FDC4 -:100F900030C08091E80082FDEACF8091E80080FFB8 -:100FA000E1CF8091F3002091F200382F6115710597 -:100FB00019F02830310558F091E02830310509F05A -:100FC00090E02091E8002E772093E800CBCF81912C -:100FD0008093F100615071092F5F3F4FE7CF8091FF -:100FE0005C04882341F0853041F08091E80083FF64 -:100FF000BECF81E0089582E0089583E008950895CA -:10100000809151040895CF92DF92EF92FF922FB713 -:10101000F894C0904704D0904804E0904904F090C0 -:101020004A042FBFA7019601261B370B480B590B0B -:10103000CA01B901FF90EF90DF90CF9008952FB7CC -:10104000F89460914704709148048091490490910C -:101050004A042FBF08952091440430914504281775 -:10106000390771F09093450480934404E091420461 -:10107000F0914304309721F00084F185E02D09942C -:10108000089520914004309141042817390771F0E8 -:101090009093410480934004E0914204F091430412 -:1010A000309721F00680F781E02D0994089581158D -:1010B00020E59207F8F48115E0E49E0788F589336E -:1010C000910570F48C32910548F48430910580F0DC -:1010D0008E31910518F08897039750F480E00895B9 -:1010E00084369105D9F320F0805E91090897B0F31A -:1010F00081E01BC08115F9E59F0750F4811528E5B3 -:101100009207A0F491558F3F910509F088F7E6CF3B -:101110008115EAE59E0710F390568115904240F73D -:10112000FB019581907F81E0C9F20895FB019581D3 -:10113000907F81E0903291F6F8CF20912F0436E035 -:10114000839FC0011124629F800D911D1124811580 -:1011500022E0920714F090E080E082599B4F909338 -:101160006F0680936E060895FC01680F791F8FEF5C -:1011700091E32191822728E030E087FF09C0880FA2 -:10118000892721503109C9F7E617F70791F7089524 -:10119000880FF7CFFA01811101C0FB0109948091FA -:1011A0006704982F9E7F61F481708260809367044A -:1011B00080916A04813A18F080EA80936A04089565 -:1011C0008831B0F381708661F1CFAF92BF92DF9228 -:1011D000EF92FF920F931F93CF93DF93082F162F59 -:1011E000E901E42FF0E0E556FB4F611110C0E491F6 -:1011F0005E2F4E2F4983E8835A83DF91CF911F9151 -:101200000F91FF90EF90DF90BF90AF900895E62E82 -:10121000F12C4491D42EE42FF0E026E0829FC0010F -:1012200011242FEF30E0B9010E94D834802F90E0D4 -:10123000880F991F55E5569FD001579FB00D112477 -:101240008A1B9B0B982F990F890F5901AE18BF0865 -:10125000AE9ED001AF9EB00DBE9EB00D11245B2F8F -:10126000189F80011124012F11275901A01AB10ADA -:10127000AE9E8001AF9E100DBE9E100D112459012F -:10128000A81AB108AE9CC001AF9C900DBE9C900DF9 -:101290001124892F9927281B390B2E9FC0012F9FBE -:1012A000900D3E9F900D1124E92F62307105A1F041 -:1012B00050F46115710509F49DCF6130710581F01D -:1012C000EB2F512F97CF6430710569F080F06630B5 -:1012D000710509F48FCFF4CFE42F4B2F592F8ACF0C -:1012E000E42F412F87CFEB2F542F492F83CF4B2F44 -:1012F0005D2DE12F7FCF80E0089578940895F894D4 -:10130000E82FE295EF70F0E031A1282F2F7081E0F7 -:1013100090E001C0880F2A95EAF7982F90959323C3 -:1013200091A392A1892B82A30C947D099091D7025D -:1013300092FF06C0282F28712830F9F4877F846037 -:1013400093FF06C0282F28712831F1F4877E84612D -:101350002091D80220FF06C0382F38713830D9F4D8 -:10136000877F816021FF06C0282F28712831D1F4A2 -:10137000877E816194FD877E0895282F2471243013 -:10138000F9F68B7F8860DCCF282F2471243101F798 -:101390008B7E8861DDCF382F3171313019F78E7F28 -:1013A0008860E0CF282F2171213121F78E7E88615E -:1013B000E1CFCF93DF93EC018238910581F1B0F555 -:1013C0008133910509F491C020F58932910509F422 -:1013D00085C08A9709F490C0C11521E5D20708F0AD -:1013E000AAC0C11530E5D30708F0F2C0CF3BD10544 -:1013F00008F089C0C83AD10508F0DFC0C53AD10568 -:1014000008F0D3C0C430D105F8F4C130D105E1F003 -:1014100040C08533910509F45AC0C997E9F6809117 -:10142000D702837089F0C0EED0E00EC0833E9105F4 -:1014300099F170F4803E910501F1823E910561F6CB -:101440008091D70282FD21C0CE01DF91CF91089516 -:10145000863E910561F1873E910571F1843E9105CB -:1014600009F0BACF8091D80281FFEECF8091D702E8 -:10147000C7EED0E084FD0DC0E7CF8091D70280FD9C -:10148000F7C09091D80290FFDFCFC3EED0E084FF89 -:10149000DBCFD0E0C0E0D8CF8091D70282FDEBC097 -:1014A0009091D80290FDBFCF84FFCECFF2CF809134 -:1014B000D70283FDDDCFC8CF8091D70283FDDEC088 -:1014C0009091D80291FFF0CFC4EED0E0BDCF8091D3 -:1014D000D70285FFB9CFC9E2D0E0B6CF8091D7025D -:1014E00085FFB2CFC5E3D0E0AFCF8091D70286FFB2 -:1014F000ABCFCAE2D0E0A8CF8091D70286FFA4CFBD -:10150000C1E3D0E0A1CFC11540E2D40760F4C1151A -:1015100081E0D80708F098CFCE01815E9109079746 -:1015200008F492CFB6CFC11590E4D90708F4B1CF33 -:10153000DF70D06A89CFC11524E5D20778F4C115D0 -:1015400033E5D30708F072C0C11542E5D40708F0AF -:101550005CC0DC2FCC27C16FD06A76CFC1158AE57D -:10156000D80778F4C11599E5D90708F073C0C115FB -:1015700028E5D20708F48DCFDC2FCC27C06FD06AC6 -:1015800063CFCE0190568115904208F082CF8D2F07 -:101590008F710E94960990E0982F882788279F7165 -:1015A0009C012C2BE901D0624FCFC55AD0E0CE531D -:1015B000DE4FC881D0E0D06447CFC85AD0E0CC0F0E -:1015C000DD1FCB53DE4F0990D881C02DD4643CCFB2 -:1015D000CE0164E0969587956A95E1F783702C2F8C -:1015E00026952695237040E2249F90011124382BE4 -:1015F0008C2F8370C1E0D0E002C0CC0FDD1F8A9534 -:10160000E2F7C22BD32BDC681FCFCE018370992762 -:1016100021E030E002C0220F331F8A95E2F7C69521 -:10162000C69580E2C89FE0011124EBCFCE01837004 -:10163000992721E030E002C0220F331F8A95E2F79C -:10164000C695C69590E2C99FE0011124C22BD32B09 -:10165000DA68FACE8C2F8F700E94960934E0D69506 -:10166000C7953A95E1F7CF709C2FEC01D069ECCE8D -:10167000C9E3D0E0E9CEC2EED0E0E6CEC6EED0E0DF -:10168000E3CE0C941F0880914F0490919402892B13 -:1016900090919302892B80933202E0914204F09161 -:1016A0004304309731F00280F381E02D82E392E031 -:1016B000099408958091920290916102981301C05B -:1016C00008958F5F8770FACF27E0929F800D1124D5 -:1016D000982F977086958695869523E0829FF001D6 -:1016E0001124E05CFD4F50E040E080E0219130E0CB -:1016F000092E02C0369527950A94E2F72170332708 -:10170000042E01C0220F0A94EAF7822B4F5F5F4F2D -:101710004330510559F7089527E0929F800D112419 -:10172000982F977041E001C0440F9A95EAF786958B -:101730008695869593E0899FF0011124E05CFD4F2A -:1017400090E080E070E05191DF0111979B01082E3D -:1017500002C0369527950A94E2F721702195252736 -:10176000242325272C9301968330910561F7089552 -:1017700090E080E00E94410890E080E00E942B0809 -:1017800010929402109293020C94430B8093950252 -:101790000C94B80B882341F0809590914F048923D5 -:1017A00080934F040C94430B0895882339F0909153 -:1017B0004F04982B90934F040C94430B0895882367 -:1017C000B1F19CEF980F913A70F4E4E3F2E091915B -:1017D000891303C0DF0111971C9242E0EA33F4073A -:1017E000B1F70C94430B90E2980F983088F487700F -:1017F00021E030E0A90102C0440F551F8A95E2F7AD -:10180000CA01809590914F04892380934F04E9CFBA -:101810009BE5980F933020F490E080E00C94410811 -:10182000885A873120F490E080E00C942B080895CA -:101830000F931F93CF93C82F882309F469C08CEFAF -:101840008C0F813AB0F504E312E08AE392E0F801EC -:101850002191C21701F122E0EA33F207C9F7EFEF55 -:1018600080E0D8019D918D01C91781F0EF3F19F4F7 -:10187000911101C0E82F8F5F863099F7EF3F31F06B -:101880000E2E000CFF0BEE5CFD4FC283CF911F911B -:101890000F910C94430BE4E3F2E02191C21303C0D7 -:1018A000DF0111971C928E179F07B9F70E94430B17 -:1018B000D6CF80E28C0F883068F4C77021E030E02A -:1018C00001C0220FCA95EAF780914F04822B8093C2 -:1018D0004F04DCCFEBE5EC0FE33050F4F0E0EE53D7 -:1018E000FE4F808190E0CF911F910F910C944108A1 -:1018F000C85AC73168F4EC2FF0E0EE0FFF1FEB532E -:10190000FE4F80819181CF911F910F910C942B08F4 -:10191000CF911F910F910895982F92959F7011F07C -:10192000892F94E0282F2695269511F09E5F822F0F -:10193000869509F09F5F892F0895CF93DF93CDB7E8 -:10194000DEB762970FB6F894DEBF0FBECDBF96E04C -:10195000EAE3F3E0DE01179601900D929A95E1F724 -:1019600096E0FE013796DE011D9601900D929A9544 -:10197000E1F798858823E9F0962B9E8786E0FE01A3 -:101980003D96DE01119601900D928A95E1F786E071 -:10199000FE013196AAE3B3E001900D928A95E1F73A -:1019A00062960FB6F894DEBF0FBECDBFDF91CF9128 -:1019B000089560959623E1CF0F931F93CF93DF9304 -:1019C00000D000D0CDB7DEB789836A834B831C82F9 -:1019D00004E610E024E030E0AE014F5F5F4F60E0CE -:1019E00084E10E9436320F900F900F900F90DF919C -:1019F000CF911F910F91089580916F01882329F055 -:101A000047E669E98BE20C94DC0C80913B0247ECE1 -:101A10006BE18823C1F341E265EA89EDF4CFCF920F -:101A2000DF92EF92FF920F931F93CF93DF936C019E -:101A30007B0164E670E088E70E941E31EC0197FDAF -:101A400012C010E000E0F601E00FF11F849164E69F -:101A500070E00E949831EC01892B29F40F5F1F4F31 -:101A60000E151F0581F70E94B232CE01DF91CF9192 -:101A70001F910F91FF90EF90DF90CF90089580918C -:101A80003A0490913B04911103C091E08927089595 -:101A9000882369F062E070E08CE29BE00E940F0D09 -:101AA000892B19F080913A04089510923A0480919C -:101AB0003A04EBCFCF93C0913A0480913B04882342 -:101AC000D1F00E941F086058774C8E4F9F4F609353 -:101AD0003604709337048093380490933904C1110D -:101AE00008C062E070E08AE29BE00E940F0D892B43 -:101AF00029F0C0913A048C2FCF91089581E0809312 -:101B00003A04F7CF80934B0470934D0460934C04D8 -:101B100080915C048430F9F48093E9008FEF909118 -:101B2000E800815095FD06C095ED9A95F1F700000B -:101B30008111F5CF8091E80085FF0DC050E040E0B5 -:101B400063E070E08BE494E00E94C5068091E800B9 -:101B50008E778093E8000895BC0184E00C94820D98 -:101B6000BC0183E00C94820D9C0184E08093E90029 -:101B70009FEF8091E800915085FD06C085ED8A9524 -:101B8000F1F700009111F5CF8091E80085FF0CC0BE -:101B900050E040E066E070E0C9010E94C506809117 -:101BA000E8008E778093E8000895CF93DF93EC01EF -:101BB00081E08093E9008FEF9091E800815095FDDE -:101BC00006C095ED9A95F1F700008111F5CF80914F -:101BD000E80085FF14C050E040E068E070E0CE010E -:101BE0000E94C5068091E8008E778093E80088E027 -:101BF000FE01A2E5B4E001900D928A95E1F7DF9134 -:101C0000CF9108959F92AF92BF92CF92DF92EF92C1 -:101C1000FF920F931F93CF93DF937C015B016A01C7 -:101C20008091D20201E010E08A3010F40AE010E066 -:101C3000C1E0D0E0F894B501C701F6010995982EEE -:101C40000E947D09911004C021960C171D076CF4A9 -:101C5000892DDF91CF911F910F91FF90EF90DF9031 -:101C6000CF90BF90AF909F900895CC9F9001CD9F53 -:101C7000300D300D112490E080E045E34A95F1F7F6 -:101C80000000019682179307C1F7D4CF8091A2027A -:101C9000811110C08091D80080618093D8008AE1C2 -:101CA0008A95F1F700C08091D90080FF0AC081E0D9 -:101CB0008093A20281E09091A202913009F080E02D -:101CC000089582E08093A2020E94750610925C043F -:101CD000F1CF0E94460E882351F0E0914204F0912A -:101CE0004304309721F00190F081E02D099480E0C9 -:101CF00008951F93CF93DF93182FEB010E94180CC8 -:101D00008FE99FE00197F1F700C000002197C1F72C -:101D1000812FDF91CF911F910C94DF0BCF93DF9335 -:101D2000C3EED2E060E0CE010E944C352196C11591 -:101D300084E0D807B9F7DF91CF9108956F927F9231 -:101D40008F929F92AF92BF92CF92DF92EF92FF92CB -:101D50000F931F93CF93DF938EE2C82E8BE0D82E84 -:101D600091ECE92EF12CE701CC58D10936011BC0CA -:101D7000F50185909490692DC8010E944C35682D1D -:101D8000C80101960E944C3582E0A80EB11C0E5F7E -:101D90001F4FC017D10761F78EE0680E711C2E9699 -:101DA000CE15DF0529F08E010E5011095301E0CF49 -:101DB0007E018CE8E80EF11C8CE8C80ED11C8DE782 -:101DC000E81683E0F80679F6DF91CF911F910F9125 -:101DD000FF90EF90DF90CF90BF90AF909F908F904B -:101DE0007F906F900895CF93C82F6FEF811161E2BC -:101DF00083E290E00E944C356FEFC11161E184E213 -:101E000090E00E944C356FEFC11168E285E290E0EE -:101E1000CF910C944C3580E00E94F30E60E086E296 -:101E200090E00E944C350E949E0E0E948E0E81E032 -:101E30000C94F30E0F931F93CF93DF93C42FD0E036 -:101E4000CC0FDD1F2EE0629FC00DD11D11243CE898 -:101E5000839FC00DD11D1124CE0187960E94383575 -:101E6000082F10E0102F0027CE0188960E943835E9 -:101E70009801282BC901DF91CF911F910F910895EF -:101E8000462F853038F47A3028F4673018F4672FFD -:101E90000C941A0F90E080E00895CF92DF92FF92A9 -:101EA0000F931F93CF93DF936C0100916604809191 -:101EB0009502082BC7E0D0E010E0FC2EC8010C2EE4 -:101EC00002C0959587950A94E2F780FD0CC0219792 -:101ED000A0F7F12C8F2DDF91CF911F910F91FF90E3 -:101EE000DF90CF900895B6018C2F0E94400F0E9482 -:101EF000D909019761F3EECFCF93DF93EC010E94F4 -:101F00004D0FBE010E94400FDF91CF910C94D90973 -:101F1000FC01808191810E947C0F292F2F70929566 -:101F20009F7092509E3078F4E92FF0E0ED54F94C18 -:101F30000C940C35803F19F020F4883E20F481E0A9 -:101F40000895843FE1F380E00895883EC0F3813F27 -:101F5000D1F7F5CF822F869586958695089583E2F1 -:101F600090E00E943835813289F484E290E00E944A -:101F70003835813159F485E290E00E94383591E09E -:101F8000883209F090E0892F8170089580E0FCCFBD -:101F90001F93CF93DF93CDB7DEB768970FB6F89452 -:101FA000DEBF0FBECDBF40913A0350913B0360911D -:101FB0003C0370913D0380913E0390913F030E944A -:101FC000332520933A0330933B0360933E03709391 -:101FD0003F03142F119510933C03652F6195609377 -:101FE0003D0386E0EAE3F3E0DE01179601900D92EF -:101FF0008A95E1F786E0FE013796DE0111960190A1 -:102000000D928A95E1F79B858C8520916F012223A3 -:10201000B1F0772761950CF47095072E000C880BB2 -:10202000990B0E94B8352AE939E949E95EE30E9433 -:102030001C360E948035962F812F60E010E01B83B4 -:102040006C839D838E8386E0FE013196DE011D96B2 -:1020500001900D928A95E1F786E0FE013D96DE0142 -:10206000539601900D928A95E1F786E0FE017396F2 -:10207000DE01119601900D928A95E1F786E0FE014E -:102080003196AAE3B3E001900D928A95E1F786E0DC -:10209000EAE3F3E0DE01179601900D928A95E1F7ED -:1020A00086E0E4E3F3E0DE01119601900D928A955B -:1020B000E1F746E050E0BE016F5F7F4FCE0107962B -:1020C0000E942235892B79F0E0914204F09143047B -:1020D000309749F082E080933A030480F581E02D47 -:1020E0008AE393E0099510923C0310923D0310920D -:1020F0003E0310923F0386E0EAE3F3E0A4E3B3E09B -:1021000001900D928A95E1F768960FB6F894DEBFBC -:102110000FBECDBFDF91CF911F9108954F925F9277 -:102120006F927F928F929F92AF92BF92CF92DF92E7 -:10213000EF92FF920F931F93CF93DF93CDB7DEB74C -:10214000CE5DD1090FB6F894DEBF0FBECDBF509063 -:1021500073019091670490FF5DC080904D03909053 -:102160004E038114910409F068C0E0EAF5E09E0195 -:102170002F5F3F4FBE0161527F4FC901A4914A2F8B -:1021800050E0DA01AA0FBB1FA40FB51FA15BBC4F23 -:10219000CD90DD90EC90D901CD92DD92ED929D0134 -:1021A00031966A177B0751F72091720143E0249F13 -:1021B000800D911D1124539A2BB1277F3BB13860BC -:1021C0005FB7F894BC01549E600D711D11248617F1 -:1021D000970709F08EC05FBF8FE594E00197F1F794 -:1021E00000C00000C252DF4F0FB6F894DEBF0FBE32 -:1021F000CDBFDF91CF911F910F91FF90EF90DF90B6 -:10220000CF90BF90AF909F908F907F906F905F9096 -:102210004F900895809174012091750133E0839F60 -:10222000F0011124E15BFC4F821708F096CF118278 -:10223000108212828F5F3396F7CF90FF96CFD12C0A -:10224000C12C66246394712C53E0452E80914C037D -:1022500093010C2C01C0220F0A94EAF7822309F49F -:102260003FC0F601EE0FFF1FE80DF91DE590F49059 -:10227000E114F10409F479CF45E050E0B701CE0153 -:1022800001960E94193509810F3F51F18A81800F13 -:102290009927991F8B34910514F08AE490E05C0132 -:1022A000AA0CBB1C8A0D9B1DDC01A15BBC4F5D0110 -:1022B000049D80011124015B1C4F0A151B0520F0B1 -:1022C000B5E0EB0EF11CD8CF4D81413A08F040EA61 -:1022D00098016C818B810E94E5080D5F1F4FEDCF47 -:1022E000EFEFCE1ADE0AF8E0CF16D10409F0AECF38 -:1022F0003CCFFC014191CF01E8E03BB9000000C0B8 -:1023000047FF2BB9440F000000C000C000C02BB92C -:1023100000C0EA9591F75BCFE7E6F4E080818E7F1D -:102320008083E9E4F3E08281816082832FEF80E79C -:1023300092E0215080409040E1F700C000000C94F2 -:102340008E10E4E3F2E086E0DF011D928A95E9F762 -:102350000C94B80B1F93CF93DF93CDB7DEB7AA973A -:102360000FB6F894DEBF0FBECDBF8EE594E020918E -:10237000F100DC012D93CD01B4E086369B07B9F75F -:1023800080915F04833009F472C0B8F4813009F49D -:1023900049C0823009F4B5C08091E80083FF8DC246 -:1023A00080915E0490915F049A3008F086C2E92F14 -:1023B000F0E0EF53F94C0C940C358A3009F490C0DE -:1023C0008B3009F471C0893039F780915E04813215 -:1023D00019F78091620490916304009711F00297BD -:1023E000D9F68091E800877F8093E8008091E8002B -:1023F00082FF38C09091F3008091F200029731F48F -:102400008091F100813011F0863021F48091F1004B -:10241000809351048091E8008B778093E8000E94BC -:10242000EF06BACF80915E04813A09F0B5CF809172 -:10243000E800877F8093E8008091620490916304B4 -:10244000892B61F468E082E594E070E00E94A107C6 -:102450008091E8008B778093E8009ECF60E090E069 -:1024600080E0F3CF80915C048111C0CF95CF809143 -:102470005E04813A09F090CF8091620490916304E8 -:10248000892B09F089CF8091E800877F8093E8004D -:102490008091E80080FFFCCF809177018093F1006C -:1024A0008091E8008E77B9CF80915E04813209F087 -:1024B00073CF8091620490916304892B09F06CCFF3 -:1024C0008091E800877F8093E8000E94EF0680916A -:1024D00060048093770110924F040E94A1115CCF99 -:1024E00080915E04813209F057CF8091E800877FA8 -:1024F0008093E8000E94EF0680916104809350046D -:102500004BCF80915E04813A09F046CF8091E8007C -:10251000877F8093E8008091E80080FFFCCF809166 -:102520005004BCCF803899F0823809F0C6C1809140 -:1025300062048F70873008F0C0C18093E9008091F9 -:10254000EB0085FB882780F91092E90006C0809196 -:102550005A0490915B04911182609091E800977FFA -:102560009093E8008093F1001092F1008091E800D0 -:102570008E779FC1882309F48DC1823009F09DC1F7 -:1025800080916004811190C1809162048F702FEF5F -:10259000280F263008F091C18093E9002091EB00CC -:1025A00020FF82C1933031F48091EB0080628093F0 -:1025B000EB007AC19091EB0090619093EB0021E0E9 -:1025C00030E001C0220F8A95EAF72093EA001092CA -:1025D000EA008091EB008860EACF81116EC1109112 -:1025E00060041F778091E3008078812B8093E30063 -:1025F0008091E800877F8093E8000E94EF06809139 -:10260000E80080FFFCCF8091E30080688093E300C6 -:1026100082E0111183E080935C044FC180588230C6 -:1026200008F04BC120916004309161042C3DE3E03F -:102630003E07A1F583E08A838AE289834FB7F89445 -:10264000DE01139620E03EE051E2E32FF0E05093EC -:102650005700E49120FF03C0E295EF703F5FEF70F9 -:102660008E2F90E0EA30C0F0C7968D939D932F5F38 -:10267000243159F74FBF8091E800877F8093E800AD -:102680006AE270E0CE0101960E94A1078091E80005 -:102690008B778093E80011C1C096E7CF80916204E8 -:1026A00090916304432F55274330510509F44AC0E4 -:1026B00078F54130510509F47AC08BE590E0EEE2FF -:1026C000FBE04230510509F0F8C02091E800277F77 -:1026D0002093E800209164043091650482179307E9 -:1026E00008F49C0140E02115310509F065C0411155 -:1026F00063C08091E80082FDC9CF80915C0488238B -:1027000029F2853019F28091E80083FFF2CFBECF25 -:102710004132510509F43CC04232510509F0CDC0A7 -:102720008330910508F0C9C0FC01EE0FFF1FEC5D7E -:10273000FD4F0190F081E02D8F5D9D4FDC018C916C -:1027400090E01AC0332721303105D1F02115310531 -:1027500061F02230310509F0B0C0EBE9FBE0E49113 -:102760008E2F90E0EBE9FBE007C0EDECFBE0E4919D -:102770008E2F90E0EDECFBE0009709F49EC0A5CF12 -:10278000EBEBFBE0E4918E2F90E0EBEBFBE0F4CF82 -:102790008330910508F091C0880F991FFC01E65D18 -:1027A000FD4F0190F081E02D89E090E08ECF82E135 -:1027B00090E0E9E8FBE089CF80915C04882309F48C -:1027C00065CF853009F462CF8091E80083FD5ECF4C -:1027D0008091E80082FD8DCF8091E80080FF83CF5B -:1027E0009091F3008091F2002115310519F08830A5 -:1027F000910550F041E0089709F040E08091E80031 -:102800008E778093E8006FCF44914093F10031962A -:10281000215031090196E8CF803809F04EC08091EF -:10282000E800877F8093E80080915D048093F10049 -:102830009DCE811142C0109160041230F0F580915C -:10284000E800877F8093E80010935D040E94EF0604 -:10285000112311F084E005C08091E30087FDFACFD9 -:1028600081E080935C0442E061EC81E00E940E070D -:1028700042E261EC84E00E940E0742E261EC82E0F9 -:102880000E940E0742E260EC83E00E940E078091F6 -:102890005C0413C080916004813079F481E093304E -:1028A00009F080E080935B041092E9008091E800D9 -:1028B000877F8093E8000E94EF068091E80083FF05 -:1028C0000AC08091E800877F8093E8008091EB0048 -:1028D00080628093EB00AA960FB6F894DEBF0FBE1D -:1028E000CDBFDF91CF911F9108951F93CF93DF93B9 -:1028F000162FC0916E06D0916F068A30D1F42091C8 -:102900002F04CE018E569440622F70E00E94D8347E -:10291000281B822F66E00E94EC34C82FC15020F49F -:10292000DF91CF911F91089560E080E20E947514BD -:10293000F5CF8D30E9F4CE56D44020912F04622F8C -:1029400070E0CE010E94D834281B822F9E01280FF0 -:10295000311D2115324018F080E0D0E0C0E0C80FF2 -:10296000D11DC259DB4FD0936F06C0936E06D8CFEE -:1029700096E0FE01A0E3B4E001900D929A95E1F794 -:10298000803E90F186E0FE0111928A95E9F7C091B0 -:102990006E06D0916F06111133C046E050E0BE01C3 -:1029A00080E394E00E9422359E012E563440892B0C -:1029B00091F52A5F3F4F40912F04642F70E0C901C9 -:1029C0000E94D834481B463010F4240F311D2115C5 -:1029D00072E0370710F030E020E022593B4F30938F -:1029E0006F0620936E069CCFF6E08F9FB0011124F6 -:1029F00066517A4F46E050E0CE010E941935C7CFAC -:102A00009E012A5F3F4FFE012E173F0731F2808162 -:102A100080958193F9CFC90145E0969587954A95B0 -:102A2000E1F741E050E0BA0102C0660F771F8A95D6 -:102A3000E2F7CB0160916C0470916D04862B972BAB -:102A4000B9016B5F7F4FE5E076956795EA95E1F711 -:102A500002C0440F551F6A95E2F7842B952B909383 -:102A60006D0480936C04A5CFFF920F931F93CF93B7 -:102A7000DF93EC01F62EFC0101900020E9F78F01B5 -:102A800001501109C017D10730F0DF91CF911F918C -:102A90000F91FF9008956F2D89910E947514F2CFC8 -:102AA000EDE2F4E08083618324E630E042E050E030 -:102AB000BF0184EB0C940F32CF93C82F60E08CE001 -:102AC0000E9450156C2F84E00E94501561E08CE04C -:102AD000CF910C945015CF92DF92EF92FF926B0141 -:102AE0007C010E94CF08B701A60188E090E0FF902A -:102AF000EF90DF90CF900C945E35AF92BF92CF9263 -:102B0000DF92EF92FF920F931F93CF93DF9300D04A -:102B10000F92CDB7DEB7082FF62E142FE22E80913C -:102B2000670480FF4FC0E82FE695AE2FB0E0AB5EA4 -:102B3000BD4F9C91909349038E7F823009F056C01F -:102B4000413A08F040EA9E012F5F3F4F6F2D802FE2 -:102B50000E94E5088091670480FF11C02B813981B4 -:102B60004A81809174019091750153E0859FF00135 -:102B70001124E15BFC4F891798F10E948E1080911F -:102B80006804801308C0809169048F1104C080918B -:102B90006A04811729F080914B03826080934B0374 -:102BA00000936804F092690410936A04EE2051F0D7 -:102BB00060916704709168048091690490916A043F -:102BC0000E946B150F900F900F90DF91CF911F9186 -:102BD0000F91FF90EF90DF90CF90BF90AF9008954E -:102BE0004183308322838F5F3396C5CF923039F68D -:102BF000E2508E2F8170D82EE695F0E0E556FA4F20 -:102C0000A590B490C12CBB2460917601C61608F043 -:102C1000B4CF2C2D30E0A29EC001A39E900DB29E99 -:102C2000900D112470E00E94D834802FD11016C06E -:102C3000860F40917401420F532F511D9A01220FAC -:102C4000331F240F351F215B3C4F412F113A08F0F1 -:102C500040EA6F2D0E94E508C394D6CF861BE9CFCA -:102C6000E7E6F4E0438121E1421B08F440E021E083 -:102C7000628181810C947D15E7E6F4E0438121E1D6 -:102C8000420F08F44FEF21E0628181810C947D15A1 -:102C9000E7E6F4E0628121E1621B08F460E021E0F4 -:102CA000438181810C947D15E7E6F4E0628121E1A6 -:102CB000620F08F46FEF21E0438181810C947D1550 -:102CC000E7E6F4E0818121E04381628188500C9441 -:102CD0007D15E7E6F4E0818121E043816281885F30 -:102CE0000C947D1580916B04882319F0815080939A -:102CF0006B046091670470916804809169049091FD -:102D00006A040C946B1580916B04833018F48F5F08 -:102D100080936B04609167047091680480916904EA -:102D200090916A040C946B159091670490FF27C0F2 -:102D3000917081111DC092609093670480914B0344 -:102D4000816080934B03662351F06091670470911A -:102D500068048091690490916A040E946B1520E0D8 -:102D600040916A0460916904809168040C947D1517 -:102D70008C3010F09661E0CF880F982BDDCF08954E -:102D800021E030E0A90102C0440F551F8A95E2F707 -:102D9000CA0120914C03662391F0822B80934C034F -:102DA00080914B03806180934B0380914A03811192 -:102DB00009C08091670460E086950C949416809514 -:102DC0008223ECCF0895CF93DF93C82FC17082FB8D -:102DD000DD27D0F981FB662760F985E00E94C016E7 -:102DE00061E06C2786E00E94C0166D2F87E0DF91BE -:102DF000CF910C94C0160F931F93CF93C82F61E00F -:102E00008111682F617080E00E94C016C1FB6627A7 -:102E100060F9C11101C060E081E00E94C016C2FBF0 -:102E2000662760F9C11101C060E082E00E94C0160F -:102E3000C3FB662760F9C11101C060E083E00E9416 -:102E4000C016C4FB662760F9C11101C060E084E0D0 -:102E50000E94C0164C2F50E070E060E0DB01CA0118 -:102E6000F4E0B695A79597958795FA95D1F70097D1 -:102E7000A105B10549F1AC01BD0184E08A019B01C6 -:102E8000E2E03695279517950795EA95D1F7011554 -:102E900011052105310519F08E5FB901A80176955C -:102EA000679557954795452B462B472B09F08F5F24 -:102EB0008230D1F158F48823E9F0813059F18C2F18 -:102EC000CF911F910F91089580E0D8CF8330A1F169 -:102ED0008430A9F720E040E56FEF8AED0E947D1570 -:102EE00087E00E945C1580910001882341F31092D5 -:102EF0006F010DC020E040E56FEF82E30E947D1579 -:102F000080910001882399F381E080936F010E94F2 -:102F1000FC0CD5CF20E040E56FEF8CEF0E947D15D3 -:102F200085E40E945C15CBCF20E040E56FEF80E5A3 -:102F30000E947D1585E2F5CF20E040E56FEF86E742 -:102F40000E947D158FE1EDCF0E94FB1680936604F1 -:102F50000C94B80B80916604982F9670963019F4F3 -:102F600088600C94A417877FFCCF21E030E001C07B -:102F7000220F8A95EAF720958091660482230C94AB -:102F8000A41721E030E001C0220F8A95EAF7809172 -:102F90006604822B0C94A417809167048695815057 -:102FA00009F48BE061E00C94941680916704869597 -:102FB0008F5F8C3008F081E061E00C949416809172 -:102FC000670480FF07C0869582588F77893010F498 -:102FD0000C94D51761E082E00C949416E7E6F4E0D7 -:102FE00083E0808311828FEF828380EA838314825F -:102FF000A9E4B3E012968C911297836012968C9399 -:1030000060817181828193810C946B15AB01BC014D -:1030100088E190E00C945E35CF93C82FEEE3F4E0A6 -:10302000982F990F990F990F80818770892B808332 -:10303000EFE3F4E09C2F9295969597708081887FBE -:10304000892B808360913C0470913D0480913E0403 -:1030500090913F040E9406186C2F82E0CF910C944F -:103060005015ECE3F4E089E88083118282818C7F43 -:10307000828360913C0470913D0480913E04909164 -:103080003F040C940618ECE3F4E080818E7F80838B -:1030900060913C0470913D0480913E0490913F0406 -:1030A0000C940618ECE3F4E08081816080836091E9 -:1030B0003C0470913D0480913E0490913F040C9437 -:1030C00006180E94183140E060E080E00C94DC0CAF -:1030D00069EE7EEF90E080E00E946A3560E082E079 -:1030E00090E00E944C3560E083E090E00E944C3517 -:1030F0001092950260E084E090E00E944C3560E020 -:1031000082E290E00E944C3560E085E090E00E9411 -:103110004C3560E086E090E00E944C356FEF87E030 -:1031200090E00E944C3540E050E0BA0188E090E029 -:103130000E945E3560E08DE090E00E944C3540E0FA -:1031400050E0BA0188E190E00E945E3560E087E1DE -:1031500090E00E944C3540E050E0BA018CE190E0F4 -:103160000E945E3570E060E080E290E00E946A3587 -:103170000E94311880E00E94F30E0E940B0F40E085 -:1031800050E0BA018FE090E00E945E3540E050E0F0 -:10319000BA0183E190E00C945E355F926F927F926A -:1031A0008F929F92AF92BF92CF92DF92EF92FF9257 -:1031B0000F931F93CF93DF9300D000D00F92CDB722 -:1031C000DEB77C01FC0183819481892B31F0808101 -:1031D000918189238F3F09F081C60F900F900F9046 -:1031E0000F900F90DF91CF911F910F91FF90EF9073 -:1031F000DF90CF90BF90AF909F908F907F906F9017 -:103200005F9008950E944D0F182F682F89819A8131 -:103210000E948C0B69817A81812F0E94400F8C0162 -:10322000F7018281882361F0F801E65EFC45ED300C -:10323000F10530F4E553F94C0C940C350E9452180A -:10324000D0903C04D0FE1CC08D2D86958370F70174 -:103250009281992309F460C1823090F4B701C801CA -:103260000E945708882361F0D694D694D694809112 -:103270003D0483708295880F807E8D290E945C15A5 -:10328000F7018281882309F41EC6C80182519F4537 -:10329000409708F0DCC58FEF93E00E94383502516B -:1032A00093EEA92E92E0B92E811197CF011138C16A -:1032B0001C821B82662463948AE0582E85010F5F6E -:1032C0001F4FC5010E94383589831A82882309F46B -:1032D00084CF9FEF980F933008F031C18A836982C1 -:1032E00032E0A30EB11CC8010E9438358B838823BD -:1032F00009F473CF8E010F5F1F4FF8012081222345 -:10330000E9F2213009F055C191818281913009F0B3 -:1033100018C10E5F1F4F6AE070E0893311F460E559 -:1033200070E00E94790E13C10E94431889CF8091EA -:103330003C0480FF0DC00E94431860913C047091D2 -:103340003D0480913E0490913F040E94061878CF7E -:103350000E945218F2CF0E94311872CF90913C0413 -:10336000892F86958F5F8370880F997F892B809333 -:103370003C04982F9670963001F7897F80933C0427 -:10338000DCCF90913D04892F8B7F92FF84608093E6 -:103390003D04D3CF80913C04982F969596959695B1 -:1033A00080913D0483708295880F807E892B8C37B5 -:1033B00098F48F5F282F220F220F220F90913C0448 -:1033C0009770922B90933C04829586958370909190 -:1033D0003D049C7F892BDBCF81E0ECCF80913C04C6 -:1033E000982F96959695969580913D048370829539 -:1033F000880F807E892B11F08150DCCF8BE7DACFEC -:1034000030913D04932F96959695969520913E0484 -:10341000822F83708295880F807E892B90E00196A1 -:10342000482F440F440F440F3770342B30933D0422 -:1034300035E0969587953A95E1F783702C7F822B3E -:1034400080933E047ACF30913D04932F96959695C4 -:10345000969520913E04822F83708295880F807EFE -:10346000892B8150990BDCCF80913E0482FF12C0E2 -:103470008B7F80933E0460913C0470913D04809169 -:103480003E0490913F040E94061860E081E00E9493 -:103490005015D6CE846080933E0460913C047091B8 -:1034A0003D0480913E0490913F040E94061860E024 -:1034B0008CE00E94501564E182E00E94501565E0A6 -:1034C00081E00E94501561E08CE0E1CF80913E04E4 -:1034D000982F96959695969580913F048295880FA2 -:1034E000807E892B883720F4865F0E940C18A8CE36 -:1034F00088E7FBCF80913E04982F969596959695F8 -:1035000080913F048295880F807E892B843110F052 -:103510008A50EBCF84E1E9CF882309F4B1CE9ECE67 -:10352000A114F4E0BF0609F458CEC5010E94383555 -:10353000811101C001502FEFA21AB20AB7CE580173 -:10354000D9CE923039F40E5F1F4F0E94180C0F5FD6 -:103550001F4FD3CE933029F40E5F1F4F0E94DF0B15 -:10356000F6CF943019F00F5F1F4FF1CF0E5F1F4F52 -:1035700030E020E0B8016F5F7F4FF8014181805358 -:10358000990B8A30910550F02150310900F38FE9F1 -:103590009FE00197F1F700C00000F6CF529EF001C6 -:1035A000539EF00D11249C012E0F3F1F842F8B0181 -:1035B000E1CFE22FF0E0E75FFD4F7490822F869518 -:1035C0008695869590E0FC01E750FE4FE4902770C9 -:1035D000F12C022E02C0F594E7940A94E2F7E1E0A0 -:1035E000EE22FF24FC01E751FE4FC490D12C022EA5 -:1035F00002C0D594C7940A94E2F7F1E0CF22DD240B -:10360000FC01E752FE4F8490912C02C09594879460 -:103610002A95E2F721E082229924E114F10419F0BD -:1036200081EE0E94180CC114D10419F086EE0E949C -:10363000180C39E36AE070E0731202C060E570E0D4 -:10364000872D0E94790ECD2819F086EE0E94DF0B9F -:10365000EF2819F081EE0E94DF0B892809F477CF5B -:103660006AE070E08CE25DCE81E00E94C11703C089 -:1036700081E00E94B5170F900F900F900F900F9060 -:10368000DF91CF911F910F91FF90EF90DF90CF903E -:10369000BF90AF909F908F907F906F905F900C94B1 -:1036A000AA1782E0E2CF013E110509F4B4C0043E3E -:1036B000110519F0003E110591F5882381F18091E3 -:1036C00066040E948C0C813051F583E30E945C15E6 -:1036D00026C00238FFE51F0709F46AC078F4053FE9 -:1036E000110509F413C1063F110509F411C1043F86 -:1036F0001105A9F461E00E949D0C11C004383FE55A -:10370000130709F48BC008F469C005385FE5150795 -:1037100009F4CAC006389FE5190709F4DDC0F701AE -:1037200092819111FAC180914F0482720A3CFCE5AA -:103730001F0709F4D2C108F028C1053C3CE5130776 -:1037400009F4B7C108F00CC1033C5CE5150709F4A6 -:1037500091C108F0A9C1023C1C4509F43BC1F70125 -:1037600000811181992309F4F2C1C8010E944D0F13 -:10377000D82E682FC8010E948C0BB8018D2D0E9495 -:10378000400F0E94D909182FB82EF70122814581D8 -:10379000342F32953F70892F82958F70C82ED12C8F -:1037A0008C3008F00CC2F601E852F94C0C940C3540 -:1037B000882309F4B4CF81EE0E94180C83EE0E9496 -:1037C000180C8FE40E94180C8FE40E94DF0B83EE2C -:1037D0000E94DF0B81EE0E94DF0BA1CF882309F44A -:1037E0009ECF81EE0E94180C83EE0E94180C80E59B -:1037F0000E94180C80E5E9CF80933F0210933E02AF -:1038000000933D02882321F081E08093EE0287CF70 -:103810001092EE0284CF80933C02F0CF882379F19E -:1038200080913C02882349F080913D020E94DF0B89 -:1038300080EE0E94180C8AE20CC080913F0288231F -:10384000D1F380913D020E94DF0B80EE0E94180CA4 -:103850008CE40F900F900F900F900F90DF91CF910D -:103860001F910F91FF90EF90DF90CF90BF90AF909E -:103870009F908F907F906F905F900C94180C8AE2CD -:103880000E94DF0B8CE40E94DF0B80EE0E94DF0BB6 -:1038900080913C02811105C080913F02882309F488 -:1038A0009CCC80913D02D5CF882309F423CF809111 -:1038B0006F01811104C080910001882339F01092BA -:1038C0006F01109200010E94FC0C29CF81E08093CF -:1038D0006F0180930001F7CF882309F40BCF80910B -:1038E0003B02882349F080EE90E090937101809331 -:1038F000700110923B02E7CF86E690E09093710151 -:103900008093700181E080933B02DDCF62E0F3CED3 -:1039100064E0F1CE882331F081E08093F0021092D0 -:103920006701FDCE1092F002FACE882349F0809113 -:1039300066040E948C0C813019F482E30E945C15AD -:10394000F7018281882309F4B0C2809166040E9445 -:103950008C0C813009F0A9C284E30E945C15A5C2D9 -:10396000073C2CE5120709F4AEC008F4A7C0083CD8 -:103970004CE5140709F4ACC0093C1C4509F0EFCE36 -:1039800040E356E16CE376E179C0043DECE51E07C7 -:10399000A8F40E3CFCE51F0708F01FCC0C3C2CE5FE -:1039A000120709F49FC042E756E163E876E10D3C57 -:1039B0001C4508F463C061E081E046C0053D4CE56C -:1039C000140709F40ACC08F492C00D351D4509F41A -:1039D00004CCC5CE8091670480FF31C08E7F809378 -:1039E0006704609167047091680480916904909104 -:1039F0006A040E946B1580914B03816080934B0396 -:103A00009FEFE0E7F2E09150E040F040E1F700C0C6 -:103A100000000F900F900F900F900F90DF91CF91BB -:103A20001F910F91FF90EF90DF90CF90BF90AF90DC -:103A30009F908F907F906F905F900C948E1081601C -:103A40008093670461E086950F900F900F900F9020 -:103A50000F90DF91CF911F910F91FF90EF90DF902A -:103A6000CF90BF90AF909F908F907F906F905F901E -:103A70000C9494164CEC57E165ED77E10F900F90A4 -:103A80000F900F900F90DF91CF911F910F91FF90AA -:103A9000EF90DF90CF90BF90AF909F908F907F90EE -:103AA0006F905F900C94CA0845ED57E16CEC77E19C -:103AB000E5CF40E656E169E676E1E0CF49E656E13A -:103AC00060E676E1DBCF48E456E164E576E1D6CF07 -:103AD00044E556E168E476E1D1CF4CE356E160E39A -:103AE00076E1CCCF43E856E162E776E1C7CF0F90AD -:103AF0000F900F900F900F90DF91CF911F910F912A -:103B0000FF90EF90DF90CF90BF90AF909F908F90FD -:103B10007F906F905F900C94DF170E3D1C4509F06D -:103B20001ECE0F900F900F900F900F90DF91CF91BE -:103B30001F910F91FF90EF90DF90CF90BF90AF90CB -:103B40009F908F907F906F905F900C946818C80141 -:103B50000E94640BD82E11CE092F0F70907F11F0A8 -:103B60000295007F812F2223C9F0002369F090E2A3 -:103B7000910F983010F011110BC080914F04082B59 -:103B800000934F040E94430B812F0E94180C17C012 -:103B900080919402082B00939402F4CF0E94DF0BD3 -:103BA000002369F00095105E183010F0B11027C0A6 -:103BB00080914F04082300934F040E94430B98E028 -:103BC000C91AD108E4E0CE16D10408F006CB0E9451 -:103BD000690E0F900F900F900F900F90DF91CF9183 -:103BE0001F910F91FF90EF90DF90CF90BF90AF901B -:103BF0009F908F907F906F905F900C94E3168091D0 -:103C00009402082300939402D8CF892F8F70907F5D -:103C1000903211F08295807FF1E0BF120CC0222318 -:103C200029F0333060F60E94D50BC9CF323038F618 -:103C30000E94CA0BC4CF222341F03323A1F340FFDB -:103C4000A3CF4F70F7014583EECF332389F31933A8 -:103C500009F0F5C0FFEF27EE33E0F150204030408F -:103C6000E1F700C00000812F0E94DF0BA8CF892F51 -:103C700086958695837061F0813009F0A0CF812F01 -:103C80009370211102C090E080E00E942B0897CF32 -:103C9000812F9370211102C090E080E00E944108C2 -:103CA0008ECF892F8370A1F5211189CF812F829525 -:103CB00086958770880F880F412F4F70082E01C09E -:103CC000440F0A94EAF7212F207114FF07C02FE058 -:103CD00030E001C0220F8A95EAF7209596959695D7 -:103CE0009370923081F0822F842B933030F4809146 -:103CF0009502913029F0242B82230E94C60B5FCFBE -:103D0000842B822BFACF242B809195028227F5CF2A -:103D10008695222311F0892F8170882309F44FCFD3 -:103D2000812F829586958770880F880F412F4F705D -:103D3000082E01C0440F0A94EAF7212F207114FFC6 -:103D400007C02FE030E001C0220F8A95EAF72095E6 -:103D5000969596959370923081F0822F842B9330B4 -:103D600030F480916604913029F0242B82230E9444 -:103D7000A41725CF842B822BFACF242B80916604A5 -:103D80008227F5CF092F0F70222329F0802F0E9460 -:103D9000C117812F48CF812F0E94CA0B802F0E940C -:103DA000B5170DCF812FE1EF1E1789F1E11750F004 -:103DB000F0EF1F17B9F02223B1F13111E5CE892FB1 -:103DC0008F7129C042EF141749F153EF1513F3CF48 -:103DD00080E0222361F29F7181E001C0880F9A95F3 -:103DE000EAF7C5CF222379F0323008F0E8CE292F48 -:103DF0002F7181E090E001C0880F2A95EAF7909139 -:103E000066048927B4CF333008F0D9CEF0CF892F9C -:103E10008F71222321F20E94C117D1CE892F8F7179 -:103E20002223C9F3BCCF332379F0893341F48FEFD8 -:103E300097EEE3E081509040E040E1F712CF8FE34E -:103E40009CE90197F1F70DCF892F8F71A8CF003131 -:103E5000FFE51F0709F408CC01312FE5120709F42B -:103E600020CC0E941F086093F5027093F6028093A5 -:103E7000F7029093F802F7018281053E110509F4DB -:103E8000BBCC08F026CC0C32110509F443CD08F068 -:103E90000ACC0A30110509F448CD0531110509F4A1 -:103EA0004FCD0930110509F03ACCF7018281882302 -:103EB00009F435CC809166040E948C0C813009F0A5 -:103EC0002ECC81E303CC00313FE5130709F4D0CBBE -:103ED00001314FE5140779F682E0CBCB85E0DE01B6 -:103EE000119601900D928A95E1F7F701228189815F -:103EF0009A81211187C90E94640B182F8BC91F93C7 -:103F0000CF93DF9380916002807FA9F480915D025E -:103F1000882389F080919202D091610260915B02C6 -:103F200070915C02A0915E02B0915F02C62FC72320 -:103F300016E0D81304C0DF91CF911F91089590E04F -:103F4000109711F0CF3F19F401968770F2CF189FA8 -:103F50009001199F300D1124F901EE59FD4F418157 -:103F60004713F2CF40814613EFCF42814111ECCF8E -:103F7000438154814A1B5B0B403A510528F78091DD -:103F800060028F70806180936002F901E959FD4FF2 -:103F900080818F70806180838BE592E00E94CD18D4 -:103FA000DF91CF911F910C945A0BAF92BF92CF9299 -:103FB000DF92EF92FF920F931F93CF93DF93CDB7D2 -:103FC000DEB761970FB6F894DEBF0FBECDBF8C0190 -:103FD00085E0F801DE011D9601900D928A95E1F7CA -:103FE000F801E2808BE5A82E82E0B82E60915E0297 -:103FF00070915F026115710509F432C190915B0205 -:1040000040915C02892F84238F3F09F429C12081CC -:104010003181C380D480F0905D02F601E61BF70B7E -:10402000FF2009F4E8C080916002582F507FE03AE9 -:10403000F10508F0ABC0511177C0FE2C431321C02D -:1040400092131FC0E1101DC08F70806180936002C9 -:10405000C5010E94CD1880916002F80185838F2DE3 -:1040600061960FB6F894DEBF0FBECDBFDF91CF9142 -:104070001F910F91FF90EF90DF90CF90BF90AF9086 -:104080000895CD2829F0822F83238F3F09F003C1A3 -:1040900080E0F82FF170DF2E80FF3CC0809192020B -:1040A0004091610256E0841315C02D873E878D85AF -:1040B0009E850E947C0F292F22952F702230F0F0D0 -:1040C000243018F59F70F1F0F8019581907FD1F4BC -:1040D000D12C1EC090E0589FF001599FF00D112483 -:1040E000EE59FD4F6181361306C06081261303C06F -:1040F0006281E6120FC001968770D5CF9F7011F0D4 -:10410000882331F3805E883018F3C8010E94CD18EF -:10411000FD2CA5CFEE2009F4A2CF80916002816032 -:1041200080936002F12C9BCF431306C0921304C00E -:10413000F801EE2009F479C0C8010E94880F882395 -:1041400009F1EE20F9F080916002803270F0209148 -:104150005B0230915C0238872F831986DB86CA8622 -:104160008C87CE0107960E94CD1886E0F801ABE55A -:10417000B2E001900D928A95E1F70E947F1FFF2423 -:10418000F3946DCFC8010E94CD18F9CF51110AC028 -:104190008BE592E00E94CD1886E0F50111928A9598 -:1041A000E9F7C0CF43130FC092130DC0E1100BC04D -:1041B000F8018583C8010E94CD1886E0F5011192AF -:1041C0008A95E9F74CCFC8010E94880F8823D1F265 -:1041D000EE20C1F280916002803238F220915B02C1 -:1041E00030915C023A8329831B82DD82CC828E83EC -:1041F000CE010196B8CFE03AF105F8F6FE2CEE209C -:1042000009F243131FC092131DC08091600280FD0C -:1042100010C0982F907F69F0F8018583903F31F0AE -:10422000982F907F905F8F70892B8583C8010E94A3 -:10423000CD1886E0F801ABE5B2E001900D928A95C9 -:10424000E1F70DCFC8010E94880F81118ECF8091B8 -:104250006002816080936002C8010E94CD18FFCE89 -:10426000EE2009F48FCFC8010E94880FF82E882312 -:1042700009F488CF86E0F801ABE5B2E001900D9239 -:104280008A95E1F780915B0290915C020E947C0F1D -:104290000E947F1FE4CE81E08E25FBCE1F93CF933B -:1042A000DF93CDB7DEB767970FB6F894DEBF0FBECA -:1042B000CDBF4B8B5C8B6D8B7E8B8F8B6111109286 -:1042C00094021A8A198A85E0FE017396DE011D9612 -:1042D00001900D928A95E1F786E0FE013D96DE01A0 -:1042E000179601900D928A95E1F7CE0107960E94EC -:1042F000D51F882389F016E0809192029091610287 -:1043000089134BC067960FB6F894DEBF0FBECDBFC2 -:10431000DF91CF911F91089586E0FE013796DE016F -:10432000119601900D928A95E1F78A859B85892BDC -:1043300011F38F81988589238F3FE9F220916102E3 -:1043400030E0C90101968770992740919202481781 -:10435000190681F410924F040E94A111109261027B -:104360001092920286E0EBE5F2E0DF011D928A9561 -:10437000E9F7C1CF96E0929FD001939FB00D112431 -:10438000AE59BD4FFE01319601900D929A95E1F71D -:10439000809361020E945A0BAECF819FC00111240D -:1043A0008E599D4F0E94D51F882309F4ABCF809171 -:1043B000920290E0019687709927809392029CCF99 -:1043C0000F931F93CF93DF9300D000D0CDB7DEB70C -:1043D0006091C6027091C7028091C8029091C90293 -:1043E0000E940308643671058105910588F10E94D9 -:1043F000460E882379F10E941F086E5F7F4F8F4F12 -:104400009F4F69837A838B839C8380912C01909149 -:104410002D0180559D4F40912B0150E045305105B5 -:1044200010F044E050E0BE016F5F7F4F0E942F35D7 -:1044300084E090E00E942434892BD9F40E941F0864 -:104440006093C6027093C7028093C8029093C9021A -:1044500081E010C00E941F080091D3021091D40285 -:104460002091D5023091D602600F711F821F931FD9 -:10447000C4CF80E00F900F900F900F90DF91CF91FD -:104480001F910F910895BF92CF92DF92EF92FF920A -:104490000F931F93CF93DF93B82EEB01F42E690196 -:1044A000688179818A819B810E9403086436710545 -:1044B0008105910510F4FF2019F1EB2C0B2C000C59 -:1044C000FF088B2D9AE08902F0011124EF5FFE4F67 -:1044D0008381948180559D4F428150E004171507D8 -:1044E00008F4A801B6010E942F35C7010E942434A8 -:1044F000892B89F40E941F08688379838A839B83B0 -:1045000081E0DF91CF911F910F91FF90EF90DF90AD -:10451000CF90BF90089580E0F4CF0F931F93CF9377 -:10452000DF930F92CDB7DEB780913A048983209153 -:10453000C50290E041E02817190609F440E001E0C7 -:1045400010E09E012F5F3F4F6EEC72E086E00E940C -:1045500043220F90DF91CF911F910F9108950F93F8 -:104560001F93CF93DF93CDB7DEB729970FB6F8949B -:10457000DEBF0FBECDBF85E0E7E6F4E0DE011196B9 -:1045800001900D928A95E1F78091490390914A0339 -:10459000A0914B03B0914C038E839F83A887B9876A -:1045A00041E08885811101C040E009E010E09E01F2 -:1045B0002F5F3F4F6AEC72E085E00E944322811139 -:1045C00010924B0329960FB6F894DEBF0FBECDBFF5 -:1045D000DF91CF911F910F9108956F927F928F92EB -:1045E0009F92AF92BF92CF92DF92EF92FF920F9382 -:1045F0001F93CF93DF930F92CDB7DEB7862E5A016C -:104600006901682E880F7708C3010E942434892B22 -:1046100009F07BC08AE0869DF001879DF00D112492 -:10462000EF5FFE4F458150E04115510511F041E02B -:1046300050E08AE0869DF001879DF00D1124EF5F28 -:10464000FE4F6681778160557D4FCE0101960E94B5 -:104650002F35F50160817181828193810E94030869 -:10466000643671058105910540F4B701C8010E94C7 -:10467000B4089981891709F44FC0082C000C9908D7 -:10468000C4010E942434892B91F0B12C8B2D0F9002 -:10469000DF91CF911F910F91FF90EF90DF90CF901E -:1046A000BF90AF909F908F907F906F9008958AE019 -:1046B000889DF001899DF00D1124EF5FFE4F45812B -:1046C00050E0E416F50608F4A7018AE0889DF001A1 -:1046D000899DF00D1124EF5FFE4F66817781605553 -:1046E0007D4FC6010E942F35B701C8010E94B40852 -:1046F00099818913CACF0E941F08F50160837183D5 -:1047000082839383BB24B394C1CFB12CA701B8019A -:10471000C6010E942F35BACFBB24B394F7CFCF92F6 -:10472000DF92EF92FF920F931F93CF93DF9300D00E -:1047300000D00F92CDB7DEB76B0185E0E82EF12CEB -:1047400001EB12E09E012F5F3F4F48EA52E061E02B -:1047500080E00E94ED22882349F095E0FE01319629 -:10476000A3EAB2E001900D929A95E1F795E0E3EAB1 -:10477000F2E0D60101900D929A95E1F70F900F901B -:104780000F900F900F90DF91CF911F910F91FF909D -:10479000EF90DF90CF90089590E080E00E94463542 -:1047A000893E9E4F11F40C94AF0F80E008951F9244 -:1047B0000F920FB60F9211242F933F934F935F9355 -:1047C0006F937F938F939F93AF93BF93CF93DF9319 -:1047D000EF93FF93D091E900DF708091EC00C82F38 -:1047E000C17080FDC0E81092E9008091F000877FE1 -:1047F0008093F00078940E94AA111092E9008091B1 -:10480000F00088608093F000CD2BCF70C093E9005A -:10481000FF91EF91DF91CF91BF91AF919F918F91D8 -:104820007F916F915F914F913F912F910F900FBEAC -:104830000F901F9018951F920F920FB60F92112490 -:104840002F933F934F935F936F937F938F939F9398 -:10485000AF93BF93EF93FF938091E10082FF09C074 -:104860008091E20082FF05C08091E1008B7F809300 -:10487000E1008091DA0080FF24C08091D80080FFA1 -:1048800020C08091DA008E7F8093DA008091D90079 -:1048900080FF9DC080E189BD82E189BD09B400FE31 -:1048A000FDCF81E080935C0480914E04811109C0AA -:1048B0000E9475060E9440078091E2008460809308 -:1048C000E2008091E10080FF17C08091E20080FF4C -:1048D00013C08091E2008E7F8093E2008091E2001D -:1048E00080618093E2008091D80080628093D8003C -:1048F00019BC85E080935C048091E10084FF2BC0AB -:104900008091E20084FF27C080E189BD82E189BDFA -:1049100089B5982F917080FFFBCF8091D8008F7D53 -:104920008093D8008091E1008F7E8093E100809198 -:10493000E2008F7E8093E2008091E20081608093AC -:10494000E20080915D04882309F447C084E08093ED -:104950005C0480915C048091E10083FF27C080911A -:10496000E20083FF23C08091E100877F8093E10014 -:1049700082E080935C0410925D048091E1008E7F60 -:104980008093E1008091E2008E7F8093E20080912D -:10499000E20080618093E20042E060E080E00E94FB -:1049A0000E078091F00088608093F000FF91EF91F6 -:1049B000BF91AF919F918F917F916F915F914F9137 -:1049C0003F912F910F900FBE0F901F90189519BC1B -:1049D00010925C0410924E0474CF8091E30087FD26 -:1049E00093E090935C04B5CF78941F921FB61F920A -:1049F00011248F939F93AF93BF938091470490911D -:104A00004804A0914904B0914A040196A11DB11D2A -:104A10008093470490934804A0934904B0934A04B8 -:104A2000BF91AF919F918F911F901FBE1F901895BE -:104A30009C014FB7F8948091470490914804A0914D -:104A40004904B0914A044FBF821B930B08952FB7BE -:104A5000F8948091470490914804A0914904B09142 -:104A60004A042FBF0895AF92BF92DF92EF92FF9258 -:104A70000F931F93CF93DF93CDB7DEB761970FB638 -:104A8000F894DEBF0FBECDBF4C87888B998BE52E87 -:104A9000D62EF72E5E0127E0A20EB11C85E0F501AF -:104AA00011928A95E9F7809148038A3008F095C001 -:104AB00080914603909147030E941825089708F4B7 -:104AC0008CC004E610E025E030E0A50164E084E15C -:104AD0000E946332892B09F0DEC0109248038B8557 -:104AE00087FDD1C0E894E0F880914403909145039C -:104AF000009709F0C2C08F819885891708F091C08E -:104B0000981B892F41E02091700130917101889F9D -:104B1000C001112455E0589FF001599FF00D112458 -:104B2000E29FB001E39F700DF29F700D1124660F9C -:104B3000672F661F770B7195442319F07195619566 -:104B400071098091420390914303680F791F898511 -:104B50009A85891708F068C0981B892F41E0889FC3 -:104B6000C001112455E0589FF001599FF00D112408 -:104B7000E29FC001E39F900DF29F900D1124880FDA -:104B8000892F881F990B9195442319F09195819550 -:104B900091092091400330914103820F931F6038A7 -:104BA00071050CF444C06F5771097093430360930F -:104BB00042033FE7D32E803891050CF44BC08F574A -:104BC000910990934103809340039FE7F92E0E943F -:104BD00027259093470380934603ED86DE86FF8664 -:104BE00086E0FE013C96DE01119601900D928A95B9 -:104BF000E1F729813A814B815C816D817E8180E082 -:104C000090E061960FB6F894DEBF0FBECDBFDF9186 -:104C1000CF911F910F91FF90EF90DF90BF90AF90D9 -:104C20000895891B40E06FCF891B40E098CF613821 -:104C3000FFEF7F074CF461587F4F709343036093FD -:104C4000420321E8D22EB7CFD62E10924303109202 -:104C50004203B1CF81382FEF92074CF481589F4F18 -:104C6000909341038093400381E8F82EB0CFF82E53 -:104C70001092410310924003AACF019790934503ED -:104C800080934403A4CF6894E0F884E00E945C150C -:104C900084E190E0F3CF809148038F5F80934803D5 -:104CA00096CF9F92AF92BF92CF92DF92EF92FF92F8 -:104CB0000F931F93CF93DF93CDB7DEB764970FB6F3 -:104CC000F894DEBF0FBECDBF8E010F5F1F4F8AE08D -:104CD000D8011D928A95E9F79EE4C92E91E0D92E5C -:104CE000F12CE12CAA24A394B12CF60181916F013F -:104CF0008F3F09F444C0F894E82FE295EF70F0E09C -:104D000021A18F70A50102C0440F551F8A95E2F7BB -:104D1000CA01922F982B91A392A18095892382A3F7 -:104D20000E947D0900C0E7E4F1E0912C31E021917F -:104D30002F3F09F478C0A22FA295AF70B0E09096F3 -:104D40008C9190E02F7002C0959587952A95E2F797 -:104D500080FD69C0832F982A330F51E0EE34F507A8 -:104D600031F7F601319780818F3F11F00E947F0962 -:104D700080EA8A95F1F7F801EE0DFF1D9082AFEF02 -:104D8000EA1AFA0AB5E0EB16F10409F0AECF4AE0F0 -:104D900050E0B80189ED92E00E9422357C01892B18 -:104DA00041F08AE0F801A9EDB2E001900D928A95F8 -:104DB000E1F71091E402E114F104B9F181E080938C -:104DC00098020E94272590939702809396028091E3 -:104DD0009602909197020E941825069770F0A9ED0F -:104DE000B2E0E12FF0E0E65DFC4F8D91819322E08F -:104DF000AE3DB207D1F71092980281E090E0EF2823 -:104E0000C1F064960FB6F894DEBF0FBECDBFDF9140 -:104E1000CF911F910F91FF90EF90DF90CF90BF90B7 -:104E2000AF909F90089580E096CF80919802811175 -:104E3000CECF0E94460ED82EE091E402882309F4DA -:104E4000C9C07E0140E1E40EF11C85E0D7011D924E -:104E50008A95E9F70E2F10E0065D1C4F8091D20273 -:104E60008A3008F080C04FE853E2B701C8010E94C1 -:104E7000020E882309F49AC04EEB58E2B701C8012C -:104E80000E94020E882309F491C040EE51E2B7015E -:104E9000C8010E94020E882309F488C04FEA52E23A -:104EA000B701C8010E94020E882309F47FC04DE8B3 -:104EB00052E2B701C8010E94020E882309F476C0AD -:104EC0001092D2028091E30290E045E050E0B701F9 -:104ED000865D9C4F0E94223521E02093A102892B00 -:104EE00009F057C0D12C8BE9E82E82E0F82E10E0B3 -:104EF00000E0D7018D917D018823D1F08695F801DE -:104F000009F465C0E950FE4F808191819C878B87B1 -:104F10001D860E9427258160782F9F878E87F70145 -:104F2000319710824B855C856D858F850E944E215F -:104F30000E5F1F4F04301105E1F66091F50270918C -:104F4000F6028091F7029091F8020E940308613600 -:104F50007A4E8105910528F040E060E080E00E94F3 -:104F6000DC0C8D2D4ECF8091990290919A020E9477 -:104F70001825843F914008F076CF8091A1028823C4 -:104F800009F4B0CF85E0F70111928A95E9F7109204 -:104F9000A102A091E302B0E0A65DBC4F85E0FE0156 -:104FA000709601900D928A95E1F79DCF8091D20283 -:104FB0008F3F31F08F5F8093D2028A3008F482CF26 -:104FC0000E94272590939A0280939902D6CFED50A4 -:104FD000FE4F9ACFF0E0E65DFC4FF89485E0A1EB40 -:104FE000B2E001900D928A95E1F765E070E081EB07 -:104FF00092E00E94B4088093B0020E947D09F89468 -:10500000E091EC02F0E0E751FD4F80818B878093C7 -:10501000B70261E070E0CE010B960E94B408809365 -:10502000B6020E947D09F894C090B802D090B902EF -:10503000E090BA02F090BB0280919D0290919E0296 -:10504000A0919F02B091A002C816D906EA06FB06FD -:10505000D1F0C0929D02D0929E02E0929F02F09207 -:10506000A0020E94460E81110EC00E941F08C61A9F -:10507000D70AE80AF90AC092D302D092D402E09289 -:10508000D502F092D6020E947D09F8948091C30265 -:10509000882321F184FF04C09091C40290934C03B3 -:1050A00080FF0DC08091BC0280FF25C090916704F5 -:1050B00091609093670460E086950E9494168091B9 -:1050C000C30281FF09C020E04091BF026091BE028F -:1050D0008091BD020E947D151092C3020E947D093D -:1050E000F8948091C502882349F00E945A0D0E94CD -:1050F0007D0980E086CE0E948C11E1CF0E943F0D99 -:10510000F6CFEF92FF920F931F93CF93DF9300D0D0 -:1051100000D00F92CDB7DEB7162FE82EF12CC701C5 -:10512000880F991F662339F189509E4FFC018081B9 -:1051300091819A83898301E00B830E9427258160F6 -:10514000782F9D838C83F701E556FD4F0127110FC2 -:10515000102B108349815A816B818D810F900F90A4 -:105160000F900F900F90DF91CF911F910F91FF90B3 -:10517000EF900C944E218D509E4FD8CFCF92DF925E -:10518000EF92FF920F931F93CF93DF930F92CDB7C0 -:10519000DEB7EE24E394F12C07EB12E09E012F5FC3 -:1051A0003F4F4CEA52E063E082E00E94ED22082F7C -:1051B000882321F1C090E6028C2D90E09C012751BC -:1051C0003D4F79011981F9018081181BD12E80E0B2 -:1051D0000AC0DA94F70180818F5F808360E08C2DB4 -:1051E0000E948128802F1D14A4F3912F17FD90E0B9 -:1051F000191B11110EC081110E94410B802F0F90BD -:10520000DF91CF911F910F91FF90EF90DF90CF90A2 -:1052100008951F5FF70180818150808361E08C2DAC -:105220000E948128802FE5CF1F921FB61F92112464 -:105230008F939F93AF93BF9380914604811113C0C6 -:105240008091470490914804A0914904B0914A0488 -:105250004196A11DB11D8093470490934804A093EB -:105260004904B0934A04BF91AF919F918F911F90D1 -:105270001FBE1F901895CDB7DEB7E0970FB6F89414 -:10528000DEBF0FBECDBF84B7877F84BF0FB6F89453 -:10529000A895809160008861809360001092600002 -:1052A0000FBE80E890E00FB6F89480936100909371 -:1052B00061000FBE85B7806885BF85B7806885BFF0 -:1052C0008BE799E090933102809330020E9475063B -:1052D0000E9440078091E20084608093E20078940D -:1052E00080915C048823A1F01091E9001F709091D7 -:1052F000EC00892F817090FD80E8182B1092E90056 -:105300008091E80083FD0E94AA111F701093E900AC -:1053100082E084BD93E095BD9AEF97BD80936E00C7 -:105320001092D3021092D4021092D5021092D6029B -:105330000E94AF0F811102C00E940B0F0E94460E07 -:105340008093580180915801882309F4C9C01092B4 -:10535000720185E2809373010E94460E81110E94C2 -:1053600017338091580181112FC0FE01359686E0D8 -:10537000DF011D928A95E9F786E6898387E98A83AA -:1053800086EC8B8384E38C8385E38D833497AEE452 -:10539000B1E0CE010B9621912D938E179F07D9F77F -:1053A00087E0E8E7F1E0DE01919601900D928A95A1 -:1053B000E1F7FE01B196A7E4B1E0CE018896219114 -:1053C0002D938E179F07D9F78091580195E0811191 -:1053D00090E09093E40285E0891B8093E3020EE461 -:1053E00011E083E5E82E81E0F82EF80181918F012C -:1053F0008F3F11F00E947F09E016F106B1F707E434 -:1054000011E0BEE4EB2EB1E0FB2ED8018D918D01B1 -:105410008F3F11F00E947F09E016F106B1F78AE094 -:10542000EAE2F3E0DF01282F1D922A95E9F7E9ED82 -:10543000F2E0DF011D928A95E9F70E94CC238111E9 -:1054400002C00E94681882E090E00E943835809384 -:105450001F0384E090E00E943835182F82E290E02C -:105460000E943835982F812F9093D8028093D702CD -:105470000E945126EFE7FBEB3197F1F700C00000E7 -:105480000E94512680912A0380FF2EC06FEF7FEF8C -:1054900090E080E00E946A3581E08093E00080E245 -:1054A0008093D8001092C9008FE19EE40197F1F734 -:1054B00000C0000087E090EBDC01809370069093C1 -:1054C0007106A0937206B093730688E19CE00FB654 -:1054D000F894A895809360000FBE90936000FFCF72 -:1054E00085E28093720136CF83E090E00E943835E8 -:1054F0000E94C60B809166040E94FB160E94CC237A -:10550000811102C00E94681888E190E00E94403535 -:1055100060933C0470933D0480933E0490933F0459 -:10552000672B682B692B11F40E9431180E941831E7 -:1055300067E081E00E94501565E586E10E94501504 -:1055400063E687E10E94501560EA8AE10E945015E7 -:1055500069E98BE10E94501565EF8CE10E945015BE -:1055600060EA8DE10E94501560E38EE10E945015C3 -:1055700066E083E00E94501561E08CE00E945015C7 -:1055800060E081E00E94501560E08CE00E945015C0 -:105590006FE084E00E94501561E08CE00E9450159D -:1055A0000E94460E811102C00E941A3383E080934C -:1055B0001A0380E280932F040E9418316DE070E09E -:1055C0008CE992E00E940F0D892BE9F580911A0376 -:1055D00063E070E081FD0BC289E992E00E940F0D4B -:1055E000892B89F56DE070E089E892E00E940F0D4B -:1055F000892B49F50E941F086058774C8E4F9F4FAA -:105600006093360470933704809338049093390480 -:10561000EEE6F4E080E092E0DF019C011D92215073 -:105620003040E1F7F0936F06E0936E068FEF9FEF47 -:1056300090936D0480936C0481E080933B0480938D -:105640003A0410921B038091E502811136C00E943A -:10565000CC23811104C00E9468180E94EE1788E0D4 -:1056600090E00E94403560936704709368048093D3 -:10567000690490936A0480914B03836080934B0389 -:105680006E7F71F40E94EE1788E090E00E94403532 -:1056900060936704709368048093690490936A042C -:1056A0000E94CF088091670480FF04C060E0869567 -:1056B0000E94941681E08093E50280915801811147 -:1056C00006C084EF8093660185EF80936501209189 -:1056D0006601A22FA295AF70B0E091963C91919790 -:1056E0002F7081E090E0BC01022E01C0660F0A9489 -:1056F000EAF7462F4095432391964C9391979296C3 -:105700003C919297362B92963C93929740916501EB -:10571000E42FE295EF70F0E031A14F70042E01C04C -:10572000880F0A94EAF7982F9095932391A392A15A -:10573000892B82A390968C9190E002C095958795D5 -:105740002A95E2F7817020A130E002C035952795B7 -:105750004A95E2F792E020FF90E0892B8093ED02DA -:105760009091580181E098279093EC02891B8093D7 -:10577000E6020E94611860E08AE00E94941689EABD -:1057800092E090934E0380934D0381E00E94A41712 -:1057900080EE90E090937101809370010E94FC0C68 -:1057A00089E591E09093430480934204A0E46A2E3B -:1057B00080915C04FF24F39400E112E1853009F448 -:1057C00065C10E945126E82E81110E941F08FAE24D -:1057D0002F2EF3E03F2EE0E2F3E0D10110E000E0F5 -:1057E000B02EDD9081918D1509F474C18D25C12CE9 -:1057F000FF24F394982F9F2109F467C10E94460E5D -:10580000882399F0C9A2BAA2DF2081E009F480E0E0 -:105810008BA30E9427258160782F9DA38CA349A18B -:105820005AA16BA18DA10E944E21F801E05EFC4FB0 -:105830008081F826F0828091ED02E82FEE0FEE0FC6 -:1058400090916601A92FA295AF70B0E090962C912F -:1058500030E09F7002C0359527959A95E2F7217048 -:10586000332790916501A92FA295AF70B0E0909673 -:105870004C9150E09F7002C0559547959A95E2F77C -:10588000CA018170992740FF02C082E090E0822B1C -:105890008E2B8093ED021091EC028F70E82FF0E0D8 -:1058A000E350FE4F80819091EB02890F8093EB02D1 -:1058B000F12C84306CF0E12FF0E0E751FD4F808156 -:1058C0008F5F808360E0812F0E948128FF24F39402 -:1058D0008091EB028D3F6CF4E12FF0E0E751FD4F3A -:1058E00080818150808361E0812F0E948128FF2484 -:1058F000F3948091EB02082E000C990B64E070E0A9 -:105900000E94F8348093EB02F1100E94410B8091C9 -:105910003B04882351F180911C0390911D030E9448 -:105920001825C29708F0EDC020916C0430916D04E9 -:105930002115310509F0EDC180913A048823A9F0C1 -:105940000E941F08009136041091370420913804FA -:1059500030913904601B710B820B930B6F3F7F4FAB -:105960008F4F9F4710F40E943F0DE11001C0F110CE -:105970000E945A0D0E94C80F0E94690E90911E034A -:10598000891731F00E94690E80931E030E94E3166E -:1059900080915C04843009F00BCF83E08093E900B0 -:1059A0008091E80082FF04CF8091E80090E085FFBD -:1059B0000CC00E94940630E2E32EF12C8E010F5FA2 -:1059C0001F4F882309F484C291E08091E8008B770F -:1059D0008093E800992309F4EBCEE981E150E331AB -:1059E00008F0DAC2F0E0EC51F94C0C940C3586E981 -:1059F00092E0F4CD80915C04843009F437C080E0FB -:105A00000E94E3168091E802811109C0F092E80239 -:105A10008091670481708093E7020E948C110E943C -:105A20003F0D0E94C80F1092460488E190E00FB627 -:105A3000F894A895809360000FBE6092600083B7D1 -:105A4000817F846083BF83B7816083BF78948895AA -:105A500083B78E7F83BF0FB6F894A89580916000BE -:105A6000886180936000109260000FBE80915B049B -:105A7000882361F00E945126EAE2F3E081918111CE -:105A8000B6C3A4E3B3E0AE17BF07C1F780915C04CF -:105A9000853009F4AFCF10924F040E94A1110E94EB -:105AA000690E0E94E3161092E8028091E7028823B3 -:105AB00049F08091670481608093670460E0869577 -:105AC0000E9494160E94FC0C7CCEC394FF0C27E02D -:105AD000C21290CE0F5F1F4F0A30110509F080CE21 -:105AE0008FEF88A789A71AA60E9427258160782FA3 -:105AF0009CA78BA748A559A56AA58CA50E944E21F5 -:105B00009ACE0E94272590931D0380931C0360E08A -:105B100080E00E949D080E94690E8093F9020E9415 -:105B2000460E8823C9F06091F5027091F6028091CB -:105B3000F7029091F8020E940308613375478105CE -:105B4000910540F00E943F0D80913B04882309F4A9 -:105B5000F3CEEACE0E945A0D0E94460E882309F425 -:105B6000BFC061E080E00E949D0860E08FE791E0A7 -:105B70000E94341562E080E00E949D0880916604D6 -:105B80000E948C0C823009F48CC008F081C08823FC -:105B900009F487C0813009F48AC065E080E00E9482 -:105BA0009D0860E08DE991E00E94341566E080E098 -:105BB0000E949D086091F9026695617082EA91E009 -:105BC0000E94341567E080E00E949D086091F90210 -:105BD0006095617087EA91E00E94341568E080E08A -:105BE0000E949D086091F90262FB662760F98BEACA -:105BF00091E00E9434156091F1027091F20280915F -:105C0000F3029091F4020E9403086D327140810505 -:105C1000910508F499CF0E941F086093F1027093D8 -:105C2000F2028093F3029093F4028091F0028111CA -:105C300004C080916701811142C06DE080E00E9444 -:105C40009D0860E080EB91E00E9434156AE080E0FE -:105C50000E949D0881E0809367018091EF0290E0AF -:105C60000196817099278093EF0221E030E0281B94 -:105C7000390B40E6429FC001439F900D11242091B3 -:105C8000EE02222351F185589C4F0E9432065CCFD0 -:105C9000833089F0843009F080CF60E081E991E0C1 -:105CA00003C060E085E891E00E94341576CF60E0A3 -:105CB0008BE891E0F9CF60E087E991E0F5CF6AE009 -:105CC00080E00E949D0860E080EB91E00E94341526 -:105CD0006BE080E00E949D08C0CF85549D4FD5CFDA -:105CE00064E080E00E949D0860E086EB91E00E9405 -:105CF000341565E080E00E949D0860E08CEB91E047 -:105D00000E94341569E080E00E949D088BE394E0D6 -:105D1000BCCF80911B0361E070E081110DCE082F94 -:105D200010E02B01082E02C0440C551C0A94E2F727 -:105D3000A90144215521452B09F448C090911A032B -:105D400090FD46C08295880F807680936A01980105 -:105D5000369527953695279520936D01815E809322 -:105D60006B0110926E0124E630E047E050E068E6F7 -:105D700071E088E70E940F32892B09F0DDCDA80180 -:105D800075E0440F551F7A95E1F780911A0380FD65 -:105D90002DC042595B4F04E610E020E230E060E4A1 -:105DA00088E70E943632892B09F0C6CD0E945A0D31 -:105DB000C2018095909540906C0450906D044822EB -:105DC000592250926D0440926C04B6CD8F5FA7CFDC -:105DD000880F880F880F80936A0110926D01895F88 -:105DE00080936B0183E080936E01BDCFEAEFF2E018 -:105DF00080E2DF011D928A95E9F7E1E1F2E0F8AB7C -:105E0000EFA70DE012E067E0A62E99249394AFA5CA -:105E1000B8A96D91B8ABAFA7F80181918F01840F3C -:105E2000952F911D9C0122593B4F3EA72DA7E62F90 -:105E3000F0E0E650FD4F30E020E07A2C721AB92CE9 -:105E4000022E01C0BB0C0A94EAF7CDA4DEA490E0B8 -:105E5000D6018D916D018B21672D691B6770862E90 -:105E6000062E000C770BB82F01C0BB0F8A94EAF7FF -:105E70008B2E7195619571096770772701C08695A2 -:105E80006A95EAF7882A8081882A80829F5F983005 -:105E9000F9F62F5F3F4F31962830310571F6E5E175 -:105EA000F2E02FA538A9E217F30709F0B0CF04E616 -:105EB00010E020E230E04AEF52E071CF8091F10033 -:105EC000D8018D938D01B1E0EB1AF10809F47CCD76 -:105ED0008091E80085FDF2CF8091E8008B77809378 -:105EE000E8000E949406882399F36ECD1A8289E017 -:105EF0008B8311C08A81823009F491C1833091F182 -:105F0000813009F049C00E941F080E9412356B833E -:105F10007C838D839E8380915C04843009F048CC1F -:105F20001091E9001F709091EC00892F817090FD15 -:105F300080E8182B82E08093E9008091E80080FFE0 -:105F40000DC050E040E060E270E0CE0101960E949A -:105F5000C5068091E8008E778093E8001F7010934B -:105F6000E90026CCFE013396D1018D911D0181936C -:105F7000B4E32B16B3E03B06B9F7CDCF8A8182306C -:105F800059F46B817C818D819E810E94123586E25D -:105F900090E00E944C35BFCF8FEF8983BCCF4C81FE -:105FA0006B818A810E941A0F9827892798279E83E0 -:105FB0008D83B1CFED80FE80FE24EF24FE248A8104 -:105FC0000B81EEE00E9F80011124FCE88F9F000DF5 -:105FD000111D11248C8190E0880F991F080F191F43 -:105FE0006F2DC80187960E944C356E2DC80188968A -:105FF000D0CF0E949E0E8FCF8A818138C1F060F48D -:10600000803809F088CF20E04B816091690480914D -:1060100068040E947D157FCF8238E9F0833809F04B -:106020007ACF20E040916A046C818B81F2CF60E0EE -:106030008B810E9494168B81811103C00E948C1168 -:106040006ACF8091670481608093670460E08695E1 -:106050000E94941660CF8B8180936B045CCF8A8101 -:10606000813899F030F4803809F055CF80916A0476 -:106070003FCF823891F0833809F04DCF809168048A -:106080008B83809169048C8346CF8091670480FF65 -:1060900002C086952DCF80E02BCF80916B0428CF56 -:1060A00060916704709168048091690490916A041A -:1060B0000E946B1530CF80E18A832DCF81E08A83E7 -:1060C0008DE116CFCA80DB80DC24CD24DC248E0158 -:1060D0000F5F1F4FEC80E00EF12EF11CC6018D51B9 -:1060E0009D4F0E151F0509F416CF2DE1C21621E0B4 -:1060F000D20658F40E943835D80114968C93FFEFDD -:10610000CF1ADF0A0F5F1F4FE9CFF8011482F7CFD4 -:106110000A811B811027012710279E012F5F3F4F07 -:106120006901EC80E00EF12EF11CC8018D519D4FEC -:10613000E016F10609F4EFCE0D3131E0130728F433 -:10614000D60114966C910E944C35BFEFCB1ADB0A36 -:106150000F5F1F4FEACF0E948E0EDDCE85E0ACCFE1 -:10616000CA80DB80DC24CD24DC248E010F5F1F4F2E -:10617000EC80E00EF12EF11CC6018796E016F106C8 -:1061800009F4C9CEECEBCE16E2E0DE0658F40E942C -:106190003835D80114968C93FFEFCF1ADF0A0F5FC2 -:1061A0001F4FEACFF8011482F7CF0A811B81102715 -:1061B000012710279E012F5F3F4F6901EC80E00E01 -:1061C000F12EF11CC8018796E016F10609F4A3CE62 -:1061D0000C3B32E0130728F4D60114966C910E9410 -:1061E0004C35BFEFCB1ADB0A0F5F1F4FEBCF09BD5A -:1061F00019BD09B400FEFDCF8091D8008F7D80933A -:10620000D8008091E00082608093E0008091E000FF -:1062100081FDFCCF10924F040E94A11137CC86E281 -:1062200090E00E9438351B821C821D828E8373CEC3 -:106230001092B9008CE08093B80008959F92AF92BD -:10624000BF92CF92DF92EF92FF920F931F93CF9363 -:10625000DF93B82EEB010E9427256C01EE24E39416 -:10626000F12CC431D10560F025E0E22EF12CCF3FB6 -:10627000DC0731F0CE0164E170E00E94D8347B018C -:1062800084EAA82E94E8992E1092BC00A092BC003B -:106290000E9427258C018091BC0087FF0DC0809152 -:1062A000B900887F883039F18091B900887F8031CA -:1062B00011F10FEF1FEF09C00E942725801B910BE2 -:1062C0008E159F0540F30EEF1FEFCF3FDC07E1F285 -:1062D000C6010E9418258C179D07B0F2C801DF91F6 -:1062E000CF911F910F91FF90EF90DF90CF90BF90D3 -:1062F000AF909F900895B092BB009092BC000E9416 -:1063000027258C018091BC0087FF0AC08091B900CD -:10631000887F883111F0803461F610E000E0DECF34 -:106320000E942725801B910B8E159F0558F3CBCF1C -:106330000F931F93CF93DF93EB018093BB0084E80F -:106340008093BC000E9427258C018091BC0087FFB0 -:1063500011C02091B900287F81E090E0283211F42B -:1063600090E080E0919581959109DF91CF911F9107 -:106370000F910895CF3FDC0741F30E942725801B32 -:10638000910B8C179D0708F38EEF9FEFEECF0F93C5 -:106390001F93CF93DF93EC0184EC8093BC000E94A9 -:1063A00027258C018091BC0087FF08C08091BB002D -:1063B00090E0DF91CF911F910F910895CF3FDC07BF -:1063C00089F30E942725801B910B8C179D0750F3A2 -:1063D0008EEF9FEFEECF0F931F93CF93DF93EC01E0 -:1063E00084E88093BC000E9427258C018091BC002A -:1063F00087FF08C08091BB0090E0DF91CF911F9193 -:106400000F910895CF3FDC0789F30E942725801B59 -:10641000910B8C179D0750F38EEF9FEFEECFCF922D -:10642000DF92EF92FF920F931F93CF93DF936B0155 -:106430008A017901B9010E941E31E6010C0D1D1D72 -:10644000C017D10761F424E92093BC00DF91CF91FC -:106450001F910F91FF90EF90DF90CF90089597FDDF -:10646000F2CFB70189910E949831EACFCF92DF92A3 -:10647000EF92FF920F931F93CF93DF93C62F6A0182 -:106480007901B8010E941E3197FD0CC0B8018C2F14 -:106490000E949831E601EC0CFD1CCE15DF0511F0D1 -:1064A00097FF0CC024E92093BC00DF91CF911F918E -:1064B0000F91FF90EF90DF90CF900895B8018991F0 -:1064C0000E949831EACFCF92DF92EF92FF920F9322 -:1064D0001F93CF93DF93F82EE62EEA016901B801EE -:1064E0000E941E3197FD15C0B8018E2D0E94983173 -:1064F00097FD0FC0B8018F2D81600E941E31F12CD5 -:10650000E12C21E0C21AD108EC14FD0400F597FF3C -:1065100011C024E92093BC001816190614F490E069 -:1065200080E0DF91CF911F910F91FF90EF90DF906E -:10653000CF900895C8010E94C73197FD04C0FE01A5 -:10654000EE0DFF1D80832FEFE21AF20ADDCF97FDDB -:10655000E0CFC8010E94EB3197FDDBCFCC0DDD1DF4 -:106560008883D7CF84E98093BC0008958EE14A9B4D -:1065700002C08150E1F74A9BFECF08955A9880E20D -:106580008A95F1F75A9A0895FC013BE03A95F1F7A4 -:1065900098E020E080E031E040E14A95F1F7880F93 -:1065A0004A9B02C08160232742E04A95F1F7000030 -:1065B00040E14A95F1F7915079F790E19A95F1F71A -:1065C00099B132E03A95F1F7000040E14A95F1F7D0 -:1065D00092FB992790F992272081920F908308953A -:1065E000EF92FF920F931F93CF93DF930F92CDB74C -:1065F000DEB719828C017C01E60EF11C0E151F0519 -:1066000061F481E09981911180E00F90DF91CF9149 -:106610001F910F91FF90EF9008950E94B632CE0126 -:1066200001960E94C432F80181938F01E7CF529AFC -:106630005A9A089552985A9AEA9AE9E6F0E08081C7 -:106640008F7C808308956150770B91E001C0990F92 -:106650006A95EAF720E031E0911108C0222391F019 -:106660005A9A80E28A95F1F75A980895492F48235B -:1066700039F05A9A232740E24A95F1F79695ECCFE4 -:106680005A98F9CF5A98EDCFFF920F931F93CF935B -:10669000DF93EC018C01060F111DC017D10731F4F7 -:1066A000DF91CF911F910F91FF900895F9900E9473 -:1066B000BE3268E08F2D0E942333EFCF1F920F92DE -:1066C0000FB60F921124EF92FF920F931F932F9307 -:1066D0003F934F935F936F937F938F939F93AF936A -:1066E000BF93EF93FF93CF93DF930F92CDB7DEB7B6 -:1066F00019820E94B632CE0101960E94C432A82FA0 -:10670000A695A695A695282F229525709A2F957067 -:10671000290F922F937026952695920F98279770A0 -:106720008981982B09F075C0A83008F072C080E10B -:106730008A95F1F75A9A529AB2E0BA95F1F700C0E9 -:106740005A98EA2EF12CEAE0AE9FD0011124AF5FF7 -:10675000BE4F1896ED91FC9119973097B1F060916A -:10676000FB017091FC0116962D913C911797260F15 -:10677000371F13968D919C911497680F791F15966A -:106780004C91159712968C9109958AE08E9DF00197 -:106790008F9DF00D1124EF5FFE4F6581662351F050 -:1067A0002091FB013091FC0186819781820F931F1C -:1067B0000E9444330E94BE32F0E1FA95F1F75A98F4 -:1067C00052985A9A80E18A95F1F78AE08E9D80016D -:1067D0008F9D100D11240F5F1E4FD80112966C91E2 -:1067E0001297662371F12091FB013091FC01139601 -:1067F0008D919C91820F931F0E94F032D801ED91F0 -:10680000FC91882311F088E001C082E080830E941F -:10681000B6320F90DF91CF91FF91EF91BF91AF9181 -:106820009F918F917F916F915F914F913F912F91A8 -:106830001F910F91FF90EF900F900FBE0F901F9040 -:106840001895ED91FC91DFCF0F931F93CF93DF93BA -:10685000EC0108970CF0A9C08AE08C9FF0018D9F95 -:10686000F00D1124EF5FFE4F80819181892B09F497 -:106870009CC0F894529A5A9885E08A95F1F70000E6 -:106880008C2F869585709C2F9570890F982F93700B -:1068900086958695890F8E0193E0000F111F9A95BA -:1068A000E1F7082B0E94BE3200C068E0802F0E94F2 -:1068B0002333A0E1AA95F1F752985A9A4A9B27C030 -:1068C00087E090E04A9925C08AE08C9F80018D9FE7 -:1068D000100D11240F5F1E4FF80165816623A1F191 -:1068E0002091FB013091FC0186819781820F931FDB -:1068F0000E94F032811128C0529A5A9AD801ED9123 -:10690000FC9182E08083789482E090E016C000C021 -:10691000D5CF0197B9F4529A5A9A8AE08C9FF00128 -:106920008D9FF00D1124EF5FFE4F0190F081E02D5F -:1069300081E08083789481E090E0DF91CF911F9196 -:106940000F91089500C0BECF0E94B632B0E2BA9552 -:10695000F1F75A98529AE0E1EA95F1F78AE08C9FB4 -:10696000F0018D9FF00D1124EF5FFE4F62816623D1 -:1069700051F02091FB013091FC0183819481820FC1 -:10698000931F0E9444330E94BE328AE08C9FF00124 -:106990008D9FF00D1124EF5FFE4F0190F081E02DEF -:1069A0001082789490E080E0C8CF84E090E0C5CF7A -:1069B000AA1BBB1B51E107C0AA1FBB1FA617B70725 -:1069C00010F0A61BB70B881F991F5A95A9F7809541 -:1069D0009095BC01CD010895991B79E004C0991FE1 -:1069E000961708F0961B881F7A95C9F78095089529 -:1069F00097FB072E16F4009407D077FD09D00E946C -:106A0000D83407FC05D03EF4909581959F4F0895AA -:106A1000709561957F4F0895EE0FFF1F0590F491DB -:106A2000E02D0994692796276927782787277827F3 -:106A30000895FB01DC0102C005900D9241505040C9 -:106A4000D8F70895FB01DC0104C08D9101908019F5 -:106A500021F441505040C8F7881B990B0895FB0161 -:106A6000DC0102C001900D9241505040D8F70895CA -:106A7000F999FECF92BD81BDF89A992780B5089506 -:106A8000A6E1B0E044E050E00C947235A8E1B0E03B -:106A900042E050E00C947235262FF999FECF92BD5A -:106AA00081BDF89A019700B4021639F01FBA20BDD3 -:106AB0000FB6F894FA9AF99A0FBE08950396272F05 -:106AC0000E944D350E944C35252F0E944D35242FB4 -:106AD0000C944D350196272F0E944D350C944C3562 -:106AE000DC01CB01FC01F999FECF06C0F2BDE1BD8E -:106AF000F89A319600B40D9241505040B8F708957D -:106B00000E9487356894B1110C94163608950E943E -:106B1000FB3588F09F5798F0B92F9927B751B0F0FF -:106B2000E1F0660F771F881F991F1AF0BA95C9F711 -:106B300014C0B13091F00E941536B1E008950C9464 -:106B40001536672F782F8827B85F39F0B93FCCF317 -:106B5000869577956795B395D9F73EF4909580958E -:106B6000709561957F4F8F4F9F4F0895E89409C0AE -:106B700097FB3EF490958095709561957F4F8F4F70 -:106B80009F4F9923A9F0F92F96E9BB279395F69586 -:106B9000879577956795B795F111F8CFFAF4BB0F04 -:106BA00011F460FF1BC06F5F7F4F8F4F9F4F16C068 -:106BB000882311F096E911C0772321F09EE8872FF2 -:106BC000762F05C0662371F096E8862F70E060E0AE -:106BD0002AF09A95660F771F881FDAF7880F969527 -:106BE000879597F9089557FD9058440F551F59F010 -:106BF0005F3F71F04795880F97FB991F61F09F3FAA -:106C000079F087950895121613061406551FF2CFD2 -:106C10004695F1DF08C0161617061806991FF1CF22 -:106C200086957105610508940895E894BB27662749 -:106C30007727CB0197F908950E942F360C94A03640 -:106C40000E94923638F00E94993620F0952311F078 -:106C50000C9489360C948F3611240C9416360E94AD -:106C6000F33570F3959FC1F3950F50E0551F629F68 -:106C7000F001729FBB27F00DB11D639FAA27F00D95 -:106C8000B11DAA1F649F6627B00DA11D661F829FBC -:106C90002227B00DA11D621F739FB00DA11D621FA1 -:106CA000839FA00D611D221F749F3327A00D611DBE -:106CB000231F849F600D211D822F762F6A2F1124A0 -:106CC0009F5750409AF0F1F088234AF0EE0FFF1FD3 -:106CD000BB1F661F771F881F91505040A9F79E3F2A -:106CE000510580F00C9489360C9416365F3FE4F31E -:106CF000983ED4F3869577956795B795F795E79580 -:106D00009F5FC1F7FE2B880F911D9695879597F988 -:106D1000089597F99F6780E870E060E008959FEF1D -:106D200080EC089500240A94161617061806090622 -:106D3000089500240A9412161306140605060895F1 -:106D4000092E0394000C11F4882352F0BB0F40F479 -:106D5000BF2B11F460FF04C06F5F7F4F8F4F9F4FB9 -:106D60000895F894FFCF9A0F9A0FA30FA30FA50FC2 -:106D7000A30FA30FA30F9A0F9A0FAA0FA30FA30F8E -:106D8000AA0F9212BA125D14BA125D14ED120E130C -:106D90005D140C1419141E1994199719AB19AE1916 -:106DA000C119CA19EE19341A661A7A1A001A231A66 -:106DB000AC1DAC1D051E051E371EDF1DDF1DDF1DB2 -:106DC000511EC21ED21ED21E762F7A2FBE2FCF2F5B -:106DD000DA2FF92FFC2F2F305030CC2FCC2F5B30F7 -:0E6DE0005E3062308830AB30AE30B030D5302F -:106DEE00013A0200000001000000003A020000001B -:106DFE0005010000003A0200000001060000003A02 -:106E0E000200000001070000003A02040800000022 -:106E1E000000003A02090C0000000000003A0201D6 -:106E2E001500000000000036323331F7F667669722 -:106E3E00C634350000000000010008D50DB40DB0B9 -:106E4E000DAC0DFF07F4F5010021007F22000301B8 -:106E5E008000004A004A4A01F6F731333236674C59 -:106E6E00415945520042617365200047616D6520AE -:106E7E00005261697365004C6F776572004C4F4329 -:106E8E004B0043617073004E756D005363726C005E -:106E9E00202020202000534F4C415200544D50537F -:106EAE005400818283E200E900EA00B500B600B723 -:106EBE0000CD008301CC008A0192019401210223AE -:106ECE000224022502260227022A02B300B4006F12 -:106EDE000070000603060806010606B00200FF0158 -:106EEE0000010000FFFF0000010001FF000008107C -:106EFE001818100800000102020202020202020229 -:106F0E000240227B99017701FC00400B590B790B53 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B8000000000000000000000AF00AE09025B00A2 +:100B9000030100A0FA09040000010301010009217A +:100BA000110100012240000705810308000A090421 +:100BB00001000203000000092111010001222200AE +:100BC0000705820320000107050303200001090433 +:100BD00002000103000000092111010001227B0035 +:100BE0000705840320000A120100020000000832F9 +:100BF000FC87120200010200011E0353006F006C0B +:100C000000610072006900750073005F0053006F9F +:100C10000066006C006500000010034B0065007961 +:100C20000068006900760065000000040309040004 +:100C300011241FBECFEFDAE0DEBFCDBF04B603FE46 +:100C400027C080916D0690916E06A0916F06B091BD +:100C500070068730904BA740B04BD1F410926D06D0 +:100C600010926E0610926F061092700614BE84B732 +:100C7000877F84BF0FB6F894A89580916000886143 +:100C800080936000109260000FBEE0E0F8E30995E9 +:100C900012E0A0E0B1E0EEECFCE602C005900D929F +:100CA000A033B107D9F726E0A0E3B2E001C01D925E +:100CB000AD36B207E1F70E94AE280C9421360C94B1 +:100CC0000000CF93DF9340916B0650916C064B561A +:100CD00054409A01205A3F4F21303240C0F020E06A +:100CE00032E0241B350B6091690470916A04FC01A9 +:100CF000CA01240F351FC1E0D0E08217930750F0DE +:100D000070936A0460936904DF91CF91089520E69F +:100D100030E0E9CF4491DC01A559BB4F5C91451708 +:100D200081F04C93AC01A5E056954795AA95E1F763 +:100D3000DE0102C0AA0FBB1F4A95E2F7AD016A2B84 +:100D4000752B01963196D9CFE8EDF0E080818E7F4A +:100D500080831092E2001092DA001092E100A0EE7F +:100D6000B0E08C9181608C9380818F77808319BCF7 +:100D7000A7EDB0E08C918E7F8C9380818F7E8083F5 +:100D800010926D0308952091E4003091E50095E6FE +:100D9000A9012091EC00822F817020FF06C0809174 +:100DA000E80080FF06C080E008952091E80022FD61 +:100DB0001AC080917B03882389F0853089F0809167 +:100DC000EB0085FD0FC02091E4003091E500421753 +:100DD0005307F9F29150E1F684E0089582E0089516 +:100DE00083E0089581E00895EF92FF920F931F939F +:100DF000CF937C018B010E94C306C82F811117C0BD +:100E00008091E80085FD0BC08091E8008E7780938B +:100E1000E8000E94C306882399F3C82F08C0F70191 +:100E200081917F018093F1000150110949F78C2FC6 +:100E3000CF911F910F91FF90EF90089580917D03C6 +:100E400087FF13C08091E80082FF06C08091E80010 +:100E50008B778093E80004C080917B038111F2CFEF +:100E6000089580917B038823D9F38091E80080FF67 +:100E7000F8CF8091E8008E77ECCF982F9093E9001F +:100E8000242F762F50E0891731F07091EC002091DB +:100E9000ED005091F00021FD07C09F5F973071F782 +:100EA0008093E90081E008953091EB003E7F30931C +:100EB000EB003091ED003D7F3093ED003091EB0081 +:100EC00031603093EB007093EC002093ED00509371 +:100ED000F0002091EE0027FDE0CF80E00895CF9252 +:100EE000DF92EF92FF920F931F93CF93DF93C8EDA2 +:100EF000D0E088818F7E8883E7EDF0E0808181609B +:100F0000808384E082BF81E080936D0388818E7F3F +:100F1000888302EE10E0F80110821092DA0081EE70 +:100F2000C82ED12CF601108288818F778883888122 +:100F30008068888388818F7D888319BC10927B03A9 +:100F400010927C0310927A031092790390EEE92EAE +:100F5000F12CF70180818B7F808388818160888379 +:100F600042E060E080E00E943D07F60180818E7FD4 +:100F70008083F801808181608083808188608083A4 +:100F8000F70180818E7F8083888180618883DF91F3 +:100F9000CF911F910F91FF90EF90DF90CF90089528 +:100FA000FC01809183039091840386179707A0F03A +:100FB0006115710529F49091E8009E779093E800FF +:100FC00090E06115710551F4911108C08091E8001D +:100FD00082FF34C080E00895BC01F2CF80917B0392 +:100FE0008823C1F18530C1F18091E80083FD30C0D4 +:100FF0008091E80082FDEACF8091E80080FFE1CF98 +:101000008091F3002091F200382F6115710519F0DD +:101010002830310558F091E02830310509F090E092 +:101020002091E8002E772093E800CBCF8191809328 +:10103000F100615071092F5F3F4FE7CF80917B0333 +:10104000882341F0853041F08091E80083FFBECFD6 +:1010500081E0089582E0089583E0089508958091E5 +:1010600070030895CF92DF92EF92FF922FB7F8941A +:10107000C0906603D0906703E0906803F090690326 +:101080002FBFA7019601261B370B480B590BCA012E +:10109000B901FF90EF90DF90CF9008952FB7F894AB +:1010A0006091660370916703809168039091690372 +:1010B0002FBF0895209163033091640328173907E7 +:1010C00071F09093640380936303E0916103F09166 +:1010D0006203309721F00084F185E02D0994089592 +:1010E00020915F03309160032817390771F09093C6 +:1010F000600380935F03E0916103F0916203309796 +:1011000021F00680F781E02D09940895811520E5EE +:101110009207F8F48115E0E49E0788F5893391057C +:1011200070F48C32910548F48430910580F08E3152 +:10113000910518F08897039750F480E0089584365D +:101140009105D9F320F0805E91090897B0F381E012 +:101150001BC08115F9E59F0750F4811528E592071A +:10116000A0F491558F3F910509F088F7E6CF8115DE +:10117000EAE59E0710F390568115904240F7FB0177 +:101180009581907F81E0C9F20895FB019581907F60 +:1011900081E0903291F6F8CF20914E0336E0839FA4 +:1011A000C0011124629F800D911D1124811522E040 +:1011B000920714F090E080E085599B4F90936C0665 +:1011C00080936B060895FC01680F791F8FEF91E300 +:1011D0002191822728E030E087FF09C0880F892706 +:1011E00021503109C9F7E617F70791F70895880FDD +:1011F000F7CFFA01811101C0FB01099480916404C9 +:10120000982F9E7F61F48170826080936404809146 +:101210006704813A18F080EA809367040895883162 +:10122000B0F381708661F1CFAF92BF92DF92EF92FF +:10123000FF920F931F93CF93DF93082F162FE9018F +:10124000E42FF0E0E750FB4F611110C0E4915E2FF6 +:101250004E2F4983E8835A83DF91CF911F910F91DD +:10126000FF90EF90DF90BF90AF900895E62EF12CA5 +:101270004491D42EE42FF0E026E0829FC001112497 +:101280002FEF30E0B9010E944834802F90E0880FA2 +:10129000991F55E5569FD001579FB00D11248A1B09 +:1012A0009B0B982F990F890F5901AE18BF08AE9E5E +:1012B000D001AF9EB00DBE9EB00D11245B2F189FC4 +:1012C00080011124012F11275901A01AB10AAE9EE5 +:1012D0008001AF9E100DBE9E100D11245901A81A59 +:1012E000B108AE9CC001AF9C900DBE9C900D112426 +:1012F000892F9927281B390B2E9FC0012F9F900DF6 +:101300003E9F900D1124E92F62307105A1F050F439 +:101310006115710509F49DCF6130710581F0EB2FE6 +:10132000512F97CF6430710569F080F066307105F8 +:1013300009F48FCFF4CFE42F4B2F592F8ACFE42F0E +:10134000412F87CFEB2F542F492F83CF4B2F5D2D6C +:10135000E12F7FCF80E0089578940895F894E82FE6 +:10136000E295EF70F0E031A1282F2F7081E090E03E +:1013700001C0880F2A95EAF7982F9095932391A39F +:1013800092A1892B82A30C94AC099091D60292FF72 +:1013900006C0282F28712830F9F4877F846093FFD6 +:1013A00006C0282F28712831F1F4877E84612091AE +:1013B000D70220FF06C0382F38713830D9F4877F24 +:1013C000816021FF06C0282F28712831D1F4877E43 +:1013D000816194FD877E0895282F24712430F9F6C9 +:1013E0008B7F8860DCCF282F2471243101F78B7E1E +:1013F0008861DDCF382F3171313019F78E7F8860E9 +:10140000E0CF282F2171213121F78E7E8861E1CF35 +:10141000CF93DF93EC018238910581F1B0F58133F0 +:10142000910509F491C020F58932910509F485C030 +:101430008A9709F490C0C11521E5D20708F0AAC027 +:10144000C11530E5D30708F0F2C0CF3BD10508F055 +:1014500089C0C83AD10508F0DFC0C53AD10508F007 +:10146000D3C0C430D105F8F4C130D105E1F040C09B +:101470008533910509F45AC0C997E9F68091D602DF +:10148000837089F0C0EED0E00EC0833E910599F1E3 +:1014900070F4803E910501F1823E910561F68091E4 +:1014A000D60282FD21C0CE01DF91CF910895863E04 +:1014B000910561F1873E910571F1843E910509F036 +:1014C000BACF8091D70281FFEECF8091D602C7EECE +:1014D000D0E084FD0DC0E7CF8091D60280FDF7C03B +:1014E0009091D70290FFDFCFC3EED0E084FFDBCF37 +:1014F000D0E0C0E0D8CF8091D60282FDEBC09091C1 +:10150000D70290FDBFCF84FFCECFF2CF8091D6021D +:1015100083FDDDCFC8CF8091D60283FDDEC09091E0 +:10152000D70291FFF0CFC4EED0E0BDCF8091D602BC +:1015300085FFB9CFC9E2D0E0B6CF8091D60285FF52 +:10154000B2CFC5E3D0E0AFCF8091D60286FFABCF5C +:10155000CAE2D0E0A8CF8091D60286FFA4CFC1E333 +:10156000D0E0A1CFC11540E2D40760F4C11581E0FD +:10157000D80708F098CFCE01815E9109079708F44B +:1015800092CFB6CFC11590E4D90708F4B1CFDF7080 +:10159000D06A89CFC11524E5D20778F4C11533E5A7 +:1015A000D30708F072C0C11542E5D40708F05CC04B +:1015B000DC2FCC27C16FD06A76CFC1158AE5D8075A +:1015C00078F4C11599E5D90708F073C0C11528E56D +:1015D000D20708F48DCFDC2FCC27C06FD06A63CF41 +:1015E000CE0190568115904208F082CF8D2F8F71D9 +:1015F0000E94C50990E0982F882788279F719C0139 +:101600002C2BE901D0624FCFC55AD0E0CE53DE4F2C +:10161000C881D0E0D06447CFC85AD0E0CC0FDD1FDE +:10162000CB53DE4F0990D881C02DD4643CCFCE017E +:1016300064E0969587956A95E1F783702C2F26953F +:101640002695237040E2249F90011124382B8C2F83 +:101650008370C1E0D0E002C0CC0FDD1F8A95E2F7B5 +:10166000C22BD32BDC681FCFCE018370992721E0DA +:1016700030E002C0220F331F8A95E2F7C695C69567 +:1016800080E2C89FE0011124EBCFCE01837099273F +:1016900021E030E002C0220F331F8A95E2F7C695A1 +:1016A000C69590E2C99FE0011124C22BD32BDA68C2 +:1016B000FACE8C2F8F700E94C50934E0D695C7955D +:1016C0003A95E1F7CF709C2FEC01D069ECCEC9E3DD +:1016D000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE7A +:1016E0000C944E0880916E0390919402892B9091F6 +:1016F0009302892B80933202E0916103F09162039F +:10170000309731F00280F381E02D82E392E009947A +:1017100008958091920290916102981301C00895FA +:101720008F5F8770FACF27E0929F800D1124982F4A +:10173000977086958695869523E0829FF001112407 +:10174000E05CFD4F50E040E080E0219130E0092E68 +:1017500002C0369527950A94E2F721703327042EAC +:1017600001C0220F0A94EAF7822B4F5F5F4F43308C +:10177000510559F7089527E0929F800D1124982F65 +:10178000977041E001C0440F9A95EAF786958695D7 +:10179000869593E0899FF0011124E05CFD4F90E075 +:1017A00080E070E05191DF0111979B01082E02C08B +:1017B000369527950A94E2F7217021952527242351 +:1017C00025272C9301968330910561F7089590E0C9 +:1017D00080E00E94700890E080E00E945A08109219 +:1017E0009402109293020C94720B809395020C94C5 +:1017F000E70B882341F0809590916E0389238093B5 +:101800006E030C94720B0895882339F090916E0347 +:10181000982B90936E030C94720B08958823B1F16A +:101820009CEF980F913A70F4E4E3F2E09191891300 +:1018300003C0DF0111971C9242E0EA33F407B1F7CD +:101840000C94720B90E2980F983088F4877021E026 +:1018500030E0A90102C0440F551F8A95E2F7CA0182 +:10186000809590916E03892380936E03E9CF9BE569 +:10187000980F933020F490E080E00C947008885A20 +:10188000873120F490E080E00C945A0808950F937B +:101890001F93CF93C82F882309F469C08CEF8C0F56 +:1018A000813AB0F504E312E08AE392E0F801219175 +:1018B000C21701F122E0EA33F207C9F7EFEF80E047 +:1018C000D8019D918D01C91781F0EF3F19F4911155 +:1018D00001C0E82F8F5F863099F7EF3F31F00E2E71 +:1018E000000CFF0BEE5CFD4FC283CF911F910F9157 +:1018F0000C94720BE4E3F2E02191C21303C0DF0108 +:1019000011971C928E179F07B9F70E94720BD6CFC2 +:1019100080E28C0F883068F4C77021E030E001C0AD +:10192000220FCA95EAF780916E03822B80936E0393 +:10193000DCCFEBE5EC0FE33050F4F0E0EE53FE4F7C +:10194000808190E0CF911F910F910C947008C85A3C +:10195000C73168F4EC2FF0E0EE0FFF1FEB53FE4FA2 +:1019600080819181CF911F910F910C945A08CF9152 +:101970001F910F910895982F92959F7011F0892FC4 +:1019800094E0282F2695269511F09E5F822F86954C +:1019900009F09F5F892F0895CF93DF93CDB7DEB70E +:1019A00062970FB6F894DEBF0FBECDBF96E0EAE3B4 +:1019B000F3E0DE01179601900D929A95E1F796E01B +:1019C000FE013796DE011D9601900D929A95E1F782 +:1019D00098858823E9F0962B9E8786E0FE013D9648 +:1019E000DE01119601900D928A95E1F786E0FE01E5 +:1019F0003196AAE3B3E001900D928A95E1F76296E1 +:101A00000FB6F894DEBF0FBECDBFDF91CF91089522 +:101A100060959623E1CF80936A0370936C03609383 +:101A20006B0380917B038430F9F48093E9008FEF9E +:101A30009091E800815095FD06C095ED9A95F1F7DB +:101A400000008111F5CF8091E80085FF0DC050E0C6 +:101A500040E063E070E08AE693E00E94F406809143 +:101A6000E8008E778093E8000895BC0184E00C9430 +:101A70000B0DBC0183E00C940B0D9C0184E0809362 +:101A8000E9009FEF8091E800915085FD06C085ED4B +:101A90008A95F1F700009111F5CF8091E80085FF5C +:101AA0000CC050E040E066E070E0C9010E94F4061E +:101AB0008091E8008E778093E8000895CF93DF93BC +:101AC000EC0181E08093E9008FEF9091E800815074 +:101AD00095FD06C095ED9A95F1F700008111F5CFBF +:101AE0008091E80085FF14C050E040E068E070E0BD +:101AF000CE010E94F4068091E8008E778093E80082 +:101B000088E0FE01A1E7B3E001900D928A95E1F72C +:101B1000DF91CF910895CF92DF92EF920F931F93B1 +:101B2000CF93DF93CDB7DEB7CE5DD1090FB6F89472 +:101B3000DEBF0FBECDBF609173018091640480FF52 +:101B40004CC0EEEFF5E09E012F5F3F4F8E0101523A +:101B50001F4FC901A4914A2F50E0DA01AA0FBB1F01 +:101B6000A40FB51FAA57BC4FCD90DD90EC90D901C2 +:101B7000CD92DD92ED929D013196A017B10751F7FC +:101B80002091720143E0249F800D911D1124539AEE +:101B90002BB1277F3BB138605FB7F894FC01649F9D +:101BA000E00DF11D1124BF018617970749F55FBFAE +:101BB000EFE5F4E03197F1F700C00000C252DF4FCB +:101BC0000FB6F894DEBF0FBECDBFDF91CF911F914E +:101BD0000F91EF90DF90CF900895809174019091D4 +:101BE000750123E0829FF0011124EA57FC4F891709 +:101BF00008F0A7CF1182108212828F5F3396F7CF41 +:101C0000DC014D91CD01E8E03BB9000000C047FF89 +:101C10002BB9440F000000C000C000C02BB900C0A9 +:101C2000EA9591F7C1CF0F931F93CF93DF9300D025 +:101C30000F92CDB7DEB7182F062F8091640480FF76 +:101C400022C09E012F5F3F4F40EA64E68BE20E9474 +:101C500014091017C0F48B8199812A8133E0139FF6 +:101C6000F0011124EA57FC4F2183908382831F5F88 +:101C700033960113F9CF0E948B0D8FE99FE00197F6 +:101C8000F1F700C000000F900F900F90DF91CF91FF +:101C90001F910F910895CF93DF93C82FD82FD17044 +:101CA00081FF04C067E084E00E94130ED11104C0DC +:101CB0006FE18CE10E94130EC2FF06C063E180E178 +:101CC000DF91CF910C94130EDF91CF910895E4E64C +:101CD000F4E080818E7F8083E9E4F3E0828181609B +:101CE00082832FEF80E792E0215080409040E1F71F +:101CF00000C000000C948B0D9F92AF92BF92CF92C8 +:101D0000DF92EF92FF920F931F93CF93DF937C01AB +:101D10005B016A018091D10201E010E08A3010F489 +:101D20000AE010E0C1E0D0E0F894B501C701F60187 +:101D30000995982E0E94AC09911004C021960C17A9 +:101D40001D076CF4892DDF91CF911F910F91FF90AA +:101D5000EF90DF90CF90BF90AF909F900895CC9F71 +:101D60009001CD9F300D300D112490E080E045E3CF +:101D70004A95F1F70000019682179307C1F7D4CF77 +:101D80008091A202811110C08091D800806180935F +:101D9000D8008AE18A95F1F700C08091D90080FFD0 +:101DA0000AC081E08093A20281E09091A20291306A +:101DB00009F080E0089582E08093A2020E94A406C8 +:101DC00010927B03F1CF0E94C00E882351F0E09166 +:101DD0006103F0916203309721F00190F081E02DD2 +:101DE000099480E008951F93CF93DF93182FEB01A0 +:101DF0000E94470C8FE99FE00197F1F700C00000B7 +:101E00002197C1F7812FDF91CF911F910C940E0C78 +:101E10000F931F93CF93DF9300D000D0CDB7DEB7E1 +:101E200089836A834B831C8204E610E024E030E05F +:101E3000AE014F5F5F4F60E084E10E94A6310F90DA +:101E40000F900F900F90DF91CF911F910F910895F8 +:101E500080916F01882329F047E669E98BE20C94B1 +:101E6000080F80913B0247EC6BE18823C1F341E20C +:101E700065EA89EDF4CFCF92DF92EF92FF920F9354 +:101E80001F93CF93DF936C017B0164E670E088E7DA +:101E90000E948E30EC0197FD12C010E000E0F601C8 +:101EA000E00FF11F849164E670E00E940831EC01BC +:101EB000892B29F40F5F1F4F0E151F0581F70E9414 +:101EC0002232CE01DF91CF911F910F91FF90EF90C1 +:101ED000DF90CF9008958091590390915A0391110A +:101EE00003C091E089270895882369F062E070E0DB +:101EF0008AE89BE00E943B0F892B19F080915903DF +:101F000008951092590380915903EBCFCF93C0915C +:101F1000590380915A038823D1F00E944E086058DB +:101F2000774C8E4F9F4F6093550370935603809369 +:101F3000570390935803C11108C062E070E088E82D +:101F40009BE00E943B0F892B29F0C09159038C2FF5 +:101F5000CF91089581E080935903F7CFCF93DF931A +:101F6000C3EED2E060E0CE010E94BC342196C115E0 +:101F700084E0D807B9F7DF91CF9108956F927F92EF +:101F80008F929F92AF92BF92CF92DF92EF92FF9289 +:101F90000F931F93CF93DF938CE8C82E8BE0D82E3E +:101FA00091ECE92EF12CE701CC58D10936011BC088 +:101FB000F50185909490692DC8010E94BC34682D6C +:101FC000C80101960E94BC3482E0A80EB11C0E5FCD +:101FD0001F4FC017D10761F78EE0680E711C2E9657 +:101FE000CE15DF0529F08E010E5011095301E0CF07 +:101FF0007E018CE8E80EF11C8CE8C80ED11C8DE740 +:10200000E81683E0F80679F6DF91CF911F910F91E2 +:10201000FF90EF90DF90CF90BF90AF909F908F9008 +:102020007F906F900895CF93C82F6FEF811161E279 +:1020300083E290E00E94BC346FEFC11161E184E261 +:1020400090E00E94BC346FEFC11160E385E290E044 +:10205000CF910C94BC3480E00E94131060E086E2C3 +:1020600090E00E94BC340E94BE0F0E94AE0F81E03F +:102070000C9413100F931F93CF93DF93C42FD0E0D2 +:10208000CC0FDD1F2EE0629FC00DD11D11243CE856 +:10209000839FC00DD11D1124CE0187960E94A834C4 +:1020A000082F10E0102F0027CE0188960E94A83438 +:1020B0009801282BC901DF91CF911F910F910895AD +:1020C000462F853038F47A3028F4673018F4672FBB +:1020D0000C943A1090E080E00895CF92DF92FF9246 +:1020E0000F931F93CF93DF936C0100918503809131 +:1020F0009502082BC7E0D0E010E0FC2EC8010C2EA2 +:1021000002C0959587950A94E2F780FD0CC021974F +:10211000A0F7F12C8F2DDF91CF911F910F91FF90A0 +:10212000DF90CF900895B6018C2F0E9460100E941E +:10213000080A019761F3EECFCF93DF93EC010E9481 +:102140006D10BE010E946010DF91CF910C94080ABF +:10215000FC01808191810E949C10292F2F70929503 +:102160009F7092509E3078F4E92FF0E0ED5DF94CCD +:102170000C947C34803F19F020F4883E20F481E0F8 +:102180000895843FE1F380E00895883EC0F3813FE5 +:10219000D1F7F5CF822F869586958695089583E2AF +:1021A00090E00E94A834813289F484E290E00E9499 +:1021B000A834813159F485E290E00E94A83491E07E +:1021C000803309F090E0892F8170089580E0FCCF82 +:1021D0001F93CF93DF93CDB7DEB768970FB6F89410 +:1021E000DEBF0FBECDBF40913A0350913B036091DB +:1021F0003C0370913D0380913E0390913F030E9408 +:10220000AC2420933A0330933B0360933E037093D6 +:102210003F03142F119510933C03652F6195609334 +:102220003D0386E0EAE3F3E0DE01179601900D92AC +:102230008A95E1F786E0FE013796DE01119601905E +:102240000D928A95E1F79B858C8520916F01222361 +:10225000B1F0772761950CF47095072E000C880B70 +:10226000990B0E9428352AE939E949E95EE30E9481 +:102270008C350E94F034962F812F60E010E01B8394 +:102280006C839D838E8386E0FE013196DE011D9670 +:1022900001900D928A95E1F786E0FE013D96DE0100 +:1022A000539601900D928A95E1F786E0FE017396B0 +:1022B000DE01119601900D928A95E1F786E0FE010C +:1022C0003196AAE3B3E001900D928A95E1F786E09A +:1022D000EAE3F3E0DE01179601900D928A95E1F7AB +:1022E00086E0E4E3F3E0DE01119601900D928A9519 +:1022F000E1F746E050E0BE016F5F7F4FCE010796E9 +:102300000E949234892B79F0E0916103F09162038D +:10231000309749F082E080933A030480F581E02D04 +:102320008AE393E0099510923C0310923D031092CA +:102330003E0310923F0386E0EAE3F3E0A4E3B3E058 +:1023400001900D928A95E1F768960FB6F894DEBF7A +:102350000FBECDBFDF91CF911F910895E4E3F2E06E +:1023600086E0DF011D928A95E9F70C94E70B1F9335 +:10237000CF93DF93CDB7DEB7AA970FB6F894DEBF41 +:102380000FBECDBF8DE793E02091F100DC012D93CE +:10239000CD01B3E085389B07B9F780917E03833088 +:1023A00009F472C0B8F4813009F449C0823009F4EC +:1023B000B5C08091E80083FF8DC280917D0390912C +:1023C0007E039A3008F086C2E92FF0E0EF5CF94C0A +:1023D0000C947C348A3009F490C08B3009F471C0BD +:1023E000893039F780917D03813219F7809181031B +:1023F00090918203009711F00297D9F68091E8003E +:10240000877F8093E8008091E80082FF38C0909138 +:10241000F3008091F200029731F48091F100813055 +:1024200011F0863021F48091F10080937003809147 +:10243000E8008B778093E8000E941E07BACF809156 +:102440007D03813A09F0B5CF8091E800877F8093C2 +:10245000E8008091810390918203892B61F468E008 +:1024600081E793E070E00E94D0078091E8008B77CD +:102470008093E8009ECF60E090E080E0F3CF809111 +:102480007B038111C0CF95CF80917D03813A09F004 +:1024900090CF8091810390918203892B09F089CF9D +:1024A0008091E800877F8093E8008091E80080FFBA +:1024B000FCCF809177018093F1008091E8008E77C6 +:1024C000B9CF80917D03813209F073CF8091810370 +:1024D00090918203892B09F06CCF8091E800877F6F +:1024E0008093E8000E941E0780917F03809377010C +:1024F00010926E030E94AE115CCF80917D038132F9 +:1025000009F057CF8091E800877F8093E8000E9410 +:102510001E078091800380936F034BCF80917D03D2 +:10252000813A09F046CF8091E800877F8093E800E8 +:102530008091E80080FFFCCF80916F03BCCF803892 +:1025400099F0823809F0C6C1809181038F7087307D +:1025500008F0C0C18093E9008091EB0085FB8827DB +:1025600080F91092E90006C08091790390917A0376 +:10257000911182609091E800977F9093E80080939A +:10258000F1001092F1008091E8008E779FC18823BE +:1025900009F48DC1823009F09DC180917F038111C2 +:1025A00090C1809181038F702FEF280F263008F0A3 +:1025B00091C18093E9002091EB0020FF82C193300C +:1025C00031F48091EB0080628093EB007AC19091AE +:1025D000EB0090619093EB0021E030E001C0220F0E +:1025E0008A95EAF72093EA001092EA008091EB00C6 +:1025F0008860EACF81116EC110917F031F778091AF +:10260000E3008078812B8093E3008091E800877F4E +:102610008093E8000E941E078091E80080FFFCCFB5 +:102620008091E30080688093E30082E0111183E0F1 +:1026300080937B034FC18058823008F04BC12091BA +:102640007F03309180032C3DE3E03E07A1F583E05A +:102650008A838AE289834FB7F894DE01139620E0DB +:102660003EE051E2E32FF0E050935700E49120FF69 +:1026700003C0E295EF703F5FEF708E2F90E0EA307D +:10268000C0F0C7968D939D932F5F243159F74FBFAC +:102690008091E800877F8093E8006AE270E0CE01D5 +:1026A00001960E94D0078091E8008B778093E80024 +:1026B00011C1C096E7CF8091810390918203432F8F +:1026C00055274330510509F44AC078F5413051058A +:1026D00009F47AC08BE590E0ECE8FBE0423051056C +:1026E00009F0F8C02091E800277F2093E8002091AE +:1026F0008303309184038217930708F49C0140E020 +:102700002115310509F065C0411163C08091E800D1 +:1027100082FDC9CF80917B03882329F2853019F28D +:102720008091E80083FFF2CFBECF4132510509F41A +:102730003CC04232510509F0CDC08330910508F00C +:10274000C9C0FC01EE0FFF1FEC5DFD4F0190F08151 +:10275000E02D8F5D9D4FDC018C9190E01AC03327F6 +:1027600021303105D1F02115310561F022303105DC +:1027700009F0B0C0E9EFFBE0E4918E2F90E0E9EFC3 +:10278000FBE007C0EBE2FCE0E4918E2F90E0EBE28F +:10279000FCE0009709F49EC0A5CFE9E1FCE0E491DC +:1027A0008E2F90E0E9E1FCE0F4CF8330910508F052 +:1027B00091C0880F991FFC01E65DFD4F0190F081EB +:1027C000E02D89E090E08ECF82E190E0E7EEFBE043 +:1027D00089CF80917B03882309F465CF853009F484 +:1027E00062CF8091E80083FD5ECF8091E80082FD9A +:1027F0008DCF8091E80080FF83CF9091F30080918E +:10280000F2002115310519F08830910550F041E0B2 +:10281000089709F040E08091E8008E778093E80007 +:102820006FCF44914093F1003196215031090196C8 +:10283000E8CF803809F04EC08091E800877F809310 +:10284000E80080917C038093F1009DCE811142C00D +:1028500010917F031230F0F58091E800877F80931C +:10286000E80010937C030E941E07112311F084E0FE +:1028700005C08091E30087FDFACF81E080937B0360 +:1028800042E061EC81E00E943D0742E261EC84E0BD +:102890000E943D0742E261EC82E00E943D0742E275 +:1028A00060EC83E00E943D0780917B0313C0809120 +:1028B0007F03813079F481E0933009F080E08093E8 +:1028C0007A031092E9008091E800877F8093E80006 +:1028D0000E941E078091E80083FF0AC08091E800F3 +:1028E000877F8093E8008091EB0080628093EB000B +:1028F000AA960FB6F894DEBF0FBECDBFDF91CF9181 +:102900001F9108951F93CF93DF93162FC0916B06ED +:10291000D0916C068A30D1F420914E03CE018B56B3 +:102920009440622F70E00E944834281B822F66E09A +:102930000E945C34C82FC15020F4DF91CF911F91C9 +:10294000089560E080E20E948214F5CF8D30E9F4B2 +:10295000CB56D44020914E03622F70E0CE010E94EE +:102960004834281B822F9E01280F311D211532402B +:1029700018F080E0D0E0C0E0C80FD11DC559DB4F92 +:10298000D0936C06C0936B06D8CF96E0FE01AFE4FF +:10299000B3E001900D929A95E1F7803E90F186E0C8 +:1029A000FE0111928A95E9F7C0916B06D0916C06F1 +:1029B000111133C046E050E0BE018FE493E00E9465 +:1029C00092349E012B563440892B91F52A5F3F4F5C +:1029D00040914E03642F70E0C9010E944834481BA7 +:1029E000463010F4240F311D211572E0370710F026 +:1029F00030E020E025593B4F30936C0620936B0666 +:102A00009CCFF6E08F9FB0011124685B794F46E0C0 +:102A100050E0CE010E948934C7CF9E012A5F3F4F0C +:102A2000FE012E173F0731F2808180958193F9CF07 +:102A3000C90145E0969587954A95E1F741E050E058 +:102A4000BA0102C0660F771F8A95E2F7CB01609149 +:102A5000690470916A04862B972BB9016B5F7F4FD5 +:102A6000E5E076956795EA95E1F702C0440F551FBA +:102A70006A95E2F7842B952B90936A0480936904FE +:102A8000A5CFFF920F931F93CF93DF93EC01F62E08 +:102A9000FC0101900020E9F78F0101501109C017D6 +:102AA000D10730F0DF91CF911F910F91FF900895E2 +:102AB0006F2D89910E948214F2CFECE4F3E08083C1 +:102AC000618324E630E042E050E0BF0184EB0C94E7 +:102AD0007F31CF93C82F60E08CE00E945D156C2F92 +:102AE00084E00E945D1561E08CE0CF910C945D154F +:102AF000CF92DF92EF92FF926B017C010E94FE0861 +:102B0000B701A60188E090E0FF90EF90DF90CF90B2 +:102B10000C94CE34AF92BF92CF92DF92EF92FF929D +:102B20000F931F93CF93DF9300D00F92CDB7DEB7F3 +:102B3000082FF62E142FE22E8091640480FF4FC0E0 +:102B4000E82FE695AE2FB0E0AB5EBD4F9C91909321 +:102B500049038E7F823009F056C0413A08F040EABE +:102B60009E012F5F3F4F6F2D802F0E94140980918F +:102B7000640480FF11C02B8139814A8180917401E6 +:102B80009091750153E0859FF0011124EA57FC4FA5 +:102B9000891798F10E948B0D80916504801308C0FD +:102BA000809166048F1104C080916704811729F019 +:102BB00080914B03826080934B0300936504F092F5 +:102BC000660410936704EE2051F0609164047091E4 +:102BD000650480916604909167040E9478150F90B7 +:102BE0000F900F90DF91CF911F910F91FF90EF9079 +:102BF000DF90CF90BF90AF900895418330832283C0 +:102C00008F5F3396C5CF923039F6E2508E2F8170A8 +:102C1000D82EE695F0E0E750FA4FA590B490C12C7D +:102C2000BB2460917601C61608F0B4CF2C2D30E09D +:102C3000A29EC001A39E900DB29E900D112470E043 +:102C40000E944834802FD11016C0860F4091740125 +:102C5000420F532F511D9A01220F331F240F351F8E +:102C60002A573C4F412F113A08F040EA6F2D0E943D +:102C70001409C394D6CF861BE9CFE4E6F4E0438180 +:102C800021E1421B08F440E021E0628181810C9443 +:102C90008A15E4E6F4E0438121E1420F08F44FEFA6 +:102CA00021E0628181810C948A15E4E6F4E062817E +:102CB00021E1621B08F460E021E0438181810C94F2 +:102CC0008A15E4E6F4E0628121E1620F08F46FEF17 +:102CD00021E0438181810C948A15E4E6F4E081814E +:102CE00021E04381628188500C948A15E4E6F4E087 +:102CF000818121E043816281885F0C948A15CF93A2 +:102D0000C82F0E94BB0C8230B1F138F48823C9F07F +:102D1000813039F18C2FCF9108958330A1F1843027 +:102D2000C9F720E040E56FEF8AED0E948A1587E041 +:102D30000E94691580910001882361F310926F0150 +:102D40000DC020E040E56FEF82E30E948A1580917C +:102D50000001882399F381E080936F010E94280F7E +:102D6000D9CF20E040E56FEF8CEF0E948A1585E413 +:102D70000E946915CFCF20E040E56FEF80E50E940B +:102D80008A1585E2F5CF20E040E56FEF86E70E94E7 +:102D90008A158FE1EDCF0E947F16809385030C94F6 +:102DA000E70B80918503982F9670963019F4886010 +:102DB0000C94CB16877FFCCF21E030E001C0220FBE +:102DC0008A95EAF720958091850382230C94CB168F +:102DD00021E030E001C0220F8A95EAF78091850357 +:102DE000822B0C94CB1680916804882319F08150B3 +:102DF0008093680460916404709165048091660416 +:102E0000909167040C94781580916804833018F4CD +:102E10008F5F809368046091640470916504809171 +:102E20006604909167040C9478159091640490FF67 +:102E300027C0917081111DC09260909364048091AD +:102E40004B03816080934B03662351F060916404CF +:102E50007091650480916604909167040E947815D2 +:102E600020E04091670460916604809165040C94B1 +:102E70008A158C3010F09661E0CF880F982BDDCF4B +:102E80000895809164048695815009F48BE061E097 +:102E90000C9415178091640486958F5F8C3008F030 +:102EA00081E061E00C9415178091640480FF07C0F5 +:102EB000869582588F77893010F40C944A1761E018 +:102EC00082E00C941517E4E6F4E083E0808311823D +:102ED0008FEF828380EA83831482A9E4B3E01296A1 +:102EE0008C911297836012968C936081718182819C +:102EF00093810C947815AB01BC0188E190E00C94AF +:102F0000CE34CF93C82FEDE5F3E0982F990F990FAA +:102F1000990F80818770892B8083EEE5F3E09C2FE9 +:102F20009295969597708081887F892B8083609198 +:102F30005B0370915C0380915D0390915E030E943E +:102F40007B176C2F82E0CF910C945D15EBE5F3E0DD +:102F500089E88083118282818C7F828360915B0308 +:102F600070915C0380915D0390915E030C947B17DC +:102F7000EBE5F3E080818E7F808360915B0370914D +:102F80005C0380915D0390915E030C947B17EBE5ED +:102F9000F3E080818160808360915B0370915C03CA +:102FA00080915D0390915E030C947B170E948830A2 +:102FB00040E060E080E00C94080F69EE7EEF90E066 +:102FC00080E00E94DA3460E082E090E00E94BC344D +:102FD00060E083E090E00E94BC341092950260E0D3 +:102FE00084E090E00E94BC3460E082E290E00E94C5 +:102FF000BC3460E085E090E00E94BC3460E086E094 +:1030000090E00E94BC346FEF87E090E00E94BC34F7 +:1030100040E050E0BA0188E090E00E94CE3460E0E9 +:103020008DE090E00E94BC3440E050E0BA0188E1BD +:1030300090E00E94CE3460E087E190E00E94BC34D2 +:1030400040E050E0BA018CE190E00E94CE3470E0A4 +:1030500060E080E290E00E94DA340E94A61780E0EF +:103060000E9413100E942B1040E050E0BA018FE044 +:1030700090E00E94CE3440E050E0BA0183E190E05D +:103080000C94CE345F926F927F928F929F92AF9208 +:10309000BF92CF92DF92EF92FF920F931F93CF9345 +:1030A000DF9300D000D00F92CDB7DEB77C01FC01DA +:1030B00083819481892B31F08081918189238F3F95 +:1030C00009F088C60F900F900F900F900F90DF912E +:1030D000CF911F910F91FF90EF90DF90CF90BF9015 +:1030E000AF909F908F907F906F905F9008950E9417 +:1030F0006D10182F682F89819A810E94BB0B6981FE +:103100007A81812F0E9460108C01F70182818823CF +:1031100061F0F801E65EFC45ED30F10530F4E55C68 +:10312000F94C0C947C340E94C717D0905B03D0FEFE +:103130001CC08D2D86958370F7019281992309F427 +:1031400060C1823090F4B701C8010E9486088823CC +:1031500061F0D694D694D69480915C038370829566 +:10316000880F807E8D290E946915F701828188234E +:1031700009F425C6C80182519F45409708F0E3C570 +:103180008FEF93E00E94A834025193EEA92E92E0B3 +:10319000B92E811197CF011138C11C821B82662480 +:1031A00063948AE0582E85010F5F1F4FC5010E946E +:1031B000A83489831A82882309F484CF9FEF980F5B +:1031C000933008F031C18A83698232E0A30EB11CCA +:1031D000C8010E94A8348B83882309F473CF8E0121 +:1031E0000F5F1F4FF80120812223E9F2213009F0FF +:1031F00055C191818281913009F018C10E5F1F4F36 +:103200006AE070E0893311F460E570E00E94F30E2B +:1032100013C10E94B81789CF80915B0380FF0DC056 +:103220000E94B81760915B0370915C0380915D030D +:1032300090915E030E947B1778CF0E94C717F2CF50 +:103240000E94A61772CF90915B03892F86958F5F9E +:103250008370880F997F892B80935B03982F9670DA +:10326000963001F7897F80935B03DCCF90915C03FC +:10327000892F8B7F92FF846080935C03D3CF8091F2 +:103280005B03982F96959695969580915C03837035 +:103290008295880F807E892B8C3798F48F5F282F3A +:1032A000220F220F220F90915B039770922B909325 +:1032B0005B0382958695837090915C039C7F892B3C +:1032C000DBCF81E0ECCF80915B03982F96959695AC +:1032D000969580915C0383708295880F807E892B00 +:1032E00011F08150DCCF8BE7DACF30915C03932F64 +:1032F00096959695969520915D03822F8370829581 +:10330000880F807E892B90E00196482F440F440F50 +:10331000440F3770342B30935C0335E096958795D6 +:103320003A95E1F783702C7F822B80935D037ACFEF +:1033300030915C03932F96959695969520915D0319 +:10334000822F83708295880F807E892B8150990B04 +:10335000DCCF80915D0382FF12C08B7F80935D0381 +:1033600060915B0370915C0380915D0390915E03BB +:103370000E947B1760E081E00E945D15D6CE8460DC +:1033800080935D0360915B0370915C0380915D03AA +:1033900090915E030E947B1760E08CE00E945D15B7 +:1033A00064E182E00E945D1565E081E00E945D15A8 +:1033B00061E08CE0E1CF80915D03982F9695969522 +:1033C000969580915E038295880F807E892B883741 +:1033D00020F4865F0E948117A8CE88E7FBCF8091FA +:1033E0005D03982F96959695969580915E038295AC +:1033F000880F807E892B843110F08A50EBCF84E1D6 +:10340000E9CF882309F4B1CE9ECEA114F4E0BF0623 +:1034100009F458CEC5010E94A834811101C00150A1 +:103420002FEFA21AB20AB7CE5801D9CE923039F492 +:103430000E5F1F4F0E94470C0F5F1F4FD3CE93307C +:1034400029F40E5F1F4F0E940E0CF6CF943019F036 +:103450000F5F1F4FF1CF0E5F1F4F30E020E0B8012C +:103460006F5F7F4FF80141818053990B8A3091053E +:1034700050F02150310900F38FE99FE00197F1F7F7 +:1034800000C00000F6CF529EF001539EF00D1124B3 +:103490009C012E0F3F1F842F8B01E1CFE22FF0E024 +:1034A000E754FE4F7490822F86958695869590E01E +:1034B000FC01E755FE4FE4902770F12C022E02C06C +:1034C000F594E7940A94E2F7E1E0EE22FF24FC0190 +:1034D000E756FE4FC490D12C022E02C0D594C7945B +:1034E0000A94E2F7F1E0CF22DD24FC01E757FE4F1A +:1034F0008490912C02C0959487942A95E2F721E05C +:1035000082229924E114F10419F081EE0E94470C03 +:10351000C114D10419F086EE0E94470C39E36AE029 +:1035200070E0731202C060E570E0872D0E94F30E18 +:10353000CD2819F086EE0E940E0CEF2819F081EECE +:103540000E940E0C892809F477CF6AE070E08CE2C3 +:103550005DCE81E00E94E81603C081E00E94DC1687 +:103560000F900F900F900F900F90DF91CF911F91C0 +:103570000F91FF90EF90DF90CF90BF90AF909F9012 +:103580008F907F906F905F900C94D11682E0E2CF85 +:10359000013E110509F4B8C0043E110519F0003EC2 +:1035A0001105B1F5882309F42EC181E08093ED0265 +:1035B000809185030E94BB0C813051F583E30E940A +:1035C000691526C00238FFE51F0709F46AC078F4C0 +:1035D000053F110509F413C1063F110509F411C196 +:1035E000043F1105A9F461E00E94CC0C11C004381D +:1035F0003FE5130709F48BC008F469C005385FE59F +:10360000150709F4CAC006389FE5190709F4DDC09B +:10361000F70192819111FDC180916E0382720A3C83 +:10362000FCE51F0709F4D5C108F02BC1053C3CE5BA +:10363000130709F4BAC108F00FC1033C5CE5150794 +:1036400009F494C108F0ACC1023C1C4509F43EC128 +:10365000F70100811181992309F4F5C1C8010E9485 +:103660006D10D82E682FC8010E94BB0BB8018D2D9C +:103670000E9460100E94080A182FB82EF7012281BC +:103680004581342F32953F70892F82958F70C82ED7 +:10369000D12C8C3008F00FC2F601E85BF94C0C9489 +:1036A0007C34882309F4B4CF81EE0E94470C83EE6A +:1036B0000E94470C8FE40E94470C8FE40E940E0C7E +:1036C00083EE0E940E0C81EE0E940E0CA1CF882387 +:1036D00009F49ECF81EE0E94470C83EE0E94470CB6 +:1036E00080E50E94470C80E5E9CF80933F0210936C +:1036F0003E0200933D02882321F081E08093EE0298 +:1037000087CF1092EE0284CF80933C02F0CF8823C3 +:1037100079F180913C02882349F080913D020E941A +:103720000E0C80EE0E94470C8AE20CC080913F0292 +:103730008823D1F380913D020E940E0C80EE0E94FE +:10374000470C8CE40F900F900F900F900F90DF912B +:10375000CF911F910F91FF90EF90DF90CF90BF908E +:10376000AF909F908F907F906F905F900C94470CDC +:103770008AE20E940E0C8CE40E940E0C80EE0E94E5 +:103780000E0C80913C02811105C080913F0288237C +:1037900009F498CC80913D02D5CF882309F423CF3A +:1037A00080916F01811104C080910001882339F05C +:1037B00010926F01109200010E94280F29CF81E022 +:1037C00080936F0180930001F7CF882309F40BCF1A +:1037D00080913B02882349F080EE90E09093710144 +:1037E0008093700110923B02E7CF86E690E09093C1 +:1037F00071018093700181E080933B02DDCF62E034 +:10380000F3CE64E0F1CE1092ED0202CF882331F0C6 +:1038100081E08093F00210926701FACE1092F002DC +:10382000F7CE882349F0809185030E94BB0C81303C +:1038300019F482E30E946915F7018281882309F453 +:10384000B0C2809185030E94BB0C813009F0A9C2EF +:1038500084E30E946915A5C2073C2CE5120709F410 +:10386000AEC008F4A7C0083C4CE5140709F4ACC08E +:10387000093C1C4509F0ECCE4DE356E169E476E1E4 +:1038800079C0043DECE51E07A8F40E3CFCE51F07DB +:1038900008F018CC0C3C2CE5120709F49FC043EF4C +:1038A00056E164E077E10D3C1C4508F463C061E03B +:1038B00081E046C0053D4CE5140709F403CC08F44B +:1038C00092C00D351D4509F4FDCBC2CE8091640434 +:1038D00080FF31C08E7F8093640460916404709196 +:1038E000650480916604909167040E947815809128 +:1038F0004B03816080934B039FEFE0E7F2E0915030 +:10390000E040F040E1F700C000000F900F900F90F2 +:103910000F900F90DF91CF911F910F91FF90EF903B +:10392000DF90CF90BF90AF909F908F907F906F90DF +:103930005F900C948B0D81608093640461E08695A8 +:103940000F900F900F900F900F90DF91CF911F91DC +:103950000F91FF90EF90DF90CF90BF90AF909F902E +:103960008F907F906F905F900C94151741E457E112 +:103970006AE477E10F900F900F900F900F90DF9116 +:10398000CF911F910F91FF90EF90DF90CF90BF905C +:10399000AF909F908F907F906F905F900C94F908FC +:1039A0004AE457E161E477E1E5CF4DE656E166E7A9 +:1039B00076E1E0CF46E756E16DE676E1DBCF45E51F +:1039C00056E161E676E1D6CF41E656E165E576E17E +:1039D000D1CF49E456E16DE376E1CCCF44E057E145 +:1039E00063EF76E1C7CF0F900F900F900F900F907D +:1039F000DF91CF911F910F91FF90EF90DF90CF90CB +:103A0000BF90AF909F908F907F906F905F900C943D +:103A100054170E3D1C4509F01BCE0F900F900F90D0 +:103A20000F900F90DF91CF911F910F91FF90EF902A +:103A3000DF90CF90BF90AF909F908F907F906F90CE +:103A40005F900C94DD17C8010E94930BD82E0ECE08 +:103A5000092F0F70907F11F00295007F812F222394 +:103A6000C9F0002369F090E2910F983010F0111125 +:103A70000BC080916E03082B00936E030E94720BA3 +:103A8000812F0E94470C17C080919402082B00934D +:103A90009402F4CF0E940E0C002369F00095105E92 +:103AA000183010F0B11027C080916E0308230093E6 +:103AB0006E030E94720B98E0C91AD108E4E0CE169A +:103AC000D10408F0FFCA0E94E30E0F900F900F90F0 +:103AD0000F900F90DF91CF911F910F91FF90EF907A +:103AE000DF90CF90BF90AF909F908F907F906F901E +:103AF0005F900C944B0E80919402082300939402E3 +:103B0000D8CF892F8F70907F903211F08295807F6F +:103B1000F1E0BF120CC0222329F0333060F60E947E +:103B2000040CC9CF323038F60E94F90BC4CF2223DF +:103B300041F03323A1F340FFA3CF4F70F70145833A +:103B4000EECF332389F3193309F0F5C0FFEF27EEE9 +:103B500033E0F15020403040E1F700C00000812FF9 +:103B60000E940E0CA8CF892F86958695837061F0F0 +:103B7000813009F0A0CF812F9370211102C090E015 +:103B800080E00E945A0897CF812F9370211102C0C4 +:103B900090E080E00E9470088ECF892F8370A1F59D +:103BA000211189CF812F829586958770880F880F84 +:103BB000412F4F70082E01C0440F0A94EAF7212FBD +:103BC000207114FF07C02FE030E001C0220F8A955A +:103BD000EAF72095969596959370923081F0822F12 +:103BE000842B933030F480919502913029F0242B6E +:103BF00082230E94F50B5FCF842B822BFACF242BDC +:103C0000809195028227F5CF8695222311F0892F86 +:103C10008170882309F44FCF812F82958695877014 +:103C2000880F880F412F4F70082E01C0440F0A944F +:103C3000EAF7212F207114FF07C02FE030E001C008 +:103C4000220F8A95EAF72095969596959370923073 +:103C500081F0822F842B933030F480918503913052 +:103C600029F0242B82230E94CB1625CF842B822B74 +:103C7000FACF242B809185038227F5CF092F0F706F +:103C8000222329F0802F0E94E816812F48CF812F10 +:103C90000E94F90B802F0E94DC160DCF812FE1EFDF +:103CA0001E1789F1E11750F0F0EF1F17B9F022232A +:103CB000B1F13111E5CE892F8F7129C042EF141770 +:103CC00049F153EF1513F3CF80E0222361F29F7186 +:103CD00081E001C0880F9A95EAF7C5CF222379F0D9 +:103CE000323008F0E8CE292F2F7181E090E001C03A +:103CF000880F2A95EAF7909185038927B4CF33304E +:103D000008F0D9CEF0CF892F8F71222321F20E94A3 +:103D1000E816D1CE892F8F712223C9F3BCCF33236C +:103D200079F0893341F48FEF97EEE3E081509040D2 +:103D3000E040E1F712CF8FE39CE90197F1F70DCF57 +:103D4000892F8F71A8CF0031FFE51F0709F401CC3F +:103D500001312FE5120709F419CC0E944E08609337 +:103D6000F5027093F6028093F7029093F802F70140 +:103D70008281053E110509F4B8CC08F023CC0C3241 +:103D8000110509F443CD08F003CC0A30110509F4FC +:103D900048CD0531110509F44FCD0930110509F061 +:103DA00037CCF7018281882309F432CC80918503D6 +:103DB0000E94BB0C813009F02BCC81E300CC003198 +:103DC0003FE5130709F4C9CB01314FE5140779F634 +:103DD00082E0C4CB85E0DE01119601900D928A95B8 +:103DE000E1F7F701228189819A81211180C90E941E +:103DF000930B182F84C91F93CF93DF938091600298 +:103E0000807FA9F480915D02882389F080919202DD +:103E1000D091610260915B0270915C02A0915E02A0 +:103E2000B0915F02C62FC72316E0D81304C0DF91FC +:103E3000CF911F91089590E0109711F0CF3F19F4A2 +:103E400001968770F2CF189F9001199F300D1124B1 +:103E5000F901EE59FD4F41814713F2CF40814613DE +:103E6000EFCF42814111ECCF438154814A1B5B0B60 +:103E7000403A510528F7809160028F7080618093ED +:103E80006002F901E959FD4F80818F708061808364 +:103E90008BE592E00E944218DF91CF911F910C9424 +:103EA000890BAF92BF92CF92DF92EF92FF920F9366 +:103EB0001F93CF93DF93CDB7DEB761970FB6F8941A +:103EC000DEBF0FBECDBF8C0185E0F801DE011D967F +:103ED00001900D928A95E1F7F801E2808BE5A82E1A +:103EE00082E0B82E60915E0270915F0261157105EB +:103EF00009F432C190915B0240915C02892F8423C6 +:103F00008F3F09F429C120813181C380D480F09092 +:103F10005D02F601E61BF70BFF2009F4E8C0809173 +:103F20006002582F507FE03AF10508F0ABC0511104 +:103F300077C0FE2C431321C092131FC0E1101DC097 +:103F40008F70806180936002C5010E944218809149 +:103F50006002F80185838F2D61960FB6F894DEBF5D +:103F60000FBECDBFDF91CF911F910F91FF90EF90CA +:103F7000DF90CF90BF90AF900895CD2829F0822F89 +:103F800083238F3F09F003C180E0F82FF170DF2E0B +:103F900080FF3CC0809192024091610256E0841300 +:103FA00015C02D873E878D859E850E949C10292FE8 +:103FB00022952F702230F0F0243018F59F70F1F028 +:103FC000F8019581907FD1F4D12C1EC090E0589FCC +:103FD000F001599FF00D1124EE59FD4F6181361308 +:103FE00006C06081261303C06281E6120FC00196ED +:103FF0008770D5CF9F7011F0882331F3805E8830B1 +:1040000018F3C8010E944218FD2CA5CFEE2009F438 +:10401000A2CF80916002816080936002F12C9BCFDF +:10402000431306C0921304C0F801EE2009F479C0CE +:10403000C8010E94A810882309F1EE20F9F08091B0 +:104040006002803270F020915B0230915C02388710 +:104050002F831986DB86CA868C87CE0107960E943D +:10406000421886E0F801ABE5B2E001900D928A9526 +:10407000E1F70E94FB1EFF24F3946DCFC8010E945C +:104080004218F9CF51110AC08BE592E00E94421804 +:1040900086E0F50111928A95E9F7C0CF43130FC06E +:1040A00092130DC0E1100BC0F8018583C8010E9476 +:1040B000421886E0F50111928A95E9F74CCFC801C4 +:1040C0000E94A8108823D1F2EE20C1F280916002F4 +:1040D000803238F220915B0230915C023A8329836E +:1040E0001B82DD82CC828E83CE010196B8CFE03A6E +:1040F000F105F8F6FE2CEE2009F243131FC09213CF +:104100001DC08091600280FD10C0982F907F69F0E3 +:10411000F8018583903F31F0982F907F905F8F70EA +:10412000892B8583C8010E94421886E0F801ABE51F +:10413000B2E001900D928A95E1F70DCFC8010E947F +:10414000A81081118ECF80916002816080936002FF +:10415000C8010E944218FFCEEE2009F48FCFC8019B +:104160000E94A810F82E882309F488CF86E0F80171 +:10417000ABE5B2E001900D928A95E1F780915B0288 +:1041800090915C020E949C100E94FB1EE4CE81E094 +:104190008E25FBCE1F93CF93DF93CDB7DEB7679706 +:1041A0000FB6F894DEBF0FBECDBF4B8B5C8B6D8B13 +:1041B0007E8B8F8B6111109294021A8A198A85E086 +:1041C000FE017396DE011D9601900D928A95E1F72E +:1041D00086E0FE013D96DE01179601900D928A95CC +:1041E000E1F7CE0107960E94511F882389F016E05F +:1041F000809192029091610289134BC067960FB62D +:10420000F894DEBF0FBECDBFDF91CF911F9108950F +:1042100086E0FE013796DE01119601900D928A9597 +:10422000E1F78A859B85892B11F38F8198858923F6 +:104230008F3FE9F22091610230E0C9010196877059 +:104240009927409192024817190681F410926E0343 +:104250000E94AE11109261021092920286E0EBE58C +:10426000F2E0DF011D928A95E9F7C1CF96E0929FB7 +:10427000D001939FB00D1124AE59BD4FFE01319670 +:1042800001900D929A95E1F7809361020E94890B4B +:10429000AECF819FC00111248E599D4F0E94511FA6 +:1042A000882309F4ABCF8091920290E00196877049 +:1042B0009927809392029CCF0F931F93CF93DF9304 +:1042C00000D000D0CDB7DEB76091C5027091C602B4 +:1042D0008091C7029091C8020E943208643671052D +:1042E0008105910588F10E94C00E882379F10E9412 +:1042F0004E086E5F7F4F8F4F9F4F69837A838B830A +:104300009C8380912C0190912D0180559D4F40916F +:104310002B0150E04530510510F044E050E0BE0163 +:104320006F5F7F4F0E949F3484E090E00E9494333F +:10433000892BD9F40E944E086093C5027093C6027F +:104340008093C7029093C80281E010C00E944E087B +:104350000091D2021091D3022091D4023091D50263 +:10436000600F711F821F931FC4CF80E00F900F90CA +:104370000F900F90DF91CF911F910F910895BF92F1 +:10438000CF92DF92EF92FF920F931F93CF93DF9321 +:10439000B82EEB01F42E6901688179818A819B81B5 +:1043A0000E943208643671058105910510F4FF20E2 +:1043B00019F1EB2C0B2C000CFF088B2D9AE08902D5 +:1043C000F0011124EF5FFE4F8381948180559D4F52 +:1043D000428150E00417150708F4A801B6010E94B5 +:1043E0009F34C7010E949433892B89F40E944E08A0 +:1043F000688379838A839B8381E0DF91CF911F91CA +:104400000F91FF90EF90DF90CF90BF90089580E0E4 +:10441000F4CF0F931F93CF93DF930F92CDB7DEB7F7 +:104420008091590389832091C40290E041E02817CC +:10443000190609F440E001E010E09E012F5F3F4FB4 +:104440006DEC72E086E00E94BF210F90DF91CF916A +:104450001F910F9108950F931F93CF93DF93CDB7C3 +:10446000DEB728970FB6F894DEBF0FBECDBF85E04C +:10447000E4E6F4E0DE01119601900D928A95E1F7F1 +:104480008091490390914A03A0914B038E839F83AF +:10449000A88741E08885811101C040E008E010E074 +:1044A0009E012F5F3F4F69EC72E085E00E94BF21C3 +:1044B000811110924B0328960FB6F894DEBF0FBE01 +:1044C000CDBFDF91CF911F910F9108956F927F9291 +:1044D0008F929F92AF92BF92CF92DF92EF92FF9214 +:1044E0000F931F93CF93DF930F92CDB7DEB7862E36 +:1044F0005A016901682E880F7708C3010E9494331E +:10450000892B09F07BC08AE0869DF001879DF00D24 +:104510001124EF5FFE4F458150E04115510511F028 +:1045200041E050E08AE0869DF001879DF00D112466 +:10453000EF5FFE4F6681778160557D4FCE0101961A +:104540000E949F34F50160817181828193810E9474 +:104550003208643671058105910540F4B701C80140 +:104560000E94E3089981891709F44FC0082C000CB8 +:104570009908C4010E949433892B91F0B12C8B2DA2 +:104580000F90DF91CF911F910F91FF90EF90DF90EF +:10459000CF90BF90AF909F908F907F906F90089535 +:1045A0008AE0889DF001899DF00D1124EF5FFE4F98 +:1045B000458150E0E416F50608F4A7018AE0889DDD +:1045C000F001899DF00D1124EF5FFE4F6681778128 +:1045D00060557D4FC6010E949F34B701C8010E94FB +:1045E000E30899818913CACF0E944E08F5016083C0 +:1045F000718382839383BB24B394C1CFB12CA70171 +:10460000B801C6010E949F34BACFBB24B394F7CF40 +:10461000CF92DF92EF92FF920F931F93CF93DF938E +:1046200000D000D00F92CDB7DEB76B0185E0E82E49 +:10463000F12C01EB12E09E012F5F3F4F48EA52E060 +:1046400061E080E00E946622882349F095E0FE0147 +:104650003196A3EAB2E001900D929A95E1F795E0C8 +:10466000E3EAF2E0D60101900D929A95E1F70F90FE +:104670000F900F900F900F90DF91CF911F910F919E +:10468000FF90EF90DF90CF90089590E080E00E943F +:10469000B634893E9E4F11F40C94CF1080E00895FB +:1046A0001F920F920FB60F9211242F933F934F93A7 +:1046B0005F936F937F938F939F93AF93BF93CF93AA +:1046C000DF93EF93FF93D091E900DF708091EC00CE +:1046D000C82FC17080FDC0E81092E9008091F00001 +:1046E000877F8093F00078940E94B7111092E900C0 +:1046F0008091F00088608093F000CD2BCF70C09344 +:10470000E900FF91EF91DF91CF91BF91AF919F9120 +:104710008F917F916F915F914F913F912F910F906A +:104720000FBE0F901F9018951F920F920FB60F9209 +:1047300011242F933F934F935F936F937F938F93A6 +:104740009F93AF93BF93EF93FF938091E10082FF1C +:1047500009C08091E20082FF05C08091E1008B7F5B +:104760008093E1008091DA0080FF24C08091D8001E +:1047700080FF20C08091DA008E7F8093DA008091E4 +:10478000D90080FF9DC080E189BD82E189BD09B467 +:1047900000FEFDCF81E080937B0380916D0381114A +:1047A00009C00E94A4060E946F078091E200846005 +:1047B0008093E2008091E10080FF17C08091E200C9 +:1047C00080FF13C08091E2008E7F8093E200809191 +:1047D000E20080618093E2008091D8008062809343 +:1047E000D80019BC85E080937B038091E10084FFB1 +:1047F0002BC08091E20084FF27C080E189BD82E167 +:1048000089BD89B5982F917080FFFBCF8091D8002A +:104810008F7D8093D8008091E1008F7E8093E100AE +:104820008091E2008F7E8093E2008091E2008160BF +:104830008093E20080917C03882309F447C084E0E0 +:1048400080937B0380917B038091E10083FF27C0ED +:104850008091E20083FF23C08091E100877F8093F5 +:10486000E10082E080937B0310927C038091E10061 +:104870008E7F8093E1008091E2008E7F8093E20042 +:104880008091E20080618093E20042E060E080E09D +:104890000E943D078091F00088608093F000FF91B6 +:1048A000EF91BF91AF919F918F917F916F915F91A8 +:1048B0004F913F912F910F900FBE0F901F90189521 +:1048C00019BC10927B0310926D0374CF8091E300AA +:1048D00087FD93E090937B03B5CF78941F921FB62A +:1048E0001F9211248F939F93AF93BF938091660380 +:1048F00090916703A0916803B09169030196A11D8F +:10490000B11D8093660390936703A0936803B093EF +:104910006903BF91AF919F918F911F901FBE1F9010 +:1049200018959C014FB7F8948091660390916703A6 +:10493000A0916803B09169034FBF821B930B089548 +:104940002FB7F8948091660390916703A091680354 +:10495000B09169032FBF0895AF92BF92DF92EF929B +:10496000FF920F931F93CF93DF93CDB7DEB761977D +:104970000FB6F894DEBF0FBECDBF4C87888B998BE6 +:10498000E52ED62EF72E5E0127E0A20EB11C85E0A3 +:10499000F50111928A95E9F7809148038A3008F071 +:1049A00095C080914603909147030E9491240897F7 +:1049B00008F48CC004E610E025E030E0A50164E0D6 +:1049C00084E10E94D331892B09F0DEC010924803A4 +:1049D0008B8587FDD1C0E894E0F8809144039091E5 +:1049E0004503009709F0C2C08F819885891708F0A8 +:1049F00091C0981B892F41E0209170013091710185 +:104A0000889FC001112455E0589FF001599FF00D77 +:104A10001124E29FB001E39F700DF29F700D1124ED +:104A2000660F672F661F770B7195442319F07195F8 +:104A3000619571098091420390914303680F791F3A +:104A400089859A85891708F068C0981B892F41E0ED +:104A5000889FC001112455E0589FF001599FF00D27 +:104A60001124E29FC001E39F900DF29F900D11244D +:104A7000880F892F881F990B9195442319F09195E0 +:104A8000819591092091400330914103820F931F3A +:104A9000603871050CF444C06F577109709343037B +:104AA000609342033FE7D32E803891050CF44BC04E +:104AB0008F57910990934103809340039FE7F92E0C +:104AC0000E94A0249093470380934603ED86DE86E0 +:104AD000FF8686E0FE013C96DE01119601900D9264 +:104AE0008A95E1F729813A814B815C816D817E81D4 +:104AF00080E090E061960FB6F894DEBF0FBECDBFA8 +:104B0000DF91CF911F910F91FF90EF90DF90BF90B9 +:104B1000AF900895891B40E06FCF891B40E098CF8C +:104B20006138FFEF7F074CF461587F4F7093430368 +:104B30006093420321E8D22EB7CFD62E10924303C2 +:104B400010924203B1CF81382FEF92074CF4815875 +:104B50009F4F909341038093400381E8F82EB0CF9C +:104B6000F82E1092410310924003AACF0197909320 +:104B7000450380934403A4CF6894E0F884E00E9446 +:104B8000691584E190E0F3CF809148038F5F8093B3 +:104B9000480396CF9F92AF92BF92CF92DF92EF924F +:104BA000FF920F931F93CF93DF93CDB7DEB7649738 +:104BB0000FB6F894DEBF0FBECDBF8E010F5F1F4F43 +:104BC0008AE0D8011D928A95E9F79EE4C92E91E00A +:104BD000D92EF12CE12CAA24A394B12CF6018191B9 +:104BE0006F018F3F09F444C0F894E82FE295EF700D +:104BF000F0E021A18F70A50102C0440F551F8A95D6 +:104C0000E2F7CA01922F982B91A392A18095892354 +:104C100082A30E94AC0900C0E7E4F1E0912C31E0EE +:104C200021912F3F09F478C0A22FA295AF70B0E078 +:104C300090968C9190E02F7002C0959587952A955B +:104C4000E2F780FD69C0832F982A330F51E0EE34DC +:104C5000F50731F7F601319780818F3F11F00E94FF +:104C6000AE0980EA8A95F1F7F801EE0DFF1D9082FA +:104C7000AFEFEA1AFA0AB5E0EB16F10409F0AECF8D +:104C80004AE050E0B80188ED92E00E9492347C0145 +:104C9000892B41F08AE0F801A8EDB2E001900D9275 +:104CA0008A95E1F71091E302E114F104B9F181E092 +:104CB000809398020E94A02490939702809396027A +:104CC00080919602909197020E949124069770F02D +:104CD000A8EDB2E0E12FF0E0E65DFC4F8D9181930D +:104CE00022E0AD3DB207D1F71092980281E090E04A +:104CF000EF28C1F064960FB6F894DEBF0FBECDBFAB +:104D0000DF91CF911F910F91FF90EF90DF90CF90A7 +:104D1000BF90AF909F90089580E096CF80919802C9 +:104D20008111CECF0E94C00ED82EE091E3028823DD +:104D300009F4C9C07E0140E1E40EF11C85E0D70111 +:104D40001D928A95E9F70E2F10E0065D1C4F8091A9 +:104D5000D1028A3008F080C048E053E2B701C801B0 +:104D60000E947C0E882309F49AC041E358E2B701FF +:104D7000C8010E947C0E882309F491C04CE551E2E1 +:104D8000B701C8010E947C0E882309F488C04BE259 +:104D900052E2B701C8010E947C0E882309F47FC04B +:104DA00049E052E2B701C8010E947C0E882309F451 +:104DB00076C01092D1028091E20290E045E050E08E +:104DC000B701865D9C4F0E94923421E02093A1029E +:104DD000892B09F057C0D12C8BE9E82E82E0F82E00 +:104DE00010E000E0D7018D917D018823D1F08695F8 +:104DF000F80109F465C0E950FE4F808191819C87DC +:104E00008B871D860E94A0248160782F9F878E87C4 +:104E1000F701319710824B855C856D858F850E94E7 +:104E2000CA200E5F1F4F04301105E1F66091F502B4 +:104E30007091F6028091F7029091F8020E94320878 +:104E400061367A4E8105910528F040E060E080E00F +:104E50000E94080F8D2D4ECF8091990290919A0259 +:104E60000E949124843F914008F076CF8091A10266 +:104E7000882309F4B0CF85E0F70111928A95E9F70C +:104E80001092A102A091E202B0E0A65DBC4F85E0C5 +:104E9000FE01709601900D928A95E1F79DCF809169 +:104EA000D1028F3F31F08F5F8093D1028A3008F4B6 +:104EB00082CF0E94A02490939A0280939902D6CF29 +:104EC000ED50FE4F9ACFF0E0E65DFC4FF89485E0A0 +:104ED000A1EBB2E001900D928A95E1F765E070E0F8 +:104EE00081EB92E00E94E3088093B0020E94AC093B +:104EF000F894E091EB02F0E0E851FD4F80818B8760 +:104F00008093B70261E070E0CE010B960E94E30847 +:104F10008093B6020E94AC09F894C090B802D09079 +:104F2000B902E090BA02F090BB0280919D0290918C +:104F30009E02A0919F02B091A002C816D906EA066F +:104F4000FB06D1F0C0929D02D0929E02E0929F0299 +:104F5000F092A0020E94C00E81110EC00E944E0865 +:104F6000C61AD70AE80AF90AC092D202D092D3022E +:104F7000E092D402F092D5020E94AC09F89480919C +:104F8000C3028823F1F080FF0DC08091BC0280FF36 +:104F900025C09091640491609093640460E08695CC +:104FA0000E9415178091C30281FF09C020E0409143 +:104FB000BF026091BE028091BD020E948A151092CC +:104FC000C3020E94AC09F8948091C402882349F07E +:104FD0000E94860F0E94AC0980E08CCE0E94670E72 +:104FE000E1CF0E946B0FF6CFEF92FF920F931F93CA +:104FF000CF93DF9300D000D00F92CDB7DEB7162F3E +:10500000E82EF12CC701880F991F662339F18950CA +:105010009E4FFC01808191819A83898301E00B83FB +:105020000E94A0248160782F9D838C83F701E55630 +:10503000FD4F0127110F102B108349815A816B817D +:105040008D810F900F900F900F900F90DF91CF9167 +:105050001F910F91FF90EF900C94CA208D509E4F9E +:10506000D8CFCF92DF92EF92FF920F931F93CF93FF +:10507000DF930F92CDB7DEB7EE24E394F12C07EB6C +:1050800012E09E012F5F3F4F4CEA52E063E082E066 +:105090000E946622082F882321F1C090E5028C2D02 +:1050A00090E09C0128513D4F79011981F9018081DF +:1050B000181BD12E80E00AC0DA94F70180818F5F3F +:1050C000808360E08C2D0E94F427802F1D14A4F3B0 +:1050D000912F17FD90E0191B11110EC081110E9434 +:1050E000700B802F0F90DF91CF911F910F91FF9048 +:1050F000EF90DF90CF9008951F5FF701808181507E +:10510000808361E08C2D0E94F427802FE5CF1F92D1 +:105110001FB61F9211248F939F93AF93BF938091DB +:105120006503811113C08091660390916703A0917C +:105130006803B09169034196A11DB11D8093660378 +:1051400090936703A0936803B0936903BF91AF91F5 +:105150009F918F911F901FBE1F901895CDB7DEB7FE +:10516000E0970FB6F894DEBF0FBECDBF84B7877F40 +:1051700084BF0FB6F894A8958091600088618093F1 +:105180006000109260000FBE80E890E00FB6F894C7 +:1051900080936100909361000FBE85B7806885BFE2 +:1051A00085B7806885BF8AEA99E090933102809341 +:1051B00030020E94A4060E946F078091E200846082 +:1051C0008093E200789480917B038823A1F0109172 +:1051D000E9001F709091EC00892F817090FD80E8AC +:1051E000182B1092E9008091E80083FD0E94B7110E +:1051F0001F701093E90082E084BD93E095BD9AEFA3 +:1052000097BD80936E001092D2021092D30210923A +:10521000D4021092D5020E94CF10811102C00E94C8 +:105220002B100E94C00E8093580180915801882352 +:1052300009F4C9C01092720185E2809373010E9443 +:10524000C00E81110E9487328091580181112FC0B8 +:10525000FE01359686E0DF011D928A95E9F786E624 +:10526000898387E98A8386EC8B8384E38C8385E357 +:105270008D833497AEE4B1E0CE010B9621912D934E +:105280008E179F07D9F787E0E8E7F1E0DE019196F6 +:1052900001900D928A95E1F7FE01B196A7E4B1E085 +:1052A000CE01889621912D938E179F07D9F7809173 +:1052B000580195E0811190E09093E30285E0891B0D +:1052C0008093E2020EE411E083E5E82E81E0F82EFF +:1052D000F80181918F018F3F11F00E94AE09E01615 +:1052E000F106B1F707E411E0BEE4EB2EB1E0FB2ECE +:1052F000D8018D918D018F3F11F00E94AE09E0160B +:10530000F106B1F78AE0EAE2F3E0DF01282F1D920F +:105310002A95E9F7E8EDF2E0DF011D928A95E9F7B9 +:105320000E944523811102C00E94DD1782E090E0B7 +:105330000E94A83480931F0384E090E00E94A83468 +:10534000182F82E290E00E94A834982F812F90932A +:10535000D7028093D6020E94CA25EFE7FBEB319774 +:10536000F1F700C000000E94CA2580912A0380FF47 +:105370002EC06FEF7FEF90E080E00E94DA3481E092 +:105380008093E00080E28093D8001092C9008FE102 +:105390009EE40197F1F700C0000087E090EBDC018C +:1053A00080936D0690936E06A0936F06B09370067F +:1053B00088E19CE00FB6F894A895809360000FBE3A +:1053C00090936000FFCF85E28093720136CF83E037 +:1053D00090E00E94A8340E94F50B809185030E9402 +:1053E0007F160E944523811102C00E94DD1788E1CB +:1053F00090E00E94B03460935B0370935C038093F1 +:105400005D0390935E03672B682B692B11F40E9458 +:10541000A6170E94883067E081E00E945D1565E56F +:1054200086E10E945D1563E687E10E945D1560EAF2 +:105430008AE10E945D1569E98BE10E945D1565EFC7 +:105440008CE10E945D1560EA8DE10E945D1560E3CC +:105450008EE10E945D1566E083E00E945D1561E0CB +:105460008CE00E945D1560E081E00E945D1560E0C7 +:105470008CE00E945D156FE084E00E945D1561E0A4 +:105480008CE00E945D150E94C00E811102C00E9436 +:105490008A3283E080931A0380E280934E030E9455 +:1054A00088306DE070E08CE492E00E943B0F892B25 +:1054B000E9F580911A0363E070E081FD05C289E49B +:1054C00092E00E943B0F892B89F56DE070E089E343 +:1054D00092E00E943B0F892B49F50E944E086058CC +:1054E000774C8E4F9F4F6093550370935603809374 +:1054F000570390935803EBE6F4E080E092E0DF017D +:105500009C011D9221503040E1F7F0936C06E0932E +:105510006B068FEF9FEF90936A048093690481E09C +:1055200080935A038093590310921B038091E402E5 +:10553000811136C00E944523811104C00E94DD17ED +:105540000E94631788E090E00E94B0346093640486 +:1055500070936504809366049093670480914B0375 +:10556000836080934B036E7F71F40E94631788E021 +:1055700090E00E94B034609364047093650480935B +:105580006604909367040E94FE088091640480FF83 +:1055900004C060E086950E94151781E08093E402C4 +:1055A00080915801811106C084EF8093660185EFD8 +:1055B0008093650120916601A22FA295AF70B0E0A3 +:1055C00091963C9191972F7081E090E0BC01022E62 +:1055D00001C0660F0A94EAF7462F4095432391963F +:1055E0004C93919792963C919297362B92963C933E +:1055F000929740916501E42FE295EF70F0E031A1C0 +:105600004F70042E01C0880F0A94EAF7982F9095E6 +:10561000932391A392A1892B82A390968C9190E0E1 +:1056200002C0959587952A95E2F7817020A130E018 +:1056300002C0359527954A95E2F792E020FF90E069 +:10564000892B8093EC029091580181E098279093E8 +:10565000EB02891B8093E5020E94D61760E08AE086 +:105660000E94151781E00E94CB1680EE90E0909387 +:105670007101809370010E94280F89E591E0909359 +:10568000620380936103A0E46A2E80917B03FF2470 +:10569000F39400E112E1853009F465C10E94CA2546 +:1056A000E82E81110E944E08FAE22F2EF3E03F2EE1 +:1056B000E0E2F3E0D10110E000E0B02EDD90819156 +:1056C0008D1509F474C18D25C12CFF24F394982FF6 +:1056D0009F2109F467C10E94C00E882399F0C9A2D6 +:1056E000BAA2DF2081E009F480E08BA30E94A0240D +:1056F0008160782F9DA38CA349A15AA16BA18DA194 +:105700000E94CA20F801E05EFC4F8081F826F082FA +:105710008091EC02E82FEE0FEE0F90916601A92F19 +:10572000A295AF70B0E090962C9130E09F7002C0CF +:10573000359527959A95E2F7217033279091650169 +:10574000A92FA295AF70B0E090964C9150E09F7059 +:1057500002C0559547959A95E2F7CA01817099273D +:1057600040FF02C082E090E0822B8E2B8093EC02FF +:105770001091EB028F70E82FF0E0E350FE4F808134 +:105780009091EA02890F8093EA02F12C84306CF048 +:10579000E12FF0E0E851FD4F80818F5F808360E072 +:1057A000812F0E94F427FF24F3948091EA028D3F19 +:1057B0006CF4E12FF0E0E851FD4F8081815080834F +:1057C00061E0812F0E94F427FF24F3948091EA0284 +:1057D000082E000C990B64E070E00E9468348093FE +:1057E000EA02F1100E94700B80915A03882351F154 +:1057F00080911C0390911D030E949124C29708F090 +:10580000EDC02091690430916A042115310509F039 +:10581000F0C1809159038823A9F00E944E0800919D +:105820005503109156032091570330915803601B84 +:10583000710B820B930B6F3F7F4F8F4F9F4710F47D +:105840000E946B0FE11001C0F1100E94860F0E94B0 +:10585000E8100E94E30E90911E03891731F00E9418 +:10586000E30E80931E030E944B0E80917B038430D5 +:1058700009F00BCF83E08093E9008091E80082FF7C +:1058800004CF8091E80090E085FF0CC00E94C30621 +:1058900030E2E32EF12C8E010F5F1F4F882309F4B5 +:1058A00087C291E08091E8008B778093E80099238C +:1058B00009F4EBCEE981E150E33108F0DDC2F0E01C +:1058C000EC5AF94C0C947C3486E492E0FACD809149 +:1058D0007B03843009F437C080E00E944B0E809136 +:1058E000E702811109C0F092E7028091640481709F +:1058F0008093E6020E94670E0E946B0F0E94E810E0 +:105900001092650388E190E00FB6F894A895809313 +:1059100060000FBE6092600083B7817F846083BFA8 +:1059200083B7816083BF7894889583B78E7F83BF68 +:105930000FB6F894A895809160008861809360000C +:10594000109260000FBE80917A03882361F00E945C +:10595000CA25EAE2F3E081918111B9C3A4E3B3E07F +:10596000AE17BF07C1F780917B03853009F4AFCF35 +:1059700010926E030E94AE110E94E30E0E944B0E25 +:105980001092E7028091E602882349F08091640436 +:1059900081608093640460E086950E9415170E94E0 +:1059A000280F7CCEC394FF0C27E0C21290CE0F5F6D +:1059B0001F4F0A30110509F080CE8FEF88A789A705 +:1059C0001AA60E94A0248160782F9CA78BA748A5C7 +:1059D00059A56AA58CA50E94CA209ACE0E94A0242F +:1059E00090931D0380931C0360E080E00E94CC082C +:1059F0000E94E30E8093F9020E94C00E882309F4EE +:105A0000DFC06091F5027091F6028091F7029091EB +:105A1000F8020E943208613375478105910540F014 +:105A20000E946B0F80915A03882309F4F2CEE9CECD +:105A30000E94860F61E080E00E94CC0860E08FE762 +:105A400091E00E94411562E080E00E94CC088091C4 +:105A500085030E94BB0C823009F48CC008F081C021 +:105A6000882309F487C0813009F48AC065E080E0AA +:105A70000E94CC0860E08DE991E00E94411566E04B +:105A800080E00E94CC086091F9026695617082EA1C +:105A900091E00E94411567E080E00E94CC0860918F +:105AA000F9026095617087EA91E00E94411568E013 +:105AB00080E00E94CC086091F90262FB662760F9E1 +:105AC0008BEA91E00E9441156091F1027091F2021F +:105AD0008091F3029091F4020E9432086D3271407D +:105AE0008105910508F49ECF0E944E086093F10253 +:105AF0007093F2028093F3029093F4028091F0028B +:105B0000811104C080916701811142C06DE080E085 +:105B10000E94CC0860E080EB91E00E9441156AE0B1 +:105B200080E00E94CC0881E0809367018091EF02C1 +:105B300090E00196817099278093EF0221E030E098 +:105B4000281B390B40E6429FC001439F900D112452 +:105B50002091EE02222351F187529C4F0E94610650 +:105B600061CF833089F0843009F080CF60E081E933 +:105B700091E003C060E085E891E00E94411576CF96 +:105B800060E08BE891E0F9CF60E087E991E0F5CF44 +:105B90006AE080E00E94CC0860E080EB91E00E9427 +:105BA00041156BE080E00E94CC08C0CF2091ED024F +:105BB000222319F0875E9C4FD1CF875A9D4FCECFBD +:105BC00064E080E00E94CC0860E086EB91E00E94F7 +:105BD000411565E080E00E94CC0860E08CEB91E02C +:105BE0000E94411569E080E00E94CC0889E994E0B8 +:105BF000B5CF80911B0361E070E081110ACE082FC0 +:105C000010E02B01082E02C0440C551C0A94E2F748 +:105C1000A90144215521452B09F448C090911A034C +:105C200090FD46C08295880F807680936A01980126 +:105C3000369527953695279520936D01815E809343 +:105C40006B0110926E0124E630E047E050E068E618 +:105C500071E088E70E947F31892B09F0DACDA80135 +:105C600075E0440F551F7A95E1F780911A0380FD86 +:105C70002DC045595B4F04E610E020E230E060E4BF +:105C800088E70E94A631892B09F0C3CD0E94860FB8 +:105C9000C201809590954090690450906A04482212 +:105CA000592250926A0440926904B3CD8F5FA7CF06 +:105CB000880F880F880F80936A0110926D01895FA9 +:105CC00080936B0183E080936E01BDCFEAEFF2E039 +:105CD00080E2DF011D928A95E9F7E1E1F2E0F8AB9D +:105CE000EFA70DE012E067E0A62E99249394AFA5EC +:105CF000B8A96D91B8ABAFA7F80181918F01840F5E +:105D0000952F911D9C0125593B4F3EA72DA7E62FAE +:105D1000F0E0E650FD4F30E020E07A2C721AB92C0A +:105D2000022E01C0BB0C0A94EAF7CDA4DEA490E0D9 +:105D3000D6018D916D018B21672D691B6770862EB1 +:105D4000062E000C770BB82F01C0BB0F8A94EAF720 +:105D50008B2E7195619571096770772701C08695C3 +:105D60006A95EAF7882A8081882A80829F5F983026 +:105D7000F9F62F5F3F4F31962830310571F6E5E196 +:105D8000F2E02FA538A9E217F30709F0B0CF04E637 +:105D900010E020E230E04AEF52E071CF8091F10054 +:105DA000D8018D938D01B1E0EB1AF10809F479CD9A +:105DB0008091E80085FDF2CF8091E8008B77809399 +:105DC000E8000E94C306882399F36BCD1A8289E00C +:105DD0008B8311C08A81823009F491C1833091F1A3 +:105DE000813009F049C00E944E080E9482346B83C2 +:105DF0007C838D839E8380917B03843009F045CC26 +:105E00001091E9001F709091EC00892F817090FD36 +:105E100080E8182B82E08093E9008091E80080FF01 +:105E20000DC050E040E060E270E0CE0101960E94BB +:105E3000F4068091E8008E778093E8001F7010933D +:105E4000E90023CCFE013396D1018D911D01819390 +:105E5000B4E32B16B3E03B06B9F7CDCF8A8182308D +:105E600059F46B817C818D819E810E94823486E20F +:105E700090E00E94BC34BFCF8FEF8983BCCF4C81B0 +:105E80006B818A810E943A109827892798279E83E0 +:105E90008D83B1CFED80FE80FE24EF24FE248A8125 +:105EA0000B81EEE00E9F80011124FCE88F9F000D16 +:105EB000111D11248C8190E0880F991F080F191F64 +:105EC0006F2DC80187960E94BC346E2DC80188963C +:105ED000D0CF0E94BE0F8FCF8A818138C1F060F48D +:105EE000803809F088CF20E04B8160916604809172 +:105EF00065040E948A157FCF8238E9F0833809F063 +:105F00007ACF20E0409167046C818B81F2CF60E012 +:105F10008B810E9415178B81811103C00E94670E2F +:105F20006ACF8091640481608093640460E0869508 +:105F30000E94151760CF8B81809368045CCF8A81A3 +:105F4000813899F030F4803809F055CF809167049A +:105F50003FCF823891F0833809F04DCF80916504AE +:105F60008B83809166048C8346CF8091640480FF8C +:105F700002C086952DCF80E02BCF8091680428CF7A +:105F80006091640470916504809166049091670447 +:105F90000E94781530CF80E18A832DCF81E08A83FB +:105FA0008DE116CFCA80DB80DC24CD24DC248E0179 +:105FB0000F5F1F4FEC80E00EF12EF11CC6018D51DA +:105FC0009D4F0E151F0509F416CF2DE1C21621E0D5 +:105FD000D20658F40E94A834D80114968C93FFEF8F +:105FE000CF1ADF0A0F5F1F4FE9CFF8011482F7CFF6 +:105FF0000A811B811027012710279E012F5F3F4F29 +:106000006901EC80E00EF12EF11CC8018D519D4F0D +:10601000E016F10609F4EFCE0D3131E0130728F454 +:10602000D60114966C910E94BC34BFEFCB1ADB0AE8 +:106030000F5F1F4FEACF0E94AE0FDDCE85E0ACCFE1 +:10604000CA80DB80DC24CD24DC248E010F5F1F4F4F +:10605000EC80E00EF12EF11CC6018796E016F106E9 +:1060600009F4C9CEECEBCE16E2E0DE0658F40E944D +:10607000A834D80114968C93FFEFCF1ADF0A0F5F74 +:106080001F4FEACFF8011482F7CF0A811B81102736 +:10609000012710279E012F5F3F4F6901EC80E00E22 +:1060A000F12EF11CC8018796E016F10609F4A3CE83 +:1060B0000C3B32E0130728F4D60114966C910E9431 +:1060C000BC34BFEFCB1ADB0A0F5F1F4FEBCF09BD0C +:1060D00019BD09B400FEFDCF8091D8008F7D80935B +:1060E000D8008091E00082608093E0008091E00021 +:1060F00081FDFCCF10926E030E94AE1134CC86E27B +:1061000090E00E94A8341B821C821D828E8373CE75 +:106110001092B9008CE08093B80008959F92AF92DE +:10612000BF92CF92DF92EF92FF920F931F93CF9384 +:10613000DF93B82EEB010E94A0246C01EE24E394BF +:10614000F12CC431D10560F025E0E22EF12CCF3FD7 +:10615000DC0731F0CE0164E170E00E9448347B013D +:1061600084EAA82E94E8992E1092BC00A092BC005C +:106170000E94A0248C018091BC0087FF0DC08091FB +:10618000B900887F883039F18091B900887F8031EB +:1061900011F10FEF1FEF09C00E94A024801B910B8B +:1061A0008E159F0540F30EEF1FEFCF3FDC07E1F2A6 +:1061B000C6010E9491248C179D07B0F2C801DF919F +:1061C000CF911F910F91FF90EF90DF90CF90BF90F4 +:1061D000AF909F900895B092BB009092BC000E9437 +:1061E000A0248C018091BC0087FF0AC08091B90077 +:1061F000887F883111F0803461F610E000E0DECF56 +:106200000E94A024801B910B8E159F0558F3CBCFC5 +:106210000F931F93CF93DF93EB018093BB0084E830 +:106220008093BC000E94A0248C018091BC0087FF59 +:1062300011C02091B900287F81E090E0283211F44C +:1062400090E080E0919581959109DF91CF911F9128 +:106250000F910895CF3FDC0741F30E94A024801BDB +:10626000910B8C179D0708F38EEF9FEFEECF0F93E6 +:106270001F93CF93DF93EC0184EC8093BC000E94CA +:10628000A0248C018091BC0087FF08C08091BB00D6 +:1062900090E0DF91CF911F910F910895CF3FDC07E0 +:1062A00089F30E94A024801B910B8C179D0750F34B +:1062B0008EEF9FEFEECF0F931F93CF93DF93EC0101 +:1062C00084E88093BC000E94A0248C018091BC00D3 +:1062D00087FF08C08091BB0090E0DF91CF911F91B4 +:1062E0000F910895CF3FDC0789F30E94A024801B03 +:1062F000910B8C179D0750F38EEF9FEFEECFCF924F +:10630000DF92EF92FF920F931F93CF93DF936B0176 +:106310008A017901B9010E948E30E6010C0D1D1D24 +:10632000C017D10761F424E92093BC00DF91CF911D +:106330001F910F91FF90EF90DF90CF90089597FD00 +:10634000F2CFB70189910E940831EACFCF92DF9254 +:10635000EF92FF920F931F93CF93DF93C62F6A01A3 +:106360007901B8010E948E3097FD0CC0B8018C2FC6 +:106370000E940831E601EC0CFD1CCE15DF0511F082 +:1063800097FF0CC024E92093BC00DF91CF911F91AF +:106390000F91FF90EF90DF90CF900895B801899111 +:1063A0000E940831EACFCF92DF92EF92FF920F93D3 +:1063B0001F93CF93DF93F82EE62EEA016901B8010F +:1063C0000E948E3097FD15C0B8018E2D0E940831B5 +:1063D00097FD0FC0B8018F2D81600E948E30F12C87 +:1063E000E12C21E0C21AD108EC14FD0400F597FF5E +:1063F00011C024E92093BC001816190614F490E08B +:1064000080E0DF91CF911F910F91FF90EF90DF908F +:10641000CF900895C8010E94373197FD04C0FE0156 +:10642000EE0DFF1D80832FEFE21AF20ADDCF97FDFC +:10643000E0CFC8010E945B3197FDDBCFCC0DDD1DA5 +:106440008883D7CF84E98093BC0008958EE14A9B6E +:1064500002C08150E1F74A9BFECF08955A9880E22E +:106460008A95F1F75A9A0895FC013BE03A95F1F7C5 +:1064700098E020E080E031E040E14A95F1F7880FB4 +:106480004A9B02C08160232742E04A95F1F7000051 +:1064900040E14A95F1F7915079F790E19A95F1F73B +:1064A00099B132E03A95F1F7000040E14A95F1F7F1 +:1064B00092FB992790F992272081920F908308955B +:1064C000EF92FF920F931F93CF93DF930F92CDB76D +:1064D000DEB719828C017C01E60EF11C0E151F053A +:1064E00061F481E09981911180E00F90DF91CF916B +:1064F0001F910F91FF90EF9008950E942632CE01D8 +:1065000001960E943432F80181938F01E7CF529AAD +:106510005A9A089552985A9AEA9AE9E6F0E08081E8 +:106520008F7C808308956150770B91E001C0990FB3 +:106530006A95EAF720E031E0911108C0222391F03A +:106540005A9A80E28A95F1F75A980895492F48237C +:1065500039F05A9A232740E24A95F1F79695ECCF05 +:106560005A98F9CF5A98EDCFFF920F931F93CF937C +:10657000DF93EC018C01060F111DC017D10731F418 +:10658000DF91CF911F910F91FF900895F9900E9494 +:106590002E3268E08F2D0E949332EFCF1F920F9220 +:1065A0000FB60F921124EF92FF920F931F932F9328 +:1065B0003F934F935F936F937F938F939F93AF938B +:1065C000BF93EF93FF93CF93DF930F92CDB7DEB7D7 +:1065D00019820E942632CE0101960E943432A82FE1 +:1065E000A695A695A695282F229525709A2F957089 +:1065F000290F922F937026952695920F98279770C2 +:106600008981982B09F075C0A83008F072C080E12C +:106610008A95F1F75A9A529AB2E0BA95F1F700C00A +:106620005A98EA2EF12CEAE0AE9FD0011124AF5F18 +:10663000BE4F1896ED91FC9119973097B1F060918B +:10664000FB017091FC0116962D913C911797260F36 +:10665000371F13968D919C911497680F791F15968B +:106660004C91159712968C9109958AE08E9DF001B8 +:106670008F9DF00D1124EF5FFE4F6581662351F071 +:106680002091FB013091FC0186819781820F931F3D +:106690000E94B4320E942E32F0E1FA95F1F75A9836 +:1066A00052985A9A80E18A95F1F78AE08E9D80018E +:1066B0008F9D100D11240F5F1E4FD80112966C9103 +:1066C0001297662371F12091FB013091FC01139622 +:1066D0008D919C91820F931F0E946032D801ED91A1 +:1066E000FC91882311F088E001C082E080830E9441 +:1066F00026320F90DF91CF91FF91EF91BF91AF9133 +:106700009F918F917F916F915F914F913F912F91C9 +:106710001F910F91FF90EF900F900FBE0F901F9061 +:106720001895ED91FC91DFCF0F931F93CF93DF93DB +:10673000EC0108970CF0A9C08AE08C9FF0018D9FB6 +:10674000F00D1124EF5FFE4F80819181892B09F4B8 +:106750009CC0F894529A5A9885E08A95F1F7000007 +:106760008C2F869585709C2F9570890F982F93702C +:1067700086958695890F8E0193E0000F111F9A95DB +:10678000E1F7082B0E942E3200C068E0802F0E94A3 +:106790009332A0E1AA95F1F752985A9A4A9B27C0E2 +:1067A00087E090E04A9925C08AE08C9F80018D9F08 +:1067B000100D11240F5F1E4FF80165816623A1F1B2 +:1067C0002091FB013091FC0186819781820F931FFC +:1067D0000E946032811128C0529A5A9AD801ED91D4 +:1067E000FC9182E08083789482E090E016C000C043 +:1067F000D5CF0197B9F4529A5A9A8AE08C9FF0014A +:106800008D9FF00D1124EF5FFE4F0190F081E02D80 +:1068100081E08083789481E090E0DF91CF911F91B7 +:106820000F91089500C0BECF0E942632B0E2BA9503 +:10683000F1F75A98529AE0E1EA95F1F78AE08C9FD5 +:10684000F0018D9FF00D1124EF5FFE4F62816623F2 +:1068500051F02091FB013091FC0183819481820FE2 +:10686000931F0E94B4320E942E328AE08C9FF00166 +:106870008D9FF00D1124EF5FFE4F0190F081E02D10 +:106880001082789490E080E0C8CF84E090E0C5CF9B +:10689000AA1BBB1B51E107C0AA1FBB1FA617B70746 +:1068A00010F0A61BB70B881F991F5A95A9F7809562 +:1068B0009095BC01CD010895991B79E004C0991F02 +:1068C000961708F0961B881F7A95C9F7809508954A +:1068D00097FB072E16F4009407D077FD09D00E948D +:1068E000483407FC05D03EF4909581959F4F08955C +:1068F000709561957F4F0895EE0FFF1F0590F491FD +:10690000E02D099469279627692778278727782714 +:106910000895FB01DC0102C005900D9241505040EA +:10692000D8F70895FB01DC0104C08D910190801916 +:1069300021F441505040C8F7881B990B0895FB0182 +:10694000DC0102C001900D9241505040D8F70895EB +:10695000F999FECF92BD81BDF89A992780B5089527 +:10696000A6E1B0E044E050E00C94E234A8E1B0E0ED +:1069700042E050E00C94E234262FF999FECF92BD0C +:1069800081BDF89A019700B4021639F01FBA20BDF4 +:106990000FB6F894FA9AF99A0FBE08950396272F26 +:1069A0000E94BD340E94BC34252F0E94BD34242F88 +:1069B0000C94BD340196272F0E94BD340C94BC3436 +:1069C000DC01CB01FC01F999FECF06C0F2BDE1BDAF +:1069D000F89A319600B40D9241505040B8F708959E +:1069E0000E94F7346894B1110C94863508950E9482 +:1069F0006B3588F09F5798F0B92F9927B751B0F0B1 +:106A0000E1F0660F771F881F991F1AF0BA95C9F732 +:106A100014C0B13091F00E948535B1E008950C9416 +:106A20008535672F782F8827B85F39F0B93FCCF3C9 +:106A3000869577956795B395D9F73EF490958095AF +:106A4000709561957F4F8F4F9F4F0895E89409C0CF +:106A500097FB3EF490958095709561957F4F8F4F91 +:106A60009F4F9923A9F0F92F96E9BB279395F695A7 +:106A7000879577956795B795F111F8CFFAF4BB0F25 +:106A800011F460FF1BC06F5F7F4F8F4F9F4F16C089 +:106A9000882311F096E911C0772321F09EE8872F13 +:106AA000762F05C0662371F096E8862F70E060E0CF +:106AB0002AF09A95660F771F881FDAF7880F969548 +:106AC000879597F9089557FD9058440F551F59F031 +:106AD0005F3F71F04795880F97FB991F61F09F3FCB +:106AE00079F087950895121613061406551FF2CFF4 +:106AF0004695F1DF08C0161617061806991FF1CF44 +:106B000086957105610508940895E894BB2766276A +:106B10007727CB0197F908950E949F350C94103682 +:106B20000E94023638F00E94093620F0952311F0B9 +:106B30000C94F9350C94FF3511240C9486350E9481 +:106B4000633570F3959FC1F3950F50E0551F629F19 +:106B5000F001729FBB27F00DB11D639FAA27F00DB6 +:106B6000B11DAA1F649F6627B00DA11D661F829FDD +:106B70002227B00DA11D621F739FB00DA11D621FC2 +:106B8000839FA00D611D221F749F3327A00D611DDF +:106B9000231F849F600D211D822F762F6A2F1124C1 +:106BA0009F5750409AF0F1F088234AF0EE0FFF1FF4 +:106BB000BB1F661F771F881F91505040A9F79E3F4B +:106BC000510580F00C94F9350C9486355F3FE4F361 +:106BD000983ED4F3869577956795B795F795E795A1 +:106BE0009F5FC1F7FE2B880F911D9695879597F9AA +:106BF000089597F99F6780E870E060E008959FEF3F +:106C000080EC089500240A94161617061806090643 +:106C1000089500240A941216130614060506089512 +:106C2000092E0394000C11F4882352F0BB0F40F49A +:106C3000BF2B11F460FF04C06F5F7F4F8F4F9F4FDA +:106C40000895F894FFCFBA10BA10C310C310C5103E +:106C5000C310C310C310BA10BA10CA10C310C310A7 +:106C6000CA109F12C7126A14C7126A14FA121B13B1 +:106C70006A1419142614931809190C1920192319C8 +:106C800036193F196319A919DB19EF1975199819E4 +:106C9000281D281D811D811DB31D5B1D5B1D5B1DF6 +:106CA000CD1D3E1E4E1E4E1EE62EEA2E2E2F3F2FCF +:106CB0004A2F692F6C2F9F2FC02F3C2F3C2FCB2F9B +:0E6CC000CE2FD22FF82F1B301E302030453043 +:106CCE00013A0200000001000000003A020000003C +:106CDE0005010000003A0200000001060000003A23 +:106CEE000200000001070000003A02040800000044 +:106CFE000000003A02080C0000000000003A0201F9 +:106D0E001400000000000036323331F7F667669744 +:106D1E00C634350000000000012F085E0D3D0D3910 +:106D2E000D350D2E08F4F5010021007F2200030120 +:106D3E008000004A004A4A01F6F731333236674C7A +:106D4E00415945520042617365200047616D6520CF +:106D5E00005261697365004C6F776572004C4F434A +:106D6E004B0043617073004E756D005363726C007F +:106D7E00202020202000534F4C415200544D5053A0 +:106D8E005400818283E200E900EA00B500B600B744 +:106D9E0000CD008301CC008A0192019401210223CF +:106DAE000224022502260227022A02B300B4006F33 +:106DBE000070000603060806010606B00200FF0179 +:106DCE0000010000FFFF0000010001FF000008109D +:106DDE00181810080000010202020202020202024A +:106DEE000240227B49012701AC009E0BB70BD70B4B :00000001FF From d5ad8ab9125923709affab84eddece74b4b47a37 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Tue, 30 Nov 2021 20:57:10 -0500 Subject: [PATCH 73/94] Optimize layer lighting code for space saving. --- keyboards/solartempest/ps17/config.h | 8 +- .../solartempest/ps17/keymaps/via/keymap.c | 6 +- .../ps17/solartempest_ps17_via.hex | 2703 ++++++++--------- 3 files changed, 1342 insertions(+), 1375 deletions(-) diff --git a/keyboards/solartempest/ps17/config.h b/keyboards/solartempest/ps17/config.h index 98a8933f6b37..e29caf530514 100644 --- a/keyboards/solartempest/ps17/config.h +++ b/keyboards/solartempest/ps17/config.h @@ -61,10 +61,6 @@ #define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer #define TAPPING_TERM 160 //Tapping duration in ms -// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap. -#define LOCKING_SUPPORT_ENABLE -#define LOCKING_RESYNC_ENABLE // Locking resynchronize hack - // For LED status indicators #define LED_NUM_LOCK_PIN D0 #define LED_CAPS_LOCK_PIN D5 @@ -79,8 +75,8 @@ #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_DEFAULT_VAL 40 //Default brightness on clearing EEPROM #define RGBLIGHT_LIMIT_VAL 180 //Brightness level max is 255 - #define RGBLIGHT_LAYERS //Enable layer light indicators - #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF + //#define RGBLIGHT_LAYERS //Enable layer light indicators. Not required as layer_state_set_user is used instead. + //#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) #define RGBLIGHT_ANIMATIONS //Very memory intensive (+2604) diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c index d0383cdc91a4..d85616310b29 100644 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -391,11 +391,11 @@ void keyboard_post_init_user(void) { #ifdef RGBLIGHT_ENABLE layer_state_t layer_state_set_user(layer_state_t state) { - rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active + /*rgblight_set_layer_state(0, layer_state_cmp(state, 0)); // Multiple layers will light up if both kb layers are active rgblight_set_layer_state(1, layer_state_cmp(state, 1)); rgblight_set_layer_state(2, layer_state_cmp(state, 2)); rgblight_set_layer_state(3, layer_state_cmp(state, 3)); - rgblight_set_layer_state(4, layer_state_cmp(state, 4)); + rgblight_set_layer_state(4, layer_state_cmp(state, 4));*/ // This is what the LED layout is. // 1, 0, @@ -406,7 +406,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { // 22, 21, 20, 19, // 27, 26, 25, 24, 23 - switch(biton32(state)){ // Change all other LEDs based on layer state as well + switch (get_highest_layer(state)) { // Change all other LEDs based on layer state as well case 0: rgblight_sethsv_noeeprom(50,255,100); //You can selectively decrease certain LEDs if you are have a clear acrylic case and the shine-through is bothersome. Rgblight_sethsv_at() can be used here for those LEDs (0, 2, 4, 14, and 23). Otherwise some black tape on the acrylic plate or foam underneath the FR4 plate will do the trick. diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index bae27a5b97ac..9d9c27806520 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -1,9 +1,9 @@ :100000000C949E030C94E5030C94E5030C94E50317 :100010000C94E5030C94E5030C94E5030C94E503C0 -:100020000C94E5030C94E5030C9487260C9443266A -:100030000C9484270C94E5030C94E5030C94E503DD +:100020000C94E5030C94E5030C94A7250C9463252C +:100030000C94A4260C94E5030C94E5030C94E503BE :100040000C94E5030C94E5030C94E5030C94E50390 -:100050000C94E5030C9460270C94E5030C94E503E1 +:100050000C94E5030C9480260C94E5030C94E503C2 :100060000C94E5030C94E5030C94E5030C94E50370 :100070000C94E5030C94E5030C94E5030C94E50360 :100080000C94E5030C94E5030C94E5030C94E50350 @@ -115,21 +115,21 @@ :10072000370000001203410054004C0041004E000D :1007300054004900530000000403090411241FBEA3 :10074000CFEFDAE0DEBFCDBF04B603FE27C0809155 -:100750009D0390919E03A0919F03B091A0038730C9 -:10076000904BA740B04BD1F410929D0310929E0382 -:1007700010929F031092A00314BE84B7877F84BF9A +:100750009C0390919D03A0919E03B0919F038730CD +:10076000904BA740B04BD1F410929C0310929D0384 +:1007700010929E0310929F0314BE84B7877F84BF9C :100780000FB6F894A895809160008861809360000E :10079000109260000FBEE0E0F8E3099511E0A0E0E0 -:1007A000B1E0EAE3FEE502C005900D92AA3CB10774 -:1007B000D9F723E0AAECB1E001C01D92AD39B20730 -:1007C000E1F70E94AB270C94DD2E0C940000E8EDBD +:1007A000B1E0E8E6FCE502C005900D92AA3CB10775 +:1007B000D9F723E0AAECB1E001C01D92AC39B20731 +:1007C000E1F70E94CB260C94F42D0C940000E8ED88 :1007D000F0E080818E7F80831092E2001092DA0038 :1007E0001092E100A0EEB0E08C9181608C9380814A :1007F0008F77808319BCA7EDB0E08C918E7F8C93AE -:1008000080818F7E808310926B0308952091E40095 +:1008000080818F7E808310926A0308952091E40096 :100810003091E50095E6A9012091EC00822F8170CE :1008200020FF06C08091E80080FF06C080E00895A8 -:100830002091E80022FD1AC080919103882389F05D +:100830002091E80022FD1AC080919003882389F05E :10084000853089F08091EB0085FD0FC02091E40098 :100850003091E50042175307F9F29150E1F684E038 :10086000089582E0089583E0089581E00895EF926D @@ -138,9 +138,9 @@ :10089000E8008E778093E8000E940604882399F38D :1008A000C82F08C0F70181917F018093F1000150AA :1008B000110949F78C2FCF911F910F91FF90EF9065 -:1008C00008958091930387FF13C08091E80082FF11 +:1008C00008958091920387FF13C08091E80082FF12 :1008D00006C08091E8008B778093E80004C0809187 -:1008E00091038111F2CF0895809191038823D9F368 +:1008E00090038111F2CF0895809190038823D9F36A :1008F0008091E80080FFF8CF8091E8008E77ECCF00 :10090000982F9093E900242F762F50E0891731F02B :100910007091EC002091ED005091F00021FD07C096 @@ -151,1372 +151,1343 @@ :1009600080E00895CF92DF92EF92FF920F931F9352 :10097000CF93DF93C8EDD0E088818F7E8883E7ED49 :10098000F0E080818160808384E082BF81E0809399 -:100990006B0388818E7F888302EE10E0F80110825D +:100990006A0388818E7F888302EE10E0F80110825E :1009A0001092DA0081EEC82ED12CF60110828881D7 :1009B0008F77888388818068888388818F7D88830A -:1009C00019BC10929103109292031092900310920E -:1009D0008F0390EEE92EF12CF70180818B7F8083CD +:1009C00019BC109290031092910310928F03109211 +:1009D0008E0390EEE92EF12CF70180818B7F8083CE :1009E00088818160888342E060E080E00E9480042A :1009F000F60180818E7F8083F80180818160808311 :100A0000808188608083F70180818E7F80838881E8 :100A100080618883DF91CF911F910F91FF90EF90BC -:100A2000DF90CF900895FC018091990390919A03F3 +:100A2000DF90CF900895FC018091980390919903F5 :100A300086179707A0F06115710529F49091E800D9 :100A40009E779093E80090E06115710551F4911143 :100A500008C08091E80082FF34C080E00895BC01A6 -:100A6000F2CF809191038823C1F18530C1F180914B +:100A6000F2CF809190038823C1F18530C1F180914C :100A7000E80083FD30C08091E80082FDEACF8091DC :100A8000E80080FFE1CF8091F3002091F200382F41 :100A90006115710519F02830310558F091E02830C2 :100AA000310509F090E02091E8002E772093E800CE :100AB000CBCF81918093F100615071092F5F3F4F3F -:100AC000E7CF80919103882341F0853041F08091F8 +:100AC000E7CF80919003882341F0853041F08091F9 :100AD000E80083FFBECF81E0089582E0089583E0BF -:100AE0000895089580916E0308959C014FB7F8947E -:100AF0008091620390916303A0916403B0916503B8 -:100B00004FBF821B930B08952FB7F8948091620317 -:100B100090916303A0916403B09165032FBF089582 -:100B200020915F03309160032817390771F090938B -:100B3000600380935F03E0915D03F0915E03309763 -:100B400021F00084F185E02D0994089520915B0344 -:100B500030915C032817390771F090935C03809300 -:100B60005B03E0915D03F0915E03309721F0068016 -:100B7000F781E02D09940895E0915D03F0915E0303 -:100B8000309721F00190F081E02D099480E00895E4 -:100B9000DC016091570380915803962F891301C09F -:100BA0000895292F30E0F901EE0FFF1FE15BFC4FA4 -:100BB000408151814A175B07A1F487E08A9FA00119 -:100BC0008B9F500D1124415E5E4F81E0FA018483BA -:100BD0009613E6CF2F5F3F4F2370332720935703A1 -:100BE00008952F5F3F4F922F9370D8CF1092EC0251 -:100BF0001092EB02EFE1F1E08581811102C01482D5 -:100C00001682379681E0E934F807B1F70895FA01C2 -:100C1000811101C0FB01099408958091E602982F8B -:100C20009E7F61F4817082608093E6028091E90288 -:100C3000853B18F084EB8093E90208958A34B0F381 -:100C400081708864F1CFAF92BF92DF92EF92FF92F2 -:100C50000F931F93CF93DF93182F062FE901453B86 -:100C600008F044EBE42FF0E0E655FD4F011110C011 -:100C7000E4915E2F4E2F4983E8835A83DF91CF9111 -:100C80001F910F91FF90EF90DF90BF90AF9008956C -:100C9000202F30E04491D42EE42EF12C56E0159F05 -:100CA000C0011124EFEFF0E0BF010E94E72D812F7A -:100CB00090E0880F991F55E5569FD001579FB00DC2 -:100CC00011248A1B9B0B982F990F890F5F01A21A81 -:100CD000B30AAE9CD001AF9CB00DBE9CB00D1124E8 -:100CE0005B2F089F80011124012F11275F01A01A9B -:100CF000B10AAE9C8001AF9C100DBE9C100D11245A -:100D00005F01A81AB108A29EC001A39E900DB29ED9 -:100D1000900D1124892F9927E81BF90BEE9DC00136 -:100D2000EF9D900DFE9D900D1124E92F623071050D -:100D3000A1F050F46115710509F49DCF6130710582 -:100D400081F0EB2F512F97CF6430710569F080F05F -:100D50006630710509F48FCFF4CFE42F4B2F592F54 -:100D60008ACFE42F412F87CFEB2F542F492F83CFEA -:100D70004B2F5D2DE12F7FCF0E9484059C01909128 -:100D8000810280918202982B21F030937E02209381 -:100D90007D029091830280918402982B21F0309300 -:100DA0007C0220937B02E0915D03F0915E0330971B -:100DB00049F082E080937F020480F581E02D8FE787 -:100DC00092E00994089540918102803F59F4809106 -:100DD000820287FF0DC01092820241110BC0109257 -:100DE000790208C0813F81F48091820218169CF339 -:100DF000442381F08091830290918402892B09F031 -:100E00005AC0109278020895823F49F447FFF0CF0C -:100E100010928102809182028111ECCFE0CF833F5A -:100E200019F41416ACF3E4CF90918302893F29F4AE -:100E30001916F4F610928302DBCF8A3F19F497FF5C -:100E4000D7CFF8CF909184028B3F29F497FFD0CF72 -:100E500010928402CDCF8C3F19F41916CCF3C8CF71 -:100E60009CE0980F953090F4845F990B21E030E07E -:100E7000B90102C0660F771F8A95E2F7CB01809512 -:100E800090918002892380938002B2CF8D3F31F40C -:100E900080917A028E7F80937A02AACF8E3F21F4CE -:100EA00080917A028D7FF7CF8F3F09F0A1CF80919B -:100EB0007A028B7FF0CF089580917A0280FD16C070 -:100EC00081FD16C082FD16C0809178028823A1F0B2 -:100ED000883280F428E0829FC001112468E270E02B -:100EE0000E94FB2D862F672B39F0089582E008952C -:100EF00084E0089588E0089581E0089580917A0261 -:100F000080FD14C081FD14C082FD16C0809179025D -:100F1000882381F0843180F422E3829FC001112470 -:100F200064E170E00E94FB2D862F08958CE0089507 -:100F300089E1089585E0089582E30895803F31F4C2 -:100F40000E947E078195809382020895813F19F463 -:100F50000E947E07F8CF823F31F40E947E07819580 -:100F6000809381020895833F19F40E947E07F8CF91 -:100F7000893F29F40E945C078093830208958A3F89 -:100F800021F40E945C078195F7CF8B3F31F40E94DA -:100F90005C0781958093840208958C3F19F40E9428 -:100FA0005C07F8CF9CE0980F953070F4845F990B44 -:100FB00021E030E001C0220F8A95EAF7809180029B -:100FC000822B8093800208958D3F31F480917A02C4 -:100FD000816080937A0208958E3F21F480917A0295 -:100FE0008260F7CF8F3FB9F780917A028460F1CFAA -:100FF00080E00895F894E82FE295EF70F0E031A1D9 -:10100000282F2F7081E090E001C0880F2A95EAF721 -:10101000982F9095932391A392A1892B82A37894E2 -:1010200008959091660392FF06C0282F28712830FA -:10103000F9F4877F846093FF06C0282F2871283138 -:10104000F1F4877E84612091670320FF06C0382F6A -:1010500038713830D9F4877F816021FF06C0282F8E -:1010600028712831D1F4877E816194FD877E0895AF -:10107000282F24712430F9F68B7F8860DCCF282F4D -:101080002471243101F78B7E8861DDCF382F3171D7 -:10109000313019F78E7F8860E0CF282F2171213100 -:1010A00021F78E7E8861E1CFCF93DF93EC01823808 -:1010B0009105A9F1D8F58133910509F496C048F559 -:1010C0008932910509F48AC08A9709F495C0C1153F -:1010D00021E5D20708F0BCC0C11530E5D30708F000 -:1010E00014C1C83ED10508F09CC0C03ED10560F5D2 -:1010F000C83AD10508F087C0C53AD10508F0FDC04F -:10110000C130D10509F12097F9F0C430D105E0F4E0 -:1011100040C08533910509F45AC0C997C1F6809142 -:101120006603837089F0C0EED0E00EC0833E910567 -:1011300099F170F4803E910501F1823E910539F6F6 -:101140008091660382FD21C0CE01DF91CF91089589 -:10115000863E910561F1873E910571F1843E9105CE -:1011600009F0B5CF8091670381FFEECF80916603D0 -:10117000C7EED0E084FD0DC0E7CF8091660380FD0F -:1011800012C19091670390FFDFCFC3EED0E084FFE0 -:10119000DBCFD0E0C0E0D8CF8091660382FD06C1EE -:1011A0009091670390FDBFCF84FFCECFF2CF8091A7 -:1011B000660383FDDDCFC8CF8091660383FDF9C050 -:1011C0009091670391FFF0CFC4EED0E0BDCF809146 -:1011D000660385FFB9CFC9E2D0E0B6CF8091660340 -:1011E00085FFB2CFC5E3D0E0AFCF8091660386FF25 -:1011F000ABCFCAE2D0E0A8CF8091660386FFA4CF30 -:10120000C1E3D0E0A1CFCF3BD10518F6C85AD0E05A -:10121000CC0FDD1FC25BDE4F0990D881C02DD46496 -:1012200093CFC11540E2D40758F4C11581E0D80727 -:1012300008F08ACFC03FD10508F4ABCFD06584CF8A -:10124000C11590E4D90708F4A4CFDF70D06A7CCF31 -:10125000C11525E5D20700F5C11534E5D30708F01F -:101260008AC0C11543E5D40708F071C0C11582E5F5 -:10127000D80708F467C0CE018370992721E030E0D9 -:1012800002C0220F331F8A95E2F7C695C69580E209 -:10129000C89FE001112452C0C11599E5D907A8F4EF -:1012A000C11528E5D20708F06BC0C11536E5D30794 -:1012B00008F06FCF8C2F0E941108C82FD0E0DC2FD0 -:1012C000CC27CC27DF71D0623FCFC1154AE5D407C8 -:1012D00008F45BC0CE0190568115904208F059CFBA -:1012E0008D2F8F710E94110890E0982F88278827F2 -:1012F0009F719C012C2BE901E6CFC55AD0E0C55B5C -:10130000DE4FC881D0E0D0641FCFCE01E4E09695D7 -:101310008795EA95E1F783702C2F26952695237003 -:1013200040E2249F90011124382B8C2F8370C1E060 -:10133000D0E002C0CC0FDD1F8A95E2F7C22BD32B81 -:10134000DC6802CFDC2FCC27C16FD06AFDCECE0186 -:101350008370992721E030E002C0220F331F8A9565 -:10136000E2F7C695C69590E2C99FE0011124C22B11 -:10137000D32BDA68E9CEDC2FCC27C46FD06AE4CE59 -:10138000DC2FCC27C06FD06ADFCE8C2F8F700E94ED -:10139000110834E0D695C7953A95E1F7CF709C2FA8 -:1013A000EC01D069D1CEC9E3D0E0CECEC2EED0E020 -:1013B000CBCEC6EED0E0C8CE80914802811110920B -:1013C00048020895809590916C03982390936C0344 -:1013D000089580916C0390914702892B9091460269 -:1013E000892B8093CC01909148029923A1F0892BFD -:1013F0008093CC0180914A01882341F1809166035A -:1014000087FF24C08EE1EEECF1E090E0815000F522 -:1014100091110E94DC09E0915D03F0915E03309729 -:10142000E1F080914A01882359F08091660387FF9B -:1014300007C08091CC018093CD0186E08093CC01E0 -:101440000280F381E02D8CEC91E0099486E0DBCF03 -:1014500021912223D9F29F5FD9CF089590914A011B -:101460009923D1F09091660397FF16C0E82FE69577 -:10147000E695E695EE31E0F4F0E0E453FE4F282FD8 -:10148000277081E090E001C0880F2A95EAF78095E7 -:101490009281892382830895EEECF1E09191891382 -:1014A00003C0DF0111971C9291E0E43DF907B1F709 -:1014B000089590914A019923C1F09091660397FF96 -:1014C00014C0E82FE695E695E695EE31F8F4F0E0E5 -:1014D000E453FE4F877021E030E001C0220F8A956F -:1014E000EAF78281822B82830895AEECB1E0EFEFC0 -:1014F00090E02D91821751F0EF3F19F4211101C0B6 -:10150000E92F9F5F9630A9F7EF3F09F408950E2E5B -:10151000000CFF0BE453FE4FE6CF80914402909104 -:101520000302981301C008958F5F8770FACF990F57 -:10153000990F890F982F977086958695869524E048 -:10154000829FF0011124E151FE4F50E040E080E025 -:10155000219130E0092E02C0369527950A94E2F7D2 -:1015600021703327042E01C0220F0A94EAF7822B40 -:101570004F5F5F4F4430510559F70895990F990F08 -:10158000890F982F977041E001C0440F9A95EAF7B0 -:1015900086958695869594E0899FF0011124E15106 -:1015A000FE4F30E020E070E05191DF011197CB0158 -:1015B000022E02C0969587950A94E2F78170819574 -:1015C0008527842385278C932F5F3F4F2430310557 -:1015D00059F7089590E080E00E94A60590E080E031 -:1015E0000E94900510924702109246020E94E9095B -:1015F00086E0EFE7F2E0DF011D928A95E9F71092AD -:1016000079021092780210927A020C94BC069093A0 -:101610004A02809349020C94EA0A882341F080959B -:10162000909147028923809347020C94E909089519 -:10163000882339F090914702982B909347020C949D -:10164000E9090895882321F00E94E2090C94E90930 -:101650000895882339F090916C03982B90936C0334 -:101660000C94E9090895882309F452C0823871F472 -:101670000E94BC0581FF4CC089E30E94590A0E9468 -:10168000E90989E30E942E0A0C94E909833859F488 -:101690000E94BC0580FF3CC083E50E94590A0E945D -:1016A000E90983E5EFCF843859F40E94BC0582FF35 -:1016B0002FC087E40E94590A0E94E90987E4E2CF1B -:1016C0009CEF980F913AF0F290E2980F983050F416 -:1016D000877091E001C0990F8A95EAF7892F0E94DF -:1016E000E209D2CF9BE5980F933020F490E080E0A0 -:1016F0000C94A60598E5980F973120F490E080E0CF -:101700000C949005803F20F00E94E3060C94BC06E8 -:101710000895809580FF08C0589A81FF07C05D9AA0 -:1017200082FF06C05C9A08955898F7CF5D98F8CF6D -:101730005C9808958093680370936A0360936903CB -:10174000809191038430F9F48093E9008FEF9091B8 -:10175000E800815095FD06C095ED9A95F1F70000DF -:101760008111F5CF8091E80085FF0DC050E040E089 -:1017700063E070E088E693E00E9437048091E8001F -:101780008E778093E8000895BC0184E00C949A0B56 -:10179000BC0183E00C949A0B9C0184E08093E900E7 -:1017A0009FEF8091E800915085FD06C085ED8A95F8 -:1017B000F1F700009111F5CF8091E80085FF0CC092 -:1017C00050E040E066E070E0C9010E94370480917B -:1017D000E8008E778093E8000895CF93DF93EC01C3 -:1017E00080914A018823B1F18091660387FF32C05E -:1017F00060E284E08093E9008FEF9091E8008150EF -:1018000095FD06C095ED9A95F1F700008111F5CF91 -:101810008091E80085FF1BC080914A0170E050E094 -:1018200040E0811104C050E040E068E070E0CE018B -:101830000E9437048091E8008E778093E80080E270 -:10184000FE01AFE6B3E001900D928A95E1F7DF91DA -:10185000CF91089568E081E0CDCF81E08093E000F2 -:1018600080E28093D8001092C9008FE19EE4019736 -:10187000F1F700C0000087E090EBDC0180939D034E -:1018800090939E03A0939F03B093A00388E19CE0F4 -:101890000FB6F894A895809360000FBE90936000F7 -:1018A000FFCFCF93C82F882309F4AEC08238C1F48C -:1018B0000E94BC0581FDA8C089E30E94590A0E94CC -:1018C000E9092FEF81EE94E0215080409040E1F74C -:1018D00000C0000089E30E942E0ACF910C94E90910 -:1018E0008338A1F40E94BC0580FD8EC083E50E9470 -:1018F000590A0E94E9092FEF81EE94E021508040BF -:101900009040E1F700C0000083E5E5CF8438A1F402 -:101910000E94BC0582FD78C087E40E94590A0E949B -:10192000E9092FEF81EE94E0215080409040E1F7EB -:1019300000C0000087E4CFCF8CEF8C0F813A88F590 -:1019400080914A01882301F18091660387FF1CC0C2 -:10195000EC2FE695E695E695F0E0E453FE4F8281A4 -:1019600090E04C2F477021E030E002C0220F331F7F -:101970004A95E2F782239323892B79F08C2F0E94DA -:101980002E0A0E94E90909C0EEECF1E08191C81726 -:10199000A9F321E0E43DF207C9F78C2F0E94590A10 -:1019A0009CCF80E28C0F883068F4C77021E030E073 -:1019B00001C0220FCA95EAF780916C03822B8093B5 -:1019C0006C038BCFEBE5EC0FE33040F4F0E0E55B2C -:1019D000FE4F808190E0CF910C94A605E8E5EC0FD6 -:1019E000E73150F4F0E0EE0FFF1FE25BFE4F808125 -:1019F0009181CF910C949005C03F30F08C2F0E94C4 -:101A00009E07CF910C94BC06CF9108951F93CF935E -:101A1000DF93182FCAE0D0E0893311F4C0E5D0E09D -:101A2000812F0E94510C8FE99FE00197F1F700C0D0 -:101A300000002197C1F7812FDF91CF911F910C9466 -:101A4000330BDF92EF92FF920F931F93CF93DF93AD -:101A5000E82FF0E0E85EFD4FD490282F26952695DC -:101A6000269530E0F901E85FFD4F0491877010E0A2 -:101A7000082E02C0159507950A94E2F70170112708 -:101A8000F901E850FE4FE490F12C082E02C0F594C5 -:101A9000E7940A94E2F791E0E922FF24F901E85182 -:101AA000FE4FC491D0E002C0D595C7958A95E2F764 -:101AB000C170DD270115110519F081EE0E94510C4E -:101AC000E114F10419F086EE0E94510C8D2D0E9454 -:101AD000060DEF2819F086EE0E94330B012B19F04A -:101AE00081EE0E94330BCD2B51F08CE2DF91CF9130 -:101AF0001F910F91FF90EF90DF900C94060DDF91F6 -:101B0000CF911F910F91FF90EF90DF900895CF93A9 -:101B1000DF93C7E0D2E060E0CE010E94A92E2196BB -:101B2000C11584E0D807B9F7DF91CF9108956F927E -:101B30007F928F929F92AF92BF92CF92DF92EF925D -:101B4000FF920F931F93CF93DF938BECC82E84E00B -:101B5000D82E0FE510E0E801E09736011CC0F50132 -:101B600085909490692DC7010E94A92E682DC70108 -:101B700001960E94A92E82E0A80EB11C82E0E80E18 -:101B8000F11CCE15DF0559F788E0680E711C289608 -:101B90000C171D0731F07E0188E0E81AF1085301A7 -:101BA000DECF005D1F4F80E3C80ED11C0F3382E0F3 -:101BB000180789F6DF91CF911F910F91FF90EF9059 -:101BC000DF90CF90BF90AF909F908F907F906F905D -:101BD0000895CF93C82F6FEF811161E283E290E007 -:101BE0000E94A92E6FEFC11161E184E290E00E9492 -:101BF000A92E6FEFC11168E285E290E0CF910C94BD -:101C0000A92E80E00E94E90D60E086E290E00E944B -:101C1000A92E0E94970D0E94870D81E00C94E90D7A -:101C20000F931F93CF93DF9328E0629FE00111246D -:101C300050E0440F551FC40FD51F30E3839FC00DE4 -:101C4000D11D1124CE0187960E94952E082F10E0F9 -:101C5000102F0027CE0188960E94952E9801282BE0 -:101C6000C901DF91CF911F910F910895462F8A30BE -:101C700038F4763028F4643018F4672F0C94100E82 -:101C800090E080E00895BF92CF92DF92EF92FF92B2 -:101C90000F931F93CF93DF937C0100919B031091CF -:101CA0009C038091490290914A02082B192BCFE0A6 -:101CB000D0E0CC24C394D12CBC2EC6010C2E02C083 -:101CC000880F991F0A94E2F780239123892B71F4DE -:101CD000219790F7B12C8B2DDF91CF911F910F9110 -:101CE000FF90EF90DF90CF90BF900895B7018C2FB9 -:101CF0000E94360E0E945408019751F3ECCFCF9307 -:101D0000DF93EC010E94430EBE010E94360EDF916C -:101D1000CF910C945408FC0186819781009779F04B -:101D20000E945408292F2F7092959F7092509E30D8 -:101D3000A0F4E92FF0E0E152F14D0C94312E8081B6 -:101D400091810E947F0EEECF803F19F020F4883EF3 -:101D500020F481E00895843FE1F380E00895883E17 -:101D6000C0F3813FD1F7F5CF822F86958695869572 -:101D700008951F93CF93DF9300D000D00F92CDB77B -:101D8000DEB7FC01268137812115310541F525E0BB -:101D9000DE01119601900D922A95E1F7FC01228156 -:101DA00089819A812223B9F06623A9F00E94430E0B -:101DB000182F682F89819A810E94BE0A69817A81D1 -:101DC000812F0F900F900F900F900F90DF91CF9178 -:101DD0001F910C94360E0E94970A182FEFCFC9015D -:101DE0000F900F900F900F900F90DF91CF911F9158 -:101DF000089583E290E00E94952E813289F484E276 -:101E000090E00E94952E813159F485E290E00E9485 -:101E1000952E91E0883209F090E0892F8170089525 -:101E200080E0FCCF6091E602669570E04BE050E008 -:101E30008CE091E00E947B2E892B19F481E0809345 -:101E40008D020E94840590938702809386020895F4 -:101E5000CF92DF92EF920F931F93CF93DF93CDB783 -:101E6000DEB7C455D1090FB6F894DEBF0FBECDBFA3 -:101E700060911B018091E60280FF4CC0EFEAF3E025 -:101E80009E012F5F3F4F8E010B5A1F4FC901A49136 -:101E90004A2F50E0DA01AA0FBB1FA40FB51FAE56A0 -:101EA000BD4FCD90DD90EC90D901CD92DD92ED92B9 -:101EB0009D0131960A171B0751F720911A0143E043 -:101EC000249F800D911D1124279A25B12F7735B1BC -:101ED00030685FB7F894FC01649FE00DF11D112498 -:101EE000BF016817790749F55FBFEFE5F4E0319767 -:101EF000F1F700C00000CC5ADF4F0FB6F894DEBFF8 -:101F00000FBECDBFDF91CF911F910F91EF90DF906A -:101F1000CF90089580911C0190911D0123E0829F34 -:101F2000F0011124EE56FD4F891708F0A7CF11825A -:101F3000108212828F5F3396F7CFDC014D91CD0175 -:101F4000E8E035B9000000C047FF25B9440F0000A4 -:101F500000C000C000C025B900C0EA9591F7C1CF0C -:101F60000F931F93CF93DF93EC0110E000E090916B -:101F70001E019017110609F06CF40E94280F8C8145 -:101F800090E00196817099278C83DF91CF911F910A -:101F90000F91089520911C01A801420F511D9A0133 -:101FA000220F331F240F351F2E563D4F4C81609159 -:101FB000E8028091E70296959017110651F04CF0D7 -:101FC000442349F04091E9020E9423060F5F1F4F0E -:101FD000CECF4423B9F340E0F7CF8F929F92AF92D8 -:101FE000BF92CF92DF92EF92FF920F931F93CF9306 -:101FF000DF93EC014C81042F10E09801D8010E947E -:10200000462E9B01AC010E945C2E4B015C01E0E27C -:10201000F0E0E01BF10BA5E5B0E0AC019B010E94F4 -:102020005C2E6B017C019F01DF010E943E2E9B0113 -:10203000AC010E94672E9B01AC01280D391D4A1D81 -:102040005B1DC701B6010E940F2EF22E822F90E079 -:1020500039E23F1560F143E0249F9001112435954A -:102060002795122F109500E085E5E82EEF18809156 -:102070001E01081758F10E94280F9C8181E09923C6 -:1020800019F0903219F48FEF8093190180911901A2 -:10209000890F8C83DF91CF911F910F91FF90EF906B -:1020A000DF90CF90BF90AF909F908F90089525E5DF -:1020B00030E0B901681B790B9B01220F331F260FFB -:1020C000371F37FFCCCF2F5F3F4FC9CF8E2D01FD7C -:1020D0008F2D20911C01622F600F7727771F9B01A6 -:1020E000220F331F260F371F2E563D4F412F609171 -:1020F000E8020E9423060F5FBACF0F931F93CF937E -:10210000DF9380911C0190911D0123E0829FF001DB -:102110001124EE56FD4F891740F1C0E0D3E06091E5 -:102120001E01C61740F10E94280F209117018091CF -:102130009002820F8093900290911801920F9093D9 -:102140001801191654F4082E000C990B40911E0129 -:102150004150550B841795071CF0219520931701CA -:10216000DF91CF911F910F910895118210821282F9 -:102170008F5F3396D0CF0C2F10E070E0C8010E9423 -:10218000FB2D20911C01820F482F50E020919002DE -:10219000022E000C330B02171307BCF0209118011C -:1021A000022E000C330B201731077CF08D9F90011D -:1021B00011242E563D4F4091E9026091E802809132 -:1021C000E7020E942306CF5FAACFFA01EE0FFF1F9E -:1021D000E40FF51FEE56FD4F118210821282F3CFED -:1021E0009F92AF92BF92CF92DF92EF92FF920F93A6 -:1021F0001F93CF93DF93FC0182810FEF80FF01E0FB -:1022000010E04CE1942EA0901E011A15D0F00E940F -:10221000280F80918F02013009F054C0811102C053 -:1022200080911E01815080938F02DF91CF911F9189 -:102230000F91FF90EF90DF90CF90BF90AF909F9065 -:102240000895C0911C01C12ED12CCC0DDD2DD11DC6 -:10225000CE01880F991FC80FD91FCE56DD4F1982A6 -:1022600018821A8234E0E32EF12CB12C80918F0277 -:102270008B0D8D311CF1692D0E94D92D892F082ECF -:10228000000C990BC816D90691F48091E9028E9D35 -:10229000A0018F9D500D1124559547955595479553 -:1022A0009E016091E8028091E7020E942306B00E31 -:1022B000F1E0EF1AF108D1F61F5FA5CF87FFDFCF5E -:1022C0008A0DDDCF90E0019660911E0170E00E94C2 -:1022D000FB2DA9CFEF92FF921F93CF93DF93EC01D9 -:1022E00010E0EE24EA94F12C60911E01161770F0B4 -:1022F0000E94280F9A818C8190FF27C08F5F8C836A -:10230000DF91CF911F91FF90EF90089520911C01D4 -:10231000422F410F5527551FCA019A01220F331F23 -:10232000280F391F2E563D4F70E0C7010E94FB2D2C -:10233000962F8C814091E9026091E802199F800DEF -:1023400011240E9423061F5FCFCF8150D8CF1F9347 -:10235000CF93DF9300D00F92CDB7DEB7122F9091BD -:10236000E60290FF16C09E012F5F3F4F0E9423069A -:102370008B819981212F30E0F901EE0FFF1FE20FD1 -:10238000F31FEE56FD4F2A812183908382830E94A2 -:10239000280F0F900F900F90DF91CF911F9108950C -:1023A0009091E60290FF14C090911C0120911D01B4 -:1023B00033E0939FF0011124EE56FD4F921710F079 -:1023C0000C94280F8183608342839F5F3396F6CFFE -:1023D00008950F931F93CF93DF9300D00F92CDB743 -:1023E000DEB78C018091910281110AC09E012F5F9E -:1023F0003F4F44EB6FEF0E9423068A818093910246 -:10240000F8016481613069F08091910240E06623B7 -:1024100061F040E0623011F44091910280E060E0B0 -:1024200004C06091910240E080E00E94D011F80168 -:10243000848190E0019663E070E00E94FB2D84832C -:102440000F900F900F90DF91CF911F910F910895F2 -:10245000CF93DF9300D00F92CDB7DEB79091E60215 -:1024600090FF0AC09E012F5F3F4F0E9423064B81C1 -:1024700069818A810E94D0110F900F900F90DF9197 -:10248000CF910895CF93DF93EC01E6EEF2E0438124 -:1024900062818C810E9428128C818F5F8C83DF91F6 -:1024A000CF910895CF93DF93EC01EC81F0E0E553F9 -:1024B000FC4F4491E6EEF2E0628181810E94281295 -:1024C0008C818F5F8C83DF91CF910895CF92DF92C3 -:1024D000EF92FF926B017C010E940D06B701A601ED -:1024E00088E090E0FF90EF90DF90CF900C94BB2EAF -:1024F000AF92BF92CF92DF92EF92FF920F931F9312 -:10250000CF93DF9300D00F92CDB7DEB7182FF62E02 -:10251000042FE22E9091E60290FF29C0E92FE69564 -:10252000AE2FB0E0AA56BE4F8C9180938C029E7F56 -:10253000923059F59E012F5F3F4F812F0E94230655 -:102540004B8169818A810E94D0111093E702F09239 -:10255000E8020093E902EE2051F06091E6027091EA -:10256000E7028091E8029091E9020E9466120F90C2 -:102570000F900F90DF91CF911F910F91FF90EF90EF -:10258000DF90CF90BF90AF900895823019F4009102 -:10259000E902DBCF863019F41091E702D6CF8930FB -:1025A000D9F3893191F6E9518E2F8170D82EE695B5 -:1025B000F0E0E655FC4FA590B490C12CBB2460918F -:1025C0001E01C61618F00E94280FBFCF2C2D30E038 -:1025D000A29EC001A39E900DB29E900D112470E0AA -:1025E0000E94E72D812FD11013C0860F40911C014E -:1025F000420F532F511D9A01220F331F240F351FF5 -:102600002E563D4F402F6F2D0E942306C394D7CFE7 -:10261000861BECCFE6EEF2E0438128E0421B08F493 -:1026200040E021E0628181810C947812E6EEF2E0D4 -:10263000438128E0420F08F44FEF21E0628181815D -:102640000C947812E6EEF2E0628128E0621B08F456 -:1026500060E021E0438181810C947812E6EEF2E0A3 -:10266000628128E0620F08F46FEF21E043818181ED -:102670000C947812E6EEF2E0818121E043816281E0 -:1026800088500C947812E6EEF2E0818121E04381DB -:102690006281885F0C9478128091EA02882319F095 -:1026A00081508093EA026091E6027091E702809186 -:1026B000E8029091E9020C9466128091EA0283305C -:1026C00018F48F5F8093EA026091E6027091E7024E -:1026D0008091E8029091E9020C9466129091E602D2 -:1026E00090FF36C09170811129C092609093E602EC -:1026F000662351F06091E6027091E7028091E80252 -:102700009091E9020E9466126091E602669570E07F -:102710004BE050E08CE091E00E947B2E892BA9F0E9 -:1027200010928D0281E08093890220E04091E902BD -:102730006091E8028091E7020C947812853210F0E3 -:102740009864D4CF880F982BD1CF0E94120FEACF74 -:10275000089560E00C946E1321E030E0A90102C0FE -:10276000440F551F8A95E2F7CA0120918E02662315 -:1027700091F0822B80938E0280918D02811105C091 -:102780008091E60286950E94A9138091E60280FD61 -:1027900005C00C94280F80958223ECCF08950F93E9 -:1027A0001F93CF93DF93EC0161E0009709F0682F4E -:1027B000617080E00E94AC1360E0209721F0BE01C0 -:1027C00076956795617081E00E94AC1360E0209778 -:1027D00031F0BE017695679576956795617082E0D8 -:1027E0000E94AC1360E0209739F0BE0113E07695AB -:1027F00067951A95E1F7617083E00E94AC1360E081 -:10280000209739F0BE01B4E076956795BA95E1F767 -:10281000617084E00E94AC13AE0170E060E0BB2701 -:10282000A72F962F852F0097A105B105D9F1AC01EF -:10283000BD0188E08A019B01F4E036952795179544 -:102840000795FA95D1F7011511052105310519F004 -:102850008C5FB901A8018A019B01E2E036952795BA -:1028600017950795EA95D1F7011511052105310551 -:1028700019F08E5FB901A801769567955795479530 -:10288000452B462B472B09F08F5F823019F160F4FE -:10289000882399F08130C1F0CE01DF91CF911F9153 -:1028A0000F91089580E0C6CF8330C9F08430A1F73E -:1028B00020E044E66FEF8FE004C020E044E66FEFD5 -:1028C00082E30E947812E8CF20E044E66FEF85E0D3 -:1028D0000E94781220E044E66FEF80E8F2CF20E01B -:1028E00044E66FEF87EDEDCF0E94CF1390939C03EA -:1028F00080939B030C94EA0A80919B0390919C0324 -:102900009C01267033272630310519F488600C9419 -:102910007414877FFCCF21E030E002C0220F331F08 -:102920008A95E2F72095309580919B0390919C03C6 -:10293000822393230C9474149091450280958923EB -:1029400080934502282F277091F4282F082E000C21 -:10295000330B9217130659F09091670392FD07C04D -:102960008595859585950E948B1410924502089552 -:10297000CF93C0916703C2FB992790F9981799F0FC -:1029800080FBC2F9C09367036091660384E090E026 -:102990000E94A92E6C2F82E290E00E94A92E82E074 -:1029A000CF910C949C14CF91089521E030E002C0A7 -:1029B000220F331F8A95E2F780919B0390919C032D -:1029C000822B932B0C9474148091E602869581508F -:1029D00009F484E261E00C946E138091E60286951E -:1029E0008F5F853208F081E061E00C946E13909166 -:1029F000E60290FF07C09695981720F0961710F4FE -:102A00000C94ED1461E00C946E13E6EEF2E083E0BA -:102A1000808311828FEF828388E2838314826081B6 -:102A20007181828193810C94661280914A01EEEC4F -:102A3000F1E0882359F08091660387FF07C08EE19B -:102A4000DF011D928A95E9F70C94EA0A86E0F8CF37 -:102A50001F93CF93DF93CDB7DEB7AA970FB6F89445 -:102A6000DEBF0FBECDBF83E993E02091F100DC0112 -:102A70002D93CD01B3E08B399B07B9F78091940377 -:102A8000833009F472C0B8F4813009F449C082304F -:102A900009F4B5C08091E80083FF8DC28091930353 -:102AA000909194039A3008F086C2E92FF0E0E35148 -:102AB000F14D0C94312E8A3009F490C08B3009F41A -:102AC00071C0893039F780919303813219F7809171 -:102AD000970390919803009711F00297D9F680918F -:102AE000E800877F8093E8008091E80082FF38C08B -:102AF0009091F3008091F200029731F48091F100FF -:102B0000813011F0863021F48091F10080936E03C2 -:102B10008091E8008B778093E8000E946104BACF2F -:102B200080919303813A09F0B5CF8091E800877FC7 -:102B30008093E8008091970390919803892B61F42A -:102B400060E28FE693E070E00E9413058091E80058 -:102B50008B778093E8009ECF60E090E080E0F3CF39 -:102B6000809191038111C0CF95CF80919303813AD9 -:102B700009F090CF8091970390919803892B09F0E9 -:102B800089CF8091E800877F8093E8008091E800FA -:102B900080FFFCCF80914A018093F1008091E80092 -:102BA0008E77B9CF80919303813209F073CF8091F2 -:102BB000970390919803892B09F06CCF8091E800DE -:102BC000877F8093E8000E94610480919503809341 -:102BD0004A0110926C030E9415155CCF80919303FB -:102BE000813209F057CF8091E800877F8093E80019 -:102BF0000E9461048091960380936D034BCF809176 -:102C00009303813A09F046CF8091E800877F809353 -:102C1000E8008091E80080FFFCCF80916D03BCCF7D -:102C2000803899F0823809F0C6C1809197038F707F -:102C3000873008F0C0C18093E9008091EB0085FBEC -:102C4000882780F91092E90006C080918F03909147 -:102C50009003911182609091E800977F9093E80033 -:102C60008093F1001092F1008091E8008E779FC16F -:102C7000882309F48DC1823009F09DC180919503AC -:102C8000811190C1809197038F702FEF280F26300C -:102C900008F091C18093E9002091EB0020FF82C1F0 -:102CA000933031F48091EB0080628093EB007AC125 -:102CB0009091EB0090619093EB0021E030E001C037 -:102CC000220F8A95EAF72093EA001092EA00809199 -:102CD000EB008860EACF81116EC1109195031F77D8 -:102CE0008091E3008078812B8093E3008091E8005D -:102CF000877F8093E8000E9461048091E80080FF54 -:102D0000FCCF8091E30080688093E30082E01111A2 -:102D100083E0809391034FC18058823008F04BC10B -:102D200020919503309196032C3DE3E03E07A1F5F9 -:102D300083E08A838AE289834FB7F894DE01139691 -:102D400020E03EE051E2E32FF0E050935700E491A1 -:102D500020FF03C0E295EF703F5FEF708E2F90E091 -:102D6000EA30C0F0C7968D939D932F5F243159F7B9 -:102D70004FBF8091E800877F8093E8006AE270E0AF -:102D8000CE0101960E9413058091E8008B77809315 -:102D9000E80011C1C096E7CF809197039091980306 -:102DA000432F55274330510509F44AC078F5413087 -:102DB000510509F47AC08BE590E0EBEAF6E0423089 -:102DC000510509F0F8C02091E800277F2093E80022 -:102DD0002091990330919A038217930708F49C017C -:102DE00040E02115310509F065C0411163C08091B3 -:102DF000E80082FDC9CF80919103882329F28530B4 -:102E000019F28091E80083FFF2CFBECF4132510525 -:102E100009F43CC04232510509F0CDC08330910520 -:102E200008F0C9C0FC01EE0FFF1FE254FE4F0190F5 -:102E3000F081E02D85549E4FDC018C9190E01AC00A -:102E4000332721303105D1F02115310561F02230D1 -:102E5000310509F0B0C0E8E1F7E0E4918E2F90E091 -:102E6000E8E1F7E007C0E8E3F7E0E4918E2F90E0B7 -:102E7000E8E3F7E0009709F49EC0A5CFE4E2F7E0AD -:102E8000E4918E2F90E0E4E2F7E0F4CF83309105F7 -:102E900008F091C0880F991FFC01EC53FE4F019080 -:102EA000F081E02D89E090E08ECF82E190E0E6E0D5 -:102EB000F7E089CF80919103882309F465CF8530AD -:102EC00009F462CF8091E80083FD5ECF8091E80035 -:102ED00082FD8DCF8091E80080FF83CF9091F30039 -:102EE0008091F2002115310519F08830910550F0DC -:102EF00041E0089709F040E08091E8008E778093E8 -:102F0000E8006FCF44914093F10031962150310990 -:102F10000196E8CF803809F04EC08091E800877FA5 -:102F20008093E800809192038093F1009DCE8111FF -:102F300042C0109195031230F0F58091E800877F30 -:102F40008093E800109392030E946104112311F012 -:102F500084E005C08091E30087FDFACF81E0809393 -:102F6000910342E061EC81E00E94800442E261EC66 -:102F700084E00E94800442E261EC82E00E948004CE -:102F800042E260EC83E00E9480048091910313C0D0 -:102F900080919503813079F481E0933009F080E0ED -:102FA000809390031092E9008091E800877F8093DE -:102FB000E8000E9461048091E80083FF0AC08091CC -:102FC000E800877F8093E8008091EB008062809327 -:102FD000EB00AA960FB6F894DEBF0FBECDBFDF910F -:102FE000CF911F91089569EE7EEF90E080E00E94FE -:102FF000C72E60E082E090E00E94A92E60E083E0AE -:1030000090E00E94A92E10924A021092490260E0BC -:1030100084E090E00E94A92E60E082E290E00E94AD -:10302000A92E60E085E090E00E94A92E60E086E095 -:1030300090E00E94A92E6FEF87E090E00E94A92EF9 -:1030400040E050E0BA0188E090E00E94BB2E60E0D2 -:103050008DE090E00E94A92E40E050E0BA0188E1A6 -:1030600090E00E94BB2E60E087E190E00E94A92ED4 -:1030700040E050E0BA018CE190E00E94BB2E70E08D -:1030800060E080E290E00E94C72E40E050E0BA018C -:1030900088E190E00E94BB2E80E00E94E90D0E9432 -:1030A000010E40E050E0BA018FE090E00E94BB2E9C -:1030B00040E050E0BA0183E190E00C94BB2E8F9287 -:1030C0009F92AF92BF92CF92DF92EF92FF920F93B7 -:1030D0001F93CF93DF9300D000D0CDB7DEB76C0144 -:1030E000FC0183819481892B31F080819181892336 -:1030F0008F3F09F057C60F900F900F900F90DF9100 -:10310000CF911F910F91FF90EF90DF90CF90BF90E4 -:10311000AF909F908F900895980122513F452031A4 -:10312000310508F034C68FEF93E00E94952E0251CE -:1031300077E0E72E72E0F72E882361F18091450257 -:103140008770C9F2F60182818823A9F28091670312 -:1031500082FDD1CF82E00F900F900F900F90DF9102 -:10316000CF911F910F91FF90EF90DF90CF90BF9084 -:10317000AF909F908F900C949C14E114F4E0FF06A4 -:10318000E9F2C7010E94952E811101C001502FEF75 -:10319000E21AF20A0111F1CF1C821B82BB24B39404 -:1031A0006AE0A62E87010F5F1F4FC7010E94952E70 -:1031B00089831A82882311F29FEF980F933008F5C4 -:1031C0008A83B98232E0E30EF11CC8010E94952E79 -:1031D0008B83882309F4B2CF8E010F5F1F4FF80154 -:1031E00080818823F9F2813009F043C09181828186 -:1031F000913049F40E5F1F4F0E94060D0F5F1F4F65 -:10320000EECF7801E9CF923029F40E5F1F4F0E9474 -:10321000510CF4CF933029F40E5F1F4F0E94330BF3 -:10322000EDCF943019F00F5F1F4FE8CF0E5F1F4FA7 -:1032300030E020E0B8016F5F7F4FF801418180539B -:10324000990B8A30910550F021503109B8F28FE97D -:103250009FE00197F1F700C00000F6CFA29EF001B9 -:10326000A39EF00D11249C012E0F3F1F842F8B0174 -:10327000E1CF0E94210DC2CF81E00E94D5140E94AF -:103280007C145CCF81E00E948B14F9CF82E0FBCFED -:10329000882309F41AC180915A02811106C081E085 -:1032A00080935A0282EE0E94510C0E9484059093F2 -:1032B0005902809358028BE20E94510CF6018281E0 -:1032C000882369F0C801815E9C45059740F46FE151 -:1032D000600F60935B028CE090E00E94A92E17FFC4 -:1032E00070C0F6018281882309F46BC00E94BC057E -:1032F000869581708093EE010E94BC058170809359 -:10330000ED0180915B02813039F48091EE018823D8 -:1033100019F089E30E94060D80916C038093EC0103 -:1033200010926C0380915B02813009F4B7C188234D -:1033300009F4B0C1823009F4C4C1843009F4D5C1A4 -:103340008FE39CE90197F1F700C000005801E89471 -:10335000B7F84CE0E42EF12C5AE0852E912CC501F3 -:103360000E2C02C0969587950A94E2F78F70909183 -:103370005B02923009F0C0C18A3008F0BBC190E016 -:103380000996B4010E94FB2D875A0E94060D94E015 -:10339000E91AF108ECEFEE16EFEFFE0601F7809167 -:1033A0005B02813009F4B6C1882309F4AFC18230D1 -:1033B00009F4BCC1843009F4C2C18091EC0180934E -:1033C0006C03F6018281882369F180916C0382721B -:1033D0000C3CFCE51F0709F465C208F0E5C1063C9A -:1033E0003CE5130709F44AC208F0BCC1033CECE514 -:1033F0001E0709F439C208F0A4C1023C2CE51207EB -:1034000009F40BC20A358DE5180709F489C208F0E2 -:1034100063C20115ECE51E0709F470C20E3D1C45A0 -:1034200009F47BC2F60186819781009709F47CC27A -:103430000E9454088C01F601F280B580B2943FE0FE -:10344000B322809145028770C1F0AF2CFF20B1F00C -:10345000812F807F803421F080E2800F883068F0F7 -:103460008091670382FD09C082E00E949C148091D4 -:1034700045028770AA24A3948111A12C912E9294C5 -:103480002FE09222FBE0F91508F4CDC2E92DF0E01F -:10349000E950F14D0C94312E8823A1F080915A020D -:1034A000811106C081E080935A0282EE0E94510C85 -:1034B0000E948405909359028093580281EE0E94E5 -:1034C000510CF9CE81EE0E94330B8BE20E94330B3C -:1034D000F5CE882309F4F2CE81EE0E94510C83EEE2 -:1034E0000E94510C8FE40E94510C8FE40E94330B18 -:1034F00083EE0E94330B81EEE9CF882309F4DECE00 -:1035000081EE0E94510C83EE0E94510C80E50E94D6 -:10351000510C80E5EBCF882309F410CE10915702AF -:1035200081E01827109357020E9484059093560259 -:10353000809355021123C9F028E148E76FEF8FE02F -:103540000E94A71129E148E76FEF8FE00E94A711C1 -:103550002AE148E76FEF8FE00E94A7112BE148E7CF -:103560006FEF8FE00E94A711E9CD10921C018CE152 -:1035700080931D0180931E0181E20E94A913DECD7C -:10358000882309F49BCE80EE0E94510C81EE0E94AC -:10359000510C80E10E94510C80E10E94330B81EEBE -:1035A0000E94330B80EE0E94330B80914E0291E01B -:1035B00022E148E76FEF892780934E02882351F07C -:1035C0008FE00E94A71126E148E76FEF8FE00E948D -:1035D000A71174CE8FEA0E94A71126E148E76FEF8A -:1035E0008FEAF5CF882309F4A9CD1091540201E0A8 -:1035F0001027109354020E948405909352028093E6 -:1036000051028091530210921C01882319F18CE120 -:1036100080931D0180931E0181E20E94A91328E07E -:1036200044E666EE80E00E94A71129E044E666EEDB -:1036300080E00E94A7112DE044E666EE80E00E9443 -:10364000A71100935402109253021092500210924C -:103650004F0274CD8CE180931D0180931E0181E2A5 -:103660001123A9F00E94A91328E044E666EE80E049 -:103670000E94A71129E044E666EE80E00E94A711AF -:103680002DE044E666EE80E00E94A711DCCF0E94A8 -:10369000A913D9CF82EE0E94510C52CE83E00E9432 -:1036A000180B88E10E94510C8FE39CE90197F1F718 -:1036B00000C0000088E10E94330B83E00E940D0BE4 -:1036C0003FCE8091ED01811103C083E50E94060D7C -:1036D00082EE0E94510CEFE3FCE93197F1F700C054 -:1036E000000087E50E94060D2BCE86EE0E94060D97 -:1036F00088E1F8CF865049CE96EF980F963020F0AB -:10370000805D0E94210D43CE895AFBCF82EE0E943C -:10371000330B53CE8CE20E94060D8091EE0188237C -:1037200009F44BCE89E30E94060D47CE82EE0E943B -:10373000330B8091ED01811140CE83E5F4CF88E217 -:10374000F2CF043C3CE5130709F493C04AE353E18C -:1037500063E473E1053C9CE5190709F053CE0E9430 -:103760000706ECCC093CECE51E0709F491C070F4A7 -:10377000073C2CE5120709F486C04EE253E162E2F1 -:1037800073E1083C3CE5130751F33CCE0A3C9CE551 -:10379000190709F482C04CE453E16DE573E10B3C79 -:1037A000ECE51E07E1F22ECE013DFCE51F0709F412 -:1037B00087C0B0F40E3C3CE5130709F47BC008F465 -:1037C00076C00F3C9CE5190709F477C06EE089E0EC -:1037D000003DECE51E0709F015CE0E94F714AECCB3 -:1037E000043DFCE51F0709F471C068F4023D3CE5A7 -:1037F000130709F468C0033D8CE5180709F002CEF1 -:1038000061E088E12EC0053D9CE5190709F461C01F -:103810000D35100709F492CCF5CD8091E60280FFBA -:103820001BC08E7F8093E6026091E6027091E702F2 -:103830008091E8029091E9020E94661210928D0236 -:10384000FFEF20E732E0F15020403040E1F700C0C8 -:1038500000000E94280F72CC81608093E60261E034 -:1038600086950E946E136ACC44EE54E16DEE74E1CD -:1038700076CF4DEE54E164EE74E171CF43E453E151 -:103880006AE373E16CCF42E253E16EE273E167CF2A -:103890004AE053E166E173E162CF46E153E16AE059 -:1038A00073E15DCF4DE553E16CE473E158CF61E026 -:1038B00081E0D7CF65E082E090CF68E086E08DCFF1 -:1038C00064E18FE08ACF67E185E187CF62E289E139 -:1038D00084CF61E083E2C5CF0B352DE5120711F1EE -:1038E0000C351D4509F09ECD8091670382FB88272A -:1038F00080F991E089270E94B81494CD10926C034E -:103900000E9415158FEF94E3ECE081509040E04069 -:10391000E1F700C000000E942D0C0E94F3170ECCAE -:1039200081E0E9CF80E0E7CF8281008111818823A7 -:1039300069F0C8010E94430EF82E682FC8010E944A -:10394000BE0AB8018F2D0E94360E72CDC8010E94AA -:10395000970AF82EF6CF212F2F70E22E107F19F044 -:10396000E29490EFE922FF20B9F0EE2069F080E2C6 -:10397000800F883010F0011109C080916C03E82A93 -:10398000E0926C030E94E909802F4BC080914702AE -:10399000E82AE0924702F6CF802F0E94330BEE20F8 -:1039A00009F441C080E2800F883010F0011104C09A -:1039B0008E2D0E94E20906C0E09480914702E82221 -:1039C000E09247020E94E9092EC0312F3F70E32E9A -:1039D000107F103219F0E29480EFE822002381F08A -:1039E000013009F47EC0FF2009F488C0BB2009F42F -:1039F0007EC0F601858180FFC7CF8F70858377C039 -:103A00002091670322FF4AC0FF2009F441C0EE2045 -:103A100039F080916C03E82AE0926C030E94E90976 -:103A200080E00E94510C292D2850330B24303105A1 -:103A300020F40E94BC050E94890BAA20A9F0809165 -:103A4000450280FD11C0F601128285958595859508 -:103A50000E94D514C6010E945F1880914502859589 -:103A6000859585950E948B1460E0C6010F900F909C -:103A70000F900F90DF91CF911F910F91FF90EF90DA -:103A8000DF90CF90BF90AF909F908F900C94B90E25 -:103A900080E00E94330BEE2031F28ACFFF20A1F0AC -:103AA000909148028E2D892BB11003C00E94290BE2 -:103AB000BACFE1E0BE12FACF22FDB5CF891709F4E3 -:103AC000B2CF80934802AFCFB11006C00E94DC098C -:103AD0008E2D0E94220BA7CFF1E0BF1609F4A3CFD1 -:103AE000F5CFFF2031F022E02B1508F49CCF8E2D6E -:103AF000DDCF31E03B1508F496CFEACFBB2041F390 -:103B0000093369F4FFEF27EE33E0F15020403040F5 -:103B1000E1F700C00000802F0E94330B84CF8FE3B9 -:103B20009CE90197F1F7F5CF812F869586958370F3 -:103B300061F0813009F077CFC8019370F11002C0B5 -:103B400090E080E00E9490056ECFC8019370F11064 -:103B500002C090E080E00E94A60565CF802FFF2084 -:103B600029F00E949E070E94BC065DCF0E94E306DA -:103B7000FACF812F837009F03FC0F11054CF402F4E -:103B8000429546954770440F440F802F8F7090E008 -:103B9000042E02C0880F991F0A94E2F730E020E05B -:103BA00004FF09C02FE030E002C0220F331F4A9506 -:103BB000E2F720953095169516951370123099F00E -:103BC00078F44091490250914A02113039F0822B29 -:103BD000932B842395230E94070B25CF842B952BB1 -:103BE000822B932BF8CF822B932B2091490230917B -:103BF0004A0282279327EFCF8695FF2011F0812F6D -:103C00008170882309F40FCF402F42954695477065 -:103C1000440F440F802F8F7090E0042E02C0880F55 -:103C2000991F0A94E2F730E020E004FF09C02FE07A -:103C300030E002C0220F331F4A95E2F720953095FD -:103C4000169516951370123099F078F440919B03F5 -:103C500050919C03113039F0822B932B84239523B0 -:103C60000E947414E0CE842B952B822B932BF8CFDB -:103C7000822B932B20919B0330919C0382279327C7 -:103C8000EFCF1F70FF2029F0812F0E94D514802FC5 -:103C90000DCF802F0E94220B812F0E948B14C3CE48 -:103CA000023F71F160F4003FB9F0013F81F0FF2065 -:103CB00009F459C0B11068CE812F8F7125C0033F20 -:103CC00031F1043FA1F78091670382FF2EC0812F5D -:103CD0008F71FF2011F318C0FF2069F091E09B1550 -:103CE00008F4A1CE1F7181E090E002C0880F991FF7 -:103CF0001A95E2F7BFCFE2E0EB1508F494CEF2CFCD -:103D0000812F8F71F110C9CF0E94D5148CCE90E015 -:103D100080E0FF2009F4A4CF1F7181E090E002C091 -:103D2000880F991F1A95E2F79BCFFF2089F01F712A -:103D3000812F0E94D5148091670382FD07C0F8E0AF -:103D40001F9FC0011124836080934502812FDCCF27 -:103D500081E00E949C1421E02B1508F064CE82E0E3 -:103D60000E949C1460CEBB2079F0093341F43FEFF0 -:103D700087EE93E0315080409040E1F7CACEEFE308 -:103D8000FCE93197F1F7C5CE812F8F7186CF0031D5 -:103D90003FE5130709F470CA01319FE51907A9F43B -:103DA00082E06BCA61E0C6010E94B90E8C01F60187 -:103DB00082818111B1C90031FFE51F0709F462CA90 -:103DC00001312FE5120709F461CAF801E058FF45F7 -:103DD000E730F10508F072CAED5FF04D0C94312E1A -:103DE000CF93DF9380910002807FA1F48091FD0149 -:103DF000882381F080914402D09103026091FB01FD -:103E00007091FC01A091FE01B091FF01C62FC72364 -:103E1000D81303C0DF91CF91089590E0109711F06F -:103E2000CF3F19F401968770F3CF9C0143E0220F36 -:103E3000331F4A95E1F7F901EC5FFD4F41814713CC -:103E4000F1CF40814613EECF42814111EBCF438148 -:103E500054814A1B5B0B403A510520F780910002C8 -:103E60008F70806180930002F901E75FFD4F8081D0 -:103E70008F70806180838BEF91E00E945F18DF91EB -:103E8000CF910C948D0AAF92BF92CF92DF92EF92B6 -:103E9000FF920F931F93CF93DF93CDB7DEB7659754 -:103EA0000FB6F894DEBF0FBECDBF8C0185E0F801E0 -:103EB000DE01519601900D928A95E1F7F801E280BA -:103EC0006BEFA62E61E0B62E6091FE017091FF01AE -:103ED0006115710509F468C19091FB014091FC01E5 -:103EE000892F84238F3F09F45FC120813181C380F2 -:103EF000D480F090FD01F601E61BF70BFF2009F4DA -:103F00001DC180910002582F507FE03AF10508F062 -:103F1000D0C0511181C0FE2C43132BC0921329C075 -:103F20006091010270910202F80146815781641785 -:103F30007507F9F4E1101DC08F7080618093000255 -:103F4000C5010E945F1880910002F80185838F2DC2 -:103F500065960FB6F894DEBF0FBECDBFDF91CF914F -:103F60001F910F91FF90EF90DF90CF90BF90AF9097 -:103F70000895CD2829F0822F83238F3F09F02FC188 -:103F800080E0F82FF170DF2E80FF3CC0809144026A -:103F900040910302841315C0298B3A8B89899A8931 -:103FA0000E947F0E292F22952F702230F8F02430A6 -:103FB00020F59F70F9F0F8019581907FD9F4D12C0C -:103FC0001FC090E0FC0153E0EE0FFF1F5A95E1F790 -:103FD000EC5FFD4F5181351306C05081251303C09E -:103FE0005281E5120FC001968770D4CF9F7011F0F7 -:103FF000882329F3805E883010F3C8010E945F187F -:10400000FD2CA5CFEE2009F4A2CF809100028160A3 -:1040100080930002F12C9BCF43131BC0921319C055 -:104020004091010250910202F80126813781421726 -:10403000530779F4E1100DC08583C8010E945F1811 -:1040400088E0F801ABEFB1E001900D928A95E1F7BD -:104050007ECFC8010E948B0E882339F1EE2029F112 -:10406000809100028032A0F02091FB013091FC0190 -:104070003A8729871B86DD86CC868E878091010250 -:1040800090910202988B8F87CE0109960E945F184B -:1040900088E0F801ABEFB1E001900D928A95E1F76D -:1040A0000E94F01EFF24F39452CFC8010E945F18B3 -:1040B000F9CF51110AC08BEF91E00E945F1888E0A0 -:1040C000F50111928A95E9F7A5CF431318C0921311 -:1040D00016C04091010250910202F80126813781F9 -:1040E0004217530761F4E1100AC08583C8010E949A -:1040F0005F1888E0F50111928A95E9F728CFC80189 -:104100000E948B0E882389F2EE2079F280910002C2 -:10411000803208F4BDCF2091FB013091FC013A833D -:1041200029831B82DD82CC828E8380910102909153 -:10413000020298878F83CE010196A8CFE03AF1055D -:10414000C0F6FE2CEE2009F4B0CF43131FC092132B -:104150001DC02091010230910202F80186819781F1 -:104160002817390799F49091000290FD69CF907F4C -:1041700009F466CF809100028583903F09F45DCFFA -:10418000982F907F905F8F70892B56CFC8010E9427 -:104190008B0E81117DCF809100028160809300029F -:1041A000C8010E945F18D3CEEE2009F47ECFC8016B -:1041B0000E948B0EF82E882309F477CF88E0F8014F -:1041C000ABEFB1E001900D928A95E1F78091FB0190 -:1041D0009091FC010E947F0E0E94F01EB8CE81E0FB -:1041E0008E25CFCECF93DF93CDB7DEB760970FB6D6 -:1041F000F894DEBF0FBECDBF29873A874B875C8717 -:104200006D877E878F87988BCE0109960E94431F0A -:10421000811112C088E0FE013996DE0111960190ED -:104220000D928A95E1F78C859D85892B29F08985EA -:104230009A8589238F3FA9F58091440290910302CA -:1042400089131CC060960FB6F894DEBF0FBECDBFB9 -:10425000DF91CF91089593E0AA0FBB1F9A95E1F7E4 -:10426000AC5FBD4F98E0FE01319601900D929A959A -:10427000E1F7809303020E948D0ADECFB8E08B9FA6 -:10428000C00111248C5F9D4F0E94431F8823D1F2EF -:104290008091440290E001968770992780934402B0 -:1042A000CBCFA0910302B0E0CD0101968770992792 -:1042B000209144022817190671F610926C030E948F -:1042C0001515109203021092440288E0EBEFF1E022 -:1042D000DF011D928A95E9F7AFCF0F931F93CF931C -:1042E000DF938091EE02E091ED02CCE081111AC0E3 -:1042F000DF91CF911F910F910895D1E0DE0FD09300 -:10430000ED020E2F10E0EC9FF0011124E151FD4F62 -:1043100083819481892B29F08081918189238F3F2A -:1043200051F4ED2F8091EE02E81738F31092EE026F -:104330001092ED02DDCFC09FD001C19FB00D1124BE -:10434000A151BD4F16968D919C911797892B29F4F9 -:1043500018968D919C91019651F420813181428172 -:10436000538164817581868197810E94F220C09F6C -:10437000F001C19FF00D1124E151FD4F1482138211 -:10438000D0CF10925A031092590310924901809194 -:104390005803809357030E94F6050C946D212F92C9 -:1043A0003F924F925F926F927F928F929F92AF92C5 -:1043B000BF92CF92DF92EF92FF920F931F93CF9312 -:1043C000DF93C0915703E7E0FE2E01E010E0FCE030 -:1043D0002F2EAEEFEA2E809158038C1316C00E9448 -:1043E0006D21DF91CF911F910F91FF90EF90DF90A2 -:1043F000CF90BF90AF909F908F907F906F905F9085 -:104400004F903F902F900C94F605D0E0FE01EE0FF8 -:10441000FF1FE15BFC4F80819181F89EF001F99EC6 -:10442000F00D1124E15EFE4F2481211158C030901F -:10443000EE02AFEEB2E030E020E0412C5F01231548 -:1044400008F04BC01A966D907C901B97F501808008 -:1044500091804FEF5FEF512CC52CD12CF601EE0F60 -:10446000FF1FE80DF91D659174916616770609F432 -:10447000A601672B11F05394EFCF4F3F5407B1F1D2 -:10448000B80102C0660F771F4A95E2F7462AA801D5 -:1044900002C0440F551F5A94E2F741505109441687 -:1044A000150601F5229EF001239EF00D1124E15125 -:1044B000FD4FF89ED001F99EB00D1124A15EBE4FB4 -:1044C00012962D913C91139737832683E082E182E7 -:1044D0009187808771E015967C930E94C80521968C -:1044E000C37079CF14961C921E9213972F5F3F4F83 -:1044F0001C96A5CF2F923F924F925F926F927F9220 -:104500008F929F92AF92BF92CF92DF92EF92FF92E3 -:104510000F931F93CF93DF93CDB7DEB769970FB695 -:10452000F894DEBF0FBECDBF498B5A8B6B8B7C8B53 -:104530008D8B6111109247021D861E861F86188A78 -:1045400085E0FE017196DE01199601900D928A9523 -:10455000E1F78C859D85892B31F089859A858923A2 -:104560008F3F09F0D4C129853A854B855C856D85DF -:104570007E858F8598890E94F220C3C028EFC216DD -:104580002CE5D20629F4882379F00E94C121EBCFD3 -:1045900039EFC3163CE5D30639F4882329F080911E -:1045A00049018111F2CFC3C10FE111E0E12CB12C1F -:1045B000A12C88248394912C9EEF592E442443945B -:1045C000F8016081718166246A94762C20E0422F84 -:1045D00050E0FA01EE0FFF1FE60FF71F859194914F -:1045E000C816D90609F43A01892B11F02F5FEFCFD5 -:1045F000F12CFFEF6F167F0609F445C0F8014481E6 -:10460000F09049018F2D411180E0F82FF170FF2EBD -:10461000F801258086819B85992309F408C1FF2034 -:1046200009F405C1211014C0A40101C0440F6A940B -:10463000EAF7842B86838091EB029091EC0280391B -:10464000914030F440E951E05093EC024093EB028A -:10465000C40102C0880F991F2A95E2F70197F8015B -:1046600026812817190679F48091590390915A03ED -:10467000009709F45FC00E9475058139914008F4E4 -:1046800059C0F8014482EF28FFEFAF1ABF0A095F53 -:104690001F4F26E0A216B10409F092CF8B85882324 -:1046A00009F420C1EE2009F41DC10E9484059093F5 -:1046B0005A03809359038091EE02883010F591E0FF -:1046C000980F9093EE0298E0FE013996DE01119664 -:1046D00001900D929A95E1F73CE0839FC00111246F -:1046E00081519D4F28E0FE013196DC0101900D9231 -:1046F0002A95E1F72FEF3FEFFC0131872087D38622 -:10470000C28669960FB6F894DEBF0FBECDBFDF91AB -:10471000CF911F910F91FF90EF90DF90CF90BF90BE -:10472000AF909F908F907F906F905F904F903F9051 -:104730002F9008958091570360905803982FF0E0D0 -:10474000E0E0861114C0909357030E171F0709F479 -:104750009ACF90E0FC01EE0FFF1FE15BFC4FB182AE -:10476000A082019683709927809358038CCF282EBE -:10477000312CF101EE0FFF1FE15BFC4F20813181F5 -:10478000F7E0F29FD001F39FB00D1124A15EBE4F60 -:104790002D913C911197398F288F712C60E070E03A -:1047A000E72FF0E0EE0FFF1F288D398DE20FF31F8A -:1047B0002591349121153105E1F0F8010190F08146 -:1047C000E02DFF8BEE8B60E005C02417350709F460 -:1047D0007F2C6F5FE62FF0E0EE0FFF1F4E895F89A1 -:1047E000E40FF51F459154914115510571F77F5F15 -:1047F000D7CF7720C9F0F801671708F0FD01448290 -:104800000E171F0721F490935703F72C3CCF9813F2 -:1048100005C0AE17BF0711F49F5F937091012F5F22 -:104820003F4F822F83708DCFF0E0E0E0F7CF90E034 -:1048300021101FC0B40102C0660F771F2A95E2F74E -:104840009B01215031092817390731F4442309F419 -:1048500047C0C5010E94C805C40101C0880F6A9401 -:10486000EAF7982F9095F801868189238683F22CA8 -:104870000ACF9C01062C02C0359527950A94E2F7D1 -:10488000A90141705527BC01615071098623972306 -:10489000892B11F5452B01F1F80182819381892B38 -:1048A000C1F01B821C821D821E8259825A820E9484 -:1048B00084058160582F9D838C83F80182819381C8 -:1048C0008F83988729813A814B816D817E810E94F7 -:1048D000F220F8011582C0CFF22FF1702F2EBCCF3D -:1048E0002F2CBACF9091570380915803981731F02D -:1048F0000E94CF21EE2009F436CE03CF0E946D2115 -:1049000010925A03109259030E94F605F3CF61E00A -:10491000CE0109960E94B90E6C018B85F7EFCF1678 -:10492000FCE5DF0609F02ACE882309F43DCE81E0BC -:104930008093490118CE9F92AF92BF92CF92DF929F -:10494000EF92FF920F931F93CF93DF9300D000D08D -:1049500000D0CDB7DEB78E010F5F1F4F86E0F801A4 -:1049600011928A95E9F78CE7C82E81E0D82EF12CB8 -:10497000E12CAA24A394B12CF60181916F018F3F01 -:1049800009F443C0F894E82FE295EF70F0E021A11C -:104990008F70A50102C0440F551F8A95E2F7CA0126 -:1049A000922F982B91A392A18095892382A378942A -:1049B00000C0E2E8F1E0912C31E021912F3F09F4B1 -:1049C0006EC0A22FA295AF70B0E090968C9190E04F -:1049D0002F7002C0959587952A95E2F780FD5FC0FC -:1049E000832F982A330F51E0E638F50731F7F601A7 -:1049F000319780818F3F11F00E94FA0780EA8A95F3 -:104A0000F1F7F801EE0DFF1D9082EFEFEE1AFE0AAE -:104A1000F6E0EF16F10409F0AFCF46E050E0B80140 -:104A20008FE592E00E94882EFF24F394009709F40A -:104A3000F12C892BB1F186E0F801AFE5B2E00190ED -:104A40000D928A95E1F781E080934D020E948405E2 -:104A500090934C0280934B0280914B0290914C02B8 -:104A60000E947505059708F180915F02809372029C -:104A7000809160028093730280916102809374023E -:104A80008091620280937502809163028093760226 -:104A9000809164028093770210924D0206C080E0FC -:104AA000A0CF80914D028111D7CF809149018823F9 -:104AB00001F18091590390915A030097D1F00E941F -:104AC00075052091EB023091EC022817390788F424 -:104AD0009091570380915803981709F47EC00E9463 -:104AE000CF211092EC021092EB0210925A03109216 -:104AF000590380915A02882371F080915802909155 -:104B000059020E947505893E934028F082EE0E946A -:104B1000330B10925A0280915702882391F08091B2 -:104B20005502909156020E947505883E934048F0C8 -:104B30000E948405909356028093550283E70E9459 -:104B4000060D8091530290915402992309F44EC0AE -:104B5000811130C080915102909152020E947505DE -:104B600081369A4E78F080914F02909150020196D2 -:104B70009093500280934F020E94840590935202BA -:104B80008093510280914F02909150024F9708F408 -:104B90005CC010921C018CE180931D0180931E016A -:104BA0008FE00E94A91381E080935302109250027B -:104BB00010924F028F2D26960FB6F894DEBF0FBECF -:104BC000CDBFDF91CF911F910F91FF90EF90DF90BC -:104BD000CF90BF90AF909F9008950E946D2110924A -:104BE0005A03109259030E94F60583CF8111E2CF38 -:104BF00080914E02882361F022E148E76FEF8FE059 -:104C00000E94A71126E148E76FEF8FE00E94A711ED -:104C100080915702882371F228E148E76FEF8FE017 -:104C20000E94A71129E148E76FEF8FE00E94A711CA -:104C30002AE148E76FEF8FE00E94A7112BE148E7D8 -:104C40006FEF8FE00E94A711B5CF28E044E666EE33 -:104C500080E00E94A71129E044E666EE80E00E9411 -:104C6000A7112DE044E666EE80E00E94A711C0CFB8 -:104C700090E080E00E94A32E893E9E4F11F40C9498 -:104C8000F90E80E008951F920F920FB60F92112433 -:104C90002F933F934F935F936F937F938F939F9344 -:104CA000AF93BF93CF93DF93EF93FF93D091E9003E -:104CB000DF708091EC00C82FC17080FDC0E81092B9 -:104CC000E9008091F000877F8093F00078940E9443 -:104CD00028151092E9008091F00088608093F00020 -:104CE000CD2BCF70C093E900FF91EF91DF91CF9171 -:104CF000BF91AF919F918F917F916F915F914F91F4 -:104D00003F912F910F900FBE0F901F9018951F92FB -:104D10000F920FB60F9211242F933F934F935F93EF -:104D20006F937F938F939F93AF93BF93EF93FF9373 -:104D30008091E10082FF09C08091E20082FF05C0FE -:104D40008091E1008B7F8093E1008091DA0080FF09 -:104D500024C08091D80080FF20C08091DA008E7F2F -:104D60008093DA008091D90080FF9DC080E189BDE9 -:104D700082E189BD09B400FEFDCF81E080939103FB -:104D800080916B03811109C00E94E7030E94B20465 -:104D90008091E20084608093E2008091E10080FFD6 -:104DA00017C08091E20080FF13C08091E2008E7FE7 -:104DB0008093E2008091E20080618093E200809124 -:104DC000D80080628093D80019BC85E0809391035D -:104DD0008091E10084FF2BC08091E20084FF27C016 -:104DE00080E189BD82E189BD89B5982F917080FFEE -:104DF000FBCF8091D8008F7D8093D8008091E10017 -:104E00008F7E8093E1008091E2008F7E8093E200AC -:104E10008091E20081608093E20080919203882378 -:104E200009F447C084E080939103809191038091BD -:104E3000E10083FF27C08091E20083FF23C08091BF -:104E4000E100877F8093E10082E0809391031092DC -:104E500092038091E1008E7F8093E1008091E200D7 -:104E60008E7F8093E2008091E20080618093E20077 -:104E700042E060E080E00E9480048091F000886061 -:104E80008093F000FF91EF91BF91AF919F918F912F -:104E90007F916F915F914F913F912F910F900FBE36 -:104EA0000F901F90189519BC1092910310926B03EC -:104EB00074CF8091E30087FD93E090939103B5CF89 -:104EC00078941F921FB61F9211248F939F93AF93D4 -:104ED000BF938091620390916303A0916403B091AA -:104EE00065030196A11DB11D809362039093630336 -:104EF000A0936403B0936503BF91AF919F918F918D -:104F00001F901FBE1F9018951F921FB61F9211244D -:104F10008F939F93AF93BF9380916103811113C0CF -:104F20008091620390916303A0916403B091650343 -:104F30004196A11DB11D8093620390936303A093DA -:104F40006403B0936503BF91AF919F918F911F90C0 -:104F50001FBE1F901895CDB7DEB7EE970FB6F89429 -:104F6000DEBF0FBECDBF84B7877F84BF0FB6F89476 -:104F7000A895809160008861809360001092600025 -:104F80000FBE80E890E00FB6F89480936100909394 -:104F900061000FBE85B7806885BF85B7806885BF13 -:104FA00088EF97E09093CB018093CA010E94E703BA -:104FB0000E94B2048091E20084608093E2007894C1 -:104FC000809191038823A1F01091E9001F709091C6 -:104FD000EC00892F817090FD80E8182B1092E90079 -:104FE0008091E80083FD0E9428151F701093E9004E -:104FF00082E084BD93E095BD9AEF97BD80936E00EB -:105000000E94F90E811102C00E94010E0CE711E00E -:1050100022E8C22E21E0D22ED8018D918D018F3F42 -:1050200011F00E94FA07C016D106B1F786EF0E9470 -:10503000FA0787EF0E94FA0783E90E94FA0786E9D8 -:105040000E94FA0786E0E2E7F2E0DF01282F1D92D6 -:105050002A95E9F7EFE5F2E0DF011D928A95E9F77D -:105060000E943826811102C00E94F31782E090E06E -:105070000E94952E80936B0284E090E00E94952E12 -:10508000182F82E290E00E94952E982F812F909306 -:105090006703809366030E949B24EFE3FCE931974A -:1050A000F1F700C000000E949B248091720280FFF3 -:1050B00008C06FEF7FEF90E080E00E94C72E0E9453 -:1050C0002D0C83E090E00E94952E90E00E94070B4B -:1050D00080919B0390919C030E94CF13509A589A01 -:1050E000559A5D9A549A5C9A8CE090E00E94952EB5 -:1050F00090E0B0E0A0E080935B0290935C02A0930C -:105100005D02B0935E0280916502811132C00E94FF -:105110003826811104C00E94F3170E94051588E00B -:1051200090E00E949D2E6093E6027093E7028093C8 -:10513000E8029093E9026E7F71F40E94051588E001 -:1051400090E00E949D2E6093E6027093E7028093A8 -:10515000E8029093E9020E940D0610928D02809160 -:10516000E60280FF03C086950E94A91381E0809328 -:1051700065025198599A52985A9A89B186958170C8 -:105180004A994EC290E0892B809369026091660330 -:105190006068609366031091670384E090E00E946A -:1051A000A92E612F82E290E00E94A92E81E20E9446 -:1051B000A91381E090E00E94741480E091E0909344 -:1051C0005E0380935D0308E1C02ED12C82E792E05C -:1051D00096E0B92EB80E80919103853021F510E448 -:1051E000912E8824839400E112E18091910385300F -:1051F00009F418C210926C030E9415150E94BC0598 -:105200000E94890B1092850280916602882309F41E -:105210005DC28091E60281608093E60286950E94DD -:10522000A9130E94120F0E949B24882359F08FB764 -:10523000F89440916203509163036091640370910C -:1052400065038FBFA2E7B2E0ECE6F2E010E000E019 -:10525000302F8D919191981709F445C2292F282755 -:1052600090E099249394422F492109F437C29DABD1 -:105270003EAB892191E009F490E09FAB0E94840548 -:105280008160782F99AF88AF4DA95EA96FA989ADCC -:105290000E947A22F801E459FD4F8081982690827D -:1052A00080918D028823D1F180918C02E091E602F9 -:1052B000E695E81BE0938802823009F02BC2F0E00B -:1052C000EA55FD4FE4910E2F10E0B2E58B2EB2E1CE -:1052D0009B2E80918902882361F0109289020E949E -:1052E0008405909387028093860210928B0210921D -:1052F0008A020E948405E0918602F09187028E1B4B -:105300009F0B8F3F9F4750F4E00FF11FF0938702F0 -:10531000E093860286E892E0F4010995E091690243 -:10532000EE0FEE0FE093690289B181FBEE24E0F805 -:105330004A994AC280E08E29E82BE0936902EF7017 -:10534000F0E0EA57FE4F808190916802890F8093C8 -:10535000680220E0843034F1809167028F5F80938F -:10536000670212E018AB19AA81E08AAB0E9484059B -:105370008160782F9CAB8BAB48A959A96AA98CA9ED -:105380000E947A221BA71CA61DA60E94840581608C -:10539000782F9FA78EA74BA55CA56DA58FA50E9412 -:1053A0007A2221E0809168028D3F2CF5809167027E -:1053B0008150809367021EA21FA281E088A70E94ED -:1053C00084058160782F9AA789A74EA15FA168A55F -:1053D0008AA50E947A2219A21AA21BA20E94840501 -:1053E0008160782F9DA38CA349A15AA16BA18DA1A7 -:1053F0000E947A2221E080916802082E000C990B0D -:1054000064E070E00E94FB2D80936802222359F033 -:105410008FB7F894409162035091630360916403E5 -:10542000709165038FBF86E0EFE7F2E0DE01119631 -:1054300001900D928A95E1F790908102809082020E -:1054400010918302009184021092810210928202D4 -:105450001092830210928402892D882909F448C091 -:1054600080917D0290917E020E9475059C01909131 -:105470007902992309F498C323333105C8F19F3F7A -:1054800019F09F5F90937902992059F00E947E074E -:105490009FEF19140CF491E0899F802D11248093C3 -:1054A0008102882059F00E947E079FEF18140CF4A7 -:1054B00091E0899F802D1124809382023091810296 -:1054C0003323B1F020918202222391F045EB340383 -:1054D000C0011124992309F47AC19093810245EB0C -:1054E000240390011124332309F475C130938202FF -:1054F000812F802B09F448C080917B0290917C021F -:105500000E9475059C0190917802992309F447C384 -:1055100025363105C8F19F3F19F09F5F90937802BF -:10552000112359F00E945C079FEF11160CF491E0D3 -:10553000899F802D112480938302002359F00E94BB -:105540005C079FEF10160CF491E0899F802D1124C9 -:1055500080938402309183023323B1F0209184023E -:10556000222391F045EB3403C0011124992309F45F -:1055700036C19093830245EB240390011124332319 -:1055800009F431C1309384028091810290918202AA -:10559000892B90918302892B90918402892B11F0A1 -:1055A0000E94BC0686E0FE013196AFE7B2E00190B2 -:1055B0000D928A95E1F70E94BC0590916A028917C5 -:1055C00031F00E94BC0580936A020E94890B809191 -:1055D0009103843009F0FFCD83E08093E90080914E -:1055E000E80082FFF8CD8091E80090E085FF06C0DA -:1055F0000E940604882309F4FAC091E08091E80033 -:105600008B778093E800992309F4E5CDE981E15097 -:10561000E33108F06EC1F0E0E65FF04D0C94312EFE -:1056200092E0B1CD80919103843009F440C080E0D4 -:105630000E94890B10928D0280918502811116C003 -:10564000809285028091E602982F91709093660275 -:105650008E7F8093E602FFEF20E742E0F15020408A -:105660004040E1F700C000000E94280F1092610343 -:105670000FB6F894A895C09260000FBE909260009B -:1056800083B7817F846083BF83B7816083BF789451 -:10569000889583B78E7F83BF0FB6F894A8958091C5 -:1056A0006000886180936000109260000FBE80915E -:1056B0009003882309F499CD0E949B24E2E7F2E04D -:1056C000819181114BC2BE12FBCF8FCD80918E0292 -:1056D000882309F4A6CD0E94280FA3CD9F5F990CC3 -:1056E000943009F0C0CD0F5F1F4F0630110509F04F -:1056F000AFCD8FEF8AAF8BAF1CAE0E948405816067 -:10570000782F9EAF8DAF4AAD5BAD6CAD8EAD0E9474 -:105710007A22C6CD863059F4F0E0ED55FD4FE49184 -:105720000E2F10E0A2E48A2EA2E19A2ED2CD89306B -:1057300061F4E695F0E0E056FD4FE4910E2F10E0A5 -:10574000FAE68F2EF1E19F2EC4CD8F3061F4E695FD -:10575000F0E0E356FD4FE4910E2F10E0E0EF8E2EC7 -:10576000E0E19E2EB6CD853159F4F0E0E656FD4FCE -:10577000E4910E2F10E07DE7872E70E1972EA9CDE2 -:1057800008E210E04DEE842E4FE0942E883109F4AB -:10579000A0CD833249F4E8E9F2E00591149169EE75 -:1057A000862E61E1962E95CD04EF11E050EB852E0B -:1057B0005FE0952E843209F48CCD00ED17E03CE0DB -:1057C000832E36E0932E85CD82E090E0B4CD81E04B -:1057D0008093810284CE81E08093820289CE81E031 -:1057E00080938302C8CE81E080938402CDCE00E214 -:1057F00010E0CE0101964C018091E80085FD0AC0C1 -:105800008091E8008B778093E8000E94060488234B -:1058100099F3F3CE8091F100D4018D934D010150A5 -:10582000110951F7EACE1A8289E08B832DC08A8153 -:10583000823009F4ABC18330A9F0813009F059C03E -:105840002FB7F894609162037091630380916403B1 -:10585000909165032FBF0E94372E6B837C838D83CD -:105860009E8312C0809172028B83809173028C831D -:10587000809174028D83809175028E83809176026F -:105880008F8380917702888780919103843009F01B -:10589000A2CC1091E9001F709091EC00892F8170CB -:1058A00090FD80E8182B82E08093E9008091E80069 -:1058B00080FF0DC050E040E060E270E0CE01019654 -:1058C0000E9437048091E8008E778093E8001F7073 -:1058D0001093E90080CC8A81823059F46B817C81FD -:1058E0008D819E810E94372E86E290E00E94A92E33 -:1058F000CBCF8FEF8983C8CF4C816B818A810E9487 -:10590000100E9827892798279E838D83BDCF8D8081 -:105910009E809824892498248A810B81B8E00B9F6B -:1059200080011124E0E38E9F000D111D11248C8154 -:1059300090E0880F991F080F191F692DC8018796DD -:105940000E94A92E682DC8018896D0CF0E94970D7D -:105950009BCF8A818138C1F060F4803809F094CF00 -:1059600020E04B816091E8028091E7020E9478126A -:105970008BCF823849F1833809F086CF20E04091FF -:10598000E9026C818B81F2CF8B810E94A9139B81EC -:105990008091E602911111C08E7F8093E6021092F1 -:1059A0008D02FFEF20E742E0F15020404040E1F758 -:1059B00000C000000E94280F67CF81608093E6023C -:1059C00086950E94A91360CF8B818093EA025CCFF9 -:1059D0008A81813899F030F4803809F055CF809170 -:1059E000E90223CF823891F0833809F04DCF8091BE -:1059F000E7028B838091E8028C8346CF8091E60298 -:105A000080FF02C0869511CF80E00FCF8091EA021F -:105A10000CCF6091E6027091E7028091E8029091CC -:105A2000E9020E94661230CF80E18A832DCF81E0A7 -:105A30008A8389EFFACE0A811B811027012710275C -:105A4000CE0101963C018C80DC01A80DB11D4D01F9 -:105A5000C801895F9D4F8614970409F415CF093F4B -:105A6000B1E01B0750F40E94952EF30184830F5F71 -:105A70001F4FBFEF6B1A7B0AEBCFD30114961C921A -:105A8000F6CF0A811B81102701271027FE013196CE -:105A90003F018C80800E912E911CC801895F9D4F23 -:105AA0008016910609F4F0CE093FF1E01F0728F4B3 -:105AB000D30114966C910E94A92EBFEF6B1A7B0A3A -:105AC0000F5F1F4FEACF0E94870DDECE8AE0ADCF79 -:105AD0000A811B81102701271027FE0131963F0103 -:105AE0008C80CF01880D911D4C01C80187968614CA -:105AF000970409F4C9CE003EA1E01A0750F40E94B1 -:105B0000952EF30184830F5F1F4FBFEF6B1A7B0A43 -:105B1000ECCFD30114961C92F6CF0A811B8110277B -:105B200001271027FE0131963F018C80800E912EB7 -:105B3000911CC80187968016910609F4A5CE003EF7 -:105B4000F1E01F0728F4D30114966C910E94A92E4E -:105B5000BFEF6B1A7B0A0F5F1F4FEBCF09BD19BD5B -:105B600009B400FEFDCF8091D8008F7D8093D800CE -:105B70008091E00082608093E0008091E00081FDF0 -:105B8000FCCF10926C030E9415152FCB86E290E09B -:105B90000E94952E1B821C821D828E8375CE2D3213 -:105BA000314008F0BACCF0CC2D32314008F069CC4D -:105BB0009FCC87FB082E062687FD819567FD6195A2 -:105BC0000E946F2E0EF4919507FC81950895AA1BF3 -:105BD000BB1B51E107C0AA1FBB1FA617B70710F0D8 -:105BE000A61BB70B881F991F5A95A9F7809590950A -:105BF000BC01CD01089597FB072E16F4009407D041 -:105C000077FD09D00E94E72D07FC05D03EF4909562 -:105C100081959F4F0895709561957F4F0895A1E2FA -:105C20001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F16 -:105C3000FF1FA217B307E407F50720F0A21BB30B61 -:105C4000E40BF50B661F771F881F991F1A9469F7DD -:105C500060957095809590959B01AC01BD01CF0139 -:105C60000895EE0FFF1F0590F491E02D0994692728 -:105C70009627692778278727782708950E94462E38 -:105C8000332312F48A1B9B0B0C94572EA29FB00156 -:105C9000B39FC001A39F700D811D1124911DB29F60 -:105CA000700D811D1124911D08950E94462EB7FF8D -:105CB0000895821B930B08950E94462EA59F900D78 -:105CC000B49F900DA49F800D911D11240895B7FFDE -:105CD0000C945C2E0E945C2E821B930B0895991BE2 -:105CE00079E004C0991F961708F0961B881F7A95D3 -:105CF000C9F780950895FC014150504030F0019063 -:105D00000616D1F73197CF0108958827992708956E -:105D1000FB01DC0104C08D910190801921F44150F8 -:105D20005040C8F7881B990B0895F999FECF92BD92 -:105D300081BDF89A992780B50895A6E1B0E044E0C6 -:105D400050E00C94CF2EA8E1B0E042E050E00C947B -:105D5000CF2E262FF999FECF92BD81BDF89A0197DB -:105D600000B4021639F01FBA20BD0FB6F894FA9AA3 -:105D7000F99A0FBE08950396272F0E94AA2E0E941B -:105D8000A92E252F0E94AA2E242F0C94AA2E01960C -:105D9000272F0E94AA2E0C94A92EDC01CB01FC0116 -:105DA000F999FECF06C0F2BDE1BDF89A319600B474 -:105DB0000D9241505040B8F70895F894FFCFA40ECB -:105DC000A40EAD0EAD0EAF0EAD0EAD0EAD0EA40E0B -:105DD000A40EB40EAD0EAD0EB40E10163816DB17B1 -:105DE0003816DB176B168C16DB178A179717AB1C48 -:105DF000AB1CE51CE51C941DAE1D131D131DB91D28 -:105E0000411E501E501E48194C1A691A7D1A8B1AD1 -:105E1000C01AF21A132C172C6B2C7C2C872CA62C56 -:105E2000A92CE82C092D792C792C142D172D1B2D3C -:0A5E3000412D632D662D682D8D2D88 -:105E3A007205ED0BCC0BC80BC40B710501191A1BAB -:105E4A001C1D1E1F202122010201001C001C1CCA4D -:105E5A00002A00000000C4004C00000000BE0050F0 -:105E6A0000000000B8005100000000B2004F00001E -:105E7A000000AC0052000000000101818283E200B0 -:105E8A00E900EA00B500B600B700CD008301CC00F6 -:105E9A008A01920194012102230224022502260288 -:105EAA0027022A02B300B4006F007000F0343536BE -:105EBA006667F6F7939600FF0100010000FFFF00F6 -:105ECA0000010001FF0000010202020206060609A3 -:105EDA0009090909090F0F0F0F0F0F1515151819C1 -:105EEA0019191919191919191923244022B6A801BF -:0A5EFA008601D000BD06D606F606AC +:100AE0000895089580916D0308959C014FB7F8947F +:100AF0008091610390916203A0916303B0916403BC +:100B00004FBF821B930B08952FB7F8948091610318 +:100B100090916203A0916303B09164032FBF089585 +:100B200020914A012223C9F02091650327FF15C0B7 +:100B3000E62FE695E695E695EE31D8F4E80FF92F25 +:100B4000F11D677021E030E001C0220F6A95EAF7DD +:100B500020958281282322830895FC0132960896ED +:100B60002191621303C0DF0111971C92E817F90766 +:100B7000B9F7089520915E0330915F032817390774 +:100B800071F090935F0380935E03E0915C03F091BA +:100B90005D03309721F00084F185E02D09940895DC +:100BA00020915A0330915B032817390771F0909315 +:100BB0005B0380935A03E0915C03F0915D033097EF +:100BC00021F00680F781E02D09940895E0915C03FF +:100BD000F0915D03309721F00190F081E02D0994B0 +:100BE00080E00895DC016091560380915703962FB1 +:100BF000891301C00895292F30E0F901EE0FFF1F7E +:100C0000E25BFC4F408151814A175B07A1F487E00A +:100C10008A9FA0018B9F500D1124415E5E4F81E0A1 +:100C2000FA0184839613E6CF2F5F3F4F237033275B +:100C30002093560308952F5F3F4F922F9370D8CF84 +:100C40001092EB021092EA02EFE1F1E0858181114E +:100C500002C014821682379681E0E934F807B1F7B2 +:100C60000895FA01811101C0FB0109940895809152 +:100C7000E502982F9E7F61F4817082608093E50287 +:100C80008091E802853B18F084EB8093E802089598 +:100C90008A34B0F381708864F1CFAF92BF92DF9253 +:100CA000EF92FF920F931F93CF93DF93182F062F8E +:100CB000E901453B08F044EBE42FF0E0E655FD4F39 +:100CC000011110C0E4915E2F4E2F4983E8835A83AF +:100CD000DF91CF911F910F91FF90EF90DF90BF9028 +:100CE000AF900895202F30E04491D42EE42EF12CC3 +:100CF00056E0159FC0011124EFEFF0E0BF010E9404 +:100D0000FE2C812F90E0880F991F55E5569FD0014A +:100D1000579FB00D11248A1B9B0B982F990F890F99 +:100D20005F01A21AB30AAE9CD001AF9CB00DBE9C6D +:100D3000B00D11245B2F089F80011124012F112772 +:100D40005F01A01AB10AAE9C8001AF9C100DBE9C41 +:100D5000100D11245F01A81AB108A29EC001A39E24 +:100D6000900DB29E900D1124892F9927E81BF90B45 +:100D7000EE9DC001EF9D900DFE9D900D1124E92F79 +:100D800062307105A1F050F46115710509F49DCF31 +:100D90006130710581F0EB2F512F97CF64307105D1 +:100DA00069F080F06630710509F48FCFF4CFE42F3D +:100DB0004B2F592F8ACFE42F412F87CFEB2F542F62 +:100DC000492F83CF4B2F5D2DE12F7FCF0E948405CC +:100DD0009C019091820280918302982B21F03093A4 +:100DE0007F0220937E029091840280918502982B4D +:100DF00021F030937D0220937C02E0915C03F0911E +:100E00005D03309749F082E0809380020480F58191 +:100E1000E02D80E892E00994089540918202803F9D +:100E200059F48091830287FF0DC010928302411113 +:100E30000BC010927A0208C0813F81F48091830236 +:100E400018169CF3442381F08091840290918502CE +:100E5000892B09F05AC0109279020895823F49F413 +:100E600047FFF0CF10928202809183028111ECCF74 +:100E7000E0CF833F19F41416ACF3E4CF90918402D1 +:100E8000893F29F41916F4F610928402DBCF8A3FC9 +:100E900019F497FFD7CFF8CF909185028B3F29F4B3 +:100EA00097FFD0CF10928502CDCF8C3F19F4191641 +:100EB000CCF3C8CF9CE0980F953090F4845F990BE9 +:100EC00021E030E0B90102C0660F771F8A95E2F792 +:100ED000CB01809590918102892380938102B2CFCA +:100EE0008D3F31F480917B028E7F80937B02AACF6D +:100EF0008E3F21F480917B028D7FF7CF8F3F09F0E9 +:100F0000A1CF80917B028B7FF0CF089580917B02EF +:100F100080FD16C081FD16C082FD16C08091790249 +:100F20008823A1F0883280F428E0829FC001112438 +:100F300068E270E00E94122D862F672B39F0089529 +:100F400082E0089584E0089588E0089581E008959E +:100F500080917B0280FD14C081FD14C082FD16C00B +:100F600080917A02882381F0843180F422E3829F89 +:100F7000C001112464E170E00E94122D862F0895B3 +:100F80008CE0089589E1089585E0089582E308954D +:100F9000803F31F40E94A8078195809383020895D1 +:100FA000813F19F40E94A807F8CF823F31F40E94D4 +:100FB000A8078195809382020895833F19F40E94C7 +:100FC000A807F8CF893F29F40E94860780938402FE +:100FD00008958A3F21F40E9486078195F7CF8B3FC1 +:100FE00031F40E94860781958093850208958C3F95 +:100FF00019F40E948607F8CF9CE0980F953070F4A2 +:10100000845F990B21E030E001C0220F8A95EAF756 +:1010100080918102822B8093810208958D3F31F46B +:1010200080917B02816080937B0208958E3F21F442 +:1010300080917B028260F7CF8F3FB9F780917B026E +:101040008460F1CF80E00895F894E82FE295EF7086 +:10105000F0E031A1282F2F7081E090E001C0880FCF +:101060002A95EAF7982F9095932391A392A1892B23 +:1010700082A3789408959091650392FF06C0282F6B +:1010800028712830F9F4877F846093FF06C0282FE9 +:1010900028712831F1F4877E84612091660320FF56 +:1010A00006C0382F38713830D9F4877F816021FF2E +:1010B00006C0282F28712831D1F4877E816194FDE4 +:1010C000877E0895282F24712430F9F68B7F88605D +:1010D000DCCF282F2471243101F78B7E8861DDCF8E +:1010E000382F3171313019F78E7F8860E0CF282F8B +:1010F0002171213121F78E7E8861E1CFCF93DF937B +:10110000EC0182389105A9F1D8F58133910509F4F4 +:1011100096C048F58932910509F48AC08A9709F486 +:1011200095C0C11521E5D20708F0BCC0C11530E556 +:10113000D30708F014C1C83ED10508F09CC0C03EDA +:10114000D10560F5C83AD10508F087C0C53AD10588 +:1011500008F0FDC0C130D10509F12097F9F0C43085 +:10116000D105E0F440C08533910509F45AC0C99710 +:10117000C1F680916503837089F0C0EED0E00EC0A7 +:10118000833E910599F170F4803E910501F1823E14 +:10119000910539F68091650382FD21C0CE01DF9172 +:1011A000CF910895863E910561F1873E910571F1D9 +:1011B000843E910509F0B5CF8091660381FFEECFA3 +:1011C00080916503C7EED0E084FD0DC0E7CF80912C +:1011D000650380FD12C19091660390FFDFCFC3EEDF +:1011E000D0E084FFDBCFD0E0C0E0D8CF80916503B2 +:1011F00082FD06C19091660390FDBFCF84FFCECFE4 +:10120000F2CF8091650383FDDDCFC8CF8091650368 +:1012100083FDF9C09091660391FFF0CFC4EED0E05A +:10122000BDCF8091650385FFB9CFC9E2D0E0B6CFCD +:101230008091650385FFB2CFC5E3D0E0AFCF809149 +:10124000650386FFABCFCAE2D0E0A8CF80916503EB +:1012500086FFA4CFC1E3D0E0A1CFCF3BD10518F6E4 +:10126000C85AD0E0CC0FDD1FC25BDE4F0990D88199 +:10127000C02DD46493CFC11540E2D40758F4C115F2 +:1012800081E0D80708F08ACFC03FD10508F4ABCF82 +:10129000D06584CFC11590E4D90708F4A4CFDF70DE +:1012A000D06A7CCFC11525E5D20700F5C11534E51C +:1012B000D30708F08AC0C11543E5D40708F071C010 +:1012C000C11582E5D80708F467C0CE01837099275D +:1012D00021E030E002C0220F331F8A95E2F7C69565 +:1012E000C69580E2C89FE001112452C0C11599E55E +:1012F000D907A8F4C11528E5D20708F06BC0C115BD +:1013000036E5D30708F06FCF8C2F0E943B08C82F1B +:10131000D0E0DC2FCC27CC27DF71D0623FCFC115C6 +:101320004AE5D40708F45BC0CE019056811590427F +:1013300008F059CF8D2F8F710E943B0890E0982FB5 +:10134000882788279F719C012C2BE901E6CFC55A7D +:10135000D0E0C55BDE4FC881D0E0D0641FCFCE01A6 +:10136000E4E096958795EA95E1F783702C2F269512 +:101370002695237040E2249F90011124382B8C2F56 +:101380008370C1E0D0E002C0CC0FDD1F8A95E2F788 +:10139000C22BD32BDC6802CFDC2FCC27C16FD06AE5 +:1013A000FDCECE018370992721E030E002C0220FEC +:1013B000331F8A95E2F7C695C69590E2C99FE00172 +:1013C0001124C22BD32BDA68E9CEDC2FCC27C46FD3 +:1013D000D06AE4CEDC2FCC27C06FD06ADFCE8C2F52 +:1013E0008F700E943B0834E0D695C7953A95E1F797 +:1013F000CF709C2FEC01D069D1CEC9E3D0E0CECE26 +:10140000C2EED0E0CBCEC6EED0E0C8CE809148028E +:101410008111109248020895809590916B03982352 +:1014200090936B03089580916B0390914702892BF1 +:1014300090914602892B8093CC0190914802992388 +:10144000A1F0892B8093CC0180914A01882341F13E +:101450008091650387FF24C08EE1EEECF1E090E01F +:10146000815000F591110E94060AE0915C03F09111 +:101470005D033097E1F080914A01882359F0809113 +:10148000650387FF07C08091CC018093CD0186E082 +:101490008093CC010280F381E02D8CEC91E00994E3 +:1014A00086E0DBCF21912223D9F29F5FD9CF089527 +:1014B0008091440290910302981301C008958F5FB8 +:1014C0008770FACF990F990F890F982F977086958B +:1014D0008695869524E0829FF0011124E151FE4F0C +:1014E00050E040E080E0219130E0092E02C03695C6 +:1014F00027950A94E2F721703327042E01C0220FAA +:101500000A94EAF7822B4F5F5F4F4430510559F739 +:101510000895990F990F890F982F977041E001C096 +:10152000440F9A95EAF786958695869594E0899F6B +:10153000F0011124E151FE4F30E020E070E05191C4 +:10154000DF011197CB01022E02C0969587950A9470 +:10155000E2F7817081958527842385278C932F5FFF +:101560003F4F2430310559F7089590E080E00E9404 +:10157000D00590E080E00E94BA05109247021092D8 +:1015800046020E94130A86E0E0E8F2E0DF011D92C5 +:101590008A95E9F710927A021092790210927B02F2 +:1015A0000C94E60690934A02809349020C94B50A83 +:1015B000882341F0809590914702892380934702C8 +:1015C0000C94130A0895882339F090914702982BC0 +:1015D000909347020C94130A0895882321F00E94E7 +:1015E0000C0A0C94130A0895882339F090916B0328 +:1015F000982B90936B030C94130A0895882379F128 +:101600009CEF980F913A38F4682F8CEC91E00E948F +:1016100090050C94130A90E2980F983050F487705C +:1016200091E001C0990F8A95EAF7892F0E940C0A70 +:10163000F0CF9BE5980F933020F490E080E00C947D +:10164000D00598E5980F973120F490E080E00C9455 +:10165000BA05803F20F00E940D070C94E60608951D +:10166000CF93C82F882309F49CC08CEF8C0F813A4C +:1016700008F064C080914A018823D1F1809165030C +:1016800087FF36C0EC2FE695E695E695F0E0E4534B +:10169000FE4F828190E04C2F477021E030E002C085 +:1016A000220F331F4A95E2F782239323892B61F09F +:1016B0006C2F8CEC91E00E9490050E94130A22C0CE +:1016C0008091650387FF22C0EC2FE695E695E695AD +:1016D000F0E0E453FE4FC77021E030E001C0220F7C +:1016E000CA95EAF78281822B8283CF910C94130AE8 +:1016F000EEECF1E084ED91E02191C217C9F28E1772 +:101700009F07D1F780914A018111DACFAEECB1E0A9 +:10171000EFEF80E09D91C91741F3EF3F19F491116C +:1017200001C0E82F8F5F8630A9F7EF3FF1F20E2E50 +:10173000000CFF0BE453FE4FC283D7CF80E28C0F27 +:10174000883068F4C77021E030E001C0220FCA95EC +:10175000EAF780916B03822B80936B03C6CFEBE596 +:10176000EC0FE33040F4F0E0E55BFE4F808190E069 +:10177000CF910C94D005E8E5EC0FE73150F4F0E0A0 +:10178000EE0FFF1FE25BFE4F80819181CF910C94A1 +:10179000BA05C03F30F08C2F0E94C807CF910C943F +:1017A000E606CF910895809580FF08C0589A81FF82 +:1017B00007C05D9A82FF06C05C9A08955898F7CFDB +:1017C0005D98F8CF5C9808958093670370936903E0 +:1017D00060936803809190038430F9F48093E9006A +:1017E0008FEF9091E800815095FD06C095ED9A9598 +:1017F000F1F700008111F5CF8091E80085FF0DC061 +:1018000050E040E063E070E087E693E00E94370438 +:101810008091E8008E778093E8000895BC0184E011 +:101820000C94E40BBC0183E00C94E40B9C0184E079 +:101830008093E9009FEF8091E800915085FD06C0FC +:1018400085ED8A95F1F700009111F5CF8091E800C0 +:1018500085FF0CC050E040E066E070E0C9010E94E6 +:1018600037048091E8008E778093E8000895CF9345 +:10187000DF93EC0180914A018823B1F180916503E7 +:1018800087FF32C060E284E08093E9008FEF90919F +:10189000E800815095FD06C095ED9A95F1F700009E +:1018A0008111F5CF8091E80085FF1BC080914A012E +:1018B00070E050E040E0811104C050E040E068E09A +:1018C00070E0CE010E9437048091E8008E7780930B +:1018D000E80080E2FE01AEE6B3E001900D928A9549 +:1018E000E1F7DF91CF91089568E081E0CDCF81E00D +:1018F0008093E00080E28093D8001092C9008FE1CD +:101900009EE40197F1F700C0000087E090EBDC0156 +:1019100080939C0390939D03A0939E03B0939F0399 +:1019200088E19CE00FB6F894A895809360000FBE04 +:1019300090936000FFCFCF92DF92EF920F931F93AF +:10194000CF93DF93CDB7DEB7C455D1090FB6F89466 +:10195000DEBF0FBECDBF60911B018091E50280FF0D +:101960004CC0EFEAF3E09E012F5F3F4F8E010B5A10 +:101970001F4FC901A4914A2F50E0DA01AA0FBB1FE3 +:10198000A40FB51FAF56BD4FCD90DD90EC90D9019F +:10199000CD92DD92ED929D013196A017B10751F7DE +:1019A00020911A0143E0249F800D911D1124279A54 +:1019B00025B12F7735B130685FB7F894FC01649F8B +:1019C000E00DF11D1124BF018617970749F55FBF90 +:1019D000EFE5F4E03197F1F700C00000CC5ADF4F9B +:1019E0000FB6F894DEBF0FBECDBFDF91CF911F9130 +:1019F0000F91EF90DF90CF90089580911C0190910E +:101A00001D0123E0829FF0011124EF56FD4F89173D +:101A100008F0A7CF1182108212828F5F3396F7CF22 +:101A2000DC014D91CD01E8E035B9000000C047FF71 +:101A300025B9440F000000C000C000C025B900C097 +:101A4000EA9591F7C1CF0F931F93CF93DF93EC01EA +:101A500010E000E090911E019017110609F06CF45F +:101A60000E949B0C8C8190E00196817099278C8359 +:101A7000DF91CF911F910F91089520911C01A80132 +:101A8000420F511D9A01220F331F240F351F2F566D +:101A90003D4F4C816091E7028091E6029695901748 +:101AA000110651F04CF0442349F04091E8020E94A5 +:101AB0004D060F5F1F4FCECF4423B9F340E0F7CF61 +:101AC0008F929F92AF92BF92CF92DF92EF92FF924E +:101AD0000F931F93CF93DF93EC014C81042F10E001 +:101AE0009801D8010E945D2D9B01AC010E94732DCD +:101AF0004B015C01E0E2F0E0E01BF10BA5E5B0E09A +:101B0000AC019B010E94732D6B017C019F01DF01E1 +:101B10000E94552D9B01AC010E947E2D9B01AC01C2 +:101B2000280D391D4A1D5B1DC701B6010E94262DD7 +:101B3000F22E822F90E039E23F1560F143E0249FBE +:101B40009001112435952795122F109500E085E519 +:101B5000E82EEF1880911E01081758F10E949B0C87 +:101B60009C8181E0992319F0903219F48FEF8093D2 +:101B7000190180911901890F8C83DF91CF911F91F9 +:101B80000F91FF90EF90DF90CF90BF90AF909F901C +:101B90008F90089525E530E0B901681B790B9B0112 +:101BA000220F331F260F371F37FFCCCF2F5F3F4F3A +:101BB000C9CF8E2D01FD8F2D20911C01622F600F4A +:101BC0007727771F9B01220F331F260F371F2F56B2 +:101BD0003D4F412F6091E7020E944D060F5FBACF43 +:101BE0000F931F93CF93DF9380911C0190911D0160 +:101BF00023E0829FF0011124EF56FD4F891740F139 +:101C0000C0E0D3E060911E01C61740F10E949B0C1A +:101C10002091170180918F02820F80938F02909103 +:101C20001801920F90931801191654F4082E000C05 +:101C3000990B40911E014150550B841795071CF0DC +:101C4000219520931701DF91CF911F910F91089556 +:101C50001182108212828F5F3396D0CF0C2F10E04A +:101C600070E0C8010E94122D20911C01820F482FA4 +:101C700050E020918F02022E000C330B0217130745 +:101C8000BCF020911801022E000C330B20173107F5 +:101C90007CF08D9F900111242F563D4F4091E8021A +:101CA0006091E7028091E6020E944D06CF5FAACFC5 +:101CB000FA01EE0FFF1FE40FF51FEF56FD4F1182E3 +:101CC00010821282F3CF9F92AF92BF92CF92DF9297 +:101CD000EF92FF920F931F93CF93DF93FC018281CA +:101CE0000FEF80FF01E010E04CE1942EA0901E0168 +:101CF0001A15D0F00E949B0C80918E02013009F0E1 +:101D000054C0811102C080911E01815080938E02C7 +:101D1000DF91CF911F910F91FF90EF90DF90CF90C7 +:101D2000BF90AF909F900895C0911C01C12ED12CFF +:101D3000CC0DDD2DD11DCE01880F991FC80FD91FE5 +:101D4000CF56DD4F198218821A8234E0E32EF12C2F +:101D5000B12C80918E028B0D8D311CF1692D0E946A +:101D6000F02C892F082E000C990BC816D90691F477 +:101D70008091E8028E9DA0018F9D500D11245595F4 +:101D80004795559547959E016091E7028091E6023F +:101D90000E944D06B00EF1E0EF1AF108D1F61F5F78 +:101DA000A5CF87FFDFCF8A0DDDCF90E00196609150 +:101DB0001E0170E00E94122DA9CFEF92FF921F9397 +:101DC000CF93DF93EC0110E0EE24EA94F12C6091C4 +:101DD0001E01161770F00E949B0C9A818C8190FF57 +:101DE00027C08F5F8C83DF91CF911F91FF90EF9081 +:101DF000089520911C01422F410F5527551FCA01FC +:101E00009A01220F331F280F391F2F563D4F70E0C4 +:101E1000C7010E94122D962F8C814091E80260919B +:101E2000E702199F800D11240E944D061F5FCFCF3E +:101E30008150D8CF1F93CF93DF9300D00F92CDB7AF +:101E4000DEB7122F9091E50290FF16C09E012F5F22 +:101E50003F4F0E944D068B819981212F30E0F9017F +:101E6000EE0FFF1FE20FF31FEF56FD4F2A81218374 +:101E7000908382830E949B0C0F900F900F90DF91B4 +:101E8000CF911F9108959091E50290FF14C0909119 +:101E90001C0120911D0133E0939FF0011124EF56A6 +:101EA000FD4F921710F00C949B0C8183608342834A +:101EB0009F5F3396F6CF08950F931F93CF93DF93D1 +:101EC00000D00F92CDB7DEB78C01809190028111C6 +:101ED0000AC09E012F5F3F4F44EB6FEF0E944D06FB +:101EE0008A8180939002F8016481613069F0809169 +:101EF000900240E0662361F040E0623011F44091CE +:101F0000900280E060E004C06091900240E080E0D8 +:101F10000E94430FF801848190E0019663E070E035 +:101F20000E94122D84830F900F900F90DF91CF911C +:101F30001F910F910895CF93DF9300D00F92CDB7EB +:101F4000DEB79091E50290FF0AC09E012F5F3F4FE0 +:101F50000E944D064B8169818A810E94430F0F9038 +:101F60000F900F90DF91CF910895CF93DF93EC0105 +:101F7000E5EEF2E0438162818C810E949B0F8C81AF +:101F80008F5F8C83DF91CF910895CF93DF93EC0126 +:101F9000EC81F0E0E553FC4F4491E5EEF2E0628124 +:101FA00081810E949B0F8C818F5F8C83DF91CF9109 +:101FB00008951F93CF93DF93182FCAE0D0E08933A1 +:101FC00011F4C0E5D0E0812F0E94300B8FE99FE033 +:101FD0000197F1F700C000002197C1F7812FDF9131 +:101FE000CF911F910C94FE0ADF92EF92FF920F9314 +:101FF0001F93CF93DF93E82FF0E0E85EFD4FD4907E +:10200000282F26952695269530E0F901E85FFD4FAB +:102010000491877010E0082E02C0159507950A9468 +:10202000E2F701701127F901E850FE4FE490F12C1E +:10203000082E02C0F594E7940A94E2F791E0E922B1 +:10204000FF24F901E851FE4FC491D0E002C0D595BC +:10205000C7958A95E2F7C170DD270115110519F0C2 +:1020600081EE0E94300BE114F10419F086EE0E941B +:10207000300B8D2D0E94D90FEF2819F086EE0E94AB +:10208000FE0A012B19F081EE0E94FE0ACD2B51F0C1 +:102090008CE2DF91CF911F910F91FF90EF90DF9035 +:1020A0000C94D90FDF91CF911F910F91FF90EF907A +:1020B000DF900895CF93DF93C7E0D2E060E0CE01D8 +:1020C0000E94A62D2196C11584E0D807B9F7DF91AB +:1020D000CF9108956F927F928F929F92AF92BF920D +:1020E000CF92DF92EF92FF920F931F93CF93DF93E4 +:1020F0008BECC82E84E0D82E0FE510E0E801E097C5 +:1021000036011CC0F50185909490692DC7010E948D +:10211000A62D682DC70101960E94A62D82E0A80E6B +:10212000B11C82E0E80EF11CCE15DF0559F788E0FE +:10213000680E711C28960C171D0731F07E0188E08F +:10214000E81AF1085301DECF005D1F4F80E3C80E8F +:10215000D11C0F3382E0180789F6DF91CF911F91D0 +:102160000F91FF90EF90DF90CF90BF90AF909F9036 +:102170008F907F906F900895CF93C82F6FEF81114C +:1021800061E283E290E00E94A62D6FEFC11161E150 +:1021900084E290E00E94A62D6FEFC11160E385E21A +:1021A00090E0CF910C94A62D80E00E94BC1060E0DE +:1021B00086E290E00E94A62D0E946A100E945A10AA +:1021C00081E00C94BC100F931F93CF93DF9328E012 +:1021D000629FE001112450E0440F551FC40FD51F2A +:1021E00030E3839FC00DD11D1124CE0187960E943C +:1021F000922D082F10E0102F0027CE0188960E9404 +:10220000922D9801282BC901DF91CF911F910F9139 +:102210000895462F8A3038F4763028F4643018F464 +:10222000672F0C94E31090E080E00895BF92CF9266 +:10223000DF92EF92FF920F931F93CF93DF937C0176 +:1022400000919A0310919B038091490290914A0258 +:10225000082B192BCFE0D0E0CC24C394D12CBC2E7A +:10226000C6010C2E02C0880F991F0A94E2F7802342 +:102270009123892B71F4219790F7B12C8B2DDF914D +:10228000CF911F910F91FF90EF90DF90CF90BF9073 +:102290000895B7018C2F0E9409110E947E080197B2 +:1022A00051F3ECCFCF93DF93EC010E941611BE01E6 +:1022B0000E940911DF91CF910C947E08FC01868168 +:1022C0009781009779F00E947E08292F2F709295B0 +:1022D0009F7092509E30A0F4E92FF0E0EA50F24D4A +:1022E0000C94482D808191810E945211EECF803F45 +:1022F00019F020F4883E20F481E00895843FE1F352 +:1023000080E00895883EC0F3813FD1F7F5CF822F5A +:1023100086958695869508951F93CF93DF9300D079 +:1023200000D00F92CDB7DEB7FC0126813781211591 +:10233000310541F525E0DE01119601900D922A95B7 +:10234000E1F7FC01228189819A812223B9F0662379 +:10235000A9F00E941611182F682F89819A810E9476 +:10236000890A69817A81812F0F900F900F900F90C9 +:102370000F90DF91CF911F910C9409110E94620A76 +:10238000182FEFCFC9010F900F900F900F900F9063 +:10239000DF91CF911F91089583E290E00E94922DEA +:1023A000813289F484E290E00E94922D813159F4C7 +:1023B00085E290E00E94922D91E0803309F090E058 +:1023C000892F8170089580E0FCCF6091E5026695C9 +:1023D00070E04BE050E08CE091E00E94DA2D892B18 +:1023E00019F481E080938D020E9484059093870206 +:1023F000809386020895CF92DF92EF92FF926B0155 +:102400007C010E943706B701A60188E090E0FF90AA +:10241000EF90DF90CF900C94B82DAF92BF92CF92F7 +:10242000DF92EF92FF920F931F93CF93DF9300D031 +:102430000F92CDB7DEB7182FF62E042FE22E909113 +:10244000E50290FF29C0E92FE695AE2FB0E0AA562D +:10245000BE4F8C9180938C029E7F923059F59E01E5 +:102460002F5F3F4F812F0E944D064B8169818A81EA +:102470000E94430F1093E602F092E7020093E802F5 +:10248000EE2051F06091E5027091E6028091E70242 +:102490009091E8020E94FB110F900F900F90DF9136 +:1024A000CF911F910F91FF90EF90DF90CF90BF9051 +:1024B000AF900895823019F40091E802DBCF8630A6 +:1024C00019F41091E602D6CF8930D9F3893191F60B +:1024D000E9518E2F8170D82EE695F0E0E655FC4F3D +:1024E000A590B490C12CBB2460911E01C61618F0B3 +:1024F0000E949B0CBFCF2C2D30E0A29EC001A39E5A +:10250000900DB29E900D112470E00E94FE2C812F40 +:10251000D11013C0860F40911C01420F532F511D43 +:102520009A01220F331F240F351F2F563D4F402F86 +:102530006F2D0E944D06C394D7CF861BECCFE5EEDE +:10254000F2E0438128E0421B08F440E021E0628190 +:1025500081810C940D12E5EEF2E0438128E0420FF8 +:1025600008F44FEF21E0628181810C940D12E5EEB9 +:10257000F2E0628128E0621B08F460E021E0438120 +:1025800081810C940D12E5EEF2E0628128E0620F89 +:1025900008F46FEF21E0438181810C940D12E5EE88 +:1025A000F2E0818121E04381628188500C940D1218 +:1025B000E5EEF2E0818121E043816281885F0C9445 +:1025C0000D12CF93DF93D82FC92F292F30E088E049 +:1025D0002115310519F42D2F392F80E0A90174E060 +:1025E000569547957A95E1F74115510511F08C5FA5 +:1025F0009A01A9015695479556954795411551055C +:1026000011F08E5F9A0136952795232B09F08F5F85 +:10261000823001F148F4882381F08130A9F08D2FB8 +:102620009C2FDF91CF9108958330C9F08430B9F7A2 +:1026300020E044E66FEF8FE004C020E044E66FEF57 +:1026400082E30E940D12EBCF20E044E66FEF85E0BD +:102650000E940D1220E044E66FEF80E8F2CF20E008 +:1026600044E66FEF87EDEDCF0E94E11290939B035C +:1026700080939A030C94B50A80919A0390919B03DE +:102680009C01267033272630310519F488600C949C +:102690003413877FFCCF21E030E002C0220F331FCC +:1026A0008A95E2F72095309580919A0390919B034B +:1026B000822393230C9434139091450280958923AF +:1026C00080934502282F277091F4282F082E000CA4 +:1026D000330B9217130659F09091660392FD07C0D1 +:1026E0008595859585950E944B1310924502089516 +:1026F000CF93C0916603C2FB992790F9981799F080 +:1027000080FBC2F9C09366036091650384E090E0AA +:102710000E94A62D6C2F82E290E00E94A62D82E0FE +:10272000CF910C945C13CF91089521E030E002C06A +:10273000220F331F8A95E2F780919A0390919B03B1 +:10274000822B932B0C9434138091E902882319F087 +:1027500081508093E9026091E5027091E6028091D8 +:10276000E7029091E8020C94FB118091E90283301A +:1027700018F48F5F8093E9026091E5027091E602A0 +:102780008091E7029091E8020C94FB119091E50290 +:1027900090FF36C09170811129C092609093E5023C +:1027A000662351F06091E5027091E6028091E702A4 +:1027B0009091E8020E94FB116091E502669570E03D +:1027C0004BE050E08CE091E00E94DA2D892BA9F0DB +:1027D00010928D0281E08093890220E04091E8020E +:1027E0006091E7028091E6020C940D12853210F0A0 +:1027F0009864D4CF880F982BD1CF0E94E511EACFEF +:10280000089560E00C94C6138091E502869581508E +:1028100009F484E261E00C94C6138091E502869588 +:102820008F5F853208F081E061E00C94C6139091CF +:10283000E50290FF07C09695981720F0961710F4C0 +:102840000C940D1461E00C94C613E5EEF2E083E005 +:10285000808311828FEF828388E283831482608178 +:102860007181828193810C94FB1180914A01EEEC7D +:10287000F1E0882359F08091650387FF07C08EE15E +:10288000DF011D928A95E9F70C94B50A86E0F8CF2E +:102890001F93CF93DF93CDB7DEB7AA970FB6F89407 +:1028A000DEBF0FBECDBF82E993E02091F100DC01D5 +:1028B0002D93CD01B3E08A399B07B9F7809193033B +:1028C000833009F472C0B8F4813009F449C0823011 +:1028D00009F4B5C08091E80083FF8DC28091920316 +:1028E000909193039A3008F086C2E92FF0E0EC5FF4 +:1028F000F14D0C94482D8A3009F490C08B3009F4C6 +:1029000071C0893039F780919203813219F7809133 +:10291000960390919703009711F00297D9F6809152 +:10292000E800877F8093E8008091E80082FF38C04C +:102930009091F3008091F200029731F48091F100C0 +:10294000813011F0863021F48091F10080936D0385 +:102950008091E8008B778093E8000E946104BACFF1 +:1029600080919203813A09F0B5CF8091E800877F8A +:102970008093E8008091960390919703892B61F4EE +:1029800060E28EE693E070E00E9413058091E8001B +:102990008B778093E8009ECF60E090E080E0F3CFFB +:1029A000809190038111C0CF95CF80919203813A9D +:1029B00009F090CF8091960390919703892B09F0AD +:1029C00089CF8091E800877F8093E8008091E800BC +:1029D00080FFFCCF80914A018093F1008091E80054 +:1029E0008E77B9CF80919203813209F073CF8091B5 +:1029F000960390919703892B09F06CCF8091E800A2 +:102A0000877F8093E8000E94610480919403809303 +:102A10004A0110926B030E9435145CCF809192039F +:102A2000813209F057CF8091E800877F8093E800DA +:102A30000E9461048091950380936C034BCF809139 +:102A40009203813A09F046CF8091E800877F809316 +:102A5000E8008091E80080FFFCCF80916C03BCCF40 +:102A6000803899F0823809F0C6C1809196038F7042 +:102A7000873008F0C0C18093E9008091EB0085FBAE +:102A8000882780F91092E90006C080918E0390910A +:102A90008F03911182609091E800977F9093E800F6 +:102AA0008093F1001092F1008091E8008E779FC131 +:102AB000882309F48DC1823009F09DC1809194036F +:102AC000811190C1809196038F702FEF280F2630CF +:102AD00008F091C18093E9002091EB0020FF82C1B2 +:102AE000933031F48091EB0080628093EB007AC1E7 +:102AF0009091EB0090619093EB0021E030E001C0F9 +:102B0000220F8A95EAF72093EA001092EA0080915A +:102B1000EB008860EACF81116EC1109194031F779A +:102B20008091E3008078812B8093E3008091E8001E +:102B3000877F8093E8000E9461048091E80080FF15 +:102B4000FCCF8091E30080688093E30082E0111164 +:102B500083E0809390034FC18058823008F04BC1CE +:102B600020919403309195032C3DE3E03E07A1F5BD +:102B700083E08A838AE289834FB7F894DE01139653 +:102B800020E03EE051E2E32FF0E050935700E49163 +:102B900020FF03C0E295EF703F5FEF708E2F90E053 +:102BA000EA30C0F0C7968D939D932F5F243159F77B +:102BB0004FBF8091E800877F8093E8006AE270E071 +:102BC000CE0101960E9413058091E8008B778093D7 +:102BD000E80011C1C096E7CF8091960390919703CA +:102BE000432F55274330510509F44AC078F5413049 +:102BF000510509F47AC08BE590E0EBEAF6E042304B +:102C0000510509F0F8C02091E800277F2093E800E3 +:102C100020919803309199038217930708F49C013F +:102C200040E02115310509F065C0411163C0809174 +:102C3000E80082FDC9CF80919003882329F2853076 +:102C400019F28091E80083FFF2CFBECF41325105E7 +:102C500009F43CC04232510509F0CDC083309105E2 +:102C600008F0C9C0FC01EE0FFF1FE254FE4F0190B7 +:102C7000F081E02D85549E4FDC018C9190E01AC0CC +:102C8000332721303105D1F02115310561F0223093 +:102C9000310509F0B0C0E8E1F7E0E4918E2F90E053 +:102CA000E8E1F7E007C0E8E3F7E0E4918E2F90E079 +:102CB000E8E3F7E0009709F49EC0A5CFE4E2F7E06F +:102CC000E4918E2F90E0E4E2F7E0F4CF83309105B9 +:102CD00008F091C0880F991FFC01EC53FE4F019042 +:102CE000F081E02D89E090E08ECF82E190E0E6E097 +:102CF000F7E089CF80919003882309F465CF853070 +:102D000009F462CF8091E80083FD5ECF8091E800F6 +:102D100082FD8DCF8091E80080FF83CF9091F300FA +:102D20008091F2002115310519F08830910550F09D +:102D300041E0089709F040E08091E8008E778093A9 +:102D4000E8006FCF44914093F10031962150310952 +:102D50000196E8CF803809F04EC08091E800877F67 +:102D60008093E800809191038093F1009DCE8111C2 +:102D700042C0109194031230F0F58091E800877FF3 +:102D80008093E800109391030E946104112311F0D5 +:102D900084E005C08091E30087FDFACF81E0809355 +:102DA000900342E061EC81E00E94800442E261EC29 +:102DB00084E00E94800442E261EC82E00E94800490 +:102DC00042E260EC83E00E9480048091900313C093 +:102DD00080919403813079F481E0933009F080E0B0 +:102DE00080938F031092E9008091E800877F8093A1 +:102DF000E8000E9461048091E80083FF0AC080918E +:102E0000E800877F8093E8008091EB0080628093E8 +:102E1000EB00AA960FB6F894DEBF0FBECDBFDF91D0 +:102E2000CF911F91089569EE7EEF90E080E00E94BF +:102E3000C42D60E082E090E00E94A62D60E083E077 +:102E400090E00E94A62D10924A021092490260E082 +:102E500084E090E00E94A62D60E082E290E00E9473 +:102E6000A62D60E085E090E00E94A62D60E086E05F +:102E700090E00E94A62D6FEF87E090E00E94A62DC3 +:102E800040E050E0BA0188E090E00E94B82D60E098 +:102E90008DE090E00E94A62D40E050E0BA0188E16C +:102EA00090E00E94B82D60E087E190E00E94A62D9E +:102EB00040E050E0BA018CE190E00E94B82D70E053 +:102EC00060E080E290E00E94C42D40E050E0BA0152 +:102ED00088E190E00E94B82D80E00E94BC100E9422 +:102EE000D41040E050E0BA018FE090E00E94B82D8D +:102EF00040E050E0BA0183E190E00C94B82D8F924D +:102F00009F92AF92BF92CF92DF92EF92FF920F9378 +:102F10001F93CF93DF9300D000D0CDB7DEB76C0105 +:102F2000FC0183819481892B31F0808191818923F7 +:102F30008F3F09F057C60F900F900F900F90DF91C1 +:102F4000CF911F910F91FF90EF90DF90CF90BF90A6 +:102F5000AF909F908F900895980122513F45203166 +:102F6000310508F034C68FEF93E00E94922D025194 +:102F700077E0E72E72E0F72E882361F18091450219 +:102F80008770C9F2F60182818823A9F280916603D5 +:102F900082FDD1CF82E00F900F900F900F90DF91C4 +:102FA000CF911F910F91FF90EF90DF90CF90BF9046 +:102FB000AF909F908F900C945C13E114F4E0FF06A7 +:102FC000E9F2C7010E94922D811101C001502FEF3B +:102FD000E21AF20A0111F1CF1C821B82BB24B394C6 +:102FE0006AE0A62E87010F5F1F4FC7010E94922D36 +:102FF00089831A82882311F29FEF980F933008F586 +:103000008A83B98232E0E30EF11CC8010E94922D3E +:103010008B83882309F4B2CF8E010F5F1F4FF80115 +:1030200080818823F9F2813009F043C09181828147 +:10303000913049F40E5F1F4F0E94D90F0F5F1F4F51 +:10304000EECF7801E9CF923029F40E5F1F4F0E9436 +:10305000300BF4CF933029F40E5F1F4F0E94FE0A0D +:10306000EDCF943019F00F5F1F4FE8CF0E5F1F4F69 +:1030700030E020E0B8016F5F7F4FF801418180535D +:10308000990B8A30910550F021503109B8F28FE93F +:103090009FE00197F1F700C00000F6CFA29EF0017B +:1030A000A39EF00D11249C012E0F3F1F842F8B0136 +:1030B000E1CF0E94F40FC2CF81E00E9495130E94DD +:1030C0003C135CCF81E00E944B13F9CF82E0FBCF31 +:1030D000882309F41AC180915A02811106C081E047 +:1030E00080935A0282EE0E94300B0E9484059093D6 +:1030F0005902809358028BE20E94300BF6018281C4 +:10310000882369F0C801815E9C45059740F46FE112 +:10311000600F60935B028CE090E00E94A62D17FF89 +:1031200070C0F6018281882309F46BC00E94E60515 +:10313000869581708093EE010E94E60581708093F0 +:10314000ED0180915B02813039F48091EE0188239A +:1031500019F089E30E94D90F80916B038093EC01F1 +:1031600010926B0380915B02813009F4B7C1882310 +:1031700009F4B0C1823009F4C4C1843009F4D5C166 +:103180008FE39CE90197F1F700C000005801E89433 +:10319000B7F84CE0E42EF12C5AE0852E912CC501B5 +:1031A0000E2C02C0969587950A94E2F78F70909145 +:1031B0005B02923009F0C0C18A3008F0BBC190E0D8 +:1031C0000996B4010E94122D875A0E94D90F94E0EB +:1031D000E91AF108ECEFEE16EFEFFE0601F7809129 +:1031E0005B02813009F4B6C1882309F4AFC1823093 +:1031F00009F4BCC1843009F4C2C18091EC01809310 +:103200006B03F6018281882369F180916B038272DE +:103210000C3CFCE51F0709F465C208F0E5C1063C5B +:103220003CE5130709F44AC208F0BCC1033CECE5D5 +:103230001E0709F439C208F0A4C1023C2CE51207AC +:1032400009F40BC20A358DE5180709F489C208F0A4 +:1032500063C20115ECE51E0709F470C20E3D1C4562 +:1032600009F47BC2F60186819781009709F47CC23C +:103270000E947E088C01F601F280B580B2943FE096 +:10328000B322809145028770C1F0AF2CFF20B1F0CE +:10329000812F807F803421F080E2800F883068F0B9 +:1032A0008091660382FD09C082E00E945C138091D8 +:1032B00045028770AA24A3948111A12C912E929487 +:1032C0002FE09222FBE0F91508F4CDC2E92DF0E0E1 +:1032D000E25FF14D0C94482D8823A1F080915A02B1 +:1032E000811106C081E080935A0282EE0E94300B69 +:1032F0000E948405909359028093580281EE0E94A7 +:10330000300BF9CE81EE0E94FE0A8BE20E94FE0A8B +:10331000F5CE882309F4F2CE81EE0E94300B83EEC5 +:103320000E94300B8FE40E94300B8FE40E94FE0A53 +:1033300083EE0E94FE0A81EEE9CF882309F4DECEF7 +:1033400081EE0E94300B83EE0E94300B80E50E94DC +:10335000300B80E5EBCF882309F410CE1091570293 +:1033600081E01827109357020E948405909356021B +:10337000809355021123C9F028E148E76FEF8FE0F1 +:103380000E941A0F29E148E76FEF8FE00E941A0FA1 +:103390002AE148E76FEF8FE00E941A0F2BE148E720 +:1033A0006FEF8FE00E941A0FE9CD10921C018CE1A3 +:1033B00080931D0180931E0181E20E940114DECDE5 +:1033C000882309F49BCE80EE0E94300B81EE0E9490 +:1033D000300B80E10E94300B80E10E94FE0A81EEFA +:1033E0000E94FE0A80EE0E94FE0A80914E0291E049 +:1033F00022E148E76FEF892780934E02882351F03E +:103400008FE00E941A0F26E148E76FEF8FE00E94DD +:103410001A0F74CE8FEA0E941A0F26E148E76FEF69 +:103420008FEAF5CF882309F4A9CD1091540201E069 +:103430001027109354020E948405909352028093A7 +:1034400051028091530210921C01882319F18CE1E2 +:1034500080931D0180931E0181E20E94011428E0E7 +:1034600044E666EE80E00E941A0F29E044E666EE2C +:1034700080E00E941A0F2DE044E666EE80E00E9494 +:103480001A0F00935402109253021092500210929D +:103490004F0274CD8CE180931D0180931E0181E267 +:1034A0001123A9F00E94011428E044E666EE80E0B2 +:1034B0000E941A0F29E044E666EE80E00E941A0F8F +:1034C0002DE044E666EE80E00E941A0FDCCF0E94F9 +:1034D0000114D9CF82EE0E94300B52CE83E00E94BD +:1034E000E30A88E10E94300B8FE39CE90197F1F732 +:1034F00000C0000088E10E94FE0A83E00E94D80A12 +:103500003FCE8091ED01811103C083E50E94D90F68 +:1035100082EE0E94300BEFE3FCE93197F1F700C037 +:10352000000087E50E94D90F2BCE86EE0E94D90FAE +:1035300088E1F8CF865049CE96EF980F963020F06C +:10354000805D0E94F40F43CE895AFBCF82EE0E9429 +:10355000FE0A53CE8CE20E94D90F8091EE0188239F +:1035600009F44BCE89E30E94D90F47CE82EE0E9428 +:10357000FE0A8091ED01811140CE83E5F4CF88E20F +:10358000F2CF043C3CE5130709F493C04FEC52E141 +:1035900068ED72E1053C9CE5190709F053CE0E94E5 +:1035A0003106ECCC093CECE51E0709F491C070F43F +:1035B000073C2CE5120709F486C043EC52E167EBA7 +:1035C00072E1083C3CE5130751F33CCE0A3C9CE514 +:1035D000190709F482C044EA53E165EB73E10B3C3F +:1035E000ECE51E07E1F22ECE013DFCE51F0709F4D4 +:1035F00087C0B0F40E3C3CE5130709F47BC008F427 +:1036000076C00F3C9CE5190709F477C06EE089E0AD +:10361000003DECE51E0709F015CE0E941714AECC54 +:10362000043DFCE51F0709F471C068F4023D3CE568 +:10363000130709F468C0033D8CE5180709F002CEB2 +:1036400061E088E12EC0053D9CE5190709F461C0E1 +:103650000D35100709F492CCF5CD8091E50280FF7D +:103660001BC08E7F8093E5026091E5027091E602B7 +:103670008091E7029091E8020E94FB1110928D0266 +:10368000FFEF20E732E0F15020403040E1F700C08A +:1036900000000E949B0C72CC81608093E50261E087 +:1036A00086950E94C6136ACC44E054E16DE074E153 +:1036B00076CF4DE054E164E074E171CF48ED52E122 +:1036C0006FEC72E16CCF47EB52E163EC72E167CFD4 +:1036D0004FE952E16BEA72E162CF4BEA52E16FE9E6 +:1036E00072E15DCF45EB53E164EA73E158CF61E0ED +:1036F00081E0D7CF65E082E090CF68E086E08DCFB3 +:1037000064E18FE08ACF67E185E187CF62E289E1FA +:1037100084CF61E083E2C5CF0B352DE5120711F1AF +:103720000C351D4509F09ECD8091660382FB8827EC +:1037300080F991E089270E94781394CD10926B0351 +:103740000E9435148FEF94E3ECE081509040E0400C +:10375000E1F700C000000E94770C0E9413170ECC06 +:1037600081E0E9CF80E0E7CF828100811181882369 +:1037700069F0C8010E941611F82E682FC8010E9436 +:10378000890AB8018F2D0E94091172CDC8010E94CB +:10379000620AF82EF6CF212F2F70E22E107F19F03B +:1037A000E29490EFE922FF20B9F0EE2069F080E288 +:1037B000800F883010F0011109C080916B03E82A56 +:1037C000E0926B030E94130A802F4BC08091470246 +:1037D000E82AE0924702F6CF802F0E94FE0AEE20F0 +:1037E00009F441C080E2800F883010F0011104C05C +:1037F0008E2D0E940C0A06C0E09480914702E822B8 +:10380000E09247020E94130A2EC0312F3F70E32E30 +:10381000107F103219F0E29480EFE822002381F04B +:10382000013009F47EC0FF2009F488C0BB2009F4F0 +:103830007EC0F601858180FFC7CF8F70858377C0FA +:103840002091660322FF4AC0FF2009F441C0EE2008 +:1038500039F080916B03E82AE0926B030E94130A0F +:1038600080E00E94300B292D2850330B2430310585 +:1038700020F40E94E6050E94D30BAA20A9F08091B3 +:10388000450280FD11C0F6011282859585958595CA +:103890000E949513C6010E947F178091450285956D +:1038A000859585950E944B1360E0C6010F900F909F +:1038B0000F900F90DF91CF911F910F91FF90EF909C +:1038C000DF90CF90BF90AF909F908F900C948C1111 +:1038D00080E00E94FE0AEE2031F28ACFFF20A1F0A4 +:1038E000909148028E2D892BB11003C00E94F40ADA +:1038F000BACFE1E0BE12FACF22FDB5CF891709F4A5 +:10390000B2CF80934802AFCFB11006C00E94060A22 +:103910008E2D0E94ED0AA7CFF1E0BF1609F4A3CFC8 +:10392000F5CFFF2031F022E02B1508F49CCF8E2D2F +:10393000DDCF31E03B1508F496CFEACFBB2041F351 +:10394000093369F4FFEF27EE33E0F15020403040B7 +:10395000E1F700C00000802F0E94FE0A84CF8FE3B1 +:103960009CE90197F1F7F5CF812F869586958370B5 +:1039700061F0813009F077CFC8019370F11002C077 +:1039800090E080E00E94BA056ECFC8019370F110FC +:1039900002C090E080E00E94D00565CF802FFF201C +:1039A00029F00E94C8070E94E6065DCF0E940D071D +:1039B000FACF812F837009F03FC0F11054CF402F10 +:1039C000429546954770440F440F802F8F7090E0CA +:1039D000042E02C0880F991F0A94E2F730E020E01D +:1039E00004FF09C02FE030E002C0220F331F4A95C8 +:1039F000E2F720953095169516951370123099F0D0 +:103A000078F44091490250914A02113039F0822BEA +:103A1000932B842395230E94D20A25CF842B952BA8 +:103A2000822B932BF8CF822B932B2091490230913C +:103A30004A0282279327EFCF8695FF2011F0812F2E +:103A40008170882309F40FCF402F42954695477027 +:103A5000440F440F802F8F7090E0042E02C0880F17 +:103A6000991F0A94E2F730E020E004FF09C02FE03C +:103A700030E002C0220F331F4A95E2F720953095BF +:103A8000169516951370123099F078F440919A03B8 +:103A900050919B03113039F0822B932B8423952373 +:103AA0000E943413E0CE842B952B822B932BF8CFDE +:103AB000822B932B20919A0330919B03822793278B +:103AC000EFCF1F70FF2029F0812F0E949513802FC8 +:103AD0000DCF802F0E94ED0A812F0E944B13C3CE81 +:103AE000023F71F160F4003FB9F0013F81F0FF2027 +:103AF00009F459C0B11068CE812F8F7125C0033FE2 +:103B000031F1043FA1F78091660382FF2EC0812F1F +:103B10008F71FF2011F318C0FF2069F091E09B1511 +:103B200008F4A1CE1F7181E090E002C0880F991FB8 +:103B30001A95E2F7BFCFE2E0EB1508F494CEF2CF8E +:103B4000812F8F71F110C9CF0E9495138CCE90E018 +:103B500080E0FF2009F4A4CF1F7181E090E002C053 +:103B6000880F991F1A95E2F79BCFFF2089F01F71EC +:103B7000812F0E9495138091660382FD07C0F8E0B3 +:103B80001F9FC0011124836080934502812FDCCFE9 +:103B900081E00E945C1321E02B1508F064CE82E0E6 +:103BA0000E945C1360CEBB2079F0093341F43FEFF3 +:103BB00087EE93E0315080409040E1F7CACEEFE3CA +:103BC000FCE93197F1F7C5CE812F8F7186CF003197 +:103BD0003FE5130709F470CA01319FE51907A9F4FD +:103BE00082E06BCA61E0C6010E948C118C01F60173 +:103BF00082818111B1C90031FFE51F0709F462CA52 +:103C000001312FE5120709F461CAF801E058FF45B8 +:103C1000E730F10508F072CAE65EF14D0C94482DCC +:103C2000CF93DF9380910002807FA1F48091FD010A +:103C3000882381F080914402D09103026091FB01BE +:103C40007091FC01A091FE01B091FF01C62FC72326 +:103C5000D81303C0DF91CF91089590E0109711F031 +:103C6000CF3F19F401968770F3CF9C0143E0220FF8 +:103C7000331F4A95E1F7F901EC5FFD4F418147138E +:103C8000F1CF40814613EECF42814111EBCF43810A +:103C900054814A1B5B0B403A510520F7809100028A +:103CA0008F70806180930002F901E75FFD4F808192 +:103CB0008F70806180838BEF91E00E947F17DF918E +:103CC000CF910C94580AAF92BF92CF92DF92EF92AD +:103CD000FF920F931F93CF93DF93CDB7DEB7659716 +:103CE0000FB6F894DEBF0FBECDBF8C0185E0F801A2 +:103CF000DE01519601900D928A95E1F7F801E2807C +:103D00006BEFA62E61E0B62E6091FE017091FF016F +:103D10006115710509F468C19091FB014091FC01A6 +:103D2000892F84238F3F09F45FC120813181C380B3 +:103D3000D480F090FD01F601E61BF70BFF2009F49B +:103D40001DC180910002582F507FE03AF10508F024 +:103D5000D0C0511181C0FE2C43132BC0921329C037 +:103D60006091010270910202F80146815781641747 +:103D70007507F9F4E1101DC08F7080618093000217 +:103D8000C5010E947F1780910002F80185838F2D65 +:103D900065960FB6F894DEBF0FBECDBFDF91CF9111 +:103DA0001F910F91FF90EF90DF90CF90BF90AF9059 +:103DB0000895CD2829F0822F83238F3F09F02FC14A +:103DC00080E0F82FF170DF2E80FF3CC0809144022C +:103DD00040910302841315C0298B3A8B89899A89F3 +:103DE0000E945211292F22952F702230F8F0243092 +:103DF00020F59F70F9F0F8019581907FD9F4D12CCE +:103E00001FC090E0FC0153E0EE0FFF1F5A95E1F751 +:103E1000EC5FFD4F5181351306C05081251303C05F +:103E20005281E5120FC001968770D4CF9F7011F0B8 +:103E3000882329F3805E883010F3C8010E947F1721 +:103E4000FD2CA5CFEE2009F4A2CF80910002816065 +:103E500080930002F12C9BCF43131BC0921319C017 +:103E60004091010250910202F801268137814217E8 +:103E7000530779F4E1100DC08583C8010E947F17B4 +:103E800088E0F801ABEFB1E001900D928A95E1F77F +:103E90007ECFC8010E945E11882339F1EE2029F1FE +:103EA000809100028032A0F02091FB013091FC0152 +:103EB0003A8729871B86DD86CC868E878091010212 +:103EC00090910202988B8F87CE0109960E947F17EE +:103ED00088E0F801ABEFB1E001900D928A95E1F72F +:103EE0000E94101EFF24F39452CFC8010E947F1736 +:103EF000F9CF51110AC08BEF91E00E947F1788E043 +:103F0000F50111928A95E9F7A5CF431318C09213D2 +:103F100016C04091010250910202F80126813781BA +:103F20004217530761F4E1100AC08583C8010E945B +:103F30007F1788E0F50111928A95E9F728CFC8012B +:103F40000E945E11882389F2EE2079F280910002AE +:103F5000803208F4BDCF2091FB013091FC013A83FF +:103F600029831B82DD82CC828E8380910102909115 +:103F7000020298878F83CE010196A8CFE03AF1051F +:103F8000C0F6FE2CEE2009F4B0CF43131FC09213ED +:103F90001DC02091010230910202F80186819781B3 +:103FA0002817390799F49091000290FD69CF907F0E +:103FB00009F466CF809100028583903F09F45DCFBC +:103FC000982F907F905F8F70892B56CFC8010E94E9 +:103FD0005E1181117DCF809100028160809300028B +:103FE000C8010E947F17D3CEEE2009F47ECFC8010E +:103FF0000E945E11F82E882309F477CF88E0F8013B +:10400000ABEFB1E001900D928A95E1F78091FB0151 +:104010009091FC010E9452110E94101EB8CE81E0C6 +:104020008E25CFCECF93DF93CDB7DEB760970FB697 +:10403000F894DEBF0FBECDBF29873A874B875C87D8 +:104040006D877E878F87988BCE0109960E94631EAD +:10405000811112C088E0FE013996DE0111960190AF +:104060000D928A95E1F78C859D85892B29F08985AC +:104070009A8589238F3FA9F580914402909103028C +:1040800089131CC060960FB6F894DEBF0FBECDBF7B +:10409000DF91CF91089593E0AA0FBB1F9A95E1F7A6 +:1040A000AC5FBD4F98E0FE01319601900D929A955C +:1040B000E1F7809303020E94580ADECFB8E08B9F9D +:1040C000C00111248C5F9D4F0E94631E8823D1F292 +:1040D0008091440290E00196877099278093440272 +:1040E000CBCFA0910302B0E0CD0101968770992754 +:1040F000209144022817190671F610926B030E9452 +:104100003514109203021092440288E0EBEFF1E0C4 +:10411000DF011D928A95E9F7AFCF0F931F93CF93DD +:10412000DF938091ED02E091EC02CCE081111AC0A6 +:10413000DF91CF911F910F910895D1E0DE0FD093C1 +:10414000EC020E2F10E0EC9FF0011124E251FD4F24 +:1041500083819481892B29F08081918189238F3FEC +:1041600051F4ED2F8091ED02E81738F31092ED0233 +:104170001092EC02DDCFC09FD001C19FB00D112481 +:10418000A251BD4F16968D919C911797892B29F4BA +:1041900018968D919C91019651F420813181428134 +:1041A000538164817581868197810E941220C09F0E +:1041B000F001C19FF00D1124E251FD4F14821382D2 +:1041C000D0CF109259031092580310924901809158 +:1041D0005703809356030E9420060C948D202F9243 +:1041E0003F924F925F926F927F928F929F92AF9287 +:1041F000BF92CF92DF92EF92FF920F931F93CF93D4 +:10420000DF93C0915603E7E0FE2E01E010E0FCE0F2 +:104210002F2EAEEFEA2E809157038C1316C00E940A +:104220008D20DF91CF911F910F91FF90EF90DF9044 +:10423000CF90BF90AF909F908F907F906F905F9046 +:104240004F903F902F900C942006D0E0FE01EE0F8F +:10425000FF1FE25BFC4F80819181F89EF001F99E87 +:10426000F00D1124E15EFE4F2481211158C03090E1 +:10427000ED02AEEEB2E030E020E0412C5F0123150C +:1042800008F04BC01A966D907C901B97F5018080CA +:1042900091804FEF5FEF512CC52CD12CF601EE0F22 +:1042A000FF1FE80DF91D659174916616770609F4F4 +:1042B000A601672B11F05394EFCF4F3F5407B1F194 +:1042C000B80102C0660F771F4A95E2F7462AA80197 +:1042D00002C0440F551F5A94E2F741505109441649 +:1042E000150601F5229EF001239EF00D1124E251E6 +:1042F000FD4FF89ED001F99EB00D1124A15EBE4F76 +:1043000012962D913C91139737832683E082E182A8 +:104310009187808771E015967C930E94F205219623 +:10432000C37079CF14961C921E9213972F5F3F4F44 +:104330001C96A5CF2F923F924F925F926F927F92E1 +:104340008F929F92AF92BF92CF92DF92EF92FF92A5 +:104350000F931F93CF93DF93CDB7DEB769970FB657 +:10436000F894DEBF0FBECDBF498B5A8B6B8B7C8B15 +:104370008D8B6111109247021D861E861F86188A3A +:1043800085E0FE017196DE01199601900D928A95E5 +:10439000E1F78C859D85892B31F089859A85892364 +:1043A0008F3F09F0D4C129853A854B855C856D85A1 +:1043B0007E858F8598890E941220C3C028EFC2167F +:1043C0002CE5D20629F4882379F00E94E120EBCF76 +:1043D00039EFC3163CE5D30639F4882329F08091E0 +:1043E00049018111F2CFC3C10FE111E0E12CB12CE1 +:1043F000A12C88248394912C9EEF592E442443941D +:10440000F8016081718166246A94762C20E0422F45 +:1044100050E0FA01EE0FFF1FE60FF71F8591949110 +:10442000C816D90609F43A01892B11F02F5FEFCF96 +:10443000F12CFFEF6F167F0609F445C0F8014481A7 +:10444000F09049018F2D411180E0F82FF170FF2E7F +:10445000F801258086819B85992309F408C1FF20F6 +:1044600009F405C1211014C0A40101C0440F6A94CD +:10447000EAF7842B86838091EA029091EB028039DF +:10448000914030F440E951E05093EB024093EA024E +:10449000C40102C0880F991F2A95E2F70197F8011D +:1044A00026812817190679F48091580390915903B1 +:1044B000009709F45FC00E9475058139914008F4A6 +:1044C00059C0F8014482EF28FFEFAF1ABF0A095F15 +:1044D0001F4F26E0A216B10409F092CF8B858823E6 +:1044E00009F420C1EE2009F41DC10E9484059093B7 +:1044F0005903809358038091ED02883010F591E0C4 +:10450000980F9093ED0298E0FE013996DE01119626 +:1045100001900D929A95E1F73CE0839FC001112430 +:1045200082519D4F28E0FE013196DC0101900D92F1 +:104530002A95E1F72FEF3FEFFC0131872087D386E3 +:10454000C28669960FB6F894DEBF0FBECDBFDF916D +:10455000CF911F910F91FF90EF90DF90CF90BF9080 +:10456000AF909F908F907F906F905F904F903F9013 +:104570002F9008958091560360905703982FF0E094 +:10458000E0E0861114C0909356030E171F0709F43C +:104590009ACF90E0FC01EE0FFF1FE25BFC4FB1826F +:1045A000A082019683709927809357038CCF282E81 +:1045B000312CF101EE0FFF1FE25BFC4F20813181B6 +:1045C000F7E0F29FD001F39FB00D1124A15EBE4F22 +:1045D0002D913C911197398F288F712C60E070E0FC +:1045E000E72FF0E0EE0FFF1F288D398DE20FF31F4C +:1045F0002591349121153105E1F0F8010190F08108 +:10460000E02DFF8BEE8B60E005C02417350709F421 +:104610007F2C6F5FE62FF0E0EE0FFF1F4E895F8962 +:10462000E40FF51F459154914115510571F77F5FD6 +:10463000D7CF7720C9F0F801671708F0FD01448251 +:104640000E171F0721F490935603F72C3CCF9813B5 +:1046500005C0AE17BF0711F49F5F937091012F5FE4 +:104660003F4F822F83708DCFF0E0E0E0F7CF90E0F6 +:1046700021101FC0B40102C0660F771F2A95E2F710 +:104680009B01215031092817390731F4442309F4DB +:1046900047C0C5010E94F205C40101C0880F6A9499 +:1046A000EAF7982F9095F801868189238683F22C6A +:1046B0000ACF9C01062C02C0359527950A94E2F793 +:1046C000A90141705527BC016150710986239723C8 +:1046D000892B11F5452B01F1F80182819381892BFA +:1046E000C1F01B821C821D821E8259825A820E9446 +:1046F00084058160582F9D838C83F801828193818A +:104700008F83988729813A814B816D817E810E94B8 +:104710001220F8011582C0CFF22FF1702F2EBCCFDE +:104720002F2CBACF9091560380915703981731F0F0 +:104730000E94EF20EE2009F436CE03CF0E948D2098 +:1047400010925903109258030E942006F3CF61E0A3 +:10475000CE0109960E948C116C018B85F7EFCF1664 +:10476000FCE5DF0609F02ACE882309F43DCE81E07E +:104770008093490118CE9F92AF92BF92CF92DF9261 +:10478000EF92FF920F931F93CF93DF9300D000D04F +:1047900000D0CDB7DEB78E010F5F1F4F86E0F80166 +:1047A00011928A95E9F78CE7C82E81E0D82EF12C7A +:1047B000E12CAA24A394B12CF60181916F018F3FC3 +:1047C00009F443C0F894E82FE295EF70F0E021A1DE +:1047D0008F70A50102C0440F551F8A95E2F7CA01E8 +:1047E000922F982B91A392A18095892382A37894EC +:1047F00000C0E2E8F1E0912C31E021912F3F09F473 +:104800006EC0A22FA295AF70B0E090968C9190E010 +:104810002F7002C0959587952A95E2F780FD5FC0BD +:10482000832F982A330F51E0E638F50731F7F60168 +:10483000319780818F3F11F00E94240880EA8A9589 +:10484000F1F7F801EE0DFF1D9082EFEFEE1AFE0A70 +:10485000F6E0EF16F10409F0AFCF46E050E0B80102 +:104860008FE592E00E94E72DFF24F394009709F46E +:10487000F12C892BB1F186E0F801AFE5B2E00190AF +:104880000D928A95E1F781E080934D020E948405A4 +:1048900090934C0280934B0280914B0290914C027A +:1048A0000E947505059708F180915F02809373025D +:1048B00080916002809374028091610280937502FE +:1048C00080916202809376028091630280937702E6 +:1048D000809164028093780210924D0206C080E0BD +:1048E000A0CF80914D028111D7CF809149018823BB +:1048F00001F180915803909159030097D1F00E94E3 +:1049000075052091EA023091EB022817390788F4E7 +:104910009091560380915703981709F47EC00E9426 +:10492000EF201092EB021092EA02109259031092BB +:10493000580380915A02882371F080915802909117 +:1049400059020E947505893E934028F082EE0E942C +:10495000FE0A10925A0280915702882391F08091AA +:104960005502909156020E947505883E934048F08A +:104970000E948405909356028093550283E70E941B +:10498000D90F8091530290915402992309F44EC09B +:10499000811130C080915102909152020E947505A0 +:1049A00081369A4E78F080914F0290915002019694 +:1049B0009093500280934F020E948405909352027C +:1049C0008093510280914F02909150024F9708F4CA +:1049D0005CC010921C018CE180931D0180931E012C +:1049E0008FE00E94011481E08093530210925002E4 +:1049F00010924F028F2D26960FB6F894DEBF0FBE91 +:104A0000CDBFDF91CF911F910F91FF90EF90DF907D +:104A1000CF90BF90AF909F9008950E948D201092EC +:104A20005903109258030E94200683CF8111E2CFD0 +:104A300080914E02882361F022E148E76FEF8FE01A +:104A40000E941A0F26E148E76FEF8FE00E941A0FCD +:104A500080915702882371F228E148E76FEF8FE0D9 +:104A60000E941A0F29E148E76FEF8FE00E941A0FAA +:104A70002AE148E76FEF8FE00E941A0F2BE148E729 +:104A80006FEF8FE00E941A0FB5CF28E044E666EE84 +:104A900080E00E941A0F29E044E666EE80E00E9462 +:104AA0001A0F2DE044E666EE80E00E941A0FC0CF98 +:104AB00090E080E00E94A02D893E9E4F11F40C945E +:104AC000CC1180E008951F920F920FB60F9211241F +:104AD0002F933F934F935F936F937F938F939F9306 +:104AE000AF93BF93CF93DF93EF93FF93D091E90000 +:104AF000DF708091EC00C82FC17080FDC0E810927B +:104B0000E9008091F000877F8093F00078940E9404 +:104B100048141092E9008091F00088608093F000C2 +:104B2000CD2BCF70C093E900FF91EF91DF91CF9132 +:104B3000BF91AF919F918F917F916F915F914F91B5 +:104B40003F912F910F900FBE0F901F9018951F92BD +:104B50000F920FB60F9211242F933F934F935F93B1 +:104B60006F937F938F939F93AF93BF93EF93FF9335 +:104B70008091E10082FF09C08091E20082FF05C0C0 +:104B80008091E1008B7F8093E1008091DA0080FFCB +:104B900024C08091D80080FF20C08091DA008E7FF1 +:104BA0008093DA008091D90080FF9DC080E189BDAB +:104BB00082E189BD09B400FEFDCF81E080939003BE +:104BC00080916A03811109C00E94E7030E94B20428 +:104BD0008091E20084608093E2008091E10080FF98 +:104BE00017C08091E20080FF13C08091E2008E7FA9 +:104BF0008093E2008091E20080618093E2008091E6 +:104C0000D80080628093D80019BC85E0809390031F +:104C10008091E10084FF2BC08091E20084FF27C0D7 +:104C200080E189BD82E189BD89B5982F917080FFAF +:104C3000FBCF8091D8008F7D8093D8008091E100D8 +:104C40008F7E8093E1008091E2008F7E8093E2006E +:104C50008091E20081608093E2008091910388233B +:104C600009F447C084E08093900380919003809181 +:104C7000E10083FF27C08091E20083FF23C0809181 +:104C8000E100877F8093E10082E08093900310929F +:104C900091038091E1008E7F8093E1008091E2009A +:104CA0008E7F8093E2008091E20080618093E20039 +:104CB00042E060E080E00E9480048091F000886023 +:104CC0008093F000FF91EF91BF91AF919F918F91F1 +:104CD0007F916F915F914F913F912F910F900FBEF8 +:104CE0000F901F90189519BC1092900310926A03B0 +:104CF00074CF8091E30087FD93E090939003B5CF4C +:104D000078941F921FB61F9211248F939F93AF9395 +:104D1000BF938091610390916203A0916303B0916E +:104D200064030196A11DB11D8093610390936203FA +:104D3000A0936303B0936403BF91AF919F918F9150 +:104D40001F901FBE1F9018951F921FB61F9211240F +:104D50008F939F93AF93BF9380916003811113C092 +:104D60008091610390916203A0916303B091640309 +:104D70004196A11DB11D8093610390936203A0939E +:104D80006303B0936403BF91AF919F918F911F9084 +:104D90001FBE1F901895CDB7DEB7EE970FB6F894EB +:104DA000DEBF0FBECDBF84B7877F84BF0FB6F89438 +:104DB000A8958091600088618093600010926000E7 +:104DC0000FBE80E890E00FB6F89480936100909356 +:104DD00061000FBE85B7806885BF85B7806885BFD5 +:104DE00082E298E09093CB018093CA010E94E7038E +:104DF0000E94B2048091E20084608093E200789483 +:104E0000809190038823A1F01091E9001F70909188 +:104E1000EC00892F817090FD80E8182B1092E9003A +:104E20008091E80083FD0E9448141F701093E900F0 +:104E300082E084BD93E095BD9AEF97BD80936E00AC +:104E40000E94CC11811102C00E94D4100CE711E025 +:104E500022E8C22E21E0D22ED8018D918D018F3F04 +:104E600011F00E942408C016D106B1F786EF0E9407 +:104E7000240887EF0E94240883E90E94240886E919 +:104E80000E94240886E0E3E7F2E0DF01282F1D926C +:104E90002A95E9F7EFE5F2E0DF011D928A95E9F73F +:104EA0000E945825811102C00E94131782E090E0F1 +:104EB0000E94922D80936C0284E090E00E94922DDB +:104EC000182F82E290E00E94922D982F812F9093CC +:104ED0006603809365030E94BB23EFE3FCE93197EF +:104EE000F1F700C000000E94BB238091730280FF95 +:104EF00008C06FEF7FEF90E080E00E94C42D0E9419 +:104F0000770C83E090E00E94922D90E00E94D20AFC +:104F100080919A0390919B030E94E112509A589AB3 +:104F2000559A5D9A549A5C9A8CE090E00E94922D7A +:104F300090E0B0E0A0E080935B0290935C02A093CD +:104F40005D02B0935E0280916502811132C00E94C1 +:104F50005825811104C00E9413170E94251488E06F +:104F600090E00E949A2D6093E5027093E602809390 +:104F7000E7029093E8026E7F71F40E94251488E0A6 +:104F800090E00E949A2D6093E5027093E602809370 +:104F9000E7029093E8020E94370610928D028091FA +:104FA000E50280FF03C086950E94011481E0809392 +:104FB00065025198599A52985A9A89B1869581708A +:104FC0004A994DC290E0892B80936A0260916503F3 +:104FD0006068609365031091660384E090E00E942E +:104FE000A62D612F82E290E00E94A62D81E20E9410 +:104FF000011481E090E00E94341380E091E09093EE +:105000005D0380935C0308E1C02ED12C83E792E01E +:1050100096E0B92EB80E80919003853019F510E412 +:10502000912E8824839400E112E1809190038530D1 +:1050300009F417C210926B030E9435140E94E60512 +:105040000E94D30B1092670280916602882341F080 +:105050008091E50281608093E50286950E940114AB +:105060000E94E5110E94BB23882359F08FB7F89462 +:1050700040916103509162036091630370916403F6 +:105080008FBFA3E7B2E0EDE6F2E010E000E0302FE2 +:105090008D919191981709F43DC2292F282790E00E +:1050A00099249394422F492109F42FC29DAB3EAB22 +:1050B000892191E009F490E09FAB0E948405816012 +:1050C000782F99AF88AF4DA95EA96FA989AD0E94CD +:1050D0009A21F801E359FD4F8081982690828091B2 +:1050E0008D028823D1F180918C02E091E502E69552 +:1050F000E81BE0938802823009F023C2F0E0EA5511 +:10510000FD4FE4910E2F10E0B5EC8B2EBFE09B2EEF +:1051100080918902882361F0109289020E9484059F +:10512000909387028093860210928B0210928A02DB +:105130000E948405E0918602F09187028E1B9F0BEE +:105140008F3F9F4750F4E00FF11FF0938702E093E9 +:10515000860286E892E0F4010995E0916A02EE0F7A +:10516000EE0FE0936A0289B181FBEE24E0F84A99E0 +:1051700042C280E08E29E82BE0936A02EF70F0E0F3 +:10518000EA57FE4F808190916902890F80936902EE +:1051900020E0843034F1809168028F5F8093680250 +:1051A00012E018AB19AA81E08AAB0E9484058160E5 +:1051B000782F9CAB8BAB48A959A96AA98CA90E94EE +:1051C0009A211BA71CA61DA60E9484058160782F2A +:1051D0009FA78EA74BA55CA56DA58FA50E949A21C0 +:1051E00021E0809169028D3F2CF580916802815009 +:1051F000809368021EA21FA281E088A70E948405F6 +:105200008160782F9AA789A74EA15FA168A58AA57A +:105210000E949A2119A21AA21BA20E9484058160F1 +:10522000782F9DA38CA349A15AA16BA18DA10E94A7 +:105230009A2121E080916902082E000C990B64E00C +:1052400070E00E94122D80936902222359F08FB7DB +:10525000F8944091610350916203609163037091EF +:1052600064038FBF86E0E0E8F2E0DE011196019072 +:105270000D928A95E1F790908202809083021091BE +:105280008402009185021092820210928302109291 +:10529000840210928502892D882909F448C08091E2 +:1052A0007E0290917F020E9475059C0190917A0286 +:1052B000992309F490C323333105C8F19F3F19F0B6 +:1052C0009F5F90937A02992059F00E94A8079FEF60 +:1052D00019140CF491E0899F802D1124809382028F +:1052E000882059F00E94A8079FEF18140CF491E051 +:1052F000899F802D11248093830230918202332371 +:10530000B1F020918302222391F045EB3403C001D8 +:105310001124992309F472C19093820245EB24036E +:1053200090011124332309F46DC130938302812F3E +:10533000802B09F448C080917C0290917D020E94EC +:1053400075059C0190917902992309F43FC3253694 +:105350003105C8F19F3F19F09F5F909379021123A7 +:1053600059F00E9486079FEF11160CF491E0899F77 +:10537000802D112480938402002359F00E94860717 +:105380009FEF10160CF491E0899F802D11248093DB +:105390008502309184023323B1F0209185022223CB +:1053A00091F045EB3403C0011124992309F42EC177 +:1053B0009093840245EB240390011124332309F4D4 +:1053C00029C1309385028091820290918302892BBA +:1053D00090918402892B90918502892B11F00E9473 +:1053E000E60686E0FE013196A0E8B2E001900D925B +:1053F0008A95E1F70E94E60590916B02891731F0DA +:105400000E94E60580936B020E94D30B809190036B +:10541000843009F000CE83E08093E9008091E800B9 +:1054200082FFF9CD8091E80090E085FF06C00E94E0 +:105430000604882309F4F2C091E08091E8008B779C +:105440008093E800992309F4E6CDE981E150E33146 +:1054500008F066C1F0E0EF5DF14D0C94482D92E04C +:10546000B2CD80919003843009F440C080E00E9466 +:10547000D30B10928D0280916702811116C0809229 +:1054800067028091E502982F9170909366028E7F5B +:105490008093E502FFEF20E742E0F15020404040DA +:1054A000E1F700C000000E949B0C109260030FB651 +:1054B000F894A895C09260000FBE9092600083B7E8 +:1054C000817F846083BF83B7816083BF7894889530 +:1054D00083B78E7F83BF0FB6F894A8958091600044 +:1054E000886180936000109260000FBE80918F03EE +:1054F000882309F49ACD0E94BB23E3E7F2E081916F +:10550000811143C2BE12FBCF90CD9F5F990C9430A6 +:1055100009F0C8CD0F5F1F4F0630110509F0B7CD58 +:105520008FEF8AAF8BAF1CAE0E9484058160782F0D +:105530009EAF8DAF4AAD5BAD6CAD8EAD0E949A2132 +:10554000CECD863059F4F0E0ED55FD4FE4910E2FAD +:1055500010E0A5EB8A2EAFE09A2EDACD893061F407 +:10556000E695F0E0E056FD4FE4910E2F10E0FDEDE2 +:105570008F2EFEE09F2ECCCD8F3061F4E695F0E0CB +:10558000E356FD4FE4910E2F10E0E3E68E2EEEE0A1 +:105590009E2EBECD853159F4F0E0E656FD4FE491E4 +:1055A0000E2F10E070EF872E7DE0972EB1CD08E230 +:1055B00010E040E6842E4DE0942E883109F4A8CD09 +:1055C000833249F4E8E9F2E0059114916CE5862E06 +:1055D0006FE0962E9DCD04EF11E053E2852E5DE045 +:1055E000952E843209F494CD00ED17E036E3832E36 +:1055F00036E0932E8DCD82E090E0BCCD81E08093AB +:1056000082028CCE81E08093830291CE81E08093F0 +:105610008402D0CE81E080938502D5CE00E210E0F6 +:10562000CE0101964C018091E80085FD0AC0809171 +:10563000E8008B778093E8000E940604882399F3A2 +:10564000FBCE8091F100D4018D934D0101501109E1 +:1056500051F7F2CE1A8289E08B832DC08A81823085 +:1056600009F4ABC18330A9F0813009F059C02FB7DC +:10567000F89460916103709162038091630390914B +:1056800064032FBF0E944E2D6B837C838D839E838A +:1056900012C0809173028B83809174028C838091FD +:1056A00075028D83809176028E83809177028F833D +:1056B00080917802888780919003843009F0ABCC88 +:1056C0001091E9001F709091EC00892F817090FD7E +:1056D00080E8182B82E08093E9008091E80080FF49 +:1056E0000DC050E040E060E270E0CE0101960E9403 +:1056F00037048091E8008E778093E8001F70109344 +:10570000E90089CC8A81823059F46B817C818D815A +:105710009E810E944E2D86E290E00E94A62DCBCF66 +:105720008FEF8983C8CF4C816B818A810E94E310FF +:105730009827892798279E838D83BDCF8D809E8053 +:105740009824892498248A810B81B8E00B9F8001DA +:105750001124E0E38E9F000D111D11248C8190E037 +:10576000880F991F080F191F692DC80187960E947D +:10577000A62D682DC8018896D0CF0E946A109BCFB5 +:105780008A818138C1F060F4803809F094CF20E03C +:105790004B816091E7028091E6020E940D128BCF4F +:1057A000823849F1833809F086CF20E04091E80241 +:1057B0006C818B81F2CF8B810E9401149B8180913F +:1057C000E502911111C08E7F8093E50210928D0247 +:1057D000FFEF20E742E0F15020404040E1F700C0F9 +:1057E00000000E949B0C67CF81608093E502869544 +:1057F0000E94011460CF8B818093E9025CCF8A8183 +:10580000813899F030F4803809F055CF8091E80262 +:1058100023CF823891F0833809F04DCF8091E60292 +:105820008B838091E7028C8346CF8091E50280FFD5 +:1058300002C0869511CF80E00FCF8091E9020CCF96 +:105840006091E5027091E6028091E7029091E80292 +:105850000E94FB1130CF80E18A832DCF81E08A83C3 +:1058600089EFFACE0A811B81102701271027CE016C +:1058700001963C018C80DC01A80DB11D4D01C801D1 +:10588000895F9D4F8614970409F415CF093FB1E055 +:105890001B0750F40E94922DF30184830F5F1F4F6A +:1058A000BFEF6B1A7B0AEBCFD30114961C92F6CF95 +:1058B0000A811B81102701271027FE0131963F0125 +:1058C0008C80800E912E911CC801895F9D4F80169F +:1058D000910609F4F0CE093FF1E01F0728F4D30147 +:1058E00014966C910E94A62DBFEF6B1A7B0A0F5F76 +:1058F0001F4FEACF0E945A10DECE8AE0ADCF0A8158 +:105900001B81102701271027FE0131963F018C8053 +:10591000CF01880D911D4C01C8018796861497040C +:1059200009F4C9CE003EA1E01A0750F40E94922D5E +:10593000F30184830F5F1F4FBFEF6B1A7B0AECCF1D +:10594000D30114961C92F6CF0A811B8110270127E0 +:105950001027FE0131963F018C80800E912E911C04 +:10596000C80187968016910609F4A5CE003EF1E0A5 +:105970001F0728F4D30114966C910E94A62DBFEF47 +:105980006B1A7B0A0F5F1F4FEBCF09BD19BD09B41E +:1059900000FEFDCF8091D8008F7D8093D80080914C +:1059A000E00082608093E0008091E00081FDFCCF08 +:1059B00010926B030E94351438CB86E290E00E946F +:1059C000922D1B821C821D828E8375CE2D3231401A +:1059D00008F0C2CCF8CC2D32314008F071CCA7CC05 +:1059E00087FB082E062687FD819567FD61950E943D +:1059F000862D0EF4919507FC81950895AA1BBB1B7B +:105A000051E107C0AA1FBB1FA617B70710F0A61BBE +:105A1000B70B881F991F5A95A9F780959095BC01DF +:105A2000CD01089597FB072E16F4009407D077FD5B +:105A300009D00E94FE2C07FC05D03EF4909581957C +:105A40009F4F0895709561957F4F0895A1E21A2E9A +:105A5000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F12 +:105A6000A217B307E407F50720F0A21BB30BE40B62 +:105A7000F50B661F771F881F991F1A9469F76095A9 +:105A80007095809590959B01AC01BD01CF01089563 +:105A9000EE0FFF1F0590F491E02D099469279627DA +:105AA000692778278727782708950E945D2D33235B +:105AB00012F48A1B9B0B0C946E2DA29FB001B39F16 +:105AC000C001A39F700D811D1124911DB29F700D07 +:105AD000811D1124911D08950E945D2DB7FF089529 +:105AE000821B930B08950E945D2DA59F900DB49F7E +:105AF000900DA49F800D911D11240895B7FF0C9463 +:105B0000732D0E94732D821B930B0895991B79E0CE +:105B100004C0991F961708F0961B881F7A95C9F73D +:105B200080950895F999FECF92BD81BDF89A992785 +:105B300080B50895A6E1B0E044E050E00C94CC2D8F +:105B4000A8E1B0E042E050E00C94CC2D262FF9996A +:105B5000FECF92BD81BDF89A019700B4021639F0CC +:105B60001FBA20BD0FB6F894FA9AF99A0FBE08959D +:105B70000396272F0E94A72D0E94A62D252F0E9455 +:105B8000A72D242F0C94A72D0196272F0E94A72D17 +:105B90000C94A62DDC01CB01FC01F999FECF06C0C7 +:105BA000F2BDE1BDF89A319600B40D9241505040DB +:105BB000B8F70895FC014150504030F001900616AE +:105BC000D1F73197CF010895882799270895FB01D0 +:105BD000DC0104C08D910190801921F441505040A6 +:105BE000C8F7881B990B0895F894FFCF77117711A8 +:105BF000801180118211801180118011771177112D +:105C0000871180118011871130155815FB16581512 +:105C1000FB168B15AC15FB16AA16B716CB1BCB1BA8 +:105C2000051C051CB41CCE1C331C331CD91C611D67 +:105C3000701D701D68186C1989199D19AB19E01930 +:105C4000121A2A2B2E2B822B932B9E2BBD2BC02B73 +:105C5000FF2B202C902B902B2B2C2E2C322C582CC5 +:085C60007A2C7D2C7F2CA42C72 +:105C68007205370C160C120C0E0C710501191A1B53 +:105C78001C1D1E1F202122010201001C001C1CCA21 +:105C8800002A00000000C4004C00000000BE0050C4 +:105C980000000000B8005100000000B2004F0000F2 +:105CA8000000AC0052000000000101818283E20084 +:105CB800E900EA00B500B600B700CD008301CC00CA +:105CC8008A0192019401210223022402250226025C +:105CD80027022A02B300B4006F007000F034353692 +:105CE8006667F6F7939600FF0100010000FFFF00CA +:105CF80000010001FF000001020202020606060977 +:105D080009090909090F0F0F0F0F0F151515181994 +:105D180019191919191919191923244022B6A80192 +:0A5D28008601D000BD06D606F6067F :00000001FF From 7b85255d728397f7b0351abdd4f7da61ad633530 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Tue, 30 Nov 2021 21:08:25 -0500 Subject: [PATCH 74/94] OLED-free version for slise.dc --- .../keymaps/via/aleblazer_zodiark_via.hex | 1517 +++++++++++++++++ .../aleblazer/zodiark/keymaps/via/rules.mk | 1 - keyboards/aleblazer/zodiark/rules.mk | 5 +- 3 files changed, 1520 insertions(+), 3 deletions(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/via/aleblazer_zodiark_via.hex diff --git a/keyboards/aleblazer/zodiark/keymaps/via/aleblazer_zodiark_via.hex b/keyboards/aleblazer/zodiark/keymaps/via/aleblazer_zodiark_via.hex new file mode 100644 index 000000000000..3415b408cfd9 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/via/aleblazer_zodiark_via.hex @@ -0,0 +1,1517 @@ +:100000000C948D030C94D4030C94D4030C94D4035B +:100010000C94242C0C94D4030C94D4030C94D4038B +:100020000C94D4030C94D4030C942B240C94E72349 +:100030000C9428250C94D4030C94D4030C94D4036E +:100040000C94D4030C94D4030C94D4030C94D403D4 +:100050000C94D4030C9404250C94D4030C94D40372 +:100060000C94D4030C94D4030C94D4030C94D403B4 +:100070000C94D4030C94D4030C94D4030C94D403A4 +:100080000C94D4030C94D4030C94D4030C94D40394 +:100090000C94D4030C94D4030C94D4030C94D40384 +:1000A0000C94D4030C94D4030C94D40305010902DA +:1000B000A10185020901A1000509190129081500FE +:1000C0002501950875018102050109300931158165 +:1000D000257F95027508810609381581257F9501D0 +:1000E00075088106050C0A38021581257F95017572 +:1000F000088106C0C005010980A101850319012AF4 +:10010000B700150126B700950175108100C0050CD8 +:100110000901A101850419012AA002150126A002E6 +:10012000950175108100C00660FF0961A101096297 +:10013000150026FF00952075088102096315002629 +:10014000FF00952075089102C005010906A101056F +:100150000719E029E7150025019508750181029529 +:1001600001750881010507190029FF150026FF0008 +:100170009506750881000508190129059505750181 +:100180009102950175039101C0000000000000007C +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000007E0F00C2 +:1001B000D4FFFFFFC700000078000000000000002F +:1001C000002A2B28000000000000000000000000B2 +:1001D0000000000029000000002C1E3420212224F1 +:1001E000342627252E362D3738271E1F202122237F +:1001F0002425263333362E37381F04050607080911 +:100200000A0B0C0D0E0F10111213141516171819D6 +:100210001A1B1C1D2F3130232D3504050607080934 +:100220000A0B0C0D0E0F10111213141516171819B6 +:100230001A1B1C1D2F3130354C00047F3F1F6432C8 +:1002400014643214783C1E1E140A050001010101D9 +:100250000101010101020202020202020202030381 +:100260000303030303030404040404040405050551 +:100270000505060606060607070707070808080813 +:10028000090909090A0A0A0B0B0B0C0C0C0D0D0DC0 +:100290000E0E0E0F0F0F1010111111121213131456 +:1002A00014151516161717181819191A1A1B1B1CCE +:1002B0001D1D1E1E1F202021222223242425262628 +:1002C000272829292A2B2C2D2D2E2F30313232335D +:1002D0003435363738393A3B3C3D3E3F4041424366 +:1002E0004445464748494A4C4D4E4F50515354554A +:1002F0005658595A5B5D5E5F616264656668696BFA +:100300006C6D6F7072737577787A7B7D7E80828377 +:100310008587888A8C8E8F91939596989A9C9EA0BB +:10032000A2A3A5A7A9ABADAFB1B3B5B7BABCBEC0C8 +:10033000C2C4C6C9CBCDCFD1D4D6D8DBDDDFE2E491 +:10034000E7E9EBEEF0F3F5F8FAFDFFFFAA7F554081 +:100350002223252628292A2C2D2F303233353638D2 +:100360003A3B3D3E4042434547494A4C4E5051532B +:100370005557595A5C5E6062646668696B6D6F714F +:10038000737577797B7D7F81838587898A8C8E9051 +:10039000929496989A9C9E9FA1A3A5A7A8AAACAE5A +:1003A000AFB1B3B4B6B8B9BBBCBEBFC1C2C3C5C69A +:1003B000C7C9CACBCCCDCED0D1D2D2D3D4D5D6D743 +:1003C000D7D8D9D9DADADBDBDBDCDCDCDCDCDDDD81 +:1003D000DDDDDCDCDCDCDCDBDBDBDADAD9D9D8D771 +:1003E000D7D6D5D4D3D2D2D1D0CECDCCCBCAC9C713 +:1003F000C6C5C3C2C1BFBEBCBBB9B8B6B4B3B1AF4A +:10040000AEACAAA8A7A5A3A19F9E9C9A98969492E9 +:10041000908E8C8A89878583817F7D7B79777573C0 +:10042000716F6D6B6968666462605E5C5A5957559E +:100430005351504E4C4A4947454342403E3D3B3A5A +:100440003836353332302F2D2C2A292826252322E1 +:1004500029001E001F002000210022002F002B0079 +:1004600014001A000800150017002D0003510400A5 +:100470001600070009000A003500E1001D001B00FE +:10048000060019000500A800E000E200E300650096 +:1004900001512C0028002A002700260025002400F6 +:1004A000230030003100130012000C0018001C0063 +:1004B0002E00340033000F000E000D000B004C0026 +:1004C000280038003700360010001100C25C4F00D1 +:1004D00052005100500002512C00280001003A0047 +:1004E0003B003C003D003E00010054005F00600006 +:1004F000610053000100010039005C005D005E00F6 +:10050000530001000100010059005A005B00010086 +:1005100001000100010062006300580001000100B9 +:100520000100440043004200410040003F00010040 +:100530004500610060005F005400010001005300AD +:100540005E005D005C0001000100010001005B0035 +:100550005A00590001000100010001005800630029 +:10056000620001000100010001003A003B003C0074 +:100570003D003E00010054005F0060006100530038 +:100580000100010039005C005D005E0053000100C5 +:100590000100010059005A005B0001000100010048 +:1005A00001006200630058000100010001004400E6 +:1005B00043004200410040003F000100450061004F +:1005C00060005F0054000100010053005E005D0008 +:1005D0005C0001000100010001005B005A005900AD +:1005E00001000100010001005800630062000100E9 +:1005F0000100010001003A003B003C003D003E00CC +:1006000001000100010001000100010001000100E2 +:1006100001000100010001000100010001000100D2 +:1006200001000100010001000100010001000100C2 +:1006300001000100010001000100440043004200EC +:10064000410040003F0001004500010001000100A1 +:10065000DE5C010001000100010001000100C25C3C +:1006600001000100C95CC75CC55CCB5CC35C0100D8 +:100670000100CA5CC85CC65CCC5CC45C01000100C3 +:1006800009025B00030100A0FA0904000001030154 +:100690000100092111010001224000070581030822 +:1006A000000A0904010002030000000921110100F1 +:1006B0000122220007058203200001070503032011 +:1006C00000010904020001030000000921110100DA +:1006D00001227B000705840320000A1201000200AA +:1006E00000000801F902F901000102000110035A9B +:1006F000006F0064006900610072006B000000146C +:100700000341006C00650062006C0061007A0065C6 +:100710000072000000040309040011241FBECFEF83 +:10072000DAE0DEBFCDBF04B603FE27C08091C70369 +:100730009091C803A091C903B091CA038730904B30 +:10074000A740B04BD1F41092C7031092C803109287 +:10075000C9031092CA0314BE84B7877F84BF0FB643 +:10076000F894A89580916000886180936000109251 +:1007700060000FBEE0E0F8E3099511E0A0E0B1E011 +:10078000E8ECFDE502C005900D92A83EB107D9F74F +:1007900023E0A8EEB1E001C01D92A73CB207E1F74B +:1007A0000E944F250C94AB2E0C940000E8EDF0E075 +:1007B00080818E7F80831092E2001092DA00109286 +:1007C000E100A0EEB0E08C9181608C9380818F7706 +:1007D000808319BCA7EDB0E08C918E7F8C938081D3 +:1007E0008F7E80831092AC0308952091E4003091B5 +:1007F000E50095E6A9012091EC00822F817020FF91 +:1008000006C08091E80080FF06C080E00895209136 +:10081000E80022FD1AC08091B903882389F0853051 +:1008200089F08091EB0085FD0FC02091E4003091AC +:10083000E50042175307F9F29150E1F684E008957C +:1008400082E0089583E0089581E00895EF92FF9299 +:100850000F931F93CF937C018B010E94F503C82F48 +:10086000811117C08091E80085FD0BC08091E800E0 +:100870008E778093E8000E94F503882399F3C82FB0 +:1008800008C0F70181917F018093F10001501109A7 +:1008900049F78C2FCF911F910F91FF90EF90089502 +:1008A0008091BB0387FF13C08091E80082FF06C0E0 +:1008B0008091E8008B778093E80004C08091B903B1 +:1008C0008111F2CF08958091B9038823D9F38091E3 +:1008D000E80080FFF8CF8091E8008E77ECCF982F6A +:1008E0009093E900242F762F50E0891731F0709112 +:1008F000EC002091ED005091F00021FD07C09F5FBA +:10090000973071F78093E90081E008953091EB0012 +:100910003E7F3093EB003091ED003D7F3093ED0052 +:100920003091EB0031603093EB007093EC0020933A +:10093000ED005093F0002091EE0027FDE0CF80E025 +:100940000895CF92DF92EF92FF920F931F93CF9370 +:10095000DF93C8EDD0E088818F7E8883E7EDF0E0FB +:1009600080818160808384E082BF81E08093AC03DA +:1009700088818E7F888302EE10E0F8011082109249 +:10098000DA0081EEC82ED12CF601108288818F7793 +:10099000888388818068888388818F7D888319BC5B +:1009A0001092B9031092BA031092B8031092B703D1 +:1009B00090EEE92EF12CF70180818B7F8083888176 +:1009C0008160888342E060E080E00E946F04F6016D +:1009D00080818E7F8083F801808181608083808127 +:1009E00088608083F70180818E7F80838881806129 +:1009F0008883DF91CF911F910F91FF90EF90DF904F +:100A0000CF900895FC018091C1039091C203861795 +:100A10009707A0F06115710529F49091E8009E7781 +:100A20009093E80090E06115710551F4911108C0B0 +:100A30008091E80082FF34C080E00895BC01F2CFCD +:100A40008091B9038823C1F18530C1F18091E8001C +:100A500083FD30C08091E80082FDEACF8091E800FC +:100A600080FFE1CF8091F3002091F200382F6115D3 +:100A7000710519F02830310558F091E02830310522 +:100A800009F090E02091E8002E772093E800CBCF8A +:100A900081918093F100615071092F5F3F4FE7CF43 +:100AA0008091B903882341F0853041F08091E800BE +:100AB00083FFBECF81E0089582E0089583E008952A +:100AC00008958091AE03089587E797E79093010812 +:100AD0008093000888E19AE00FB6F894A895809377 +:100AE00060000FBE90936000FFCF9C014FB7F89459 +:100AF0008091A5039091A603A091A703B091A803AC +:100B00004FBF821B930B08952FB7F8946091A503F4 +:100B10007091A6038091A7039091A8032FBF089519 +:100B20002FB7F8948091A5039091A603A091A703F5 +:100B3000B091A8032FBF08959C01FC0132969FEF4E +:100B400080E04191461751F09F3F19F4411101C0D7 +:100B5000982F8F5F8630A9F79F3F09F40895290FDA +:100B6000311D97FD3A95F901628308952091A20302 +:100B70003091A3032817390771F09093A303809352 +:100B8000A203E091A003F091A103309721F000842B +:100B9000F185E02D0994089520919E0330919F03E3 +:100BA0002817390771F090939F0380939E03E0917B +:100BB000A003F091A103309721F00680F781E02D8A +:100BC00009940895FC01680F791F8FEF91E321913B +:100BD000822728E030E087FF09C0880F892721504D +:100BE0003109C9F7E617F70791F70895880FF7CF8E +:100BF000FA01811101C0FB0109940895E7ECF2E0CC +:100C00001182828184608283089580919903982F54 +:100C10009E7F61F4817082608093990380919C0330 +:100C20008B3A18F08AEA80939C0308958A34B0F3D3 +:100C300081708864F1CFAF92BF92DF92EF92FF9202 +:100C40000F931F93CF93DF93082F162FE901E42F03 +:100C5000F0E0E55BFD4F611110C0E4915E2F4E2F77 +:100C60004983E8835A83DF91CF911F910F91FF90C1 +:100C7000EF90DF90BF90AF900895E62EF12C449155 +:100C8000D42EE42FF0E026E0829FC00111242FEF44 +:100C900030E0B9010E94AC2D802F90E0880F991FA1 +:100CA00055E5569FD001579FB00D11248A1B9B0B11 +:100CB000982F990F890F5901AE18BF08AE9ED00129 +:100CC000AF9EB00DBE9EB00D11245B2F189F80010A +:100CD0001124012F11275901A01AB10AAE9E8001DB +:100CE000AF9E100DBE9E100D11245901A81AB10817 +:100CF000AE9CC001AF9C900DBE9C900D1124892F1D +:100D00009927281B390B2E9FC0012F9F900D3E9FC6 +:100D1000900D1124E92F62307105A1F050F4611596 +:100D2000710509F49DCF6130710581F0EB2F512FD2 +:100D300097CF6430710569F080F06630710509F471 +:100D40008FCFF4CFE42F4B2F592F8ACFE42F412F91 +:100D500087CFEB2F542F492F83CF4B2F5D2DE12FC2 +:100D60007FCF0E9490059C019091BD028091BE02B0 +:100D7000982B21F03093BA022093B9029091BF02D0 +:100D80008091C002982B21F03093B8022093B702D3 +:100D9000E091A003F091A103309749F082E08093A5 +:100DA000BB020480F581E02D8BEB92E0099408955D +:100DB0004091BD02803F59F48091BE0287FF0DC073 +:100DC0001092BE0241110BC01092B50208C0813FC3 +:100DD00081F48091BE0218169CF3442381F0809127 +:100DE000BF029091C002892B09F05AC01092B40240 +:100DF0000895823F49F447FFF0CF1092BD028091E1 +:100E0000BE028111ECCFE0CF833F19F41416ACF38E +:100E1000E4CF9091BF02893F29F41916F4F610929D +:100E2000BF02DBCF8A3F19F497FFD7CFF8CF90915D +:100E3000C0028B3F29F497FFD0CF1092C002CDCFD4 +:100E40008C3F19F41916CCF3C8CF9CE0980F95305D +:100E500090F4845F990B21E030E0B90102C0660F85 +:100E6000771F8A95E2F7CB0180959091BC02892388 +:100E70008093BC02B2CF8D3F31F48091B6028E7F59 +:100E80008093B602AACF8E3F21F48091B6028D7F67 +:100E9000F7CF8F3F09F0A1CF8091B6028B7FF0CFC3 +:100EA00008958091B60280FD16C081FD16C082FDB6 +:100EB00016C08091B4028823A1F0883280F428E023 +:100EC000829FC001112468E270E00E94C02D862F2D +:100ED000672B39F0089582E0089584E0089588E052 +:100EE000089581E008958091B60280FD14C081FDCF +:100EF00014C082FD16C08091B502882381F0843130 +:100F000080F422E3829FC001112464E170E00E941A +:100F1000C02D862F08958CE0089589E1089585E01D +:100F2000089582E30895803F31F40E94730781950C +:100F30008093BE020895813F19F40E947307F8CF91 +:100F4000823F31F40E94730781958093BD0208951A +:100F5000833F19F40E947307F8CF893F29F40E9458 +:100F600051078093BF0208958A3F21F40E945107E0 +:100F70008195F7CF8B3F31F40E9451078195809383 +:100F8000C00208958C3F19F40E945107F8CF9CE0ED +:100F9000980F953070F4845F990B21E030E001C028 +:100FA000220F8A95EAF78091BC02822B8093BC02C3 +:100FB00008958D3F31F48091B60281608093B6022E +:100FC00008958E3F21F48091B6028260F7CF8F3F63 +:100FD000B9F78091B6028460F1CF80E008957894EB +:100FE0000895F894E82FE295EF70F0E031A1282FF2 +:100FF0002F7081E090E001C0880F2A95EAF7982FC2 +:101000009095932391A392A1892B82A30C94EF072F +:101010009091860292FF06C0282F28712830F9F49B +:10102000877F846093FF06C0282F28712831F1F450 +:10103000877E84612091870220FF06C0382F387197 +:101040003830D9F4877F816021FF06C0282F2871AE +:101050002831D1F4877E816194FD877E0895282F01 +:1010600024712430F9F68B7F8860DCCF282F24711F +:10107000243101F78B7E8861DDCF382F317131301B +:1010800019F78E7F8860E0CF282F2171213121F759 +:101090008E7E8861E1CFCF93DF93EC01823891059A +:1010A000A9F1D8F58133910509F496C048F5893244 +:1010B000910509F48AC08A9709F495C0C11521E504 +:1010C000D20708F0BCC0C11530E5D30708F014C141 +:1010D000C83ED10508F09CC0C03ED10560F5C83AB5 +:1010E000D10508F087C0C53AD10508F0FDC0C13070 +:1010F000D10509F12097F9F0C430D105E0F440C0E2 +:101100008533910509F45AC0C997C1F680918602CA +:10111000837089F0C0EED0E00EC0833E910599F156 +:1011200070F4803E910501F1823E910539F680917F +:10113000860282FD21C0CE01DF91CF910895863EC7 +:10114000910561F1873E910571F1843E910509F0A9 +:10115000B5CF8091870281FFEECF80918602C7EEE6 +:10116000D0E084FD0DC0E7CF8091860280FD12C1E2 +:101170009091870290FFDFCFC3EED0E084FFDBCFFA +:10118000D0E0C0E0D8CF8091860282FD06C1909168 +:10119000870290FDBFCF84FFCECFF2CF8091860231 +:1011A00083FDDDCFC8CF8091860283FDF9C0909189 +:1011B000870291FFF0CFC4EED0E0BDCF80918602D0 +:1011C00085FFB9CFC9E2D0E0B6CF8091860285FF16 +:1011D000B2CFC5E3D0E0AFCF8091860286FFABCF20 +:1011E000CAE2D0E0A8CF8091860286FFA4CFC1E3F7 +:1011F000D0E0A1CFCF3BD10518F6C85AD0E0CC0F34 +:10120000DD1FCE59DE4F0990D881C02DD46493CF15 +:10121000C11540E2D40758F4C11581E0D80708F0A1 +:101220008ACFC03FD10508F4ABCFD06584CFC115BC +:1012300090E4D90708F4A4CFDF70D06A7CCFC11541 +:1012400025E5D20700F5C11534E5D30708F08AC0BB +:10125000C11543E5D40708F071C0C11582E5D80770 +:1012600008F467C0CE018370992721E030E002C006 +:10127000220F331F8A95E2F7C695C69580E2C89F74 +:10128000E001112452C0C11599E5D907A8F4C11590 +:1012900028E5D20708F06BC0C11536E5D30708F082 +:1012A0006FCF8C2F0E940808C82FD0E0DC2FCC27EE +:1012B000CC27DF71D0623FCFC1154AE5D40708F4CF +:1012C0005BC0CE0190568115904208F059CF8D2F0A +:1012D0008F710E94080890E0982F882788279F71B7 +:1012E0009C012C2BE901E6CFC55AD0E0C15ADE4F54 +:1012F000C881D0E0D0641FCFCE01E4E096958795F9 +:10130000EA95E1F783702C2F26952695237040E20D +:10131000249F90011124382B8C2F8370C1E0D0E0E2 +:1013200002C0CC0FDD1F8A95E2F7C22BD32BDC68FD +:1013300002CFDC2FCC27C16FD06AFDCECE018370E7 +:10134000992721E030E002C0220F331F8A95E2F78F +:10135000C695C69590E2C99FE0011124C22BD32BFC +:10136000DA68E9CEDC2FCC27C46FD06AE4CEDC2F5C +:10137000CC27C06FD06ADFCE8C2F8F700E940808F8 +:1013800034E0D695C7953A95E1F7CF709C2FEC01E4 +:10139000D069D1CEC9E3D0E0CECEC2EED0E0CBCE84 +:1013A000C6EED0E0C8CE0C94840580914B0281112A +:1013B00010924B020895809590914A029823909341 +:1013C0004A02089580914A0290914902892B909196 +:1013D0004802892B8093EA0190914B02992391F066 +:1013E000892B8093EA0120E08CEE91E0FC013191A1 +:1013F000CF0131112F5FF1E0823F9F07B9F7211133 +:101400000E94D509E091A003F091A103309731F03B +:101410000280F381E02D8AEE91E009940895809195 +:10142000460290911502981301C008958F5F87704E +:10143000FACF27E0929F800D1124982F9770869500 +:101440008695869523E0829FF0011124EC50FE4F93 +:1014500050E040E080E0219130E0092E02C0369556 +:1014600027950A94E2F721703327042E01C0220F3A +:101470000A94EAF7822B4F5F5F4F4330510559F7CB +:10148000089527E0929F800D1124982F977041E0D6 +:1014900001C0440F9A95EAF786958695869593E064 +:1014A000899FF0011124EC50FE4F90E080E070E045 +:1014B0005191DF0111979B01082E02C036952795A7 +:1014C0000A94E2F7217021952527242325272C93C0 +:1014D00001968330910561F7089590E080E00E94C5 +:1014E000CC0590E080E00E94B6051092490210926F +:1014F00048020E94E20986E0EBEBF2E0DF011D9278 +:101500008A95E9F71092B5021092B4021092B602D1 +:101510000C94B1068093C6030C946D0A8091C603A7 +:10152000982F9670963019F488600C948A0A877FF9 +:10153000FCCF21E030E001C0220F8A95EAF7209528 +:101540008091C60382230C948A0A90914702809569 +:10155000892380934702282F277091F4282F082E83 +:10156000000C330B9217130659F09091870292FDED +:1015700007C08595859585950E94990A1092470226 +:10158000089521E030E001C0220F8A95EAF78091AA +:10159000C603822B0C948A0A80934C020C946D0A29 +:1015A000882321F00E94DB090C94E2090895882326 +:1015B00039F090914A02982B90934A020C94E209D8 +:1015C00008958823B1F19CEF980F913A70F4ECEEF6 +:1015D000F1E09191891303C0DF0111971C9291E012 +:1015E000E23FF907B1F70C94E20990E2980F9830C6 +:1015F00050F4877091E001C0990F8A95EAF7892F1E +:101600000E94DB09F0CF9BE5980F933020F490E027 +:1016100080E00C94CC0598E5980F973120F490E089 +:1016200080E00C94B605803F20F00E94D8060C9410 +:10163000B1060895CF93C82F882309F456C08CEFC4 +:101640008C0F813AF8F4ECEEF1E082EF91E0DF01EB +:101650002D91C21759F08A179B07D1F76C2F8AEE8C +:1016600091E00E949C05CF910C94E2092191C21354 +:1016700003C0DF0111971C928E179F07B9F70E94D4 +:10168000E209ECCF80E28C0F883068F4C77021E06B +:1016900030E001C0220FCA95EAF780914A02822BFE +:1016A00080934A02E0CFEBE5EC0FE33040F4F0E04A +:1016B000E15AFE4F808190E0CF910C94CC05E8E593 +:1016C000EC0FE73150F4F0E0EE0FFF1FEE59FE4F44 +:1016D00080819181CF910C94B605C03F30F08C2F62 +:1016E0000E949307CF910C94B106CF9108958093F7 +:1016F000A9037093AB036093AA038091B90384306C +:10170000F9F48093E9008FEF9091E800815095FD06 +:1017100006C095ED9A95F1F700008111F5CF809103 +:10172000E80085FF0DC050E040E063E070E089EA2A +:1017300093E00E9426048091E8008E778093E80071 +:101740000895BC0184E00C94770BBC0183E00C94F9 +:10175000770B9C0184E08093E9009FEF8091E80083 +:10176000915085FD06C085ED8A95F1F70000911135 +:10177000F5CF8091E80085FF0CC050E040E066E0C6 +:1017800070E0C9010E9426048091E8008E77809362 +:10179000E8000895CF93DF93EC0181E08093E900A6 +:1017A0008FEF9091E800815095FD06C095ED9A95D8 +:1017B000F1F700008111F5CF8091E80085FF14C09A +:1017C00050E040E068E070E0CE010E942604809185 +:1017D000E8008E778093E80088E0FE01AFEAB3E08E +:1017E00001900D928A95E1F7DF91CF910895609174 +:1017F0005A018091990380FF20C08091590143E0F4 +:10180000849FC001112483539D4F259A25B12F7DBC +:1018100035B130625FB7F894FC01649FE00DF11DB3 +:101820001124BF0168177907D1F45FBF8FE594E0F9 +:101830000197F1F700C00000089580915B0190913D +:101840005C0123E0829FF0011124E353FD4F8917CF +:10185000A0F61182108212828F5F3396F8CFFC01BE +:101860004191CF01E8E035B9000000C047FF25B93C +:10187000440F000000C000C000C025B900C0EA95B8 +:1018800091F7D0CF0F931F93CF93DF93EC0110E02C +:1018900000E090915D019017110609F06CF40E9430 +:1018A000F70B8C8190E00196817099278C83DF91F2 +:1018B000CF911F910F91089520915B01A801420FD4 +:1018C000511D9A01220F331F240F351F23533D4F03 +:1018D0004C8160919B0380919A0396959017110615 +:1018E00069F064F0442361F040919C034B3A08F0A6 +:1018F0004AEA0E941B060F5F1F4FCBCF4423A1F380 +:1019000040E0F7CF8F929F92AF92BF92CF92DF923B +:10191000EF92FF920F931F93CF93DF93EC014C81D3 +:10192000042F10E09801D8010E940B2E9B01AC01FE +:101930000E94212E4B015C01E0E2F0E0E01BF10B84 +:10194000A5E5B0E0AC019B010E94212E6B017C015A +:101950009F01DF010E94032E9B01AC010E942C2EEF +:101960009B01AC01280D391D4A1D5B1DC701B60145 +:101970000E94D42DF22E822F90E039E23F1560F1C3 +:1019800043E0249F9001112435952795122F10953F +:1019900000E085E5E82EEF1880915D01081758F109 +:1019A0000E94F70B9C8181E0992319F0903219F481 +:1019B0008FEF8093580180915801890F8C83DF91BC +:1019C000CF911F910F91FF90EF90DF90CF90BF903C +:1019D000AF909F908F90089525E530E0B901681B86 +:1019E000790B9B01220F331F260F371F37FFCCCFF8 +:1019F0002F5F3F4FC9CF8E2D01FD8F2D20915B01B1 +:101A0000622F600F7727771F9B01220F331F260F4E +:101A1000371F23533D4F412F1B3A08F04AEA60918C +:101A20009B030E941B060F5FB7CFEF92FF920F93AD +:101A30001F93CF93DF93EC018C81811109C081E06A +:101A40008C831092CB0292E09093570180935601C1 +:101A500080915B0190915C0123E0829FF001112451 +:101A6000E353FD4F891768F110E003E060915D01D9 +:101A7000161768F10E94F70B809156012091CB0256 +:101A8000280F2093CB0290915701980F9093570104 +:101A9000191654F4022E000C330B40915D01415095 +:101AA000550B2417350734F081958093560181300A +:101AB00009F41C82DF91CF911F910F91FF90EF905D +:101AC00008951182108212828F5F3396CBCFE12E60 +:101AD000F12C70E0C7010E94C02D20915B01820FA4 +:101AE000482F50E02091CB02022E000C330BE2165F +:101AF000F306D4F020915701022E000C330B2E1563 +:101B00003F0594F0809F9001112423533D4F409155 +:101B10009C034B3A08F04AEA60919B0380919A0338 +:101B20000E941B061F5FA2CFFA01EE0FFF1FE40FFA +:101B3000F51FE353FD4F118210821282F3CF8F9273 +:101B40009F92AF92BF92CF92DF92EF92FF920F934C +:101B50001F93CF93DF93EC018A81BB24BA9480FD5D +:101B600002C0BB24B394A0905D018C81811109C097 +:101B700081E0B81228C08FEF8A0D8093CA0281E0FD +:101B80008C83F12CE12C44E4842EEA14F8F00E94BA +:101B9000F70B8091CA0291E0B91262C081115BC05B +:101BA00080915D0181508093CA021C82DF91CF91A8 +:101BB0001F910F91FF90EF90DF90CF90BF90AF906B +:101BC0009F908F9008951092CA02D9CF00915B0127 +:101BD0000E0D1F2D111DC801880F991F080F191F09 +:101BE00003531D4FF80111821082128234E0C32E7C +:101BF000D12C912C8091CA02890D853444F1682D35 +:101C00000E949E2D892F082E000C990B8E159F0582 +:101C1000A9F480919C038C9DA0018D9D500D1124F1 +:101C200055954795559547954B3A08F04AEA9801DE +:101C300060919B0380919A030E941B069B0CF1E02C +:101C4000CF1AD108B9F68FEFE81AF80A9ECF87FFAE +:101C5000DACF8A0DD8CF81508093CA02BC82A6CF3A +:101C600090E0019660915D0170E00E94C02D80932C +:101C7000CA028C839BCFEF92FF921F93CF93DF9387 +:101C8000EC0110E0EE24EA94F12C60915D0116174E +:101C900070F00E94F70B9A818C8190FF2AC08F5FB1 +:101CA0008C83DF91CF911F91FF90EF900895209149 +:101CB0005B01422F410F5527551FCA019A01220F80 +:101CC000331F280F391F23533D4F40919C034B3A3C +:101CD00008F04AEA70E0C7010E94C02D962F8C815F +:101CE00060919B03199F800D11240E941B061F5FAA +:101CF000CCCF8150D5CF9091990390FF14C0909193 +:101D00005B0120915C0133E0939FF0011124E353C8 +:101D1000FD4F921710F00C94F70B81836083428380 +:101D20009F5F3396F6CF08950F931F93CF93DF9362 +:101D300000D00F92CDB7DEB78C018091CC0281111B +:101D40000AC09E012F5F3F4F4AEA6FEF0E941B06B9 +:101D50008A818093CC02F8016481613069F08091BE +:101D6000CC0240E0662361F040E0623011F4409123 +:101D7000CC0280E060E004C06091CC0240E080E0F2 +:101D80000E947B0EF801848190E0019663E070E090 +:101D90000E94C02D84830F900F900F90DF91CF9100 +:101DA0001F910F910895CF93DF9300D00F92CDB77D +:101DB000DEB79091990390FF0DC04B3A08F04AEAC4 +:101DC0009E012F5F3F4F0E941B064B8169818A81D4 +:101DD0000E947B0E0F900F900F90DF91CF9108958E +:101DE000CF93DF93EC01E9E9F3E0438162818C81D9 +:101DF0000E94D30E8C818F5F8C83DF91CF910895E9 +:101E0000CF93DF93EC01EC81F0E0E05BFC4F449179 +:101E1000E9E9F3E0628181810E94D30E8C818F5FBA +:101E20008C83DF91CF910895E9E9F3E080818E7F83 +:101E300080830E94FE05E7ECF2E08281816082836C +:101E40002FEF80E792E0215080409040E1F700C002 +:101E500000000C94F70B9F92AF92BF92CF92DF924B +:101E6000EF92FF920F931F93CF93DF937C015B015F +:101E70006A018091810201E010E08A3010F40AE0EA +:101E800010E0C1E0D0E0F894B501C701F601099572 +:101E9000982E0E94EF07911004C021960C171D0781 +:101EA0006CF4892DDF91CF911F910F91FF90EF90EE +:101EB000DF90CF90BF90AF909F900895CC9F9001FE +:101EC000CD9F300D300D112490E080E045E34A9520 +:101ED000F1F70000019682179307C1F7D4CF8091E4 +:101EE0005702811110C08091D80080618093D80082 +:101EF0008AE18A95F1F700C08091D90080FF0AC07D +:101F000081E08093570281E090915702913009F06F +:101F100080E0089582E0809357020E94D6031092D9 +:101F2000B903F1CF0E946F0F882351F0E091A00315 +:101F3000F091A103309721F00190F081E02D0994F8 +:101F400080E008950F931F930E946F0F882321F064 +:101F50001F910F910C9484050E94840500918202C8 +:101F6000109183022091840230918502600F711FCD +:101F7000821F931F1F910F9108950E946F0F81116F +:101F80000C9490050E94A20FCB0108951F93CF934C +:101F9000DF93182FD0E0C0E0893311F4C0E5D0E022 +:101FA000812F0E941A0B209731F4812FDF91CF915E +:101FB0001F910C94E10A8FE99FE00197F1F700C0AF +:101FC00000002197F0CF0F931F93CF93DF93C62F7D +:101FD000D42F022FFC0182818823A1F06093C503D6 +:101FE0000E9490059093C4038093C303C77081E05F +:101FF00001C0880FCA95EAF7DF91CF911F910F9129 +:102000000C94D70A8091C503681335C08091C3032F +:102010009091C4030E947505883C910560F510E21B +:102020001D0FCD17B9F080E28C0F883040F4C770D7 +:1020300081E001C0880FCA95EAF70E94D00A1830E3 +:1020400048F481E09D2F977001C0880F9A95EAF7B8 +:102050000E94D70A802F0E94C60F183098F4D770BC +:1020600081E001C0880FDA95EAF7DF91CF911F91E7 +:102070000F910C94D00AC77081E001C0880FCA95F7 +:10208000EAF7F3CFDF91CF911F910F910895CF938E +:10209000DF93C7E5D2E060E0CE010E94542E219686 +:1020A000C11584E0D807B9F7DF91CF9108956F92F9 +:1020B0007F928F929F92AF92BF92CF92DF92EF92D8 +:1020C000FF920F931F93CF93DF9380E5C82E84E098 +:1020D000D82E91ECE92EF12CE701CC58D10936012C +:1020E0001BC0F50185909490692DC8010E94542E63 +:1020F000682DC80101960E94542E82E0A80EB11CE2 +:102100000E5F1F4FC017D10761F78EE0680E711C7C +:102110002E96CE15DF0529F08E010E5011095301C0 +:10212000E0CF7E018CE8E80EF11C8CE8C80ED11CD3 +:1021300081EFE81682E0F80679F6DF91CF911F91E2 +:102140000F91FF90EF90DF90CF90BF90AF909F9056 +:102150008F907F906F900895CF93C82F6FEF81116C +:1021600061E283E290E00E94542E6FEFC11161E1C1 +:1021700084E290E00E94542E6FEFC11160E385E28B +:1021800090E0CF910C94542E80E00E94AC1060E05F +:1021900086E290E00E94542E0E9457100E94471041 +:1021A00081E00C94AC10CF93C0918702C2FB9927B9 +:1021B00090F9981799F080FBC2F9C093870260915B +:1021C000860284E090E00E94542E6C2F82E290E020 +:1021D0000E94542E82E0CF910C94A50ACF910895CD +:1021E0000F931F93CF93DF93C42FD0E0CC0FDD1F4D +:1021F0002EE0629FC00DD11D11243CE8839FC00DCD +:10220000D11D1124CE0187960E94402E082F10E088 +:10221000102F0027CE0188960E94402E9801282B6F +:10222000C901DF91CF911F910F910895462F8430FE +:1022300038F47A3028F4673018F4672F0C94F010D3 +:1022400090E080E00895CF92DF92FF920F931F936A +:10225000CF93DF936C010091C60380914C02082B51 +:10226000C7E0D0E010E0FC2EC8010C2E02C095950E +:1022700087950A94E2F780FD0CC02197A0F7F12C16 +:102280008F2DDF91CF911F910F91FF90DF90CF9015 +:102290000895B6018C2F0E9416110E944B080197D9 +:1022A00061F3EECFCF93DF93EC010E942311BE01C7 +:1022B0000E941611DF91CF910C944B08FC01808194 +:1022C00091810E945211292F2F7092959F709250E8 +:1022D0009E3078F4E92FF0E0E355F14D0C94F62DA3 +:1022E000803F19F020F4883E20F481E00895843F77 +:1022F000E1F380E00895883EC0F3813FD1F7F5CF48 +:10230000822F869586958695089583E290E00E94B7 +:10231000402E813289F484E290E00E94402E813187 +:1023200059F485E290E00E94402E91E0803309F05C +:1023300090E0892F8170089580E0FCCFCF9384E0F6 +:1023400090E00E94402EC82F82E290E00E94402E32 +:10235000982F8C2FCF91089560919903669570E026 +:102360004BE050E08BE491E00E94882E892B19F419 +:1023700081E08093C8020E94BD0F9093C2028093B7 +:10238000C1028091C90284608093C9020895CF92EE +:10239000DF92EF92FF926B017C010E940506B7016C +:1023A000A60188E090E0FF90EF90DF90CF900C9432 +:1023B000662EAF92BF92CF92DF92EF92FF920F9371 +:1023C0001F93CF93DF9300D00F92CDB7DEB7082FC6 +:1023D000F62E142FE22E9091990390FF3FC0E92F23 +:1023E000E695AE2FB0E0AD54BE4F8C918093C702FE +:1023F0009E7F923009F040C04B3A08F04AEA9E01B5 +:102400002F5F3F4F6F2D802F0E941B064B816981EC +:102410008A810E947B0E80919A03801308C080916C +:102420009B038F1104C080919C03811729F0809138 +:10243000C90282608093C90200939A03F0929B03C1 +:1024400010939C03EE2051F06091990370919A03D0 +:1024500080919B0390919C030E94C7110F900F9055 +:102460000F90DF91CF911F910F91FF90EF90DF9030 +:10247000CF90BF90AF900895823019F410919C03D3 +:10248000CACF863019F400919A03C5CF8930D9F3A9 +:10249000893109F6E9518E2F8170D82EE695F0E04A +:1024A000E55BFC4FA590B490C12CBB2460915D010D +:1024B000C61618F00E94F70BAECF2C2D30E0A29E6E +:1024C000C001A39E900DB29E900D112470E00E9459 +:1024D000AC2D802FD11016C0860F40915B01420FAA +:1024E000532F511D9A01220F331F240F351F2353E1 +:1024F0003D4F412F1B3A08F04AEA6F2D0E941B0600 +:10250000C394D4CF861BE9CFE9E9F3E0438128E007 +:10251000421B08F440E021E0628181810C94D911D2 +:10252000E9E9F3E0438128E0420F08F44FEF21E0AE +:10253000628181810C94D911E9E9F3E0628128E09C +:10254000621B08F460E021E0438181810C94D91181 +:10255000E9E9F3E0628128E0620F08F46FEF21E01F +:10256000438181810C94D911E9E9F3E0818121E073 +:102570004381628188500C94D911E9E9F3E08181AB +:1025800021E043816281885F0C94D91180919D0381 +:10259000882319F0815080939D0360919903709175 +:1025A0009A0380919B0390919C030C94C711809196 +:1025B0009D03833018F48F5F80939D03609199038E +:1025C00070919A0380919B0390919C030C94C71186 +:1025D0009091990390FF3BC0917081112EC0926041 +:1025E000909399038091C90281608093C902662308 +:1025F00051F06091990370919A0380919B0390919F +:102600009C030E94C71160919903669570E04BE0AE +:1026100050E08BE491E00E94882E892BA9F00E9463 +:10262000FE0581E08093C40220E040919C0360910C +:102630009B0380919A030C94D911853210F0986411 +:10264000CFCF880F982BCCCF0E94AC11EACF089542 +:10265000809199038695815009F484E261E00C949D +:10266000E8128091990386958F5F853208F081E0AA +:1026700061E00C94E8129091990390FF07C0969541 +:10268000981720F0961710F40C94311361E00C9415 +:10269000E812E9E9F3E083E0808311828FEF82831F +:1026A0008AEA83831482A7ECB2E012968C91129787 +:1026B000836012968C9360817181828193810C94E6 +:1026C000C71110924A02ECEEF1E086E0DF011D92A4 +:1026D0008A95E9F70C946D0A1F93CF93DF93CDB7DA +:1026E000DEB7AA970FB6F894DEBF0FBECDBF8BEB57 +:1026F00093E02091F100DC012D93CD01B3E0833C08 +:102700009B07B9F78091BC03833009F472C0B8F419 +:10271000813009F449C0823009F4B3C08091E800E7 +:1027200083FF8BC28091BB039091BC039A3008F069 +:1027300084C2E92FF0E0E554F14D0C94F62D8A3077 +:1027400009F48EC08B3009F471C0893039F780915B +:10275000BB03813219F78091BF039091C0030097AA +:1027600011F00297D9F68091E800877F8093E80006 +:102770008091E80082FF38C09091F3008091F200D0 +:10278000029731F48091F100813011F0863021F40C +:102790008091F1008093AE038091E8008B77809365 +:1027A000E8000E945004BACF8091BB03813A09F03F +:1027B000B5CF8091E800877F8093E8008091BF03C8 +:1027C0009091C003892B61F468E08FEA93E070E098 +:1027D0000E9402058091E8008B778093E8009ECFED +:1027E00060E090E080E0F3CF8091B9038111C0CF29 +:1027F00095CF8091BB03813A09F090CF8091BF03C0 +:102800009091C003892B09F089CF8091E800877FE0 +:102810008093E8008091E80080FFFCCF80915E010A +:102820008093F1008091E8008E77B9CF8091BB034F +:10283000813209F073CF8091BF039091C003892B3F +:1028400009F06CCF8091E800877F8093E8000E94B8 +:1028500050048091BD0380935E010E9461135ECF9E +:102860008091BB03813209F059CF8091E800877FC6 +:102870008093E8000E9450048091BE038093AD03D2 +:102880004DCF8091BB03813A09F048CF8091E80099 +:10289000877F8093E8008091E80080FFFCCF8091E3 +:1028A000AD03BECF803899F0823809F0C6C180915F +:1028B000BF038F70873008F0C0C18093E90080911A +:1028C000EB0085FB882780F91092E90006C0809113 +:1028D000B7039091B803911182609091E800977FBF +:1028E0009093E8008093F1001092F1008091E8004D +:1028F0008E779FC1882309F48DC1823009F09DC174 +:102900008091BD03811190C18091BF038F702FEF23 +:10291000280F263008F091C18093E9002091EB0048 +:1029200020FF82C1933031F48091EB00806280936C +:10293000EB007AC19091EB0090619093EB0021E065 +:1029400030E001C0220F8A95EAF72093EA00109246 +:10295000EA008091EB008860EACF81116EC110918E +:10296000BD031F778091E3008078812B8093E30083 +:102970008091E800877F8093E8000E945004809156 +:10298000E80080FFFCCF8091E30080688093E30043 +:1029900082E0111183E08093B9034FC180588230E7 +:1029A00008F04BC12091BD033091BE032C3DE3E004 +:1029B0003E07A1F583E08A838AE289834FB7F894C2 +:1029C000DE01139620E03EE051E2E32FF0E0509369 +:1029D0005700E49120FF03C0E295EF703F5FEF7076 +:1029E0008E2F90E0EA30C0F0C7968D939D932F5FB5 +:1029F000243159F74FBF8091E800877F8093E8002A +:102A00006AE270E0CE0101960E9402058091E80022 +:102A10008B778093E80011C1C096E7CF8091BF0308 +:102A20009091C003432F55274330510509F44AC004 +:102A300078F54130510509F47AC08BE590E0E0E883 +:102A4000F6E04230510509F0F8C02091E800277FF8 +:102A50002093E8002091C1033091C20382179307AD +:102A600008F49C0140E02115310509F065C04111D1 +:102A700063C08091E80082FDC9CF8091B9038823AB +:102A800029F2853019F28091E80083FFF2CFBECFA2 +:102A90004132510509F43CC04232510509F0CDC024 +:102AA0008330910508F0C9C0FC01EE0FFF1FE5520D +:102AB000FE4F0190F081E02D88529E4FDC018C91F9 +:102AC00090E01AC0332721303105D1F021153105AE +:102AD00061F02230310509F0B0C0EDEEF6E0E4918E +:102AE0008E2F90E0EDEEF6E007C0E5E1F7E0E4912F +:102AF0008E2F90E0E5E1F7E0009709F49EC0A5CFA6 +:102B0000EFEFF6E0E4918E2F90E0EFEFF6E0F4CFF8 +:102B10008330910508F091C0880F991FFC01EF5197 +:102B2000FE4F0190F081E02D89E090E08ECF82E1B0 +:102B300090E0EBEDF6E089CF8091B903882309F4AA +:102B400065CF853009F462CF8091E80083FD5ECFC8 +:102B50008091E80082FD8DCF8091E80080FF83CFD7 +:102B60009091F3008091F2002115310519F0883021 +:102B7000910550F041E0089709F040E08091E800AD +:102B80008E778093E8006FCF44914093F1003196A7 +:102B9000215031090196E8CF803809F04EC080916C +:102BA000E800877F8093E8008091BA038093F1006A +:102BB0009DCE811142C01091BD031230F0F580917D +:102BC000E800877F8093E8001093BA030E945004C6 +:102BD000112311F084E005C08091E30087FDFACF56 +:102BE00081E08093B90342E061EC81E00E946F04D0 +:102BF00042E261EC84E00E946F0442E261EC82E018 +:102C00000E946F0442E260EC83E00E946F048091B6 +:102C1000B90313C08091BD03813079F481E0933012 +:102C200009F080E08093B8031092E9008091E800F9 +:102C3000877F8093E8000E9450048091E80083FF22 +:102C40000AC08091E800877F8093E8008091EB00C4 +:102C500080628093EB00AA960FB6F894DEBF0FBE99 +:102C6000CDBFDF91CF911F91089569EE7EEF90E087 +:102C700080E00E94722E60E082E090E00E94542E7C +:102C800060E083E090E00E94542E10924C0260E0DD +:102C900084E090E00E94542E60E082E290E00E9486 +:102CA000542E60E085E090E00E94542E60E086E0C3 +:102CB00090E00E94542E6FEF87E090E00E94542E27 +:102CC00040E050E0BA0188E090E00E94662E60E0AB +:102CD0008DE090E00E94542E40E050E0BA0188E17F +:102CE00090E00E94662E60E087E190E00E94542E02 +:102CF00040E050E0BA018CE190E00E94662E70E066 +:102D000060E080E290E00E94722E40E050E0BA0164 +:102D100088E190E00E94662E80E00E94AC100E9444 +:102D2000C41040E050E0BA018FE090E00E94662EAF +:102D300040E050E0BA0183E190E00C94662E3F92AF +:102D40004F925F926F927F928F929F92AF92BF92BB +:102D5000CF92DF92EF92FF920F931F93CF93DF9367 +:102D600000D000D00F92CDB7DEB78C01FC0183817B +:102D70009481892B31F08081918189238F3F09F0E3 +:102D800070C50F900F900F900F900F90DF91CF9123 +:102D90001F910F91FF90EF90DF90CF90BF90AF9079 +:102DA0009F908F907F906F905F904F903F9008958D +:102DB0000E942311F82E682F89819A810E94410A6E +:102DC00069817A818F2D0E9416117C01F801828120 +:102DD000882309F439C5970122513F452031310537 +:102DE00008F005C58FEF93E00E94402EFEEEEF0E37 +:102DF00057E5852E52E0952E8823A1F18091470258 +:102E0000877009F4BECFF8018281882309F4B9CF15 +:102E10008091870282FDB5CF82E00F900F900F90D6 +:102E20000F900F90DF91CF911F910F91FF90EF9036 +:102E3000DF90CF90BF90AF909F908F907F906F90DA +:102E40005F904F903F900C94A50A811424E0920665 +:102E5000A9F2C4010E94402E811101C0EA943FEF03 +:102E6000831A930AE110F1CF1C821B8244244394FD +:102E70004AE0342E74018FEFE81AF80AC4010E9468 +:102E8000402E89831A82882309F4B8CF9FEF980FC8 +:102E9000933000F58A83498292E0890E911CC70124 +:102EA0000E94402E8B83882309F4A8CFFE0131961F +:102EB0007F01F70120812223E9F2213009F049C086 +:102EC00091818281913041F4F2E0EF0EF11C0E9479 +:102ED000C60F09C04701EACF923049F422E0E20E62 +:102EE000F11C0E941A0B3FEFE31AF30AE2CF933072 +:102EF00031F432E0E30EF11C0E94E10AF4CF943089 +:102F000021F08FEFE81AF80AEECF92E0E90EF11CFB +:102F100030E020E0B7016F5F7F4FF70141818053C0 +:102F2000990B8A30910550F021503109E0F28FE978 +:102F30009FE00197F1F700C00000F6CF329EF0014C +:102F4000339EF00D11249C012E0F3F1F842F7B0117 +:102F5000E1CFE22FF0E0E754FE4F5490822F8695A8 +:102F60008695869590E0FC01E755FE4F64902770AA +:102F7000712C022E02C0759467940A94E2F7E1E086 +:102F80006E227724FC01E756FE4FA490B12C022E4E +:102F900002C0B594A7940A94E2F7F1E0AF22BB24F3 +:102FA000FC01E757FE4FC490D12C02C0D594C794C2 +:102FB0002A95E2F721E0C222DD246114710419F0A0 +:102FC00081EE0E941A0BA114B10419F086EE0E9442 +:102FD0001A0B852D0E94C60FAB2819F086EE0E94B1 +:102FE000E10A672819F081EE0E94E10ACD2809F470 +:102FF0007ACF8CE26CCF81E00E94C10A0E948E0AD7 +:10300000FDCE81E00E94990AF9CF82E0F5CF95EFDD +:10301000E9169CE5F90609F46AC008F464C027E2E1 +:1030200045EE66EEF6EFEF16FCE5FF0609F408C480 +:10303000882309F427C41092C50323E0E2162DE586 +:10304000F20608F05BC03AEFE3163CE5F30630F415 +:10305000C70182509C45449708F056C00E949E11BB +:10306000909387028093860290E1E9169CE5F90629 +:1030700009F433C108F0A5C0F8E0EF16FCE5FF063F +:1030800009F41DC108F06EC034E0E3163CE5F30618 +:1030900009F407C108F050C092E0E9169CE5F90672 +:1030A00009F4F9C0809186028260E3E0EE16ECE557 +:1030B000FE0609F4F3C060918602F090870284E076 +:1030C00090E00E94542E6F2D82E290E00E94542ED8 +:1030D0000E94611393CE27E245EE65EEB1C326E26E +:1030E00041EE60EEADC327E245EE64EEA9C326E2F1 +:1030F00041EE62EEA5C328E241E0EFCF81E6E8169B +:103100008DE5F80609F4AACFF6E1EF16FCE5FF0617 +:1031100009F0D1C380914A028A7A91E009F490E0E3 +:103120009093F30169E2811165E38AEE91E00E94D8 +:103130009C050E94E20962CE809186028061F6E0E1 +:10314000EF16FCE5FF0609F4A9C0809186028860AD +:1031500027E0E2162CE5F20608F4A0C08091860272 +:1031600080629CC0809186028D7F3CE0E3163CE546 +:10317000F30609F493C078F4809186028C609AE09B +:10318000E9169CE5F90609F489C008F49CC0809111 +:1031900086028E7F83C080918602877FFEE0EF16D5 +:1031A000FCE5FF0609F47AC0809186028B7F2FE050 +:1031B000E2162CE5F20608F471C0809186028F7E3B +:1031C0006DC03CEFE3163CE5F30609F482C0A0F5C0 +:1031D00094E1E9169CE5F90609F493C098F4F2E14C +:1031E000EF16FCE5FF0609F47CC0809186028F7B18 +:1031F00023E1E2162CE5F20608F450C08091860225 +:10320000837F4CC03AEFE3163CE5F30609F44DC06A +:1032100008F051C095E1E9169CE5F90609F04BCF9D +:103220008091860282FB992790F921E0922790FBFA +:1032300082F990FB83F932C0E114EDE5FE0609F452 +:1032400056C0A0F48091870283602EEFE2162CE531 +:10325000F20671F1809187028D7F3FEFE3163CE526 +:10326000F30630F1809187028C7F22C082E0E8165D +:103270008DE5F80609F454C008F44CC0E1E6EE16FA +:10328000EDE5FE0609F017CF90918602892F8F7E1B +:1032900094FF806103C080918602816080938602E2 +:1032A0000ACF809186028460F9CF80918702816085 +:1032B0008093870200CF809187028260F9CF80914E +:1032C00086028064EBCF0E94611380918602806841 +:1032D000E5CF809187028E7FEBCF809186028F7D34 +:1032E000DDCF0E946113809186028F77D7CF8091C6 +:1032F0008702982F909591708E7F892B90FB81F992 +:10330000D7CF0E94611390918602892F97FB87F98E +:103310008058C4CF61E08EE090E00E94542ECBCE66 +:1033200060E0F9CF85E3B9C281608093990361E0E1 +:1033300086950E94E81262CD48E253E161E373E1B1 +:103340000E94F8055BCD41E353E168E273E1F8CFF9 +:103350004DEB52E164EB72E1F3CF4CE952E168EAE4 +:1033600072E1EECF44E852E160E972E1E9CF40E971 +:1033700052E164E872E1E4CF47ED52E166EC72E1BC +:10338000DFCF61E081E0D5CF65E082E00E943B13B2 +:1033900035CD68E086E0FACF64E18FE0F7CF67E1F2 +:1033A00085E1F4CF62E289E1F1CF61E083E2C1CF50 +:1033B0000E9461139FEFE4E3FCE09150E040F04095 +:1033C000E1F700C000000E94640581E09AC280E03D +:1033D00098C2C7010E94190AD82EA4C22F2D2F709F +:1033E000C22E8F2D807F19F0C29490EFC922DD206C +:1033F000B9F0CC2069F080E28E0D883010F0811099 +:1034000009C080914A02C82AC0924A020E94E20979 +:103410008E2D4DC080914902C82AC0924902F6CF34 +:103420008E2D0E94E10ACC2009F443C080E28E0D6B +:10343000883010F0811004C08C2D0E94DB0906C07A +:10344000C09480914902C822C09249020E94E209B8 +:1034500030C03F2D3F70C32E8F2D807F803219F0FA +:10346000C29480EFC822882089F081E0881609F490 +:103470007FC0DD2009F489C0BB2009F47FC0F801BA +:10348000858180FFC5CF8F70858378C020918702AA +:1034900022FF4BC0DD2009F442C0CC2039F08091DE +:1034A0004A02C82AC0924A020E94E20980E00E94B1 +:1034B0001A0B292D2850330B2430310510F40E94AB +:1034C000920FAA2009F45DCC8091470280FD59CC6F +:1034D000F80112828595859585950E94C10AC801DB +:1034E0000E949F16809147028595859585950F903E +:1034F0000F900F900F900F90DF91CF911F910F9130 +:10350000FF90EF90DF90CF90BF90AF909F908F9003 +:103510007F906F905F904F903F900C94990A80E05D +:103520000E94E10ACC2029F287CFDD20A1F0909102 +:103530004B028C2D892BB11003C00E94D70AB9CF42 +:10354000E1E0BE12FACF22FDB4CF981709F4B1CF53 +:1035500080934B02AECFB11006C00E94D5098C2DCE +:103560000E94D00AA6CFF1E0BF1609F4A2CFF5CF92 +:10357000DD2031F025E02B1508F49BCF8C2DDDCF1D +:1035800034E03B1508F495CFEACFBB2041F3F9E3D3 +:103590008F1209C02FEF37EE83E02150304080407A +:1035A000E1F700C000008E2D0E94E10A82CF8F2D2E +:1035B00086958695837061F0813009F07ACFC701D6 +:1035C0009370D11002C090E080E00E94B60571CFE8 +:1035D000C7019370D11002C090E080E00E94CC053A +:1035E00068CF8E2DDD2029F00E9493070E94B1063E +:1035F00060CF0E94D806FACF8F2D837091F5D1103D +:1036000058CF4E2D429546954770440F440F8E2D4E +:103610008F70042E01C0880F0A94EAF72E2D2071B6 +:10362000E4FE07C02FE030E001C0220F4A95EAF720 +:1036300020953F2D369536953370323069F050F431 +:1036400040914C02313029F0822B84230E94CC0A15 +:1036500030CF842B822BFACF282B80914C028227EB +:10366000F5CF8695DD2011F08F2D8170882309F428 +:1036700020CF4E2D429546954770440F440F8E2D16 +:103680008F70042E01C0880F0A94EAF72E2D207146 +:10369000E4FE07C02FE030E001C0220F4A95EAF7B0 +:1036A00020953F2D369536953370323069F050F4C1 +:1036B0004091C603313029F0822B84230E948A0A6C +:1036C000F8CE842B822BFACF282B8091C603822739 +:1036D000F5CF9F2D9F70F92EDD2029F0892F0E94B4 +:1036E000C10A8E2D2ACF8E2D0E94D00A8F2D0E94C6 +:1036F000990ADFCE8E2DE2EF8E16B1F1E81570F04B +:10370000F0EF8F16D1F021EF821691F0DD2009F451 +:103710005EC0B1107DCE8F2D8F712AC033EF83161E +:1037200051F194EF8912F2CF8091870282FF2FC06E +:103730008F2D8F71DD20D9F21BC0DD2081F0E4E0F8 +:10374000EB1508F4B6CE2F2D2F7181E090E001C06B +:10375000880F2A95EAF79091C6038927AFCFF5E045 +:10376000FB1508F4A6CEEFCF8F2D8F71D110BFCFF0 +:103770000E94C10A9ECE80E0DD2009F49FCF9F2DDC +:103780009F7181E001C0880F9A95EAF797CFDD20FD +:1037900099F02F2D2F71F22E822F0E94C10A809155 +:1037A000870282FD07C038E0F39EC00111248360C8 +:1037B000809347028F2DDCCF81E00E94A50A81E033 +:1037C0008B1508F076CE82E00E94A50A72CEBB204F +:1037D00059F0893309F0E7CE9FEFE7EEF3E091501F +:1037E000E040F040E1F7DDCE8F2D8F7180CFF0E12A +:1037F000EF16FFE5FF0609F4FECB21E1E2162FE507 +:10380000F20609F402CC93EFE9169CE5F90609F4F7 +:1038100066CC08F0FCCBF8EDEF16FCE5FF0609F4EA +:103820005ACC29EDE2162CE5F20609F464CC37ED0A +:10383000E3163CE5F30609F0FBCB26E241EE61EE30 +:10384000C8010E94E30FDACA30E1E3163FE5F30650 +:1038500009F4D7CB91E1E9169FE5F906A1F682E0DC +:10386000D1CB85E0DE01119601900D928A95E1F7AA +:10387000F801228189819A8121119ACA0E94190A2C +:10388000F82E9ECAF6E1EF16FCE5FF0609F083C0AC +:103890008091F301811146CD89E2ECEEF1E022EF57 +:1038A00031E09191891303C0DF0111971C922E170B +:1038B0003F07B9F73ECC2AE5E2162DE5F20609F4FA +:1038C00084CD68F4E1148CE5F80609F471CD9EED21 +:1038D000E9169CE5F906B9F40E9435168FCAEBE5A6 +:1038E000EE16EDE5FE0609F472CDFCE5EF16FDE5FA +:1038F000FF0649F48091870282FB882780F991E0D6 +:1039000089270E94D310F8018281E080F18088230A +:1039100009F45FCDC7010E942311D82E682FC7017B +:103920000E94410AB7018D2D0E9416110E944B087A +:103930007C01882EF801D280B580B2943FE0B3229A +:10394000809147028770C1F0AD2CDD20B1F08F2D42 +:10395000807F803421F080E28E0D883068F0809185 +:10396000870282FD09C082E00E94A50A8091470279 +:103970008770AA24A3948111A12C9F2C92942FE0EC +:103980009222FBE0F91508F494CDE92DF0E0EB5319 +:10399000F14D0C94F62D80914A0282722CECE216C5 +:1039A0002CE5F20609F4E8CC08F073C096ECE916B1 +:1039B0009CE5F90609F4CCCC08F042C0F3ECEF1614 +:1039C000FCE5FF0609F4B8CC50F532ECE3163CE513 +:1039D000F30609F098CF8091990380FFA5CC8E7FE4 +:1039E000809399036091990370919A0380919B034E +:1039F00090919C030E94C7110E94FE058091C9020C +:103A000081608093C9022FEF30E782E0215030407F +:103A10008040E1F700C000000E94F70BEFC994EC72 +:103A2000E9169CE5F90609F48ECC44EB52E16DEB06 +:103A300072E1E5ECEE16ECE5FE0609F481CC63CF0D +:103A4000F9ECEF16FCE5FF0609F48CCC88F437ECB2 +:103A5000E3163CE5F30609F480CC48EA52E16CE950 +:103A600072E198ECE9169CE5F90609F469CC4BCFB4 +:103A7000EAECEE16ECE5FE0609F479CC46EC52E1F0 +:103A800067ED72E1FBECEF16FCE5FF0609F458CC9C +:103A90003ACF21EDE2162CE5F20609F47DCCB8F41C +:103AA0008EECE8168CE5F80609F46ECC08F469CCC7 +:103AB000EFECEE16ECE5FE0609F46BCC6EE089E067 +:103AC000F0EDEF16FCE5FF0609F460CC1CCF24ED09 +:103AD000E2162CE5F20609F465CC78F482EDE816DE +:103AE0008CE5F80609F45BCC61E088E193EDE9161A +:103AF0009CE5F90609F41DCC06CFE5EDEE16ECE5E4 +:103B0000FE0609F452CCFDE5EF16FF0609F476C96E +:103B1000FACE1F93CF93DF9380911402807FA9F494 +:103B200080911102882389F080914602D09115027C +:103B300060910F0270911002A0911202B0911302D5 +:103B4000C62FC72316E0D81304C0DF91CF911F9171 +:103B5000089590E0109711F0CF3F19F40196877007 +:103B6000F2CF189F9001199F300D1124F901EA5EE0 +:103B7000FD4F41814713F2CF40814613EFCF428181 +:103B80004111ECCF438154814A1B5B0B483C5105EA +:103B900028F7809114028F70806180931402F901DC +:103BA000E55EFD4F80818F70806180838FE092E0C1 +:103BB0000E949F16DF91CF911F910C940F0AAF9234 +:103BC000BF92CF92DF92EF92FF920F931F93CF930A +:103BD000DF93CDB7DEB761970FB6F894DEBF0FBEA7 +:103BE000CDBF8C0185E0F801DE011D9601900D929C +:103BF0008A95E1F7F801E2808FE0A82E82E0B82EE6 +:103C000060911202709113026115710509F432C1BD +:103C100090910F0240911002892F84238F3F09F465 +:103C200029C120813181C380D480F0901102F60136 +:103C3000E61BF70BFF2009F4E8C080911402582F0F +:103C4000507FE83CF10508F0ABC0511177C0FE2C65 +:103C5000431321C092131FC0E1101DC08F708061FB +:103C600080931402C5010E949F1680911402F801EE +:103C700085838F2D61960FB6F894DEBF0FBECDBF42 +:103C8000DF91CF911F910F91FF90EF90DF90CF9038 +:103C9000BF90AF900895CD2829F0822F83238F3FC6 +:103CA00009F003C180E0F82FF170DF2E80FF3CC0E7 +:103CB000809146024091150256E0841315C02D876D +:103CC0003E878D859E850E945211292F22952F7047 +:103CD0002230F0F0243018F59F70F1F0F801958152 +:103CE000907FD1F4D12C1EC090E0589FF001599FD5 +:103CF000F00D1124EA5EFD4F6181361306C060812C +:103D0000261303C06281E6120FC001968770D5CFDB +:103D10009F7011F0882331F3805E883018F3C8015A +:103D20000E949F16FD2CA5CFEE2009F4A2CF809112 +:103D30001402816080931402F12C9BCF431306C0C0 +:103D4000921304C0F801EE2009F479C0C8010E9462 +:103D50005E11882309F1EE20F9F08091140280327F +:103D600070F020910F023091100238872F8319864E +:103D7000DB86CA868C87CE0107960E949F1686E056 +:103D8000F801AFE0B2E001900D928A95E1F70E9450 +:103D9000891DFF24F3946DCFC8010E949F16F9CFAF +:103DA00051110AC08FE092E00E949F1686E0F50153 +:103DB00011928A95E9F7C0CF43130FC092130DC03B +:103DC000E1100BC0F8018583C8010E949F1686E0B0 +:103DD000F50111928A95E9F74CCFC8010E945E1156 +:103DE0008823D1F2EE20C1F280911402803238F2A1 +:103DF00020910F02309110023A8329831B82DD82C9 +:103E0000CC828E83CE010196B8CFE83CF105F8F65E +:103E1000FE2CEE2009F243131FC092131DC08091A7 +:103E2000140280FD10C0982F907F69F0F8018583FF +:103E3000903F31F0982F907F905F8F70892B858312 +:103E4000C8010E949F1686E0F801AFE0B2E0019041 +:103E50000D928A95E1F70DCFC8010E945E11811184 +:103E60008ECF80911402816080931402C8010E9459 +:103E70009F16FFCEEE2009F48FCFC8010E945E117D +:103E8000F82E882309F488CF86E0F801AFE0B2E08D +:103E900001900D928A95E1F780910F0290911002A6 +:103EA0000E9452110E94891DE4CE81E08E25FBCE36 +:103EB0001F93CF93DF93CDB7DEB767970FB6F89414 +:103EC000DEBF0FBECDBF4B8B5C8B6D8B7E8B8F8B24 +:103ED0006111109249021A8A198A85E0FE017396CF +:103EE000DE011D9601900D928A95E1F786E0FE01B4 +:103EF0003D96DE01179601900D928A95E1F7CE016D +:103F000007960E94DF1D882389F016E08091460203 +:103F100090911502891349C067960FB6F894DEBFD9 +:103F20000FBECDBFDF91CF911F91089586E0FE01B6 +:103F30003796DE01119601900D928A95E1F78A85F8 +:103F40009B85892B11F38F81988589238F3FE9F217 +:103F50002091150230E0C9010196877099274091A0 +:103F600046024817190671F40E9461131092150257 +:103F70001092460286E0EFE0F2E0DF011D928A95A2 +:103F8000E9F7C3CF96E0929FD001939FB00D112423 +:103F9000AA5EBD4FFE01319601900D929A95E1F710 +:103FA000809315020E940F0AB0CF819FC001112497 +:103FB0008A5E9D4F0E94DF1D882309F4ADCF80915A +:103FC000460290E0019687709927809346029ECF23 +:103FD000CF93DF93CDB7DEB728970FB6F894DEBF47 +:103FE0000FBECDBF85E0E9E9F3E0DE011196019057 +:103FF0000D928A95E1F78091C7029091C802A09135 +:10400000C9028E839F83A887288540917D025091A5 +:104010007E0260917F02709180023FB7F894809198 +:10402000A5039091A603A091A703B091A8033FBF59 +:10403000841B950BA60BB70B84369105A105B10522 +:1040400010F4222319F1809135019091360187599E +:104050009D4F4091340150E04930510510F048E047 +:1040600050E0BE016F5F7F4F0E94A22E85E090E07E +:104070000E94EA2C892BB1F40E94840560937D0292 +:1040800070937E0280937F02909380021092C90207 +:1040900081E028960FB6F894DEBF0FBECDBFDF914A +:1040A000CF91089580E0F5CFCF93DF9300D000D07B +:1040B000CDB7DEB74091650250916602609167020C +:1040C000709168022FB7F8948091A5039091A60390 +:1040D000A091A703B091A8032FBF841B950BA60B3B +:1040E000B70B84369105A105B10568F10E94A20FB6 +:1040F0006E5F7F4F8F4F9F4F69837A838B839C8343 +:1041000080912B0190912C0187599D4F40912A015C +:1041100050E04530510510F044E050E0BE016F5FC3 +:104120007F4F0E94A22E84E090E00E94EA2C892B0F +:1041300061F40E9484056093650270936602809327 +:1041400067029093680281E001C080E00F900F90B9 +:104150000F900F90DF91CF9108956F927F928F9281 +:104160009F92AF92BF92CF92DF92EF92FF920F9306 +:104170001F93CF93DF930F92CDB7DEB7862E5A01F0 +:104180006901682E880F7708C3010E94EA2C892BE9 +:1041900009F088C08AE0869DF001879DF00D11240A +:1041A000E050FF4F458150E04115510511F041E0CD +:1041B00050E08AE0869DF001879DF00D1124E050CB +:1041C000FF4F6681778167597D4FCE0101960E942E +:1041D000A22EF50140815181628173812FB7F8943D +:1041E0008091A5039091A603A091A703B091A80385 +:1041F0002FBF841B950BA60BB70B84369105A10529 +:10420000B10540F4B701C8010E94E2059981891700 +:1042100009F44FC0082C000C9908C4010E94EA2C34 +:10422000892B91F0B12C8B2D0F90DF91CF911F91A5 +:104230000F91FF90EF90DF90CF90BF90AF909F9045 +:104240008F907F906F9008958AE0889DF001899DFE +:10425000F00D1124E050FF4F458150E0E416F506C3 +:1042600008F4A7018AE0889DF001899DF00D1124D2 +:10427000E050FF4F6681778167597D4FC6010E94EC +:10428000A22EB701C8010E94E20599818913CACF05 +:104290000E948405F5016083718382839383BB242C +:1042A000B394C1CFB12CA701B801C6010E94A22EC0 +:1042B000BACFBB24B394F7CFCF92DF92EF92FF92A5 +:1042C0000F931F93CF93DF930F92CDB7DEB7EE24FA +:1042D000E394F12C00E712E09E012F5F3F4F41E68F +:1042E00052E063E082E00E94AD20D82E882341F1A5 +:1042F00000919502802F90E09C0127563D4F790157 +:104300001981F9018081181BC12E80E00EC0CA946A +:10431000F70180818F5F80838AEA002319F00130E2 +:1043200019F48BE40E94C60F8D2D1C1484F3912F79 +:1043300017FD90E0191B11110EC081110E94D309C5 +:104340008D2D0F90DF91CF911F910F91FF90EF90E6 +:10435000DF90CF9008951F5FF701808181508083A7 +:1043600089EA002319F0013019F48EE40E94C60F87 +:104370008D2DE1CFCF92DF92EF92FF920F931F939B +:10438000CF93DF9300D000D00F92CDB7DEB76B0193 +:1043900085E0E82EF12C0AE612E09E012F5F3F4FE8 +:1043A0004DE552E061E080E00E94AD20882349F0B5 +:1043B00095E0FE013196A8E5B2E001900D929A9544 +:1043C000E1F795E0E8E5F2E0D60101900D929A95CB +:1043D000E1F70F900F900F900F900F90DF91CF911A +:1043E0001F910F91FF90EF90DF90CF9008957F92F3 +:1043F0008F929F92AF92BF92CF92DF92EF92FF92F5 +:104400000F931F93CF93DF93CDB7DEB72F970FB6E0 +:10441000F894DEBF0FBECDBF8E010F5F1F4F8AE045 +:10442000D8011D928A95E9F782E9C82E81E0D82E3D +:10443000F12CE12CAA24A394B12C23EA822E21E0B2 +:10444000922EF60181916F018F3F09F443C0F894D9 +:10445000E82FE295EF70F0E021A18F70A50102C076 +:10446000440F551F8A95E2F7CA01922F982B91A30A +:1044700092A18095892382A30E94EF0700C0ECE9F6 +:10448000F1E0712C31E021912F3F09F47AC0A22F85 +:10449000A295AF70B0E090968C9190E02F7002C022 +:1044A000959587952A95E2F780FD6BC0832F782A32 +:1044B000330F8E169F0639F7F601319780818F3FB3 +:1044C00011F00E94F10750EA5A95F1F7F801EE0D4C +:1044D000FF1D70828FEFE81AF80A95E0E916F104E3 +:1044E00009F0AFCF4AE050E0B80188E892E00E94BE +:1044F000952E7C01892B41F08AE0F801A8E8B2E012 +:1045000001900D928A95E1F710919302E114F10464 +:10451000D1F181E080934F020E94900590934E026A +:1045200080934D0280914D0290914E020E9475053C +:10453000059778F0A8E8B2E0E12FF0E0E655FD4FEE +:104540008DE892E02D9121938A179B07D9F710925D +:104550004F0281E090E0EF28D1F02F960FB6F8944B +:10456000DEBF0FBECDBFDF91CF911F910F91FF90A6 +:10457000EF90DF90CF90BF90AF909F908F907F9003 +:10458000089580E094CF80914F028111CBCF0E949B +:104590006F0FD82EE0919302DE011B967D018823D8 +:1045A00009F473C085E01D928A95E9F70E2F10E09B +:1045B00006551D4F809181028A30A0F54AEB51E2E9 +:1045C000B701C8010E942B0F8823D9F14CE551E2B5 +:1045D000B701C8010E942B0F882399F144E550E2EE +:1045E000B701C8010E942B0F882359F148EE5FE103 +:1045F000B701C8010E942B0F882319F11092810284 +:104600008091920290E045E050E0B70186559D4FC1 +:104610000E94952E21E020935602892B49F5D12C3A +:104620008D2D9BCF80915002909151020E94750573 +:10463000843F914018F680915602811112C080E0AB +:104640008CCF809181028F3F29F08F5F8093810210 +:104650008A30B0F20E9490059093510280935002EC +:10466000EACF85E0F70111928A95E9F71092560298 +:10467000A0919202B0E0A655BD4F85E0FE013B96A9 +:1046800001900D928A95E1F7CBCFF0E0E655FD4F12 +:10469000F89485E0AAE6B2E001900D928A95E1F7E0 +:1046A00065E070E08AE692E00E94E205809369028C +:1046B0000E94EF07F894E0919C02F0E0E756FD4F6E +:1046C00080818B878093700261E070E0C7010E9457 +:1046D000E20580936F020E94EF07F894C090710288 +:1046E000D0907202E0907302F090740280915202B6 +:1046F00090915302A0915402B0915502C816D90668 +:10470000EA06FB06D1F0C0925202D0925302E09228 +:104710005402F09255020E946F0F81110EC00E9448 +:104720008405C61AD70AE80AF90AC0928202D09212 +:104730008302E0928402F09285020E94EF07F894CF +:1047400080917C02882379F180FF0DC080917502F1 +:1047500080FF2CC09091990391609093990360E041 +:1047600086950E94E81280917C0281FF09C020E0BA +:104770004091780260917702809176020E94D9116F +:1047800080917C0282FF06C080917B02882389F0A1 +:104790000E94AC1180917C0283FF03C081E0809372 +:1047A000C40210927C020E94EF0749CF0E94140FAE +:1047B000DACF0E94FE05EECF90E080E00E944E2E00 +:1047C000893E9E4F11F40C94851180E008951F924C +:1047D0000F920FB60F9211242F933F934F935F9335 +:1047E0006F937F938F939F93AF93BF93CF93DF93F9 +:1047F000EF93FF93D091E900DF708091EC00C82F18 +:10480000C17080FDC0E81092E9008091F000877FC0 +:104810008093F00078940E946C131092E9008091CC +:10482000F00088608093F000CD2BCF70C093E9003A +:10483000FF91EF91DF91CF91BF91AF919F918F91B8 +:104840007F916F915F914F913F912F910F900FBE8C +:104850000F901F9018951F920F920FB60F92112470 +:104860002F933F934F935F936F937F938F939F9378 +:10487000AF93BF93EF93FF938091E10082FF09C054 +:104880008091E20082FF05C08091E1008B7F8093E0 +:10489000E1008091DA0080FF24C08091D80080FF81 +:1048A00020C08091DA008E7F8093DA008091D90059 +:1048B00080FF9DC080E189BD82E189BD09B400FE11 +:1048C000FDCF81E08093B9038091AC03811109C0D1 +:1048D0000E94D6030E94A1048091E200846080932C +:1048E000E2008091E10080FF17C08091E20080FF2C +:1048F00013C08091E2008E7F8093E2008091E200FD +:1049000080618093E2008091D80080628093D8001B +:1049100019BC85E08093B9038091E10084FF2BC02E +:104920008091E20084FF27C080E189BD82E189BDDA +:1049300089B5982F917080FFFBCF8091D8008F7D33 +:104940008093D8008091E1008F7E8093E100809178 +:10495000E2008F7E8093E2008091E200816080938C +:10496000E2008091BA03882309F447C084E0809371 +:10497000B9038091B9038091E10083FF27C0809142 +:10498000E20083FF23C08091E100877F8093E100F4 +:1049900082E08093B9031092BA038091E1008E7F88 +:1049A0008093E1008091E2008E7F8093E20080910D +:1049B000E20080618093E20042E060E080E00E94DB +:1049C0006F048091F00088608093F000FF91EF9178 +:1049D000BF91AF919F918F917F916F915F914F9117 +:1049E0003F912F910F900FBE0F901F90189519BCFB +:1049F0001092B9031092AC0374CF8091E30087FD4D +:104A000093E09093B903B5CF78941F921FB61F928D +:104A100011248F939F93AF93BF938091A50390919F +:104A2000A603A091A703B091A8030196A11DB11DF3 +:104A30008093A5039093A603A093A703B093A80324 +:104A4000BF91AF919F918F911F901FBE1F9018959E +:104A50001F921FB61F9211248F939F93AF93BF9302 +:104A60008091A403811113C08091A5039091A603A6 +:104A7000A091A703B091A8034196A11DB11D8093F9 +:104A8000A5039093A603A093A703B093A803BF9197 +:104A9000AF919F918F911F901FBE1F901895CDB71A +:104AA000DEB7AA970FB6F894DEBF0FBECDBF84B7AE +:104AB000877F84BF0FB6F894A895809160008861C5 +:104AC00080936000109260000FBE80E890E00FB607 +:104AD000F89480936100909361000FBE85B7806861 +:104AE00085BF85B7806885BF8DEE97E09093E9011B +:104AF0008093E8010E94D6030E94A1048091E20005 +:104B000084608093E20078948091B9038823A1F0B7 +:104B10001091E9001F709091EC00892F817090FD39 +:104B200080E8182B1092E9008091E80083FD0E9434 +:104B30006C131F701093E90082E084BD93E095BD73 +:104B40009AEF97BD80936E001092820210928302BA +:104B500010928402109285020E948511811102C078 +:104B60000E94C4100E946F0F80933C0180913C0111 +:104B7000882309F46DC01092590182E280935A0192 +:104B80000E946F0F81110E94DD2B80913C0180916A +:104B90003C0195E0811190E09093930285E0891BA0 +:104BA0008093920202E911E067E9E62E61E0F62EB9 +:104BB000D8018D918D018F3F11F00E94F107E01611 +:104BC000F106B1F70CE911E053EAE52E51E0F52EBC +:104BD000F80181918F018F3F11F00E94F107E016DB +:104BE000F106B1F78AE0EAEAF2E0DF01282F1D9230 +:104BF0002A95E9F7E8E8F2E0DF011D928A95E9F7E6 +:104C00000E94DC23811102C00E94351682E090E0F0 +:104C10000E94402E80939F020E949E1190938702D3 +:104C2000809386020E94F721EFE3FCE93197F1F7C8 +:104C300000C000000E94F7218091AA0280FF0CC0F2 +:104C40006FEF7FEF90E080E00E94722E0E9464057B +:104C500082E28093590192CF83E090E00E94402E3F +:104C60000E94CC0A0E946F0F811102C00E94E02BAB +:104C700080919402811138C00E94DC23811104C00C +:104C80000E9435160E94491388E090E00E94482E49 +:104C90006093990370939A0380939B0390939C0372 +:104CA0008091C90283608093C9026E7F71F40E9473 +:104CB000491388E090E00E94482E60939903709316 +:104CC0009A0380939B0390939C030E9405060E9485 +:104CD000FE058091990380FF04C060E086950E94E4 +:104CE000E81281E08093940280913C01811106C01A +:104CF00084E980934A0182E98093490120914A0125 +:104D0000A22FA295AF70B0E091963C9191972F7031 +:104D100081E090E0BC01022E01C0660F0A94EAF720 +:104D2000462F4095432391964C93919792963C91B0 +:104D30009297362B92963C93929740914901E42F9B +:104D4000E295EF70F0E031A14F70042E01C0880FA2 +:104D50000A94EAF7982F9095932391A392A1892B17 +:104D600082A390968C9190E002C0959587952A95A4 +:104D7000E2F7817020A130E002C0359527954A9571 +:104D8000E2F792E020FF90E0892B80939D029091C2 +:104D90003C0181E0982790939C02891B80939502A7 +:104DA0008DE391E09093A1038093A00328E1622E0C +:104DB000712C30E4532E44EBA42E42E0B42E8091AB +:104DC000B90300E112E1853009F448C20E94F721DD +:104DD00081110E9484059AEAC92E92E0D92EE0EA58 +:104DE000F2E0D60110E000E0802EED9081918E156A +:104DF00009F443C28E25912CFF24F394982F9F2110 +:104E000009F436C20E946F0F882399F099A28AA2F2 +:104E1000EF2081E009F480E08BA30E94900581607F +:104E2000782F9DA38CA349A15AA16BA18DA10E94AB +:104E3000581FF801E056FD4F8081F826F0828091DE +:104E4000C802882309F464C08091C702E0919903E5 +:104E5000E695E81BE093C302823009F025C2F0E03A +:104E6000E95BFD4FE4910E2F10E080E0E82E8FE02B +:104E7000F82E8091C402882361F01092C4020E942F +:104E8000BD0F9093C2028093C1021092C60210928D +:104E9000C5020E94BD0FE091C102F091C2029C01C7 +:104EA0002E1B3F0B2F3F3F4798F52091980222235E +:104EB000B1F0109298022091960230919702821BD5 +:104EC000930B8F3F9F4758F4205D3A4830939702E9 +:104ED000209396028091C90288608093C9028090D5 +:104EE000C5029090C602E00FF11FF093C202E0935A +:104EF000C10281EC92E0F70109958091C502909181 +:104F0000C602892B29F4892819F081E08093980240 +:104F100080919D02E82FEE0FEE0F90914A01A92F8C +:104F2000A295AF70B0E090962C9130E09F7002C0D7 +:104F3000359527959A95E2F721703327909149018D +:104F4000A92FA295AF70B0E090964C9150E09F7061 +:104F500002C0559547959A95E2F7CA018170992745 +:104F600040FF02C082E090E0822B8E2B80939D0256 +:104F700010919C028F70E82FF0E0ED55FE4F80817C +:104F800090919B02890F80939B0220E0833084F0F4 +:104F9000E12FF0E0E756FD4F80818F5F80838AEA42 +:104FA000112319F0113019F48BE40E94C60F21E08F +:104FB00080919B028E3F84F4E12FF0E0E756FD4F95 +:104FC00080818150808389EA112319F0113019F40E +:104FD0008EE40E94C60F21E080919B02082E000CF7 +:104FE000990B63E070E00E94C02D80939B02211119 +:104FF0000E94D30986E0EBEBF2E0DE01119601900E +:105000000D928A95E1F7F090BD02E090BE021091FA +:10501000BF020091C0021092BD021092BE02109217 +:10502000BF021092C0028F2D8E2909F448C08091D2 +:10503000B9029091BA020E9475059C019091B50247 +:10504000992309F454C323333105C8F19F3F19F064 +:105050009F5F9093B502FF2059F00E9473079FEF66 +:105060001F140CF491E0899F802D11248093BD02C0 +:10507000EE2059F00E9473079FEF1E140CF491E08C +:10508000899F802D11248093BE023091BD0233236D +:10509000B1F02091BE02222391F045EB3403C00110 +:1050A0001124992309F45AC19093BD0245EB2403BE +:1050B00090011124332309F455C13093BE02812F8E +:1050C000802B09F448C08091B7029091B8020E94E9 +:1050D00075059C019091B402992309F403C3253608 +:1050E0003105C8F19F3F19F09F5F9093B4021123DF +:1050F00059F00E9451079FEF11160CF491E0899F1F +:10510000802D11248093BF02002359F00E94510783 +:105110009FEF10160CF491E0899F802D112480934D +:10512000C0023091BF023323B1F02091C00222238C +:1051300091F045EB3403C0011124992309F416C101 +:105140009093BF0245EB240390011124332309F40B +:1051500011C13093C0028091BD029091BE02892B93 +:105160009091BF02892B9091C002892B11F00E946F +:10517000B10686E0FE013196ABEBB2E001900D92F4 +:105180008A95E1F70E94920F90919E02891721F073 +:105190000E94920F80939E028091B903843009F09F +:1051A0000ECE83E08093E9008091E80082FF07CE75 +:1051B0008091E80090E085FF0CC00E94F50330E28A +:1051C000E32EF12C8E010F5F1F4F882309F4E0C0FE +:1051D00091E08091E8008B778093E800992309F4AF +:1051E000EECDE981E150E33108F034C1F0E0EF5257 +:1051F000F14D0C94F62D8091B903843009F1109291 +:10520000A4030FB6F894A895609260000FBE509268 +:10521000600083B7817F846083BF83B7816083BF71 +:105220007894889583B78E7F83BF0FB6F894A8953E +:1052300080916000886180936000109260000FBED2 +:105240008091B803882351F00E94F721EAEAF2E046 +:105250008191811128C2AE16BF06D1F78091B903A2 +:10526000853009F4C8CF0E9461130E94920FAECD21 +:105270009394FF0C27E09212C1CD0F5F1F4F0A30AD +:10528000110509F0B1CD8FEF8EA38FA318A60E9450 +:1052900090058160782F9AA789A74EA15FA168A584 +:1052A0008AA50E94581FCBCD863059F4F0E0EC5B04 +:1052B000FD4FE4910E2F10E0B0EFEB2EBEE0FB2E81 +:1052C000D8CD893061F4E695F0E0EF5BFD4FE491D5 +:1052D0000E2F10E0ABE3EA2EAEE0FA2ECACD8F30EF +:1052E00061F4E695F0E0E25CFD4FE4910E2F10E0F2 +:1052F000FFE9EF2EFDE0FF2EBCCD853159F4F0E043 +:10530000E55CFD4FE4910E2F10E0E5E1EE2EEDE0BF +:10531000FE2EAFCD08E210E052E8E52E5CE0F52E5F +:10532000883109F4A6CD833249F4E9E3F2E005912E +:10533000149174E9E72E7EE0F72E9BCD04EF11E087 +:1053400062E4E62E6CE0F62E843209F492CD00ED94 +:1053500017E04DEFE42E45E0F42E8BCD81E08093F5 +:10536000BD02A4CE81E08093BE02A9CE81E08093ED +:10537000BF02E8CE81E08093C002EDCE8091F100C3 +:10538000D8018D938D01B1E0EB1AF10809F420CF1B +:105390008091E80085FDF2CF8091E8008B778093C3 +:1053A000E8000E94F503882399F312CF1A8289E05E +:1053B0008B8311C08A81823009F48BC1833091F1D3 +:1053C000813009F047C00E9484050E94FC2D6B8348 +:1053D0007C838D839E838091B903843009F0EFCC68 +:1053E0001091E9001F709091EC00892F817090FD61 +:1053F00080E8182B82E08093E9008091E80080FF2C +:105400000DC050E040E060E270E0CE0101960E94E5 +:1054100026048091E8008E778093E8001F70109337 +:10542000E900CDCCFE013396D6018D916D018193BB +:10543000AA16BB06C9F7CFCF8A81823059F46B8197 +:105440007C818D819E810E94FC2D86E290E00E94ED +:10545000542EC1CF8FEF8983BECF4C816B818A815F +:105460000E94F0109827892798279E838D83B3CFB9 +:10547000ED80FE80FE24EF24FE248A810B81BEE0B5 +:105480000B9F80011124ECE88E9F000D111D11244B +:105490008C8190E0880F991F080F191F6F2DC8018C +:1054A00087960E94542E6E2DC8018896D0CF0E94F8 +:1054B000571091CF8A818138C1F060F4803809F0AB +:1054C0008ACF20E04B8160919B0380919A030E94D8 +:1054D000D91181CF8238E9F0833809F07CCF20E000 +:1054E00040919C036C818B81F2CF60E08B810E94A4 +:1054F000E8128B81811103C00E94140F6CCF809140 +:10550000990381608093990360E086950E94E81278 +:1055100062CF8B8180939D035ECF8A81813899F021 +:1055200030F4803809F057CF80919C0341CF823806 +:1055300091F0833809F04FCF80919A038B8380914B +:105540009B038C8348CF8091990380FF02C086958E +:105550002FCF80E02DCF80919D032ACF60919903BA +:1055600070919A0380919B0390919C030E94C711B4 +:1055700032CF80E18A832FCF81E08A8389EA18CFF6 +:105580000A811B81102701271027CE0101966C018B +:10559000EC80DC01AE0DB11D7D01C801895A9D4F23 +:1055A000EC14FD0409F417CF093AB1E01B0750F4DD +:1055B0000E94402EF60184830F5F1F4FBFEFCB1A6E +:1055C000DB0AEBCFD60114961C92F6CF0A811B8121 +:1055D000102701271027FE0131966F01EC80E00EA5 +:1055E000F12EF11CC801895A9D4F0E151F0509F4B3 +:1055F000F2CE093AF1E01F0728F4D60114966C9117 +:105600000E94542EBFEFCB1ADB0A0F5F1F4FEACF69 +:105610000E944710E0CE84E0ADCF0A811B811027A5 +:1056200001271027FE0131966F01EC80CF018E0D0E +:10563000911D7C01C8018796EC14FD0409F4CBCEC2 +:105640000033A2E01A0750F40E94402EF601848332 +:105650000F5F1F4FBFEFCB1ADB0AECCFD6011496BA +:105660001C92F6CF0A811B81102701271027FE010B +:1056700031966F01EC80E00EF12EF11CC801879687 +:10568000E016F10609F4A7CE0033F2E01F0728F474 +:10569000D60114966C910E94542EBFEFCB1ADB0AF0 +:1056A0000F5F1F4FEBCF09BD19BD09B400FEFDCF41 +:1056B0008091D8008F7D8093D8008091E000826037 +:1056C0008093E0008091E00081FDFCCF0E94611397 +:1056D000C5CD86E290E00E94402E1B821C821D8276 +:1056E0008E8379CE2D32314008F0FECC34CD2D3270 +:1056F000314008F0ADCCE3CC8EE14B9B02C0815031 +:10570000E1F74B9BFECF08955B9880E28A95F1F715 +:105710005B9A0895FC013BE03A95F1F798E020E0B0 +:1057200080E031E040E14A95F1F7880F4B9B02C0E1 +:105730008160232742E04A95F1F7000040E14A9555 +:10574000F1F7915079F790E19A95F1F799B132E03C +:105750003A95F1F7000040E14A95F1F793FB99275C +:1057600090F992272081920F90830895EF92FF92F3 +:105770000F931F93CF93DF930F92CDB7DEB71982AC +:105780008C017C01E60EF11C0E151F0561F481E011 +:105790009981911180E00F90DF91CF911F910F912E +:1057A000FF90EF9008950E947C2BCE0101960E94FD +:1057B0008A2BF80181938F01E7CF539A5B9A089562 +:1057C00053985B9AEB9AE9E6F0E080818F738083CF +:1057D00008956150770B91E001C0990F6A95EAF73F +:1057E00020E031E0911108C0222391F05B9A80E221 +:1057F0008A95F1F75B980895492F482339F05B9A11 +:10580000232740E24A95F1F79695ECCF5B98F9CFC4 +:105810005B98EDCFFF920F931F93CF93DF93EC0133 +:105820008C01060F111DC017D10731F4DF91CF9104 +:105830001F910F91FF900895F9900E94842B68E0CA +:105840008F2D0E94E92BEFCF1F920F920FB60F9270 +:105850001124EF92FF920F931F932F933F934F9337 +:105860005F936F937F938F939F93AF93BF93EF93C8 +:10587000FF93CF93DF930F92CDB7DEB719820E94CB +:105880007C2BCE0101960E948A2BA82FA695A69567 +:10589000A695282F229525709A2F9570290F922F63 +:1058A000937026952695920F982797708981982B4B +:1058B00009F075C0A73008F072C080E18A95F1F751 +:1058C0005B9A539AB2E0BA95F1F700C05B98EA2E62 +:1058D000F12CEAE0AE9FD0011124A050BF4F1896E2 +:1058E000ED91FC9119973097B1F060919001709112 +:1058F000910116962D913C911797260F371F1396FD +:105900008D919C911497680F791F15964C9115975E +:1059100012968C9109958AE08E9DF0018F9DF00D75 +:105920001124E050FF4F6581662351F020919001D2 +:105930003091910186819781820F931F0E940A2CDA +:105940000E94842BF0E1FA95F1F75B9853985B9AEB +:1059500080E18A95F1F78AE08E9D80018F9D100D80 +:10596000112400501F4FD80112966C911297662394 +:1059700071F1209190013091910113968D919C913C +:10598000820F931F0E94B62BD801ED91FC918823C2 +:1059900011F088E001C082E080830E947C2B0F9090 +:1059A000DF91CF91FF91EF91BF91AF919F918F9137 +:1059B0007F916F915F914F913F912F911F910F9127 +:1059C000FF90EF900F900FBE0F901F901895ED91E4 +:1059D000FC91DFCF0F931F93CF93DF93EC010797D9 +:1059E0000CF0A9C08AE08C9FF0018D9FF00D11246E +:1059F000E050FF4F80819181892B09F49CC0F8947D +:105A0000539A5B9885E08A95F1F700008C2F869574 +:105A100085709C2F9570890F982F93708695869529 +:105A2000890F8E0193E0000F111F9A95E1F7082B63 +:105A30000E94842B00C068E0802F0E94E92BA0E127 +:105A4000AA95F1F753985B9A4B9B27C087E090E0AB +:105A50004B9925C08AE08C9F80018D9F100D1124E9 +:105A600000501F4FF80165816623A1F1209190013C +:105A70003091910186819781820F931F0E94B62BEE +:105A8000811128C0539A5B9AD801ED91FC9182E074 +:105A90008083789482E090E016C000C0D5CF019753 +:105AA000B9F4539A5B9A8AE08C9FF0018D9FF00DB8 +:105AB0001124E050FF4F0190F081E02D81E08083C0 +:105AC000789481E090E0DF91CF911F910F9108953C +:105AD00000C0BECF0E947C2BB0E2BA95F1F75B9874 +:105AE000539AE0E1EA95F1F78AE08C9FF0018D9FEF +:105AF000F00D1124E050FF4F6281662351F0209198 +:105B000090013091910183819481820F931F0E94B3 +:105B10000A2C0E94842B8AE08C9FF0018D9FF00D4F +:105B20001124E050FF4F0190F081E02D1082789415 +:105B300090E080E0C8CF84E090E0C5CF87FB082EDE +:105B4000062687FD819567FD61950E94342E0EF42F +:105B5000919507FC81950895AA1BBB1B51E107C0D5 +:105B6000AA1FBB1FA617B70710F0A61BB70B881FED +:105B7000991F5A95A9F780959095BC01CD0108957C +:105B800097FB072E16F4009407D077FD09D00E94EA +:105B9000AC2D07FC05D03EF4909581959F4F08955C +:105BA000709561957F4F0895A1E21A2EAA1BBB1B29 +:105BB000FD010DC0AA1FBB1FEE1FFF1FA217B307D9 +:105BC000E407F50720F0A21BB30BE40BF50B661FEF +:105BD000771F881F991F1A9469F7609570958095B3 +:105BE00090959B01AC01BD01CF010895EE0FFF1F01 +:105BF0000590F491E02D0994692796276927782765 +:105C00008727782708950E940B2E332312F48A1BCE +:105C10009B0B0C941C2EA29FB001B39FC001A39FAD +:105C2000700D811D1124911DB29F700D811D1124D5 +:105C3000911D08950E940B2EB7FF0895821B930BB0 +:105C400008950E940B2EA59F900DB49F900DA49FC8 +:105C5000800D911D11240895B7FF0C94212E0E94F0 +:105C6000212E821B930B0895991B79E004C0991F84 +:105C7000961708F0961B881F7A95C9F780950895A6 +:105C8000F999FECF92BD81BDF89A992780B5089504 +:105C9000A6E1B0E044E050E00C947A2EA8E1B0E038 +:105CA00042E050E00C947A2E262FF999FECF92BD57 +:105CB00081BDF89A019700B4021639F01FBA20BDD1 +:105CC0000FB6F894FA9AF99A0FBE08950396272F03 +:105CD0000E94552E0E94542E252F0E94552E242FAF +:105CE0000C94552E0196272F0E94552E0C94542E5D +:105CF000DC01CB01FC01F999FECF06C0F2BDE1BD8C +:105D0000F89A319600B40D9241505040B8F708957A +:105D1000FC014150504030F001900616D1F7319708 +:105D2000CF010895882799270895FB01DC0104C05D +:105D30008D910190801921F441505040C8F7881B83 +:105D4000990B0895FB01DC0102C001900D924150B6 +:105D50005040D8F70895F894FFCF70117011791161 +:105D600079117B11791179117911701170118011EC +:105D700079117911801152147A141D167A141D1696 +:105D8000AD14CE141D16CC15D915EE19EE19291A1D +:105D9000291AD71AF11A591A591AFC1A691B7A1BAF +:105DA0007A1BD629DA291C2A2D2A382A572A5A2A58 +:105DB0008D2AAE2A2A2A2A2AB92ABC2AC02AE62AE9 +:085DC000082B0B2B0D2B322BDD +:105DC800F2010000000100000000F20100000005DF +:105DD80001000000F2010000000106000000F201CD +:105DE8000000000107000000F201040800000000A4 +:105DF8000000F201080C000000000000016105CA63 +:105E08000BA90BA50BA10B6005949201191A1B1C79 +:105E18001D1E1F202122010201004400444401816B +:105E28008283E200E900EA00B500B600B700CD00C1 +:105E38008301CC008A0192019401210223022402E9 +:105E48002502260227022A02B300B4006F00700060 +:105E580069026697C634F40000000000F5F6F731D1 +:105E680033323600FF0100010000FFFF000001008F +:105E780001FF0000010202020206060609090909DB +:105E880009090F0F0F0F0F0F1515151819191919E3 +:105E9800191919191919232440227B49012701AC22 +:085EA800009206AB06CB0600D8 +:00000001FF diff --git a/keyboards/aleblazer/zodiark/keymaps/via/rules.mk b/keyboards/aleblazer/zodiark/keymaps/via/rules.mk index 76d3c49ffd61..1e5b99807cb7 100644 --- a/keyboards/aleblazer/zodiark/keymaps/via/rules.mk +++ b/keyboards/aleblazer/zodiark/keymaps/via/rules.mk @@ -1,2 +1 @@ -RGBLIGHT_ENABLE = yes VIA_ENABLE = yes diff --git a/keyboards/aleblazer/zodiark/rules.mk b/keyboards/aleblazer/zodiark/rules.mk index b91bc280ec75..d03fef8fcc96 100644 --- a/keyboards/aleblazer/zodiark/rules.mk +++ b/keyboards/aleblazer/zodiark/rules.mk @@ -17,11 +17,12 @@ 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 BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -OLED_ENABLE = yes +OLED_ENABLE = no OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes LTO_ENABLE = yes +RGB_MATRIX_ENABLE = no RGB_MATRIX_DRIVER = WS2812 From 65569faa83f3f7477c692622dd3f84445ef58126 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Tue, 30 Nov 2021 21:13:54 -0500 Subject: [PATCH 75/94] Added OLED ifdef --- keyboards/aleblazer/zodiark/keymaps/via/keymap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/aleblazer/zodiark/keymaps/via/keymap.c b/keyboards/aleblazer/zodiark/keymaps/via/keymap.c index 1159afb43483..f9680ecd0273 100644 --- a/keyboards/aleblazer/zodiark/keymaps/via/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/via/keymap.c @@ -12,7 +12,9 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include QMK_KEYBOARD_H -#include "oled.c" +#ifdef OLED_ENABLE + #include "oled.c" +#endif #include "encoder.c" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { From df4df517f092c532ce5c72ca0a02ba499a1851d4 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 4 Dec 2021 11:56:59 -0500 Subject: [PATCH 76/94] Add acknowledgements and change NO_PIN. --- keyboards/solartempest/sofle/config.h | 4 ++-- keyboards/solartempest/sofle/readme.md | 7 +++++++ .../solartempest/sofle/sofle VIA layout trackball.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index b86f2d64ab00..924144423d9e 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -36,9 +36,9 @@ #define MATRIX_ROWS 10 #define MATRIX_COLS 7 #define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. +#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, NO_PIN } //NO_PIN is used for the encoder key matrix in via. #define MATRIX_ROW_PINS_RIGHT { C6, D7, E6, B4, B5 } -#define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, C7 } //C7 is unused on the MCU. It is needed for the encoder key matrix in via. +#define MATRIX_COL_PINS_RIGHT { F6, F7, B1, B3, B2, B6, NO_PIN } //NO_PIN is used for the encoder key matrix in via. #define DIODE_DIRECTION COL2ROW #define DEBOUNCE 6 //Default is 5 diff --git a/keyboards/solartempest/sofle/readme.md b/keyboards/solartempest/sofle/readme.md index b76181de980a..a57c29a89231 100644 --- a/keyboards/solartempest/sofle/readme.md +++ b/keyboards/solartempest/sofle/readme.md @@ -55,6 +55,13 @@ Build guide and log is available here: [SofleKeyboard build log/guide](https://j - Double tap layers to stay on a layer instead of momentary push. - Symmetric modifiers (CMD/Super, Alt/Opt, Ctrl, Shift). +### Acknowledgements +- Thanks Drashna for the OLED timeout and extensible rotary encoder code. +- Thanks Dasky for helping me resolve prior trackball code issues. +- Thanks to Hellsingcoder for creating Luna and Jackasaur for optimizing the code for less space. This was the base code I used for Snakey. +- Bongocat code by foureight84, included for those who want to try it easily. +- Stock OLED code by Keyhive and + ## Using with VIA (Important! Please Read.) - After flashing, in VIA make sure to Import Keymap, which is "sofle VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will not auto-recognize the keyboard with this firmware because of the necessary customization. diff --git a/keyboards/solartempest/sofle/sofle VIA layout trackball.json b/keyboards/solartempest/sofle/sofle VIA layout trackball.json index c8e387509ab5..4a7d56d8e7dc 100644 --- a/keyboards/solartempest/sofle/sofle VIA layout trackball.json +++ b/keyboards/solartempest/sofle/sofle VIA layout trackball.json @@ -77,7 +77,7 @@ ], [ "KC_PSCR", - "KC_5", + "KC_4", "KC_1", "KC_2", "KC_3", From aec6fe6ee80d290960f0dfd7c85e290ee323061f Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 11 Dec 2021 18:39:58 -0500 Subject: [PATCH 77/94] Add option for no OLED on master. --- keyboards/solartempest/sofle/config.h | 11 +++++++---- .../sofle/keymaps/via/snakey_minimal.c | 17 ++++++++++++----- .../sofle/solartempest_sofle_via.hex | 12 ++++++------ 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 924144423d9e..36a729e4210c 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -86,12 +86,15 @@ #ifdef WPM_ENABLE #define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+106-268). #endif - //#define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). - //#define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). - //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). - //#define OLED_NO_SLAVE //Disable snakey keyboard pet slave OLED rendering (-160). //#define SNEAK_DISABLE //Disable snakey keyboard pet sneak animation to save space (-132). + //#define OLED_NO_SLAVE //Disable snakey minimal keyboard pet slave OLED rendering (-160). + //#define OLED_NO_MASTER //Disable snakey minimal keyboard pet master OLED rendering and render status on the slave (+96). + #ifdef OLED_NO_MASTER + #define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). + #define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). + #endif + //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). #endif // Haptic feedback settings diff --git a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c index 99600c046eb1..01ffe67ea29f 100644 --- a/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c +++ b/keyboards/solartempest/sofle/keymaps/via/snakey_minimal.c @@ -44,7 +44,7 @@ bool showedJump = true; bool isBarking = false; - #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) static void render_logo(int LUNA_X, int LUNA_Y) { static const char PROGMEM luna_logo[] = { 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, @@ -174,7 +174,7 @@ // KEYBOARD PET END - #ifndef OLED_NO_SLAVE + #if !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) static void print_logo_narrow(void) { oled_set_cursor(0,4); oled_write("SOLAR", false); @@ -239,10 +239,17 @@ } else { oled_on(); } - print_status_narrow(); + #ifndef OLED_NO_MASTER + print_status_narrow(); + #endif } else { - #ifndef OLED_NO_SLAVE - print_logo_narrow(); + #ifdef OLED_NO_SLAVE //do not render slave + #else + #if !defined(OLED_NO_MASTER) //render as normal + print_logo_narrow(); + #else //render status on slave + print_status_narrow(); + #endif #endif } return false; diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 3e4f7bc4f42c..9831184d2602 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -513,8 +513,8 @@ :10200000E81683E0F80679F6DF91CF911F910F91E2 :10201000FF90EF90DF90CF90BF90AF909F908F9008 :102020007F906F900895CF93C82F6FEF811161E279 -:1020300083E290E00E94BC346FEFC11161E184E261 -:1020400090E00E94BC346FEFC11160E385E290E044 +:1020300083E290E00E94BC346FEFC11162E184E260 +:1020400090E00E94BC346FEFC11161E185E290E045 :10205000CF910C94BC3480E00E94131060E086E2C3 :1020600090E00E94BC340E94BE0F0E94AE0F81E03F :102070000C9413100F931F93CF93DF93C42FD0E0D2 @@ -537,8 +537,8 @@ :102180000895843FE1F380E00895883EC0F3813FE5 :10219000D1F7F5CF822F869586958695089583E2AF :1021A00090E00E94A834813289F484E290E00E9499 -:1021B000A834813159F485E290E00E94A83491E07E -:1021C000803309F090E0892F8170089580E0FCCF82 +:1021B000A834823159F485E290E00E94A83491E07D +:1021C000813109F090E0892F8170089580E0FCCF83 :1021D0001F93CF93DF93CDB7DEB768970FB6F89410 :1021E000DEBF0FBECDBF40913A0350913B036091DB :1021F0003C0370913D0380913E0390913F030E9408 @@ -1743,10 +1743,10 @@ :106CDE0005010000003A0200000001060000003A23 :106CEE000200000001070000003A02040800000044 :106CFE000000003A02080C0000000000003A0201F9 -:106D0E001400000000000036323331F7F667669744 +:106D0E001400000000000036323331F7F6FF6697AC :106D1E00C634350000000000012F085E0D3D0D3910 :106D2E000D350D2E08F4F5010021007F2200030120 -:106D3E008000004A004A4A01F6F731333236674C7A +:106D3E008000004A004A4A01F6F731333236FF4CE2 :106D4E00415945520042617365200047616D6520CF :106D5E00005261697365004C6F776572004C4F434A :106D6E004B0043617073004E756D005363726C007F From 217337e1f1ed5778cac2f3a26c2a54c13dc32215 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 12 Dec 2021 00:38:44 -0500 Subject: [PATCH 78/94] Correct splid oled sync when there is only one --- keyboards/solartempest/sofle/config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 36a729e4210c..ffa812486e7d 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -93,6 +93,7 @@ #ifdef OLED_NO_MASTER #define SPLIT_LAYER_STATE_ENABLE //Keep on master to save space (+142). #define SPLIT_LED_STATE_ENABLE //Keep on master to save space (+112). + #undef SPLIT_OLED_ENABLE //Do not sync OLED state with one OLED only (+100). #endif //#define SPLIT_MODS_ENABLE //Keep on master to save space (+138). #endif From c982e62e24408414453125f6bca52a83cfe119ff Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 12 Dec 2021 23:29:26 -0500 Subject: [PATCH 79/94] Added destiny 2 skate macro and timer --- keyboards/solartempest/sofle/config.h | 2 + .../solartempest/sofle/keymaps/via/keymap.c | 49 +- .../solartempest/sofle/sofle VIA keymap.json | 5 + .../sofle/sofle VIA layout trackball.json | 2 +- .../sofle/solartempest_sofle_via.hex | 2733 +++++++++-------- 5 files changed, 1429 insertions(+), 1362 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index ffa812486e7d..5bc9ee2ad549 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -58,6 +58,8 @@ #define COMBO_TERM 400 //Default combo time is 200ms. This is the time delay allowed between deleting each whole word with shift-backspace. #endif +#define D2SKATE_MACRO_ENABLE //Enable Destiny 2 hunter skate macro (+224) + // Disabled to save space #define NO_ACTION_MACRO #define NO_ACTION_FUNCTION diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index de017b357bad..d617ad711f08 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -55,6 +55,11 @@ bool lshift_held = false; // LShift Backspace Delete whole Word Code bool rshift_held = false; // RShift Backspace Delete whole Word Code static uint16_t held_shift = 0; +#ifdef D2SKATE_MACRO_ENABLE + uint16_t D2SKATE_TIMER = 0; + bool D2SKATE_skated = false; //Has skated + bool D2SKATE_reset = true; //Has skated +#endif #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. @@ -64,7 +69,8 @@ static uint16_t held_shift = 0; NML, //Move window to monitor on left SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) PM_SCROLL, //Toggle trackball scrolling mode - PM_PRECISION //Toggle trackball precision mode + PM_PRECISION, //Toggle trackball precision mode + D2SKATE //Destiny 2 hunter sword skate }; #else enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. @@ -74,7 +80,8 @@ static uint16_t held_shift = 0; NML, //Move window to monitor on left SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) PM_SCROLL, //Toggle trackball scrolling mode - PM_PRECISION //Toggle trackball precision mode + PM_PRECISION, //Toggle trackball precision mode + D2SKATE //Destiny 2 hunter sword skate }; #endif @@ -195,6 +202,17 @@ void matrix_scan_user(void) { } } #endif + #ifdef D2SKATE_MACRO_ENABLE + if (D2SKATE_reset == false) { //Check if Destiny 2 skate timer is activated + if (timer_elapsed(D2SKATE_TIMER) > 4000) { + rgblight_sethsv_noeeprom(252,255,80); //Set regular game layer colour + D2SKATE_reset = true; + #ifdef HAPTIC_ENABLE + DRV_pulse(12); //trp_click + #endif + } + } + #endif #ifdef ENCODER_ENABLE encoder_action_unregister(); #endif @@ -306,6 +324,33 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return false; + #ifdef D2SKATE_MACRO_ENABLE + case D2SKATE: + if (record->event.pressed) { + register_code(KC_0); + wait_ms(34); + register_code(KC_SPC); + unregister_code(KC_0); + register_code(KC_X); + wait_ms(18); + unregister_code(KC_SPC); + unregister_code(KC_X); + rgblight_sethsv_noeeprom(180,255,80); + D2SKATE_skated = true; + } + return false; + case KC_1: + case KC_2: + case KC_3: + if (record->event.pressed) { + if(D2SKATE_skated){ //Start the cooldown timer + D2SKATE_TIMER = timer_read(); + D2SKATE_skated = false; + D2SKATE_reset = false; + } + } + return true; + #endif #ifdef POINTING_DEVICE_ENABLE //Allow modes when trackball is enabled. case PM_SCROLL: diff --git a/keyboards/solartempest/sofle/sofle VIA keymap.json b/keyboards/solartempest/sofle/sofle VIA keymap.json index 3620b3b1e23e..99eb5259d441 100644 --- a/keyboards/solartempest/sofle/sofle VIA keymap.json +++ b/keyboards/solartempest/sofle/sofle VIA keymap.json @@ -39,6 +39,11 @@ "name": "Trackball Precision", "title": "Pimoroni Trackball Precision Mode", "shortName": "PM_PRECISION" + }, + { + "name": "D2 Hunter Skate", + "title": "Destiny 2 Hunter Sword Skate", + "shortName": "D2SKATE" } ], "layouts": diff --git a/keyboards/solartempest/sofle/sofle VIA layout trackball.json b/keyboards/solartempest/sofle/sofle VIA layout trackball.json index 4a7d56d8e7dc..e4b03f1b599b 100644 --- a/keyboards/solartempest/sofle/sofle VIA layout trackball.json +++ b/keyboards/solartempest/sofle/sofle VIA layout trackball.json @@ -106,8 +106,8 @@ "KC_TRNS", "KC_TRNS", "KC_LALT", - "KC_B", "KC_TRNS", + "USER07", "KC_F22", "KC_SPC", "KC_NO", diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 9831184d2602..d1460312b946 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C9418060C945F060C945F060C94CE3288 +:100000000C9418060C945F060C945F060C943E3317 :100010000C945F060C945F060C945F060C945F06CC -:100020000C945F060C945F060C9494230C9450235C -:100030000C9487280C945F060C945F060C945F0662 +:100020000C945F060C945F060C94781A0C94341AA6 +:100030000C94F9280C945F060C945F060C945F06F0 :100040000C945F060C945F060C945F060C945F069C -:100050000C945F060C946D240C945F060C945F0660 +:100050000C945F060C94511B0C945F060C945F0685 :100060000C945F060C945F060C945F060C945F067C :100070000C945F060C945F060C945F060C945F066C :100080000C945F060C945F060C945F060C945F065C @@ -194,30 +194,30 @@ :100C10000066006C006500000010034B0065007961 :100C20000068006900760065000000040309040004 :100C300011241FBECFEFDAE0DEBFCDBF04B603FE46 -:100C400027C080916D0690916E06A0916F06B091BD -:100C500070068730904BA740B04BD1F410926D06D0 -:100C600010926E0610926F061092700614BE84B732 +:100C400027C08091720690917306A0917406B091AE +:100C500075068730904BA740B04BD1F410927206C6 +:100C600010927306109274061092750614BE84B723 :100C7000877F84BF0FB6F894A89580916000886143 :100C800080936000109260000FBEE0E0F8E30995E9 -:100C900012E0A0E0B1E0EEECFCE602C005900D929F -:100CA000A033B107D9F726E0A0E3B2E001C01D925E -:100CB000AD36B207E1F70E94AE280C9421360C94B1 -:100CC0000000CF93DF9340916B0650916C064B561A +:100C900012E0A0E0B1E0EEEAFDE602C005900D92A0 +:100CA000A233B107D9F726E0A2E3B2E001C01D925A +:100CB000A237B207E1F70E9420290C9491360C94D8 +:100CC0000000CF93DF93409170065091710640571A :100CD00054409A01205A3F4F21303240C0F020E06A -:100CE00032E0241B350B6091690470916A04FC01A9 +:100CE00032E0241B350B60916E0470916F04FC019F :100CF000CA01240F351FC1E0D0E08217930750F0DE -:100D000070936A0460936904DF91CF91089520E69F -:100D100030E0E9CF4491DC01A559BB4F5C91451708 +:100D000070936F0460936E04DF91CF91089520E695 +:100D100030E0E9CF4491DC01A059BB4F5C9145170D :100D200081F04C93AC01A5E056954795AA95E1F763 :100D3000DE0102C0AA0FBB1F4A95E2F7AD016A2B84 :100D4000752B01963196D9CFE8EDF0E080818E7F4A :100D500080831092E2001092DA001092E100A0EE7F :100D6000B0E08C9181608C9380818F77808319BCF7 :100D7000A7EDB0E08C918E7F8C9380818F7E8083F5 -:100D800010926D0308952091E4003091E50095E6FE +:100D80001092720308952091E4003091E50095E6F9 :100D9000A9012091EC00822F817020FF06C0809174 :100DA000E80080FF06C080E008952091E80022FD61 -:100DB0001AC080917B03882389F0853089F0809167 +:100DB0001AC080918003882389F0853089F0809162 :100DC000EB0085FD0FC02091E4003091E500421753 :100DD0005307F9F29150E1F684E0089582E0089516 :100DE00083E0089581E00895EF92FF920F931F939F @@ -225,10 +225,10 @@ :100E00008091E80085FD0BC08091E8008E7780938B :100E1000E8000E94C306882399F3C82F08C0F70191 :100E200081917F018093F1000150110949F78C2FC6 -:100E3000CF911F910F91FF90EF90089580917D03C6 +:100E3000CF911F910F91FF90EF90089580918203C1 :100E400087FF13C08091E80082FF06C08091E80010 -:100E50008B778093E80004C080917B038111F2CFEF -:100E6000089580917B038823D9F38091E80080FF67 +:100E50008B778093E80004C0809180038111F2CFEA +:100E60000895809180038823D9F38091E80080FF62 :100E7000F8CF8091E8008E77ECCF982F9093E9001F :100E8000242F762F50E0891731F07091EC002091DB :100E9000ED005091F00021FD07C09F5F973071F782 @@ -238,38 +238,38 @@ :100ED000F0002091EE0027FDE0CF80E00895CF9252 :100EE000DF92EF92FF920F931F93CF93DF93C8EDA2 :100EF000D0E088818F7E8883E7EDF0E0808181609B -:100F0000808384E082BF81E080936D0388818E7F3F +:100F0000808384E082BF81E08093720388818E7F3A :100F1000888302EE10E0F80110821092DA0081EE70 :100F2000C82ED12CF601108288818F778883888122 -:100F30008068888388818F7D888319BC10927B03A9 -:100F400010927C0310927A031092790390EEE92EAE +:100F30008068888388818F7D888319BC10928003A4 +:100F40001092810310927F0310927E0390EEE92E9F :100F5000F12CF70180818B7F808388818160888379 :100F600042E060E080E00E943D07F60180818E7FD4 :100F70008083F801808181608083808188608083A4 :100F8000F70180818E7F8083888180618883DF91F3 :100F9000CF911F910F91FF90EF90DF90CF90089528 -:100FA000FC01809183039091840386179707A0F03A +:100FA000FC01809188039091890386179707A0F030 :100FB0006115710529F49091E8009E779093E800FF :100FC00090E06115710551F4911108C08091E8001D -:100FD00082FF34C080E00895BC01F2CF80917B0392 +:100FD00082FF34C080E00895BC01F2CF809180038D :100FE0008823C1F18530C1F18091E80083FD30C0D4 :100FF0008091E80082FDEACF8091E80080FFE1CF98 :101000008091F3002091F200382F6115710519F0DD :101010002830310558F091E02830310509F090E092 :101020002091E8002E772093E800CBCF8191809328 -:10103000F100615071092F5F3F4FE7CF80917B0333 +:10103000F100615071092F5F3F4FE7CF809180032E :10104000882341F0853041F08091E80083FFBECFD6 :1010500081E0089582E0089583E0089508958091E5 -:1010600070030895CF92DF92EF92FF922FB7F8941A -:10107000C0906603D0906703E0906803F090690326 +:1010600075030895CF92DF92EF92FF922FB7F89415 +:10107000C0906B03D0906C03E0906D03F0906E0312 :101080002FBFA7019601261B370B480B590BCA012E :10109000B901FF90EF90DF90CF9008952FB7F894AB -:1010A0006091660370916703809168039091690372 -:1010B0002FBF0895209163033091640328173907E7 -:1010C00071F09093640380936303E0916103F09166 -:1010D0006203309721F00084F185E02D0994089592 -:1010E00020915F03309160032817390771F09093C6 -:1010F000600380935F03E0916103F0916203309796 +:1010A00060916B0370916C0380916D0390916E035E +:1010B0002FBF0895209168033091690328173907DD +:1010C00071F09093690380936803E0916603F09157 +:1010D0006703309721F00084F185E02D099408958D +:1010E00020916403309165032817390771F09093BC +:1010F000650380936403E0916603F0916703309782 :1011000021F00680F781E02D09940895811520E5EE :101110009207F8F48115E0E49E0788F5893391057C :1011200070F48C32910548F48430910580F08E3152 @@ -279,22 +279,22 @@ :10116000A0F491558F3F910509F088F7E6CF8115DE :10117000EAE59E0710F390568115904240F7FB0177 :101180009581907F81E0C9F20895FB019581907F60 -:1011900081E0903291F6F8CF20914E0336E0839FA4 +:1011900081E0903291F6F8CF2091530336E0839F9F :1011A000C0011124629F800D911D1124811522E040 -:1011B000920714F090E080E085599B4F90936C0665 -:1011C00080936B060895FC01680F791F8FEF91E300 +:1011B000920714F090E080E080599B4F9093710665 +:1011C000809370060895FC01680F791F8FEF91E3FB :1011D0002191822728E030E087FF09C0880F892706 :1011E00021503109C9F7E617F70791F70895880FDD -:1011F000F7CFFA01811101C0FB01099480916404C9 -:10120000982F9E7F61F48170826080936404809146 -:101210006704813A18F080EA809367040895883162 +:1011F000F7CFFA01811101C0FB01099480916904C4 +:10120000982F9E7F61F48170826080936904809141 +:101210006C04813A18F080EA80936C040895883158 :10122000B0F381708661F1CFAF92BF92DF92EF92FF :10123000FF920F931F93CF93DF93082F162FE9018F :10124000E42FF0E0E750FB4F611110C0E4915E2FF6 :101250004E2F4983E8835A83DF91CF911F910F91DD :10126000FF90EF90DF90BF90AF900895E62EF12CA5 :101270004491D42EE42FF0E026E0829FC001112497 -:101280002FEF30E0B9010E944834802F90E0880FA2 +:101280002FEF30E0B9010E94B834802F90E0880F32 :10129000991F55E5569FD001579FB00D11248A1B09 :1012A0009B0B982F990F890F5901AE18BF08AE9E5E :1012B000D001AF9EB00DBE9EB00D11245B2F189FC4 @@ -310,10 +310,10 @@ :10135000E12F7FCF80E0089578940895F894E82FE6 :10136000E295EF70F0E031A1282F2F7081E090E03E :1013700001C0880F2A95EAF7982F9095932391A39F -:1013800092A1892B82A30C94AC099091D60292FF72 +:1013800092A1892B82A30C94AC099091DB0292FF6D :1013900006C0282F28712830F9F4877F846093FFD6 :1013A00006C0282F28712831F1F4877E84612091AE -:1013B000D70220FF06C0382F38713830D9F4877F24 +:1013B000DC0220FF06C0382F38713830D9F4877F1F :1013C000816021FF06C0282F28712831D1F4877E43 :1013D000816194FD877E0895282F24712430F9F6C9 :1013E0008B7F8860DCCF282F2471243101F78B7E1E @@ -325,21 +325,21 @@ :10144000C11530E5D30708F0F2C0CF3BD10508F055 :1014500089C0C83AD10508F0DFC0C53AD10508F007 :10146000D3C0C430D105F8F4C130D105E1F040C09B -:101470008533910509F45AC0C997E9F68091D602DF +:101470008533910509F45AC0C997E9F68091DB02DA :10148000837089F0C0EED0E00EC0833E910599F1E3 :1014900070F4803E910501F1823E910561F68091E4 -:1014A000D60282FD21C0CE01DF91CF910895863E04 +:1014A000DB0282FD21C0CE01DF91CF910895863EFF :1014B000910561F1873E910571F1843E910509F036 -:1014C000BACF8091D70281FFEECF8091D602C7EECE -:1014D000D0E084FD0DC0E7CF8091D60280FDF7C03B -:1014E0009091D70290FFDFCFC3EED0E084FFDBCF37 -:1014F000D0E0C0E0D8CF8091D60282FDEBC09091C1 -:10150000D70290FDBFCF84FFCECFF2CF8091D6021D -:1015100083FDDDCFC8CF8091D60283FDDEC09091E0 -:10152000D70291FFF0CFC4EED0E0BDCF8091D602BC -:1015300085FFB9CFC9E2D0E0B6CF8091D60285FF52 -:10154000B2CFC5E3D0E0AFCF8091D60286FFABCF5C -:10155000CAE2D0E0A8CF8091D60286FFA4CFC1E333 +:1014C000BACF8091DC0281FFEECF8091DB02C7EEC4 +:1014D000D0E084FD0DC0E7CF8091DB0280FDF7C036 +:1014E0009091DC0290FFDFCFC3EED0E084FFDBCF32 +:1014F000D0E0C0E0D8CF8091DB0282FDEBC09091BC +:10150000DC0290FDBFCF84FFCECFF2CF8091DB0213 +:1015100083FDDDCFC8CF8091DB0283FDDEC09091DB +:10152000DC0291FFF0CFC4EED0E0BDCF8091DB02B2 +:1015300085FFB9CFC9E2D0E0B6CF8091DB0285FF4D +:10154000B2CFC5E3D0E0AFCF8091DB0286FFABCF57 +:10155000CAE2D0E0A8CF8091DB0286FFA4CFC1E32E :10156000D0E0A1CFC11540E2D40760F4C11581E0FD :10157000D80708F098CFCE01815E9109079708F44B :1015800092CFB6CFC11590E4D90708F4B1CFDF7080 @@ -350,9 +350,9 @@ :1015D000D20708F48DCFDC2FCC27C06FD06A63CF41 :1015E000CE0190568115904208F082CF8D2F8F71D9 :1015F0000E94C50990E0982F882788279F719C0139 -:101600002C2BE901D0624FCFC55AD0E0CE53DE4F2C +:101600002C2BE901D0624FCFC55AD0E0CD53DE4F2D :10161000C881D0E0D06447CFC85AD0E0CC0FDD1FDE -:10162000CB53DE4F0990D881C02DD4643CCFCE017E +:10162000CA53DE4F0990D881C02DD4643CCFCE017F :1016300064E0969587956A95E1F783702C2F26953F :101640002695237040E2249F90011124382B8C2F83 :101650008370C1E0D0E002C0CC0FDD1F8A95E2F7B5 @@ -364,62 +364,62 @@ :1016B000FACE8C2F8F700E94C50934E0D695C7955D :1016C0003A95E1F7CF709C2FEC01D069ECCEC9E3DD :1016D000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE7A -:1016E0000C944E0880916E0390919402892B9091F6 -:1016F0009302892B80933202E0916103F09162039F -:10170000309731F00280F381E02D82E392E009947A -:1017100008958091920290916102981301C00895FA +:1016E0000C944E088091730390919702892B9091EE +:1016F0009602892B80933402E0916603F091670390 +:10170000309731F00280F381E02D84E392E0099478 +:1017100008958091950290916402981301C00895F4 :101720008F5F8770FACF27E0929F800D1124982F4A :10173000977086958695869523E0829FF001112407 -:10174000E05CFD4F50E040E080E0219130E0092E68 +:10174000ED5BFD4F50E040E080E0219130E0092E5C :1017500002C0369527950A94E2F721703327042EAC :1017600001C0220F0A94EAF7822B4F5F5F4F43308C :10177000510559F7089527E0929F800D1124982F65 :10178000977041E001C0440F9A95EAF786958695D7 -:10179000869593E0899FF0011124E05CFD4F90E075 +:10179000869593E0899FF0011124ED5BFD4F90E069 :1017A00080E070E05191DF0111979B01082E02C08B :1017B000369527950A94E2F7217021952527242351 :1017C00025272C9301968330910561F7089590E0C9 :1017D00080E00E94700890E080E00E945A08109219 -:1017E0009402109293020C94720B809395020C94C5 -:1017F000E70B882341F0809590916E0389238093B5 -:101800006E030C94720B0895882339F090916E0347 -:10181000982B90936E030C94720B08958823B1F16A -:101820009CEF980F913A70F4E4E3F2E09191891300 -:1018300003C0DF0111971C9242E0EA33F407B1F7CD +:1017E0009702109296020C94720B809398020C94BC +:1017F000E70B882341F080959091730389238093B0 +:1018000073030C94720B0895882339F0909173033D +:10181000982B909373030C94720B08958823B1F165 +:101820009CEF980F913A70F4E6E3F2E091918913FE +:1018300003C0DF0111971C9242E0EC33F407B1F7CB :101840000C94720B90E2980F983088F4877021E026 :1018500030E0A90102C0440F551F8A95E2F7CA0182 -:10186000809590916E03892380936E03E9CF9BE569 +:10186000809590917303892380937303E9CF9BE55F :10187000980F933020F490E080E00C947008885A20 :10188000873120F490E080E00C945A0808950F937B :101890001F93CF93C82F882309F469C08CEF8C0F56 -:1018A000813AB0F504E312E08AE392E0F801219175 -:1018B000C21701F122E0EA33F207C9F7EFEF80E047 +:1018A000813AB0F506E312E08CE392E0F801219171 +:1018B000C21701F122E0EC33F207C9F7EFEF80E045 :1018C000D8019D918D01C91781F0EF3F19F4911155 :1018D00001C0E82F8F5F863099F7EF3F31F00E2E71 -:1018E000000CFF0BEE5CFD4FC283CF911F910F9157 -:1018F0000C94720BE4E3F2E02191C21303C0DF0108 +:1018E000000CFF0BEC5CFD4FC283CF911F910F9159 +:1018F0000C94720BE6E3F2E02191C21303C0DF0106 :1019000011971C928E179F07B9F70E94720BD6CFC2 :1019100080E28C0F883068F4C77021E030E001C0AD -:10192000220FCA95EAF780916E03822B80936E0393 -:10193000DCCFEBE5EC0FE33050F4F0E0EE53FE4F7C +:10192000220FCA95EAF780917303822B8093730389 +:10193000DCCFEBE5EC0FE33050F4F0E0ED53FE4F7D :10194000808190E0CF911F910F910C947008C85A3C -:10195000C73168F4EC2FF0E0EE0FFF1FEB53FE4FA2 +:10195000C73168F4EC2FF0E0EE0FFF1FEA53FE4FA3 :1019600080819181CF911F910F910C945A08CF9152 :101970001F910F910895982F92959F7011F0892FC4 :1019800094E0282F2695269511F09E5F822F86954C :1019900009F09F5F892F0895CF93DF93CDB7DEB70E -:1019A00062970FB6F894DEBF0FBECDBF96E0EAE3B4 +:1019A00062970FB6F894DEBF0FBECDBF96E0EFE3AF :1019B000F3E0DE01179601900D929A95E1F796E01B :1019C000FE013796DE011D9601900D929A95E1F782 :1019D00098858823E9F0962B9E8786E0FE013D9648 :1019E000DE01119601900D928A95E1F786E0FE01E5 -:1019F0003196AAE3B3E001900D928A95E1F76296E1 +:1019F0003196AFE3B3E001900D928A95E1F76296DC :101A00000FB6F894DEBF0FBECDBFDF91CF91089522 -:101A100060959623E1CF80936A0370936C03609383 -:101A20006B0380917B038430F9F48093E9008FEF9E +:101A100060959623E1CF80936F0370937103609379 +:101A20007003809180038430F9F48093E9008FEF94 :101A30009091E800815095FD06C095ED9A95F1F7DB :101A400000008111F5CF8091E80085FF0DC050E0C6 -:101A500040E063E070E08AE693E00E94F406809143 +:101A500040E063E070E08FE693E00E94F40680913E :101A6000E8008E778093E8000895BC0184E00C9430 :101A70000B0DBC0183E00C940B0D9C0184E0809362 :101A8000E9009FEF8091E800915085FD06C085ED4B @@ -430,1332 +430,1347 @@ :101AD00095FD06C095ED9A95F1F700008111F5CFBF :101AE0008091E80085FF14C050E040E068E070E0BD :101AF000CE010E94F4068091E8008E778093E80082 -:101B000088E0FE01A1E7B3E001900D928A95E1F72C +:101B000088E0FE01A6E7B3E001900D928A95E1F727 :101B1000DF91CF910895CF92DF92EF920F931F93B1 :101B2000CF93DF93CDB7DEB7CE5DD1090FB6F89472 -:101B3000DEBF0FBECDBF609173018091640480FF52 +:101B3000DEBF0FBECDBF609174018091690480FF4C :101B40004CC0EEEFF5E09E012F5F3F4F8E0101523A :101B50001F4FC901A4914A2F50E0DA01AA0FBB1F01 -:101B6000A40FB51FAA57BC4FCD90DD90EC90D901C2 +:101B6000A40FB51FA557BC4FCD90DD90EC90D901C7 :101B7000CD92DD92ED929D013196A017B10751F7FC -:101B80002091720143E0249F800D911D1124539AEE +:101B80002091730143E0249F800D911D1124539AED :101B90002BB1277F3BB138605FB7F894FC01649F9D :101BA000E00DF11D1124BF018617970749F55FBFAE :101BB000EFE5F4E03197F1F700C00000C252DF4FCB :101BC0000FB6F894DEBF0FBECDBFDF91CF911F914E -:101BD0000F91EF90DF90CF900895809174019091D4 -:101BE000750123E0829FF0011124EA57FC4F891709 +:101BD0000F91EF90DF90CF900895809175019091D3 +:101BE000760123E0829FF0011124E557FC4F89170D :101BF00008F0A7CF1182108212828F5F3396F7CF41 :101C0000DC014D91CD01E8E03BB9000000C047FF89 :101C10002BB9440F000000C000C000C02BB900C0A9 :101C2000EA9591F7C1CF0F931F93CF93DF9300D025 -:101C30000F92CDB7DEB7182F062F8091640480FF76 +:101C30000F92CDB7DEB7182F062F8091690480FF71 :101C400022C09E012F5F3F4F40EA64E68BE20E9474 :101C500014091017C0F48B8199812A8133E0139FF6 -:101C6000F0011124EA57FC4F2183908382831F5F88 +:101C6000F0011124E557FC4F2183908382831F5F8D :101C700033960113F9CF0E948B0D8FE99FE00197F6 :101C8000F1F700C000000F900F900F90DF91CF91FF :101C90001F910F910895CF93DF93C82FD82FD17044 :101CA00081FF04C067E084E00E94130ED11104C0DC :101CB0006FE18CE10E94130EC2FF06C063E180E178 -:101CC000DF91CF910C94130EDF91CF910895E4E64C -:101CD000F4E080818E7F8083E9E4F3E0828181609B +:101CC000DF91CF910C94130EDF91CF910895E9E647 +:101CD000F4E080818E7F8083EEE4F3E08281816096 :101CE00082832FEF80E792E0215080409040E1F71F :101CF00000C000000C948B0D9F92AF92BF92CF92C8 :101D0000DF92EF92FF920F931F93CF93DF937C01AB -:101D10005B016A018091D10201E010E08A3010F489 +:101D10005B016A018091D60201E010E08A3010F484 :101D20000AE010E0C1E0D0E0F894B501C701F60187 :101D30000995982E0E94AC09911004C021960C17A9 :101D40001D076CF4892DDF91CF911F910F91FF90AA :101D5000EF90DF90CF90BF90AF909F900895CC9F71 :101D60009001CD9F300D300D112490E080E045E3CF :101D70004A95F1F70000019682179307C1F7D4CF77 -:101D80008091A202811110C08091D800806180935F +:101D80008091A702811110C08091D800806180935A :101D9000D8008AE18A95F1F700C08091D90080FFD0 -:101DA0000AC081E08093A20281E09091A20291306A -:101DB00009F080E0089582E08093A2020E94A406C8 -:101DC00010927B03F1CF0E94C00E882351F0E09166 -:101DD0006103F0916203309721F00190F081E02DD2 +:101DA0000AC081E08093A70281E09091A702913060 +:101DB00009F080E0089582E08093A7020E94A406C3 +:101DC00010928003F1CF0E94C00E882351F0E09161 +:101DD0006603F0916703309721F00190F081E02DC8 :101DE000099480E008951F93CF93DF93182FEB01A0 :101DF0000E94470C8FE99FE00197F1F700C00000B7 :101E00002197C1F7812FDF91CF911F910C940E0C78 :101E10000F931F93CF93DF9300D000D0CDB7DEB7E1 :101E200089836A834B831C8204E610E024E030E05F -:101E3000AE014F5F5F4F60E084E10E94A6310F90DA +:101E3000AE014F5F5F4F60E084E10E9416320F9069 :101E40000F900F900F90DF91CF911F910F910895F8 -:101E500080916F01882329F047E669E98BE20C94B1 -:101E6000080F80913B0247EC6BE18823C1F341E20C +:101E500080917001882329F047E669E98BE20C94B0 +:101E6000080F80913D0247EC6BE18823C1F341E20A :101E700065EA89EDF4CFCF92DF92EF92FF920F9354 :101E80001F93CF93DF936C017B0164E670E088E7DA -:101E90000E948E30EC0197FD12C010E000E0F601C8 -:101EA000E00FF11F849164E670E00E940831EC01BC +:101E90000E94FE30EC0197FD12C010E000E0F60158 +:101EA000E00FF11F849164E670E00E947831EC014C :101EB000892B29F40F5F1F4F0E151F0581F70E9414 -:101EC0002232CE01DF91CF911F910F91FF90EF90C1 -:101ED000DF90CF9008958091590390915A0391110A +:101EC0009232CE01DF91CF911F910F91FF90EF9051 +:101ED000DF90CF90089580915E0390915F03911100 :101EE00003C091E089270895882369F062E070E0DB -:101EF0008AE89BE00E943B0F892B19F080915903DF -:101F000008951092590380915903EBCFCF93C0915C -:101F1000590380915A038823D1F00E944E086058DB -:101F2000774C8E4F9F4F6093550370935603809369 -:101F3000570390935803C11108C062E070E088E82D -:101F40009BE00E943B0F892B29F0C09159038C2FF5 -:101F5000CF91089581E080935903F7CFCF93DF931A -:101F6000C3EED2E060E0CE010E94BC342196C115E0 +:101EF0008AE89BE00E943B0F892B19F080915E03DA +:101F0000089510925E0380915E03EBCFCF93C09152 +:101F10005E0380915F038823D1F00E944E086058D1 +:101F2000774C8E4F9F4F60935A0370935B0380935F +:101F30005C0390935D03C11108C062E070E088E823 +:101F40009BE00E943B0F892B29F0C0915E038C2FF0 +:101F5000CF91089581E080935E03F7CFCF93DF9315 +:101F6000C3EED2E060E0CE010E942C352196C1156F :101F700084E0D807B9F7DF91CF9108956F927F92EF :101F80008F929F92AF92BF92CF92DF92EF92FF9289 :101F90000F931F93CF93DF938CE8C82E8BE0D82E3E :101FA00091ECE92EF12CE701CC58D10936011BC088 -:101FB000F50185909490692DC8010E94BC34682D6C -:101FC000C80101960E94BC3482E0A80EB11C0E5FCD +:101FB000F50185909490692DC8010E942C35682DFB +:101FC000C80101960E942C3582E0A80EB11C0E5F5C :101FD0001F4FC017D10761F78EE0680E711C2E9657 :101FE000CE15DF0529F08E010E5011095301E0CF07 :101FF0007E018CE8E80EF11C8CE8C80ED11C8DE740 :10200000E81683E0F80679F6DF91CF911F910F91E2 :10201000FF90EF90DF90CF90BF90AF909F908F9008 :102020007F906F900895CF93C82F6FEF811161E279 -:1020300083E290E00E94BC346FEFC11162E184E260 -:1020400090E00E94BC346FEFC11161E185E290E045 -:10205000CF910C94BC3480E00E94131060E086E2C3 -:1020600090E00E94BC340E94BE0F0E94AE0F81E03F -:102070000C9413100F931F93CF93DF93C42FD0E0D2 -:10208000CC0FDD1F2EE0629FC00DD11D11243CE856 -:10209000839FC00DD11D1124CE0187960E94A834C4 -:1020A000082F10E0102F0027CE0188960E94A83438 -:1020B0009801282BC901DF91CF911F910F910895AD -:1020C000462F853038F47A3028F4673018F4672FBB -:1020D0000C943A1090E080E00895CF92DF92FF9246 -:1020E0000F931F93CF93DF936C0100918503809131 -:1020F0009502082BC7E0D0E010E0FC2EC8010C2EA2 -:1021000002C0959587950A94E2F780FD0CC021974F -:10211000A0F7F12C8F2DDF91CF911F910F91FF90A0 -:10212000DF90CF900895B6018C2F0E9460100E941E -:10213000080A019761F3EECFCF93DF93EC010E9481 -:102140006D10BE010E946010DF91CF910C94080ABF -:10215000FC01808191810E949C10292F2F70929503 -:102160009F7092509E3078F4E92FF0E0ED5DF94CCD -:102170000C947C34803F19F020F4883E20F481E0F8 -:102180000895843FE1F380E00895883EC0F3813FE5 -:10219000D1F7F5CF822F869586958695089583E2AF -:1021A00090E00E94A834813289F484E290E00E9499 -:1021B000A834823159F485E290E00E94A83491E07D -:1021C000813109F090E0892F8170089580E0FCCF83 -:1021D0001F93CF93DF93CDB7DEB768970FB6F89410 -:1021E000DEBF0FBECDBF40913A0350913B036091DB -:1021F0003C0370913D0380913E0390913F030E9408 -:10220000AC2420933A0330933B0360933E037093D6 -:102210003F03142F119510933C03652F6195609334 -:102220003D0386E0EAE3F3E0DE01179601900D92AC -:102230008A95E1F786E0FE013796DE01119601905E -:102240000D928A95E1F79B858C8520916F01222361 -:10225000B1F0772761950CF47095072E000C880B70 -:10226000990B0E9428352AE939E949E95EE30E9481 -:102270008C350E94F034962F812F60E010E01B8394 -:102280006C839D838E8386E0FE013196DE011D9670 -:1022900001900D928A95E1F786E0FE013D96DE0100 -:1022A000539601900D928A95E1F786E0FE017396B0 -:1022B000DE01119601900D928A95E1F786E0FE010C -:1022C0003196AAE3B3E001900D928A95E1F786E09A -:1022D000EAE3F3E0DE01179601900D928A95E1F7AB -:1022E00086E0E4E3F3E0DE01119601900D928A9519 -:1022F000E1F746E050E0BE016F5F7F4FCE010796E9 -:102300000E949234892B79F0E0916103F09162038D -:10231000309749F082E080933A030480F581E02D04 -:102320008AE393E0099510923C0310923D031092CA -:102330003E0310923F0386E0EAE3F3E0A4E3B3E058 -:1023400001900D928A95E1F768960FB6F894DEBF7A -:102350000FBECDBFDF91CF911F910895E4E3F2E06E -:1023600086E0DF011D928A95E9F70C94E70B1F9335 -:10237000CF93DF93CDB7DEB7AA970FB6F894DEBF41 -:102380000FBECDBF8DE793E02091F100DC012D93CE -:10239000CD01B3E085389B07B9F780917E03833088 -:1023A00009F472C0B8F4813009F449C0823009F4EC -:1023B000B5C08091E80083FF8DC280917D0390912C -:1023C0007E039A3008F086C2E92FF0E0EF5CF94C0A -:1023D0000C947C348A3009F490C08B3009F471C0BD -:1023E000893039F780917D03813219F7809181031B -:1023F00090918203009711F00297D9F68091E8003E -:10240000877F8093E8008091E80082FF38C0909138 -:10241000F3008091F200029731F48091F100813055 -:1024200011F0863021F48091F10080937003809147 -:10243000E8008B778093E8000E941E07BACF809156 -:102440007D03813A09F0B5CF8091E800877F8093C2 -:10245000E8008091810390918203892B61F468E008 -:1024600081E793E070E00E94D0078091E8008B77CD -:102470008093E8009ECF60E090E080E0F3CF809111 -:102480007B038111C0CF95CF80917D03813A09F004 -:1024900090CF8091810390918203892B09F089CF9D -:1024A0008091E800877F8093E8008091E80080FFBA -:1024B000FCCF809177018093F1008091E8008E77C6 -:1024C000B9CF80917D03813209F073CF8091810370 -:1024D00090918203892B09F06CCF8091E800877F6F -:1024E0008093E8000E941E0780917F03809377010C -:1024F00010926E030E94AE115CCF80917D038132F9 -:1025000009F057CF8091E800877F8093E8000E9410 -:102510001E078091800380936F034BCF80917D03D2 -:10252000813A09F046CF8091E800877F8093E800E8 -:102530008091E80080FFFCCF80916F03BCCF803892 -:1025400099F0823809F0C6C1809181038F7087307D -:1025500008F0C0C18093E9008091EB0085FB8827DB -:1025600080F91092E90006C08091790390917A0376 -:10257000911182609091E800977F9093E80080939A -:10258000F1001092F1008091E8008E779FC18823BE -:1025900009F48DC1823009F09DC180917F038111C2 -:1025A00090C1809181038F702FEF280F263008F0A3 -:1025B00091C18093E9002091EB0020FF82C193300C -:1025C00031F48091EB0080628093EB007AC19091AE -:1025D000EB0090619093EB0021E030E001C0220F0E -:1025E0008A95EAF72093EA001092EA008091EB00C6 -:1025F0008860EACF81116EC110917F031F778091AF -:10260000E3008078812B8093E3008091E800877F4E -:102610008093E8000E941E078091E80080FFFCCFB5 -:102620008091E30080688093E30082E0111183E0F1 -:1026300080937B034FC18058823008F04BC12091BA -:102640007F03309180032C3DE3E03E07A1F583E05A -:102650008A838AE289834FB7F894DE01139620E0DB -:102660003EE051E2E32FF0E050935700E49120FF69 -:1026700003C0E295EF703F5FEF708E2F90E0EA307D -:10268000C0F0C7968D939D932F5F243159F74FBFAC -:102690008091E800877F8093E8006AE270E0CE01D5 -:1026A00001960E94D0078091E8008B778093E80024 -:1026B00011C1C096E7CF8091810390918203432F8F -:1026C00055274330510509F44AC078F5413051058A -:1026D00009F47AC08BE590E0ECE8FBE0423051056C -:1026E00009F0F8C02091E800277F2093E8002091AE -:1026F0008303309184038217930708F49C0140E020 -:102700002115310509F065C0411163C08091E800D1 -:1027100082FDC9CF80917B03882329F2853019F28D -:102720008091E80083FFF2CFBECF4132510509F41A -:102730003CC04232510509F0CDC08330910508F00C -:10274000C9C0FC01EE0FFF1FEC5DFD4F0190F08151 -:10275000E02D8F5D9D4FDC018C9190E01AC03327F6 -:1027600021303105D1F02115310561F022303105DC -:1027700009F0B0C0E9EFFBE0E4918E2F90E0E9EFC3 -:10278000FBE007C0EBE2FCE0E4918E2F90E0EBE28F -:10279000FCE0009709F49EC0A5CFE9E1FCE0E491DC -:1027A0008E2F90E0E9E1FCE0F4CF8330910508F052 -:1027B00091C0880F991FFC01E65DFD4F0190F081EB -:1027C000E02D89E090E08ECF82E190E0E7EEFBE043 -:1027D00089CF80917B03882309F465CF853009F484 -:1027E00062CF8091E80083FD5ECF8091E80082FD9A -:1027F0008DCF8091E80080FF83CF9091F30080918E -:10280000F2002115310519F08830910550F041E0B2 -:10281000089709F040E08091E8008E778093E80007 -:102820006FCF44914093F1003196215031090196C8 -:10283000E8CF803809F04EC08091E800877F809310 -:10284000E80080917C038093F1009DCE811142C00D -:1028500010917F031230F0F58091E800877F80931C -:10286000E80010937C030E941E07112311F084E0FE -:1028700005C08091E30087FDFACF81E080937B0360 -:1028800042E061EC81E00E943D0742E261EC84E0BD -:102890000E943D0742E261EC82E00E943D0742E275 -:1028A00060EC83E00E943D0780917B0313C0809120 -:1028B0007F03813079F481E0933009F080E08093E8 -:1028C0007A031092E9008091E800877F8093E80006 -:1028D0000E941E078091E80083FF0AC08091E800F3 -:1028E000877F8093E8008091EB0080628093EB000B -:1028F000AA960FB6F894DEBF0FBECDBFDF91CF9181 -:102900001F9108951F93CF93DF93162FC0916B06ED -:10291000D0916C068A30D1F420914E03CE018B56B3 -:102920009440622F70E00E944834281B822F66E09A -:102930000E945C34C82FC15020F4DF91CF911F91C9 -:10294000089560E080E20E948214F5CF8D30E9F4B2 -:10295000CB56D44020914E03622F70E0CE010E94EE -:102960004834281B822F9E01280F311D211532402B -:1029700018F080E0D0E0C0E0C80FD11DC559DB4F92 -:10298000D0936C06C0936B06D8CF96E0FE01AFE4FF -:10299000B3E001900D929A95E1F7803E90F186E0C8 -:1029A000FE0111928A95E9F7C0916B06D0916C06F1 -:1029B000111133C046E050E0BE018FE493E00E9465 -:1029C00092349E012B563440892B91F52A5F3F4F5C -:1029D00040914E03642F70E0C9010E944834481BA7 -:1029E000463010F4240F311D211572E0370710F026 -:1029F00030E020E025593B4F30936C0620936B0666 -:102A00009CCFF6E08F9FB0011124685B794F46E0C0 -:102A100050E0CE010E948934C7CF9E012A5F3F4F0C -:102A2000FE012E173F0731F2808180958193F9CF07 -:102A3000C90145E0969587954A95E1F741E050E058 -:102A4000BA0102C0660F771F8A95E2F7CB01609149 -:102A5000690470916A04862B972BB9016B5F7F4FD5 -:102A6000E5E076956795EA95E1F702C0440F551FBA -:102A70006A95E2F7842B952B90936A0480936904FE -:102A8000A5CFFF920F931F93CF93DF93EC01F62E08 -:102A9000FC0101900020E9F78F0101501109C017D6 -:102AA000D10730F0DF91CF911F910F91FF900895E2 -:102AB0006F2D89910E948214F2CFECE4F3E08083C1 -:102AC000618324E630E042E050E0BF0184EB0C94E7 -:102AD0007F31CF93C82F60E08CE00E945D156C2F92 -:102AE00084E00E945D1561E08CE0CF910C945D154F -:102AF000CF92DF92EF92FF926B017C010E94FE0861 -:102B0000B701A60188E090E0FF90EF90DF90CF90B2 -:102B10000C94CE34AF92BF92CF92DF92EF92FF929D -:102B20000F931F93CF93DF9300D00F92CDB7DEB7F3 -:102B3000082FF62E142FE22E8091640480FF4FC0E0 -:102B4000E82FE695AE2FB0E0AB5EBD4F9C91909321 -:102B500049038E7F823009F056C0413A08F040EABE -:102B60009E012F5F3F4F6F2D802F0E94140980918F -:102B7000640480FF11C02B8139814A8180917401E6 -:102B80009091750153E0859FF0011124EA57FC4FA5 -:102B9000891798F10E948B0D80916504801308C0FD -:102BA000809166048F1104C080916704811729F019 -:102BB00080914B03826080934B0300936504F092F5 -:102BC000660410936704EE2051F0609164047091E4 -:102BD000650480916604909167040E9478150F90B7 -:102BE0000F900F90DF91CF911F910F91FF90EF9079 -:102BF000DF90CF90BF90AF900895418330832283C0 -:102C00008F5F3396C5CF923039F6E2508E2F8170A8 -:102C1000D82EE695F0E0E750FA4FA590B490C12C7D -:102C2000BB2460917601C61608F0B4CF2C2D30E09D -:102C3000A29EC001A39E900DB29E900D112470E043 -:102C40000E944834802FD11016C0860F4091740125 -:102C5000420F532F511D9A01220F331F240F351F8E -:102C60002A573C4F412F113A08F040EA6F2D0E943D -:102C70001409C394D6CF861BE9CFE4E6F4E0438180 -:102C800021E1421B08F440E021E0628181810C9443 -:102C90008A15E4E6F4E0438121E1420F08F44FEFA6 -:102CA00021E0628181810C948A15E4E6F4E062817E -:102CB00021E1621B08F460E021E0438181810C94F2 -:102CC0008A15E4E6F4E0628121E1620F08F46FEF17 -:102CD00021E0438181810C948A15E4E6F4E081814E -:102CE00021E04381628188500C948A15E4E6F4E087 -:102CF000818121E043816281885F0C948A15CF93A2 -:102D0000C82F0E94BB0C8230B1F138F48823C9F07F -:102D1000813039F18C2FCF9108958330A1F1843027 -:102D2000C9F720E040E56FEF8AED0E948A1587E041 -:102D30000E94691580910001882361F310926F0150 -:102D40000DC020E040E56FEF82E30E948A1580917C -:102D50000001882399F381E080936F010E94280F7E -:102D6000D9CF20E040E56FEF8CEF0E948A1585E413 -:102D70000E946915CFCF20E040E56FEF80E50E940B -:102D80008A1585E2F5CF20E040E56FEF86E70E94E7 -:102D90008A158FE1EDCF0E947F16809385030C94F6 -:102DA000E70B80918503982F9670963019F4886010 -:102DB0000C94CB16877FFCCF21E030E001C0220FBE -:102DC0008A95EAF720958091850382230C94CB168F -:102DD00021E030E001C0220F8A95EAF78091850357 -:102DE000822B0C94CB1680916804882319F08150B3 -:102DF0008093680460916404709165048091660416 -:102E0000909167040C94781580916804833018F4CD -:102E10008F5F809368046091640470916504809171 -:102E20006604909167040C9478159091640490FF67 -:102E300027C0917081111DC09260909364048091AD -:102E40004B03816080934B03662351F060916404CF -:102E50007091650480916604909167040E947815D2 -:102E600020E04091670460916604809165040C94B1 -:102E70008A158C3010F09661E0CF880F982BDDCF4B -:102E80000895809164048695815009F48BE061E097 -:102E90000C9415178091640486958F5F8C3008F030 -:102EA00081E061E00C9415178091640480FF07C0F5 -:102EB000869582588F77893010F40C944A1761E018 -:102EC00082E00C941517E4E6F4E083E0808311823D -:102ED0008FEF828380EA83831482A9E4B3E01296A1 -:102EE0008C911297836012968C936081718182819C -:102EF00093810C947815AB01BC0188E190E00C94AF -:102F0000CE34CF93C82FEDE5F3E0982F990F990FAA -:102F1000990F80818770892B8083EEE5F3E09C2FE9 -:102F20009295969597708081887F892B8083609198 -:102F30005B0370915C0380915D0390915E030E943E -:102F40007B176C2F82E0CF910C945D15EBE5F3E0DD -:102F500089E88083118282818C7F828360915B0308 -:102F600070915C0380915D0390915E030C947B17DC -:102F7000EBE5F3E080818E7F808360915B0370914D -:102F80005C0380915D0390915E030C947B17EBE5ED -:102F9000F3E080818160808360915B0370915C03CA -:102FA00080915D0390915E030C947B170E948830A2 -:102FB00040E060E080E00C94080F69EE7EEF90E066 -:102FC00080E00E94DA3460E082E090E00E94BC344D -:102FD00060E083E090E00E94BC341092950260E0D3 -:102FE00084E090E00E94BC3460E082E290E00E94C5 -:102FF000BC3460E085E090E00E94BC3460E086E094 -:1030000090E00E94BC346FEF87E090E00E94BC34F7 -:1030100040E050E0BA0188E090E00E94CE3460E0E9 -:103020008DE090E00E94BC3440E050E0BA0188E1BD -:1030300090E00E94CE3460E087E190E00E94BC34D2 -:1030400040E050E0BA018CE190E00E94CE3470E0A4 -:1030500060E080E290E00E94DA340E94A61780E0EF -:103060000E9413100E942B1040E050E0BA018FE044 -:1030700090E00E94CE3440E050E0BA0183E190E05D -:103080000C94CE345F926F927F928F929F92AF9208 -:10309000BF92CF92DF92EF92FF920F931F93CF9345 -:1030A000DF9300D000D00F92CDB7DEB77C01FC01DA -:1030B00083819481892B31F08081918189238F3F95 -:1030C00009F088C60F900F900F900F900F90DF912E -:1030D000CF911F910F91FF90EF90DF90CF90BF9015 -:1030E000AF909F908F907F906F905F9008950E9417 -:1030F0006D10182F682F89819A810E94BB0B6981FE -:103100007A81812F0E9460108C01F70182818823CF -:1031100061F0F801E65EFC45ED30F10530F4E55C68 -:10312000F94C0C947C340E94C717D0905B03D0FEFE -:103130001CC08D2D86958370F7019281992309F427 -:1031400060C1823090F4B701C8010E9486088823CC -:1031500061F0D694D694D69480915C038370829566 -:10316000880F807E8D290E946915F701828188234E -:1031700009F425C6C80182519F45409708F0E3C570 -:103180008FEF93E00E94A834025193EEA92E92E0B3 -:10319000B92E811197CF011138C11C821B82662480 -:1031A00063948AE0582E85010F5F1F4FC5010E946E -:1031B000A83489831A82882309F484CF9FEF980F5B -:1031C000933008F031C18A83698232E0A30EB11CCA -:1031D000C8010E94A8348B83882309F473CF8E0121 -:1031E0000F5F1F4FF80120812223E9F2213009F0FF -:1031F00055C191818281913009F018C10E5F1F4F36 -:103200006AE070E0893311F460E570E00E94F30E2B -:1032100013C10E94B81789CF80915B0380FF0DC056 -:103220000E94B81760915B0370915C0380915D030D -:1032300090915E030E947B1778CF0E94C717F2CF50 -:103240000E94A61772CF90915B03892F86958F5F9E -:103250008370880F997F892B80935B03982F9670DA -:10326000963001F7897F80935B03DCCF90915C03FC -:10327000892F8B7F92FF846080935C03D3CF8091F2 -:103280005B03982F96959695969580915C03837035 -:103290008295880F807E892B8C3798F48F5F282F3A -:1032A000220F220F220F90915B039770922B909325 -:1032B0005B0382958695837090915C039C7F892B3C -:1032C000DBCF81E0ECCF80915B03982F96959695AC -:1032D000969580915C0383708295880F807E892B00 -:1032E00011F08150DCCF8BE7DACF30915C03932F64 -:1032F00096959695969520915D03822F8370829581 -:10330000880F807E892B90E00196482F440F440F50 -:10331000440F3770342B30935C0335E096958795D6 -:103320003A95E1F783702C7F822B80935D037ACFEF -:1033300030915C03932F96959695969520915D0319 -:10334000822F83708295880F807E892B8150990B04 -:10335000DCCF80915D0382FF12C08B7F80935D0381 -:1033600060915B0370915C0380915D0390915E03BB -:103370000E947B1760E081E00E945D15D6CE8460DC -:1033800080935D0360915B0370915C0380915D03AA -:1033900090915E030E947B1760E08CE00E945D15B7 -:1033A00064E182E00E945D1565E081E00E945D15A8 -:1033B00061E08CE0E1CF80915D03982F9695969522 -:1033C000969580915E038295880F807E892B883741 -:1033D00020F4865F0E948117A8CE88E7FBCF8091FA -:1033E0005D03982F96959695969580915E038295AC -:1033F000880F807E892B843110F08A50EBCF84E1D6 -:10340000E9CF882309F4B1CE9ECEA114F4E0BF0623 -:1034100009F458CEC5010E94A834811101C00150A1 -:103420002FEFA21AB20AB7CE5801D9CE923039F492 -:103430000E5F1F4F0E94470C0F5F1F4FD3CE93307C -:1034400029F40E5F1F4F0E940E0CF6CF943019F036 -:103450000F5F1F4FF1CF0E5F1F4F30E020E0B8012C -:103460006F5F7F4FF80141818053990B8A3091053E -:1034700050F02150310900F38FE99FE00197F1F7F7 -:1034800000C00000F6CF529EF001539EF00D1124B3 -:103490009C012E0F3F1F842F8B01E1CFE22FF0E024 -:1034A000E754FE4F7490822F86958695869590E01E -:1034B000FC01E755FE4FE4902770F12C022E02C06C -:1034C000F594E7940A94E2F7E1E0EE22FF24FC0190 -:1034D000E756FE4FC490D12C022E02C0D594C7945B -:1034E0000A94E2F7F1E0CF22DD24FC01E757FE4F1A -:1034F0008490912C02C0959487942A95E2F721E05C -:1035000082229924E114F10419F081EE0E94470C03 -:10351000C114D10419F086EE0E94470C39E36AE029 -:1035200070E0731202C060E570E0872D0E94F30E18 -:10353000CD2819F086EE0E940E0CEF2819F081EECE -:103540000E940E0C892809F477CF6AE070E08CE2C3 -:103550005DCE81E00E94E81603C081E00E94DC1687 -:103560000F900F900F900F900F90DF91CF911F91C0 -:103570000F91FF90EF90DF90CF90BF90AF909F9012 -:103580008F907F906F905F900C94D11682E0E2CF85 -:10359000013E110509F4B8C0043E110519F0003EC2 -:1035A0001105B1F5882309F42EC181E08093ED0265 -:1035B000809185030E94BB0C813051F583E30E940A -:1035C000691526C00238FFE51F0709F46AC078F4C0 -:1035D000053F110509F413C1063F110509F411C196 -:1035E000043F1105A9F461E00E94CC0C11C004381D -:1035F0003FE5130709F48BC008F469C005385FE59F -:10360000150709F4CAC006389FE5190709F4DDC09B -:10361000F70192819111FDC180916E0382720A3C83 -:10362000FCE51F0709F4D5C108F02BC1053C3CE5BA -:10363000130709F4BAC108F00FC1033C5CE5150794 -:1036400009F494C108F0ACC1023C1C4509F43EC128 -:10365000F70100811181992309F4F5C1C8010E9485 -:103660006D10D82E682FC8010E94BB0BB8018D2D9C -:103670000E9460100E94080A182FB82EF7012281BC -:103680004581342F32953F70892F82958F70C82ED7 -:10369000D12C8C3008F00FC2F601E85BF94C0C9489 -:1036A0007C34882309F4B4CF81EE0E94470C83EE6A -:1036B0000E94470C8FE40E94470C8FE40E940E0C7E -:1036C00083EE0E940E0C81EE0E940E0CA1CF882387 -:1036D00009F49ECF81EE0E94470C83EE0E94470CB6 -:1036E00080E50E94470C80E5E9CF80933F0210936C -:1036F0003E0200933D02882321F081E08093EE0298 -:1037000087CF1092EE0284CF80933C02F0CF8823C3 -:1037100079F180913C02882349F080913D020E941A -:103720000E0C80EE0E94470C8AE20CC080913F0292 -:103730008823D1F380913D020E940E0C80EE0E94FE -:10374000470C8CE40F900F900F900F900F90DF912B -:10375000CF911F910F91FF90EF90DF90CF90BF908E -:10376000AF909F908F907F906F905F900C94470CDC -:103770008AE20E940E0C8CE40E940E0C80EE0E94E5 -:103780000E0C80913C02811105C080913F0288237C -:1037900009F498CC80913D02D5CF882309F423CF3A -:1037A00080916F01811104C080910001882339F05C -:1037B00010926F01109200010E94280F29CF81E022 -:1037C00080936F0180930001F7CF882309F40BCF1A -:1037D00080913B02882349F080EE90E09093710144 -:1037E0008093700110923B02E7CF86E690E09093C1 -:1037F00071018093700181E080933B02DDCF62E034 -:10380000F3CE64E0F1CE1092ED0202CF882331F0C6 -:1038100081E08093F00210926701FACE1092F002DC -:10382000F7CE882349F0809185030E94BB0C81303C -:1038300019F482E30E946915F7018281882309F453 -:10384000B0C2809185030E94BB0C813009F0A9C2EF -:1038500084E30E946915A5C2073C2CE5120709F410 -:10386000AEC008F4A7C0083C4CE5140709F4ACC08E -:10387000093C1C4509F0ECCE4DE356E169E476E1E4 -:1038800079C0043DECE51E07A8F40E3CFCE51F07DB -:1038900008F018CC0C3C2CE5120709F49FC043EF4C -:1038A00056E164E077E10D3C1C4508F463C061E03B -:1038B00081E046C0053D4CE5140709F403CC08F44B -:1038C00092C00D351D4509F4FDCBC2CE8091640434 -:1038D00080FF31C08E7F8093640460916404709196 -:1038E000650480916604909167040E947815809128 -:1038F0004B03816080934B039FEFE0E7F2E0915030 -:10390000E040F040E1F700C000000F900F900F90F2 -:103910000F900F90DF91CF911F910F91FF90EF903B -:10392000DF90CF90BF90AF909F908F907F906F90DF -:103930005F900C948B0D81608093640461E08695A8 -:103940000F900F900F900F900F90DF91CF911F91DC -:103950000F91FF90EF90DF90CF90BF90AF909F902E -:103960008F907F906F905F900C94151741E457E112 -:103970006AE477E10F900F900F900F900F90DF9116 -:10398000CF911F910F91FF90EF90DF90CF90BF905C -:10399000AF909F908F907F906F905F900C94F908FC -:1039A0004AE457E161E477E1E5CF4DE656E166E7A9 -:1039B00076E1E0CF46E756E16DE676E1DBCF45E51F -:1039C00056E161E676E1D6CF41E656E165E576E17E -:1039D000D1CF49E456E16DE376E1CCCF44E057E145 -:1039E00063EF76E1C7CF0F900F900F900F900F907D -:1039F000DF91CF911F910F91FF90EF90DF90CF90CB -:103A0000BF90AF909F908F907F906F905F900C943D -:103A100054170E3D1C4509F01BCE0F900F900F90D0 -:103A20000F900F90DF91CF911F910F91FF90EF902A -:103A3000DF90CF90BF90AF909F908F907F906F90CE -:103A40005F900C94DD17C8010E94930BD82E0ECE08 -:103A5000092F0F70907F11F00295007F812F222394 -:103A6000C9F0002369F090E2910F983010F0111125 -:103A70000BC080916E03082B00936E030E94720BA3 -:103A8000812F0E94470C17C080919402082B00934D -:103A90009402F4CF0E940E0C002369F00095105E92 -:103AA000183010F0B11027C080916E0308230093E6 -:103AB0006E030E94720B98E0C91AD108E4E0CE169A -:103AC000D10408F0FFCA0E94E30E0F900F900F90F0 -:103AD0000F900F90DF91CF911F910F91FF90EF907A -:103AE000DF90CF90BF90AF909F908F907F906F901E -:103AF0005F900C944B0E80919402082300939402E3 -:103B0000D8CF892F8F70907F903211F08295807F6F -:103B1000F1E0BF120CC0222329F0333060F60E947E -:103B2000040CC9CF323038F60E94F90BC4CF2223DF -:103B300041F03323A1F340FFA3CF4F70F70145833A -:103B4000EECF332389F3193309F0F5C0FFEF27EEE9 -:103B500033E0F15020403040E1F700C00000812FF9 -:103B60000E940E0CA8CF892F86958695837061F0F0 -:103B7000813009F0A0CF812F9370211102C090E015 -:103B800080E00E945A0897CF812F9370211102C0C4 -:103B900090E080E00E9470088ECF892F8370A1F59D -:103BA000211189CF812F829586958770880F880F84 -:103BB000412F4F70082E01C0440F0A94EAF7212FBD -:103BC000207114FF07C02FE030E001C0220F8A955A -:103BD000EAF72095969596959370923081F0822F12 -:103BE000842B933030F480919502913029F0242B6E -:103BF00082230E94F50B5FCF842B822BFACF242BDC -:103C0000809195028227F5CF8695222311F0892F86 -:103C10008170882309F44FCF812F82958695877014 -:103C2000880F880F412F4F70082E01C0440F0A944F -:103C3000EAF7212F207114FF07C02FE030E001C008 -:103C4000220F8A95EAF72095969596959370923073 -:103C500081F0822F842B933030F480918503913052 -:103C600029F0242B82230E94CB1625CF842B822B74 -:103C7000FACF242B809185038227F5CF092F0F706F -:103C8000222329F0802F0E94E816812F48CF812F10 -:103C90000E94F90B802F0E94DC160DCF812FE1EFDF -:103CA0001E1789F1E11750F0F0EF1F17B9F022232A -:103CB000B1F13111E5CE892F8F7129C042EF141770 -:103CC00049F153EF1513F3CF80E0222361F29F7186 -:103CD00081E001C0880F9A95EAF7C5CF222379F0D9 -:103CE000323008F0E8CE292F2F7181E090E001C03A -:103CF000880F2A95EAF7909185038927B4CF33304E -:103D000008F0D9CEF0CF892F8F71222321F20E94A3 -:103D1000E816D1CE892F8F712223C9F3BCCF33236C -:103D200079F0893341F48FEF97EEE3E081509040D2 -:103D3000E040E1F712CF8FE39CE90197F1F70DCF57 -:103D4000892F8F71A8CF0031FFE51F0709F401CC3F -:103D500001312FE5120709F419CC0E944E08609337 -:103D6000F5027093F6028093F7029093F802F70140 -:103D70008281053E110509F4B8CC08F023CC0C3241 -:103D8000110509F443CD08F003CC0A30110509F4FC -:103D900048CD0531110509F44FCD0930110509F061 -:103DA00037CCF7018281882309F432CC80918503D6 -:103DB0000E94BB0C813009F02BCC81E300CC003198 -:103DC0003FE5130709F4C9CB01314FE5140779F634 -:103DD00082E0C4CB85E0DE01119601900D928A95B8 -:103DE000E1F7F701228189819A81211180C90E941E -:103DF000930B182F84C91F93CF93DF938091600298 -:103E0000807FA9F480915D02882389F080919202DD -:103E1000D091610260915B0270915C02A0915E02A0 -:103E2000B0915F02C62FC72316E0D81304C0DF91FC -:103E3000CF911F91089590E0109711F0CF3F19F4A2 -:103E400001968770F2CF189F9001199F300D1124B1 -:103E5000F901EE59FD4F41814713F2CF40814613DE -:103E6000EFCF42814111ECCF438154814A1B5B0B60 -:103E7000403A510528F7809160028F7080618093ED -:103E80006002F901E959FD4F80818F708061808364 -:103E90008BE592E00E944218DF91CF911F910C9424 -:103EA000890BAF92BF92CF92DF92EF92FF920F9366 -:103EB0001F93CF93DF93CDB7DEB761970FB6F8941A -:103EC000DEBF0FBECDBF8C0185E0F801DE011D967F -:103ED00001900D928A95E1F7F801E2808BE5A82E1A -:103EE00082E0B82E60915E0270915F0261157105EB -:103EF00009F432C190915B0240915C02892F8423C6 -:103F00008F3F09F429C120813181C380D480F09092 -:103F10005D02F601E61BF70BFF2009F4E8C0809173 -:103F20006002582F507FE03AF10508F0ABC0511104 -:103F300077C0FE2C431321C092131FC0E1101DC097 -:103F40008F70806180936002C5010E944218809149 -:103F50006002F80185838F2D61960FB6F894DEBF5D -:103F60000FBECDBFDF91CF911F910F91FF90EF90CA -:103F7000DF90CF90BF90AF900895CD2829F0822F89 -:103F800083238F3F09F003C180E0F82FF170DF2E0B -:103F900080FF3CC0809192024091610256E0841300 -:103FA00015C02D873E878D859E850E949C10292FE8 -:103FB00022952F702230F0F0243018F59F70F1F028 -:103FC000F8019581907FD1F4D12C1EC090E0589FCC -:103FD000F001599FF00D1124EE59FD4F6181361308 -:103FE00006C06081261303C06281E6120FC00196ED -:103FF0008770D5CF9F7011F0882331F3805E8830B1 -:1040000018F3C8010E944218FD2CA5CFEE2009F438 -:10401000A2CF80916002816080936002F12C9BCFDF -:10402000431306C0921304C0F801EE2009F479C0CE -:10403000C8010E94A810882309F1EE20F9F08091B0 -:104040006002803270F020915B0230915C02388710 -:104050002F831986DB86CA868C87CE0107960E943D -:10406000421886E0F801ABE5B2E001900D928A9526 -:10407000E1F70E94FB1EFF24F3946DCFC8010E945C -:104080004218F9CF51110AC08BE592E00E94421804 -:1040900086E0F50111928A95E9F7C0CF43130FC06E -:1040A00092130DC0E1100BC0F8018583C8010E9476 -:1040B000421886E0F50111928A95E9F74CCFC801C4 -:1040C0000E94A8108823D1F2EE20C1F280916002F4 -:1040D000803238F220915B0230915C023A8329836E -:1040E0001B82DD82CC828E83CE010196B8CFE03A6E -:1040F000F105F8F6FE2CEE2009F243131FC09213CF -:104100001DC08091600280FD10C0982F907F69F0E3 -:10411000F8018583903F31F0982F907F905F8F70EA -:10412000892B8583C8010E94421886E0F801ABE51F -:10413000B2E001900D928A95E1F70DCFC8010E947F -:10414000A81081118ECF80916002816080936002FF -:10415000C8010E944218FFCEEE2009F48FCFC8019B -:104160000E94A810F82E882309F488CF86E0F80171 -:10417000ABE5B2E001900D928A95E1F780915B0288 -:1041800090915C020E949C100E94FB1EE4CE81E094 -:104190008E25FBCE1F93CF93DF93CDB7DEB7679706 -:1041A0000FB6F894DEBF0FBECDBF4B8B5C8B6D8B13 -:1041B0007E8B8F8B6111109294021A8A198A85E086 -:1041C000FE017396DE011D9601900D928A95E1F72E -:1041D00086E0FE013D96DE01179601900D928A95CC -:1041E000E1F7CE0107960E94511F882389F016E05F -:1041F000809192029091610289134BC067960FB62D -:10420000F894DEBF0FBECDBFDF91CF911F9108950F -:1042100086E0FE013796DE01119601900D928A9597 -:10422000E1F78A859B85892B11F38F8198858923F6 -:104230008F3FE9F22091610230E0C9010196877059 -:104240009927409192024817190681F410926E0343 -:104250000E94AE11109261021092920286E0EBE58C -:10426000F2E0DF011D928A95E9F7C1CF96E0929FB7 -:10427000D001939FB00D1124AE59BD4FFE01319670 -:1042800001900D929A95E1F7809361020E94890B4B -:10429000AECF819FC00111248E599D4F0E94511FA6 -:1042A000882309F4ABCF8091920290E00196877049 -:1042B0009927809392029CCF0F931F93CF93DF9304 -:1042C00000D000D0CDB7DEB76091C5027091C602B4 -:1042D0008091C7029091C8020E943208643671052D -:1042E0008105910588F10E94C00E882379F10E9412 -:1042F0004E086E5F7F4F8F4F9F4F69837A838B830A -:104300009C8380912C0190912D0180559D4F40916F -:104310002B0150E04530510510F044E050E0BE0163 -:104320006F5F7F4F0E949F3484E090E00E9494333F -:10433000892BD9F40E944E086093C5027093C6027F -:104340008093C7029093C80281E010C00E944E087B -:104350000091D2021091D3022091D4023091D50263 -:10436000600F711F821F931FC4CF80E00F900F90CA -:104370000F900F90DF91CF911F910F910895BF92F1 -:10438000CF92DF92EF92FF920F931F93CF93DF9321 -:10439000B82EEB01F42E6901688179818A819B81B5 -:1043A0000E943208643671058105910510F4FF20E2 -:1043B00019F1EB2C0B2C000CFF088B2D9AE08902D5 -:1043C000F0011124EF5FFE4F8381948180559D4F52 -:1043D000428150E00417150708F4A801B6010E94B5 -:1043E0009F34C7010E949433892B89F40E944E08A0 -:1043F000688379838A839B8381E0DF91CF911F91CA -:104400000F91FF90EF90DF90CF90BF90089580E0E4 -:10441000F4CF0F931F93CF93DF930F92CDB7DEB7F7 -:104420008091590389832091C40290E041E02817CC -:10443000190609F440E001E010E09E012F5F3F4FB4 -:104440006DEC72E086E00E94BF210F90DF91CF916A -:104450001F910F9108950F931F93CF93DF93CDB7C3 -:10446000DEB728970FB6F894DEBF0FBECDBF85E04C -:10447000E4E6F4E0DE01119601900D928A95E1F7F1 -:104480008091490390914A03A0914B038E839F83AF -:10449000A88741E08885811101C040E008E010E074 -:1044A0009E012F5F3F4F69EC72E085E00E94BF21C3 -:1044B000811110924B0328960FB6F894DEBF0FBE01 -:1044C000CDBFDF91CF911F910F9108956F927F9291 -:1044D0008F929F92AF92BF92CF92DF92EF92FF9214 -:1044E0000F931F93CF93DF930F92CDB7DEB7862E36 -:1044F0005A016901682E880F7708C3010E9494331E -:10450000892B09F07BC08AE0869DF001879DF00D24 -:104510001124EF5FFE4F458150E04115510511F028 -:1045200041E050E08AE0869DF001879DF00D112466 -:10453000EF5FFE4F6681778160557D4FCE0101961A -:104540000E949F34F50160817181828193810E9474 -:104550003208643671058105910540F4B701C80140 -:104560000E94E3089981891709F44FC0082C000CB8 -:104570009908C4010E949433892B91F0B12C8B2DA2 -:104580000F90DF91CF911F910F91FF90EF90DF90EF -:10459000CF90BF90AF909F908F907F906F90089535 -:1045A0008AE0889DF001899DF00D1124EF5FFE4F98 -:1045B000458150E0E416F50608F4A7018AE0889DDD -:1045C000F001899DF00D1124EF5FFE4F6681778128 -:1045D00060557D4FC6010E949F34B701C8010E94FB -:1045E000E30899818913CACF0E944E08F5016083C0 -:1045F000718382839383BB24B394C1CFB12CA70171 -:10460000B801C6010E949F34BACFBB24B394F7CF40 -:10461000CF92DF92EF92FF920F931F93CF93DF938E -:1046200000D000D00F92CDB7DEB76B0185E0E82E49 -:10463000F12C01EB12E09E012F5F3F4F48EA52E060 -:1046400061E080E00E946622882349F095E0FE0147 -:104650003196A3EAB2E001900D929A95E1F795E0C8 -:10466000E3EAF2E0D60101900D929A95E1F70F90FE -:104670000F900F900F900F90DF91CF911F910F919E -:10468000FF90EF90DF90CF90089590E080E00E943F -:10469000B634893E9E4F11F40C94CF1080E00895FB -:1046A0001F920F920FB60F9211242F933F934F93A7 -:1046B0005F936F937F938F939F93AF93BF93CF93AA -:1046C000DF93EF93FF93D091E900DF708091EC00CE -:1046D000C82FC17080FDC0E81092E9008091F00001 -:1046E000877F8093F00078940E94B7111092E900C0 -:1046F0008091F00088608093F000CD2BCF70C09344 -:10470000E900FF91EF91DF91CF91BF91AF919F9120 -:104710008F917F916F915F914F913F912F910F906A -:104720000FBE0F901F9018951F920F920FB60F9209 -:1047300011242F933F934F935F936F937F938F93A6 -:104740009F93AF93BF93EF93FF938091E10082FF1C -:1047500009C08091E20082FF05C08091E1008B7F5B -:104760008093E1008091DA0080FF24C08091D8001E -:1047700080FF20C08091DA008E7F8093DA008091E4 -:10478000D90080FF9DC080E189BD82E189BD09B467 -:1047900000FEFDCF81E080937B0380916D0381114A -:1047A00009C00E94A4060E946F078091E200846005 -:1047B0008093E2008091E10080FF17C08091E200C9 -:1047C00080FF13C08091E2008E7F8093E200809191 -:1047D000E20080618093E2008091D8008062809343 -:1047E000D80019BC85E080937B038091E10084FFB1 -:1047F0002BC08091E20084FF27C080E189BD82E167 -:1048000089BD89B5982F917080FFFBCF8091D8002A -:104810008F7D8093D8008091E1008F7E8093E100AE -:104820008091E2008F7E8093E2008091E2008160BF -:104830008093E20080917C03882309F447C084E0E0 -:1048400080937B0380917B038091E10083FF27C0ED -:104850008091E20083FF23C08091E100877F8093F5 -:10486000E10082E080937B0310927C038091E10061 -:104870008E7F8093E1008091E2008E7F8093E20042 -:104880008091E20080618093E20042E060E080E09D -:104890000E943D078091F00088608093F000FF91B6 -:1048A000EF91BF91AF919F918F917F916F915F91A8 -:1048B0004F913F912F910F900FBE0F901F90189521 -:1048C00019BC10927B0310926D0374CF8091E300AA -:1048D00087FD93E090937B03B5CF78941F921FB62A -:1048E0001F9211248F939F93AF93BF938091660380 -:1048F00090916703A0916803B09169030196A11D8F -:10490000B11D8093660390936703A0936803B093EF -:104910006903BF91AF919F918F911F901FBE1F9010 -:1049200018959C014FB7F8948091660390916703A6 -:10493000A0916803B09169034FBF821B930B089548 -:104940002FB7F8948091660390916703A091680354 -:10495000B09169032FBF0895AF92BF92DF92EF929B -:10496000FF920F931F93CF93DF93CDB7DEB761977D -:104970000FB6F894DEBF0FBECDBF4C87888B998BE6 -:10498000E52ED62EF72E5E0127E0A20EB11C85E0A3 -:10499000F50111928A95E9F7809148038A3008F071 -:1049A00095C080914603909147030E9491240897F7 -:1049B00008F48CC004E610E025E030E0A50164E0D6 -:1049C00084E10E94D331892B09F0DEC010924803A4 -:1049D0008B8587FDD1C0E894E0F8809144039091E5 -:1049E0004503009709F0C2C08F819885891708F0A8 -:1049F00091C0981B892F41E0209170013091710185 -:104A0000889FC001112455E0589FF001599FF00D77 -:104A10001124E29FB001E39F700DF29F700D1124ED -:104A2000660F672F661F770B7195442319F07195F8 -:104A3000619571098091420390914303680F791F3A -:104A400089859A85891708F068C0981B892F41E0ED -:104A5000889FC001112455E0589FF001599FF00D27 -:104A60001124E29FC001E39F900DF29F900D11244D -:104A7000880F892F881F990B9195442319F09195E0 -:104A8000819591092091400330914103820F931F3A -:104A9000603871050CF444C06F577109709343037B -:104AA000609342033FE7D32E803891050CF44BC04E -:104AB0008F57910990934103809340039FE7F92E0C -:104AC0000E94A0249093470380934603ED86DE86E0 -:104AD000FF8686E0FE013C96DE01119601900D9264 -:104AE0008A95E1F729813A814B815C816D817E81D4 -:104AF00080E090E061960FB6F894DEBF0FBECDBFA8 -:104B0000DF91CF911F910F91FF90EF90DF90BF90B9 -:104B1000AF900895891B40E06FCF891B40E098CF8C -:104B20006138FFEF7F074CF461587F4F7093430368 -:104B30006093420321E8D22EB7CFD62E10924303C2 -:104B400010924203B1CF81382FEF92074CF4815875 -:104B50009F4F909341038093400381E8F82EB0CF9C -:104B6000F82E1092410310924003AACF0197909320 -:104B7000450380934403A4CF6894E0F884E00E9446 -:104B8000691584E190E0F3CF809148038F5F8093B3 -:104B9000480396CF9F92AF92BF92CF92DF92EF924F -:104BA000FF920F931F93CF93DF93CDB7DEB7649738 -:104BB0000FB6F894DEBF0FBECDBF8E010F5F1F4F43 -:104BC0008AE0D8011D928A95E9F79EE4C92E91E00A -:104BD000D92EF12CE12CAA24A394B12CF6018191B9 -:104BE0006F018F3F09F444C0F894E82FE295EF700D -:104BF000F0E021A18F70A50102C0440F551F8A95D6 -:104C0000E2F7CA01922F982B91A392A18095892354 -:104C100082A30E94AC0900C0E7E4F1E0912C31E0EE -:104C200021912F3F09F478C0A22FA295AF70B0E078 -:104C300090968C9190E02F7002C0959587952A955B -:104C4000E2F780FD69C0832F982A330F51E0EE34DC -:104C5000F50731F7F601319780818F3F11F00E94FF -:104C6000AE0980EA8A95F1F7F801EE0DFF1D9082FA -:104C7000AFEFEA1AFA0AB5E0EB16F10409F0AECF8D -:104C80004AE050E0B80188ED92E00E9492347C0145 -:104C9000892B41F08AE0F801A8EDB2E001900D9275 -:104CA0008A95E1F71091E302E114F104B9F181E092 -:104CB000809398020E94A02490939702809396027A -:104CC00080919602909197020E949124069770F02D -:104CD000A8EDB2E0E12FF0E0E65DFC4F8D9181930D -:104CE00022E0AD3DB207D1F71092980281E090E04A -:104CF000EF28C1F064960FB6F894DEBF0FBECDBFAB -:104D0000DF91CF911F910F91FF90EF90DF90CF90A7 -:104D1000BF90AF909F90089580E096CF80919802C9 -:104D20008111CECF0E94C00ED82EE091E3028823DD -:104D300009F4C9C07E0140E1E40EF11C85E0D70111 -:104D40001D928A95E9F70E2F10E0065D1C4F8091A9 -:104D5000D1028A3008F080C048E053E2B701C801B0 -:104D60000E947C0E882309F49AC041E358E2B701FF -:104D7000C8010E947C0E882309F491C04CE551E2E1 -:104D8000B701C8010E947C0E882309F488C04BE259 -:104D900052E2B701C8010E947C0E882309F47FC04B -:104DA00049E052E2B701C8010E947C0E882309F451 -:104DB00076C01092D1028091E20290E045E050E08E -:104DC000B701865D9C4F0E94923421E02093A1029E -:104DD000892B09F057C0D12C8BE9E82E82E0F82E00 -:104DE00010E000E0D7018D917D018823D1F08695F8 -:104DF000F80109F465C0E950FE4F808191819C87DC -:104E00008B871D860E94A0248160782F9F878E87C4 -:104E1000F701319710824B855C856D858F850E94E7 -:104E2000CA200E5F1F4F04301105E1F66091F502B4 -:104E30007091F6028091F7029091F8020E94320878 -:104E400061367A4E8105910528F040E060E080E00F -:104E50000E94080F8D2D4ECF8091990290919A0259 -:104E60000E949124843F914008F076CF8091A10266 -:104E7000882309F4B0CF85E0F70111928A95E9F70C -:104E80001092A102A091E202B0E0A65DBC4F85E0C5 -:104E9000FE01709601900D928A95E1F79DCF809169 -:104EA000D1028F3F31F08F5F8093D1028A3008F4B6 -:104EB00082CF0E94A02490939A0280939902D6CF29 -:104EC000ED50FE4F9ACFF0E0E65DFC4FF89485E0A0 -:104ED000A1EBB2E001900D928A95E1F765E070E0F8 -:104EE00081EB92E00E94E3088093B0020E94AC093B -:104EF000F894E091EB02F0E0E851FD4F80818B8760 -:104F00008093B70261E070E0CE010B960E94E30847 -:104F10008093B6020E94AC09F894C090B802D09079 -:104F2000B902E090BA02F090BB0280919D0290918C -:104F30009E02A0919F02B091A002C816D906EA066F -:104F4000FB06D1F0C0929D02D0929E02E0929F0299 -:104F5000F092A0020E94C00E81110EC00E944E0865 -:104F6000C61AD70AE80AF90AC092D202D092D3022E -:104F7000E092D402F092D5020E94AC09F89480919C -:104F8000C3028823F1F080FF0DC08091BC0280FF36 -:104F900025C09091640491609093640460E08695CC -:104FA0000E9415178091C30281FF09C020E0409143 -:104FB000BF026091BE028091BD020E948A151092CC -:104FC000C3020E94AC09F8948091C402882349F07E -:104FD0000E94860F0E94AC0980E08CCE0E94670E72 -:104FE000E1CF0E946B0FF6CFEF92FF920F931F93CA -:104FF000CF93DF9300D000D00F92CDB7DEB7162F3E -:10500000E82EF12CC701880F991F662339F18950CA -:105010009E4FFC01808191819A83898301E00B83FB -:105020000E94A0248160782F9D838C83F701E55630 -:10503000FD4F0127110F102B108349815A816B817D -:105040008D810F900F900F900F900F90DF91CF9167 -:105050001F910F91FF90EF900C94CA208D509E4F9E -:10506000D8CFCF92DF92EF92FF920F931F93CF93FF -:10507000DF930F92CDB7DEB7EE24E394F12C07EB6C -:1050800012E09E012F5F3F4F4CEA52E063E082E066 -:105090000E946622082F882321F1C090E5028C2D02 -:1050A00090E09C0128513D4F79011981F9018081DF -:1050B000181BD12E80E00AC0DA94F70180818F5F3F -:1050C000808360E08C2D0E94F427802F1D14A4F3B0 -:1050D000912F17FD90E0191B11110EC081110E9434 -:1050E000700B802F0F90DF91CF911F910F91FF9048 -:1050F000EF90DF90CF9008951F5FF701808181507E -:10510000808361E08C2D0E94F427802FE5CF1F92D1 -:105110001FB61F9211248F939F93AF93BF938091DB -:105120006503811113C08091660390916703A0917C -:105130006803B09169034196A11DB11D8093660378 -:1051400090936703A0936803B0936903BF91AF91F5 -:105150009F918F911F901FBE1F901895CDB7DEB7FE -:10516000E0970FB6F894DEBF0FBECDBF84B7877F40 -:1051700084BF0FB6F894A8958091600088618093F1 -:105180006000109260000FBE80E890E00FB6F894C7 -:1051900080936100909361000FBE85B7806885BFE2 -:1051A00085B7806885BF8AEA99E090933102809341 -:1051B00030020E94A4060E946F078091E200846082 -:1051C0008093E200789480917B038823A1F0109172 -:1051D000E9001F709091EC00892F817090FD80E8AC -:1051E000182B1092E9008091E80083FD0E94B7110E -:1051F0001F701093E90082E084BD93E095BD9AEFA3 -:1052000097BD80936E001092D2021092D30210923A -:10521000D4021092D5020E94CF10811102C00E94C8 -:105220002B100E94C00E8093580180915801882352 -:1052300009F4C9C01092720185E2809373010E9443 -:10524000C00E81110E9487328091580181112FC0B8 -:10525000FE01359686E0DF011D928A95E9F786E624 -:10526000898387E98A8386EC8B8384E38C8385E357 -:105270008D833497AEE4B1E0CE010B9621912D934E -:105280008E179F07D9F787E0E8E7F1E0DE019196F6 -:1052900001900D928A95E1F7FE01B196A7E4B1E085 -:1052A000CE01889621912D938E179F07D9F7809173 -:1052B000580195E0811190E09093E30285E0891B0D -:1052C0008093E2020EE411E083E5E82E81E0F82EFF -:1052D000F80181918F018F3F11F00E94AE09E01615 -:1052E000F106B1F707E411E0BEE4EB2EB1E0FB2ECE -:1052F000D8018D918D018F3F11F00E94AE09E0160B -:10530000F106B1F78AE0EAE2F3E0DF01282F1D920F -:105310002A95E9F7E8EDF2E0DF011D928A95E9F7B9 -:105320000E944523811102C00E94DD1782E090E0B7 -:105330000E94A83480931F0384E090E00E94A83468 -:10534000182F82E290E00E94A834982F812F90932A -:10535000D7028093D6020E94CA25EFE7FBEB319774 -:10536000F1F700C000000E94CA2580912A0380FF47 -:105370002EC06FEF7FEF90E080E00E94DA3481E092 -:105380008093E00080E28093D8001092C9008FE102 -:105390009EE40197F1F700C0000087E090EBDC018C -:1053A00080936D0690936E06A0936F06B09370067F -:1053B00088E19CE00FB6F894A895809360000FBE3A -:1053C00090936000FFCF85E28093720136CF83E037 -:1053D00090E00E94A8340E94F50B809185030E9402 -:1053E0007F160E944523811102C00E94DD1788E1CB -:1053F00090E00E94B03460935B0370935C038093F1 -:105400005D0390935E03672B682B692B11F40E9458 -:10541000A6170E94883067E081E00E945D1565E56F -:1054200086E10E945D1563E687E10E945D1560EAF2 -:105430008AE10E945D1569E98BE10E945D1565EFC7 -:105440008CE10E945D1560EA8DE10E945D1560E3CC -:105450008EE10E945D1566E083E00E945D1561E0CB -:105460008CE00E945D1560E081E00E945D1560E0C7 -:105470008CE00E945D156FE084E00E945D1561E0A4 -:105480008CE00E945D150E94C00E811102C00E9436 -:105490008A3283E080931A0380E280934E030E9455 -:1054A00088306DE070E08CE492E00E943B0F892B25 -:1054B000E9F580911A0363E070E081FD05C289E49B -:1054C00092E00E943B0F892B89F56DE070E089E343 -:1054D00092E00E943B0F892B49F50E944E086058CC -:1054E000774C8E4F9F4F6093550370935603809374 -:1054F000570390935803EBE6F4E080E092E0DF017D -:105500009C011D9221503040E1F7F0936C06E0932E -:105510006B068FEF9FEF90936A048093690481E09C -:1055200080935A038093590310921B038091E402E5 -:10553000811136C00E944523811104C00E94DD17ED -:105540000E94631788E090E00E94B0346093640486 -:1055500070936504809366049093670480914B0375 -:10556000836080934B036E7F71F40E94631788E021 -:1055700090E00E94B034609364047093650480935B -:105580006604909367040E94FE088091640480FF83 -:1055900004C060E086950E94151781E08093E402C4 -:1055A00080915801811106C084EF8093660185EFD8 -:1055B0008093650120916601A22FA295AF70B0E0A3 -:1055C00091963C9191972F7081E090E0BC01022E62 -:1055D00001C0660F0A94EAF7462F4095432391963F -:1055E0004C93919792963C919297362B92963C933E -:1055F000929740916501E42FE295EF70F0E031A1C0 -:105600004F70042E01C0880F0A94EAF7982F9095E6 -:10561000932391A392A1892B82A390968C9190E0E1 -:1056200002C0959587952A95E2F7817020A130E018 -:1056300002C0359527954A95E2F792E020FF90E069 -:10564000892B8093EC029091580181E098279093E8 -:10565000EB02891B8093E5020E94D61760E08AE086 -:105660000E94151781E00E94CB1680EE90E0909387 -:105670007101809370010E94280F89E591E0909359 -:10568000620380936103A0E46A2E80917B03FF2470 -:10569000F39400E112E1853009F465C10E94CA2546 -:1056A000E82E81110E944E08FAE22F2EF3E03F2EE1 -:1056B000E0E2F3E0D10110E000E0B02EDD90819156 -:1056C0008D1509F474C18D25C12CFF24F394982FF6 -:1056D0009F2109F467C10E94C00E882399F0C9A2D6 -:1056E000BAA2DF2081E009F480E08BA30E94A0240D -:1056F0008160782F9DA38CA349A15AA16BA18DA194 -:105700000E94CA20F801E05EFC4F8081F826F082FA -:105710008091EC02E82FEE0FEE0F90916601A92F19 -:10572000A295AF70B0E090962C9130E09F7002C0CF -:10573000359527959A95E2F7217033279091650169 -:10574000A92FA295AF70B0E090964C9150E09F7059 -:1057500002C0559547959A95E2F7CA01817099273D -:1057600040FF02C082E090E0822B8E2B8093EC02FF -:105770001091EB028F70E82FF0E0E350FE4F808134 -:105780009091EA02890F8093EA02F12C84306CF048 -:10579000E12FF0E0E851FD4F80818F5F808360E072 -:1057A000812F0E94F427FF24F3948091EA028D3F19 -:1057B0006CF4E12FF0E0E851FD4F8081815080834F -:1057C00061E0812F0E94F427FF24F3948091EA0284 -:1057D000082E000C990B64E070E00E9468348093FE -:1057E000EA02F1100E94700B80915A03882351F154 -:1057F00080911C0390911D030E949124C29708F090 -:10580000EDC02091690430916A042115310509F039 -:10581000F0C1809159038823A9F00E944E0800919D -:105820005503109156032091570330915803601B84 -:10583000710B820B930B6F3F7F4F8F4F9F4710F47D -:105840000E946B0FE11001C0F1100E94860F0E94B0 -:10585000E8100E94E30E90911E03891731F00E9418 -:10586000E30E80931E030E944B0E80917B038430D5 -:1058700009F00BCF83E08093E9008091E80082FF7C -:1058800004CF8091E80090E085FF0CC00E94C30621 -:1058900030E2E32EF12C8E010F5F1F4F882309F4B5 -:1058A00087C291E08091E8008B778093E80099238C -:1058B00009F4EBCEE981E150E33108F0DDC2F0E01C -:1058C000EC5AF94C0C947C3486E492E0FACD809149 -:1058D0007B03843009F437C080E00E944B0E809136 -:1058E000E702811109C0F092E7028091640481709F -:1058F0008093E6020E94670E0E946B0F0E94E810E0 -:105900001092650388E190E00FB6F894A895809313 -:1059100060000FBE6092600083B7817F846083BFA8 -:1059200083B7816083BF7894889583B78E7F83BF68 -:105930000FB6F894A895809160008861809360000C -:10594000109260000FBE80917A03882361F00E945C -:10595000CA25EAE2F3E081918111B9C3A4E3B3E07F -:10596000AE17BF07C1F780917B03853009F4AFCF35 -:1059700010926E030E94AE110E94E30E0E944B0E25 -:105980001092E7028091E602882349F08091640436 -:1059900081608093640460E086950E9415170E94E0 -:1059A000280F7CCEC394FF0C27E0C21290CE0F5F6D -:1059B0001F4F0A30110509F080CE8FEF88A789A705 -:1059C0001AA60E94A0248160782F9CA78BA748A5C7 -:1059D00059A56AA58CA50E94CA209ACE0E94A0242F -:1059E00090931D0380931C0360E080E00E94CC082C -:1059F0000E94E30E8093F9020E94C00E882309F4EE -:105A0000DFC06091F5027091F6028091F7029091EB -:105A1000F8020E943208613375478105910540F014 -:105A20000E946B0F80915A03882309F4F2CEE9CECD -:105A30000E94860F61E080E00E94CC0860E08FE762 -:105A400091E00E94411562E080E00E94CC088091C4 -:105A500085030E94BB0C823009F48CC008F081C021 -:105A6000882309F487C0813009F48AC065E080E0AA -:105A70000E94CC0860E08DE991E00E94411566E04B -:105A800080E00E94CC086091F9026695617082EA1C -:105A900091E00E94411567E080E00E94CC0860918F -:105AA000F9026095617087EA91E00E94411568E013 -:105AB00080E00E94CC086091F90262FB662760F9E1 -:105AC0008BEA91E00E9441156091F1027091F2021F -:105AD0008091F3029091F4020E9432086D3271407D -:105AE0008105910508F49ECF0E944E086093F10253 -:105AF0007093F2028093F3029093F4028091F0028B -:105B0000811104C080916701811142C06DE080E085 -:105B10000E94CC0860E080EB91E00E9441156AE0B1 -:105B200080E00E94CC0881E0809367018091EF02C1 -:105B300090E00196817099278093EF0221E030E098 -:105B4000281B390B40E6429FC001439F900D112452 -:105B50002091EE02222351F187529C4F0E94610650 -:105B600061CF833089F0843009F080CF60E081E933 -:105B700091E003C060E085E891E00E94411576CF96 -:105B800060E08BE891E0F9CF60E087E991E0F5CF44 -:105B90006AE080E00E94CC0860E080EB91E00E9427 -:105BA00041156BE080E00E94CC08C0CF2091ED024F -:105BB000222319F0875E9C4FD1CF875A9D4FCECFBD -:105BC00064E080E00E94CC0860E086EB91E00E94F7 -:105BD000411565E080E00E94CC0860E08CEB91E02C -:105BE0000E94411569E080E00E94CC0889E994E0B8 -:105BF000B5CF80911B0361E070E081110ACE082FC0 -:105C000010E02B01082E02C0440C551C0A94E2F748 -:105C1000A90144215521452B09F448C090911A034C -:105C200090FD46C08295880F807680936A01980126 -:105C3000369527953695279520936D01815E809343 -:105C40006B0110926E0124E630E047E050E068E618 -:105C500071E088E70E947F31892B09F0DACDA80135 -:105C600075E0440F551F7A95E1F780911A0380FD86 -:105C70002DC045595B4F04E610E020E230E060E4BF -:105C800088E70E94A631892B09F0C3CD0E94860FB8 -:105C9000C201809590954090690450906A04482212 -:105CA000592250926A0440926904B3CD8F5FA7CF06 -:105CB000880F880F880F80936A0110926D01895FA9 -:105CC00080936B0183E080936E01BDCFEAEFF2E039 -:105CD00080E2DF011D928A95E9F7E1E1F2E0F8AB9D -:105CE000EFA70DE012E067E0A62E99249394AFA5EC -:105CF000B8A96D91B8ABAFA7F80181918F01840F5E -:105D0000952F911D9C0125593B4F3EA72DA7E62FAE -:105D1000F0E0E650FD4F30E020E07A2C721AB92C0A -:105D2000022E01C0BB0C0A94EAF7CDA4DEA490E0D9 -:105D3000D6018D916D018B21672D691B6770862EB1 -:105D4000062E000C770BB82F01C0BB0F8A94EAF720 -:105D50008B2E7195619571096770772701C08695C3 -:105D60006A95EAF7882A8081882A80829F5F983026 -:105D7000F9F62F5F3F4F31962830310571F6E5E196 -:105D8000F2E02FA538A9E217F30709F0B0CF04E637 -:105D900010E020E230E04AEF52E071CF8091F10054 -:105DA000D8018D938D01B1E0EB1AF10809F479CD9A -:105DB0008091E80085FDF2CF8091E8008B77809399 -:105DC000E8000E94C306882399F36BCD1A8289E00C -:105DD0008B8311C08A81823009F491C1833091F1A3 -:105DE000813009F049C00E944E080E9482346B83C2 -:105DF0007C838D839E8380917B03843009F045CC26 -:105E00001091E9001F709091EC00892F817090FD36 -:105E100080E8182B82E08093E9008091E80080FF01 -:105E20000DC050E040E060E270E0CE0101960E94BB -:105E3000F4068091E8008E778093E8001F7010933D -:105E4000E90023CCFE013396D1018D911D01819390 -:105E5000B4E32B16B3E03B06B9F7CDCF8A8182308D -:105E600059F46B817C818D819E810E94823486E20F -:105E700090E00E94BC34BFCF8FEF8983BCCF4C81B0 -:105E80006B818A810E943A109827892798279E83E0 -:105E90008D83B1CFED80FE80FE24EF24FE248A8125 -:105EA0000B81EEE00E9F80011124FCE88F9F000D16 -:105EB000111D11248C8190E0880F991F080F191F64 -:105EC0006F2DC80187960E94BC346E2DC80188963C -:105ED000D0CF0E94BE0F8FCF8A818138C1F060F48D -:105EE000803809F088CF20E04B8160916604809172 -:105EF00065040E948A157FCF8238E9F0833809F063 -:105F00007ACF20E0409167046C818B81F2CF60E012 -:105F10008B810E9415178B81811103C00E94670E2F -:105F20006ACF8091640481608093640460E0869508 -:105F30000E94151760CF8B81809368045CCF8A81A3 -:105F4000813899F030F4803809F055CF809167049A -:105F50003FCF823891F0833809F04DCF80916504AE -:105F60008B83809166048C8346CF8091640480FF8C -:105F700002C086952DCF80E02BCF8091680428CF7A -:105F80006091640470916504809166049091670447 -:105F90000E94781530CF80E18A832DCF81E08A83FB -:105FA0008DE116CFCA80DB80DC24CD24DC248E0179 -:105FB0000F5F1F4FEC80E00EF12EF11CC6018D51DA -:105FC0009D4F0E151F0509F416CF2DE1C21621E0D5 -:105FD000D20658F40E94A834D80114968C93FFEF8F -:105FE000CF1ADF0A0F5F1F4FE9CFF8011482F7CFF6 -:105FF0000A811B811027012710279E012F5F3F4F29 -:106000006901EC80E00EF12EF11CC8018D519D4F0D -:10601000E016F10609F4EFCE0D3131E0130728F454 -:10602000D60114966C910E94BC34BFEFCB1ADB0AE8 -:106030000F5F1F4FEACF0E94AE0FDDCE85E0ACCFE1 -:10604000CA80DB80DC24CD24DC248E010F5F1F4F4F -:10605000EC80E00EF12EF11CC6018796E016F106E9 -:1060600009F4C9CEECEBCE16E2E0DE0658F40E944D -:10607000A834D80114968C93FFEFCF1ADF0A0F5F74 -:106080001F4FEACFF8011482F7CF0A811B81102736 -:10609000012710279E012F5F3F4F6901EC80E00E22 -:1060A000F12EF11CC8018796E016F10609F4A3CE83 -:1060B0000C3B32E0130728F4D60114966C910E9431 -:1060C000BC34BFEFCB1ADB0A0F5F1F4FEBCF09BD0C -:1060D00019BD09B400FEFDCF8091D8008F7D80935B -:1060E000D8008091E00082608093E0008091E00021 -:1060F00081FDFCCF10926E030E94AE1134CC86E27B -:1061000090E00E94A8341B821C821D828E8373CE75 -:106110001092B9008CE08093B80008959F92AF92DE -:10612000BF92CF92DF92EF92FF920F931F93CF9384 -:10613000DF93B82EEB010E94A0246C01EE24E394BF -:10614000F12CC431D10560F025E0E22EF12CCF3FD7 -:10615000DC0731F0CE0164E170E00E9448347B013D -:1061600084EAA82E94E8992E1092BC00A092BC005C -:106170000E94A0248C018091BC0087FF0DC08091FB -:10618000B900887F883039F18091B900887F8031EB -:1061900011F10FEF1FEF09C00E94A024801B910B8B -:1061A0008E159F0540F30EEF1FEFCF3FDC07E1F2A6 -:1061B000C6010E9491248C179D07B0F2C801DF919F -:1061C000CF911F910F91FF90EF90DF90CF90BF90F4 -:1061D000AF909F900895B092BB009092BC000E9437 -:1061E000A0248C018091BC0087FF0AC08091B90077 -:1061F000887F883111F0803461F610E000E0DECF56 -:106200000E94A024801B910B8E159F0558F3CBCFC5 -:106210000F931F93CF93DF93EB018093BB0084E830 -:106220008093BC000E94A0248C018091BC0087FF59 -:1062300011C02091B900287F81E090E0283211F44C -:1062400090E080E0919581959109DF91CF911F9128 -:106250000F910895CF3FDC0741F30E94A024801BDB -:10626000910B8C179D0708F38EEF9FEFEECF0F93E6 -:106270001F93CF93DF93EC0184EC8093BC000E94CA -:10628000A0248C018091BC0087FF08C08091BB00D6 -:1062900090E0DF91CF911F910F910895CF3FDC07E0 -:1062A00089F30E94A024801B910B8C179D0750F34B -:1062B0008EEF9FEFEECF0F931F93CF93DF93EC0101 -:1062C00084E88093BC000E94A0248C018091BC00D3 -:1062D00087FF08C08091BB0090E0DF91CF911F91B4 -:1062E0000F910895CF3FDC0789F30E94A024801B03 -:1062F000910B8C179D0750F38EEF9FEFEECFCF924F -:10630000DF92EF92FF920F931F93CF93DF936B0176 -:106310008A017901B9010E948E30E6010C0D1D1D24 -:10632000C017D10761F424E92093BC00DF91CF911D -:106330001F910F91FF90EF90DF90CF90089597FD00 -:10634000F2CFB70189910E940831EACFCF92DF9254 -:10635000EF92FF920F931F93CF93DF93C62F6A01A3 -:106360007901B8010E948E3097FD0CC0B8018C2FC6 -:106370000E940831E601EC0CFD1CCE15DF0511F082 -:1063800097FF0CC024E92093BC00DF91CF911F91AF -:106390000F91FF90EF90DF90CF900895B801899111 -:1063A0000E940831EACFCF92DF92EF92FF920F93D3 -:1063B0001F93CF93DF93F82EE62EEA016901B8010F -:1063C0000E948E3097FD15C0B8018E2D0E940831B5 -:1063D00097FD0FC0B8018F2D81600E948E30F12C87 -:1063E000E12C21E0C21AD108EC14FD0400F597FF5E -:1063F00011C024E92093BC001816190614F490E08B -:1064000080E0DF91CF911F910F91FF90EF90DF908F -:10641000CF900895C8010E94373197FD04C0FE0156 -:10642000EE0DFF1D80832FEFE21AF20ADDCF97FDFC -:10643000E0CFC8010E945B3197FDDBCFCC0DDD1DA5 -:106440008883D7CF84E98093BC0008958EE14A9B6E -:1064500002C08150E1F74A9BFECF08955A9880E22E -:106460008A95F1F75A9A0895FC013BE03A95F1F7C5 -:1064700098E020E080E031E040E14A95F1F7880FB4 -:106480004A9B02C08160232742E04A95F1F7000051 -:1064900040E14A95F1F7915079F790E19A95F1F73B -:1064A00099B132E03A95F1F7000040E14A95F1F7F1 -:1064B00092FB992790F992272081920F908308955B -:1064C000EF92FF920F931F93CF93DF930F92CDB76D -:1064D000DEB719828C017C01E60EF11C0E151F053A -:1064E00061F481E09981911180E00F90DF91CF916B -:1064F0001F910F91FF90EF9008950E942632CE01D8 -:1065000001960E943432F80181938F01E7CF529AAD -:106510005A9A089552985A9AEA9AE9E6F0E08081E8 -:106520008F7C808308956150770B91E001C0990FB3 -:106530006A95EAF720E031E0911108C0222391F03A -:106540005A9A80E28A95F1F75A980895492F48237C -:1065500039F05A9A232740E24A95F1F79695ECCF05 -:106560005A98F9CF5A98EDCFFF920F931F93CF937C -:10657000DF93EC018C01060F111DC017D10731F418 -:10658000DF91CF911F910F91FF900895F9900E9494 -:106590002E3268E08F2D0E949332EFCF1F920F9220 -:1065A0000FB60F921124EF92FF920F931F932F9328 -:1065B0003F934F935F936F937F938F939F93AF938B -:1065C000BF93EF93FF93CF93DF930F92CDB7DEB7D7 -:1065D00019820E942632CE0101960E943432A82FE1 -:1065E000A695A695A695282F229525709A2F957089 -:1065F000290F922F937026952695920F98279770C2 -:106600008981982B09F075C0A83008F072C080E12C -:106610008A95F1F75A9A529AB2E0BA95F1F700C00A -:106620005A98EA2EF12CEAE0AE9FD0011124AF5F18 -:10663000BE4F1896ED91FC9119973097B1F060918B -:10664000FB017091FC0116962D913C911797260F36 -:10665000371F13968D919C911497680F791F15968B -:106660004C91159712968C9109958AE08E9DF001B8 -:106670008F9DF00D1124EF5FFE4F6581662351F071 -:106680002091FB013091FC0186819781820F931F3D -:106690000E94B4320E942E32F0E1FA95F1F75A9836 -:1066A00052985A9A80E18A95F1F78AE08E9D80018E -:1066B0008F9D100D11240F5F1E4FD80112966C9103 -:1066C0001297662371F12091FB013091FC01139622 -:1066D0008D919C91820F931F0E946032D801ED91A1 -:1066E000FC91882311F088E001C082E080830E9441 -:1066F00026320F90DF91CF91FF91EF91BF91AF9133 -:106700009F918F917F916F915F914F913F912F91C9 -:106710001F910F91FF90EF900F900FBE0F901F9061 -:106720001895ED91FC91DFCF0F931F93CF93DF93DB -:10673000EC0108970CF0A9C08AE08C9FF0018D9FB6 -:10674000F00D1124EF5FFE4F80819181892B09F4B8 -:106750009CC0F894529A5A9885E08A95F1F7000007 -:106760008C2F869585709C2F9570890F982F93702C -:1067700086958695890F8E0193E0000F111F9A95DB -:10678000E1F7082B0E942E3200C068E0802F0E94A3 -:106790009332A0E1AA95F1F752985A9A4A9B27C0E2 -:1067A00087E090E04A9925C08AE08C9F80018D9F08 -:1067B000100D11240F5F1E4FF80165816623A1F1B2 -:1067C0002091FB013091FC0186819781820F931FFC -:1067D0000E946032811128C0529A5A9AD801ED91D4 -:1067E000FC9182E08083789482E090E016C000C043 -:1067F000D5CF0197B9F4529A5A9A8AE08C9FF0014A -:106800008D9FF00D1124EF5FFE4F0190F081E02D80 -:1068100081E08083789481E090E0DF91CF911F91B7 -:106820000F91089500C0BECF0E942632B0E2BA9503 -:10683000F1F75A98529AE0E1EA95F1F78AE08C9FD5 -:10684000F0018D9FF00D1124EF5FFE4F62816623F2 -:1068500051F02091FB013091FC0183819481820FE2 -:10686000931F0E94B4320E942E328AE08C9FF00166 -:106870008D9FF00D1124EF5FFE4F0190F081E02D10 -:106880001082789490E080E0C8CF84E090E0C5CF9B -:10689000AA1BBB1B51E107C0AA1FBB1FA617B70746 -:1068A00010F0A61BB70B881F991F5A95A9F7809562 -:1068B0009095BC01CD010895991B79E004C0991F02 -:1068C000961708F0961B881F7A95C9F7809508954A -:1068D00097FB072E16F4009407D077FD09D00E948D -:1068E000483407FC05D03EF4909581959F4F08955C -:1068F000709561957F4F0895EE0FFF1F0590F491FD -:10690000E02D099469279627692778278727782714 -:106910000895FB01DC0102C005900D9241505040EA -:10692000D8F70895FB01DC0104C08D910190801916 -:1069300021F441505040C8F7881B990B0895FB0182 -:10694000DC0102C001900D9241505040D8F70895EB -:10695000F999FECF92BD81BDF89A992780B5089527 -:10696000A6E1B0E044E050E00C94E234A8E1B0E0ED -:1069700042E050E00C94E234262FF999FECF92BD0C -:1069800081BDF89A019700B4021639F01FBA20BDF4 -:106990000FB6F894FA9AF99A0FBE08950396272F26 -:1069A0000E94BD340E94BC34252F0E94BD34242F88 -:1069B0000C94BD340196272F0E94BD340C94BC3436 -:1069C000DC01CB01FC01F999FECF06C0F2BDE1BDAF -:1069D000F89A319600B40D9241505040B8F708959E -:1069E0000E94F7346894B1110C94863508950E9482 -:1069F0006B3588F09F5798F0B92F9927B751B0F0B1 -:106A0000E1F0660F771F881F991F1AF0BA95C9F732 -:106A100014C0B13091F00E948535B1E008950C9416 -:106A20008535672F782F8827B85F39F0B93FCCF3C9 -:106A3000869577956795B395D9F73EF490958095AF -:106A4000709561957F4F8F4F9F4F0895E89409C0CF -:106A500097FB3EF490958095709561957F4F8F4F91 -:106A60009F4F9923A9F0F92F96E9BB279395F695A7 -:106A7000879577956795B795F111F8CFFAF4BB0F25 -:106A800011F460FF1BC06F5F7F4F8F4F9F4F16C089 -:106A9000882311F096E911C0772321F09EE8872F13 -:106AA000762F05C0662371F096E8862F70E060E0CF -:106AB0002AF09A95660F771F881FDAF7880F969548 -:106AC000879597F9089557FD9058440F551F59F031 -:106AD0005F3F71F04795880F97FB991F61F09F3FCB -:106AE00079F087950895121613061406551FF2CFF4 -:106AF0004695F1DF08C0161617061806991FF1CF44 -:106B000086957105610508940895E894BB2766276A -:106B10007727CB0197F908950E949F350C94103682 -:106B20000E94023638F00E94093620F0952311F0B9 -:106B30000C94F9350C94FF3511240C9486350E9481 -:106B4000633570F3959FC1F3950F50E0551F629F19 -:106B5000F001729FBB27F00DB11D639FAA27F00DB6 -:106B6000B11DAA1F649F6627B00DA11D661F829FDD -:106B70002227B00DA11D621F739FB00DA11D621FC2 -:106B8000839FA00D611D221F749F3327A00D611DDF -:106B9000231F849F600D211D822F762F6A2F1124C1 -:106BA0009F5750409AF0F1F088234AF0EE0FFF1FF4 -:106BB000BB1F661F771F881F91505040A9F79E3F4B -:106BC000510580F00C94F9350C9486355F3FE4F361 -:106BD000983ED4F3869577956795B795F795E795A1 -:106BE0009F5FC1F7FE2B880F911D9695879597F9AA -:106BF000089597F99F6780E870E060E008959FEF3F -:106C000080EC089500240A94161617061806090643 -:106C1000089500240A941216130614060506089512 -:106C2000092E0394000C11F4882352F0BB0F40F49A -:106C3000BF2B11F460FF04C06F5F7F4F8F4F9F4FDA -:106C40000895F894FFCFBA10BA10C310C310C5103E -:106C5000C310C310C310BA10BA10CA10C310C310A7 -:106C6000CA109F12C7126A14C7126A14FA121B13B1 -:106C70006A1419142614931809190C1920192319C8 -:106C800036193F196319A919DB19EF1975199819E4 -:106C9000281D281D811D811DB31D5B1D5B1D5B1DF6 -:106CA000CD1D3E1E4E1E4E1EE62EEA2E2E2F3F2FCF -:106CB0004A2F692F6C2F9F2FC02F3C2F3C2FCB2F9B -:0E6CC000CE2FD22FF82F1B301E302030453043 -:106CCE00013A0200000001000000003A020000003C -:106CDE0005010000003A0200000001060000003A23 -:106CEE000200000001070000003A02040800000044 -:106CFE000000003A02080C0000000000003A0201F9 -:106D0E001400000000000036323331F7F6FF6697AC -:106D1E00C634350000000000012F085E0D3D0D3910 -:106D2E000D350D2E08F4F5010021007F2200030120 -:106D3E008000004A004A4A01F6F731333236FF4CE2 -:106D4E00415945520042617365200047616D6520CF -:106D5E00005261697365004C6F776572004C4F434A -:106D6E004B0043617073004E756D005363726C007F -:106D7E00202020202000534F4C415200544D5053A0 -:106D8E005400818283E200E900EA00B500B600B744 -:106D9E0000CD008301CC008A0192019401210223CF -:106DAE000224022502260227022A02B300B4006F33 -:106DBE000070000603060806010606B00200FF0179 -:106DCE0000010000FFFF0000010001FF000008109D -:106DDE00181810080000010202020202020202024A -:106DEE000240227B49012701AC009E0BB70BD70B4B +:1020300083E290E00E942C35C1110CC0CFEF6C2FD1 +:1020400084E290E00E942C356C2F85E290E0CF91E5 +:102050000C942C35C2E1F3CF80E00E94131060E0B5 +:1020600086E290E00E942C350E94BE0F0E94AE0FC7 +:1020700081E00C9413100F931F93CF93DF93C42F21 +:10208000D0E0CC0FDD1F2EE0629FC00DD11D1124CA +:102090003CE8839FC00DD11D1124CE0187960E947C +:1020A0001835082F10E0102F0027CE0188960E94C7 +:1020B00018359801282BC901DF91CF911F910F91FD +:1020C0000895462F853038F47A3028F4673018F4B4 +:1020D000672F0C943B1090E080E00895CF92DF9240 +:1020E000FF920F931F93CF93DF936C0100918A03AC +:1020F00080919802082BC7E0D0E010E0FC2EC801C8 +:102100000C2E02C0959587950A94E2F780FD0CC0CD +:102110002197A0F7F12C8F2DDF91CF911F910F9177 +:10212000FF90DF90CF900895B6018C2F0E94611030 +:102130000E94080A019761F3EECFCF93DF93EC0181 +:102140000E946E10BE010E946110DF91CF910C942D +:10215000080AFC01808191810E949D10292F2F7017 +:1021600092959F7092509E3078F4E92FF0E0ED56F2 +:10217000F94C0C94EC34803F19F020F4883E20F4A4 +:1021800081E00895843FE1F380E00895883EC0F344 +:10219000813FD1F7F5CF822F869586958695089554 +:1021A00083E290E00E941835813289F484E290E065 +:1021B0000E941835823159F485E290E00E9418356A +:1021C00091E0823109F090E0892F8170089580E0DC +:1021D000FCCF1F93CF93DF93CDB7DEB768970FB6D1 +:1021E000F894DEBF0FBECDBF40913F035091400336 +:1021F00060914103709142038091430390914403A5 +:102200000E94901B20933F0330934003609343034D +:1022100070934403142F119510934103652F61951A +:102220006093420386E0EFE3F3E0DE01179601904E +:102230000D928A95E1F786E0FE013796DE01119650 +:1022400001900D928A95E1F79B858C852091700114 +:102250002223B1F0772761950CF47095072E000CBE +:10226000880B990B0E9498352AE939E949E95EE320 +:102270000E94FC350E946035962F812F60E010E0AF +:102280001B836C839D838E8386E0FE013196DE0185 +:102290001D9601900D928A95E1F786E0FE013D962C +:1022A000DE01539601900D928A95E1F786E0FE01DA +:1022B0007396DE01119601900D928A95E1F786E002 +:1022C000FE013196AFE3B3E001900D928A95E1F7FC +:1022D00086E0EFE3F3E0DE01179601900D928A9518 +:1022E000E1F786E0E9E3F3E0DE01119601900D925B +:1022F0008A95E1F746E050E0BE016F5F7F4FCE0167 +:1023000007960E940235892B79F0E0916603F091DF +:102310006703309749F082E080933F030480F581A2 +:10232000E02D8FE393E00995109241031092420350 +:10233000109243031092440386E0EFE3F3E0A9E335 +:10234000B3E001900D928A95E1F768960FB6F89484 +:10235000DEBF0FBECDBFDF91CF911F910895E6E3A1 +:10236000F2E086E0DF011D928A95E9F70C94E70B15 +:102370001F93CF93DF93CDB7DEB7AA970FB6F8942C +:10238000DEBF0FBECDBF82E893E02091F100DC01FB +:102390002D93CD01B3E08A389B07B9F78091830371 +:1023A000833009F472C0B8F4813009F449C0823036 +:1023B00009F4B5C08091E80083FF8DC2809182034B +:1023C000909183039A3008F086C2E92FF0E0EF5530 +:1023D000F94C0C94EC348A3009F490C08B3009F439 +:1023E00071C0893039F780918203813219F7809169 +:1023F000860390918703009711F00297D9F6809198 +:10240000E800877F8093E8008091E80082FF38C071 +:102410009091F3008091F200029731F48091F100E5 +:10242000813011F0863021F48091F10080937503A2 +:102430008091E8008B778093E8000E941E07BACF56 +:1024400080918203813A09F0B5CF8091E800877FBF +:102450008093E8008091860390918703892B61F433 +:1024600068E086E793E070E00E94D0078091E80082 +:102470008B778093E8009ECF60E090E080E0F3CF20 +:10248000809180038111C0CF95CF80918203813AE2 +:1024900009F090CF8091860390918703892B09F0F2 +:1024A00089CF8091E800877F8093E8008091E800E1 +:1024B00080FFFCCF809178018093F1008091E8004B +:1024C0008E77B9CF80918203813209F073CF8091EA +:1024D000860390918703892B09F06CCF8091E800E7 +:1024E000877F8093E8000E941E0780918403809379 +:1024F0007801109273030E94AF115CCF8091820328 +:10250000813209F057CF8091E800877F8093E800FF +:102510000E941E0780918503809374034BCF8091A6 +:102520008203813A09F046CF8091E800877F80934B +:10253000E8008091E80080FFFCCF80917403BCCF5D +:10254000803899F0823809F0C6C1809186038F7077 +:10255000873008F0C0C18093E9008091EB0085FBD3 +:10256000882780F91092E90006C080917E0390913F +:102570007F03911182609091E800977F9093E8002B +:102580008093F1001092F1008091E8008E779FC156 +:10259000882309F48DC1823009F09DC180918403A4 +:1025A000811190C1809186038F702FEF280F263004 +:1025B00008F091C18093E9002091EB0020FF82C1D7 +:1025C000933031F48091EB0080628093EB007AC10C +:1025D0009091EB0090619093EB0021E030E001C01E +:1025E000220F8A95EAF72093EA001092EA00809180 +:1025F000EB008860EACF81116EC1109184031F77D0 +:102600008091E3008078812B8093E3008091E80043 +:10261000877F8093E8000E941E078091E80080FF7A +:10262000FCCF8091E30080688093E30082E0111189 +:1026300083E0809380034FC18058823008F04BC103 +:1026400020918403309185032C3DE3E03E07A1F502 +:1026500083E08A838AE289834FB7F894DE01139678 +:1026600020E03EE051E2E32FF0E050935700E49188 +:1026700020FF03C0E295EF703F5FEF708E2F90E078 +:10268000EA30C0F0C7968D939D932F5F243159F7A0 +:102690004FBF8091E800877F8093E8006AE270E096 +:1026A000CE0101960E94D0078091E8008B7780933D +:1026B000E80011C1C096E7CF80918603909187030F +:1026C000432F55274330510509F44AC078F541306E +:1026D000510509F47AC08BE590E0ECE8FBE042306C +:1026E000510509F0F8C02091E800277F2093E80009 +:1026F00020918803309189038217930708F49C0185 +:1027000040E02115310509F065C0411163C0809199 +:10271000E80082FDC9CF80918003882329F28530AB +:1027200019F28091E80083FFF2CFBECF413251050C +:1027300009F43CC04232510509F0CDC08330910507 +:1027400008F0C9C0FC01EE0FFF1FEB5DFD4F0190CB +:10275000F081E02D8E5D9D4FDC018C9190E01AC0E0 +:10276000332721303105D1F02115310561F02230B8 +:10277000310509F0B0C0E9EFFBE0E4918E2F90E065 +:10278000E9EFFBE007C0EBE2FCE0E4918E2F90E084 +:10279000EBE2FCE0009709F49EC0A5CFE9E1FCE084 +:1027A000E4918E2F90E0E9E1FCE0F4CF83309105D5 +:1027B00008F091C0880F991FFC01E55DFD4F019065 +:1027C000F081E02D89E090E08ECF82E190E0E7EEAD +:1027D000FBE089CF80918003882309F465CF8530A1 +:1027E00009F462CF8091E80083FD5ECF8091E8001C +:1027F00082FD8DCF8091E80080FF83CF9091F30020 +:102800008091F2002115310519F08830910550F0C2 +:1028100041E0089709F040E08091E8008E778093CE +:10282000E8006FCF44914093F10031962150310977 +:102830000196E8CF803809F04EC08091E800877F8C +:102840008093E800809181038093F1009DCE8111F7 +:1028500042C0109184031230F0F58091E800877F28 +:102860008093E800109381030E941E07112311F04A +:1028700084E005C08091E30087FDFACF81E080937A +:10288000800342E061EC81E00E943D0742E261EC9E +:1028900084E00E943D0742E261EC82E00E943D0735 +:1028A00042E260EC83E00E943D078091800313C008 +:1028B00080918403813079F481E0933009F080E0E5 +:1028C00080937F031092E9008091E800877F8093D6 +:1028D000E8000E941E078091E80083FF0AC08091F3 +:1028E000E800877F8093E8008091EB00806280930E +:1028F000EB00AA960FB6F894DEBF0FBECDBFDF91F6 +:10290000CF911F9108951F93CF93DF93162FC091FE +:102910007006D09171068A30D1F420915303CE0114 +:1029200080579440622F70E00E94B834281B822F99 +:1029300066E00E94CC34C82FC15020F4DF91CF91C3 +:102940001F91089560E080E20E948314F5CF8D30DE +:10295000E9F4C057D44020915303622F70E0CE01B8 +:102960000E94B834281B822F9E01280F311D21158B +:10297000324018F080E0D0E0C0E0C80FD11DC0594F +:10298000DB4FD0937106C0937006D8CF96E0FE015E +:10299000A4E5B3E001900D929A95E1F7803E90F1A5 +:1029A00086E0FE0111928A95E9F7C0917006D091F8 +:1029B0007106111133C046E050E0BE0184E593E09A +:1029C0000E9402359E0120573440892B91F52A5FE1 +:1029D0003F4F40915303642F70E0C9010E94B83407 +:1029E000481B463010F4240F311D211572E03707C3 +:1029F00010F030E020E020593B4F309371062093D7 +:102A000070069CCFF6E08F9FB0011124685B794F70 +:102A100046E050E0CE010E94F934C7CF9E012A5F04 +:102A20003F4FFE012E173F0731F280818095819341 +:102A3000F9CFC90145E0969587954A95E1F741E0C0 +:102A400050E0BA0102C0660F771F8A95E2F7CB010A +:102A500060916E0470916F04862B972BB9016B5FA8 +:102A60007F4FE5E076956795EA95E1F702C0440F60 +:102A7000551F6A95E2F7842B952B90936F048093F2 +:102A80006E04A5CFFF920F931F93CF93DF93EC01BA +:102A9000F62EFC0101900020E9F78F010150110989 +:102AA000C017D10730F0DF91CF911F910F91FF90A8 +:102AB00008956F2D89910E948314F2CFE1E5F3E030 +:102AC0008083618324E630E042E050E0BF0184EB84 +:102AD0000C94EF31CF93C82F60E08CE00E945E151C +:102AE0006C2F84E00E945E1561E08CE0CF910C9425 +:102AF0005E15CF92DF92EF92FF926B017C010E94F4 +:102B0000FE08B701A60188E090E0FF90EF90DF900B +:102B1000CF900C943E35AF92BF92CF92DF92EF925E +:102B2000FF920F931F93CF93DF9300D00F92CDB7F7 +:102B3000DEB7082FF62E142FE22E8091690480FF55 +:102B40004FC0E82FE695AE2FB0E0AA5EBD4F9C9136 +:102B500090934E038E7F823009F056C0413A08F0C0 +:102B600040EA9E012F5F3F4F6F2D802F0E94140976 +:102B70008091690480FF11C02B8139814A81809145 +:102B800075019091760153E0859FF0011124E5577E +:102B9000FC4F891798F10E948B0D80916A04801375 +:102BA00008C080916B048F1104C080916C04811760 +:102BB00029F08091500382608093500300936A044F +:102BC000F0926B0410936C04EE2051F06091690454 +:102BD00070916A0480916B0490916C040E94791545 +:102BE0000F900F900F90DF91CF911F910F91FF9059 +:102BF000EF90DF90CF90BF90AF90089541833083E6 +:102C000022838F5F3396C5CF923039F6E2508E2FF4 +:102C10008170D82EE695F0E0E750FA4FA590B49079 +:102C2000C12CBB2460917701C61608F0B4CF2C2DBF +:102C300030E0A29EC001A39E900DB29E900D112483 +:102C400070E00E94B834802FD11016C0860F4091DA +:102C50007501420F532F511D9A01220F331F240F6C +:102C6000351F25573C4F412F113A08F040EA6F2D90 +:102C70000E941409C394D6CF861BE9CF20E00C94A0 +:102C80008B15CF93C82F0E94BB0C823099F138F47A +:102C90008823C1F0813029F18C2FCF9108958330A2 +:102CA00081F18430C9F740E56FEF8AED0E943E164E +:102CB00087E00E946A1580910001882369F31092D1 +:102CC00070010CC040E56FEF82E30E943E168091D8 +:102CD00000018823A1F381E0809370010E94280FF6 +:102CE000DBCF40E56FEF8CEF0E943E1685E40E943B +:102CF0006A15D2CF40E56FEF80E50E943E1685E26F +:102D0000F6CF40E56FEF86E70E943E168FE1EFCFEA +:102D10000E94411680938A030C94E70B80918A03EA +:102D2000982F9670963019F488600C948816877FD7 +:102D3000FCCF21E030E001C0220F8A95EAF7209510 +:102D400080918A0382230C94881621E030E001C030 +:102D5000220F8A95EAF780918A03822B0C948816B9 +:102D6000E9E6F4E0438121E1421B08F440E021E080 +:102D7000628181810C948B15E9E6F4E0438121E1C5 +:102D8000420F08F44FEF21E0628181810C948B1592 +:102D9000E9E6F4E0628121E1621B08F460E021E0F1 +:102DA000438181810C948B15E9E6F4E0628121E195 +:102DB000620F08F46FEF21E0438181810C948B1541 +:102DC000E9E6F4E0818121E04381628188500C943E +:102DD0008B15E9E6F4E0818121E043816281885F1F +:102DE0000C948B1580916D04882319F08150809389 +:102DF0006D046091690470916A0480916B049091F4 +:102E00006C040C94791580916D04833018F48F5FF5 +:102E100080936D046091690470916A0480916B04E1 +:102E200090916C040C9479159091690490FF26C0E0 +:102E3000917081111CC0926090936904809150033D +:102E4000816080935003662351F060916904709112 +:102E50006A0480916B0490916C040E9479154091F2 +:102E60006C0460916B0480916A040C943E168C3063 +:102E700010F09661E1CF880F982BDECF08958091F6 +:102E800069048695815009F48BE061E00C94141775 +:102E90008091690486958F5F8C3008F081E061E055 +:102EA0000C9414178091690480FF07C0869582589E +:102EB0008F77893010F40C94481761E082E00C940D +:102EC0001417E9E6F4E083E0808311828FEF8283B8 +:102ED00080EA83831482AEE4B3E012968C91129759 +:102EE000836012968C9360817181828193810C94AE +:102EF0007915AB01BC0188E190E00C943E35CF938D +:102F0000C82FE2E6F3E0982F990F990F990F80816F +:102F10008770892B8083E3E6F3E09C2F929596954A +:102F200097708081887F892B808360916003709186 +:102F3000610380916203909163030E9479176C2F63 +:102F400082E0CF910C945E15E0E6F3E089E880839F +:102F5000118282818C7F8283609160037091610312 +:102F600080916203909163030C947917E0E6F3E09B +:102F700080818E7F80836091600370916103809176 +:102F80006203909163030C947917E0E6F3E080818B +:102F9000816080836091600370916103809162031E +:102FA000909163030C9479170E94F83040E060E040 +:102FB00080E00C94080F69EE7EEF90E080E00E94C4 +:102FC0004A3560E082E090E00E942C3560E083E0CA +:102FD00090E00E942C351092980260E084E090E02E +:102FE0000E942C3560E082E290E00E942C3560E087 +:102FF00085E090E00E942C3560E086E090E00E9441 +:103000002C356FEF87E090E00E942C3540E050E0D7 +:10301000BA0188E090E00E943E3560E08DE090E0EB +:103020000E942C3540E050E0BA0188E190E00E9417 +:103030003E3560E087E190E00E942C3540E050E0B2 +:10304000BA018CE190E00E943E3570E060E080E2E1 +:1030500090E00E944A350E94A41780E00E9413105D +:103060000E942C1040E050E0BA018FE090E00E94F6 +:103070003E3540E050E0BA0183E190E00C943E35EB +:103080000F931F93CF93DF9300D000D0CDB7DEB75F +:103090006091CA027091CB028091CC029091CD02D6 +:1030A0000E943208643671058105910588F10E94FD +:1030B000C00E882379F10E944E086E5F7F4F8F4FBC +:1030C0009F4F69837A838B839C8380912D0190919C +:1030D0002E018B549D4F40912C0150E045305105FD +:1030E00010F044E050E0BE016F5F7F4F0E940F354B +:1030F00084E090E00E940434892BD9F40E944E08A9 +:103100006093CA027093CB028093CC029093CD025D +:1031100081E010C00E944E080091D7021091D802A1 +:103120002091D9023091DA02600F711F821F931F24 +:10313000C4CF80E00F900F900F900F90DF91CF9150 +:103140001F910F910895BF92CF92DF92EF92FF925D +:103150000F931F93CF93DF93B82EEB01F42E6901E9 +:10316000688179818A819B810E9432086436710569 +:103170008105910510F4FF2019F1EB2C0B2C000CAC +:10318000FF088B2D9AE08902F0011124EE5FFE4FBB +:10319000838194818B549D4F428150E00417150721 +:1031A00008F4A801B6010E940F35C7010E9404343B +:1031B000892B89F40E944E08688379838A839B83D4 +:1031C00081E0DF91CF911F910F91FF90EF90DF9001 +:1031D000CF90BF90089580E0F4CF0F931F93CF93CB +:1031E000DF930F92CDB7DEB780915E038983209184 +:1031F000C90290E041E02817190609F440E001E017 +:1032000010E09E012F5F3F4F62ED72E086E00E946A +:10321000A3180F90DF91CF911F910F9108950F93F5 +:103220001F93CF93DF93CDB7DEB728970FB6F894EF +:10323000DEBF0FBECDBF85E0E9E6F4E0DE0111960A +:1032400001900D928A95E1F780914E0390914F0382 +:10325000A09150038E839F83A88741E088858111C8 +:1032600001C040E008E010E09E012F5F3F4F6EEC90 +:1032700072E085E00E94A3188111109250032896F5 +:103280000FB6F894DEBF0FBECDBFDF91CF911F9177 +:103290000F9108956F927F928F929F92AF92BF92FB +:1032A000CF92DF92EF92FF920F931F93CF93DF9312 +:1032B0000F92CDB7DEB7862E5A016901682E880FAE +:1032C0007708C3010E940434892B09F07BC08AE08F +:1032D000869DF001879DF00D1124EE5FFE4F458124 +:1032E00050E04115510511F041E050E08AE0869D23 +:1032F000F001879DF00D1124EE5FFE4F668177810E +:103300006B547D4FCE0101960E940F35F50160810F +:103310007181828193810E94320864367105810532 +:10332000910540F4B701C8010E94E308998189170B +:1033300009F44FC0082C000C9908C4010E94043401 +:10334000892B91F0B12C8B2D0F90DF91CF911F9194 +:103350000F91FF90EF90DF90CF90BF90AF909F9034 +:103360008F907F906F9008958AE0889DF001899DED +:10337000F00D1124EE5FFE4F458150E0E416F50696 +:1033800008F4A7018AE0889DF001899DF00D1124C1 +:10339000EE5FFE4F668177816B547D4FC6010E94C0 +:1033A0000F35B701C8010E94E30899818913CACF7C +:1033B0000E944E08F5016083718382839383BB244E +:1033C000B394C1CFB12CA701B801C6010E940F353B +:1033D000BACFBB24B394F7CFCF92DF92EF92FF9294 +:1033E0000F931F93CF93DF9300D000D00F92CDB7F0 +:1033F000DEB76B0185E0E82EF12C06EB12E09E01B2 +:103400002F5F3F4F4DEA52E061E080E00E944A1991 +:10341000882349F095E0FE013196A8EAB2E00190D8 +:103420000D929A95E1F795E0E8EAF2E0D601019075 +:103430000D929A95E1F70F900F900F900F900F90CB +:10344000DF91CF911F910F91FF90EF90DF90CF9080 +:10345000089590E080E00E942635893E9E4F11F449 +:103460000C94D01080E008951F920F920FB60F9227 +:1034700011242F933F934F935F936F937F938F9379 +:103480009F93AF93BF93CF93DF93EF93FF93D0912D +:10349000E900DF708091EC00C82FC17080FDC0E8AA +:1034A0001092E9008091F000877F8093F00078947B +:1034B0000E94B8111092E9008091F000886080931A +:1034C000F000CD2BCF70C093E900FF91EF91DF9119 +:1034D000CF91BF91AF919F918F917F916F915F91AC +:1034E0004F913F912F910F900FBE0F901F90189505 +:1034F0001F920F920FB60F9211242F933F934F9369 +:103500005F936F937F938F939F93AF93BF93EF934B +:10351000FF938091E10082FF09C08091E20082FF69 +:1035200005C08091E1008B7F8093E1008091DA00FB +:1035300080FF24C08091D80080FF20C08091DA00F5 +:103540008E7F8093DA008091D90080FF9DC080E15A +:1035500089BD82E189BD09B400FEFDCF81E0809381 +:10356000800380917203811109C00E94A4060E9409 +:103570006F078091E20084608093E2008091E10017 +:1035800080FF17C08091E20080FF13C08091E200AD +:103590008E7F8093E2008091E20080618093E20060 +:1035A0008091D80080628093D80019BC85E0809318 +:1035B00080038091E10084FF2BC08091E20084FFB2 +:1035C00027C080E189BD82E189BD89B5982F9170BE +:1035D00080FFFBCF8091D8008F7D8093D8008091B1 +:1035E000E1008F7E8093E1008091E2008F7E8093E6 +:1035F000E2008091E20081608093E200809181038B +:10360000882309F447C084E080938003809180037D +:103610008091E10083FF27C08091E20083FF23C0F7 +:103620008091E100877F8093E10082E080938003B6 +:10363000109281038091E1008E7F8093E100809160 +:10364000E2008E7F8093E2008091E20080618093AF +:10365000E20042E060E080E00E943D078091F000DF +:1036600088608093F000FF91EF91BF91AF919F919F +:103670008F917F916F915F914F913F912F910F901B +:103680000FBE0F901F90189519BC109280031092D6 +:10369000720374CF8091E30087FD93E090938003E1 +:1036A000B5CF78941F921FB61F9211248F939F93CA +:1036B000AF93BF9380916B0390916C03A0916D03C6 +:1036C000B0916E030196A11DB11D80936B03909381 +:1036D0006C03A0936D03B0936E03BF91AF919F9164 +:1036E0008F911F901FBE1F9018959C014FB7F894A3 +:1036F00080916B0390916C03A0916D03B0916E0368 +:103700004FBF821B930B08952FB7F89480916B03E2 +:1037100090916C03A0916D03B0916E032FBF08953B +:10372000AF92BF92DF92EF92FF920F931F93CF93CE +:10373000DF93CDB7DEB761970FB6F894DEBF0FBE4B +:10374000CDBF4C87888B998BE52ED62EF72E5E0148 +:1037500027E0A20EB11C85E0F50111928A95E9F7E8 +:1037600080914D038A3008F095C080914B03909171 +:103770004C030E94751B089708F48CC004E610E007 +:1037800025E030E0A50164E084E10E944332892B0A +:1037900009F0DEC010924D038B8587FDD1C0E894FF +:1037A000E0F88091490390914A03009709F0C2C064 +:1037B0008F819885891708F091C0981B892F41E067 +:1037C0002091710130917201889FC001112455E050 +:1037D000589FF001599FF00D1124E29FB001E39F23 +:1037E000700DF29F700D1124660F672F661F770B07 +:1037F0007195442319F07195619571098091470382 +:1038000090914803680F791F89859A85891708F078 +:1038100068C0981B892F41E0889FC001112455E0A2 +:10382000589FF001599FF00D1124E29FC001E39FC2 +:10383000900DF29F900D1124880F892F881F990BEE +:103840009195442319F09195819591092091450313 +:1038500030914603820F931F603871050CF444C009 +:103860006F57710970934803609347033FE7D32E66 +:10387000803891050CF44BC08F5791099093460303 +:10388000809345039FE7F92E0E94841B90934C037D +:1038900080934B03ED86DE86FF8686E0FE013C9634 +:1038A000DE01119601900D928A95E1F729813A8106 +:1038B0004B815C816D817E8180E090E061960FB6E6 +:1038C000F894DEBF0FBECDBFDF91CF911F910F9156 +:1038D000FF90EF90DF90BF90AF900895891B40E07C +:1038E0006FCF891B40E098CF6138FFEF7F074CF422 +:1038F00061587F4F709348036093470321E8D22EAD +:10390000B7CFD62E1092480310924703B1CF81381B +:103910002FEF92074CF481589F4F9093460380936A +:10392000450381E8F82EB0CFF82E1092460310928E +:103930004503AACF019790934A0380934903A4CFEC +:103940006894E0F884E00E946A1584E190E0F3CF87 +:1039500080914D038F5F80934D0396CF5F926F925E +:103960007F928F929F92AF92BF92CF92DF92EF920F +:10397000FF920F931F93CF93DF9300D000D00F924D +:10398000CDB7DEB77C01FC0183819481892B31F0B6 +:103990008081918189238F3F09F0DDC60F900F90C0 +:1039A0000F900F900F90DF91CF911F910F91FF908B +:1039B000EF90DF90CF90BF90AF909F908F907F90CF +:1039C0006F905F9008950E946E10182F682F898164 +:1039D0009A810E94BB0B69817A81812F0E946110BC +:1039E0008C01F7018281882361F0F801E65EFC45D5 +:1039F000ED30F10530F4E555F94C0C94EC340E94AF +:103A0000C517D0906003D0FE1CC08D2D86958370A5 +:103A1000F7019281992309F460C1823090F4B701D3 +:103A2000C8010E948608882361F0D694D694D69463 +:103A30008091610383708295880F807E8D290E941A +:103A40006A15F7018281882309F47AC6C801825178 +:103A50009F45409708F036C68FEF93E00E941835D7 +:103A6000025193EEA92E92E0B92E811197CF011148 +:103A700038C11C821B82662463948AE0582E85011B +:103A80000F5F1F4FC5010E94183589831A82882352 +:103A900009F484CF9FEF980F933008F031C18A83E7 +:103AA000698232E0A30EB11CC8010E9418358B83D5 +:103AB000882309F473CF8E010F5F1F4FF801208117 +:103AC0002223E9F2213009F055C1918182819130A0 +:103AD00009F018C10E5F1F4F6AE070E0893311F4DE +:103AE00060E570E00E94F30E13C10E94B61789CF03 +:103AF0008091600380FF0DC00E94B6176091600343 +:103B00007091610380916203909163030E94791721 +:103B100078CF0E94C517F2CF0E94A41772CF909160 +:103B20006003892F86958F5F8370880F997F892B1B +:103B300080936003982F9670963001F7897F809369 +:103B40006003DCCF90916103892F8B7F92FF8460AB +:103B500080936103D3CF80916003982F96959695BB +:103B600096958091610383708295880F807E892B62 +:103B70008C3798F48F5F282F220F220F220F9091FD +:103B800060039770922B9093600382958695837063 +:103B9000909161039C7F892BDBCF81E0ECCF8091FA +:103BA0006003982F96959695969580916103837002 +:103BB0008295880F807E892B11F08150DCCF8BE7B6 +:103BC000DACF30916103932F969596959695209133 +:103BD0006203822F83708295880F807E892B90E00C +:103BE0000196482F440F440F440F3770342B309305 +:103BF000610335E0969587953A95E1F783702C7FC0 +:103C0000822B809362037ACF30916103932F969534 +:103C10009695969520916203822F83708295880FE6 +:103C2000807E892B8150990BDCCF8091620382FFCB +:103C300012C08B7F80936203609160037091610377 +:103C400080916203909163030E94791760E081E0A4 +:103C50000E945E15D6CE84608093620360916003FB +:103C60007091610380916203909163030E947917C0 +:103C700060E08CE00E945E1564E182E00E945E15C7 +:103C800065E081E00E945E1561E08CE0E1CF80910B +:103C90006203982F969596959695809163038295E9 +:103CA000880F807E892B883720F4865F0E947F17DB +:103CB000A8CE88E7FBCF80916203982F96959695C2 +:103CC0009695809163038295880F807E892B84313D +:103CD00010F08A50EBCF84E1E9CF882309F4B1CE0C +:103CE0009ECEA114F4E0BF0609F458CEC5010E948F +:103CF0001835811101C001502FEFA21AB20AB7CEB8 +:103D00005801D9CE923039F40E5F1F4F0E94470CF4 +:103D10000F5F1F4FD3CE933029F40E5F1F4F0E94C9 +:103D20000E0CF6CF943019F00F5F1F4FF1CF0E5FDE +:103D30001F4F30E020E0B8016F5F7F4FF8014181F5 +:103D40008053990B8A30910550F02150310900F3CE +:103D50008FE99FE00197F1F700C00000F6CF529E77 +:103D6000F001539EF00D11249C012E0F3F1F842F54 +:103D70008B01E1CFE22FF0E0E754FE4F7490822FE9 +:103D800086958695869590E0FC01E755FE4FE49078 +:103D90002770F12C022E02C0F594E7940A94E2F702 +:103DA000E1E0EE22FF24FC01E756FE4FC490D12C47 +:103DB000022E02C0D594C7940A94E2F7F1E0CF2214 +:103DC000DD24FC01E757FE4F8490912C02C09594AE +:103DD00087942A95E2F721E082229924E114F104E4 +:103DE00019F081EE0E94470CC114D10419F086EE3F +:103DF0000E94470C39E36AE070E0731202C060E58C +:103E000070E0872D0E94F30ECD2819F086EE0E94F7 +:103E10000E0CEF2819F081EE0E940E0C892809F48F +:103E200077CF6AE070E08CE25DCE81E00E94A5165B +:103E300003C081E00E9499160F900F900F900F9091 +:103E40000F90DF91CF911F910F91FF90EF90DF9036 +:103E5000CF90BF90AF909F908F907F906F905F902A +:103E60000C948E1682E0E2CF003E110509F457C093 +:103E700008F04DC00C32110509F487C1F701928199 +:103E8000911186C28091730382720A3CFCE51F0780 +:103E900009F45EC208F0B4C1053C3CE5130709F41F +:103EA00043C208F098C1033C5CE5150709F41DC244 +:103EB00008F035C2023C1C4509F4C7C1F701008176 +:103EC0001181992309F47EC2C8010E946E10D82E78 +:103ED000682FC8010E94BB0BB8018D2D0E94611094 +:103EE0000E94080A182FB82EF70122814581342F2D +:103EF00032953F70892F82958F70C82ED12C8C30CF +:103F000008F098C2F601E854F94C0C94EC34013EE8 +:103F1000110509F4A5C0043E110509F0AFCF8823AF +:103F200009F430C181E08093F20280918A030E94FB +:103F3000BB0C813009F0A2CF83E30E946A159ECFAB +:103F40000338FFE51F0709F46EC060F5053F110552 +:103F500009F414C140F4043F110509F08FCF61E06A +:103F60000E94CC0C8BCF063F110509F409C1023821 +:103F70003FE5130709F082CF882309F47FCF81EE54 +:103F80000E94470C83EE0E94470C8FE40E94470C6E +:103F90008FE40E940E0C83EE0E940E0C81EE0E94B4 +:103FA0000E0C6CCF05384FE5140709F4B5C008F4C2 +:103FB0005AC006389FE5190709F4C6C00738EFE56F +:103FC0001E0709F05BCF882309F4E8CC87E20E9442 +:103FD000470CFFEF28EA31E0F15020403040E1F794 +:103FE00000C000008CE20E94470C87E20E940E0C89 +:103FF0008BE10E94470C4FEF50EE80E04150504063 +:104000008040E1F700C000008CE20E940E0C8BE1C2 +:104010000E940E0C40E56FEF84EB0E943E1681E09B +:1040200080933E02BBCC882309F428CF81EE0E9406 +:10403000470C83EE0E94470C80E50E94470C80E508 +:10404000A8CF80934202109341020093400288233C +:1040500021F081E08093F30211CF1092F3020ECF92 +:1040600080933F02F0CF882379F180913F0288232B +:1040700049F0809140020E940E0C80EE0E94470C95 +:104080008AE20CC0809142028823D1F380914002E1 +:104090000E940E0C80EE0E94470C8CE40F900F9053 +:1040A0000F900F900F90DF91CF911F910F91FF9084 +:1040B000EF90DF90CF90BF90AF909F908F907F90C8 +:1040C0006F905F900C94470C8AE20E940E0C8CE477 +:1040D0000E940E0C80EE0E940E0C80913F02811116 +:1040E00005C080914202882309F458CC8091400297 +:1040F000D5CF882309F4C2CE80913E02882309F4EB +:10410000BDCE0E94841B9093A1028093A0021092C6 +:104110003E0210920101B2CE882309F420CF809193 +:104120007001811104C080910001882339F0109240 +:104130007001109200010E94280FA0CE81E08093B0 +:10414000700180930001F7CF882309F408CF809194 +:104150003D02882349F080EE90E0909372018093B5 +:10416000710110923D02E7CF86E690E090937201D4 +:104170008093710181E080933D02DDCF62E0F0CE5B +:1041800064E0EECE1092F20279CE882331F081E025 +:104190008093F5021092680171CE1092F5026ECEF6 +:1041A000882349F080918A030E94BB0C813019F466 +:1041B00082E30E946A15F7018281882309F4B2C262 +:1041C00080918A030E94BB0C813009F0ABC284E36A +:1041D0000E946A15A7C2073C2CE5120709F4AEC07D +:1041E00008F4A7C0083C4CE5140709F4ACC0093C2E +:1041F0001C4509F063CE40EB56E16CEB76E179C0EB +:10420000043DECE51E07A8F40E3CFCE51F0708F092 +:10421000C5CB0C3C2CE5120709F49FC042EF56E1D8 +:1042200063E077E10D3C1C4508F463C061E081E088 +:1042300046C0053D4CE5140709F4B0CB08F492C024 +:104240000D351D4509F4AACB39CE8091690480FF54 +:1042500031C08E7F809369046091690470916A0413 +:1042600080916B0490916C040E94791580915003A9 +:104270008160809350039FEFE0E7F2E09150E040CF +:10428000F040E1F700C000000F900F900F900F90EA +:104290000F90DF91CF911F910F91FF90EF90DF90E2 +:1042A000CF90BF90AF909F908F907F906F905F90D6 +:1042B0000C948B0D81608093690461E086950F906A +:1042C0000F900F900F900F90DF91CF911F910F9152 +:1042D000FF90EF90DF90CF90BF90AF909F908F9026 +:1042E0007F906F905F900C9414174FE357E168E450 +:1042F00077E10F900F900F900F900F90DF91CF917B +:104300001F910F91FF90EF90DF90CF90BF90AF90F3 +:104310009F908F907F906F905F900C94F90848E485 +:1043200057E16FE377E1E5CF40EE56E169EE76E1E4 +:10433000E0CF49EE56E160EE76E1DBCF48EC56E1A6 +:1043400064ED76E1D6CF44ED56E168EC76E1D1CF6D +:104350004CEB56E160EB76E1CCCF43E057E162EF06 +:1043600076E1C7CF0F900F900F900F900F90DF91D5 +:10437000CF911F910F91FF90EF90DF90CF90BF9062 +:10438000AF909F908F907F906F905F900C9452179A +:104390000E3D1C4509F092CD0F900F900F900F909D +:1043A0000F90DF91CF911F910F91FF90EF90DF90D1 +:1043B000CF90BF90AF909F908F907F906F905F90C5 +:1043C0000C94DB17C8010E94930BD82E85CD092FC2 +:1043D0000F70907F11F00295007F812F2223C9F08A +:1043E000002369F090E2910F983010F011110BC08A +:1043F00080917303082B009373030E94720B812F2B +:104400000E94470C17C080919702082B00939702D7 +:10441000F4CF0E940E0C002369F00095105E183056 +:1044200010F0B11027C08091730308230093730329 +:104430000E94720B98E0C91AD108E4E0CE16D104AC +:1044400008F0ACCA0E94E30E0F900F900F900F90EF +:104450000F90DF91CF911F910F91FF90EF90DF9020 +:10446000CF90BF90AF909F908F907F906F905F9014 +:104470000C944B0E80919702082300939702D8CF9B +:10448000892F8F70907F903211F08295807FF1E0BC +:10449000BF120CC0222329F0333060F60E94040CB6 +:1044A000C9CF323038F60E94F90BC4CF222341F035 +:1044B0003323A1F340FFA3CF4F70F7014583EECF25 +:1044C000332389F3193309F0F5C0FFEF27EE33E00A +:1044D000F15020403040E1F700C00000812F0E94E1 +:1044E0000E0CA8CF892F86958695837061F0813058 +:1044F00009F0A0CF812F9370211102C090E080E0DD +:104500000E945A0897CF812F9370211102C090E02A +:1045100080E00E9470088ECF892F8370A1F5211151 +:1045200089CF812F829586958770880F880F412FBC +:104530004F70082E01C0440F0A94EAF7212F207112 +:1045400014FF07C02FE030E001C0220F8A95EAF780 +:104550002095969596959370923081F0822F842BBA +:10456000933030F480919802913029F0242B8223EB +:104570000E94F50B5FCF842B822BFACF242B8091E6 +:1045800098028227F5CF8695222311F0892F81701A +:10459000882309F44FCF812F829586958770880FE5 +:1045A000880F412F4F70082E01C0440F0A94EAF77C +:1045B000212F207114FF07C02FE030E001C0220F2F +:1045C0008A95EAF72095969596959370923081F0AA +:1045D000822F842B933030F480918A03913029F01C +:1045E000242B82230E94881625CF842B822BFACF7E +:1045F000242B80918A038227F5CF092F0F70222365 +:1046000029F0802F0E94A516812F48CF812F0E946C +:10461000F90B802F0E9499160DCF812FE1EF1E1705 +:1046200089F1E11750F0F0EF1F17B9F02223B1F133 +:104630003111E5CE892F8F7129C042EF141749F14E +:1046400053EF1513F3CF80E0222361F29F7181E0D5 +:1046500001C0880F9A95EAF7C5CF222379F032304E +:1046600008F0E8CE292F2F7181E090E001C0880F7B +:104670002A95EAF790918A038927B4CF333008F05E +:10468000D9CEF0CF892F8F71222321F20E94A51657 +:10469000D1CE892F8F712223C9F3BCCF332379F078 +:1046A000893341F48FEF97EEE3E081509040E04092 +:1046B000E1F712CF8FE39CE90197F1F70DCF892F36 +:1046C0008F71A8CF0031FFE51F0709F4AECB013190 +:1046D0002FE5120709F4C6CB0E944E086093FA0238 +:1046E0007093FB028093FC029093FD02F70182819C +:1046F000053E110509F4A5CC08F022CC01321105C4 +:1047000008F0B2CB0E31110508F0F3CC0A301105D8 +:1047100009F446CD0531110509F44DCD09301105D7 +:1047200009F0ACCBF7018281882309F4A7CB8091F3 +:104730008A030E94BB0C813009F0A0CB81E3FDCB42 +:1047400000313FE5130709F474CB01314FE514073D +:1047500069F682E06FCB85E0DE01119601900D9243 +:104760008A95E1F7F701228189819A8121112BC96C +:104770000E94930B182F2FC91F93CF93DF93809123 +:104780006302807FA9F480916002882389F0809180 +:104790009502D091640260915E0270915F02A091D7 +:1047A0006102B0916202C62FC72316E0D81304C07D +:1047B000DF91CF911F91089590E0109711F0CF3FB6 +:1047C00019F401968770F2CF189F9001199F300D50 +:1047D0001124F901EB59FD4F41814713F2CF40817C +:1047E0004613EFCF42814111ECCF438154814A1BE4 +:1047F0005B0B403A510528F7809163028F7080610E +:1048000080936302F901E659FD4F80818F708061CA +:1048100080838EE592E00E94AE1CDF91CF911F91C4 +:104820000C94890BAF92BF92CF92DF92EF92FF92DE +:104830000F931F93CF93DF93CDB7DEB761970FB67A +:10484000F894DEBF0FBECDBF8C0185E0F801DE011C +:104850001D9601900D928A95E1F7F801E2808EE5B0 +:10486000A82E82E0B82E60916102709162026115FB +:10487000710509F432C190915E0240915F02892F67 +:1048800084238F3F09F429C120813181C380D480E2 +:10489000F0906002F601E61BF70BFF2009F4E8C078 +:1048A00080916302582F507FE03AF10508F0ABC0C9 +:1048B000511177C0FE2C431321C092131FC0E11089 +:1048C0001DC08F70806180936302C5010E94AE1C81 +:1048D00080916302F80185838F2D61960FB6F8945D +:1048E000DEBF0FBECDBFDF91CF911F910F91FF9023 +:1048F000EF90DF90CF90BF90AF900895CD2829F032 +:10490000822F83238F3F09F003C180E0F82FF170DD +:10491000DF2E80FF3CC0809195024091640256E0FA +:10492000841315C02D873E878D859E850E949D101E +:10493000292F22952F702230F0F0243018F59F7027 +:10494000F1F0F8019581907FD1F4D12C1EC090E058 +:10495000589FF001599FF00D1124EB59FD4F6181D3 +:10496000361306C06081261303C06281E6120FC0B1 +:1049700001968770D5CF9F7011F0882331F3805E48 +:10498000883018F3C8010E94AE1CFD2CA5CFEE2084 +:1049900009F4A2CF80916302816080936302F12CBD +:1049A0009BCF431306C0921304C0F801EE2009F414 +:1049B00079C0C8010E94A910882309F1EE20F9F0FE +:1049C00080916302803270F020915E0230915F022C +:1049D00038872F831986DB86CA868C87CE01079697 +:1049E0000E94AE1C86E0F801AEE5B2E001900D92A7 +:1049F0008A95E1F70E94BC23FF24F3946DCFC80190 +:104A00000E94AE1CF9CF51110AC08EE592E00E94BF +:104A1000AE1C86E0F50111928A95E9F7C0CF4313E9 +:104A20000FC092130DC0E1100BC0F8018583C801BF +:104A30000E94AE1C86E0F50111928A95E9F74CCFF1 +:104A4000C8010E94A9108823D1F2EE20C1F2809102 +:104A50006302803238F220915E0230915F023A8325 +:104A600029831B82DD82CC828E83CE010196B8CF52 +:104A7000E03AF105F8F6FE2CEE2009F243131FC0D0 +:104A800092131DC08091630280FD10C0982F907F0B +:104A900069F0F8018583903F31F0982F907F905F07 +:104AA0008F70892B8583C8010E94AE1C86E0F801B7 +:104AB000AEE5B2E001900D928A95E1F70DCFC80105 +:104AC0000E94A91081118ECF809163028160809332 +:104AD0006302C8010E94AE1CFFCEEE2009F48FCF06 +:104AE000C8010E94A910F82E882309F488CF86E017 +:104AF000F801AEE5B2E001900D928A95E1F7809160 +:104B00005E0290915F020E949D100E94BC23E4CE41 +:104B100081E08E25FBCE1F93CF93DF93CDB7DEB719 +:104B200067970FB6F894DEBF0FBECDBF4B8B5C8B83 +:104B30006D8B7E8B8F8B6111109297021A8A198A66 +:104B400085E0FE017396DE011D9601900D928A9517 +:104B5000E1F786E0FE013D96DE01179601900D9289 +:104B60008A95E1F7CE0107960E941224882389F0E6 +:104B700016E0809195029091640289134BC067966C +:104B80000FB6F894DEBF0FBECDBFDF91CF911F915E +:104B9000089586E0FE013796DE01119601900D9290 +:104BA0008A95E1F78A859B85892B11F38F819885FA +:104BB00089238F3FE9F22091640230E0C901019618 +:104BC00087709927409195024817190681F4109231 +:104BD00073030E94AF11109264021092950286E056 +:104BE000EEE5F2E0DF011D928A95E9F7C1CF96E08C +:104BF000929FD001939FB00D1124AB59BD4FFE0180 +:104C0000319601900D929A95E1F7809364020E948B +:104C1000890BAECF819FC00111248B599D4F0E94FB +:104C20001224882309F4ABCF8091950290E001967D +:104C300087709927809395029CCF7F928F929F9245 +:104C4000AF92BF92CF92DF92EF92FF920F931F939A +:104C5000CF93DF93CDB7DEB764970FB6F894DEBF7E +:104C60000FBECDBF8E010F5F1F4F8AE0D8011D928E +:104C70008A95E9F79FE4C92E91E0D92EF12CE12C19 +:104C8000AA24A394B12C3FE4832E31E0932EF601A5 +:104C900081916F018F3F09F443C0F894E82FE295AA +:104CA000EF70F0E021A18F70A50102C0440F551FE5 +:104CB0008A95E2F7CA01922F982B91A392A1809531 +:104CC000892382A30E94AC0900C0E8E4F1E0712CC2 +:104CD00031E021912F3F09F479C0A22FA295AF7046 +:104CE000B0E090968C9190E02F7002C095958795DA +:104CF0002A95E2F780FD6AC0832F782A330F8E163B +:104D00009F0639F7F601319780818F3F11F00E949D +:104D1000AE0950EA5A95F1F7F801EE0DFF1D7082C9 +:104D20008FEFE81AF80AA5E0EA16F10409F0AFCF10 +:104D30004AE050E0B8018DED92E00E9402357C011E +:104D4000892B41F08AE0F801ADEDB2E001900D92BF +:104D50008A95E1F71091E802E114F104C9F181E0CC +:104D600080939B020E94841B90939A0280939902E5 +:104D70008091990290919A020E94751B069770F09B +:104D8000ADEDB2E0E12FF0E0E15DFC4F8D9181935C +:104D900022E0A23EB207D1F710929B0281E090E0A0 +:104DA000EF28D1F064960FB6F894DEBF0FBECDBFEA +:104DB000DF91CF911F910F91FF90EF90DF90CF90F7 +:104DC000BF90AF909F908F907F90089580E095CF97 +:104DD00080919B028111CCCF0E94C00ED82EE09111 +:104DE000E802882309F4E1C07E0140E1E40EF11CF1 +:104DF00085E0D7011D928A95E9F70E2F10E0015D3D +:104E00001C4F8091D6028A3008F098C04CEE59E1D0 +:104E1000B701C8010E947C0E882309F4B2C043EA9E +:104E200058E2B701C8010E947C0E882309F4A9C08A +:104E300040E458E1B701C8010E947C0E882309F4C0 +:104E4000A0C04FE059E1B701C8010E947C0E882341 +:104E500009F497C04DEE58E1B701C8010E947C0EDD +:104E6000882309F48EC01092D6028091E70290E068 +:104E700045E050E0B701815D9C4F0E94023521E082 +:104E80002093A602892B09F06FC0D12C80910101DB +:104E9000811114C08091A0029091A1020E94751B03 +:104EA000813A9F4058F040E56FEF8CEF0E943E162C +:104EB00081E0809301018CE00E946A158EE9E82E62 +:104EC00082E0F82E10E000E0D7018D917D0188236B +:104ED000D1F08695F80109F465C0E850FE4F808155 +:104EE00091819C878B871D860E94841B8160782F0F +:104EF0009F878E87F701319710824B855C856D8582 +:104F00008F850E948B250E5F1F4F04301105E1F63F +:104F10006091FA027091FB028091FC029091FD0277 +:104F20000E94320861367A4E8105910528F040E0F2 +:104F300060E080E00E94080F8D2D34CF80919C02AC +:104F400090919D020E94751B843F914008F05ECFB6 +:104F50008091A602882309F498CF85E0F701119289 +:104F60008A95E9F71092A602A091E702B0E0A15D50 +:104F7000BC4F85E0FE01709601900D928A95E1F795 +:104F800085CF8091D6028F3F31F08F5F8093D6021C +:104F90008A3008F46ACF0E94841B90939D0280930C +:104FA0009C02D6CFEC50FE4F9ACFF0E0E15DFC4F73 +:104FB000F89485E0A6EBB2E001900D928A95E1F7B6 +:104FC00065E070E086EB92E00E94E3088093B50212 +:104FD0000E94AC09F894E091F002F0E0E351FD4F3B +:104FE00080818B878093BC0261E070E0CE010B96DC +:104FF0000E94E3088093BB020E94AC09F894C09021 +:10500000BD02D090BE02E090BF02F090C00280913D +:10501000A2029091A302A091A402B091A502C81689 +:10502000D906EA06FB06D1F0C092A202D092A302F2 +:10503000E092A402F092A5020E94C00E81110EC05F +:105040000E944E08C61AD70AE80AF90AC092D70287 +:10505000D092D802E092D902F092DA020E94AC0912 +:10506000F8948091C8028823F1F080FF0DC08091F0 +:10507000C10280FF25C090916904916090936904FA +:1050800060E086950E9414178091C80281FF09C0D4 +:1050900020E04091C4026091C3028091C2020E944C +:1050A0008B151092C8020E94AC09F8948091C90235 +:1050B000882349F00E94860F0E94AC0980E072CEDE +:1050C0000E94670EE1CF0E946B0FF6CFEF92FF9226 +:1050D0000F931F93CF93DF9300D000D00F92CDB7E3 +:1050E000DEB7162FE82EF12CC701880F991F662313 +:1050F00039F188509E4FFC01808191819A83898388 +:1051000001E00B830E94841B8160782F9D838C8338 +:10511000F701E256FD4F0127110F102B1083498133 +:105120005A816B818D810F900F900F900F900F908F +:10513000DF91CF911F910F91FF90EF900C948B25F1 +:105140008C509E4FD8CFCF92DF92EF92FF920F9369 +:105150001F93CF93DF930F92CDB7DEB7EE24E39486 +:10516000F12C0CEB12E09E012F5F3F4F41EB52E020 +:1051700063E082E00E944A19082F882321F1C09041 +:10518000EA028C2D90E09C0123513D4F7901198159 +:10519000F9018081181BD12E80E00AC0DA94F70152 +:1051A00080818F5F808360E08C2D0E946628802F35 +:1051B0001D14A4F3912F17FD90E0191B11110EC0BF +:1051C00081110E94700B802F0F90DF91CF911F9162 +:1051D0000F91FF90EF90DF90CF9008951F5FF70140 +:1051E00080818150808361E08C2D0E946628802F11 +:1051F000E5CF1F921FB61F9211248F939F93AF93F9 +:10520000BF9380916A03811113C080916B039091C9 +:105210006C03A0916D03B0916E034196A11DB11D69 +:1052200080936B0390936C03A0936D03B0936E0314 +:10523000BF91AF919F918F911F901FBE1F901895A6 +:10524000CDB7DEB7E0970FB6F894DEBF0FBECDBF87 +:1052500084B7877F84BF0FB6F894A89580916000CB +:10526000886180936000109260000FBE80E890E03B +:105270000FB6F89480936100909361000FBE85B7DC +:10528000806885BF85B7806885BF8AEA99E090937A +:105290003302809332020E94A4060E946F0780911D +:1052A000E20084608093E2007894809180038823F8 +:1052B000A1F01091E9001F709091EC00892F81708E +:1052C00090FD80E8182B1092E9008091E80083FDA2 +:1052D0000E94B8111F701093E90082E084BD93E032 +:1052E00095BD9AEF97BD80936E001092D7021092F1 +:1052F000D8021092D9021092DA020E94D0108111C5 +:1053000002C00E942C100E94C00E8093590180910F +:105310005901882309F4C9C01092730185E2809372 +:1053200074010E94C00E81110E94F73280915901D0 +:1053300081112FC0FE01359686E0DF011D928A950E +:10534000E9F786E6898387E98A8386EC8B8384E3A1 +:105350008C8385E38D833497AFE4B1E0CE010B9667 +:1053600021912D938E179F07D9F787E0E9E7F1E0A8 +:10537000DE01919601900D928A95E1F7FE01B196BA +:10538000A8E4B1E0CE01889621912D938E179F0756 +:10539000D9F78091590195E0811190E09093E8024E +:1053A00085E0891B8093E7020FE411E084E5E82E95 +:1053B00081E0F82EF80181918F018F3F11F00E945A +:1053C000AE09E016F106B1F708E411E0BFE4EB2EF8 +:1053D000B1E0FB2ED8018D918D018F3F11F00E941D +:1053E000AE09E016F106B1F78AE0EFE2F3E0DF0183 +:1053F000282F1D922A95E9F7EDEDF2E0DF011D92CD +:105400008A95E9F70E94291A811102C00E94DB17D0 +:1054100082E090E00E9418358093240384E090E0BD +:105420000E941835182F82E290E00E941835982FBC +:10543000812F9093DC028093DB020E941D26EFE710 +:10544000FBEB3197F1F700C000000E941D26809110 +:105450002F0380FF2EC06FEF7FEF90E080E00E946F +:105460004A3581E08093E00080E28093D80010927A +:10547000C9008FE19EE40197F1F700C0000087E0CA +:1054800090EBDC018093720690937306A0937406F0 +:10549000B093750688E19CE00FB6F894A8958093C8 +:1054A00060000FBE90936000FFCF85E28093730190 +:1054B00036CF83E090E00E9418350E94F50B809172 +:1054C0008A030E9441160E94291A811102C00E947B +:1054D000DB1788E190E00E942035609360037093B1 +:1054E00061038093620390936303672B682B692B9E +:1054F00011F40E94A4170E94F83067E081E00E9436 +:105500005E1565E586E10E945E1563E687E10E940F +:105510005E1560EA8AE10E945E1569E98BE10E94EE +:105520005E1565EF8CE10E945E1560EA8DE10E94D8 +:105530005E1560E38EE10E945E1566E083E00E94E6 +:105540005E1561E08CE00E945E1560E081E00E94E3 +:105550005E1560E08CE00E945E156FE084E00E94C2 +:105560005E1561E08CE00E945E150E94C00E811104 +:1055700002C00E94FA3283E080931F0380E280938E +:1055800053030E94F8306DE070E08CE492E00E94DA +:105590003B0F892BE9F580911F0363E070E081FDEB +:1055A00005C289E492E00E943B0F892B89F56DE0EA +:1055B00070E089E392E00E943B0F892B49F50E943D +:1055C0004E086058774C8E4F9F4F60935A037093EC +:1055D0005B0380935C0390935D03E0E7F4E080E07D +:1055E00092E0DF019C011D9221503040E1F7F093E1 +:1055F0007106E09370068FEF9FEF90936F04809396 +:105600006E0481E080935F0380935E031092200319 +:105610008091E902811136C00E94291A811104C0CB +:105620000E94DB170E94611788E090E00E942035FD +:105630006093690470936A0480936B0490936C0484 +:10564000809150038360809350036E7F71F40E94B9 +:10565000611788E090E00E942035609369047093A0 +:105660006A0480936B0490936C040E94FE088091FE +:10567000690480FF04C060E086950E94141781E0F1 +:105680008093E90280915901811106C084EF8093D3 +:10569000670185EF8093660120916701A22FA29593 +:1056A000AF70B0E091963C9191972F7081E090E0BF +:1056B000BC01022E01C0660F0A94EAF7462F4095FE +:1056C000432391964C93919792963C919297362BC7 +:1056D00092963C93929740916601E42FE295EF7089 +:1056E000F0E031A14F70042E01C0880F0A94EAF750 +:1056F000982F9095932391A392A1892B82A39096A2 +:105700008C9190E002C0959587952A95E2F781707B +:1057100020A130E002C0359527954A95E2F792E046 +:1057200020FF90E0892B8093F1029091590181E054 +:1057300098279093F002891B8093EA020E94D41765 +:1057400060E08AE00E94141781E00E94881680EED3 +:1057500090E090937201809371010E94280F8AE576 +:1057600091E09093670380936603A0E46A2E809192 +:105770008003FF24F39400E112E1853009F465C150 +:105780000E941D26E82E81110E944E08FFE22F2E56 +:10579000F3E03F2EE5E2F3E0D10110E000E0B02EAF +:1057A000DD9081918D1509F474C18D25C12CFF24E4 +:1057B000F394982F9F2109F467C10E94C00E88239B +:1057C00099F0C9A2BAA2DF2081E009F480E08BA39E +:1057D0000E94841B8160782F9DA38CA349A15AA1AC +:1057E0006BA18DA10E948B25F801EB5DFC4F8081A0 +:1057F000F826F0828091F102E82FEE0FEE0F9091E3 +:105800006701A92FA295AF70B0E090962C9130E07F +:105810009F7002C0359527959A95E2F7217033273E +:1058200090916601A92FA295AF70B0E090964C912F +:1058300050E09F7002C0559547959A95E2F7CA01CE +:105840008170992740FF02C082E090E0822B8E2B6E +:105850008093F1021091F0028F70E82FF0E0E25097 +:10586000FE4F80819091EF02890F8093EF02F12C1F +:1058700084306CF0E12FF0E0E351FD4F80818F5FC9 +:10588000808360E0812F0E946628FF24F39480913A +:10589000EF028D3F6CF4E12FF0E0E351FD4F80818A +:1058A0008150808361E0812F0E946628FF24F39459 +:1058B0008091EF02082E000C990B64E070E00E94CA +:1058C000D8348093EF02F1100E94700B80915F0337 +:1058D000882351F180912103909122030E94751B2E +:1058E000C29708F0EDC020916E0430916F0421152D +:1058F000310509F0F0C180915E038823A9F00E9470 +:105900004E0800915A0310915B0320915C03309183 +:105910005D03601B710B820B930B6F3F7F4F8F4FAB +:105920009F4710F40E946B0FE11001C0F1100E941C +:10593000860F0E94E9100E94E30E909123038917BD +:1059400031F00E94E30E809323030E944B0E80915E +:105950008003843009F00BCF83E08093E9008091CD +:10596000E80082FF04CF8091E80090E085FF0CC042 +:105970000E94C30630E2E32EF12C8E010F5F1F4F11 +:10598000882309F487C291E08091E8008B778093A7 +:10599000E800992309F4EBCEE981E150E33108F006 +:1059A000DDC2F0E0EC53F94C0C94EC3486E492E068 +:1059B000FACD80918003843009F437C080E00E94E2 +:1059C0004B0E8091EC02811109C0F092EC028091A3 +:1059D000690481708093EB020E94670E0E946B0F36 +:1059E0000E94E91010926A0388E190E00FB6F894E3 +:1059F000A895809360000FBE6092600083B7817F9E +:105A0000846083BF83B7816083BF7894889583B7B0 +:105A10008E7F83BF0FB6F894A8958091600088614F +:105A200080936000109260000FBE80917F038823F6 +:105A300061F00E941D26EFE2F3E081918111B7C36E +:105A4000A9E3B3E0AE17BF07C1F7809180038530AB +:105A500009F4AFCF109273030E94AF110E94E30EBE +:105A60000E944B0E1092EC028091EB02882349F0C9 +:105A70008091690481608093690460E086950E944A +:105A800014170E94280F7CCEC394FF0C27E0C2128B +:105A900090CE0F5F1F4F0A30110509F080CE8FEFB7 +:105AA00088A789A71AA60E94841B8160782F9CA7CB +:105AB0008BA748A559A56AA58CA50E948B259ACECF +:105AC0000E94841B909322038093210360E080E076 +:105AD0000E94CC080E94E30E8093FE020E94C00E3A +:105AE000882309F4DFC06091FA027091FB02809173 +:105AF000FC029091FD020E943208613375478105D6 +:105B0000910540F00E946B0F80915F03882309F498 +:105B1000F2CEE9CE0E94860F61E080E00E94CC08C0 +:105B200060E080E891E00E94421562E080E00E941F +:105B3000CC0880918A030E94BB0C823009F48CC08F +:105B400008F081C0882309F487C0813009F48AC035 +:105B500065E080E00E94CC0860E08EE991E00E9460 +:105B6000421566E080E00E94CC086091FE026695D6 +:105B7000617083EA91E00E94421567E080E00E9434 +:105B8000CC086091FE026095617088EA91E00E9405 +:105B9000421568E080E00E94CC086091FE0262FB42 +:105BA000662760F98CEA91E00E9442156091F60246 +:105BB0007091F7028091F8029091F9020E943208E8 +:105BC0006D3271408105910508F49ECF0E944E0808 +:105BD0006093F6027093F7028093F8029093F902B3 +:105BE0008091F502811104C080916801811142C049 +:105BF0006DE080E00E94CC0860E081EB91E00E94C3 +:105C000042156AE080E00E94CC0881E08093680140 +:105C10008091F40290E00196817099278093F402BC +:105C200021E030E0281B390B40E6429FC001439F32 +:105C3000900D11242091F302222351F187529C4FA1 +:105C40000E94610661CF833089F0843009F080CFF3 +:105C500060E082E991E003C060E086E891E00E94A4 +:105C6000421576CF60E08CE891E0F9CF60E088E9FA +:105C700091E0F5CF6AE080E00E94CC0860E081EB23 +:105C800091E00E9442156BE080E00E94CC08C0CFFA +:105C90002091F202222319F0875E9C4FD1CF875AC0 +:105CA0009D4FCECF64E080E00E94CC0860E087EB9F +:105CB00091E00E94421565E080E00E94CC0860E01F +:105CC0008DEB91E00E94421569E080E00E94CC08D3 +:105CD00089E994E0B5CF8091200361E070E0811103 +:105CE0000ACE082F10E02B01082E02C0440C551CD0 +:105CF0000A94E2F7A90144215521452B09F448C033 +:105D000090911F0390FD46C08295880F8076809306 +:105D10006B019801369527953695279520936E014E +:105D2000815E80936C0110926F0124E630E047E0C1 +:105D300050E069E671E088E70E94EF31892B09F0B5 +:105D4000DACDA80175E0440F551F7A95E1F78091EF +:105D50001F0380FD2DC040595B4F04E610E020E298 +:105D600030E060E488E70E941632892B09F0C3CD49 +:105D70000E94860FC2018095909540906E045090CD +:105D80006F044822592250926F0440926E04B3CDA2 +:105D90008F5FA7CF880F880F880F80936B011092B9 +:105DA0006E01895F80936C0183E080936F01BDCFAA +:105DB000EFEFF2E080E2DF011D928A95E9F7E2E180 +:105DC000F2E0F8ABEFA70EE012E067E0A62E992410 +:105DD0009394AFA5B8A96D91B8ABAFA7F801819125 +:105DE0008F01840F952F911D9C0120593B4F3EA799 +:105DF0002DA7E62FF0E0E150FD4F30E020E07A2CB7 +:105E0000721AB92C022E01C0BB0C0A94EAF7CDA479 +:105E1000DEA490E0D6018D916D018B21672D691B69 +:105E20006770862E062E000C770BB82F01C0BB0FB3 +:105E30008A94EAF78B2E71956195710967707727BF +:105E400001C086956A95EAF7882A8081882A80822F +:105E50009F5F9830F9F62F5F3F4F3196283031051C +:105E600071F6E6E1F2E02FA538A9E217F30709F091 +:105E7000B0CF04E610E020E230E04FEF52E071CF07 +:105E80008091F100D8018D938D01B1E0EB1AF108FA +:105E900009F479CD8091E80085FDF2CF8091E8008A +:105EA0008B778093E8000E94C306882399F36BCD1B +:105EB0001A8289E08B8311C08A81823009F48FC1F4 +:105EC000833091F1813009F049C00E944E080E9450 +:105ED000F2346B837C838D839E8380918003843036 +:105EE00009F045CC1091E9001F709091EC00892FCA +:105EF000817090FD80E8182B82E08093E90080910A +:105F0000E80080FF0DC050E040E060E270E0CE01AC +:105F100001960E94F4068091E8008E778093E80055 +:105F20001F701093E90023CCFE013396D1018D91AF +:105F30001D018193B9E32B16B3E03B06B9F7CDCF32 +:105F40008A81823059F46B817C818D819E810E948F +:105F5000F23486E290E00E942C35BFCF8FEF898328 +:105F6000BCCF4C816B818A810E943B109827892786 +:105F700098279E838D83B1CFED80FE80FE24EF2491 +:105F8000FE248A810B81EEE00E9F80011124FCE843 +:105F90008F9F000D111D11248C8190E0880F991F97 +:105FA000080F191F6F2DC80187960E942C356E2D82 +:105FB000C8018896D0CF0E94BE0F8FCF8A818138CA +:105FC000B1F058F4803809F088CF4B8160916B04B0 +:105FD00080916A040E943E1680CF8238E1F08338B7 +:105FE00009F07BCF40916C046C818B81F3CF60E032 +:105FF0008B810E9414178B81811103C00E94670E50 +:106000006CCF8091690481608093690460E086951B +:106010000E94141762CF8B8180936D045ECF8A81BA +:10602000813899F030F4803809F057CF80916C04B2 +:1060300041CF823891F0833809F04FCF80916A04C4 +:106040008B8380916B048C8348CF8091690480FF9F +:1060500002C086952FCF80E02DCF80916D042ACF8E +:106060006091690470916A0480916B0490916C0452 +:106070000E94791532CF80E18A832FCF81E08A8315 +:106080008DE118CFCA80DB80DC24CD24DC248E0196 +:106090000F5F1F4FEC80E00EF12EF11CC6018D51F9 +:1060A0009D4F0E151F0509F418CF2DE1C21621E0F2 +:1060B000D20658F40E941835D80114968C93FFEF3D +:1060C000CF1ADF0A0F5F1F4FE9CFF8011482F7CF15 +:1060D0000A811B811027012710279E012F5F3F4F48 +:1060E0006901EC80E00EF12EF11CC8018D519D4F2D +:1060F000E016F10609F4F1CE0D3131E0130728F472 +:10610000D60114966C910E942C35BFEFCB1ADB0A96 +:106110000F5F1F4FEACF0E94AE0FDFCE85E0ACCFFE +:10612000CA80DB80DC24CD24DC248E010F5F1F4F6E +:10613000EC80E00EF12EF11CC6018796E016F10608 +:1061400009F4CBCEECEBCE16E2E0DE0658F40E946A +:106150001835D80114968C93FFEFCF1ADF0A0F5F22 +:106160001F4FEACFF8011482F7CF0A811B81102755 +:10617000012710279E012F5F3F4F6901EC80E00E41 +:10618000F12EF11CC8018796E016F10609F4A5CEA0 +:106190000C3B32E0130728F4D60114966C910E9450 +:1061A0002C35BFEFCB1ADB0A0F5F1F4FEBCF09BDBA +:1061B00019BD09B400FEFDCF8091D8008F7D80937A +:1061C000D8008091E00082608093E0008091E00040 +:1061D00081FDFCCF109273030E94AF1136CC86E292 +:1061E00090E00E9418351B821C821D828E8375CE22 +:1061F0001092B9008CE08093B80008959F92AF92FE +:10620000BF92CF92DF92EF92FF920F931F93CF93A3 +:10621000DF93B82EEB010E94841B6C01EE24E39403 +:10622000F12CC431D10560F025E0E22EF12CCF3FF6 +:10623000DC0731F0CE0164E170E00E94B8347B01EC +:1062400084EAA82E94E8992E1092BC00A092BC007B +:106250000E94841B8C018091BC0087FF0DC080913F +:10626000B900887F883039F18091B900887F80310A +:1062700011F10FEF1FEF09C00E94841B801B910BCF +:106280008E159F0540F30EEF1FEFCF3FDC07E1F2C5 +:10629000C6010E94751B8C179D07B0F2C801DF91E3 +:1062A000CF911F910F91FF90EF90DF90CF90BF9013 +:1062B000AF909F900895B092BB009092BC000E9456 +:1062C000841B8C018091BC0087FF0AC08091B900BB +:1062D000887F883111F0803461F610E000E0DECF75 +:1062E0000E94841B801B910B8E159F0558F3CBCF0A +:1062F0000F931F93CF93DF93EB018093BB0084E850 +:106300008093BC000E94841B8C018091BC0087FF9D +:1063100011C02091B900287F81E090E0283211F46B +:1063200090E080E0919581959109DF91CF911F9147 +:106330000F910895CF3FDC0741F30E94841B801B1F +:10634000910B8C179D0708F38EEF9FEFEECF0F9305 +:106350001F93CF93DF93EC0184EC8093BC000E94E9 +:10636000841B8C018091BC0087FF08C08091BB001A +:1063700090E0DF91CF911F910F910895CF3FDC07FF +:1063800089F30E94841B801B910B8C179D0750F38F +:106390008EEF9FEFEECF0F931F93CF93DF93EC0120 +:1063A00084E88093BC000E94841B8C018091BC0017 +:1063B00087FF08C08091BB0090E0DF91CF911F91D3 +:1063C0000F910895CF3FDC0789F30E94841B801B47 +:1063D000910B8C179D0750F38EEF9FEFEECFCF926E +:1063E000DF92EF92FF920F931F93CF93DF936B0196 +:1063F0008A017901B9010E94FE30E6010C0D1D1DD4 +:10640000C017D10761F424E92093BC00DF91CF913C +:106410001F910F91FF90EF90DF90CF90089597FD1F +:10642000F2CFB70189910E947831EACFCF92DF9203 +:10643000EF92FF920F931F93CF93DF93C62F6A01C2 +:106440007901B8010E94FE3097FD0CC0B8018C2F75 +:106450000E947831E601EC0CFD1CCE15DF0511F031 +:1064600097FF0CC024E92093BC00DF91CF911F91CE +:106470000F91FF90EF90DF90CF900895B801899130 +:106480000E947831EACFCF92DF92EF92FF920F9382 +:106490001F93CF93DF93F82EE62EEA016901B8012E +:1064A0000E94FE3097FD15C0B8018E2D0E947831F4 +:1064B00097FD0FC0B8018F2D81600E94FE30F12C36 +:1064C000E12C21E0C21AD108EC14FD0400F597FF7D +:1064D00011C024E92093BC001816190614F490E0AA +:1064E00080E0DF91CF911F910F91FF90EF90DF90AF +:1064F000CF900895C8010E94A73197FD04C0FE0106 +:10650000EE0DFF1D80832FEFE21AF20ADDCF97FD1B +:10651000E0CFC8010E94CB3197FDDBCFCC0DDD1D54 +:106520008883D7CF84E98093BC0008958EE14A9B8D +:1065300002C08150E1F74A9BFECF08955A9880E24D +:106540008A95F1F75A9A0895FC013BE03A95F1F7E4 +:1065500098E020E080E031E040E14A95F1F7880FD3 +:106560004A9B02C08160232742E04A95F1F7000070 +:1065700040E14A95F1F7915079F790E19A95F1F75A +:1065800099B132E03A95F1F7000040E14A95F1F710 +:1065900092FB992790F992272081920F908308957A +:1065A000EF92FF920F931F93CF93DF930F92CDB78C +:1065B000DEB719828C017C01E60EF11C0E151F0559 +:1065C00061F481E09981911180E00F90DF91CF918A +:1065D0001F910F91FF90EF9008950E949632CE0187 +:1065E00001960E94A432F80181938F01E7CF529A5D +:1065F0005A9A089552985A9AEA9AE9E6F0E0808108 +:106600008F7C808308956150770B91E001C0990FD2 +:106610006A95EAF720E031E0911108C0222391F059 +:106620005A9A80E28A95F1F75A980895492F48239B +:1066300039F05A9A232740E24A95F1F79695ECCF24 +:106640005A98F9CF5A98EDCFFF920F931F93CF939B +:10665000DF93EC018C01060F111DC017D10731F437 +:10666000DF91CF911F910F91FF900895F9900E94B3 +:106670009E3268E08F2D0E940333EFCF1F920F925E +:106680000FB60F921124EF92FF920F931F932F9347 +:106690003F934F935F936F937F938F939F93AF93AA +:1066A000BF93EF93FF93CF93DF930F92CDB7DEB7F6 +:1066B00019820E949632CE0101960E94A432A82F20 +:1066C000A695A695A695282F229525709A2F9570A8 +:1066D000290F922F937026952695920F98279770E1 +:1066E0008981982B09F075C0A83008F072C080E14C +:1066F0008A95F1F75A9A529AB2E0BA95F1F700C02A +:106700005A98EA2EF12CEAE0AE9FD0011124AE5F38 +:10671000BE4F1896ED91FC9119973097B1F06091AA +:10672000FC017091FD0116962D913C911797260F53 +:10673000371F13968D919C911497680F791F1596AA +:106740004C91159712968C9109958AE08E9DF001D7 +:106750008F9DF00D1124EE5FFE4F6581662351F091 +:106760002091FC013091FD0186819781820F931F5A +:106770000E9424330E949E32F0E1FA95F1F75A9874 +:1067800052985A9A80E18A95F1F78AE08E9D8001AD +:106790008F9D100D11240E5F1E4FD80112966C9123 +:1067A0001297662371F12091FC013091FD0113963F +:1067B0008D919C91820F931F0E94D032D801ED9150 +:1067C000FC91882311F088E001C082E080830E9460 +:1067D00096320F90DF91CF91FF91EF91BF91AF91E2 +:1067E0009F918F917F916F915F914F913F912F91E9 +:1067F0001F910F91FF90EF900F900FBE0F901F9081 +:106800001895ED91FC91DFCF0F931F93CF93DF93FA +:10681000EC0108970CF0A9C08AE08C9FF0018D9FD5 +:10682000F00D1124EE5FFE4F80819181892B09F4D8 +:106830009CC0F894529A5A9885E08A95F1F7000026 +:106840008C2F869585709C2F9570890F982F93704B +:1068500086958695890F8E0193E0000F111F9A95FA +:10686000E1F7082B0E949E3200C068E0802F0E9452 +:106870000333A0E1AA95F1F752985A9A4A9B27C090 +:1068800087E090E04A9925C08AE08C9F80018D9F27 +:10689000100D11240E5F1E4FF80165816623A1F1D2 +:1068A0002091FC013091FD0186819781820F931F19 +:1068B0000E94D032811128C0529A5A9AD801ED9183 +:1068C000FC9182E08083789482E090E016C000C062 +:1068D000D5CF0197B9F4529A5A9A8AE08C9FF00169 +:1068E0008D9FF00D1124EE5FFE4F0190F081E02DA1 +:1068F00081E08083789481E090E0DF91CF911F91D7 +:106900000F91089500C0BECF0E949632B0E2BA95B2 +:10691000F1F75A98529AE0E1EA95F1F78AE08C9FF4 +:10692000F0018D9FF00D1124EE5FFE4F6281662312 +:1069300051F02091FC013091FD0183819481820FFF +:10694000931F0E9424330E949E328AE08C9FF001A4 +:106950008D9FF00D1124EE5FFE4F0190F081E02D30 +:106960001082789490E080E0C8CF84E090E0C5CFBA +:10697000AA1BBB1B51E107C0AA1FBB1FA617B70765 +:1069800010F0A61BB70B881F991F5A95A9F7809581 +:106990009095BC01CD010895991B79E004C0991F21 +:1069A000961708F0961B881F7A95C9F78095089569 +:1069B00097FB072E16F4009407D077FD09D00E94AC +:1069C000B83407FC05D03EF4909581959F4F08950B +:1069D000709561957F4F0895EE0FFF1F0590F4911C +:1069E000E02D099469279627692778278727782734 +:1069F0000895FB01DC0102C005900D92415050400A +:106A0000D8F70895FB01DC0104C08D910190801935 +:106A100021F441505040C8F7881B990B0895FB01A1 +:106A2000DC0102C001900D9241505040D8F708950A +:106A3000F999FECF92BD81BDF89A992780B5089546 +:106A4000A6E1B0E044E050E00C945235A8E1B0E09B +:106A500042E050E00C945235262FF999FECF92BDBA +:106A600081BDF89A019700B4021639F01FBA20BD13 +:106A70000FB6F894FA9AF99A0FBE08950396272F45 +:106A80000E942D350E942C35252F0E942D35242F54 +:106A90000C942D350196272F0E942D350C942C3502 +:106AA000DC01CB01FC01F999FECF06C0F2BDE1BDCE +:106AB000F89A319600B40D9241505040B8F70895BD +:106AC0000E9467356894B1110C94F63508950E94C0 +:106AD000DB3588F09F5798F0B92F9927B751B0F060 +:106AE000E1F0660F771F881F991F1AF0BA95C9F752 +:106AF00014C0B13091F00E94F535B1E008950C94C6 +:106B0000F535672F782F8827B85F39F0B93FCCF378 +:106B1000869577956795B395D9F73EF490958095CE +:106B2000709561957F4F8F4F9F4F0895E89409C0EE +:106B300097FB3EF490958095709561957F4F8F4FB0 +:106B40009F4F9923A9F0F92F96E9BB279395F695C6 +:106B5000879577956795B795F111F8CFFAF4BB0F44 +:106B600011F460FF1BC06F5F7F4F8F4F9F4F16C0A8 +:106B7000882311F096E911C0772321F09EE8872F32 +:106B8000762F05C0662371F096E8862F70E060E0EE +:106B90002AF09A95660F771F881FDAF7880F969567 +:106BA000879597F9089557FD9058440F551F59F050 +:106BB0005F3F71F04795880F97FB991F61F09F3FEA +:106BC00079F087950895121613061406551FF2CF13 +:106BD0004695F1DF08C0161617061806991FF1CF63 +:106BE00086957105610508940895E894BB2766278A +:106BF0007727CB0197F908950E940F360C948036C1 +:106C00000E94723638F00E94793620F0952311F0F8 +:106C10000C9469360C946F3611240C94F6350E944E +:106C2000D33570F3959FC1F3950F50E0551F629FC8 +:106C3000F001729FBB27F00DB11D639FAA27F00DD5 +:106C4000B11DAA1F649F6627B00DA11D661F829FFC +:106C50002227B00DA11D621F739FB00DA11D621FE1 +:106C6000839FA00D611D221F749F3327A00D611DFE +:106C7000231F849F600D211D822F762F6A2F1124E0 +:106C80009F5750409AF0F1F088234AF0EE0FFF1F13 +:106C9000BB1F661F771F881F91505040A9F79E3F6A +:106CA000510580F00C9469360C94F6355F3FE4F39F +:106CB000983ED4F3869577956795B795F795E795C0 +:106CC0009F5FC1F7FE2B880F911D9695879597F9C9 +:106CD000089597F99F6780E870E060E008959FEF5E +:106CE00080EC089500240A94161617061806090663 +:106CF000089500240A941216130614060506089532 +:106D0000092E0394000C11F4882352F0BB0F40F4B9 +:106D1000BF2B11F460FF04C06F5F7F4F8F4F9F4FF9 +:106D20000895F894FFCFBB10BB10C410C410C61058 +:106D3000C410C410C410BB10BB10CB10C410C410BE +:106D4000CB10A012C8126B14C8126B14FB121C13C8 +:106D50006B141A142714FF1C751D781D8C1D8F1DB4 +:106D6000A21DAB1DCF1D151E471E5B1EE11D041E7F +:106D7000E721E7214022402272221A221A221A22F7 +:106D80008C22FD220D230D23582F5C2FA02FB12F15 +:106D9000BC2FDB2FDE2F0F303030AE2FAE2F3B302D +:0E6DA0003E30423068308B308E309030B5304F +:106DAE0001013C0200000001000000003C02000056 +:106DBE000005010000003C0200000001060000007A +:106DCE003C0200000001070000003C020408000025 +:106DDE00000000003C02080C0000000000003C0215 +:106DEE00011400000000000036323331F7F6FF6662 +:106DFE0097C634350000000000012F085E0D3D0DD2 +:106E0E00390D350D2E08F4F5010021007F22000307 +:106E1E00018000004A004A4A01F6F731333236FF4C +:106E2E004C415945520042617365200047616D65C2 +:106E3E0020005261697365004C6F776572004C4F8C +:106E4E00434B0043617073004E756D005363726C5B +:106E5E0000202020202000534F4C415200544D5012 +:106E6E00535400818283E200E900EA00B500B600C7 +:106E7E00B700CD008301CC008A019201940121025A +:106E8E00230224022502260227022A02B300B4009E +:106E9E006F0070000603060806010606B50200FF25 +:106EAE000100010000FFFF0000010001FF000008CB +:106EBE00101818100800000102020202020202025B +:106ECE00020240227B49012701AC009E0BB70BD773 +:026EDE000B00A7 :00000001FF From 60cf6e2571d0a81b329f0ea1182f774138ae3674 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 2 Jan 2022 00:40:27 -0500 Subject: [PATCH 80/94] Adjust layer colours. --- .../solartempest/sofle/keymaps/via/keymap.c | 6 +- .../sofle/solartempest_sofle_via.hex | 2550 ++++++++--------- 2 files changed, 1279 insertions(+), 1277 deletions(-) diff --git a/keyboards/solartempest/sofle/keymaps/via/keymap.c b/keyboards/solartempest/sofle/keymaps/via/keymap.c index d617ad711f08..9780d2cc7eb7 100644 --- a/keyboards/solartempest/sofle/keymaps/via/keymap.c +++ b/keyboards/solartempest/sofle/keymaps/via/keymap.c @@ -441,7 +441,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { { switch (get_highest_layer(state)) { // Change all other LEDs based on layer state as well case 0: - rgblight_sethsv_noeeprom(50,255,80); + //rgblight_sethsv_noeeprom(50,255,80); //green-blue gradient + rgblight_sethsv_noeeprom(115,170,80); //pale blue gradient #ifdef POINTING_DEVICE_ENABLE if (was_scrolling==true){ //Check if was scrolling when layer was left trackball_is_scrolling=true; @@ -465,7 +466,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif break; case 3: - rgblight_sethsv_noeeprom(118,255,80); + //rgblight_sethsv_noeeprom(118,255,80); //blue-purple gradient + rgblight_sethsv_noeeprom(160,255,80); //blue-magenta gradient #ifdef HAPTIC_ENABLE DRV_pulse(31); //sh_dblclick_med #endif diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index d1460312b946..285b56d5e69d 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C9418060C945F060C945F060C943E3317 +:100000000C9418060C945F060C945F060C943D3318 :100010000C945F060C945F060C945F060C945F06CC -:100020000C945F060C945F060C94781A0C94341AA6 -:100030000C94F9280C945F060C945F060C945F06F0 +:100020000C945F060C945F060C94771A0C94331AA8 +:100030000C94F8280C945F060C945F060C945F06F1 :100040000C945F060C945F060C945F060C945F069C -:100050000C945F060C94511B0C945F060C945F0685 +:100050000C945F060C94501B0C945F060C945F0686 :100060000C945F060C945F060C945F060C945F067C :100070000C945F060C945F060C945F060C945F066C :100080000C945F060C945F060C945F060C945F065C @@ -199,9 +199,9 @@ :100C600010927306109274061092750614BE84B723 :100C7000877F84BF0FB6F894A89580916000886143 :100C800080936000109260000FBEE0E0F8E30995E9 -:100C900012E0A0E0B1E0EEEAFDE602C005900D92A0 +:100C900012E0A0E0B1E0ECEAFDE602C005900D92A2 :100CA000A233B107D9F726E0A2E3B2E001C01D925A -:100CB000A237B207E1F70E9420290C9491360C94D8 +:100CB000A237B207E1F70E941F290C9490360C94DA :100CC0000000CF93DF93409170065091710640571A :100CD00054409A01205A3F4F21303240C0F020E06A :100CE00032E0241B350B60916E0470916F04FC019F @@ -294,7 +294,7 @@ :101250004E2F4983E8835A83DF91CF911F910F91DD :10126000FF90EF90DF90BF90AF900895E62EF12CA5 :101270004491D42EE42FF0E026E0829FC001112497 -:101280002FEF30E0B9010E94B834802F90E0880F32 +:101280002FEF30E0B9010E94B734802F90E0880F33 :10129000991F55E5569FD001579FB00D11248A1B09 :1012A0009B0B982F990F890F5901AE18BF08AE9E5E :1012B000D001AF9EB00DBE9EB00D11245B2F189FC4 @@ -481,16 +481,16 @@ :101E00002197C1F7812FDF91CF911F910C940E0C78 :101E10000F931F93CF93DF9300D000D0CDB7DEB7E1 :101E200089836A834B831C8204E610E024E030E05F -:101E3000AE014F5F5F4F60E084E10E9416320F9069 +:101E3000AE014F5F5F4F60E084E10E9415320F906A :101E40000F900F900F90DF91CF911F910F910895F8 :101E500080917001882329F047E669E98BE20C94B0 :101E6000080F80913D0247EC6BE18823C1F341E20A :101E700065EA89EDF4CFCF92DF92EF92FF920F9354 :101E80001F93CF93DF936C017B0164E670E088E7DA -:101E90000E94FE30EC0197FD12C010E000E0F60158 -:101EA000E00FF11F849164E670E00E947831EC014C +:101E90000E94FD30EC0197FD12C010E000E0F60159 +:101EA000E00FF11F849164E670E00E947731EC014D :101EB000892B29F40F5F1F4F0E151F0581F70E9414 -:101EC0009232CE01DF91CF911F910F91FF90EF9051 +:101EC0009132CE01DF91CF911F910F91FF90EF9052 :101ED000DF90CF90089580915E0390915F03911100 :101EE00003C091E089270895882369F062E070E0DB :101EF0008AE89BE00E943B0F892B19F080915E03DA @@ -500,1277 +500,1277 @@ :101F30005C0390935D03C11108C062E070E088E823 :101F40009BE00E943B0F892B29F0C0915E038C2FF0 :101F5000CF91089581E080935E03F7CFCF93DF9315 -:101F6000C3EED2E060E0CE010E942C352196C1156F +:101F6000C3EED2E060E0CE010E942B352196C11570 :101F700084E0D807B9F7DF91CF9108956F927F92EF :101F80008F929F92AF92BF92CF92DF92EF92FF9289 :101F90000F931F93CF93DF938CE8C82E8BE0D82E3E :101FA00091ECE92EF12CE701CC58D10936011BC088 -:101FB000F50185909490692DC8010E942C35682DFB -:101FC000C80101960E942C3582E0A80EB11C0E5F5C +:101FB000F50185909490692DC8010E942B35682DFC +:101FC000C80101960E942B3582E0A80EB11C0E5F5D :101FD0001F4FC017D10761F78EE0680E711C2E9657 :101FE000CE15DF0529F08E010E5011095301E0CF07 :101FF0007E018CE8E80EF11C8CE8C80ED11C8DE740 :10200000E81683E0F80679F6DF91CF911F910F91E2 :10201000FF90EF90DF90CF90BF90AF909F908F9008 -:102020007F906F900895CF93C82F6FEF811161E279 -:1020300083E290E00E942C35C1110CC0CFEF6C2FD1 -:1020400084E290E00E942C356C2F85E290E0CF91E5 -:102050000C942C35C2E1F3CF80E00E94131060E0B5 -:1020600086E290E00E942C350E94BE0F0E94AE0FC7 -:1020700081E00C9413100F931F93CF93DF93C42F21 -:10208000D0E0CC0FDD1F2EE0629FC00DD11D1124CA -:102090003CE8839FC00DD11D1124CE0187960E947C -:1020A0001835082F10E0102F0027CE0188960E94C7 -:1020B00018359801282BC901DF91CF911F910F91FD -:1020C0000895462F853038F47A3028F4673018F4B4 -:1020D000672F0C943B1090E080E00895CF92DF9240 -:1020E000FF920F931F93CF93DF936C0100918A03AC -:1020F00080919802082BC7E0D0E010E0FC2EC801C8 -:102100000C2E02C0959587950A94E2F780FD0CC0CD -:102110002197A0F7F12C8F2DDF91CF911F910F9177 -:10212000FF90DF90CF900895B6018C2F0E94611030 -:102130000E94080A019761F3EECFCF93DF93EC0181 -:102140000E946E10BE010E946110DF91CF910C942D -:10215000080AFC01808191810E949D10292F2F7017 -:1021600092959F7092509E3078F4E92FF0E0ED56F2 -:10217000F94C0C94EC34803F19F020F4883E20F4A4 -:1021800081E00895843FE1F380E00895883EC0F344 -:10219000813FD1F7F5CF822F869586958695089554 -:1021A00083E290E00E941835813289F484E290E065 -:1021B0000E941835823159F485E290E00E9418356A -:1021C00091E0823109F090E0892F8170089580E0DC -:1021D000FCCF1F93CF93DF93CDB7DEB768970FB6D1 -:1021E000F894DEBF0FBECDBF40913F035091400336 -:1021F00060914103709142038091430390914403A5 -:102200000E94901B20933F0330934003609343034D -:1022100070934403142F119510934103652F61951A -:102220006093420386E0EFE3F3E0DE01179601904E -:102230000D928A95E1F786E0FE013796DE01119650 -:1022400001900D928A95E1F79B858C852091700114 -:102250002223B1F0772761950CF47095072E000CBE -:10226000880B990B0E9498352AE939E949E95EE320 -:102270000E94FC350E946035962F812F60E010E0AF -:102280001B836C839D838E8386E0FE013196DE0185 -:102290001D9601900D928A95E1F786E0FE013D962C -:1022A000DE01539601900D928A95E1F786E0FE01DA -:1022B0007396DE01119601900D928A95E1F786E002 -:1022C000FE013196AFE3B3E001900D928A95E1F7FC -:1022D00086E0EFE3F3E0DE01179601900D928A9518 -:1022E000E1F786E0E9E3F3E0DE01119601900D925B -:1022F0008A95E1F746E050E0BE016F5F7F4FCE0167 -:1023000007960E940235892B79F0E0916603F091DF -:102310006703309749F082E080933F030480F581A2 -:10232000E02D8FE393E00995109241031092420350 -:10233000109243031092440386E0EFE3F3E0A9E335 -:10234000B3E001900D928A95E1F768960FB6F89484 -:10235000DEBF0FBECDBFDF91CF911F910895E6E3A1 -:10236000F2E086E0DF011D928A95E9F70C94E70B15 -:102370001F93CF93DF93CDB7DEB7AA970FB6F8942C -:10238000DEBF0FBECDBF82E893E02091F100DC01FB -:102390002D93CD01B3E08A389B07B9F78091830371 -:1023A000833009F472C0B8F4813009F449C0823036 -:1023B00009F4B5C08091E80083FF8DC2809182034B -:1023C000909183039A3008F086C2E92FF0E0EF5530 -:1023D000F94C0C94EC348A3009F490C08B3009F439 -:1023E00071C0893039F780918203813219F7809169 -:1023F000860390918703009711F00297D9F6809198 -:10240000E800877F8093E8008091E80082FF38C071 -:102410009091F3008091F200029731F48091F100E5 -:10242000813011F0863021F48091F10080937503A2 -:102430008091E8008B778093E8000E941E07BACF56 -:1024400080918203813A09F0B5CF8091E800877FBF -:102450008093E8008091860390918703892B61F433 -:1024600068E086E793E070E00E94D0078091E80082 -:102470008B778093E8009ECF60E090E080E0F3CF20 -:10248000809180038111C0CF95CF80918203813AE2 -:1024900009F090CF8091860390918703892B09F0F2 -:1024A00089CF8091E800877F8093E8008091E800E1 -:1024B00080FFFCCF809178018093F1008091E8004B -:1024C0008E77B9CF80918203813209F073CF8091EA -:1024D000860390918703892B09F06CCF8091E800E7 -:1024E000877F8093E8000E941E0780918403809379 -:1024F0007801109273030E94AF115CCF8091820328 -:10250000813209F057CF8091E800877F8093E800FF -:102510000E941E0780918503809374034BCF8091A6 -:102520008203813A09F046CF8091E800877F80934B -:10253000E8008091E80080FFFCCF80917403BCCF5D -:10254000803899F0823809F0C6C1809186038F7077 -:10255000873008F0C0C18093E9008091EB0085FBD3 -:10256000882780F91092E90006C080917E0390913F -:102570007F03911182609091E800977F9093E8002B -:102580008093F1001092F1008091E8008E779FC156 -:10259000882309F48DC1823009F09DC180918403A4 -:1025A000811190C1809186038F702FEF280F263004 -:1025B00008F091C18093E9002091EB0020FF82C1D7 -:1025C000933031F48091EB0080628093EB007AC10C -:1025D0009091EB0090619093EB0021E030E001C01E -:1025E000220F8A95EAF72093EA001092EA00809180 -:1025F000EB008860EACF81116EC1109184031F77D0 -:102600008091E3008078812B8093E3008091E80043 -:10261000877F8093E8000E941E078091E80080FF7A -:10262000FCCF8091E30080688093E30082E0111189 -:1026300083E0809380034FC18058823008F04BC103 -:1026400020918403309185032C3DE3E03E07A1F502 -:1026500083E08A838AE289834FB7F894DE01139678 -:1026600020E03EE051E2E32FF0E050935700E49188 -:1026700020FF03C0E295EF703F5FEF708E2F90E078 -:10268000EA30C0F0C7968D939D932F5F243159F7A0 -:102690004FBF8091E800877F8093E8006AE270E096 -:1026A000CE0101960E94D0078091E8008B7780933D -:1026B000E80011C1C096E7CF80918603909187030F -:1026C000432F55274330510509F44AC078F541306E -:1026D000510509F47AC08BE590E0ECE8FBE042306C -:1026E000510509F0F8C02091E800277F2093E80009 -:1026F00020918803309189038217930708F49C0185 -:1027000040E02115310509F065C0411163C0809199 -:10271000E80082FDC9CF80918003882329F28530AB -:1027200019F28091E80083FFF2CFBECF413251050C -:1027300009F43CC04232510509F0CDC08330910507 -:1027400008F0C9C0FC01EE0FFF1FEB5DFD4F0190CB -:10275000F081E02D8E5D9D4FDC018C9190E01AC0E0 -:10276000332721303105D1F02115310561F02230B8 -:10277000310509F0B0C0E9EFFBE0E4918E2F90E065 -:10278000E9EFFBE007C0EBE2FCE0E4918E2F90E084 -:10279000EBE2FCE0009709F49EC0A5CFE9E1FCE084 -:1027A000E4918E2F90E0E9E1FCE0F4CF83309105D5 -:1027B00008F091C0880F991FFC01E55DFD4F019065 -:1027C000F081E02D89E090E08ECF82E190E0E7EEAD -:1027D000FBE089CF80918003882309F465CF8530A1 -:1027E00009F462CF8091E80083FD5ECF8091E8001C -:1027F00082FD8DCF8091E80080FF83CF9091F30020 -:102800008091F2002115310519F08830910550F0C2 -:1028100041E0089709F040E08091E8008E778093CE -:10282000E8006FCF44914093F10031962150310977 -:102830000196E8CF803809F04EC08091E800877F8C -:102840008093E800809181038093F1009DCE8111F7 -:1028500042C0109184031230F0F58091E800877F28 -:102860008093E800109381030E941E07112311F04A -:1028700084E005C08091E30087FDFACF81E080937A -:10288000800342E061EC81E00E943D0742E261EC9E -:1028900084E00E943D0742E261EC82E00E943D0735 -:1028A00042E260EC83E00E943D078091800313C008 -:1028B00080918403813079F481E0933009F080E0E5 -:1028C00080937F031092E9008091E800877F8093D6 -:1028D000E8000E941E078091E80083FF0AC08091F3 -:1028E000E800877F8093E8008091EB00806280930E -:1028F000EB00AA960FB6F894DEBF0FBECDBFDF91F6 -:10290000CF911F9108951F93CF93DF93162FC091FE -:102910007006D09171068A30D1F420915303CE0114 -:1029200080579440622F70E00E94B834281B822F99 -:1029300066E00E94CC34C82FC15020F4DF91CF91C3 -:102940001F91089560E080E20E948314F5CF8D30DE -:10295000E9F4C057D44020915303622F70E0CE01B8 -:102960000E94B834281B822F9E01280F311D21158B -:10297000324018F080E0D0E0C0E0C80FD11DC0594F -:10298000DB4FD0937106C0937006D8CF96E0FE015E -:10299000A4E5B3E001900D929A95E1F7803E90F1A5 -:1029A00086E0FE0111928A95E9F7C0917006D091F8 -:1029B0007106111133C046E050E0BE0184E593E09A -:1029C0000E9402359E0120573440892B91F52A5FE1 -:1029D0003F4F40915303642F70E0C9010E94B83407 -:1029E000481B463010F4240F311D211572E03707C3 -:1029F00010F030E020E020593B4F309371062093D7 -:102A000070069CCFF6E08F9FB0011124685B794F70 -:102A100046E050E0CE010E94F934C7CF9E012A5F04 -:102A20003F4FFE012E173F0731F280818095819341 -:102A3000F9CFC90145E0969587954A95E1F741E0C0 -:102A400050E0BA0102C0660F771F8A95E2F7CB010A -:102A500060916E0470916F04862B972BB9016B5FA8 -:102A60007F4FE5E076956795EA95E1F702C0440F60 -:102A7000551F6A95E2F7842B952B90936F048093F2 -:102A80006E04A5CFFF920F931F93CF93DF93EC01BA -:102A9000F62EFC0101900020E9F78F010150110989 -:102AA000C017D10730F0DF91CF911F910F91FF90A8 -:102AB00008956F2D89910E948314F2CFE1E5F3E030 -:102AC0008083618324E630E042E050E0BF0184EB84 -:102AD0000C94EF31CF93C82F60E08CE00E945E151C -:102AE0006C2F84E00E945E1561E08CE0CF910C9425 -:102AF0005E15CF92DF92EF92FF926B017C010E94F4 -:102B0000FE08B701A60188E090E0FF90EF90DF900B -:102B1000CF900C943E35AF92BF92CF92DF92EF925E -:102B2000FF920F931F93CF93DF9300D00F92CDB7F7 -:102B3000DEB7082FF62E142FE22E8091690480FF55 -:102B40004FC0E82FE695AE2FB0E0AA5EBD4F9C9136 -:102B500090934E038E7F823009F056C0413A08F0C0 -:102B600040EA9E012F5F3F4F6F2D802F0E94140976 -:102B70008091690480FF11C02B8139814A81809145 -:102B800075019091760153E0859FF0011124E5577E -:102B9000FC4F891798F10E948B0D80916A04801375 -:102BA00008C080916B048F1104C080916C04811760 -:102BB00029F08091500382608093500300936A044F -:102BC000F0926B0410936C04EE2051F06091690454 -:102BD00070916A0480916B0490916C040E94791545 -:102BE0000F900F900F90DF91CF911F910F91FF9059 -:102BF000EF90DF90CF90BF90AF90089541833083E6 -:102C000022838F5F3396C5CF923039F6E2508E2FF4 -:102C10008170D82EE695F0E0E750FA4FA590B49079 -:102C2000C12CBB2460917701C61608F0B4CF2C2DBF -:102C300030E0A29EC001A39E900DB29E900D112483 -:102C400070E00E94B834802FD11016C0860F4091DA -:102C50007501420F532F511D9A01220F331F240F6C -:102C6000351F25573C4F412F113A08F040EA6F2D90 -:102C70000E941409C394D6CF861BE9CF20E00C94A0 -:102C80008B15CF93C82F0E94BB0C823099F138F47A -:102C90008823C1F0813029F18C2FCF9108958330A2 -:102CA00081F18430C9F740E56FEF8AED0E943E164E -:102CB00087E00E946A1580910001882369F31092D1 -:102CC00070010CC040E56FEF82E30E943E168091D8 -:102CD00000018823A1F381E0809370010E94280FF6 -:102CE000DBCF40E56FEF8CEF0E943E1685E40E943B -:102CF0006A15D2CF40E56FEF80E50E943E1685E26F -:102D0000F6CF40E56FEF86E70E943E168FE1EFCFEA -:102D10000E94411680938A030C94E70B80918A03EA -:102D2000982F9670963019F488600C948816877FD7 -:102D3000FCCF21E030E001C0220F8A95EAF7209510 -:102D400080918A0382230C94881621E030E001C030 -:102D5000220F8A95EAF780918A03822B0C948816B9 -:102D6000E9E6F4E0438121E1421B08F440E021E080 -:102D7000628181810C948B15E9E6F4E0438121E1C5 -:102D8000420F08F44FEF21E0628181810C948B1592 -:102D9000E9E6F4E0628121E1621B08F460E021E0F1 -:102DA000438181810C948B15E9E6F4E0628121E195 -:102DB000620F08F46FEF21E0438181810C948B1541 -:102DC000E9E6F4E0818121E04381628188500C943E -:102DD0008B15E9E6F4E0818121E043816281885F1F -:102DE0000C948B1580916D04882319F08150809389 -:102DF0006D046091690470916A0480916B049091F4 -:102E00006C040C94791580916D04833018F48F5FF5 -:102E100080936D046091690470916A0480916B04E1 -:102E200090916C040C9479159091690490FF26C0E0 -:102E3000917081111CC0926090936904809150033D -:102E4000816080935003662351F060916904709112 -:102E50006A0480916B0490916C040E9479154091F2 -:102E60006C0460916B0480916A040C943E168C3063 -:102E700010F09661E1CF880F982BDECF08958091F6 -:102E800069048695815009F48BE061E00C94141775 -:102E90008091690486958F5F8C3008F081E061E055 -:102EA0000C9414178091690480FF07C0869582589E -:102EB0008F77893010F40C94481761E082E00C940D -:102EC0001417E9E6F4E083E0808311828FEF8283B8 -:102ED00080EA83831482AEE4B3E012968C91129759 -:102EE000836012968C9360817181828193810C94AE -:102EF0007915AB01BC0188E190E00C943E35CF938D -:102F0000C82FE2E6F3E0982F990F990F990F80816F -:102F10008770892B8083E3E6F3E09C2F929596954A -:102F200097708081887F892B808360916003709186 -:102F3000610380916203909163030E9479176C2F63 -:102F400082E0CF910C945E15E0E6F3E089E880839F -:102F5000118282818C7F8283609160037091610312 -:102F600080916203909163030C947917E0E6F3E09B -:102F700080818E7F80836091600370916103809176 -:102F80006203909163030C947917E0E6F3E080818B -:102F9000816080836091600370916103809162031E -:102FA000909163030C9479170E94F83040E060E040 -:102FB00080E00C94080F69EE7EEF90E080E00E94C4 -:102FC0004A3560E082E090E00E942C3560E083E0CA -:102FD00090E00E942C351092980260E084E090E02E -:102FE0000E942C3560E082E290E00E942C3560E087 -:102FF00085E090E00E942C3560E086E090E00E9441 -:103000002C356FEF87E090E00E942C3540E050E0D7 -:10301000BA0188E090E00E943E3560E08DE090E0EB -:103020000E942C3540E050E0BA0188E190E00E9417 -:103030003E3560E087E190E00E942C3540E050E0B2 -:10304000BA018CE190E00E943E3570E060E080E2E1 -:1030500090E00E944A350E94A41780E00E9413105D -:103060000E942C1040E050E0BA018FE090E00E94F6 -:103070003E3540E050E0BA0183E190E00C943E35EB -:103080000F931F93CF93DF9300D000D0CDB7DEB75F -:103090006091CA027091CB028091CC029091CD02D6 -:1030A0000E943208643671058105910588F10E94FD -:1030B000C00E882379F10E944E086E5F7F4F8F4FBC -:1030C0009F4F69837A838B839C8380912D0190919C -:1030D0002E018B549D4F40912C0150E045305105FD -:1030E00010F044E050E0BE016F5F7F4F0E940F354B -:1030F00084E090E00E940434892BD9F40E944E08A9 -:103100006093CA027093CB028093CC029093CD025D -:1031100081E010C00E944E080091D7021091D802A1 -:103120002091D9023091DA02600F711F821F931F24 -:10313000C4CF80E00F900F900F900F90DF91CF9150 -:103140001F910F910895BF92CF92DF92EF92FF925D -:103150000F931F93CF93DF93B82EEB01F42E6901E9 -:10316000688179818A819B810E9432086436710569 -:103170008105910510F4FF2019F1EB2C0B2C000CAC -:10318000FF088B2D9AE08902F0011124EE5FFE4FBB -:10319000838194818B549D4F428150E00417150721 -:1031A00008F4A801B6010E940F35C7010E9404343B -:1031B000892B89F40E944E08688379838A839B83D4 -:1031C00081E0DF91CF911F910F91FF90EF90DF9001 -:1031D000CF90BF90089580E0F4CF0F931F93CF93CB -:1031E000DF930F92CDB7DEB780915E038983209184 -:1031F000C90290E041E02817190609F440E001E017 -:1032000010E09E012F5F3F4F62ED72E086E00E946A -:10321000A3180F90DF91CF911F910F9108950F93F5 -:103220001F93CF93DF93CDB7DEB728970FB6F894EF -:10323000DEBF0FBECDBF85E0E9E6F4E0DE0111960A -:1032400001900D928A95E1F780914E0390914F0382 -:10325000A09150038E839F83A88741E088858111C8 -:1032600001C040E008E010E09E012F5F3F4F6EEC90 -:1032700072E085E00E94A3188111109250032896F5 -:103280000FB6F894DEBF0FBECDBFDF91CF911F9177 -:103290000F9108956F927F928F929F92AF92BF92FB -:1032A000CF92DF92EF92FF920F931F93CF93DF9312 -:1032B0000F92CDB7DEB7862E5A016901682E880FAE -:1032C0007708C3010E940434892B09F07BC08AE08F -:1032D000869DF001879DF00D1124EE5FFE4F458124 -:1032E00050E04115510511F041E050E08AE0869D23 -:1032F000F001879DF00D1124EE5FFE4F668177810E -:103300006B547D4FCE0101960E940F35F50160810F -:103310007181828193810E94320864367105810532 -:10332000910540F4B701C8010E94E308998189170B -:1033300009F44FC0082C000C9908C4010E94043401 -:10334000892B91F0B12C8B2D0F90DF91CF911F9194 -:103350000F91FF90EF90DF90CF90BF90AF909F9034 -:103360008F907F906F9008958AE0889DF001899DED -:10337000F00D1124EE5FFE4F458150E0E416F50696 -:1033800008F4A7018AE0889DF001899DF00D1124C1 -:10339000EE5FFE4F668177816B547D4FC6010E94C0 -:1033A0000F35B701C8010E94E30899818913CACF7C -:1033B0000E944E08F5016083718382839383BB244E -:1033C000B394C1CFB12CA701B801C6010E940F353B -:1033D000BACFBB24B394F7CFCF92DF92EF92FF9294 -:1033E0000F931F93CF93DF9300D000D00F92CDB7F0 -:1033F000DEB76B0185E0E82EF12C06EB12E09E01B2 -:103400002F5F3F4F4DEA52E061E080E00E944A1991 -:10341000882349F095E0FE013196A8EAB2E00190D8 -:103420000D929A95E1F795E0E8EAF2E0D601019075 -:103430000D929A95E1F70F900F900F900F900F90CB -:10344000DF91CF911F910F91FF90EF90DF90CF9080 -:10345000089590E080E00E942635893E9E4F11F449 -:103460000C94D01080E008951F920F920FB60F9227 -:1034700011242F933F934F935F936F937F938F9379 -:103480009F93AF93BF93CF93DF93EF93FF93D0912D -:10349000E900DF708091EC00C82FC17080FDC0E8AA -:1034A0001092E9008091F000877F8093F00078947B -:1034B0000E94B8111092E9008091F000886080931A -:1034C000F000CD2BCF70C093E900FF91EF91DF9119 -:1034D000CF91BF91AF919F918F917F916F915F91AC -:1034E0004F913F912F910F900FBE0F901F90189505 -:1034F0001F920F920FB60F9211242F933F934F9369 -:103500005F936F937F938F939F93AF93BF93EF934B -:10351000FF938091E10082FF09C08091E20082FF69 -:1035200005C08091E1008B7F8093E1008091DA00FB -:1035300080FF24C08091D80080FF20C08091DA00F5 -:103540008E7F8093DA008091D90080FF9DC080E15A -:1035500089BD82E189BD09B400FEFDCF81E0809381 -:10356000800380917203811109C00E94A4060E9409 -:103570006F078091E20084608093E2008091E10017 -:1035800080FF17C08091E20080FF13C08091E200AD -:103590008E7F8093E2008091E20080618093E20060 -:1035A0008091D80080628093D80019BC85E0809318 -:1035B00080038091E10084FF2BC08091E20084FFB2 -:1035C00027C080E189BD82E189BD89B5982F9170BE -:1035D00080FFFBCF8091D8008F7D8093D8008091B1 -:1035E000E1008F7E8093E1008091E2008F7E8093E6 -:1035F000E2008091E20081608093E200809181038B -:10360000882309F447C084E080938003809180037D -:103610008091E10083FF27C08091E20083FF23C0F7 -:103620008091E100877F8093E10082E080938003B6 -:10363000109281038091E1008E7F8093E100809160 -:10364000E2008E7F8093E2008091E20080618093AF -:10365000E20042E060E080E00E943D078091F000DF -:1036600088608093F000FF91EF91BF91AF919F919F -:103670008F917F916F915F914F913F912F910F901B -:103680000FBE0F901F90189519BC109280031092D6 -:10369000720374CF8091E30087FD93E090938003E1 -:1036A000B5CF78941F921FB61F9211248F939F93CA -:1036B000AF93BF9380916B0390916C03A0916D03C6 -:1036C000B0916E030196A11DB11D80936B03909381 -:1036D0006C03A0936D03B0936E03BF91AF919F9164 -:1036E0008F911F901FBE1F9018959C014FB7F894A3 -:1036F00080916B0390916C03A0916D03B0916E0368 -:103700004FBF821B930B08952FB7F89480916B03E2 -:1037100090916C03A0916D03B0916E032FBF08953B -:10372000AF92BF92DF92EF92FF920F931F93CF93CE -:10373000DF93CDB7DEB761970FB6F894DEBF0FBE4B -:10374000CDBF4C87888B998BE52ED62EF72E5E0148 -:1037500027E0A20EB11C85E0F50111928A95E9F7E8 -:1037600080914D038A3008F095C080914B03909171 -:103770004C030E94751B089708F48CC004E610E007 -:1037800025E030E0A50164E084E10E944332892B0A -:1037900009F0DEC010924D038B8587FDD1C0E894FF -:1037A000E0F88091490390914A03009709F0C2C064 -:1037B0008F819885891708F091C0981B892F41E067 -:1037C0002091710130917201889FC001112455E050 -:1037D000589FF001599FF00D1124E29FB001E39F23 -:1037E000700DF29F700D1124660F672F661F770B07 -:1037F0007195442319F07195619571098091470382 -:1038000090914803680F791F89859A85891708F078 -:1038100068C0981B892F41E0889FC001112455E0A2 -:10382000589FF001599FF00D1124E29FC001E39FC2 -:10383000900DF29F900D1124880F892F881F990BEE -:103840009195442319F09195819591092091450313 -:1038500030914603820F931F603871050CF444C009 -:103860006F57710970934803609347033FE7D32E66 -:10387000803891050CF44BC08F5791099093460303 -:10388000809345039FE7F92E0E94841B90934C037D -:1038900080934B03ED86DE86FF8686E0FE013C9634 -:1038A000DE01119601900D928A95E1F729813A8106 -:1038B0004B815C816D817E8180E090E061960FB6E6 -:1038C000F894DEBF0FBECDBFDF91CF911F910F9156 -:1038D000FF90EF90DF90BF90AF900895891B40E07C -:1038E0006FCF891B40E098CF6138FFEF7F074CF422 -:1038F00061587F4F709348036093470321E8D22EAD -:10390000B7CFD62E1092480310924703B1CF81381B -:103910002FEF92074CF481589F4F9093460380936A -:10392000450381E8F82EB0CFF82E1092460310928E -:103930004503AACF019790934A0380934903A4CFEC -:103940006894E0F884E00E946A1584E190E0F3CF87 -:1039500080914D038F5F80934D0396CF5F926F925E -:103960007F928F929F92AF92BF92CF92DF92EF920F -:10397000FF920F931F93CF93DF9300D000D00F924D -:10398000CDB7DEB77C01FC0183819481892B31F0B6 -:103990008081918189238F3F09F0DDC60F900F90C0 -:1039A0000F900F900F90DF91CF911F910F91FF908B -:1039B000EF90DF90CF90BF90AF909F908F907F90CF -:1039C0006F905F9008950E946E10182F682F898164 -:1039D0009A810E94BB0B69817A81812F0E946110BC -:1039E0008C01F7018281882361F0F801E65EFC45D5 -:1039F000ED30F10530F4E555F94C0C94EC340E94AF -:103A0000C517D0906003D0FE1CC08D2D86958370A5 -:103A1000F7019281992309F460C1823090F4B701D3 -:103A2000C8010E948608882361F0D694D694D69463 -:103A30008091610383708295880F807E8D290E941A -:103A40006A15F7018281882309F47AC6C801825178 -:103A50009F45409708F036C68FEF93E00E941835D7 -:103A6000025193EEA92E92E0B92E811197CF011148 -:103A700038C11C821B82662463948AE0582E85011B -:103A80000F5F1F4FC5010E94183589831A82882352 -:103A900009F484CF9FEF980F933008F031C18A83E7 -:103AA000698232E0A30EB11CC8010E9418358B83D5 -:103AB000882309F473CF8E010F5F1F4FF801208117 -:103AC0002223E9F2213009F055C1918182819130A0 -:103AD00009F018C10E5F1F4F6AE070E0893311F4DE -:103AE00060E570E00E94F30E13C10E94B61789CF03 -:103AF0008091600380FF0DC00E94B6176091600343 -:103B00007091610380916203909163030E94791721 -:103B100078CF0E94C517F2CF0E94A41772CF909160 -:103B20006003892F86958F5F8370880F997F892B1B -:103B300080936003982F9670963001F7897F809369 -:103B40006003DCCF90916103892F8B7F92FF8460AB -:103B500080936103D3CF80916003982F96959695BB -:103B600096958091610383708295880F807E892B62 -:103B70008C3798F48F5F282F220F220F220F9091FD -:103B800060039770922B9093600382958695837063 -:103B9000909161039C7F892BDBCF81E0ECCF8091FA -:103BA0006003982F96959695969580916103837002 -:103BB0008295880F807E892B11F08150DCCF8BE7B6 -:103BC000DACF30916103932F969596959695209133 -:103BD0006203822F83708295880F807E892B90E00C -:103BE0000196482F440F440F440F3770342B309305 -:103BF000610335E0969587953A95E1F783702C7FC0 -:103C0000822B809362037ACF30916103932F969534 -:103C10009695969520916203822F83708295880FE6 -:103C2000807E892B8150990BDCCF8091620382FFCB -:103C300012C08B7F80936203609160037091610377 -:103C400080916203909163030E94791760E081E0A4 -:103C50000E945E15D6CE84608093620360916003FB -:103C60007091610380916203909163030E947917C0 -:103C700060E08CE00E945E1564E182E00E945E15C7 -:103C800065E081E00E945E1561E08CE0E1CF80910B -:103C90006203982F969596959695809163038295E9 -:103CA000880F807E892B883720F4865F0E947F17DB -:103CB000A8CE88E7FBCF80916203982F96959695C2 -:103CC0009695809163038295880F807E892B84313D -:103CD00010F08A50EBCF84E1E9CF882309F4B1CE0C -:103CE0009ECEA114F4E0BF0609F458CEC5010E948F -:103CF0001835811101C001502FEFA21AB20AB7CEB8 -:103D00005801D9CE923039F40E5F1F4F0E94470CF4 -:103D10000F5F1F4FD3CE933029F40E5F1F4F0E94C9 -:103D20000E0CF6CF943019F00F5F1F4FF1CF0E5FDE -:103D30001F4F30E020E0B8016F5F7F4FF8014181F5 -:103D40008053990B8A30910550F02150310900F3CE -:103D50008FE99FE00197F1F700C00000F6CF529E77 -:103D6000F001539EF00D11249C012E0F3F1F842F54 -:103D70008B01E1CFE22FF0E0E754FE4F7490822FE9 -:103D800086958695869590E0FC01E755FE4FE49078 -:103D90002770F12C022E02C0F594E7940A94E2F702 -:103DA000E1E0EE22FF24FC01E756FE4FC490D12C47 -:103DB000022E02C0D594C7940A94E2F7F1E0CF2214 -:103DC000DD24FC01E757FE4F8490912C02C09594AE -:103DD00087942A95E2F721E082229924E114F104E4 -:103DE00019F081EE0E94470CC114D10419F086EE3F -:103DF0000E94470C39E36AE070E0731202C060E58C -:103E000070E0872D0E94F30ECD2819F086EE0E94F7 -:103E10000E0CEF2819F081EE0E940E0C892809F48F -:103E200077CF6AE070E08CE25DCE81E00E94A5165B -:103E300003C081E00E9499160F900F900F900F9091 -:103E40000F90DF91CF911F910F91FF90EF90DF9036 -:103E5000CF90BF90AF909F908F907F906F905F902A -:103E60000C948E1682E0E2CF003E110509F457C093 -:103E700008F04DC00C32110509F487C1F701928199 -:103E8000911186C28091730382720A3CFCE51F0780 -:103E900009F45EC208F0B4C1053C3CE5130709F41F -:103EA00043C208F098C1033C5CE5150709F41DC244 -:103EB00008F035C2023C1C4509F4C7C1F701008176 -:103EC0001181992309F47EC2C8010E946E10D82E78 -:103ED000682FC8010E94BB0BB8018D2D0E94611094 -:103EE0000E94080A182FB82EF70122814581342F2D -:103EF00032953F70892F82958F70C82ED12C8C30CF -:103F000008F098C2F601E854F94C0C94EC34013EE8 -:103F1000110509F4A5C0043E110509F0AFCF8823AF -:103F200009F430C181E08093F20280918A030E94FB -:103F3000BB0C813009F0A2CF83E30E946A159ECFAB -:103F40000338FFE51F0709F46EC060F5053F110552 -:103F500009F414C140F4043F110509F08FCF61E06A -:103F60000E94CC0C8BCF063F110509F409C1023821 -:103F70003FE5130709F082CF882309F47FCF81EE54 -:103F80000E94470C83EE0E94470C8FE40E94470C6E -:103F90008FE40E940E0C83EE0E940E0C81EE0E94B4 -:103FA0000E0C6CCF05384FE5140709F4B5C008F4C2 -:103FB0005AC006389FE5190709F4C6C00738EFE56F -:103FC0001E0709F05BCF882309F4E8CC87E20E9442 -:103FD000470CFFEF28EA31E0F15020403040E1F794 -:103FE00000C000008CE20E94470C87E20E940E0C89 -:103FF0008BE10E94470C4FEF50EE80E04150504063 -:104000008040E1F700C000008CE20E940E0C8BE1C2 -:104010000E940E0C40E56FEF84EB0E943E1681E09B -:1040200080933E02BBCC882309F428CF81EE0E9406 -:10403000470C83EE0E94470C80E50E94470C80E508 -:10404000A8CF80934202109341020093400288233C -:1040500021F081E08093F30211CF1092F3020ECF92 -:1040600080933F02F0CF882379F180913F0288232B -:1040700049F0809140020E940E0C80EE0E94470C95 -:104080008AE20CC0809142028823D1F380914002E1 -:104090000E940E0C80EE0E94470C8CE40F900F9053 -:1040A0000F900F900F90DF91CF911F910F91FF9084 -:1040B000EF90DF90CF90BF90AF909F908F907F90C8 -:1040C0006F905F900C94470C8AE20E940E0C8CE477 -:1040D0000E940E0C80EE0E940E0C80913F02811116 -:1040E00005C080914202882309F458CC8091400297 -:1040F000D5CF882309F4C2CE80913E02882309F4EB -:10410000BDCE0E94841B9093A1028093A0021092C6 -:104110003E0210920101B2CE882309F420CF809193 -:104120007001811104C080910001882339F0109240 -:104130007001109200010E94280FA0CE81E08093B0 -:10414000700180930001F7CF882309F408CF809194 -:104150003D02882349F080EE90E0909372018093B5 -:10416000710110923D02E7CF86E690E090937201D4 -:104170008093710181E080933D02DDCF62E0F0CE5B -:1041800064E0EECE1092F20279CE882331F081E025 -:104190008093F5021092680171CE1092F5026ECEF6 -:1041A000882349F080918A030E94BB0C813019F466 -:1041B00082E30E946A15F7018281882309F4B2C262 -:1041C00080918A030E94BB0C813009F0ABC284E36A -:1041D0000E946A15A7C2073C2CE5120709F4AEC07D -:1041E00008F4A7C0083C4CE5140709F4ACC0093C2E -:1041F0001C4509F063CE40EB56E16CEB76E179C0EB -:10420000043DECE51E07A8F40E3CFCE51F0708F092 -:10421000C5CB0C3C2CE5120709F49FC042EF56E1D8 -:1042200063E077E10D3C1C4508F463C061E081E088 -:1042300046C0053D4CE5140709F4B0CB08F492C024 -:104240000D351D4509F4AACB39CE8091690480FF54 -:1042500031C08E7F809369046091690470916A0413 -:1042600080916B0490916C040E94791580915003A9 -:104270008160809350039FEFE0E7F2E09150E040CF -:10428000F040E1F700C000000F900F900F900F90EA -:104290000F90DF91CF911F910F91FF90EF90DF90E2 -:1042A000CF90BF90AF909F908F907F906F905F90D6 -:1042B0000C948B0D81608093690461E086950F906A -:1042C0000F900F900F900F90DF91CF911F910F9152 -:1042D000FF90EF90DF90CF90BF90AF909F908F9026 -:1042E0007F906F905F900C9414174FE357E168E450 -:1042F00077E10F900F900F900F900F90DF91CF917B -:104300001F910F91FF90EF90DF90CF90BF90AF90F3 -:104310009F908F907F906F905F900C94F90848E485 -:1043200057E16FE377E1E5CF40EE56E169EE76E1E4 -:10433000E0CF49EE56E160EE76E1DBCF48EC56E1A6 -:1043400064ED76E1D6CF44ED56E168EC76E1D1CF6D -:104350004CEB56E160EB76E1CCCF43E057E162EF06 -:1043600076E1C7CF0F900F900F900F900F90DF91D5 -:10437000CF911F910F91FF90EF90DF90CF90BF9062 -:10438000AF909F908F907F906F905F900C9452179A -:104390000E3D1C4509F092CD0F900F900F900F909D -:1043A0000F90DF91CF911F910F91FF90EF90DF90D1 -:1043B000CF90BF90AF909F908F907F906F905F90C5 -:1043C0000C94DB17C8010E94930BD82E85CD092FC2 -:1043D0000F70907F11F00295007F812F2223C9F08A -:1043E000002369F090E2910F983010F011110BC08A -:1043F00080917303082B009373030E94720B812F2B -:104400000E94470C17C080919702082B00939702D7 -:10441000F4CF0E940E0C002369F00095105E183056 -:1044200010F0B11027C08091730308230093730329 -:104430000E94720B98E0C91AD108E4E0CE16D104AC -:1044400008F0ACCA0E94E30E0F900F900F900F90EF -:104450000F90DF91CF911F910F91FF90EF90DF9020 -:10446000CF90BF90AF909F908F907F906F905F9014 -:104470000C944B0E80919702082300939702D8CF9B -:10448000892F8F70907F903211F08295807FF1E0BC -:10449000BF120CC0222329F0333060F60E94040CB6 -:1044A000C9CF323038F60E94F90BC4CF222341F035 -:1044B0003323A1F340FFA3CF4F70F7014583EECF25 -:1044C000332389F3193309F0F5C0FFEF27EE33E00A -:1044D000F15020403040E1F700C00000812F0E94E1 -:1044E0000E0CA8CF892F86958695837061F0813058 -:1044F00009F0A0CF812F9370211102C090E080E0DD -:104500000E945A0897CF812F9370211102C090E02A -:1045100080E00E9470088ECF892F8370A1F5211151 -:1045200089CF812F829586958770880F880F412FBC -:104530004F70082E01C0440F0A94EAF7212F207112 -:1045400014FF07C02FE030E001C0220F8A95EAF780 -:104550002095969596959370923081F0822F842BBA -:10456000933030F480919802913029F0242B8223EB -:104570000E94F50B5FCF842B822BFACF242B8091E6 -:1045800098028227F5CF8695222311F0892F81701A -:10459000882309F44FCF812F829586958770880FE5 -:1045A000880F412F4F70082E01C0440F0A94EAF77C -:1045B000212F207114FF07C02FE030E001C0220F2F -:1045C0008A95EAF72095969596959370923081F0AA -:1045D000822F842B933030F480918A03913029F01C -:1045E000242B82230E94881625CF842B822BFACF7E -:1045F000242B80918A038227F5CF092F0F70222365 -:1046000029F0802F0E94A516812F48CF812F0E946C -:10461000F90B802F0E9499160DCF812FE1EF1E1705 -:1046200089F1E11750F0F0EF1F17B9F02223B1F133 -:104630003111E5CE892F8F7129C042EF141749F14E -:1046400053EF1513F3CF80E0222361F29F7181E0D5 -:1046500001C0880F9A95EAF7C5CF222379F032304E -:1046600008F0E8CE292F2F7181E090E001C0880F7B -:104670002A95EAF790918A038927B4CF333008F05E -:10468000D9CEF0CF892F8F71222321F20E94A51657 -:10469000D1CE892F8F712223C9F3BCCF332379F078 -:1046A000893341F48FEF97EEE3E081509040E04092 -:1046B000E1F712CF8FE39CE90197F1F70DCF892F36 -:1046C0008F71A8CF0031FFE51F0709F4AECB013190 -:1046D0002FE5120709F4C6CB0E944E086093FA0238 -:1046E0007093FB028093FC029093FD02F70182819C -:1046F000053E110509F4A5CC08F022CC01321105C4 -:1047000008F0B2CB0E31110508F0F3CC0A301105D8 -:1047100009F446CD0531110509F44DCD09301105D7 -:1047200009F0ACCBF7018281882309F4A7CB8091F3 -:104730008A030E94BB0C813009F0A0CB81E3FDCB42 -:1047400000313FE5130709F474CB01314FE514073D -:1047500069F682E06FCB85E0DE01119601900D9243 -:104760008A95E1F7F701228189819A8121112BC96C -:104770000E94930B182F2FC91F93CF93DF93809123 -:104780006302807FA9F480916002882389F0809180 -:104790009502D091640260915E0270915F02A091D7 -:1047A0006102B0916202C62FC72316E0D81304C07D -:1047B000DF91CF911F91089590E0109711F0CF3FB6 -:1047C00019F401968770F2CF189F9001199F300D50 -:1047D0001124F901EB59FD4F41814713F2CF40817C -:1047E0004613EFCF42814111ECCF438154814A1BE4 -:1047F0005B0B403A510528F7809163028F7080610E -:1048000080936302F901E659FD4F80818F708061CA -:1048100080838EE592E00E94AE1CDF91CF911F91C4 -:104820000C94890BAF92BF92CF92DF92EF92FF92DE -:104830000F931F93CF93DF93CDB7DEB761970FB67A -:10484000F894DEBF0FBECDBF8C0185E0F801DE011C -:104850001D9601900D928A95E1F7F801E2808EE5B0 -:10486000A82E82E0B82E60916102709162026115FB -:10487000710509F432C190915E0240915F02892F67 -:1048800084238F3F09F429C120813181C380D480E2 -:10489000F0906002F601E61BF70BFF2009F4E8C078 -:1048A00080916302582F507FE03AF10508F0ABC0C9 -:1048B000511177C0FE2C431321C092131FC0E11089 -:1048C0001DC08F70806180936302C5010E94AE1C81 -:1048D00080916302F80185838F2D61960FB6F8945D -:1048E000DEBF0FBECDBFDF91CF911F910F91FF9023 -:1048F000EF90DF90CF90BF90AF900895CD2829F032 -:10490000822F83238F3F09F003C180E0F82FF170DD -:10491000DF2E80FF3CC0809195024091640256E0FA -:10492000841315C02D873E878D859E850E949D101E -:10493000292F22952F702230F0F0243018F59F7027 -:10494000F1F0F8019581907FD1F4D12C1EC090E058 -:10495000589FF001599FF00D1124EB59FD4F6181D3 -:10496000361306C06081261303C06281E6120FC0B1 -:1049700001968770D5CF9F7011F0882331F3805E48 -:10498000883018F3C8010E94AE1CFD2CA5CFEE2084 -:1049900009F4A2CF80916302816080936302F12CBD -:1049A0009BCF431306C0921304C0F801EE2009F414 -:1049B00079C0C8010E94A910882309F1EE20F9F0FE -:1049C00080916302803270F020915E0230915F022C -:1049D00038872F831986DB86CA868C87CE01079697 -:1049E0000E94AE1C86E0F801AEE5B2E001900D92A7 -:1049F0008A95E1F70E94BC23FF24F3946DCFC80190 -:104A00000E94AE1CF9CF51110AC08EE592E00E94BF -:104A1000AE1C86E0F50111928A95E9F7C0CF4313E9 -:104A20000FC092130DC0E1100BC0F8018583C801BF -:104A30000E94AE1C86E0F50111928A95E9F74CCFF1 -:104A4000C8010E94A9108823D1F2EE20C1F2809102 -:104A50006302803238F220915E0230915F023A8325 -:104A600029831B82DD82CC828E83CE010196B8CF52 -:104A7000E03AF105F8F6FE2CEE2009F243131FC0D0 -:104A800092131DC08091630280FD10C0982F907F0B -:104A900069F0F8018583903F31F0982F907F905F07 -:104AA0008F70892B8583C8010E94AE1C86E0F801B7 -:104AB000AEE5B2E001900D928A95E1F70DCFC80105 -:104AC0000E94A91081118ECF809163028160809332 -:104AD0006302C8010E94AE1CFFCEEE2009F48FCF06 -:104AE000C8010E94A910F82E882309F488CF86E017 -:104AF000F801AEE5B2E001900D928A95E1F7809160 -:104B00005E0290915F020E949D100E94BC23E4CE41 -:104B100081E08E25FBCE1F93CF93DF93CDB7DEB719 -:104B200067970FB6F894DEBF0FBECDBF4B8B5C8B83 -:104B30006D8B7E8B8F8B6111109297021A8A198A66 -:104B400085E0FE017396DE011D9601900D928A9517 -:104B5000E1F786E0FE013D96DE01179601900D9289 -:104B60008A95E1F7CE0107960E941224882389F0E6 -:104B700016E0809195029091640289134BC067966C -:104B80000FB6F894DEBF0FBECDBFDF91CF911F915E -:104B9000089586E0FE013796DE01119601900D9290 -:104BA0008A95E1F78A859B85892B11F38F819885FA -:104BB00089238F3FE9F22091640230E0C901019618 -:104BC00087709927409195024817190681F4109231 -:104BD00073030E94AF11109264021092950286E056 -:104BE000EEE5F2E0DF011D928A95E9F7C1CF96E08C -:104BF000929FD001939FB00D1124AB59BD4FFE0180 -:104C0000319601900D929A95E1F7809364020E948B -:104C1000890BAECF819FC00111248B599D4F0E94FB -:104C20001224882309F4ABCF8091950290E001967D -:104C300087709927809395029CCF7F928F929F9245 -:104C4000AF92BF92CF92DF92EF92FF920F931F939A -:104C5000CF93DF93CDB7DEB764970FB6F894DEBF7E -:104C60000FBECDBF8E010F5F1F4F8AE0D8011D928E -:104C70008A95E9F79FE4C92E91E0D92EF12CE12C19 -:104C8000AA24A394B12C3FE4832E31E0932EF601A5 -:104C900081916F018F3F09F443C0F894E82FE295AA -:104CA000EF70F0E021A18F70A50102C0440F551FE5 -:104CB0008A95E2F7CA01922F982B91A392A1809531 -:104CC000892382A30E94AC0900C0E8E4F1E0712CC2 -:104CD00031E021912F3F09F479C0A22FA295AF7046 -:104CE000B0E090968C9190E02F7002C095958795DA -:104CF0002A95E2F780FD6AC0832F782A330F8E163B -:104D00009F0639F7F601319780818F3F11F00E949D -:104D1000AE0950EA5A95F1F7F801EE0DFF1D7082C9 -:104D20008FEFE81AF80AA5E0EA16F10409F0AFCF10 -:104D30004AE050E0B8018DED92E00E9402357C011E -:104D4000892B41F08AE0F801ADEDB2E001900D92BF -:104D50008A95E1F71091E802E114F104C9F181E0CC -:104D600080939B020E94841B90939A0280939902E5 -:104D70008091990290919A020E94751B069770F09B -:104D8000ADEDB2E0E12FF0E0E15DFC4F8D9181935C -:104D900022E0A23EB207D1F710929B0281E090E0A0 -:104DA000EF28D1F064960FB6F894DEBF0FBECDBFEA -:104DB000DF91CF911F910F91FF90EF90DF90CF90F7 -:104DC000BF90AF909F908F907F90089580E095CF97 -:104DD00080919B028111CCCF0E94C00ED82EE09111 -:104DE000E802882309F4E1C07E0140E1E40EF11CF1 -:104DF00085E0D7011D928A95E9F70E2F10E0015D3D -:104E00001C4F8091D6028A3008F098C04CEE59E1D0 -:104E1000B701C8010E947C0E882309F4B2C043EA9E -:104E200058E2B701C8010E947C0E882309F4A9C08A -:104E300040E458E1B701C8010E947C0E882309F4C0 -:104E4000A0C04FE059E1B701C8010E947C0E882341 -:104E500009F497C04DEE58E1B701C8010E947C0EDD -:104E6000882309F48EC01092D6028091E70290E068 -:104E700045E050E0B701815D9C4F0E94023521E082 -:104E80002093A602892B09F06FC0D12C80910101DB -:104E9000811114C08091A0029091A1020E94751B03 -:104EA000813A9F4058F040E56FEF8CEF0E943E162C -:104EB00081E0809301018CE00E946A158EE9E82E62 -:104EC00082E0F82E10E000E0D7018D917D0188236B -:104ED000D1F08695F80109F465C0E850FE4F808155 -:104EE00091819C878B871D860E94841B8160782F0F -:104EF0009F878E87F701319710824B855C856D8582 -:104F00008F850E948B250E5F1F4F04301105E1F63F -:104F10006091FA027091FB028091FC029091FD0277 -:104F20000E94320861367A4E8105910528F040E0F2 -:104F300060E080E00E94080F8D2D34CF80919C02AC -:104F400090919D020E94751B843F914008F05ECFB6 -:104F50008091A602882309F498CF85E0F701119289 -:104F60008A95E9F71092A602A091E702B0E0A15D50 -:104F7000BC4F85E0FE01709601900D928A95E1F795 -:104F800085CF8091D6028F3F31F08F5F8093D6021C -:104F90008A3008F46ACF0E94841B90939D0280930C -:104FA0009C02D6CFEC50FE4F9ACFF0E0E15DFC4F73 -:104FB000F89485E0A6EBB2E001900D928A95E1F7B6 -:104FC00065E070E086EB92E00E94E3088093B50212 -:104FD0000E94AC09F894E091F002F0E0E351FD4F3B -:104FE00080818B878093BC0261E070E0CE010B96DC -:104FF0000E94E3088093BB020E94AC09F894C09021 -:10500000BD02D090BE02E090BF02F090C00280913D -:10501000A2029091A302A091A402B091A502C81689 -:10502000D906EA06FB06D1F0C092A202D092A302F2 -:10503000E092A402F092A5020E94C00E81110EC05F -:105040000E944E08C61AD70AE80AF90AC092D70287 -:10505000D092D802E092D902F092DA020E94AC0912 -:10506000F8948091C8028823F1F080FF0DC08091F0 -:10507000C10280FF25C090916904916090936904FA -:1050800060E086950E9414178091C80281FF09C0D4 -:1050900020E04091C4026091C3028091C2020E944C -:1050A0008B151092C8020E94AC09F8948091C90235 -:1050B000882349F00E94860F0E94AC0980E072CEDE -:1050C0000E94670EE1CF0E946B0FF6CFEF92FF9226 -:1050D0000F931F93CF93DF9300D000D00F92CDB7E3 -:1050E000DEB7162FE82EF12CC701880F991F662313 -:1050F00039F188509E4FFC01808191819A83898388 -:1051000001E00B830E94841B8160782F9D838C8338 -:10511000F701E256FD4F0127110F102B1083498133 -:105120005A816B818D810F900F900F900F900F908F -:10513000DF91CF911F910F91FF90EF900C948B25F1 -:105140008C509E4FD8CFCF92DF92EF92FF920F9369 -:105150001F93CF93DF930F92CDB7DEB7EE24E39486 -:10516000F12C0CEB12E09E012F5F3F4F41EB52E020 -:1051700063E082E00E944A19082F882321F1C09041 -:10518000EA028C2D90E09C0123513D4F7901198159 -:10519000F9018081181BD12E80E00AC0DA94F70152 -:1051A00080818F5F808360E08C2D0E946628802F35 -:1051B0001D14A4F3912F17FD90E0191B11110EC0BF -:1051C00081110E94700B802F0F90DF91CF911F9162 -:1051D0000F91FF90EF90DF90CF9008951F5FF70140 -:1051E00080818150808361E08C2D0E946628802F11 -:1051F000E5CF1F921FB61F9211248F939F93AF93F9 -:10520000BF9380916A03811113C080916B039091C9 -:105210006C03A0916D03B0916E034196A11DB11D69 -:1052200080936B0390936C03A0936D03B0936E0314 -:10523000BF91AF919F918F911F901FBE1F901895A6 -:10524000CDB7DEB7E0970FB6F894DEBF0FBECDBF87 -:1052500084B7877F84BF0FB6F894A89580916000CB -:10526000886180936000109260000FBE80E890E03B -:105270000FB6F89480936100909361000FBE85B7DC -:10528000806885BF85B7806885BF8AEA99E090937A -:105290003302809332020E94A4060E946F0780911D -:1052A000E20084608093E2007894809180038823F8 -:1052B000A1F01091E9001F709091EC00892F81708E -:1052C00090FD80E8182B1092E9008091E80083FDA2 -:1052D0000E94B8111F701093E90082E084BD93E032 -:1052E00095BD9AEF97BD80936E001092D7021092F1 -:1052F000D8021092D9021092DA020E94D0108111C5 -:1053000002C00E942C100E94C00E8093590180910F -:105310005901882309F4C9C01092730185E2809372 -:1053200074010E94C00E81110E94F73280915901D0 -:1053300081112FC0FE01359686E0DF011D928A950E -:10534000E9F786E6898387E98A8386EC8B8384E3A1 -:105350008C8385E38D833497AFE4B1E0CE010B9667 -:1053600021912D938E179F07D9F787E0E9E7F1E0A8 -:10537000DE01919601900D928A95E1F7FE01B196BA -:10538000A8E4B1E0CE01889621912D938E179F0756 -:10539000D9F78091590195E0811190E09093E8024E -:1053A00085E0891B8093E7020FE411E084E5E82E95 -:1053B00081E0F82EF80181918F018F3F11F00E945A -:1053C000AE09E016F106B1F708E411E0BFE4EB2EF8 -:1053D000B1E0FB2ED8018D918D018F3F11F00E941D -:1053E000AE09E016F106B1F78AE0EFE2F3E0DF0183 -:1053F000282F1D922A95E9F7EDEDF2E0DF011D92CD -:105400008A95E9F70E94291A811102C00E94DB17D0 -:1054100082E090E00E9418358093240384E090E0BD -:105420000E941835182F82E290E00E941835982FBC -:10543000812F9093DC028093DB020E941D26EFE710 -:10544000FBEB3197F1F700C000000E941D26809110 -:105450002F0380FF2EC06FEF7FEF90E080E00E946F -:105460004A3581E08093E00080E28093D80010927A -:10547000C9008FE19EE40197F1F700C0000087E0CA -:1054800090EBDC018093720690937306A0937406F0 -:10549000B093750688E19CE00FB6F894A8958093C8 -:1054A00060000FBE90936000FFCF85E28093730190 -:1054B00036CF83E090E00E9418350E94F50B809172 -:1054C0008A030E9441160E94291A811102C00E947B -:1054D000DB1788E190E00E942035609360037093B1 -:1054E00061038093620390936303672B682B692B9E -:1054F00011F40E94A4170E94F83067E081E00E9436 -:105500005E1565E586E10E945E1563E687E10E940F -:105510005E1560EA8AE10E945E1569E98BE10E94EE -:105520005E1565EF8CE10E945E1560EA8DE10E94D8 -:105530005E1560E38EE10E945E1566E083E00E94E6 -:105540005E1561E08CE00E945E1560E081E00E94E3 -:105550005E1560E08CE00E945E156FE084E00E94C2 -:105560005E1561E08CE00E945E150E94C00E811104 -:1055700002C00E94FA3283E080931F0380E280938E -:1055800053030E94F8306DE070E08CE492E00E94DA -:105590003B0F892BE9F580911F0363E070E081FDEB -:1055A00005C289E492E00E943B0F892B89F56DE0EA -:1055B00070E089E392E00E943B0F892B49F50E943D -:1055C0004E086058774C8E4F9F4F60935A037093EC -:1055D0005B0380935C0390935D03E0E7F4E080E07D -:1055E00092E0DF019C011D9221503040E1F7F093E1 -:1055F0007106E09370068FEF9FEF90936F04809396 -:105600006E0481E080935F0380935E031092200319 -:105610008091E902811136C00E94291A811104C0CB -:105620000E94DB170E94611788E090E00E942035FD -:105630006093690470936A0480936B0490936C0484 -:10564000809150038360809350036E7F71F40E94B9 -:10565000611788E090E00E942035609369047093A0 -:105660006A0480936B0490936C040E94FE088091FE -:10567000690480FF04C060E086950E94141781E0F1 -:105680008093E90280915901811106C084EF8093D3 -:10569000670185EF8093660120916701A22FA29593 -:1056A000AF70B0E091963C9191972F7081E090E0BF -:1056B000BC01022E01C0660F0A94EAF7462F4095FE -:1056C000432391964C93919792963C919297362BC7 -:1056D00092963C93929740916601E42FE295EF7089 -:1056E000F0E031A14F70042E01C0880F0A94EAF750 -:1056F000982F9095932391A392A1892B82A39096A2 -:105700008C9190E002C0959587952A95E2F781707B -:1057100020A130E002C0359527954A95E2F792E046 -:1057200020FF90E0892B8093F1029091590181E054 -:1057300098279093F002891B8093EA020E94D41765 -:1057400060E08AE00E94141781E00E94881680EED3 -:1057500090E090937201809371010E94280F8AE576 -:1057600091E09093670380936603A0E46A2E809192 -:105770008003FF24F39400E112E1853009F465C150 -:105780000E941D26E82E81110E944E08FFE22F2E56 -:10579000F3E03F2EE5E2F3E0D10110E000E0B02EAF -:1057A000DD9081918D1509F474C18D25C12CFF24E4 -:1057B000F394982F9F2109F467C10E94C00E88239B -:1057C00099F0C9A2BAA2DF2081E009F480E08BA39E -:1057D0000E94841B8160782F9DA38CA349A15AA1AC -:1057E0006BA18DA10E948B25F801EB5DFC4F8081A0 -:1057F000F826F0828091F102E82FEE0FEE0F9091E3 -:105800006701A92FA295AF70B0E090962C9130E07F -:105810009F7002C0359527959A95E2F7217033273E -:1058200090916601A92FA295AF70B0E090964C912F -:1058300050E09F7002C0559547959A95E2F7CA01CE -:105840008170992740FF02C082E090E0822B8E2B6E -:105850008093F1021091F0028F70E82FF0E0E25097 -:10586000FE4F80819091EF02890F8093EF02F12C1F -:1058700084306CF0E12FF0E0E351FD4F80818F5FC9 -:10588000808360E0812F0E946628FF24F39480913A -:10589000EF028D3F6CF4E12FF0E0E351FD4F80818A -:1058A0008150808361E0812F0E946628FF24F39459 -:1058B0008091EF02082E000C990B64E070E00E94CA -:1058C000D8348093EF02F1100E94700B80915F0337 -:1058D000882351F180912103909122030E94751B2E -:1058E000C29708F0EDC020916E0430916F0421152D -:1058F000310509F0F0C180915E038823A9F00E9470 -:105900004E0800915A0310915B0320915C03309183 -:105910005D03601B710B820B930B6F3F7F4F8F4FAB -:105920009F4710F40E946B0FE11001C0F1100E941C -:10593000860F0E94E9100E94E30E909123038917BD -:1059400031F00E94E30E809323030E944B0E80915E -:105950008003843009F00BCF83E08093E9008091CD -:10596000E80082FF04CF8091E80090E085FF0CC042 -:105970000E94C30630E2E32EF12C8E010F5F1F4F11 -:10598000882309F487C291E08091E8008B778093A7 -:10599000E800992309F4EBCEE981E150E33108F006 -:1059A000DDC2F0E0EC53F94C0C94EC3486E492E068 -:1059B000FACD80918003843009F437C080E00E94E2 -:1059C0004B0E8091EC02811109C0F092EC028091A3 -:1059D000690481708093EB020E94670E0E946B0F36 -:1059E0000E94E91010926A0388E190E00FB6F894E3 -:1059F000A895809360000FBE6092600083B7817F9E -:105A0000846083BF83B7816083BF7894889583B7B0 -:105A10008E7F83BF0FB6F894A8958091600088614F -:105A200080936000109260000FBE80917F038823F6 -:105A300061F00E941D26EFE2F3E081918111B7C36E -:105A4000A9E3B3E0AE17BF07C1F7809180038530AB -:105A500009F4AFCF109273030E94AF110E94E30EBE -:105A60000E944B0E1092EC028091EB02882349F0C9 -:105A70008091690481608093690460E086950E944A -:105A800014170E94280F7CCEC394FF0C27E0C2128B -:105A900090CE0F5F1F4F0A30110509F080CE8FEFB7 -:105AA00088A789A71AA60E94841B8160782F9CA7CB -:105AB0008BA748A559A56AA58CA50E948B259ACECF -:105AC0000E94841B909322038093210360E080E076 -:105AD0000E94CC080E94E30E8093FE020E94C00E3A -:105AE000882309F4DFC06091FA027091FB02809173 -:105AF000FC029091FD020E943208613375478105D6 -:105B0000910540F00E946B0F80915F03882309F498 -:105B1000F2CEE9CE0E94860F61E080E00E94CC08C0 -:105B200060E080E891E00E94421562E080E00E941F -:105B3000CC0880918A030E94BB0C823009F48CC08F -:105B400008F081C0882309F487C0813009F48AC035 -:105B500065E080E00E94CC0860E08EE991E00E9460 -:105B6000421566E080E00E94CC086091FE026695D6 -:105B7000617083EA91E00E94421567E080E00E9434 -:105B8000CC086091FE026095617088EA91E00E9405 -:105B9000421568E080E00E94CC086091FE0262FB42 -:105BA000662760F98CEA91E00E9442156091F60246 -:105BB0007091F7028091F8029091F9020E943208E8 -:105BC0006D3271408105910508F49ECF0E944E0808 -:105BD0006093F6027093F7028093F8029093F902B3 -:105BE0008091F502811104C080916801811142C049 -:105BF0006DE080E00E94CC0860E081EB91E00E94C3 -:105C000042156AE080E00E94CC0881E08093680140 -:105C10008091F40290E00196817099278093F402BC -:105C200021E030E0281B390B40E6429FC001439F32 -:105C3000900D11242091F302222351F187529C4FA1 -:105C40000E94610661CF833089F0843009F080CFF3 -:105C500060E082E991E003C060E086E891E00E94A4 -:105C6000421576CF60E08CE891E0F9CF60E088E9FA -:105C700091E0F5CF6AE080E00E94CC0860E081EB23 -:105C800091E00E9442156BE080E00E94CC08C0CFFA -:105C90002091F202222319F0875E9C4FD1CF875AC0 -:105CA0009D4FCECF64E080E00E94CC0860E087EB9F -:105CB00091E00E94421565E080E00E94CC0860E01F -:105CC0008DEB91E00E94421569E080E00E94CC08D3 -:105CD00089E994E0B5CF8091200361E070E0811103 -:105CE0000ACE082F10E02B01082E02C0440C551CD0 -:105CF0000A94E2F7A90144215521452B09F448C033 -:105D000090911F0390FD46C08295880F8076809306 -:105D10006B019801369527953695279520936E014E -:105D2000815E80936C0110926F0124E630E047E0C1 -:105D300050E069E671E088E70E94EF31892B09F0B5 -:105D4000DACDA80175E0440F551F7A95E1F78091EF -:105D50001F0380FD2DC040595B4F04E610E020E298 -:105D600030E060E488E70E941632892B09F0C3CD49 -:105D70000E94860FC2018095909540906E045090CD -:105D80006F044822592250926F0440926E04B3CDA2 -:105D90008F5FA7CF880F880F880F80936B011092B9 -:105DA0006E01895F80936C0183E080936F01BDCFAA -:105DB000EFEFF2E080E2DF011D928A95E9F7E2E180 -:105DC000F2E0F8ABEFA70EE012E067E0A62E992410 -:105DD0009394AFA5B8A96D91B8ABAFA7F801819125 -:105DE0008F01840F952F911D9C0120593B4F3EA799 -:105DF0002DA7E62FF0E0E150FD4F30E020E07A2CB7 -:105E0000721AB92C022E01C0BB0C0A94EAF7CDA479 -:105E1000DEA490E0D6018D916D018B21672D691B69 -:105E20006770862E062E000C770BB82F01C0BB0FB3 -:105E30008A94EAF78B2E71956195710967707727BF -:105E400001C086956A95EAF7882A8081882A80822F -:105E50009F5F9830F9F62F5F3F4F3196283031051C -:105E600071F6E6E1F2E02FA538A9E217F30709F091 -:105E7000B0CF04E610E020E230E04FEF52E071CF07 -:105E80008091F100D8018D938D01B1E0EB1AF108FA -:105E900009F479CD8091E80085FDF2CF8091E8008A -:105EA0008B778093E8000E94C306882399F36BCD1B -:105EB0001A8289E08B8311C08A81823009F48FC1F4 -:105EC000833091F1813009F049C00E944E080E9450 -:105ED000F2346B837C838D839E8380918003843036 -:105EE00009F045CC1091E9001F709091EC00892FCA -:105EF000817090FD80E8182B82E08093E90080910A -:105F0000E80080FF0DC050E040E060E270E0CE01AC -:105F100001960E94F4068091E8008E778093E80055 -:105F20001F701093E90023CCFE013396D1018D91AF -:105F30001D018193B9E32B16B3E03B06B9F7CDCF32 -:105F40008A81823059F46B817C818D819E810E948F -:105F5000F23486E290E00E942C35BFCF8FEF898328 -:105F6000BCCF4C816B818A810E943B109827892786 -:105F700098279E838D83B1CFED80FE80FE24EF2491 -:105F8000FE248A810B81EEE00E9F80011124FCE843 -:105F90008F9F000D111D11248C8190E0880F991F97 -:105FA000080F191F6F2DC80187960E942C356E2D82 -:105FB000C8018896D0CF0E94BE0F8FCF8A818138CA -:105FC000B1F058F4803809F088CF4B8160916B04B0 -:105FD00080916A040E943E1680CF8238E1F08338B7 -:105FE00009F07BCF40916C046C818B81F3CF60E032 -:105FF0008B810E9414178B81811103C00E94670E50 -:106000006CCF8091690481608093690460E086951B -:106010000E94141762CF8B8180936D045ECF8A81BA -:10602000813899F030F4803809F057CF80916C04B2 -:1060300041CF823891F0833809F04FCF80916A04C4 -:106040008B8380916B048C8348CF8091690480FF9F -:1060500002C086952FCF80E02DCF80916D042ACF8E -:106060006091690470916A0480916B0490916C0452 -:106070000E94791532CF80E18A832FCF81E08A8315 -:106080008DE118CFCA80DB80DC24CD24DC248E0196 -:106090000F5F1F4FEC80E00EF12EF11CC6018D51F9 -:1060A0009D4F0E151F0509F418CF2DE1C21621E0F2 -:1060B000D20658F40E941835D80114968C93FFEF3D -:1060C000CF1ADF0A0F5F1F4FE9CFF8011482F7CF15 -:1060D0000A811B811027012710279E012F5F3F4F48 -:1060E0006901EC80E00EF12EF11CC8018D519D4F2D -:1060F000E016F10609F4F1CE0D3131E0130728F472 -:10610000D60114966C910E942C35BFEFCB1ADB0A96 -:106110000F5F1F4FEACF0E94AE0FDFCE85E0ACCFFE -:10612000CA80DB80DC24CD24DC248E010F5F1F4F6E -:10613000EC80E00EF12EF11CC6018796E016F10608 -:1061400009F4CBCEECEBCE16E2E0DE0658F40E946A -:106150001835D80114968C93FFEFCF1ADF0A0F5F22 -:106160001F4FEACFF8011482F7CF0A811B81102755 -:10617000012710279E012F5F3F4F6901EC80E00E41 -:10618000F12EF11CC8018796E016F10609F4A5CEA0 -:106190000C3B32E0130728F4D60114966C910E9450 -:1061A0002C35BFEFCB1ADB0A0F5F1F4FEBCF09BDBA -:1061B00019BD09B400FEFDCF8091D8008F7D80937A -:1061C000D8008091E00082608093E0008091E00040 -:1061D00081FDFCCF109273030E94AF1136CC86E292 -:1061E00090E00E9418351B821C821D828E8375CE22 -:1061F0001092B9008CE08093B80008959F92AF92FE -:10620000BF92CF92DF92EF92FF920F931F93CF93A3 -:10621000DF93B82EEB010E94841B6C01EE24E39403 -:10622000F12CC431D10560F025E0E22EF12CCF3FF6 -:10623000DC0731F0CE0164E170E00E94B8347B01EC -:1062400084EAA82E94E8992E1092BC00A092BC007B -:106250000E94841B8C018091BC0087FF0DC080913F -:10626000B900887F883039F18091B900887F80310A -:1062700011F10FEF1FEF09C00E94841B801B910BCF -:106280008E159F0540F30EEF1FEFCF3FDC07E1F2C5 -:10629000C6010E94751B8C179D07B0F2C801DF91E3 -:1062A000CF911F910F91FF90EF90DF90CF90BF9013 -:1062B000AF909F900895B092BB009092BC000E9456 -:1062C000841B8C018091BC0087FF0AC08091B900BB -:1062D000887F883111F0803461F610E000E0DECF75 -:1062E0000E94841B801B910B8E159F0558F3CBCF0A -:1062F0000F931F93CF93DF93EB018093BB0084E850 -:106300008093BC000E94841B8C018091BC0087FF9D -:1063100011C02091B900287F81E090E0283211F46B -:1063200090E080E0919581959109DF91CF911F9147 -:106330000F910895CF3FDC0741F30E94841B801B1F -:10634000910B8C179D0708F38EEF9FEFEECF0F9305 -:106350001F93CF93DF93EC0184EC8093BC000E94E9 -:10636000841B8C018091BC0087FF08C08091BB001A -:1063700090E0DF91CF911F910F910895CF3FDC07FF -:1063800089F30E94841B801B910B8C179D0750F38F -:106390008EEF9FEFEECF0F931F93CF93DF93EC0120 -:1063A00084E88093BC000E94841B8C018091BC0017 -:1063B00087FF08C08091BB0090E0DF91CF911F91D3 -:1063C0000F910895CF3FDC0789F30E94841B801B47 -:1063D000910B8C179D0750F38EEF9FEFEECFCF926E -:1063E000DF92EF92FF920F931F93CF93DF936B0196 -:1063F0008A017901B9010E94FE30E6010C0D1D1DD4 -:10640000C017D10761F424E92093BC00DF91CF913C -:106410001F910F91FF90EF90DF90CF90089597FD1F -:10642000F2CFB70189910E947831EACFCF92DF9203 -:10643000EF92FF920F931F93CF93DF93C62F6A01C2 -:106440007901B8010E94FE3097FD0CC0B8018C2F75 -:106450000E947831E601EC0CFD1CCE15DF0511F031 -:1064600097FF0CC024E92093BC00DF91CF911F91CE -:106470000F91FF90EF90DF90CF900895B801899130 -:106480000E947831EACFCF92DF92EF92FF920F9382 -:106490001F93CF93DF93F82EE62EEA016901B8012E -:1064A0000E94FE3097FD15C0B8018E2D0E947831F4 -:1064B00097FD0FC0B8018F2D81600E94FE30F12C36 -:1064C000E12C21E0C21AD108EC14FD0400F597FF7D -:1064D00011C024E92093BC001816190614F490E0AA -:1064E00080E0DF91CF911F910F91FF90EF90DF90AF -:1064F000CF900895C8010E94A73197FD04C0FE0106 -:10650000EE0DFF1D80832FEFE21AF20ADDCF97FD1B -:10651000E0CFC8010E94CB3197FDDBCFCC0DDD1D54 -:106520008883D7CF84E98093BC0008958EE14A9B8D -:1065300002C08150E1F74A9BFECF08955A9880E24D -:106540008A95F1F75A9A0895FC013BE03A95F1F7E4 -:1065500098E020E080E031E040E14A95F1F7880FD3 -:106560004A9B02C08160232742E04A95F1F7000070 -:1065700040E14A95F1F7915079F790E19A95F1F75A -:1065800099B132E03A95F1F7000040E14A95F1F710 -:1065900092FB992790F992272081920F908308957A -:1065A000EF92FF920F931F93CF93DF930F92CDB78C -:1065B000DEB719828C017C01E60EF11C0E151F0559 -:1065C00061F481E09981911180E00F90DF91CF918A -:1065D0001F910F91FF90EF9008950E949632CE0187 -:1065E00001960E94A432F80181938F01E7CF529A5D -:1065F0005A9A089552985A9AEA9AE9E6F0E0808108 -:106600008F7C808308956150770B91E001C0990FD2 -:106610006A95EAF720E031E0911108C0222391F059 -:106620005A9A80E28A95F1F75A980895492F48239B -:1066300039F05A9A232740E24A95F1F79695ECCF24 -:106640005A98F9CF5A98EDCFFF920F931F93CF939B -:10665000DF93EC018C01060F111DC017D10731F437 -:10666000DF91CF911F910F91FF900895F9900E94B3 -:106670009E3268E08F2D0E940333EFCF1F920F925E -:106680000FB60F921124EF92FF920F931F932F9347 -:106690003F934F935F936F937F938F939F93AF93AA -:1066A000BF93EF93FF93CF93DF930F92CDB7DEB7F6 -:1066B00019820E949632CE0101960E94A432A82F20 -:1066C000A695A695A695282F229525709A2F9570A8 -:1066D000290F922F937026952695920F98279770E1 -:1066E0008981982B09F075C0A83008F072C080E14C -:1066F0008A95F1F75A9A529AB2E0BA95F1F700C02A -:106700005A98EA2EF12CEAE0AE9FD0011124AE5F38 -:10671000BE4F1896ED91FC9119973097B1F06091AA -:10672000FC017091FD0116962D913C911797260F53 -:10673000371F13968D919C911497680F791F1596AA -:106740004C91159712968C9109958AE08E9DF001D7 -:106750008F9DF00D1124EE5FFE4F6581662351F091 -:106760002091FC013091FD0186819781820F931F5A -:106770000E9424330E949E32F0E1FA95F1F75A9874 -:1067800052985A9A80E18A95F1F78AE08E9D8001AD -:106790008F9D100D11240E5F1E4FD80112966C9123 -:1067A0001297662371F12091FC013091FD0113963F -:1067B0008D919C91820F931F0E94D032D801ED9150 -:1067C000FC91882311F088E001C082E080830E9460 -:1067D00096320F90DF91CF91FF91EF91BF91AF91E2 -:1067E0009F918F917F916F915F914F913F912F91E9 -:1067F0001F910F91FF90EF900F900FBE0F901F9081 -:106800001895ED91FC91DFCF0F931F93CF93DF93FA -:10681000EC0108970CF0A9C08AE08C9FF0018D9FD5 -:10682000F00D1124EE5FFE4F80819181892B09F4D8 -:106830009CC0F894529A5A9885E08A95F1F7000026 -:106840008C2F869585709C2F9570890F982F93704B -:1068500086958695890F8E0193E0000F111F9A95FA -:10686000E1F7082B0E949E3200C068E0802F0E9452 -:106870000333A0E1AA95F1F752985A9A4A9B27C090 -:1068800087E090E04A9925C08AE08C9F80018D9F27 -:10689000100D11240E5F1E4FF80165816623A1F1D2 -:1068A0002091FC013091FD0186819781820F931F19 -:1068B0000E94D032811128C0529A5A9AD801ED9183 -:1068C000FC9182E08083789482E090E016C000C062 -:1068D000D5CF0197B9F4529A5A9A8AE08C9FF00169 -:1068E0008D9FF00D1124EE5FFE4F0190F081E02DA1 -:1068F00081E08083789481E090E0DF91CF911F91D7 -:106900000F91089500C0BECF0E949632B0E2BA95B2 -:10691000F1F75A98529AE0E1EA95F1F78AE08C9FF4 -:10692000F0018D9FF00D1124EE5FFE4F6281662312 -:1069300051F02091FC013091FD0183819481820FFF -:10694000931F0E9424330E949E328AE08C9FF001A4 -:106950008D9FF00D1124EE5FFE4F0190F081E02D30 -:106960001082789490E080E0C8CF84E090E0C5CFBA -:10697000AA1BBB1B51E107C0AA1FBB1FA617B70765 -:1069800010F0A61BB70B881F991F5A95A9F7809581 -:106990009095BC01CD010895991B79E004C0991F21 -:1069A000961708F0961B881F7A95C9F78095089569 -:1069B00097FB072E16F4009407D077FD09D00E94AC -:1069C000B83407FC05D03EF4909581959F4F08950B -:1069D000709561957F4F0895EE0FFF1F0590F4911C -:1069E000E02D099469279627692778278727782734 -:1069F0000895FB01DC0102C005900D92415050400A -:106A0000D8F70895FB01DC0104C08D910190801935 -:106A100021F441505040C8F7881B990B0895FB01A1 -:106A2000DC0102C001900D9241505040D8F708950A -:106A3000F999FECF92BD81BDF89A992780B5089546 -:106A4000A6E1B0E044E050E00C945235A8E1B0E09B -:106A500042E050E00C945235262FF999FECF92BDBA -:106A600081BDF89A019700B4021639F01FBA20BD13 -:106A70000FB6F894FA9AF99A0FBE08950396272F45 -:106A80000E942D350E942C35252F0E942D35242F54 -:106A90000C942D350196272F0E942D350C942C3502 -:106AA000DC01CB01FC01F999FECF06C0F2BDE1BDCE -:106AB000F89A319600B40D9241505040B8F70895BD -:106AC0000E9467356894B1110C94F63508950E94C0 -:106AD000DB3588F09F5798F0B92F9927B751B0F060 -:106AE000E1F0660F771F881F991F1AF0BA95C9F752 -:106AF00014C0B13091F00E94F535B1E008950C94C6 -:106B0000F535672F782F8827B85F39F0B93FCCF378 -:106B1000869577956795B395D9F73EF490958095CE -:106B2000709561957F4F8F4F9F4F0895E89409C0EE -:106B300097FB3EF490958095709561957F4F8F4FB0 -:106B40009F4F9923A9F0F92F96E9BB279395F695C6 -:106B5000879577956795B795F111F8CFFAF4BB0F44 -:106B600011F460FF1BC06F5F7F4F8F4F9F4F16C0A8 -:106B7000882311F096E911C0772321F09EE8872F32 -:106B8000762F05C0662371F096E8862F70E060E0EE -:106B90002AF09A95660F771F881FDAF7880F969567 -:106BA000879597F9089557FD9058440F551F59F050 -:106BB0005F3F71F04795880F97FB991F61F09F3FEA -:106BC00079F087950895121613061406551FF2CF13 -:106BD0004695F1DF08C0161617061806991FF1CF63 -:106BE00086957105610508940895E894BB2766278A -:106BF0007727CB0197F908950E940F360C948036C1 -:106C00000E94723638F00E94793620F0952311F0F8 -:106C10000C9469360C946F3611240C94F6350E944E -:106C2000D33570F3959FC1F3950F50E0551F629FC8 -:106C3000F001729FBB27F00DB11D639FAA27F00DD5 -:106C4000B11DAA1F649F6627B00DA11D661F829FFC -:106C50002227B00DA11D621F739FB00DA11D621FE1 -:106C6000839FA00D611D221F749F3327A00D611DFE -:106C7000231F849F600D211D822F762F6A2F1124E0 -:106C80009F5750409AF0F1F088234AF0EE0FFF1F13 -:106C9000BB1F661F771F881F91505040A9F79E3F6A -:106CA000510580F00C9469360C94F6355F3FE4F39F -:106CB000983ED4F3869577956795B795F795E795C0 -:106CC0009F5FC1F7FE2B880F911D9695879597F9C9 -:106CD000089597F99F6780E870E060E008959FEF5E -:106CE00080EC089500240A94161617061806090663 -:106CF000089500240A941216130614060506089532 -:106D0000092E0394000C11F4882352F0BB0F40F4B9 -:106D1000BF2B11F460FF04C06F5F7F4F8F4F9F4FF9 -:106D20000895F894FFCFBB10BB10C410C410C61058 -:106D3000C410C410C410BB10BB10CB10C410C410BE -:106D4000CB10A012C8126B14C8126B14FB121C13C8 -:106D50006B141A142714FF1C751D781D8C1D8F1DB4 -:106D6000A21DAB1DCF1D151E471E5B1EE11D041E7F -:106D7000E721E7214022402272221A221A221A22F7 -:106D80008C22FD220D230D23582F5C2FA02FB12F15 -:106D9000BC2FDB2FDE2F0F303030AE2FAE2F3B302D -:0E6DA0003E30423068308B308E309030B5304F -:106DAE0001013C0200000001000000003C02000056 -:106DBE000005010000003C0200000001060000007A -:106DCE003C0200000001070000003C020408000025 -:106DDE00000000003C02080C0000000000003C0215 -:106DEE00011400000000000036323331F7F6FF6662 -:106DFE0097C634350000000000012F085E0D3D0DD2 -:106E0E00390D350D2E08F4F5010021007F22000307 -:106E1E00018000004A004A4A01F6F731333236FF4C -:106E2E004C415945520042617365200047616D65C2 -:106E3E0020005261697365004C6F776572004C4F8C -:106E4E00434B0043617073004E756D005363726C5B -:106E5E0000202020202000534F4C415200544D5012 -:106E6E00535400818283E200E900EA00B500B600C7 -:106E7E00B700CD008301CC008A019201940121025A -:106E8E00230224022502260227022A02B300B4009E -:106E9E006F0070000603060806010606B50200FF25 -:106EAE000100010000FFFF0000010001FF000008CB -:106EBE00101818100800000102020202020202025B -:106ECE00020240227B49012701AC009E0BB70BD773 -:026EDE000B00A7 +:102020007F906F900895CF93C82F6FEF811162E278 +:1020300083E290E00E942B356FEFC11161E084E2F2 +:1020400090E00E942B356FEFC11162E085E290E0D5 +:10205000CF910C942B3580E00E94131060E086E253 +:1020600090E00E942B350E94BE0F0E94AE0F81E0CF +:102070000C9413100F931F93CF93DF93C42FD0E0D2 +:10208000CC0FDD1F2EE0629FC00DD11D11243CE856 +:10209000839FC00DD11D1124CE0187960E94173554 +:1020A000082F10E0102F0027CE0188960E941735C8 +:1020B0009801282BC901DF91CF911F910F910895AD +:1020C000462F853038F47A3028F4673018F4672FBB +:1020D0000C943A1090E080E00895CF92DF92FF9246 +:1020E0000F931F93CF93DF936C0100918A0380912C +:1020F0009802082BC7E0D0E010E0FC2EC8010C2E9F +:1021000002C0959587950A94E2F780FD0CC021974F +:10211000A0F7F12C8F2DDF91CF911F910F91FF90A0 +:10212000DF90CF900895B6018C2F0E9460100E941E +:10213000080A019761F3EECFCF93DF93EC010E9481 +:102140006D10BE010E946010DF91CF910C94080ABF +:10215000FC01808191810E949C10292F2F70929503 +:102160009F7092509E3078F4E92FF0E0EE56F94CD3 +:102170000C94EB34803F19F020F4883E20F481E089 +:102180000895843FE1F380E00895883EC0F3813FE5 +:10219000D1F7F5CF822F869586958695089583E2AF +:1021A00090E00E941735823289F484E290E00E9428 +:1021B0001735813059F485E290E00E94173591E09F +:1021C000823009F090E0892F8170089580E0FCCF83 +:1021D0001F93CF93DF93CDB7DEB768970FB6F89410 +:1021E000DEBF0FBECDBF40913F03509140036091D1 +:1021F00041037091420380914303909144030E94F4 +:102200008F1B20933F0330934003609343037093ED +:102210004403142F119510934103652F619560932A +:10222000420386E0EFE3F3E0DE01179601900D92A2 +:102230008A95E1F786E0FE013796DE01119601905E +:102240000D928A95E1F79B858C8520917001222360 +:10225000B1F0772761950CF47095072E000C880B70 +:10226000990B0E9497352AE939E949E95EE30E9412 +:10227000FB350E945F35962F812F60E010E01B83B5 +:102280006C839D838E8386E0FE013196DE011D9670 +:1022900001900D928A95E1F786E0FE013D96DE0100 +:1022A000539601900D928A95E1F786E0FE017396B0 +:1022B000DE01119601900D928A95E1F786E0FE010C +:1022C0003196AFE3B3E001900D928A95E1F786E095 +:1022D000EFE3F3E0DE01179601900D928A95E1F7A6 +:1022E00086E0E9E3F3E0DE01119601900D928A9514 +:1022F000E1F746E050E0BE016F5F7F4FCE010796E9 +:102300000E940135892B79F0E0916603F091670313 +:10231000309749F082E080933F030480F581E02DFF +:102320008FE393E0099510924103109242031092BB +:1023300043031092440386E0EFE3F3E0A9E3B3E044 +:1023400001900D928A95E1F768960FB6F894DEBF7A +:102350000FBECDBFDF91CF911F910895E6E3F2E06C +:1023600086E0DF011D928A95E9F70C94E70B1F9335 +:10237000CF93DF93CDB7DEB7AA970FB6F894DEBF41 +:102380000FBECDBF82E893E02091F100DC012D93D8 +:10239000CD01B3E08A389B07B9F78091830383307E +:1023A00009F472C0B8F4813009F449C0823009F4EC +:1023B000B5C08091E80083FF8DC280918203909127 +:1023C00083039A3008F086C2E92FF0E0E056F94C1A +:1023D0000C94EB348A3009F490C08B3009F471C04E +:1023E000893039F780918203813219F78091860311 +:1023F00090918703009711F00297D9F68091E80039 +:10240000877F8093E8008091E80082FF38C0909138 +:10241000F3008091F200029731F48091F100813055 +:1024200011F0863021F48091F10080937503809142 +:10243000E8008B778093E8000E941E07BACF809156 +:102440008203813A09F0B5CF8091E800877F8093BD +:10245000E8008091860390918703892B61F468E0FE +:1024600086E793E070E00E94D0078091E8008B77C8 +:102470008093E8009ECF60E090E080E0F3CF809111 +:1024800080038111C0CF95CF80918203813A09F0FA +:1024900090CF8091860390918703892B09F089CF93 +:1024A0008091E800877F8093E8008091E80080FFBA +:1024B000FCCF809178018093F1008091E8008E77C5 +:1024C000B9CF80918203813209F073CF8091860366 +:1024D00090918703892B09F06CCF8091E800877F6A +:1024E0008093E8000E941E07809184038093780106 +:1024F000109273030E94AE115CCF809182038132EF +:1025000009F057CF8091E800877F8093E8000E9410 +:102510001E0780918503809374034BCF80918203C3 +:10252000813A09F046CF8091E800877F8093E800E8 +:102530008091E80080FFFCCF80917403BCCF80388D +:1025400099F0823809F0C6C1809186038F70873078 +:1025500008F0C0C18093E9008091EB0085FB8827DB +:1025600080F91092E90006C080917E0390917F036C +:10257000911182609091E800977F9093E80080939A +:10258000F1001092F1008091E8008E779FC18823BE +:1025900009F48DC1823009F09DC1809184038111BD +:1025A00090C1809186038F702FEF280F263008F09E +:1025B00091C18093E9002091EB0020FF82C193300C +:1025C00031F48091EB0080628093EB007AC19091AE +:1025D000EB0090619093EB0021E030E001C0220F0E +:1025E0008A95EAF72093EA001092EA008091EB00C6 +:1025F0008860EACF81116EC1109184031F778091AA +:10260000E3008078812B8093E3008091E800877F4E +:102610008093E8000E941E078091E80080FFFCCFB5 +:102620008091E30080688093E30082E0111183E0F1 +:10263000809380034FC18058823008F04BC12091B5 +:102640008403309185032C3DE3E03E07A1F583E050 +:102650008A838AE289834FB7F894DE01139620E0DB +:102660003EE051E2E32FF0E050935700E49120FF69 +:1026700003C0E295EF703F5FEF708E2F90E0EA307D +:10268000C0F0C7968D939D932F5F243159F74FBFAC +:102690008091E800877F8093E8006AE270E0CE01D5 +:1026A00001960E94D0078091E8008B778093E80024 +:1026B00011C1C096E7CF8091860390918703432F85 +:1026C00055274330510509F44AC078F5413051058A +:1026D00009F47AC08BE590E0ECE8FBE0423051056C +:1026E00009F0F8C02091E800277F2093E8002091AE +:1026F0008803309189038217930708F49C0140E016 +:102700002115310509F065C0411163C08091E800D1 +:1027100082FDC9CF80918003882329F2853019F288 +:102720008091E80083FFF2CFBECF4132510509F41A +:102730003CC04232510509F0CDC08330910508F00C +:10274000C9C0FC01EE0FFF1FEB5DFD4F0190F08152 +:10275000E02D8E5D9D4FDC018C9190E01AC03327F7 +:1027600021303105D1F02115310561F022303105DC +:1027700009F0B0C0E9EFFBE0E4918E2F90E0E9EFC3 +:10278000FBE007C0EBE2FCE0E4918E2F90E0EBE28F +:10279000FCE0009709F49EC0A5CFE9E1FCE0E491DC +:1027A0008E2F90E0E9E1FCE0F4CF8330910508F052 +:1027B00091C0880F991FFC01E55DFD4F0190F081EC +:1027C000E02D89E090E08ECF82E190E0E7EEFBE043 +:1027D00089CF80918003882309F465CF853009F47F +:1027E00062CF8091E80083FD5ECF8091E80082FD9A +:1027F0008DCF8091E80080FF83CF9091F30080918E +:10280000F2002115310519F08830910550F041E0B2 +:10281000089709F040E08091E8008E778093E80007 +:102820006FCF44914093F1003196215031090196C8 +:10283000E8CF803809F04EC08091E800877F809310 +:10284000E800809181038093F1009DCE811142C008 +:10285000109184031230F0F58091E800877F809317 +:10286000E800109381030E941E07112311F084E0F9 +:1028700005C08091E30087FDFACF81E0809380035B +:1028800042E061EC81E00E943D0742E261EC84E0BD +:102890000E943D0742E261EC82E00E943D0742E275 +:1028A00060EC83E00E943D078091800313C080911B +:1028B0008403813079F481E0933009F080E08093E3 +:1028C0007F031092E9008091E800877F8093E80001 +:1028D0000E941E078091E80083FF0AC08091E800F3 +:1028E000877F8093E8008091EB0080628093EB000B +:1028F000AA960FB6F894DEBF0FBECDBFDF91CF9181 +:102900001F9108951F93CF93DF93162FC0917006E8 +:10291000D09171068A30D1F420915303CE018057B3 +:102920009440622F70E00E94B734281B822F66E02B +:102930000E94CB34C82FC15020F4DF91CF911F915A +:10294000089560E080E20E948214F5CF8D30E9F4B2 +:10295000C057D44020915303622F70E0CE010E94F3 +:10296000B734281B822F9E01280F311D21153240BC +:1029700018F080E0D0E0C0E0C80FD11DC059DB4F97 +:10298000D0937106C0937006D8CF96E0FE01A4E5FF +:10299000B3E001900D929A95E1F7803E90F186E0C8 +:1029A000FE0111928A95E9F7C0917006D0917106E7 +:1029B000111133C046E050E0BE0184E593E00E946F +:1029C00001359E0120573440892B91F52A5F3F4FF6 +:1029D00040915303642F70E0C9010E94B734481B33 +:1029E000463010F4240F311D211572E0370710F026 +:1029F00030E020E020593B4F309371062093700661 +:102A00009CCFF6E08F9FB0011124685B794F46E0C0 +:102A100050E0CE010E94F834C7CF9E012A5F3F4F9D +:102A2000FE012E173F0731F2808180958193F9CF07 +:102A3000C90145E0969587954A95E1F741E050E058 +:102A4000BA0102C0660F771F8A95E2F7CB01609149 +:102A50006E0470916F04862B972BB9016B5F7F4FCB +:102A6000E5E076956795EA95E1F702C0440F551FBA +:102A70006A95E2F7842B952B90936F0480936E04F4 +:102A8000A5CFFF920F931F93CF93DF93EC01F62E08 +:102A9000FC0101900020E9F78F0101501109C017D6 +:102AA000D10730F0DF91CF911F910F91FF900895E2 +:102AB0006F2D89910E948214F2CFE1E5F3E08083CB +:102AC000618324E630E042E050E0BF0184EB0C94E7 +:102AD000EE31CF93C82F60E08CE00E945D156C2F23 +:102AE00084E00E945D1561E08CE0CF910C945D154F +:102AF000CF92DF92EF92FF926B017C010E94FE0861 +:102B0000B701A60188E090E0FF90EF90DF90CF90B2 +:102B10000C943D35AF92BF92CF92DF92EF92FF922D +:102B20000F931F93CF93DF9300D00F92CDB7DEB7F3 +:102B3000082FF62E142FE22E8091690480FF4FC0DB +:102B4000E82FE695AE2FB0E0AA5EBD4F9C91909322 +:102B50004E038E7F823009F056C0413A08F040EAB9 +:102B60009E012F5F3F4F6F2D802F0E94140980918F +:102B7000690480FF11C02B8139814A8180917501E0 +:102B80009091760153E0859FF0011124E557FC4FA9 +:102B9000891798F10E948B0D80916A04801308C0F8 +:102BA00080916B048F1104C080916C04811729F00F +:102BB0008091500382608093500300936A04F092E6 +:102BC0006B0410936C04EE2051F0609169047091D5 +:102BD0006A0480916B0490916C040E9478150F90A8 +:102BE0000F900F90DF91CF911F910F91FF90EF9079 +:102BF000DF90CF90BF90AF900895418330832283C0 +:102C00008F5F3396C5CF923039F6E2508E2F8170A8 +:102C1000D82EE695F0E0E750FA4FA590B490C12C7D +:102C2000BB2460917701C61608F0B4CF2C2D30E09C +:102C3000A29EC001A39E900DB29E900D112470E043 +:102C40000E94B734802FD11016C0860F40917501B5 +:102C5000420F532F511D9A01220F331F240F351F8E +:102C600025573C4F412F113A08F040EA6F2D0E9442 +:102C70001409C394D6CF861BE9CF20E00C948A15A3 +:102C8000CF93C82F0E94BB0C823099F138F488236F +:102C9000C1F0813029F18C2FCF910895833081F1DB +:102CA0008430C9F740E56FEF8AED0E943D1687E05A +:102CB0000E94691580910001882369F310927001C8 +:102CC0000CC040E56AEA83E70E943D16809100014E +:102CD0008823A1F381E0809370010E94280FDBCF4D +:102CE00040E56FEF8CEF0E943D1685E40E94691568 +:102CF000D2CF40E56FEF80E50E943D1685E2F6CF2A +:102D000040E56FEF80EA0E943D168FE1EFCF0E9411 +:102D1000401680938A030C94E70B80918A03982FC6 +:102D20009670963019F488600C948716877FFCCFD4 +:102D300021E030E001C0220F8A95EAF720958091CA +:102D40008A0382230C94871621E030E001C0220F11 +:102D50008A95EAF780918A03822B0C948716E9E61C +:102D6000F4E0438121E1421B08F440E021E062816C +:102D700081810C948A15E9E6F4E0438121E1420F58 +:102D800008F44FEF21E0628181810C948A15E9E615 +:102D9000F4E0628121E1621B08F460E021E04381FC +:102DA00081810C948A15E9E6F4E0628121E1620FE9 +:102DB00008F46FEF21E0438181810C948A15E9E6E4 +:102DC000F4E0818121E04381628188500C948A156E +:102DD000E9E6F4E0818121E043816281885F0C941F +:102DE0008A1580916D04882319F0815080936D04B9 +:102DF0006091690470916A0480916B0490916C04F5 +:102E00000C94781580916D04833018F48F5F809353 +:102E10006D046091690470916A0480916B049091D3 +:102E20006C040C9478159091690490FF26C0917001 +:102E300081111CC09260909369048091500381605D +:102E400080935003662351F06091690470916A0485 +:102E500080916B0490916C040E94781540916C04F1 +:102E600060916B0480916A040C943D168C3010F0D4 +:102E70009661E1CF880F982BDECF08958091690489 +:102E80008695815009F48BE061E00C9413178091D2 +:102E9000690486958F5F8C3008F081E061E00C94C6 +:102EA00013178091690480FF07C0869582588F7739 +:102EB000893010F40C94471761E082E00C941317EA +:102EC000E9E6F4E083E0808311828FEF828380EA79 +:102ED00083831482AEE4B3E012968C9112978360E0 +:102EE00012968C9360817181828193810C94781504 +:102EF000AB01BC0188E190E00C943D35CF93C82F25 +:102F0000E2E6F3E0982F990F990F990F808187706F +:102F1000892B8083E3E6F3E09C2F9295969597703A +:102F20008081887F892B8083609160037091610329 +:102F300080916203909163030E9478176C2F82E066 +:102F4000CF910C945D15E0E6F3E089E8808311826F +:102F500082818C7F82836091600370916103809194 +:102F60006203909163030C947817E0E6F3E08081AC +:102F70008E7F808360916003709161038091620312 +:102F8000909163030C947817E0E6F3E08081816010 +:102F900080836091600370916103809162039091DE +:102FA00063030C9478170E94F73040E060E080E003 +:102FB0000C94080F69EE7EEF90E080E00E944935A6 +:102FC00060E082E090E00E942B3560E083E090E0DA +:102FD0000E942B351092980260E084E090E00E94FD +:102FE0002B3560E082E290E00E942B3560E085E0C6 +:102FF00090E00E942B3560E086E090E00E942B3547 +:103000006FEF87E090E00E942B3540E050E0BA017E +:1030100088E090E00E943D3560E08DE090E00E9405 +:103020002B3540E050E0BA0188E190E00E943D3548 +:1030300060E087E190E00E942B3540E050E0BA016B +:103040008CE190E00E943D3570E060E080E290E02D +:103050000E9449350E94A31780E00E9413100E942D +:103060002B1040E050E0BA018FE090E00E943D3527 +:1030700040E050E0BA0183E190E00C943D350F93BD +:103080001F93CF93DF9300D000D0CDB7DEB7609110 +:10309000CA027091CB028091CC029091CD020E9425 +:1030A0003208643671058105910588F10E94C00ED1 +:1030B000882379F10E944E086E5F7F4F8F4F9F4F9C +:1030C00069837A838B839C8380912D0190912E015B +:1030D0008B549D4F40912C0150E04530510510F02C +:1030E00044E050E0BE016F5F7F4F0E940E3584E0E8 +:1030F00090E00E940334892BD9F40E944E0860931B +:10310000CA027093CB028093CC029093CD0281E0EF +:1031100010C00E944E080091D7021091D802209151 +:10312000D9023091DA02600F711F821F931FC4CF42 +:1031300080E00F900F900F900F90DF91CF911F9133 +:103140000F910895BF92CF92DF92EF92FF920F936B +:103150001F93CF93DF93B82EEB01F42E69016881A2 +:1031600079818A819B810E943208643671058105CC +:10317000910510F4FF2019F1EB2C0B2C000CFF082B +:103180008B2D9AE08902F0011124EE5FFE4F8381BE +:1031900094818B549D4F428150E00417150708F429 +:1031A000A801B6010E940E35C7010E940334892B85 +:1031B00089F40E944E08688379838A839B8381E027 +:1031C000DF91CF911F910F91FF90EF90DF90CF9003 +:1031D000BF90089580E0F4CF0F931F93CF93DF93B8 +:1031E0000F92CDB7DEB780915E0389832091C9022B +:1031F00090E041E02817190609F440E001E010E0F2 +:103200009E012F5F3F4F62ED72E086E00E94A218A0 +:103210000F90DF91CF911F910F9108950F931F93FE +:10322000CF93DF93CDB7DEB728970FB6F894DEBF04 +:103230000FBECDBF85E0E9E6F4E0DE011196019016 +:103240000D928A95E1F780914E0390914F03A091E2 +:1032500050038E839F83A88741E08885811101C038 +:1032600040E008E010E09E012F5F3F4F6EEC72E0FF +:1032700085E00E94A21881111092500328960FB683 +:10328000F894DEBF0FBECDBFDF91CF911F910F919C +:1032900008956F927F928F929F92AF92BF92CF923A +:1032A000DF92EF92FF920F931F93CF93DF930F92D2 +:1032B000CDB7DEB7862E5A016901682E880F7708D0 +:1032C000C3010E940334892B09F07BC08AE0869DEC +:1032D000F001879DF00D1124EE5FFE4F458150E017 +:1032E0004115510511F041E050E08AE0869DF00162 +:1032F000879DF00D1124EE5FFE4F668177816B5440 +:103300007D4FCE0101960E940E35F50160817181DD +:10331000828193810E94320864367105810591058E +:1033200040F4B701C8010E94E3089981891709F4A4 +:103330004FC0082C000C9908C4010E940334892B4B +:1033400091F0B12C8B2D0F90DF91CF911F910F91A8 +:10335000FF90EF90DF90CF90BF90AF909F908F90B5 +:103360007F906F9008958AE0889DF001899DF00D0F +:103370001124EE5FFE4F458150E0E416F50608F497 +:10338000A7018AE0889DF001899DF00D1124EE5F70 +:10339000FE4F668177816B547D4FC6010E940E35CA +:1033A000B701C8010E94E30899818913CACF0E941E +:1033B0004E08F5016083718382839383BB24B394A9 +:1033C000C1CFB12CA701B801C6010E940E35BACFFA +:1033D000BB24B394F7CFCF92DF92EF92FF920F937B +:1033E0001F93CF93DF9300D000D00F92CDB7DEB7FD +:1033F0006B0185E0E82EF12C06EB12E09E012F5FB9 +:103400003F4F4DEA52E061E080E00E944919882375 +:1034100049F095E0FE013196A8EAB2E001900D92E4 +:103420009A95E1F795E0E8EAF2E0D60101900D9275 +:103430009A95E1F70F900F900F900F900F90DF91FA +:10344000CF911F910F91FF90EF90DF90CF90089553 +:1034500090E080E00E942535893E9E4F11F40C9447 +:10346000CF1080E008951F920F920FB60F92112493 +:103470002F933F934F935F936F937F938F939F937C +:10348000AF93BF93CF93DF93EF93FF93D091E90076 +:10349000DF708091EC00C82FC17080FDC0E81092F1 +:1034A000E9008091F000877F8093F00078940E947B +:1034B000B7111092E9008091F00088608093F000CD +:1034C000CD2BCF70C093E900FF91EF91DF91CF91A9 +:1034D000BF91AF919F918F917F916F915F914F912C +:1034E0003F912F910F900FBE0F901F9018951F9234 +:1034F0000F920FB60F9211242F933F934F935F9328 +:103500006F937F938F939F93AF93BF93EF93FF93AB +:103510008091E10082FF09C08091E20082FF05C036 +:103520008091E1008B7F8093E1008091DA0080FF41 +:1035300024C08091D80080FF20C08091DA008E7F67 +:103540008093DA008091D90080FF9DC080E189BD21 +:1035500082E189BD09B400FEFDCF81E08093800344 +:1035600080917203811109C00E94A4060E946F0716 +:103570008091E20084608093E2008091E10080FF0E +:1035800017C08091E20080FF13C08091E2008E7F1F +:103590008093E2008091E20080618093E20080915C +:1035A000D80080628093D80019BC85E080938003A6 +:1035B0008091E10084FF2BC08091E20084FF27C04E +:1035C00080E189BD82E189BD89B5982F917080FF26 +:1035D000FBCF8091D8008F7D8093D8008091E1004F +:1035E0008F7E8093E1008091E2008F7E8093E200E5 +:1035F0008091E20081608093E200809181038823C2 +:1036000009F447C084E08093800380918003809117 +:10361000E10083FF27C08091E20083FF23C08091F7 +:10362000E100877F8093E10082E080938003109225 +:1036300081038091E1008E7F8093E1008091E20020 +:103640008E7F8093E2008091E20080618093E200AF +:1036500042E060E080E00E943D078091F0008860D9 +:103660008093F000FF91EF91BF91AF919F918F9167 +:103670007F916F915F914F913F912F910F900FBE6E +:103680000F901F90189519BC10928003109272032E +:1036900074CF8091E30087FD93E090938003B5CFD2 +:1036A00078941F921FB61F9211248F939F93AF930C +:1036B000BF9380916B0390916C03A0916D03B091C7 +:1036C0006E030196A11DB11D80936B0390936C0353 +:1036D000A0936D03B0936E03BF91AF919F918F91B3 +:1036E0001F901FBE1F9018959C014FB7F8948091B2 +:1036F0006B0390916C03A0916D03B0916E034FBF6B +:10370000821B930B08952FB7F89480916B039091CF +:103710006C03A0916D03B0916E032FBF0895AF921B +:10372000BF92DF92EF92FF920F931F93CF93DF939D +:10373000CDB7DEB761970FB6F894DEBF0FBECDBF31 +:103740004C87888B998BE52ED62EF72E5E0127E0CD +:10375000A20EB11C85E0F50111928A95E9F78091DE +:103760004D038A3008F095C080914B0390914C0333 +:103770000E94741B089708F48CC004E610E025E052 +:1037800030E0A50164E084E10E944232892B09F017 +:10379000DEC010924D038B8587FDD1C0E894E0F820 +:1037A0008091490390914A03009709F0C2C08F812C +:1037B0009885891708F091C0981B892F41E02091C6 +:1037C000710130917201889FC001112455E0589F0A +:1037D000F001599FF00D1124E29FB001E39F700D9D +:1037E000F29F700D1124660F672F661F770B71957E +:1037F000442319F071956195710980914703909167 +:103800004803680F791F89859A85891708F068C071 +:10381000981B892F41E0889FC001112455E0589FD3 +:10382000F001599FF00D1124E29FC001E39F900D1C +:10383000F29F900D1124880F892F881F990B919565 +:10384000442319F091958195910920914503309178 +:103850004603820F931F603871050CF444C06F5704 +:10386000710970934803609347033FE7D32E803874 +:1038700091050CF44BC08F579109909346038093A8 +:1038800045039FE7F92E0E94831B90934C0380937E +:103890004B03ED86DE86FF8686E0FE013C96DE0168 +:1038A000119601900D928A95E1F729813A814B8119 +:1038B0005C816D817E8180E090E061960FB6F89426 +:1038C000DEBF0FBECDBFDF91CF911F910F91FF9053 +:1038D000EF90DF90BF90AF900895891B40E06FCFCD +:1038E000891B40E098CF6138FFEF7F074CF46158A7 +:1038F0007F4F709348036093470321E8D22EB7CFE0 +:10390000D62E1092480310924703B1CF81382FEF83 +:1039100092074CF481589F4F909346038093450340 +:1039200081E8F82EB0CFF82E10924603109245038E +:10393000AACF019790934A0380934903A4CF689438 +:10394000E0F884E00E94691584E190E0F3CF809173 +:103950004D038F5F80934D0396CF5F926F927F925E +:103960008F929F92AF92BF92CF92DF92EF92FF928F +:103970000F931F93CF93DF9300D000D00F92CDB75A +:10398000DEB77C01FC0183819481892B31F0808139 +:10399000918189238F3F09F0DDC60F900F900F9022 +:1039A0000F900F90DF91CF911F910F91FF90EF90AB +:1039B000DF90CF90BF90AF909F908F907F906F904F +:1039C0005F9008950E946D10182F682F89819A8149 +:1039D0000E94BB0B69817A81812F0E9460108C014B +:1039E000F7018281882361F0F801E65EFC45ED3045 +:1039F000F10530F4E655F94C0C94EB340E94C417F1 +:103A0000D0906003D0FE1CC08D2D86958370F70189 +:103A10009281992309F460C1823090F4B701C80102 +:103A20000E948608882361F0D694D694D69480911B +:103A3000610383708295880F807E8D290E946915AD +:103A4000F7018281882309F47AC6C80182519F4513 +:103A5000409708F036C68FEF93E00E941735025169 +:103A600093EEA92E92E0B92E811197CF011138C1A2 +:103A70001C821B82662463948AE0582E85010F5FA6 +:103A80001F4FC5010E94173589831A82882309F4C4 +:103A900084CF9FEF980F933008F031C18A836982F9 +:103AA00032E0A30EB11CC8010E9417358B83882316 +:103AB00009F473CF8E010F5F1F4FF801208122237D +:103AC000E9F2213009F055C191818281913009F0EC +:103AD00018C10E5F1F4F6AE070E0893311F460E592 +:103AE00070E00E94F30E13C10E94B51789CF809138 +:103AF000600380FF0DC00E94B51760916003709154 +:103B0000610380916203909163030E94781778CFDC +:103B10000E94C417F2CF0E94A31772CF9091600346 +:103B2000892F86958F5F8370880F997F892B80936B +:103B30006003982F9670963001F7897F8093600319 +:103B4000DCCF90916103892F8B7F92FF84608093FB +:103B50006103D3CF80916003982F969596959695A3 +:103B60008091610383708295880F807E892B8C37CA +:103B700098F48F5F282F220F220F220F909160035D +:103B80009770922B909360038295869583709091A5 +:103B900061039C7F892BDBCF81E0ECCF80916003B8 +:103BA000982F96959695969580916103837082954E +:103BB000880F807E892B11F08150DCCF8BE7DACF24 +:103BC00030916103932F9695969596952091620377 +:103BD000822F83708295880F807E892B90E00196DA +:103BE000482F440F440F440F3770342B3093610338 +:103BF00035E0969587953A95E1F783702C7F822B77 +:103C0000809362037ACF30916103932F96959695B6 +:103C1000969520916203822F83708295880F807E13 +:103C2000892B8150990BDCCF8091620382FF12C0F7 +:103C30008B7F809362036091600370916103809138 +:103C40006203909163030E94781760E081E00E9414 +:103C50005D15D6CE8460809362036091600370919D +:103C6000610380916203909163030E94781760E082 +:103C70008CE00E945D1564E182E00E945D1565E0C4 +:103C800081E00E945D1561E08CE0E1CF80916203EC +:103C9000982F969596959695809163038295880FB7 +:103CA000807E892B883720F4865F0E947E17A8CEFD +:103CB00088E7FBCF80916203982F9695969596950D +:103CC000809163038295880F807E892B843110F068 +:103CD0008A50EBCF84E1E9CF882309F4B1CE9ECEA0 +:103CE000A114F4E0BF0609F458CEC5010E941735AF +:103CF000811101C001502FEFA21AB20AB7CE5801AC +:103D0000D9CE923039F40E5F1F4F0E94470C0F5FDF +:103D10001F4FD3CE933029F40E5F1F4F0E940E0C1D +:103D2000F6CF943019F00F5F1F4FF1CF0E5F1F4F8A +:103D300030E020E0B8016F5F7F4FF8014181805390 +:103D4000990B8A30910550F02150310900F38FE929 +:103D50009FE00197F1F700C00000F6CF529EF001FE +:103D6000539EF00D11249C012E0F3F1F842F8B01B9 +:103D7000E1CFE22FF0E0E754FE4F7490822F86955A +:103D80008695869590E0FC01E755FE4FE4902770FC +:103D9000F12C022E02C0F594E7940A94E2F7E1E0D8 +:103DA000EE22FF24FC01E756FE4FC490D12C022ED8 +:103DB00002C0D594C7940A94E2F7F1E0CF22DD2443 +:103DC000FC01E757FE4F8490912C02C09594879494 +:103DD0002A95E2F721E082229924E114F10419F0F6 +:103DE00081EE0E94470CC114D10419F086EE0E94A6 +:103DF000470C39E36AE070E0731202C060E570E0DE +:103E0000872D0E94F30ECD2819F086EE0E940E0C2D +:103E1000EF2819F081EE0E940E0C892809F477CF63 +:103E20006AE070E08CE25DCE81E00E94A41603C0DF +:103E300081E00E9498160F900F900F900F900F90B6 +:103E4000DF91CF911F910F91FF90EF90DF90CF9076 +:103E5000BF90AF909F908F907F906F905F900C94E9 +:103E60008D1682E0E2CF003E110509F457C008F03C +:103E70004DC00C32110509F487C1F70192819111EF +:103E800086C28091730382720A3CFCE51F0709F425 +:103E90005EC208F0B4C1053C3CE5130709F443C217 +:103EA00008F098C1033C5CE5150709F41DC208F051 +:103EB00035C2023C1C4509F4C7C1F70100811181DC +:103EC000992309F47EC2C8010E946D10D82E682F74 +:103ED000C8010E94BB0BB8018D2D0E9460100E948A +:103EE000080A182FB82EF70122814581342F329508 +:103EF0003F70892F82958F70C82ED12C8C3008F09E +:103F000098C2F601E954F94C0C94EB34013E1105CA +:103F100009F4A5C0043E110509F0AFCF882309F4C8 +:103F200030C181E08093F20280918A030E94BB0C31 +:103F3000813009F0A2CF83E30E9469159ECF033838 +:103F4000FFE51F0709F46EC060F5053F110509F490 +:103F500014C140F4043F110509F08FCF61E00E94C5 +:103F6000CC0C8BCF063F110509F409C102383FE59F +:103F7000130709F082CF882309F47FCF81EE0E94D6 +:103F8000470C83EE0E94470C8FE40E94470C8FE49D +:103F90000E940E0C83EE0E940E0C81EE0E940E0C0D +:103FA0006CCF05384FE5140709F4B5C008F45AC0C2 +:103FB00006389FE5190709F4C6C00738EFE51E0764 +:103FC00009F05BCF882309F4E8CC87E20E94470C14 +:103FD000FFEF28EA31E0F15020403040E1F700C027 +:103FE00000008CE20E94470C87E20E940E0C8BE1DD +:103FF0000E94470C4FEF50EE80E04150504080400F +:10400000E1F700C000008CE20E940E0C8BE10E94E0 +:104010000E0C40E56FEF84EB0E943D1681E080932B +:104020003E02BBCC882309F428CF81EE0E94470CC6 +:1040300083EE0E94470C80E50E94470C80E5A8CFE4 +:10404000809342021093410200934002882321F0A2 +:1040500081E08093F30211CF1092F3020ECF809390 +:104060003F02F0CF882379F180913F02882349F005 +:10407000809140020E940E0C80EE0E94470C8AE262 +:104080000CC0809142028823D1F3809140020E94AB +:104090000E0C80EE0E94470C8CE40F900F900F9056 +:1040A0000F900F90DF91CF911F910F91FF90EF90A4 +:1040B000DF90CF90BF90AF909F908F907F906F9048 +:1040C0005F900C94470C8AE20E940E0C8CE40E94D4 +:1040D0000E0C80EE0E940E0C80913F02811105C0F3 +:1040E00080914202882309F458CC80914002D5CFB8 +:1040F000882309F4C2CE80913E02882309F4BDCE04 +:104100000E94831B9093A1028093A00210923E0212 +:1041100010920101B2CE882309F420CF8091700162 +:10412000811104C080910001882339F01092700140 +:10413000109200010E94280FA0CE81E080937001B0 +:1041400080930001F7CF882309F408CF80913D02C6 +:10415000882349F080EE90E0909372018093710182 +:1041600010923D02E7CF86E690E090937201809333 +:10417000710181E080933D02DDCF62E0F0CE64E02A +:10418000EECE1092F20279CE882331F081E0809356 +:10419000F5021092680171CE1092F5026ECE88235E +:1041A00049F080918A030E94BB0C813019F482E3AC +:1041B0000E946915F7018281882309F4B2C28091B7 +:1041C0008A030E94BB0C813009F0ABC284E30E94D9 +:1041D0006915A7C2073C2CE5120709F4AEC008F424 +:1041E000A7C0083C4CE5140709F4ACC0093C1C45C9 +:1041F00009F063CE4FEA56E16BEB76E179C0043DFE +:10420000ECE51E07A8F40E3CFCE51F0708F0C5CB43 +:104210000C3C2CE5120709F49FC041EF56E162E027 +:1042200077E10D3C1C4508F463C061E081E046C0C5 +:10423000053D4CE5140709F4B0CB08F492C00D35E8 +:104240001D4509F4AACB39CE8091690480FF31C0A5 +:104250008E7F809369046091690470916A048091F3 +:104260006B0490916C040E947815809150038160DA +:10427000809350039FEFE0E7F2E09150E040F04080 +:10428000E1F700C000000F900F900F900F900F907B +:10429000DF91CF911F910F91FF90EF90DF90CF9022 +:1042A000BF90AF909F908F907F906F905F900C9495 +:1042B0008B0D81608093690461E086950F900F906B +:1042C0000F900F900F90DF91CF911F910F91FF9062 +:1042D000EF90DF90CF90BF90AF909F908F907F90A6 +:1042E0006F905F900C9413174EE357E167E477E10A +:1042F0000F900F900F900F900F90DF91CF911F9123 +:104300000F91FF90EF90DF90CF90BF90AF909F9074 +:104310008F907F906F905F900C94F90847E457E17D +:104320006EE377E1E5CF4FED56E168EE76E1E0CF61 +:1043300048EE56E16FED76E1DBCF47EC56E163EDF9 +:1043400076E1D6CF43ED56E167EC76E1D1CF4BEB8A +:1043500056E16FEA76E1CCCF42E057E161EF76E1DA +:10436000C7CF0F900F900F900F900F90DF91CF91CC +:104370001F910F91FF90EF90DF90CF90BF90AF9083 +:104380009F908F907F906F905F900C9451170E3D8F +:104390001C4509F092CD0F900F900F900F900F9049 +:1043A000DF91CF911F910F91FF90EF90DF90CF9011 +:1043B000BF90AF909F908F907F906F905F900C9484 +:1043C000DA17C8010E94930BD82E85CD092F0F70E4 +:1043D000907F11F00295007F812F2223C9F00023E6 +:1043E00069F090E2910F983010F011110BC080919C +:1043F0007303082B009373030E94720B812F0E949A +:10440000470C17C080919702082B00939702F4CFB6 +:104410000E940E0C002369F00095105E183010F019 +:10442000B11027C0809173030823009373030E9487 +:10443000720B98E0C91AD108E4E0CE16D10408F056 +:10444000ACCA0E94E30E0F900F900F900F900F9048 +:10445000DF91CF911F910F91FF90EF90DF90CF9060 +:10446000BF90AF909F908F907F906F905F900C94D3 +:104470004B0E80919702082300939702D8CF892F83 +:104480008F70907F903211F08295807FF1E0BF12A3 +:104490000CC0222329F0333060F60E94040CC9CFEF +:1044A000323038F60E94F90BC4CF222341F0332377 +:1044B000A1F340FFA3CF4F70F7014583EECF332325 +:1044C00089F3193309F0F5C0FFEF27EE33E0F1501F +:1044D00020403040E1F700C00000812F0E940E0C08 +:1044E000A8CF892F86958695837061F0813009F079 +:1044F000A0CF812F9370211102C090E080E00E9434 +:104500005A0897CF812F9370211102C090E080E06C +:104510000E9470088ECF892F8370A1F5211189CF59 +:10452000812F829586958770880F880F412F4F7055 +:10453000082E01C0440F0A94EAF7212F207114FFBE +:1045400007C02FE030E001C0220F8A95EAF72095DE +:10455000969596959370923081F0822F842B9330AC +:1045600030F480919802913029F0242B82230E940C +:10457000F50B5FCF842B822BFACF242B80919802EE +:104580008227F5CF8695222311F0892F8170882309 +:1045900009F44FCF812F829586958770880F880FF9 +:1045A000412F4F70082E01C0440F0A94EAF7212FC3 +:1045B000207114FF07C02FE030E001C0220F8A9560 +:1045C000EAF72095969596959370923081F0822F18 +:1045D000842B933030F480918A03913029F0242B7E +:1045E00082230E94871625CF842B822BFACF242B7F +:1045F00080918A038227F5CF092F0F70222329F09B +:10460000802F0E94A416812F48CF812F0E94F90B82 +:10461000802F0E9498160DCF812FE1EF1E1789F190 +:10462000E11750F0F0EF1F17B9F02223B1F131116B +:10463000E5CE892F8F7129C042EF141749F153EF4E +:104640001513F3CF80E0222361F29F7181E001C056 +:10465000880F9A95EAF7C5CF222379F0323008F017 +:10466000E8CE292F2F7181E090E001C0880F2A95B4 +:10467000EAF790918A038927B4CF333008F0D9CE76 +:10468000F0CF892F8F71222321F20E94A416D1CE60 +:10469000892F8F712223C9F3BCCF332379F089335B +:1046A00041F48FEF97EEE3E081509040E040E1F776 +:1046B00012CF8FE39CE90197F1F70DCF892F8F710E +:1046C000A8CF0031FFE51F0709F4AECB01312FE57C +:1046D000120709F4C6CB0E944E086093FA02709349 +:1046E000FB028093FC029093FD02F7018281053E5C +:1046F000110509F4A5CC08F022CC0132110508F00F +:10470000B2CB0E31110508F0F3CC0A30110509F4D3 +:1047100046CD0531110509F44DCD0930110509F0DB +:10472000ACCBF7018281882309F4A7CB80918A035F +:104730000E94BB0C813009F0A0CB81E3FDCB00319E +:104740003FE5130709F474CB01314FE5140769F60F +:1047500082E06FCB85E0DE01119601900D928A9583 +:10476000E1F7F701228189819A8121112BC90E94E9 +:10477000930B182F2FC91F93CF93DF938091630260 +:10478000807FA9F480916002882389F0809195024E +:10479000D091640260915E0270915F02A09161020B +:1047A000B0916202C62FC72316E0D81304C0DF9170 +:1047B000CF911F91089590E0109711F0CF3F19F419 +:1047C00001968770F2CF189F9001199F300D112428 +:1047D000F901EB59FD4F41814713F2CF4081461358 +:1047E000EFCF42814111ECCF438154814A1B5B0BD7 +:1047F000403A510528F7809163028F708061809361 +:104800006302F901E659FD4F80818F7080618083DA +:104810008EE592E00E94AD1CDF91CF911F910C9428 +:10482000890BAF92BF92CF92DF92EF92FF920F93DC +:104830001F93CF93DF93CDB7DEB761970FB6F89490 +:10484000DEBF0FBECDBF8C0185E0F801DE011D96F5 +:1048500001900D928A95E1F7F801E2808EE5A82E8D +:1048600082E0B82E6091610270916202611571055B +:1048700009F432C190915E0240915F02892F842336 +:104880008F3F09F429C120813181C380D480F09009 +:104890006002F601E61BF70BFF2009F4E8C08091E7 +:1048A0006302582F507FE03AF10508F0ABC0511178 +:1048B00077C0FE2C431321C092131FC0E1101DC00E +:1048C0008F70806180936302C5010E94AD1C80914E +:1048D0006302F80185838F2D61960FB6F894DEBFD1 +:1048E0000FBECDBFDF91CF911F910F91FF90EF9041 +:1048F000DF90CF90BF90AF900895CD2829F0822F00 +:1049000083238F3F09F003C180E0F82FF170DF2E81 +:1049100080FF3CC0809195024091640256E0841370 +:1049200015C02D873E878D859E850E949C10292F5E +:1049300022952F702230F0F0243018F59F70F1F09E +:10494000F8019581907FD1F4D12C1EC090E0589F42 +:10495000F001599FF00D1124EB59FD4F6181361381 +:1049600006C06081261303C06281E6120FC0019663 +:104970008770D5CF9F7011F0882331F3805E883027 +:1049800018F3C8010E94AD1CFD2CA5CFEE2009F440 +:10499000A2CF80916302816080936302F12C9BCF50 +:1049A000431306C0921304C0F801EE2009F479C045 +:1049B000C8010E94A810882309F1EE20F9F0809127 +:1049C0006302803270F020915E0230915F0238877E +:1049D0002F831986DB86CA868C87CE0107960E94B4 +:1049E000AD1C86E0F801AEE5B2E001900D928A952B +:1049F000E1F70E94BB23FF24F3946DCFC8010E940E +:104A0000AD1CF9CF51110AC08EE592E00E94AD1C99 +:104A100086E0F50111928A95E9F7C0CF43130FC0E4 +:104A200092130DC0E1100BC0F8018583C8010E94EC +:104A3000AD1C86E0F50111928A95E9F74CCFC801CB +:104A40000E94A8108823D1F2EE20C1F28091630267 +:104A5000803238F220915E0230915F023A832983DE +:104A60001B82DD82CC828E83CE010196B8CFE03AE4 +:104A7000F105F8F6FE2CEE2009F243131FC0921345 +:104A80001DC08091630280FD10C0982F907F69F057 +:104A9000F8018583903F31F0982F907F905F8F7061 +:104AA000892B8583C8010E94AD1C86E0F801AEE524 +:104AB000B2E001900D928A95E1F70DCFC8010E94F6 +:104AC000A81081118ECF8091630281608093630270 +:104AD000C8010E94AD1CFFCEEE2009F48FCFC801A3 +:104AE0000E94A810F82E882309F488CF86E0F801E8 +:104AF000AEE5B2E001900D928A95E1F780915E02F9 +:104B000090915F020E949C100E94BB23E4CE81E042 +:104B10008E25FBCE1F93CF93DF93CDB7DEB767977C +:104B20000FB6F894DEBF0FBECDBF4B8B5C8B6D8B89 +:104B30007E8B8F8B6111109297021A8A198A85E0F9 +:104B4000FE017396DE011D9601900D928A95E1F7A4 +:104B500086E0FE013D96DE01179601900D928A9542 +:104B6000E1F7CE0107960E941124882389F016E010 +:104B7000809195029091640289134BC067960FB69D +:104B8000F894DEBF0FBECDBFDF91CF911F91089586 +:104B900086E0FE013796DE01119601900D928A950E +:104BA000E1F78A859B85892B11F38F81988589236D +:104BB0008F3FE9F22091640230E0C90101968770CD +:104BC0009927409195024817190681F410927303B2 +:104BD0000E94AE11109264021092950286E0EEE5FA +:104BE000F2E0DF011D928A95E9F7C1CF96E0929F2E +:104BF000D001939FB00D1124AB59BD4FFE013196EA +:104C000001900D929A95E1F7809364020E94890BBE +:104C1000AECF819FC00111248B599D4F0E9411245A +:104C2000882309F4ABCF8091950290E001968770BC +:104C30009927809395029CCF7F928F929F92AF92FB +:104C4000BF92CF92DF92EF92FF920F931F93CF9379 +:104C5000DF93CDB7DEB764970FB6F894DEBF0FBE13 +:104C6000CDBF8E010F5F1F4F8AE0D8011D928A953C +:104C7000E9F79FE4C92E91E0D92EF12CE12CAA246A +:104C8000A394B12C3FE4832E31E0932EF601819161 +:104C90006F018F3F09F443C0F894E82FE295EF705D +:104CA000F0E021A18F70A50102C0440F551F8A9525 +:104CB000E2F7CA01922F982B91A392A180958923A4 +:104CC00082A30E94AC0900C0E8E4F1E0712C31E05D +:104CD00021912F3F09F479C0A22FA295AF70B0E0C7 +:104CE00090968C9190E02F7002C0959587952A95AB +:104CF000E2F780FD6AC0832F782A330F8E169F0655 +:104D000039F7F601319780818F3F11F00E94AE098B +:104D100050EA5A95F1F7F801EE0DFF1D70828FEF02 +:104D2000E81AF80AA5E0EA16F10409F0AFCF4AE064 +:104D300050E0B8018DED92E00E9401357C01892B95 +:104D400041F08AE0F801ADEDB2E001900D928A9554 +:104D5000E1F71091E802E114F104C9F181E08093D8 +:104D60009B020E94831B90939A02809399028091E8 +:104D7000990290919A020E94741B069770F0ADED13 +:104D8000B2E0E12FF0E0E15DFC4F8D91819322E0F4 +:104D9000A23EB207D1F710929B0281E090E0EF288B +:104DA000D1F064960FB6F894DEBF0FBECDBFDF9191 +:104DB000CF911F910F91FF90EF90DF90CF90BF9018 +:104DC000AF909F908F907F90089580E095CF8091D5 +:104DD0009B028111CCCF0E94C00ED82EE091E80238 +:104DE000882309F4E1C07E0140E1E40EF11C85E076 +:104DF000D7011D928A95E9F70E2F10E0015D1C4F37 +:104E00008091D6028A3008F098C04BEE59E1B70184 +:104E1000C8010E947C0E882309F4B2C042EA58E21D +:104E2000B701C8010E947C0E882309F4A9C04FE392 +:104E300058E1B701C8010E947C0E882309F4A0C084 +:104E40004EE059E1B701C8010E947C0E882309F4A5 +:104E500097C04CEE58E1B701C8010E947C0E882330 +:104E600009F48EC01092D6028091E70290E045E0EE +:104E700050E0B701815D9C4F0E94013521E02093F5 +:104E8000A602892B09F06FC0D12C809101018111FC +:104E900014C08091A0029091A1020E94741B813ADB +:104EA0009F4058F040E56FEF8CEF0E943D1681E087 +:104EB000809301018CE00E9469158EE9E82E82E062 +:104EC000F82E10E000E0D7018D917D018823D1F00C +:104ED0008695F80109F465C0E850FE4F8081918104 +:104EE0009C878B871D860E94831B8160782F9F87FC +:104EF0008E87F701319710824B855C856D858F8594 +:104F00000E948A250E5F1F4F04301105E1F6609163 +:104F1000FA027091FB028091FC029091FD020E94C6 +:104F2000320861367A4E8105910528F040E060E054 +:104F300080E00E94080F8D2D34CF80919C029091CB +:104F40009D020E94741B843F914008F05ECF8091C7 +:104F5000A602882309F498CF85E0F70111928A957B +:104F6000E9F71092A602A091E702B0E0A15DBC4F64 +:104F700085E0FE01709601900D928A95E1F785CF4C +:104F80008091D6028F3F31F08F5F8093D6028A30B6 +:104F900008F46ACF0E94831B90939D0280939C0229 +:104FA000D6CFEC50FE4F9ACFF0E0E15DFC4FF89485 +:104FB00085E0A6EBB2E001900D928A95E1F765E0FD +:104FC00070E086EB92E00E94E3088093B5020E94B5 +:104FD000AC09F894E091F002F0E0E351FD4F8081DC +:104FE0008B878093BC0261E070E0CE010B960E943B +:104FF000E3088093BB020E94AC09F894C090BD0204 +:10500000D090BE02E090BF02F090C0028091A20258 +:105010009091A302A091A402B091A502C816D9064E +:10502000EA06FB06D1F0C092A202D092A302E0925F +:10503000A402F092A5020E94C00E81110EC00E942F +:105040004E08C61AD70AE80AF90AC092D702D092C7 +:10505000D802E092D902F092DA020E94AC09F894E8 +:105060008091C8028823F1F080FF0DC08091C102B9 +:1050700080FF25C09091690491609093690460E07D +:1050800086950E9413178091C80281FF09C020E015 +:105090004091C4026091C3028091C2020E948A15AD +:1050A0001092C8020E94AC09F8948091C90288232A +:1050B00049F00E94860F0E94AC0980E072CE0E94E7 +:1050C000670EE1CF0E946B0FF6CFEF92FF920F9326 +:1050D0001F93CF93DF9300D000D00F92CDB7DEB7F0 +:1050E000162FE82EF12CC701880F991F662339F17E +:1050F00088509E4FFC01808191819A83898301E0D1 +:105100000B830E94831B8160782F9D838C83F70122 +:10511000E256FD4F0127110F102B108349815A8150 +:105120006B818D810F900F900F900F900F90DF91FA +:10513000CF911F910F91FF90EF900C948A258C5086 +:105140009E4FD8CFCF92DF92EF92FF920F931F9393 +:10515000CF93DF930F92CDB7DEB7EE24E394F12C1B +:105160000CEB12E09E012F5F3F4F41EB52E063E0FA +:1051700082E00E944919082F882321F1C090EA0299 +:105180008C2D90E09C0123513D4F79011981F9014B +:105190008081181BD12E80E00AC0DA94F70180814B +:1051A0008F5F808360E08C2D0E946528802F1D1406 +:1051B000A4F3912F17FD90E0191B11110EC081115E +:1051C0000E94700B802F0F90DF91CF911F910F9154 +:1051D000FF90EF90DF90CF9008951F5FF7018081DF +:1051E0008150808361E08C2D0E946528802FE5CF5F +:1051F0001F921FB61F9211248F939F93AF93BF935B +:1052000080916A03811113C080916B0390916C03AC +:10521000A0916D03B0916E034196A11DB11D8093C5 +:105220006B0390936C03A0936D03B0936E03BF91D7 +:10523000AF919F918F911F901FBE1F901895CDB772 +:10524000DEB7E0970FB6F894DEBF0FBECDBF84B7D0 +:10525000877F84BF0FB6F894A8958091600088611D +:1052600080936000109260000FBE80E890E00FB65F +:10527000F89480936100909361000FBE85B78068B9 +:1052800085BF85B7806885BF8AEA99E0909333022D +:10529000809332020E94A4060E946F078091E20070 +:1052A00084608093E2007894809180038823A1F049 +:1052B0001091E9001F709091EC00892F817090FD92 +:1052C00080E8182B1092E9008091E80083FD0E948D +:1052D000B7111F701093E90082E084BD93E095BD83 +:1052E0009AEF97BD80936E001092D7021092D80269 +:1052F0001092D9021092DA020E94CF10811102C0DE +:105300000E942B100E94C00E809359018091590178 +:10531000882309F4C9C01092730185E28093740157 +:105320000E94C00E81110E94F632809159018111B4 +:105330002FC0FE01359686E0DF011D928A95E9F7C0 +:1053400086E6898387E98A8386EC8B8384E38C8372 +:1053500085E38D833497AFE4B1E0CE010B962191C4 +:105360002D938E179F07D9F787E0E9E7F1E0DE017B +:10537000919601900D928A95E1F7FE01B196A8E40D +:10538000B1E0CE01889621912D938E179F07D9F712 +:105390008091590195E0811190E09093E80285E0B9 +:1053A000891B8093E7020FE411E084E5E82E81E099 +:1053B000F82EF80181918F018F3F11F00E94AE0904 +:1053C000E016F106B1F708E411E0BFE4EB2EB1E01E +:1053D000FB2ED8018D918D018F3F11F00E94AE09F7 +:1053E000E016F106B1F78AE0EFE2F3E0DF01282FE3 +:1053F0001D922A95E9F7EDEDF2E0DF011D928A9505 +:10540000E9F70E94281A811102C00E94DA1782E08F +:1054100090E00E9417358093240384E090E00E947E +:105420001735182F82E290E00E941735982F812FB0 +:105430009093DC028093DB020E941C26EFE7FBEBDB +:105440003197F1F700C000000E941C2680912F03C5 +:1054500080FF2EC06FEF7FEF90E080E00E94493523 +:1054600081E08093E00080E28093D8001092C90030 +:105470008FE19EE40197F1F700C0000087E090EB18 +:10548000DC018093720690937306A0937406B09328 +:10549000750688E19CE00FB6F894A89580936000AB +:1054A0000FBE90936000FFCF85E28093730136CFEB +:1054B00083E090E00E9417350E94F50B80918A03EB +:1054C0000E9440160E94281A811102C00E94DA1719 +:1054D00088E190E00E941F35609360037093610340 +:1054E0008093620390936303672B682B692B11F4FD +:1054F0000E94A3170E94F73067E081E00E945D15CB +:1055000065E586E10E945D1563E687E10E945D1511 +:1055100060EA8AE10E945D1569E98BE10E945D15F0 +:1055200065EF8CE10E945D1560EA8DE10E945D15DA +:1055300060E38EE10E945D1566E083E00E945D15E8 +:1055400061E08CE00E945D1560E081E00E945D15E5 +:1055500060E08CE00E945D156FE084E00E945D15C4 +:1055600061E08CE00E945D150E94C00E811102C0B6 +:105570000E94F93283E080931F0380E280935303FB +:105580000E94F7306DE070E08CE492E00E943B0FE7 +:10559000892BE9F580911F0363E070E081FD05C26E +:1055A00089E492E00E943B0F892B89F56DE070E061 +:1055B00089E392E00E943B0F892B49F50E944E0837 +:1055C0006058774C8E4F9F4F60935A0370935B03E4 +:1055D00080935C0390935D03E0E7F4E080E092E069 +:1055E000DF019C011D9221503040E1F7F0937106DC +:1055F000E09370068FEF9FEF90936F0480936E049B +:1056000081E080935F0380935E031092200380917A +:10561000E902811136C00E94281A811104C00E943B +:10562000DA170E94601788E090E00E941F356093AF +:10563000690470936A0480936B0490936C04809166 +:1056400050038360809350036E7F71F40E94601753 +:1056500088E090E00E941F356093690470936A04AB +:1056600080936B0490936C040E94FE0880916904FF +:1056700080FF04C060E086950E94131781E080934C +:10568000E90280915901811106C084EF809367017E +:1056900085EF8093660120916701A22FA295AF70DC +:1056A000B0E091963C9191972F7081E090E0BC0121 +:1056B000022E01C0660F0A94EAF7462F4095432355 +:1056C00091964C93919792963C919297362B929605 +:1056D0003C93929740916601E42FE295EF70F0E0E1 +:1056E00031A14F70042E01C0880F0A94EAF7982F59 +:1056F0009095932391A392A1892B82A390968C914C +:1057000090E002C0959587952A95E2F7817020A1D7 +:1057100030E002C0359527954A95E2F792E020FFE8 +:1057200090E0892B8093F1029091590181E09827B4 +:105730009093F002891B8093EA020E94D31760E0E5 +:105740008AE00E94131781E00E94871680EE90E0A5 +:1057500090937201809371010E94280F8AE591E075 +:105760009093670380936603A0E46A2E8091800380 +:10577000FF24F39400E112E1853009F465C10E9431 +:105780001C26E82E81110E944E08FFE22F2EF3E026 +:105790003F2EE5E2F3E0D10110E000E0B02EDD9015 +:1057A00081918D1509F474C18D25C12CFF24F394CA +:1057B000982F9F2109F467C10E94C00E882399F099 +:1057C000C9A2BAA2DF2081E009F480E08BA30E9485 +:1057D000831B8160782F9DA38CA349A15AA16BA143 +:1057E0008DA10E948A25F801EB5DFC4F8081F8268F +:1057F000F0828091F102E82FEE0FEE0F9091670199 +:10580000A92FA295AF70B0E090962C9130E09F70D8 +:1058100002C0359527959A95E2F72170332790912C +:105820006601A92FA295AF70B0E090964C9150E020 +:105830009F7002C0559547959A95E2F7CA0181700D +:10584000992740FF02C082E090E0822B8E2B80934C +:10585000F1021091F0028F70E82FF0E0E250FE4F5D +:1058600080819091EF02890F8093EF02F12C8430B8 +:105870006CF0E12FF0E0E351FD4F80818F5F80837A +:1058800060E0812F0E946528FF24F3948091EF024D +:105890008D3F6CF4E12FF0E0E351FD4F80818150AA +:1058A000808361E0812F0E946528FF24F39480911A +:1058B000EF02082E000C990B64E070E00E94D734D0 +:1058C0008093EF02F1100E94700B80915F03882398 +:1058D00051F180912103909122030E94741BC29781 +:1058E00008F0EDC020916E0430916F042115310550 +:1058F00009F0F0C180915E038823A9F00E944E0850 +:1059000000915A0310915B0320915C0330915D0379 +:10591000601B710B820B930B6F3F7F4F8F4F9F4725 +:1059200010F40E946B0FE11001C0F1100E94860F6D +:105930000E94E8100E94E30E90912303891731F032 +:105940000E94E30E809323030E944B0E80918003FC +:10595000843009F00BCF83E08093E9008091E80068 +:1059600082FF04CF8091E80090E085FF0CC00E9488 +:10597000C30630E2E32EF12C8E010F5F1F4F882308 +:1059800009F487C291E08091E8008B778093E8006A +:10599000992309F4EBCEE981E150E33108F0DDC24F +:1059A000F0E0ED53F94C0C94EB3486E492E0FACD40 +:1059B00080918003843009F437C080E00E944B0E50 +:1059C0008091EC02811109C0F092EC02809169048F +:1059D00081708093EB020E94670E0E946B0F0E9401 +:1059E000E81010926A0388E190E00FB6F894A89549 +:1059F000809360000FBE6092600083B7817F8460F7 +:105A000083BF83B7816083BF7894889583B78E7F87 +:105A100083BF0FB6F894A895809160008861809349 +:105A20006000109260000FBE80917F03882361F0B8 +:105A30000E941C26EFE2F3E081918111B7C3A9E334 +:105A4000B3E0AE17BF07C1F780918003853009F43A +:105A5000AFCF109273030E94AE110E94E30E0E941A +:105A60004B0E1092EC028091EB02882349F080915A +:105A7000690481608093690460E086950E94131731 +:105A80000E94280F7CCEC394FF0C27E0C21290CE58 +:105A90000F5F1F4F0A30110509F080CE8FEF88A7E6 +:105AA00089A71AA60E94831B8160782F9CA78BA7C9 +:105AB00048A559A56AA58CA50E948A259ACE0E9460 +:105AC000831B909322038093210360E080E00E9477 +:105AD000CC080E94E30E8093FE020E94C00E882331 +:105AE00009F4DFC06091FA027091FB028091FC0220 +:105AF0009091FD020E94320861337547810591053E +:105B000040F00E946B0F80915F03882309F4F2CE6E +:105B1000E9CE0E94860F61E080E00E94CC0860E040 +:105B200080E891E00E94411562E080E00E94CC088C +:105B300080918A030E94BB0C823009F48CC008F06B +:105B400081C0882309F487C0813009F48AC065E0E8 +:105B500080E00E94CC0860E08EE991E00E9441154F +:105B600066E080E00E94CC086091FE02669561705C +:105B700083EA91E00E94411567E080E00E94CC0832 +:105B80006091FE026095617088EA91E00E94411583 +:105B900068E080E00E94CC086091FE0262FB66270C +:105BA00060F98CEA91E00E9441156091F6027091D3 +:105BB000F7028091F8029091F9020E9432086D324A +:105BC00071408105910508F49ECF0E944E086093B4 +:105BD000F6027093F7028093F8029093F902809195 +:105BE000F502811104C080916801811142C06DE00D +:105BF00080E00E94CC0860E081EB91E00E944115BA +:105C00006AE080E00E94CC0881E080936801809186 +:105C1000F40290E00196817099278093F40221E0CC +:105C200030E0281B390B40E6429FC001439F900D96 +:105C300011242091F302222351F187529C4F0E949C +:105C4000610661CF833089F0843009F080CF60E055 +:105C500082E991E003C060E086E891E00E9441158E +:105C600076CF60E08CE891E0F9CF60E088E991E0E0 +:105C7000F5CF6AE080E00E94CC0860E081EB91E023 +:105C80000E9441156BE080E00E94CC08C0CF2091BB +:105C9000F202222319F0875E9C4FD1CF875A9D4F85 +:105CA000CECF64E080E00E94CC0860E087EB91E01A +:105CB0000E94411565E080E00E94CC0860E08DEB19 +:105CC00091E00E94411569E080E00E94CC0889E9DA +:105CD00094E0B5CF8091200361E070E081110ACE9D +:105CE000082F10E02B01082E02C0440C551C0A940A +:105CF000E2F7A90144215521452B09F448C09091B0 +:105D00001F0390FD46C08295880F807680936B01BB +:105D10009801369527953695279520936E01815EDB +:105D200080936C0110926F0124E630E047E050E070 +:105D300069E671E088E70E94EE31892B09F0DACD3F +:105D4000A80175E0440F551F7A95E1F780911F0374 +:105D500080FD2DC040595B4F04E610E020E230E0AA +:105D600060E488E70E941532892B09F0C3CD0E94B8 +:105D7000860FC2018095909540906E0450906F04FC +:105D80004822592250926F0440926E04B3CD8F5F27 +:105D9000A7CF880F880F880F80936B0110926E0138 +:105DA000895F80936C0183E080936F01BDCFEFEF3B +:105DB000F2E080E2DF011D928A95E9F7E2E1F2E08C +:105DC000F8ABEFA70EE012E067E0A62E99249394BB +:105DD000AFA5B8A96D91B8ABAFA7F80181918F01BC +:105DE000840F952F911D9C0120593B4F3EA72DA755 +:105DF000E62FF0E0E150FD4F30E020E07A2C721AFF +:105E0000B92C022E01C0BB0C0A94EAF7CDA4DEA483 +:105E100090E0D6018D916D018B21672D691B677014 +:105E2000862E062E000C770BB82F01C0BB0F8A946C +:105E3000EAF78B2E7195619571096770772701C01C +:105E400086956A95EAF7882A8081882A80829F5FF2 +:105E50009830F9F62F5F3F4F31962830310571F6B3 +:105E6000E6E1F2E02FA538A9E217F30709F0B0CF79 +:105E700004E610E020E230E04FEF52E071CF809175 +:105E8000F100D8018D938D01B1E0EB1AF10809F40E +:105E900079CD8091E80085FDF2CF8091E8008B7785 +:105EA0008093E8000E94C306882399F36BCD1A8281 +:105EB00089E08B8311C08A81823009F48FC18330DD +:105EC00091F1813009F049C00E944E080E94F134DE +:105ED0006B837C838D839E8380918003843009F063 +:105EE00045CC1091E9001F709091EC00892F8170D2 +:105EF00090FD80E8182B82E08093E9008091E80013 +:105F000080FF0DC050E040E060E270E0CE010196FD +:105F10000E94F4068091E8008E778093E8001F705D +:105F20001093E90023CCFE013396D1018D911D0120 +:105F30008193B9E32B16B3E03B06B9F7CDCF8A8145 +:105F4000823059F46B817C818D819E810E94F13475 +:105F500086E290E00E942B35BFCF8FEF8983BCCFC4 +:105F60004C816B818A810E943A1098278927982753 +:105F70009E838D83B1CFED80FE80FE24EF24FE242E +:105F80008A810B81EEE00E9F80011124FCE88F9F37 +:105F9000000D111D11248C8190E0880F991F080FAE +:105FA000191F6F2DC80187960E942B356E2DC801D1 +:105FB0008896D0CF0E94BE0F8FCF8A818138B1F0F2 +:105FC00058F4803809F088CF4B8160916B04809140 +:105FD0006A040E943D1680CF8238E1F0833809F0D0 +:105FE0007BCF40916C046C818B81F3CF60E08B811F +:105FF0000E9413178B81811103C00E94670E6CCF22 +:106000008091690481608093690460E086950E94B4 +:10601000131762CF8B8180936D045ECF8A818138A4 +:1060200099F030F4803809F057CF80916C0441CF5B +:10603000823891F0833809F04FCF80916A048B83C6 +:1060400080916B048C8348CF8091690480FF02C0EB +:1060500086952FCF80E02DCF80916D042ACF60915F +:10606000690470916A0480916B0490916C040E94A1 +:10607000781532CF80E18A832FCF81E08A838DE14A +:1060800018CFCA80DB80DC24CD24DC248E010F5F96 +:106090001F4FEC80E00EF12EF11CC6018D519D4F7B +:1060A0000E151F0509F418CF2DE1C21621E0D20606 +:1060B00058F40E941735D80114968C93FFEFCF1A2D +:1060C000DF0A0F5F1F4FE9CFF8011482F7CF0A8173 +:1060D0001B811027012710279E012F5F3F4F690169 +:1060E000EC80E00EF12EF11CC8018D519D4FE016A1 +:1060F000F10609F4F1CE0D3131E0130728F4D60191 +:1061000014966C910E942B35BFEFCB1ADB0A0F5F00 +:106110001F4FEACF0E94AE0FDFCE85E0ACCFCA8022 +:10612000DB80DC24CD24DC248E010F5F1F4FEC804C +:10613000E00EF12EF11CC6018796E016F10609F477 +:10614000CBCEECEBCE16E2E0DE0658F40E9417351B +:10615000D80114968C93FFEFCF1ADF0A0F5F1F4F01 +:10616000EACFF8011482F7CF0A811B81102701279B +:1061700010279E012F5F3F4F6901EC80E00EF12E4A +:10618000F11CC8018796E016F10609F4A5CE0C3B78 +:1061900032E0130728F4D60114966C910E942B3537 +:1061A000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BD45 +:1061B00009B400FEFDCF8091D8008F7D8093D80078 +:1061C0008091E00082608093E0008091E00081FD9A +:1061D000FCCF109273030E94AE1136CC86E290E0A1 +:1061E0000E9417351B821C821D828E8375CE1092F1 +:1061F000B9008CE08093B80008959F92AF92BF924F +:10620000CF92DF92EF92FF920F931F93CF93DF9382 +:10621000B82EEB010E94831B6C01EE24E394F12C59 +:10622000C431D10560F025E0E22EF12CCF3FDC0730 +:1062300031F0CE0164E170E00E94B7347B0184EA62 +:10624000A82E94E8992E1092BC00A092BC000E9447 +:10625000831B8C018091BC0087FF0DC08091B90029 +:10626000887F883039F18091B900887F803111F1C1 +:106270000FEF1FEF09C00E94831B801B910B8E152F +:106280009F0540F30EEF1FEFCF3FDC07E1F2C601A1 +:106290000E94741B8C179D07B0F2C801DF91CF914B +:1062A0001F910F91FF90EF90DF90CF90BF90AF9034 +:1062B0009F900895B092BB009092BC000E94831BF7 +:1062C0008C018091BC0087FF0AC08091B900887F53 +:1062D000883111F0803461F610E000E0DECF0E94DA +:1062E000831B801B910B8E159F0558F3CBCF0F930B +:1062F0001F93CF93DF93EB018093BB0084E88093DF +:10630000BC000E94831B8C018091BC0087FF11C0E0 +:106310002091B900287F81E090E0283211F490E0CC +:1063200080E0919581959109DF91CF911F910F9117 +:106330000895CF3FDC0741F30E94831B801B910B24 +:106340008C179D0708F38EEF9FEFEECF0F931F93EF +:10635000CF93DF93EC0184EC8093BC000E94831BFD +:106360008C018091BC0087FF08C08091BB0090E049 +:10637000DF91CF911F910F910895CF3FDC0789F3F3 +:106380000E94831B801B910B8C179D0750F38EEF8F +:106390009FEFEECF0F931F93CF93DF93EC0184E831 +:1063A0008093BC000E94831B8C018091BC0087FFFE +:1063B00008C08091BB0090E0DF91CF911F910F91B9 +:1063C0000895CF3FDC0789F30E94831B801B910B4C +:1063D0008C179D0750F38EEF9FEFEECFCF92DF9299 +:1063E000EF92FF920F931F93CF93DF936B018A017C +:1063F0007901B9010E94FD30E6010C0D1D1DC01789 +:10640000D10761F424E92093BC00DF91CF911F9163 +:106410000F91FF90EF90DF90CF90089597FDF2CF0E +:10642000B70189910E947731EACFCF92DF92EF9244 +:10643000FF920F931F93CF93DF93C62F6A017901C9 +:10644000B8010E94FD3097FD0CC0B8018C2F0E944E +:106450007731E601EC0CFD1CCE15DF0511F097FF3E +:106460000CC024E92093BC00DF91CF911F910F91C4 +:10647000FF90EF90DF90CF900895B80189910E942E +:106480007731EACFCF92DF92EF92FF920F931F9373 +:10649000CF93DF93F82EE62EEA016901B8010E943E +:1064A000FD3097FD15C0B8018E2D0E94773197FD04 +:1064B0000FC0B8018F2D81600E94FD30F12CE12CBE +:1064C00021E0C21AD108EC14FD0400F597FF11C0B9 +:1064D00024E92093BC001816190614F490E080E01B +:1064E000DF91CF911F910F91FF90EF90DF90CF90B0 +:1064F0000895C8010E94A63197FD04C0FE01EE0D6B +:10650000FF1D80832FEFE21AF20ADDCF97FDE0CF67 +:10651000C8010E94CA3197FDDBCFCC0DDD1D8883F9 +:10652000D7CF84E98093BC0008958EE14A9B02C0D6 +:106530008150E1F74A9BFECF08955A9880E28A95F0 +:10654000F1F75A9A0895FC013BE03A95F1F798E08B +:1065500020E080E031E040E14A95F1F7880F4A9B66 +:1065600002C08160232742E04A95F1F7000040E134 +:106570004A95F1F7915079F790E19A95F1F799B131 +:1065800032E03A95F1F7000040E14A95F1F792FBCD +:10659000992790F992272081920F90830895EF9286 +:1065A000FF920F931F93CF93DF930F92CDB7DEB778 +:1065B00019828C017C01E60EF11C0E151F0561F499 +:1065C00081E09981911180E00F90DF91CF911F912F +:1065D0000F91FF90EF9008950E949532CE010196A1 +:1065E0000E94A332F80181938F01E7CF529A5A9A01 +:1065F000089552985A9AEA9AE9E6F0E080818F7CF1 +:10660000808308956150770B91E001C0990F6A95DE +:10661000EAF720E031E0911108C0222391F05A9A64 +:1066200080E28A95F1F75A980895492F482339F066 +:106630005A9A232740E24A95F1F79695ECCF5A985B +:10664000F9CF5A98EDCFFF920F931F93CF93DF931B +:10665000EC018C01060F111DC017D10731F4DF9139 +:10666000CF911F910F91FF900895F9900E949D3254 +:1066700068E08F2D0E940233EFCF1F920F920FB66A +:106680000F921124EF92FF920F931F932F933F933A +:106690004F935F936F937F938F939F93AF93BF932A +:1066A000EF93FF93CF93DF930F92CDB7DEB71982AD +:1066B0000E949532CE0101960E94A332A82FA69582 +:1066C000A695A695282F229525709A2F9570290FAB +:1066D000922F937026952695920F9827977089810F +:1066E000982B09F075C0A83008F072C080E18A9537 +:1066F000F1F75A9A529AB2E0BA95F1F700C05A9857 +:10670000EA2EF12CEAE0AE9FD0011124AE5FBE4F1D +:106710001896ED91FC9119973097B1F06091FC01BA +:106720007091FD0116962D913C911797260F371FFA +:1067300013968D919C911497680F791F15964C9123 +:10674000159712968C9109958AE08E9DF0018F9D88 +:10675000F00D1124EE5FFE4F6581662351F020910C +:10676000FC013091FD0186819781820F931F0E9469 +:1067700023330E949D32F0E1FA95F1F75A9852982E +:106780005A9A80E18A95F1F78AE08E9D80018F9D6B +:10679000100D11240E5F1E4FD80112966C911297A6 +:1067A000662371F12091FC013091FD0113968D91CA +:1067B0009C91820F931F0E94CF32D801ED91FC91E2 +:1067C000882311F088E001C082E080830E94953226 +:1067D0000F90DF91CF91FF91EF91BF91AF919F917A +:1067E0008F917F916F915F914F913F912F911F9169 +:1067F0000F91FF90EF900F900FBE0F901F90189584 +:10680000ED91FC91DFCF0F931F93CF93DF93EC01BA +:1068100008970CF0A9C08AE08C9FF0018D9FF00DC5 +:106820001124EE5FFE4F80819181892B09F49CC079 +:10683000F894529A5A9885E08A95F1F700008C2FC7 +:10684000869585709C2F9570890F982F93708695EB +:106850008695890F8E0193E0000F111F9A95E1F73D +:10686000082B0E949D3200C068E0802F0E940233F6 +:10687000A0E1AA95F1F752985A9A4A9B27C087E05F +:1068800090E04A9925C08AE08C9F80018D9F100D71 +:1068900011240E5F1E4FF80165816623A1F120913E +:1068A000FC013091FD0186819781820F931F0E9428 +:1068B000CF32811128C0529A5A9AD801ED91FC9199 +:1068C00082E08083789482E090E016C000C0D5CF4B +:1068D0000197B9F4529A5A9A8AE08C9FF0018D9FE1 +:1068E000F00D1124EE5FFE4F0190F081E02D81E06C +:1068F0008083789481E090E0DF91CF911F910F9198 +:10690000089500C0BECF0E949532B0E2BA95F1F76B +:106910005A98529AE0E1EA95F1F78AE08C9FF001EB +:106920008D9FF00D1124EE5FFE4F6281662351F0C2 +:106930002091FC013091FD0183819481820F931F8E +:106940000E9423330E949D328AE08C9FF0018D9F2C +:10695000F00D1124EE5FFE4F0190F081E02D1082CA +:10696000789490E080E0C8CF84E090E0C5CFAA1B87 +:10697000BB1B51E107C0AA1FBB1FA617B70710F02A +:10698000A61BB70B881F991F5A95A9F7809590955C +:10699000BC01CD010895991B79E004C0991F961799 +:1069A00008F0961B881F7A95C9F78095089597FB84 +:1069B000072E16F4009407D077FD09D00E94B73453 +:1069C00007FC05D03EF4909581959F4F08957095F2 +:1069D00061957F4F0895EE0FFF1F0590F491E02D14 +:1069E00009946927962769277827872778270895A4 +:1069F000FB01DC0102C005900D9241505040D8F7D8 +:106A00000895FB01DC0104C08D910190801921F4EF +:106A100041505040C8F7881B990B0895FB01DC01D9 +:106A200002C001900D9241505040D8F70895F99955 +:106A3000FECF92BD81BDF89A992780B50895A6E151 +:106A4000B0E044E050E00C945135A8E1B0E042E001 +:106A500050E00C945135262FF999FECF92BD81BD9F +:106A6000F89A019700B4021639F01FBA20BD0FB68C +:106A7000F894FA9AF99A0FBE08950396272F0E9468 +:106A80002C350E942B35252F0E942C35242F0C9459 +:106A90002C350196272F0E942C350C942B35DC01C8 +:106AA000CB01FC01F999FECF06C0F2BDE1BDF89A19 +:106AB000319600B40D9241505040B8F708950E94AD +:106AC00066356894B1110C94F53508950E94DA3555 +:106AD00088F09F5798F0B92F9927B751B0F0E1F09F +:106AE000660F771F881F991F1AF0BA95C9F714C04F +:106AF000B13091F00E94F435B1E008950C94F43572 +:106B0000672F782F8827B85F39F0B93FCCF3869587 +:106B100077956795B395D9F73EF4909580957095E4 +:106B200061957F4F8F4F9F4F0895E89409C097FB61 +:106B30003EF490958095709561957F4F8F4F9F4F54 +:106B40009923A9F0F92F96E9BB279395F695879598 +:106B500077956795B795F111F8CFFAF4BB0F11F45B +:106B600060FF1BC06F5F7F4F8F4F9F4F16C0882302 +:106B700011F096E911C0772321F09EE8872F762F38 +:106B800005C0662371F096E8862F70E060E02AF079 +:106B90009A95660F771F881FDAF7880F9695879565 +:106BA00097F9089557FD9058440F551F59F05F3FCE +:106BB00071F04795880F97FB991F61F09F3F79F01F +:106BC00087950895121613061406551FF2CF4695A1 +:106BD000F1DF08C0161617061806991FF1CF869523 +:106BE0007105610508940895E894BB276627772707 +:106BF000CB0197F908950E940E360C947F360E94BF +:106C0000713638F00E94783620F0952311F00C94FC +:106C100068360C946E3611240C94F5350E94D235EA +:106C200070F3959FC1F3950F50E0551F629FF001DF +:106C3000729FBB27F00DB11D639FAA27F00DB11DF8 +:106C4000AA1F649F6627B00DA11D661F829F222781 +:106C5000B00DA11D621F739FB00DA11D621F839F08 +:106C6000A00D611D221F749F3327A00D611D231FDE +:106C7000849F600D211D822F762F6A2F11249F572C +:106C800050409AF0F1F088234AF0EE0FFF1FBB1F2F +:106C9000661F771F881F91505040A9F79E3F5105EE +:106CA00080F00C9468360C94F5355F3FE4F3983E21 +:106CB000D4F3869577956795B795F795E7959F5F98 +:106CC000C1F7FE2B880F911D9695879597F908952A +:106CD00097F99F6780E870E060E008959FEF80EC8F +:106CE000089500240A941616170618060906089532 +:106CF00000240A9412161306140605060895092E98 +:106D00000394000C11F4882352F0BB0F40F4BF2B06 +:106D100011F460FF04C06F5F7F4F8F4F9F4F089546 +:106D2000F894FFCFBA10BA10C310C310C510C31027 +:106D3000C310C310BA10BA10CA10C310C310CA10BF +:106D40009F12C7126A14C7126A14FA121B136A142C +:106D500019142614FE1C741D771D8B1D8E1DA11D7C +:106D6000AA1DCE1D141E461E5A1EE01D031EE6213E +:106D7000E6213F223F2271221922192219228B2259 +:106D8000FC220C230C23572F5B2F9F2FB02FBB2FE0 +:106D9000DA2FDD2F0E302F30AD2FAD2F3A303D30B2 +:0C6DA000413067308A308D308F30B430C5 +:106DAC0001013C0200000001000000003C02000058 +:106DBC000005010000003C0200000001060000007C +:106DCC003C0200000001070000003C020408000027 +:106DDC00000000003C02080C0000000000003C0217 +:106DEC00011400000000000036323331F7F6FF6664 +:106DFC0097C634350000000000012F085E0D3D0DD4 +:106E0C00390D350D2E08F4F5010021007F22000309 +:106E1C00018000004A004A4A01F6F731333236FF4E +:106E2C004C415945520042617365200047616D65C4 +:106E3C0020005261697365004C6F776572004C4F8E +:106E4C00434B0043617073004E756D005363726C5D +:106E5C0000202020202000534F4C415200544D5014 +:106E6C00535400818283E200E900EA00B500B600C9 +:106E7C00B700CD008301CC008A019201940121025C +:106E8C00230224022502260227022A02B300B400A0 +:106E9C006F0070000603060806010606B50200FF27 +:106EAC000100010000FFFF0000010001FF000008CD +:106EBC00101818100800000102020202020202025D +:106ECC00020240227B49012701AC009E0BB70BD775 +:026EDC000B00A9 :00000001FF From 9fd923d81c3f6542c523da8d12211e15533dc4f3 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 2 Jan 2022 00:55:18 -0500 Subject: [PATCH 81/94] Adjust layer colours --- .../solartempest/ps17/keymaps/via/keymap.c | 12 ++++++++---- .../ps17/solartempest_ps17_via.hex | 18 +++++++++--------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/keyboards/solartempest/ps17/keymaps/via/keymap.c b/keyboards/solartempest/ps17/keymaps/via/keymap.c index d85616310b29..e24a32135e78 100644 --- a/keyboards/solartempest/ps17/keymaps/via/keymap.c +++ b/keyboards/solartempest/ps17/keymaps/via/keymap.c @@ -325,8 +325,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { rgblight_sethsv_at(15,255,120,22); } else { - rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer - rgblight_sethsv_at(175,255,120,22); + //rgblight_sethsv_at(175,255,120,18); //Set LEDs back to violet, assuming on that coloured layer + //rgblight_sethsv_at(175,255,120,22); + rgblight_sethsv_at(207,255,120,18); //Set LEDs back to magenta, assuming on that coloured layer + rgblight_sethsv_at(207,255,120,22); } #endif } @@ -408,13 +410,15 @@ layer_state_t layer_state_set_user(layer_state_t state) { switch (get_highest_layer(state)) { // Change all other LEDs based on layer state as well case 0: - rgblight_sethsv_noeeprom(50,255,100); + //rgblight_sethsv_noeeprom(50,255,100); //blue-green gradient + rgblight_sethsv_noeeprom(115,200,100); //pale-blue gradient //You can selectively decrease certain LEDs if you are have a clear acrylic case and the shine-through is bothersome. Rgblight_sethsv_at() can be used here for those LEDs (0, 2, 4, 14, and 23). Otherwise some black tape on the acrylic plate or foam underneath the FR4 plate will do the trick. break; case 1: rgblight_sethsv_noeeprom(5,255,100); case 2: - rgblight_sethsv_noeeprom(128,255,100); + //rgblight_sethsv_noeeprom(128,255,100);//blue-purple gradient + rgblight_sethsv_noeeprom(160,255,100); //blue-magenta gradient break; case 3: rgblight_sethsv_noeeprom(215,255,100); diff --git a/keyboards/solartempest/ps17/solartempest_ps17_via.hex b/keyboards/solartempest/ps17/solartempest_ps17_via.hex index 9d9c27806520..42b66569857c 100644 --- a/keyboards/solartempest/ps17/solartempest_ps17_via.hex +++ b/keyboards/solartempest/ps17/solartempest_ps17_via.hex @@ -534,8 +534,8 @@ :10215000D11C0F3382E0180789F6DF91CF911F91D0 :102160000F91FF90EF90DF90CF90BF90AF909F9036 :102170008F907F906F900895CF93C82F6FEF81114C -:1021800061E283E290E00E94A62D6FEFC11161E150 -:1021900084E290E00E94A62D6FEFC11160E385E21A +:1021800062E283E290E00E94A62D6FEFC11161E050 +:1021900084E290E00E94A62D6FEFC11162E085E21B :1021A00090E0CF910C94A62D80E00E94BC1060E0DE :1021B00086E290E00E94A62D0E946A100E945A10AA :1021C00081E00C94BC100F931F93CF93DF9328E012 @@ -568,8 +568,8 @@ :102370000F90DF91CF911F910C9409110E94620A76 :10238000182FEFCFC9010F900F900F900F900F9063 :10239000DF91CF911F91089583E290E00E94922DEA -:1023A000813289F484E290E00E94922D813159F4C7 -:1023B00085E290E00E94922D91E0803309F090E058 +:1023A000823289F484E290E00E94922D813059F4C7 +:1023B00085E290E00E94922D91E0823009F090E059 :1023C000892F8170089580E0FCCF6091E5026695C9 :1023D00070E04BE050E08CE091E00E94DA2D892B18 :1023E00019F481E080938D020E9484059093870206 @@ -609,9 +609,9 @@ :1026000011F08E5F9A0136952795232B09F08F5F85 :10261000823001F148F4882381F08130A9F08D2FB8 :102620009C2FDF91CF9108958330C9F08430B9F7A2 -:1026300020E044E66FEF8FE004C020E044E66FEF57 -:1026400082E30E940D12EBCF20E044E66FEF85E0BD -:102650000E940D1220E044E66FEF80E8F2CF20E008 +:1026300020E044E66FEF8FE004C020E044E668EC61 +:1026400083E70E940D12EBCF20E044E66FEF85E0B8 +:102650000E940D1220E044E66FEF80EAF2CF20E006 :1026600044E66FEF87EDEDCF0E94E11290939B035C :1026700080939A030C94B50A80919A0390919B03DE :102680009C01267033272630310519F488600C949C @@ -831,8 +831,8 @@ :1033E0000E94FE0A80EE0E94FE0A80914E0291E049 :1033F00022E148E76FEF892780934E02882351F03E :103400008FE00E941A0F26E148E76FEF8FE00E94DD -:103410001A0F74CE8FEA0E941A0F26E148E76FEF69 -:103420008FEAF5CF882309F4A9CD1091540201E069 +:103410001A0F74CE8FEC0E941A0F26E148E76FEF67 +:103420008FECF5CF882309F4A9CD1091540201E067 :103430001027109354020E948405909352028093A7 :1034400051028091530210921C01882319F18CE1E2 :1034500080931D0180931E0181E20E94011428E0E7 From 02f2134489a2a6e3bb2ef6217a13a3f52d442a15 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sun, 2 Jan 2022 01:16:31 -0500 Subject: [PATCH 82/94] Update layer colours --- keyboards/solartempest/9e/keymaps/via/keymap.c | 12 ++++++++---- .../solartempest/9e/solartempest_9e_via.hex | 18 +++++++++--------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/keyboards/solartempest/9e/keymaps/via/keymap.c b/keyboards/solartempest/9e/keymaps/via/keymap.c index 44fddc3bf9ce..a5ffab6ecef9 100644 --- a/keyboards/solartempest/9e/keymaps/via/keymap.c +++ b/keyboards/solartempest/9e/keymaps/via/keymap.c @@ -394,9 +394,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { // RGB Layer Light Settings - Note that this will fix the key switches with same LED colour and brightness -const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green +//const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green +const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 30,255,120}); //Yellow-orange -const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan +//const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 128,255,100}); //Cyan +const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 95,255,90}); //Spring green const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 18, 215,255,120}); //Magenta const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS({4, 2, 43,100,160}); //White-left caps lock indication (No dedicated LED) const rgblight_segment_t PROGMEM my_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS({8, 2, 43,100,150}); //White-right num lock indication (No dedicated LED) @@ -430,13 +432,15 @@ layer_state_t layer_state_set_user(layer_state_t state) switch(biton32(state)){ // Change all other LEDs based on layer state as well case 0: - rgblight_sethsv_noeeprom(50,255,30); + //rgblight_sethsv_noeeprom(50,255,30); //blue-green gradient + rgblight_sethsv_noeeprom(106,200,30); //blue gradient break; case 1: rgblight_sethsv_noeeprom(30,255,30); break; case 2: - rgblight_sethsv_noeeprom(106,255,30); + //rgblight_sethsv_noeeprom(106,255,30); //blue gradient + rgblight_sethsv_noeeprom(50,255,30); //blue-green gradient break; case 3: rgblight_sethsv_noeeprom(215,255,30); diff --git a/keyboards/solartempest/9e/solartempest_9e_via.hex b/keyboards/solartempest/9e/solartempest_9e_via.hex index de104edae5a8..4279fca60a35 100644 --- a/keyboards/solartempest/9e/solartempest_9e_via.hex +++ b/keyboards/solartempest/9e/solartempest_9e_via.hex @@ -10,8 +10,8 @@ :100090000C94EA040C94EA0406022B64A0FF00000E :1000A000000008022B6496FF0000000004022B648D :1000B000A0FF000000000412D7FF78FF000000003E -:1000C000041280FF64FF0000000004121EFF78FF8E -:1000D0000000000004125FFF5AFF0000000005014D +:1000C00004125FFF5AFF0000000004121EFF78FFB9 +:1000D00000000000041280FF64FF00000000050122 :1000E0000902A10185020901A100050919012908D8 :1000F00015002501950875018102050109300931B6 :100100001581257F95027508810609381581257F9F @@ -464,8 +464,8 @@ :101CF000D11C8FE5E81684E0F80679F6DF91CF91E4 :101D00001F910F91FF90EF90DF90CF90BF90AF9019 :101D10009F908F907F906F900895CF93C82F6FEF13 -:101D2000811161E283E290E00E94EB2D6FEFC1111F -:101D300061E184E290E00E94EB2D6FEFC11168E257 +:101D2000811162E283E290E00E94EB2D6FEFC1111E +:101D300061E084E290E00E94EB2D6FEFC11162E060 :101D400085E290E0CF910C94EB2D80E00E948D0E07 :101D500060E086E290E00E94EB2D0E94380E0E9427 :101D6000280E81E00C948D0ECF93C92F682F84E04C @@ -490,9 +490,9 @@ :101E9000E92FF0E0EB59F14D0C948C2D803F19F0B7 :101EA00020F4883E20F481E00895843FE1F380E04F :101EB0000895883EC0F3813FD1F7F5CF822F8695F4 -:101EC00086958695089583E290E00E94D72D813211 -:101ED00089F484E290E00E94D72D813159F485E2A3 -:101EE00090E00E94D72D91E0883209F090E0892F90 +:101EC00086958695089583E290E00E94D72D823210 +:101ED00089F484E290E00E94D72D813059F485E2A4 +:101EE00090E00E94D72D91E0823009F090E0892F98 :101EF0008170089580E0FCCFCF9384E090E00E9451 :101F0000D72DC82F82E290E00E94D72D982F8C2FDA :101F1000CF91089560918B03669570E04BE050E09F @@ -674,9 +674,9 @@ :102A1000A8017695679557954795452B462B472BEB :102A200009F08F5F8130C9F0882359F08230D1F0EE :102A30008330E9F020E04EE16FEF80E406C080E0F3 -:102A4000C6CF20E04EE16FEF82E30E943A13CE0141 +:102A4000C6CF20E04EE168EC8AE60E943A13CE0140 :102A5000DF91CF911F910F91089520E04EE16FEF2C -:102A60008EE1F3CF20E04EE16FEF8AE6EECF20E07B +:102A60008EE1F3CF20E04EE16FEF82E3EECF20E086 :102A70004EE16FEF87EDE9CF0E94A91490930C030C :102A800080930B030C94B10B80910B0390910C037A :102A90009C01267033272630310519F488600C9488 From 3fb43b6e877ae43f1f2e3969e61fdda5d9d1df26 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Sat, 8 Jan 2022 00:03:21 -0500 Subject: [PATCH 83/94] Increase compatibility with stock OLED code --- keyboards/solartempest/sofle/keymaps/via/oled.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/keyboards/solartempest/sofle/keymaps/via/oled.c b/keyboards/solartempest/sofle/keymaps/via/oled.c index 2cd5456d78d4..b7b55ad0712a 100644 --- a/keyboards/solartempest/sofle/keymaps/via/oled.c +++ b/keyboards/solartempest/sofle/keymaps/via/oled.c @@ -18,6 +18,7 @@ //Sets up what the OLED screens display. #ifdef OLED_ENABLE + uint32_t oled_timer = 0; //OLED timeout static void render_logo(void) { static const char PROGMEM qmk_logo[] = { 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, @@ -71,6 +72,12 @@ } return rotation; } + /* oled_rotation_t oled_init_user(oled_rotation_t rotation) { //128x64 OLED test + if (is_keyboard_master()) { + return OLED_ROTATION_270; + } + return OLED_ROTATION_90; + }*/ bool oled_task_user(void) { if (is_keyboard_master()) { From ee6f48c6edf4b181e0f5e2f4d75a46b20f7addae Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Mon, 10 Jan 2022 22:10:47 -0500 Subject: [PATCH 84/94] General updates. --- .../zodiark/keymaps/solartempest/config.h | 24 ++++++ .../zodiark/keymaps/solartempest/encoder.c | 36 +++++++++ .../zodiark/keymaps/solartempest/keymap.c | 54 +++++++++++++ .../zodiark/keymaps/solartempest/oled.c | 79 +++++++++++++++++++ .../zodiark/keymaps/solartempest/rules.mk | 1 + keyboards/aleblazer/zodiark/rules.mk | 2 +- 6 files changed, 195 insertions(+), 1 deletion(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/config.h create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h new file mode 100644 index 000000000000..8714be8d4d86 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -0,0 +1,24 @@ +/* +Copyright 2021 Spencer Deven + +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 3 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 . +*/ +#pragma once + +#define MASTER_LEFT + +#ifdef OLED_ENABLE + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 400000 +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c new file mode 100644 index 000000000000..c08cfed5c173 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c @@ -0,0 +1,36 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ + +//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. + +#ifdef ENCODER_ENABLE + +bool encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDOWN); + } else { + tap_code(KC_PGUP); + } + } + return true; +} + +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c new file mode 100644 index 000000000000..f9680ecd0273 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -0,0 +1,54 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ +#include QMK_KEYBOARD_H +#ifdef OLED_ENABLE + #include "oled.c" +#endif +#include "encoder.c" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [2] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), + + [3] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD + ) + +}; diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c new file mode 100644 index 000000000000..8642bacb0548 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c @@ -0,0 +1,79 @@ +/* +Copyright 2021 Spencer Deven +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 3 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 . +*/ + +#ifdef OLED_ENABLE + +static void render_logo(void) { + static const char PROGMEM qmk_logo[] = { + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0 + }; + + oled_write_P(qmk_logo, false); +} + +static void print_status_narrow(void) { + // Print current mode + oled_write_P(PSTR("\n\n"), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_ln_P(PSTR("Qwrt"), false); + break; + default: + oled_write_P(PSTR("Mod\n"), false); + break; + } + oled_write_P(PSTR("\n\n"), false); + // Print current layer + oled_write_ln_P(PSTR("LAYER"), false); + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("Base\n"), false); + break; + case 1: + oled_write_P(PSTR("Raise"), false); + break; + case 2: + oled_write_P(PSTR("Lower"), false); + break; + case 3: + oled_write_P(PSTR("Adjust"), false); + break; + default: + oled_write_ln_P(PSTR("Undef"), false); + } + oled_write_P(PSTR("\n\n"), false); + led_t led_usb_state = host_keyboard_led_state(); + oled_write_ln_P(PSTR("CPSLK"), led_usb_state.caps_lock); +} + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + return rotation; +} + +bool oled_task_user(void) { + if (is_keyboard_master()) { + print_status_narrow(); + } else { + render_logo(); + } + return false; +} + +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/aleblazer/zodiark/rules.mk b/keyboards/aleblazer/zodiark/rules.mk index 4b163940c9a6..118c42bbeb19 100644 --- a/keyboards/aleblazer/zodiark/rules.mk +++ b/keyboards/aleblazer/zodiark/rules.mk @@ -16,7 +16,7 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -OLED_ENABLE = no +OLED_ENABLE = yes OLED_DRIVER = SSD1306 # Enable Support for SSD1306 or SH1106 OLED Displays; Communicating over I2C ENCODER_ENABLE = yes SPLIT_KEYBOARD = yes From e33c0982563cc804b70ef57054355b5b58546307 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 26 Jan 2022 10:39:22 -0500 Subject: [PATCH 85/94] Updated build options --- .../zodiark/keymaps/solartempest/config.h | 33 +- .../zodiark/keymaps/solartempest/encoder.c | 4 +- .../zodiark/keymaps/solartempest/rules.mk | 4 + .../aleblazer/zodiark/zodiark VIA layout.json | 367 ++++++++++++++++++ 4 files changed, 404 insertions(+), 4 deletions(-) create mode 100644 keyboards/aleblazer/zodiark/zodiark VIA layout.json diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index 8714be8d4d86..bb4d128a97f1 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -18,7 +18,36 @@ along with this program. If not, see . #define MASTER_LEFT +#undef DEBOUNCE +#define DEBOUNCE 6 //Default is 5 + +// Tapping settings +#define TAP_CODE_DELAY 10 +#define TAPPING_TOGGLE 2 //Tap TT twice to toggle layer +#define TAPPING_TERM 160 //Tapping duration in ms + +// Disabled to save space +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define NO_ACTION_ONESHOT //Save 244 bytes (-244). +#define NO_RESET //Save 40 bytes (-40). +#define LAYER_STATE_8BIT //For less than 8 bits worth of layers. +#undef LOCKING_SUPPORT_ENABLE //For MX lock keys only. +#undef LOCKING_RESYNC_ENABLE //For MX lock keys only. + + #ifdef OLED_ENABLE - #define OLED_DISPLAY_128X64 - #define OLED_TIMEOUT 400000 + #define OLED_DISPLAY_128X64 + #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. + #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). +#endif + +#ifdef RGBLIGHT_ENABLE + #undef RGBLIGHT_ANIMATIONS // Very memory intensive (+2604) + #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Preferred RGB effect (+262) + #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) +#endif + +#ifdef VIA_ENABLE + #define DYNAMIC_KEYMAP_LAYER_COUNT 5 #endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c index c08cfed5c173..990f357edf66 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c @@ -25,9 +25,9 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } else if (index == 1) { if (clockwise) { - tap_code(KC_PGDOWN); - } else { tap_code(KC_PGUP); + } else { + tap_code(KC_PGDOWN); } } return true; diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk index 1e5b99807cb7..31b6fc2af3dd 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk @@ -1 +1,5 @@ VIA_ENABLE = yes +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) +SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) +#MOUSEKEY_ENABLE = no # Mouse keys \ No newline at end of file diff --git a/keyboards/aleblazer/zodiark/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/zodiark VIA layout.json new file mode 100644 index 000000000000..6c6ec1511ed3 --- /dev/null +++ b/keyboards/aleblazer/zodiark/zodiark VIA layout.json @@ -0,0 +1,367 @@ +{ + "name": "Zodiark", + "vendorProductId": 4177656066, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "S(LWIN(SWIN(KC_LEFT)))", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_F13", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_LBRC", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_MUTE", + "KC_UP", + "KC_DOWN", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "KC_ENT", + "TT(3)", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "S(LWIN(SWIN(KC_RGHT)))", + "KC_BSPC", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_F14", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_RBRC", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "C(KC_W)", + "KC_RGHT", + "KC_LEFT", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "KC_SPC", + "TT(4)" + ], + [ + "KC_PSCR", + "KC_4", + "KC_1", + "KC_2", + "KC_3", + "KC_G", + "KC_T", + "KC_F12", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_G", + "KC_TAB", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_B", + "KC_LSFT", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_TRNS", + "KC_LCTL", + "KC_LCTL", + "KC_TRNS", + "KC_LALT", + "KC_LCTL", + "KC_SPC", + "KC_F22", + "KC_F4", + "KC_F11", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_F12", + "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_RALT", + "KC_TRNS", + "TO(0)", + "KC_RALT", + "MO(4)", + "KC_LCTL", + "MO(2)" + ], + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_BSLS", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_BSPC", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "KC_LBRC", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_TRNS", + "KC_LEFT", + "KC_DOWN", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "KC_SPC", + "TT(2)", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_DEL", + "KC_BSPC", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "KC_BSLS", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "KC_RBRC", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_TRNS", + "KC_DOWN", + "KC_UP", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "KC_ENT", + "TT(3)" + ], + [ + "KC_GRV", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_TRNS", + "KC_ESC", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_TRNS", + "KC_TRNS", + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_TRNS", + "KC_TRNS", + "KC_EQL", + "KC_MINS", + "KC_PLUS", + "KC_LCBR", + "KC_RCBR", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_F11", + "KC_F10", + "KC_F9", + "KC_F8", + "KC_F7", + "KC_F6", + "KC_TRNS", + "KC_F12", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_TRNS", + "KC_PIPE", + "KC_RPRN", + "KC_LPRN", + "KC_ASTR", + "KC_AMPR", + "KC_CIRC", + "KC_TRNS", + "KC_TRNS", + "KC_BSLS", + "KC_COLN", + "KC_DOT", + "KC_RBRC", + "KC_LBRC", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC" + ], + [ + "KC_TRNS", + "C(KC_MINS)", + "C(KC_PPLS)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(KC_U)", + "C(KC_DOWN)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(KC_LEFT)", + "C(KC_RGHT)", + "KC_TRNS", + "KC_TRNS", + "C(KC_Z)", + "C(KC_X)", + "C(KC_C)", + "C(KC_V)", + "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_F14", + "KC_F13", + "KC_TRNS", + "KC_DEL", + "KC_INS", + "KC_END", + "KC_UP", + "KC_HOME", + "KC_TRNS", + "KC_TRNS", + "KC_BSPC", + "KC_NLCK", + "KC_RGHT", + "KC_DOWN", + "KC_LEFT", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_CAPS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_SLCK", + "KC_TRNS", + "KC_WWW_REFRESH", + "KC_TRNS", + "KC_TRNS" + ] + ] +} \ No newline at end of file From 2c9408457b31fc45ecaa5e36d55e1527254b26b3 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Thu, 27 Jan 2022 01:20:15 -0500 Subject: [PATCH 86/94] Added pimoroni trackball support --- .../zodiark/keymaps/solartempest/config.h | 11 +- .../zodiark/keymaps/solartempest/encoder.c | 4 +- .../zodiark/keymaps/solartempest/keymap.c | 398 +++++++++++++++++- .../zodiark/keymaps/solartempest/rules.mk | 5 +- .../keymaps/solartempest/snakey_minimal.c | 295 +++++++++++++ 5 files changed, 706 insertions(+), 7 deletions(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/snakey_minimal.c diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index bb4d128a97f1..c53fc902cbc1 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -35,19 +35,28 @@ along with this program. If not, see . #undef LOCKING_SUPPORT_ENABLE //For MX lock keys only. #undef LOCKING_RESYNC_ENABLE //For MX lock keys only. - #ifdef OLED_ENABLE #define OLED_DISPLAY_128X64 #define OLED_TIMEOUT 80000 //80000 = 80secs, 120000 = 2mins in ms. #define SPLIT_OLED_ENABLE //Synx on/off OLED state between halves (+100). + #define OLED_LOGO //Enable to print snakey custom logo on slave side (+108). #endif #ifdef RGBLIGHT_ENABLE #undef RGBLIGHT_ANIMATIONS // Very memory intensive (+2604) #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Preferred RGB effect (+262) + //#define RGBLIGHT_EFFECT_SNAKE //For testing LED order #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) #endif +// Pimoroni trackball settings +#ifdef POINTING_DEVICE_ENABLE + //#define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms + #define POINTING_DEVICE_ROTATION_90 + #define PIMORONI_TRACKBALL_INVERT_Y + #define PIMORONI_TRACKBALL_INVERT_X +#endif + #ifdef VIA_ENABLE #define DYNAMIC_KEYMAP_LAYER_COUNT 5 #endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c index 990f357edf66..da7667dd3b58 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c @@ -19,9 +19,9 @@ along with this program. If not, see . bool encoder_update_user(uint8_t index, bool clockwise) { if (index == 0) { if (clockwise) { - tap_code(KC_VOLU); - } else { tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); } } else if (index == 1) { if (clockwise) { diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c index f9680ecd0273..6b52540f005c 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -13,12 +13,43 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H #ifdef OLED_ENABLE - #include "oled.c" + //#include "oled.c" + #include "snakey_minimal.c" #endif #include "encoder.c" -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +#ifdef POINTING_DEVICE_ENABLE + bool trackball_is_scrolling = true; //Default mode is scrolling + bool trackball_is_precision = false; //Default mode is less precise + bool was_scrolling = true; //Remember preferred state of trackball scrolling +#endif + +#ifdef VIA_ENABLE + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = USER00, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) + PM_SCROLL, //Toggle trackball scrolling mode + PM_PRECISION, //Toggle trackball precision mode + D2SKATE //Destiny 2 hunter sword skate + }; +#else + enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. + ATABF = SAFE_RANGE, //Alt tab forwards + ATABR, //Alt tab reverse + NMR, //Move window to monitor on right + NML, //Move window to monitor on left + SBS, //Shift backspace to delete whole word (Swap KC_BPSC with this) + PM_SCROLL, //Toggle trackball scrolling mode + PM_PRECISION, //Toggle trackball precision mode + D2SKATE //Destiny 2 hunter sword skate + }; +#endif +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* [0] = LAYOUT( KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, @@ -50,5 +81,366 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD ) - +*/ }; + +#ifdef POINTING_DEVICE_ENABLE + void run_trackball_cleanup(void) { //Set colour of trackball LED. Does not require RGBLIGHT_ENABLE if colour shorthands are not used. + #ifdef POINTING_DEVICE_ENABLE + if (trackball_is_scrolling) { + pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); + } else if (!trackball_is_precision) { + pimoroni_trackball_set_rgbw(0, 27, 199, 0x00); + } else { + pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. + } + #endif + } + + uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, pointing_device_buttons_t button) { + if (pressed) { + buttons |= 1 << (button); + #ifdef HAPTIC_ENABLE //Haptic feedback when trackball button is pressed + DRV_pulse(4); //sharp_click + #endif + } else { + buttons &= ~(1 << (button)); + } + return buttons; + } + + report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) { + if (trackball_is_scrolling) { + mouse_report.h = mouse_report.x; + #ifndef PIMORONI_TRACKBALL_INVERT_X + mouse_report.v = 0.3*mouse_report.y; //Multiplier to lower scrolling sensitivity + #else + mouse_report.v = 0.3*-mouse_report.y; //invert vertical scroll direction + #endif + mouse_report.x = mouse_report.y = 0; + } + return mouse_report; + } + + #if !defined(MOUSEKEY_ENABLE) //Allows for button clicks on keymap even though mousekeys is not defined. + static bool mouse_button_one, trackball_button_one; + #endif + + void trackball_register_button(bool pressed, enum mouse_buttons button) { + report_mouse_t currentReport = pointing_device_get_report(); + if (pressed) { + currentReport.buttons |= button; + } else { + currentReport.buttons &= ~button; + } + pointing_device_set_report(currentReport); + } +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #if defined(KEYBOARD_PET) || defined(OLED_LOGO) + if (record->event.pressed) { //OLED timeout code + oled_timer = timer_read32(); + } + #endif + + switch (keycode) { //For keycode overrides + #ifdef SUPER_ALT_TAB_ENABLE + case ATABF: //Alt tab forwards + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_TAB); + } else { + unregister_code(KC_TAB); + } + return true; + case ATABR: //Alt tab reverse + if (record->event.pressed) { + if (!is_alt_tab_active) { + is_alt_tab_active = true; + register_code(KC_LALT); + } + alt_tab_timer = timer_read(); + register_code(KC_LSHIFT); + register_code(KC_TAB); + } else { + unregister_code(KC_LSHIFT); + unregister_code(KC_TAB); + } + return true; + #endif + +/* case NMR: //Move window to next monitor on right + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_RIGHT); + unregister_code(KC_RIGHT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + case NML: //Move window to next monitor on left + if (record->event.pressed) { + register_code(KC_LSFT); + register_code(KC_LWIN); + register_code(KC_LEFT); + unregister_code(KC_LEFT); + unregister_code(KC_LWIN); + unregister_code(KC_LSFT); + } + return true; + + case KC_RSFT: //Shift Backspace to Delete Whole Word. Inspired by Hellsingcoder. + rshift_held = record->event.pressed; + held_shift = keycode; + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS + if (record->event.pressed) { + isBarking = true; + } else { + isBarking = false; + } + #endif + return true; + case KC_LSFT: + lshift_held = record->event.pressed; + held_shift = keycode; + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS + if (record->event.pressed) { + isBarking = true; + } else { + isBarking = false; + } + #endif + return true; + case SBS: + if (record->event.pressed) { //When left shift is held and backspace pressed, one whole word will be deleted (left). + if (lshift_held) { + unregister_code(held_shift); + register_code(KC_LCTL); + register_code(KC_BSPC); + } else if (rshift_held) { //When left shift is held and backspace pressed, one whole word will be deleted (right). + unregister_code(held_shift); + register_code(KC_LCTL); + register_code(KC_DEL); + } else { + register_code(KC_BSPC); + } + } else { + unregister_code(KC_BSPC); + unregister_code(KC_DEL); + unregister_code(KC_LCTL); + if (lshift_held || rshift_held) { + register_code(held_shift); + } + } + return false; + #ifdef D2SKATE_MACRO_ENABLE + case D2SKATE: + if (record->event.pressed) { + register_code(KC_0); + wait_ms(34); + register_code(KC_SPC); + unregister_code(KC_0); + register_code(KC_X); + wait_ms(18); + unregister_code(KC_SPC); + unregister_code(KC_X); + rgblight_sethsv_noeeprom(180,255,80); + D2SKATE_skated = true; + } + return false; + case KC_1: + case KC_2: + case KC_3: + if (record->event.pressed) { + if(D2SKATE_skated){ //Start the cooldown timer + D2SKATE_TIMER = timer_read(); + D2SKATE_skated = false; + D2SKATE_reset = false; + } + } + return true; + #endif +*/ + #ifdef POINTING_DEVICE_ENABLE //Allow modes when trackball is enabled. + case PM_SCROLL: + if (record->event.pressed) { + if (trackball_is_scrolling || was_scrolling){ //Enable toggling for trackball scrolling + trackball_is_scrolling=false; + was_scrolling=false; //Tracks status of scrolling setting. Works with holding of layer key for mouse mode. + } else{ + trackball_is_scrolling=true; + was_scrolling=true; + } + run_trackball_cleanup(); + break; + } + case PM_PRECISION: + if (record->event.pressed) { + if (trackball_is_precision){ //Enable toggling for trackball precision + pimoroni_trackball_set_precision(1.75); + trackball_is_precision=false; + } else{ + pimoroni_trackball_set_precision(0.8); + trackball_is_precision=true; + } + run_trackball_cleanup(); + break; + } + #ifndef MOUSEKEY_ENABLE //Allow for using mouse buttons in the keymap when mouse keys is not enabled. + case KC_MS_BTN1: + mouse_button_one = record->event.pressed; + trackball_register_button(mouse_button_one | trackball_button_one, MOUSE_BTN1); + break; + case KC_MS_BTN2: + trackball_register_button(record->event.pressed, MOUSE_BTN2); + break; + case KC_MS_BTN3: + trackball_register_button(record->event.pressed, MOUSE_BTN3); + break; + #endif + #endif + + #ifdef KEYBOARD_PET // KEYBOARD PET STATUS + case KC_LCTL: + case KC_RCTL: + #ifndef SNEAK_DISABLE + if (record->event.pressed) { //Pet sneaks when control held. + isSneaking = true; + } else { + isSneaking = false; + } + #endif + #ifdef HAPTIC_ENABLE //Set different patterns for keys on certain layers. In this case it is for gaming feedback. + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(51); //buzz_20 + } + #endif + return true; + case KC_SPC: + if (record->event.pressed) { //Pet jumps when enter is pressed. + isJumping = true; + showedJump = false; + } else { + isJumping = false; + } + return true; + #endif + + #ifdef HAPTIC_ENABLE //Set different patterns for keys on certain layers. In this case it is for gaming feedback. + case KC_G: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(50); //buzz_40 + } + case KC_R: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(52); //pulsing_strong + } + case KC_F: + if (record->event.pressed && (get_highest_layer(layer_state)==1)) { + DRV_pulse(49); //buzz_60 + } + #endif + } + return true; +} + + +#ifdef RGBLIGHT_ENABLE + layer_state_t layer_state_set_user(layer_state_t state) //Use for layer lighting. This method uses less space than RGBLIGHT_LAYER_SEGMENTS. + { + switch (get_highest_layer(state)) { // Change all other LEDs based on layer state as well + case 0: + //rgblight_sethsv_noeeprom(50,255,80); //green-blue gradient + //rgblight_sethsv_noeeprom(115,170,80); //pale blue gradient + rgblight_sethsv_noeeprom(0,220,60); //yellow gradient + #ifdef POINTING_DEVICE_ENABLE + if (was_scrolling==true){ //Check if was scrolling when layer was left + trackball_is_scrolling=true; + run_trackball_cleanup(); + } else{ + trackball_is_scrolling=false; + run_trackball_cleanup(); + } + #endif + break; + case 1: + rgblight_sethsv_noeeprom(252,255,80); + #ifdef HAPTIC_ENABLE //Set different patterns for haptic feedback layer indication + DRV_pulse(69); //transition_hum_10 + #endif + break; + case 2: + rgblight_sethsv_noeeprom(80,255,80); + #ifdef HAPTIC_ENABLE + DRV_pulse(37); //lg_dblclick_str + #endif + break; + case 3: + //rgblight_sethsv_noeeprom(118,255,80); //blue-purple gradient + rgblight_sethsv_noeeprom(160,255,80); //blue-magenta gradient + #ifdef HAPTIC_ENABLE + DRV_pulse(31); //sh_dblclick_med + #endif + break; + case 4: + rgblight_sethsv_noeeprom(218,255,80); + #ifdef HAPTIC_ENABLE + DRV_pulse(7); //soft_bump + #endif + #ifdef POINTING_DEVICE_ENABLE //Set trackball mouse mode when layer 4 is activated + if (was_scrolling==true){ //Check if in scrolling mode when layer was activated + trackball_is_scrolling=false; + run_trackball_cleanup(); + } + #endif + } + return state; + } + + bool led_update_user(led_t led_state) //Lock key status indicators + { + if(led_state.caps_lock){ + rgblight_sethsv_range(43,100,170, 4,8); //White-left caps lock indication + } + if(!(led_state.num_lock)){ + rgblight_sethsv_range(43,100,170, 0,2); //White-right num lock indication. Since this indicator is inverted, it must be on the master side of the keyboard to shut off properly when the computer is sleeping. + rgblight_sethsv_range(43,100,170, 10,12); + } + if(led_state.scroll_lock){ + rgblight_sethsv_range(43,100,170, 2,4); //White-middle scroll lock indication + rgblight_sethsv_range(43,100,170, 8,10); + } + return true; + } +#endif + + +void keyboard_post_init_user(void) +{ + #ifdef RGBLIGHT_ENABLE + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + #endif + layer_move(0); //Start on layer0 by default to set LED colours. Can remove to save a very small amount of space. + #ifdef POINTING_DEVICE_ENABLE + pimoroni_trackball_set_precision(1.75); //Start trackball with lower precision mode + run_trackball_cleanup(); + #endif +} + +#ifdef POINTING_DEVICE_ENABLE + void suspend_power_down_user(void) { //Code does not work, need to confirm why + pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is sleeping + } +#endif + +#ifdef POINTING_DEVICE_ENABLE + void suspend_wakeup_init_user(void) { //turn on Pimoroni LED when awoken + run_trackball_cleanup(); + } +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk index 31b6fc2af3dd..f7bdbb17cb52 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk @@ -2,4 +2,7 @@ VIA_ENABLE = yes BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) -#MOUSEKEY_ENABLE = no # Mouse keys \ No newline at end of file +#MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. + +POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) +POINTING_DEVICE_DRIVER = pimoroni_trackball \ No newline at end of file diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/snakey_minimal.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/snakey_minimal.c new file mode 100644 index 000000000000..abdf1609bbc9 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/snakey_minimal.c @@ -0,0 +1,295 @@ +/* Copyright + * 2021 solartempest + * 2021 Luna code adapted from HellSingCoder and Jackasaur + * 2021 QMK + * + * 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 o + * 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 . + */ + +//SSD1306 OLED update loop +#ifdef OLED_ENABLE + uint32_t oled_timer = 0; //OLED timeout + led_t led_usb_state; + + #define KEYBOARD_PET + // KEYBOARD PET START + + // advanced settings + #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. + #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + + // timers + uint32_t anim_timer = 0; + uint32_t text_timer = 0; + + // current frame + uint8_t current_frame = 0; + + // status variables + #ifndef SNEAK_DISABLE + bool isSneaking = false; + #endif + bool isJumping = false; + bool showedJump = true; + bool isBarking = false; + + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) + static void render_logo(int LUNA_X, int LUNA_Y) { + /*static const char PROGMEM luna_logo[] = { + 0x00, 0x00, 0x04, 0xf6, 0xb8, 0xf8, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xc0, 0xe1, 0xf3, 0xfb, 0x7f, 0x1f, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xf3, 0xff, 0x7f, 0x1f, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x30, + 0x1e, 0x3f, 0x3f, 0x7f, 0xf9, 0xf0, 0xf0, 0x70, 0x78, 0x3c, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x3f, 0x7f, 0x7f, 0xfb, 0xf1, 0xf0, 0x78, 0x3c, 0x1e, 0x0f, 0x03, 0x00, 0x00, + };*/ + static const char PROGMEM luna_logo[] = { // 'snakey-logo-64x44', 64x44px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0c, 0xcf, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x60, 0x60, + 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x7f, 0x7f, 0xf3, 0xf3, 0xff, 0xff, 0xfe, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xf8, 0xfe, 0xfe, 0xff, + 0xff, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xfe, + 0xf8, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xc1, 0xe1, 0xf7, 0xff, + 0xff, 0x7f, 0x3f, 0x07, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x3f, + 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf8, 0xfc, 0x3e, 0x0f, 0x07, 0x01, + 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, + 0xf0, 0xf0, 0xf8, 0xf8, 0xfe, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0x7e, 0x3f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, + 0x0f, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + #endif + + // logic + static void render_luna(int LUNA_X, int LUNA_Y) { + + // Sit + static const char PROGMEM sit[2][ANIM_SIZE] = { + // 'sit1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'sit2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x01, 0x01, 0x02, 0x06, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + //Walk and run animations have been removed to save space. + + // Bark + static const char PROGMEM bark[2][ANIM_SIZE] = { + // 'bark1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe7, 0xe7, 0xef, 0xef, 0xcf, 0xcb, 0x83, 0x83, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x1c, 0x38, 0x78, 0xf1, 0xe3, 0xe3, 0xe7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'bark2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x9f, + 0x0f, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e, 0xe6, 0x83, 0x03, 0x0f, 0x43, 0x43, 0x90, 0x88, 0x08, + 0x00, 0x00, 0x03, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xfb, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // Sneak + #ifndef SNEAK_DISABLE + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + #endif + + // animation + void animate_luna(void) { + // jump + if (isJumping || !showedJump) { + // clear + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + oled_set_cursor(LUNA_X,LUNA_Y -1); + showedJump = true; + } else { + // clear + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + oled_set_cursor(LUNA_X,LUNA_Y); + } + + // switch frame + current_frame = (current_frame + 1) % 2; + + // current status + if(isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + #ifndef SNEAK_DISABLE + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #endif + } else { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + } + } + + // animation timer + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } + } + // KEYBOARD PET END + + + #if !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) + static void print_logo_narrow(void) { + //oled_set_cursor(0,1); + //oled_write("----------", false); + + oled_set_cursor(0,3); + oled_write(" SOLAR", false); + oled_set_cursor(0,4); + oled_write(" TEMPEST", false); + + //oled_set_cursor(0,15); //Last line on the display + //oled_write("----------", false); + + #ifdef OLED_LOGO + render_logo(0,7); //Not defining this in config.h will save space (+112). + #endif + } + #endif + + static void print_status_narrow(void) { + // Print current layer + oled_set_cursor(0,1); + oled_write("---LAYER--", false); + + oled_set_cursor(0,2); + switch (get_highest_layer(layer_state)) { + case 0: + case 2: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 4: + oled_write("Raise", false); + break; + case 3: + oled_write("Lower", false); + break; + } + + // lock status + oled_set_cursor(0,5); + oled_write("---LOCK---", false); + oled_set_cursor(0,6); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,7); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,8); + oled_write("Scrl", led_usb_state.scroll_lock); + + /* KEYBOARD PET RENDER START */ + render_luna(0,11); + /* KEYBOARD PET RENDER END */ + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + else{ + return OLED_ROTATION_270; + } + } + + bool oled_task_user(void) { + led_usb_state = host_keyboard_led_state(); + + + if (is_keyboard_master()) { + if (timer_elapsed32(oled_timer) > 30000) {//OLED timeout 30000ms = 30s + oled_off(); + return false; + } else { + oled_on(); + } + #ifndef OLED_NO_MASTER + print_status_narrow(); + #endif + } else { + #ifdef OLED_NO_SLAVE //do not render slave + #else + #if !defined(OLED_NO_MASTER) //render as normal + print_logo_narrow(); + #else //render status on slave + print_status_narrow(); + #endif + #endif + } + return false; + } +#endif From 429f8782575d7393cbc538dbb1a3a4c57e22b784 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 28 Jan 2022 00:35:06 -0500 Subject: [PATCH 87/94] Added VIA remapping of rotary encoders and custom functions. --- .../aleblazer_zodiark_solartempest.hex | 1690 +++++++++++++++++ .../zodiark/keymaps/solartempest/config.h | 11 + .../zodiark/keymaps/solartempest/encoder.c | 72 +- .../zodiark/keymaps/solartempest/keymap.c | 111 +- .../zodiark/keymaps/solartempest/rules.mk | 2 +- .../keymaps/solartempest/snake_photo.c | 325 ++++ .../solartempest/zodiark VIA keymap.json | 82 + .../solartempest}/zodiark VIA layout.json | 112 +- 8 files changed, 2311 insertions(+), 94 deletions(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/snake_photo.c create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json rename keyboards/aleblazer/zodiark/{ => keymaps/solartempest}/zodiark VIA layout.json (83%) diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex new file mode 100644 index 000000000000..cae6fe51aab8 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex @@ -0,0 +1,1690 @@ +:100000000C941E060C9465060C9465060C9465060B +:100010000C9498300C9465060C9465060C94650657 +:100020000C9465060C9465060C9469220C942522A8 +:100030000C9444270C9465060C9465060C94650694 +:100040000C9465060C9465060C9465060C94650684 +:100050000C9465060C9442230C9465060C9465067A +:100060000C9465060C9465060C9465060C94650664 +:100070000C9465060C9465060C9465060C94650654 +:100080000C9465060C9465060C9465060C94650644 +:100090000C9465060C9465060C9465060C94650634 +:1000A0000C9465060C9465060C946506050109021E +:1000B000A10185020901A1000509190129081500FE +:1000C0002501950875018102050109300931158165 +:1000D000257F95027508810609381581257F9501D0 +:1000E00075088106050C0A38021581257F95017572 +:1000F000088106C0C005010980A101850319012AF4 +:10010000B700150126B700950175108100C0050CD8 +:100110000901A101850419012AA002150126A002E6 +:10012000950175108100C00660FF0961A101096297 +:10013000150026FF00952075088102096315002629 +:10014000FF00952075089102C005010906A101056F +:100150000719E029E7150025019508750181029529 +:1001600001750881010507190029FF150026FF0008 +:100170009506750881000508190129059505750181 +:100180009102950175039101C0000000000000007C +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000007E0F00C2 +:1001B000D4FFFFFFC700000078000000000000002F +:1001C000002A2B28000000000000000000000000B2 +:1001D0000000000029000000002C1E3420212224F1 +:1001E000342627252E362D3738271E1F202122237F +:1001F0002425263333362E37381F04050607080911 +:100200000A0B0C0D0E0F10111213141516171819D6 +:100210001A1B1C1D2F3130232D3504050607080934 +:100220000A0B0C0D0E0F10111213141516171819B6 +:100230001A1B1C1D2F3130354C00DA1281FFD9F109 +:10024000DB20A4A62EAF00A0C000A1C800AED580C0 +:10025000A83FD300408D14200000000000000000E3 +:10026000000000000000000000000000000000008E +:10027000000000000080C0606060606060606060DE +:10028000C0C080000000000000000000000000006E +:10029000000000000000000000000000000000005E +:1002A00000000000F8FC060652DACA5206EC1810EC +:1002B000101010909E436020231210121013312052 +:1002C00060C39F1E101C121212121C10F0E080005E +:1002D000000000000000000000000000000000001E +:1002E00000000000FFFF0000000000F0F707E0C082 +:1002F00000F8CF0100000000000000010303060E1B +:10030000080001C6FC00387000000000FFFFFF007D +:1003100000000000000000000000000000000000DD +:1003200000000000FFFF000000000001FDFC0001D4 +:100330001831630F1C38307366646460606070301D +:10034000381C0F0701000000A0E04000FFFFFF0085 +:10035000000000000000000000000000000000009D +:100360000000000001070C0C1C1C1C1C1D1D1C1C8B +:100370001C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1CBD +:100380001C1C1C1C1C1C1C1C1C1C1C1C0F0F0300FC +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000000004D +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000008080D +:1003E0000CCFF0F0F0F0F06060E0C0C080000000E2 +:1003F000000000000000000000808080C0C0C0C07D +:10040000C0C0C0C08080800000000000000000006C +:1004100000000000000000000000000000000000DC +:100420000E7F7FF3F3FFFFFEFEFFFFFFFFFE3800AE +:10043000000080E0F8F8FEFEFFFF7F3F3F1F1F1F18 +:100440001F1F1F3F7F7FFFFFFEF8F8E080000000C6 +:10045000000000000000000000000000000000009C +:1004600000000080C1C1E1F7FFFF7F3F07030000EC +:1004700000C0FFFFFFFFFFFF0301000000000000BE +:10048000000000000000E0F1FFFFFFFF3F00000060 +:1004900000000000000080F0C0000000C0F0F8FC88 +:1004A000FCFE7F3F1F0F070703010000000080C014 +:1004B000F8FFFFFFFFFF0300000000000000000046 +:1004C000C0E0F0F8FEFFFFFF3F0703000000000060 +:1004D00000C0E0F8FC3E0F070100000F3F7FFFFF68 +:1004E000FFFFFCF0E0C0C0E0E0F0F0F8F8FEFFFF36 +:1004F0007F3F0F0F01000000000000000000000718 +:100500001F7FFFFFFFFFFDF0E0E0F0F0F8F8FC7E5A +:100510003F0F070300000000000000000000000182 +:100520000303070F0F0F0F0F0F0703030301000053 +:1005300000000000000000000000000000000000BB +:100540000000000103030707070F07030301000072 +:100550000000000000000000000001010101010195 +:10056000010101020202020202020202030303036A +:10057000030303030404040404040405050505053A +:1005800006060606060707070707080808080909F8 +:1005900009090A0A0A0B0B0B0C0C0C0D0D0D0E0EA3 +:1005A0000E0F0F0F10101111111212131314141536 +:1005B0001516161717181819191A1A1B1B1C1D1DAA +:1005C0001E1E1F2020212222232424252626272800 +:1005D00029292A2B2C2D2D2E2F3031323233343530 +:1005E000363738393A3B3C3D3E3F40414243444533 +:1005F000464748494A4C4D4E4F5051535455565812 +:10060000595A5B5D5E5F616264656668696B6C6DBB +:100610006F7072737577787A7B7D7E808283858731 +:10062000888A8C8E8F91939596989A9C9EA0A2A36F +:10063000A5A7A9ABADAFB1B3B5B7BABCBEC0C2C474 +:10064000C6C9CBCDCFD1D4D6D8DBDDDFE2E4E7E934 +:10065000EBEEF0F3F5F8FAFDFFFFAA7F554007082F +:100660007F0807003E5B4F5B3E003E6B4F6B3E00DA +:100670001C3E7C3E1C00183C7E3C18001C577D57DD +:100680001C001C5E7F5E1C0000183C180000FFE789 +:10069000C3E7FF00001824180000FFE7DBE7FF00B6 +:1006A00030483A060E00262979292600407F0505A4 +:1006B0000700407F05253F005A3CE73C5A007F3E3B +:1006C0001C1C0800081C1C3E7F0014227F22140002 +:1006D0005F5F005F5F0006097F017F00006689950C +:1006E0006A0060606060600094A2FFA29400080449 +:1006F0007E04080010207E20100008082A1C080034 +:10070000081C2A0808001E10101010000C1E0C1ED9 +:100710000C0030383E383000060E3E0E0600000059 +:100720000000000000005F0000000007000700005C +:10073000147F147F1400242A7F2A120023130864D4 +:100740006200364956205000000807030000001CD4 +:10075000224100000041221C00002A1C7F1C2A00AC +:1007600008083E08080000807030000008080808EB +:1007700008000000606000002010080402003E51E4 +:1007800049453E0000427F40000072494949460009 +:100790002141494D33001814127F1000274545456B +:1007A00039003C4A494931004121110907003649C5 +:1007B00049493600464949291E000000140000003E +:1007C00000403400000000081422410014141414E6 +:1007D00014000041221408000201590906003E419C +:1007E0005D594E007C1211127C007F494949360048 +:1007F0003E41414122007F4141413E007F494949FC +:1008000041007F09090901003E41415173007F0801 +:1008100008087F0000417F4100002040413F010067 +:100820007F08142241007F40404040007F021C02AC +:100830007F007F0408107F003E4141413E007F0958 +:10084000090906003E4151215E007F091929460031 +:1008500026494949320003017F0103003F404040DF +:100860003F001F2040201F003F4038403F006314DE +:10087000081463000304780403006159494D4300E0 +:10088000007F414141000204081020000041414125 +:100890007F00040201020400404040404000000389 +:1008A000070800002054547840007F284444380052 +:1008B000384444442800384444287F003854545471 +:1008C000180000087E09020018A4A49C78007F0884 +:1008D0000404780000447D4000002040403D0000BA +:1008E0007F102844000000417F4000007C04780411 +:1008F00078007C0804047800384444443800FC182C +:100900002424180018242418FC007C08040408007F +:1009100048545454240004043F4424003C404020E4 +:100920007C001C2040201C003C4030403C004428FF +:10093000102844004C9090907C004464544C440037 +:100940000008364100000000770000000041360832 +:1009500000000201020402003C2623263C000000A5 +:1009600000000000404040F0F8F8FF38FFF8F83F82 +:10097000F8F8FF38FFF8F8F04040400000000000B1 +:100980000080C0C0C0800000C0C08000000080C0E7 +:10099000C000C0C0000080C0C00000000000C0C097 +:1009A000C0C0C000C0C00000000000000000000087 +:1009B0000000000000000000000000000000000037 +:1009C0000000000000000000000000000000000027 +:1009D00000000000000000000000000000C0F0F86F +:1009E000FC3E1E06010000007F4141417F007F4127 +:1009F00041417F000080C0E07E5B4F5BFEC0000095 +:100A0000C000DCD7DEDEDED7DC00C0000000000066 +:100A100000000000000000000000000000000000D6 +:100A200000000000494949FFFFFFFFE0DFBFBF00B2 +:100A3000BFBFDFE0FFFFFFFF4949490000000000A2 +:100A40001F3F6060E0BF1F007F7F071E381E077FCB +:100A50007F007F7F0E1F3B716000000000007F7FE2 +:100A60000C0C0C007E7E007F7E0303007F7E030360 +:100A70007E7E03037F7E000F3E703C063C703E0F7F +:100A800000327B49493F7E007F7E0303001E3F69A1 +:100A9000696F2600000000000000000000030F1F27 +:100AA0003F3C7870600000007F4141417F007F4102 +:100AB00041417F00307B7F7830202030787F3B00C1 +:100AC00003000F7F0F0F0F7F0F00030000000000D7 +:100AD0000000000000000000000000000000000016 +:100AE00000000000010101070F0F7F0F7F0F0F7E35 +:100AF0000F0F7F0F7F0F0F070101010000000000A3 +:100B000000000000000101000000000000000000E3 +:100B100000000000000000000000000000000000D5 +:100B200000000000000000000000000000000000C5 +:100B300000000000000000000000000000000000B5 +:100B400000000000000000000000000000000000A5 +:100B50000000000000000000000000000000000095 +:100B60000000000000000000000000000000000085 +:100B70000000000000000000000000000000000075 +:100B80000000000000000000000000000000000065 +:100B9000000000000000000000000000000000AFA6 +:100BA00000AE09025B00030100A0FA090400000185 +:100BB0000301010009211101000122400007058104 +:100BC0000308000A090401000203000000092111C2 +:100BD000010001222200070582032000010705030E +:100BE0000320000109040200010300000009211193 +:100BF000010001227B000705840320000A12010086 +:100C0000020000000801F902F901000102000110D0 +:100C1000035A006F0064006900610072006B0000FD +:100C200000140341006C00650062006C0061007AF2 +:100C300000650072000000040309040011241FBEB7 +:100C4000CFEFDAE0DEBFCDBF04B603FE27C0809150 +:100C50007C0890917D08A0917E08B0917F08873034 +:100C6000904BA740B04BD1F410927C0810927D08B5 +:100C700010927E0810927F0814BE84B7877F84BFCD +:100C80000FB6F894A8958091600088618093600009 +:100C9000109260000FBEE0E0F8E3099512E0A0E0DA +:100CA000B1E0E8E4F8E602C005900D92AC33B1077C +:100CB000D9F728E0ACE3B2E001C01D92AC37B2072F +:100CC000E1F70E946B270C94EB330C940000CF9358 +:100CD000DF9340917A0850917B084A5754409A011B +:100CE00020583E4F21303440C0F020E034E0241B37 +:100CF000350B6091780470917904FC01CA01240FCE +:100D0000351FC1E0D0E08217930750F0709379044B +:100D100060937804DF91CF91089520E831E0E9CF26 +:100D20004491DC01A658BB4F5C91451781F04C9370 +:100D3000AC01A6E056954795AA95E1F7DE0102C001 +:100D4000AA0FBB1F4A95E2F7AD016A2B752B0196DE +:100D50003196D9CFE8EDF0E080818E7F80831092CC +:100D6000E2001092DA001092E100A0EEB0E08C9167 +:100D700081608C9380818F77808319BCA7EDB0E070 +:100D80008C918E7F8C9380818F7E808310928F03D5 +:100D900008952091E4003091E50095E6A9012091A5 +:100DA000EC00822F817020FF06C08091E80080FF58 +:100DB00006C080E008952091E80022FD1AC08091CD +:100DC0009C03882389F0853089F08091EB0085FDB4 +:100DD0000FC02091E4003091E50042175307F9F26B +:100DE0009150E1F684E0089582E0089583E008954B +:100DF00081E00895EF92FF920F931F93CF937C01B0 +:100E00008B010E94C906C82F811117C08091E8008C +:100E100085FD0BC08091E8008E778093E8000E94EA +:100E2000C906882399F3C82F08C0F70181917F0173 +:100E30008093F1000150110949F78C2FCF911F9138 +:100E40000F91FF90EF90089580919E0387FF13C04C +:100E50008091E80082FF06C08091E8008B77809344 +:100E6000E80004C080919C038111F2CF0895809125 +:100E70009C038823D9F38091E80080FFF8CF80910C +:100E8000E8008E77ECCF982F9093E900242F762FEF +:100E900050E0891731F07091EC002091ED005091F5 +:100EA000F00021FD07C09F5F973071F78093E90044 +:100EB00081E008953091EB003E7F3093EB0030915C +:100EC000ED003D7F3093ED003091EB0031603093C9 +:100ED000EB007093EC002093ED005093F000209114 +:100EE000EE0027FDE0CF80E00895CF92DF92EF92F1 +:100EF000FF920F931F93CF93DF93C8EDD0E08881CB +:100F00008F7E8883E7EDF0E080818160808384E0DC +:100F100082BF81E080938F0388818E7F888302EE79 +:100F200010E0F80110821092DA0081EEC82ED12C68 +:100F3000F601108288818F77888388818068888312 +:100F400088818F7D888319BC10929C0310929D0329 +:100F500010929B0310929A0390EEE92EF12CF70168 +:100F600080818B7F808388818160888342E060E01C +:100F700080E00E944307F60180818E7F8083F80124 +:100F8000808181608083808188608083F701808197 +:100F90008E7F8083888180618883DF91CF911F91CC +:100FA0000F91FF90EF90DF90CF900895FC0180911A +:100FB000A4039091A50386179707A0F0611571050A +:100FC00029F49091E8009E779093E80090E06115F5 +:100FD000710551F4911108C08091E80082FF34C07E +:100FE00080E00895BC01F2CF80919C038823C1F179 +:100FF0008530C1F18091E80083FD30C08091E80028 +:1010000082FDEACF8091E80080FFE1CF8091F3007C +:101010002091F200382F6115710519F02830310543 +:1010200058F091E02830310509F090E02091E80077 +:101030002E772093E800CBCF81918093F10061500F +:1010400071092F5F3F4FE7CF80919C03882341F0C8 +:10105000853041F08091E80083FFBECF81E00895A4 +:1010600082E0089583E008950895809191030895A2 +:101070002FB7F894609188037091890380918A0357 +:1010800090918B032FBF08952091850330918603A3 +:101090002817390771F09093860380938503E091B8 +:1010A0008303F0918403309721F00084F185E02DD3 +:1010B00009940895209181033091820328173907FC +:1010C00071F09093820380938103E0918303F09108 +:1010D0008403309721F00680F781E02D099408956C +:1010E0002091740336E0839FC0011124629F800D1C +:1010F000911D1124811524E0920714F090E080E006 +:1011000086589B4F90937B0880937A080895FC0142 +:10111000680F791F8FEF91E32191822728E030E05B +:1011200087FF09C0880F892721503109C9F7E617C1 +:10113000F70791F70895880FF7CFFA01811101C0E1 +:10114000FB01099480917304982F9E7F61F4817054 +:10115000826080937304809176048B3A18F08AEA57 +:101160008093760408958831B0F381708661F1CF61 +:10117000AF92BF92DF92EF92FF920F931F93CF93A4 +:10118000DF93082F162FE901E42FF0E0E75AFA4F1A +:10119000611110C0E4915E2F4E2F4983E8835A837A +:1011A000DF91CF911F910F91FF90EF90DF90BF9053 +:1011B000AF900895E62EF12C4491D42EE42FF0E068 +:1011C00026E0829FC00111242FEF30E0B9010E9478 +:1011D0001232802F90E0880F991F55E5569FD0015D +:1011E000579FB00D11248A1B9B0B982F990F890FC5 +:1011F0005901AE18BF08AE9ED001AF9EB00DBE9E85 +:10120000B00D11245B2F189F80011124012F11278D +:101210005901A01AB10AAE9E8001AF9E100DBE9E6C +:10122000100D11245901A81AB108AE9CC001AF9C41 +:10123000900DBE9C900D1124892F9927281B390BE6 +:101240002E9FC0012F9F900D3E9F900D1124E92FDE +:1012500062307105A1F050F46115710509F49DCF5C +:101260006130710581F0EB2F512F97CF64307105FC +:1012700069F080F06630710509F48FCFF4CFE42F68 +:101280004B2F592F8ACFE42F412F87CFEB2F542F8D +:10129000492F83CF4B2F5D2DE12F7FCF80E0089525 +:1012A00078940895F894E82FE295EF70F0E031A17A +:1012B000282F2F7081E090E001C0880F2A95EAF76F +:1012C000982F9095932391A392A1892B82A30C949C +:1012D00050099091E60292FF06C0282F287128300D +:1012E000F9F4877F846093FF06C0282F2871283186 +:1012F000F1F4877E84612091E70220FF06C0382F39 +:1013000038713830D9F4877F816021FF06C0282FDB +:1013100028712831D1F4877E816194FD877E0895FC +:10132000282F24712430F9F68B7F8860DCCF282F9A +:101330002471243101F78B7E8861DDCF382F317124 +:10134000313019F78E7F8860E0CF282F217121314D +:1013500021F78E7E8861E1CFCF93DF93EC01823855 +:10136000910581F1B0F58133910509F491C020F523 +:101370008932910509F485C08A9709F490C0C11596 +:1013800021E5D20708F0AAC0C11530E5D30708F05F +:10139000F2C0CF3BD10508F089C0C83AD10508F0AA +:1013A000DFC0C53AD10508F0D3C0C430D105F8F488 +:1013B000C130D105E1F040C08533910509F45AC030 +:1013C000C997E9F68091E602837089F0C0EED0E01B +:1013D0000EC0833E910599F170F4803E910501F1B4 +:1013E000823E910561F68091E60282FD21C0CE0128 +:1013F000DF91CF910895863E910561F1873E910579 +:1014000071F1843E910509F0BACF8091E70281FF26 +:10141000EECF8091E602C7EED0E084FD0DC0E7CFAD +:101420008091E60280FDF7C09091E70290FFDFCF48 +:10143000C3EED0E084FFDBCFD0E0C0E0D8CF809116 +:10144000E60282FDEBC09091E70290FDBFCF84FFE2 +:10145000CECFF2CF8091E60283FDDDCFC8CF809161 +:10146000E60283FDDEC09091E70291FFF0CFC4EE6B +:10147000D0E0BDCF8091E60285FFB9CFC9E2D0E0D0 +:10148000B6CF8091E60285FFB2CFC5E3D0E0AFCF03 +:101490008091E60286FFABCFCAE2D0E0A8CF809170 +:1014A000E60286FFA4CFC1E3D0E0A1CFC11540E2A0 +:1014B000D40760F4C11581E0D80708F098CFCE01B9 +:1014C000815E9109079708F492CFB6CFC11590E4D9 +:1014D000D90708F4B1CFDF70D06A89CFC11524E5F0 +:1014E000D20778F4C11533E5D30708F072C0C115EF +:1014F00042E5D40708F05CC0DC2FCC27C16FD06A6E +:1015000076CFC1158AE5D80778F4C11599E5D907D2 +:1015100008F073C0C11528E5D20708F48DCFDC2F81 +:10152000CC27C06FD06A63CFCE0190568115904210 +:1015300008F082CF8D2F8F710E94690990E0982F5B +:10154000882788279F719C012C2BE901D0624FCFFF +:10155000C55AD0E0CD54DE4FC881D0E0D06447CF2B +:10156000C85AD0E0CC0FDD1FCA54DE4F0990D88195 +:10157000C02DD4643CCFCE0164E0969587956A95E2 +:10158000E1F783702C2F26952695237040E2249F47 +:1015900090011124382B8C2F8370C1E0D0E002C061 +:1015A000CC0FDD1F8A95E2F7C22BD32BDC681FCF4F +:1015B000CE018370992721E030E002C0220F331F53 +:1015C0008A95E2F7C695C69580E2C89FE00111248E +:1015D000EBCFCE018370992721E030E002C0220FCB +:1015E000331F8A95E2F7C695C69590E2C99FE00140 +:1015F0001124C22BD32BDA68FACE8C2F8F700E9465 +:10160000690934E0D695C7953A95E1F7CF709C2FDC +:10161000EC01D069ECCEC9E3D0E0E9CEC2EED0E077 +:10162000E6CEC6EED0E0E3CE0C9438088091A4025A +:101630009091A302892B9091A202892B80933E0264 +:10164000E0918303F0918403309731F00280F381BD +:10165000E02D8EE392E0099408958091A10290918B +:101660007002981301C008958F5F8770FACF990FA9 +:10167000990F990F890F982F977086958695869563 +:1016800023E0829FF0011124E45BFD4F50E040E035 +:1016900080E0219130E0092E02C0369527950A940A +:1016A000E2F721703327042E01C0220F0A94EAF7D3 +:1016B000822B4F5F5F4F4330510559F70895990FC3 +:1016C000990F990F890F982F977041E001C0440F2F +:1016D0009A95EAF786958695869593E0899FF0011D +:1016E0001124E45BFD4F30E020E070E05191DF0118 +:1016F0001197CB01022E02C0969587950A94E2F7C6 +:10170000817081958527842385278C932F5F3F4F98 +:101710002330310559F7089590E080E00E945A087F +:1017200090E080E00E9444081092A3021092A2026E +:101730000C94160B8093A5020C948C0B882341F01B +:1017400080959091A40289238093A4020C94160B97 +:101750000895882339F09091A402982B9093A402C5 +:101760000C94160B08958823B1F19CEF980F913AD1 +:1017700070F4E0E4F2E09191891303C0DF01119766 +:101780001C9242E0E634F407B1F70C94160B90E299 +:10179000980F983088F4877021E030E0A90102C0EA +:1017A000440F551F8A95E2F7CA0180959091A402D3 +:1017B00089238093A402E9CF9BE5980F933020F40E +:1017C00090E080E00C945A08885A873120F490E029 +:1017D00080E00C94440808950F931F93CF93C82F73 +:1017E000882309F469C08CEF8C0F813AB0F500E4CE +:1017F00012E086E492E0F8012191C21701F122E0A3 +:10180000E634F207C9F7EFEF80E0D8019D918D0132 +:10181000C91781F0EF3F19F4911101C0E82F8F5FD4 +:10182000863099F7EF3F31F00E2E000CFF0BE25C93 +:10183000FD4FC283CF911F910F910C94160BE0E4E2 +:10184000F2E02191C21303C0DF0111971C928E17A1 +:101850009F07B9F70E94160BD6CF80E28C0F883015 +:1018600068F4C77021E030E001C0220FCA95EAF7A2 +:101870008091A402822B8093A402DCCFEBE5EC0FD5 +:10188000E33050F4F0E0ED54FE4F808190E0CF91D2 +:101890001F910F910C945A08C85AC73168F4EC2F65 +:1018A000F0E0EE0FFF1FEA54FE4F80819181CF914F +:1018B0001F910F910C944408CF911F910F9108959F +:1018C000982F92959F7011F0892F94E0282F2695DC +:1018D000269511F09E5F822F869509F09F5F892FD4 +:1018E0000895CF93DF93CDB7DEB762970FB6F89424 +:1018F000DEBF0FBECDBF96E0E2E6F3E0DE01179655 +:1019000001900D929A95E1F796E0FE013796DE017F +:101910001D9601900D929A95E1F798858823E9F03C +:10192000962B9E8786E0FE013D96DE011196019082 +:101930000D928A95E1F786E0FE013196A2E6B3E0CA +:1019400001900D928A95E1F762960FB6F894DEBF8A +:101950000FBECDBFDF91CF91089560959623E1CF63 +:10196000CF92DF92EF92FF920F931F93CF93DF936B +:101970006C017B0164E670E088E70E94582EEC0160 +:1019800097FD12C010E000E0F601E00FF11F849116 +:1019900064E670E00E94D22EEC01892B29F40F5FDF +:1019A0001F4F0E151F0581F70E94EC2FCE01DF910E +:1019B000CF911F910F91FF90EF90DF90CF900895FE +:1019C00080917F0390918003911103C091E089275A +:1019D0000895882369F062E070E080EA9BE00E944D +:1019E000B00C892B19F080917F03089510927F032A +:1019F00080917F03EBCFCF93C0917F0380918003D1 +:101A00008823D1F00E9438086058774C8E4F9F4F42 +:101A100060937B0370937C0380937D0390937E039C +:101A2000C11108C062E070E08EE99BE00E94B00C3A +:101A3000892B29F0C0917F038C2FCF91089581E0ED +:101A400080937F03F7CF80938C0370938E03609312 +:101A50008D0380919C038430F9F48093E9008FEF2B +:101A60009091E800815095FD06C095ED9A95F1F7AB +:101A700000008111F5CF8091E80085FF0DC050E096 +:101A800040E063E070E08CE893E00E94FA06809109 +:101A9000E8008E778093E8000895BC0184E00C9400 +:101AA000230DBC0183E00C94230D9C0184E0809302 +:101AB000E9009FEF8091E800915085FD06C085ED1B +:101AC0008A95F1F700009111F5CF8091E80085FF2C +:101AD0000CC050E040E066E070E0C9010E94FA06E8 +:101AE0008091E8008E778093E8000895CF93DF938C +:101AF000EC0181E08093E9008FEF9091E800815044 +:101B000095FD06C095ED9A95F1F700008111F5CF8E +:101B10008091E80085FF14C050E040E068E070E08C +:101B2000CE010E94FA068091E8008E778093E8004B +:101B300088E0FE01A2E9B3E001900D928A95E1F7F9 +:101B4000DF91CF910895609161018091730480FFCE +:101B500020C08091600143E0849FC0011124895519 +:101B60009C4F259A25B12F7D35B130625FB7F8942F +:101B7000FC01649FE00DF11D1124BF016817790776 +:101B8000D1F45FBF8FE594E00197F1F700C000004A +:101B90000895809162019091630123E0829FF0019A +:101BA0001124E955FC4F8917A0F611821082128288 +:101BB0008F5F3396F8CFFC014191CF01E8E035B952 +:101BC000000000C047FF25B9440F000000C000C05E +:101BD00000C025B900C0EA9591F7D0CF0F931F93AD +:101BE000CF93DF9300D00F92CDB7DEB7182F062F1B +:101BF0008091730480FF22C09E012F5F3F4F4AEA0D +:101C000064E68BE20E94B8081017C0F48B819981BA +:101C10002A8133E0139FF0011124E955FC4F218301 +:101C2000908382831F5F33960113F9CF0E94A30D27 +:101C30008FE99FE00197F1F700C000000F900F902F +:101C40000F90DF91CF911F910F910895CF93DF9364 +:101C5000C82FD82FD17081FF04C068E084E00E94B3 +:101C6000EE0DD11108C062E080E00E94EE0D6CE044 +:101C70008AE00E94EE0DC2FF0AC064E082E00E948A +:101C8000EE0D6AE088E0DF91CF910C94EE0DDF91CC +:101C9000CF910895E3E7F4E080818E7F8083E1E7D0 +:101CA000F3E08281816082832FEF80E792E0215010 +:101CB00080409040E1F700C000000C94A30D9F927B +:101CC000AF92BF92CF92DF92EF92FF920F931F934A +:101CD000CF93DF937C015B016A018091E10201E017 +:101CE00010E08A3010F40AE010E0C1E0D0E0F8948F +:101CF000B501C701F6010995982E0E94500991106F +:101D000004C021960C171D076CF4892DDF91CF912B +:101D10001F910F91FF90EF90DF90CF90BF90AF9009 +:101D20009F900895CC9F9001CD9F300D300D1124D0 +:101D300090E080E045E34A95F1F7000001968217B4 +:101D40009307C1F7D4CF8091B202811110C0809166 +:101D5000D80080618093D8008AE18A95F1F700C0AD +:101D60008091D90080FF0AC081E08093B20281E0B7 +:101D70009091B202913009F080E0089582E0809362 +:101D8000B2020E94AA0610929C03F1CF0E94A30EF9 +:101D9000882351F0E0918303F0918403309721F080 +:101DA0000190F081E02D099480E008951F93CF9376 +:101DB000DF93182FEB010E94EC0B8FE99FE0019756 +:101DC000F1F700C000002197C1F7812FDF91CF917B +:101DD0001F910C94B30B0F931F93CF93DF9300D0FD +:101DE00000D0CDB7DEB789836A834B831C8204E6BB +:101DF00010E024E030E0AE014F5F5F4F60E084E12F +:101E00000E94702F0F900F900F900F90DF91CF9145 +:101E10001F910F91089580915D01882329F041E27F +:101E200065EA89ED0C94EB0E8091470247EC6BE17B +:101E30008823C1F347E669E98BE2F4CFCF93DF93C0 +:101E4000C7E4D3E060E0CE010E9486322196C1153E +:101E500084E0D807B9F7DF91CF9108956F927F9210 +:101E60008F929F92AF92BF92CF92DF92EF92FF92AA +:101E70000F931F93CF93DF9382EAC82E8BE0D82E67 +:101E800007ED10E0E801C05AD10936011CC0F50188 +:101E900085909490692DC7010E948632682DC701F4 +:101EA00001960E94863282E0A80EB11C82E0E80E04 +:101EB000F11CCE15DF0559F780E1680E711C6096A4 +:101EC0000C171D0731F07E0180E1E81AF10853017B +:101ED000DECF00561F4F80EAC80ED11C073F83E0BB +:101EE000180781F6DF91CF911F910F91FF90EF902E +:101EF000DF90CF90BF90AF909F908F907F906F902A +:101F00000895CF93C82F6FEF811162E283E290E0D2 +:101F10000E9486326FEFC11161E084E290E00E947E +:101F200086326FEFC11168E285E290E0CF910C94A8 +:101F3000863280E00E94810F60E086E290E00E949D +:101F400086320E942E0F0E941E0F81E00C94810F9A +:101F50000F931F93CF93DF9320E1629FE001112441 +:101F600050E0440F551FC40FD51F30EA839FC00DAA +:101F7000D11D1124CE0187960E947232082F10E0E5 +:101F8000102F0027CE0188960E9472329801282BCC +:101F9000C901DF91CF911F910F910895462F853090 +:101FA00038F47A3028F4683018F4672F0C94A80FAE +:101FB00090E080E00895CF92DF92FF920F931F93FD +:101FC000CF93DF936C010091A6038091A502082BAB +:101FD000C7E0D0E010E0FC2EC8010C2E02C09595A1 +:101FE00087950A94E2F780FD0CC02197A0F7F12CA9 +:101FF0008F2DDF91CF911F910F91FF90DF90CF90A8 +:102000000895B6018C2F0E94CE0F0E94AC09019753 +:1020100061F3EECFCF93DF93EC010E94DB0FBE01A3 +:102020000E94CE0FDF91CF910C94AC09FC0180810E +:1020300091810E940A10292F2F7092959F709250C3 +:102040009E3078F4E92FF0E0E351FC4C0C944632DA +:10205000803F19F020F4883E20F481E00895843F09 +:10206000E1F380E00895883EC0F3813FD1F7F5CFDA +:10207000822F869586958695089583E290E00E944A +:102080007232823289F484E290E00E9472328130AE +:1020900059F485E290E00E94723291E0883209F0B2 +:1020A00090E0892F8170089580E0FCCFCF9384E089 +:1020B00090E00E947232C82F82E290E00E94723259 +:1020C000982F8C2FCF9108951F93CF93DF93CDB787 +:1020D000DEB768970FB6F894DEBF0FBECDBF409154 +:1020E0006203509163036091640370916503809172 +:1020F0006603909167030E948123209362033093CB +:1021000063036093660370936703642F152F119523 +:10211000109364034093650386E0E2E6F3E0DE019A +:10212000179601900D928A95E1F786E0FE013796A9 +:10213000DE01119601900D928A95E1F79B858C85C1 +:1021400020915D012223B1F0772761950CF4709501 +:10215000072E000C880B990B0E94F2322AE939E90C +:1021600049E95EE30E9456330E94BA32962F812FCE +:1021700060E010E01B836C839D838E8386E0FE010C +:102180003196DE011D9601900D928A95E1F786E069 +:10219000FE013D96DE01539601900D928A95E1F77E +:1021A00086E0FE017396DE01119601900D928A95EC +:1021B000E1F786E0FE013196A2E6B3E001900D92D0 +:1021C0008A95E1F786E0E2E6F3E0DE0117960190FA +:1021D0000D928A95E1F786E0ECE5F3E0DE011196D9 +:1021E00001900D928A95E1F746E050E0BE016F5FE5 +:1021F0007F4FCE0107960E945C32892B79F0E091E7 +:102200008303F0918403309749F082E08093620366 +:102210000480F581E02D82E693E009951092640335 +:1022200010926503109266031092670386E0E2E65F +:10223000F3E0ACE5B3E001900D928A95E1F7689682 +:102240000FB6F894DEBF0FBECDBFDF91CF911F91C7 +:1022500008951092A402E0E4F2E086E0DF011D920E +:102260008A95E9F70C948C0B1F93CF93DF93CDB72E +:10227000DEB7AA970FB6F894DEBF0FBECDBF8EE9CA +:1022800093E02091F100DC012D93CD01B3E0863A7B +:102290009B07B9F780919F03833009F472C0B8F4AB +:1022A000813009F449C0823009F4B3C08091E8005C +:1022B00083FF8BC280919E0390919F039A3008F018 +:1022C00084C2E92FF0E0E550FC4C0C9446328A3091 +:1022D00009F48EC08B3009F471C0893039F78091D0 +:1022E0009E03813219F78091A2039091A303009776 +:1022F00011F00297D9F68091E800877F8093E8007B +:102300008091E80082FF38C09091F3008091F20044 +:10231000029731F48091F100813011F0863021F480 +:102320008091F100809391038091E8008B778093F6 +:10233000E8000E942407BACF80919E03813A09F0F9 +:10234000B5CF8091E800877F8093E8008091A20359 +:102350009091A303892B61F468E082E993E070E037 +:102360000E94D6078091E8008B778093E8009ECF8B +:1023700060E090E080E0F3CF80919C038111C0CFBA +:1023800095CF80919E03813A09F090CF8091A2036E +:102390009091A303892B09F089CF8091E800877F72 +:1023A0008093E8008091E80080FFFCCF8091650178 +:1023B0008093F1008091E8008E77B9CF80919E03E1 +:1023C000813209F073CF8091A2039091A303892BEE +:1023D00009F06CCF8091E800877F8093E8000E942D +:1023E00024078091A003809365010E9429115ECF8C +:1023F00080919E03813209F059CF8091E800877F58 +:102400008093E8000E9424078091A10380939003A9 +:102410004DCF80919E03813A09F048CF8091E8002A +:10242000877F8093E8008091E80080FFFCCF809157 +:102430009003BECF803899F0823809F0C6C18091F0 +:10244000A2038F70873008F0C0C18093E9008091AB +:10245000EB0085FB882780F91092E90006C0809187 +:102460009A0390919B03911182609091E800977F6D +:102470009093E8008093F1001092F1008091E800C1 +:102480008E779FC1882309F48DC1823009F09DC1E8 +:102490008091A003811190C18091A2038F702FEFD2 +:1024A000280F263008F091C18093E9002091EB00BD +:1024B00020FF82C1933031F48091EB0080628093E1 +:1024C000EB007AC19091EB0090619093EB0021E0DA +:1024D00030E001C0220F8A95EAF72093EA001092BB +:1024E000EA008091EB008860EACF81116EC1109103 +:1024F000A0031F778091E3008078812B8093E30015 +:102500008091E800877F8093E8000E9424078091F3 +:10251000E80080FFFCCF8091E30080688093E300B7 +:1025200082E0111183E080939C034FC18058823078 +:1025300008F04BC12091A0033091A1032C3DE3E0B2 +:102540003E07A1F583E08A838AE289834FB7F89436 +:10255000DE01139620E03EE051E2E32FF0E05093DD +:102560005700E49120FF03C0E295EF703F5FEF70EA +:102570008E2F90E0EA30C0F0C7968D939D932F5F29 +:10258000243159F74FBF8091E800877F8093E8009E +:102590006AE270E0CE0101960E94D6078091E800C1 +:1025A0008B778093E80011C1C096E7CF8091A2039A +:1025B0009091A303432F55274330510509F44AC096 +:1025C00078F54130510509F47AC08BE590E0E2EAF4 +:1025D000FBE04230510509F0F8C02091E800277F68 +:1025E0002093E8002091A4033091A503821793075C +:1025F00008F49C0140E02115310509F065C0411146 +:1026000063C08091E80082FDC9CF80919C0388233C +:1026100029F2853019F28091E80083FFF2CFBECF16 +:102620004132510509F43CC04232510509F0CDC098 +:102630008330910508F0C9C0FC01EE0FFF1FE15D7A +:10264000FD4F0190F081E02D845D9D4FDC018C9168 +:1026500090E01AC0332721303105D1F02115310522 +:1026600061F02230310509F0B0C0EFE0FCE0E49108 +:102670008E2F90E0EFE0FCE007C0E7E3FCE0E491A0 +:102680008E2F90E0E7E3FCE0009709F49EC0A5CF11 +:10269000E1E2FCE0E4918E2F90E0E1E2FCE0F4CF97 +:1026A0008330910508F091C0880F991FFC01EB5C05 +:1026B000FD4F0190F081E02D89E090E08ECF82E126 +:1026C00090E0EDEFFBE089CF80919C03882309F433 +:1026D00065CF853009F462CF8091E80083FD5ECF3D +:1026E0008091E80082FD8DCF8091E80080FF83CF4C +:1026F0009091F3008091F2002115310519F0883096 +:10270000910550F041E0089709F040E08091E80021 +:102710008E778093E8006FCF44914093F10031961B +:10272000215031090196E8CF803809F04EC08091E0 +:10273000E800877F8093E80080919D038093F100FB +:102740009DCE811142C01091A0031230F0F580910E +:10275000E800877F8093E80010939D030E94240780 +:10276000112311F084E005C08091E30087FDFACFCA +:1027700081E080939C0342E061EC81E00E9443078A +:1027800042E261EC84E00E94430742E261EC82E0B5 +:102790000E94430742E260EC83E00E94430780917D +:1027A0009C0313C08091A003813079F481E09330C1 +:1027B00009F080E080939B031092E9008091E8008B +:1027C000877F8093E8000E9424078091E80083FFC0 +:1027D0000AC08091E800877F8093E8008091EB0039 +:1027E00080628093EB00AA960FB6F894DEBF0FBE0E +:1027F000CDBFDF91CF911F9108951F93CF93DF93AA +:10280000162FC0917A08D0917B088A30D1F420919C +:102810007403CE018A579440622F70E00E941232F6 +:10282000281B822F66E00E942632C82FC15020F458 +:10283000DF91CF911F91089560E080E20E94FD1327 +:10284000F5CF8D30E9F4CA57D44020917403622F3C +:1028500070E0CE010E941232281B822F9E01280FA9 +:10286000311D2115344018F080E0D0E0C0E0C80FE1 +:10287000D11DC658DB4FD0937B08C0937A08D8CFC0 +:1028800096E0FE01A5E7B3E001900D929A95E1F77D +:10289000803E90F186E0FE0111928A95E9F7C091A1 +:1028A0007A08D0917B08111133C046E050E0BE0198 +:1028B00085E793E00E945C329E012A573440892BC1 +:1028C00091F52A5F3F4F40917403642F70E0C90176 +:1028D0000E941232481B463010F4240F311D21157E +:1028E00074E0370710F030E020E026583B4F30937B +:1028F0007B0820937A089CCFF6E08F9FB0011124CB +:10290000625A794F46E050E0CE010E945332C7CF61 +:102910009E012A5F3F4FFE012E173F0731F2808153 +:1029200080958193F9CFC90146E0969587954A95A0 +:10293000E1F741E050E0BA0102C0660F771F8A95C7 +:10294000E2F7CB016091780470917904862B972B84 +:10295000B9016B5F7F4FE6E076956795EA95E1F701 +:1029600002C0440F551F6A95E2F7842B952B909374 +:10297000790480937804A5CFFF920F931F93CF9390 +:10298000DF93EC01F62EFC0101900020E9F78F01A6 +:1029900001501109C017D10730F0DF91CF911F917D +:1029A0000F91FF9008956F2D89910E94FD13F2CF32 +:1029B000CF92DF92EF92FF926B017C010E94A208FE +:1029C000B701A60188E090E0FF90EF90DF90CF90F4 +:1029D0000C949832AF92BF92CF92DF92EF92FF9217 +:1029E0000F931F93CF93DF9300D00F92CDB7DEB735 +:1029F000082FF62E142FE22E8091730480FF4FC013 +:102A0000E82FE695AE2FB0E0A05EBD4F9C9190936D +:102A100071038E7F823009F056C04B3A08F04AEAC3 +:102A20009E012F5F3F4F6F2D802F0E94B80880912D +:102A3000730480FF11C02B8139814A81809162012A +:102A40009091630153E0859FF0011124E955FC4FFB +:102A5000891798F10E94A30D80917404801308C017 +:102A6000809175048F1104C080917604811729F03C +:102A70008091730382608093730300937404F092D7 +:102A8000750410937604EE2051F0609173047091F8 +:102A9000740480917504909176040E94D8140F906C +:102AA0000F900F90DF91CF911F910F91FF90EF90BA +:102AB000DF90CF90BF90AF90089541833083228301 +:102AC0008F5F3396C5CF923039F6E2508E2F8170EA +:102AD000D82EE695F0E0E75AF94FA590B490C12CB6 +:102AE000BB2460916401C61608F0B4CF2C2D30E0F1 +:102AF000A29EC001A39E900DB29E900D112470E085 +:102B00000E941232802FD11016C0860F40916201B0 +:102B1000420F532F511D9A01220F331F240F351FCF +:102B200029553C4F412F1B3A08F04AEA6F2D0E946D +:102B3000B808C394D6CF861BE9CFE3E7F4E043811E +:102B400028E0421B08F440E021E0628181810C947E +:102B5000EA14E3E7F4E0438128E0420F08F44FEF82 +:102B600021E0628181810C94EA14E3E7F4E0628160 +:102B700028E0621B08F460E021E0438181810C942D +:102B8000EA14E3E7F4E0628128E0620F08F46FEFF3 +:102B900021E0438181810C94EA14E3E7F4E0818130 +:102BA00021E04381628188500C94EA14E3E7F4E069 +:102BB000818121E043816281885F0C94EA14CF9384 +:102BC000C82F0E94600C823081F138F48823B1F064 +:102BD000813021F18C2FCF910895833059F18430C9 +:102BE000C9F720E040E56FEF8AED0E94EA1480917A +:102BF0000001882379F310925D010DC020E04CE3C1 +:102C00006CED80E00E94EA1480910001882399F322 +:102C100081E080935D010E940B0FDCCF20E040E556 +:102C20006FEF8CEF0E94EA14D5CF20E040E56FEF04 +:102C300080E5F8CF20E040E56FEF80EAF3CF0E9417 +:102C4000DF158093A6030C948C0B8091A603982F1C +:102C50009670963019F488600C941F16877FFCCF0D +:102C600021E030E001C0220F8A95EAF7209580919B +:102C7000A60382230C941F1621E030E001C0220F2E +:102C80008A95EAF78091A603822B0C941F168091F7 +:102C90007704882319F0815080937704609173043E +:102CA0007091740480917504909176040C94D814FA +:102CB00080917704833018F48F5F8093770460915C +:102CC00073047091740480917504909176040C944F +:102CD000D8149091730490FF27C0917081111DC08A +:102CE0009260909373048091730381608093730367 +:102CF000662351F06091730470917404809175049F +:102D0000909176040E94D81420E04091760460915E +:102D10007504809174040C94EA148C3010F0966160 +:102D2000E0CF880F982BDDCF0895809173048695AE +:102D3000815009F48BE061E00C9469168091730472 +:102D400086958F5F8C3008F081E061E00C94691605 +:102D50008091730480FF07C0869582588F778930F1 +:102D600010F40C949E1661E082E00C946916E3E77F +:102D7000F4E083E0808311828FEF82838AEA838389 +:102D80001482A1E7B3E012968C9112978360129699 +:102D90008C9360817181828193810C94D8140E94FC +:102DA000522E40E060E080E00C94EB0E69EE7EEF86 +:102DB00090E080E00E94A43260E082E090E00E9417 +:102DC000863260E083E090E00E9486321092A50295 +:102DD00060E084E090E00E94863260E082E290E071 +:102DE0000E94863260E085E090E00E94863260E0DA +:102DF00086E090E00E9486326FEF87E090E00E94CC +:102E0000863240E050E0BA0188E090E00E949832BB +:102E100060E08DE090E00E94863240E050E0BA0130 +:102E200088E190E00E94983260E087E190E00E94A3 +:102E3000863240E050E0BA018CE190E00E94983286 +:102E400070E060E080E290E00E94A43240E050E058 +:102E5000BA0188E190E00E94983280E00E94810FE0 +:102E60000E94990F40E050E0BA018FE090E00E948C +:102E7000983240E050E0BA0183E190E00C9498323F +:102E80005F926F927F928F929F92AF92BF92CF92FA +:102E9000DF92EF92FF920F931F93CF93DF9300D0B7 +:102EA00000D00F92CDB7DEB76C01FC018381948115 +:102EB000892B31F08081918189238F3F09F037C6BA +:102EC0000F900F900F900F900F90DF91CF911F9167 +:102ED0000F91FF90EF90DF90CF90BF90AF909F90B9 +:102EE0008F907F906F905F9008950E94DB0F182F56 +:102EF000682F89819A810E945F0B69817A81812F75 +:102F00000E94CE0F8C01F6018281882309F403C64A +:102F1000C80182519F45409708F078C58FEF93E034 +:102F20000E947232025197E4A92E93E0B92E8111CA +:102F3000C7CF01113AC01C821B82662463948AE0C9 +:102F4000582E85010F5F1F4FC5010E947232898381 +:102F50001A82882309F4B4CF9FEF980F9330A0F51D +:102F60008A83698232E0A30EB11CC8010E947232CA +:102F70008B83882309F4A4CF8E010F5F1F4FF801C4 +:102F800020812223F1F2213009F058C09181828101 +:102F90009130E1F40E5F1F4F6AE070E0893311F465 +:102FA00060E570E00E94D60E17C0A114F4E0BF06E1 +:102FB00009F486CFC5010E947232811101C001500F +:102FC0002FEFA21AB20AB5CF5801D6CF923039F4FA +:102FD0000E5F1F4F0E94EC0B0F5F1F4FD0CF93303F +:102FE00029F40E5F1F4F0E94B30BF6CF943019F0F7 +:102FF0000F5F1F4FF1CF0E5F1F4F30E020E0B80191 +:103000006F5F7F4FF80141818053990B8A309105A2 +:1030100050F02150310900F38FE99FE00197F1F75B +:1030200000C00000F6CF529EF001539EF00D112417 +:103030009C012E0F3F1F842F8B01E1CFE22FF0E088 +:10304000E754FE4F7490822F86958695869590E082 +:10305000FC01E755FE4FE4902770F12C022E02C0D0 +:10306000F594E7940A94E2F7E1E0EE22FF24FC01F4 +:10307000E756FE4FC490D12C022E02C0D594C794BF +:103080000A94E2F7F1E0CF22DD24FC01E757FE4F7E +:103090008490912C02C0959487942A95E2F721E0C0 +:1030A00082229924E114F10419F081EE0E94EC0BC4 +:1030B000C114D10419F086EE0E94EC0B39E36AE0EA +:1030C00070E0731202C060E570E0872D0E94D60E9A +:1030D000CD2819F086EE0E94B30BEF2819F081EE8F +:1030E0000E94B30B892809F477CF6AE070E08CE284 +:1030F00059CF81E00E943C1603C081E00E94301647 +:103100000F900F900F900F900F90DF91CF911F9124 +:103110000F91FF90EF90DF90CF90BF90AF909F9076 +:103120008F907F906F905F900C94251682E0E2CF95 +:10313000043F110509F4C7C062E0053F110509F01D +:103140008BC40E94710C88C40438FFE51F0709F482 +:1031500053C0B8F402383FE5130771F103384FE567 +:10316000140709F079C4882309F476C481EE0E941B +:10317000EC0B83EE0E94EC0B80E50E94EC0B80E5EB +:1031800028C005385FE5150709F47CC006389FE5BF +:10319000190709F061C4882309F495C0809147029A +:1031A000882309F486C080EE90E090935F018093BD +:1031B0005E011092470274C0882309F44DC481EE69 +:1031C0000E94EC0B83EE0E94EC0B8FE40E94EC0B50 +:1031D0008FE40E94B30B83EE0E94B30B81EE0E943A +:1031E000B30B3AC480934B0210934A0200934902F6 +:1031F00033C480934802F8CF882379F18091480244 +:10320000882349F0809149020E94B30B80EE0E940E +:10321000EC0B8AE20CC080914B028823D1F38091A1 +:1032200049020E94B30B80EE0E94EC0B8CE40F90DD +:103230000F900F900F900F90DF91CF911F910F91F2 +:10324000FF90EF90DF90CF90BF90AF909F908F90C6 +:103250007F906F905F900C94EC0B8AE20E94B30B0E +:103260008CE40E94B30B80EE0E94B30B8091480265 +:10327000811105C080914B02882309F421CE8091F1 +:103280004902D5CF8823F9F080915D01811104C0F6 +:1032900080910001882339F010925D0110920001A5 +:1032A0000E940B0FD9C381E080935D0180930001E0 +:1032B000F7CF86E690E090935F0180935E0181E016 +:1032C00080934702EDCF61E03CCF64E03ACF013616 +:1032D0003DE5130709F4D5C30E3D1C4509F012C1A5 +:1032E0000F900F900F900F900F90DF91CF911F9143 +:1032F0000F91FF90EF90DF90CF90BF90AF909F9095 +:103300008F907F906F905F900C94D6168091E6021C +:10331000806106304CE5140709F491C08091E60203 +:10332000886007301C4508F48AC08091E6028062FC +:1033300086C00C308CE5180709F49CC070F48091AD +:10334000E6028C600A30ECE51E0709F478C008F448 +:103350008BC08091E6028E7F72C08091E602877FEB +:103360000E302CE5120709F46AC08091E6028B7FCB +:103370000F301C4508F463C08091E6028F7E5FC069 +:103380000C3F4CE5140709F479C068F504318CE56D +:10339000180709F48BC080F40231ECE51E0709F42C +:1033A00075C08091E6028F7B03311C4508F447C04D +:1033B0008091E602837F43C00A3F2CE5120709F49F +:1033C00045C008F049C005311C4509F081C3809112 +:1033D000E60282FB992790F921E0922790FB82F97F +:1033E00090FB83F92CC001155DE5150709F454C065 +:1033F00088F48091E70283600E3F9CE5190749F14C +:103400008091E7028D7F0F3F1C4518F18091E70204 +:103410008C7F1FC00230FDE51F0709F456C008F479 +:103420004EC001361D4509F053C39091E602892F25 +:103430008F7E94FF806103C08091E602816080935B +:10344000E60246C38091E6028460F9CF8091E702EC +:1034500081608093E7023CC38091E7028260F9CFEC +:103460008091E6028064EBCF0E9429118091E602F0 +:103470008068E5CF8091E6028D7FE1CF8091E70201 +:103480008E7FE7CF8091E6028F7DD9CF0E942911F0 +:103490008091E6028F77D3CF8091E702982F9095A5 +:1034A00091708E7F892B90FB81F9D3CF0E942911D7 +:1034B0009091E602892F97FB87F98058C0CF61E091 +:1034C0008EE090E00E94863203C360E0F9CF8091E5 +:1034D000A40282720A3C4CE5140709F4F7C008F014 +:1034E00063C0053CECE51E0709F4DCC0A0F5033C15 +:1034F0002CE5120709F4CCC008F0CFC0023C1C45F3 +:1035000009F476C0F60100811181992309F4FEC007 +:10351000C8010E94DB0FF82E682FC8010E945F0BC4 +:10352000B8018F2D0E94CE0F0E94AC09182FB82E23 +:10353000F60122814581342F32953F70892F829583 +:103540008F70E82EF12C8C3008F018C1F701EB5F7A +:10355000FB4C0C944632073C5CE5150709F4ACC003 +:1035600008F4A5C0083CFCE51F0709F4AAC04DE912 +:1035700055E169EA75E1093C1C4521F60F900F9071 +:103580000F900F900F90DF91CF911F910F91FF90AF +:10359000EF90DF90CF90BF90AF909F908F907F90F3 +:1035A0006F905F900C949D08043D3CE51307A0F4D8 +:1035B0000E3C4CE5140708F083CC0C3C5CE5150789 +:1035C00009F489C047E456E168E576E10D3C1C4505 +:1035D000A8F261E081E046C0053DECE51E0709F474 +:1035E0006FCC08F47DC00D351D4509F469CC8ACF38 +:1035F0008091730480FF31C08E7F8093730460914B +:1036000073047091740480917504909176040E9403 +:10361000D814809173038160809373033FEF40E778 +:1036200052E0315040405040E1F700C000000F90A0 +:103630000F900F900F900F90DF91CF911F910F91EE +:10364000FF90EF90DF90CF90BF90AF909F908F90C2 +:103650007F906F905F900C94A30D816080937304B2 +:1036600061E086950F900F900F900F900F90DF9173 +:10367000CF911F910F91FF90EF90DF90CF90BF906F +:10368000AF909F908F907F906F905F900C94691691 +:1036900045E956E16EE976E171CF4EE956E165E91B +:1036A00076E16CCF4DEC55E166ED75E167CF46ED07 +:1036B00055E16DEC75E162CF45EB55E161EC75E1EB +:1036C0005DCF41EC55E165EB75E158CF49EA55E135 +:1036D0006DE975E153CF48E556E167E476E14ECFF9 +:1036E0000F900F900F900F900F90DF91CF911F913F +:1036F0000F91FF90EF90DF90CF90BF90AF909F9091 +:103700008F907F906F905F900C94A816C8010E94D4 +:10371000370BF82E05CF092F0F70907F11F002950F +:10372000007F812F2223C9F0002369F090E2910FDE +:10373000983010F011110BC08091A402082B009357 +:10374000A4020E94160B812F0E94EC0B17C08091DF +:10375000A302082B0093A302F4CF0E94B30B002313 +:1037600069F00095105E183010F0B11027C08091FC +:10377000A40208230093A4020E94160B98E0E91A01 +:10378000F108E4E0EE16F10408F09ACB0E94C60EB0 +:103790000F900F900F900F900F90DF91CF911F918E +:1037A0000F91FF90EF90DF90CF90BF90AF909F90E0 +:1037B0008F907F906F905F900C94260E8091A30263 +:1037C00008230093A302D8CF892F8F70907F903267 +:1037D00011F08295807FF1E0BF120CC0222329F006 +:1037E000333060F60E94A90BC9CF323038F60E9400 +:1037F0009E0BC4CF222341F03323A1F340FFA3CF7C +:103800004F70F6014583EECF332389F3193309F066 +:10381000F5C0FFEF27EE33E0F15020403040E1F7F4 +:1038200000C00000812F0E94B30BA8CF892F86957E +:103830008695837061F0813009F0A0CF812F93705D +:10384000211102C090E080E00E94440897CF812FB0 +:103850009370211102C090E080E00E945A088ECF40 +:10386000892F8370A1F5211189CF812F82958695AB +:103870008770880F880F412F4F70082E01C0440FAA +:103880000A94EAF7212F207114FF07C02FE030E0DF +:1038900001C0220F8A95EAF7209596959695937028 +:1038A000923081F0822F842B933030F48091A502E6 +:1038B000913029F0242B82230E949A0B5FCF842B16 +:1038C000822BFACF242B8091A5028227F5CF8695F3 +:1038D000222311F0892F8170882309F44FCF812F83 +:1038E000829586958770880F880F412F4F70082E1C +:1038F00001C0440F0A94EAF7212F207114FF07C07A +:103900002FE030E001C0220F8A95EAF720959695C6 +:1039100096959370923081F0822F842B933030F4FF +:103920008091A603913029F0242B82230E941F1638 +:1039300025CF842B822BFACF242B8091A6038227BC +:10394000F5CF092F0F70222329F0802F0E943C16FB +:10395000812F48CF812F0E949E0B802F0E9430160E +:103960000DCF812FE1EF1E1789F1E11750F0F0EF35 +:103970001F17B9F02223B1F13111E5CE892F8F71D4 +:1039800029C042EF141749F153EF1513F3CF80E02C +:10399000222361F29F7181E001C0880F9A95EAF7B6 +:1039A000C5CF222379F0323008F0E8CE292F2F71CD +:1039B00081E090E001C0880F2A95EAF79091A60374 +:1039C0008927B4CF333008F0D9CEF0CF892F8F714B +:1039D000222321F20E943C16D1CE892F8F712223FF +:1039E000C9F3BCCF332379F0893341F48FEF97EEDD +:1039F000E3E081509040E040E1F712CF8FE39CE993 +:103A00000197F1F70DCF892F8F71A8CF0031FFE516 +:103A10001F0709F46ECB01312FE5120709F486CB9D +:103A20000E9438086093FD027093FE028093FF02AB +:103A300090930003F6018281063F110509F445CCFD +:103A400008F082CB053E110509F4CCCB08F070CB11 +:103A5000013E110509F4CDCBF6019281992309F4B9 +:103A600036CD0330FDE51F0708F031CC0A3F2CE5C9 +:103A7000120738F4980122503C452431310508F0F2 +:103A80002BCC0E9456109093E7028093E6020031FF +:103A90004CE5140709F4F6CC08F072CC08308CE53C +:103AA000180709F4DDCC08F044CC0430ECE51E071F +:103AB00009F4C8CC08F02ACC02302CE5120709F42E +:103AC000BBCC8091E602826003301C4509F4B7CC80 +:103AD0006091E6021091E70284E090E00E94863255 +:103AE000612F82E290E00E9486320F900F900F903B +:103AF0000F900F90DF91CF911F910F91FF90EF905A +:103B0000DF90CF90BF90AF909F908F907F906F90FD +:103B10005F900C94291100313FE5130709F4EDCAB9 +:103B200001314FE5140709F085CF82E0E7CA85E04F +:103B3000DE01119601900D928A95E1F7F60122813E +:103B400089819A812111D1C90E94370B182FD5C9BB +:103B50001F93CF93DF9380916F02807FA9F48091B0 +:103B60006C02882389F08091A102D091700260914B +:103B70006A0270916B02A0916D02B0916E02C62F25 +:103B8000C72316E0D81304C0DF91CF911F91089589 +:103B900090E0109711F0CF3F19F401968770F2CFA3 +:103BA000189F9001199F300D1124F901EF58FD4F16 +:103BB00041814713F2CF40814613EFCF428141113B +:103BC000ECCF438154814A1B5B0B403A510528F7E7 +:103BD00080916F028F70806180936F02F901EA58C3 +:103BE000FD4F80818F70806180838AE692E00E9421 +:103BF0004017DF91CF911F910C942D0BAF92BF9284 +:103C0000CF92DF92EF92FF920F931F93CF93DF93A8 +:103C1000CDB7DEB761970FB6F894DEBF0FBECDBF4C +:103C20008C0185E0F801DE011D9601900D928A95C8 +:103C3000E1F7F801E2808AE6A82E82E0B82E6091D2 +:103C40006D0270916E026115710509F432C1909197 +:103C50006A0240916B02892F84238F3F09F429C1A6 +:103C600020813181C380D480F0906C02F601E61B84 +:103C7000F70BFF2009F4E8C080916F02582F507FA6 +:103C8000E03AF10508F0ABC0511177C0FE2C4313A8 +:103C900021C092131FC0E1101DC08F7080618093FE +:103CA0006F02C5010E94401780916F02F801858361 +:103CB0008F2D61960FB6F894DEBF0FBECDBFDF919A +:103CC000CF911F910F91FF90EF90DF90CF90BF9019 +:103CD000AF900895CD2829F0822F83238F3F09F0DC +:103CE00003C180E0F82FF170DF2E80FF3CC080918F +:103CF000A1024091700256E0841315C02D873E87C3 +:103D00008D859E850E940A10292F22952F702230C2 +:103D1000F0F0243018F59F70F1F0F8019581907F54 +:103D2000D1F4D12C1EC090E0589FF001599FF00DA6 +:103D30001124EF58FD4F6181361306C060812613B0 +:103D400003C06281E6120FC001968770D5CF9F70C5 +:103D500011F0882331F3805E883018F3C8010E9487 +:103D60004017FD2CA5CFEE2009F4A2CF80916F0261 +:103D7000816080936F02F12C9BCF431306C0921396 +:103D800004C0F801EE2009F479C0C8010E941610A1 +:103D9000882309F1EE20F9F080916F02803270F0F3 +:103DA00020916A0230916B0238872F831986DB8657 +:103DB000CA868C87CE0107960E94401786E0F801DC +:103DC000AAE6B2E001900D928A95E1F70E94A81D43 +:103DD000FF24F3946DCFC8010E944017F9CF511111 +:103DE0000AC08AE692E00E94401786E0F50111922F +:103DF0008A95E9F7C0CF43130FC092130DC0E110AD +:103E00000BC0F8018583C8010E94401786E0F501C8 +:103E100011928A95E9F74CCFC8010E9416108823A9 +:103E2000D1F2EE20C1F280916F02803238F22091FF +:103E30006A0230916B023A8329831B82DD82CC8235 +:103E40008E83CE010196B8CFE03AF105F8F6FE2C4C +:103E5000EE2009F243131FC092131DC080916F0220 +:103E600080FD10C0982F907F69F0F8018583903F06 +:103E700031F0982F907F905F8F70892B8583C801D8 +:103E80000E94401786E0F801AAE6B2E001900D9288 +:103E90008A95E1F70DCFC8010E94161081118ECFCF +:103EA00080916F02816080936F02C8010E94401769 +:103EB000FFCEEE2009F48FCFC8010E941610F82E15 +:103EC000882309F488CF86E0F801AAE6B2E00190E1 +:103ED0000D928A95E1F780916A0290916B020E949F +:103EE0000A100E94A81DE4CE81E08E25FBCE1F9310 +:103EF000CF93DF93CDB7DEB767970FB6F894DEBFE9 +:103F00000FBECDBF4B8B5C8B6D8B7E8B8F8B61110E +:103F10001092A3021A8A198A85E0FE017396DE01C7 +:103F20001D9601900D928A95E1F786E0FE013D967F +:103F3000DE01179601900D928A95E1F7CE01079662 +:103F40000E94FE1D882389F016E08091A1029091C5 +:103F50007002891349C067960FB6F894DEBF0FBE92 +:103F6000CDBFDF91CF911F91089586E0FE01379676 +:103F7000DE01119601900D928A95E1F78A859B8565 +:103F8000892B11F38F81988589238F3FE9F2209146 +:103F9000700230E0C9010196877099274091A10213 +:103FA0004817190671F40E9429111092700210929C +:103FB000A10286E0EAE6F2E0DF011D928A95E9F7C8 +:103FC000C3CF96E0929FD001939FB00D1124AF58BC +:103FD000BD4FFE01319601900D929A95E1F78093C5 +:103FE00070020E942D0BB0CF819FC00111248F5809 +:103FF0009D4F0E94FE1D882309F4ADCF8091A10240 +:1040000090E00196877099278093A1029ECF0F932D +:104010001F93CF93DF9300D000D0CDB7DEB7409190 +:10402000D5025091D6026091D7027091D8022FB775 +:10403000F8948091880390918903A0918A03B091AC +:104040008B032FBF841B950BA60BB70B84369105F2 +:10405000A105B10588F10E94A30E882379F10E9481 +:1040600038086E5F7F4F8F4F9F4F69837A838B83B2 +:104070009C8380912C0190912D0180549D4F409103 +:104080002B0150E04530510510F044E050E0BE01F6 +:104090006F5F7F4F0E94693284E090E00E945E3142 +:1040A000892BD9F40E9438086093D5027093D60208 +:1040B0008093D7029093D80281E010C00E94380804 +:1040C0000091E2021091E3022091E4023091E502B6 +:1040D000600F711F821F931FC4CF80E00F900F905D +:1040E0000F900F90DF91CF911F910F9108958F92B4 +:1040F0009F92AF92BF92CF92DF92EF92FF920F9377 +:104100001F93CF93DF93EB0188809980AA80BB80B7 +:104110009FB7F894C0908803D0908903E0908A03F9 +:10412000F0908B039FBFC818D908EA08FB0894E6F3 +:10413000C916D104E104F10410F4442311F1E82E6E +:10414000082E000CFF089AE08902F0011124EF5FAD +:10415000FE4F8381948180549D4F428150E004172B +:10416000150708F4A801B9010E946932C7010E942D +:104170005E31892BA1F40E943808688379838A8391 +:104180009B8381E0DF91CF911F910F91FF90EF9082 +:10419000DF90CF90BF90AF909F908F90089580E078 +:1041A000F1CF0F931F93CF93DF930F92CDB7DEB76D +:1041B00080917F0389832091D40290E041E0281709 +:1041C000190609F440E001E010E09E012F5F3F4F27 +:1041D0006DED72E086E00E9477200F90DF91CF9125 +:1041E0001F910F9108950F931F93CF93DF93CDB736 +:1041F000DEB728970FB6F894DEBF0FBECDBF85E0BF +:10420000E3E7F4E0DE01119601900D928A95E1F763 +:104210008091710390917203A09173038E839F83A9 +:10422000A88741E08885811101C040E008E010E0E6 +:104230009E012F5F3F4F69ED72E085E00E9477207D +:1042400081111092730328960FB6F894DEBF0FBE4B +:10425000CDBFDF91CF911F910F9108956F927F9203 +:104260008F929F92AF92BF92CF92DF92EF92FF9286 +:104270000F931F93CF93DF930F92CDB7DEB7862EA8 +:104280005A016901682E880F7708C3010E945E31C8 +:10429000892B09F088C08AE0869DF001879DF00D8A +:1042A0001124EF5FFE4F458150E04115510511F09B +:1042B00041E050E08AE0869DF001879DF00D1124D9 +:1042C000EF5FFE4F6681778160547D4FCE0101968E +:1042D0000E946932F50140815181628173812FB75B +:1042E000F8948091880390918903A0918A03B091FA +:1042F0008B032FBF841B950BA60BB70B8436910540 +:10430000A105B10540F4B701C8010E948708998151 +:10431000891709F44FC0082C000C9908C4010E94A9 +:104320005E31892B91F0B12C8B2D0F90DF91CF91C5 +:104330001F910F91FF90EF90DF90CF90BF90AF90C3 +:104340009F908F907F906F9008958AE0889DF001F4 +:10435000899DF00D1124EF5FFE4F458150E0E4167A +:10436000F50608F4A7018AE0889DF001899DF00D0B +:104370001124EF5FFE4F6681778160547D4FC60147 +:104380000E946932B701C8010E9487089981891388 +:10439000CACF0E943808F5016083718382839383BA +:1043A000BB24B394C1CFB12CA701B801C6010E94B0 +:1043B0006932BACFBB24B394F7CFCF92DF92EF929A +:1043C000FF920F931F93CF93DF9300D000D00F92F3 +:1043D000CDB7DEB76B0185E0E82EF12C01EC12E0E1 +:1043E0009E012F5F3F4F48EB52E061E080E00E946A +:1043F0002E21882349F095E0FE013196A3EBB2E02F +:1044000001900D929A95E1F795E0E3EBF2E0D60189 +:1044100001900D929A95E1F70F900F900F900F90E9 +:104420000F90DF91CF911F910F91FF90EF90DF9050 +:10443000CF90089590E080E00E948032893E9E4FA8 +:1044400011F40C943D1080E008951F920F920FB666 +:104450000F9211242F933F934F935F936F937F930A +:104460008F939F93AF93BF93CF93DF93EF93FF937C +:10447000D091E900DF708091EC00C82FC17080FD01 +:10448000C0E81092E9008091F000877F8093F000EF +:1044900078940E9434111092E9008091F0008860B5 +:1044A0008093F000CD2BCF70C093E900FF91EF9186 +:1044B000DF91CF91BF91AF919F918F917F916F913C +:1044C0005F914F913F912F910F900FBE0F901F90D2 +:1044D00018951F920F920FB60F9211242F933F93AE +:1044E0004F935F936F937F938F939F93AF93BF93FC +:1044F000EF93FF938091E10082FF09C08091E20079 +:1045000082FF05C08091E1008B7F8093E100809164 +:10451000DA0080FF24C08091D80080FF20C0809105 +:10452000DA008E7F8093DA008091D90080FF9DC0F1 +:1045300080E189BD82E189BD09B400FEFDCF81E043 +:1045400080939C0380918F03811109C00E94AA0669 +:104550000E9475078091E20084608093E200809160 +:10456000E10080FF17C08091E20080FF13C08091BE +:10457000E2008E7F8093E2008091E2008061809370 +:10458000E2008091D80080628093D80019BC85E059 +:1045900080939C038091E10084FF2BC08091E20016 +:1045A00084FF27C080E189BD82E189BD89B5982F4C +:1045B000917080FFFBCF8091D8008F7D8093D800D1 +:1045C0008091E1008F7E8093E1008091E2008F7EF8 +:1045D0008093E2008091E20081608093E20080910C +:1045E0009D03882309F447C084E080939C03809155 +:1045F0009C038091E10083FF27C08091E20083FF4C +:1046000023C08091E100877F8093E10082E0809366 +:104610009C0310929D038091E1008E7F8093E100C6 +:104620008091E2008E7F8093E2008091E2008061C1 +:104630008093E20042E060E080E00E9443078091C6 +:10464000F00088608093F000FF91EF91BF91AF91EF +:104650009F918F917F916F915F914F913F912F919A +:104660000F900FBE0F901F90189519BC10929C03CD +:1046700010928F0374CF8091E30087FD93E09093B5 +:104680009C03B5CF78941F921FB61F9211248F936D +:104690009F93AF93BF938091880390918903A091DA +:1046A0008A03B0918B030196A11DB11D80938803ED +:1046B00090938903A0938A03B0938B03BF91AF912A +:1046C0009F918F911F901FBE1F9018959C014FB70F +:1046D000F8948091880390918903A0918A03B09106 +:1046E0008B034FBF821B930B08952FB7F8948091D3 +:1046F000880390918903A0918A03B0918B032FBF07 +:104700000895AF92BF92DF92EF92FF920F931F93A3 +:10471000CF93DF93CDB7DEB761970FB6F894DEBFC6 +:104720000FBECDBF4C87888B998BE52ED62EF72EEA +:104730005E0127E0A20EB11C85E0F50111928A9579 +:10474000E9F7809170038A3008F095C080916E037C +:1047500090916F030E946623089708F48CC004E6CA +:1047600010E025E030E0A50164E084E10E949D2F87 +:10477000892B09F0DBC0109270038B8587FDD1C0B7 +:10478000E894E0F880916C0390916D03009709F034 +:10479000C2C08F819885891708F091C0981B892F16 +:1047A00041E020915E0130915F01889FC00111249A +:1047B00055E0589FF001599FF00D1124E29FB00180 +:1047C000E39F700DF29F700D1124660F672F661F17 +:1047D000770B7195442319F071956195710980915A +:1047E0006A0390916B03680F791F89859A858917F1 +:1047F00008F068C0981B892F41E0889FC0011124F0 +:1048000055E0589FF001599FF00D1124E29FC0011F +:10481000E39F900DF29F900D1124880F892F881F20 +:10482000990B9195442319F09195819591092091C7 +:10483000680330916903820F931F603871050CF48F +:1048400044C06F57710970936B0360936A033FE72D +:10485000D32E803891050CF44BC08F57910990935B +:104860006903809368039FE7F92E0E947523909354 +:104870006F0380936E03ED86DE86FF8686E0FE0181 +:104880003C96DE01119601900D928A95E1F72981FF +:104890003A814B815C816D817E8180E090E0619600 +:1048A0000FB6F894DEBF0FBECDBFDF91CF911F9141 +:1048B0000F91FF90EF90DF90BF90AF900895891B0C +:1048C00040E06FCF891B40E098CF6138FFEF7F0752 +:1048D0004CF461587F4F70936B0360936A0321E837 +:1048E000D22EB7CFD62E10926B0310926A03B1CF9F +:1048F00081382FEF92074CF481589F4F90936903B2 +:104900008093680381E8F82EB0CFF82E10926903E7 +:1049100010926803AACF019790936D0380936C0364 +:10492000A4CF6894E0F884E190E0F6CF8091700322 +:104930008F5F8093700399CF9F92AF92BF92CF9277 +:10494000DF92EF92FF920F931F93CF93DF93CDB738 +:10495000DEB764970FB6F894DEBF0FBECDBF8E01F1 +:104960000F5F1F4F8AE0D8011D928A95E9F79EEEEE +:10497000C92E91E0D92EF12CE12CAA24A394B12CBC +:10498000F60181916F018F3F09F444C0F894E82F3C +:10499000E295EF70F0E021A18F70A50102C0440FF5 +:1049A000551F8A95E2F7CA01922F982B91A392A1E5 +:1049B0008095892382A30E94500900C0E8EFF1E0AE +:1049C000912C31E021912F3F09F478C0A22FA295BC +:1049D000AF70B0E090968C9190E02F7002C09595EA +:1049E00087952A95E2F780FD69C0832F982A330FB7 +:1049F00052E0E030F50731F7F601319780818F3FC3 +:104A000011F00E94520980EA8A95F1F7F801EE0D43 +:104A1000FF1D9082AFEFEA1AFA0AB5E0EB16F10437 +:104A200009F0AECF4AE050E0B80188EE92E00E9473 +:104A30005C327C01892B41F08AE0F801A8EEB2E0FB +:104A400001900D928A95E1F71091F302E114F104BF +:104A5000B9F181E08093A8020E9475239093A70288 +:104A60008093A6028091A6029091A7020E946623DD +:104A7000069770F0A8EEB2E0E12FF0E0EE5AFC4F9E +:104A80008D91819322E0AD3EB207D1F71092A8023A +:104A900081E090E0EF28C1F064960FB6F894DEBF95 +:104AA0000FBECDBFDF91CF911F910F91FF90EF907F +:104AB000DF90CF90BF90AF909F90089580E096CF09 +:104AC0008091A8028111CECF0E94A30ED82EE09132 +:104AD000F302882309F4B4C07E0140E1E40EF11C26 +:104AE00085E0D7011D928A95E9F70E2F10E00E5A46 +:104AF0001C4F8091E1028A3008F06CC04DED51E20C +:104B0000B701C8010E945F0E882309F485C04EEEEC +:104B100056E2B701C8010E945F0E882309F47CC0E9 +:104B200047E050E2B701C8010E945F0E882309F4F4 +:104B300073C043EF50E2B701C8010E945F0E8823A3 +:104B400009F46AC041ED50E2B701C8010E945F0E4E +:104B5000882309F461C01092E1028091F20290E092 +:104B600045E050E0B7018E5A9C4F0E945C3221E034 +:104B70002093B102892B09F042C0D12C8BEAE82E98 +:104B800082E0F82E10E000E0D7018D917D018823AE +:104B9000D1F08695F80109F450C0E851FE4F8081AC +:104BA00091819C878B871D860E9475238160782F59 +:104BB0009F878E87F701319710824B855C856D85C5 +:104BC0008F850E94771F0E5F1F4F04301105E1F69D +:104BD0008D2D62CF8091A9029091AA020E94662336 +:104BE000843F914008F08ACF8091B102882329F256 +:104BF00085E0F70111928A95E9F71092B102A09130 +:104C0000F202B0E0AE5ABC4F85E0FE017096019012 +:104C10000D928A95E1F7B2CF8091E1028F3F31F09A +:104C20008F5F8093E1028A3008F497CF0E9475234A +:104C30009093AA028093A902D7CFEC51FE4FAFCF39 +:104C4000F0E0EE5AFC4FF89485E0A1ECB2E0019060 +:104C50000D928A95E1F765E070E081EC92E00E94A8 +:104C600087088093C0020E945009F894E091FB02EB +:104C7000F0E0E850FD4F80818B878093C70261E0B0 +:104C800070E0CE010B960E9487088093C6020E94B6 +:104C90005009F894C090C802D090C902E090CA02AE +:104CA000F090CB028091AD029091AE02A091AF0244 +:104CB000B091B002C816D906EA06FB06D1F0C09240 +:104CC000AD02D092AE02E092AF02F092B0020E942A +:104CD000A30E81110EC00E943808C61AD70AE80A2E +:104CE000F90AC092E202D092E302E092E402F0926A +:104CF000E5020E945009F8948091D3028823F1F0D4 +:104D000080FF0DC08091CC0280FF25C0909173047C +:104D100091609093730460E086950E94691680917B +:104D2000D30281FF09C020E04091CF026091CE0202 +:104D30008091CD020E94EA141092D3020E94500981 +:104D4000F8948091D402882349F00E94FB0C0E94C1 +:104D5000500980E0A1CE0E944A0EE1CF0E94E00CF3 +:104D6000F6CFEF92FF920F931F93CF93DF9300D074 +:104D700000D00F92CDB7DEB7162FE82EF12CC70169 +:104D8000880F991F662339F188519E4FFC0180815D +:104D900091819A83898301E00B830E94752381604E +:104DA000782F9D838C83F701E555FD4F0127110F67 +:104DB000102B108349815A816B818D810F900F9048 +:104DC0000F900F900F90DF91CF911F910F91FF9057 +:104DD000EF900C94771F8C519E4FD8CFCF92DF92DB +:104DE000EF92FF920F931F93CF93DF930F92CDB764 +:104DF000DEB7EE24E394F12C07EC12E09E012F5F66 +:104E00003F4F4CEB52E063E082E00E942E21082FDE +:104E1000882321F1C090F5028C2D90E09C01285050 +:104E20003D4F79011981F9018081181BD12E80E055 +:104E30000AC0DA94F70180818F5F808360E08C2D57 +:104E40000E94B126802F1D14A4F3912F17FD90E02E +:104E5000191B11110EC081110E94140B802F0F908D +:104E6000DF91CF911F910F91FF90EF90DF90CF9046 +:104E700008951F5FF70180818150808361E08C2D50 +:104E80000E94B126802FE5CF1F921FB61F921124DA +:104E90008F939F93AF93BF9380918703811113C02A +:104EA0008091880390918903A0918A03B0918B032C +:104EB0004196A11DB11D8093880390938903A0930F +:104EC0008A03B0938B03BF91AF919F918F911F90F5 +:104ED0001FBE1F901895CDB7DEB7AE970FB6F894EA +:104EE000DEBF0FBECDBF84B7877F84BF0FB6F894F7 +:104EF000A8958091600088618093600010926000A6 +:104F00000FBE80E890E00FB6F89480936100909314 +:104F100061000FBE85B7806885BF85B7806885BF93 +:104F20008EE499E090933D0280933C020E94AA0691 +:104F30000E9475078091E20084608093E20078947B +:104F400080919C038823A1F01091E9001F7090913B +:104F5000EC00892F817090FD80E8182B1092E900F9 +:104F60008091E80083FD0E9434111F701093E900C6 +:104F700082E084BD93E095BD9AEF97BD80936E006B +:104F80001092E2021092E3021092E4021092E50203 +:104F90000E943D10811102C00E94990F0E94A30E31 +:104FA0008093470180914701882309F47CC01092C7 +:104FB000600182E2809361010E94A30E81110E9430 +:104FC0005130809147018091470195E0811190E037 +:104FD0009093F30285E0891B8093F2020EEE11E0BC +:104FE00093EFE92E91E0F92ED8018D918D018F3F3D +:104FF00011F00E945209E016F106B1F708EF11E036 +:1050000080E0E82E82E0F82EF80181918F018F3F39 +:1050100011F00E945209E016F106B1F78AE0E2E5CC +:10502000F3E0DF01282F1D922A95E9F7E8EEF2E080 +:10503000DF011D928A95E9F70E941A22811102C0B0 +:105040000E94D61682E090E00E947232809347035D +:105050000E9456109093E7028093E6020E949C24DF +:10506000EFE7FBEB3197F1F700C000000E949C24B2 +:105070008091520380FF1BC06FEF7FEF90E080E0D4 +:105080000E94A43287E797E7909301088093000875 +:1050900088E19AE00FB6F894A895809360000FBE5F +:1050A00090936000FFCF82E28093600183CF83E022 +:1050B00090E00E9472320E949A0B8091A6030E9497 +:1050C000DF150E94A30E811102C00E9454300E947D +:1050D000A30E81111EC283E08093420380E480937B +:1050E00074030E94522E6DE070E08CE492E00E9406 +:1050F000B00C892BE9F58091420363E070E081FDFB +:105100000AC289E492E00E94B00C892B89F56DE017 +:1051100070E089E392E00E94B00C892B49F50E946F +:1051200038086058774C8E4F9F4F60937B03709385 +:105130007C0380937D0390937E03EAE7F4E080E0B4 +:1051400094E0DF019C011D9221503040E1F7F09383 +:105150007B08E0937A088FEF9FEF90937904809318 +:10516000780481E08093800380937F03109243034F +:105170008091F402811136C00E941A22811104C06C +:105180000E94D6160E94B71688E090E00E947A32FC +:105190006093730470937404809375049093760401 +:1051A000809173038360809373036E7F71F40E9418 +:1051B000B71688E090E00E947A326093730470938F +:1051C000740480937504909376040E94A2088091E1 +:1051D000730480FF04C060E086950E94691681E038 +:1051E0008093F40280914701811106C084E9809385 +:1051F000550182E98093540120915501A22FA29577 +:10520000AF70B0E091963C9191972F7081E090E063 +:10521000BC01022E01C0660F0A94EAF7462F4095A2 +:10522000432391964C93919792963C919297362B6B +:1052300092963C93929740915401E42FE295EF703F +:10524000F0E031A14F70042E01C0880F0A94EAF7F4 +:10525000982F9095932391A392A1892B82A3909646 +:105260008C9190E002C0959587952A95E2F7817020 +:1052700020A130E002C0359527954A95E2F792E0EB +:1052800020FF90E0892B8093FC029091470181E000 +:1052900098279093FB02891B8093F5020E94CF16FA +:1052A00060E08AE00E94691681E00E941F1680EE8D +:1052B00090E090935F0180935E010E940B0F88E461 +:1052C00091E09093840380938303A8E18A2E912C2C +:1052D000B0E4EB2E80919C03FF24F39400E112E1F3 +:1052E000853009F465C10E949C24D82E81110E944A +:1052F0003808F2E52F2EF3E03F2EE8E4F3E0D10189 +:1053000010E000E0A02ECD9081918C1509F472C1BF +:105310008C25B12CFF24F3949F2D982309F465C1AB +:105320000E94A30E882399F0B9A2AAA2CF2081E0FF +:1053300009F480E08BA30E9475238160782F9DA3E0 +:105340008CA349A15AA16BA18DA10E94771FF801DE +:10535000E85BFC4F8081F826F0828091FC02E82F08 +:10536000EE0FEE0F90915501A92FA295AF70B0E00E +:1053700090962C9130E09F7002C0359527959A95B4 +:10538000E2F72170332790915401A92FA295AF70B5 +:10539000B0E090964C9150E09F7002C055954795B3 +:1053A0009A95E2F7CA018170992740FF02C082E016 +:1053B00090E0822B8E2B8093FC021091FB028F7069 +:1053C000E82FF0E0E050FE4F80819091FA02890FC3 +:1053D0008093FA02F12C84306CF0E12FF0E0E85079 +:1053E000FD4F80818F5F808360E0812F0E94B12616 +:1053F000FF24F3948091FA028D3F6CF4E12FF0E0EA +:10540000E850FD4F80818150808361E0812F0E94B0 +:10541000B126FF24F3948091FA02082E000C990B18 +:1054200064E070E00E9432328093FA02F1100E9430 +:10543000140B80918003882351F180914403909153 +:1054400045030E946623C29708F0EBC020917804C0 +:10545000309179042115310509F09DC180917F03B8 +:105460008823A9F00E94380800917B0310917C03E7 +:1054700020917D0330917E03601B710B820B930B97 +:105480006F3F7F4F8F4F9F4710F40E94E00CD11069 +:1054900001C0F1100E94FB0C0E9464100E94C60E15 +:1054A00090914603891731F00E94C60E80934603FF +:1054B0000E94260E80919C03843009F00BCF83E07C +:1054C0008093E9008091E80082FF04CF8091E8009A +:1054D00090E085FF0CC00E94C90630E2C32ED12C9B +:1054E0008E010F5F1F4F882309F431C291E0809134 +:1054F000E8008B778093E800992309F4EBCEE981EB +:10550000E150E33108F087C2F0E0EF5EFB4C0C9411 +:10551000463281E0E1CD86E492E0F5CD80919C03B6 +:10552000843009F435C080E00E94260E8091F70295 +:10553000811109C0F092F702809173048170809309 +:10554000F6020E944A0E0E94E00C0E946410109223 +:1055500087030FB6F894A895809260000FBEE09282 +:10556000600083B7817F846083BF83B7816083BF1E +:105570007894889583B78E7F83BF0FB6F894A895EB +:1055800080916000886180936000109260000FBE7F +:1055900080919B03882361F00E949C24E2E5F3E064 +:1055A0008191811160C38CE593E08E179F07C1F74D +:1055B00080919C03853009F4B1CF0E9429110E948B +:1055C000C60E0E94260E1092F7028091F6028823E2 +:1055D00049F08091730481608093730460E0869544 +:1055E0000E9469160E940B0F7ECEB394FF0C98E0C8 +:1055F000B91292CE0F5F1F4F0A30110509F082CE0B +:105600008FEF8EA38FA318A60E9475238160782F39 +:105610009AA789A74EA15FA168A58AA50E94771FB6 +:105620009CCE0E947523909345038093440360E0D1 +:1056300080E00E9470080E94C60E809301030E94C1 +:10564000A30E882309F48EC04091FD025091FE0202 +:105650006091FF02709100032FB7F8948091880346 +:1056600090918903A0918A03B0918B032FBF841B73 +:10567000950BA60BB70B81339547A105B10540F0FB +:105680000E94E00C80918003882309F4E7CEDECEEF +:105690000E94FB0C61E080E00E94700860E086E6FA +:1056A00091E00E94BC1462E080E00E94700880914A +:1056B000A6030E94600C823009F446C0E8F58823F6 +:1056C00009F442C0813009F445C065E080E00E94E1 +:1056D000700860E089E891E00E94BC1466E080E018 +:1056E0000E947008609101036695617084E991E001 +:1056F0000E94BC1467E080E00E9470086091010382 +:105700006095617089E991E00E94BC1468E080E0D6 +:105710000E9470086091010362FB662760F98DE9C1 +:1057200091E00E94BC146BE080E00E94700889E563 +:1057300092E00E946706A6CF833081F0843029F67C +:1057400060E08DE791E003C060E081E791E00E94B6 +:10575000BC14BBCF60E087E791E0F9CF60E083E85D +:1057600091E0F5CF63E080E00E94700860E082EA9B +:1057700091E00E94BC1464E080E00E94700860E048 +:105780008AEA91E00E94BC1467E080E00E94700801 +:1057900089ED93E0CECF8091430361E070E0811109 +:1057A0005DCE082F10E02B01082E02C0440C551CC2 +:1057B0000A94E2F7A90144215521452B09F447C079 +:1057C0009091420390FD45C08295880F880F8074A8 +:1057D0008093580198013695279520935B01815C51 +:1057E0008093590110925C0124E630E047E050E0DC +:1057F00066E571E088E70E94492F892B09F02ECEDB +:10580000A80176E0440F551F7A95E1F78091420395 +:1058100080FD2DC046585B4F04E610E020E430E0E8 +:1058200060E488E70E94702F892B09F017CE0E9450 +:10583000FB0CC201809590954090780450907904BB +:1058400048225922509279044092780407CE8F5F03 +:10585000A8CF880F880F880F8093580110925B01A2 +:10586000895F8093590187E080935C01BDCFE2E0BE +:10587000F3E0DF012E2D1D922A95E9F788E192E0F1 +:105880009EA78DA700E112E0ADA5BEA56D91BEA7B4 +:10589000ADA7F80181918F01840F952F911D9C0177 +:1058A00026583B4F3CA72BA7E62FF0E0EE5FFC4FBE +:1058B00030E020E067E0662E621ACC24C394022E0A +:1058C00001C0CC0C0A94EAF7ABA4BCA490E0D501CB +:1058D0008D915D018C21662D691B6770762E062ED9 +:1058E000000C770BB82F01C0BB0F7A94EAF77B2E20 +:1058F0007195619571096770772701C086956A95E2 +:10590000EAF7782A8081782A70829F5F9830F9F6CA +:105910002F5F3F4F31962830310561F6E0E2F2E02B +:105920002DA53EA5E217F30709F0AECF04E610E07F +:1059300020E430E042E053E073CF8091F100D801E1 +:105940008D938D01B1E0CB1AD10809F4CFCD8091B0 +:10595000E80085FDF2CF8091E8008B778093E80026 +:105960000E94C906882399F3C1CD1A8289E08B83EE +:1059700011C08A81823009F48CC1833091F1813069 +:1059800009F049C00E9438080E944C326B837C8326 +:105990008D839E8380919C03843009F09BCC109171 +:1059A000E9001F709091EC00892F817090FD80E8D4 +:1059B000182B82E08093E9008091E80080FF0DC001 +:1059C00050E040E060E270E0CE0101960E94FA06ED +:1059D0008091E8008E778093E8001F701093E900B3 +:1059E00079CCFE013396D1018D911D018193BCE5E7 +:1059F0002B16B3E03B06B9F7CDCF8A81823059F43C +:105A00006B817C818D819E810E944C3286E290E088 +:105A10000E948632BFCF8FEF8983BCCF4C816B81D0 +:105A20008A810E94A80F9827892798279E838D83B3 +:105A3000B1CFCD80DE80DC24CD24DC248A810B81B3 +:105A4000E0E10E9F80011124F0EA8F9F000D111DEF +:105A500011248C8190E0880F991F080F191F6D2D5C +:105A6000C80187960E9486326C2DC8018896D0CFD7 +:105A70000E942E0F8FCF8A818138C1F060F4803868 +:105A800009F088CF20E04B81609175048091740407 +:105A90000E94EA147FCF8238E9F0833809F07ACF88 +:105AA00020E0409176046C818B81F2CF60E08B81A5 +:105AB0000E9469168B81811103C00E944A0E6ACF31 +:105AC0008091730481608093730460E086950E94E6 +:105AD000691660CF8B81809377045CCF8A8181388F +:105AE00099F030F4803809F055CF809176043FCF9B +:105AF000823891F0833809F04DCF809174048B8304 +:105B0000809175048C8346CF8091730480FF02C01E +:105B100086952DCF80E02BCF8091770428CF6091A0 +:105B200073047091740480917504909176040E94BE +:105B3000D81430CF80E18A832DCF1A8289EB17CF1A +:105B4000AA80BB80BA24AB24BA248E010F5F1F4FFA +:105B5000CC80C00ED12ED11CC501895B9C4F0C1589 +:105B60001D0509F417CF29EBA216B10458F40E94C1 +:105B70007232D80114968C93FFEFAF1ABF0A0F5FF1 +:105B80001F4FEACFF8011482F7CF0A811B8110273B +:105B9000012710279E012F5F3F4F5901CC80C00E77 +:105BA000D12ED11CC801895B9C4FC016D10609F4C7 +:105BB000F1CE093B110528F4D50114966C910E9491 +:105BC0008632BFEFAB1ABB0A0F5F1F4FEBCF0E94AD +:105BD0001E0FE0CE85E0AFCFAA80BB80BA24AB24F5 +:105BE000BA248E010F5F1F4FCC80C00ED12ED11C66 +:105BF000C5018796C016D10609F4CCCEE0E2AE16F8 +:105C0000E3E0BE0658F40E947232D80114968C93D9 +:105C1000FFEFAF1ABF0A0F5F1F4FEACFF8011482E0 +:105C2000F7CF0A811B811027012710279E012F5FC4 +:105C30003F4F5901CC80C00ED12ED11CC801879690 +:105C4000C016D10609F4A6CE003233E0130728F4BB +:105C5000D50114966C910E948632BFEFAB1ABB0A35 +:105C60000F5F1F4FEBCF09BD19BD09B400FEFDCF7B +:105C70008091D8008F7D8093D8008091E000826071 +:105C80008093E0008091E00081FDFCCF0E9429110B +:105C90008FCC86E290E00E9472321B821C821D82B1 +:105CA0008E8378CE1092B9008CE08093B80008956E +:105CB0009F92AF92BF92CF92DF92EF92FF920F939B +:105CC0001F93CF93DF93B82EEB010E9475236C01D5 +:105CD000EE24E394F12CC431D10560F025E0E22EEE +:105CE000F12CCF3FDC0731F0CE0164E170E00E947F +:105CF00012327B0184EAA82E94E8992E1092BC00FF +:105D0000A092BC000E9475238C018091BC0087FF8B +:105D10000DC08091B900887F883039F18091B90039 +:105D2000887F803111F10FEF1FEF09C00E947523AA +:105D3000801B910B8E159F0540F30EEF1FEFCF3F99 +:105D4000DC07E1F2C6010E9466238C179D07B0F2C2 +:105D5000C801DF91CF911F910F91FF90EF90DF90DD +:105D6000CF90BF90AF909F900895B092BB0090925B +:105D7000BC000E9475238C018091BC0087FF0AC083 +:105D80008091B900887F883111F0803461F610E08D +:105D900000E0DECF0E947523801B910B8E159F05BE +:105DA00058F3CBCF0F931F93CF93DF93EB018093E7 +:105DB000BB0084E88093BC000E9475238C01809115 +:105DC000BC0087FF11C02091B900287F81E090E0DE +:105DD000283211F490E080E0919581959109DF914E +:105DE000CF911F910F910895CF3FDC0741F30E949F +:105DF0007523801B910B8C179D0708F38EEF9FEF87 +:105E0000EECF0F931F93CF93DF93EC0184EC80933D +:105E1000BC000E9475238C018091BC0087FF08C0E4 +:105E20008091BB0090E0DF91CF911F910F91089579 +:105E3000CF3FDC0789F30E947523801B910B8C17E1 +:105E40009D0750F38EEF9FEFEECF0F931F93CF93ED +:105E5000DF93EC0184E88093BC000E9475238C01E1 +:105E60008091BC0087FF08C08091BB0090E0DF916B +:105E7000CF911F910F910895CF3FDC0789F30E94C6 +:105E80007523801B910B8C179D0750F38EEF9FEFAE +:105E9000EECFCF92DF92EF92FF920F931F93CF93AB +:105EA000DF936B018A017901B9010E94582EE60146 +:105EB0000C0D1D1DC017D10761F424E92093BC000F +:105EC000DF91CF911F910F91FF90EF90DF90CF90D6 +:105ED000089597FDF2CFB70189910E94D22EEACFA3 +:105EE000CF92DF92EF92FF920F931F93CF93DF93A6 +:105EF000C62F6A017901B8010E94582E97FD0CC087 +:105F0000B8018C2F0E94D22EE601EC0CFD1CCE15A0 +:105F1000DF0511F097FF0CC024E92093BC00DF914E +:105F2000CF911F910F91FF90EF90DF90CF90089548 +:105F3000B80189910E94D22EEACFCF92DF92EF92E0 +:105F4000FF920F931F93CF93DF93F82EE62EEA0173 +:105F50006901B8010E94582E97FD15C0B8018E2D19 +:105F60000E94D22E97FD0FC0B8018F2D81600E9434 +:105F7000582EF12CE12C21E0C21AD108EC14FD04BA +:105F800000F597FF11C024E92093BC0018161906EC +:105F900014F490E080E0DF91CF911F910F91FF907A +:105FA000EF90DF90CF900895C8010E94012F97FDD8 +:105FB00004C0FE01EE0DFF1D80832FEFE21AF20AEE +:105FC000DDCF97FDE0CFC8010E94252F97FDDBCFE5 +:105FD000CC0DDD1D8883D7CF84E98093BC00089564 +:105FE0008EE14B9B02C08150E1F74B9BFECF0895A1 +:105FF0005B9880E28A95F1F75B9A0895FC013BE09B +:106000003A95F1F798E020E080E031E040E14A95F0 +:10601000F1F7880F4B9B02C08160232742E04A952D +:10602000F1F7000040E14A95F1F7915079F790E1DE +:106030009A95F1F799B132E03A95F1F7000040E115 +:106040004A95F1F793FB992790F992272081920FB7 +:1060500090830895EF92FF920F931F93CF93DF9356 +:106060000F92CDB7DEB719828C017C01E60EF11CD0 +:106070000E151F0561F481E09981911180E00F9068 +:10608000DF91CF911F910F91FF90EF9008950E94A3 +:10609000F02FCE0101960E94FE2FF80181938F010F +:1060A000E7CF539A5B9A089553985B9AEB9AE9E687 +:1060B000F0E080818F73808308956150770B91E0C9 +:1060C00001C0990F6A95EAF720E031E0911108C00C +:1060D000222391F05B9A80E28A95F1F75B9808950C +:1060E000492F482339F05B9A232740E24A95F1F77C +:1060F0009695ECCF5B98F9CF5B98EDCFFF920F931D +:106100001F93CF93DF93EC018C01060F111DC01775 +:10611000D10731F4DF91CF911F910F91FF90089536 +:10612000F9900E94F82F68E08F2D0E945D30EFCF2C +:106130001F920F920FB60F921124EF92FF920F93BE +:106140001F932F933F934F935F936F937F938F93FF +:106150009F93AF93BF93EF93FF93CF93DF930F92F0 +:10616000CDB7DEB719820E94F02FCE0101960E94B2 +:10617000FE2FA82FA695A695A695282F22952570C7 +:106180009A2F9570290F922F937026952695920F2E +:10619000982797708981982B09F075C0A83008F06E +:1061A00072C080E18A95F1F75B9A539AB2E0BA9592 +:1061B000F1F700C05B98EA2EF12CEAE0AE9FD00127 +:1061C0001124AF5FBE4F1896ED91FC91199730974F +:1061D000B1F06091EC017091ED0116962D913C911A +:1061E0001797260F371F13968D919C911497680F60 +:1061F000791F15964C91159712968C9109958AE006 +:106200008E9DF0018F9DF00D1124EF5FFE4F658193 +:10621000662351F02091EC013091ED018681978148 +:10622000820F931F0E947E300E94F82FF0E1FA95B2 +:10623000F1F75B9853985B9A80E18A95F1F78AE0D1 +:106240008E9D80018F9D100D11240F5F1E4FD80170 +:1062500012966C911297662371F12091EC013091A6 +:10626000ED0113968D919C91820F931F0E942A300D +:10627000D801ED91FC91882311F088E001C082E003 +:1062800080830E94F02F0F90DF91CF91FF91EF91CB +:10629000BF91AF919F918F917F916F915F914F913E +:1062A0003F912F911F910F91FF90EF900F900FBE94 +:1062B0000F901F901895ED91FC91DFCF0F931F93D6 +:1062C000CF93DF93EC0108970CF0A9C08AE08C9F74 +:1062D000F0018D9FF00D1124EF5FFE4F80819181C1 +:1062E000892B09F49CC0F894539A5B9885E08A95B1 +:1062F000F1F700008C2F869585709C2F9570890F83 +:10630000982F937086958695890F8E0193E0000FE4 +:10631000111F9A95E1F7082B0E94F82F00C068E042 +:10632000802F0E945D30A0E1AA95F1F753985B9A07 +:106330004B9B27C087E090E04B9925C08AE08C9F5B +:1063400080018D9F100D11240F5F1E4FF801658194 +:106350006623A1F12091EC013091ED0186819781B6 +:10636000820F931F0E942A30811128C0539A5B9A92 +:10637000D801ED91FC9182E08083789482E090E0F6 +:1063800016C000C0D5CF0197B9F4539A5B9A8AE042 +:106390008C9FF0018D9FF00D1124EF5FFE4F019057 +:1063A000F081E02D81E08083789481E090E0DF91BE +:1063B000CF911F910F91089500C0BECF0E94F02F82 +:1063C000B0E2BA95F1F75B98539AE0E1EA95F1F7FC +:1063D0008AE08C9FF0018D9FF00D1124EF5FFE4F3E +:1063E0006281662351F02091EC013091ED018381AF +:1063F0009481820F931F0E947E300E94F82F8AE0C2 +:106400008C9FF0018D9FF00D1124EF5FFE4F0190E6 +:10641000F081E02D1082789490E080E0C8CF84E095 +:1064200090E0C5CFAA1BBB1B51E107C0AA1FBB1F31 +:10643000A617B70710F0A61BB70B881F991F5A9510 +:10644000A9F780959095BC01CD010895991B79E03D +:1064500004C0991F961708F0961B881F7A95C9F7F4 +:106460008095089597FB072E16F4009407D077FDCA +:1064700009D00E94123207FC05D03EF49095819518 +:106480009F4F0895709561957F4F0895EE0FFF1F00 +:106490000590F491E02D09946927962769277827BC +:1064A000872778270895FB01DC0102C005900D9233 +:1064B00041505040D8F70895FB01DC0104C08D9194 +:1064C0000190801921F441505040C8F7881B990B66 +:1064D0000895FB01DC0102C001900D924150504033 +:1064E000D8F70895F999FECF92BD81BDF89A992702 +:1064F00080B50895A6E1B0E044E050E00C94AC32E1 +:10650000A8E1B0E042E050E00C94AC32262FF999BB +:10651000FECF92BD81BDF89A019700B4021639F002 +:106520001FBA20BD0FB6F894FA9AF99A0FBE0895D3 +:106530000396272F0E9487320E948632252F0E94C1 +:106540008732242F0C9487320196272F0E9487329E +:106550000C948632DC01CB01FC01F999FECF06C018 +:10656000F2BDE1BDF89A319600B40D924150504011 +:10657000B8F708950E94C1326894B1110C94503359 +:1065800008950E94353388F09F5798F0B92F9927C6 +:10659000B751B0F0E1F0660F771F881F991F1AF00E +:1065A000BA95C9F714C0B13091F00E944F33B1E0F1 +:1065B00008950C944F33672F782F8827B85F39F0F0 +:1065C000B93FCCF3869577956795B395D9F73EF4A7 +:1065D00090958095709561957F4F8F4F9F4F08954F +:1065E000E89409C097FB3EF490958095709561956D +:1065F0007F4F8F4F9F4F9923A9F0F92F96E9BB2723 +:106600009395F695879577956795B795F111F8CF9E +:10661000FAF4BB0F11F460FF1BC06F5F7F4F8F4F09 +:106620009F4F16C0882311F096E911C0772321F0FF +:106630009EE8872F762F05C0662371F096E8862F97 +:1066400070E060E02AF09A95660F771F881FDAF7EE +:10665000880F9695879597F9089557FD9058440FA0 +:10666000551F59F05F3F71F04795880F97FB991FB1 +:1066700061F09F3F79F0879508951216130614066E +:10668000551FF2CF4695F1DF08C0161617061806FB +:10669000991FF1CF86957105610508940895E894D6 +:1066A000BB2766277727CB0197F908950E946933A6 +:1066B0000C94DA330E94CC3338F00E94D33320F0AC +:1066C000952311F00C94C3330C94C93311240C940A +:1066D00050330E942D3370F3959FC1F3950F50E016 +:1066E000551F629FF001729FBB27F00DB11D639F84 +:1066F000AA27F00DB11DAA1F649F6627B00DA11D2A +:10670000661F829F2227B00DA11D621F739FB00DCF +:10671000A11D621F839FA00D611D221F749F33273F +:10672000A00D611D231F849F600D211D822F762FD8 +:106730006A2F11249F5750409AF0F1F088234AF0B5 +:10674000EE0FFF1FBB1F661F771F881F9150504021 +:10675000A9F79E3F510580F00C94C3330C9450333D +:106760005F3FE4F3983ED4F3869577956795B795A8 +:10677000F795E7959F5FC1F7FE2B880F911D9695C2 +:10678000879597F9089597F99F6780E870E060E032 +:1067900008959FEF80EC089500240A9416161706BA +:1067A00018060906089500240A9412161306140602 +:1067B00005060895092E0394000C11F4882352F065 +:1067C000BB0F40F4BF2B11F460FF04C06F5F7F4F1D +:1067D0008F4F9F4F0895F894FFCF28102810311045 +:1067E00031103310311031103110281028103810AA +:1067F0003110311038101A124212E5134212E5130B +:1068000075129612E5139413A1138B1B8B1BE41BBB +:10681000E41B161CBE1BBE1BBE1B301CA11CB11CE6 +:10682000B11CB52CB92CFD2C0E2D192D382D3B2D5E +:106830006E2D8F2D0B2D0B2D9A2D9D2DA02DC52D41 +:08684000E72DEA2DEC2D112ECD +:1068480001460200000001000000004602000000AE +:106858000501000000460200000001060000004695 +:1068680002000000010700000046020408000000C2 +:106878000000004602080C0000000000004602016B +:1068880014000000000000013508760D550D510D6B +:106898004D0D340894920021007F220007018000EA +:1068A8000044004444012D2D2D4C415945522D2DB5 +:1068B8000042617365200047616D6520005261697F +:1068C8007365004C6F776572002D2D2D4C4F434B2F +:1068D8002D2D2D0043617073004E756D005363724A +:1068E8006C002020534F4C4152002054454D5045D8 +:1068F800535400818283E200E900EA00B500B60043 +:10690800B700CD008301CC008A01920194012102D5 +:10691800230224022502260227022A02B300B40019 +:106928006F0070000704070907030708C00266978D +:10693800C634F40000000000F5F6F731333236FFB4 +:1069480000FF0100010000FFFF0000010001FF003F +:10695800000810182028303838302820181008006F +:1069680000010202020202020202020240227B49E4 +:0C697800012701AC00B40BCD0BED0B00AF +:00000001FF diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index c53fc902cbc1..1e78d55dd000 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -18,6 +18,17 @@ along with this program. If not, see . #define MASTER_LEFT +#undef MATRIX_ROWS +#undef MATRIX_COLS +#undef MATRIX_ROW_PINS +#undef MATRIX_COL_PINS +#undef ENCODER_RESOLUTION +#define MATRIX_ROWS 10 +#define MATRIX_COLS 8 //Added extra column for rotary encoder VIA mapping. +#define MATRIX_ROW_PINS { C6, D7, E6, B4, F4 } +#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6, NO_PIN } //A virtual pin is needed for the encoder key matrix in via. +#define ENCODER_RESOLUTION 4 //Reduce encoder double-input issue. + #undef DEBOUNCE #define DEBOUNCE 6 //Default is 5 diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c index da7667dd3b58..f890fdb3857b 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c @@ -1,36 +1,48 @@ -/* -Copyright 2021 Spencer Deven -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 3 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 . -*/ +/* Copyright + * 2021 solartempest + * 2021 QMK + * + * 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 . + */ -//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via. #ifdef ENCODER_ENABLE + static uint8_t encoder_state[2] = {0}; + static keypos_t encoder_ccw[2] = {{7, 4}, {7, 9}}; //Use these keymap positions to specify the encoder functions on rotate. + static keypos_t encoder_cw[2] = {{7, 3}, {7, 8}}; -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { - if (clockwise) { - tap_code(KC_VOLD); - } else { - tap_code(KC_VOLU); - } - } else if (index == 1) { - if (clockwise) { - tap_code(KC_PGUP); - } else { - tap_code(KC_PGDOWN); - } - } - return true; -} + void encoder_action_unregister(void) { + for (int index = 0; index < 2; ++index) { + if (encoder_state[index]) { + keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = (timer_read() | 1)}; + encoder_state[index] = 0; + action_exec(encoder_event); + } + } + } + void encoder_action_register(uint8_t index, bool clockwise) { + keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = (timer_read() | 1)}; + encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); + action_exec(encoder_event); + } + + void matrix_scan_user(void) { encoder_action_unregister(); } + + bool encoder_update_user(uint8_t index, bool clockwise) { + encoder_action_register(index, clockwise); + return false; + }; #endif + diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c index 6b52540f005c..a5e43dcae8a1 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -13,8 +13,7 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H #ifdef OLED_ENABLE - //#include "oled.c" - #include "snakey_minimal.c" + #include "snake_photo.c" #endif #include "encoder.c" @@ -24,6 +23,29 @@ along with this program. If not, see . bool was_scrolling = true; //Remember preferred state of trackball scrolling #endif +#ifdef HAPTIC_ENABLE + #include "drivers/haptic/DRV2605L.h" +#endif + +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) + extern rgblight_config_t rgblight_config; // To pull layer status for RGBLIGHT +#endif + +//Variables for custom keycodes +#ifdef SUPER_ALT_TAB_ENABLE + bool is_alt_tab_active = false; // Super Alt Tab Code + uint16_t alt_tab_timer = 0; +#endif +bool lshift_held = false; // LShift Backspace Delete whole Word Code +bool rshift_held = false; // RShift Backspace Delete whole Word Code +static uint16_t held_shift = 0; + +#ifdef D2SKATE_MACRO_ENABLE + uint16_t D2SKATE_TIMER = 0; + bool D2SKATE_skated = false; //Has skated + bool D2SKATE_reset = true; //Has skated +#endif + #ifdef VIA_ENABLE enum custom_keycodes { //Use USER 00 instead of SAFE_RANGE for Via. VIA json must include the custom keycode. ATABF = USER00, //Alt tab forwards @@ -48,51 +70,76 @@ along with this program. If not, see . }; #endif +#ifdef VIA_ENABLE + // Extra keys are added for rotary encoder support in VIA + #define LAYOUT_via( \ + L00, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, R00, \ + L10, L11, L12, L13, L14, L15, L06, R06, R15, R14, R13, R12, R11, R10, \ + L20, L21, L22, L23, L24, L25, L16, R16, R25, R24, R23, R22, R21, R20, \ + L30, L31, L32, L33, L34, L35, L26, L36, L37, R37, R36, R26, R35, R34, R33, R32, R31, R30, \ + L40, L41, L42, L43, L44, L45, L46, L47, R47, R46, R45, R44, R43, R42, R41, R40 \ + ) \ + { \ + { L00, L01, L02, L03, L04, L05, L06, KC_NO }, \ + { L10, L11, L12, L13, L14, L15, L16, KC_NO }, \ + { L20, L21, L22, L23, L24, L25, L26, KC_NO }, \ + { L30, L31, L32, L33, L34, L35, L36, L37 }, \ + { L40, L41, L42, L43, L44, L45, L46, L47 }, \ + { R00, R01, R02, R03, R04, R05, R06, KC_NO }, \ + { R10, R11, R12, R13, R14, R15, R16, KC_NO }, \ + { R20, R21, R22, R23, R24, R25, R26, KC_NO }, \ + { R30, R31, R32, R33, R34, R35, R36, R37 }, \ + { R40, R41, R42, R43, R44, R45, R46, R47 } \ + } +#endif + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* +#ifndef VIA_ENABLE //This will bypass the layout when VIA is enabled to save space. Requires loading layout in VIA otherwise random keys may be occur. [0] = LAYOUT( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, RGB_TOG, KC_DEL,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , - KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_EQL, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_MUTE, _______, _______, RGB_TOG, KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, MO(1), KC_SPC, KC_ENT, _______, _______, KC_ENT, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), [1] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, - KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, - _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, - _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ - ), + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), [2] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, - KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, - _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, - _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ - ), + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_PSLS, KC_P7, KC_P8, KC_P9, KC_NLCK, _______, _______, _______, _______, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_F12, + KC_CAPS, KC_P4, KC_P5, KC_P6, KC_NLCK, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_NLCK, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, + _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______ + ), [3] = LAYOUT( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, _______, _______, _______, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SPI, RGB_HUI, RGB_SAI, RGB_VAI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD - ) -*/ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +#endif }; #ifdef POINTING_DEVICE_ENABLE void run_trackball_cleanup(void) { //Set colour of trackball LED. Does not require RGBLIGHT_ENABLE if colour shorthands are not used. #ifdef POINTING_DEVICE_ENABLE if (trackball_is_scrolling) { - pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); + pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. + //pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); } else if (!trackball_is_precision) { pimoroni_trackball_set_rgbw(0, 27, 199, 0x00); } else { - pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. + //pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. + pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); } #endif } @@ -174,7 +221,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; #endif -/* case NMR: //Move window to next monitor on right + case NMR: //Move window to next monitor on right if (record->event.pressed) { register_code(KC_LSFT); register_code(KC_LWIN); @@ -266,7 +313,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; #endif -*/ + #ifdef POINTING_DEVICE_ENABLE //Allow modes when trackball is enabled. case PM_SCROLL: if (record->event.pressed) { diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk index f7bdbb17cb52..2d23c52fce08 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/rules.mk @@ -2,7 +2,7 @@ VIA_ENABLE = yes BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite GRAVE_ESC_ENABLE = no # Save space by not using KC_GESC (+127) SPACE_CADET_ENABLE = no # Save space by not using space cadet left/right shift (+350) -#MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. +MOUSEKEY_ENABLE = no # Mouse keys (+1482). Not required for trackball usage. POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) POINTING_DEVICE_DRIVER = pimoroni_trackball \ No newline at end of file diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/snake_photo.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/snake_photo.c new file mode 100644 index 000000000000..61685f8a8db9 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/snake_photo.c @@ -0,0 +1,325 @@ +/* Copyright + * 2021 solartempest + * 2021 Luna code adapted from HellSingCoder and Jackasaur + * 2021 QMK + * + * 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 o + * 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 . + */ + +//SSD1306 OLED update loop +#ifdef OLED_ENABLE + uint32_t oled_timer = 0; //OLED timeout + led_t led_usb_state; + + #define KEYBOARD_PET + // KEYBOARD PET START + + // advanced settings + #define ANIM_FRAME_DURATION 300 // how long each frame lasts in ms. Default is 200. + #define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024 + + // timers + uint32_t anim_timer = 0; + uint32_t text_timer = 0; + + // current frame + uint8_t current_frame = 0; + + // status variables + #ifndef SNEAK_DISABLE + bool isSneaking = false; + #endif + bool isJumping = false; + bool showedJump = true; + bool isBarking = false; + + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) + static void render_logo_slave(int LUNA_X, int LUNA_Y) { + static const char PROGMEM luna_logo[] = { // 'snake-logo', 64x44px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x0c, 0xcf, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x60, 0x60, + 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x7f, 0x7f, 0xf3, 0xf3, 0xff, 0xff, 0xfe, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xf8, 0xfe, 0xfe, 0xff, + 0xff, 0x7f, 0x3f, 0x3f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0x7f, 0x7f, 0xff, 0xff, 0xfe, + 0xf8, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc1, 0xc1, 0xe1, 0xf7, 0xff, + 0xff, 0x7f, 0x3f, 0x07, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xc0, + 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x07, 0x03, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x3f, + 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf8, 0xfc, 0x3e, 0x0f, 0x07, 0x01, + 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xe0, 0xc0, 0xc0, 0xe0, 0xe0, + 0xf0, 0xf0, 0xf8, 0xf8, 0xfe, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xf0, 0xe0, + 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xfc, 0x7e, 0x3f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, + 0x0f, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + #endif + + #if defined(OLED_LOGO) && !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) + static void render_logo_master(int LUNA_X, int LUNA_Y) { + static const char PROGMEM luna_logo[] = { // 'photo-logo', 64x44px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0x06, 0x06, 0x52, + 0xda, 0xca, 0x52, 0x06, 0xec, 0x18, 0x10, 0x10, 0x10, 0x10, 0x90, 0x9e, 0x43, 0x60, 0x20, 0x23, + 0x12, 0x10, 0x12, 0x10, 0x13, 0x31, 0x20, 0x60, 0xc3, 0x9f, 0x1e, 0x10, 0x1c, 0x12, 0x12, 0x12, + 0x12, 0x1c, 0x10, 0xf0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xf7, 0x07, 0xe0, 0xc0, 0x00, 0xf8, 0xcf, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x03, 0x06, 0x0e, 0x08, 0x00, 0x01, 0xc6, 0xfc, 0x00, 0x38, 0x70, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0xfd, 0xfc, 0x00, 0x01, 0x18, 0x31, 0x63, 0x0f, 0x1c, 0x38, 0x30, 0x73, 0x66, + 0x64, 0x64, 0x60, 0x60, 0x60, 0x70, 0x30, 0x38, 0x1c, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0xa0, + 0xe0, 0x40, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0c, 0x0c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1d, 0x1d, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, + 0x1c, 0x1c, 0x1c, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + + oled_set_cursor(LUNA_X,LUNA_Y); + oled_write_raw_P(luna_logo, sizeof(luna_logo)); + } + #endif + + /*// logic + static void render_luna(int LUNA_X, int LUNA_Y) { + + // Sit + static const char PROGMEM sit[2][ANIM_SIZE] = { + // 'sit1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x38, 0x70, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'sit2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xcc, + 0xcc, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3f, 0x7f, 0xfc, 0xf9, 0xf1, + 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x01, 0x01, 0x02, 0x06, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x60, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0xf9, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + //Walk and run animations have been removed to save space. + + // Bark + static const char PROGMEM bark[2][ANIM_SIZE] = { + // 'bark1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0x30, 0x70, 0xe0, 0xe0, 0xc0, 0xc0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0xff, 0xff, 0xe7, 0xe7, 0xef, 0xef, 0xcf, 0xcb, 0x83, 0x83, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x1c, 0x38, 0x78, 0xf1, 0xe3, 0xe3, 0xe7, 0xf7, 0xf7, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }, + + // 'bark2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0x60, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x9f, + 0x0f, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x7e, 0xe6, 0x83, 0x03, 0x0f, 0x43, 0x43, 0x90, 0x88, 0x08, + 0x00, 0x00, 0x03, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xe0, 0xf0, 0xf0, 0xfb, 0xff, 0xff, 0xff, 0x7f, + 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + + // Sneak + #ifndef SNEAK_DISABLE + static const char PROGMEM sneak[2][ANIM_SIZE] = { + // 'sneak1', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0xf8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf1, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x01, 0x03, 0x06, 0x02, 0x00, 0x00, 0x00, + }, + // 'sneak2', 32x22px + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, + 0x7c, 0xfc, 0xee, 0xe6, 0xfc, 0xfc, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x7f, 0xf0, 0xf8, 0xf8, 0x7c, 0x7c, 0xf8, 0xf0, 0xf0, 0xf1, 0xe7, 0xef, 0xef, + 0xfe, 0xfe, 0xfe, 0xfc, 0xfc, 0xf8, 0xf0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + } + }; + #endif + + // animation + void animate_luna(void) { + // jump + if (isJumping || !showedJump) { + // clear + oled_set_cursor(LUNA_X,LUNA_Y +2); + oled_write(" ", false); + oled_set_cursor(LUNA_X,LUNA_Y -1); + showedJump = true; + } else { + // clear + oled_set_cursor(LUNA_X,LUNA_Y -1); + oled_write(" ", false); + oled_set_cursor(LUNA_X,LUNA_Y); + } + + // switch frame + current_frame = (current_frame + 1) % 2; + + // current status + if(isBarking) { + oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE); + #ifndef SNEAK_DISABLE + } else if(isSneaking) { + oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE); + #endif + } else { + oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE); + } + } + + // animation timer + if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) { + anim_timer = timer_read32(); + animate_luna(); + } + } + // KEYBOARD PET END + */ + + + #if !defined(OLED_NO_SLAVE) && !defined(OLED_NO_MASTER) + static void print_logo_narrow(void) { + //oled_set_cursor(0,1); + //oled_write("----------", false); + + oled_set_cursor(0,3); + oled_write(" SOLAR", false); + oled_set_cursor(0,4); + oled_write(" TEMPEST", false); + + //oled_set_cursor(0,15); //Last line on the display + //oled_write("----------", false); + + #ifdef OLED_LOGO + render_logo_slave(0,7); //Not defining this in config.h will save space (+112). + #endif + } + #endif + + static void print_status_narrow(void) { + // Print current layer + oled_set_cursor(0,1); + oled_write("---LAYER--", false); + + oled_set_cursor(0,2); + switch (get_highest_layer(layer_state)) { + case 0: + case 2: + oled_write("Base ", false); + break; + case 1: + oled_write("Game ", false); + break; + case 4: + oled_write("Raise", false); + break; + case 3: + oled_write("Lower", false); + break; + } + + // lock status + oled_set_cursor(0,5); + oled_write("---LOCK---", false); + oled_set_cursor(0,6); + oled_write("Caps", led_usb_state.caps_lock); + oled_set_cursor(0,7); + oled_write("Num", !(led_usb_state.num_lock)); + oled_set_cursor(0,8); + oled_write("Scrl", led_usb_state.scroll_lock); + + /* KEYBOARD PET RENDER START */ + //render_luna(0,11); + /* KEYBOARD PET RENDER END */ + #ifdef OLED_LOGO + render_logo_master(0,11-0); //Not defining this in config.h will save space (+112). + #endif + } + + oled_rotation_t oled_init_user(oled_rotation_t rotation) { + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + else{ + return OLED_ROTATION_270; + } + } + + bool oled_task_user(void) { + led_usb_state = host_keyboard_led_state(); + + + if (is_keyboard_master()) { + if (timer_elapsed32(oled_timer) > 30000) {//OLED timeout 30000ms = 30s + oled_off(); + return false; + } else { + oled_on(); + } + #ifndef OLED_NO_MASTER + print_status_narrow(); + #endif + } else { + #ifdef OLED_NO_SLAVE //do not render slave + #else + #if !defined(OLED_NO_MASTER) //render as normal + print_logo_narrow(); + #else //render status on slave + print_status_narrow(); + #endif + #endif + } + return false; + } +#endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json new file mode 100644 index 000000000000..87a57dfe59bf --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json @@ -0,0 +1,82 @@ +{ + "name":"Zodiark", + "vendorId":"0xF901", + "productId":"0xF902", + "lighting": "qmk_rgblight", + "matrix": { "rows": 10, "cols": 8 }, + "customKeycodes": [ + { + "name": "Super Alt Tab FWD", + "title": "Alt Tab Forwards in Windows", + "shortName": "ATABF" + }, + { + "name": "Super Alt Tab REV", + "title": "Alt Tab Reverse in Windows", + "shortName": "ATABR" + }, + { + "name": "Move Window Right", + "title": "Move Window Right in Windows", + "shortName": "MWR" + }, + { + "name": "Move Window Left", + "title": "Move Window Left in Windows", + "shortName": "MWL" + }, + { + "name": "Shift-BSPC", + "title": "Shift-Backspace to Delete Whole Words", + "shortName": "SBS" + }, + { + "name": "Trackball Scroll", + "title": "Pimoroni Trackball Scroll Mode", + "shortName": "PM_SCROLL" + }, + { + "name": "Trackball Precision", + "title": "Pimoroni Trackball Precision Mode", + "shortName": "PM_PRECISION" + }, + { + "name": "D2 Hunter Skate", + "title": "Destiny 2 Hunter Sword Skate", + "shortName": "D2SKATE" + } + ], + "layouts": + { + "keymap": + [ + [{"y":1,"x":3},"0,3",{"x":11},"5,3"], + [{"y":-0.87,"x":2},"0,2",{"x":1},"0,4",{"x":9},"5,4",{"x":1},"5,2"], + [{"y":-0.88,"x":5},"0,5",{"x":7},"5,5"], + [{"y":-0.72},"0,0","0,1",{"x":15},"5,1","5,0"], + [{"y":-0.53,"x":3},"1,3",{"x":11},"6,3"], + [{"y":-0.87,"x":2},"1,2",{"x":1},"1,4",{"x":9},"6,4",{"x":1},"6,2"], + [{"y":-0.88,"x":5},"1,5",{"x":7},"6,5"], + [{"y":-0.72},"1,0","1,1",{"x":15},"6,1","6,0"], + [{"y":-0.83,"x":6},"0,6",{"x":5},"5,6"], + [{"y":-0.7,"x":3},"2,3",{"x":11},"7,3"], + [{"y":-0.87,"x":2},"2,2",{"x":1},"2,4",{"x":9},"7,4",{"x":1},"7,2"], + [{"y":-0.88,"x":5},"2,5",{"x":7},"7,5"], + [{"y":-0.72},"2,0","2,1",{"x":15},"7,1","7,0"], + [{"y":-0.83,"x":6},"1,6",{"x":5},"6,6"], + [{"y":-0.7,"x":3},"3,3",{"x":11},"8,3"], + [{"y":-0.87,"x":2},"3,2",{"x":1},"3,4",{"x":9},"8,4",{"x":1},"8,2"], + [{"y":-0.88,"x":5},"3,5",{"x":7},"8,5"], + [{"y":-0.72},"3,0","3,1",{"x":15},"8,1","8,0"], + [{"y":-0.53,"x":3},"4,3",{"x":11},"9,3"], + [{"y":-0.87,"x":2},"4,2",{"x":1},"4,4",{"x":9},"9,4",{"x":1},"9,2"], + [{"y":-0.6},"4,0","4,1",{"x":15},"9,1","9,0"], + [{"r":30,"rx":6.5,"ry":4.25,"y":-0.6,"x":0.8,"c":"#aaaaaa"},"3,7","4,7"], + [{"r":30,"rx":6.5,"ry":4.25,"y":0.6,"x":0.17,"c":"#777777"},"2,6","3,6"], + [{"x":-0.33,"w":1.5},"4,5","4,6"], + [{"r":-30,"rx":13,"y":-0.8,"x":-3.2,"c":"#aaaaaa"},"8,7","9,7"], + [{"r":-30,"rx":13,"y":0.35,"x":-2.6,"c":"#777777"},"8,6","7,6"], + [{"x":-2.6},"9,6",{"w":1.5},"9,5"] + ] + } +} diff --git a/keyboards/aleblazer/zodiark/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json similarity index 83% rename from keyboards/aleblazer/zodiark/zodiark VIA layout.json rename to keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json index 6c6ec1511ed3..363ef12f6230 100644 --- a/keyboards/aleblazer/zodiark/zodiark VIA layout.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json @@ -10,21 +10,24 @@ "KC_3", "KC_4", "KC_5", - "S(LWIN(SWIN(KC_LEFT)))", + "KC_MS_BTN2", + "KC_ESC", "KC_ESC", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", - "KC_F13", + "KC_MS_BTN1", + "KC_A", "KC_TAB", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", - "KC_LBRC", + "USER05", + "KC_VOLD", "KC_LSFT", "KC_Z", "KC_X", @@ -32,6 +35,7 @@ "KC_V", "KC_B", "KC_MUTE", + "KC_VOLD", "KC_UP", "KC_DOWN", "KC_LGUI", @@ -39,27 +43,31 @@ "KC_LCTL", "KC_ENT", "TT(3)", + "KC_VOLU", "KC_MINS", "KC_0", "KC_9", "KC_8", "KC_7", "KC_6", - "S(LWIN(SWIN(KC_RGHT)))", - "KC_BSPC", + "USER02", + "KC_Y", + "USER04", "KC_P", "KC_O", "KC_I", "KC_U", "KC_Y", - "KC_F14", + "USER03", + "KC_RBRC", "KC_QUOT", "KC_SCLN", "KC_L", "KC_K", "KC_J", "KC_H", - "KC_RBRC", + "USER06", + "KC_MSTP", "KC_RSFT", "KC_SLSH", "KC_DOT", @@ -67,13 +75,15 @@ "KC_M", "KC_N", "C(KC_W)", + "KC_LEFT", "KC_RGHT", "KC_LEFT", "TO(1)", "KC_RALT", "KC_RCTL", "KC_SPC", - "TT(4)" + "TT(4)", + "KC_RGHT" ], [ "KC_PSCR", @@ -83,6 +93,7 @@ "KC_3", "KC_G", "KC_T", + "KC_S", "KC_F12", "KC_ESC", "KC_Q", @@ -90,6 +101,7 @@ "KC_E", "KC_R", "KC_G", + "KC_C", "KC_TAB", "KC_TAB", "KC_A", @@ -97,6 +109,7 @@ "KC_D", "KC_F", "KC_B", + "KC_SPC", "KC_LSFT", "KC_LSFT", "KC_Z", @@ -104,13 +117,15 @@ "KC_C", "KC_V", "KC_TRNS", + "KC_TRNS", "KC_LCTL", "KC_LCTL", "KC_TRNS", "KC_LALT", - "KC_LCTL", + "USER07", "KC_SPC", "KC_F22", + "KC_TRNS", "KC_F4", "KC_F11", "KC_TRNS", @@ -118,6 +133,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "KC_F12", "KC_TRNS", "KC_TRNS", @@ -125,6 +141,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", + "TO(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -132,6 +149,8 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_3", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -141,11 +160,12 @@ "KC_TRNS", "KC_RALT", "KC_TRNS", - "TO(0)", + "TO(1)", "KC_RALT", "MO(4)", - "KC_LCTL", - "MO(2)" + "KC_ENT", + "MO(2)", + "KC_TRNS" ], [ "KC_GRV", @@ -155,6 +175,7 @@ "KC_4", "KC_5", "KC_BSLS", + "KC_TRNS", "KC_ESC", "KC_Q", "KC_W", @@ -162,6 +183,7 @@ "KC_R", "KC_T", "KC_BSPC", + "KC_MINS", "KC_TAB", "KC_A", "KC_S", @@ -169,6 +191,7 @@ "KC_F", "KC_G", "KC_LBRC", + "KC_P", "KC_LSFT", "KC_Z", "KC_X", @@ -176,13 +199,15 @@ "KC_V", "KC_B", "KC_TRNS", - "KC_LEFT", + "KC_TRNS", + "KC_UP", "KC_DOWN", "KC_LGUI", "KC_LALT", "KC_LCTL", "KC_SPC", "TT(2)", + "KC_TRNS", "KC_MINS", "KC_0", "KC_9", @@ -190,6 +215,7 @@ "KC_7", "KC_6", "KC_DEL", + "KC_RCTL", "KC_BSPC", "KC_P", "KC_O", @@ -197,6 +223,7 @@ "KC_U", "KC_Y", "KC_BSLS", + "KC_F5", "KC_QUOT", "KC_SCLN", "KC_L", @@ -204,6 +231,7 @@ "KC_J", "KC_H", "KC_RBRC", + "KC_TRNS", "KC_RSFT", "KC_SLSH", "KC_DOT", @@ -211,13 +239,15 @@ "KC_M", "KC_N", "KC_TRNS", - "KC_DOWN", - "KC_UP", + "KC_TRNS", + "KC_RGHT", + "KC_LEFT", "TO(1)", "KC_RALT", "KC_RCTL", "KC_ENT", - "TT(3)" + "TT(3)", + "KC_TRNS" ], [ "KC_GRV", @@ -226,21 +256,24 @@ "KC_F3", "KC_F4", "KC_F5", - "KC_TRNS", + "KC_F14", + "KC_F9", "KC_ESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", - "KC_TRNS", + "KC_F13", + "KC_8", "KC_TRNS", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", - "KC_TRNS", + "KC_ASTR", + "KC_AMPR", "KC_TRNS", "KC_EQL", "KC_MINS", @@ -248,6 +281,7 @@ "KC_LCBR", "KC_RCBR", "KC_TRNS", + "C(S(KC_TAB))", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -255,12 +289,14 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", + "C(KC_TAB)", "KC_F11", "KC_F10", "KC_F9", "KC_F8", "KC_F7", "KC_F6", + "USER02", "KC_TRNS", "KC_F12", "KC_0", @@ -268,43 +304,49 @@ "KC_8", "KC_7", "KC_6", + "USER03", "KC_TRNS", - "KC_PIPE", + "KC_UNDS", "KC_RPRN", "KC_LPRN", "KC_ASTR", "KC_AMPR", "KC_CIRC", "KC_TRNS", + "C(KC_X)", "KC_TRNS", "KC_BSLS", - "KC_COLN", + "KC_SCLN", "KC_DOT", "KC_RBRC", "KC_LBRC", "KC_TRNS", + "C(KC_MINS)", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_BSPC" + "C(KC_PPLS)" ], [ "KC_TRNS", - "C(KC_MINS)", - "C(KC_PPLS)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "C(KC_PPLS)", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "C(KC_U)", + "KC_TRNS", + "C(KC_UP)", "C(KC_DOWN)", + "C(KC_MINS)", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -312,6 +354,7 @@ "KC_TRNS", "C(KC_LEFT)", "C(KC_RGHT)", + "KC_PSCR", "KC_TRNS", "KC_TRNS", "C(KC_Z)", @@ -331,25 +374,33 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_F14", - "KC_F13", "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_CAPS", + "KC_NO", "KC_DEL", "KC_INS", + "KC_TRNS", "KC_END", "KC_UP", "KC_HOME", + "KC_NLCK", + "KC_NO", + "KC_BSPC", "KC_TRNS", "KC_TRNS", - "KC_BSPC", - "KC_NLCK", "KC_RGHT", "KC_DOWN", "KC_LEFT", + "KC_SLCK", + "KC_NO", + "KC_TRNS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS", @@ -357,7 +408,6 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_SLCK", "KC_TRNS", "KC_WWW_REFRESH", "KC_TRNS", From c05afb42709f9733a1a0c356a2fdfd199addb69e Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 28 Jan 2022 00:50:46 -0500 Subject: [PATCH 88/94] Added readme and updated VIA layout. --- .../zodiark/keymaps/solartempest/readme.md | 89 +++++++++++++++++++ .../solartempest/zodiark VIA layout.json | 2 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md new file mode 100644 index 000000000000..abd0e91ca5c6 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md @@ -0,0 +1,89 @@ +### --- Note: When flashing this firmware, be sure to load the VIA keymap and layout files otherwise your keys won't work! Please refer to the VIA section below. --- + +# Zodiark Keyboard + +![Zodiark](https://i.imgur.com/B7bDYeE.jpg) + +Zodiark is a 68-key column-staggered split keyboard with per key RGB, rotary encoders, and 2x I2C headers per side. Created by Aleblazer. + +For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://www.splitlogic.xyz) + +Build guide is available here: [Zodiark build log/guide](https://www.splitlogic.xyz/buildguides/zodiark-build-guide) + +* Keyboard Maintainer: [Solartempest] +* Hardware Supported: Zodiark, ProMicro / Elite-C, 1.3" 128x64 SSD1306 OLEDs, Pimoroni Trackball, Pimoroni Haptic Buzz! +* Hardware Availability: [Split Logic Group Buy - Discord Link](https://discord.gg/BCSbXwskVt) + +# Custom Features: +### OLED Features: +- OLED displays current layer, lock key status, WPM, custom pixel art, and custom name. +- OLED shuts off on idle and when computer is sleeping. + +### Trackball Features: +- Supports Pimoroni Trackball installed on master side. +- Default action is scrolling. Hold Raise layer for mouse mode. +- Mouse mode and precision mode are toggleable with trackball LED indication. +- Trackball LED shuts off when computer is sleeping (currently bugged). +- Clicking and dragging is enabled using mouse keys on keymap. + +### RGB Features: +- Adds custom layer lighting with custom gradients for each layer. +- Adds white caps lock, scroll lock, and num lock key indicators using the top row LEDs. + +### Rotary Encoder and VIA Features: +- Fully emappable left encoder controls volume up/down/mute. Right encoder left/right arrow keys. +- Allows for live remapping of per-layer rotary encoder functions in VIA. +- VIA support included by default. +- Custom macro key in VIA for Super Alt Tab, which is fully compatible with rotary encoders. +- Custom macro key in VIA for moving windows to other monitors in Windows, which is fully compatible with rotary encoders. + +### Haptic Feedback Features: +- Supports Pimoroni Haptic Bzzz installed on master side. +- Different vibrations when layers are activated. +- Provides tactile feedback when trackball is clicked or mouse keys are used. +- Tactile feedback for specific keys on gaming layer. + +### Tap and Other Features: +- Push left-shift + backspace to delete whole words. Right-shift + backspace to delete whole words in the opposite direction. +- Double tap layers to stay on a layer instead of momentary push. + +### Acknowledgements +- Thanks Drashna for the OLED timeout and extensible rotary encoder code. +- Thanks Dasky for helping me resolve prior trackball code issues. +- Thanks to Hellsingcoder for creating Luna and Jackasaur for optimizing the code for less space. This was the base code I used for my pixel art. + +## Using with VIA (Important! Please Read.) + +- After flashing, in VIA make sure to Import Keymap, which is "zodiark VIA keymap.json". This will alow VIA to recognize the updated layout and custom functions. VIA will auto-recognize the default keyboard but that does not match this firmware because of the necessary customization. +- Go to Save+Load to Load Saved Layout. You can import my own layout "zodiark VIA layout.json" or just use the Keymap tab to assign your own keys. Having another keyboard connected can be handy for doing this step. +- It is a good idea to Save Current Layout after you decide on your mapping. + + +# Compiling + +Compile with the command below: + +```sh +# for Elite C with Left Side Master builds +qmk compile -kb aleblazer/zodiark -km solartempest +``` + +## Flashing + +Flash using the correct command below or use QMK Toolbox. Specifying side during compile is unnecessary as Master Left is defined by default: + +```sh +# for pro micro-based builds +qmk flash -kb aleblazer/zodiark -km solartempest + +# for Elite C or dfu bootloader builds +qmk flash -kb aleblazer/zodiark -km solartempest +``` + +These commands can be mixed if, for example, you have an Elite C on the left and a pro micro on the right. +Press reset button on he keyboard when asked. + +Disconnect the first half, connect the second one and repeat the process. + + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json index 363ef12f6230..a84c34ef429f 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json @@ -160,7 +160,7 @@ "KC_TRNS", "KC_RALT", "KC_TRNS", - "TO(1)", + "TO(0)", "KC_RALT", "MO(4)", "KC_ENT", From bf5d9dee522ce2bf8b85621a9f6962e722f5d02b Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 28 Jan 2022 01:01:11 -0500 Subject: [PATCH 89/94] Update readme --- keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md index abd0e91ca5c6..0aab60f510bd 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md @@ -6,8 +6,6 @@ Zodiark is a 68-key column-staggered split keyboard with per key RGB, rotary encoders, and 2x I2C headers per side. Created by Aleblazer. -For details about the keyboard design, refer to Josef's blog: [Sofle Keyboard - a split keyboard based on Lily58 and Crkbd](https://www.splitlogic.xyz) - Build guide is available here: [Zodiark build log/guide](https://www.splitlogic.xyz/buildguides/zodiark-build-guide) * Keyboard Maintainer: [Solartempest] From 3e62b49e95a48b0428606a2be591243ae6c55074 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 28 Jan 2022 01:06:58 -0500 Subject: [PATCH 90/94] Update readme --- keyboards/aleblazer/zodiark/keymaps/solartempest/config.h | 1 + keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c | 1 + keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md | 1 + 3 files changed, 3 insertions(+) diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index 1e78d55dd000..dd424a9cd91e 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -1,5 +1,6 @@ /* Copyright 2021 Spencer Deven +Copyright 2021 solartempest 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 diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c index a5e43dcae8a1..9c05c6e85122 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -1,5 +1,6 @@ /* Copyright 2021 Spencer Deven +Copyright 2021 solartempest 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 3 of the License, or diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md index 0aab60f510bd..6678f496448b 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/readme.md @@ -46,6 +46,7 @@ Build guide is available here: [Zodiark build log/guide](https://www.splitlogic. - Double tap layers to stay on a layer instead of momentary push. ### Acknowledgements +- Thanks Aleblazer for creating this great keyboard! Also thanks for sharing the VIA json which made addition of the rotary encoders in VIA much faster. - Thanks Drashna for the OLED timeout and extensible rotary encoder code. - Thanks Dasky for helping me resolve prior trackball code issues. - Thanks to Hellsingcoder for creating Luna and Jackasaur for optimizing the code for less space. This was the base code I used for my pixel art. From 83a19dc80abe251cd90756541dc2f20e0232d9dd Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Fri, 28 Jan 2022 11:21:41 -0500 Subject: [PATCH 91/94] Changed product ID as VIA has issue loading layouts with the original one --- keyboards/aleblazer/zodiark/config.h | 2 +- .../aleblazer_zodiark_solartempest.hex | 2 +- .../zodiark/keymaps/solartempest/config.h | 3 + .../solartempest/zodiark VIA keymap.json | 2 +- .../solartempest/zodiark VIA layout TEST.json | 417 ++++++++++++++++++ .../solartempest/zodiark VIA layout.json | 6 +- 6 files changed, 426 insertions(+), 6 deletions(-) create mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json diff --git a/keyboards/aleblazer/zodiark/config.h b/keyboards/aleblazer/zodiark/config.h index 84795f024b67..8bcf2fa53607 100644 --- a/keyboards/aleblazer/zodiark/config.h +++ b/keyboards/aleblazer/zodiark/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0xF901 -#define PRODUCT_ID 0xF902 +//#define PRODUCT_ID 0xF902 #define DEVICE_VER 0x0001 #define MANUFACTURER Aleblazer #define PRODUCT Zodiark diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex index cae6fe51aab8..eff92d92ad0b 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex @@ -190,7 +190,7 @@ :100BD000010001222200070582032000010705030E :100BE0000320000109040200010300000009211193 :100BF000010001227B000705840320000A12010086 -:100C0000020000000801F902F901000102000110D0 +:100C0000020000000801F902FF01000102000110CA :100C1000035A006F0064006900610072006B0000FD :100C200000140341006C00650062006C0061007AF2 :100C300000650072000000040309040011241FBEB7 diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index dd424a9cd91e..2cc9de5b2b6c 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -19,6 +19,9 @@ along with this program. If not, see . #define MASTER_LEFT +#undef PRODUCT_ID +#define PRODUCT_ID 0xFF02 //Original was 0xF902. If the same ID is used, VIA will fail to reload saved layouts. + #undef MATRIX_ROWS #undef MATRIX_COLS #undef MATRIX_ROW_PINS diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json index 87a57dfe59bf..aacda97a9951 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA keymap.json @@ -1,7 +1,7 @@ { "name":"Zodiark", "vendorId":"0xF901", - "productId":"0xF902", + "productId":"0xFF02", "lighting": "qmk_rgblight", "matrix": { "rows": 10, "cols": 8 }, "customKeycodes": [ diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json new file mode 100644 index 000000000000..933628d0fdd2 --- /dev/null +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json @@ -0,0 +1,417 @@ +{ + "name": "Zodiark", + "vendorProductId": 4177657602, + "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], + "layers": [ + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_MS_BTN2", + "KC_ESC", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_MS_BTN1", + "KC_A", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "USER05", + "KC_VOLD", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_MUTE", + "KC_VOLD", + "KC_UP", + "KC_DOWN", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "KC_ENT", + "TT(3)", + "KC_VOLU", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "USER02", + "KC_Y", + "USER04", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "USER03", + "KC_RBRC", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "USER06", + "KC_MSTP", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "C(KC_W)", + "KC_LEFT", + "KC_RGHT", + "KC_LEFT", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "KC_SPC", + "TT(4)", + "KC_RGHT" + ], + [ + "KC_PSCR", + "KC_4", + "KC_1", + "KC_2", + "KC_3", + "KC_G", + "KC_T", + "KC_S", + "KC_F12", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_G", + "KC_C", + "KC_TAB", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_B", + "KC_SPC", + "KC_LSFT", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_TRNS", + "KC_TRNS", + "KC_LCTL", + "KC_LCTL", + "KC_TRNS", + "KC_LALT", + "USER07", + "KC_SPC", + "KC_F22", + "KC_TRNS", + "KC_F4", + "KC_F11", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_F12", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "TO(0)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_3", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_RALT", + "KC_TRNS", + "TO(0)", + "KC_RALT", + "MO(4)", + "KC_ENT", + "MO(2)", + "KC_TRNS" + ], + [ + "KC_GRV", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_MS_BTN2", + "KC_TRNS", + "KC_ESC", + "KC_Q", + "KC_W", + "KC_E", + "KC_R", + "KC_T", + "KC_MS_BTN1", + "KC_MINS", + "KC_TAB", + "KC_A", + "KC_S", + "KC_D", + "KC_F", + "KC_G", + "USER05", + "KC_P", + "KC_LSFT", + "KC_Z", + "KC_X", + "KC_C", + "KC_V", + "KC_B", + "KC_TRNS", + "KC_VOLD", + "KC_UP", + "KC_DOWN", + "KC_LGUI", + "KC_LALT", + "KC_LCTL", + "KC_SPC", + "TT(2)", + "KC_VOLU", + "KC_MINS", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "USER02", + "KC_RCTL", + "KC_BSPC", + "KC_P", + "KC_O", + "KC_I", + "KC_U", + "KC_Y", + "USER03", + "KC_F5", + "KC_QUOT", + "KC_SCLN", + "KC_L", + "KC_K", + "KC_J", + "KC_H", + "USER06", + "KC_TRNS", + "KC_RSFT", + "KC_SLSH", + "KC_DOT", + "KC_COMM", + "KC_M", + "KC_N", + "KC_TRNS", + "KC_LEFT", + "KC_RGHT", + "KC_LEFT", + "TO(1)", + "KC_RALT", + "KC_RCTL", + "KC_ENT", + "TT(3)", + "KC_RGHT" + ], + [ + "KC_GRV", + "KC_F1", + "KC_F2", + "KC_F3", + "KC_F4", + "KC_F5", + "KC_F14", + "KC_F9", + "KC_ESC", + "KC_1", + "KC_2", + "KC_3", + "KC_4", + "KC_5", + "KC_F13", + "KC_8", + "KC_TRNS", + "KC_EXLM", + "KC_AT", + "KC_HASH", + "KC_DLR", + "KC_PERC", + "KC_TRNS", + "KC_AMPR", + "KC_TRNS", + "KC_EQL", + "KC_MINS", + "KC_PLUS", + "KC_LCBR", + "KC_RCBR", + "KC_TRNS", + "C(S(KC_TAB))", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(KC_TAB)", + "KC_F11", + "KC_F10", + "KC_F9", + "KC_F8", + "KC_F7", + "KC_F6", + "KC_TRNS", + "KC_TRNS", + "KC_F12", + "KC_0", + "KC_9", + "KC_8", + "KC_7", + "KC_6", + "KC_TRNS", + "KC_TRNS", + "KC_PIPE", + "KC_RPRN", + "KC_LPRN", + "KC_ASTR", + "KC_AMPR", + "KC_CIRC", + "KC_TRNS", + "C(KC_X)", + "KC_TRNS", + "KC_BSLS", + "KC_COLN", + "KC_GT", + "KC_RBRC", + "KC_LBRC", + "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", + "C(KC_UP)", + "C(KC_DOWN)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(KC_LEFT)", + "C(KC_NO)", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "C(KC_Z)", + "C(KC_X)", + "C(KC_C)", + "C(KC_V)", + "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_CAPS", + "KC_NO", + "KC_DEL", + "KC_INS", + "KC_TRNS", + "KC_END", + "KC_UP", + "KC_HOME", + "KC_NLCK", + "KC_NO", + "KC_BSPC", + "KC_TRNS", + "KC_TRNS", + "KC_RGHT", + "KC_DOWN", + "KC_LEFT", + "KC_SLCK", + "KC_NO", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_PGDN", + "KC_PGUP", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_TRNS", + "KC_WWW_REFRESH", + "KC_TRNS", + "KC_TRNS" + ] + ] +} \ No newline at end of file diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json index a84c34ef429f..d9f5fd84ceb5 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json @@ -1,6 +1,6 @@ { "name": "Zodiark", - "vendorProductId": 4177656066, + "vendorProductId": 4177657602, "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], "layers": [ [ @@ -400,8 +400,8 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", - "KC_TRNS", + "KC_PGDN", + "KC_PGUP", "KC_TRNS", "KC_TRNS", "KC_TRNS", From 17c4cc8f24a88c7afb05f7cb9945a07c9463080b Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 9 Feb 2022 21:53:56 -0500 Subject: [PATCH 92/94] Fix skate macro. Update VIA game layout. --- .../aleblazer_zodiark_solartempest.hex | 2421 +++++++++-------- .../zodiark/keymaps/solartempest/config.h | 2 + .../zodiark/keymaps/solartempest/encoder.c | 2 +- .../zodiark/keymaps/solartempest/keymap.c | 39 +- .../solartempest/zodiark VIA layout TEST.json | 417 --- .../solartempest/zodiark VIA layout.json | 18 +- 6 files changed, 1269 insertions(+), 1630 deletions(-) delete mode 100644 keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex index eff92d92ad0b..400e04fe82d7 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex @@ -1,9 +1,9 @@ :100000000C941E060C9465060C9465060C9465060B -:100010000C9498300C9465060C9465060C94650657 -:100020000C9465060C9465060C9469220C942522A8 -:100030000C9444270C9465060C9465060C94650694 +:100010000C942D310C9465060C9465060C946506C1 +:100020000C9465060C9465060C949F190C945B194E +:100030000C94DB270C9465060C9465060C946506FD :100040000C9465060C9465060C9465060C94650684 -:100050000C9465060C9442230C9465060C9465067A +:100050000C9465060C94781A0C9465060C9465064D :100060000C9465060C9465060C9465060C94650664 :100070000C9465060C9465060C9465060C94650654 :100080000C9465060C9465060C9465060C94650644 @@ -195,30 +195,30 @@ :100C200000140341006C00650062006C0061007AF2 :100C300000650072000000040309040011241FBEB7 :100C4000CFEFDAE0DEBFCDBF04B603FE27C0809150 -:100C50007C0890917D08A0917E08B0917F08873034 -:100C6000904BA740B04BD1F410927C0810927D08B5 -:100C700010927E0810927F0814BE84B7877F84BFCD +:100C50007F0890918008A0918108B0918208873028 +:100C6000904BA740B04BD1F410927F0810928008AF +:100C7000109281081092820814BE84B7877F84BFC7 :100C80000FB6F894A8958091600088618093600009 :100C9000109260000FBEE0E0F8E3099512E0A0E0DA -:100CA000B1E0E8E4F8E602C005900D92AC33B1077C -:100CB000D9F728E0ACE3B2E001C01D92AC37B2072F -:100CC000E1F70E946B270C94EB330C940000CF9358 -:100CD000DF9340917A0850917B084A5754409A011B +:100CA000B1E0E2E7F9E602C005900D92AC33B1077E +:100CB000D9F728E0ACE3B2E001C01D92AF37B2072C +:100CC000E1F70E9402280C9480340C940000CF932A +:100CD000DF9340917D0850917E084D5754409A0112 :100CE00020583E4F21303440C0F020E034E0241B37 -:100CF000350B6091780470917904FC01CA01240FCE -:100D0000351FC1E0D0E08217930750F0709379044B -:100D100060937804DF91CF91089520E831E0E9CF26 -:100D20004491DC01A658BB4F5C91451781F04C9370 +:100CF000350B60917B0470917C04FC01CA01240FC8 +:100D0000351FC1E0D0E08217930750F070937C0448 +:100D100060937B04DF91CF91089520E831E0E9CF23 +:100D20004491DC01A358BB4F5C91451781F04C9373 :100D3000AC01A6E056954795AA95E1F7DE0102C001 :100D4000AA0FBB1F4A95E2F7AD016A2B752B0196DE :100D50003196D9CFE8EDF0E080818E7F80831092CC :100D6000E2001092DA001092E100A0EEB0E08C9167 :100D700081608C9380818F77808319BCA7EDB0E070 -:100D80008C918E7F8C9380818F7E808310928F03D5 +:100D80008C918E7F8C9380818F7E808310929203D2 :100D900008952091E4003091E50095E6A9012091A5 :100DA000EC00822F817020FF06C08091E80080FF58 :100DB00006C080E008952091E80022FD1AC08091CD -:100DC0009C03882389F0853089F08091EB0085FDB4 +:100DC0009F03882389F0853089F08091EB0085FDB1 :100DD0000FC02091E4003091E50042175307F9F26B :100DE0009150E1F684E0089582E0089583E008954B :100DF00081E00895EF92FF920F931F93CF937C01B0 @@ -226,10 +226,10 @@ :100E100085FD0BC08091E8008E778093E8000E94EA :100E2000C906882399F3C82F08C0F70181917F0173 :100E30008093F1000150110949F78C2FCF911F9138 -:100E40000F91FF90EF90089580919E0387FF13C04C +:100E40000F91FF90EF9008958091A10387FF13C049 :100E50008091E80082FF06C08091E8008B77809344 -:100E6000E80004C080919C038111F2CF0895809125 -:100E70009C038823D9F38091E80080FFF8CF80910C +:100E6000E80004C080919F038111F2CF0895809122 +:100E70009F038823D9F38091E80080FFF8CF809109 :100E8000E8008E77ECCF982F9093E900242F762FEF :100E900050E0891731F07091EC002091ED005091F5 :100EA000F00021FD07C09F5F973071F78093E90044 @@ -239,51 +239,51 @@ :100EE000EE0027FDE0CF80E00895CF92DF92EF92F1 :100EF000FF920F931F93CF93DF93C8EDD0E08881CB :100F00008F7E8883E7EDF0E080818160808384E0DC -:100F100082BF81E080938F0388818E7F888302EE79 +:100F100082BF81E08093920388818E7F888302EE76 :100F200010E0F80110821092DA0081EEC82ED12C68 :100F3000F601108288818F77888388818068888312 -:100F400088818F7D888319BC10929C0310929D0329 -:100F500010929B0310929A0390EEE92EF12CF70168 +:100F400088818F7D888319BC10929F031092A00323 +:100F500010929E0310929D0390EEE92EF12CF70162 :100F600080818B7F808388818160888342E060E01C :100F700080E00E944307F60180818E7F8083F80124 :100F8000808181608083808188608083F701808197 :100F90008E7F8083888180618883DF91CF911F91CC :100FA0000F91FF90EF90DF90CF900895FC0180911A -:100FB000A4039091A50386179707A0F0611571050A +:100FB000A7039091A80386179707A0F06115710504 :100FC00029F49091E8009E779093E80090E06115F5 :100FD000710551F4911108C08091E80082FF34C07E -:100FE00080E00895BC01F2CF80919C038823C1F179 +:100FE00080E00895BC01F2CF80919F038823C1F176 :100FF0008530C1F18091E80083FD30C08091E80028 :1010000082FDEACF8091E80080FFE1CF8091F3007C :101010002091F200382F6115710519F02830310543 :1010200058F091E02830310509F090E02091E80077 :101030002E772093E800CBCF81918093F10061500F -:1010400071092F5F3F4FE7CF80919C03882341F0C8 +:1010400071092F5F3F4FE7CF80919F03882341F0C5 :10105000853041F08091E80083FFBECF81E00895A4 -:1010600082E0089583E008950895809191030895A2 -:101070002FB7F894609188037091890380918A0357 -:1010800090918B032FBF08952091850330918603A3 -:101090002817390771F09093860380938503E091B8 -:1010A0008303F0918403309721F00084F185E02DD3 -:1010B00009940895209181033091820328173907FC -:1010C00071F09093820380938103E0918303F09108 -:1010D0008403309721F00680F781E02D099408956C -:1010E0002091740336E0839FC0011124629F800D1C +:1010600082E0089583E0089508958091940308959F +:101070002FB7F89460918B0370918C0380918D034E +:1010800090918E032FBF089520918803309189039A +:101090002817390771F09093890380938803E091B2 +:1010A0008603F0918703309721F00084F185E02DCD +:1010B00009940895209184033091850328173907F6 +:1010C00071F09093850380938403E0918603F091FF +:1010D0008703309721F00680F781E02D0994089569 +:1010E0002091770336E0839FC0011124629F800D19 :1010F000911D1124811524E0920714F090E080E006 -:1011000086589B4F90937B0880937A080895FC0142 +:1011000083589B4F90937E0880937D080895FC013F :10111000680F791F8FEF91E32191822728E030E05B :1011200087FF09C0880F892721503109C9F7E617C1 :10113000F70791F70895880FF7CFFA01811101C0E1 -:10114000FB01099480917304982F9E7F61F4817054 -:10115000826080937304809176048B3A18F08AEA57 -:101160008093760408958831B0F381708661F1CF61 +:10114000FB01099480917604982F9E7F61F4817051 +:10115000826080937604809179048B3A18F08AEA51 +:101160008093790408958831B0F381708661F1CF5E :10117000AF92BF92DF92EF92FF920F931F93CF93A4 :10118000DF93082F162FE901E42FF0E0E75AFA4F1A :10119000611110C0E4915E2F4E2F4983E8835A837A :1011A000DF91CF911F910F91FF90EF90DF90BF9053 :1011B000AF900895E62EF12C4491D42EE42FF0E068 :1011C00026E0829FC00111242FEF30E0B9010E9478 -:1011D0001232802F90E0880F991F55E5569FD0015D +:1011D000A732802F90E0880F991F55E5569FD001C8 :1011E000579FB00D11248A1B9B0B982F990F890FC5 :1011F0005901AE18BF08AE9ED001AF9EB00DBE9E85 :10120000B00D11245B2F189F80011124012F11278D @@ -299,9 +299,9 @@ :1012A00078940895F894E82FE295EF70F0E031A17A :1012B000282F2F7081E090E001C0880F2A95EAF76F :1012C000982F9095932391A392A1892B82A30C949C -:1012D00050099091E60292FF06C0282F287128300D +:1012D00050099091E90292FF06C0282F287128300A :1012E000F9F4877F846093FF06C0282F2871283186 -:1012F000F1F4877E84612091E70220FF06C0382F39 +:1012F000F1F4877E84612091EA0220FF06C0382F36 :1013000038713830D9F4877F816021FF06C0282FDB :1013100028712831D1F4877E816194FD877E0895FC :10132000282F24712430F9F68B7F8860DCCF282F9A @@ -314,21 +314,21 @@ :10139000F2C0CF3BD10508F089C0C83AD10508F0AA :1013A000DFC0C53AD10508F0D3C0C430D105F8F488 :1013B000C130D105E1F040C08533910509F45AC030 -:1013C000C997E9F68091E602837089F0C0EED0E01B +:1013C000C997E9F68091E902837089F0C0EED0E018 :1013D0000EC0833E910599F170F4803E910501F1B4 -:1013E000823E910561F68091E60282FD21C0CE0128 +:1013E000823E910561F68091E90282FD21C0CE0125 :1013F000DF91CF910895863E910561F1873E910579 -:1014000071F1843E910509F0BACF8091E70281FF26 -:10141000EECF8091E602C7EED0E084FD0DC0E7CFAD -:101420008091E60280FDF7C09091E70290FFDFCF48 +:1014000071F1843E910509F0BACF8091EA0281FF23 +:10141000EECF8091E902C7EED0E084FD0DC0E7CFAA +:101420008091E90280FDF7C09091EA0290FFDFCF42 :10143000C3EED0E084FFDBCFD0E0C0E0D8CF809116 -:10144000E60282FDEBC09091E70290FDBFCF84FFE2 -:10145000CECFF2CF8091E60283FDDDCFC8CF809161 -:10146000E60283FDDEC09091E70291FFF0CFC4EE6B -:10147000D0E0BDCF8091E60285FFB9CFC9E2D0E0D0 -:10148000B6CF8091E60285FFB2CFC5E3D0E0AFCF03 -:101490008091E60286FFABCFCAE2D0E0A8CF809170 -:1014A000E60286FFA4CFC1E3D0E0A1CFC11540E2A0 +:10144000E90282FDEBC09091EA0290FDBFCF84FFDC +:10145000CECFF2CF8091E90283FDDDCFC8CF80915E +:10146000E90283FDDEC09091EA0291FFF0CFC4EE65 +:10147000D0E0BDCF8091E90285FFB9CFC9E2D0E0CD +:10148000B6CF8091E90285FFB2CFC5E3D0E0AFCF00 +:101490008091E90286FFABCFCAE2D0E0A8CF80916D +:1014A000E90286FFA4CFC1E3D0E0A1CFC11540E29D :1014B000D40760F4C11581E0D80708F098CFCE01B9 :1014C000815E9109079708F492CFB6CFC11590E4D9 :1014D000D90708F4B1CFDF70D06A89CFC11524E5F0 @@ -339,8 +339,8 @@ :10152000CC27C06FD06A63CFCE0190568115904210 :1015300008F082CF8D2F8F710E94690990E0982F5B :10154000882788279F719C012C2BE901D0624FCFFF -:10155000C55AD0E0CD54DE4FC881D0E0D06447CF2B -:10156000C85AD0E0CC0FDD1FCA54DE4F0990D88195 +:10155000C55AD0E0C454DE4FC881D0E0D06447CF34 +:10156000C85AD0E0CC0FDD1FC154DE4F0990D8819E :10157000C02DD4643CCFCE0164E0969587956A95E2 :10158000E1F783702C2F26952695237040E2249F47 :1015900090011124382B8C2F8370C1E0D0E002C061 @@ -352,32 +352,32 @@ :1015F0001124C22BD32BDA68FACE8C2F8F700E9465 :10160000690934E0D695C7953A95E1F7CF709C2FDC :10161000EC01D069ECCEC9E3D0E0E9CEC2EED0E077 -:10162000E6CEC6EED0E0E3CE0C9438088091A4025A -:101630009091A302892B9091A202892B80933E0264 -:10164000E0918303F0918403309731F00280F381BD -:10165000E02D8EE392E0099408958091A10290918B -:101660007002981301C008958F5F8770FACF990FA9 +:10162000E6CEC6EED0E0E3CE0C9438088091A70257 +:101630009091A602892B9091A502892B80933E025E +:10164000E0918603F0918703309731F00280F381B7 +:10165000E02D8EE392E0099408958091A402909188 +:101660007302981301C008958F5F8770FACF990FA6 :10167000990F990F890F982F977086958695869563 -:1016800023E0829FF0011124E45BFD4F50E040E035 +:1016800023E0829FF0011124E15BFD4F50E040E038 :1016900080E0219130E0092E02C0369527950A940A :1016A000E2F721703327042E01C0220F0A94EAF7D3 :1016B000822B4F5F5F4F4330510559F70895990FC3 :1016C000990F990F890F982F977041E001C0440F2F :1016D0009A95EAF786958695869593E0899FF0011D -:1016E0001124E45BFD4F30E020E070E05191DF0118 +:1016E0001124E15BFD4F30E020E070E05191DF011B :1016F0001197CB01022E02C0969587950A94E2F7C6 :10170000817081958527842385278C932F5F3F4F98 :101710002330310559F7089590E080E00E945A087F -:1017200090E080E00E9444081092A3021092A2026E -:101730000C94160B8093A5020C948C0B882341F01B -:1017400080959091A40289238093A4020C94160B97 -:101750000895882339F09091A402982B9093A402C5 +:1017200090E080E00E9444081092A6021092A50268 +:101730000C94160B8093A8020C948C0B882341F018 +:1017400080959091A70289238093A7020C94160B91 +:101750000895882339F09091A702982B9093A702BF :101760000C94160B08958823B1F19CEF980F913AD1 :1017700070F4E0E4F2E09191891303C0DF01119766 :101780001C9242E0E634F407B1F70C94160B90E299 :10179000980F983088F4877021E030E0A90102C0EA -:1017A000440F551F8A95E2F7CA0180959091A402D3 -:1017B00089238093A402E9CF9BE5980F933020F40E +:1017A000440F551F8A95E2F7CA0180959091A702D0 +:1017B00089238093A702E9CF9BE5980F933020F40B :1017C00090E080E00C945A08885A873120F490E029 :1017D00080E00C94440808950F931F93CF93C82F73 :1017E000882309F469C08CEF8C0F813AB0F500E4CE @@ -389,40 +389,40 @@ :10184000F2E02191C21303C0DF0111971C928E17A1 :101850009F07B9F70E94160BD6CF80E28C0F883015 :1018600068F4C77021E030E001C0220FCA95EAF7A2 -:101870008091A402822B8093A402DCCFEBE5EC0FD5 -:10188000E33050F4F0E0ED54FE4F808190E0CF91D2 +:101870008091A702822B8093A702DCCFEBE5EC0FCF +:10188000E33050F4F0E0E454FE4F808190E0CF91DB :101890001F910F910C945A08C85AC73168F4EC2F65 -:1018A000F0E0EE0FFF1FEA54FE4F80819181CF914F +:1018A000F0E0EE0FFF1FE154FE4F80819181CF9158 :1018B0001F910F910C944408CF911F910F9108959F :1018C000982F92959F7011F0892F94E0282F2695DC :1018D000269511F09E5F822F869509F09F5F892FD4 :1018E0000895CF93DF93CDB7DEB762970FB6F89424 -:1018F000DEBF0FBECDBF96E0E2E6F3E0DE01179655 +:1018F000DEBF0FBECDBF96E0E5E6F3E0DE01179652 :1019000001900D929A95E1F796E0FE013796DE017F :101910001D9601900D929A95E1F798858823E9F03C :10192000962B9E8786E0FE013D96DE011196019082 -:101930000D928A95E1F786E0FE013196A2E6B3E0CA +:101930000D928A95E1F786E0FE013196A5E6B3E0C7 :1019400001900D928A95E1F762960FB6F894DEBF8A :101950000FBECDBFDF91CF91089560959623E1CF63 :10196000CF92DF92EF92FF920F931F93CF93DF936B -:101970006C017B0164E670E088E70E94582EEC0160 +:101970006C017B0164E670E088E70E94ED2EEC01CB :1019800097FD12C010E000E0F601E00FF11F849116 -:1019900064E670E00E94D22EEC01892B29F40F5FDF -:1019A0001F4F0E151F0581F70E94EC2FCE01DF910E +:1019900064E670E00E94672FEC01892B29F40F5F49 +:1019A0001F4F0E151F0581F70E948130CE01DF9178 :1019B000CF911F910F91FF90EF90DF90CF900895FE -:1019C00080917F0390918003911103C091E089275A +:1019C0008091820390918303911103C091E0892754 :1019D0000895882369F062E070E080EA9BE00E944D -:1019E000B00C892B19F080917F03089510927F032A -:1019F00080917F03EBCFCF93C0917F0380918003D1 +:1019E000B00C892B19F08091820308951092820324 +:1019F00080918203EBCFCF93C091820380918303C8 :101A00008823D1F00E9438086058774C8E4F9F4F42 -:101A100060937B0370937C0380937D0390937E039C +:101A100060937E0370937F03809380039093810390 :101A2000C11108C062E070E08EE99BE00E94B00C3A -:101A3000892B29F0C0917F038C2FCF91089581E0ED -:101A400080937F03F7CF80938C0370938E03609312 -:101A50008D0380919C038430F9F48093E9008FEF2B +:101A3000892B29F0C09182038C2FCF91089581E0EA +:101A400080938203F7CF80938F0370939103609309 +:101A5000900380919F038430F9F48093E9008FEF25 :101A60009091E800815095FD06C095ED9A95F1F7AB :101A700000008111F5CF8091E80085FF0DC050E096 -:101A800040E063E070E08CE893E00E94FA06809109 +:101A800040E063E070E08FE893E00E94FA06809106 :101A9000E8008E778093E8000895BC0184E00C9400 :101AA000230DBC0183E00C94230D9C0184E0809302 :101AB000E9009FEF8091E800915085FD06C085ED1B @@ -433,21 +433,21 @@ :101B000095FD06C095ED9A95F1F700008111F5CF8E :101B10008091E80085FF14C050E040E068E070E08C :101B2000CE010E94FA068091E8008E778093E8004B -:101B300088E0FE01A2E9B3E001900D928A95E1F7F9 -:101B4000DF91CF910895609161018091730480FFCE -:101B500020C08091600143E0849FC0011124895519 +:101B300088E0FE01A5E9B3E001900D928A95E1F7F6 +:101B4000DF91CF910895609162018091760480FFCA +:101B500020C08091610143E0849FC001112486551B :101B60009C4F259A25B12F7D35B130625FB7F8942F :101B7000FC01649FE00DF11D1124BF016817790776 :101B8000D1F45FBF8FE594E00197F1F700C000004A -:101B90000895809162019091630123E0829FF0019A -:101BA0001124E955FC4F8917A0F611821082128288 +:101B90000895809163019091640123E0829FF00198 +:101BA0001124E655FC4F8917A0F61182108212828B :101BB0008F5F3396F8CFFC014191CF01E8E035B952 :101BC000000000C047FF25B9440F000000C000C05E :101BD00000C025B900C0EA9591F7D0CF0F931F93AD :101BE000CF93DF9300D00F92CDB7DEB7182F062F1B -:101BF0008091730480FF22C09E012F5F3F4F4AEA0D +:101BF0008091760480FF22C09E012F5F3F4F4AEA0A :101C000064E68BE20E94B8081017C0F48B819981BA -:101C10002A8133E0139FF0011124E955FC4F218301 +:101C10002A8133E0139FF0011124E655FC4F218304 :101C2000908382831F5F33960113F9CF0E94A30D27 :101C30008FE99FE00197F1F700C000000F900F902F :101C40000F90DF91CF911F910F910895CF93DF9364 @@ -455,58 +455,58 @@ :101C6000EE0DD11108C062E080E00E94EE0D6CE044 :101C70008AE00E94EE0DC2FF0AC064E082E00E948A :101C8000EE0D6AE088E0DF91CF910C94EE0DDF91CC -:101C9000CF910895E3E7F4E080818E7F8083E1E7D0 +:101C9000CF910895E6E7F4E080818E7F8083E4E7CA :101CA000F3E08281816082832FEF80E792E0215010 :101CB00080409040E1F700C000000C94A30D9F927B :101CC000AF92BF92CF92DF92EF92FF920F931F934A -:101CD000CF93DF937C015B016A018091E10201E017 +:101CD000CF93DF937C015B016A018091E40201E014 :101CE00010E08A3010F40AE010E0C1E0D0E0F8948F :101CF000B501C701F6010995982E0E94500991106F :101D000004C021960C171D076CF4892DDF91CF912B :101D10001F910F91FF90EF90DF90CF90BF90AF9009 :101D20009F900895CC9F9001CD9F300D300D1124D0 :101D300090E080E045E34A95F1F7000001968217B4 -:101D40009307C1F7D4CF8091B202811110C0809166 +:101D40009307C1F7D4CF8091B502811110C0809163 :101D5000D80080618093D8008AE18A95F1F700C0AD -:101D60008091D90080FF0AC081E08093B20281E0B7 -:101D70009091B202913009F080E0089582E0809362 -:101D8000B2020E94AA0610929C03F1CF0E94A30EF9 -:101D9000882351F0E0918303F0918403309721F080 +:101D60008091D90080FF0AC081E08093B50281E0B4 +:101D70009091B502913009F080E0089582E080935F +:101D8000B5020E94AA0610929F03F1CF0E94A30EF3 +:101D9000882351F0E0918603F0918703309721F07A :101DA0000190F081E02D099480E008951F93CF9376 :101DB000DF93182FEB010E94EC0B8FE99FE0019756 :101DC000F1F700C000002197C1F7812FDF91CF917B :101DD0001F910C94B30B0F931F93CF93DF9300D0FD :101DE00000D0CDB7DEB789836A834B831C8204E6BB :101DF00010E024E030E0AE014F5F5F4F60E084E12F -:101E00000E94702F0F900F900F900F90DF91CF9145 -:101E10001F910F91089580915D01882329F041E27F -:101E200065EA89ED0C94EB0E8091470247EC6BE17B +:101E00000E9405300F900F900F900F90DF91CF91AF +:101E10001F910F91089580915E01882329F041E27E +:101E200065EA89ED0C94EB0E8091490247EC6BE179 :101E30008823C1F347E669E98BE2F4CFCF93DF93C0 -:101E4000C7E4D3E060E0CE010E9486322196C1153E +:101E4000C7E4D3E060E0CE010E941B332196C115A8 :101E500084E0D807B9F7DF91CF9108956F927F9210 :101E60008F929F92AF92BF92CF92DF92EF92FF92AA :101E70000F931F93CF93DF9382EAC82E8BE0D82E67 :101E800007ED10E0E801C05AD10936011CC0F50188 -:101E900085909490692DC7010E948632682DC701F4 -:101EA00001960E94863282E0A80EB11C82E0E80E04 +:101E900085909490692DC7010E941B33682DC7015E +:101EA00001960E941B3382E0A80EB11C82E0E80E6E :101EB000F11CCE15DF0559F780E1680E711C6096A4 :101EC0000C171D0731F07E0180E1E81AF10853017B :101ED000DECF00561F4F80EAC80ED11C073F83E0BB :101EE000180781F6DF91CF911F910F91FF90EF902E :101EF000DF90CF90BF90AF909F908F907F906F902A :101F00000895CF93C82F6FEF811162E283E290E0D2 -:101F10000E9486326FEFC11161E084E290E00E947E -:101F200086326FEFC11168E285E290E0CF910C94A8 -:101F3000863280E00E94810F60E086E290E00E949D -:101F400086320E942E0F0E941E0F81E00C94810F9A +:101F10000E941B336FEFC11162E084E290E00E94E7 +:101F20001B336FEFC11169E085E290E0CF910C9413 +:101F30001B3380E00E94810F60E086E290E00E9407 +:101F40001B330E942E0F0E941E0F81E00C94810F04 :101F50000F931F93CF93DF9320E1629FE001112441 :101F600050E0440F551FC40FD51F30EA839FC00DAA -:101F7000D11D1124CE0187960E947232082F10E0E5 -:101F8000102F0027CE0188960E9472329801282BCC +:101F7000D11D1124CE0187960E940733082F10E04F +:101F8000102F0027CE0188960E9407339801282B36 :101F9000C901DF91CF911F910F910895462F853090 :101FA00038F47A3028F4683018F4672F0C94A80FAE :101FB00090E080E00895CF92DF92FF920F931F93FD -:101FC000CF93DF936C010091A6038091A502082BAB +:101FC000CF93DF936C010091A9038091A802082BA5 :101FD000C7E0D0E010E0FC2EC8010C2E02C09595A1 :101FE00087950A94E2F780FD0CC02197A0F7F12CA9 :101FF0008F2DDF91CF911F910F91FF90DF90CF90A8 @@ -514,1177 +514,1196 @@ :1020100061F3EECFCF93DF93EC010E94DB0FBE01A3 :102020000E94CE0FDF91CF910C94AC09FC0180810E :1020300091810E940A10292F2F7092959F709250C3 -:102040009E3078F4E92FF0E0E351FC4C0C944632DA +:102040009E3078F4E92FF0E0EE57FB4C0C94DB3235 :10205000803F19F020F4883E20F481E00895843F09 :10206000E1F380E00895883EC0F3813FD1F7F5CFDA :10207000822F869586958695089583E290E00E944A -:102080007232823289F484E290E00E9472328130AE -:1020900059F485E290E00E94723291E0883209F0B2 +:102080000733823289F484E290E00E940733823081 +:1020900059F485E290E00E94073391E0893009F01D :1020A00090E0892F8170089580E0FCCFCF9384E089 -:1020B00090E00E947232C82F82E290E00E94723259 +:1020B00090E00E940733C82F82E290E00E9407332D :1020C000982F8C2FCF9108951F93CF93DF93CDB787 :1020D000DEB768970FB6F894DEBF0FBECDBF409154 -:1020E0006203509163036091640370916503809172 -:1020F0006603909167030E948123209362033093CB -:1021000063036093660370936703642F152F119523 -:10211000109364034093650386E0E2E6F3E0DE019A +:1020E0006503509166036091670370916803809166 +:1020F000690390916A030E94B71A20936503309395 +:1021000066036093690370936A03642F152F11951A +:10211000109367034093680386E0E5E6F3E0DE0191 :10212000179601900D928A95E1F786E0FE013796A9 :10213000DE01119601900D928A95E1F79B858C85C1 -:1021400020915D012223B1F0772761950CF4709501 -:10215000072E000C880B990B0E94F2322AE939E90C -:1021600049E95EE30E9456330E94BA32962F812FCE +:1021400020915E012223B1F0772761950CF4709500 +:10215000072E000C880B990B0E9487332DEC3CEC6A +:102160004CE45EE30E94EB330E944F33962F812FA5 :1021700060E010E01B836C839D838E8386E0FE010C :102180003196DE011D9601900D928A95E1F786E069 :10219000FE013D96DE01539601900D928A95E1F77E :1021A00086E0FE017396DE01119601900D928A95EC -:1021B000E1F786E0FE013196A2E6B3E001900D92D0 -:1021C0008A95E1F786E0E2E6F3E0DE0117960190FA -:1021D0000D928A95E1F786E0ECE5F3E0DE011196D9 +:1021B000E1F786E0FE013196A5E6B3E001900D92CD +:1021C0008A95E1F786E0E5E6F3E0DE0117960190F7 +:1021D0000D928A95E1F786E0EFE5F3E0DE011196D6 :1021E00001900D928A95E1F746E050E0BE016F5FE5 -:1021F0007F4FCE0107960E945C32892B79F0E091E7 -:102200008303F0918403309749F082E08093620366 -:102210000480F581E02D82E693E009951092640335 -:1022200010926503109266031092670386E0E2E65F -:10223000F3E0ACE5B3E001900D928A95E1F7689682 +:1021F0007F4FCE0107960E94F132892B79F0E09152 +:102200008603F0918703309749F082E0809365035D +:102210000480F581E02D85E693E00995109267032F +:10222000109268031092690310926A0386E0E5E653 +:10223000F3E0AFE5B3E001900D928A95E1F768967F :102240000FB6F894DEBF0FBECDBFDF91CF911F91C7 -:1022500008951092A402E0E4F2E086E0DF011D920E +:1022500008951092A702E0E4F2E086E0DF011D920B :102260008A95E9F70C948C0B1F93CF93DF93CDB72E -:10227000DEB7AA970FB6F894DEBF0FBECDBF8EE9CA -:1022800093E02091F100DC012D93CD01B3E0863A7B -:102290009B07B9F780919F03833009F472C0B8F4AB +:10227000DEB7AA970FB6F894DEBF0FBECDBF81EAD6 +:1022800093E02091F100DC012D93CD01B3E0893A78 +:102290009B07B9F78091A203833009F472C0B8F4A8 :1022A000813009F449C0823009F4B3C08091E8005C -:1022B00083FF8BC280919E0390919F039A3008F018 -:1022C00084C2E92FF0E0E550FC4C0C9446328A3091 +:1022B00083FF8BC28091A1039091A2039A3008F012 +:1022C00084C2E92FF0E0E057FB4C0C94DB328A30FB :1022D00009F48EC08B3009F471C0893039F78091D0 -:1022E0009E03813219F78091A2039091A303009776 +:1022E000A103813219F78091A5039091A60300976D :1022F00011F00297D9F68091E800877F8093E8007B :102300008091E80082FF38C09091F3008091F20044 :10231000029731F48091F100813011F0863021F480 -:102320008091F100809391038091E8008B778093F6 -:10233000E8000E942407BACF80919E03813A09F0F9 -:10234000B5CF8091E800877F8093E8008091A20359 -:102350009091A303892B61F468E082E993E070E037 +:102320008091F100809394038091E8008B778093F3 +:10233000E8000E942407BACF8091A103813A09F0F6 +:10234000B5CF8091E800877F8093E8008091A50356 +:102350009091A603892B61F468E085E993E070E031 :102360000E94D6078091E8008B778093E8009ECF8B -:1023700060E090E080E0F3CF80919C038111C0CFBA -:1023800095CF80919E03813A09F090CF8091A2036E -:102390009091A303892B09F089CF8091E800877F72 -:1023A0008093E8008091E80080FFFCCF8091650178 -:1023B0008093F1008091E8008E77B9CF80919E03E1 -:1023C000813209F073CF8091A2039091A303892BEE +:1023700060E090E080E0F3CF80919F038111C0CFB7 +:1023800095CF8091A103813A09F090CF8091A50368 +:102390009091A603892B09F089CF8091E800877F6F +:1023A0008093E8008091E80080FFFCCF8091660177 +:1023B0008093F1008091E8008E77B9CF8091A103DE +:1023C000813209F073CF8091A5039091A603892BE8 :1023D00009F06CCF8091E800877F8093E8000E942D -:1023E00024078091A003809365010E9429115ECF8C -:1023F00080919E03813209F059CF8091E800877F58 -:102400008093E8000E9424078091A10380939003A9 -:102410004DCF80919E03813A09F048CF8091E8002A +:1023E00024078091A303809366010E9429115ECF88 +:1023F0008091A103813209F059CF8091E800877F55 +:102400008093E8000E9424078091A40380939303A3 +:102410004DCF8091A103813A09F048CF8091E80027 :10242000877F8093E8008091E80080FFFCCF809157 -:102430009003BECF803899F0823809F0C6C18091F0 -:10244000A2038F70873008F0C0C18093E9008091AB +:102430009303BECF803899F0823809F0C6C18091ED +:10244000A5038F70873008F0C0C18093E9008091A8 :10245000EB0085FB882780F91092E90006C0809187 -:102460009A0390919B03911182609091E800977F6D +:102460009D0390919E03911182609091E800977F67 :102470009093E8008093F1001092F1008091E800C1 :102480008E779FC1882309F48DC1823009F09DC1E8 -:102490008091A003811190C18091A2038F702FEFD2 +:102490008091A303811190C18091A5038F702FEFCC :1024A000280F263008F091C18093E9002091EB00BD :1024B00020FF82C1933031F48091EB0080628093E1 :1024C000EB007AC19091EB0090619093EB0021E0DA :1024D00030E001C0220F8A95EAF72093EA001092BB :1024E000EA008091EB008860EACF81116EC1109103 -:1024F000A0031F778091E3008078812B8093E30015 +:1024F000A3031F778091E3008078812B8093E30012 :102500008091E800877F8093E8000E9424078091F3 :10251000E80080FFFCCF8091E30080688093E300B7 -:1025200082E0111183E080939C034FC18058823078 -:1025300008F04BC12091A0033091A1032C3DE3E0B2 +:1025200082E0111183E080939F034FC18058823075 +:1025300008F04BC12091A3033091A4032C3DE3E0AC :102540003E07A1F583E08A838AE289834FB7F89436 :10255000DE01139620E03EE051E2E32FF0E05093DD :102560005700E49120FF03C0E295EF703F5FEF70EA :102570008E2F90E0EA30C0F0C7968D939D932F5F29 :10258000243159F74FBF8091E800877F8093E8009E :102590006AE270E0CE0101960E94D6078091E800C1 -:1025A0008B778093E80011C1C096E7CF8091A2039A -:1025B0009091A303432F55274330510509F44AC096 +:1025A0008B778093E80011C1C096E7CF8091A50397 +:1025B0009091A603432F55274330510509F44AC093 :1025C00078F54130510509F47AC08BE590E0E2EAF4 :1025D000FBE04230510509F0F8C02091E800277F68 -:1025E0002093E8002091A4033091A503821793075C +:1025E0002093E8002091A7033091A8038217930756 :1025F00008F49C0140E02115310509F065C0411146 -:1026000063C08091E80082FDC9CF80919C0388233C +:1026000063C08091E80082FDC9CF80919F03882339 :1026100029F2853019F28091E80083FFF2CFBECF16 :102620004132510509F43CC04232510509F0CDC098 -:102630008330910508F0C9C0FC01EE0FFF1FE15D7A -:10264000FD4F0190F081E02D845D9D4FDC018C9168 +:102630008330910508F0C9C0FC01EE0FFF1FE05D7B +:10264000FD4F0190F081E02D835D9D4FDC018C9169 :1026500090E01AC0332721303105D1F02115310522 :1026600061F02230310509F0B0C0EFE0FCE0E49108 :102670008E2F90E0EFE0FCE007C0E7E3FCE0E491A0 :102680008E2F90E0E7E3FCE0009709F49EC0A5CF11 :10269000E1E2FCE0E4918E2F90E0E1E2FCE0F4CF97 -:1026A0008330910508F091C0880F991FFC01EB5C05 +:1026A0008330910508F091C0880F991FFC01EA5C06 :1026B000FD4F0190F081E02D89E090E08ECF82E126 -:1026C00090E0EDEFFBE089CF80919C03882309F433 +:1026C00090E0EDEFFBE089CF80919F03882309F430 :1026D00065CF853009F462CF8091E80083FD5ECF3D :1026E0008091E80082FD8DCF8091E80080FF83CF4C :1026F0009091F3008091F2002115310519F0883096 :10270000910550F041E0089709F040E08091E80021 :102710008E778093E8006FCF44914093F10031961B :10272000215031090196E8CF803809F04EC08091E0 -:10273000E800877F8093E80080919D038093F100FB -:102740009DCE811142C01091A0031230F0F580910E -:10275000E800877F8093E80010939D030E94240780 +:10273000E800877F8093E8008091A0038093F100F8 +:102740009DCE811142C01091A3031230F0F580910B +:10275000E800877F8093E8001093A0030E9424077D :10276000112311F084E005C08091E30087FDFACFCA -:1027700081E080939C0342E061EC81E00E9443078A +:1027700081E080939F0342E061EC81E00E94430787 :1027800042E261EC84E00E94430742E261EC82E0B5 :102790000E94430742E260EC83E00E94430780917D -:1027A0009C0313C08091A003813079F481E09330C1 -:1027B00009F080E080939B031092E9008091E8008B +:1027A0009F0313C08091A303813079F481E09330BB +:1027B00009F080E080939E031092E9008091E80088 :1027C000877F8093E8000E9424078091E80083FFC0 :1027D0000AC08091E800877F8093E8008091EB0039 :1027E00080628093EB00AA960FB6F894DEBF0FBE0E :1027F000CDBFDF91CF911F9108951F93CF93DF93AA -:10280000162FC0917A08D0917B088A30D1F420919C -:102810007403CE018A579440622F70E00E941232F6 -:10282000281B822F66E00E942632C82FC15020F458 +:10280000162FC0917D08D0917E088A30D1F4209196 +:102810007703CE018D579440622F70E00E94A7325B +:10282000281B822F66E00E94BB32C82FC15020F4C3 :10283000DF91CF911F91089560E080E20E94FD1327 -:10284000F5CF8D30E9F4CA57D44020917403622F3C -:1028500070E0CE010E941232281B822F9E01280FA9 +:10284000F5CF8D30E9F4CD57D44020917703622F36 +:1028500070E0CE010E94A732281B822F9E01280F14 :10286000311D2115344018F080E0D0E0C0E0C80FE1 -:10287000D11DC658DB4FD0937B08C0937A08D8CFC0 -:1028800096E0FE01A5E7B3E001900D929A95E1F77D +:10287000D11DC358DB4FD0937E08C0937D08D8CFBD +:1028800096E0FE01A8E7B3E001900D929A95E1F77A :10289000803E90F186E0FE0111928A95E9F7C091A1 -:1028A0007A08D0917B08111133C046E050E0BE0198 -:1028B00085E793E00E945C329E012A573440892BC1 -:1028C00091F52A5F3F4F40917403642F70E0C90176 -:1028D0000E941232481B463010F4240F311D21157E -:1028E00074E0370710F030E020E026583B4F30937B -:1028F0007B0820937A089CCFF6E08F9FB0011124CB -:10290000625A794F46E050E0CE010E945332C7CF61 +:1028A0007D08D0917E08111133C046E050E0BE0192 +:1028B00088E793E00E94F1329E012D573440892B26 +:1028C00091F52A5F3F4F40917703642F70E0C90173 +:1028D0000E94A732481B463010F4240F311D2115E9 +:1028E00074E0370710F030E020E023583B4F30937E +:1028F0007E0820937D089CCFF6E08F9FB0011124C5 +:10290000625A794F46E050E0CE010E94E832C7CFCC :102910009E012A5F3F4FFE012E173F0731F2808153 :1029200080958193F9CFC90146E0969587954A95A0 :10293000E1F741E050E0BA0102C0660F771F8A95C7 -:10294000E2F7CB016091780470917904862B972B84 +:10294000E2F7CB0160917B0470917C04862B972B7E :10295000B9016B5F7F4FE6E076956795EA95E1F701 :1029600002C0440F551F6A95E2F7842B952B909374 -:10297000790480937804A5CFFF920F931F93CF9390 +:102970007C0480937B04A5CFFF920F931F93CF938A :10298000DF93EC01F62EFC0101900020E9F78F01A6 :1029900001501109C017D10730F0DF91CF911F917D :1029A0000F91FF9008956F2D89910E94FD13F2CF32 :1029B000CF92DF92EF92FF926B017C010E94A208FE :1029C000B701A60188E090E0FF90EF90DF90CF90F4 -:1029D0000C949832AF92BF92CF92DF92EF92FF9217 +:1029D0000C942D33AF92BF92CF92DF92EF92FF9281 :1029E0000F931F93CF93DF9300D00F92CDB7DEB735 -:1029F000082FF62E142FE22E8091730480FF4FC013 -:102A0000E82FE695AE2FB0E0A05EBD4F9C9190936D -:102A100071038E7F823009F056C04B3A08F04AEAC3 +:1029F000082FF62E142FE22E8091760480FF4FC010 +:102A0000E82FE695AE2FB0E0AF5DBD4F9C9190935F +:102A100074038E7F823009F056C04B3A08F04AEAC0 :102A20009E012F5F3F4F6F2D802F0E94B80880912D -:102A3000730480FF11C02B8139814A81809162012A -:102A40009091630153E0859FF0011124E955FC4FFB -:102A5000891798F10E94A30D80917404801308C017 -:102A6000809175048F1104C080917604811729F03C -:102A70008091730382608093730300937404F092D7 -:102A8000750410937604EE2051F0609173047091F8 -:102A9000740480917504909176040E94D8140F906C +:102A3000760480FF11C02B8139814A818091630126 +:102A40009091640153E0859FF0011124E655FC4FFD +:102A5000891798F10E94A30D80917704801308C014 +:102A6000809178048F1104C080917904811729F036 +:102A70008091760382608093760300937704F092CE +:102A8000780410937904EE2051F0609176047091EF +:102A9000770480917804909179040E94D8140F9063 :102AA0000F900F90DF91CF911F910F91FF90EF90BA :102AB000DF90CF90BF90AF90089541833083228301 :102AC0008F5F3396C5CF923039F6E2508E2F8170EA :102AD000D82EE695F0E0E75AF94FA590B490C12CB6 -:102AE000BB2460916401C61608F0B4CF2C2D30E0F1 +:102AE000BB2460916501C61608F0B4CF2C2D30E0F0 :102AF000A29EC001A39E900DB29E900D112470E085 -:102B00000E941232802FD11016C0860F40916201B0 +:102B00000E94A732802FD11016C0860F409163011A :102B1000420F532F511D9A01220F331F240F351FCF -:102B200029553C4F412F1B3A08F04AEA6F2D0E946D -:102B3000B808C394D6CF861BE9CFE3E7F4E043811E -:102B400028E0421B08F440E021E0628181810C947E -:102B5000EA14E3E7F4E0438128E0420F08F44FEF82 -:102B600021E0628181810C94EA14E3E7F4E0628160 -:102B700028E0621B08F460E021E0438181810C942D -:102B8000EA14E3E7F4E0628128E0620F08F46FEFF3 -:102B900021E0438181810C94EA14E3E7F4E0818130 -:102BA00021E04381628188500C94EA14E3E7F4E069 -:102BB000818121E043816281885F0C94EA14CF9384 -:102BC000C82F0E94600C823081F138F48823B1F064 -:102BD000813021F18C2FCF910895833059F18430C9 -:102BE000C9F720E040E56FEF8AED0E94EA1480917A -:102BF0000001882379F310925D010DC020E04CE3C1 -:102C00006CED80E00E94EA1480910001882399F322 -:102C100081E080935D010E940B0FDCCF20E040E556 -:102C20006FEF8CEF0E94EA14D5CF20E040E56FEF04 -:102C300080E5F8CF20E040E56FEF80EAF3CF0E9417 -:102C4000DF158093A6030C948C0B8091A603982F1C -:102C50009670963019F488600C941F16877FFCCF0D -:102C600021E030E001C0220F8A95EAF7209580919B -:102C7000A60382230C941F1621E030E001C0220F2E -:102C80008A95EAF78091A603822B0C941F168091F7 -:102C90007704882319F0815080937704609173043E -:102CA0007091740480917504909176040C94D814FA -:102CB00080917704833018F48F5F8093770460915C -:102CC00073047091740480917504909176040C944F -:102CD000D8149091730490FF27C0917081111DC08A -:102CE0009260909373048091730381608093730367 -:102CF000662351F06091730470917404809175049F -:102D0000909176040E94D81420E04091760460915E -:102D10007504809174040C94EA148C3010F0966160 -:102D2000E0CF880F982BDDCF0895809173048695AE -:102D3000815009F48BE061E00C9469168091730472 -:102D400086958F5F8C3008F081E061E00C94691605 -:102D50008091730480FF07C0869582588F778930F1 -:102D600010F40C949E1661E082E00C946916E3E77F -:102D7000F4E083E0808311828FEF82838AEA838389 -:102D80001482A1E7B3E012968C9112978360129699 -:102D90008C9360817181828193810C94D8140E94FC -:102DA000522E40E060E080E00C94EB0E69EE7EEF86 -:102DB00090E080E00E94A43260E082E090E00E9417 -:102DC000863260E083E090E00E9486321092A50295 -:102DD00060E084E090E00E94863260E082E290E071 -:102DE0000E94863260E085E090E00E94863260E0DA -:102DF00086E090E00E9486326FEF87E090E00E94CC -:102E0000863240E050E0BA0188E090E00E949832BB -:102E100060E08DE090E00E94863240E050E0BA0130 -:102E200088E190E00E94983260E087E190E00E94A3 -:102E3000863240E050E0BA018CE190E00E94983286 -:102E400070E060E080E290E00E94A43240E050E058 -:102E5000BA0188E190E00E94983280E00E94810FE0 -:102E60000E94990F40E050E0BA018FE090E00E948C -:102E7000983240E050E0BA0183E190E00C9498323F -:102E80005F926F927F928F929F92AF92BF92CF92FA -:102E9000DF92EF92FF920F931F93CF93DF9300D0B7 -:102EA00000D00F92CDB7DEB76C01FC018381948115 -:102EB000892B31F08081918189238F3F09F037C6BA -:102EC0000F900F900F900F900F90DF91CF911F9167 -:102ED0000F91FF90EF90DF90CF90BF90AF909F90B9 -:102EE0008F907F906F905F9008950E94DB0F182F56 -:102EF000682F89819A810E945F0B69817A81812F75 -:102F00000E94CE0F8C01F6018281882309F403C64A -:102F1000C80182519F45409708F078C58FEF93E034 -:102F20000E947232025197E4A92E93E0B92E8111CA -:102F3000C7CF01113AC01C821B82662463948AE0C9 -:102F4000582E85010F5F1F4FC5010E947232898381 -:102F50001A82882309F4B4CF9FEF980F9330A0F51D -:102F60008A83698232E0A30EB11CC8010E947232CA -:102F70008B83882309F4A4CF8E010F5F1F4FF801C4 -:102F800020812223F1F2213009F058C09181828101 -:102F90009130E1F40E5F1F4F6AE070E0893311F465 -:102FA00060E570E00E94D60E17C0A114F4E0BF06E1 -:102FB00009F486CFC5010E947232811101C001500F -:102FC0002FEFA21AB20AB5CF5801D6CF923039F4FA -:102FD0000E5F1F4F0E94EC0B0F5F1F4FD0CF93303F -:102FE00029F40E5F1F4F0E94B30BF6CF943019F0F7 -:102FF0000F5F1F4FF1CF0E5F1F4F30E020E0B80191 -:103000006F5F7F4FF80141818053990B8A309105A2 -:1030100050F02150310900F38FE99FE00197F1F75B -:1030200000C00000F6CF529EF001539EF00D112417 -:103030009C012E0F3F1F842F8B01E1CFE22FF0E088 -:10304000E754FE4F7490822F86958695869590E082 -:10305000FC01E755FE4FE4902770F12C022E02C0D0 -:10306000F594E7940A94E2F7E1E0EE22FF24FC01F4 -:10307000E756FE4FC490D12C022E02C0D594C794BF -:103080000A94E2F7F1E0CF22DD24FC01E757FE4F7E -:103090008490912C02C0959487942A95E2F721E0C0 -:1030A00082229924E114F10419F081EE0E94EC0BC4 -:1030B000C114D10419F086EE0E94EC0B39E36AE0EA -:1030C00070E0731202C060E570E0872D0E94D60E9A -:1030D000CD2819F086EE0E94B30BEF2819F081EE8F -:1030E0000E94B30B892809F477CF6AE070E08CE284 -:1030F00059CF81E00E943C1603C081E00E94301647 -:103100000F900F900F900F900F90DF91CF911F9124 -:103110000F91FF90EF90DF90CF90BF90AF909F9076 -:103120008F907F906F905F900C94251682E0E2CF95 -:10313000043F110509F4C7C062E0053F110509F01D -:103140008BC40E94710C88C40438FFE51F0709F482 -:1031500053C0B8F402383FE5130771F103384FE567 -:10316000140709F079C4882309F476C481EE0E941B -:10317000EC0B83EE0E94EC0B80E50E94EC0B80E5EB -:1031800028C005385FE5150709F47CC006389FE5BF -:10319000190709F061C4882309F495C0809147029A -:1031A000882309F486C080EE90E090935F018093BD -:1031B0005E011092470274C0882309F44DC481EE69 -:1031C0000E94EC0B83EE0E94EC0B8FE40E94EC0B50 -:1031D0008FE40E94B30B83EE0E94B30B81EE0E943A -:1031E000B30B3AC480934B0210934A0200934902F6 -:1031F00033C480934802F8CF882379F18091480244 -:10320000882349F0809149020E94B30B80EE0E940E -:10321000EC0B8AE20CC080914B028823D1F38091A1 -:1032200049020E94B30B80EE0E94EC0B8CE40F90DD -:103230000F900F900F900F90DF91CF911F910F91F2 -:10324000FF90EF90DF90CF90BF90AF909F908F90C6 -:103250007F906F905F900C94EC0B8AE20E94B30B0E -:103260008CE40E94B30B80EE0E94B30B8091480265 -:10327000811105C080914B02882309F421CE8091F1 -:103280004902D5CF8823F9F080915D01811104C0F6 -:1032900080910001882339F010925D0110920001A5 -:1032A0000E940B0FD9C381E080935D0180930001E0 -:1032B000F7CF86E690E090935F0180935E0181E016 -:1032C00080934702EDCF61E03CCF64E03ACF013616 -:1032D0003DE5130709F4D5C30E3D1C4509F012C1A5 -:1032E0000F900F900F900F900F90DF91CF911F9143 -:1032F0000F91FF90EF90DF90CF90BF90AF909F9095 -:103300008F907F906F905F900C94D6168091E6021C -:10331000806106304CE5140709F491C08091E60203 -:10332000886007301C4508F48AC08091E6028062FC -:1033300086C00C308CE5180709F49CC070F48091AD -:10334000E6028C600A30ECE51E0709F478C008F448 -:103350008BC08091E6028E7F72C08091E602877FEB -:103360000E302CE5120709F46AC08091E6028B7FCB -:103370000F301C4508F463C08091E6028F7E5FC069 -:103380000C3F4CE5140709F479C068F504318CE56D -:10339000180709F48BC080F40231ECE51E0709F42C -:1033A00075C08091E6028F7B03311C4508F447C04D -:1033B0008091E602837F43C00A3F2CE5120709F49F -:1033C00045C008F049C005311C4509F081C3809112 -:1033D000E60282FB992790F921E0922790FB82F97F -:1033E00090FB83F92CC001155DE5150709F454C065 -:1033F00088F48091E70283600E3F9CE5190749F14C -:103400008091E7028D7F0F3F1C4518F18091E70204 -:103410008C7F1FC00230FDE51F0709F456C008F479 -:103420004EC001361D4509F053C39091E602892F25 -:103430008F7E94FF806103C08091E602816080935B -:10344000E60246C38091E6028460F9CF8091E702EC -:1034500081608093E7023CC38091E7028260F9CFEC -:103460008091E6028064EBCF0E9429118091E602F0 -:103470008068E5CF8091E6028D7FE1CF8091E70201 -:103480008E7FE7CF8091E6028F7DD9CF0E942911F0 -:103490008091E6028F77D3CF8091E702982F9095A5 -:1034A00091708E7F892B90FB81F9D3CF0E942911D7 -:1034B0009091E602892F97FB87F98058C0CF61E091 -:1034C0008EE090E00E94863203C360E0F9CF8091E5 -:1034D000A40282720A3C4CE5140709F4F7C008F014 -:1034E00063C0053CECE51E0709F4DCC0A0F5033C15 -:1034F0002CE5120709F4CCC008F0CFC0023C1C45F3 -:1035000009F476C0F60100811181992309F4FEC007 -:10351000C8010E94DB0FF82E682FC8010E945F0BC4 -:10352000B8018F2D0E94CE0F0E94AC09182FB82E23 -:10353000F60122814581342F32953F70892F829583 -:103540008F70E82EF12C8C3008F018C1F701EB5F7A -:10355000FB4C0C944632073C5CE5150709F4ACC003 -:1035600008F4A5C0083CFCE51F0709F4AAC04DE912 -:1035700055E169EA75E1093C1C4521F60F900F9071 -:103580000F900F900F90DF91CF911F910F91FF90AF -:10359000EF90DF90CF90BF90AF909F908F907F90F3 -:1035A0006F905F900C949D08043D3CE51307A0F4D8 -:1035B0000E3C4CE5140708F083CC0C3C5CE5150789 -:1035C00009F489C047E456E168E576E10D3C1C4505 -:1035D000A8F261E081E046C0053DECE51E0709F474 -:1035E0006FCC08F47DC00D351D4509F469CC8ACF38 -:1035F0008091730480FF31C08E7F8093730460914B -:1036000073047091740480917504909176040E9403 -:10361000D814809173038160809373033FEF40E778 -:1036200052E0315040405040E1F700C000000F90A0 -:103630000F900F900F900F90DF91CF911F910F91EE -:10364000FF90EF90DF90CF90BF90AF909F908F90C2 -:103650007F906F905F900C94A30D816080937304B2 -:1036600061E086950F900F900F900F900F90DF9173 -:10367000CF911F910F91FF90EF90DF90CF90BF906F -:10368000AF909F908F907F906F905F900C94691691 -:1036900045E956E16EE976E171CF4EE956E165E91B -:1036A00076E16CCF4DEC55E166ED75E167CF46ED07 -:1036B00055E16DEC75E162CF45EB55E161EC75E1EB -:1036C0005DCF41EC55E165EB75E158CF49EA55E135 -:1036D0006DE975E153CF48E556E167E476E14ECFF9 -:1036E0000F900F900F900F900F90DF91CF911F913F -:1036F0000F91FF90EF90DF90CF90BF90AF909F9091 -:103700008F907F906F905F900C94A816C8010E94D4 -:10371000370BF82E05CF092F0F70907F11F002950F -:10372000007F812F2223C9F0002369F090E2910FDE -:10373000983010F011110BC08091A402082B009357 -:10374000A4020E94160B812F0E94EC0B17C08091DF -:10375000A302082B0093A302F4CF0E94B30B002313 -:1037600069F00095105E183010F0B11027C08091FC -:10377000A40208230093A4020E94160B98E0E91A01 -:10378000F108E4E0EE16F10408F09ACB0E94C60EB0 -:103790000F900F900F900F900F90DF91CF911F918E -:1037A0000F91FF90EF90DF90CF90BF90AF909F90E0 -:1037B0008F907F906F905F900C94260E8091A30263 -:1037C00008230093A302D8CF892F8F70907F903267 -:1037D00011F08295807FF1E0BF120CC0222329F006 -:1037E000333060F60E94A90BC9CF323038F60E9400 -:1037F0009E0BC4CF222341F03323A1F340FFA3CF7C -:103800004F70F6014583EECF332389F3193309F066 -:10381000F5C0FFEF27EE33E0F15020403040E1F7F4 -:1038200000C00000812F0E94B30BA8CF892F86957E -:103830008695837061F0813009F0A0CF812F93705D -:10384000211102C090E080E00E94440897CF812FB0 -:103850009370211102C090E080E00E945A088ECF40 -:10386000892F8370A1F5211189CF812F82958695AB -:103870008770880F880F412F4F70082E01C0440FAA -:103880000A94EAF7212F207114FF07C02FE030E0DF -:1038900001C0220F8A95EAF7209596959695937028 -:1038A000923081F0822F842B933030F48091A502E6 -:1038B000913029F0242B82230E949A0B5FCF842B16 -:1038C000822BFACF242B8091A5028227F5CF8695F3 -:1038D000222311F0892F8170882309F44FCF812F83 -:1038E000829586958770880F880F412F4F70082E1C -:1038F00001C0440F0A94EAF7212F207114FF07C07A -:103900002FE030E001C0220F8A95EAF720959695C6 -:1039100096959370923081F0822F842B933030F4FF -:103920008091A603913029F0242B82230E941F1638 -:1039300025CF842B822BFACF242B8091A6038227BC -:10394000F5CF092F0F70222329F0802F0E943C16FB -:10395000812F48CF812F0E949E0B802F0E9430160E -:103960000DCF812FE1EF1E1789F1E11750F0F0EF35 -:103970001F17B9F02223B1F13111E5CE892F8F71D4 -:1039800029C042EF141749F153EF1513F3CF80E02C -:10399000222361F29F7181E001C0880F9A95EAF7B6 -:1039A000C5CF222379F0323008F0E8CE292F2F71CD -:1039B00081E090E001C0880F2A95EAF79091A60374 -:1039C0008927B4CF333008F0D9CEF0CF892F8F714B -:1039D000222321F20E943C16D1CE892F8F712223FF -:1039E000C9F3BCCF332379F0893341F48FEF97EEDD -:1039F000E3E081509040E040E1F712CF8FE39CE993 -:103A00000197F1F70DCF892F8F71A8CF0031FFE516 -:103A10001F0709F46ECB01312FE5120709F486CB9D -:103A20000E9438086093FD027093FE028093FF02AB -:103A300090930003F6018281063F110509F445CCFD -:103A400008F082CB053E110509F4CCCB08F070CB11 -:103A5000013E110509F4CDCBF6019281992309F4B9 -:103A600036CD0330FDE51F0708F031CC0A3F2CE5C9 -:103A7000120738F4980122503C452431310508F0F2 -:103A80002BCC0E9456109093E7028093E6020031FF -:103A90004CE5140709F4F6CC08F072CC08308CE53C -:103AA000180709F4DDCC08F044CC0430ECE51E071F -:103AB00009F4C8CC08F02ACC02302CE5120709F42E -:103AC000BBCC8091E602826003301C4509F4B7CC80 -:103AD0006091E6021091E70284E090E00E94863255 -:103AE000612F82E290E00E9486320F900F900F903B -:103AF0000F900F90DF91CF911F910F91FF90EF905A -:103B0000DF90CF90BF90AF909F908F907F906F90FD -:103B10005F900C94291100313FE5130709F4EDCAB9 -:103B200001314FE5140709F085CF82E0E7CA85E04F -:103B3000DE01119601900D928A95E1F7F60122813E -:103B400089819A812111D1C90E94370B182FD5C9BB -:103B50001F93CF93DF9380916F02807FA9F48091B0 -:103B60006C02882389F08091A102D091700260914B -:103B70006A0270916B02A0916D02B0916E02C62F25 -:103B8000C72316E0D81304C0DF91CF911F91089589 -:103B900090E0109711F0CF3F19F401968770F2CFA3 -:103BA000189F9001199F300D1124F901EF58FD4F16 -:103BB00041814713F2CF40814613EFCF428141113B -:103BC000ECCF438154814A1B5B0B403A510528F7E7 -:103BD00080916F028F70806180936F02F901EA58C3 -:103BE000FD4F80818F70806180838AE692E00E9421 -:103BF0004017DF91CF911F910C942D0BAF92BF9284 -:103C0000CF92DF92EF92FF920F931F93CF93DF93A8 -:103C1000CDB7DEB761970FB6F894DEBF0FBECDBF4C -:103C20008C0185E0F801DE011D9601900D928A95C8 -:103C3000E1F7F801E2808AE6A82E82E0B82E6091D2 -:103C40006D0270916E026115710509F432C1909197 -:103C50006A0240916B02892F84238F3F09F429C1A6 -:103C600020813181C380D480F0906C02F601E61B84 -:103C7000F70BFF2009F4E8C080916F02582F507FA6 -:103C8000E03AF10508F0ABC0511177C0FE2C4313A8 -:103C900021C092131FC0E1101DC08F7080618093FE -:103CA0006F02C5010E94401780916F02F801858361 -:103CB0008F2D61960FB6F894DEBF0FBECDBFDF919A -:103CC000CF911F910F91FF90EF90DF90CF90BF9019 -:103CD000AF900895CD2829F0822F83238F3F09F0DC -:103CE00003C180E0F82FF170DF2E80FF3CC080918F -:103CF000A1024091700256E0841315C02D873E87C3 -:103D00008D859E850E940A10292F22952F702230C2 -:103D1000F0F0243018F59F70F1F0F8019581907F54 -:103D2000D1F4D12C1EC090E0589FF001599FF00DA6 -:103D30001124EF58FD4F6181361306C060812613B0 -:103D400003C06281E6120FC001968770D5CF9F70C5 -:103D500011F0882331F3805E883018F3C8010E9487 -:103D60004017FD2CA5CFEE2009F4A2CF80916F0261 -:103D7000816080936F02F12C9BCF431306C0921396 -:103D800004C0F801EE2009F479C0C8010E941610A1 -:103D9000882309F1EE20F9F080916F02803270F0F3 -:103DA00020916A0230916B0238872F831986DB8657 -:103DB000CA868C87CE0107960E94401786E0F801DC -:103DC000AAE6B2E001900D928A95E1F70E94A81D43 -:103DD000FF24F3946DCFC8010E944017F9CF511111 -:103DE0000AC08AE692E00E94401786E0F50111922F -:103DF0008A95E9F7C0CF43130FC092130DC0E110AD -:103E00000BC0F8018583C8010E94401786E0F501C8 -:103E100011928A95E9F74CCFC8010E9416108823A9 -:103E2000D1F2EE20C1F280916F02803238F22091FF -:103E30006A0230916B023A8329831B82DD82CC8235 -:103E40008E83CE010196B8CFE03AF105F8F6FE2C4C -:103E5000EE2009F243131FC092131DC080916F0220 -:103E600080FD10C0982F907F69F0F8018583903F06 -:103E700031F0982F907F905F8F70892B8583C801D8 -:103E80000E94401786E0F801AAE6B2E001900D9288 -:103E90008A95E1F70DCFC8010E94161081118ECFCF -:103EA00080916F02816080936F02C8010E94401769 -:103EB000FFCEEE2009F48FCFC8010E941610F82E15 -:103EC000882309F488CF86E0F801AAE6B2E00190E1 -:103ED0000D928A95E1F780916A0290916B020E949F -:103EE0000A100E94A81DE4CE81E08E25FBCE1F9310 -:103EF000CF93DF93CDB7DEB767970FB6F894DEBFE9 -:103F00000FBECDBF4B8B5C8B6D8B7E8B8F8B61110E -:103F10001092A3021A8A198A85E0FE017396DE01C7 -:103F20001D9601900D928A95E1F786E0FE013D967F -:103F3000DE01179601900D928A95E1F7CE01079662 -:103F40000E94FE1D882389F016E08091A1029091C5 -:103F50007002891349C067960FB6F894DEBF0FBE92 -:103F6000CDBFDF91CF911F91089586E0FE01379676 -:103F7000DE01119601900D928A95E1F78A859B8565 -:103F8000892B11F38F81988589238F3FE9F2209146 -:103F9000700230E0C9010196877099274091A10213 -:103FA0004817190671F40E9429111092700210929C -:103FB000A10286E0EAE6F2E0DF011D928A95E9F7C8 -:103FC000C3CF96E0929FD001939FB00D1124AF58BC -:103FD000BD4FFE01319601900D929A95E1F78093C5 -:103FE00070020E942D0BB0CF819FC00111248F5809 -:103FF0009D4F0E94FE1D882309F4ADCF8091A10240 -:1040000090E00196877099278093A1029ECF0F932D -:104010001F93CF93DF9300D000D0CDB7DEB7409190 -:10402000D5025091D6026091D7027091D8022FB775 -:10403000F8948091880390918903A0918A03B091AC -:104040008B032FBF841B950BA60BB70B84369105F2 -:10405000A105B10588F10E94A30E882379F10E9481 -:1040600038086E5F7F4F8F4F9F4F69837A838B83B2 -:104070009C8380912C0190912D0180549D4F409103 -:104080002B0150E04530510510F044E050E0BE01F6 -:104090006F5F7F4F0E94693284E090E00E945E3142 -:1040A000892BD9F40E9438086093D5027093D60208 -:1040B0008093D7029093D80281E010C00E94380804 -:1040C0000091E2021091E3022091E4023091E502B6 -:1040D000600F711F821F931FC4CF80E00F900F905D -:1040E0000F900F90DF91CF911F910F9108958F92B4 -:1040F0009F92AF92BF92CF92DF92EF92FF920F9377 -:104100001F93CF93DF93EB0188809980AA80BB80B7 -:104110009FB7F894C0908803D0908903E0908A03F9 -:10412000F0908B039FBFC818D908EA08FB0894E6F3 -:10413000C916D104E104F10410F4442311F1E82E6E -:10414000082E000CFF089AE08902F0011124EF5FAD -:10415000FE4F8381948180549D4F428150E004172B -:10416000150708F4A801B9010E946932C7010E942D -:104170005E31892BA1F40E943808688379838A8391 -:104180009B8381E0DF91CF911F910F91FF90EF9082 -:10419000DF90CF90BF90AF909F908F90089580E078 -:1041A000F1CF0F931F93CF93DF930F92CDB7DEB76D -:1041B00080917F0389832091D40290E041E0281709 -:1041C000190609F440E001E010E09E012F5F3F4F27 -:1041D0006DED72E086E00E9477200F90DF91CF9125 -:1041E0001F910F9108950F931F93CF93DF93CDB736 -:1041F000DEB728970FB6F894DEBF0FBECDBF85E0BF -:10420000E3E7F4E0DE01119601900D928A95E1F763 -:104210008091710390917203A09173038E839F83A9 -:10422000A88741E08885811101C040E008E010E0E6 -:104230009E012F5F3F4F69ED72E085E00E9477207D -:1042400081111092730328960FB6F894DEBF0FBE4B -:10425000CDBFDF91CF911F910F9108956F927F9203 -:104260008F929F92AF92BF92CF92DF92EF92FF9286 -:104270000F931F93CF93DF930F92CDB7DEB7862EA8 -:104280005A016901682E880F7708C3010E945E31C8 -:10429000892B09F088C08AE0869DF001879DF00D8A -:1042A0001124EF5FFE4F458150E04115510511F09B -:1042B00041E050E08AE0869DF001879DF00D1124D9 -:1042C000EF5FFE4F6681778160547D4FCE0101968E -:1042D0000E946932F50140815181628173812FB75B -:1042E000F8948091880390918903A0918A03B091FA -:1042F0008B032FBF841B950BA60BB70B8436910540 -:10430000A105B10540F4B701C8010E948708998151 -:10431000891709F44FC0082C000C9908C4010E94A9 -:104320005E31892B91F0B12C8B2D0F90DF91CF91C5 -:104330001F910F91FF90EF90DF90CF90BF90AF90C3 -:104340009F908F907F906F9008958AE0889DF001F4 -:10435000899DF00D1124EF5FFE4F458150E0E4167A -:10436000F50608F4A7018AE0889DF001899DF00D0B -:104370001124EF5FFE4F6681778160547D4FC60147 -:104380000E946932B701C8010E9487089981891388 -:10439000CACF0E943808F5016083718382839383BA -:1043A000BB24B394C1CFB12CA701B801C6010E94B0 -:1043B0006932BACFBB24B394F7CFCF92DF92EF929A -:1043C000FF920F931F93CF93DF9300D000D00F92F3 -:1043D000CDB7DEB76B0185E0E82EF12C01EC12E0E1 -:1043E0009E012F5F3F4F48EB52E061E080E00E946A -:1043F0002E21882349F095E0FE013196A3EBB2E02F -:1044000001900D929A95E1F795E0E3EBF2E0D60189 -:1044100001900D929A95E1F70F900F900F900F90E9 -:104420000F90DF91CF911F910F91FF90EF90DF9050 -:10443000CF90089590E080E00E948032893E9E4FA8 -:1044400011F40C943D1080E008951F920F920FB666 -:104450000F9211242F933F934F935F936F937F930A -:104460008F939F93AF93BF93CF93DF93EF93FF937C -:10447000D091E900DF708091EC00C82FC17080FD01 -:10448000C0E81092E9008091F000877F8093F000EF -:1044900078940E9434111092E9008091F0008860B5 -:1044A0008093F000CD2BCF70C093E900FF91EF9186 -:1044B000DF91CF91BF91AF919F918F917F916F913C -:1044C0005F914F913F912F910F900FBE0F901F90D2 -:1044D00018951F920F920FB60F9211242F933F93AE -:1044E0004F935F936F937F938F939F93AF93BF93FC -:1044F000EF93FF938091E10082FF09C08091E20079 -:1045000082FF05C08091E1008B7F8093E100809164 -:10451000DA0080FF24C08091D80080FF20C0809105 -:10452000DA008E7F8093DA008091D90080FF9DC0F1 -:1045300080E189BD82E189BD09B400FEFDCF81E043 -:1045400080939C0380918F03811109C00E94AA0669 -:104550000E9475078091E20084608093E200809160 -:10456000E10080FF17C08091E20080FF13C08091BE -:10457000E2008E7F8093E2008091E2008061809370 -:10458000E2008091D80080628093D80019BC85E059 -:1045900080939C038091E10084FF2BC08091E20016 -:1045A00084FF27C080E189BD82E189BD89B5982F4C -:1045B000917080FFFBCF8091D8008F7D8093D800D1 -:1045C0008091E1008F7E8093E1008091E2008F7EF8 -:1045D0008093E2008091E20081608093E20080910C -:1045E0009D03882309F447C084E080939C03809155 -:1045F0009C038091E10083FF27C08091E20083FF4C -:1046000023C08091E100877F8093E10082E0809366 -:104610009C0310929D038091E1008E7F8093E100C6 -:104620008091E2008E7F8093E2008091E2008061C1 -:104630008093E20042E060E080E00E9443078091C6 -:10464000F00088608093F000FF91EF91BF91AF91EF -:104650009F918F917F916F915F914F913F912F919A -:104660000F900FBE0F901F90189519BC10929C03CD -:1046700010928F0374CF8091E30087FD93E09093B5 -:104680009C03B5CF78941F921FB61F9211248F936D -:104690009F93AF93BF938091880390918903A091DA -:1046A0008A03B0918B030196A11DB11D80938803ED -:1046B00090938903A0938A03B0938B03BF91AF912A -:1046C0009F918F911F901FBE1F9018959C014FB70F -:1046D000F8948091880390918903A0918A03B09106 -:1046E0008B034FBF821B930B08952FB7F8948091D3 -:1046F000880390918903A0918A03B0918B032FBF07 -:104700000895AF92BF92DF92EF92FF920F931F93A3 -:10471000CF93DF93CDB7DEB761970FB6F894DEBFC6 -:104720000FBECDBF4C87888B998BE52ED62EF72EEA -:104730005E0127E0A20EB11C85E0F50111928A9579 -:10474000E9F7809170038A3008F095C080916E037C -:1047500090916F030E946623089708F48CC004E6CA -:1047600010E025E030E0A50164E084E10E949D2F87 -:10477000892B09F0DBC0109270038B8587FDD1C0B7 -:10478000E894E0F880916C0390916D03009709F034 -:10479000C2C08F819885891708F091C0981B892F16 -:1047A00041E020915E0130915F01889FC00111249A -:1047B00055E0589FF001599FF00D1124E29FB00180 -:1047C000E39F700DF29F700D1124660F672F661F17 -:1047D000770B7195442319F071956195710980915A -:1047E0006A0390916B03680F791F89859A858917F1 -:1047F00008F068C0981B892F41E0889FC0011124F0 -:1048000055E0589FF001599FF00D1124E29FC0011F -:10481000E39F900DF29F900D1124880F892F881F20 -:10482000990B9195442319F09195819591092091C7 -:10483000680330916903820F931F603871050CF48F -:1048400044C06F57710970936B0360936A033FE72D -:10485000D32E803891050CF44BC08F57910990935B -:104860006903809368039FE7F92E0E947523909354 -:104870006F0380936E03ED86DE86FF8686E0FE0181 -:104880003C96DE01119601900D928A95E1F72981FF -:104890003A814B815C816D817E8180E090E0619600 -:1048A0000FB6F894DEBF0FBECDBFDF91CF911F9141 -:1048B0000F91FF90EF90DF90BF90AF900895891B0C -:1048C00040E06FCF891B40E098CF6138FFEF7F0752 -:1048D0004CF461587F4F70936B0360936A0321E837 -:1048E000D22EB7CFD62E10926B0310926A03B1CF9F -:1048F00081382FEF92074CF481589F4F90936903B2 -:104900008093680381E8F82EB0CFF82E10926903E7 -:1049100010926803AACF019790936D0380936C0364 -:10492000A4CF6894E0F884E190E0F6CF8091700322 -:104930008F5F8093700399CF9F92AF92BF92CF9277 -:10494000DF92EF92FF920F931F93CF93DF93CDB738 -:10495000DEB764970FB6F894DEBF0FBECDBF8E01F1 -:104960000F5F1F4F8AE0D8011D928A95E9F79EEEEE -:10497000C92E91E0D92EF12CE12CAA24A394B12CBC -:10498000F60181916F018F3F09F444C0F894E82F3C -:10499000E295EF70F0E021A18F70A50102C0440FF5 -:1049A000551F8A95E2F7CA01922F982B91A392A1E5 -:1049B0008095892382A30E94500900C0E8EFF1E0AE -:1049C000912C31E021912F3F09F478C0A22FA295BC -:1049D000AF70B0E090968C9190E02F7002C09595EA -:1049E00087952A95E2F780FD69C0832F982A330FB7 -:1049F00052E0E030F50731F7F601319780818F3FC3 -:104A000011F00E94520980EA8A95F1F7F801EE0D43 -:104A1000FF1D9082AFEFEA1AFA0AB5E0EB16F10437 -:104A200009F0AECF4AE050E0B80188EE92E00E9473 -:104A30005C327C01892B41F08AE0F801A8EEB2E0FB -:104A400001900D928A95E1F71091F302E114F104BF -:104A5000B9F181E08093A8020E9475239093A70288 -:104A60008093A6028091A6029091A7020E946623DD -:104A7000069770F0A8EEB2E0E12FF0E0EE5AFC4F9E -:104A80008D91819322E0AD3EB207D1F71092A8023A -:104A900081E090E0EF28C1F064960FB6F894DEBF95 -:104AA0000FBECDBFDF91CF911F910F91FF90EF907F -:104AB000DF90CF90BF90AF909F90089580E096CF09 -:104AC0008091A8028111CECF0E94A30ED82EE09132 -:104AD000F302882309F4B4C07E0140E1E40EF11C26 -:104AE00085E0D7011D928A95E9F70E2F10E00E5A46 -:104AF0001C4F8091E1028A3008F06CC04DED51E20C -:104B0000B701C8010E945F0E882309F485C04EEEEC -:104B100056E2B701C8010E945F0E882309F47CC0E9 -:104B200047E050E2B701C8010E945F0E882309F4F4 -:104B300073C043EF50E2B701C8010E945F0E8823A3 -:104B400009F46AC041ED50E2B701C8010E945F0E4E -:104B5000882309F461C01092E1028091F20290E092 -:104B600045E050E0B7018E5A9C4F0E945C3221E034 -:104B70002093B102892B09F042C0D12C8BEAE82E98 -:104B800082E0F82E10E000E0D7018D917D018823AE -:104B9000D1F08695F80109F450C0E851FE4F8081AC -:104BA00091819C878B871D860E9475238160782F59 -:104BB0009F878E87F701319710824B855C856D85C5 -:104BC0008F850E94771F0E5F1F4F04301105E1F69D -:104BD0008D2D62CF8091A9029091AA020E94662336 -:104BE000843F914008F08ACF8091B102882329F256 -:104BF00085E0F70111928A95E9F71092B102A09130 -:104C0000F202B0E0AE5ABC4F85E0FE017096019012 -:104C10000D928A95E1F7B2CF8091E1028F3F31F09A -:104C20008F5F8093E1028A3008F497CF0E9475234A -:104C30009093AA028093A902D7CFEC51FE4FAFCF39 -:104C4000F0E0EE5AFC4FF89485E0A1ECB2E0019060 -:104C50000D928A95E1F765E070E081EC92E00E94A8 -:104C600087088093C0020E945009F894E091FB02EB -:104C7000F0E0E850FD4F80818B878093C70261E0B0 -:104C800070E0CE010B960E9487088093C6020E94B6 -:104C90005009F894C090C802D090C902E090CA02AE -:104CA000F090CB028091AD029091AE02A091AF0244 -:104CB000B091B002C816D906EA06FB06D1F0C09240 -:104CC000AD02D092AE02E092AF02F092B0020E942A -:104CD000A30E81110EC00E943808C61AD70AE80A2E -:104CE000F90AC092E202D092E302E092E402F0926A -:104CF000E5020E945009F8948091D3028823F1F0D4 -:104D000080FF0DC08091CC0280FF25C0909173047C -:104D100091609093730460E086950E94691680917B -:104D2000D30281FF09C020E04091CF026091CE0202 -:104D30008091CD020E94EA141092D3020E94500981 -:104D4000F8948091D402882349F00E94FB0C0E94C1 -:104D5000500980E0A1CE0E944A0EE1CF0E94E00CF3 -:104D6000F6CFEF92FF920F931F93CF93DF9300D074 -:104D700000D00F92CDB7DEB7162FE82EF12CC70169 -:104D8000880F991F662339F188519E4FFC0180815D -:104D900091819A83898301E00B830E94752381604E -:104DA000782F9D838C83F701E555FD4F0127110F67 -:104DB000102B108349815A816B818D810F900F9048 -:104DC0000F900F900F90DF91CF911F910F91FF9057 -:104DD000EF900C94771F8C519E4FD8CFCF92DF92DB -:104DE000EF92FF920F931F93CF93DF930F92CDB764 -:104DF000DEB7EE24E394F12C07EC12E09E012F5F66 -:104E00003F4F4CEB52E063E082E00E942E21082FDE -:104E1000882321F1C090F5028C2D90E09C01285050 -:104E20003D4F79011981F9018081181BD12E80E055 -:104E30000AC0DA94F70180818F5F808360E08C2D57 -:104E40000E94B126802F1D14A4F3912F17FD90E02E -:104E5000191B11110EC081110E94140B802F0F908D -:104E6000DF91CF911F910F91FF90EF90DF90CF9046 -:104E700008951F5FF70180818150808361E08C2D50 -:104E80000E94B126802FE5CF1F921FB61F921124DA -:104E90008F939F93AF93BF9380918703811113C02A -:104EA0008091880390918903A0918A03B0918B032C -:104EB0004196A11DB11D8093880390938903A0930F -:104EC0008A03B0938B03BF91AF919F918F911F90F5 -:104ED0001FBE1F901895CDB7DEB7AE970FB6F894EA -:104EE000DEBF0FBECDBF84B7877F84BF0FB6F894F7 -:104EF000A8958091600088618093600010926000A6 -:104F00000FBE80E890E00FB6F89480936100909314 -:104F100061000FBE85B7806885BF85B7806885BF93 -:104F20008EE499E090933D0280933C020E94AA0691 -:104F30000E9475078091E20084608093E20078947B -:104F400080919C038823A1F01091E9001F7090913B -:104F5000EC00892F817090FD80E8182B1092E900F9 -:104F60008091E80083FD0E9434111F701093E900C6 -:104F700082E084BD93E095BD9AEF97BD80936E006B -:104F80001092E2021092E3021092E4021092E50203 -:104F90000E943D10811102C00E94990F0E94A30E31 -:104FA0008093470180914701882309F47CC01092C7 -:104FB000600182E2809361010E94A30E81110E9430 -:104FC0005130809147018091470195E0811190E037 -:104FD0009093F30285E0891B8093F2020EEE11E0BC -:104FE00093EFE92E91E0F92ED8018D918D018F3F3D -:104FF00011F00E945209E016F106B1F708EF11E036 -:1050000080E0E82E82E0F82EF80181918F018F3F39 -:1050100011F00E945209E016F106B1F78AE0E2E5CC -:10502000F3E0DF01282F1D922A95E9F7E8EEF2E080 -:10503000DF011D928A95E9F70E941A22811102C0B0 -:105040000E94D61682E090E00E947232809347035D -:105050000E9456109093E7028093E6020E949C24DF -:10506000EFE7FBEB3197F1F700C000000E949C24B2 -:105070008091520380FF1BC06FEF7FEF90E080E0D4 -:105080000E94A43287E797E7909301088093000875 -:1050900088E19AE00FB6F894A895809360000FBE5F -:1050A00090936000FFCF82E28093600183CF83E022 -:1050B00090E00E9472320E949A0B8091A6030E9497 -:1050C000DF150E94A30E811102C00E9454300E947D -:1050D000A30E81111EC283E08093420380E480937B -:1050E00074030E94522E6DE070E08CE492E00E9406 -:1050F000B00C892BE9F58091420363E070E081FDFB -:105100000AC289E492E00E94B00C892B89F56DE017 -:1051100070E089E392E00E94B00C892B49F50E946F -:1051200038086058774C8E4F9F4F60937B03709385 -:105130007C0380937D0390937E03EAE7F4E080E0B4 -:1051400094E0DF019C011D9221503040E1F7F09383 -:105150007B08E0937A088FEF9FEF90937904809318 -:10516000780481E08093800380937F03109243034F -:105170008091F402811136C00E941A22811104C06C -:105180000E94D6160E94B71688E090E00E947A32FC -:105190006093730470937404809375049093760401 -:1051A000809173038360809373036E7F71F40E9418 -:1051B000B71688E090E00E947A326093730470938F -:1051C000740480937504909376040E94A2088091E1 -:1051D000730480FF04C060E086950E94691681E038 -:1051E0008093F40280914701811106C084E9809385 -:1051F000550182E98093540120915501A22FA29577 -:10520000AF70B0E091963C9191972F7081E090E063 -:10521000BC01022E01C0660F0A94EAF7462F4095A2 -:10522000432391964C93919792963C919297362B6B -:1052300092963C93929740915401E42FE295EF703F -:10524000F0E031A14F70042E01C0880F0A94EAF7F4 -:10525000982F9095932391A392A1892B82A3909646 -:105260008C9190E002C0959587952A95E2F7817020 -:1052700020A130E002C0359527954A95E2F792E0EB -:1052800020FF90E0892B8093FC029091470181E000 -:1052900098279093FB02891B8093F5020E94CF16FA -:1052A00060E08AE00E94691681E00E941F1680EE8D -:1052B00090E090935F0180935E010E940B0F88E461 -:1052C00091E09093840380938303A8E18A2E912C2C -:1052D000B0E4EB2E80919C03FF24F39400E112E1F3 -:1052E000853009F465C10E949C24D82E81110E944A -:1052F0003808F2E52F2EF3E03F2EE8E4F3E0D10189 -:1053000010E000E0A02ECD9081918C1509F472C1BF -:105310008C25B12CFF24F3949F2D982309F465C1AB -:105320000E94A30E882399F0B9A2AAA2CF2081E0FF -:1053300009F480E08BA30E9475238160782F9DA3E0 -:105340008CA349A15AA16BA18DA10E94771FF801DE -:10535000E85BFC4F8081F826F0828091FC02E82F08 -:10536000EE0FEE0F90915501A92FA295AF70B0E00E -:1053700090962C9130E09F7002C0359527959A95B4 -:10538000E2F72170332790915401A92FA295AF70B5 -:10539000B0E090964C9150E09F7002C055954795B3 -:1053A0009A95E2F7CA018170992740FF02C082E016 -:1053B00090E0822B8E2B8093FC021091FB028F7069 -:1053C000E82FF0E0E050FE4F80819091FA02890FC3 -:1053D0008093FA02F12C84306CF0E12FF0E0E85079 -:1053E000FD4F80818F5F808360E0812F0E94B12616 -:1053F000FF24F3948091FA028D3F6CF4E12FF0E0EA -:10540000E850FD4F80818150808361E0812F0E94B0 -:10541000B126FF24F3948091FA02082E000C990B18 -:1054200064E070E00E9432328093FA02F1100E9430 -:10543000140B80918003882351F180914403909153 -:1054400045030E946623C29708F0EBC020917804C0 -:10545000309179042115310509F09DC180917F03B8 -:105460008823A9F00E94380800917B0310917C03E7 -:1054700020917D0330917E03601B710B820B930B97 -:105480006F3F7F4F8F4F9F4710F40E94E00CD11069 -:1054900001C0F1100E94FB0C0E9464100E94C60E15 -:1054A00090914603891731F00E94C60E80934603FF -:1054B0000E94260E80919C03843009F00BCF83E07C -:1054C0008093E9008091E80082FF04CF8091E8009A -:1054D00090E085FF0CC00E94C90630E2C32ED12C9B -:1054E0008E010F5F1F4F882309F431C291E0809134 -:1054F000E8008B778093E800992309F4EBCEE981EB -:10550000E150E33108F087C2F0E0EF5EFB4C0C9411 -:10551000463281E0E1CD86E492E0F5CD80919C03B6 -:10552000843009F435C080E00E94260E8091F70295 -:10553000811109C0F092F702809173048170809309 -:10554000F6020E944A0E0E94E00C0E946410109223 -:1055500087030FB6F894A895809260000FBEE09282 -:10556000600083B7817F846083BF83B7816083BF1E -:105570007894889583B78E7F83BF0FB6F894A895EB -:1055800080916000886180936000109260000FBE7F -:1055900080919B03882361F00E949C24E2E5F3E064 -:1055A0008191811160C38CE593E08E179F07C1F74D -:1055B00080919C03853009F4B1CF0E9429110E948B -:1055C000C60E0E94260E1092F7028091F6028823E2 -:1055D00049F08091730481608093730460E0869544 -:1055E0000E9469160E940B0F7ECEB394FF0C98E0C8 -:1055F000B91292CE0F5F1F4F0A30110509F082CE0B -:105600008FEF8EA38FA318A60E9475238160782F39 -:105610009AA789A74EA15FA168A58AA50E94771FB6 -:105620009CCE0E947523909345038093440360E0D1 -:1056300080E00E9470080E94C60E809301030E94C1 -:10564000A30E882309F48EC04091FD025091FE0202 -:105650006091FF02709100032FB7F8948091880346 -:1056600090918903A0918A03B0918B032FBF841B73 -:10567000950BA60BB70B81339547A105B10540F0FB -:105680000E94E00C80918003882309F4E7CEDECEEF -:105690000E94FB0C61E080E00E94700860E086E6FA -:1056A00091E00E94BC1462E080E00E94700880914A -:1056B000A6030E94600C823009F446C0E8F58823F6 -:1056C00009F442C0813009F445C065E080E00E94E1 -:1056D000700860E089E891E00E94BC1466E080E018 -:1056E0000E947008609101036695617084E991E001 -:1056F0000E94BC1467E080E00E9470086091010382 -:105700006095617089E991E00E94BC1468E080E0D6 -:105710000E9470086091010362FB662760F98DE9C1 -:1057200091E00E94BC146BE080E00E94700889E563 -:1057300092E00E946706A6CF833081F0843029F67C -:1057400060E08DE791E003C060E081E791E00E94B6 -:10575000BC14BBCF60E087E791E0F9CF60E083E85D -:1057600091E0F5CF63E080E00E94700860E082EA9B -:1057700091E00E94BC1464E080E00E94700860E048 -:105780008AEA91E00E94BC1467E080E00E94700801 -:1057900089ED93E0CECF8091430361E070E0811109 -:1057A0005DCE082F10E02B01082E02C0440C551CC2 -:1057B0000A94E2F7A90144215521452B09F447C079 -:1057C0009091420390FD45C08295880F880F8074A8 -:1057D0008093580198013695279520935B01815C51 -:1057E0008093590110925C0124E630E047E050E0DC -:1057F00066E571E088E70E94492F892B09F02ECEDB -:10580000A80176E0440F551F7A95E1F78091420395 -:1058100080FD2DC046585B4F04E610E020E430E0E8 -:1058200060E488E70E94702F892B09F017CE0E9450 -:10583000FB0CC201809590954090780450907904BB -:1058400048225922509279044092780407CE8F5F03 -:10585000A8CF880F880F880F8093580110925B01A2 -:10586000895F8093590187E080935C01BDCFE2E0BE -:10587000F3E0DF012E2D1D922A95E9F788E192E0F1 -:105880009EA78DA700E112E0ADA5BEA56D91BEA7B4 -:10589000ADA7F80181918F01840F952F911D9C0177 -:1058A00026583B4F3CA72BA7E62FF0E0EE5FFC4FBE -:1058B00030E020E067E0662E621ACC24C394022E0A -:1058C00001C0CC0C0A94EAF7ABA4BCA490E0D501CB -:1058D0008D915D018C21662D691B6770762E062ED9 -:1058E000000C770BB82F01C0BB0F7A94EAF77B2E20 -:1058F0007195619571096770772701C086956A95E2 -:10590000EAF7782A8081782A70829F5F9830F9F6CA -:105910002F5F3F4F31962830310561F6E0E2F2E02B -:105920002DA53EA5E217F30709F0AECF04E610E07F -:1059300020E430E042E053E073CF8091F100D801E1 -:105940008D938D01B1E0CB1AD10809F4CFCD8091B0 -:10595000E80085FDF2CF8091E8008B778093E80026 -:105960000E94C906882399F3C1CD1A8289E08B83EE -:1059700011C08A81823009F48CC1833091F1813069 -:1059800009F049C00E9438080E944C326B837C8326 -:105990008D839E8380919C03843009F09BCC109171 -:1059A000E9001F709091EC00892F817090FD80E8D4 -:1059B000182B82E08093E9008091E80080FF0DC001 -:1059C00050E040E060E270E0CE0101960E94FA06ED -:1059D0008091E8008E778093E8001F701093E900B3 -:1059E00079CCFE013396D1018D911D018193BCE5E7 -:1059F0002B16B3E03B06B9F7CDCF8A81823059F43C -:105A00006B817C818D819E810E944C3286E290E088 -:105A10000E948632BFCF8FEF8983BCCF4C816B81D0 -:105A20008A810E94A80F9827892798279E838D83B3 -:105A3000B1CFCD80DE80DC24CD24DC248A810B81B3 -:105A4000E0E10E9F80011124F0EA8F9F000D111DEF -:105A500011248C8190E0880F991F080F191F6D2D5C -:105A6000C80187960E9486326C2DC8018896D0CFD7 -:105A70000E942E0F8FCF8A818138C1F060F4803868 -:105A800009F088CF20E04B81609175048091740407 -:105A90000E94EA147FCF8238E9F0833809F07ACF88 -:105AA00020E0409176046C818B81F2CF60E08B81A5 -:105AB0000E9469168B81811103C00E944A0E6ACF31 -:105AC0008091730481608093730460E086950E94E6 -:105AD000691660CF8B81809377045CCF8A8181388F -:105AE00099F030F4803809F055CF809176043FCF9B -:105AF000823891F0833809F04DCF809174048B8304 -:105B0000809175048C8346CF8091730480FF02C01E -:105B100086952DCF80E02BCF8091770428CF6091A0 -:105B200073047091740480917504909176040E94BE -:105B3000D81430CF80E18A832DCF1A8289EB17CF1A -:105B4000AA80BB80BA24AB24BA248E010F5F1F4FFA -:105B5000CC80C00ED12ED11CC501895B9C4F0C1589 -:105B60001D0509F417CF29EBA216B10458F40E94C1 -:105B70007232D80114968C93FFEFAF1ABF0A0F5FF1 -:105B80001F4FEACFF8011482F7CF0A811B8110273B -:105B9000012710279E012F5F3F4F5901CC80C00E77 -:105BA000D12ED11CC801895B9C4FC016D10609F4C7 -:105BB000F1CE093B110528F4D50114966C910E9491 -:105BC0008632BFEFAB1ABB0A0F5F1F4FEBCF0E94AD -:105BD0001E0FE0CE85E0AFCFAA80BB80BA24AB24F5 -:105BE000BA248E010F5F1F4FCC80C00ED12ED11C66 -:105BF000C5018796C016D10609F4CCCEE0E2AE16F8 -:105C0000E3E0BE0658F40E947232D80114968C93D9 -:105C1000FFEFAF1ABF0A0F5F1F4FEACFF8011482E0 -:105C2000F7CF0A811B811027012710279E012F5FC4 -:105C30003F4F5901CC80C00ED12ED11CC801879690 -:105C4000C016D10609F4A6CE003233E0130728F4BB -:105C5000D50114966C910E948632BFEFAB1ABB0A35 -:105C60000F5F1F4FEBCF09BD19BD09B400FEFDCF7B -:105C70008091D8008F7D8093D8008091E000826071 -:105C80008093E0008091E00081FDFCCF0E9429110B -:105C90008FCC86E290E00E9472321B821C821D82B1 -:105CA0008E8378CE1092B9008CE08093B80008956E -:105CB0009F92AF92BF92CF92DF92EF92FF920F939B -:105CC0001F93CF93DF93B82EEB010E9475236C01D5 -:105CD000EE24E394F12CC431D10560F025E0E22EEE -:105CE000F12CCF3FDC0731F0CE0164E170E00E947F -:105CF00012327B0184EAA82E94E8992E1092BC00FF -:105D0000A092BC000E9475238C018091BC0087FF8B -:105D10000DC08091B900887F883039F18091B90039 -:105D2000887F803111F10FEF1FEF09C00E947523AA -:105D3000801B910B8E159F0540F30EEF1FEFCF3F99 -:105D4000DC07E1F2C6010E9466238C179D07B0F2C2 -:105D5000C801DF91CF911F910F91FF90EF90DF90DD -:105D6000CF90BF90AF909F900895B092BB0090925B -:105D7000BC000E9475238C018091BC0087FF0AC083 -:105D80008091B900887F883111F0803461F610E08D -:105D900000E0DECF0E947523801B910B8E159F05BE -:105DA00058F3CBCF0F931F93CF93DF93EB018093E7 -:105DB000BB0084E88093BC000E9475238C01809115 -:105DC000BC0087FF11C02091B900287F81E090E0DE -:105DD000283211F490E080E0919581959109DF914E -:105DE000CF911F910F910895CF3FDC0741F30E949F -:105DF0007523801B910B8C179D0708F38EEF9FEF87 -:105E0000EECF0F931F93CF93DF93EC0184EC80933D -:105E1000BC000E9475238C018091BC0087FF08C0E4 -:105E20008091BB0090E0DF91CF911F910F91089579 -:105E3000CF3FDC0789F30E947523801B910B8C17E1 -:105E40009D0750F38EEF9FEFEECF0F931F93CF93ED -:105E5000DF93EC0184E88093BC000E9475238C01E1 -:105E60008091BC0087FF08C08091BB0090E0DF916B -:105E7000CF911F910F910895CF3FDC0789F30E94C6 -:105E80007523801B910B8C179D0750F38EEF9FEFAE -:105E9000EECFCF92DF92EF92FF920F931F93CF93AB -:105EA000DF936B018A017901B9010E94582EE60146 -:105EB0000C0D1D1DC017D10761F424E92093BC000F -:105EC000DF91CF911F910F91FF90EF90DF90CF90D6 -:105ED000089597FDF2CFB70189910E94D22EEACFA3 -:105EE000CF92DF92EF92FF920F931F93CF93DF93A6 -:105EF000C62F6A017901B8010E94582E97FD0CC087 -:105F0000B8018C2F0E94D22EE601EC0CFD1CCE15A0 -:105F1000DF0511F097FF0CC024E92093BC00DF914E -:105F2000CF911F910F91FF90EF90DF90CF90089548 -:105F3000B80189910E94D22EEACFCF92DF92EF92E0 -:105F4000FF920F931F93CF93DF93F82EE62EEA0173 -:105F50006901B8010E94582E97FD15C0B8018E2D19 -:105F60000E94D22E97FD0FC0B8018F2D81600E9434 -:105F7000582EF12CE12C21E0C21AD108EC14FD04BA -:105F800000F597FF11C024E92093BC0018161906EC -:105F900014F490E080E0DF91CF911F910F91FF907A -:105FA000EF90DF90CF900895C8010E94012F97FDD8 -:105FB00004C0FE01EE0DFF1D80832FEFE21AF20AEE -:105FC000DDCF97FDE0CFC8010E94252F97FDDBCFE5 -:105FD000CC0DDD1D8883D7CF84E98093BC00089564 -:105FE0008EE14B9B02C08150E1F74B9BFECF0895A1 -:105FF0005B9880E28A95F1F75B9A0895FC013BE09B -:106000003A95F1F798E020E080E031E040E14A95F0 -:10601000F1F7880F4B9B02C08160232742E04A952D -:10602000F1F7000040E14A95F1F7915079F790E1DE -:106030009A95F1F799B132E03A95F1F7000040E115 -:106040004A95F1F793FB992790F992272081920FB7 -:1060500090830895EF92FF920F931F93CF93DF9356 -:106060000F92CDB7DEB719828C017C01E60EF11CD0 -:106070000E151F0561F481E09981911180E00F9068 -:10608000DF91CF911F910F91FF90EF9008950E94A3 -:10609000F02FCE0101960E94FE2FF80181938F010F -:1060A000E7CF539A5B9A089553985B9AEB9AE9E687 -:1060B000F0E080818F73808308956150770B91E0C9 -:1060C00001C0990F6A95EAF720E031E0911108C00C -:1060D000222391F05B9A80E28A95F1F75B9808950C -:1060E000492F482339F05B9A232740E24A95F1F77C -:1060F0009695ECCF5B98F9CF5B98EDCFFF920F931D -:106100001F93CF93DF93EC018C01060F111DC01775 -:10611000D10731F4DF91CF911F910F91FF90089536 -:10612000F9900E94F82F68E08F2D0E945D30EFCF2C -:106130001F920F920FB60F921124EF92FF920F93BE -:106140001F932F933F934F935F936F937F938F93FF -:106150009F93AF93BF93EF93FF93CF93DF930F92F0 -:10616000CDB7DEB719820E94F02FCE0101960E94B2 -:10617000FE2FA82FA695A695A695282F22952570C7 -:106180009A2F9570290F922F937026952695920F2E -:10619000982797708981982B09F075C0A83008F06E -:1061A00072C080E18A95F1F75B9A539AB2E0BA9592 -:1061B000F1F700C05B98EA2EF12CEAE0AE9FD00127 -:1061C0001124AF5FBE4F1896ED91FC91199730974F -:1061D000B1F06091EC017091ED0116962D913C911A -:1061E0001797260F371F13968D919C911497680F60 -:1061F000791F15964C91159712968C9109958AE006 -:106200008E9DF0018F9DF00D1124EF5FFE4F658193 -:10621000662351F02091EC013091ED018681978148 -:10622000820F931F0E947E300E94F82FF0E1FA95B2 -:10623000F1F75B9853985B9A80E18A95F1F78AE0D1 -:106240008E9D80018F9D100D11240F5F1E4FD80170 -:1062500012966C911297662371F12091EC013091A6 -:10626000ED0113968D919C91820F931F0E942A300D -:10627000D801ED91FC91882311F088E001C082E003 -:1062800080830E94F02F0F90DF91CF91FF91EF91CB -:10629000BF91AF919F918F917F916F915F914F913E -:1062A0003F912F911F910F91FF90EF900F900FBE94 -:1062B0000F901F901895ED91FC91DFCF0F931F93D6 -:1062C000CF93DF93EC0108970CF0A9C08AE08C9F74 -:1062D000F0018D9FF00D1124EF5FFE4F80819181C1 -:1062E000892B09F49CC0F894539A5B9885E08A95B1 -:1062F000F1F700008C2F869585709C2F9570890F83 -:10630000982F937086958695890F8E0193E0000FE4 -:10631000111F9A95E1F7082B0E94F82F00C068E042 -:10632000802F0E945D30A0E1AA95F1F753985B9A07 -:106330004B9B27C087E090E04B9925C08AE08C9F5B -:1063400080018D9F100D11240F5F1E4FF801658194 -:106350006623A1F12091EC013091ED0186819781B6 -:10636000820F931F0E942A30811128C0539A5B9A92 -:10637000D801ED91FC9182E08083789482E090E0F6 -:1063800016C000C0D5CF0197B9F4539A5B9A8AE042 -:106390008C9FF0018D9FF00D1124EF5FFE4F019057 -:1063A000F081E02D81E08083789481E090E0DF91BE -:1063B000CF911F910F91089500C0BECF0E94F02F82 -:1063C000B0E2BA95F1F75B98539AE0E1EA95F1F7FC -:1063D0008AE08C9FF0018D9FF00D1124EF5FFE4F3E -:1063E0006281662351F02091EC013091ED018381AF -:1063F0009481820F931F0E947E300E94F82F8AE0C2 -:106400008C9FF0018D9FF00D1124EF5FFE4F0190E6 -:10641000F081E02D1082789490E080E0C8CF84E095 -:1064200090E0C5CFAA1BBB1B51E107C0AA1FBB1F31 -:10643000A617B70710F0A61BB70B881F991F5A9510 -:10644000A9F780959095BC01CD010895991B79E03D -:1064500004C0991F961708F0961B881F7A95C9F7F4 -:106460008095089597FB072E16F4009407D077FDCA -:1064700009D00E94123207FC05D03EF49095819518 -:106480009F4F0895709561957F4F0895EE0FFF1F00 -:106490000590F491E02D09946927962769277827BC -:1064A000872778270895FB01DC0102C005900D9233 -:1064B00041505040D8F70895FB01DC0104C08D9194 -:1064C0000190801921F441505040C8F7881B990B66 -:1064D0000895FB01DC0102C001900D924150504033 -:1064E000D8F70895F999FECF92BD81BDF89A992702 -:1064F00080B50895A6E1B0E044E050E00C94AC32E1 -:10650000A8E1B0E042E050E00C94AC32262FF999BB -:10651000FECF92BD81BDF89A019700B4021639F002 -:106520001FBA20BD0FB6F894FA9AF99A0FBE0895D3 -:106530000396272F0E9487320E948632252F0E94C1 -:106540008732242F0C9487320196272F0E9487329E -:106550000C948632DC01CB01FC01F999FECF06C018 -:10656000F2BDE1BDF89A319600B40D924150504011 -:10657000B8F708950E94C1326894B1110C94503359 -:1065800008950E94353388F09F5798F0B92F9927C6 -:10659000B751B0F0E1F0660F771F881F991F1AF00E -:1065A000BA95C9F714C0B13091F00E944F33B1E0F1 -:1065B00008950C944F33672F782F8827B85F39F0F0 -:1065C000B93FCCF3869577956795B395D9F73EF4A7 -:1065D00090958095709561957F4F8F4F9F4F08954F -:1065E000E89409C097FB3EF490958095709561956D -:1065F0007F4F8F4F9F4F9923A9F0F92F96E9BB2723 -:106600009395F695879577956795B795F111F8CF9E -:10661000FAF4BB0F11F460FF1BC06F5F7F4F8F4F09 -:106620009F4F16C0882311F096E911C0772321F0FF -:106630009EE8872F762F05C0662371F096E8862F97 -:1066400070E060E02AF09A95660F771F881FDAF7EE -:10665000880F9695879597F9089557FD9058440FA0 -:10666000551F59F05F3F71F04795880F97FB991FB1 -:1066700061F09F3F79F0879508951216130614066E -:10668000551FF2CF4695F1DF08C0161617061806FB -:10669000991FF1CF86957105610508940895E894D6 -:1066A000BB2766277727CB0197F908950E946933A6 -:1066B0000C94DA330E94CC3338F00E94D33320F0AC -:1066C000952311F00C94C3330C94C93311240C940A -:1066D00050330E942D3370F3959FC1F3950F50E016 -:1066E000551F629FF001729FBB27F00DB11D639F84 -:1066F000AA27F00DB11DAA1F649F6627B00DA11D2A -:10670000661F829F2227B00DA11D621F739FB00DCF -:10671000A11D621F839FA00D611D221F749F33273F -:10672000A00D611D231F849F600D211D822F762FD8 -:106730006A2F11249F5750409AF0F1F088234AF0B5 -:10674000EE0FFF1FBB1F661F771F881F9150504021 -:10675000A9F79E3F510580F00C94C3330C9450333D -:106760005F3FE4F3983ED4F3869577956795B795A8 -:10677000F795E7959F5FC1F7FE2B880F911D9695C2 -:10678000879597F9089597F99F6780E870E060E032 -:1067900008959FEF80EC089500240A9416161706BA -:1067A00018060906089500240A9412161306140602 -:1067B00005060895092E0394000C11F4882352F065 -:1067C000BB0F40F4BF2B11F460FF04C06F5F7F4F1D -:1067D0008F4F9F4F0895F894FFCF28102810311045 -:1067E00031103310311031103110281028103810AA -:1067F0003110311038101A124212E5134212E5130B -:1068000075129612E5139413A1138B1B8B1BE41BBB -:10681000E41B161CBE1BBE1BBE1B301CA11CB11CE6 -:10682000B11CB52CB92CFD2C0E2D192D382D3B2D5E -:106830006E2D8F2D0B2D0B2D9A2D9D2DA02DC52D41 -:08684000E72DEA2DEC2D112ECD -:1068480001460200000001000000004602000000AE -:106858000501000000460200000001060000004695 -:1068680002000000010700000046020408000000C2 -:106878000000004602080C0000000000004602016B -:1068880014000000000000013508760D550D510D6B -:106898004D0D340894920021007F220007018000EA -:1068A8000044004444012D2D2D4C415945522D2DB5 -:1068B8000042617365200047616D6520005261697F -:1068C8007365004C6F776572002D2D2D4C4F434B2F -:1068D8002D2D2D0043617073004E756D005363724A -:1068E8006C002020534F4C4152002054454D5045D8 -:1068F800535400818283E200E900EA00B500B60043 -:10690800B700CD008301CC008A01920194012102D5 -:10691800230224022502260227022A02B300B40019 -:106928006F0070000704070907030708C00266978D -:10693800C634F40000000000F5F6F731333236FFB4 -:1069480000FF0100010000FFFF0000010001FF003F -:10695800000810182028303838302820181008006F -:1069680000010202020202020202020240227B49E4 -:0C697800012701AC00B40BCD0BED0B00AF +:102B200026553C4F412F1B3A08F04AEA6F2D0E9470 +:102B3000B808C394D6CF861BE9CF20E00C94EA14E2 +:102B4000CF93C82F0E94600C823069F138F488233B +:102B5000A9F0813011F18C2FCF910895833039F194 +:102B60008430C9F740E56FEF8AED0E949D15809192 +:102B70000001882381F310925E010CC04CE36CEDE0 +:102B800080E00E949D15809100018823A1F381E0DF +:102B900080935E010E940B0FDECF40E56FEF8CEF5C +:102BA0000E949D15D8CF40E56FEF80E5F9CF40E555 +:102BB0006FEF80EAF5CF0E94A0158093A9030C94D3 +:102BC0008C0B8091A903982F9670963019F4886029 +:102BD0000C94DB15877FFCCF21E030E001C0220F91 +:102BE0008A95EAF720958091A90382230C94DB153E +:102BF00021E030E001C0220F8A95EAF78091A90315 +:102C0000822B0C94DB15E6E7F4E0438128E0421BBD +:102C100008F440E021E0628181810C94EA14E6E747 +:102C2000F4E0438128E0420F08F44FEF21E0628195 +:102C300081810C94EA14E6E7F4E0628128E0621BEB +:102C400008F460E021E0438181810C94EA14E6E716 +:102C5000F4E0628128E0620F08F46FEF21E0438125 +:102C600081810C94EA14E6E7F4E0818121E043815C +:102C7000628188500C94EA14E6E7F4E0818121E057 +:102C800043816281885F0C94EA1480917A048823DE +:102C900019F0815080937A046091760470917704E2 +:102CA00080917804909179040C94D81480917A04DE +:102CB000833018F48F5F80937A046091760470916A +:102CC000770480917804909179040C94D8149091B1 +:102CD000760490FF26C0917081111CC09260909381 +:102CE000760480917603816080937603662351F0A9 +:102CF00060917604709177048091780490917904C2 +:102D00000E94D814409179046091780480917704EE +:102D10000C949D158C3010F09661E1CF880F982BA4 +:102D2000DECF0895809176048695815009F48BE07A +:102D300061E00C9467168091760486958F5F8C30E5 +:102D400008F081E061E00C9467168091760480FFC2 +:102D500007C0869582588F77893010F40C949B16A3 +:102D600061E082E00C946716E6E7F4E083E080839C +:102D700011828FEF82838AEA83831482A4E7B3E00F +:102D800012968C911297836012968C936081718158 +:102D9000828193810C94D8140E94E72E40E060E079 +:102DA00080E00C94EB0E69EE7EEF90E080E00E94F4 +:102DB000393360E082E090E00E941B3360E083E002 +:102DC00090E00E941B331092A80260E084E090E043 +:102DD0000E941B3360E082E290E00E941B3360E0BF +:102DE00085E090E00E941B3360E086E090E00E9466 +:102DF0001B336FEF87E090E00E941B3340E050E010 +:102E0000BA0188E090E00E942D3360E08DE090E010 +:102E10000E941B3340E050E0BA0188E190E00E943C +:102E20002D3360E087E190E00E941B3340E050E0EA +:102E3000BA018CE190E00E942D3370E060E080E206 +:102E400090E00E94393340E050E0BA0188E190E020 +:102E50000E942D3380E00E94810F0E94990F40E074 +:102E600050E0BA018FE090E00E942D3340E050E046 +:102E7000BA0183E190E00C942D330F931F93CF930D +:102E8000DF9300D000D0CDB7DEB74091D80250918B +:102E9000D9026091DA027091DB022FB7F894809129 +:102EA0008B0390918C03A0918D03B0918E032FBF63 +:102EB000841B950BA60BB70B84369105A105B105B4 +:102EC00088F10E94A30E882379F10E9438086E5F72 +:102ED0007F4F8F4F9F4F69837A838B839C83809131 +:102EE0002D0190912E018D539D4F40912C0150E06A +:102EF0004530510510F044E050E0BE016F5F7F4F58 +:102F00000E94FE3284E090E00E94F331892BD9F4D4 +:102F10000E9438086093D8027093D9028093DA0235 +:102F20009093DB0281E010C00E9438080091E50216 +:102F30001091E6022091E7023091E802600F711FC4 +:102F4000821F931FC4CF80E00F900F900F900F90BF +:102F5000DF91CF911F910F9108958F929F92AF9221 +:102F6000BF92CF92DF92EF92FF920F931F93CF9376 +:102F7000DF93EB0188809980AA80BB809FB7F8948B +:102F8000C0908B03D0908C03E0908D03F0908E0363 +:102F90009FBFC818D908EA08FB0894E6C916D104EF +:102FA000E104F10410F4442311F1E82E082E000C82 +:102FB000FF089AE08902F0011124EE5FFE4F838141 +:102FC00094818D539D4F428150E00417150708F4FA +:102FD000A801B9010E94FE32C7010E94F331892B7A +:102FE000A1F40E943808688379838A839B8381E0F7 +:102FF000DF91CF911F910F91FF90EF90DF90CF90D5 +:10300000BF90AF909F908F90089580E0F1CF0F9385 +:103010001F93CF93DF930F92CDB7DEB780918203DA +:1030200089832091D70290E041E02817190609F41E +:1030300040E001E010E09E012F5F3F4F60EE72E044 +:1030400086E00E94AD170F90DF91CF911F910F91F5 +:1030500008950F931F93CF93DF93CDB7DEB72897D3 +:103060000FB6F894DEBF0FBECDBF85E0E6E7F4E013 +:10307000DE01119601900D928A95E1F7809174031B +:1030800090917503A09176038E839F83A88741E07A +:103090008885811101C040E008E010E09E012F5FAB +:1030A0003F4F6CED72E085E00E94AD1781111092E8 +:1030B000760328960FB6F894DEBF0FBECDBFDF9122 +:1030C000CF911F910F9108956F927F928F929F924F +:1030D000AF92BF92CF92DF92EF92FF920F931F9326 +:1030E000CF93DF930F92CDB7DEB7862E5A016901D9 +:1030F000682E880F7708C3010E94F331892B09F0ED +:1031000088C08AE0869DF001879DF00D1124EE5F56 +:10311000FE4F458150E04115510511F041E050E06E +:103120008AE0869DF001879DF00D1124EE5FFE4F31 +:10313000668177816D537D4FCE0101960E94FE32EC +:10314000F50140815181628173812FB7F89480919C +:103150008B0390918C03A0918D03B0918E032FBFB0 +:10316000841B950BA60BB70B84369105A105B10501 +:1031700040F4B701C8010E9487089981891709F4B2 +:103180004FC0082C000C9908C4010E94F331892B10 +:1031900091F0B12C8B2D0F90DF91CF911F910F915A +:1031A000FF90EF90DF90CF90BF90AF909F908F9067 +:1031B0007F906F9008958AE0889DF001899DF00DC1 +:1031C0001124EE5FFE4F458150E0E416F50608F449 +:1031D000A7018AE0889DF001899DF00D1124EE5F22 +:1031E000FE4F668177816D537D4FC6010E94FE328E +:1031F000B701C8010E94870899818913CACF0E942C +:103200003808F5016083718382839383BB24B39470 +:10321000C1CFB12CA701B801C6010E94FE32BACFBE +:10322000BB24B394F7CFCF92DF92EF92FF920F932C +:103230001F93CF93DF9300D000D00F92CDB7DEB7AE +:103240006B0185E0E82EF12C04EC12E09E012F5F6B +:103250003F4F4BEB52E061E080E00E94641888230E +:1032600049F095E0FE013196A6EBB2E001900D9297 +:103270009A95E1F795E0E6EBF2E0D60101900D9228 +:103280009A95E1F70F900F900F900F900F90DF91AC +:10329000CF911F910F91FF90EF90DF90CF90089505 +:1032A00090E080E00E941533893E9E4F11F40C940B +:1032B0003D1080E008951F920F920FB60F921124D7 +:1032C0002F933F934F935F936F937F938F939F932E +:1032D000AF93BF93CF93DF93EF93FF93D091E90028 +:1032E000DF708091EC00C82FC17080FDC0E81092A3 +:1032F000E9008091F000877F8093F00078940E942D +:1033000034111092E9008091F00088608093F00001 +:10331000CD2BCF70C093E900FF91EF91DF91CF915A +:10332000BF91AF919F918F917F916F915F914F91DD +:103330003F912F910F900FBE0F901F9018951F92E5 +:103340000F920FB60F9211242F933F934F935F93D9 +:103350006F937F938F939F93AF93BF93EF93FF935D +:103360008091E10082FF09C08091E20082FF05C0E8 +:103370008091E1008B7F8093E1008091DA0080FFF3 +:1033800024C08091D80080FF20C08091DA008E7F19 +:103390008093DA008091D90080FF9DC080E189BDD3 +:1033A00082E189BD09B400FEFDCF81E080939F03D7 +:1033B00080919203811109C00E94AA060E9475079C +:1033C0008091E20084608093E2008091E10080FFC0 +:1033D00017C08091E20080FF13C08091E2008E7FD1 +:1033E0008093E2008091E20080618093E20080910E +:1033F000D80080628093D80019BC85E080939F0339 +:103400008091E10084FF2BC08091E20084FF27C0FF +:1034100080E189BD82E189BD89B5982F917080FFD7 +:10342000FBCF8091D8008F7D8093D8008091E10000 +:103430008F7E8093E1008091E2008F7E8093E20096 +:103440008091E20081608093E2008091A003882354 +:1034500009F447C084E080939F0380919F0380918B +:10346000E10083FF27C08091E20083FF23C08091A9 +:10347000E100877F8093E10082E080939F031092B8 +:10348000A0038091E1008E7F8093E1008091E200B3 +:103490008E7F8093E2008091E20080618093E20061 +:1034A00042E060E080E00E9443078091F000886085 +:1034B0008093F000FF91EF91BF91AF919F918F9119 +:1034C0007F916F915F914F913F912F910F900FBE20 +:1034D0000F901F90189519BC10929F0310929203A1 +:1034E00074CF8091E30087FD93E090939F03B5CF65 +:1034F00078941F921FB61F9211248F939F93AF93BE +:10350000BF9380918B0390918C03A0918D03B09118 +:103510008E030196A11DB11D80938B0390938C03A4 +:10352000A0938D03B0938E03BF91AF919F918F9124 +:103530001F901FBE1F9018959C014FB7F894809163 +:103540008B0390918C03A0918D03B0918E034FBF9C +:10355000821B930B08952FB7F89480918B03909161 +:103560008C03A0918D03B0918E032FBF0895AF926D +:10357000BF92DF92EF92FF920F931F93CF93DF934F +:10358000CDB7DEB761970FB6F894DEBF0FBECDBFE3 +:103590004C87888B998BE52ED62EF72E5E0127E07F +:1035A000A20EB11C85E0F50111928A95E9F7809190 +:1035B00073038A3008F095C0809171039091720373 +:1035C0000E949C1A089708F48CC004E610E025E0DD +:1035D00030E0A50164E084E10E943230892B09F0DB +:1035E000DBC0109273038B8587FDD1C0E894E0F8AF +:1035F00080916F0390917003009709F0C2C08F8192 +:103600009885891708F091C0981B892F41E0209177 +:103610005F0130916001889FC001112455E0589FDF +:10362000F001599FF00D1124E29FB001E39F700D4E +:10363000F29F700D1124660F672F661F770B71952F +:10364000442319F071956195710980916D039091F2 +:103650006E03680F791F89859A85891708F068C0FD +:10366000981B892F41E0889FC001112455E0589F85 +:10367000F001599FF00D1124E29FC001E39F900DCE +:10368000F29F900D1124880F892F881F990B919517 +:10369000442319F091958195910920916B03309104 +:1036A0006C03820F931F603871050CF444C06F5790 +:1036B000710970936E0360936D033FE7D32E8038DA +:1036C00091050CF44BC08F57910990936C03809334 +:1036D0006B039FE7F92E0E94AB1A909372038093BD +:1036E0007103ED86DE86FF8686E0FE013C96DE01F4 +:1036F000119601900D928A95E1F729813A814B81CB +:103700005C816D817E8180E090E061960FB6F894D7 +:10371000DEBF0FBECDBFDF91CF911F910F91FF9004 +:10372000EF90DF90BF90AF900895891B40E06FCF7E +:10373000891B40E098CF6138FFEF7F074CF4615858 +:103740007F4F70936E0360936D0321E8D22EB7CF45 +:10375000D62E10926E0310926D03B1CF81382FEFE9 +:1037600092074CF481589F4F90936C0380936B03A6 +:1037700081E8F82EB0CFF82E10926C0310926B03F4 +:10378000AACF01979093700380936F03A4CF68949E +:10379000E0F884E190E0F6CF809173038F5F80932F +:1037A000730399CF5F926F927F928F929F92AF92A5 +:1037B000BF92CF92DF92EF92FF920F931F93CF931E +:1037C000DF9300D000D00F92CDB7DEB76C01FC01C3 +:1037D00083819481892B31F08081918189238F3F6E +:1037E00009F080C60F900F900F900F900F90DF910F +:1037F000CF911F910F91FF90EF90DF90CF90BF90EE +:10380000AF909F908F907F906F905F9008950E94EF +:10381000DB0F182F682F89819A810E945F0B6981C5 +:103820007A81812F0E94CE0F8C01F601828188233C +:1038300009F44CC6C80182519F45409708F0BEC5A7 +:103840008FEF93E00E940733025197E4A92E93E093 +:10385000B92E8111C7CF01113AC01C821B82662488 +:1038600063948AE0582E85010F5F1F4FC5010E94A7 +:10387000073389831A82882309F4B4CF9FEF980F06 +:103880009330A0F58A83698232E0A30EB11CC8018F +:103890000E9407338B83882309F4A4CF8E010F5F26 +:1038A0001F4FF80120812223F1F2213009F058C086 +:1038B000918182819130E1F40E5F1F4F6AE070E0E8 +:1038C000893311F460E570E00E94D60E17C0A11490 +:1038D000F4E0BF0609F486CFC5010E9407338111C9 +:1038E00001C001502FEFA21AB20AB5CF5801D6CFAE +:1038F000923039F40E5F1F4F0E94EC0B0F5F1F4F89 +:10390000D0CF933029F40E5F1F4F0E94B30BF6CF38 +:10391000943019F00F5F1F4FF1CF0E5F1F4F30E053 +:1039200020E0B8016F5F7F4FF80141818053990B10 +:103930008A30910550F02150310900F38FE99FE062 +:103940000197F1F700C00000F6CF529EF001539EA0 +:10395000F00D11249C012E0F3F1F842F8B01E1CF0E +:10396000E22FF0E0E754FE4F7490822F8695869503 +:10397000869590E0FC01E755FE4FE4902770F12C0E +:10398000022E02C0F594E7940A94E2F7E1E0EE22F9 +:10399000FF24FC01E756FE4FC490D12C022E02C03A +:1039A000D594C7940A94E2F7F1E0CF22DD24FC011C +:1039B000E757FE4F8490912C02C0959487942A95E6 +:1039C000E2F721E082229924E114F10419F081EE5A +:1039D0000E94EC0BC114D10419F086EE0E94EC0B8E +:1039E00039E36AE070E0731202C060E570E0872D91 +:1039F0000E94D60ECD2819F086EE0E94B30BEF2858 +:103A000019F081EE0E94B30B892809F477CF6AE0A0 +:103A100070E08CE259CF81E00E94F81503C081E08C +:103A20000E94EC150F900F900F900F900F90DF9168 +:103A3000CF911F910F91FF90EF90DF90CF90BF90AB +:103A4000AF909F908F907F906F905F900C94E11556 +:103A500082E0E2CF043F110509F409C108F00BC16F +:103A6000053E110509F0D3C480934E0210934D0218 +:103A700000934C02CCC40438FFE51F0709F46EC064 +:103A8000C0F402383FE5130709F44FC003384FE58F +:103A9000140709F0BCC4882309F4B9C481EE0E945C +:103AA000EC0B83EE0E94EC0B80E50E94EC0B80E5B2 +:103AB00049C006385FE5150709F4C0C008F4A7C07F +:103AC0000738EFE51E0709F0A2C4882309F48ACE5F +:103AD00087E20E94EC0BFFEF28EA31E0F150204032 +:103AE0003040E1F700C000008CE20E94EC0B87E25E +:103AF0000E94B30B8BE10E94EC0B4FEF50EE80E085 +:103B0000415050408040E1F700C000008CE20E942C +:103B1000B30B8BE10E94B30B40E56FEF84EB0E9487 +:103B20009D1581E080934A025DCE882309F46FC41D +:103B300081EE0E94EC0B83EE0E94EC0B8FE40E945E +:103B4000EC0B8FE40E94B30B83EE0E94B30B81EE6B +:103B50000E94B30B5CC480934B0288CF882379F119 +:103B600080914B02882349F080914C020E94B30B54 +:103B700080EE0E94EC0B8AE20CC080914E028823FA +:103B8000D1F380914C020E94B30B80EE0E94EC0BAB +:103B90008CE40F900F900F900F900F90DF91CF91CA +:103BA0001F910F91FF90EF90DF90CF90BF90AF905B +:103BB0009F908F907F906F905F900C94EC0B8AE2B7 +:103BC0000E94B30B8CE40E94B30B80EE0E94B30BF7 +:103BD00080914B02811105C080914E02882309F427 +:103BE00001CE80914C02D5CF882309F410C4809176 +:103BF0004A02882309F40BC40E94AB1A9093AF02C7 +:103C00008093AE0210924A021092010100C48823F0 +:103C100071F180915E01811104C0809100018823BF +:103C200039F010925E01109200010E940B0FEFC359 +:103C300081E080935E0180930001F7CF8823B9F083 +:103C400080914902882349F080EE90E090936001D2 +:103C500080935F0110924902E8CF86E690E090934E +:103C6000600180935F0181E080934902DECF61E0D3 +:103C70000E94710CCCC362E0FBCF64E0F9CF013647 +:103C80003DE5130709F4D8C30E3D1C4509F012C1E8 +:103C90000F900F900F900F900F90DF91CF911F9189 +:103CA0000F91FF90EF90DF90CF90BF90AF909F90DB +:103CB0008F907F906F905F900C94D3168091E90263 +:103CC000806106304CE5140709F491C08091E90247 +:103CD000886007301C4508F48AC08091E902806240 +:103CE00086C00C308CE5180709F49CC070F48091F4 +:103CF000E9028C600A30ECE51E0709F478C008F48C +:103D00008BC08091E9028E7F72C08091E902877F2B +:103D10000E302CE5120709F46AC08091E9028B7F0E +:103D20000F301C4508F463C08091E9028F7E5FC0AC +:103D30000C3F4CE5140709F479C068F504318CE5B3 +:103D4000180709F48BC080F40231ECE51E0709F472 +:103D500075C08091E9028F7B03311C4508F447C090 +:103D60008091E902837F43C00A3F2CE5120709F4E2 +:103D700045C008F049C005311C4509F084C3809155 +:103D8000E90282FB992790F921E0922790FB82F9C2 +:103D900090FB83F92CC001155DE5150709F454C0AB +:103DA00088F48091EA0283600E3F9CE5190749F18F +:103DB0008091EA028D7F0F3F1C4518F18091EA0245 +:103DC0008C7F1FC00230FDE51F0709F456C008F4C0 +:103DD0004EC001361D4509F056C39091E902892F66 +:103DE0008F7E94FF806103C08091E902816080939F +:103DF000E90249C38091E9028460F9CF8091EA0227 +:103E000081608093EA023FC38091EA028260F9CF29 +:103E10008091E9028064EBCF0E9429118091E90230 +:103E20008068E5CF8091E9028D7FE1CF8091EA0241 +:103E30008E7FE7CF8091E9028F7DD9CF0E94291133 +:103E40008091E9028F77D3CF8091EA02982F9095E5 +:103E500091708E7F892B90FB81F9D3CF0E9429111D +:103E60009091E902892F97FB87F98058C0CF61E0D4 +:103E70008EE090E00E941B3306C360E0F9CF809192 +:103E8000A70282720A3C4CE5140709F4F7C008F057 +:103E900063C0053CECE51E0709F4DCC0A0F5033C5B +:103EA0002CE5120709F4CCC008F0CFC0023C1C4539 +:103EB00009F476C0F60100811181992309F4FEC04E +:103EC000C8010E94DB0FF82E682FC8010E945F0B0B +:103ED000B8018F2D0E94CE0F0E94AC09182FB82E6A +:103EE000F60122814581342F32953F70892F8295CA +:103EF0008F70E82EF12C8C3008F018C1F701E656CF +:103F0000FB4C0C94DB32073C5CE5150709F4ACC0B4 +:103F100008F4A5C0083CFCE51F0709F4AAC043E06B +:103F200056E16FE076E1093C1C4521F60F900F90B9 +:103F30000F900F900F90DF91CF911F910F91FF90F5 +:103F4000EF90DF90CF90BF90AF909F908F907F9039 +:103F50006F905F900C949D08043D3CE51307A0F41E +:103F60000E3C4CE5140708F03DCC0C3C5CE5150715 +:103F700009F489C045E456E166E576E10D3C1C454F +:103F8000A8F261E081E046C0053DECE51E0709F4BA +:103F900029CC08F47DC00D351D4509F423CC8ACF0A +:103FA0008091760480FF31C08E7F8093760460918B +:103FB00076047091770480917804909179040E943E +:103FC000D814809176038160809376033FEF40E7B9 +:103FD00052E0315040405040E1F700C000000F90E7 +:103FE0000F900F900F900F90DF91CF911F910F9135 +:103FF000FF90EF90DF90CF90BF90AF909F908F9009 +:104000007F906F905F900C94A30D816080937604F5 +:1040100061E086950F900F900F900F900F90DF91B9 +:10402000CF911F910F91FF90EF90DF90CF90BF90B5 +:10403000AF909F908F907F906F905F900C946716D9 +:1040400042E956E16BE976E171CF4BE956E162E96D +:1040500076E16CCF43E356E16CE376E167CF4CE366 +:1040600056E163E376E162CF4BE156E167E276E148 +:104070005DCF47E256E16BE176E158CF4FE056E184 +:1040800063E076E153CF46E556E165E476E14ECF55 +:104090000F900F900F900F900F90DF91CF911F9185 +:1040A0000F91FF90EF90DF90CF90BF90AF909F90D7 +:1040B0008F907F906F905F900C94A516C8010E941E +:1040C000370BF82E05CF092F0F70907F11F0029556 +:1040D000007F812F2223C9F0002369F090E2910F25 +:1040E000983010F011110BC08091A702082B00939B +:1040F000A7020E94160B812F0E94EC0B17C0809123 +:10410000A602082B0093A602F4CF0E94B30B002353 +:1041100069F00095105E183010F0B11027C0809142 +:10412000A70208230093A7020E94160B98E0E91A41 +:10413000F108E4E0EE16F10408F054CB0E94C60E3C +:104140000F900F900F900F900F90DF91CF911F91D4 +:104150000F91FF90EF90DF90CF90BF90AF909F9026 +:104160008F907F906F905F900C94260E8091A602A6 +:1041700008230093A602D8CF892F8F70907F9032AA +:1041800011F08295807FF1E0BF120CC0222329F04C +:10419000333060F60E94A90BC9CF323038F60E9446 +:1041A0009E0BC4CF222341F03323A1F340FFA3CFC2 +:1041B0004F70F6014583EECF332389F3193309F0AD +:1041C000F5C0FFEF27EE33E0F15020403040E1F73B +:1041D00000C00000812F0E94B30BA8CF892F8695C5 +:1041E0008695837061F0813009F0A0CF812F9370A4 +:1041F000211102C090E080E00E94440897CF812FF7 +:104200009370211102C090E080E00E945A088ECF86 +:10421000892F8370A1F5211189CF812F82958695F1 +:104220008770880F880F412F4F70082E01C0440FF0 +:104230000A94EAF7212F207114FF07C02FE030E025 +:1042400001C0220F8A95EAF720959695969593706E +:10425000923081F0822F842B933030F48091A80229 +:10426000913029F0242B82230E949A0B5FCF842B5C +:10427000822BFACF242B8091A8028227F5CF869536 +:10428000222311F0892F8170882309F44FCF812FC9 +:10429000829586958770880F880F412F4F70082E62 +:1042A00001C0440F0A94EAF7212F207114FF07C0C0 +:1042B0002FE030E001C0220F8A95EAF7209596950D +:1042C00096959370923081F0822F842B933030F446 +:1042D0008091A903913029F0242B82230E94DB15C1 +:1042E00025CF842B822BFACF242B8091A903822700 +:1042F000F5CF092F0F70222329F0802F0E94F81587 +:10430000812F48CF812F0E949E0B802F0E94EC1599 +:104310000DCF812FE1EF1E1789F1E11750F0F0EF7B +:104320001F17B9F02223B1F13111E5CE892F8F711A +:1043300029C042EF141749F153EF1513F3CF80E072 +:10434000222361F29F7181E001C0880F9A95EAF7FC +:10435000C5CF222379F0323008F0E8CE292F2F7113 +:1043600081E090E001C0880F2A95EAF79091A903B7 +:104370008927B4CF333008F0D9CEF0CF892F8F7191 +:10438000222321F20E94F815D1CE892F8F7122238A +:10439000C9F3BCCF332379F0893341F48FEF97EE23 +:1043A000E3E081509040E040E1F712CF8FE39CE9D9 +:1043B0000197F1F70DCF892F8F71A8CF0031FFE55D +:1043C0001F0709F428CB01312FE5120709F440CB70 +:1043D0000E943808609300037093010380930203E6 +:1043E00090930303F6018281063F110509F445CC41 +:1043F00008F041CB013E110509F4ADCB08F02ACB02 +:1044000098012E5131092330310508F4EDCBF60126 +:104410009281992309F433CD0330FDE51F0708F09D +:104420002ECC0A3F2CE5120738F4980122503C4567 +:104430002431310508F028CC0E9456109093EA02EE +:104440008093E90200314CE5140709F4F3CC08F03D +:104450006FCC08308CE5180709F4DACC08F041CCB1 +:104460000430ECE51E0709F4C5CC08F027CC023077 +:104470002CE5120709F4B8CC8091E9028260033080 +:104480001C4509F4B4CC6091E9021091EA0284E081 +:1044900090E00E941B33612F82E290E00E941B3368 +:1044A0000F900F900F900F900F90DF91CF911F9171 +:1044B0000F91FF90EF90DF90CF90BF90AF909F90C3 +:1044C0008F907F906F905F900C94291100313FE5A1 +:1044D000130709F4A4CA01314FE5140709F082CF8C +:1044E00082E09ECA85E0DE01119601900D928A95C8 +:1044F000E1F7F601228189819A81211188C90E9400 +:10450000370B182F8CC91F93CF93DF9380917202C2 +:10451000807FA9F480916F02882389F08091A402A2 +:10452000D091730260916D0270916E02A091700241 +:10453000B0917102C62FC72316E0D81304C0DF91D3 +:10454000CF911F91089590E0109711F0CF3F19F48B +:1045500001968770F2CF189F9001199F300D11249A +:10456000F901EC58FD4F41814713F2CF40814613CA +:10457000EFCF42814111ECCF438154814A1B5B0B49 +:10458000403A510528F7809172028F7080618093C4 +:104590007202F901E758FD4F80818F70806180833E +:1045A0008DE692E00E94D21BDF91CF911F910C9477 +:1045B0002D0BAF92BF92CF92DF92EF92FF920F93AB +:1045C0001F93CF93DF93CDB7DEB761970FB6F89403 +:1045D000DEBF0FBECDBF8C0185E0F801DE011D9668 +:1045E00001900D928A95E1F7F801E2808DE6A82E00 +:1045F00082E0B82E609170027091710261157105B0 +:1046000009F432C190916D0240916E02892F84238A +:104610008F3F09F429C120813181C380D480F0907B +:104620006F02F601E61BF70BFF2009F4E8C080914A +:104630007202582F507FE03AF10508F0ABC05111DB +:1046400077C0FE2C431321C092131FC0E1101DC080 +:104650008F70806180937202C5010E94D21B80918D +:104660007202F80185838F2D61960FB6F894DEBF34 +:104670000FBECDBFDF91CF911F910F91FF90EF90B3 +:10468000DF90CF90BF90AF900895CD2829F0822F72 +:1046900083238F3F09F003C180E0F82FF170DF2EF4 +:1046A00080FF3CC08091A4024091730256E08413C5 +:1046B00015C02D873E878D859E850E940A10292F63 +:1046C00022952F702230F0F0243018F59F70F1F011 +:1046D000F8019581907FD1F4D12C1EC090E0589FB5 +:1046E000F001599FF00D1124EC58FD4F61813613F4 +:1046F00006C06081261303C06281E6120FC00196D6 +:104700008770D5CF9F7011F0882331F3805E883099 +:1047100018F3C8010E94D21BFD2CA5CFEE2009F48E +:10472000A2CF80917202816080937202F12C9BCFA4 +:10473000431306C0921304C0F801EE2009F479C0B7 +:10474000C8010E941610882309F1EE20F9F080912B +:104750007202803270F020916D0230916E023887C3 +:104760002F831986DB86CA868C87CE0107960E9426 +:10477000D21B86E0F801ADE6B2E001900D928A9579 +:10478000E1F70E948322FF24F3946DCFC8010E94B9 +:10479000D21BF9CF51110AC08DE692E00E94D21BC4 +:1047A00086E0F50111928A95E9F7C0CF43130FC057 +:1047B00092130DC0E1100BC0F8018583C8010E945F +:1047C000D21B86E0F50111928A95E9F74CCFC8011A +:1047D0000E9416108823D1F2EE20C1F2809172025D +:1047E000803238F220916D0230916E023A83298333 +:1047F0001B82DD82CC828E83CE010196B8CFE03A57 +:10480000F105F8F6FE2CEE2009F243131FC09213B7 +:104810001DC08091720280FD10C0982F907F69F0BA +:10482000F8018583903F31F0982F907F905F8F70D3 +:10483000892B8583C8010E94D21B86E0F801ADE672 +:10484000B2E001900D928A95E1F70DCFC8010E9468 +:10485000161081118ECF8091720281608093720256 +:10486000C8010E94D21BFFCEEE2009F48FCFC801F1 +:104870000E941610F82E882309F488CF86E0F801EC +:10488000ADE6B2E001900D928A95E1F780916D025C +:1048900090916E020E940A100E948322E4CE81E071 +:1048A0008E25FBCE1F93CF93DF93CDB7DEB76797EF +:1048B0000FB6F894DEBF0FBECDBF4B8B5C8B6D8BFC +:1048C0007E8B8F8B61111092A6021A8A198A85E05D +:1048D000FE017396DE011D9601900D928A95E1F717 +:1048E00086E0FE013D96DE01179601900D928A95B5 +:1048F000E1F7CE0107960E94D922882389F016E0BD +:104900008091A40290917302891349C067960FB6F3 +:10491000F894DEBF0FBECDBFDF91CF911F910895F8 +:1049200086E0FE013796DE01119601900D928A9580 +:10493000E1F78A859B85892B11F38F8198858923DF +:104940008F3FE9F22091730230E0C9010196877030 +:1049500099274091A4024817190671F40E94291161 +:10496000109273021092A40286E0EDE6F2E0DF01FD +:104970001D928A95E9F7C3CF96E0929FD001939F4D +:10498000B00D1124AC58BD4FFE01319601900D922F +:104990009A95E1F7809373020E942D0BB0CF819F0F +:1049A000C00111248C589D4F0E94D922882309F4FC +:1049B000ADCF8091A40290E00196877099278093F3 +:1049C000A4029ECFEF92FF920F931F93CF93DF939A +:1049D00000D000D00F92CDB7DEB7162FE82EF12C05 +:1049E000C701880F991F662339F188549E4FFC0137 +:1049F000808191819A83898301E00B830E94AB1AA5 +:104A00008160782F9D838C83F701E95BFD4F01273F +:104A1000110F102B108349815A816B818D810F906A +:104A20000F900F900F900F90DF91CF911F910F91EA +:104A3000FF90EF900C9452248C549E4FD8CFCF927D +:104A4000DF92EF92FF920F931F93CF93DF930F921A +:104A5000CDB7DEB7EE24E394F12C0AEC12E09E0110 +:104A60002F5F3F4F4FEB52E063E082E00E946418FB +:104A7000082F882321F1C090F8028C2D90E09C0132 +:104A800025503D4F79011981F9018081181BD12EE4 +:104A900080E00AC0DA94F70180818F5F808360E054 +:104AA0008C2D0E94E224802F1D14A4F3912F17FD5A +:104AB00090E0191B11110EC081110E94140B802F60 +:104AC0000F90DF91CF911F910F91FF90EF90DF90AA +:104AD000CF9008951F5FF70180818150808361E04E +:104AE0008C2D0E94E224802FE5CFEF92FF920F934E +:104AF0001F93CF93DF9300D000D00F92CDB7DEB7D6 +:104B000087E4E82E82E0F82E10E000E0F7018191C2 +:104B10007F018823C9F08695F80139F1E854FE4FEA +:104B2000808191819A8389831B820E94AB1A816064 +:104B3000782F9D838C83F7013197108249815A81A8 +:104B40006B818D810E9452240E5F1F4F043011052E +:104B5000E9F60F900F900F900F900F90DF91CF918B +:104B60001F910F91FF90EF900895EC54FE4FD8CF16 +:104B70009F92AF92BF92CF92DF92EF92FF920F93EC +:104B80001F93CF93DF93CDB7DEB72F970FB6F8946F +:104B9000DEBF0FBECDBF8E010F5F1F4F8AE0D80171 +:104BA0001D928A95E9F78FEEC82E81E0D82EF12C60 +:104BB000E12CAA24A394B12CF60181916F018F3FBF +:104BC00009F444C0F894E82FE295EF70F0E021A1D9 +:104BD0008F70A50102C0440F551F8A95E2F7CA01E4 +:104BE000922F982B91A392A18095892382A30E9452 +:104BF000500900C0E9EFF1E0912C31E021912F3F05 +:104C000009F479C0A22FA295AF70B0E090968C9174 +:104C100090E02F7002C0959587952A95E2F780FD68 +:104C20006AC0832F982A330F52E0E130F50731F73D +:104C3000F601319780818F3F11F00E94520980EA7E +:104C40008A95F1F7F801EE0DFF1D90829FEFE91AAA +:104C5000F90AA5E0EA16F10409F0AECF4AE050E007 +:104C6000B8018BEE92E00E94F1327C01892B41F079 +:104C70008AE0F801ABEEB2E001900D928A95E1F77F +:104C80001091F602E114F104C1F181E08093AB02CE +:104C90000E94AB1A9093AA028093A9028091A90264 +:104CA0009091AA020E949C1A069778F0ABEEB2E0AF +:104CB000E12FF0E0EB5AFC4F80EF92E02D91219331 +:104CC0008A179B07D9F71092AB0281E090E0EF289A +:104CD000C1F02F960FB6F894DEBF0FBECDBFDF91A7 +:104CE000CF911F910F91FF90EF90DF90CF90BF90E9 +:104CF000AF909F90089580E095CF8091AB02811195 +:104D0000CDCF0E94A30ED82EE091F602AE01455FF2 +:104D10005F4F7A01882309F4BEC085E0DA011D9255 +:104D20008A95E9F70E2F10E00B5A1C4F8091E40290 +:104D30008A3008F07CC043E159E1B701C8010E9404 +:104D40005F0E882309F496C04FE155E2B701C80110 +:104D50000E945F0E882309F48DC04DE357E1B7012F +:104D6000C8010E945F0E882309F484C049E258E11B +:104D7000B701C8010E945F0E882309F47BC047E099 +:104D800058E1B701C8010E945F0E882309F472C080 +:104D90001092E4028091F50290E045E050E0B70106 +:104DA0008B5A9C4F0E94F13221E02093B402892B50 +:104DB00009F053C0D12C0E94752580910101811109 +:104DC00011C08091AE029091AF020E949C1A813A6C +:104DD0009F4040F040E56FEF8CEF0E949D1581E011 +:104DE000809301010E9475254091000350910103B9 +:104DF00060910203709103032FB7F89480918B03A5 +:104E000090918C03A0918D03B0918E032FBF841BD2 +:104E1000950BA60BB70B81369A4EA105B10528F06C +:104E200040E060E080E00E94EB0E8D2D52CF80913B +:104E3000AC029091AD020E949C1A843F914008F010 +:104E40007ACF8091B402882309F4B4CF85E0F701CA +:104E500011928A95E9F71092B402A091F502B0E0A0 +:104E6000AB5ABC4F85E0FE013B9601900D928A95AE +:104E7000E1F7A1CF8091E4028F3F31F08F5F809303 +:104E8000E4028A3008F486CF0E94AB1A9093AD02F8 +:104E90008093AC02D6CFF0E0EB5AFC4FF89485E05B +:104EA000A4ECB2E001900D928A95E1F765E070E024 +:104EB00084EC92E00E9487088093C3020E9450090C +:104EC000F894E091FE02F0E0E550FD4F80818B8781 +:104ED0008093CA0261E070E0C7010E948708809356 +:104EE000C9020E945009F894C090CB02D090CC0225 +:104EF000E090CD02F090CE028091B0029091B1028C +:104F0000A091B202B091B302C816D906EA06FB0618 +:104F1000D1F0C092B002D092B102E092B202F0920F +:104F2000B3020E94A30E81110EC00E943808C61A57 +:104F3000D70AE80AF90AC092E502D092E602E092A6 +:104F4000E702F092E8020E945009F8948091D6029C +:104F50008823F1F080FF0DC08091CF0280FF25C033 +:104F60009091760491609093760460E086950E941B +:104F700067168091D60281FF09C020E04091D202DD +:104F80006091D1028091D0020E94EA141092D60260 +:104F90000E945009F8948091D702882349F00E941A +:104FA000FB0C0E94500980E094CE0E944A0EE1CF93 +:104FB0000E94E00CF6CF1F921FB61F9211248F9310 +:104FC0009F93AF93BF9380918A03811113C0809107 +:104FD0008B0390918C03A0918D03B0918E03419629 +:104FE000A11DB11D80938B0390938C03A0938D031F +:104FF000B0938E03BF91AF919F918F911F901FBE71 +:105000001F901895CDB7DEB7AE970FB6F894DEBFF8 +:105010000FBECDBF84B7877F84BF0FB6F894A89525 +:1050200080916000886180936000109260000FBEE4 +:1050300080E890E00FB6F89480936100909361004F +:105040000FBE85B7806885BF85B7806885BF8EE451 +:1050500099E090933D0280933C020E94AA060E9430 +:1050600075078091E20084608093E20078948091DB +:105070009F038823A1F01091E9001F709091EC002C +:10508000892F817090FD80E8182B1092E9008091A3 +:10509000E80083FD0E9434111F701093E90082E044 +:1050A00084BD93E095BD9AEF97BD80936E001092FA +:1050B000E5021092E6021092E7021092E8020E94C6 +:1050C0003D10811102C00E94990F0E94A30E80938F +:1050D000480180914801882309F47CC01092610145 +:1050E00082E2809362010E94A30E81110E94E63049 +:1050F000809148018091480195E0811190E0909362 +:10510000F60285E0891B8093F5020FEE11E094EF23 +:10511000E92E91E0F92ED8018D918D018F3F11F08C +:105120000E945209E016F106B1F709EF11E081E0A3 +:10513000E82E82E0F82EF80181918F018F3F11F067 +:105140000E945209E016F106B1F78AE0E5E5F3E0C6 +:10515000DF01282F1D922A95E9F7EBEEF2E0DF013F +:105160001D928A95E9F70E945019811102C00E9490 +:10517000D31682E090E00E94073380934A030E9496 +:1051800056109093EA028093E9020E94B825EFE757 +:10519000FBEB3197F1F700C000000E94B825809129 +:1051A000550380FF1BC06FEF7FEF90E080E00E940F +:1051B000393387E797E7909301088093000888E1E7 +:1051C0009AE00FB6F894A895809360000FBE909374 +:1051D0006000FFCF82E28093610183CF83E090E0A3 +:1051E0000E9407330E949A0B8091A9030E94A01588 +:1051F0000E94A30E811102C00E94E9300E94A30EFA +:1052000081111EC283E08093450380E4809377037D +:105210000E94E72E6DE070E08CE492E00E94B00CFA +:10522000892BE9F58091450363E070E081FD0AC2B6 +:1052300089E492E00E94B00C892B89F56DE070E062 +:1052400089E392E00E94B00C892B49F50E9438084E +:105250006058774C8E4F9F4F60937E0370937F030F +:105260008093800390938103EDE7F4E080E094E085 +:10527000DF019C011D9221503040E1F7F0937E0840 +:10528000E0937D088FEF9FEF90937C0480937B04E5 +:1052900081E0809383038093820310924603809180 +:1052A000F702811136C00E945019811104C00E947A +:1052B000D3160E94B41688E090E00E940F336093EA +:1052C00076047093770480937804909379048091A6 +:1052D00076038360809376036E7F71F40E94B41628 +:1052E00088E090E00E940F33609376047093770417 +:1052F00080937804909379040E94A20880917604A8 +:1053000080FF04C060E086950E94671681E080936C +:10531000F70280914801811106C084E9809356010B +:1053200082E98093550120915601A22FA295AF707A +:10533000B0E091963C9191972F7081E090E0BC0194 +:10534000022E01C0660F0A94EAF7462F40954323C8 +:1053500091964C93919792963C919297362B929678 +:105360003C93929740915501E42FE295EF70F0E065 +:1053700031A14F70042E01C0880F0A94EAF7982FCC +:105380009095932391A392A1892B82A390968C91BF +:1053900090E002C0959587952A95E2F7817020A14B +:1053A00030E002C0359527954A95E2F792E020FF5C +:1053B00090E0892B8093FF029091480181E098272B +:1053C0009093FE02891B8093F8020E94CC1660E045 +:1053D0008AE00E94671681E00E94DB1580EE90E073 +:1053E0009093600180935F010E940B0F89E491E02C +:1053F0009093870380938603A8E18A2E912CB0E4D2 +:10540000EB2E80919F03FF24F39400E112E185309D +:1054100009F465C10E94B825D82E81110E94380870 +:10542000F5E52F2EF3E03F2EEBE4F3E0D10110E0A1 +:1054300000E0A02ECD9081918C1509F472C18C25CD +:10544000B12CFF24F3949F2D982309F465C10E9489 +:10545000A30E882399F0B9A2AAA2CF2081E009F473 +:1054600080E08BA30E94AB1A8160782F9DA38CA350 +:1054700049A15AA16BA18DA10E945224F801E55BBC +:10548000FC4F8081F826F0828091FF02E82FEE0F1A +:10549000EE0F90915601A92FA295AF70B0E09096B3 +:1054A0002C9130E09F7002C0359527959A95E2F7D0 +:1054B0002170332790915501A92FA295AF70B0E0CC +:1054C00090964C9150E09F7002C0559547959A95E3 +:1054D000E2F7CA018170992740FF02C082E090E0A4 +:1054E000822B8E2B8093FF021091FE028F70E82F8B +:1054F000F0E0EF5FFD4F80819091FD02890F809376 +:10550000FD02F12C84306CF0E12FF0E0E550FD4F0E +:1055100080818F5F808360E0812F0E94E224FF24DE +:10552000F3948091FD028D3F6CF4E12FF0E0E550A3 +:10553000FD4F80818150808361E0812F0E94E224B1 +:10554000FF24F3948091FD02082E000C990B64E077 +:1055500070E00E94C7328093FD02F1100E94140B8C +:1055600080918303882351F18091470390914803F0 +:105570000E949C1AC29708F0EBC020917B043091E6 +:105580007C042115310509F09DC180918203882397 +:10559000A9F00E94380800917E0310917F032091AA +:1055A000800330918103601B710B820B930B6F3F63 +:1055B0007F4F8F4F9F4710F40E94E00CD11001C025 +:1055C000F1100E94FB0C0E9464100E94C60E909184 +:1055D0004903891731F00E94C60E809349030E9447 +:1055E000260E80919F03843009F00BCF83E08093D7 +:1055F000E9008091E80082FF04CF8091E80090E00C +:1056000085FF0CC00E94C90630E2C32ED12C8E014A +:105610000F5F1F4F882309F431C291E08091E800A9 +:105620008B778093E800992309F4EBCEE981E15070 +:10563000E33108F087C2F0E0EA55FB4C0C94DB3212 +:1056400081E0E1CD86E492E0F5CD80919F03843046 +:1056500009F435C080E00E94260E8091FA02811183 +:1056600009C0F092FA028091760481708093F90269 +:105670000E944A0E0E94E00C0E94641010928A035D +:105680000FB6F894A895809260000FBEE09260007B +:1056900083B7817F846083BF83B7816083BF789441 +:1056A000889583B78E7F83BF0FB6F894A8958091B5 +:1056B0006000886180936000109260000FBE80914E +:1056C0009E03882361F00E94B825E5E5F3E081910F +:1056D00081115EC38FE593E08E179F07C1F780911C +:1056E0009F03853009F4B1CF0E9429110E94C60E94 +:1056F0000E94260E1092FA028091F902882349F046 +:105700008091760481608093760460E086950E94A3 +:1057100067160E940B0F7ECEB394FF0C98E0B9126F +:1057200092CE0F5F1F4F0A30110509F082CE8FEF26 +:105730008EA38FA318A60E94AB1A8160782F9AA718 +:1057400089A74EA15FA168A58AA50E9452249CCE7C +:105750000E94AB1A909348038093470360E080E077 +:105760000E9470080E94C60E809304030E94A30E3C +:10577000882309F48EC04091000350910103609189 +:105780000203709103032FB7F89480918B039091DB +:105790008C03A0918D03B0918E032FBF841B950BBA +:1057A000A60BB70B81339547A105B10540F00E94C8 +:1057B000E00C80918303882309F4E7CEDECE0E94BB +:1057C000FB0C61E080E00E94700860E087E691E0F9 +:1057D0000E94BC1462E080E00E9470088091A903DE +:1057E0000E94600C823009F446C0E8F5882309F471 +:1057F00042C0813009F445C065E080E00E94700835 +:1058000060E08AE891E00E94BC1466E080E00E94BB +:105810007008609104036695617085E991E00E94CB +:10582000BC1467E080E00E947008609104036095FA +:1058300061708AE991E00E94BC1468E080E00E94F7 +:1058400070086091040362FB662760F98EE991E0BD +:105850000E94BC146BE080E00E94700889E592E031 +:105860000E946706A6CF833081F0843029F660E07D +:105870008EE791E003C060E082E791E00E94BC14F3 +:10588000BBCF60E088E791E0F9CF60E084E891E089 +:10589000F5CF63E080E00E94700860E083EA91E069 +:1058A0000E94BC1464E080E00E94700860E08BEA13 +:1058B00091E00E94BC1467E080E00E94700889EDCE +:1058C00093E0CECF8091460361E070E081115DCE20 +:1058D000082F10E02B01082E02C0440C551C0A941E +:1058E000E2F7A90144215521452B09F447C09091C5 +:1058F000450390FD45C08295880F880F8074809382 +:10590000590198013695279520935C01815C80931D +:105910005A0110925D0124E630E047E050E067E56F +:1059200071E088E70E94DE2F892B09F02ECEA801B6 +:1059300076E0440F551F7A95E1F78091450380FD8D +:105940002DC043585B4F04E610E020E430E060E4F3 +:1059500088E70E940530892B09F017CE0E94FB0CC6 +:10596000C2018095909540907B0450907C04482221 +:10597000592250927C0440927B0407CE8F5FA8CFBF +:10598000880F880F880F8093590110925C01895FFE +:1059900080935A0187E080935D01BDCFE5E0F3E09D +:1059A000DF012E2D1D922A95E9F789E192E09EA74D +:1059B0008DA701E112E0ADA5BEA56D91BEA7ADA773 +:1059C000F80181918F01840F952F911D9C0123581F +:1059D0003B4F3CA72BA7E62FF0E0EB5FFC4F30E0FE +:1059E00020E067E0662E621ACC24C394022E01C028 +:1059F000CC0C0A94EAF7ABA4BCA490E0D5018D913D +:105A00005D018C21662D691B6770762E062E000CB9 +:105A1000770BB82F01C0BB0F7A94EAF77B2E7195F4 +:105A2000619571096770772701C086956A95EAF7D5 +:105A3000782A8081782A70829F5F9830F9F62F5FEC +:105A40003F4F31962830310561F6E1E2F2E02DA5B5 +:105A50003EA5E217F30709F0AECF04E610E020E41C +:105A600030E045E053E073CF8091F100D8018D9391 +:105A70008D01B1E0CB1AD10809F4CFCD8091E800B7 +:105A800085FDF2CF8091E8008B778093E8000E943B +:105A9000C906882399F3C1CD1A8289E08B8311C08E +:105AA0008A81823009F48AC1833091F1813009F012 +:105AB00049C00E9438080E94E1326B837C838D8349 +:105AC0009E8380919F03843009F09BCC1091E90064 +:105AD0001F709091EC00892F817090FD80E8182B49 +:105AE00082E08093E9008091E80080FF0DC050E0E3 +:105AF00040E060E270E0CE0101960E94FA068091DB +:105B0000E8008E778093E8001F701093E90079CC4D +:105B1000FE013396D1018D911D018193BFE52B16B6 +:105B2000B3E03B06B9F7CDCF8A81823059F46B815F +:105B30007C818D819E810E94E13286E290E00E940C +:105B40001B33BFCF8FEF8983BCCF4C816B818A81A0 +:105B50000E94A80F9827892798279E838D83B1CF0D +:105B6000CD80DE80DC24CD24DC248A810B81E0E141 +:105B70000E9F80011124F0EA8F9F000D111D11244A +:105B80008C8190E0880F991F080F191F6D2DC80197 +:105B900087960E941B336C2DC8018896D0CF0E9437 +:105BA0002E0F8FCF8A818138B1F058F4803809F0F8 +:105BB00088CF4B8160917804809177040E949D1575 +:105BC00080CF8238E1F0833809F07BCF40917904AF +:105BD0006C818B81F3CF60E08B810E9467168B8193 +:105BE000811103C00E944A0E6CCF809176048160BF +:105BF0008093760460E086950E94671662CF8B8161 +:105C000080937A045ECF8A81813899F030F48038AD +:105C100009F057CF8091790441CF823891F08338D1 +:105C200009F04FCF809177048B83809178048C8327 +:105C300048CF8091760480FF02C086952FCF80E008 +:105C40002DCF80917A042ACF6091760470917704E9 +:105C500080917804909179040E94D81432CF80E129 +:105C60008A832FCF1A8289EB19CFAA80BB80BA24EE +:105C7000AB24BA248E010F5F1F4FCC80C00ED12EF3 +:105C8000D11CC501895B9C4F0C151D0509F419CF6A +:105C900029EBA216B10458F40E940733D8011496D8 +:105CA0008C93FFEFAF1ABF0A0F5F1F4FEACFF801C7 +:105CB0001482F7CF0A811B811027012710279E012C +:105CC0002F5F3F4F5901CC80C00ED12ED11CC8018F +:105CD000895B9C4FC016D10609F4F3CE093B110530 +:105CE00028F4D50114966C910E941B33BFEFAB1AB8 +:105CF000BB0A0F5F1F4FEBCF0E941E0FE2CE85E065 +:105D0000AFCFAA80BB80BA24AB24BA248E010F5F28 +:105D10001F4FCC80C00ED12ED11CC5018796C01656 +:105D2000D10609F4CECEE0E2AE16E3E0BE0658F4AA +:105D30000E940733D80114968C93FFEFAF1ABF0A65 +:105D40000F5F1F4FEACFF8011482F7CF0A811B8142 +:105D50001027012710279E012F5F3F4F5901CC804C +:105D6000C00ED12ED11CC8018796C016D10609F4E9 +:105D7000A8CE003233E0130728F4D50114966C91B5 +:105D80000E941B33BFEFAB1ABB0A0F5F1F4FEBCF55 +:105D900009BD19BD09B400FEFDCF8091D8008F7DEB +:105DA0008093D8008091E00082608093E000809131 +:105DB000E00081FDFCCF0E94291191CC86E290E0A9 +:105DC0000E9407331B821C821D828E837ACE109222 +:105DD000B9008CE08093B80008959F92AF92BF9273 +:105DE000CF92DF92EF92FF920F931F93CF93DF93A7 +:105DF000B82EEB010E94AB1A6C01EE24E394F12C57 +:105E0000C431D10560F025E0E22EF12CCF3FDC0754 +:105E100031F0CE0164E170E00E94A7327B0184EA98 +:105E2000A82E94E8992E1092BC00A092BC000E946B +:105E3000AB1A8C018091BC0087FF0DC08091B90026 +:105E4000887F883039F18091B900887F803111F1E5 +:105E50000FEF1FEF09C00E94AB1A801B910B8E152C +:105E60009F0540F30EEF1FEFCF3FDC07E1F2C601C5 +:105E70000E949C1A8C179D07B0F2C801DF91CF9148 +:105E80001F910F91FF90EF90DF90CF90BF90AF9058 +:105E90009F900895B092BB009092BC000E94AB1AF4 +:105EA0008C018091BC0087FF0AC08091B900887F77 +:105EB000883111F0803461F610E000E0DECF0E94FE +:105EC000AB1A801B910B8E159F0558F3CBCF0F9308 +:105ED0001F93CF93DF93EB018093BB0084E8809303 +:105EE000BC000E94AB1A8C018091BC0087FF11C0DE +:105EF0002091B900287F81E090E0283211F490E0F1 +:105F000080E0919581959109DF91CF911F910F913B +:105F10000895CF3FDC0741F30E94AB1A801B910B21 +:105F20008C179D0708F38EEF9FEFEECF0F931F9313 +:105F3000CF93DF93EC0184EC8093BC000E94AB1AFA +:105F40008C018091BC0087FF08C08091BB0090E06D +:105F5000DF91CF911F910F910895CF3FDC0789F317 +:105F60000E94AB1A801B910B8C179D0750F38EEF8C +:105F70009FEFEECF0F931F93CF93DF93EC0184E855 +:105F80008093BC000E94AB1A8C018091BC0087FFFB +:105F900008C08091BB0090E0DF91CF911F910F91DD +:105FA0000895CF3FDC0789F30E94AB1A801B910B49 +:105FB0008C179D0750F38EEF9FEFEECFCF92DF92BD +:105FC000EF92FF920F931F93CF93DF936B018A01A0 +:105FD0007901B9010E94ED2EE6010C0D1D1DC017BF +:105FE000D10761F424E92093BC00DF91CF911F9188 +:105FF0000F91FF90EF90DF90CF90089597FDF2CF33 +:10600000B70189910E94672FEACFCF92DF92EF927A +:10601000FF920F931F93CF93DF93C62F6A017901ED +:10602000B8010E94ED2E97FD0CC0B8018C2F0E9484 +:10603000672FE601EC0CFD1CCE15DF0511F097FF74 +:106040000CC024E92093BC00DF91CF911F910F91E8 +:10605000FF90EF90DF90CF900895B80189910E9452 +:10606000672FEACFCF92DF92EF92FF920F931F93A9 +:10607000CF93DF93F82EE62EEA016901B8010E9462 +:10608000ED2E97FD15C0B8018E2D0E94672F97FD4C +:106090000FC0B8018F2D81600E94ED2EF12CE12CF4 +:1060A00021E0C21AD108EC14FD0400F597FF11C0DD +:1060B00024E92093BC001816190614F490E080E03F +:1060C000DF91CF911F910F91FF90EF90DF90CF90D4 +:1060D0000895C8010E94962F97FD04C0FE01EE0DA1 +:1060E000FF1D80832FEFE21AF20ADDCF97FDE0CF8C +:1060F000C8010E94BA2F97FDDBCFCC0DDD1D888330 +:10610000D7CF84E98093BC0008958EE14B9B02C0F9 +:106110008150E1F74B9BFECF08955B9880E28A9512 +:10612000F1F75B9A0895FC013BE03A95F1F798E0AE +:1061300020E080E031E040E14A95F1F7880F4B9B89 +:1061400002C08160232742E04A95F1F7000040E158 +:106150004A95F1F7915079F790E19A95F1F799B155 +:1061600032E03A95F1F7000040E14A95F1F793FBF0 +:10617000992790F992272081920F90830895EF92AA +:10618000FF920F931F93CF93DF930F92CDB7DEB79C +:1061900019828C017C01E60EF11C0E151F0561F4BD +:1061A00081E09981911180E00F90DF91CF911F9153 +:1061B0000F91FF90EF9008950E948530CE010196D7 +:1061C0000E949330F80181938F01E7CF539A5B9A35 +:1061D000089553985B9AEB9AE9E6F0E080818F731B +:1061E000808308956150770B91E001C0990F6A9503 +:1061F000EAF720E031E0911108C0222391F05B9A88 +:1062000080E28A95F1F75B980895492F482339F089 +:106210005B9A232740E24A95F1F79695ECCF5B987D +:10622000F9CF5B98EDCFFF920F931F93CF93DF933E +:10623000EC018C01060F111DC017D10731F4DF915D +:10624000CF911F910F91FF900895F9900E948D308A +:1062500068E08F2D0E94F230EFCF1F920F920FB6A1 +:106260000F921124EF92FF920F931F932F933F935E +:106270004F935F936F937F938F939F93AF93BF934E +:10628000EF93FF93CF93DF930F92CDB7DEB71982D1 +:106290000E948530CE0101960E949330A82FA695CA +:1062A000A695A695282F229525709A2F9570290FCF +:1062B000922F937026952695920F98279770898133 +:1062C000982B09F075C0A83008F072C080E18A955B +:1062D000F1F75B9A539AB2E0BA95F1F700C05B9878 +:1062E000EA2EF12CEAE0AE9FD0011124AE5FBE4F42 +:1062F0001896ED91FC9119973097B1F06091ED01EE +:106300007091EE0116962D913C911797260F371F2D +:1063100013968D919C911497680F791F15964C9147 +:10632000159712968C9109958AE08E9DF0018F9DAC +:10633000F00D1124EE5FFE4F6581662351F0209130 +:10634000ED013091EE0186819781820F931F0E94AB +:1063500013310E948D30F0E1FA95F1F75B98539874 +:106360005B9A80E18A95F1F78AE08E9D80018F9D8E +:10637000100D11240E5F1E4FD80112966C911297CA +:10638000662371F12091ED013091EE0113968D910C +:106390009C91820F931F0E94BF30D801ED91FC9118 +:1063A000882311F088E001C082E080830E9485305C +:1063B0000F90DF91CF91FF91EF91BF91AF919F919E +:1063C0008F917F916F915F914F913F912F911F918D +:1063D0000F91FF90EF900F900FBE0F901F901895A8 +:1063E000ED91FC91DFCF0F931F93CF93DF93EC01DF +:1063F00008970CF0A9C08AE08C9FF0018D9FF00DEA +:106400001124EE5FFE4F80819181892B09F49CC09D +:10641000F894539A5B9885E08A95F1F700008C2FE9 +:10642000869585709C2F9570890F982F937086950F +:106430008695890F8E0193E0000F111F9A95E1F761 +:10644000082B0E948D3000C068E0802F0E94F2303F +:10645000A0E1AA95F1F753985B9A4B9B27C087E080 +:1064600090E04B9925C08AE08C9F80018D9F100D94 +:1064700011240E5F1E4FF80165816623A1F1209162 +:10648000ED013091EE0186819781820F931F0E946A +:10649000BF30811128C0539A5B9AD801ED91FC91CD +:1064A00082E08083789482E090E016C000C0D5CF6F +:1064B0000197B9F4539A5B9A8AE08C9FF0018D9F03 +:1064C000F00D1124EE5FFE4F0190F081E02D81E090 +:1064D0008083789481E090E0DF91CF911F910F91BC +:1064E000089500C0BECF0E948530B0E2BA95F1F7A2 +:1064F0005B98539AE0E1EA95F1F78AE08C9FF0010E +:106500008D9FF00D1124EE5FFE4F6281662351F0E6 +:106510002091ED013091EE0183819481820F931FD0 +:106520000E9413310E948D308AE08C9FF0018D9F74 +:10653000F00D1124EE5FFE4F0190F081E02D1082EE +:10654000789490E080E0C8CF84E090E0C5CFAA1BAB +:10655000BB1B51E107C0AA1FBB1FA617B70710F04E +:10656000A61BB70B881F991F5A95A9F78095909580 +:10657000BC01CD010895991B79E004C0991F9617BD +:1065800008F0961B881F7A95C9F78095089597FBA8 +:10659000072E16F4009407D077FD09D00E94A73289 +:1065A00007FC05D03EF4909581959F4F0895709516 +:1065B00061957F4F0895EE0FFF1F0590F491E02D38 +:1065C00009946927962769277827872778270895C8 +:1065D000FB01DC0102C005900D9241505040D8F7FC +:1065E0000895FB01DC0104C08D910190801921F414 +:1065F00041505040C8F7881B990B0895FB01DC01FE +:1066000002C001900D9241505040D8F70895F99979 +:10661000FECF92BD81BDF89A992780B50895A6E175 +:10662000B0E044E050E00C944133A8E1B0E042E037 +:1066300050E00C944133262FF999FECF92BD81BDD5 +:10664000F89A019700B4021639F01FBA20BD0FB6B0 +:10665000F894FA9AF99A0FBE08950396272F0E948C +:106660001C330E941B33252F0E941C33242F0C94B3 +:106670001C330196272F0E941C330C941B33DC0122 +:10668000CB01FC01F999FECF06C0F2BDE1BDF89A3D +:10669000319600B40D9241505040B8F708950E94D1 +:1066A00056336894B1110C94E53308950E94CA33AF +:1066B00088F09F5798F0B92F9927B751B0F0E1F0C3 +:1066C000660F771F881F991F1AF0BA95C9F714C073 +:1066D000B13091F00E94E433B1E008950C94E433BA +:1066E000672F782F8827B85F39F0B93FCCF38695AC +:1066F00077956795B395D9F73EF490958095709509 +:1067000061957F4F8F4F9F4F0895E89409C097FB85 +:106710003EF490958095709561957F4F8F4F9F4F78 +:106720009923A9F0F92F96E9BB279395F6958795BC +:1067300077956795B795F111F8CFFAF4BB0F11F47F +:1067400060FF1BC06F5F7F4F8F4F9F4F16C0882326 +:1067500011F096E911C0772321F09EE8872F762F5C +:1067600005C0662371F096E8862F70E060E02AF09D +:106770009A95660F771F881FDAF7880F9695879589 +:1067800097F9089557FD9058440F551F59F05F3FF2 +:1067900071F04795880F97FB991F61F09F3F79F043 +:1067A00087950895121613061406551FF2CF4695C5 +:1067B000F1DF08C0161617061806991FF1CF869547 +:1067C0007105610508940895E894BB27662777272B +:1067D000CB0197F908950E94FE330C946F340E9408 +:1067E000613438F00E94683420F0952311F00C9445 +:1067F00058340C945E3411240C94E5330E94C23357 +:1068000070F3959FC1F3950F50E0551F629FF00103 +:10681000729FBB27F00DB11D639FAA27F00DB11D1C +:10682000AA1F649F6627B00DA11D661F829F2227A5 +:10683000B00DA11D621F739FB00DA11D621F839F2C +:10684000A00D611D221F749F3327A00D611D231F02 +:10685000849F600D211D822F762F6A2F11249F5750 +:1068600050409AF0F1F088234AF0EE0FFF1FBB1F53 +:10687000661F771F881F91505040A9F79E3F510512 +:1068800080F00C9458340C94E5335F3FE4F3983E69 +:10689000D4F3869577956795B795F795E7959F5FBC +:1068A000C1F7FE2B880F911D9695879597F908954E +:1068B00097F99F6780E870E060E008959FEF80ECB3 +:1068C000089500240A941616170618060906089556 +:1068D00000240A9412161306140605060895092EBC +:1068E0000394000C11F4882352F0BB0F40F4BF2B2B +:1068F00011F460FF04C06F5F7F4F8F4F9F4F08956B +:10690000F894FFCF281028103110311033103110B7 +:106910003110311028102810381031103110381073 +:106920001A124212E5134212E51375129612E5137C +:106930009413A11363206320BC20BC20EE2096207A +:106940009620962008217921892189214C2D502DCE +:10695000942DA52DB02DCF2DD22D032E242EA22D7A +:10696000A22D2F2E322E352E5A2E7C2E7F2E812EAA +:02697000A62E51 +:106972000101460200000001000000004602000082 +:1069820000050100000046020000000106000000B0 +:106992004602000000010700000046020408000051 +:1069A200000000004602080C000000000000460241 +:1069B2000114000000000000013508760D550D514C +:1069C2000D4D0D340894920021007F2200070180B2 +:1069D200000044004444012D2D2D4C415945522DB7 +:1069E2002D0042617365200047616D652000526190 +:1069F200697365004C6F776572002D2D2D4C4F43E6 +:106A02004B2D2D2D0043617073004E756D00536345 +:106A1200726C002020534F4C4152002054454D507F +:106A2200455354000704070907030708818283E2DC +:106A320000E900EA00B500B600B700CD008301CC42 +:106A4200008A0192019401210223022402250226D6 +:106A52000227022A02B300B4006F007000C302666C +:106A620097C634F40000000000F5F6F731333236F1 +:106A7200FF00FF0100010000FFFF0000010001FF15 +:106A82000000081018202830383830282018100844 +:106A92000000010202020202020202020240227B02 +:0C6AA20049012701AC00B40BCD0BED0B3B :00000001FF diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index 2cc9de5b2b6c..015d6810e380 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -75,3 +75,5 @@ along with this program. If not, see . #ifdef VIA_ENABLE #define DYNAMIC_KEYMAP_LAYER_COUNT 5 #endif + +#define D2SKATE_MACRO_ENABLE //Enable Destiny 2 hunter skate macro (+224) diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c index f890fdb3857b..908437d6181a 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/encoder.c @@ -38,7 +38,7 @@ action_exec(encoder_event); } - void matrix_scan_user(void) { encoder_action_unregister(); } + //void matrix_scan_user(void) { encoder_action_unregister(); } //Included in keymap.c instead bool encoder_update_user(uint8_t index, bool clockwise) { encoder_action_register(index, clockwise); diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c index 9c05c6e85122..10e5b3431bd0 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -161,9 +161,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { if (trackball_is_scrolling) { mouse_report.h = mouse_report.x; #ifndef PIMORONI_TRACKBALL_INVERT_X - mouse_report.v = 0.3*mouse_report.y; //Multiplier to lower scrolling sensitivity + mouse_report.v = 0.2*mouse_report.y; //Multiplier to lower scrolling sensitivity #else - mouse_report.v = 0.3*-mouse_report.y; //invert vertical scroll direction + mouse_report.v = 0.2*-mouse_report.y; //invert vertical scroll direction #endif mouse_report.x = mouse_report.y = 0; } @@ -185,6 +185,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { } #endif + + +void matrix_scan_user(void) { + #ifdef ENCODER_ENABLE + encoder_action_unregister(); + #endif + + #ifdef SUPER_ALT_TAB_ENABLE + if (is_alt_tab_active) { //Allows for use of super alt tab. + if (timer_elapsed(alt_tab_timer) > 1000) { + unregister_code(KC_LALT); + is_alt_tab_active = false; + } + } + #endif + #ifdef D2SKATE_MACRO_ENABLE + if (D2SKATE_reset == false) { //Check if Destiny 2 skate timer is activated + if (timer_elapsed(D2SKATE_TIMER) > 4000) { + rgblight_sethsv_noeeprom(252,255,80); //Set regular game layer colour + D2SKATE_reset = true; + #ifdef HAPTIC_ENABLE + DRV_pulse(12); //trp_click + #endif + } + } + #endif + #ifdef ENCODER_ENABLE + encoder_action_unregister(); + #endif + if (timer_elapsed32(oled_timer) > 60000) { //60000ms = 60s + pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is idle for 1 minute. Would use suspend_power_down_user but the code is not working. + } +} + + bool process_record_user(uint16_t keycode, keyrecord_t *record) { #if defined(KEYBOARD_PET) || defined(OLED_LOGO) if (record->event.pressed) { //OLED timeout code diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json deleted file mode 100644 index 933628d0fdd2..000000000000 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout TEST.json +++ /dev/null @@ -1,417 +0,0 @@ -{ - "name": "Zodiark", - "vendorProductId": 4177657602, - "macros": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], - "layers": [ - [ - "KC_GRV", - "KC_1", - "KC_2", - "KC_3", - "KC_4", - "KC_5", - "KC_MS_BTN2", - "KC_ESC", - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_T", - "KC_MS_BTN1", - "KC_A", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_G", - "USER05", - "KC_VOLD", - "KC_LSFT", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_B", - "KC_MUTE", - "KC_VOLD", - "KC_UP", - "KC_DOWN", - "KC_LGUI", - "KC_LALT", - "KC_LCTL", - "KC_ENT", - "TT(3)", - "KC_VOLU", - "KC_MINS", - "KC_0", - "KC_9", - "KC_8", - "KC_7", - "KC_6", - "USER02", - "KC_Y", - "USER04", - "KC_P", - "KC_O", - "KC_I", - "KC_U", - "KC_Y", - "USER03", - "KC_RBRC", - "KC_QUOT", - "KC_SCLN", - "KC_L", - "KC_K", - "KC_J", - "KC_H", - "USER06", - "KC_MSTP", - "KC_RSFT", - "KC_SLSH", - "KC_DOT", - "KC_COMM", - "KC_M", - "KC_N", - "C(KC_W)", - "KC_LEFT", - "KC_RGHT", - "KC_LEFT", - "TO(1)", - "KC_RALT", - "KC_RCTL", - "KC_SPC", - "TT(4)", - "KC_RGHT" - ], - [ - "KC_PSCR", - "KC_4", - "KC_1", - "KC_2", - "KC_3", - "KC_G", - "KC_T", - "KC_S", - "KC_F12", - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_G", - "KC_C", - "KC_TAB", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_B", - "KC_SPC", - "KC_LSFT", - "KC_LSFT", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_TRNS", - "KC_TRNS", - "KC_LCTL", - "KC_LCTL", - "KC_TRNS", - "KC_LALT", - "USER07", - "KC_SPC", - "KC_F22", - "KC_TRNS", - "KC_F4", - "KC_F11", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_F12", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "TO(0)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_3", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_RALT", - "KC_TRNS", - "TO(0)", - "KC_RALT", - "MO(4)", - "KC_ENT", - "MO(2)", - "KC_TRNS" - ], - [ - "KC_GRV", - "KC_1", - "KC_2", - "KC_3", - "KC_4", - "KC_5", - "KC_MS_BTN2", - "KC_TRNS", - "KC_ESC", - "KC_Q", - "KC_W", - "KC_E", - "KC_R", - "KC_T", - "KC_MS_BTN1", - "KC_MINS", - "KC_TAB", - "KC_A", - "KC_S", - "KC_D", - "KC_F", - "KC_G", - "USER05", - "KC_P", - "KC_LSFT", - "KC_Z", - "KC_X", - "KC_C", - "KC_V", - "KC_B", - "KC_TRNS", - "KC_VOLD", - "KC_UP", - "KC_DOWN", - "KC_LGUI", - "KC_LALT", - "KC_LCTL", - "KC_SPC", - "TT(2)", - "KC_VOLU", - "KC_MINS", - "KC_0", - "KC_9", - "KC_8", - "KC_7", - "KC_6", - "USER02", - "KC_RCTL", - "KC_BSPC", - "KC_P", - "KC_O", - "KC_I", - "KC_U", - "KC_Y", - "USER03", - "KC_F5", - "KC_QUOT", - "KC_SCLN", - "KC_L", - "KC_K", - "KC_J", - "KC_H", - "USER06", - "KC_TRNS", - "KC_RSFT", - "KC_SLSH", - "KC_DOT", - "KC_COMM", - "KC_M", - "KC_N", - "KC_TRNS", - "KC_LEFT", - "KC_RGHT", - "KC_LEFT", - "TO(1)", - "KC_RALT", - "KC_RCTL", - "KC_ENT", - "TT(3)", - "KC_RGHT" - ], - [ - "KC_GRV", - "KC_F1", - "KC_F2", - "KC_F3", - "KC_F4", - "KC_F5", - "KC_F14", - "KC_F9", - "KC_ESC", - "KC_1", - "KC_2", - "KC_3", - "KC_4", - "KC_5", - "KC_F13", - "KC_8", - "KC_TRNS", - "KC_EXLM", - "KC_AT", - "KC_HASH", - "KC_DLR", - "KC_PERC", - "KC_TRNS", - "KC_AMPR", - "KC_TRNS", - "KC_EQL", - "KC_MINS", - "KC_PLUS", - "KC_LCBR", - "KC_RCBR", - "KC_TRNS", - "C(S(KC_TAB))", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "C(KC_TAB)", - "KC_F11", - "KC_F10", - "KC_F9", - "KC_F8", - "KC_F7", - "KC_F6", - "KC_TRNS", - "KC_TRNS", - "KC_F12", - "KC_0", - "KC_9", - "KC_8", - "KC_7", - "KC_6", - "KC_TRNS", - "KC_TRNS", - "KC_PIPE", - "KC_RPRN", - "KC_LPRN", - "KC_ASTR", - "KC_AMPR", - "KC_CIRC", - "KC_TRNS", - "C(KC_X)", - "KC_TRNS", - "KC_BSLS", - "KC_COLN", - "KC_GT", - "KC_RBRC", - "KC_LBRC", - "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", - "C(KC_UP)", - "C(KC_DOWN)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "C(KC_LEFT)", - "C(KC_NO)", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "C(KC_Z)", - "C(KC_X)", - "C(KC_C)", - "C(KC_V)", - "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_CAPS", - "KC_NO", - "KC_DEL", - "KC_INS", - "KC_TRNS", - "KC_END", - "KC_UP", - "KC_HOME", - "KC_NLCK", - "KC_NO", - "KC_BSPC", - "KC_TRNS", - "KC_TRNS", - "KC_RGHT", - "KC_DOWN", - "KC_LEFT", - "KC_SLCK", - "KC_NO", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_PGDN", - "KC_PGUP", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_TRNS", - "KC_WWW_REFRESH", - "KC_TRNS", - "KC_TRNS" - ] - ] -} \ No newline at end of file diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json index d9f5fd84ceb5..f21cb514c9eb 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json @@ -10,7 +10,7 @@ "KC_3", "KC_4", "KC_5", - "KC_MS_BTN2", + "KC_MS_BTN1", "KC_ESC", "KC_ESC", "KC_Q", @@ -18,7 +18,7 @@ "KC_E", "KC_R", "KC_T", - "KC_MS_BTN1", + "KC_MS_BTN2", "KC_A", "KC_TAB", "KC_A", @@ -132,7 +132,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", + "KC_NO", "KC_TRNS", "KC_F12", "KC_TRNS", @@ -140,7 +140,7 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_TRNS", + "KC_NO", "TO(0)", "KC_TRNS", "KC_TRNS", @@ -272,7 +272,7 @@ "KC_HASH", "KC_DLR", "KC_PERC", - "KC_ASTR", + "KC_DEL", "KC_AMPR", "KC_TRNS", "KC_EQL", @@ -378,23 +378,23 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", - "KC_CAPS", + "KC_SLCK", "KC_NO", "KC_DEL", "KC_INS", - "KC_TRNS", "KC_END", "KC_UP", "KC_HOME", + "KC_TRNS", "KC_NLCK", "KC_NO", "KC_BSPC", "KC_TRNS", - "KC_TRNS", "KC_RGHT", "KC_DOWN", "KC_LEFT", - "KC_SLCK", + "KC_TRNS", + "KC_CAPS", "KC_NO", "KC_TRNS", "KC_TRNS", From 992face782c32a816c74e045c5ef6a38441d47c8 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 13 Apr 2022 12:50:17 -0400 Subject: [PATCH 93/94] Updated firmware file and various files. --- .../solartempest/aleblazer_zodiark_solartempest.hex | 4 ++-- .../aleblazer/zodiark/keymaps/solartempest/config.h | 1 + .../aleblazer/zodiark/keymaps/solartempest/keymap.c | 12 +++++++----- .../aleblazer/zodiark/keymaps/solartempest/oled.c | 12 ++++++++---- .../keymaps/solartempest/zodiark VIA layout.json | 4 ++-- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex index 400e04fe82d7..9d2471689c5c 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/aleblazer_zodiark_solartempest.hex @@ -496,7 +496,7 @@ :101EF000DF90CF90BF90AF909F908F907F906F902A :101F00000895CF93C82F6FEF811162E283E290E0D2 :101F10000E941B336FEFC11162E084E290E00E94E7 -:101F20001B336FEFC11169E085E290E0CF910C9413 +:101F20001B336FEFC11169E185E290E0CF910C9412 :101F30001B3380E00E94810F60E086E290E00E9407 :101F40001B330E942E0F0E941E0F81E00C94810F04 :101F50000F931F93CF93DF9320E1629FE001112441 @@ -519,7 +519,7 @@ :10206000E1F380E00895883EC0F3813FD1F7F5CFDA :10207000822F869586958695089583E290E00E944A :102080000733823289F484E290E00E940733823081 -:1020900059F485E290E00E94073391E0893009F01D +:1020900059F485E290E00E94073391E0893109F01C :1020A00090E0892F8170089580E0FCCFCF9384E089 :1020B00090E00E940733C82F82E290E00E9407332D :1020C000982F8C2FCF9108951F93CF93DF93CDB787 diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h index 015d6810e380..5c897d91d659 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/config.h @@ -60,6 +60,7 @@ along with this program. If not, see . #ifdef RGBLIGHT_ENABLE #undef RGBLIGHT_ANIMATIONS // Very memory intensive (+2604) #define RGBLIGHT_EFFECT_STATIC_GRADIENT //Preferred RGB effect (+262) + //#define RGBLIGHT_EFFECT_BREATHING //Testing //#define RGBLIGHT_EFFECT_SNAKE //For testing LED order #define RGBLIGHT_SLEEP //Turn off LEDs when computer sleeping (+72) #endif diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c index 10e5b3431bd0..e2c4c94cbf8c 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/keymap.c @@ -132,7 +132,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #ifdef POINTING_DEVICE_ENABLE void run_trackball_cleanup(void) { //Set colour of trackball LED. Does not require RGBLIGHT_ENABLE if colour shorthands are not used. - #ifdef POINTING_DEVICE_ENABLE if (trackball_is_scrolling) { pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. //pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); @@ -142,7 +141,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //pimoroni_trackball_set_rgbw(217, 165, 33, 0x00); //RGB_GOLDENROD in number form. pimoroni_trackball_set_rgbw(43, 153, 103, 0x00); } - #endif } uint8_t pointing_device_handle_buttons(uint8_t buttons, bool pressed, pointing_device_buttons_t button) { @@ -214,9 +212,12 @@ void matrix_scan_user(void) { #ifdef ENCODER_ENABLE encoder_action_unregister(); #endif - if (timer_elapsed32(oled_timer) > 60000) { //60000ms = 60s - pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is idle for 1 minute. Would use suspend_power_down_user but the code is not working. - } + + #ifdef POINTING_DEVICE_ENABLE + if (timer_elapsed32(oled_timer) > 60000) { //60000ms = 60s + pimoroni_trackball_set_rgbw(0,0,0, 0x00); //Turn off Pimoroni trackball LED when computer is idle for 1 minute. Would use suspend_power_down_user but the code is not working. + } + #endif } @@ -508,6 +509,7 @@ void keyboard_post_init_user(void) { #ifdef RGBLIGHT_ENABLE rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT+8); //Set to static gradient 9 + //rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING); //Test #endif layer_move(0); //Start on layer0 by default to set LED colours. Can remove to save a very small amount of space. #ifdef POINTING_DEVICE_ENABLE diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c b/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c index 8642bacb0548..20ed75e40580 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/oled.c @@ -13,6 +13,8 @@ along with this program. If not, see . */ #ifdef OLED_ENABLE +uint32_t oled_timer = 0; //OLED timeout +led_t led_usb_state; static void render_logo(void) { static const char PROGMEM qmk_logo[] = { @@ -61,10 +63,12 @@ static void print_status_narrow(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_90; - } - return rotation; + if (is_keyboard_master()) { + return OLED_ROTATION_90; + } + else{ + return OLED_ROTATION_270; + } } bool oled_task_user(void) { diff --git a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json index f21cb514c9eb..cc01d354cdb2 100644 --- a/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json +++ b/keyboards/aleblazer/zodiark/keymaps/solartempest/zodiark VIA layout.json @@ -92,7 +92,7 @@ "KC_2", "KC_3", "KC_G", - "KC_T", + "KC_MS_BTN1", "KC_S", "KC_F12", "KC_ESC", @@ -100,7 +100,7 @@ "KC_W", "KC_E", "KC_R", - "KC_G", + "KC_MS_BTN2", "KC_C", "KC_TAB", "KC_TAB", From 30e36883bc05f63867c8a20e69c1f2e2e219bc41 Mon Sep 17 00:00:00 2001 From: solartempest <82990256+solartempest@users.noreply.github.com> Date: Wed, 13 Apr 2022 12:57:36 -0400 Subject: [PATCH 94/94] Removed haptic feedback by default. Functionality still can be enabled. --- keyboards/solartempest/sofle/config.h | 2 +- keyboards/solartempest/sofle/rules.mk | 2 +- .../sofle/solartempest_sofle_via.hex | 2985 ++++++++--------- 3 files changed, 1453 insertions(+), 1536 deletions(-) diff --git a/keyboards/solartempest/sofle/config.h b/keyboards/solartempest/sofle/config.h index 5bc9ee2ad549..c9b3d0025bbb 100644 --- a/keyboards/solartempest/sofle/config.h +++ b/keyboards/solartempest/sofle/config.h @@ -123,7 +123,7 @@ // Pimoroni trackball settings #ifdef POINTING_DEVICE_ENABLE //#define PIMORONI_TRACKBALL_INTERVAL_MS 6 //Default is 8ms - //#define PIMORONI_TRACKBALL_ROTATE //Change according to your particular installed trackball orientation. + #define PIMORONI_TRACKBALL_ROTATE //Change according to your particular installed trackball orientation. #define PIMORONI_TRACKBALL_INVERT_Y #define PIMORONI_TRACKBALL_INVERT_X #endif diff --git a/keyboards/solartempest/sofle/rules.mk b/keyboards/solartempest/sofle/rules.mk index 9d29739aae44..e315f80465f5 100644 --- a/keyboards/solartempest/sofle/rules.mk +++ b/keyboards/solartempest/sofle/rules.mk @@ -27,5 +27,5 @@ WPM_ENABLE = no # WPM counter for typing-speed-reactive keyboard pets (+782) POINTING_DEVICE_ENABLE = yes # Enable Pimoroni Trackball on master (+2304) POINTING_DEVICE_DRIVER = pimoroni_trackball -HAPTIC_ENABLE = yes # Enable Pimoroni Haptic Bzzz LRA (+1192) +HAPTIC_ENABLE = no # Enable Pimoroni Haptic Bzzz LRA (+1192) HAPTIC_DRIVER += DRV2605L diff --git a/keyboards/solartempest/sofle/solartempest_sofle_via.hex b/keyboards/solartempest/sofle/solartempest_sofle_via.hex index 285b56d5e69d..c751a30efc73 100644 --- a/keyboards/solartempest/sofle/solartempest_sofle_via.hex +++ b/keyboards/solartempest/sofle/solartempest_sofle_via.hex @@ -1,9 +1,9 @@ -:100000000C9418060C945F060C945F060C943D3318 +:100000000C9418060C945F060C945F060C94AE30AA :100010000C945F060C945F060C945F060C945F06CC -:100020000C945F060C945F060C94771A0C94331AA8 -:100030000C94F8280C945F060C945F060C945F06F1 +:100020000C945F060C945F060C94B3190C946F1932 +:100030000C94BB260C945F060C945F060C945F0630 :100040000C945F060C945F060C945F060C945F069C -:100050000C945F060C94501B0C945F060C945F0686 +:100050000C945F060C948C1A0C945F060C945F064B :100060000C945F060C945F060C945F060C945F067C :100070000C945F060C945F060C945F060C945F066C :100080000C945F060C945F060C945F060C945F065C @@ -194,30 +194,30 @@ :100C10000066006C006500000010034B0065007961 :100C20000068006900760065000000040309040004 :100C300011241FBECFEFDAE0DEBFCDBF04B603FE46 -:100C400027C08091720690917306A0917406B091AE -:100C500075068730904BA740B04BD1F410927206C6 -:100C600010927306109274061092750614BE84B723 +:100C400027C080916C0690916D06A0916E06B091C0 +:100C50006F068730904BA740B04BD1F410926C06D2 +:100C600010926D0610926E0610926F0614BE84B735 :100C7000877F84BF0FB6F894A89580916000886143 :100C800080936000109260000FBEE0E0F8E30995E9 -:100C900012E0A0E0B1E0ECEAFDE602C005900D92A2 +:100C900012E0A0E0B1E0E4E7F8E602C005900D92B2 :100CA000A233B107D9F726E0A2E3B2E001C01D925A -:100CB000A237B207E1F70E941F290C9490360C94DA -:100CC0000000CF93DF93409170065091710640571A +:100CB000AC36B207E1F70E94E2260C9401340C94A2 +:100CC0000000CF93DF9340916A0650916B064A561D :100CD00054409A01205A3F4F21303240C0F020E06A -:100CE00032E0241B350B60916E0470916F04FC019F +:100CE00032E0241B350B6091680470916904FC01AB :100CF000CA01240F351FC1E0D0E08217930750F0DE -:100D000070936F0460936E04DF91CF91089520E695 -:100D100030E0E9CF4491DC01A059BB4F5C9145170D +:100D00007093690460936804DF91CF91089520E6A1 +:100D100030E0E9CF4491DC01A659BB4F5C91451707 :100D200081F04C93AC01A5E056954795AA95E1F763 :100D3000DE0102C0AA0FBB1F4A95E2F7AD016A2B84 :100D4000752B01963196D9CFE8EDF0E080818E7F4A :100D500080831092E2001092DA001092E100A0EE7F :100D6000B0E08C9181608C9380818F77808319BCF7 :100D7000A7EDB0E08C918E7F8C9380818F7E8083F5 -:100D80001092720308952091E4003091E50095E6F9 +:100D800010926C0308952091E4003091E50095E6FF :100D9000A9012091EC00822F817020FF06C0809174 :100DA000E80080FF06C080E008952091E80022FD61 -:100DB0001AC080918003882389F0853089F0809162 +:100DB0001AC080917A03882389F0853089F0809168 :100DC000EB0085FD0FC02091E4003091E500421753 :100DD0005307F9F29150E1F684E0089582E0089516 :100DE00083E0089581E00895EF92FF920F931F939F @@ -225,10 +225,10 @@ :100E00008091E80085FD0BC08091E8008E7780938B :100E1000E8000E94C306882399F3C82F08C0F70191 :100E200081917F018093F1000150110949F78C2FC6 -:100E3000CF911F910F91FF90EF90089580918203C1 +:100E3000CF911F910F91FF90EF90089580917C03C7 :100E400087FF13C08091E80082FF06C08091E80010 -:100E50008B778093E80004C0809180038111F2CFEA -:100E60000895809180038823D9F38091E80080FF62 +:100E50008B778093E80004C080917A038111F2CFF0 +:100E6000089580917A038823D9F38091E80080FF68 :100E7000F8CF8091E8008E77ECCF982F9093E9001F :100E8000242F762F50E0891731F07091EC002091DB :100E9000ED005091F00021FD07C09F5F973071F782 @@ -238,1539 +238,1456 @@ :100ED000F0002091EE0027FDE0CF80E00895CF9252 :100EE000DF92EF92FF920F931F93CF93DF93C8EDA2 :100EF000D0E088818F7E8883E7EDF0E0808181609B -:100F0000808384E082BF81E08093720388818E7F3A +:100F0000808384E082BF81E080936C0388818E7F40 :100F1000888302EE10E0F80110821092DA0081EE70 :100F2000C82ED12CF601108288818F778883888122 -:100F30008068888388818F7D888319BC10928003A4 -:100F40001092810310927F0310927E0390EEE92E9F +:100F30008068888388818F7D888319BC10927A03AA +:100F400010927B03109279031092780390EEE92EB1 :100F5000F12CF70180818B7F808388818160888379 :100F600042E060E080E00E943D07F60180818E7FD4 :100F70008083F801808181608083808188608083A4 :100F8000F70180818E7F8083888180618883DF91F3 :100F9000CF911F910F91FF90EF90DF90CF90089528 -:100FA000FC01809188039091890386179707A0F030 +:100FA000FC01809182039091830386179707A0F03C :100FB0006115710529F49091E8009E779093E800FF :100FC00090E06115710551F4911108C08091E8001D -:100FD00082FF34C080E00895BC01F2CF809180038D +:100FD00082FF34C080E00895BC01F2CF80917A0393 :100FE0008823C1F18530C1F18091E80083FD30C0D4 :100FF0008091E80082FDEACF8091E80080FFE1CF98 :101000008091F3002091F200382F6115710519F0DD :101010002830310558F091E02830310509F090E092 :101020002091E8002E772093E800CBCF8191809328 -:10103000F100615071092F5F3F4FE7CF809180032E +:10103000F100615071092F5F3F4FE7CF80917A0334 :10104000882341F0853041F08091E80083FFBECFD6 :1010500081E0089582E0089583E0089508958091E5 -:1010600075030895CF92DF92EF92FF922FB7F89415 -:10107000C0906B03D0906C03E0906D03F0906E0312 +:101060006F030895CF92DF92EF92FF922FB7F8941B +:10107000C0906503D0906603E0906703F09068032A :101080002FBFA7019601261B370B480B590BCA012E :10109000B901FF90EF90DF90CF9008952FB7F894AB -:1010A00060916B0370916C0380916D0390916E035E -:1010B0002FBF0895209168033091690328173907DD -:1010C00071F09093690380936803E0916603F09157 -:1010D0006703309721F00084F185E02D099408958D -:1010E00020916403309165032817390771F09093BC -:1010F000650380936403E0916603F0916703309782 -:1011000021F00680F781E02D09940895811520E5EE -:101110009207F8F48115E0E49E0788F5893391057C -:1011200070F48C32910548F48430910580F08E3152 -:10113000910518F08897039750F480E0089584365D -:101140009105D9F320F0805E91090897B0F381E012 -:101150001BC08115F9E59F0750F4811528E592071A -:10116000A0F491558F3F910509F088F7E6CF8115DE -:10117000EAE59E0710F390568115904240F7FB0177 -:101180009581907F81E0C9F20895FB019581907F60 -:1011900081E0903291F6F8CF2091530336E0839F9F -:1011A000C0011124629F800D911D1124811522E040 -:1011B000920714F090E080E080599B4F9093710665 -:1011C000809370060895FC01680F791F8FEF91E3FB -:1011D0002191822728E030E087FF09C0880F892706 -:1011E00021503109C9F7E617F70791F70895880FDD -:1011F000F7CFFA01811101C0FB01099480916904C4 -:10120000982F9E7F61F48170826080936904809141 -:101210006C04813A18F080EA80936C040895883158 -:10122000B0F381708661F1CFAF92BF92DF92EF92FF -:10123000FF920F931F93CF93DF93082F162FE9018F -:10124000E42FF0E0E750FB4F611110C0E4915E2FF6 -:101250004E2F4983E8835A83DF91CF911F910F91DD -:10126000FF90EF90DF90BF90AF900895E62EF12CA5 -:101270004491D42EE42FF0E026E0829FC001112497 -:101280002FEF30E0B9010E94B734802F90E0880F33 -:10129000991F55E5569FD001579FB00D11248A1B09 -:1012A0009B0B982F990F890F5901AE18BF08AE9E5E -:1012B000D001AF9EB00DBE9EB00D11245B2F189FC4 -:1012C00080011124012F11275901A01AB10AAE9EE5 -:1012D0008001AF9E100DBE9E100D11245901A81A59 -:1012E000B108AE9CC001AF9C900DBE9C900D112426 -:1012F000892F9927281B390B2E9FC0012F9F900DF6 -:101300003E9F900D1124E92F62307105A1F050F439 -:101310006115710509F49DCF6130710581F0EB2FE6 -:10132000512F97CF6430710569F080F066307105F8 -:1013300009F48FCFF4CFE42F4B2F592F8ACFE42F0E -:10134000412F87CFEB2F542F492F83CF4B2F5D2D6C -:10135000E12F7FCF80E0089578940895F894E82FE6 -:10136000E295EF70F0E031A1282F2F7081E090E03E -:1013700001C0880F2A95EAF7982F9095932391A39F -:1013800092A1892B82A30C94AC099091DB0292FF6D -:1013900006C0282F28712830F9F4877F846093FFD6 -:1013A00006C0282F28712831F1F4877E84612091AE -:1013B000DC0220FF06C0382F38713830D9F4877F1F -:1013C000816021FF06C0282F28712831D1F4877E43 -:1013D000816194FD877E0895282F24712430F9F6C9 -:1013E0008B7F8860DCCF282F2471243101F78B7E1E -:1013F0008861DDCF382F3171313019F78E7F8860E9 -:10140000E0CF282F2171213121F78E7E8861E1CF35 -:10141000CF93DF93EC018238910581F1B0F58133F0 -:10142000910509F491C020F58932910509F485C030 -:101430008A9709F490C0C11521E5D20708F0AAC027 -:10144000C11530E5D30708F0F2C0CF3BD10508F055 -:1014500089C0C83AD10508F0DFC0C53AD10508F007 -:10146000D3C0C430D105F8F4C130D105E1F040C09B -:101470008533910509F45AC0C997E9F68091DB02DA -:10148000837089F0C0EED0E00EC0833E910599F1E3 -:1014900070F4803E910501F1823E910561F68091E4 -:1014A000DB0282FD21C0CE01DF91CF910895863EFF -:1014B000910561F1873E910571F1843E910509F036 -:1014C000BACF8091DC0281FFEECF8091DB02C7EEC4 -:1014D000D0E084FD0DC0E7CF8091DB0280FDF7C036 -:1014E0009091DC0290FFDFCFC3EED0E084FFDBCF32 -:1014F000D0E0C0E0D8CF8091DB0282FDEBC09091BC -:10150000DC0290FDBFCF84FFCECFF2CF8091DB0213 -:1015100083FDDDCFC8CF8091DB0283FDDEC09091DB -:10152000DC0291FFF0CFC4EED0E0BDCF8091DB02B2 -:1015300085FFB9CFC9E2D0E0B6CF8091DB0285FF4D -:10154000B2CFC5E3D0E0AFCF8091DB0286FFABCF57 -:10155000CAE2D0E0A8CF8091DB0286FFA4CFC1E32E -:10156000D0E0A1CFC11540E2D40760F4C11581E0FD -:10157000D80708F098CFCE01815E9109079708F44B -:1015800092CFB6CFC11590E4D90708F4B1CFDF7080 -:10159000D06A89CFC11524E5D20778F4C11533E5A7 -:1015A000D30708F072C0C11542E5D40708F05CC04B -:1015B000DC2FCC27C16FD06A76CFC1158AE5D8075A -:1015C00078F4C11599E5D90708F073C0C11528E56D -:1015D000D20708F48DCFDC2FCC27C06FD06A63CF41 -:1015E000CE0190568115904208F082CF8D2F8F71D9 -:1015F0000E94C50990E0982F882788279F719C0139 -:101600002C2BE901D0624FCFC55AD0E0CD53DE4F2D -:10161000C881D0E0D06447CFC85AD0E0CC0FDD1FDE -:10162000CA53DE4F0990D881C02DD4643CCFCE017F -:1016300064E0969587956A95E1F783702C2F26953F -:101640002695237040E2249F90011124382B8C2F83 -:101650008370C1E0D0E002C0CC0FDD1F8A95E2F7B5 -:10166000C22BD32BDC681FCFCE018370992721E0DA -:1016700030E002C0220F331F8A95E2F7C695C69567 -:1016800080E2C89FE0011124EBCFCE01837099273F -:1016900021E030E002C0220F331F8A95E2F7C695A1 -:1016A000C69590E2C99FE0011124C22BD32BDA68C2 -:1016B000FACE8C2F8F700E94C50934E0D695C7955D -:1016C0003A95E1F7CF709C2FEC01D069ECCEC9E3DD -:1016D000D0E0E9CEC2EED0E0E6CEC6EED0E0E3CE7A -:1016E0000C944E088091730390919702892B9091EE -:1016F0009602892B80933402E0916603F091670390 -:10170000309731F00280F381E02D84E392E0099478 -:1017100008958091950290916402981301C00895F4 -:101720008F5F8770FACF27E0929F800D1124982F4A -:10173000977086958695869523E0829FF001112407 -:10174000ED5BFD4F50E040E080E0219130E0092E5C -:1017500002C0369527950A94E2F721703327042EAC -:1017600001C0220F0A94EAF7822B4F5F5F4F43308C -:10177000510559F7089527E0929F800D1124982F65 -:10178000977041E001C0440F9A95EAF786958695D7 -:10179000869593E0899FF0011124ED5BFD4F90E069 -:1017A00080E070E05191DF0111979B01082E02C08B -:1017B000369527950A94E2F7217021952527242351 -:1017C00025272C9301968330910561F7089590E0C9 -:1017D00080E00E94700890E080E00E945A08109219 -:1017E0009702109296020C94720B809398020C94BC -:1017F000E70B882341F080959091730389238093B0 -:1018000073030C94720B0895882339F0909173033D -:10181000982B909373030C94720B08958823B1F165 -:101820009CEF980F913A70F4E6E3F2E091918913FE -:1018300003C0DF0111971C9242E0EC33F407B1F7CB -:101840000C94720B90E2980F983088F4877021E026 -:1018500030E0A90102C0440F551F8A95E2F7CA0182 -:10186000809590917303892380937303E9CF9BE55F -:10187000980F933020F490E080E00C947008885A20 -:10188000873120F490E080E00C945A0808950F937B -:101890001F93CF93C82F882309F469C08CEF8C0F56 -:1018A000813AB0F506E312E08CE392E0F801219171 -:1018B000C21701F122E0EC33F207C9F7EFEF80E045 -:1018C000D8019D918D01C91781F0EF3F19F4911155 -:1018D00001C0E82F8F5F863099F7EF3F31F00E2E71 -:1018E000000CFF0BEC5CFD4FC283CF911F910F9159 -:1018F0000C94720BE6E3F2E02191C21303C0DF0106 -:1019000011971C928E179F07B9F70E94720BD6CFC2 -:1019100080E28C0F883068F4C77021E030E001C0AD -:10192000220FCA95EAF780917303822B8093730389 -:10193000DCCFEBE5EC0FE33050F4F0E0ED53FE4F7D -:10194000808190E0CF911F910F910C947008C85A3C -:10195000C73168F4EC2FF0E0EE0FFF1FEA53FE4FA3 -:1019600080819181CF911F910F910C945A08CF9152 -:101970001F910F910895982F92959F7011F0892FC4 -:1019800094E0282F2695269511F09E5F822F86954C -:1019900009F09F5F892F0895CF93DF93CDB7DEB70E -:1019A00062970FB6F894DEBF0FBECDBF96E0EFE3AF -:1019B000F3E0DE01179601900D929A95E1F796E01B -:1019C000FE013796DE011D9601900D929A95E1F782 -:1019D00098858823E9F0962B9E8786E0FE013D9648 -:1019E000DE01119601900D928A95E1F786E0FE01E5 -:1019F0003196AFE3B3E001900D928A95E1F76296DC -:101A00000FB6F894DEBF0FBECDBFDF91CF91089522 -:101A100060959623E1CF80936F0370937103609379 -:101A20007003809180038430F9F48093E9008FEF94 -:101A30009091E800815095FD06C095ED9A95F1F7DB -:101A400000008111F5CF8091E80085FF0DC050E0C6 -:101A500040E063E070E08FE693E00E94F40680913E -:101A6000E8008E778093E8000895BC0184E00C9430 -:101A70000B0DBC0183E00C940B0D9C0184E0809362 -:101A8000E9009FEF8091E800915085FD06C085ED4B -:101A90008A95F1F700009111F5CF8091E80085FF5C -:101AA0000CC050E040E066E070E0C9010E94F4061E -:101AB0008091E8008E778093E8000895CF93DF93BC -:101AC000EC0181E08093E9008FEF9091E800815074 -:101AD00095FD06C095ED9A95F1F700008111F5CFBF -:101AE0008091E80085FF14C050E040E068E070E0BD -:101AF000CE010E94F4068091E8008E778093E80082 -:101B000088E0FE01A6E7B3E001900D928A95E1F727 -:101B1000DF91CF910895CF92DF92EF920F931F93B1 -:101B2000CF93DF93CDB7DEB7CE5DD1090FB6F89472 -:101B3000DEBF0FBECDBF609174018091690480FF4C -:101B40004CC0EEEFF5E09E012F5F3F4F8E0101523A -:101B50001F4FC901A4914A2F50E0DA01AA0FBB1F01 -:101B6000A40FB51FA557BC4FCD90DD90EC90D901C7 -:101B7000CD92DD92ED929D013196A017B10751F7FC -:101B80002091730143E0249F800D911D1124539AED -:101B90002BB1277F3BB138605FB7F894FC01649F9D -:101BA000E00DF11D1124BF018617970749F55FBFAE -:101BB000EFE5F4E03197F1F700C00000C252DF4FCB -:101BC0000FB6F894DEBF0FBECDBFDF91CF911F914E -:101BD0000F91EF90DF90CF900895809175019091D3 -:101BE000760123E0829FF0011124E557FC4F89170D -:101BF00008F0A7CF1182108212828F5F3396F7CF41 -:101C0000DC014D91CD01E8E03BB9000000C047FF89 -:101C10002BB9440F000000C000C000C02BB900C0A9 -:101C2000EA9591F7C1CF0F931F93CF93DF9300D025 -:101C30000F92CDB7DEB7182F062F8091690480FF71 -:101C400022C09E012F5F3F4F40EA64E68BE20E9474 -:101C500014091017C0F48B8199812A8133E0139FF6 -:101C6000F0011124E557FC4F2183908382831F5F8D -:101C700033960113F9CF0E948B0D8FE99FE00197F6 -:101C8000F1F700C000000F900F900F90DF91CF91FF -:101C90001F910F910895CF93DF93C82FD82FD17044 -:101CA00081FF04C067E084E00E94130ED11104C0DC -:101CB0006FE18CE10E94130EC2FF06C063E180E178 -:101CC000DF91CF910C94130EDF91CF910895E9E647 -:101CD000F4E080818E7F8083EEE4F3E08281816096 -:101CE00082832FEF80E792E0215080409040E1F71F -:101CF00000C000000C948B0D9F92AF92BF92CF92C8 -:101D0000DF92EF92FF920F931F93CF93DF937C01AB -:101D10005B016A018091D60201E010E08A3010F484 -:101D20000AE010E0C1E0D0E0F894B501C701F60187 -:101D30000995982E0E94AC09911004C021960C17A9 -:101D40001D076CF4892DDF91CF911F910F91FF90AA -:101D5000EF90DF90CF90BF90AF909F900895CC9F71 -:101D60009001CD9F300D300D112490E080E045E3CF -:101D70004A95F1F70000019682179307C1F7D4CF77 -:101D80008091A702811110C08091D800806180935A -:101D9000D8008AE18A95F1F700C08091D90080FFD0 -:101DA0000AC081E08093A70281E09091A702913060 -:101DB00009F080E0089582E08093A7020E94A406C3 -:101DC00010928003F1CF0E94C00E882351F0E09161 -:101DD0006603F0916703309721F00190F081E02DC8 -:101DE000099480E008951F93CF93DF93182FEB01A0 -:101DF0000E94470C8FE99FE00197F1F700C00000B7 -:101E00002197C1F7812FDF91CF911F910C940E0C78 -:101E10000F931F93CF93DF9300D000D0CDB7DEB7E1 -:101E200089836A834B831C8204E610E024E030E05F -:101E3000AE014F5F5F4F60E084E10E9415320F906A -:101E40000F900F900F90DF91CF911F910F910895F8 -:101E500080917001882329F047E669E98BE20C94B0 -:101E6000080F80913D0247EC6BE18823C1F341E20A -:101E700065EA89EDF4CFCF92DF92EF92FF920F9354 -:101E80001F93CF93DF936C017B0164E670E088E7DA -:101E90000E94FD30EC0197FD12C010E000E0F60159 -:101EA000E00FF11F849164E670E00E947731EC014D -:101EB000892B29F40F5F1F4F0E151F0581F70E9414 -:101EC0009132CE01DF91CF911F910F91FF90EF9052 -:101ED000DF90CF90089580915E0390915F03911100 -:101EE00003C091E089270895882369F062E070E0DB -:101EF0008AE89BE00E943B0F892B19F080915E03DA -:101F0000089510925E0380915E03EBCFCF93C09152 -:101F10005E0380915F038823D1F00E944E086058D1 -:101F2000774C8E4F9F4F60935A0370935B0380935F -:101F30005C0390935D03C11108C062E070E088E823 -:101F40009BE00E943B0F892B29F0C0915E038C2FF0 -:101F5000CF91089581E080935E03F7CFCF93DF9315 -:101F6000C3EED2E060E0CE010E942B352196C11570 -:101F700084E0D807B9F7DF91CF9108956F927F92EF -:101F80008F929F92AF92BF92CF92DF92EF92FF9289 -:101F90000F931F93CF93DF938CE8C82E8BE0D82E3E -:101FA00091ECE92EF12CE701CC58D10936011BC088 -:101FB000F50185909490692DC8010E942B35682DFC -:101FC000C80101960E942B3582E0A80EB11C0E5F5D -:101FD0001F4FC017D10761F78EE0680E711C2E9657 -:101FE000CE15DF0529F08E010E5011095301E0CF07 -:101FF0007E018CE8E80EF11C8CE8C80ED11C8DE740 -:10200000E81683E0F80679F6DF91CF911F910F91E2 -:10201000FF90EF90DF90CF90BF90AF909F908F9008 -:102020007F906F900895CF93C82F6FEF811162E278 -:1020300083E290E00E942B356FEFC11161E084E2F2 -:1020400090E00E942B356FEFC11162E085E290E0D5 -:10205000CF910C942B3580E00E94131060E086E253 -:1020600090E00E942B350E94BE0F0E94AE0F81E0CF -:102070000C9413100F931F93CF93DF93C42FD0E0D2 -:10208000CC0FDD1F2EE0629FC00DD11D11243CE856 -:10209000839FC00DD11D1124CE0187960E94173554 -:1020A000082F10E0102F0027CE0188960E941735C8 -:1020B0009801282BC901DF91CF911F910F910895AD -:1020C000462F853038F47A3028F4673018F4672FBB -:1020D0000C943A1090E080E00895CF92DF92FF9246 -:1020E0000F931F93CF93DF936C0100918A0380912C -:1020F0009802082BC7E0D0E010E0FC2EC8010C2E9F -:1021000002C0959587950A94E2F780FD0CC021974F -:10211000A0F7F12C8F2DDF91CF911F910F91FF90A0 -:10212000DF90CF900895B6018C2F0E9460100E941E -:10213000080A019761F3EECFCF93DF93EC010E9481 -:102140006D10BE010E946010DF91CF910C94080ABF -:10215000FC01808191810E949C10292F2F70929503 -:102160009F7092509E3078F4E92FF0E0EE56F94CD3 -:102170000C94EB34803F19F020F4883E20F481E089 -:102180000895843FE1F380E00895883EC0F3813FE5 -:10219000D1F7F5CF822F869586958695089583E2AF -:1021A00090E00E941735823289F484E290E00E9428 -:1021B0001735813059F485E290E00E94173591E09F -:1021C000823009F090E0892F8170089580E0FCCF83 -:1021D0001F93CF93DF93CDB7DEB768970FB6F89410 -:1021E000DEBF0FBECDBF40913F03509140036091D1 -:1021F00041037091420380914303909144030E94F4 -:102200008F1B20933F0330934003609343037093ED -:102210004403142F119510934103652F619560932A -:10222000420386E0EFE3F3E0DE01179601900D92A2 -:102230008A95E1F786E0FE013796DE01119601905E -:102240000D928A95E1F79B858C8520917001222360 -:10225000B1F0772761950CF47095072E000C880B70 -:10226000990B0E9497352AE939E949E95EE30E9412 -:10227000FB350E945F35962F812F60E010E01B83B5 -:102280006C839D838E8386E0FE013196DE011D9670 -:1022900001900D928A95E1F786E0FE013D96DE0100 -:1022A000539601900D928A95E1F786E0FE017396B0 -:1022B000DE01119601900D928A95E1F786E0FE010C -:1022C0003196AFE3B3E001900D928A95E1F786E095 -:1022D000EFE3F3E0DE01179601900D928A95E1F7A6 -:1022E00086E0E9E3F3E0DE01119601900D928A9514 -:1022F000E1F746E050E0BE016F5F7F4FCE010796E9 -:102300000E940135892B79F0E0916603F091670313 -:10231000309749F082E080933F030480F581E02DFF -:102320008FE393E0099510924103109242031092BB -:1023300043031092440386E0EFE3F3E0A9E3B3E044 -:1023400001900D928A95E1F768960FB6F894DEBF7A -:102350000FBECDBFDF91CF911F910895E6E3F2E06C -:1023600086E0DF011D928A95E9F70C94E70B1F9335 -:10237000CF93DF93CDB7DEB7AA970FB6F894DEBF41 -:102380000FBECDBF82E893E02091F100DC012D93D8 -:10239000CD01B3E08A389B07B9F78091830383307E -:1023A00009F472C0B8F4813009F449C0823009F4EC -:1023B000B5C08091E80083FF8DC280918203909127 -:1023C00083039A3008F086C2E92FF0E0E056F94C1A -:1023D0000C94EB348A3009F490C08B3009F471C04E -:1023E000893039F780918203813219F78091860311 -:1023F00090918703009711F00297D9F68091E80039 -:10240000877F8093E8008091E80082FF38C0909138 -:10241000F3008091F200029731F48091F100813055 -:1024200011F0863021F48091F10080937503809142 -:10243000E8008B778093E8000E941E07BACF809156 -:102440008203813A09F0B5CF8091E800877F8093BD -:10245000E8008091860390918703892B61F468E0FE -:1024600086E793E070E00E94D0078091E8008B77C8 -:102470008093E8009ECF60E090E080E0F3CF809111 -:1024800080038111C0CF95CF80918203813A09F0FA -:1024900090CF8091860390918703892B09F089CF93 -:1024A0008091E800877F8093E8008091E80080FFBA -:1024B000FCCF809178018093F1008091E8008E77C5 -:1024C000B9CF80918203813209F073CF8091860366 -:1024D00090918703892B09F06CCF8091E800877F6A -:1024E0008093E8000E941E07809184038093780106 -:1024F000109273030E94AE115CCF809182038132EF -:1025000009F057CF8091E800877F8093E8000E9410 -:102510001E0780918503809374034BCF80918203C3 -:10252000813A09F046CF8091E800877F8093E800E8 -:102530008091E80080FFFCCF80917403BCCF80388D -:1025400099F0823809F0C6C1809186038F70873078 -:1025500008F0C0C18093E9008091EB0085FB8827DB -:1025600080F91092E90006C080917E0390917F036C -:10257000911182609091E800977F9093E80080939A -:10258000F1001092F1008091E8008E779FC18823BE -:1025900009F48DC1823009F09DC1809184038111BD -:1025A00090C1809186038F702FEF280F263008F09E -:1025B00091C18093E9002091EB0020FF82C193300C -:1025C00031F48091EB0080628093EB007AC19091AE -:1025D000EB0090619093EB0021E030E001C0220F0E -:1025E0008A95EAF72093EA001092EA008091EB00C6 -:1025F0008860EACF81116EC1109184031F778091AA -:10260000E3008078812B8093E3008091E800877F4E -:102610008093E8000E941E078091E80080FFFCCFB5 -:102620008091E30080688093E30082E0111183E0F1 -:10263000809380034FC18058823008F04BC12091B5 -:102640008403309185032C3DE3E03E07A1F583E050 -:102650008A838AE289834FB7F894DE01139620E0DB -:102660003EE051E2E32FF0E050935700E49120FF69 -:1026700003C0E295EF703F5FEF708E2F90E0EA307D -:10268000C0F0C7968D939D932F5F243159F74FBFAC -:102690008091E800877F8093E8006AE270E0CE01D5 -:1026A00001960E94D0078091E8008B778093E80024 -:1026B00011C1C096E7CF8091860390918703432F85 -:1026C00055274330510509F44AC078F5413051058A -:1026D00009F47AC08BE590E0ECE8FBE0423051056C -:1026E00009F0F8C02091E800277F2093E8002091AE -:1026F0008803309189038217930708F49C0140E016 -:102700002115310509F065C0411163C08091E800D1 -:1027100082FDC9CF80918003882329F2853019F288 -:102720008091E80083FFF2CFBECF4132510509F41A -:102730003CC04232510509F0CDC08330910508F00C -:10274000C9C0FC01EE0FFF1FEB5DFD4F0190F08152 -:10275000E02D8E5D9D4FDC018C9190E01AC03327F7 -:1027600021303105D1F02115310561F022303105DC -:1027700009F0B0C0E9EFFBE0E4918E2F90E0E9EFC3 -:10278000FBE007C0EBE2FCE0E4918E2F90E0EBE28F -:10279000FCE0009709F49EC0A5CFE9E1FCE0E491DC -:1027A0008E2F90E0E9E1FCE0F4CF8330910508F052 -:1027B00091C0880F991FFC01E55DFD4F0190F081EC -:1027C000E02D89E090E08ECF82E190E0E7EEFBE043 -:1027D00089CF80918003882309F465CF853009F47F -:1027E00062CF8091E80083FD5ECF8091E80082FD9A -:1027F0008DCF8091E80080FF83CF9091F30080918E -:10280000F2002115310519F08830910550F041E0B2 -:10281000089709F040E08091E8008E778093E80007 -:102820006FCF44914093F1003196215031090196C8 -:10283000E8CF803809F04EC08091E800877F809310 -:10284000E800809181038093F1009DCE811142C008 -:10285000109184031230F0F58091E800877F809317 -:10286000E800109381030E941E07112311F084E0F9 -:1028700005C08091E30087FDFACF81E0809380035B -:1028800042E061EC81E00E943D0742E261EC84E0BD -:102890000E943D0742E261EC82E00E943D0742E275 -:1028A00060EC83E00E943D078091800313C080911B -:1028B0008403813079F481E0933009F080E08093E3 -:1028C0007F031092E9008091E800877F8093E80001 -:1028D0000E941E078091E80083FF0AC08091E800F3 -:1028E000877F8093E8008091EB0080628093EB000B -:1028F000AA960FB6F894DEBF0FBECDBFDF91CF9181 -:102900001F9108951F93CF93DF93162FC0917006E8 -:10291000D09171068A30D1F420915303CE018057B3 -:102920009440622F70E00E94B734281B822F66E02B -:102930000E94CB34C82FC15020F4DF91CF911F915A -:10294000089560E080E20E948214F5CF8D30E9F4B2 -:10295000C057D44020915303622F70E0CE010E94F3 -:10296000B734281B822F9E01280F311D21153240BC -:1029700018F080E0D0E0C0E0C80FD11DC059DB4F97 -:10298000D0937106C0937006D8CF96E0FE01A4E5FF -:10299000B3E001900D929A95E1F7803E90F186E0C8 -:1029A000FE0111928A95E9F7C0917006D0917106E7 -:1029B000111133C046E050E0BE0184E593E00E946F -:1029C00001359E0120573440892B91F52A5F3F4FF6 -:1029D00040915303642F70E0C9010E94B734481B33 -:1029E000463010F4240F311D211572E0370710F026 -:1029F00030E020E020593B4F309371062093700661 -:102A00009CCFF6E08F9FB0011124685B794F46E0C0 -:102A100050E0CE010E94F834C7CF9E012A5F3F4F9D -:102A2000FE012E173F0731F2808180958193F9CF07 -:102A3000C90145E0969587954A95E1F741E050E058 -:102A4000BA0102C0660F771F8A95E2F7CB01609149 -:102A50006E0470916F04862B972BB9016B5F7F4FCB -:102A6000E5E076956795EA95E1F702C0440F551FBA -:102A70006A95E2F7842B952B90936F0480936E04F4 -:102A8000A5CFFF920F931F93CF93DF93EC01F62E08 -:102A9000FC0101900020E9F78F0101501109C017D6 -:102AA000D10730F0DF91CF911F910F91FF900895E2 -:102AB0006F2D89910E948214F2CFE1E5F3E08083CB -:102AC000618324E630E042E050E0BF0184EB0C94E7 -:102AD000EE31CF93C82F60E08CE00E945D156C2F23 -:102AE00084E00E945D1561E08CE0CF910C945D154F -:102AF000CF92DF92EF92FF926B017C010E94FE0861 -:102B0000B701A60188E090E0FF90EF90DF90CF90B2 -:102B10000C943D35AF92BF92CF92DF92EF92FF922D -:102B20000F931F93CF93DF9300D00F92CDB7DEB7F3 -:102B3000082FF62E142FE22E8091690480FF4FC0DB -:102B4000E82FE695AE2FB0E0AA5EBD4F9C91909322 -:102B50004E038E7F823009F056C0413A08F040EAB9 -:102B60009E012F5F3F4F6F2D802F0E94140980918F -:102B7000690480FF11C02B8139814A8180917501E0 -:102B80009091760153E0859FF0011124E557FC4FA9 -:102B9000891798F10E948B0D80916A04801308C0F8 -:102BA00080916B048F1104C080916C04811729F00F -:102BB0008091500382608093500300936A04F092E6 -:102BC0006B0410936C04EE2051F0609169047091D5 -:102BD0006A0480916B0490916C040E9478150F90A8 -:102BE0000F900F90DF91CF911F910F91FF90EF9079 -:102BF000DF90CF90BF90AF900895418330832283C0 -:102C00008F5F3396C5CF923039F6E2508E2F8170A8 -:102C1000D82EE695F0E0E750FA4FA590B490C12C7D -:102C2000BB2460917701C61608F0B4CF2C2D30E09C -:102C3000A29EC001A39E900DB29E900D112470E043 -:102C40000E94B734802FD11016C0860F40917501B5 -:102C5000420F532F511D9A01220F331F240F351F8E -:102C600025573C4F412F113A08F040EA6F2D0E9442 -:102C70001409C394D6CF861BE9CF20E00C948A15A3 -:102C8000CF93C82F0E94BB0C823099F138F488236F -:102C9000C1F0813029F18C2FCF910895833081F1DB -:102CA0008430C9F740E56FEF8AED0E943D1687E05A -:102CB0000E94691580910001882369F310927001C8 -:102CC0000CC040E56AEA83E70E943D16809100014E -:102CD0008823A1F381E0809370010E94280FDBCF4D -:102CE00040E56FEF8CEF0E943D1685E40E94691568 -:102CF000D2CF40E56FEF80E50E943D1685E2F6CF2A -:102D000040E56FEF80EA0E943D168FE1EFCF0E9411 -:102D1000401680938A030C94E70B80918A03982FC6 -:102D20009670963019F488600C948716877FFCCFD4 -:102D300021E030E001C0220F8A95EAF720958091CA -:102D40008A0382230C94871621E030E001C0220F11 -:102D50008A95EAF780918A03822B0C948716E9E61C -:102D6000F4E0438121E1421B08F440E021E062816C -:102D700081810C948A15E9E6F4E0438121E1420F58 -:102D800008F44FEF21E0628181810C948A15E9E615 -:102D9000F4E0628121E1621B08F460E021E04381FC -:102DA00081810C948A15E9E6F4E0628121E1620FE9 -:102DB00008F46FEF21E0438181810C948A15E9E6E4 -:102DC000F4E0818121E04381628188500C948A156E -:102DD000E9E6F4E0818121E043816281885F0C941F -:102DE0008A1580916D04882319F0815080936D04B9 -:102DF0006091690470916A0480916B0490916C04F5 -:102E00000C94781580916D04833018F48F5F809353 -:102E10006D046091690470916A0480916B049091D3 -:102E20006C040C9478159091690490FF26C0917001 -:102E300081111CC09260909369048091500381605D -:102E400080935003662351F06091690470916A0485 -:102E500080916B0490916C040E94781540916C04F1 -:102E600060916B0480916A040C943D168C3010F0D4 -:102E70009661E1CF880F982BDECF08958091690489 -:102E80008695815009F48BE061E00C9413178091D2 -:102E9000690486958F5F8C3008F081E061E00C94C6 -:102EA00013178091690480FF07C0869582588F7739 -:102EB000893010F40C94471761E082E00C941317EA -:102EC000E9E6F4E083E0808311828FEF828380EA79 -:102ED00083831482AEE4B3E012968C9112978360E0 -:102EE00012968C9360817181828193810C94781504 -:102EF000AB01BC0188E190E00C943D35CF93C82F25 -:102F0000E2E6F3E0982F990F990F990F808187706F -:102F1000892B8083E3E6F3E09C2F9295969597703A -:102F20008081887F892B8083609160037091610329 -:102F300080916203909163030E9478176C2F82E066 -:102F4000CF910C945D15E0E6F3E089E8808311826F -:102F500082818C7F82836091600370916103809194 -:102F60006203909163030C947817E0E6F3E08081AC -:102F70008E7F808360916003709161038091620312 -:102F8000909163030C947817E0E6F3E08081816010 -:102F900080836091600370916103809162039091DE -:102FA00063030C9478170E94F73040E060E080E003 -:102FB0000C94080F69EE7EEF90E080E00E944935A6 -:102FC00060E082E090E00E942B3560E083E090E0DA -:102FD0000E942B351092980260E084E090E00E94FD -:102FE0002B3560E082E290E00E942B3560E085E0C6 -:102FF00090E00E942B3560E086E090E00E942B3547 -:103000006FEF87E090E00E942B3540E050E0BA017E -:1030100088E090E00E943D3560E08DE090E00E9405 -:103020002B3540E050E0BA0188E190E00E943D3548 -:1030300060E087E190E00E942B3540E050E0BA016B -:103040008CE190E00E943D3570E060E080E290E02D -:103050000E9449350E94A31780E00E9413100E942D -:103060002B1040E050E0BA018FE090E00E943D3527 -:1030700040E050E0BA0183E190E00C943D350F93BD -:103080001F93CF93DF9300D000D0CDB7DEB7609110 -:10309000CA027091CB028091CC029091CD020E9425 -:1030A0003208643671058105910588F10E94C00ED1 -:1030B000882379F10E944E086E5F7F4F8F4F9F4F9C -:1030C00069837A838B839C8380912D0190912E015B -:1030D0008B549D4F40912C0150E04530510510F02C -:1030E00044E050E0BE016F5F7F4F0E940E3584E0E8 -:1030F00090E00E940334892BD9F40E944E0860931B -:10310000CA027093CB028093CC029093CD0281E0EF -:1031100010C00E944E080091D7021091D802209151 -:10312000D9023091DA02600F711F821F931FC4CF42 -:1031300080E00F900F900F900F90DF91CF911F9133 -:103140000F910895BF92CF92DF92EF92FF920F936B -:103150001F93CF93DF93B82EEB01F42E69016881A2 -:1031600079818A819B810E943208643671058105CC -:10317000910510F4FF2019F1EB2C0B2C000CFF082B -:103180008B2D9AE08902F0011124EE5FFE4F8381BE -:1031900094818B549D4F428150E00417150708F429 -:1031A000A801B6010E940E35C7010E940334892B85 -:1031B00089F40E944E08688379838A839B8381E027 +:1010A0006091650370916603809167039091680376 +:1010B0002FBF0895209162033091630328173907E9 +:1010C00071F09093630380936203E0916003F09169 +:1010D0006103309721F00084F185E02D0994089593 +:1010E00020915E0330915F032817390771F09093C8 +:1010F0005F0380935E03E0916003F091610330979A +:1011000021F00680F781E02D099408952091510384 +:1011100036E0839FC0011124629F800D911D112430 +:10112000811522E0920714F090E080E086599B4FF1 +:1011300090936B0680936A060895FC01680F791FEF +:101140008FEF91E32191822728E030E087FF09C0EB +:10115000880F892721503109C9F7E617F70791F75A +:101160000895880FF7CFFA01811101C0FB0109949E +:1011700080916304982F9E7F61F4817082608093D8 +:10118000630480916604813A18F080EA80936604D3 +:1011900008958831B0F381708661F1CFAF92BF922C +:1011A000DF92EF92FF920F931F93CF93DF93082F5D +:1011B000162FE901E42FF0E0E750FB4F611110C05A +:1011C000E4915E2F4E2F4983E8835A83DF91CF91BC +:1011D0001F910F91FF90EF90DF90BF90AF90089517 +:1011E000E62EF12C4491D42EE42FF0E026E0829FED +:1011F000C00111242FEF30E0B9010E942832802F66 +:1012000090E0880F991F55E5569FD001579FB00D6C +:1012100011248A1B9B0B982F990F890F5901AE1827 +:10122000BF08AE9ED001AF9EB00DBE9EB00D112482 +:101230005B2F189F80011124012F11275901A01A3B +:10124000B10AAE9E8001AF9E100DBE9E100D1124FE +:101250005901A81AB108AE9CC001AF9C900DBE9C6C +:10126000900D1124892F9927281B390B2E9FC0011F +:101270002F9F900D3E9F900D1124E92F6230710534 +:10128000A1F050F46115710509F49DCF613071052D +:1012900081F0EB2F512F97CF6430710569F080F00A +:1012A0006630710509F48FCFF4CFE42F4B2F592FFF +:1012B0008ACFE42F412F87CFEB2F542F492F83CF95 +:1012C0004B2F5D2DE12F7FCF80E008957894089516 +:1012D000F894E82FE295EF70F0E031A1282F2F70FD +:1012E00081E090E001C0880F2A95EAF7982F909549 +:1012F000932391A392A1892B82A30C9466099091C8 +:10130000DB0292FF06C0282F28712830F9F4877F6E +:10131000846093FF06C0282F28712831F1F4877E5E +:1013200084612091DC0220FF06C0382F38713830EC +:10133000D9F4877F816021FF06C0282F28712831CA +:10134000D1F4877E816194FD877E0895282F2471D2 +:101350002430F9F68B7F8860DCCF282F247124316C +:1013600001F78B7E8861DDCF382F3171313019F76D +:101370008E7F8860E0CF282F2171213121F78E7E6A +:101380008861E1CFCF93DF93EC018238910581F141 +:10139000B0F58133910509F491C020F589329105AA +:1013A00009F485C08A9709F490C0C11521E5D207D8 +:1013B00008F0AAC0C11530E5D30708F0F2C0CF3B52 +:1013C000D10508F089C0C83AD10508F0DFC0C53A98 +:1013D000D10508F0D3C0C430D105F8F4C130D1052F +:1013E000E1F040C08533910509F45AC0C997E9F688 +:1013F0008091DB02837089F0C0EED0E00EC0833EA6 +:10140000910599F170F4803E910501F1823E9105BC +:1014100061F68091DB0282FD21C0CE01DF91CF9188 +:101420000895863E910561F1873E910571F1843EF4 +:10143000910509F0BACF8091DC0281FFEECF809157 +:10144000DB02C7EED0E084FD0DC0E7CF8091DB0268 +:1014500080FDF7C09091DC0290FFDFCFC3EED0E0BB +:1014600084FFDBCFD0E0C0E0D8CF8091DB0282FDEB +:10147000EBC09091DC0290FDBFCF84FFCECFF2CFC6 +:101480008091DB0283FDDDCFC8CF8091DB0283FD3D +:10149000DEC09091DC0291FFF0CFC4EED0E0BDCF72 +:1014A0008091DB0285FFB9CFC9E2D0E0B6CF809151 +:1014B000DB0285FFB2CFC5E3D0E0AFCF8091DB0286 +:1014C00086FFABCFCAE2D0E0A8CF8091DB0286FFD7 +:1014D000A4CFC1E3D0E0A1CFC11540E2D40760F4AE +:1014E000C11581E0D80708F098CFCE01815E91093F +:1014F000079708F492CFB6CFC11590E4D90708F446 +:10150000B1CFDF70D06A89CFC11524E5D20778F456 +:10151000C11533E5D30708F072C0C11542E5D40701 +:1015200008F05CC0DC2FCC27C16FD06A76CFC11524 +:101530008AE5D80778F4C11599E5D90708F073C092 +:10154000C11528E5D20708F48DCFDC2FCC27C06F5A +:10155000D06A63CFCE0190568115904208F082CFB9 +:101560008D2F8F710E947F0990E0982F8827882700 +:101570009F719C012C2BE901D0624FCFC55AD0E05E +:10158000CD53DE4FC881D0E0D06447CFC85AD0E0F9 +:10159000CC0FDD1FCA53DE4F0990D881C02DD46413 +:1015A0003CCFCE0164E0969587956A95E1F783700C +:1015B0002C2F26952695237040E2249F900111241C +:1015C000382B8C2F8370C1E0D0E002C0CC0FDD1F20 +:1015D0008A95E2F7C22BD32BDC681FCFCE01837034 +:1015E000992721E030E002C0220F331F8A95E2F7ED +:1015F000C695C69580E2C89FE0011124EBCFCE01CD +:101600008370992721E030E002C0220F331F8A95B2 +:10161000E2F7C695C69590E2C99FE0011124C22B5E +:10162000D32BDA68FACE8C2F8F700E947F0934E0BA +:10163000D695C7953A95E1F7CF709C2FEC01D0690C +:10164000ECCEC9E3D0E0E9CEC2EED0E0E6CEC6EE05 +:10165000D0E0E3CE0C944E0880916D0390919702F8 +:10166000892B90919602892B80933402E09160033C +:10167000F0916103309731F00280F381E02D84E333 +:1016800092E00994089580919502909164029813D4 +:1016900001C008958F5F8770FACF27E0929F800D79 +:1016A0001124982F977086958695869523E0829FC2 +:1016B000F0011124ED5BFD4F50E040E080E021910E +:1016C00030E0092E02C0369527950A94E2F7217082 +:1016D0003327042E01C0220F0A94EAF7822B4F5FB2 +:1016E0005F4F4330510559F7089527E0929F800DD1 +:1016F0001124982F977041E001C0440F9A95EAF7A2 +:1017000086958695869593E0899FF0011124ED5B7F +:10171000FD4F90E080E070E05191DF0111979B0157 +:10172000082E02C0369527950A94E2F7217021957C +:101730002527242325272C9301968330910561F7D3 +:10174000089590E080E00E94700890E080E00E94A0 +:101750005A0810929702109296020C942C0B8093C8 +:1017600098020C94A10B882341F0809590916D0311 +:10177000892380936D030C942C0B0895882339F0F2 +:1017800090916D03982B90936D030C942C0B0895FE +:101790008823B1F19CEF980F913A70F4E6E3F2E000 +:1017A0009191891303C0DF0111971C9242E0EC3341 +:1017B000F407B1F70C942C0B90E2980F983088F452 +:1017C000877021E030E0A90102C0440F551F8A95BF +:1017D000E2F7CA01809590916D03892380936D0390 +:1017E000E9CF9BE5980F933020F490E080E00C94D3 +:1017F0007008885A873120F490E080E00C945A08F1 +:1018000008950F931F93CF93C82F882309F469C0BD +:101810008CEF8C0F813AB0F506E312E08CE392E096 +:10182000F8012191C21701F122E0EC33F207C9F768 +:10183000EFEF80E0D8019D918D01C91781F0EF3F56 +:1018400019F4911101C0E82F8F5F863099F7EF3FAF +:1018500031F00E2E000CFF0BEC5CFD4FC283CF91DC +:101860001F910F910C942C0BE6E3F2E02191C2132F +:1018700003C0DF0111971C928E179F07B9F70E94D2 +:101880002C0BD6CF80E28C0F883068F4C77021E033 +:1018900030E001C0220FCA95EAF780916D03822BD8 +:1018A00080936D03DCCFEBE5EC0FE33050F4F0E018 +:1018B000ED53FE4F808190E0CF911F910F910C94DA +:1018C0007008C85AC73168F4EC2FF0E0EE0FFF1F24 +:1018D000EA53FE4F80819181CF911F910F910C941B +:1018E0005A08CF911F910F910895982F92959F704C +:1018F00011F0892F94E0282F2695269511F09E5FF0 +:10190000822F869509F09F5F892F0895CF93DF93EB +:10191000CDB7DEB762970FB6F894DEBF0FBECDBF6E +:1019200096E0EFE3F3E0DE01179601900D929A95B1 +:10193000E1F796E0FE013796DE011D9601900D92CB +:101940009A95E1F798858823E9F0962B9E8786E0A3 +:10195000FE013D96DE01119601900D928A95E1F708 +:1019600086E0FE013196AFE3B3E001900D928A95D7 +:10197000E1F762960FB6F894DEBF0FBECDBFDF91E0 +:10198000CF91089560959623E1CF8093690370937A +:101990006B0360936A0380917A038430F9F4809337 +:1019A000E9008FEF9091E800815095FD06C095ED1C +:1019B0009A95F1F700008111F5CF8091E80085FF3D +:1019C0000DC050E040E063E070E089E693E00E94E3 +:1019D000F4068091E8008E778093E8000895BC01BA +:1019E00084E00C94C50CBC0183E00C94C50C9C01F4 +:1019F00084E08093E9009FEF8091E800915085FD9D +:101A000006C085ED8A95F1F700009111F5CF809120 +:101A1000E80085FF0CC050E040E066E070E0C901DE +:101A20000E94F4068091E8008E778093E800089584 +:101A3000CF93DF93EC0181E08093E9008FEF9091E9 +:101A4000E800815095FD06C095ED9A95F1F70000EC +:101A50008111F5CF8091E80085FF14C050E040E08F +:101A600068E070E0CE010E94F4068091E8008E7775 +:101A70008093E80088E0FE01A0E7B3E001900D92BA +:101A80008A95E1F7DF91CF910895CF92DF92EF929F +:101A90000F931F93CF93DF93CDB7DEB7CE5DD10900 +:101AA0000FB6F894DEBF0FBECDBF60917401809178 +:101AB000630480FF4CC0EEEFF5E09E012F5F3F4FC7 +:101AC0008E0101521F4FC901A4914A2F50E0DA0143 +:101AD000AA0FBB1FA40FB51FAB57BC4FCD90DD9015 +:101AE000EC90D901CD92DD92ED929D013196A01737 +:101AF000B10751F72091730143E0249F800D911DA0 +:101B00001124539A2BB1277F3BB138605FB7F8940B +:101B1000FC01649FE00DF11D1124BF01861797079A +:101B200049F55FBFEFE5F4E03197F1F700C0000041 +:101B3000C252DF4F0FB6F894DEBF0FBECDBFDF91AC +:101B4000CF911F910F91EF90DF90CF9008958091EA +:101B500075019091760123E0829FF0011124EB57EB +:101B6000FC4F891708F0A7CF1182108212828F5F75 +:101B70003396F7CFDC014D91CD01E8E03BB9000091 +:101B800000C047FF2BB9440F000000C000C000C0D8 +:101B90002BB900C0EA9591F7C1CF0F931F93CF9354 +:101BA000DF9300D00F92CDB7DEB7182F062F8091AC +:101BB000630480FF22C09E012F5F3F4F40EA64E62E +:101BC0008BE20E94CE081017C0F48B8199812A8184 +:101BD00033E0139FF0011124EB57FC4F21839083D6 +:101BE00082831F5F33960113F9CF0E94450D8FE961 +:101BF0009FE00197F1F700C000000F900F900F9049 +:101C0000DF91CF911F910F910895CF93DF93C82F4C +:101C1000D82FD17081FF04C067E084E00E94CD0D11 +:101C2000D11104C06FE18CE10E94CD0DC2FF06C04E +:101C300063E180E1DF91CF910C94CD0DDF91CF91E5 +:101C40000895E3E6F4E080818E7F8083EEE4F3E0A4 +:101C50008281816082832FEF80E792E02150804073 +:101C60009040E1F700C000000C94450D9F92AF92A8 +:101C7000BF92CF92DF92EF92FF920F931F93CF9379 +:101C8000DF937C015B016A018091D60201E010E0E4 +:101C90008A3010F40AE010E0C1E0D0E0F894B50119 +:101CA000C701F6010995982E0E946609911004C09B +:101CB00021960C171D076CF4892DDF91CF911F9190 +:101CC0000F91FF90EF90DF90CF90BF90AF909F90DB +:101CD0000895CC9F9001CD9F300D300D112490E0E0 +:101CE00080E045E34A95F1F70000019682179307DB +:101CF000C1F7D4CF8091A702811110C08091D80084 +:101D000080618093D8008AE18A95F1F700C08091C4 +:101D1000D90080FF0AC081E08093A70281E0909102 +:101D2000A702913009F080E0089582E08093A70235 +:101D30000E94A40610927A03F1CF0E947A0E8823A3 +:101D400051F0E0916003F0916103309721F0019030 +:101D5000F081E02D099480E008951F93CF93DF93E5 +:101D6000182FEB010E94010C8FE99FE00197F1F71A +:101D700000C000002197C1F7812FDF91CF911F9103 +:101D80000C94C80B0F931F93CF93DF9300D000D018 +:101D9000CDB7DEB789836A834B831C8204E610E0EB +:101DA00024E030E0AE014F5F5F4F60E084E10E94CD +:101DB000862F0F900F900F900F90DF91CF911F9172 +:101DC0000F91089580917001882329F047E669E911 +:101DD0008BE20C94C20E80913D0247EC6BE18823AC +:101DE000C1F341E265EA89EDF4CFCF92DF92EF9241 +:101DF000FF920F931F93CF93DF936C017B0164E6F7 +:101E000070E088E70E946E2EEC0197FD12C010E092 +:101E100000E0F601E00FF11F849164E670E00E949B +:101E2000E82EEC01892B29F40F5F1F4F0E151F05BB +:101E300081F70E940230CE01DF91CF911F910F9167 +:101E4000FF90EF90DF90CF90089580915C03909188 +:101E50005D03911103C091E089270895882369F0FB +:101E600062E070E08AE89BE00E94F50E892B19F091 +:101E700080915C03089510925C0380915C03EBCF2A +:101E8000CF93C0915C0380915D038823D1F00E94C1 +:101E90004E086058774C8E4F9F4F60935803709355 +:101EA000590380935A0390935B03C11108C062E009 +:101EB00070E088E89BE00E94F50E892B29F0C09124 +:101EC0005C038C2FCF91089581E080935C03F7CF62 +:101ED000CF93DF93C3EED2E060E0CE010E949C324C +:101EE0002196C11584E0D807B9F7DF91CF91089505 +:101EF0006F927F928F929F92AF92BF92CF92DF921A +:101F0000EF92FF920F931F93CF93DF938CE8C82E2D +:101F10008BE0D82E91ECE92EF12CE701CC58D109B9 +:101F200036011BC0F50185909490692DC8010E946F +:101F30009C32682DC80101960E949C3282E0A80E56 +:101F4000B11C0E5F1F4FC017D10761F78EE0680EFE +:101F5000711C2E96CE15DF0529F08E010E50110949 +:101F60005301E0CF7E018CE8E80EF11C8CE8C80E2E +:101F7000D11C8DE7E81683E0F80679F6DF91CF9162 +:101F80001F910F91FF90EF90DF90CF90BF90AF9097 +:101F90009F908F907F906F900895CF93C82F6FEF91 +:101FA000811162E283E290E00E949C326FEFC111E6 +:101FB00064E084E290E00E949C326FEFC11163E123 +:101FC00085E290E0CF910C949C3280E00E94CD0F8E +:101FD00060E086E290E00E949C320E94780F0E94AE +:101FE000680F81E00C94CD0F0F931F93CF93DF9375 +:101FF000C42FD0E0CC0FDD1F2EE0629FC00DD11D9D +:1020000011243CE8839FC00DD11D1124CE01879679 +:102010000E948832082F10E0102F0027CE018896EA +:102020000E9488329801282BC901DF91CF911F911E +:102030000F910895462F853038F47A3028F46730B0 +:1020400018F4672F0C94F40F90E080E00895CF927D +:10205000DF92FF920F931F93CF93DF936C01009158 +:10206000840380919802082BC7E0D0E010E0FC2E9A +:10207000C8010C2E02C0959587950A94E2F780FD61 +:102080000CC02197A0F7F12C8F2DDF91CF911F91DC +:102090000F91FF90DF90CF900895B6018C2F0E9492 +:1020A0001A100E94C209019761F3EECFCF93DF931C +:1020B000EC010E942710BE010E941A10DF91CF91FF +:1020C0000C94C209FC01808191810E945610292F35 +:1020D0002F7092959F7092509E3078F4E92FF0E027 +:1020E000ED5FFB4C0C945C32803F19F020F4883E8D +:1020F00020F481E00895843FE1F380E00895883E74 +:10210000C0F3813FD1F7F5CF822F869586958695CE +:10211000089583E290E00E948832823289F484E25A +:1021200090E00E948832843059F485E290E00E9469 +:10213000883291E0833109F090E0892F8170089511 +:1021400080E0FCCF1F93CF93DF93CDB7DEB76897C6 +:102150000FB6F894DEBF0FBECDBF40913F03509144 +:102160004003609141037091420380914303909139 +:1021700044030E94CB1A20933F03309340036093A3 +:10218000430370934403642F152F1195109341035B +:102190004093420386E0EFE3F3E0DE0117960190FF +:1021A0000D928A95E1F786E0FE013796DE011196E1 +:1021B00001900D928A95E1F79B858C8520917001A5 +:1021C0002223B1F0772761950CF47095072E000C4F +:1021D000880B990B0E9408332AE939E949E95EE343 +:1021E0000E946C330E94D032962F812F60E010E065 +:1021F0001B836C839D838E8386E0FE013196DE0116 +:102200001D9601900D928A95E1F786E0FE013D96BC +:10221000DE01539601900D928A95E1F786E0FE016A +:102220007396DE01119601900D928A95E1F786E092 +:10223000FE013196AFE3B3E001900D928A95E1F78C +:1022400086E0EFE3F3E0DE01179601900D928A95A8 +:10225000E1F786E0E9E3F3E0DE01119601900D92EB +:102260008A95E1F746E050E0BE016F5F7F4FCE01F7 +:1022700007960E947232892B79F0E0916003F09109 +:102280006103309749F082E080933F030480F58139 +:10229000E02D8FE393E009951092410310924203E1 +:1022A000109243031092440386E0EFE3F3E0A9E3C6 +:1022B000B3E001900D928A95E1F768960FB6F89415 +:1022C000DEBF0FBECDBFDF91CF911F910895E6E332 +:1022D000F2E086E0DF011D928A95E9F70C94A10BEC +:1022E0001F93CF93DF93CDB7DEB7AA970FB6F894BD +:1022F000DEBF0FBECDBF8CE793E02091F100DC0183 +:102300002D93CD01B3E084389B07B9F780917D030D +:10231000833009F472C0B8F4813009F449C08230C6 +:1023200009F4B5C08091E80083FF8DC280917C03E1 +:1023300090917D039A3008F086C2E92FF0E0EF5EBD +:10234000FB4C0C945C328A3009F490C08B3009F459 +:1023500071C0893039F780917C03813219F78091FF +:10236000800390918103009711F00297D9F6809134 +:10237000E800877F8093E8008091E80082FF38C002 +:102380009091F3008091F200029731F48091F10076 +:10239000813011F0863021F48091F10080936F0339 +:1023A0008091E8008B778093E8000E941E07BACFE7 +:1023B00080917C03813A09F0B5CF8091E800877F56 +:1023C0008093E8008091800390918103892B61F4D0 +:1023D00068E080E793E070E00E94D0078091E80019 +:1023E0008B778093E8009ECF60E090E080E0F3CFB1 +:1023F00080917A038111C0CF95CF80917C03813A7F +:1024000009F090CF8091800390918103892B09F08E +:1024100089CF8091E800877F8093E8008091E80071 +:1024200080FFFCCF809178018093F1008091E800DB +:102430008E77B9CF80917C03813209F073CF809180 +:10244000800390918103892B09F06CCF8091E80083 +:10245000877F8093E8000E941E0780917E0380930F +:10246000780110926D030E9467115CCF80917C030C +:10247000813209F057CF8091E800877F8093E80090 +:102480000E941E0780917F0380936E034BCF809143 +:102490007C03813A09F046CF8091E800877F8093E2 +:1024A000E8008091E80080FFFCCF80916E03BCCFF4 +:1024B000803899F0823809F0C6C1809180038F700E +:1024C000873008F0C0C18093E9008091EB0085FB64 +:1024D000882780F91092E90006C0809178039091D6 +:1024E0007903911182609091E800977F9093E800C2 +:1024F0008093F1001092F1008091E8008E779FC1E7 +:10250000882309F48DC1823009F09DC180917E033A +:10251000811190C1809180038F702FEF280F26309A +:1025200008F091C18093E9002091EB0020FF82C167 +:10253000933031F48091EB0080628093EB007AC19C +:102540009091EB0090619093EB0021E030E001C0AE +:10255000220F8A95EAF72093EA001092EA00809110 +:10256000EB008860EACF81116EC110917E031F7766 +:102570008091E3008078812B8093E3008091E800D4 +:10258000877F8093E8000E941E078091E80080FF0B +:10259000FCCF8091E30080688093E30082E011111A +:1025A00083E080937A034FC18058823008F04BC19A +:1025B00020917E0330917F032C3DE3E03E07A1F59F +:1025C00083E08A838AE289834FB7F894DE01139609 +:1025D00020E03EE051E2E32FF0E050935700E49119 +:1025E00020FF03C0E295EF703F5FEF708E2F90E009 +:1025F000EA30C0F0C7968D939D932F5F243159F731 +:102600004FBF8091E800877F8093E8006AE270E026 +:10261000CE0101960E94D0078091E8008B778093CD +:10262000E80011C1C096E7CF8091800390918103AB +:10263000432F55274330510509F44AC078F54130FE +:10264000510509F47AC08BE590E0ECE8FBE04230FC +:10265000510509F0F8C02091E800277F2093E80099 +:1026600020918203309183038217930708F49C0121 +:1026700040E02115310509F065C0411163C080912A +:10268000E80082FDC9CF80917A03882329F2853042 +:1026900019F28091E80083FFF2CFBECF413251059D +:1026A00009F43CC04232510509F0CDC08330910598 +:1026B00008F0C9C0FC01EE0FFF1FEB5DFD4F01905C +:1026C000F081E02D8E5D9D4FDC018C9190E01AC071 +:1026D000332721303105D1F02115310561F0223049 +:1026E000310509F0B0C0E9EFFBE0E4918E2F90E0F6 +:1026F000E9EFFBE007C0EBE2FCE0E4918E2F90E015 +:10270000EBE2FCE0009709F49EC0A5CFE9E1FCE014 +:10271000E4918E2F90E0E9E1FCE0F4CF8330910565 +:1027200008F091C0880F991FFC01E55DFD4F0190F5 +:10273000F081E02D89E090E08ECF82E190E0E7EE3D +:10274000FBE089CF80917A03882309F465CF853037 +:1027500009F462CF8091E80083FD5ECF8091E800AC +:1027600082FD8DCF8091E80080FF83CF9091F300B0 +:102770008091F2002115310519F08830910550F053 +:1027800041E0089709F040E08091E8008E7780935F +:10279000E8006FCF44914093F10031962150310908 +:1027A0000196E8CF803809F04EC08091E800877F1D +:1027B0008093E80080917B038093F1009DCE81118E +:1027C00042C010917E031230F0F58091E800877FBF +:1027D0008093E80010937B030E941E07112311F0E1 +:1027E00084E005C08091E30087FDFACF81E080930B +:1027F0007A0342E061EC81E00E943D0742E261EC35 +:1028000084E00E943D0742E261EC82E00E943D07C5 +:1028100042E260EC83E00E943D0780917A0313C09E +:1028200080917E03813079F481E0933009F080E07B +:10283000809379031092E9008091E800877F80936C +:10284000E8000E941E078091E80083FF0AC0809183 +:10285000E800877F8093E8008091EB00806280939E +:10286000EB00AA960FB6F894DEBF0FBECDBFDF9186 +:10287000CF911F9108951F93CF93DF93162FC0918F +:102880006A06D0916B068A30D1F420915103CE01B3 +:102890008A569440622F70E00E942832281B822FB3 +:1028A00066E00E943C32C82FC15020F4DF91CF91E6 +:1028B0001F91089560E080E20E943B14F5CF8D30B7 +:1028C000E9F4CA56D44020915103622F70E0CE0142 +:1028D0000E942832281B822F9E01280F311D2115AE +:1028E000324018F080E0D0E0C0E0C80FD11DC659DA +:1028F000DB4FD0936B06C0936A06D8CF96E0FE01FB +:10290000A2E5B3E001900D929A95E1F7803E90F137 +:1029100086E0FE0111928A95E9F7C0916A06D0918E +:102920006B06111133C046E050E0BE0182E593E032 +:102930000E9472329E012A563440892B91F52A5FFB +:102940003F4F40915103642F70E0C9010E9428322B +:10295000481B463010F4240F311D211572E0370753 +:1029600010F030E020E026593B4F30936B06209367 +:102970006A069CCFF6E08F9FB0011124685B794F07 +:1029800046E050E0CE010E946932C7CF9E012A5F27 +:102990003F4FFE012E173F0731F2808180958193D2 +:1029A000F9CFC90145E0969587954A95E1F741E051 +:1029B00050E0BA0102C0660F771F8A95E2F7CB019B +:1029C0006091680470916904862B972BB9016B5F45 +:1029D0007F4FE5E076956795EA95E1F702C0440FF1 +:1029E000551F6A95E2F7842B952B90936904809389 +:1029F0006804A5CFFF920F931F93CF93DF93EC0151 +:102A0000F62EFC0101900020E9F78F010150110919 +:102A1000C017D10730F0DF91CF911F910F91FF9038 +:102A200008956F2D89910E943B14F2CFCF92DF92CF +:102A3000EF92FF926B017C010E94B808B701A601DA +:102A400088E090E0FF90EF90DF90CF900C94AE3252 +:102A5000AF92BF92CF92DF92EF92FF920F931F93AC +:102A6000CF93DF9300D00F92CDB7DEB7082FF62EAD +:102A7000142FE22E8091630480FF4FC0E82FE6956B +:102A8000AE2FB0E0AA5EBD4F9C9190934E038E7F17 +:102A9000823009F056C0413A08F040EA9E012F5FAB +:102AA0003F4F6F2D802F0E94CE088091630480FFDE +:102AB00011C02B8139814A818091750190917601F5 +:102AC00053E0859FF0011124EB57FC4F891798F1D3 +:102AD0000E94450D80916404801308C080916504B4 +:102AE0008F1104C080916604811729F080915003F2 +:102AF00082608093500300936404F0926504109305 +:102B00006604EE2051F0609163047091640480913A +:102B10006504909166040E9416150F900F900F9017 +:102B2000DF91CF911F910F91FF90EF90DF90CF90A9 +:102B3000BF90AF9008954183308322838F5F339697 +:102B4000C5CF923039F6E2508E2F8170D82EE6959F +:102B5000F0E0E750FA4FA590B490C12CBB246091EF +:102B60007701C61608F0B4CF2C2D30E0A29EC0012C +:102B7000A39E900DB29E900D112470E00E94283209 +:102B8000802FD11016C0860F40917501420F532F30 +:102B9000511D9A01220F331F240F351F2B573C4F15 +:102BA000412F113A08F040EA6F2D0E94CE08C394DD +:102BB000D6CF861BE9CF20E00C942815CF93C82FE1 +:102BC0000E94750C823069F138F48823A9F08130B5 +:102BD00011F18C2FCF910895833039F18430C9F7EA +:102BE00040E56FEF8AED0E94DB158091000188239C +:102BF00081F3109270010CC040E56AEA83E70E94FD +:102C0000DB15809100018823A1F381E0809370019E +:102C10000E94E20EDECF40E56FEF8CEF0E94DB15E5 +:102C2000D8CF40E56FEF80E5F9CF40E56FEF80EA60 +:102C3000F5CF0E94DE15809384030C94A10B809144 +:102C40008403982F9670963019F488600C941916A6 +:102C5000877FFCCF21E030E001C0220F8A95EAF7A0 +:102C600020958091840382230C94191621E030E092 +:102C700001C0220F8A95EAF780918403822B0C947D +:102C80001916E3E6F4E0438121E1421B08F440E039 +:102C900021E0628181810C942815E3E6F4E0438110 +:102CA00021E1420F08F44FEF21E0628181810C9411 +:102CB0002815E3E6F4E0628121E1621B08F460E09C +:102CC00021E0438181810C942815E3E6F4E06281E0 +:102CD00021E1620F08F46FEF21E0438181810C94C0 +:102CE0002815E3E6F4E0818121E043816281885088 +:102CF0000C942815E3E6F4E0818121E043816281B0 +:102D0000885F0C94281580916704882319F08150FE +:102D100080936704609163047091640480916504FA +:102D2000909166040C94161580916704833018F412 +:102D30008F5F809367046091630470916404809155 +:102D40006504909166040C9416159091630490FFAD +:102D500026C0917081111CC0926090936304809191 +:102D60005003816080935003662351F060916304A7 +:102D70007091640480916504909166040E94161518 +:102D80004091660460916504809164040C94DB15A5 +:102D90008C3010F09661E1CF880F982BDECF08952C +:102DA000809163048695815009F48BE061E00C9476 +:102DB000A5168091630486958F5F8C3008F081E0C2 +:102DC00061E00C94A5168091630480FF07C086958E +:102DD00082588F77893010F40C94D91661E082E024 +:102DE0000C94A516E3E6F4E083E0808311828FEF74 +:102DF000828380EA83831482AEE4B3E012968C91DE +:102E00001297836012968C93608171818281938185 +:102E10000C9416150E94682E40E060E080E00C944F +:102E2000C20E69EE7EEF90E080E00E94BA3260E070 +:102E300082E090E00E949C3260E083E090E00E949B +:102E40009C321092980260E084E090E00E949C32F4 +:102E500060E082E290E00E949C3260E085E090E0D9 +:102E60000E949C3260E086E090E00E949C326FEF0E +:102E700087E090E00E949C3240E050E0BA0188E098 +:102E800090E00E94AE3260E08DE090E00E949C32C3 +:102E900040E050E0BA0188E190E00E94AE3260E08C +:102EA00087E190E00E949C3240E050E0BA018CE162 +:102EB00090E00E94AE3270E060E080E290E00E941C +:102EC000BA3240E050E0BA0188E190E00E94AE32B0 +:102ED00080E00E94CD0F0E94E50F40E050E0BA0173 +:102EE0008FE090E00E94AE3240E050E0BA0183E112 +:102EF00090E00C94AE320F931F93CF93DF9300D0EA +:102F000000D0CDB7DEB76091CA027091CB0280913C +:102F1000CC029091CD020E94320864367105810581 +:102F2000910588F10E947A0E882379F10E944E085B +:102F30006E5F7F4F8F4F9F4F69837A838B839C8314 +:102F400080912D0190912E018B549D4F40912C0129 +:102F500050E04530510510F044E050E0BE016F5F95 +:102F60007F4F0E947F3284E090E00E947431892B71 +:102F7000D9F40E944E086093CA027093CB028093EA +:102F8000CC029093CD0281E010C00E944E080091C7 +:102F9000D7021091D8022091D9023091DA02600F45 +:102FA000711F821F931FC4CF80E00F900F900F906E +:102FB0000F90DF91CF911F910F910895BF92CF9203 +:102FC000DF92EF92FF920F931F93CF93DF93B82E70 +:102FD000EB01F42E6901688179818A819B810E94CD +:102FE0003208643671058105910510F4FF2019F14E +:102FF000EB2C0B2C000CFF088B2D9AE08902F001C2 +:103000001124EE5FFE4F838194818B549D4F42814A +:1030100050E00417150708F4A801B6010E947F329A +:10302000C7010E947431892B89F40E944E0868837D +:1030300079838A839B8381E0DF91CF911F910F91E8 +:10304000FF90EF90DF90CF90BF90089580E0F4CF95 +:103050000F931F93CF93DF930F92CDB7DEB780917D +:103060005C0389832091C90290E041E0281719068A +:1030700009F440E001E010E09E012F5F3F4F62ED58 +:1030800072E086E00E94DE170F90DF91CF911F91D2 +:103090000F9108950F931F93CF93DF93CDB7DEB7B2 +:1030A00028970FB6F894DEBF0FBECDBF85E0E3E6EC +:1030B000F4E0DE01119601900D928A95E1F780917E +:1030C0004E0390914F03A09150038E839F83A88756 +:1030D00041E08885811101C040E008E010E09E01D8 +:1030E0002F5F3F4F6EEC72E085E00E94DE1781118A +:1030F0001092500328960FB6F894DEBF0FBECDBFD6 +:10310000DF91CF911F910F9108956F927F928F92CF +:103110009F92AF92BF92CF92DF92EF92FF920F9366 +:103120001F93CF93DF930F92CDB7DEB7862E5A0150 +:103130006901682E880F7708C3010E947431892BBA +:1031400009F07BC08AE0869DF001879DF00D112477 +:10315000EE5FFE4F458150E04115510511F041E011 +:1031600050E08AE0869DF001879DF00D1124EE5F0E +:10317000FE4F668177816B547D4FCE0101960E9490 +:103180007F32F50160817181828193810E943208D2 +:10319000643671058105910540F4B701C8010E94AC +:1031A0009D089981891709F44FC0082C000C9908D3 +:1031B000C4010E947431892B91F0B12C8B2D0F909A :1031C000DF91CF911F910F91FF90EF90DF90CF9003 -:1031D000BF90089580E0F4CF0F931F93CF93DF93B8 -:1031E0000F92CDB7DEB780915E0389832091C9022B -:1031F00090E041E02817190609F440E001E010E0F2 -:103200009E012F5F3F4F62ED72E086E00E94A218A0 -:103210000F90DF91CF911F910F9108950F931F93FE -:10322000CF93DF93CDB7DEB728970FB6F894DEBF04 -:103230000FBECDBF85E0E9E6F4E0DE011196019016 -:103240000D928A95E1F780914E0390914F03A091E2 -:1032500050038E839F83A88741E08885811101C038 -:1032600040E008E010E09E012F5F3F4F6EEC72E0FF -:1032700085E00E94A21881111092500328960FB683 -:10328000F894DEBF0FBECDBFDF91CF911F910F919C -:1032900008956F927F928F929F92AF92BF92CF923A -:1032A000DF92EF92FF920F931F93CF93DF930F92D2 -:1032B000CDB7DEB7862E5A016901682E880F7708D0 -:1032C000C3010E940334892B09F07BC08AE0869DEC -:1032D000F001879DF00D1124EE5FFE4F458150E017 -:1032E0004115510511F041E050E08AE0869DF00162 -:1032F000879DF00D1124EE5FFE4F668177816B5440 -:103300007D4FCE0101960E940E35F50160817181DD -:10331000828193810E94320864367105810591058E -:1033200040F4B701C8010E94E3089981891709F4A4 -:103330004FC0082C000C9908C4010E940334892B4B -:1033400091F0B12C8B2D0F90DF91CF911F910F91A8 -:10335000FF90EF90DF90CF90BF90AF909F908F90B5 -:103360007F906F9008958AE0889DF001899DF00D0F -:103370001124EE5FFE4F458150E0E416F50608F497 -:10338000A7018AE0889DF001899DF00D1124EE5F70 -:10339000FE4F668177816B547D4FC6010E940E35CA -:1033A000B701C8010E94E30899818913CACF0E941E -:1033B0004E08F5016083718382839383BB24B394A9 -:1033C000C1CFB12CA701B801C6010E940E35BACFFA -:1033D000BB24B394F7CFCF92DF92EF92FF920F937B -:1033E0001F93CF93DF9300D000D00F92CDB7DEB7FD -:1033F0006B0185E0E82EF12C06EB12E09E012F5FB9 -:103400003F4F4DEA52E061E080E00E944919882375 -:1034100049F095E0FE013196A8EAB2E001900D92E4 -:103420009A95E1F795E0E8EAF2E0D60101900D9275 -:103430009A95E1F70F900F900F900F900F90DF91FA -:10344000CF911F910F91FF90EF90DF90CF90089553 -:1034500090E080E00E942535893E9E4F11F40C9447 -:10346000CF1080E008951F920F920FB60F92112493 -:103470002F933F934F935F936F937F938F939F937C -:10348000AF93BF93CF93DF93EF93FF93D091E90076 -:10349000DF708091EC00C82FC17080FDC0E81092F1 -:1034A000E9008091F000877F8093F00078940E947B -:1034B000B7111092E9008091F00088608093F000CD -:1034C000CD2BCF70C093E900FF91EF91DF91CF91A9 -:1034D000BF91AF919F918F917F916F915F914F912C -:1034E0003F912F910F900FBE0F901F9018951F9234 -:1034F0000F920FB60F9211242F933F934F935F9328 -:103500006F937F938F939F93AF93BF93EF93FF93AB -:103510008091E10082FF09C08091E20082FF05C036 -:103520008091E1008B7F8093E1008091DA0080FF41 -:1035300024C08091D80080FF20C08091DA008E7F67 -:103540008093DA008091D90080FF9DC080E189BD21 -:1035500082E189BD09B400FEFDCF81E08093800344 -:1035600080917203811109C00E94A4060E946F0716 -:103570008091E20084608093E2008091E10080FF0E -:1035800017C08091E20080FF13C08091E2008E7F1F -:103590008093E2008091E20080618093E20080915C -:1035A000D80080628093D80019BC85E080938003A6 -:1035B0008091E10084FF2BC08091E20084FF27C04E -:1035C00080E189BD82E189BD89B5982F917080FF26 -:1035D000FBCF8091D8008F7D8093D8008091E1004F -:1035E0008F7E8093E1008091E2008F7E8093E200E5 -:1035F0008091E20081608093E200809181038823C2 -:1036000009F447C084E08093800380918003809117 -:10361000E10083FF27C08091E20083FF23C08091F7 -:10362000E100877F8093E10082E080938003109225 -:1036300081038091E1008E7F8093E1008091E20020 -:103640008E7F8093E2008091E20080618093E200AF -:1036500042E060E080E00E943D078091F0008860D9 -:103660008093F000FF91EF91BF91AF919F918F9167 -:103670007F916F915F914F913F912F910F900FBE6E -:103680000F901F90189519BC10928003109272032E -:1036900074CF8091E30087FD93E090938003B5CFD2 -:1036A00078941F921FB61F9211248F939F93AF930C -:1036B000BF9380916B0390916C03A0916D03B091C7 -:1036C0006E030196A11DB11D80936B0390936C0353 -:1036D000A0936D03B0936E03BF91AF919F918F91B3 -:1036E0001F901FBE1F9018959C014FB7F8948091B2 -:1036F0006B0390916C03A0916D03B0916E034FBF6B -:10370000821B930B08952FB7F89480916B039091CF -:103710006C03A0916D03B0916E032FBF0895AF921B -:10372000BF92DF92EF92FF920F931F93CF93DF939D -:10373000CDB7DEB761970FB6F894DEBF0FBECDBF31 -:103740004C87888B998BE52ED62EF72E5E0127E0CD -:10375000A20EB11C85E0F50111928A95E9F78091DE -:103760004D038A3008F095C080914B0390914C0333 -:103770000E94741B089708F48CC004E610E025E052 -:1037800030E0A50164E084E10E944232892B09F017 -:10379000DEC010924D038B8587FDD1C0E894E0F820 -:1037A0008091490390914A03009709F0C2C08F812C -:1037B0009885891708F091C0981B892F41E02091C6 -:1037C000710130917201889FC001112455E0589F0A -:1037D000F001599FF00D1124E29FB001E39F700D9D -:1037E000F29F700D1124660F672F661F770B71957E -:1037F000442319F071956195710980914703909167 -:103800004803680F791F89859A85891708F068C071 -:10381000981B892F41E0889FC001112455E0589FD3 -:10382000F001599FF00D1124E29FC001E39F900D1C -:10383000F29F900D1124880F892F881F990B919565 -:10384000442319F091958195910920914503309178 -:103850004603820F931F603871050CF444C06F5704 -:10386000710970934803609347033FE7D32E803874 -:1038700091050CF44BC08F579109909346038093A8 -:1038800045039FE7F92E0E94831B90934C0380937E -:103890004B03ED86DE86FF8686E0FE013C96DE0168 -:1038A000119601900D928A95E1F729813A814B8119 -:1038B0005C816D817E8180E090E061960FB6F89426 -:1038C000DEBF0FBECDBFDF91CF911F910F91FF9053 -:1038D000EF90DF90BF90AF900895891B40E06FCFCD -:1038E000891B40E098CF6138FFEF7F074CF46158A7 -:1038F0007F4F709348036093470321E8D22EB7CFE0 -:10390000D62E1092480310924703B1CF81382FEF83 -:1039100092074CF481589F4F909346038093450340 -:1039200081E8F82EB0CFF82E10924603109245038E -:10393000AACF019790934A0380934903A4CF689438 -:10394000E0F884E00E94691584E190E0F3CF809173 -:103950004D038F5F80934D0396CF5F926F927F925E -:103960008F929F92AF92BF92CF92DF92EF92FF928F -:103970000F931F93CF93DF9300D000D00F92CDB75A -:10398000DEB77C01FC0183819481892B31F0808139 -:10399000918189238F3F09F0DDC60F900F900F9022 -:1039A0000F900F90DF91CF911F910F91FF90EF90AB -:1039B000DF90CF90BF90AF909F908F907F906F904F -:1039C0005F9008950E946D10182F682F89819A8149 -:1039D0000E94BB0B69817A81812F0E9460108C014B -:1039E000F7018281882361F0F801E65EFC45ED3045 -:1039F000F10530F4E655F94C0C94EB340E94C417F1 -:103A0000D0906003D0FE1CC08D2D86958370F70189 -:103A10009281992309F460C1823090F4B701C80102 -:103A20000E948608882361F0D694D694D69480911B -:103A3000610383708295880F807E8D290E946915AD -:103A4000F7018281882309F47AC6C80182519F4513 -:103A5000409708F036C68FEF93E00E941735025169 -:103A600093EEA92E92E0B92E811197CF011138C1A2 -:103A70001C821B82662463948AE0582E85010F5FA6 -:103A80001F4FC5010E94173589831A82882309F4C4 -:103A900084CF9FEF980F933008F031C18A836982F9 -:103AA00032E0A30EB11CC8010E9417358B83882316 -:103AB00009F473CF8E010F5F1F4FF801208122237D -:103AC000E9F2213009F055C191818281913009F0EC -:103AD00018C10E5F1F4F6AE070E0893311F460E592 -:103AE00070E00E94F30E13C10E94B51789CF809138 -:103AF000600380FF0DC00E94B51760916003709154 -:103B0000610380916203909163030E94781778CFDC -:103B10000E94C417F2CF0E94A31772CF9091600346 -:103B2000892F86958F5F8370880F997F892B80936B -:103B30006003982F9670963001F7897F8093600319 -:103B4000DCCF90916103892F8B7F92FF84608093FB -:103B50006103D3CF80916003982F969596959695A3 -:103B60008091610383708295880F807E892B8C37CA -:103B700098F48F5F282F220F220F220F909160035D -:103B80009770922B909360038295869583709091A5 -:103B900061039C7F892BDBCF81E0ECCF80916003B8 -:103BA000982F96959695969580916103837082954E -:103BB000880F807E892B11F08150DCCF8BE7DACF24 -:103BC00030916103932F9695969596952091620377 -:103BD000822F83708295880F807E892B90E00196DA -:103BE000482F440F440F440F3770342B3093610338 -:103BF00035E0969587953A95E1F783702C7F822B77 -:103C0000809362037ACF30916103932F96959695B6 -:103C1000969520916203822F83708295880F807E13 -:103C2000892B8150990BDCCF8091620382FF12C0F7 -:103C30008B7F809362036091600370916103809138 -:103C40006203909163030E94781760E081E00E9414 -:103C50005D15D6CE8460809362036091600370919D -:103C6000610380916203909163030E94781760E082 -:103C70008CE00E945D1564E182E00E945D1565E0C4 -:103C800081E00E945D1561E08CE0E1CF80916203EC -:103C9000982F969596959695809163038295880FB7 -:103CA000807E892B883720F4865F0E947E17A8CEFD -:103CB00088E7FBCF80916203982F9695969596950D -:103CC000809163038295880F807E892B843110F068 -:103CD0008A50EBCF84E1E9CF882309F4B1CE9ECEA0 -:103CE000A114F4E0BF0609F458CEC5010E941735AF -:103CF000811101C001502FEFA21AB20AB7CE5801AC -:103D0000D9CE923039F40E5F1F4F0E94470C0F5FDF -:103D10001F4FD3CE933029F40E5F1F4F0E940E0C1D -:103D2000F6CF943019F00F5F1F4FF1CF0E5F1F4F8A -:103D300030E020E0B8016F5F7F4FF8014181805390 -:103D4000990B8A30910550F02150310900F38FE929 -:103D50009FE00197F1F700C00000F6CF529EF001FE -:103D6000539EF00D11249C012E0F3F1F842F8B01B9 -:103D7000E1CFE22FF0E0E754FE4F7490822F86955A -:103D80008695869590E0FC01E755FE4FE4902770FC -:103D9000F12C022E02C0F594E7940A94E2F7E1E0D8 -:103DA000EE22FF24FC01E756FE4FC490D12C022ED8 -:103DB00002C0D594C7940A94E2F7F1E0CF22DD2443 -:103DC000FC01E757FE4F8490912C02C09594879494 -:103DD0002A95E2F721E082229924E114F10419F0F6 -:103DE00081EE0E94470CC114D10419F086EE0E94A6 -:103DF000470C39E36AE070E0731202C060E570E0DE -:103E0000872D0E94F30ECD2819F086EE0E940E0C2D -:103E1000EF2819F081EE0E940E0C892809F477CF63 -:103E20006AE070E08CE25DCE81E00E94A41603C0DF -:103E300081E00E9498160F900F900F900F900F90B6 -:103E4000DF91CF911F910F91FF90EF90DF90CF9076 -:103E5000BF90AF909F908F907F906F905F900C94E9 -:103E60008D1682E0E2CF003E110509F457C008F03C -:103E70004DC00C32110509F487C1F70192819111EF -:103E800086C28091730382720A3CFCE51F0709F425 -:103E90005EC208F0B4C1053C3CE5130709F443C217 -:103EA00008F098C1033C5CE5150709F41DC208F051 -:103EB00035C2023C1C4509F4C7C1F70100811181DC -:103EC000992309F47EC2C8010E946D10D82E682F74 -:103ED000C8010E94BB0BB8018D2D0E9460100E948A -:103EE000080A182FB82EF70122814581342F329508 -:103EF0003F70892F82958F70C82ED12C8C3008F09E -:103F000098C2F601E954F94C0C94EB34013E1105CA -:103F100009F4A5C0043E110509F0AFCF882309F4C8 -:103F200030C181E08093F20280918A030E94BB0C31 -:103F3000813009F0A2CF83E30E9469159ECF033838 -:103F4000FFE51F0709F46EC060F5053F110509F490 -:103F500014C140F4043F110509F08FCF61E00E94C5 -:103F6000CC0C8BCF063F110509F409C102383FE59F -:103F7000130709F082CF882309F47FCF81EE0E94D6 -:103F8000470C83EE0E94470C8FE40E94470C8FE49D -:103F90000E940E0C83EE0E940E0C81EE0E940E0C0D -:103FA0006CCF05384FE5140709F4B5C008F45AC0C2 -:103FB00006389FE5190709F4C6C00738EFE51E0764 -:103FC00009F05BCF882309F4E8CC87E20E94470C14 -:103FD000FFEF28EA31E0F15020403040E1F700C027 -:103FE00000008CE20E94470C87E20E940E0C8BE1DD -:103FF0000E94470C4FEF50EE80E04150504080400F -:10400000E1F700C000008CE20E940E0C8BE10E94E0 -:104010000E0C40E56FEF84EB0E943D1681E080932B -:104020003E02BBCC882309F428CF81EE0E94470CC6 -:1040300083EE0E94470C80E50E94470C80E5A8CFE4 -:10404000809342021093410200934002882321F0A2 -:1040500081E08093F30211CF1092F3020ECF809390 -:104060003F02F0CF882379F180913F02882349F005 -:10407000809140020E940E0C80EE0E94470C8AE262 -:104080000CC0809142028823D1F3809140020E94AB -:104090000E0C80EE0E94470C8CE40F900F900F9056 -:1040A0000F900F90DF91CF911F910F91FF90EF90A4 -:1040B000DF90CF90BF90AF909F908F907F906F9048 -:1040C0005F900C94470C8AE20E940E0C8CE40E94D4 -:1040D0000E0C80EE0E940E0C80913F02811105C0F3 -:1040E00080914202882309F458CC80914002D5CFB8 -:1040F000882309F4C2CE80913E02882309F4BDCE04 -:104100000E94831B9093A1028093A00210923E0212 -:1041100010920101B2CE882309F420CF8091700162 -:10412000811104C080910001882339F01092700140 -:10413000109200010E94280FA0CE81E080937001B0 -:1041400080930001F7CF882309F408CF80913D02C6 -:10415000882349F080EE90E0909372018093710182 -:1041600010923D02E7CF86E690E090937201809333 -:10417000710181E080933D02DDCF62E0F0CE64E02A -:10418000EECE1092F20279CE882331F081E0809356 -:10419000F5021092680171CE1092F5026ECE88235E -:1041A00049F080918A030E94BB0C813019F482E3AC -:1041B0000E946915F7018281882309F4B2C28091B7 -:1041C0008A030E94BB0C813009F0ABC284E30E94D9 -:1041D0006915A7C2073C2CE5120709F4AEC008F424 -:1041E000A7C0083C4CE5140709F4ACC0093C1C45C9 -:1041F00009F063CE4FEA56E16BEB76E179C0043DFE -:10420000ECE51E07A8F40E3CFCE51F0708F0C5CB43 -:104210000C3C2CE5120709F49FC041EF56E162E027 -:1042200077E10D3C1C4508F463C061E081E046C0C5 -:10423000053D4CE5140709F4B0CB08F492C00D35E8 -:104240001D4509F4AACB39CE8091690480FF31C0A5 -:104250008E7F809369046091690470916A048091F3 -:104260006B0490916C040E947815809150038160DA -:10427000809350039FEFE0E7F2E09150E040F04080 -:10428000E1F700C000000F900F900F900F900F907B -:10429000DF91CF911F910F91FF90EF90DF90CF9022 -:1042A000BF90AF909F908F907F906F905F900C9495 -:1042B0008B0D81608093690461E086950F900F906B -:1042C0000F900F900F90DF91CF911F910F91FF9062 -:1042D000EF90DF90CF90BF90AF909F908F907F90A6 -:1042E0006F905F900C9413174EE357E167E477E10A -:1042F0000F900F900F900F900F90DF91CF911F9123 -:104300000F91FF90EF90DF90CF90BF90AF909F9074 -:104310008F907F906F905F900C94F90847E457E17D -:104320006EE377E1E5CF4FED56E168EE76E1E0CF61 -:1043300048EE56E16FED76E1DBCF47EC56E163EDF9 -:1043400076E1D6CF43ED56E167EC76E1D1CF4BEB8A -:1043500056E16FEA76E1CCCF42E057E161EF76E1DA -:10436000C7CF0F900F900F900F900F90DF91CF91CC -:104370001F910F91FF90EF90DF90CF90BF90AF9083 -:104380009F908F907F906F905F900C9451170E3D8F -:104390001C4509F092CD0F900F900F900F900F9049 -:1043A000DF91CF911F910F91FF90EF90DF90CF9011 -:1043B000BF90AF909F908F907F906F905F900C9484 -:1043C000DA17C8010E94930BD82E85CD092F0F70E4 -:1043D000907F11F00295007F812F2223C9F00023E6 -:1043E00069F090E2910F983010F011110BC080919C -:1043F0007303082B009373030E94720B812F0E949A -:10440000470C17C080919702082B00939702F4CFB6 -:104410000E940E0C002369F00095105E183010F019 -:10442000B11027C0809173030823009373030E9487 -:10443000720B98E0C91AD108E4E0CE16D10408F056 -:10444000ACCA0E94E30E0F900F900F900F900F9048 -:10445000DF91CF911F910F91FF90EF90DF90CF9060 -:10446000BF90AF909F908F907F906F905F900C94D3 -:104470004B0E80919702082300939702D8CF892F83 -:104480008F70907F903211F08295807FF1E0BF12A3 -:104490000CC0222329F0333060F60E94040CC9CFEF -:1044A000323038F60E94F90BC4CF222341F0332377 -:1044B000A1F340FFA3CF4F70F7014583EECF332325 -:1044C00089F3193309F0F5C0FFEF27EE33E0F1501F -:1044D00020403040E1F700C00000812F0E940E0C08 -:1044E000A8CF892F86958695837061F0813009F079 -:1044F000A0CF812F9370211102C090E080E00E9434 -:104500005A0897CF812F9370211102C090E080E06C -:104510000E9470088ECF892F8370A1F5211189CF59 -:10452000812F829586958770880F880F412F4F7055 -:10453000082E01C0440F0A94EAF7212F207114FFBE -:1045400007C02FE030E001C0220F8A95EAF72095DE -:10455000969596959370923081F0822F842B9330AC -:1045600030F480919802913029F0242B82230E940C -:10457000F50B5FCF842B822BFACF242B80919802EE -:104580008227F5CF8695222311F0892F8170882309 -:1045900009F44FCF812F829586958770880F880FF9 -:1045A000412F4F70082E01C0440F0A94EAF7212FC3 -:1045B000207114FF07C02FE030E001C0220F8A9560 -:1045C000EAF72095969596959370923081F0822F18 -:1045D000842B933030F480918A03913029F0242B7E -:1045E00082230E94871625CF842B822BFACF242B7F -:1045F00080918A038227F5CF092F0F70222329F09B -:10460000802F0E94A416812F48CF812F0E94F90B82 -:10461000802F0E9498160DCF812FE1EF1E1789F190 -:10462000E11750F0F0EF1F17B9F02223B1F131116B -:10463000E5CE892F8F7129C042EF141749F153EF4E -:104640001513F3CF80E0222361F29F7181E001C056 -:10465000880F9A95EAF7C5CF222379F0323008F017 -:10466000E8CE292F2F7181E090E001C0880F2A95B4 -:10467000EAF790918A038927B4CF333008F0D9CE76 -:10468000F0CF892F8F71222321F20E94A416D1CE60 -:10469000892F8F712223C9F3BCCF332379F089335B -:1046A00041F48FEF97EEE3E081509040E040E1F776 -:1046B00012CF8FE39CE90197F1F70DCF892F8F710E -:1046C000A8CF0031FFE51F0709F4AECB01312FE57C -:1046D000120709F4C6CB0E944E086093FA02709349 -:1046E000FB028093FC029093FD02F7018281053E5C -:1046F000110509F4A5CC08F022CC0132110508F00F -:10470000B2CB0E31110508F0F3CC0A30110509F4D3 -:1047100046CD0531110509F44DCD0930110509F0DB -:10472000ACCBF7018281882309F4A7CB80918A035F -:104730000E94BB0C813009F0A0CB81E3FDCB00319E -:104740003FE5130709F474CB01314FE5140769F60F -:1047500082E06FCB85E0DE01119601900D928A9583 -:10476000E1F7F701228189819A8121112BC90E94E9 -:10477000930B182F2FC91F93CF93DF938091630260 -:10478000807FA9F480916002882389F0809195024E -:10479000D091640260915E0270915F02A09161020B -:1047A000B0916202C62FC72316E0D81304C0DF9170 -:1047B000CF911F91089590E0109711F0CF3F19F419 -:1047C00001968770F2CF189F9001199F300D112428 -:1047D000F901EB59FD4F41814713F2CF4081461358 -:1047E000EFCF42814111ECCF438154814A1B5B0BD7 -:1047F000403A510528F7809163028F708061809361 -:104800006302F901E659FD4F80818F7080618083DA -:104810008EE592E00E94AD1CDF91CF911F910C9428 -:10482000890BAF92BF92CF92DF92EF92FF920F93DC -:104830001F93CF93DF93CDB7DEB761970FB6F89490 -:10484000DEBF0FBECDBF8C0185E0F801DE011D96F5 -:1048500001900D928A95E1F7F801E2808EE5A82E8D -:1048600082E0B82E6091610270916202611571055B -:1048700009F432C190915E0240915F02892F842336 -:104880008F3F09F429C120813181C380D480F09009 -:104890006002F601E61BF70BFF2009F4E8C08091E7 -:1048A0006302582F507FE03AF10508F0ABC0511178 -:1048B00077C0FE2C431321C092131FC0E1101DC00E -:1048C0008F70806180936302C5010E94AD1C80914E -:1048D0006302F80185838F2D61960FB6F894DEBFD1 -:1048E0000FBECDBFDF91CF911F910F91FF90EF9041 -:1048F000DF90CF90BF90AF900895CD2829F0822F00 -:1049000083238F3F09F003C180E0F82FF170DF2E81 -:1049100080FF3CC0809195024091640256E0841370 -:1049200015C02D873E878D859E850E949C10292F5E -:1049300022952F702230F0F0243018F59F70F1F09E -:10494000F8019581907FD1F4D12C1EC090E0589F42 -:10495000F001599FF00D1124EB59FD4F6181361381 -:1049600006C06081261303C06281E6120FC0019663 -:104970008770D5CF9F7011F0882331F3805E883027 -:1049800018F3C8010E94AD1CFD2CA5CFEE2009F440 -:10499000A2CF80916302816080936302F12C9BCF50 -:1049A000431306C0921304C0F801EE2009F479C045 -:1049B000C8010E94A810882309F1EE20F9F0809127 -:1049C0006302803270F020915E0230915F0238877E -:1049D0002F831986DB86CA868C87CE0107960E94B4 -:1049E000AD1C86E0F801AEE5B2E001900D928A952B -:1049F000E1F70E94BB23FF24F3946DCFC8010E940E -:104A0000AD1CF9CF51110AC08EE592E00E94AD1C99 -:104A100086E0F50111928A95E9F7C0CF43130FC0E4 -:104A200092130DC0E1100BC0F8018583C8010E94EC -:104A3000AD1C86E0F50111928A95E9F74CCFC801CB -:104A40000E94A8108823D1F2EE20C1F28091630267 -:104A5000803238F220915E0230915F023A832983DE -:104A60001B82DD82CC828E83CE010196B8CFE03AE4 -:104A7000F105F8F6FE2CEE2009F243131FC0921345 -:104A80001DC08091630280FD10C0982F907F69F057 -:104A9000F8018583903F31F0982F907F905F8F7061 -:104AA000892B8583C8010E94AD1C86E0F801AEE524 -:104AB000B2E001900D928A95E1F70DCFC8010E94F6 -:104AC000A81081118ECF8091630281608093630270 -:104AD000C8010E94AD1CFFCEEE2009F48FCFC801A3 -:104AE0000E94A810F82E882309F488CF86E0F801E8 -:104AF000AEE5B2E001900D928A95E1F780915E02F9 -:104B000090915F020E949C100E94BB23E4CE81E042 -:104B10008E25FBCE1F93CF93DF93CDB7DEB767977C -:104B20000FB6F894DEBF0FBECDBF4B8B5C8B6D8B89 -:104B30007E8B8F8B6111109297021A8A198A85E0F9 -:104B4000FE017396DE011D9601900D928A95E1F7A4 -:104B500086E0FE013D96DE01179601900D928A9542 -:104B6000E1F7CE0107960E941124882389F016E010 -:104B7000809195029091640289134BC067960FB69D -:104B8000F894DEBF0FBECDBFDF91CF911F91089586 -:104B900086E0FE013796DE01119601900D928A950E -:104BA000E1F78A859B85892B11F38F81988589236D -:104BB0008F3FE9F22091640230E0C90101968770CD -:104BC0009927409195024817190681F410927303B2 -:104BD0000E94AE11109264021092950286E0EEE5FA -:104BE000F2E0DF011D928A95E9F7C1CF96E0929F2E -:104BF000D001939FB00D1124AB59BD4FFE013196EA -:104C000001900D929A95E1F7809364020E94890BBE -:104C1000AECF819FC00111248B599D4F0E9411245A -:104C2000882309F4ABCF8091950290E001968770BC -:104C30009927809395029CCF7F928F929F92AF92FB -:104C4000BF92CF92DF92EF92FF920F931F93CF9379 -:104C5000DF93CDB7DEB764970FB6F894DEBF0FBE13 -:104C6000CDBF8E010F5F1F4F8AE0D8011D928A953C -:104C7000E9F79FE4C92E91E0D92EF12CE12CAA246A -:104C8000A394B12C3FE4832E31E0932EF601819161 -:104C90006F018F3F09F443C0F894E82FE295EF705D -:104CA000F0E021A18F70A50102C0440F551F8A9525 -:104CB000E2F7CA01922F982B91A392A180958923A4 -:104CC00082A30E94AC0900C0E8E4F1E0712C31E05D -:104CD00021912F3F09F479C0A22FA295AF70B0E0C7 -:104CE00090968C9190E02F7002C0959587952A95AB -:104CF000E2F780FD6AC0832F782A330F8E169F0655 -:104D000039F7F601319780818F3F11F00E94AE098B -:104D100050EA5A95F1F7F801EE0DFF1D70828FEF02 -:104D2000E81AF80AA5E0EA16F10409F0AFCF4AE064 -:104D300050E0B8018DED92E00E9401357C01892B95 -:104D400041F08AE0F801ADEDB2E001900D928A9554 -:104D5000E1F71091E802E114F104C9F181E08093D8 -:104D60009B020E94831B90939A02809399028091E8 -:104D7000990290919A020E94741B069770F0ADED13 -:104D8000B2E0E12FF0E0E15DFC4F8D91819322E0F4 -:104D9000A23EB207D1F710929B0281E090E0EF288B -:104DA000D1F064960FB6F894DEBF0FBECDBFDF9191 -:104DB000CF911F910F91FF90EF90DF90CF90BF9018 -:104DC000AF909F908F907F90089580E095CF8091D5 -:104DD0009B028111CCCF0E94C00ED82EE091E80238 -:104DE000882309F4E1C07E0140E1E40EF11C85E076 -:104DF000D7011D928A95E9F70E2F10E0015D1C4F37 -:104E00008091D6028A3008F098C04BEE59E1B70184 -:104E1000C8010E947C0E882309F4B2C042EA58E21D -:104E2000B701C8010E947C0E882309F4A9C04FE392 -:104E300058E1B701C8010E947C0E882309F4A0C084 -:104E40004EE059E1B701C8010E947C0E882309F4A5 -:104E500097C04CEE58E1B701C8010E947C0E882330 -:104E600009F48EC01092D6028091E70290E045E0EE -:104E700050E0B701815D9C4F0E94013521E02093F5 -:104E8000A602892B09F06FC0D12C809101018111FC -:104E900014C08091A0029091A1020E94741B813ADB -:104EA0009F4058F040E56FEF8CEF0E943D1681E087 -:104EB000809301018CE00E9469158EE9E82E82E062 -:104EC000F82E10E000E0D7018D917D018823D1F00C -:104ED0008695F80109F465C0E850FE4F8081918104 -:104EE0009C878B871D860E94831B8160782F9F87FC -:104EF0008E87F701319710824B855C856D858F8594 -:104F00000E948A250E5F1F4F04301105E1F6609163 -:104F1000FA027091FB028091FC029091FD020E94C6 -:104F2000320861367A4E8105910528F040E060E054 -:104F300080E00E94080F8D2D34CF80919C029091CB -:104F40009D020E94741B843F914008F05ECF8091C7 -:104F5000A602882309F498CF85E0F70111928A957B -:104F6000E9F71092A602A091E702B0E0A15DBC4F64 -:104F700085E0FE01709601900D928A95E1F785CF4C -:104F80008091D6028F3F31F08F5F8093D6028A30B6 -:104F900008F46ACF0E94831B90939D0280939C0229 -:104FA000D6CFEC50FE4F9ACFF0E0E15DFC4FF89485 -:104FB00085E0A6EBB2E001900D928A95E1F765E0FD -:104FC00070E086EB92E00E94E3088093B5020E94B5 -:104FD000AC09F894E091F002F0E0E351FD4F8081DC -:104FE0008B878093BC0261E070E0CE010B960E943B -:104FF000E3088093BB020E94AC09F894C090BD0204 -:10500000D090BE02E090BF02F090C0028091A20258 -:105010009091A302A091A402B091A502C816D9064E -:10502000EA06FB06D1F0C092A202D092A302E0925F -:10503000A402F092A5020E94C00E81110EC00E942F -:105040004E08C61AD70AE80AF90AC092D702D092C7 -:10505000D802E092D902F092DA020E94AC09F894E8 -:105060008091C8028823F1F080FF0DC08091C102B9 -:1050700080FF25C09091690491609093690460E07D -:1050800086950E9413178091C80281FF09C020E015 -:105090004091C4026091C3028091C2020E948A15AD -:1050A0001092C8020E94AC09F8948091C90288232A -:1050B00049F00E94860F0E94AC0980E072CE0E94E7 -:1050C000670EE1CF0E946B0FF6CFEF92FF920F9326 -:1050D0001F93CF93DF9300D000D00F92CDB7DEB7F0 -:1050E000162FE82EF12CC701880F991F662339F17E -:1050F00088509E4FFC01808191819A83898301E0D1 -:105100000B830E94831B8160782F9D838C83F70122 -:10511000E256FD4F0127110F102B108349815A8150 -:105120006B818D810F900F900F900F900F90DF91FA -:10513000CF911F910F91FF90EF900C948A258C5086 -:105140009E4FD8CFCF92DF92EF92FF920F931F9393 -:10515000CF93DF930F92CDB7DEB7EE24E394F12C1B -:105160000CEB12E09E012F5F3F4F41EB52E063E0FA -:1051700082E00E944919082F882321F1C090EA0299 -:105180008C2D90E09C0123513D4F79011981F9014B -:105190008081181BD12E80E00AC0DA94F70180814B -:1051A0008F5F808360E08C2D0E946528802F1D1406 -:1051B000A4F3912F17FD90E0191B11110EC081115E -:1051C0000E94700B802F0F90DF91CF911F910F9154 -:1051D000FF90EF90DF90CF9008951F5FF7018081DF -:1051E0008150808361E08C2D0E946528802FE5CF5F -:1051F0001F921FB61F9211248F939F93AF93BF935B -:1052000080916A03811113C080916B0390916C03AC -:10521000A0916D03B0916E034196A11DB11D8093C5 -:105220006B0390936C03A0936D03B0936E03BF91D7 -:10523000AF919F918F911F901FBE1F901895CDB772 -:10524000DEB7E0970FB6F894DEBF0FBECDBF84B7D0 -:10525000877F84BF0FB6F894A8958091600088611D -:1052600080936000109260000FBE80E890E00FB65F -:10527000F89480936100909361000FBE85B78068B9 -:1052800085BF85B7806885BF8AEA99E0909333022D -:10529000809332020E94A4060E946F078091E20070 -:1052A00084608093E2007894809180038823A1F049 -:1052B0001091E9001F709091EC00892F817090FD92 -:1052C00080E8182B1092E9008091E80083FD0E948D -:1052D000B7111F701093E90082E084BD93E095BD83 -:1052E0009AEF97BD80936E001092D7021092D80269 -:1052F0001092D9021092DA020E94CF10811102C0DE -:105300000E942B100E94C00E809359018091590178 -:10531000882309F4C9C01092730185E28093740157 -:105320000E94C00E81110E94F632809159018111B4 -:105330002FC0FE01359686E0DF011D928A95E9F7C0 -:1053400086E6898387E98A8386EC8B8384E38C8372 -:1053500085E38D833497AFE4B1E0CE010B962191C4 -:105360002D938E179F07D9F787E0E9E7F1E0DE017B -:10537000919601900D928A95E1F7FE01B196A8E40D -:10538000B1E0CE01889621912D938E179F07D9F712 -:105390008091590195E0811190E09093E80285E0B9 -:1053A000891B8093E7020FE411E084E5E82E81E099 -:1053B000F82EF80181918F018F3F11F00E94AE0904 -:1053C000E016F106B1F708E411E0BFE4EB2EB1E01E -:1053D000FB2ED8018D918D018F3F11F00E94AE09F7 -:1053E000E016F106B1F78AE0EFE2F3E0DF01282FE3 -:1053F0001D922A95E9F7EDEDF2E0DF011D928A9505 -:10540000E9F70E94281A811102C00E94DA1782E08F -:1054100090E00E9417358093240384E090E00E947E -:105420001735182F82E290E00E941735982F812FB0 -:105430009093DC028093DB020E941C26EFE7FBEBDB -:105440003197F1F700C000000E941C2680912F03C5 -:1054500080FF2EC06FEF7FEF90E080E00E94493523 -:1054600081E08093E00080E28093D8001092C90030 -:105470008FE19EE40197F1F700C0000087E090EB18 -:10548000DC018093720690937306A0937406B09328 -:10549000750688E19CE00FB6F894A89580936000AB -:1054A0000FBE90936000FFCF85E28093730136CFEB -:1054B00083E090E00E9417350E94F50B80918A03EB -:1054C0000E9440160E94281A811102C00E94DA1719 -:1054D00088E190E00E941F35609360037093610340 -:1054E0008093620390936303672B682B692B11F4FD -:1054F0000E94A3170E94F73067E081E00E945D15CB -:1055000065E586E10E945D1563E687E10E945D1511 -:1055100060EA8AE10E945D1569E98BE10E945D15F0 -:1055200065EF8CE10E945D1560EA8DE10E945D15DA -:1055300060E38EE10E945D1566E083E00E945D15E8 -:1055400061E08CE00E945D1560E081E00E945D15E5 -:1055500060E08CE00E945D156FE084E00E945D15C4 -:1055600061E08CE00E945D150E94C00E811102C0B6 -:105570000E94F93283E080931F0380E280935303FB -:105580000E94F7306DE070E08CE492E00E943B0FE7 -:10559000892BE9F580911F0363E070E081FD05C26E -:1055A00089E492E00E943B0F892B89F56DE070E061 -:1055B00089E392E00E943B0F892B49F50E944E0837 -:1055C0006058774C8E4F9F4F60935A0370935B03E4 -:1055D00080935C0390935D03E0E7F4E080E092E069 -:1055E000DF019C011D9221503040E1F7F0937106DC -:1055F000E09370068FEF9FEF90936F0480936E049B -:1056000081E080935F0380935E031092200380917A -:10561000E902811136C00E94281A811104C00E943B -:10562000DA170E94601788E090E00E941F356093AF -:10563000690470936A0480936B0490936C04809166 -:1056400050038360809350036E7F71F40E94601753 -:1056500088E090E00E941F356093690470936A04AB -:1056600080936B0490936C040E94FE0880916904FF -:1056700080FF04C060E086950E94131781E080934C -:10568000E90280915901811106C084EF809367017E -:1056900085EF8093660120916701A22FA295AF70DC -:1056A000B0E091963C9191972F7081E090E0BC0121 -:1056B000022E01C0660F0A94EAF7462F4095432355 -:1056C00091964C93919792963C919297362B929605 -:1056D0003C93929740916601E42FE295EF70F0E0E1 -:1056E00031A14F70042E01C0880F0A94EAF7982F59 -:1056F0009095932391A392A1892B82A390968C914C -:1057000090E002C0959587952A95E2F7817020A1D7 -:1057100030E002C0359527954A95E2F792E020FFE8 -:1057200090E0892B8093F1029091590181E09827B4 -:105730009093F002891B8093EA020E94D31760E0E5 -:105740008AE00E94131781E00E94871680EE90E0A5 -:1057500090937201809371010E94280F8AE591E075 -:105760009093670380936603A0E46A2E8091800380 -:10577000FF24F39400E112E1853009F465C10E9431 -:105780001C26E82E81110E944E08FFE22F2EF3E026 -:105790003F2EE5E2F3E0D10110E000E0B02EDD9015 -:1057A00081918D1509F474C18D25C12CFF24F394CA -:1057B000982F9F2109F467C10E94C00E882399F099 -:1057C000C9A2BAA2DF2081E009F480E08BA30E9485 -:1057D000831B8160782F9DA38CA349A15AA16BA143 -:1057E0008DA10E948A25F801EB5DFC4F8081F8268F -:1057F000F0828091F102E82FEE0FEE0F9091670199 -:10580000A92FA295AF70B0E090962C9130E09F70D8 -:1058100002C0359527959A95E2F72170332790912C -:105820006601A92FA295AF70B0E090964C9150E020 -:105830009F7002C0559547959A95E2F7CA0181700D -:10584000992740FF02C082E090E0822B8E2B80934C -:10585000F1021091F0028F70E82FF0E0E250FE4F5D -:1058600080819091EF02890F8093EF02F12C8430B8 -:105870006CF0E12FF0E0E351FD4F80818F5F80837A -:1058800060E0812F0E946528FF24F3948091EF024D -:105890008D3F6CF4E12FF0E0E351FD4F80818150AA -:1058A000808361E0812F0E946528FF24F39480911A -:1058B000EF02082E000C990B64E070E00E94D734D0 -:1058C0008093EF02F1100E94700B80915F03882398 -:1058D00051F180912103909122030E94741BC29781 -:1058E00008F0EDC020916E0430916F042115310550 -:1058F00009F0F0C180915E038823A9F00E944E0850 -:1059000000915A0310915B0320915C0330915D0379 -:10591000601B710B820B930B6F3F7F4F8F4F9F4725 -:1059200010F40E946B0FE11001C0F1100E94860F6D -:105930000E94E8100E94E30E90912303891731F032 -:105940000E94E30E809323030E944B0E80918003FC -:10595000843009F00BCF83E08093E9008091E80068 -:1059600082FF04CF8091E80090E085FF0CC00E9488 -:10597000C30630E2E32EF12C8E010F5F1F4F882308 -:1059800009F487C291E08091E8008B778093E8006A -:10599000992309F4EBCEE981E150E33108F0DDC24F -:1059A000F0E0ED53F94C0C94EB3486E492E0FACD40 -:1059B00080918003843009F437C080E00E944B0E50 -:1059C0008091EC02811109C0F092EC02809169048F -:1059D00081708093EB020E94670E0E946B0F0E9401 -:1059E000E81010926A0388E190E00FB6F894A89549 -:1059F000809360000FBE6092600083B7817F8460F7 -:105A000083BF83B7816083BF7894889583B78E7F87 -:105A100083BF0FB6F894A895809160008861809349 -:105A20006000109260000FBE80917F03882361F0B8 -:105A30000E941C26EFE2F3E081918111B7C3A9E334 -:105A4000B3E0AE17BF07C1F780918003853009F43A -:105A5000AFCF109273030E94AE110E94E30E0E941A -:105A60004B0E1092EC028091EB02882349F080915A -:105A7000690481608093690460E086950E94131731 -:105A80000E94280F7CCEC394FF0C27E0C21290CE58 -:105A90000F5F1F4F0A30110509F080CE8FEF88A7E6 -:105AA00089A71AA60E94831B8160782F9CA78BA7C9 -:105AB00048A559A56AA58CA50E948A259ACE0E9460 -:105AC000831B909322038093210360E080E00E9477 -:105AD000CC080E94E30E8093FE020E94C00E882331 -:105AE00009F4DFC06091FA027091FB028091FC0220 -:105AF0009091FD020E94320861337547810591053E -:105B000040F00E946B0F80915F03882309F4F2CE6E -:105B1000E9CE0E94860F61E080E00E94CC0860E040 -:105B200080E891E00E94411562E080E00E94CC088C -:105B300080918A030E94BB0C823009F48CC008F06B -:105B400081C0882309F487C0813009F48AC065E0E8 -:105B500080E00E94CC0860E08EE991E00E9441154F -:105B600066E080E00E94CC086091FE02669561705C -:105B700083EA91E00E94411567E080E00E94CC0832 -:105B80006091FE026095617088EA91E00E94411583 -:105B900068E080E00E94CC086091FE0262FB66270C -:105BA00060F98CEA91E00E9441156091F6027091D3 -:105BB000F7028091F8029091F9020E9432086D324A -:105BC00071408105910508F49ECF0E944E086093B4 -:105BD000F6027093F7028093F8029093F902809195 -:105BE000F502811104C080916801811142C06DE00D -:105BF00080E00E94CC0860E081EB91E00E944115BA -:105C00006AE080E00E94CC0881E080936801809186 -:105C1000F40290E00196817099278093F40221E0CC -:105C200030E0281B390B40E6429FC001439F900D96 -:105C300011242091F302222351F187529C4F0E949C -:105C4000610661CF833089F0843009F080CF60E055 -:105C500082E991E003C060E086E891E00E9441158E -:105C600076CF60E08CE891E0F9CF60E088E991E0E0 -:105C7000F5CF6AE080E00E94CC0860E081EB91E023 -:105C80000E9441156BE080E00E94CC08C0CF2091BB -:105C9000F202222319F0875E9C4FD1CF875A9D4F85 -:105CA000CECF64E080E00E94CC0860E087EB91E01A -:105CB0000E94411565E080E00E94CC0860E08DEB19 -:105CC00091E00E94411569E080E00E94CC0889E9DA -:105CD00094E0B5CF8091200361E070E081110ACE9D -:105CE000082F10E02B01082E02C0440C551C0A940A -:105CF000E2F7A90144215521452B09F448C09091B0 -:105D00001F0390FD46C08295880F807680936B01BB -:105D10009801369527953695279520936E01815EDB -:105D200080936C0110926F0124E630E047E050E070 -:105D300069E671E088E70E94EE31892B09F0DACD3F -:105D4000A80175E0440F551F7A95E1F780911F0374 -:105D500080FD2DC040595B4F04E610E020E230E0AA -:105D600060E488E70E941532892B09F0C3CD0E94B8 -:105D7000860FC2018095909540906E0450906F04FC -:105D80004822592250926F0440926E04B3CD8F5F27 -:105D9000A7CF880F880F880F80936B0110926E0138 -:105DA000895F80936C0183E080936F01BDCFEFEF3B -:105DB000F2E080E2DF011D928A95E9F7E2E1F2E08C -:105DC000F8ABEFA70EE012E067E0A62E99249394BB -:105DD000AFA5B8A96D91B8ABAFA7F80181918F01BC -:105DE000840F952F911D9C0120593B4F3EA72DA755 -:105DF000E62FF0E0E150FD4F30E020E07A2C721AFF -:105E0000B92C022E01C0BB0C0A94EAF7CDA4DEA483 -:105E100090E0D6018D916D018B21672D691B677014 -:105E2000862E062E000C770BB82F01C0BB0F8A946C -:105E3000EAF78B2E7195619571096770772701C01C -:105E400086956A95EAF7882A8081882A80829F5FF2 -:105E50009830F9F62F5F3F4F31962830310571F6B3 -:105E6000E6E1F2E02FA538A9E217F30709F0B0CF79 -:105E700004E610E020E230E04FEF52E071CF809175 -:105E8000F100D8018D938D01B1E0EB1AF10809F40E -:105E900079CD8091E80085FDF2CF8091E8008B7785 -:105EA0008093E8000E94C306882399F36BCD1A8281 -:105EB00089E08B8311C08A81823009F48FC18330DD -:105EC00091F1813009F049C00E944E080E94F134DE -:105ED0006B837C838D839E8380918003843009F063 -:105EE00045CC1091E9001F709091EC00892F8170D2 -:105EF00090FD80E8182B82E08093E9008091E80013 -:105F000080FF0DC050E040E060E270E0CE010196FD -:105F10000E94F4068091E8008E778093E8001F705D -:105F20001093E90023CCFE013396D1018D911D0120 -:105F30008193B9E32B16B3E03B06B9F7CDCF8A8145 -:105F4000823059F46B817C818D819E810E94F13475 -:105F500086E290E00E942B35BFCF8FEF8983BCCFC4 -:105F60004C816B818A810E943A1098278927982753 -:105F70009E838D83B1CFED80FE80FE24EF24FE242E -:105F80008A810B81EEE00E9F80011124FCE88F9F37 -:105F9000000D111D11248C8190E0880F991F080FAE -:105FA000191F6F2DC80187960E942B356E2DC801D1 -:105FB0008896D0CF0E94BE0F8FCF8A818138B1F0F2 -:105FC00058F4803809F088CF4B8160916B04809140 -:105FD0006A040E943D1680CF8238E1F0833809F0D0 -:105FE0007BCF40916C046C818B81F3CF60E08B811F -:105FF0000E9413178B81811103C00E94670E6CCF22 -:106000008091690481608093690460E086950E94B4 -:10601000131762CF8B8180936D045ECF8A818138A4 -:1060200099F030F4803809F057CF80916C0441CF5B -:10603000823891F0833809F04FCF80916A048B83C6 -:1060400080916B048C8348CF8091690480FF02C0EB -:1060500086952FCF80E02DCF80916D042ACF60915F -:10606000690470916A0480916B0490916C040E94A1 -:10607000781532CF80E18A832FCF81E08A838DE14A -:1060800018CFCA80DB80DC24CD24DC248E010F5F96 -:106090001F4FEC80E00EF12EF11CC6018D519D4F7B -:1060A0000E151F0509F418CF2DE1C21621E0D20606 -:1060B00058F40E941735D80114968C93FFEFCF1A2D -:1060C000DF0A0F5F1F4FE9CFF8011482F7CF0A8173 -:1060D0001B811027012710279E012F5F3F4F690169 -:1060E000EC80E00EF12EF11CC8018D519D4FE016A1 -:1060F000F10609F4F1CE0D3131E0130728F4D60191 -:1061000014966C910E942B35BFEFCB1ADB0A0F5F00 -:106110001F4FEACF0E94AE0FDFCE85E0ACCFCA8022 -:10612000DB80DC24CD24DC248E010F5F1F4FEC804C -:10613000E00EF12EF11CC6018796E016F10609F477 -:10614000CBCEECEBCE16E2E0DE0658F40E9417351B -:10615000D80114968C93FFEFCF1ADF0A0F5F1F4F01 -:10616000EACFF8011482F7CF0A811B81102701279B -:1061700010279E012F5F3F4F6901EC80E00EF12E4A -:10618000F11CC8018796E016F10609F4A5CE0C3B78 -:1061900032E0130728F4D60114966C910E942B3537 -:1061A000BFEFCB1ADB0A0F5F1F4FEBCF09BD19BD45 -:1061B00009B400FEFDCF8091D8008F7D8093D80078 -:1061C0008091E00082608093E0008091E00081FD9A -:1061D000FCCF109273030E94AE1136CC86E290E0A1 -:1061E0000E9417351B821C821D828E8375CE1092F1 -:1061F000B9008CE08093B80008959F92AF92BF924F -:10620000CF92DF92EF92FF920F931F93CF93DF9382 -:10621000B82EEB010E94831B6C01EE24E394F12C59 -:10622000C431D10560F025E0E22EF12CCF3FDC0730 -:1062300031F0CE0164E170E00E94B7347B0184EA62 -:10624000A82E94E8992E1092BC00A092BC000E9447 -:10625000831B8C018091BC0087FF0DC08091B90029 -:10626000887F883039F18091B900887F803111F1C1 -:106270000FEF1FEF09C00E94831B801B910B8E152F -:106280009F0540F30EEF1FEFCF3FDC07E1F2C601A1 -:106290000E94741B8C179D07B0F2C801DF91CF914B -:1062A0001F910F91FF90EF90DF90CF90BF90AF9034 -:1062B0009F900895B092BB009092BC000E94831BF7 -:1062C0008C018091BC0087FF0AC08091B900887F53 -:1062D000883111F0803461F610E000E0DECF0E94DA -:1062E000831B801B910B8E159F0558F3CBCF0F930B -:1062F0001F93CF93DF93EB018093BB0084E88093DF -:10630000BC000E94831B8C018091BC0087FF11C0E0 -:106310002091B900287F81E090E0283211F490E0CC -:1063200080E0919581959109DF91CF911F910F9117 -:106330000895CF3FDC0741F30E94831B801B910B24 -:106340008C179D0708F38EEF9FEFEECF0F931F93EF -:10635000CF93DF93EC0184EC8093BC000E94831BFD -:106360008C018091BC0087FF08C08091BB0090E049 -:10637000DF91CF911F910F910895CF3FDC0789F3F3 -:106380000E94831B801B910B8C179D0750F38EEF8F -:106390009FEFEECF0F931F93CF93DF93EC0184E831 -:1063A0008093BC000E94831B8C018091BC0087FFFE -:1063B00008C08091BB0090E0DF91CF911F910F91B9 -:1063C0000895CF3FDC0789F30E94831B801B910B4C -:1063D0008C179D0750F38EEF9FEFEECFCF92DF9299 -:1063E000EF92FF920F931F93CF93DF936B018A017C -:1063F0007901B9010E94FD30E6010C0D1D1DC01789 -:10640000D10761F424E92093BC00DF91CF911F9163 -:106410000F91FF90EF90DF90CF90089597FDF2CF0E -:10642000B70189910E947731EACFCF92DF92EF9244 -:10643000FF920F931F93CF93DF93C62F6A017901C9 -:10644000B8010E94FD3097FD0CC0B8018C2F0E944E -:106450007731E601EC0CFD1CCE15DF0511F097FF3E -:106460000CC024E92093BC00DF91CF911F910F91C4 -:10647000FF90EF90DF90CF900895B80189910E942E -:106480007731EACFCF92DF92EF92FF920F931F9373 -:10649000CF93DF93F82EE62EEA016901B8010E943E -:1064A000FD3097FD15C0B8018E2D0E94773197FD04 -:1064B0000FC0B8018F2D81600E94FD30F12CE12CBE -:1064C00021E0C21AD108EC14FD0400F597FF11C0B9 -:1064D00024E92093BC001816190614F490E080E01B -:1064E000DF91CF911F910F91FF90EF90DF90CF90B0 -:1064F0000895C8010E94A63197FD04C0FE01EE0D6B -:10650000FF1D80832FEFE21AF20ADDCF97FDE0CF67 -:10651000C8010E94CA3197FDDBCFCC0DDD1D8883F9 -:10652000D7CF84E98093BC0008958EE14A9B02C0D6 -:106530008150E1F74A9BFECF08955A9880E28A95F0 -:10654000F1F75A9A0895FC013BE03A95F1F798E08B -:1065500020E080E031E040E14A95F1F7880F4A9B66 -:1065600002C08160232742E04A95F1F7000040E134 -:106570004A95F1F7915079F790E19A95F1F799B131 -:1065800032E03A95F1F7000040E14A95F1F792FBCD -:10659000992790F992272081920F90830895EF9286 -:1065A000FF920F931F93CF93DF930F92CDB7DEB778 -:1065B00019828C017C01E60EF11C0E151F0561F499 -:1065C00081E09981911180E00F90DF91CF911F912F -:1065D0000F91FF90EF9008950E949532CE010196A1 -:1065E0000E94A332F80181938F01E7CF529A5A9A01 -:1065F000089552985A9AEA9AE9E6F0E080818F7CF1 -:10660000808308956150770B91E001C0990F6A95DE -:10661000EAF720E031E0911108C0222391F05A9A64 -:1066200080E28A95F1F75A980895492F482339F066 -:106630005A9A232740E24A95F1F79695ECCF5A985B -:10664000F9CF5A98EDCFFF920F931F93CF93DF931B -:10665000EC018C01060F111DC017D10731F4DF9139 -:10666000CF911F910F91FF900895F9900E949D3254 -:1066700068E08F2D0E940233EFCF1F920F920FB66A -:106680000F921124EF92FF920F931F932F933F933A -:106690004F935F936F937F938F939F93AF93BF932A -:1066A000EF93FF93CF93DF930F92CDB7DEB71982AD -:1066B0000E949532CE0101960E94A332A82FA69582 -:1066C000A695A695282F229525709A2F9570290FAB -:1066D000922F937026952695920F9827977089810F -:1066E000982B09F075C0A83008F072C080E18A9537 -:1066F000F1F75A9A529AB2E0BA95F1F700C05A9857 -:10670000EA2EF12CEAE0AE9FD0011124AE5FBE4F1D -:106710001896ED91FC9119973097B1F06091FC01BA -:106720007091FD0116962D913C911797260F371FFA -:1067300013968D919C911497680F791F15964C9123 -:10674000159712968C9109958AE08E9DF0018F9D88 -:10675000F00D1124EE5FFE4F6581662351F020910C -:10676000FC013091FD0186819781820F931F0E9469 -:1067700023330E949D32F0E1FA95F1F75A9852982E -:106780005A9A80E18A95F1F78AE08E9D80018F9D6B -:10679000100D11240E5F1E4FD80112966C911297A6 -:1067A000662371F12091FC013091FD0113968D91CA -:1067B0009C91820F931F0E94CF32D801ED91FC91E2 -:1067C000882311F088E001C082E080830E94953226 -:1067D0000F90DF91CF91FF91EF91BF91AF919F917A -:1067E0008F917F916F915F914F913F912F911F9169 -:1067F0000F91FF90EF900F900FBE0F901F90189584 -:10680000ED91FC91DFCF0F931F93CF93DF93EC01BA -:1068100008970CF0A9C08AE08C9FF0018D9FF00DC5 -:106820001124EE5FFE4F80819181892B09F49CC079 -:10683000F894529A5A9885E08A95F1F700008C2FC7 -:10684000869585709C2F9570890F982F93708695EB -:106850008695890F8E0193E0000F111F9A95E1F73D -:10686000082B0E949D3200C068E0802F0E940233F6 -:10687000A0E1AA95F1F752985A9A4A9B27C087E05F -:1068800090E04A9925C08AE08C9F80018D9F100D71 -:1068900011240E5F1E4FF80165816623A1F120913E -:1068A000FC013091FD0186819781820F931F0E9428 -:1068B000CF32811128C0529A5A9AD801ED91FC9199 -:1068C00082E08083789482E090E016C000C0D5CF4B -:1068D0000197B9F4529A5A9A8AE08C9FF0018D9FE1 -:1068E000F00D1124EE5FFE4F0190F081E02D81E06C -:1068F0008083789481E090E0DF91CF911F910F9198 -:10690000089500C0BECF0E949532B0E2BA95F1F76B -:106910005A98529AE0E1EA95F1F78AE08C9FF001EB -:106920008D9FF00D1124EE5FFE4F6281662351F0C2 -:106930002091FC013091FD0183819481820F931F8E -:106940000E9423330E949D328AE08C9FF0018D9F2C -:10695000F00D1124EE5FFE4F0190F081E02D1082CA -:10696000789490E080E0C8CF84E090E0C5CFAA1B87 -:10697000BB1B51E107C0AA1FBB1FA617B70710F02A -:10698000A61BB70B881F991F5A95A9F7809590955C -:10699000BC01CD010895991B79E004C0991F961799 -:1069A00008F0961B881F7A95C9F78095089597FB84 -:1069B000072E16F4009407D077FD09D00E94B73453 -:1069C00007FC05D03EF4909581959F4F08957095F2 -:1069D00061957F4F0895EE0FFF1F0590F491E02D14 -:1069E00009946927962769277827872778270895A4 -:1069F000FB01DC0102C005900D9241505040D8F7D8 -:106A00000895FB01DC0104C08D910190801921F4EF -:106A100041505040C8F7881B990B0895FB01DC01D9 -:106A200002C001900D9241505040D8F70895F99955 -:106A3000FECF92BD81BDF89A992780B50895A6E151 -:106A4000B0E044E050E00C945135A8E1B0E042E001 -:106A500050E00C945135262FF999FECF92BD81BD9F -:106A6000F89A019700B4021639F01FBA20BD0FB68C -:106A7000F894FA9AF99A0FBE08950396272F0E9468 -:106A80002C350E942B35252F0E942C35242F0C9459 -:106A90002C350196272F0E942C350C942B35DC01C8 -:106AA000CB01FC01F999FECF06C0F2BDE1BDF89A19 -:106AB000319600B40D9241505040B8F708950E94AD -:106AC00066356894B1110C94F53508950E94DA3555 -:106AD00088F09F5798F0B92F9927B751B0F0E1F09F -:106AE000660F771F881F991F1AF0BA95C9F714C04F -:106AF000B13091F00E94F435B1E008950C94F43572 -:106B0000672F782F8827B85F39F0B93FCCF3869587 -:106B100077956795B395D9F73EF4909580957095E4 -:106B200061957F4F8F4F9F4F0895E89409C097FB61 -:106B30003EF490958095709561957F4F8F4F9F4F54 -:106B40009923A9F0F92F96E9BB279395F695879598 -:106B500077956795B795F111F8CFFAF4BB0F11F45B -:106B600060FF1BC06F5F7F4F8F4F9F4F16C0882302 -:106B700011F096E911C0772321F09EE8872F762F38 -:106B800005C0662371F096E8862F70E060E02AF079 -:106B90009A95660F771F881FDAF7880F9695879565 -:106BA00097F9089557FD9058440F551F59F05F3FCE -:106BB00071F04795880F97FB991F61F09F3F79F01F -:106BC00087950895121613061406551FF2CF4695A1 -:106BD000F1DF08C0161617061806991FF1CF869523 -:106BE0007105610508940895E894BB276627772707 -:106BF000CB0197F908950E940E360C947F360E94BF -:106C0000713638F00E94783620F0952311F00C94FC -:106C100068360C946E3611240C94F5350E94D235EA -:106C200070F3959FC1F3950F50E0551F629FF001DF -:106C3000729FBB27F00DB11D639FAA27F00DB11DF8 -:106C4000AA1F649F6627B00DA11D661F829F222781 -:106C5000B00DA11D621F739FB00DA11D621F839F08 -:106C6000A00D611D221F749F3327A00D611D231FDE -:106C7000849F600D211D822F762F6A2F11249F572C -:106C800050409AF0F1F088234AF0EE0FFF1FBB1F2F -:106C9000661F771F881F91505040A9F79E3F5105EE -:106CA00080F00C9468360C94F5355F3FE4F3983E21 -:106CB000D4F3869577956795B795F795E7959F5F98 -:106CC000C1F7FE2B880F911D9695879597F908952A -:106CD00097F99F6780E870E060E008959FEF80EC8F -:106CE000089500240A941616170618060906089532 -:106CF00000240A9412161306140605060895092E98 -:106D00000394000C11F4882352F0BB0F40F4BF2B06 -:106D100011F460FF04C06F5F7F4F8F4F9F4F089546 -:106D2000F894FFCFBA10BA10C310C310C510C31027 -:106D3000C310C310BA10BA10CA10C310C310CA10BF -:106D40009F12C7126A14C7126A14FA121B136A142C -:106D500019142614FE1C741D771D8B1D8E1DA11D7C -:106D6000AA1DCE1D141E461E5A1EE01D031EE6213E -:106D7000E6213F223F2271221922192219228B2259 -:106D8000FC220C230C23572F5B2F9F2FB02FBB2FE0 -:106D9000DA2FDD2F0E302F30AD2FAD2F3A303D30B2 -:0C6DA000413067308A308D308F30B430C5 -:106DAC0001013C0200000001000000003C02000058 -:106DBC000005010000003C0200000001060000007C -:106DCC003C0200000001070000003C020408000027 -:106DDC00000000003C02080C0000000000003C0217 -:106DEC00011400000000000036323331F7F6FF6664 -:106DFC0097C634350000000000012F085E0D3D0DD4 -:106E0C00390D350D2E08F4F5010021007F22000309 -:106E1C00018000004A004A4A01F6F731333236FF4E -:106E2C004C415945520042617365200047616D65C4 -:106E3C0020005261697365004C6F776572004C4F8E -:106E4C00434B0043617073004E756D005363726C5D -:106E5C0000202020202000534F4C415200544D5014 -:106E6C00535400818283E200E900EA00B500B600C9 -:106E7C00B700CD008301CC008A019201940121025C -:106E8C00230224022502260227022A02B300B400A0 -:106E9C006F0070000603060806010606B50200FF27 -:106EAC000100010000FFFF0000010001FF000008CD -:106EBC00101818100800000102020202020202025D -:106ECC00020240227B49012701AC009E0BB70BD775 -:026EDC000B00A9 +:1031D000BF90AF909F908F907F906F9008958AE0FE +:1031E000889DF001899DF00D1124EE5FFE4F458111 +:1031F00050E0E416F50608F4A7018AE0889DF00186 +:10320000899DF00D1124EE5FFE4F668177816B542E +:103210007D4FC6010E947F32B701C8010E949D0800 +:1032200099818913CACF0E944E08F501608371838A +:1032300082839383BB24B394C1CFB12CA701B8017F +:10324000C6010E947F32BACFBB24B394F7CFCF928E +:10325000DF92EF92FF920F931F93CF93DF9300D0F3 +:1032600000D00F92CDB7DEB76B0185E0E82EF12CD0 +:1032700006EB12E09E012F5F3F4F4DEA52E061E006 +:1032800080E00E948518882349F095E0FE01319680 +:10329000A8EAB2E001900D929A95E1F795E0E8EA8C +:1032A000F2E0D60101900D929A95E1F70F900F9000 +:1032B0000F900F900F90DF91CF911F910F91FF9082 +:1032C000EF90DF90CF90089590E080E00E949632DA +:1032D000893E9E4F11F40C94891080E008951F924E +:1032E0000F920FB60F9211242F933F934F935F933A +:1032F0006F937F938F939F93AF93BF93CF93DF93FE +:10330000EF93FF93D091E900DF708091EC00C82F1C +:10331000C17080FDC0E81092E9008091F000877FC5 +:103320008093F00078940E9470111092E9008091CF +:10333000F00088608093F000CD2BCF70C093E9003F +:10334000FF91EF91DF91CF91BF91AF919F918F91BD +:103350007F916F915F914F913F912F910F900FBE91 +:103360000F901F9018951F920F920FB60F92112475 +:103370002F933F934F935F936F937F938F939F937D +:10338000AF93BF93EF93FF938091E10082FF09C059 +:103390008091E20082FF05C08091E1008B7F8093E5 +:1033A000E1008091DA0080FF24C08091D80080FF86 +:1033B00020C08091DA008E7F8093DA008091D9005E +:1033C00080FF9DC080E189BD82E189BD09B400FE16 +:1033D000FDCF81E080937A0380916C03811109C055 +:1033E0000E94A4060E946F078091E200846080938F +:1033F000E2008091E10080FF17C08091E20080FF31 +:1034000013C08091E2008E7F8093E2008091E20001 +:1034100080618093E2008091D80080628093D80020 +:1034200019BC85E080937A038091E10084FF2BC072 +:103430008091E20084FF27C080E189BD82E189BDDF +:1034400089B5982F917080FFFBCF8091D8008F7D38 +:103450008093D8008091E1008F7E8093E10080917D +:10346000E2008F7E8093E2008091E2008160809391 +:10347000E20080917B03882309F447C084E08093B5 +:103480007A0380917A038091E10083FF27C08091C5 +:10349000E20083FF23C08091E100877F8093E100F9 +:1034A00082E080937A0310927B038091E1008E7F0B +:1034B0008093E1008091E2008E7F8093E200809112 +:1034C000E20080618093E20042E060E080E00E94E0 +:1034D0003D078091F00088608093F000FF91EF91AC +:1034E000BF91AF919F918F917F916F915F914F911C +:1034F0003F912F910F900FBE0F901F90189519BC00 +:1035000010927A0310926C0374CF8091E30087FDD0 +:1035100093E090937A03B5CF78941F921FB61F92D1 +:1035200011248F939F93AF93BF93809165039091E4 +:103530006603A0916703B09168030196A11DB11DB8 +:103540008093650390936603A0936703B093680329 +:10355000BF91AF919F918F911F901FBE1F901895A3 +:103560009C014FB7F8948091650390916603A091F8 +:103570006703B09168034FBF821B930B08952FB769 +:10358000F8948091650390916603A0916703B091D0 +:1035900068032FBF0895AF92BF92DF92EF92FF9220 +:1035A0000F931F93CF93DF93CDB7DEB761970FB61D +:1035B000F894DEBF0FBECDBF4C87888B998BE52E6C +:1035C000D62EF72E5E0127E0A20EB11C85E0F50194 +:1035D00011928A95E9F780914D038A3008F095C0E1 +:1035E00080914B0390914C030E94B01A089708F405 +:1035F0008CC004E610E025E030E0A50164E084E141 +:103600000E94B32F892B09F0DBC010924D038B85EC +:1036100087FDD1C0E894E0F88091490390914A0376 +:10362000009709F0C2C08F819885891708F091C072 +:10363000981B892F41E02091710130917201889F80 +:10364000C001112455E0589FF001599FF00D11243D +:10365000E29FB001E39F700DF29F700D1124660F81 +:10366000672F661F770B7195442319F0719561954B +:1036700071098091470390914803680F791F8985EC +:103680009A85891708F068C0981B892F41E0889FA8 +:10369000C001112455E0589FF001599FF00D1124ED +:1036A000E29FC001E39F900DF29F900D1124880FBF +:1036B000892F881F990B9195442319F09195819535 +:1036C00091092091450330914603820F931F603882 +:1036D00071050CF444C06F577109709348036093EF +:1036E00047033FE7D32E803891050CF44BC08F572A +:1036F000910990934603809345039FE7F92E0E941A +:10370000BF1A90934C0380934B03ED86DE86FF86B1 +:1037100086E0FE013C96DE01119601900D928A959D +:10372000E1F729813A814B815C816D817E8180E066 +:1037300090E061960FB6F894DEBF0FBECDBFDF916B +:10374000CF911F910F91FF90EF90DF90BF90AF90BE +:103750000895891B40E06FCF891B40E098CF613806 +:10376000FFEF7F074CF461587F4F709348036093DD +:10377000470321E8D22EB7CFD62E109248031092DD +:103780004703B1CF81382FEF92074CF481589F4FF8 +:10379000909346038093450381E8F82EB0CFF82E2E +:1037A0001092460310924503AACF019790934A03C3 +:1037B00080934903A4CF6894E0F884E190E0F6CFC9 +:1037C00080914D038F5F80934D0399CF5F926F92ED +:1037D0007F928F929F92AF92BF92CF92DF92EF92A1 +:1037E000FF920F931F93CF93DF9300D000D00F92DF +:1037F000CDB7DEB77C01FC0183819481892B31F048 +:103800008081918189238F3F09F06AC50F900F90C5 +:103810000F900F900F90DF91CF911F910F91FF901C +:10382000EF90DF90CF90BF90AF909F908F907F9060 +:103830006F905F9008950E942710182F682F89813C +:103840009A810E94750B69817A81812F0E941A10DA +:103850008C01F7018281882309F436C5C8018251A1 +:103860009F45409708F0BAC48FEF93E00E948832DA +:10387000025193EEA92E92E0B92E8111C7CF01110A +:103880003AC01C821B82662463948AE0582E85010C +:103890000F5F1F4FC5010E94883289831A828823D7 +:1038A00009F4B4CF9FEF980F9330A0F58A83698213 +:1038B00032E0A30EB11CC8010E9488328B8388239A +:1038C00009F4A4CF8E010F5F1F4FF801208122233E +:1038D000F1F2213009F058C0918182819130E1F4F8 +:1038E0000E5F1F4F6AE070E0893311F460E570E00D +:1038F0000E94AD0E17C0A114F4E0BF0609F486CFF4 +:10390000C5010E948832811101C001502FEFA21A17 +:10391000B20AB5CF5801D6CF923039F40E5F1F4F9F +:103920000E94010C0F5F1F4FD0CF933029F40E5F20 +:103930001F4F0E94C80BF6CF943019F00F5F1F4F36 +:10394000F1CF0E5F1F4F30E020E0B8016F5F7F4F77 +:10395000F80141818053990B8A30910550F0215034 +:10396000310900F38FE99FE00197F1F700C00000F3 +:10397000F6CF529EF001539EF00D11249C012E0FA4 +:103980003F1F842F8B01E1CFE22FF0E0E754FE4F81 +:103990007490822F86958695869590E0FC01E75578 +:1039A000FE4FE4902770F12C022E02C0F594E794AC +:1039B0000A94E2F7E1E0EE22FF24FC01E756FE4F15 +:1039C000C490D12C022E02C0D594C7940A94E2F779 +:1039D000F1E0CF22DD24FC01E757FE4F8490912CCB +:1039E00002C0959487942A95E2F721E082229924D7 +:1039F000E114F10419F081EE0E94010CC114D1040C +:103A000019F086EE0E94010C39E36AE070E073124F +:103A100002C060E570E0872D0E94AD0ECD2819F040 +:103A200086EE0E94C80BEF2819F081EE0E94C80BA9 +:103A3000892809F477CF6AE070E08CE259CF81E001 +:103A40000E94361603C081E00E942A160F900F9044 +:103A50000F900F900F90DF91CF911F910F91FF90DA +:103A6000EF90DF90CF90BF90AF909F908F907F901E +:103A70006F905F900C941F1682E0E2CF043E110518 +:103A800009F421C1053E110509F47DC0013E11056F +:103A900009F0D1C380933F0278C00338FFE51F07C8 +:103AA00009F463C008F5063F110509F40AC108F4DA +:103AB00006C102383FE5130709F0BDC3882309F4A6 +:103AC000BAC381EE0E94010C83EE0E94010C8FE4C8 +:103AD0000E94010C8FE40E94C80B83EE0E94C80B69 +:103AE00081EE0E94C80BA7C305384FE5140709F4FF +:103AF000B2C008F457C006389FE5190709F4C2C0E0 +:103B00000738EFE51E0709F096C3882309F47ECE37 +:103B100087E20E94010CFFEF28EA31E0F1502040DB +:103B20003040E1F700C000008CE20E94010C87E207 +:103B30000E94C80B8BE10E94010C4FEF50EE80E019 +:103B4000415050408040E1F700C000008CE20E94EC +:103B5000C80B8BE10E94C80B40E56FEF84EB0E941D +:103B6000DB1581E080933E0251CE882309F463C3C4 +:103B700081EE0E94010C83EE0E94010C80E50E9400 +:103B8000010C80E5A8CF809342021093410200937C +:103B90004002882321F081E08093F3024CC310920D +:103BA000F30249C3882379F180913F02882349F0C9 +:103BB000809140020E94C80B80EE0E94010C8AE2B4 +:103BC0000CC0809142028823D1F3809140020E9470 +:103BD000C80B80EE0E94010C8CE40F900F900F90A8 +:103BE0000F900F90DF91CF911F910F91FF90EF9069 +:103BF000DF90CF90BF90AF909F908F907F906F900D +:103C00005F900C94010C8AE20E94C80B8CE40E9425 +:103C1000C80B80EE0E94C80B80913F02811105C045 +:103C200080914202882309F4F1CD80914002D5CFE2 +:103C3000882309F400C380913E02882309F4FBC263 +:103C40000E94BF1A9093A1028093A00210923E029C +:103C500010920101F0C2882371F1809170018111ED +:103C600004C080910001882339F0109270011092F5 +:103C700000010E94E20EDFC281E080937001809318 +:103C80000001F7CF8823B9F080913D02882349F0E5 +:103C900080EE90E0909372018093710110923D024A +:103CA000E8CF86E690E0909372018093710181E005 +:103CB00080933D02DECF61E00E94860CBCC262E0D0 +:103CC000FBCF64E0F9CF882321F081E08093F202FA +:103CD000B2C21092F202AFC2882331F081E0809329 +:103CE000F50210926801A7C21092F502A4C2073C27 +:103CF0002CE5120709F4AEC008F4A7C0083C4CE557 +:103D0000140709F4ACC0093C1C4509F0B4C241E4F5 +:103D100056E16DE476E179C0043DECE51E07A8F4B8 +:103D20000E3CFCE51F0708F071CD0C3C2CE512079A +:103D300009F49FC043E856E164E976E10D3C1C4577 +:103D400008F463C061E081E046C0053D4CE514071E +:103D500009F45CCD08F492C00D351D4509F456CD2B +:103D60008AC28091630480FF31C08E7F8093630498 +:103D7000609163047091640480916504909166047D +:103D80000E941615809150038160809350039FEF2D +:103D9000E0E7F2E09150E040F040E1F700C00000C1 +:103DA0000F900F900F900F900F90DF91CF911F9178 +:103DB0000F91FF90EF90DF90CF90BF90AF909F90CA +:103DC0008F907F906F905F900C94450D81608093F1 +:103DD000630461E086950F900F900F900F900F9005 +:103DE000DF91CF911F910F91FF90EF90DF90CF90D7 +:103DF000BF90AF909F908F907F906F905F900C944A +:103E0000A51640ED56E169ED76E10F900F900F9009 +:103E10000F900F90DF91CF911F910F91FF90EF9036 +:103E2000DF90CF90BF90AF909F908F907F906F90DA +:103E30005F900C94B30849ED56E160ED76E1E5CF73 +:103E400041E756E16AE776E1E0CF4AE756E161E70C +:103E500076E1DBCF49E556E165E676E1D6CF45E68A +:103E600056E169E576E1D1CF4DE456E161E476E1D2 +:103E7000CCCF44E956E163E876E1C7CF0F900F90CD +:103E80000F900F900F90DF91CF911F910F91FF90A6 +:103E9000EF90DF90CF90BF90AF909F908F907F90EA +:103EA0006F905F900C94E3160E3D1C4509F0E3C142 +:103EB0000F900F900F900F900F90DF91CF911F9167 +:103EC0000F91FF90EF90DF90CF90BF90AF909F90B9 +:103ED0008F907F906F905F900C941117C8010E9493 +:103EE0004D0BD82ED6C1092F0F70907F11F002957F +:103EF000007F812F2223C9F0002369F090E2910F07 +:103F0000983010F011110BC080916D03082B0093B5 +:103F10006D030E942C0B812F0E94010C17C0809111 +:103F20009702082B00939702F4CF0E94C80B00233E +:103F300069F00095105E183010F0B11027C0809124 +:103F40006D03082300936D030E942C0B98E0C91A9F +:103F5000D108E4E0CE16D10408F058CC0E949D0EA2 +:103F60000F900F900F900F900F90DF91CF911F91B6 +:103F70000F91FF90EF90DF90CF90BF90AF909F9008 +:103F80008F907F906F905F900C94050E80919702B8 +:103F9000082300939702D8CF892F8F70907F90329B +:103FA00011F08295807FF1E0BF120CC0222329F02E +:103FB000333060F60E94BE0BC9CF323038F60E9413 +:103FC000B30BC4CF222341F03323A1F340FFA3CF8F +:103FD0004F70F7014583EECF332389F3193309F08E +:103FE000F5C0FFEF27EE33E0F15020403040E1F71D +:103FF00000C00000812F0E94C80BA8CF892F869592 +:104000008695837061F0813009F0A0CF812F937085 +:10401000211102C090E080E00E945A0897CF812FC2 +:104020009370211102C090E080E00E9470088ECF52 +:10403000892F8370A1F5211189CF812F82958695D3 +:104040008770880F880F412F4F70082E01C0440FD2 +:104050000A94EAF7212F207114FF07C02FE030E007 +:1040600001C0220F8A95EAF7209596959695937050 +:10407000923081F0822F842B933030F4809198021B +:10408000913029F0242B82230E94AF0B5FCF842B29 +:10409000822BFACF242B809198028227F5CF869528 +:1040A000222311F0892F8170882309F44FCF812FAB +:1040B000829586958770880F880F412F4F70082E44 +:1040C00001C0440F0A94EAF7212F207114FF07C0A2 +:1040D0002FE030E001C0220F8A95EAF720959695EF +:1040E00096959370923081F0822F842B933030F428 +:1040F00080918403913029F0242B82230E94191689 +:1041000025CF842B822BFACF242B80918403822706 +:10411000F5CF092F0F70222329F0802F0E94361629 +:10412000812F48CF812F0E94B30B802F0E942A1627 +:104130000DCF812FE1EF1E1789F1E11750F0F0EF5D +:104140001F17B9F02223B1F13111E5CE892F8F71FC +:1041500029C042EF141749F153EF1513F3CF80E054 +:10416000222361F29F7181E001C0880F9A95EAF7DE +:10417000C5CF222379F0323008F0E8CE292F2F71F5 +:1041800081E090E001C0880F2A95EAF790918403BE +:104190008927B4CF333008F0D9CEF0CF892F8F7173 +:1041A000222321F20E943616D1CE892F8F7122232D +:1041B000C9F3BCCF332379F0893341F48FEF97EE05 +:1041C000E3E081509040E040E1F712CF8FE39CE9BB +:1041D0000197F1F70DCF892F8F71A8CF0031FFE53F +:1041E0001F0709F42CCC01312FE5120709F444CC48 +:1041F0000E944E086093FA027093FB028093FC02C7 +:104200009093FD02F7018281043F110509F453CD1B +:1042100008F043CC003E110509F455CD08F02ECC32 +:104220000E31110540F00132110508F401CD0C32B8 +:10423000110509F451CDF7019281911135CE80918C +:104240006D0382720A3CFCE51F0709F40DCE08F0ED +:1042500063CD053C3CE5130709F4F2CD08F047CDEA +:10426000033C5CE5150709F4CCCD08F0E4CD023C35 +:104270001C4509F476CDF70100811181992309F4D9 +:104280002DCEC8010E942710D82E682FC8010E9489 +:10429000750BB8018D2D0E941A100E94C209182FAB +:1042A000B82EF70122814581342F32953F70892F36 +:1042B00082958F70C82ED12C8C3008F047CEF60135 +:1042C000E55EFB4C0C945C3200313FE5130709F4CA +:1042D000BACB01314FE5140709F094CF82E0B4CB9B +:1042E00085E0DE01119601900D928A95E1F7F701C4 +:1042F000228189819A8121119ECA0E944D0B182F1B +:10430000A2CA1F93CF93DF9380916302807FA9F4A9 +:1043100080916002882389F080919502D091640297 +:1043200060915E0270915F02A0916102B0916202A1 +:10433000C62FC72316E0D81304C0DF91CF911F9179 +:10434000089590E0109711F0CF3F19F4019687700F +:10435000F2CF189F9001199F300D1124F901EB59EC +:10436000FD4F41814713F2CF40814613EFCF428189 +:104370004111ECCF438154814A1B5B0B403A5105FC +:1043800028F7809163028F70806180936302F90146 +:10439000E659FD4F80818F70806180838EE592E0C9 +:1043A0000E94E61BDF91CF911F910C94430BAF92BB +:1043B000BF92CF92DF92EF92FF920F931F93CF9312 +:1043C000DF93CDB7DEB761970FB6F894DEBF0FBEAF +:1043D000CDBF8C0185E0F801DE011D9601900D92A4 +:1043E0008A95E1F7F801E2808EE5A82E82E0B82EEA +:1043F00060916102709162026115710509F432C128 +:1044000090915E0240915F02892F84238F3F09F4CF +:1044100029C120813181C380D480F0906002F601EF +:10442000E61BF70BFF2009F4E8C080916302582FC8 +:10443000507FE03AF10508F0ABC0511177C0FE2C77 +:10444000431321C092131FC0E1101DC08F70806103 +:1044500080936302C5010E94E61B80916302F8010C +:1044600085838F2D61960FB6F894DEBF0FBECDBF4A +:10447000DF91CF911F910F91FF90EF90DF90CF9040 +:10448000BF90AF900895CD2829F0822F83238F3FCE +:1044900009F003C180E0F82FF170DF2E80FF3CC0EF +:1044A000809195024091640256E0841315C02D87D7 +:1044B0003E878D859E850E945610292F22952F704C +:1044C0002230F0F0243018F59F70F1F0F80195815A +:1044D000907FD1F4D12C1EC090E0589FF001599FDD +:1044E000F00D1124EB59FD4F6181361306C0608138 +:1044F000261303C06281E6120FC001968770D5CFE4 +:104500009F7011F0882331F3805E883018F3C80162 +:104510000E94E61BFD2CA5CFEE2009F4A2CF8091CE +:104520006302816080936302F12C9BCF431306C02A +:10453000921304C0F801EE2009F479C0C8010E946A +:104540006210882309F1EE20F9F080916302803235 +:1045500070F020915E0230915F0238872F831986B8 +:10456000DB86CA868C87CE0107960E94E61B86E012 +:10457000F801AEE5B2E001900D928A95E1F70E9454 +:104580008121FF24F3946DCFC8010E94E61BF9CF6F +:1045900051110AC08EE592E00E94E61B86E0F5010B +:1045A00011928A95E9F7C0CF43130FC092130DC043 +:1045B000E1100BC0F8018583C8010E94E61B86E06C +:1045C000F50111928A95E9F74CCFC8010E9462105B +:1045D0008823D1F2EE20C1F280916302803238F25A +:1045E00020915E0230915F023A8329831B82DD8233 +:1045F000CC828E83CE010196B8CFE03AF105F8F671 +:10460000FE2CEE2009F243131FC092131DC08091AF +:10461000630280FD10C0982F907F69F0F8018583B8 +:10462000903F31F0982F907F905F8F70892B85831A +:10463000C8010E94E61B86E0F801AEE5B2E00190F9 +:104640000D928A95E1F70DCFC8010E946210811189 +:104650008ECF80916302816080936302C8010E94C3 +:10466000E61BFFCEEE2009F48FCFC8010E94621036 +:10467000F82E882309F488CF86E0F801AEE5B2E091 +:1046800001900D928A95E1F780915E0290915F0210 +:104690000E9456100E948121E4CE81E08E25FBCE3F +:1046A0001F93CF93DF93CDB7DEB767970FB6F8941C +:1046B000DEBF0FBECDBF4B8B5C8B6D8B7E8B8F8B2C +:1046C0006111109297021A8A198A85E0FE01739689 +:1046D000DE011D9601900D928A95E1F786E0FE01BC +:1046E0003D96DE01179601900D928A95E1F7CE0175 +:1046F00007960E94D721882389F016E080919502C1 +:104700009091640289134BC067960FB6F894DEBF90 +:104710000FBECDBFDF91CF911F91089586E0FE01BE +:104720003796DE01119601900D928A95E1F78A8500 +:104730009B85892B11F38F81988589238F3FE9F21F +:104740002091640230E0C901019687709927409159 +:1047500095024817190681F410926D030E946711A3 +:10476000109264021092950286E0EEE5F2E0DF011D +:104770001D928A95E9F7C1CF96E0929FD001939F51 +:10478000B00D1124AB59BD4FFE01319601900D9231 +:104790009A95E1F7809364020E94430BAECF819F0C +:1047A000C00111248B599D4F0E94D721882309F401 +:1047B000ABCF8091950290E0019687709927809306 +:1047C00095029CCF7F928F929F92AF92BF92CF9291 +:1047D000DF92EF92FF920F931F93CF93DF93CDB7AA +:1047E000DEB764970FB6F894DEBF0FBECDBF8E0163 +:1047F0000F5F1F4F8AE0D8011D928A95E9F79FE469 +:10480000C92E91E0D92EF12CE12CAA24A394B12C2D +:104810003FE4832E31E0932EF60181916F018F3FAB +:1048200009F443C0F894E82FE295EF70F0E021A17D +:104830008F70A50102C0440F551F8A95E2F7CA0187 +:10484000922F982B91A392A18095892382A30E94F5 +:10485000660900C0E8E4F1E0712C31E021912F3FBE +:1048600009F479C0A22FA295AF70B0E090968C9118 +:1048700090E02F7002C0959587952A95E2F780FD0C +:104880006AC0832F782A330F8E169F0639F7F601F8 +:10489000319780818F3F11F00E94680950EA5A9544 +:1048A000F1F7F801EE0DFF1D70828FEFE81AF80A9C +:1048B000A5E0EA16F10409F0AFCF4AE050E0B801F4 +:1048C0008DED92E00E9472327C01892B41F08AE0EA +:1048D000F801ADEDB2E001900D928A95E1F71091EB +:1048E000E802E114F104C9F181E080939B020E9487 +:1048F000BF1A90939A0280939902809199029091A5 +:104900009A020E94B01A069770F0ADEDB2E0E12F66 +:10491000F0E0E15DFC4F8D91819322E0A23EB20771 +:10492000D1F710929B0281E090E0EF28D1F06496DD +:104930000FB6F894DEBF0FBECDBFDF91CF911F91B0 +:104940000F91FF90EF90DF90CF90BF90AF909F902E +:104950008F907F90089580E095CF80919B02811188 +:10496000CCCF0E947A0ED82EE091E802882309F479 +:10497000DEC07E0140E1E40EF11C85E0D7011D920E +:104980008A95E9F70E2F10E0015D1C4F8091D60249 +:104990008A3008F095C047E259E1B701C8010E948A +:1049A000360E882309F4AFC045E656E2B701C801C8 +:1049B0000E94360E882309F4A6C04BE757E1B701E1 +:1049C000C8010E94360E882309F49DC04AE458E1CC +:1049D000B701C8010E94360E882309F494C048E24A +:1049E00058E1B701C8010E94360E882309F48BC034 +:1049F0001092D6028091E70290E045E050E0B701C6 +:104A0000815D9C4F0E94723221E02093A602892B87 +:104A100009F06CC0D12C80910101811111C08091ED +:104A2000A0029091A1020E94B01A813A9F4040F0EA +:104A300040E56FEF8CEF0E94DB1581E08093010170 +:104A40008EE9E82E82E0F82E10E000E0D7018D918B +:104A50007D018823D1F08695F80109F465C0E850FE +:104A6000FE4F808191819C878B871D860E94BF1A93 +:104A70008160782F9F878E87F701319710824B8551 +:104A80005C856D858F850E9450230E5F1F4F04301B +:104A90001105E1F66091FA027091FB028091FC022F +:104AA0009091FD020E94320861367A4E810591058F +:104AB00028F040E060E080E00E94C20E8D2D37CFEC +:104AC00080919C0290919D020E94B01A843F914077 +:104AD00008F061CF8091A602882309F49BCF85E07E +:104AE000F70111928A95E9F71092A602A091E702C8 +:104AF000B0E0A15DBC4F85E0FE01709601900D9283 +:104B00008A95E1F788CF8091D6028F3F31F08F5F91 +:104B10008093D6028A3008F46DCF0E94BF1A90931A +:104B20009D0280939C02D6CFEC50FE4F9ACFF0E0CE +:104B3000E15DFC4FF89485E0A6EBB2E001900D92A8 +:104B40008A95E1F765E070E086EB92E00E949D08AF +:104B50008093B5020E946609F894E091F002F0E0BB +:104B6000E351FD4F80818B878093BC0261E070E050 +:104B7000CE010B960E949D088093BB020E9466099D +:104B8000F894C090BD02D090BE02E090BF02F090B9 +:104B9000C0028091A2029091A302A091A402B091C0 +:104BA000A502C816D906EA06FB06D1F0C092A202F9 +:104BB000D092A302E092A402F092A5020E947A0E83 +:104BC00081110EC00E944E08C61AD70AE80AF90AD7 +:104BD000C092D702D092D802E092D902F092DA02C3 +:104BE0000E946609F8948091C8028823F1F080FF42 +:104BF0000DC08091C10280FF25C090916304916037 +:104C00009093630460E086950E94A5168091C80287 +:104C100081FF09C020E04091C4026091C3028091ED +:104C2000C2020E9428151092C8020E946609F894D8 +:104C30008091C902882349F00E94400F0E946609B2 +:104C400080E075CE0E94210EE1CF0E94250FF6CFA5 +:104C5000EF92FF920F931F93CF93DF9300D000D07A +:104C60000F92CDB7DEB7162FE82EF12CC701880FB3 +:104C7000991F662339F188509E4FFC0180819181F4 +:104C80009A83898301E00B830E94BF1A8160782F89 +:104C90009D838C83F701E256FD4F0127110F102BE6 +:104CA000108349815A816B818D810F900F900F90F5 +:104CB0000F900F90DF91CF911F910F91FF90EF9088 +:104CC0000C9450238C509E4FD8CFCF92DF92EF920E +:104CD000FF920F931F93CF93DF930F92CDB7DEB761 +:104CE000EE24E394F12C0CEB12E09E012F5F3F4F7A +:104CF00041EB52E063E082E00E948518082F882390 +:104D000021F1C090EA028C2D90E09C0123513D4F8F +:104D100079011981F9018081181BD12E80E00AC028 +:104D2000DA94F70180818F5F808360E08C2D0E9490 +:104D30002826802F1D14A4F3912F17FD90E0191B36 +:104D400011110EC081110E942A0B802F0F90DF914C +:104D5000CF911F910F91FF90EF90DF90CF9008952A +:104D60001F5FF70180818150808361E08C2D0E945C +:104D70002826802FE5CF1F921FB61F9211248F93F4 +:104D80009F93AF93BF9380916403811113C080916F +:104D9000650390916603A0916703B0916803419603 +:104DA000A11DB11D8093650390936603A0936703D3 +:104DB000B0936803BF91AF919F918F911F901FBED9 +:104DC0001F901895CDB7DEB7E0970FB6F894DEBF09 +:104DD0000FBECDBF84B7877F84BF0FB6F894A89568 +:104DE00080916000886180936000109260000FBE27 +:104DF00080E890E00FB6F894809361009093610092 +:104E00000FBE85B7806885BF85B7806885BF84E69B +:104E100099E090933302809332020E94A4060E948C +:104E20006F078091E20084608093E2007894809123 +:104E30007A038823A1F01091E9001F709091EC0093 +:104E4000892F817090FD80E8182B1092E9008091E5 +:104E5000E80083FD0E9470111F701093E90082E04A +:104E600084BD93E095BD9AEF97BD80936E0010923C +:104E7000D7021092D8021092D9021092DA020E9440 +:104E80008910811102C00E94E50F0E947A0E809362 +:104E9000590180915901882309F4C9C01092730106 +:104EA00085E2809374010E947A0E81110E9467301E +:104EB0008091590181112FC0FE01359686E0DF01F6 +:104EC0001D928A95E9F786E6898387E98A8386ECCD +:104ED0008B8384E38C8385E38D833497AFE4B1E0E7 +:104EE000CE010B9621912D938E179F07D9F787E05E +:104EF000E9E7F1E0DE01919601900D928A95E1F7E4 +:104F0000FE01B196A8E4B1E0CE01889621912D93DF +:104F10008E179F07D9F78091590195E0811190E094 +:104F20009093E80285E0891B8093E7020FE411E08B +:104F300084E5E82E81E0F82EF80181918F018F3F02 +:104F400011F00E946809E016F106B1F708E411E0DB +:104F5000BFE4EB2EB1E0FB2ED8018D918D018F3F88 +:104F600011F00E946809E016F106B1F78AE0EFE25D +:104F7000F3E0DF01282F1D922A95E9F7EDEDF2E02D +:104F8000DF011D928A95E9F70E946419811102C020 +:104F90000E94111782E090E00E94883280932403DF +:104FA00084E090E00E948832182F82E290E00E9414 +:104FB0008832982F812F9093DC028093DB020E942D +:104FC000E223EFE7FBEB3197F1F700C000000E940E +:104FD000E22380912F0380FF2EC06FEF7FEF90E0E0 +:104FE00080E00E94BA3281E08093E00080E280930A +:104FF000D8001092C9008FE19EE40197F1F700C03C +:10500000000087E090EBDC0180936C0690936D06C6 +:10501000A0936E06B0936F0688E19CE00FB6F894FB +:10502000A895809360000FBE90936000FFCF85E24B +:105030008093730136CF83E090E00E9488320E9413 +:10504000AF0B809184030E94DE150E947A0E8111BD +:1050500002C00E946A3083E080931F0380E2809345 +:1050600051030E94682E6DE070E08CE492E00E9493 +:10507000F50E892BE9F580911F0363E070E081FD57 +:1050800005C289E492E00E94F50E892B89F56DE056 +:1050900070E089E392E00E94F50E892B49F50E94A9 +:1050A0004E086058774C8E4F9F4F60935803709313 +:1050B000590380935A0390935B03EAE6F4E080E09F +:1050C00092E0DF019C011D9221503040E1F7F09306 +:1050D0006B06E0936A068FEF9FEF909369048093CD +:1050E000680481E080935D0380935C031092200349 +:1050F0008091E902811136C00E946419811104C0B7 +:105100000E9411170E94F21688E090E00E949032EF +:1051100060936304709364048093650490936604C1 +:10512000809150038360809350036E7F71F40E94DE +:10513000F21688E090E00E949032609363047093CE +:10514000640480936504909366040E94B80880917B +:10515000630480FF04C060E086950E94A51681E08C +:105160008093E90280915901811106C084EF8093F8 +:10517000670185EF8093660120916701A22FA295B8 +:10518000AF70B0E091963C9191972F7081E090E0E4 +:10519000BC01022E01C0660F0A94EAF7462F409523 +:1051A000432391964C93919792963C919297362BEC +:1051B00092963C93929740916601E42FE295EF70AE +:1051C000F0E031A14F70042E01C0880F0A94EAF775 +:1051D000982F9095932391A392A1892B82A39096C7 +:1051E0008C9190E002C0959587952A95E2F78170A1 +:1051F00020A130E002C0359527954A95E2F792E06C +:1052000020FF90E0892B8093F1029091590181E079 +:1052100098279093F002891B8093EA020E940A1754 +:1052200060E08AE00E94A51681E00E94191680EED7 +:1052300090E090937201809371010E94E20E8AE5E2 +:1052400091E09093610380936003A0E46A2E8091C3 +:105250007A03FF24F39400E112E1853009F465C17B +:105260000E94E223E82E81110E944E08FFE22F2EB9 +:10527000F3E03F2EE5E2F3E0D10110E000E0B02ED4 +:10528000DD9081918D1509F474C18D25C12CFF2409 +:10529000F3949F2D982309F467C10E947A0E882306 +:1052A00099F0C9A2BAA2DF2081E009F480E08BA3C3 +:1052B0000E94BF1A8160782F9DA38CA349A15AA197 +:1052C0006BA18DA10E945023F801EB5DFC4F808102 +:1052D000F826F0828091F102E82FEE0FEE0F909108 +:1052E0006701A92FA295AF70B0E090962C9130E0A5 +:1052F0009F7002C0359527959A95E2F72170332764 +:1053000090916601A92FA295AF70B0E090964C9154 +:1053100050E09F7002C0559547959A95E2F7CA01F3 +:105320008170992740FF02C082E090E0822B8E2B93 +:105330008093F1021091F0028F70E82FF0E0E250BC +:10534000FE4F80819091EF02890F8093EF02F12C44 +:1053500084306CF0E12FF0E0E351FD4F80818F5FEE +:10536000808360E0812F0E942826FF24F39480919F +:10537000EF028D3F6CF4E12FF0E0E351FD4F8081AF +:105380008150808361E0812F0E942826FF24F394BE +:105390008091EF02082E000C990B64E070E00E94EF +:1053A00048328093EF02F1100E942A0B80915D0336 +:1053B000882351F180912103909122030E94B01A19 +:1053C000C29708F0EDC0209168043091690421155E +:1053D000310509F0F0C180915C038823A9F00E9497 +:1053E0004E08009158031091590320915A033091AF +:1053F0005B03601B710B820B930B6F3F7F4F8F4FD3 +:105400009F4710F40E94250FE11001C0F1100E9487 +:10541000400F0E94A2100E949D0E909123038917B5 +:1054200031F00E949D0E809323030E94050E80910F +:105430007A03843009F00BCF83E08093E9008091F8 +:10544000E80082FF04CF8091E80090E085FF0CC067 +:105450000E94C30630E2E32EF12C8E010F5F1F4F36 +:10546000882309F487C291E08091E8008B778093CC +:10547000E800992309F4EBCEE981E150E33108F02B +:10548000DDC2F0E0E95DFB4C0C945C3286E492E016 +:10549000FACD80917A03843009F437C080E00E940D +:1054A000050E8091EC02811109C0F092EC0280910E +:1054B000630481708093EB020E94210E0E94250FED +:1054C0000E94A2101092640388E190E00FB6F89455 +:1054D000A895809360000FBE6092600083B7817FC3 +:1054E000846083BF83B7816083BF7894889583B7D6 +:1054F0008E7F83BF0FB6F894A89580916000886175 +:1055000080936000109260000FBE80917903882321 +:1055100061F00E94E223EFE2F3E081918111B7C3D1 +:10552000A9E3B3E0AE17BF07C1F780917A038530D6 +:1055300009F4AFCF10926D030E9467110E949D0E77 +:105540000E94050E1092EC028091EB02882349F034 +:105550008091630481608093630460E086950E947B +:10556000A5160E94E20E7CCEC394FF0C27E0C21267 +:1055700090CE0F5F1F4F0A30110509F080CE8FEFDC +:1055800088A789A71AA60E94BF1A8160782F9CA7B6 +:105590008BA748A559A56AA58CA50E9450239ACE31 +:1055A0000E94BF1A909322038093210360E080E061 +:1055B0000E9486080E949D0E8093FE020E947A0E31 +:1055C000882309F4DFC06091FA027091FB02809198 +:1055D000FC029091FD020E943208613375478105FB +:1055E000910540F00E94250F80915D03882309F406 +:1055F000F2CEE9CE0E94400F61E080E00E94860872 +:1056000060E080E891E00E94FA1462E080E00E948D +:105610008608809184030E94750C823009F48CC046 +:1056200008F081C0882309F487C0813009F48AC05A +:1056300065E080E00E94860860E08EE991E00E94CB +:10564000FA1466E080E00E9486086091FE0266958A +:10565000617083EA91E00E94FA1467E080E00E94A2 +:1056600086086091FE026095617088EA91E00E9470 +:10567000FA1468E080E00E9486086091FE0262FBF6 +:10568000662760F98CEA91E00E94FA146091F602B4 +:105690007091F7028091F8029091F9020E9432080D +:1056A0006D3271408105910508F49ECF0E944E082D +:1056B0006093F6027093F7028093F8029093F902D8 +:1056C0008091F502811104C080916801811142C06E +:1056D0006DE080E00E94860860E081EB91E00E942E +:1056E000FA146AE080E00E94860881E080936801F5 +:1056F0008091F40290E00196817099278093F402E2 +:1057000021E030E0281B390B40E6429FC001439F57 +:10571000900D11242091F302222351F187529C4FC6 +:105720000E94610661CF833089F0843009F080CF18 +:1057300060E082E991E003C060E086E891E00E94C9 +:10574000FA1476CF60E08CE891E0F9CF60E088E968 +:1057500091E0F5CF6AE080E00E94860860E081EB8E +:1057600091E00E94FA146BE080E00E948608C0CFAE +:105770002091F202222319F0875E9C4FD1CF875AE5 +:105780009D4FCECF64E080E00E94860860E087EB0A +:1057900091E00E94FA1465E080E00E94860860E0D3 +:1057A0008DEB91E00E94FA1469E080E00E94860887 +:1057B00089E994E0B5CF8091200361E070E0811128 +:1057C0000ACE082F10E02B01082E02C0440C551CF5 +:1057D0000A94E2F7A90144215521452B09F448C058 +:1057E00090911F0390FD46C08295880F807680932C +:1057F0006B019801369527953695279520936E0174 +:10580000815E80936C0110926F0124E630E047E0E6 +:1058100050E069E671E088E70E945F2F892B09F06C +:10582000DACDA80175E0440F551F7A95E1F7809114 +:105830001F0380FD2DC046595B4F04E610E020E2B7 +:1058400030E060E488E70E94862F892B09F0C3CD01 +:105850000E94400FC201809590954090680450903E +:105860006904482259225092690440926804B3CDD9 +:105870008F5FA7CF880F880F880F80936B011092DE +:105880006E01895F80936C0183E080936F01BDCFCF +:10589000EFEFF2E080E2DF011D928A95E9F7E2E1A5 +:1058A000F2E0F8ABEFA70EE012E067E0A62E992435 +:1058B0009394AFA5B8A96D91B8ABAFA7F80181914A +:1058C0008F01840F952F911D9C0126593B4F3EA7B8 +:1058D0002DA7E62FF0E0E150FD4F30E020E07A2CDC +:1058E000721AB92C022E01C0BB0C0A94EAF7CDA49F +:1058F000DEA490E0D6018D916D018B21672D691B8F +:105900006770862E062E000C770BB82F01C0BB0FD8 +:105910008A94EAF78B2E71956195710967707727E4 +:1059200001C086956A95EAF7882A8081882A808254 +:105930009F5F9830F9F62F5F3F4F31962830310541 +:1059400071F6E6E1F2E02FA538A9E217F30709F0B6 +:10595000B0CF04E610E020E230E04FEF52E071CF2C +:105960008091F100D8018D938D01B1E0EB1AF1081F +:1059700009F479CD8091E80085FDF2CF8091E800AF +:105980008B778093E8000E94C306882399F36BCD40 +:105990001A8289E08B8311C08A81823009F48FC119 +:1059A000833091F1813009F049C00E944E080E9475 +:1059B00062326B837C838D839E8380917A038430F3 +:1059C00009F045CC1091E9001F709091EC00892FEF +:1059D000817090FD80E8182B82E08093E90080912F +:1059E000E80080FF0DC050E040E060E270E0CE01D2 +:1059F00001960E94F4068091E8008E778093E8007B +:105A00001F701093E90023CCFE013396D1018D91D4 +:105A10001D018193B9E32B16B3E03B06B9F7CDCF57 +:105A20008A81823059F46B817C818D819E810E94B4 +:105A3000623286E290E00E949C32BFCF8FEF898372 +:105A4000BCCF4C816B818A810E94F40F98278927F3 +:105A500098279E838D83B1CFED80FE80FE24EF24B6 +:105A6000FE248A810B81EEE00E9F80011124FCE868 +:105A70008F9F000D111D11248C8190E0880F991FBC +:105A8000080F191F6F2DC80187960E949C326E2D3A +:105A9000C8018896D0CF0E94780F8FCF8A81813835 +:105AA000B1F058F4803809F088CF4B8160916504DB +:105AB000809164040E94DB1580CF8238E1F0833846 +:105AC00009F07BCF409166046C818B81F3CF60E05D +:105AD0008B810E94A5168B81811103C00E94210E2B +:105AE0006CCF8091630481608093630460E086954D +:105AF0000E94A51662CF8B81809367045ECF8A8156 +:105B0000813899F030F4803809F057CF80916604DD +:105B100041CF823891F0833809F04FCF80916404EF +:105B20008B83809165048C8348CF8091630480FFD0 +:105B300002C086952FCF80E02DCF809167042ACFB9 +:105B4000609163047091640480916504909166048F +:105B50000E94161532CF80E18A832FCF81E08A839D +:105B60008DE118CFCA80DB80DC24CD24DC248E01BB +:105B70000F5F1F4FEC80E00EF12EF11CC6018D511E +:105B80009D4F0E151F0509F418CF2DE1C21621E017 +:105B9000D20658F40E948832D80114968C93FFEFF5 +:105BA000CF1ADF0A0F5F1F4FE9CFF8011482F7CF3A +:105BB0000A811B811027012710279E012F5F3F4F6D +:105BC0006901EC80E00EF12EF11CC8018D519D4F52 +:105BD000E016F10609F4F1CE0D3131E0130728F497 +:105BE000D60114966C910E949C32BFEFCB1ADB0A4F +:105BF0000F5F1F4FEACF0E94680FDFCE85E0ACCF6A +:105C0000CA80DB80DC24CD24DC248E010F5F1F4F93 +:105C1000EC80E00EF12EF11CC6018796E016F1062D +:105C200009F4CBCEECEBCE16E2E0DE0658F40E948F +:105C30008832D80114968C93FFEFCF1ADF0A0F5FDA +:105C40001F4FEACFF8011482F7CF0A811B8110277A +:105C5000012710279E012F5F3F4F6901EC80E00E66 +:105C6000F12EF11CC8018796E016F10609F4A5CEC5 +:105C70000C3B32E0130728F4D60114966C910E9475 +:105C80009C32BFEFCB1ADB0A0F5F1F4FEBCF09BD72 +:105C900019BD09B400FEFDCF8091D8008F7D80939F +:105CA000D8008091E00082608093E0008091E00065 +:105CB00081FDFCCF10926D030E94671136CC86E205 +:105CC00090E00E9488321B821C821D828E8375CEDA +:105CD0001092B9008CE08093B80008959F92AF9223 +:105CE000BF92CF92DF92EF92FF920F931F93CF93C9 +:105CF000DF93B82EEB010E94BF1A6C01EE24E394EF +:105D0000F12CC431D10560F025E0E22EF12CCF3F1B +:105D1000DC0731F0CE0164E170E00E9428327B01A3 +:105D200084EAA82E94E8992E1092BC00A092BC00A0 +:105D30000E94BF1A8C018091BC0087FF0DC080912A +:105D4000B900887F883039F18091B900887F80312F +:105D500011F10FEF1FEF09C00E94BF1A801B910BBA +:105D60008E159F0540F30EEF1FEFCF3FDC07E1F2EA +:105D7000C6010E94B01A8C179D07B0F2C801DF91CE +:105D8000CF911F910F91FF90EF90DF90CF90BF9038 +:105D9000AF909F900895B092BB009092BC000E947B +:105DA000BF1A8C018091BC0087FF0AC08091B900A6 +:105DB000887F883111F0803461F610E000E0DECF9A +:105DC0000E94BF1A801B910B8E159F0558F3CBCFF5 +:105DD0000F931F93CF93DF93EB018093BB0084E875 +:105DE0008093BC000E94BF1A8C018091BC0087FF89 +:105DF00011C02091B900287F81E090E0283211F491 +:105E000090E080E0919581959109DF91CF911F916C +:105E10000F910895CF3FDC0741F30E94BF1A801B0A +:105E2000910B8C179D0708F38EEF9FEFEECF0F932A +:105E30001F93CF93DF93EC0184EC8093BC000E940E +:105E4000BF1A8C018091BC0087FF08C08091BB0005 +:105E500090E0DF91CF911F910F910895CF3FDC0724 +:105E600089F30E94BF1A801B910B8C179D0750F37A +:105E70008EEF9FEFEECF0F931F93CF93DF93EC0145 +:105E800084E88093BC000E94BF1A8C018091BC0002 +:105E900087FF08C08091BB0090E0DF91CF911F91F8 +:105EA0000F910895CF3FDC0789F30E94BF1A801B32 +:105EB000910B8C179D0750F38EEF9FEFEECFCF9293 +:105EC000DF92EF92FF920F931F93CF93DF936B01BB +:105ED0008A017901B9010E946E2EE6010C0D1D1D8B +:105EE000C017D10761F424E92093BC00DF91CF9162 +:105EF0001F910F91FF90EF90DF90CF90089597FD45 +:105F0000F2CFB70189910E94E82EEACFCF92DF92BB +:105F1000EF92FF920F931F93CF93DF93C62F6A01E7 +:105F20007901B8010E946E2E97FD0CC0B8018C2F2C +:105F30000E94E82EE601EC0CFD1CCE15DF0511F0E9 +:105F400097FF0CC024E92093BC00DF91CF911F91F3 +:105F50000F91FF90EF90DF90CF900895B801899155 +:105F60000E94E82EEACFCF92DF92EF92FF920F933A +:105F70001F93CF93DF93F82EE62EEA016901B80153 +:105F80000E946E2E97FD15C0B8018E2D0E94E82E3E +:105F900097FD0FC0B8018F2D81600E946E2EF12CED +:105FA000E12C21E0C21AD108EC14FD0400F597FFA2 +:105FB00011C024E92093BC001816190614F490E0CF +:105FC00080E0DF91CF911F910F91FF90EF90DF90D4 +:105FD000CF900895C8010E94172F97FD04C0FE01BD +:105FE000EE0DFF1D80832FEFE21AF20ADDCF97FD41 +:105FF000E0CFC8010E943B2F97FDDBCFCC0DDD1D0C +:106000008883D7CF84E98093BC0008958EE14A9BB2 +:1060100002C08150E1F74A9BFECF08955A9880E272 +:106020008A95F1F75A9A0895FC013BE03A95F1F709 +:1060300098E020E080E031E040E14A95F1F7880FF8 +:106040004A9B02C08160232742E04A95F1F7000095 +:1060500040E14A95F1F7915079F790E19A95F1F77F +:1060600099B132E03A95F1F7000040E14A95F1F735 +:1060700092FB992790F992272081920F908308959F +:10608000EF92FF920F931F93CF93DF930F92CDB7B1 +:10609000DEB719828C017C01E60EF11C0E151F057E +:1060A00061F481E09981911180E00F90DF91CF91AF +:1060B0001F910F91FF90EF9008950E940630CE013E +:1060C00001960E941430F80181938F01E7CF529A14 +:1060D0005A9A089552985A9AEA9AE9E6F0E080812D +:1060E0008F7C808308956150770B91E001C0990FF8 +:1060F0006A95EAF720E031E0911108C0222391F07F +:106100005A9A80E28A95F1F75A980895492F4823C0 +:1061100039F05A9A232740E24A95F1F79695ECCF49 +:106120005A98F9CF5A98EDCFFF920F931F93CF93C0 +:10613000DF93EC018C01060F111DC017D10731F45C +:10614000DF91CF911F910F91FF900895F9900E94D8 +:106150000E3068E08F2D0E947330EFCF1F920F92A8 +:106160000FB60F921124EF92FF920F931F932F936C +:106170003F934F935F936F937F938F939F93AF93CF +:10618000BF93EF93FF93CF93DF930F92CDB7DEB71B +:1061900019820E940630CE0101960E941430A82F69 +:1061A000A695A695A695282F229525709A2F9570CD +:1061B000290F922F937026952695920F9827977006 +:1061C0008981982B09F075C0A83008F072C080E171 +:1061D0008A95F1F75A9A529AB2E0BA95F1F700C04F +:1061E0005A98EA2EF12CEAE0AE9FD0011124AE5F5E +:1061F000BE4F1896ED91FC9119973097B1F06091D0 +:10620000FC017091FD0116962D913C911797260F78 +:10621000371F13968D919C911497680F791F1596CF +:106220004C91159712968C9109958AE08E9DF001FC +:106230008F9DF00D1124EE5FFE4F6581662351F0B6 +:106240002091FC013091FD0186819781820F931F7F +:106250000E9494300E940E30F0E1FA95F1F75A98BE +:1062600052985A9A80E18A95F1F78AE08E9D8001D2 +:106270008F9D100D11240E5F1E4FD80112966C9148 +:106280001297662371F12091FC013091FD01139664 +:106290008D919C91820F931F0E944030D801ED9107 +:1062A000FC91882311F088E001C082E080830E9485 +:1062B00006300F90DF91CF91FF91EF91BF91AF9199 +:1062C0009F918F917F916F915F914F913F912F910E +:1062D0001F910F91FF90EF900F900FBE0F901F90A6 +:1062E0001895ED91FC91DFCF0F931F93CF93DF9320 +:1062F000EC0108970CF0A9C08AE08C9FF0018D9FFB +:10630000F00D1124EE5FFE4F80819181892B09F4FD +:106310009CC0F894529A5A9885E08A95F1F700004B +:106320008C2F869585709C2F9570890F982F937070 +:1063300086958695890F8E0193E0000F111F9A951F +:10634000E1F7082B0E940E3000C068E0802F0E9409 +:106350007330A0E1AA95F1F752985A9A4A9B27C048 +:1063600087E090E04A9925C08AE08C9F80018D9F4C +:10637000100D11240E5F1E4FF80165816623A1F1F7 +:106380002091FC013091FD0186819781820F931F3E +:106390000E944030811128C0529A5A9AD801ED913A +:1063A000FC9182E08083789482E090E016C000C087 +:1063B000D5CF0197B9F4529A5A9A8AE08C9FF0018E +:1063C0008D9FF00D1124EE5FFE4F0190F081E02DC6 +:1063D00081E08083789481E090E0DF91CF911F91FC +:1063E0000F91089500C0BECF0E940630B0E2BA956A +:1063F000F1F75A98529AE0E1EA95F1F78AE08C9F1A +:10640000F0018D9FF00D1124EE5FFE4F6281662337 +:1064100051F02091FC013091FD0183819481820F24 +:10642000931F0E9494300E940E308AE08C9FF001EE +:106430008D9FF00D1124EE5FFE4F0190F081E02D55 +:106440001082789490E080E0C8CF84E090E0C5CFDF +:10645000AA1BBB1B51E107C0AA1FBB1FA617B7078A +:1064600010F0A61BB70B881F991F5A95A9F78095A6 +:106470009095BC01CD010895991B79E004C0991F46 +:10648000961708F0961B881F7A95C9F7809508958E +:1064900097FB072E16F4009407D077FD09D00E94D1 +:1064A000283207FC05D03EF4909581959F4F0895C2 +:1064B000709561957F4F0895EE0FFF1F0590F49141 +:1064C000E02D099469279627692778278727782759 +:1064D0000895FB01DC0102C005900D92415050402F +:1064E000D8F70895FB01DC0104C08D91019080195B +:1064F00021F441505040C8F7881B990B0895FB01C7 +:10650000DC0102C001900D9241505040D8F708952F +:10651000F999FECF92BD81BDF89A992780B508956B +:10652000A6E1B0E044E050E00C94C232A8E1B0E053 +:1065300042E050E00C94C232262FF999FECF92BD72 +:1065400081BDF89A019700B4021639F01FBA20BD38 +:106550000FB6F894FA9AF99A0FBE08950396272F6A +:106560000E949D320E949C32252F0E949D32242F32 +:106570000C949D320196272F0E949D320C949C32E0 +:10658000DC01CB01FC01F999FECF06C0F2BDE1BDF3 +:10659000F89A319600B40D9241505040B8F70895E2 +:1065A0000E94D7326894B1110C94663308950E940A +:1065B0004B3388F09F5798F0B92F9927B751B0F017 +:1065C000E1F0660F771F881F991F1AF0BA95C9F777 +:1065D00014C0B13091F00E946533B1E008950C947D +:1065E0006533672F782F8827B85F39F0B93FCCF330 +:1065F000869577956795B395D9F73EF490958095F4 +:10660000709561957F4F8F4F9F4F0895E89409C013 +:1066100097FB3EF490958095709561957F4F8F4FD5 +:106620009F4F9923A9F0F92F96E9BB279395F695EB +:10663000879577956795B795F111F8CFFAF4BB0F69 +:1066400011F460FF1BC06F5F7F4F8F4F9F4F16C0CD +:10665000882311F096E911C0772321F09EE8872F57 +:10666000762F05C0662371F096E8862F70E060E013 +:106670002AF09A95660F771F881FDAF7880F96958C +:10668000879597F9089557FD9058440F551F59F075 +:106690005F3F71F04795880F97FB991F61F09F3F0F +:1066A00079F087950895121613061406551FF2CF38 +:1066B0004695F1DF08C0161617061806991FF1CF88 +:1066C00086957105610508940895E894BB276627AF +:1066D0007727CB0197F908950E947F330C94F0330C +:1066E0000E94E23338F00E94E93320F0952311F044 +:1066F0000C94D9330C94DF3311240C9466330E942C +:10670000433370F3959FC1F3950F50E0551F629F7F +:10671000F001729FBB27F00DB11D639FAA27F00DFA +:10672000B11DAA1F649F6627B00DA11D661F829F21 +:106730002227B00DA11D621F739FB00DA11D621F06 +:10674000839FA00D611D221F749F3327A00D611D23 +:10675000231F849F600D211D822F762F6A2F112405 +:106760009F5750409AF0F1F088234AF0EE0FFF1F38 +:10677000BB1F661F771F881F91505040A9F79E3F8F +:10678000510580F00C94D9330C9466335F3FE4F3E9 +:10679000983ED4F3869577956795B795F795E795E5 +:1067A0009F5FC1F7FE2B880F911D9695879597F9EE +:1067B000089597F99F6780E870E060E008959FEF83 +:1067C00080EC089500240A94161617061806090688 +:1067D000089500240A941216130614060506089557 +:1067E000092E0394000C11F4882352F0BB0F40F4DF +:1067F000BF2B11F460FF04C06F5F7F4F8F4F9F4F1F +:106800000895F894FFCF741074107D107D107F10E0 +:106810007D107D107D107410741084107D107D101B +:10682000841058128012231480122314B312D4122D +:106830002314D213DF13731F731FCC1FCC1FFE1F33 +:10684000A61FA61FA61F1820892099209920C82CB2 +:10685000CC2C102D212D2C2D4B2D4E2D7F2DA02DF0 +:106860001E2D1E2DAB2DAE2DB22DD82DFB2DFE2DA8 +:04687000002E252EA3 +:1068740001013C0200000001000000003C02000095 +:106884000005010000003C020000000106000000B9 +:106894003C0200000001070000003C020408000064 +:1068A400000000003C02080C0000000000003C0254 +:1068B400011400000000000036323331F7F6FF66A1 +:1068C40097C634350000000000012F08180DF70C9E +:1068D400F30CEF0C2E08F4F5010021007F220003D5 +:1068E400018000004A004A4A01F6F731333236FF8C +:1068F4004C415945520042617365200047616D6502 +:1069040020005261697365004C6F776572004C4FCB +:10691400434B0043617073004E756D005363726C9A +:1069240000202020202000534F4C415200544D5051 +:10693400535400818283E200E900EA00B500B60006 +:10694400B700CD008301CC008A0192019401210299 +:10695400230224022502260227022A02B300B400DD +:106964006F0070000603060806010606B50200FF64 +:106974000100010000FFFF0000010001FF0000080A +:10698400101818100800000102020202020202029A +:10699400020240227B49012701AC009E0BB70BD7B2 +:0269A4000B00E6 :00000001FF