From d58b14e880580671a297be81303acbef5e28e0b3 Mon Sep 17 00:00:00 2001 From: yoyoerx Date: Wed, 9 Mar 2016 14:04:14 -0500 Subject: Addressed void* return warning & coding style --- keyboard/atomic/atomic.c | 24 ++++++++++-------------- keyboard/atomic/atomic.h | 4 ++-- keyboard/planck/keymaps/lock/keymap.c | 2 +- keyboard/planck/planck.c | 24 ++++++++++-------------- keyboard/planck/planck.h | 4 ++-- quantum/matrix.c | 16 ++++++---------- quantum/template/template.c | 26 ++++++++++---------------- quantum/template/template.h | 4 ++-- tmk_core/common/matrix.h | 4 ++-- 9 files changed, 45 insertions(+), 63 deletions(-) diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index fa66266a4c..30e8122893 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -1,16 +1,16 @@ #include "atomic.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -25,16 +25,12 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} \ No newline at end of file diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index 95982ecad1..d8574efa93 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -24,7 +24,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif \ No newline at end of file diff --git a/keyboard/planck/keymaps/lock/keymap.c b/keyboard/planck/keymaps/lock/keymap.c index 9585764629..f1629492ef 100644 --- a/keyboard/planck/keymaps/lock/keymap.c +++ b/keyboard/planck/keymaps/lock/keymap.c @@ -150,7 +150,7 @@ float start_up[][2] = { {440.0*pow(2.0,(64)/12.0), 1000}, }; -void * matrix_init_user(void) { +void matrix_init_user(void) { init_notes(); play_notes(&start_up, 9, false); } \ No newline at end of file diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 63ca54761c..fe8731ec7b 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,16 +1,16 @@ #include "planck.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); #endif @@ -24,13 +24,9 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index 00b01b54df..e9566b9228 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -40,7 +40,7 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/quantum/matrix.c b/quantum/matrix.c index 95bf4c0973..2dab6ae941 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -48,14 +48,14 @@ static void unselect_rows(void); static void select_row(uint8_t row); __attribute__ ((weak)) -void * matrix_init_kb(void) { +void matrix_init_kb(void) { -}; +} __attribute__ ((weak)) -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { -}; +} inline uint8_t matrix_rows(void) @@ -86,9 +86,7 @@ void matrix_init(void) matrix_debouncing[i] = 0; } - if (matrix_init_kb) { - (*matrix_init_kb)(); - } + matrix_init_kb(); } @@ -152,9 +150,7 @@ uint8_t matrix_scan(void) } #endif - if (matrix_scan_kb) { - (*matrix_scan_kb)(); - } + matrix_scan_kb(); return 1; } diff --git a/quantum/template/template.c b/quantum/template/template.c index 7be7dfc3d1..7dcd67cfcf 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -1,29 +1,23 @@ #include "%KEYBOARD%.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + matrix_init_user(); +} - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} \ No newline at end of file diff --git a/quantum/template/template.h b/quantum/template/template.h index a15061b267..1171dc8e0f 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -19,7 +19,7 @@ { k10, KC_NO, k11 }, \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif \ No newline at end of file diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 85415df719..0b013fc989 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -64,8 +64,8 @@ void matrix_power_up(void); void matrix_power_down(void); /* keyboard-specific setup/loop functionality */ -void * matrix_init_kb(void); -void * matrix_scan_kb(void); +void matrix_init_kb(void); +void matrix_scan_kb(void); #ifdef __cplusplus } -- cgit v1.2.3 From 641859df84bf40025b2c14319d1a168a435562e2 Mon Sep 17 00:00:00 2001 From: yoyoerx Date: Thu, 10 Mar 2016 11:28:34 -0500 Subject: Addressed void* return warning in all keymaps --- keyboard/atomic/atomic.c | 24 +++++++--------- keyboard/atomic/atomic.h | 4 +-- keyboard/atreus/atreus.c | 8 +++--- keyboard/atreus/atreus.h | 4 +-- keyboard/ergodox_ez/ergodox_ez.c | 33 ++++++++-------------- keyboard/ergodox_ez/ergodox_ez.h | 4 +-- keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/colemak/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/dave/keymap.c | 8 +++--- keyboard/ergodox_ez/keymaps/default/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/default_osx/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/dragon788/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/dvorak/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c | 4 +-- .../ergodox_ez/keymaps/erez_experimental/keymap.c | 4 +-- .../ergodox_ez/keymaps/german-kinergo/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/german/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/j3rn/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/jack/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/jacobono/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/jgarr/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/kastyle/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/kines-ish/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c | 6 ++-- keyboard/ergodox_ez/keymaps/ordinary/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 4 +-- .../ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/osx_fr/keymap.c | 4 +-- .../ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/plover/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/software_neo2/keymap.c | 4 +-- keyboard/ergodox_ez/keymaps/tm2030/keymap.c | 8 +++--- keyboard/ergodox_ez/keymaps/tonyabra_osx/keymap.c | 4 +-- .../ergodox_ez/keymaps/workman_osx_mdw/keymap.c | 4 +-- keyboard/ergodox_ez/matrix.c | 16 ++++------- keyboard/hhkb_qmk/hhkb_qmk.c | 8 +++--- keyboard/hhkb_qmk/hhkb_qmk.h | 4 +-- keyboard/jd45/jd45.c | 8 +++--- keyboard/jd45/jd45.h | 4 +-- keyboard/planck/keymaps/lock/keymap.c | 2 +- keyboard/planck/planck.c | 24 +++++++--------- keyboard/planck/planck.h | 4 +-- quantum/matrix.c | 16 ++++------- quantum/template/template.c | 26 +++++++---------- quantum/template/template.h | 4 +-- tmk_core/common/matrix.h | 4 +-- 48 files changed, 148 insertions(+), 179 deletions(-) diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index fa66266a4c..30e8122893 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -1,16 +1,16 @@ #include "atomic.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -25,16 +25,12 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} \ No newline at end of file diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index 95982ecad1..d8574efa93 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -24,7 +24,7 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif \ No newline at end of file diff --git a/keyboard/atreus/atreus.c b/keyboard/atreus/atreus.c index bfc893084f..9d1de631bb 100644 --- a/keyboard/atreus/atreus.c +++ b/keyboard/atreus/atreus.c @@ -1,16 +1,16 @@ #include "atreus.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank }; __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank }; -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -19,7 +19,7 @@ void * matrix_init_kb(void) { } }; -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) diff --git a/keyboard/atreus/atreus.h b/keyboard/atreus/atreus.h index 9dd77859f9..8d5989e442 100644 --- a/keyboard/atreus/atreus.h +++ b/keyboard/atreus/atreus.h @@ -22,7 +22,7 @@ { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/ergodox_ez/ergodox_ez.c b/keyboard/ergodox_ez/ergodox_ez.c index d0eaf33923..97e6de1ee3 100644 --- a/keyboard/ergodox_ez/ergodox_ez.c +++ b/keyboard/ergodox_ez/ergodox_ez.c @@ -5,16 +5,16 @@ bool i2c_initialized = 0; uint8_t mcp23018_status = 0x20; __attribute__ ((weak)) -void * matrix_init_user(void) { - return NULL; -}; +void matrix_init_user(void) { + +} __attribute__ ((weak)) -void * matrix_scan_user(void) { - return NULL; -}; +void matrix_scan_user(void) { + +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") TCCR1A = 0b10101001; // set and configure fast PWM TCCR1B = 0b00001001; // set and configure fast PWM @@ -34,21 +34,12 @@ void * matrix_init_kb(void) { ergodox_blink_all_leds(); - if (matrix_init_user) { - (*matrix_init_user)(); - } - - return NULL; -}; - -void * matrix_scan_kb(void) { - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } + matrix_init_user(); +} - return NULL; -}; +void matrix_scan_kb(void) { + matrix_scan_user(); +} void ergodox_blink_all_leds(void) diff --git a/keyboard/ergodox_ez/ergodox_ez.h b/keyboard/ergodox_ez/ergodox_ez.h index aceb7ed9c3..1e446baf6f 100644 --- a/keyboard/ergodox_ez/ergodox_ez.h +++ b/keyboard/ergodox_ez/ergodox_ez.h @@ -123,8 +123,8 @@ inline void ergodox_led_all_set(uint8_t n) { k0D, k1D, k2D, k3D, k4D, KC_NO } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); diff --git a/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c b/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c index 48f8c5d2ff..48257d23a3 100644 --- a/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c +++ b/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c @@ -158,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c index be29a1bff1..25ab0ff18d 100644 --- a/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c +++ b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -243,12 +243,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/colemak/keymap.c b/keyboard/ergodox_ez/keymaps/colemak/keymap.c index ee72c42635..9601726f7b 100644 --- a/keyboard/ergodox_ez/keymaps/colemak/keymap.c +++ b/keyboard/ergodox_ez/keymaps/colemak/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c index 537b15eeac..a2780b36fa 100644 --- a/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c @@ -253,12 +253,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/dave/keymap.c b/keyboard/ergodox_ez/keymaps/dave/keymap.c index a0c74ad805..3ac2842fbf 100644 --- a/keyboard/ergodox_ez/keymaps/dave/keymap.c +++ b/keyboard/ergodox_ez/keymaps/dave/keymap.c @@ -154,12 +154,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - return NULL; +void matrix_init_user(void) { + }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { /* leds is a static array holding the current brightness of each of the * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and * -1s in the code below, and because wasting a byte really doesn't matter @@ -191,5 +191,5 @@ void * matrix_scan_user(void) { } } - return NULL; + }; diff --git a/keyboard/ergodox_ez/keymaps/default/keymap.c b/keyboard/ergodox_ez/keymaps/default/keymap.c index f252bf71d5..1c3bb51713 100644 --- a/keyboard/ergodox_ez/keymaps/default/keymap.c +++ b/keyboard/ergodox_ez/keymaps/default/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/default_osx/keymap.c b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c index 9d7364d378..81b49ceff9 100644 --- a/keyboard/ergodox_ez/keymaps/default_osx/keymap.c +++ b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c @@ -158,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/dragon788/keymap.c b/keyboard/ergodox_ez/keymaps/dragon788/keymap.c index d18ce73bfe..3aec8c6cf9 100644 --- a/keyboard/ergodox_ez/keymaps/dragon788/keymap.c +++ b/keyboard/ergodox_ez/keymaps/dragon788/keymap.c @@ -200,12 +200,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/dvorak/keymap.c b/keyboard/ergodox_ez/keymaps/dvorak/keymap.c index 53934ea345..22947327d3 100644 --- a/keyboard/ergodox_ez/keymaps/dvorak/keymap.c +++ b/keyboard/ergodox_ez/keymaps/dvorak/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c index bdac229e5c..1d8e66a082 100644 --- a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c +++ b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c index 20c95f1ee0..24ff1c6884 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -156,12 +156,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c index 751049ac5e..572e03a1d5 100644 --- a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -182,12 +182,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/german/keymap.c b/keyboard/ergodox_ez/keymaps/german/keymap.c index d91f1e9373..7ec8d99cc0 100644 --- a/keyboard/ergodox_ez/keymaps/german/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german/keymap.c @@ -157,12 +157,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c index ddc64e55e7..b5463cb72d 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -157,12 +157,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/jack/keymap.c b/keyboard/ergodox_ez/keymaps/jack/keymap.c index f8f73a1afd..80bf9d535d 100644 --- a/keyboard/ergodox_ez/keymaps/jack/keymap.c +++ b/keyboard/ergodox_ez/keymaps/jack/keymap.c @@ -89,12 +89,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/jacobono/keymap.c b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c index ed8dfc731b..6b19800af0 100644 --- a/keyboard/ergodox_ez/keymaps/jacobono/keymap.c +++ b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c @@ -244,12 +244,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/jgarr/keymap.c b/keyboard/ergodox_ez/keymaps/jgarr/keymap.c index fbdc25109e..a3ad2040f4 100644 --- a/keyboard/ergodox_ez/keymaps/jgarr/keymap.c +++ b/keyboard/ergodox_ez/keymaps/jgarr/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/kastyle/keymap.c b/keyboard/ergodox_ez/keymaps/kastyle/keymap.c index ecf1be8724..3982e0a19f 100644 --- a/keyboard/ergodox_ez/keymaps/kastyle/keymap.c +++ b/keyboard/ergodox_ez/keymaps/kastyle/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c b/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c index 20cb53241f..5063c99f28 100644 --- a/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c +++ b/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c index 178c290660..e83059f2cd 100644 --- a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c @@ -243,12 +243,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - return NULL; +void matrix_init_user(void) { + }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c index d44962b0dc..3343c22963 100644 --- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c +++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c @@ -161,12 +161,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 0298cb7028..b31d0edcdf 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -390,12 +390,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c index fb8635118b..70ac8f01f2 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -227,12 +227,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/osx_fr/keymap.c b/keyboard/ergodox_ez/keymaps/osx_fr/keymap.c index 4b59d2eb29..f1806ffffb 100644 --- a/keyboard/ergodox_ez/keymaps/osx_fr/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_fr/keymap.c @@ -158,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c b/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c index f71ca28ceb..1032be5491 100644 --- a/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c @@ -162,12 +162,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/plover/keymap.c b/keyboard/ergodox_ez/keymaps/plover/keymap.c index bd356c47c5..a991e6082d 100644 --- a/keyboard/ergodox_ez/keymaps/plover/keymap.c +++ b/keyboard/ergodox_ez/keymaps/plover/keymap.c @@ -199,12 +199,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c b/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c index 684ecf5e33..a734062f1c 100644 --- a/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c +++ b/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c @@ -114,12 +114,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c index 92efd9b5e6..ca80752263 100644 --- a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -215,12 +215,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - return NULL; +void matrix_init_user(void) { + }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { ergodox_board_led_off(); ergodox_right_led_1_off(); @@ -238,5 +238,5 @@ void * matrix_scan_user(void) { if (host_keyboard_leds() & (1< -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/planck/keymaps/lock/keymap.c b/keyboard/planck/keymaps/lock/keymap.c index 9585764629..f1629492ef 100644 --- a/keyboard/planck/keymaps/lock/keymap.c +++ b/keyboard/planck/keymaps/lock/keymap.c @@ -150,7 +150,7 @@ float start_up[][2] = { {440.0*pow(2.0,(64)/12.0), 1000}, }; -void * matrix_init_user(void) { +void matrix_init_user(void) { init_notes(); play_notes(&start_up, 9, false); } \ No newline at end of file diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 63ca54761c..fe8731ec7b 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,16 +1,16 @@ #include "planck.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); #endif @@ -24,13 +24,9 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index 00b01b54df..e9566b9228 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -40,7 +40,7 @@ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/quantum/matrix.c b/quantum/matrix.c index 95bf4c0973..2dab6ae941 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -48,14 +48,14 @@ static void unselect_rows(void); static void select_row(uint8_t row); __attribute__ ((weak)) -void * matrix_init_kb(void) { +void matrix_init_kb(void) { -}; +} __attribute__ ((weak)) -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { -}; +} inline uint8_t matrix_rows(void) @@ -86,9 +86,7 @@ void matrix_init(void) matrix_debouncing[i] = 0; } - if (matrix_init_kb) { - (*matrix_init_kb)(); - } + matrix_init_kb(); } @@ -152,9 +150,7 @@ uint8_t matrix_scan(void) } #endif - if (matrix_scan_kb) { - (*matrix_scan_kb)(); - } + matrix_scan_kb(); return 1; } diff --git a/quantum/template/template.c b/quantum/template/template.c index 7be7dfc3d1..7dcd67cfcf 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -1,29 +1,23 @@ #include "%KEYBOARD%.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up + matrix_init_user(); +} - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; - -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} \ No newline at end of file diff --git a/quantum/template/template.h b/quantum/template/template.h index a15061b267..1171dc8e0f 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -19,7 +19,7 @@ { k10, KC_NO, k11 }, \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif \ No newline at end of file diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 85415df719..0b013fc989 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -64,8 +64,8 @@ void matrix_power_up(void); void matrix_power_down(void); /* keyboard-specific setup/loop functionality */ -void * matrix_init_kb(void); -void * matrix_scan_kb(void); +void matrix_init_kb(void); +void matrix_scan_kb(void); #ifdef __cplusplus } -- cgit v1.2.3 From 58bbfc5fa6e1d3166af433eaeb763d25972685cd Mon Sep 17 00:00:00 2001 From: yoyoerx Date: Fri, 11 Mar 2016 11:16:19 -0500 Subject: PR190hotfix.sh, fresh hexes, makeallhex.sh script --- keyboard/ergodox_ez/190hotfix.sh | 19 + .../ergodox_ez/keymaps/andrew_osx/andrew_osx.hex | 2528 ++++++++---------- .../keymaps/coderkun_neo2/coderkun_neo2.hex | 2543 ++++++++---------- keyboard/ergodox_ez/keymaps/colemak/colemak.hex | 2528 ++++++++---------- .../colemak_osx_pc_no/colemak_osx_pc_no.hex | 2102 +++++++-------- .../ergodox_ez/keymaps/csharp_dev/csharp_dev.hex | 2318 +++++++++-------- keyboard/ergodox_ez/keymaps/dave/dave.hex | 2547 ++++++++---------- keyboard/ergodox_ez/keymaps/default/default.hex | 2115 ++++++++------- .../ergodox_ez/keymaps/default_osx/default_osx.hex | 2524 ++++++++---------- .../ergodox_ez/keymaps/dragon788/dragon788.hex | 2528 ++++++++---------- keyboard/ergodox_ez/keymaps/dvorak/dvorak.hex | 2529 ++++++++---------- .../keymaps/emacs_osx_dk/emacs_osx_dk.hex | 2529 ++++++++---------- .../erez_experimental/erez_experimental.hex | 2115 ++++++++------- .../keymaps/german-kinergo/german-kinergo.hex | 2532 ++++++++---------- keyboard/ergodox_ez/keymaps/german/german.hex | 2529 ++++++++---------- keyboard/ergodox_ez/keymaps/j3rn/j3rn.hex | 2529 ++++++++---------- keyboard/ergodox_ez/keymaps/jack/jack.hex | 2529 ++++++++---------- keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex | 2086 +++++++-------- keyboard/ergodox_ez/keymaps/jgarr/jgarr.hex | 2529 ++++++++---------- keyboard/ergodox_ez/keymaps/kastyle/kastyle.hex | 2529 ++++++++---------- .../ergodox_ez/keymaps/kines-ish/kines-ish.hex | 2529 ++++++++---------- .../ergodox_ez/keymaps/mpiechotka/mpiechotka.hex | 2540 ++++++++---------- keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex | 2115 ++++++++------- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 2708 +++++++++----------- .../keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex | 2573 ++++++++----------- keyboard/ergodox_ez/keymaps/osx_fr/osx_fr.hex | 2592 ++++++++----------- keyboard/ergodox_ez/keymaps/plover/plover.hex | 2528 ++++++++---------- .../keymaps/software_neo2/software_neo2.hex | 2527 ++++++++---------- keyboard/ergodox_ez/keymaps/tm2030/keymap.hex | 1538 ----------- keyboard/ergodox_ez/keymaps/tm2030/tm2030.hex | 1187 +++++++++ .../keymaps/tonyabra_osx/tonyabra_osx.hex | 2528 ++++++++---------- .../keymaps/workman_osx_mdw/workman_osx_mdw.hex | 2624 ++++++++----------- keyboard/ergodox_ez/makeallhex.sh | 9 + 33 files changed, 32894 insertions(+), 41292 deletions(-) create mode 100755 keyboard/ergodox_ez/190hotfix.sh delete mode 100644 keyboard/ergodox_ez/keymaps/tm2030/keymap.hex create mode 100644 keyboard/ergodox_ez/keymaps/tm2030/tm2030.hex create mode 100755 keyboard/ergodox_ez/makeallhex.sh diff --git a/keyboard/ergodox_ez/190hotfix.sh b/keyboard/ergodox_ez/190hotfix.sh new file mode 100755 index 0000000000..bdc3adce22 --- /dev/null +++ b/keyboard/ergodox_ez/190hotfix.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#a tool to fix broken keymaps as a result of pull request #190 +#changing the declaration of matrix_scan_user() and matrix_init_user() +# +#This script will save a copy of the specified keymap as keymap.c.bak +#and then create a new keymap.c with the definion corrected. +#this script must be run from the ergodox_ez directory +if [ $# -ne 1 ]; then + echo $0: usage: ./190hotfix keymap_name + exit 1 +fi + +echo Saving backup as ./keymaps/$1/keymap.c.bak ... +mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak + +echo Modifying ./keymaps/$1/keymap.c ... +cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c + +echo Complete! diff --git a/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex b/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex index e3ee9afd3e..fc0876d844 100644 --- a/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex +++ b/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex @@ -1,17 +1,17 @@ -:100000000C9400070C9444070C9444070C94440788 -:100010000C9444070C9444070C9444070C94440734 -:100020000C9444070C9444070C9458120C942A1313 -:100030000C9444070C9444070C9444070C94440714 -:100040000C9444070C94022C0C9444070C94440721 -:100050000C9444070C94FA210C9444070C94440724 -:100060000C9444070C9444070C9444070C944407E4 -:100070000C9444070C9444070C9444070C944407D4 -:100080000C9444070C9444070C9444070C944407C4 -:100090000C9444070C9444070C9444070C944407B4 -:1000A0000C9444070C9444070C9444079713B91319 -:1000B000A714B913A714FE132114A71476148914D6 -:1000C000D017D017FF17FF17431881189B1A9B1AD8 -:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 :1000E0000000F0A12E002B002971E10035810000F5 :1000F0001E00140004001D71E20027021F001A00F8 :1001000016001B00E104E3002000080007000600C1 @@ -43,1429 +43,1079 @@ :1002A0000100010001000100A9000100010001009E :1002B0000100AC00AA00B600010001000100AB0083 :1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A0000000403090409028D0005DD -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000109CB -:100440000404000103000000092111010001223908 -:1004500000070585031000011201100100000008CB -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C00631FF0974A1010975150025FFFD -:1004B0009520750881020976150025FF952075089D -:1004C0009102C005010980A101850216010026B72D -:1004D000001A01002AB700751095018100C0050CB3 -:1004E0000901A1018503160100269C021A01002AB8 -:1004F0009C02751095018100C005010902A1010946 -:1005000001A10005091901290515002501950575A9 -:100510000181029501750381010501093009311539 -:1005200081257F95027508810609381581257F95FB -:100530000175088106050C0A38021581257F950191 -:1005400075088106C0C005010906A101050719E06B -:1005500029E71500250195087501810295017508A7 -:10056000810105081901290595057501910295017B -:10057000750391010507190029FF150025FF950650 -:1005800075088100C00A002530325820006B65795B -:10059000626F6172645F7265706F72743A20000AF4 -:1005A0000025303258006B6579626F6172645F7349 -:1005B00065745F6C65643A200064656C5F6B657997 -:1005C0005F6269743A2063616E27742064656C3AD7 -:1005D00020253032580A006164645F6B65795F6280 -:1005E00069743A2063616E2774206164643A20253F -:1005F0003032580A00646F6E652E0A00626F6F67B2 -:100600006D61676963207363616E3A202E2E2E2020 -:1006100000290A002575002F002575005D2800259A -:10062000640020002564002000256400200025646B -:10063000007C0025303258006D6F7573656B6579ED -:10064000205B62746E7C782079207620685D287249 -:1006500065702F61636C293A205B006D6B5F776872 -:1006600065656C5F74696D655F746F5F6D6178203F -:100670003D2025640A006D6B5F776865656C5F6D72 -:1006800061785F7370656564203D2025640A006DA4 -:100690006B5F74696D655F746F5F6D6178203D207D -:1006A00025640A006D6B5F6D61785F7370656564CA -:1006B000203D2025640A006D6B5F696E746572765B -:1006C000616C203D2025640A006D6B5F64656C6180 -:1006D00079203D2025640A006D6B5F776865656C45 -:1006E0005F74696D655F746F5F6D6178203D202573 -:1006F000640A006D6B5F776865656C5F6D61785F3C -:100700007370656564203D2025640A006D6B5F741D -:10071000696D655F746F5F6D6178203D2025640AA7 -:10072000006D6B5F6D61785F7370656564203D205F -:1007300025640A006D6B5F696E74657276616C206A -:100740003D2025640A006D6B5F64656C6179203D16 -:100750002025640A000A00257500363A207768656E -:10076000656C5F74696D655F746F5F6D61783A2069 -:10077000000A00257500353A20776865656C5F6D65 -:1007800061785F73706565643A20000A0025750022 -:10079000343A2074696D655F746F5F6D61783A20DB -:1007A000000A00257500333A206D61785F7370652B -:1007B00065643A20000A00257500323A20696E749B -:1007C000657276616C286D73293A20000A002575E0 -:1007D00000313A2064656C6179282A31306D7329C3 -:1007E0003A20000A092D2056616C756573202D0A88 -:1007F000004D3E004D25643E20003F00736574208F -:1008000064656661756C740A00433E200077686514 -:1008100072652064656C74613A20637572736F72DF -:100820003D25642C20776865656C3D25640A536519 -:100830006520687474703A2F2F656E2E77696B6926 -:1008400070656469612E6F72672F77696B692F4DD0 -:100850006F7573655F6B6579730A000A092D204D0A -:100860006F7573656B6579202D0A4553432F713A77 -:1008700009717569740A313A0964656C6179282ACD -:1008800031306D73290A323A09696E746572766186 -:100890006C286D73290A333A096D61785F7370654E -:1008A00065640A343A0974696D655F746F5F6D61E0 -:1008B000780A353A09776865656C5F6D61785F73B2 -:1008C000706565640A363A09776865656C5F7469B6 -:1008D0006D655F746F5F6D61780A0A703A097072B6 -:1008E000696E742076616C7565730A643A09736584 -:1008F000742064656661756C74730A75703A092BAF -:10090000310A646F776E3A092D310A706775703A53 -:10091000092B31300A7067646F776E3A092D3130D8 -:100920000A0A7370656564203D2064656C746120FB -:100930002A206D61785F7370656564202A202872B3 -:100940006570656174202F2074696D655F746F5FD9 -:100950006D6178290A003F004D3E2000433E200093 -:100960004C25640A000A092D20436F6E736F6C6575 -:10097000202D0A4553432F713A09717569740A6D28 -:100980003A096D6F7573656B65790A000A092D2048 -:100990004D61676963202D0A643A09646562756771 -:1009A0000A783A096465627567206D6174726978C6 -:1009B0000A6B3A096465627567206B6579626F61DD -:1009C00072640A6D3A096465627567206D6F7573AC -:1009D000650A763A0976657273696F6E0A733A0929 -:1009E0007374617475730A633A09636F6E736F6C25 -:1009F00065206D6F64650A302D343A096C61796544 -:100A000072302D34284631302D4634290A50617514 -:100A1000733A09626F6F746C6F616465720A653A4C -:100A200009656570726F6D0A6E3A094E4B524F0A36 -:100A30007A3A09736C656570204C4544207465737F -:100A4000740A000A002575002E6E6B726F3A200042 -:100A50000A002575002E737761705F6261636B73A6 -:100A60006C6173685F6261636B73706163653A2088 -:100A7000000A002575002E737761705F67726176DA -:100A8000655F6573633A20000A002575002E6E6F5E -:100A90005F6775693A20000A002575002E7377613B -:100AA000705F72616C745F726775693A20000A004A -:100AB0002575002E737761705F6C616C745F6C6775 -:100AC00075693A20000A002575002E636170736C09 -:100AD0006F636B5F746F5F636F6E74726F6C3A20DD -:100AE000000A002575002E737761705F636F6E7466 -:100AF000726F6C5F636170736C6F636B3A20000A96 -:100B00000025303258006B65796D61705F636F6EE0 -:100B10006669672E7261773A20000A002575002EFB -:100B20006D6F7573653A20000A002575002E6B65A0 -:100B300079626F6172643A20000A002575002E6D9B -:100B400061747269783A20000A002575002E656E7E -:100B500061626C653A20000A0025303258006465F5 -:100B60006275675F636F6E6669672E7261773A20A0 -:100B7000000A0025750064656661756C745F6C61C0 -:100B80007965723A20003F004E4B524F3A206F6613 -:100B9000660A004E4B524F3A206F6E0A0074696D20 -:100BA00065725F636F756E743A202530346C580A35 -:100BB000006B6579626F6172645F6E6B726F3A2071 -:100BC00025580A006B6579626F6172645F69646CB5 -:100BD000653A2025580A006B6579626F6172645F1F -:100BE00070726F746F636F6C3A2025580A00686FDB -:100BF00073745F6B6579626F6172645F6C65647357 -:100C000028293A2025580A000A092D2053746174B6 -:100C10007573202D0A004743433A20342E392E3372 -:100C2000204156522D4C4942433A20312E382E3124 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2030663263CD -:100C9000373733202831313A30393A3531204A61FB -:100CA0006E2020352032303136290A005649443A28 -:100CB00020307846454544284572676F446F782058 -:100CC000455A29205049443A20307831333037286A -:100CD0004572676F446F7820455A29205645523A2D -:100CE000203078303030310A00444553433A207484 -:100CF0002E6D2E6B2E206B6579626F61726420669B -:100D000069726D7761726520666F72204572676FD8 -:100D1000646F780A000A092D2056657273696F6E38 -:100D2000202D0A000A6D6F7573653A206F66660A9A -:100D3000000A6D6F7573653A206F6E0A000A6B6565 -:100D400079626F6172643A206F66660A000A6B65A9 -:100D500079626F6172643A206F6E0A000A6D617485 -:100D60007269783A206F66660A000A6D617472696A -:100D7000783A206F6E0A000A64656275673A206FE0 -:100D80006E0A000A64656275673A206F66660A003B -:100D90000A0A626F6F746C6F616465722E2E2E206A -:100DA00000433E20006565636F6E6669673A0A001E -:100DB000536C656570204C454420746573740A005B -:100DC0000000000000000000000000010204060A0C -:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD -:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD -:100DF0000F0A0604020100000000000000000000CD -:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 -:100E100024C08091F9019091FA01A091FB01B09159 -:100E2000FC018730904BA740B04BB9F41092F90108 -:100E30001092FA011092FB011092FC0114BE84B7CB -:100E4000877F84BF88E10FB6F8948093600010928A -:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 -:100E6000E0EAFBE502C005900D92AA33B107D9F77D -:100E700011E0AAE3B1E001C01D92A93FB107E1F77B -:100E80000E94900F0C94CE2D0C940000FF93EF93D2 -:100E9000E0913A01F0913B01309709F00995EF910B -:100EA000FF910895FC018591803011F0EFDFFBCFB9 -:100EB0000895FF27E0E230E247FF0CC0419597FF1D -:100EC00009C0EDE26095709580959095611D711D4A -:100ED000811D911D27FF02C0219530E350E2AA2712 -:100EE000660F771F881F991FAA1FA41710F0A41B55 -:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 -:100F0000F395611571058105910541F7ED3211F4F5 -:100F1000EF93F395F21718F43F93F395FBCF8F916E -:100F2000B5DFFA95E1F70895E991F991859180305F -:100F300021F0853219F0AADFF9CF089520E0E89476 -:100F400055915532C1F3503311F4689455915A3389 -:100F500048F4505390F3220F022E220F220F200D3F -:100F6000250FF4CF0EF4219589919991533619F3F9 -:100F7000533729F1533559F1BC0188279927E89453 -:100F80005C3621F48991999168945591543639F4DD -:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 -:100FA0004AE039F0583540E121F0523642E009F08C -:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC -:100FC000EF93FC0181918030B9F360DFFBCFFF9399 -:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 -:100FE000A3DFCF91DF91089561110BC0FC018281D5 -:100FF000882321F085EE0E946D1603C085EE0E94C5 -:10100000351780E090E0089508956091BC017091DB -:10101000BD018091BE019091BF010E94FD205698B4 -:101020005E9825982D9826982E9827982F9881308D -:1010300019F0823021F00895259A2D9A0895269A64 -:101040002E9A089585E098E0892B11F00E940508FA -:1010500080E090E0089556985E9825982D982698FF -:101060002E9827982F988FEF90E090938900809387 -:10107000880090938B0080938A0090938D008093DA -:101080008C00259A2D9A2FEF80E792E02150804026 -:101090009040E1F700C00000269A2E9A2FEF80E7DB -:1010A00092E0215080409040E1F700C00000279A74 -:1010B0002F9A2FEF80E792E0215080409040E1F797 -:1010C00000C0000025982D982FEF80E792E0215076 -:1010D00080409040E1F700C0000026982E982FEF46 -:1010E00080E792E0215080409040E1F700C000008E -:1010F00027982F9856985E9825982D9826982E9880 -:1011000027982F98089589EA8093800089E080933A -:10111000810024982C983F988AB18F748AB96E9870 -:10112000479A8BB1806B8BB9769A0E942B0884E02A -:1011300098E0892B11F00E94040880E090E0089567 -:1011400080E28093000180913C0181110EC00E94D9 -:10115000EF0881E080933C012FEF83ED90E3215075 -:1011600080409040E1F700C0000080E40E94F50854 -:101170008093000181112EC00E941F0980930001FD -:10118000811128C00E941F0980930001811122C093 -:101190008FE30E941F098093000181111BC00E94F0 -:1011A000170980E40E94F50880930001811112C0A4 -:1011B0008CE00E941F098093000181110BC00E94E6 -:1011C0001F0980930001811105C08FE30E941F0950 -:1011D000809300010E9417098091000108951092E8 -:1011E000B9008AE08093B800089594EA9093BC0017 -:1011F0009091BC0097FFFCCF9091B900987F9830F8 -:1012000021F0903111F081E008958093BB0084E8D3 -:101210008093BC008091BC0087FFFCCF8091B90017 -:10122000887F883111F0803471F780E0089584E977 -:101230008093BC008091BC0084FDFCCF0895809316 -:10124000BB0084E88093BC008091BC0087FFFCCF8A -:101250009091B900987F81E0983209F480E0089578 -:1012600084E88093BC008091BC0087FFFCCF809114 -:10127000BB00089580910001811115C080E40E9497 -:10128000F5088093000181110CC082E10E941F09C2 -:1012900080930001811105C08FEF0E941F09809388 -:1012A00000010E94170984B1807F84B985B1807FD5 -:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 -:1012C000469808950E94A008809300010E943A0960 -:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 -:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 -:1012F00083E898E0892B11F00C94830808959F925D -:10130000AF92BF92CF92DF92EF92FF920F931F9313 -:10131000CF93DF93809100018823E1F080913D011C -:101320008F5F80933D01811115C082E493E00E949C -:1013300052070E94A00880930001882329F088E2C8 -:1013400093E00E94520706C084E193E00E94520796 -:101350000E942B080EE311E0C0E0D0E0BB24B39460 -:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 -:10137000F22EC730D10500F580910001811164C0C3 -:1013800080E40E94F50880930001811112C082E17F -:101390000E941F098093000181110BC0C6010C2E11 -:1013A00001C0880F0A94EAF780950E941F09809374 -:1013B00000010E94170948C0CA30A1F028F4C830C3 -:1013C00059F0C93061F005C0CC3089F070F0CD30F3 -:1013D00089F0209A289810C0219A29980DC0229A45 -:1013E0002A980AC0239A2B9807C0529A01C0539A90 -:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 -:10140000799902C082E001C080E091709B25982B01 -:101410007C9902C084E001C080E0892B7D9902C0E4 -:1014200038E001C030E0832B7E9902C020E101C08A -:1014300020E0822B9FB19095991F9927991F929533 -:10144000990F907E892B10C080910001811174C08A -:1014500080E40E94F50880930001882309F459C0B4 -:10146000912C0E941709892DF8019081981739F164 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9452078091D70180FF58 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EB070F900F900F900F908091D70180FF66 -:1014B00004C083E093E00E945207A09201010E94C1 -:1014C0003A0921960F5F1F4FCE30D10509F051CF59 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 -:101500008E13FCCF82E298E0892BC1F00E94220862 -:1015100015C083E10E941F09809300018111A0CFB3 -:1015200081E40E94F50880930001811199CF0E9407 -:101530003009982E909495CF80E096CF81E0DF918E -:10154000CF911F910F91FF90EF90DF90CF90BF90C0 -:10155000AF909F900895E82FF0E0E45BFE4F80810C -:101560000895CF92DF92EF92FF920F931F93CF9344 -:10157000DF938CEE92E00E9452078CE4E82E81E02B -:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 -:1015900012E0DF93CF93DF92CF920E94EB0784EEAD -:1015A00092E00E945207F70181917F0190E00E9432 -:1015B00063219F938F931F930F930E94EB078CEDF2 -:1015C00092E00E94520721968DB79EB708960FB6FB -:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE -:1015E000CF911F910F91FF90EF90DF90CF900895D2 -:1015F0008B3B910578F4883A910540F5853A910541 -:10160000D0F48430910508F0B1C08130910509F41F -:10161000ADC06BC0803E910508F467C0883E91055F -:1016200008F4A4C09C01205F31092031310508F085 -:101630005CC090650895853A910509F459C0863AD1 -:10164000910509F058C082E890E40895883A910520 -:1016500009F454C0893A910509F453C08A3A9105B6 -:1016600009F452C08B3A910509F451C08C3A9105A6 -:1016700009F450C08D3A910509F44FC0803B9105A3 -:1016800009F44EC08E3A910509F44DC08F3A910588 -:1016900009F44CC0813B910509F44BC0823B910594 -:1016A00009F44AC0833B910509F449C0843B910584 -:1016B00009F448C0853B910509F447C0863B910574 -:1016C00009F446C0873B910509F445C0883B910564 -:1016D00009F444C0893B910509F443C08A3B910554 -:1016E00009F442C080E094E4089580E090E0089519 -:1016F00081E890E4089583E890E4089582EE94E40C -:10170000089589EE94E408958AEE94E4089585EBB3 -:1017100094E4089586EB94E4089587EB94E40895A7 -:101720008CEC94E408958DEC94E4089583E895E4BA -:1017300008958AE895E4089582E995E4089584E996 -:1017400095E4089581E296E4089583E296E408958D -:1017500084E296E4089585E296E4089586E296E4AC -:10176000089587E296E408958AE296E4089508953C -:1017700096E0799FF001112494E5899FE00DF11D19 -:101780001124E60FF11DEE0FFF1FEC51FF4F859165 -:1017900094910895880F991FFC01E05AF0408591BB -:1017A00094910895880F991FFC01E052FF4F859195 -:1017B0009491089526E0729FF001112444E5849FDE -:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E -:1017D000FF4F859194919C013A9521154FE1340773 -:1017E00008F41EC13F512115304120F49F700E9422 -:1017F000D20B08959C0130532115304118F49927DC -:10180000906C0895811520E5920769F40E94BD1A35 -:101810004FEF84E39CE0415080409040E1F700C0EE -:1018200000000C941F22813020E5920751F48CE5D2 -:1018300093E00E9452078091D70181608093D70185 -:1018400008959C0130552115304108F051C0292FD1 -:1018500033272F70332721303105D9F4AC01437081 -:10186000552702C0220F331F4A95E2F73C68AC01AE -:1018700064E0440F551F6A95E1F744275370242B09 -:10188000352B73E0880F991F7A95E1F780769927B9 -:101890001DC02230310529F4982F8827816F906A66 -:1018A000089523303105A9F4AC014370552721E098 -:1018B00030E002C0220F331F4A95E2F73C6843E054 -:1018C000880F991F4A95E1F7807E9770822B932BA2 -:1018D000089524303105E1F4AC014370552721E02F -:1018E00030E002C0220F331F4A95E2F73A68E7CF93 -:1018F0009C0130572115304118F49F709062089573 -:101900009C0130582115304118F49F70906A089559 -:10191000803E9105E0F4803C910558F581339105B6 -:1019200009F46FC048F48932910509F463C08A3222 -:10193000910509F46DC072C089339105E9F08238D0 -:101940009105D1F08533910509F44DC067C0833E00 -:10195000910581F138F4803E9105B9F0823E910500 -:10196000D9F05CC0863E910561F1873E9105A1F1F9 -:1019700055C00E94CA0B08952091EA0120FD02C0C3 -:1019800021FF4CC080EE90E049C08091EA0180FFC9 -:10199000F9CF89E390E042C08091EA0182FF0EC056 -:1019A0008091EA0184FF03C080E090E037C083EEBD -:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 -:1019C0002DC08091EA0183FF0BC08091EA0184FD64 -:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 -:1019E00086EE90E01BC08091EA0185FF07C089E286 -:1019F00090E014C08091EA0185FFF9CF85E390E083 -:101A00000DC08091EA0186FF07C08AE290E006C01F -:101A10008091EA0186FFF9CF81E390E00E94F80A05 -:101A20000895089580916D0108959FB7F8941092DC -:101A30005C019FBF9091F001943009F057C09091E4 -:101A4000E9009F703091EC00232F217030FD20E8D9 -:101A5000922B24E02093E9002091EB0020FF43C06B -:101A60002091EE0027FF3FC020915A01222321F050 -:101A70002091E80025FF37C010925A0126E03091EE -:101A8000E80035FD15C03091F001343061F530913A -:101A9000EB0035FD28C0215021F481E080935A01EC -:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 -:101AB0008093F1008091E80085FD0AC08091E800E4 -:101AC00080FFFCCF8091E8008E778093E80006C00D -:101AD0008FB7F89421E020935C018FBF9F709093A3 -:101AE000E90080E008959F709093E9008FEF0895DA -:101AF000CF93DF9300D01F92CDB7DEB79C018091CA -:101B0000F001843019F593E099833B832A83909305 -:101B1000E9008FEF9091E800815095FD06C095EDAA -:101B20009A95F1F700008111F5CF8091E80085FFCB -:101B30000DC040E050E063E070E0CE0101960E94ED -:101B400048108091E8008E778093E8000F900F9006 -:101B50000F90DF91CF910895CF93DF9300D01F9224 -:10