Commit Graph

44 Commits

Author SHA1 Message Date
Joel Challis
80b72487ce
Migrate features from rules.mk to data drive - LMN (#23277) 2024-03-15 01:42:33 +00:00
Joel Challis
2f37a7854d
Migrate lighting defaults to info.json (#22920) 2024-02-01 18:10:14 +00:00
Ryan
023d644bb6
Move RGBLight animations to data driven (#21635)
* Move RGBLight animations to data driven, 0-9

* Move RGBLight animations to data driven, A

* Move RGBLight animations to data driven, B

* Move RGBLight animations to data driven, C

* Move RGBLight animations to data driven, D

* Move RGBLight animations to data driven, E

* Move RGBLight animations to data driven, F

* Move RGBLight animations to data driven, G

* Move RGBLight animations to data driven, H

* Move RGBLight animations to data driven, handwired

* Move RGBLight animations to data driven, I

* Move RGBLight animations to data driven, J

* Move RGBLight animations to data driven, K

* Move RGBLight animations to data driven, L

* Move RGBLight animations to data driven, M

* Move RGBLight animations to data driven, N

* Move RGBLight animations to data driven, O

* Move RGBLight animations to data driven, P

* Move RGBLight animations to data driven, Q

* Move RGBLight animations to data driven, R

* Move RGBLight animations to data driven, S

* Move RGBLight animations to data driven, T

* Move RGBLight animations to data driven, U

* Move RGBLight animations to data driven, V

* Move RGBLight animations to data driven, W

* Move RGBLight animations to data driven, X

* Move RGBLight animations to data driven, Y

* Move RGBLight animations to data driven, Z

* Fix incorrect placement

* Fix build failures and mismatches
2023-08-23 22:11:39 +01:00
Ryan
4137685f8e
backlight: split AVR PWM and timer drivers (#21540) 2023-07-21 09:27:55 +10:00
Ryan
4ae9bfd17a
Move RGBLIGHT_HUE/SAT/VAL_STEP to data driven (#21292)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-06-24 17:37:54 +10:00
Ryan
b1783db4ea
Move RGBLED_NUM to data driven (#21278) 2023-06-18 14:39:07 +10:00
Ryan
2367d8129c
Move RGBLIGHT_SLEEP to data driven (#21072) 2023-06-16 14:04:45 +10:00
Ryan
fbbc54f523
Move DZ60 and MJ6XY layouts to data driven (#20478) 2023-04-27 07:53:38 +10:00
Ryan
47966dc2a6
Migrate rgblight.pin and RGB_DI_PIN to ws2812.pin (#20303) 2023-04-06 18:00:54 +10:00
Ryan
ad625e7c06
Remove RGB_DI_PIN ifdefs (#20218) 2023-03-23 21:38:01 +11:00
Ryan
02ccc50e60
Remove more empty headers (#20155) 2023-03-17 14:02:04 +11:00
Ryan
caa8c81086
Move matrix config to info.json, part 7 (#20020) 2023-03-11 00:39:56 +11:00
Ryan
314f6c1ddb
Move backlight config to data driven (#19910) 2023-02-26 08:37:57 +11:00
Ryan
9c0ce80d7e
Move backlight config to data driven, part 1 (#19887) 2023-02-21 12:05:40 +11:00
Ryan
2da0827d4f
Remove matrix size defines (#19581) 2023-02-17 16:08:25 +11:00
Ryan
f4ba17c4a0
Move LED indicator config to data driven (#19800) 2023-02-17 13:14:29 +11:00
Ryan
f9aeea64c1
Migrate MCU and BOOTLOADER to data-driven (#19529) 2023-02-08 18:41:46 +11:00
Ryan
ebb512db82
Debounce defines cleanup (#19742)
* Clean up `DEBOUNCE` in config.h, 0-9

* Clean up `DEBOUNCE` in config.h, A

* Clean up `DEBOUNCE` in config.h, B

* Clean up `DEBOUNCE` in config.h, C

* Clean up `DEBOUNCE` in config.h, D

* Clean up `DEBOUNCE` in config.h, E

* Clean up `DEBOUNCE` in config.h, F

* Clean up `DEBOUNCE` in config.h, G

* Clean up `DEBOUNCE` in config.h, H

* Clean up `DEBOUNCE` in config.h, handwired

* Clean up `DEBOUNCE` in config.h, I

* Clean up `DEBOUNCE` in config.h, J

* Clean up `DEBOUNCE` in config.h, K

* Clean up `DEBOUNCE` in config.h, L

* Clean up `DEBOUNCE` in config.h, M

* Clean up `DEBOUNCE` in config.h, N

* Clean up `DEBOUNCE` in config.h, O

* Clean up `DEBOUNCE` in config.h, P

* Clean up `DEBOUNCE` in config.h, Q

* Clean up `DEBOUNCE` in config.h, R

* Clean up `DEBOUNCE` in config.h, S

* Clean up `DEBOUNCE` in config.h, T

* Clean up `DEBOUNCE` in config.h, U

* Clean up `DEBOUNCE` in config.h, V

* Clean up `DEBOUNCE` in config.h, W

* Clean up `DEBOUNCE` in config.h, X

* Clean up `DEBOUNCE` in config.h, Y

* Clean up `DEBOUNCE` in config.h, Z

* Remove default debounce from info.json

* Migrate non-default debounce to info.json
2023-02-03 19:19:58 +00:00
Nick Brassel
f6dd8dea2e
Remove usages of config_common.h from config.h files. (#19714) 2023-01-31 06:03:30 +11:00
Ryan
56555c61e1
Migrate LAYOUTS to data driven (#19541)
* Migrate `LAYOUTS` to data driven, 0-9

* Migrate `LAYOUTS` to data driven, A

* Migrate `LAYOUTS` to data driven, B

* Migrate `LAYOUTS` to data driven, C

* Migrate `LAYOUTS` to data driven, D

* Migrate `LAYOUTS` to data driven, E

* Migrate `LAYOUTS` to data driven, F

* Migrate `LAYOUTS` to data driven, G

* Migrate `LAYOUTS` to data driven, H

* Migrate `LAYOUTS` to data driven, handwired

* Migrate `LAYOUTS` to data driven, I

* Migrate `LAYOUTS` to data driven, J

* Migrate `LAYOUTS` to data driven, K

* Migrate `LAYOUTS` to data driven, L

* Migrate `LAYOUTS` to data driven, M

* Migrate `LAYOUTS` to data driven, N

* Migrate `LAYOUTS` to data driven, O

* Migrate `LAYOUTS` to data driven, P

* Migrate `LAYOUTS` to data driven, Q

* Migrate `LAYOUTS` to data driven, R

* Migrate `LAYOUTS` to data driven, S

* Migrate `LAYOUTS` to data driven, T

* Migrate `LAYOUTS` to data driven, U

* Migrate `LAYOUTS` to data driven, V

* Migrate `LAYOUTS` to data driven, W

* Migrate `LAYOUTS` to data driven, X

* Migrate `LAYOUTS` to data driven, Y

* Migrate `LAYOUTS` to data driven, Z
2023-01-10 02:48:20 +00:00
Nick Brassel
219afaba42
Reworked backlight keycodes. (#18961)
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-11-06 08:11:59 +11:00
fauxpark
9d717c85dc Merge remote-tracking branch 'upstream/master' into develop 2022-10-29 16:54:14 +11:00
James Young
84569788d5
MelGeek MJ6XY Refactor (#18862)
* mj6xy.h: convert tabs to spaces

* info.json: convert tabs to spaces

* info.json: apply friendly formatting

Whitespace-only change.

* rename LAYOUT_60_ansi_7u_spc to LAYOUT_60_ansi_tsangan

- rename `60_ansi_7u_spc` keymap to `default_ansi_tsangan`

* add K31 position to LAYOUT_60_iso

* rename LAYOUT_60_iso_7u_spc_split_rshift to LAYOUT_60_iso_tsangan_split_rshift

- rename `60_iso_7u_spc_split_rshift` keymap to `default_iso_tsangan_split_rshift`

* add K31 position to LAYOUT_60_iso_arrow

* add K31 position to LAYOUT_60_iso_arrow_6u_spc

* add K31 position to LAYOUT_60_iso_arrow_3u_spc

* refactor LAYOUT_60_iso_7u_spc into LAYOUT_60_iso_tsangan

- add K31 position to layout macro
- rename `60_iso_7u_spc` keymap to `default_iso_tsangan`

* add K31 position to LAYOUT_64_iso

- rename `64_iso` keymap to `default_64_iso`

* add K31 position to LAYOUT_64_iso_3u_spc

- rename `64_iso_3u_spc` keymap to `default_64_iso_3u_spc`

* add K31 position to LAYOUT_64_iso_split_3u_spc

- rename `64_iso_split_3u_spc` keymap to `default_64_iso_split_3u_spc`

* remove LAYOUT_60_iso_1u_lshift_split_rshift macro and keymap

Functionally identical to `LAYOUT_60_iso_split_rshift`.

* remove LAYOUT_60_iso_1u_lshift_7u_spc_split_rshift macro and keymap

Functionally identical to `LAYOUT_60_iso_tsangan_split_rshift`.

* rename LAYOUT_60_ansi_7u_spc_split_bs to LAYOUT_60_ansi_tsangan_split_bs

- rename `60_ansi_7u_spc_split_bs` keymap to `default_60_ansi_tsangan_split_bs`

* add K31 position to LAYOUT_60_iso_split_bs

* rename LAYOUT_60_iso_7u_spc_split_bs_rshift to LAYOUT_60_iso_tsangan_split_bs_rshift

- rename `60_iso_7u_spc_split_bs_rshift` keymap to `default_60_iso_tsangan_split_bs_rshift`

* add K31 position to LAYOUT_60_iso_arrow_split_bs

* add K31 position to LAYOUT_60_iso_arrow_3u_spc_split_bs

- rename `60_iso_arrow_3u_spc_split_bs` keymap to `default_60_iso_arrow_3u_spc_split_bs`

* add K31 position to LAYOUT_60_iso_arrow_split_bs_3u_spc

- rename `60_iso_arrow_split_bs_3u_spc` keymap to `default_60_iso_arrow_split_bs_3u_spc`

* refactor LAYOUT_60_iso_7u_spc_split_bs into LAYOUT_60_iso_tsangan_split_bs

- add K31 position to layout macro
- rename `60_iso_7u_spc_split_bs` keymap to `default_60_iso_tsangan_split_bs`

* add K31 position to LAYOUT_64_iso_split_bs

- rename `64_iso_split_bs` keymap to `default_64_iso_split_bs`

* add K31 position to LAYOUT_64_iso_3u_spc_split_bs

rename `64_iso_3u_spc_split_bs` keymap to `default_64_iso_3u_spc_split_bs`

* add K31 position to LAYOUT_64_iso_split_bs_3u_spc

- rename `64_iso_split_bs_3u_spc` keymap to `default_64_iso_split_bs_3u_spc`

* remove LAYOUT_60_ansi_arrow_6u_spc macro and keymap

Functionally identical to `LAYOUT_60_ansi_arrow`.

* remove LAYOUT_64_ansi_6u_spc macro and keymap

Functionally identical to `LAYOUT_64_ansi`.

* remove LAYOUT_60_iso_arrow_6u_spc macro and keymap

Functionally identical to `LAYOUT_60_iso_arrow`.

* remove LAYOUT_64_iso_6u_spc macro and keymap

Functionally identical to `LAYOUT_64_iso`.

* remove LAYOUT_60_ansi_arrow_6u_spc_split_bs macro and keymap

Functionally identical to `LAYOUT_60_ansi_arrow_split_bs`.

* remove LAYOUT_64_ansi_6u_spc_split_bs macro and keymap

Functionally identical to `LAYOUT_64_ansi_split_bs`.

* remove LAYOUT_60_iso_arrow_6u_spc_split_bs macro and keymap

Functionally identical to `LAYOUT_60_iso_arrow_split_bs`.

* remove LAYOUT_64_iso_6u_spc_split_bs macro and keymap

Functionally identical to `LAYOUT_64_iso_split_bs`.

* remove LAYOUT_60_iso_1u_lshift_split_bs_rshift macro and keymap

Functionally identical to `LAYOUT_60_iso_split_bs_rshift`.

* remove LAYOUT_60_iso_1u_lshift_7u_spc_split_bs_rshift macro and keymap

Functionally identical to `LAYOUT_60_iso_tsangan_split_bs_rshift`.

* refactor keymaps

- convert tabs to spaces
- update keycode grid alignment

* remove LAYOUT_60_ansi_arrow_3u_spc macro and keymap

Subset of `LAYOUT_60_ansi_arrow_3u_spc_split_bs`.

* remove LAYOUT_60_iso_arrow_3u_spc macro and keymap

Subset of `LAYOUT_60_iso_arrow_3u_spc_split_bs`.

* remove LAYOUT_60_iso_tsangan_split_bs macro and keymap

Subset of `LAYOUT_60_iso_tsangan_split_bs_rshift`.

* remove LAYOUT_60_iso_tsangan_split_rshift macro and keymap

Subset of `LAYOUT_60_iso_tsangan_split_bs_rshift`.

* remove LAYOUT_64_ansi_3u_spc macro and keymap

Subset of `LAYOUT_64_ansi_3u_spc_split_bs`.

* remove LAYOUT_64_iso_3u_spc macro and keymap

Subset of `LAYOUT_64_iso_3u_spc_split_bs`.

* remove LAYOUT_60_iso_split_bs macro and keymap

Subset of `LAYOUT_60_iso_split_bs_rshift`.

* remove LAYOUT_60_iso_split_rshift macro and keymap

Subset of `LAYOUT_60_iso_split_bs_rshift`.

* add LAYOUT_60_ansi_split_bs_rshift macro and keymap

* remove LAYOUT_60_ansi_split_bs macro and keymap

Subset of `LAYOUT_60_ansi_split_bs_rshift`.

* add LAYOUT_60_tsangan_hhkb macro and keymap

* remove LAYOUT_60_ansi_tsangan_split_bs macro and keymap

Subset of `LAYOUT_60_tsangan_hhkb`.

* standardize keymap names

Rename all keymaps per QMK guidelines (e.g. keymap using `LAYOUT_60_ansi_arrow` should be named `default_60_ansi_arrow`).

* add LAYOUT_all; refactor default keymap

Add a `LAYOUT_all` macro, and update the `default` keymap to use the new macro.

* refactor via keymap

Update the `via` keymap to match the behaviour of the `default` keymap.

* improve keyboard readme

- fix broken image reference
- improve grammar on keyboard description
- fix Hardware Availability link
- fix `make` instructions
- add bootloader and flashing instructions

* fix default_60_tsangan_hhkb keymap

Fix a keycode count mismatch.

* mj6xy.h: add matrix diagram

* KC_GESC -> QK_GESC per fauxpark

* KC_SLCK -> KC_SCRL per fauxpark
2022-10-27 09:52:21 -07:00
Ryan
1cb1a5a374
Remove legacy Grave Escape keycodes (#18787) 2022-10-20 18:04:11 -07:00
Ryan
c347e732be
Remove legacy EEPROM clear keycodes (#18782)
* `EEP_RST` -> `EE_CLR`, default-ish keymaps

* `EEP_RST` -> `EE_CLR`, user keymaps

* `EEP_RST` -> `EE_CLR`, community layouts

* `EEP_RST` -> `EE_CLR`, userspace

* `EEP_RST` -> `EE_CLR`, docs & core
2022-10-20 12:20:07 +01:00
Ryan
5e4b076af3
Remove legacy keycodes, part 5 (#18710)
* `KC_SLCK` -> `KC_SCRL`
* `KC_NLCK` -> `KC_NUM`
2022-10-15 22:29:43 +01:00
Drashna Jaelre
c8e998ccad
Remove RGBLIGHT_ANIMATION and clean up effect defines for L-Q (#18727) 2022-10-15 09:55:40 -07:00
QMK Bot
93914142a3 Merge remote-tracking branch 'origin/master' into develop 2022-08-07 01:24:34 +00:00
Joel Challis
c6ad38e79f
RESET -> QK_BOOT default keymaps (#17939) 2022-08-07 02:23:58 +01:00
Nick Brassel
154d35ac14
Remove UNUSED_PINS (#17931) 2022-08-06 23:23:35 +10:00
Ryan
3da6575e24
Move keyboard USB IDs and strings to data driven: M (#17859) 2022-08-03 17:15:43 +10:00
Joel Challis
b7771ec25b
RESET -> QK_BOOT default keymaps (#17037) 2022-05-15 20:26:27 +01:00
Ryan
a8d440e4e0
Tidy up NKRO_ENABLE rules (#15382) 2021-12-09 16:05:44 +11:00
Ryan
c12b997679
Tidy up SLEEP_LED_ENABLE rules (#15362) 2021-12-01 21:13:00 +11:00
James Young
84ea77ead6
Remove BOOTMAGIC_ENABLE = lite option (#15002)
* remove BOOTMAGIC_ENABLE=lite setting

* change keyboard BOOTMAGIC_ENABLE rules

Edits keyboard-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keyboard BOOTMAGIC_ENABLE inline comments

Edits keyboard-level BOOTMAGIC_ENABLE inline comments to "Enable Bootmagic Lite".

* change keymap BOOTMAGIC_ENABLE rules

Edits keymap-level instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

* change keymap BOOTMAGIC_ENABLE inline comments

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* change layout/user BOOTMAGIC_ENABLE rules/comments

Edits instances of `BOOTMAGIC_ENABLE = lite` to `BOOTMAGIC_ENABLE = yes`.

Edits/adds keymap-level BOOTMAGIC_ENABLE inline comments to read "Enable Bootmagic Lite".

* update non-rules.mk BOOTMAGIC_ENABLE references in keyboards/

* remove docs references to Full Bootmagic

* convert data-driven Bootmagic Lite instances

* remove Bootmagic Lite bodge from data-driven generation

* Merge remote-tracking branch 'upstream/develop' into rm/bootmagic-full_q4a

* update docs/ja/config_options.md per mtei

* update docs/faq_misc.md per mtei

Remove remaining Full Bootmagic reference.
2021-11-05 08:18:09 +11:00
QMK Bot
bda8924795 Merge remote-tracking branch 'origin/master' into develop 2021-09-12 05:28:01 +00:00
Ryan
5af1799735
Remove BLUETOOTH_ENABLE from keyboard-level rules.mk (#14379) 2021-09-12 15:27:29 +10:00
fauxpark
1895151a9c Merge remote-tracking branch 'upstream/master' into develop 2021-09-12 14:10:26 +10:00
Ryan
4791cfae1a
Remove width, height and key_count from info.json (#14274) 2021-09-12 14:04:56 +10:00
Zach White
d971020cd8
Fix number of elements in info.json does not match errors (#14213)
* evyd13/atom47/rev3: best guess at fixing info.json

* evyd13/atom47: best guess at fixing info.json

* eyeohdesigns/sprh: best guess at fixing info.json

* handwired/unicomp_mini_m: best guess at fixing info.json

* lazydesigners/the60/rev2: best guess at fixing info.json

* melgeek/mj6xy: best guess at fixing info.json

* pizzakeyboards/pizza65: best guess at fixing info.json

* plx: best guess at fixing info.json

* rojectcain/vault45: best guess at fixing info.json

* sidderskb/majbritt/rev2: best guess at fixing info.json

* spacey: best guess at fixing info.json
2021-09-09 21:33:23 -07:00
James Young
a03aa301de
Remove Full Bootmagic (#13846)
* disambiguate Bootmagic rules in keymaps

The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic.

This commit edits the files to specify that full Bootmagic is intended.

* remove BOOTMAGIC_ENABLE=full setting

* unify commented BOOTMAGIC_ENABLE rules in keyboards

Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no       # Virtual DIP switch configuration;g' {} +
```

* remove commented Bootmagic rules from keymap/user level

Command:

```
find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} +
```

* update keyboard BOOTMAGIC_ENABLE rule formatting

Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later).

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
```

* update keyboards' BOOTMAGIC_ENABLE settings

Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' +
```

* update keymap/user BOOTMAGIC_ENABLE settings

Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' +
```

* remove and replace inline comments in keyboards and keymap/user files

Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`.

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1     # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1      # Enable Bootmagic Lite;g' '{}' +
find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1       # Enable Bootmagic Lite;g' '{}' +
```

* rename improperly named makefiles

Some files intended to be used as makefiles had improper names causing them to not be used as intended when building.

This commit corrects the filenames of the affected files.

* update renamed file with new rule formatting

* update QMK's template files

Updates QMK's `rules.mk` templates to use the new inline comment.

* update QMK Docs

- remove documentation of full Bootmagic
- update links to Bootmagic Lite doc
- add doc for Magic Keycodes

* rules.mk patch for coarse/ixora and coarse/vinta
2021-08-06 23:59:56 -07:00
bomb
2e5cecd704
[Keyboard] Change RGB light defaults for melgeek/mj6xy (#13657)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-25 21:22:13 -07:00
bomb
68b1ef2d1d
[Keyboard] correct the info.json for qmk configurator and add two empty layers for via (#13552) 2021-07-15 09:54:58 -07:00
bomb
9c4916e2e8
[Keyboard] Add MelGeek MJ6xy which is a 60% keyboard that support mul… (#13494)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-14 08:39:54 -07:00