From 74e11d439c123f4dee74693642ffe6cd6d726144 Mon Sep 17 00:00:00 2001 From: rwanoux Date: Sun, 21 Apr 2024 16:51:13 +0200 Subject: [PATCH] plein de truc --- README.md | 9 + css/style.css | 458 -- css/vermine2047.css | 389 +- gulpfile.js | 40 + lang/en.json | 700 +- lang/fr.json | 514 ++ module/sheets/actor-sheet.mjs | 26 +- module/sheets/character-sheet.mjs | 4 +- module/sheets/creature-sheet.mjs | 10 +- module/system/config.mjs | 163 +- module/system/dialogs.mjs | 60 +- module/system/fight.mjs | 225 +- module/system/handlebars-manager.mjs | 270 +- module/system/roll.mjs | 69 +- module/system/settings.mjs | 21 +- module/vermine2047.mjs | 43 +- package-lock.json | 5887 +++++++++++++++++ package.json | 20 + .../{000128.log => 000150.log} | 0 packs/adaptationsmutations/CURRENT | 2 +- packs/adaptationsmutations/LOG | 6 +- packs/adaptationsmutations/LOG.old | 14 +- packs/adaptationsmutations/MANIFEST-000127 | Bin 52 -> 0 bytes packs/adaptationsmutations/MANIFEST-000149 | Bin 0 -> 52 bytes .../deck-creatures/{000128.log => 000150.log} | 0 packs/deck-creatures/CURRENT | 2 +- packs/deck-creatures/LOG | 6 +- packs/deck-creatures/LOG.old | 14 +- packs/deck-creatures/MANIFEST-000127 | Bin 52 -> 0 bytes packs/deck-creatures/MANIFEST-000149 | Bin 0 -> 52 bytes packs/historiques/{000112.log => 000134.log} | 0 packs/historiques/CURRENT | 2 +- packs/historiques/LOG | 6 +- packs/historiques/LOG.old | 14 +- packs/historiques/MANIFEST-000111 | Bin 50 -> 0 bytes packs/historiques/MANIFEST-000133 | Bin 0 -> 52 bytes packs/pretires/{000126.log => 000148.log} | 0 packs/pretires/CURRENT | 2 +- packs/pretires/LOG | 6 +- packs/pretires/LOG.old | 14 +- packs/pretires/MANIFEST-000125 | Bin 50 -> 0 bytes packs/pretires/MANIFEST-000147 | Bin 0 -> 52 bytes packs/rites/000005.ldb | Bin 47946 -> 0 bytes packs/rites/000019.log | Bin 35429 -> 0 bytes packs/rites/000026.ldb | Bin 0 -> 20315 bytes packs/{tables/000019.log => rites/000044.log} | 0 packs/rites/CURRENT | 2 +- packs/rites/LOG | 6 +- packs/rites/LOG.old | 16 +- packs/rites/MANIFEST-000018 | Bin 120 -> 0 bytes packs/rites/MANIFEST-000043 | Bin 0 -> 188 bytes .../000126.log => tables/000041.log} | 0 packs/tables/CURRENT | 2 +- packs/tables/LOG | 6 +- packs/tables/LOG.old | 16 +- .../{MANIFEST-000018 => MANIFEST-000040} | Bin 146 -> 146 bytes packs/traumatismes/000148.log | 0 packs/traumatismes/CURRENT | 2 +- packs/traumatismes/LOG | 6 +- packs/traumatismes/LOG.old | 14 +- packs/traumatismes/MANIFEST-000125 | Bin 50 -> 0 bytes packs/traumatismes/MANIFEST-000147 | Bin 0 -> 52 bytes scss/base_work.scss | 544 ++ scss/style.scss | 539 ++ scss/vermine2047.scss | 2 + system.json | 7 +- template.json | 233 +- templates/actor/actor-character-sheet.hbs | 85 +- .../actor/character/character-combat.hbs | 149 +- .../actor/character/character-features.hbs | 85 +- .../actor/character/character-header.hbs | 37 +- templates/actor/character/character-id.hbs | 115 +- .../actor/character/character-stories.hbs | 22 +- templates/actor/character/character-totem.hbs | 226 +- templates/actor/creature/creature-combat.hbs | 137 +- templates/combat-tracker.hbs | 147 +- templates/item/item-specialty-sheet.html | 60 +- templates/roll.hbs | 105 +- 78 files changed, 9447 insertions(+), 2112 deletions(-) delete mode 100644 css/style.css create mode 100644 gulpfile.js create mode 100644 lang/fr.json create mode 100644 package-lock.json create mode 100644 package.json rename packs/adaptationsmutations/{000128.log => 000150.log} (100%) delete mode 100644 packs/adaptationsmutations/MANIFEST-000127 create mode 100644 packs/adaptationsmutations/MANIFEST-000149 rename packs/deck-creatures/{000128.log => 000150.log} (100%) delete mode 100644 packs/deck-creatures/MANIFEST-000127 create mode 100644 packs/deck-creatures/MANIFEST-000149 rename packs/historiques/{000112.log => 000134.log} (100%) delete mode 100644 packs/historiques/MANIFEST-000111 create mode 100644 packs/historiques/MANIFEST-000133 rename packs/pretires/{000126.log => 000148.log} (100%) delete mode 100644 packs/pretires/MANIFEST-000125 create mode 100644 packs/pretires/MANIFEST-000147 delete mode 100644 packs/rites/000005.ldb delete mode 100644 packs/rites/000019.log create mode 100644 packs/rites/000026.ldb rename packs/{tables/000019.log => rites/000044.log} (100%) delete mode 100644 packs/rites/MANIFEST-000018 create mode 100644 packs/rites/MANIFEST-000043 rename packs/{traumatismes/000126.log => tables/000041.log} (100%) rename packs/tables/{MANIFEST-000018 => MANIFEST-000040} (87%) create mode 100644 packs/traumatismes/000148.log delete mode 100644 packs/traumatismes/MANIFEST-000125 create mode 100644 packs/traumatismes/MANIFEST-000147 create mode 100644 scss/base_work.scss create mode 100644 scss/style.scss create mode 100644 scss/vermine2047.scss diff --git a/README.md b/README.md index 005d16c..ea411a8 100644 --- a/README.md +++ b/README.md @@ -1 +1,10 @@ # Vermine 2047 System + + +##TODO + +- [ ] envoyer les spécialités utilisables au rollDialog +- [ ] refacto des template chat de roll +- [ ] gérer les dés de totems humains et adapté : couleur différente/double succès +- [ ] gérer les rerolls depuis chat(cf noc) +- [ ] repasser sur les différents itemTypes et sheets \ No newline at end of file diff --git a/css/style.css b/css/style.css deleted file mode 100644 index 3a9bb09..0000000 --- a/css/style.css +++ /dev/null @@ -1,458 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"); -/* Global styles */ -.window-app { - font-family: "Roboto", sans-serif; -} - -.rollable:hover, .rollable:focus { - color: #000; - text-shadow: 0 0 10px red; - cursor: pointer; -} - -.grid, -.grid-2col { - display: grid; - grid-column: span 2/span 2; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 10px; - margin: 10px 0; - padding: 0; -} - -.grid-3col { - grid-column: span 3/span 3; - grid-template-columns: repeat(3, minmax(0, 1fr)); -} - -.grid-4col { - grid-column: span 4/span 4; - grid-template-columns: repeat(4, minmax(0, 1fr)); -} - -.grid-5col { - grid-column: span 5/span 5; - grid-template-columns: repeat(5, minmax(0, 1fr)); -} - -.grid-6col { - grid-column: span 6/span 6; - grid-template-columns: repeat(6, minmax(0, 1fr)); -} - -.grid-7col { - grid-column: span 7/span 7; - grid-template-columns: repeat(7, minmax(0, 1fr)); -} - -.grid-8col { - grid-column: span 8/span 8; - grid-template-columns: repeat(8, minmax(0, 1fr)); -} - -.grid-9col { - grid-column: span 9/span 9; - grid-template-columns: repeat(9, minmax(0, 1fr)); -} - -.grid-10col { - grid-column: span 10/span 10; - grid-template-columns: repeat(10, minmax(0, 1fr)); -} - -.grid-11col { - grid-column: span 11/span 11; - grid-template-columns: repeat(11, minmax(0, 1fr)); -} - -.grid-12col { - grid-column: span 12/span 12; - grid-template-columns: repeat(12, minmax(0, 1fr)); -} - -.grid-start-2 { - grid-column-start: 2; -} - -.grid-start-3 { - grid-column-start: 3; -} - -.grid-start-4 { - grid-column-start: 4; -} - -.grid-start-5 { - grid-column-start: 5; -} - -.grid-start-6 { - grid-column-start: 6; -} - -.grid-start-7 { - grid-column-start: 7; -} - -.grid-start-8 { - grid-column-start: 8; -} - -.grid-start-9 { - grid-column-start: 9; -} - -.grid-start-10 { - grid-column-start: 10; -} - -.grid-start-11 { - grid-column-start: 11; -} - -.grid-start-12 { - grid-column-start: 12; -} - -.grid-span-2 { - grid-column-end: span 2; -} - -.grid-span-3 { - grid-column-end: span 3; -} - -.grid-span-4 { - grid-column-end: span 4; -} - -.grid-span-5 { - grid-column-end: span 5; -} - -.grid-span-6 { - grid-column-end: span 6; -} - -.grid-span-7 { - grid-column-end: span 7; -} - -.grid-span-8 { - grid-column-end: span 8; -} - -.grid-span-9 { - grid-column-end: span 9; -} - -.grid-span-10 { - grid-column-end: span 10; -} - -.grid-span-11 { - grid-column-end: span 11; -} - -.grid-span-12 { - grid-column-end: span 12; -} - -.flex-group-center, -.flex-group-left, -.flex-group-right { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - text-align: center; -} - -.flex-group-left { - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - text-align: left; -} - -.flex-group-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - text-align: right; -} - -.flex-align-left { - align-items: flex-start; -} - -.flex-align-right { - align-items: flex-end; -} - -.gap-xs { gap: 2px; } -.gap-sm { gap: 4px; } -.gap-md { gap: 8px; } -.gap-lg { gap: 16px; } - -.flexshrink { - -webkit-box-flex: 0; - -ms-flex: 0; - flex: 0; -} - -.flex-between { - -webkit-box-pack: justify; - -ms-flex-pack: justify; - justify-content: space-between; -} - -.flexlarge { - -webkit-box-flex: 2; - -ms-flex: 2; - flex: 2; -} - -.align-left { - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - text-align: left; -} - -.align-right { - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; - text-align: right; -} - -.align-center { - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - text-align: center; -} - -/* Styles limited to vermine2047 sheets */ -.system-vermine2047 { - /* ----------------------------------------- */ - /* Items Lists */ - /* ----------------------------------------- */ - /* Example style for Vermine 2047 (can be removed if not needed) */ -} -.system-vermine2047 .item-form { - font-family: "Roboto", sans-serif; -} -.system-vermine2047 .sheet-header { - -webkit-box-flex: 0; - -ms-flex: 0 auto; - flex: 0 auto; - overflow: hidden; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-box-pack: start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-bottom: 10px; -} -.system-vermine2047 .sheet-header .profile-img { - -webkit-box-flex: 0; - -ms-flex: 0 0 100px; - flex: 0 0 100px; - height: 100px; - margin-right: 10px; -} -.system-vermine2047 .sheet-header .header-fields { - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; -} -.system-vermine2047 .sheet-header h1.charname { - height: 50px; - padding: 0px; - margin: 5px 0; - border-bottom: 0; -} -.system-vermine2047 .sheet-header h1.charname input { - width: 100%; - height: 100%; - margin: 0; -} -.system-vermine2047 .sheet-tabs { - -webkit-box-flex: 0; - -ms-flex: 0; - flex: 0; -} -.system-vermine2047 .sheet-body, -.system-vermine2047 .sheet-body .tab, -.system-vermine2047 .sheet-body .tab .editor { - height: 100%; - -} -.system-vermine2047 .sheet-body .editor { - min-height:75px; - margin-bottom:1rem; -} - -.system-vermine2047 editor:hover .editor-edit { - display: block; -} -.system-vermine2047 .tox { - min-height:25vh; -} -.system-vermine2047 .tox .tox-editor-container { - background: #fff; -} -.system-vermine2047 .tox .tox-edit-area { - padding: 0 8px; -} -.system-vermine2047 .resource-label { - font-weight: bold; -} -.system-vermine2047 .items-header { - height: 28px; - margin: 2px 0; - padding: 0; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - font-weight: bold; -} -.system-vermine2047 .items-header > * { - font-size: 14px; - text-align: center; -} -.system-vermine2047 .items-header .item-name { - font-weight: bold; - padding-left: 5px; - text-align: left; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.system-vermine2047 .items-list { - list-style: none; - margin: 0; - padding: 0; - overflow-y: auto; - scrollbar-width: thin; - color: #444; -} -.system-vermine2047 .items-list .item-list { - list-style: none; - margin: 0; - padding: 0; -} - -.system-vermine2047 .items-list .item-name { - -webkit-box-flex: 2; - -ms-flex: 2; - flex: 2; - margin: 0; - overflow: hidden; - font-size: 13px; - text-align: left; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: -webkit-box; - display: -ms-flexbox; - display: flex; -} -.system-vermine2047 .items-list .item-name h3, .system-vermine2047 .items-list .item-name h4 { - margin: 0; - white-space: nowrap; - overflow-x: hidden; -} -.system-vermine2047 .items-list .item-controls { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 0; - -webkit-box-pack: end; - -ms-flex-pack: end; - justify-content: flex-end; -} -.system-vermine2047 .items-list .item-controls a { - font-size: 12px; - text-align: center; - margin: 0 6px; -} -.system-vermine2047 .items-list .item { - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - padding: 0 2px; - border-bottom: 1px solid #c9c7b8; -} -.system-vermine2047 .items-list .item:last-child { - border-bottom: none; -} -.system-vermine2047 .items-list .item .item-name { - color: #191813; -} -.system-vermine2047 .items-list .item .item-name .item-image { - -webkit-box-flex: 0; - -ms-flex: 0 0 30px; - flex: 0 0 30px; - height: 30px; - background-size: 30px; - border: none; - margin-right: 5px; -} -.system-vermine2047 .items-list .item-prop { - text-align: center; - border-left: 1px solid #c9c7b8; - border-right: 1px solid #c9c7b8; - font-size: 12px; -} -.system-vermine2047 .items-list .items-header { - height: 28px; - margin: 2px 0; - padding: 0; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - font-weight: bold; -} -.system-vermine2047 .items-list .items-header > * { - font-size: 12px; - text-align: center; -} -.system-vermine2047 .items-list .items-header .item-name { - padding-left: 5px; - text-align: left; -} -.system-vermine2047 .item-formula { - -webkit-box-flex: 0; - -ms-flex: 0 0 200px; - flex: 0 0 200px; - padding: 0 8px; -} -.system-vermine2047 .effects .item .effect-source, -.system-vermine2047 .effects .item .effect-duration, -.system-vermine2047 .effects .item .effect-controls { - text-align: center; - border-left: 1px solid #c9c7b8; - border-right: 1px solid #c9c7b8; - font-size: 12px; -} -.system-vermine2047 .effects .item .effect-controls { - border: none; -} - -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJvaWxlcnBsYXRlLnNjc3MiLCJnbG9iYWwvX3dpbmRvdy5zY3NzIiwidXRpbHMvX3R5cG9ncmFwaHkuc2NzcyIsImJvaWxlcnBsYXRlLmNzcyIsImdsb2JhbC9fZ3JpZC5zY3NzIiwiZ2xvYmFsL19mbGV4LnNjc3MiLCJjb21wb25lbnRzL19pdGVtcy5zY3NzIiwiY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsInV0aWxzL19jb2xvcnMuc2NzcyIsImNvbXBvbmVudHMvX3Jlc291cmNlLnNjc3MiLCJ1dGlscy9fdmFyaWFibGVzLnNjc3MiLCJjb21wb25lbnRzL19lZmZlY3RzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ1Esd0ZBQUE7QUFRUixrQkFBQTtBQ1RBO0VBQ0UsaUNDRGE7QUNJZjs7QUZDRTtFQUVFLFdBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7QUVDSjs7QUNUQTs7RUFFRSxhQUFBO0VBQ0EsMEJBQUE7RUFDQSxnREFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsMEJBQUE7RUFDQSxnREFBQTtBRFlGOztBQ1RBO0VBQ0UsNEJBQUE7RUFDQSxpREFBQTtBRFlGOztBQ1RBO0VBQ0UsNEJBQUE7RUFDQSxpREFBQTtBRFlGOztBQ1RBO0VBQ0UsNEJBQUE7RUFDQSxpREFBQTtBRFlGOztBQ1JBO0VBQWdCLG9CQUFBO0FEWWhCOztBQ1hBO0VBQWdCLG9CQUFBO0FEZWhCOztBQ2RBO0VBQWdCLG9CQUFBO0FEa0JoQjs7QUNqQkE7RUFBZ0Isb0JB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QSxnQkFBQTtBSHVQTjtBR2hQQTtFQUNFLG1CQUFBO0VBQUEsbUJBQUE7RUFBQSxlQUFBO0VBQ0EsY0FBQTtBSGtQRjtBUXZXRTs7O0VBR0Usa0JBQUE7RUFDQSw4QkFBQTtFQUNBLCtCQUFBO0VBQ0EsZUFBQTtBUnlXSjtBUXRXRTtFQUNFLFlBQUE7QVJ3V0oiLCJmaWxlIjoiYm9pbGVycGxhdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQWRkIGN1c3RvbSBmb250cyBieSB2aXNpdGluZyBhbmQgc2VhcmNoIGh0dHBzOi8vZm9udHMuZ29vZ2xlLmNvbVxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXAnKTtcblxuLy8gSW1wb3J0IHV0aWxpdGllcy5cbkBpbXBvcnQgJ3V0aWxzL3R5cG9ncmFwaHknO1xuQGltcG9ydCAndXRpbHMvY29sb3JzJztcbkBpbXBvcnQgJ3V0aWxzL21peGlucyc7XG5AaW1wb3J0ICd1dGlscy92YXJpYWJsZXMnO1xuXG4vKiBHbG9iYWwgc3R5bGVzICovXG5AaW1wb3J0ICdnbG9iYWwvd2luZG93JztcbkBpbXBvcnQgJ2dsb2JhbC9ncmlkJztcbkBpbXBvcnQgJ2dsb2JhbC9mbGV4JztcblxuLyogU3R5bGVzIGxpbWl0ZWQgdG8gYm9pbGVycGxhdGUgc2hlZXRzICovXG4uYm9pbGVycGxhdGUge1xuICBAaW1wb3J0ICdjb21wb25lbnRzL2Zvcm1zJztcbiAgQGltcG9ydCAnY29tcG9uZW50cy9yZXNvdXJjZSc7XG4gIEBpbXBvcnQgJ2NvbXBvbmVudHMvaXRlbXMnO1xuICBAaW1wb3J0ICdjb21wb25lbnRzL2VmZmVjdHMnO1xufVxuIiwiLndpbmRvdy1hcHAge1xuICBmb250LWZhbWlseTogJGZvbnQtcHJpbWFyeTtcbn1cblxuLnJvbGxhYmxlIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHJlZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn0iLCIkZm9udC1wcmltYXJ5OiAnUm9ib3RvJywgc2Fucy1zZXJpZjtcbiRmb250LXNlY29uZGFyeTogJ1JvYm90bycsIHNhbnMtc2VyaWY7IiwiQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVJvYm90bzp3Z2h0QDQwMDs3MDAmZGlzcGxheT1zd2FwXCIpO1xuLyogR2xvYmFsIHN0eWxlcyAqL1xuLndpbmRvdy1hcHAge1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbn1cblxuLnJvbGxhYmxlOmhvdmVyLCAucm9sbGFibGU6Zm9jdXMge1xuICBjb2xvcjogIzAwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMCAxMHB4IHJlZDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZ3JpZCxcbi5ncmlkLTJjb2wge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWNvbHVtbjogc3BhbiAyL3NwYW4gMjtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbjogMTBweCAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZ3JpZC0zY29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMy9zcGFuIDM7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbn1cblxuLmdyaWQtNGNvbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDQvc3BhbiA0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTVjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA1L3NwYW4gNTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xufVxuXG4uZ3JpZC02Y29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gNi9zcGFuIDY7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIG1pbm1heCgwLCAxZnIpKTtcbn1cblxuLmdyaWQtN2NvbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDcvc3BhbiA3O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLThjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA4L3NwYW4gODtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgbWlubWF4KDAsIDFmcikpO1xufVxuXG4uZ3JpZC05Y29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gOS9zcGFuIDk7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDksIG1pbm1heCgwLCAxZnIpKTtcbn1cblxuLmdyaWQtMTBjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiAxMC9zcGFuIDEwO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpO1xufVxuXG4uZ3JpZC0xMWNvbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDExL3NwYW4gMTE7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDExLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTEyY29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMTIvc3BhbiAxMjtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIG1pbm1heCgwLCAxZnIpKTtcbn1cblxuLmdyaWQtc3RhcnQtMiB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xufVxuXG4uZ3JpZC1zdGFydC0zIHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDM7XG59XG5cbi5ncmlkLXN0YXJ0LTQge1xuICBncmlkLWNvbHVtbi1zdGFydDogNDtcbn1cblxuLmdyaWQtc3RhcnQtNSB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiA1O1xufVxuXG4uZ3JpZC1zdGFydC02IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDY7XG59XG5cbi5ncmlkLXN0YXJ0LTcge1xuICBncmlkLWNvbHVtbi1zdGFydDogNztcbn1cblxuLmdyaWQtc3RhcnQtOCB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiA4O1xufVxuXG4uZ3JpZC1zdGFydC05IHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDk7XG59XG5cbi5ncmlkLXN0YXJ0LTEwIHtcbiAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDEwO1xufVxuXG4uZ3JpZC1zdGFydC0xMSB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxMTtcbn1cblxuLmdyaWQtc3RhcnQtMTIge1xuICBncmlkLWNvbHVtbi1zdGFydDogMTI7XG59XG5cbi5ncmlkLXNwYW4tMiB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyO1xufVxuXG4uZ3JpZC1zcGFuLTMge1xuICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMztcbn1cblxuLmdyaWQtc3Bhbi00IHtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDQ7XG59XG5cbi5ncmlkLXNwYW4tNSB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiA1O1xufVxuXG4uZ3JpZC1zcGFuLTYge1xuICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gNjtcbn1cblxuLmdyaWQtc3Bhbi03IHtcbiAgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDc7XG59XG5cbi5ncmlkLXNwYW4tOCB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiA4O1xufVxuXG4uZ3JpZC1zcGFuLTkge1xuICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gOTtcbn1cblxuLmdyaWQtc3Bhbi0xMCB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMDtcbn1cblxuLmdyaWQtc3Bhbi0xMSB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMTtcbn1cblxuLmdyaWQtc3Bhbi0xMiB7XG4gIGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMjtcbn1cblxuLmZsZXgtZ3JvdXAtY2VudGVyLFxuLmZsZXgtZ3JvdXAtbGVmdCxcbi5mbGV4LWdyb3VwLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZsZXgtZ3JvdXAtbGVmdCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmZsZXgtZ3JvdXAtcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmZsZXhzaHJpbmsge1xuICBmbGV4OiAwO1xufVxuXG4uZmxleC1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uZmxleGxhcmdlIHtcbiAgZmxleDogMjtcbn1cblxuLmFsaWduLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogU3R5bGVzIGxpbWl0ZWQgdG8gYm9pbGVycGxhdGUgc2hlZXRzICovXG4uYm9pbGVycGxhdGUge1xuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiAgSXRlbXMgTGlzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiBFeGFtcGxlIHN0eWxlIGZvciBCb2lsZXJwbGF0ZSAoY2FuIGJlIHJlbW92ZWQgaWYgbm90IG5lZWRlZCkgKi9cbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbS1mb3JtIHtcbiAgZm9udC1mYW1pbHk6IFwiUm9ib3RvXCIsIHNhbnMtc2VyaWY7XG59XG4uYm9pbGVycGxhdGUgLnNoZWV0LWhlYWRlciB7XG4gIGZsZXg6IDAgYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG4uYm9pbGVycGxhdGUgLnNoZWV0LWhlYWRlciAucHJvZmlsZS1pbWcge1xuICBmbGV4OiAwIDAgMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbi5ib2lsZXJwbGF0ZSAuc2hlZXQtaGVhZGVyIC5oZWFkZXItZmllbGRzIHtcbiAgZmxleDogMTtcbn1cbi5ib2lsZXJwbGF0ZSAuc2hlZXQtaGVhZGVyIGgxLmNoYXJuYW1lIHtcbiAgaGVpZ2h0OiA1MHB4O1xuICBwYWRkaW5nOiAwcHg7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG4uYm9pbGVycGxhdGUgLnNoZWV0LWhlYWRlciBoMS5jaGFybmFtZSBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbn1cbi5ib2lsZXJwbGF0ZSAuc2hlZXQtdGFicyB7XG4gIGZsZXg6IDA7XG59XG4uYm9pbGVycGxhdGUgLnNoZWV0LWJvZHksXG4uYm9pbGVycGxhdGUgLnNoZWV0LWJvZHkgLnRhYixcbi5ib2lsZXJwbGF0ZSAuc2hlZXQtYm9keSAudGFiIC5lZGl0b3Ige1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uYm9pbGVycGxhdGUgLnRveCAudG94LWVkaXRvci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJvaWxlcnBsYXRlIC50b3ggLnRveC1lZGl0LWFyZWEge1xuICBwYWRkaW5nOiAwIDhweDtcbn1cbi5ib2lsZXJwbGF0ZSAucmVzb3VyY2UtbGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbXMtaGVhZGVyIHtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtYXJnaW46IDJweCAwO1xuICBwYWRkaW5nOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3JkZXI6IDJweCBncm9vdmUgI2VlZWRlMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWhlYWRlciA+ICoge1xuICBmb250LXNpemU6IDE0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbXMtaGVhZGVyIC5pdGVtLW5hbWUge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgY29sb3I6ICM0NDQ7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW0tbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbXMtbGlzdCAuaXRlbS1uYW1lIHtcbiAgZmxleDogMjtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW0tbmFtZSBoMywgLmJvaWxlcnBsYXRlIC5pdGVtcy1saXN0IC5pdGVtLW5hbWUgaDQge1xuICBtYXJnaW46IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbXMtbGlzdCAuaXRlbS1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDAgMCAxMDBweDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5ib2lsZXJwbGF0ZSAuaXRlbXMtbGlzdCAuaXRlbS1jb250cm9scyBhIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCA2cHg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW0ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjOWM3Yjg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW0gLml0ZW0tbmFtZSB7XG4gIGNvbG9yOiAjMTkxODEzO1xufVxuLmJvaWxlcnBsYXRlIC5pdGVtcy1saXN0IC5pdGVtIC5pdGVtLW5hbWUgLml0ZW0taW1hZ2Uge1xuICBmbGV4OiAwIDAgMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IDMwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW0tcHJvcCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYzljN2I4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzljN2I4O1xuICBmb250LXNpemU6IDEycHg7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW1zLWhlYWRlciB7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luOiAycHggMDtcbiAgcGFkZGluZzogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm9yZGVyOiAycHggZ3Jvb3ZlICNlZWVkZTA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmJvaWxlcnBsYXRlIC5pdGVtcy1saXN0IC5pdGVtcy1oZWFkZXIgPiAqIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uYm9pbGVycGxhdGUgLml0ZW1zLWxpc3QgLml0ZW1zLWhlYWRlciAuaXRlbS1uYW1lIHtcbiAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYm9pbGVycGxhdGUgLml0ZW0tZm9ybXVsYSB7XG4gIGZsZXg6IDAgMCAyMDBweDtcbiAgcGFkZGluZzogMCA4cHg7XG59XG4uYm9pbGVycGxhdGUgLmVmZmVjdHMgLml0ZW0gLmVmZmVjdC1zb3VyY2UsXG4uYm9pbGVycGxhdGUgLmVmZmVjdHMgLml0ZW0gLmVmZmVjdC1kdXJhdGlvbixcbi5ib2lsZXJwbGF0ZSAuZWZmZWN0cyAuaXRlbSAuZWZmZWN0LWNvbnRyb2xzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjOWM3Yjg7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjOWM3Yjg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5ib2lsZXJwbGF0ZSAuZWZmZWN0cyAuaXRlbSAuZWZmZWN0LWNvbnRyb2xzIHtcbiAgYm9yZGVyOiBub25lO1xufSIsIi8vIEdyaWQuXG4uZ3JpZCxcbi5ncmlkLTJjb2wge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLWNvbHVtbjogc3BhbiAyIC8gc3BhbiAyO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5ncmlkLTNjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiAzIC8gc3BhbiAzO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTRjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA0IC8gc3BhbiA0O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTVjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA1IC8gc3BhbiA1O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg1LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTZjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA2IC8gc3BhbiA2O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTdjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA3IC8gc3BhbiA3O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLThjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA4IC8gc3BhbiA4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg4LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTljb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiA5IC8gc3BhbiA5O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg5LCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi5ncmlkLTEwY29sIHtcbiAgZ3JpZC1jb2x1bW46IHNwYW4gMTAgLyBzcGFuIDEwO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgxMCwgbWlubWF4KDAsIDFmcikpO1xufVxuXG4uZ3JpZC0xMWNvbCB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDExIC8gc3BhbiAxMTtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTEsIG1pbm1heCgwLCAxZnIpKTtcbn1cblxuLmdyaWQtMTJjb2wge1xuICBncmlkLWNvbHVtbjogc3BhbiAxMiAvIHNwYW4gMTI7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCBtaW5tYXgoMCwgMWZyKSk7XG59XG5cbi8vIEdyaWQgb2Zmc2V0LlxuLmdyaWQtc3RhcnQtMiB7IGdyaWQtY29sdW1uLXN0YXJ0OiAyIH1cbi5ncmlkLXN0YXJ0LTMgeyBncmlkLWNvbHVtbi1zdGFydDogMyB9XG4uZ3JpZC1zdGFydC00IHsgZ3JpZC1jb2x1bW4tc3RhcnQ6IDQgfVxuLmdyaWQtc3RhcnQtNSB7IGdyaWQtY29sdW1uLXN0YXJ0OiA1IH1cbi5ncmlkLXN0YXJ0LTYgeyBncmlkLWNvbHVtbi1zdGFydDogNiB9XG4uZ3JpZC1zdGFydC03IHsgZ3JpZC1jb2x1bW4tc3RhcnQ6IDcgfVxuLmdyaWQtc3RhcnQtOCB7IGdyaWQtY29sdW1uLXN0YXJ0OiA4IH1cbi5ncmlkLXN0YXJ0LTkgeyBncmlkLWNvbHVtbi1zdGFydDogOSB9XG4uZ3JpZC1zdGFydC0xMCB7IGdyaWQtY29sdW1uLXN0YXJ0OiAxMCB9XG4uZ3JpZC1zdGFydC0xMSB7IGdyaWQtY29sdW1uLXN0YXJ0OiAxMSB9XG4uZ3JpZC1zdGFydC0xMiB7IGdyaWQtY29sdW1uLXN0YXJ0OiAxMiB9XG5cbi5ncmlkLXNwYW4tMiB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiAyIH1cbi5ncmlkLXNwYW4tMyB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiAzIH1cbi5ncmlkLXNwYW4tNCB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA0IH1cbi5ncmlkLXNwYW4tNSB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA1IH1cbi5ncmlkLXNwYW4tNiB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA2IH1cbi5ncmlkLXNwYW4tNyB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA3IH1cbi5ncmlkLXNwYW4tOCB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA4IH1cbi5ncmlkLXNwYW4tOSB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiA5IH1cbi5ncmlkLXNwYW4tMTAgeyBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMTAgfVxuLmdyaWQtc3Bhbi0xMSB7IGdyaWQtY29sdW1uLWVuZDogc3BhbiAxMSB9XG4uZ3JpZC1zcGFuLTEyIHsgZ3JpZC1jb2x1bW4tZW5kOiBzcGFuIDEyIH1cbiIsIi8vIEZsZXhib3guXG4uZmxleC1ncm91cC1jZW50ZXIsXG4uZmxleC1ncm91cC1sZWZ0LFxuLmZsZXgtZ3JvdXAtcmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZmxleC1ncm91cC1sZWZ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uZmxleC1ncm91cC1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uZmxleHNocmluayB7XG4gIGZsZXg6IDA7XG59XG5cbi5mbGV4LWJldHdlZW4ge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5mbGV4bGFyZ2Uge1xuICBmbGV4OiAyO1xufVxuXG4vLyBBbGlnbm1lbnQgc3R5bGVzLlxuLmFsaWduLWxlZnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5hbGlnbi1yaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYWxpZ24tY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn0iLCIvLyBTZWN0aW9uIEhlYWRlclxuLml0ZW1zLWhlYWRlciB7XG4gIGhlaWdodDogMjhweDtcbiAgbWFyZ2luOiAycHggMDtcbiAgcGFkZGluZzogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgYm9yZGVyOiAkYm9yZGVyLWdyb292ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gID4gKiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuaXRlbS1uYW1lIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLy8gZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgSXRlbXMgTGlzdHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLml0ZW1zLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbiAgY29sb3I6ICRjLXRhbjtcblxuICAvLyBDaGlsZCBsaXN0c1xuICAuaXRlbS1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gSXRlbSBOYW1lXG4gIC5pdGVtLW5hbWUge1xuICAgIGZsZXg6IDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGgzLCBoNCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2wgQnV0dG9uc1xuICAuaXRlbS1jb250cm9scyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgMTAwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5kaXZpZHVhbCBJdGVtXG4gIC5pdGVtIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMnB4OyAvLyB0byBhbGlnbiB3aXRoIHRoZSBoZWFkZXIgYm9yZGVyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjLWZhaW50O1xuICAgICY6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAuaXRlbS1uYW1lIHtcbiAgICAgIGNvbG9yOiAkYy1kYXJrO1xuICAgICAgLml0ZW0taW1hZ2Uge1xuICAgICAgICBmbGV4OiAwIDAgMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDMwcHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLml0ZW0tcHJvcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2M5YzdiODtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYzljN2I4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC8vIFNlY3Rpb24gSGVhZGVyXG4gIC5pdGVtcy1oZWFkZXIge1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXJnaW46IDJweCAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIGJvcmRlcjogJGJvcmRlci1ncm9vdmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgPiAqIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgLml0ZW0tbmFtZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAvLyBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuICB9XG59XG5cbi8qIEV4YW1wbGUgc3R5bGUgZm9yIEJvaWxlcnBsYXRlIChjYW4gYmUgcmVtb3ZlZCBpZiBub3QgbmVlZGVkKSAqL1xuLml0ZW0tZm9ybXVsYSB7XG4gIGZsZXg6IDAgMCAyMDBweDtcbiAgcGFkZGluZzogMCA4cHg7XG59IiwiLml0ZW0tZm9ybSB7XG4gIGZvbnQtZmFtaWx5OiAkZm9udC1wcmltYXJ5O1xufVxuXG4uc2hlZXQtaGVhZGVyIHtcbiAgZmxleDogMCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAucHJvZmlsZS1pbWcge1xuICAgIGZsZXg6IDAgMCAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgfVxuXG4gIC5oZWFkZXItZmllbGRzIHtcbiAgICBmbGV4OiAxO1xuICB9XG5cbiAgaDEuY2hhcm5hbWUge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luOiA1cHggMDtcbiAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIGlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxufVxuXG4uc2hlZXQtdGFicyB7XG4gIGZsZXg6IDA7XG59XG5cbi5zaGVldC1ib2R5LFxuLnNoZWV0LWJvZHkgLnRhYixcbi5zaGVldC1ib2R5IC50YWIgLmVkaXRvciB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnRveCB7XG4gIC50b3gtZWRpdG9yLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZDogJGMtd2hpdGU7XG4gIH1cblxuICAudG94LWVkaXQtYXJlYSB7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gIH1cbn0iLCIkYy13aGl0ZTogI2ZmZjtcbiRjLWJsYWNrOiAjMDAwO1xuXG4kYy1kYXJrOiAjMTkxODEzO1xuJGMtZmFpbnQ6ICNjOWM3Yjg7XG4kYy1iZWlnZTogI2I1YjNhNDtcbiRjLXRhbjogIzQ0NDsiLCIucmVzb3VyY2UtbGFiZWwge1xuICBmb250LXdlaWdodDogYm9sZDtcbn0iLCIkcGFkZGluZy1zbTogNXB4O1xuJHBhZGRpbmctbWQ6IDEwcHg7XG4kcGFkZGluZy1sZzogMjBweDtcblxuJGJvcmRlci1ncm9vdmU6IDJweCBncm9vdmUgI2VlZWRlMDsiLCIuZWZmZWN0cyAuaXRlbSB7XG4gIC5lZmZlY3Qtc291cmNlLFxuICAuZWZmZWN0LWR1cmF0aW9uLFxuICAuZWZmZWN0LWNvbnRyb2xzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYzljN2I4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjOWM3Yjg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICB9XG5cbiAgLmVmZmVjdC1jb250cm9scyB7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG59XG4iXX0= */ diff --git a/css/vermine2047.css b/css/vermine2047.css index a8731cd..d6e2be9 100644 --- a/css/vermine2047.css +++ b/css/vermine2047.css @@ -1,388 +1 @@ -@font-face { - font-family: "DistressBlack"; - src: url("../assets/fonts/dcc_sharp_distress_black_by_dccanim.otf"); -} - -.sans-font { - font-family: "DistressBlack", sans-serif; -} - -/* Change shadow colors and Foundry general font color!! */ -.app { - box-shadow: 0 0 20px #7e4444; /* Change the color code here for a nice shadow color! */ - color: #dfdfdf; /* Text color for window titles and menu all across Foundry */ -} - -/* Character and Item Name Titles Text style! */ -.sheet .charname input { - color: #191813; - font-family: "DistressBlack", sans-serif; - font-size: 30px; - font-style: normal; -} - -/* custom styles */ -body.system-vermine2047 img#logo { - content: url("/systems/vermine2047/assets/images/ui/logo_vermine_foundry.webp"); - height:auto; -} - -/* Customize the chat roll area! */ -#chat-form textarea { - background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat; - /*font-family: monospace; - font-size: 14px; - color: black; */ -} - -/* Customize the chat history area! */ -#chat-log .message { - background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat; - /*color: #191813; */ -} - -img { - border:none; -} - -ul.unstyled { - list-style-type: none; - padding:0; - margin:0; -} -ul.unstyled li { - padding:0; - margin:0; -} - -.padding-with-frieze { - margin-left:18% !important; - margin-right:10% !important; -} - -.padding-with-frieze li { - max-width:100%; -} - -.w-full { - width:100%; -} - -.mx-auto { - margin-left: auto; - margin-right:auto; -} - -/* ----------------------------------------- */ -/* Sheet Structure */ -/* ----------------------------------------- */ -.system-vermine2047 .sheet .window-content { - background: url(/systems/vermine2047/assets/images/ui/box_background.webp); - padding: 0; - overflow-y: hidden; -} - -.system-vermine2047 .dialog .window-content { - background: url(/systems/vermine2047/assets/images/ui/fond_chat_box.webp); - padding: 0.5rem; - overflow-y: hidden; -} - -.window-content .row.smb { - margin-bottom:0.25rem; -} -.window-content .row.mdb { - margin-bottom:0.5rem; -} -.window-content .row.lgb { - margin-bottom:1rem; -} - -.actor.sheet form .form { - display: grid; - /*grid: - "sidebar header" 75px - "sidebar nav" minmax(min-content, max-content) - "sidebar content" 1fr/230px 1fr;*/ - grid-template-columns: minmax(230px,1fr) 3fr; - grid-template-rows: 1fr; - align-items: flex-start; - height: 100%; -} - -.actor.sheet .form aside { - grid-row: span 1 / span 1; - background-image: url(/systems/vermine2047/assets/images/ui/barre_laterale.webp); - background-repeat: no-repeat; - background-position: bottom center; - height: 100%; -} - -.actor.sheet .form main { - grid-row: span 1 / span 1; -} - -.actor.sheet .form aside .image-wrapper { - margin: 1rem auto 3rem; - text-align: center; -} -.actor.sheet .form aside .image-wrapper img { - width:170px; - height:145px; -} -.actor.sheet .form aside .paper { - margin-top: 1rem; - height: 350px; -} -.actor.sheet .form aside .second-paper { - margin-top: 4rem; - height: 150px; -} - -.actor.sheet .form h3 { - font-family: "DistressBlack", sans-serif; - text-align: center; - text-transform: uppercase; - color:#bec2bd; - font-size: 1.25em; - border-bottom: none; -} -.actor.sheet .form h4, -.item.sheet .form h4 { - font-family: "DistressBlack", sans-serif; - font-size: 2em; - text-transform: uppercase; - -} - -.actor.sheet .form .characteristics h4 { - font-size:1.25rem; -} - -.actor.sheet .form .tab.totem h4, -.actor.sheet .form .tab.equipment h4, -.actor.sheet .form .tab.stories h4 { - margin-top:0.875rem; -} - -.system-vermine2047 .char-header { - font-family: "DistressBlack", sans-serif; -} -.system-vermine2047 .char-header section { - display:flex; - flex-direction: column; - align-items: flex-start; - justify-content: flex-start; - -} - -.system-vermine2047 .char-header h1.char-name, -.system-vermine2047 .char-vermine2047 { - border-bottom: none; - line-height: 2rem; -} - -.system-vermine2047 .char-vermine2047 { - font-size:1.5rem; -} - -.system-vermine2047 .sheet.actor .sheet-body { - height: calc(100% - 35px); - overflow-y: auto; - overflow-x: hidden; - display: flex; - flex-direction: column; - flex-wrap: nowrap; - max-height: 688px; - padding-bottom:1rem; -} -.system-vermine2047 .sheet.actor form { - width: 100%; - height: 100%; - overflow: hidden; -} -.system-vermine2047 .sheet.actor form input[type=text], .system-vermine2047 .sheet.actor form input[type=number] { - width: calc(100% - 2px); - height: calc(100% - 2px); - background: none; - padding: 0; - margin: 1px 0; - color: #333; - border: 1px solid transparent; -} -.system-vermine2047 .sheet.actor form input[type=text]:hover:not(:disabled), .system-vermine2047 .sheet.actor form input[type=text]:focus, .system-vermine2047 .sheet.actor form input[type=number]:hover:not(:disabled), .system-vermine2047 .sheet.actor form input[type=number]:focus { - border: 1px solid black; - box-shadow: 0 0 10px #00005a; -} -.system-vermine2047 .sheet.actor form select { - font-size: var(--font-size-10); - height: 18px; - background: rgba(255, 255, 255, 0.5); -} -.system-vermine2047 .sheet.actor form label { - display: block; -} -.system-vermine2047 .sheet.actor form .mce-panel span { - display: inherit; -} -.system-vermine2047 .sheet.actor form.editable .rollable:hover { - color: #000; - text-shadow: 0 0 10px #00005a; - cursor: pointer; -} -.system-vermine2047 .sheet.actor form .sheet-tabs { - font-weight: 500; - height: 30px; -} -.system-vermine2047 .sheet.actor form .sheet-tabs > .list-row { - line-height: 24px; - padding-top: 3px; - font-size: var(--font-size-12); - text-align: center; -} -.system-vermine2047 .sheet.actor form .sheet-tabs > .list-row:last-of-type { - padding-right: 4px; -} -.system-vermine2047 .sheet.actor form .sheet-tabs > .list-row.active { - color: #000; - font-weight: 700; -} -.system-vermine2047 .sheet.actor form .tab { - flex: 1; - overflow: hidden; -} -.system-vermine2047 .sheet.actor form .tag-legacy { - float: left; - margin: 0 2px 2px 0; - padding: 0 3px; - font-size: var(--font-size-10); - line-height: 16px; - border: 1px solid #999; - border-radius: 3px; - white-space: normal; - font-weight: 500; -} - -/* ---------------------------------------- */ -/* Actor Sheet */ -/* ---------------------------------------- */ -.system-vermine2047 .sheet.actor .window-resizable-handle { - bottom:-30px; -} - -.system-vermine2047 .sheet.actor, -.system-vermine2047 .sheet.actor .window-content { - min-width: 690px; - min-height: 800px; -} -.system-vermine2047 .sheet.actor .sidebar { - width: 230px; - min-height:518px; -} - -.system-vermine2047 .sheet.actor .floatright { - float: right; -} -.system-vermine2047 .sheet.actor .sheet-upper { - height: 268px; -} -.system-vermine2047 .sheet.actor .sheet-upper .sheet-header { - height: 48px; -} -.system-vermine2047 .sheet.actor .sheet-upper .sheet-profile, .system-vermine2047 .sheet.actor .sheet-upper .sheet-showcase { - height: 220px; -} - -.system-vermine2047 .sheet.actor .sheet-content { - padding:4px; -} -.system-vermine2047 .sheet.actor .sheet-sidebar { - height: calc(100% - 48px); - display: flex; - flex-direction: column; - flex-wrap: nowrap; - overflow-x: hidden; - overflow-y: auto; -} -.system-vermine2047 .sheet.actor .sheet-sidebar > * { - flex: 1; -} -.system-vermine2047 .sheet.actor .sheet-sidebar .sidebar-summary { - overflow-y: hidden; -} -.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper { - height: 220px; -} -.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper .sheet-showcase { - height: 172px; -} -.system-vermine2047 .sheet.actor.npc-sheet .sheet-lower { - height: calc(100% - 220px - 32px); -} -.system-vermine2047 .sheet.actor.npc-sheet section.sheet-body { - height: calc(100% - 48px); -} -.system-vermine2047 .sheet.actor .sheet-navigation { - border-top: 1px solid var(--secondary-background); - border-bottom: 1px solid var(--primary-background); -} -.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs > .list-row { - border-radius: 5px 5px 0 0; -} -.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs > .list-row.active { - border: 1px solid #666; - border-bottom: none; - /* box-shadow: 0 0 10px inset #ff6400; - */ - background: var(--primary-background); - color: #fff; - text-shadow: none; -} - - -.actor.sheet nav.sheet-navigation { - display: inline-flex; - justify-content: flex-end; - align-items: center; - height: 54px; - background: var(--secondary); - background: url(../assets/images/ui/barre_haut.webp) no-repeat right top; - width:100%; - position: relative; - padding-right:4rem; -} - -.actor.sheet nav.sheet-navigation .item { - line-height: 54px; - width: 24px; - display: inline-block; - border-radius: 50%; - z-index: 1; - transition: all 0.1s ease-out; -} - -.system-vermine2047 .sheet.actor form nav.sheet-navigation.sheet-tabs { - height:54px; -} - -.system-vermine2047 .sheet.actor .ability .die { - display:flex; - width:0.875rem; - height:1rem; - background-image:url(../../../../icons/svg/d10-grey.svg); - background-size: contain; - background-repeat: no-repeat; - background-position: center; - font-size:xx-small; - font-weight: bold; - align-items: center; - justify-content: center; -} - -.system-vermine2047 .sheet.actor .ability .die.pool { - filter: sepia(0.5) hue-rotate(60deg); -} - -.system-vermine2047 .sheet.actor .ability .die.reroll { - filter: sepia(0.5) hue-rotate(-60deg); -} +@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap";@font-face{font-family:"DistressBlack";src:url("../assets/fonts/dcc_sharp_distress_black_by_dccanim.otf")}.sans-font{font-family:"DistressBlack",sans-serif}.app{box-shadow:0 0 20px #7e4444;color:#dfdfdf}.sheet .charname input{color:#191813;font-family:"DistressBlack",sans-serif;font-size:30px;font-style:normal}body.system-vermine2047 img#logo{content:url("/systems/vermine2047/assets/images/ui/logo_vermine_foundry.webp");height:auto}#chat-form textarea{background:url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat}#chat-log .message{background:url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat}img{border:none}ul.unstyled{list-style-type:none;padding:0;margin:0}ul.unstyled li{padding:0;margin:0}.padding-with-frieze{margin-left:18% !important;margin-right:10% !important}.padding-with-frieze li{max-width:100%}.w-full{width:100%}.mx-auto{margin-left:auto;margin-right:auto}.system-vermine2047 .sheet .window-content{background:url(/systems/vermine2047/assets/images/ui/box_background.webp);padding:0;overflow-y:hidden}.system-vermine2047 .dialog .window-content{background:url(/systems/vermine2047/assets/images/ui/fond_chat_box.webp);padding:.5rem;overflow-y:hidden}.window-content .row.smb{margin-bottom:.25rem}.window-content .row.mdb{margin-bottom:.5rem}.window-content .row.lgb{margin-bottom:1rem}.actor.sheet form .form{display:grid;grid-template-columns:minmax(230px, 1fr) 3fr;grid-template-rows:1fr;align-items:flex-start;height:100%;overflow:auto}.actor.sheet .form aside{grid-row:span 1/span 1;background-image:url(/systems/vermine2047/assets/images/ui/barre_laterale.webp);background-repeat:no-repeat;background-position:12% 50%;background-size:400%;height:100%;box-shadow:-20px 0px 100px rgba(0,0,0,.7098039216) inset}.actor.sheet .form main{box-shadow:10px 0px 100px rgba(0,0,0,.7098039216) inset;padding-left:1rem;grid-row:span 1/span 1;height:100%}.actor.sheet .form aside .image-wrapper{margin:1rem auto 3rem;text-align:center}.actor.sheet .form aside .image-wrapper img{width:170px;height:145px}.actor.sheet .form aside .paper{margin-top:1rem;height:350px}.actor.sheet .form aside .second-paper{margin-top:4rem;height:150px}.actor.sheet .form h3{font-family:"DistressBlack",sans-serif;text-align:center;text-transform:uppercase;color:#4e564c;font-size:1.7rem;border-bottom:none;margin:0}.actor.sheet .form h4,.item.sheet .form h4{font-family:"DistressBlack",sans-serif;font-size:1.4em;text-transform:uppercase;margin:0 0 .2rem}.actor.sheet .form .characteristics h4{font-size:1.25rem;margin-top:0 .1rem}.actor.sheet .form .tab.totem h4,.actor.sheet .form .tab.equipment h4,.actor.sheet .form .tab.stories h4{margin-top:.875rem}.system-vermine2047 .char-header{font-family:"DistressBlack",sans-serif}.system-vermine2047 .char-header section{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}.system-vermine2047 .char-header h1.char-name,.system-vermine2047 .char-vermine2047{border-bottom:none;line-height:2rem}.system-vermine2047 .char-vermine2047{font-size:1.5rem}.system-vermine2047 .sheet.actor form{width:100%;height:100%;overflow:hidden}.system-vermine2047 .sheet.actor form input[type=text],.system-vermine2047 .sheet.actor form input[type=number]{width:calc(100% - 2px);height:calc(100% - 2px);background:none;padding:0;margin:1px 0;color:#333;border:1px solid rgba(0,0,0,0)}.system-vermine2047 .sheet.actor form input[type=text].hexa,.system-vermine2047 .sheet.actor form input[type=number].hexa{clip-path:polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);background:radial-gradient(circle, rgba(255, 255, 255, 0.425) 0%, rgba(0, 0, 0, 0.288) 100%);height:unset;max-width:1.5rem;aspect-ratio:1/1;color:#000}.system-vermine2047 .sheet.actor form input[type=text]:hover:not(:disabled),.system-vermine2047 .sheet.actor form input[type=text]:focus,.system-vermine2047 .sheet.actor form select:hover:not(:disabled),.system-vermine2047 .sheet.actor form select:focus,.system-vermine2047 .sheet.actor form input[type=number]:hover:not(:disabled),.system-vermine2047 .sheet.actor form input[type=number]:focus,.system-vermine2047 .sheet.actor form textarea:hover:not(:disabled),.system-vermine2047 .sheet.actor form textarea:focus{box-shadow:0 0 10px #005a3c inset}.system-vermine2047 .sheet.actor form select{font-size:.6rem;border:none;appearance:none;min-width:fit-content;max-width:fit-content;padding:0 .2rem;margin:0 .2rem;cursor:help}.system-vermine2047 .sheet.actor form label{display:block}.system-vermine2047 .sheet.actor form .mce-panel span{display:inherit}.system-vermine2047 .sheet.actor form.editable .rollable:hover,.system-vermine2047 .sheet.actor form.editable a:hover{color:#000;text-shadow:0 5px 5px #1fa832;cursor:pointer}.system-vermine2047 .sheet.actor form .sheet-tabs{font-weight:500;height:30px}.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row{line-height:24px;padding-top:3px;font-size:2rem;text-align:center}.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row:last-of-type{padding-right:4px}.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row.active{color:#000;font-weight:700}.system-vermine2047 .sheet.actor form .tab{flex:1;overflow:hidden}.system-vermine2047 .sheet.actor form .tag-legacy{float:left;margin:0 2px 2px 0;padding:0 3px;font-size:var(--font-size-10);line-height:16px;border:1px solid #999;border-radius:3px;white-space:normal;font-weight:500}.system-vermine2047 .sheet.actor,.system-vermine2047 .sheet.actor .window-content{min-width:690px}.system-vermine2047 .sheet.actor .sidebar{width:230px;min-height:518px}.system-vermine2047 .sheet.actor .floatright{float:right}.system-vermine2047 .sheet.actor .sheet-upper{height:268px}.system-vermine2047 .sheet.actor .sheet-upper .sheet-header{height:48px}.system-vermine2047 .sheet.actor .sheet-upper .sheet-profile,.system-vermine2047 .sheet.actor .sheet-upper .sheet-showcase{height:220px}.system-vermine2047 .sheet.actor .sheet-content{padding:4px}.system-vermine2047 .sheet.actor .sheet-sidebar{height:calc(100% - 48px);display:flex;flex-direction:column;flex-wrap:nowrap;overflow-x:hidden;overflow-y:auto}.system-vermine2047 .sheet.actor .sheet-sidebar>*{flex:1}.system-vermine2047 .sheet.actor .sheet-sidebar .sidebar-summary{overflow-y:hidden}.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper{height:220px}.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper .sheet-showcase{height:172px}.system-vermine2047 .sheet.actor.npc-sheet .sheet-lower{height:calc(100% - 220px - 32px)}.system-vermine2047 .sheet.actor .sheet-navigation{border-top:1px solid var(--secondary-background);border-bottom:1px solid var(--primary-background)}.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row{border-radius:5px 5px 0 0}.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row.active{border:1px solid #666;border-bottom:none;background:var(--primary-background);color:#fff;text-shadow:none;color:#000;text-shadow:0 0 10px #00005a;cursor:pointer}.actor.sheet nav.sheet-navigation{display:inline-flex;justify-content:space-around;align-items:center;height:54px;background:url(../assets/images/ui/barre_haut.webp) no-repeat right top;background-size:100% 100%;width:100%;position:relative;padding-right:4rem;font-size:1.4rem}.actor.sheet nav.sheet-navigation.tabs .item{height:2.4rem;display:inline-block;z-index:1;transition:all .1s ease-out;color:#606060;box-shadow:0px 0px 0px rgba(0,0,0,.404)}.actor.sheet nav.sheet-navigation.tabs .item:hover,.actor.sheet nav.sheet-navigation.tabs .item.active{color:#000;text-shadow:0 5px 5px #1fa832;cursor:pointer}.actor.sheet nav.sheet-navigation.tabs .item:hover{text-shadow:0 5px 5px rgba(30,82,37,.6039215686)}.system-vermine2047 .sheet.actor form nav.sheet-navigation.sheet-tabs{height:54px}.system-vermine2047 .sheet.actor .ability{padding-right:.6rem;font-size:.8rem;border-bottom:1px solid rgba(170,170,152,.664);box-shadow:0px 0px 15px rgba(128,128,128,0) inset;transition:.2s;position:relative}.system-vermine2047 .sheet.actor .ability:hover{box-shadow:0px 0px 15px gray inset}.system-vermine2047 .sheet.actor .ability label{min-width:fit-content}.system-vermine2047 .sheet.actor .ability span{max-width:fit-content;margin:0 1rem;flex:.5}.system-vermine2047 .sheet.actor .ability span.hexa{text-align:center;clip-path:polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);background:radial-gradient(circle, rgba(255, 255, 255, 0.425) 0%, rgba(0, 0, 0, 0.288) 100%);max-height:1.2rem;max-width:1.2rem;aspect-ratio:1/1;color:#000;vertical-align:bottom}.system-vermine2047 .sheet.actor .ability div.specialties{position:absolute;bottom:0;font-size:.7rem}.system-vermine2047 .sheet.actor .ability .skill-dots{height:100%;align-self:center;flex:1.5}.system-vermine2047 .sheet.actor .ability .skill-dots>div{max-width:.7rem;height:.7rem;aspect-ratio:1/1;border-radius:50%;font-weight:700;text-align:center;padding-bottom:.2rem;font-style:oblique;align-self:flex-start}.system-vermine2047 .sheet.actor .ability .skill-dots>div.dice-pool-dot{background:radial-gradient(circle, rgb(94, 90, 77) 25%, rgb(0, 0, 0) 100%);max-width:.7rem;aspect-ratio:1/1;border-radius:50%}.system-vermine2047 .sheet.actor .ability .skill-dots>div.dice-reroll-dot{background:radial-gradient(circle, rgb(187, 182, 165) 25%, rgb(0, 0, 0) 100%)}.vermine2047.sheet.actor input[type=radio]::after{content:" ";display:block;width:.8rem;height:.8rem;background:radial-gradient(circle, rgb(217, 214, 204) 0%, rgb(217, 214, 204) 40%, rgb(85, 85, 85) 60%);border-radius:50%}.vermine2047.sheet.actor input[type=radio].checked::after{content:" ";display:block;width:.8rem;height:.8rem;background:radial-gradient(circle, rgb(75, 74, 74) 0%, rgb(27, 39, 28) 60%);border-radius:50%}.window-app{font-family:"Roboto",sans-serif;box-shadow:0px 0px 30px #454e2c}.rollable:hover,.rollable:focus{color:#000;text-shadow:0 0 10px red;cursor:pointer}.grid,.grid-2col{display:grid;grid-column:span 2/span 2;grid-template-columns:repeat(2, minmax(0, 1fr));gap:10px;margin:5px 0;padding:0}.grid-3col{grid-column:span 3/span 3;grid-template-columns:repeat(3, minmax(0, 1fr))}.grid-4col{grid-column:span 4/span 4;grid-template-columns:repeat(4, minmax(0, 1fr))}.grid-5col{grid-column:span 5/span 5;grid-template-columns:repeat(5, minmax(0, 1fr))}.grid-6col{grid-column:span 6/span 6;grid-template-columns:repeat(6, minmax(0, 1fr))}.grid-7col{grid-column:span 7/span 7;grid-template-columns:repeat(7, minmax(0, 1fr))}.grid-8col{grid-column:span 8/span 8;grid-template-columns:repeat(8, minmax(0, 1fr))}.grid-9col{grid-column:span 9/span 9;grid-template-columns:repeat(9, minmax(0, 1fr))}.grid-10col{grid-column:span 10/span 10;grid-template-columns:repeat(10, minmax(0, 1fr))}.grid-11col{grid-column:span 11/span 11;grid-template-columns:repeat(11, minmax(0, 1fr))}.grid-12col{grid-column:span 12/span 12;grid-template-columns:repeat(12, minmax(0, 1fr))}.grid-start-2{grid-column-start:2}.grid-start-3{grid-column-start:3}.grid-start-4{grid-column-start:4}.grid-start-5{grid-column-start:5}.grid-start-6{grid-column-start:6}.grid-start-7{grid-column-start:7}.grid-start-8{grid-column-start:8}.grid-start-9{grid-column-start:9}.grid-start-10{grid-column-start:10}.grid-start-11{grid-column-start:11}.grid-start-12{grid-column-start:12}.grid-span-2{grid-column-end:span 2}.grid-span-3{grid-column-end:span 3}.grid-span-4{grid-column-end:span 4}.grid-span-5{grid-column-end:span 5}.grid-span-6{grid-column-end:span 6}.grid-span-7{grid-column-end:span 7}.grid-span-8{grid-column-end:span 8}.grid-span-9{grid-column-end:span 9}.grid-span-10{grid-column-end:span 10}.grid-span-11{grid-column-end:span 11}.grid-span-12{grid-column-end:span 12}.flex-group-center,.flex-group-left,.flex-group-right{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center}.flex-group-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.flex-group-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.flex-align-left{align-items:flex-start}.flex-align-right{align-items:flex-end}.gap-xs{gap:2px}.gap-sm{gap:4px}.gap-md{gap:8px}.gap-lg{gap:16px}.flexshrink{-webkit-box-flex:0;-ms-flex:0;flex:0}.flex-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.flexlarge{-webkit-box-flex:2;-ms-flex:2;flex:2}.align-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.align-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}.align-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;text-align:center}.system-vermine2047 .item-form{font-family:"Roboto",sans-serif}.system-vermine2047 .sheet-header{-webkit-box-flex:0;-ms-flex:0 auto;flex:0 auto;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:10px}.system-vermine2047 .sheet-header .profile-img{-webkit-box-flex:0;-ms-flex:0 0 100px;flex:0 0 100px;height:100px;margin-right:10px}.system-vermine2047 .sheet-header .header-fields{-webkit-box-flex:1;-ms-flex:1;flex:1}.system-vermine2047 .sheet-header h1.charname{height:50px;padding:0px;margin:5px 0;border-bottom:0}.system-vermine2047 .sheet-header h1.charname input{width:100%;height:100%;margin:0}.system-vermine2047 .sheet-tabs{-webkit-box-flex:0;-ms-flex:0;flex:0}.system-vermine2047 .sheet-body .tab,.system-vermine2047 .sheet-body .tab .editor{height:100%;min-width:100%}.system-vermine2047 .sheet-body .tab .editor{min-height:75px;margin-bottom:1rem;min-width:100%}.system-vermine2047 .sheet-body .tab .editor .editor-content{min-width:100%;min-height:3rem}.system-vermine2047 editor:hover .editor-edit{display:block}.system-vermine2047 .tox{min-height:25vh}.system-vermine2047 .tox .tox-editor-container{background:#fff}.system-vermine2047 .tox .tox-edit-area{padding:0 8px}.system-vermine2047 .resource-label{font-weight:bold}.system-vermine2047 .items-header{height:28px;margin:2px 0;padding:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:rgba(0,0,0,.05);border:2px groove #eeede0;font-weight:bold}.system-vermine2047 .items-header>*{font-size:14px;text-align:center}.system-vermine2047 .items-header .item-name{font-weight:bold;padding-left:5px;text-align:left;display:-webkit-box;display:-ms-flexbox;display:flex}.system-vermine2047 .items-list{list-style:none;margin:0;padding:0;overflow-y:auto;scrollbar-width:thin;color:#444}.system-vermine2047 .items-list .item-list{list-style:none;margin:0;padding:0}.system-vermine2047 .items-list .item-name{-webkit-box-flex:2;-ms-flex:2;flex:2;margin:0;overflow:hidden;font-size:13px;text-align:left;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex}.system-vermine2047 .items-list .item-name h3,.system-vermine2047 .items-list .item-name h4{margin:0;white-space:nowrap;overflow-x:hidden}.system-vermine2047 .items-list .item-controls{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.system-vermine2047 .items-list .item-controls a{font-size:12px;text-align:center;margin:0 6px}.system-vermine2047 .items-list .item{-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 2px;border-bottom:1px solid #c9c7b8}.system-vermine2047 .items-list .item:last-child{border-bottom:none}.system-vermine2047 .items-list .item .item-name{color:#191813}.system-vermine2047 .items-list .item .item-name .item-image{-webkit-box-flex:0;-ms-flex:0 0 30px;flex:0 0 30px;height:30px;background-size:30px;border:none;margin-right:5px}.system-vermine2047 .items-list .item-prop{text-align:center;border-left:1px solid #c9c7b8;border-right:1px solid #c9c7b8;font-size:12px}.system-vermine2047 .items-list .items-header{height:28px;margin:2px 0;padding:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:rgba(0,0,0,.05);border:2px groove #eeede0;font-weight:bold}.system-vermine2047 .items-list .items-header>*{font-size:12px;text-align:center}.system-vermine2047 .items-list .items-header .item-name{padding-left:5px;text-align:left}.system-vermine2047 .item-formula{-webkit-box-flex:0;-ms-flex:0 0 200px;flex:0 0 200px;padding:0 8px}.system-vermine2047 .effects .item .effect-source,.system-vermine2047 .effects .item .effect-duration,.system-vermine2047 .effects .item .effect-controls{text-align:center;border-left:1px solid #c9c7b8;border-right:1px solid #c9c7b8;font-size:12px}.system-vermine2047 .effects .item .effect-controls{border:none}.chat-message .message-header{line-height:20px;color:#fff;text-shadow:0px 0px 5px #000;background:rgba(25,24,19,.368627451)}span.game-mode{font-family:"DistressBlack",sans-serif;position:absolute;margin-left:auto;color:rgba(0,0,0,0);top:1rem;z-index:900;width:55%;text-align:center;text-transform:uppercase;font-weight:900;background:linear-gradient(180deg, rgba(255, 255, 255, 0.767) 0%, rgba(0, 0, 0, 0.61) 17%, rgba(0, 0, 0, 0.548) 19%, rgba(222, 255, 221, 0.575) 24%, rgba(255, 255, 255, 0.637) 43%, rgba(0, 0, 0, 0.486) 47%, rgba(254, 255, 254, 0.466) 50%, rgba(0, 0, 0, 0.699) 63%, rgba(134, 160, 137, 0.479) 64%, rgba(213, 248, 210, 0.493) 100%);background-clip:text}span.game-mode#game-mode-1{color:rgba(235,218,143,.8)}span.game-mode#game-mode-2{color:#83f883}span.game-mode#game-mode-3{color:rgba(245,124,124,.8)} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..3266472 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,40 @@ +'use strict'; + +const gulp = require('gulp'); +const sass = require('gulp-sass')(require('sass')); +var browserSync = require('browser-sync').create(); + +function buildStyles() { + return gulp.src('./scss/vermine2047.scss') + .pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError)) + .pipe(gulp.dest('./css')) + .pipe(browserSync.stream()); + + +}; +function reloadTemplatesHTML() { + + return browserSync.reload("templates/**/*.html") +} + +function reloadTemplatesHBS() { + + return browserSync.reload("templates/**/*.hbs") +} +exports.buildStyles = buildStyles; +exports.watch = function () { + browserSync.init( + { + server: false, + proxy: { + target: "https://localhost:443/", + ws: true, + } + + } + ); + gulp.watch("./templates/**/*.html").on('change', reloadTemplatesHTML); + gulp.watch("./templates/**/*.hbs").on('change', reloadTemplatesHBS); + gulp.watch(['./scss/**/*.scss', './scss/*.scss'], buildStyles); + +}; diff --git a/lang/en.json b/lang/en.json index d80f472..a36710c 100644 --- a/lang/en.json +++ b/lang/en.json @@ -2,396 +2,506 @@ "SETTINGS": { "world": { "game_mode": { - "name":"Choix du mode de jeu", - "hint":"À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers." + "name": "Game Mode Selection", + "hint": "Just like some video games offer different modes, Vermine 2047 lets players choose their Game Mode and set the degree of realism, supernatural and dangerosity of the universe themselves." }, "first_run": { - "name":"Affichage du tour d'accueil", - "hint":"Pour aider les débutantEs à bien commencer avec le système Vermine 2047." + "name": "First Run Display", + "hint": "To help beginners get started with the Vermine 2047 system." } } }, - "VERMINE.WorldSettings.GameMode.Name":"Choix du mode de jeu", - "VERMINE.WorldSettings.GameMode.Hint":"À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers.", + "VERMINE.WorldSettings.GameMode.Name": "Game Mode Selection", + "VERMINE.WorldSettings.GameMode.Hint": "Just like some video games offer different modes, Vermine 2047 lets players choose their Game Mode and set the degree of realism, supernatural and dangerosity of the universe themselves.", "GAME_MODES": { - "heroic": { "name": "Héroique"}, - "epic": { "name": "Epique"}, - "legendary": { "name": "Légendaire"} + "heroic": { + "name": "Heroic" + }, + "epic": { + "name": "Epic" + }, + "legendary": { + "name": "Legendary" + } }, "ROLLS": { - "tool": "Lanceur de dés", - "roll_dice": "Jeter les dés" - }, + "tool": "Dice Roller", + "roll_dice": "Roll the dice" + }, "TOURS": { - "ChatMessage": "

Bienvenue dans Vermine!

Si vous utilisez ce système pour la première fois, notre shaman va vous guider vers votre rite d'initiation

", + "ChatMessage": "

Welcome to Vermine!

If you're using this system for the first time, our shaman will guide you to your initiation rite

", "Welcome": { - "Title": "Bienvenue dans Vermine", - "Description": "Aperçu du système Vermine", - "WelcomeTitle": "Bienvenue", - "WelcomeContent": "

Bienvenue dans Vermine, survivantE ! Faire le tour de notre zone d'action te permettre de retrouver tes marques, même si c'est ton premier jour parmi nous.

En haut de la colonne de droite, tu as tout ce que tu as le droit de faire chez nous : parler, voir les autres tronches de ta commu, gérer ton matos et celui de tes potes, étudier les cartes, lire les journaux des clamsés, aller nous chercher de la bouffe à coups de surin. Entrons dans le vif du sujet.

", - "ActorTabTitle": "Peupler son univers", - "ActorTabContent": "

Bien installéE, survivantE ? Tournons pas au tour du pot, si tu veux rester avec nous, va falloir nous dire qui tu es, d'où tu viens, et à qui tu fais confiance. Une fois que t'es prêtE pour ca, clique donc sur le bouton \"Créer un acteur\"

", - "CharacterCreateTitle": "Créer un groupe", - "CharacterCreateContent": "

Ce bouton crée une fiche de groupe, parce que c'est par là qu'on commence, dans ce trou ! Ta tronche viendra ensuite, quand tu créeras ta fiche de personnage. Au fur et à mesure que tu progresses, tu voudras peut-être rajouter des infos sur ce que tu vois trainer autour du camp.

", - "CompendiumTitle": "Cartes", - "CompendiumContent": "

Vous aurez probablement besoin d'une carte des Terres de Fer ou d'un secteur de la Forge. Vous pouvez créer votre propre scène pour cela, ou vous pouvez utiliser l'une des nôtres. Ouvrez l'un de ces compendiums et faites glisser une carte dans votre zone de scènes (l'onglet qui ressemble à une carte pliée).

", + "Title": "Welcome to Vermine", + "Description": "Overview of the Vermine system", + "WelcomeTitle": "Welcome", + "WelcomeContent": "

Welcome to Vermine, survivor! Take a tour of our action zone to find your bearings, even if it's your first day among us.

At the top of the right column, you have everything you're allowed to do here: talk, see other tronches of your commu, manage your matos and that of your potes, study the maps, read the journals of the clamsés, go get us some food with your surin. Let's get into the thick of it.

", + "ActorTabTitle": "Populate your universe", + "ActorTabContent": "

Well installed, survivor? Let's not turn around the pot, if you want to stay with us, you'll have to tell us who you are, where you come from, and who you trust. Once you're ready for that, click on the \"Create an actor\" button

", + "CharacterCreateTitle": "Create a group", + "CharacterCreateContent": "

This button creates a group file, because that's where we start, in this trou! Your tronche will come later, when you create your character file. As you progress, you might want to add some info on what you see around the camp.

", + "CompendiumTitle": "Maps", + "CompendiumContent": "

You will probably need a map of the Iron Lands or a sector of the Forge. You can create your own scene for that, or you can use one of ours. Open one of these compendiums and drag a map into your scene tab (the tab that looks like a folded map).

", "OracleToolTitle": "Totem", - "OracleToolContent": "

Aucune partie d'Vermine ou Starforged ne serait complète sans oracles. Ce bouton fera apparaître une fenêtre avec tous les oracles du jeu choisi. Les oracles sont également disponibles depuis la fiche de personnage.

", - "ToursTitle": "Prochaines étapes", - "ToursContent": "

Tu t'en sors pas si mal ! Moi je vais te laisser là, mais si tu as d'autres questions, tu peux venir me trouver. Si ca concerne la mécanique, inscris-toi dans notre groupe de parole, par là Totem Foundry Discord. Sinon, tu peux rejoindre la place centrale par ici Vermine Discord

Enjoy!

" + "OracleToolContent": "

No game of Vermine or Starforged would be complete without oracles. This button will open a window with all the oracles of the chosen game. The oracles are also available from the character sheet.

", + "ToursTitle": "Next steps", + "ToursContent": "

You're not doing too badly! I'll leave you there, but if you have any questions, you can come find me. If it's about the mechanics, sign up for our group of speech, over there Totem Foundry Discord. Otherwise, you can join the central place over here Vermine Discord

Enjoy!

" } }, "DIFFICULTY_LEVELS": { - "obvious": "Evidente", - "easy": "Facile", - "hard": "Difficile", - "very_hard": "Très difficile", + "obvious": "Obvious", + "easy": "Easy", + "hard": "Hard", + "very_hard": "Very hard", "impossible": "Impossible" }, "ATTITUDES": { - "offensive": { "name": "Offensif"}, - "active": { "name": "Actif"}, - "passive": { "name": "Passif"} + "offensive": { + "name": "Offensive" + }, + "active": { + "name": "Active" + }, + "passive": { + "name": "Passive" + } }, "AGE_TYPES": { - "young": "Jeune", - "adult": "Adulte", - "old": "Vieux" + "young": "Young", + "adult": "Adult", + "old": "Old" }, "IDENTITY": { - "name": "Nom", - "height": "Taille", - "weight": "Poids", + "name": "Name", + "height": "Height", + "weight": "Weight", "totem": "Totem", "age": "Age", - "gender": "Sexe", - "profile": "Profil", - "origin": "Origine", + "gender": "Gender", + "profile": "Profile", + "origin": "Origin", "theme": "Concept", "instincts": "Instincts", - "prohibits": "Interdits", - "objectives": "Objectifs", + "prohibits": "Prohibits", + "objectives": "Objectives", "relations": "Relations", - "morale":"Moral", - "morale_level": "Niveau de moral", + "morale": "Morale", + "morale_level": "Morale level", "notes": "Notes" }, "ADVERSITY": { - "threat": "Menace", - "experience": "Expérience", - "role": "Rôle", - "attack": "Attaque", - "damage": "Dommages", - "weapon": "Arme", - "vigor": "Vigueur", - "wounds": "Blessures", + "threat": "Threat", + "experience": "Experience", + "role": "Role", + "attack": "Attack", + "damage": "Damage", + "weapon": "Weapon", + "vigor": "Vigor", + "wounds": "Wounds", "action": "Action", - "specialties": "Spécialité", - "rerolls": "Relances", + "specialties": "Specialty", + "rerolls": "Rerolls", "contact": "Contact", - "reaction": "Réaction", - "pools":"Réserves", - "gear": "Matériel", + "reaction": "Reaction", + "pools": "Reserves", + "gear": "Gear", "protection": "Protection", - "skills": "Compétences", - "pattern": "Gabarit", - "size": "Taille", - "pack": "Groupe" + "skills": "Skills", + "pattern": "Pattern", + "size": "Size", + "pack": "Group" }, - "VERMINE": { "name": "Vermine", - "stats": "Statistiques", - "level": "Niveau", - "experience": "Expérience", - "reputation": "Réputation", - "pool": "Réserve", - "pools": "Réserves", - "self_control": "Sang-Froid", + "stats": "Statistics", + "level": "Level", + "experience": "Experience", + "reputation": "Reputation", + "pool": "Reserve", + "pools": "Reserves", + "self_control": "Self-control", "effort": "Effort", - "group": "Groupe", - "abilities":"Caractéristiques", - "ability":"Caractéristique", - "skills_title":"Compétences", - "skill_title":"Compétence", - "skill_mastery":"Maîtrise", - "bonus":"Bonus", - "penalty":"Malus", - "reroll":"Relance", - "equipment":"Equipement", - "specialty":"Spécialité", - "technique":"Technique", - "techniques":"Techniques", - "difficulty":"Difficulté", - "help":"Entraide", - "tooling":"Equipement", - "quantity": "Quantité", - "qty": "Qté", - "weight": "Poids", + "group": "Group", + "abilities": "Characteristics", + "ability": "Characteristic", + "skills_title": "Skills", + "skill_title": "Skill", + "skill_mastery": "Mastery", + "bonus": "Bonus", + "penalty": "Penalty", + "reroll": "Reroll", + "equipment": "Equipment", + "specialty": "Specialty", + "technique": "Technique", + "techniques": "Techniques", + "difficulty": "Difficulty", + "help": "Help", + "tooling": "Equipment", + "quantity": "Quantity", + "qty": "Qty", + "weight": "Weight", "dmg": "Dmg", - "damage": "Dommage", - "damages": "Dommages", - "range": "Portée", - "ranges": "Portées", - "mobility": "Mobilité", - "rarity": "Rareté", + "damage": "Damage", + "damages": "Damages", + "range": "Range", + "ranges": "Ranges", + "mobility": "Mobility", + "rarity": "Rarity", "rarity_sm": "Rar.", - "reliability": "Fiabilité", + "reliability": "Reliability", "reliability_sm": "Fiab.", - "wounds":{ - "name":"Blessures", - "threshold": "Seuil", - "light":"Légère", - "heavy": "Grave", - "deadly": "Mortelle", - "light_wounds":"Blessure légère", - "heavy_wounds":"Blessure grave", - "deadly_wounds":"Blessure mortelle" + "wounds": { + "name": "Wounds", + "threshold": "Threshold", + "light": "Light", + "heavy": "Heavy", + "deadly": "Deadly", + "light_wounds": "Light wounds", + "heavy_wounds": "Heavy wounds", + "deadly_wounds": "Deadly wounds" }, - "ammo": "Munitions", + "ammo": "Ammo", "ammo_sm": "Mun", "trait": "Trait", "traits": "Traits", - "clew": "Indice", + "clew": "Clue", "combat": "Combat", - "stories": "Histoires", - "gear": "Matériel", - "information": "Informations", - "boost": "boost", - "group_abilities": "Capacités de groupe", - "totem_abilities": "Capacités de totem", - "type_group": "Groupe", - "type_character": "Personnage", - "type_npc": "PNJ", - "type_creature": "Créature", + "stories": "Stories", + "gear": "Gear", + "information": "Information", + "boost": "Boost", + "group_abilities": "Group abilities", + "totem_abilities": "Totem abilities", + "type_group": "Group", + "type_character": "Character", + "type_npc": "NPC", + "type_creature": "Creature", "type": "Type", - "group_members": "Membres", - "encounters": "Rencontres", - "road": "La Route", - "totem_picker": "Sélecteur de totem", - "actor_picker": "Sélecteur de personnage" + "group_members": "Members", + "encounters": "Encounters", + "road": "The Road", + "totem_picker": "Totem picker", + "actor_picker": "Actor picker" }, "UI": { - "add": "Ajouter", - "source":"Source", - "duration":"Durée", - "effect_toggle":"Basculer un effet", - "effect_edit":"Modifier un effet", - "effect_delete":"Détruire un effet", - "effect_create":"Créer un effet", + "add": "Add", + "source": "Source", + "duration": "Duration", + "effect_toggle": "Toggle effect", + "effect_edit": "Edit effect", + "effect_delete": "Delete effect", + "effect_create": "Create effect", "effects": { - "name": "Effets", - "temporary": "Effets temporaires", - "passive": "Effets passifs", - "inactive": "Effets inactifs" + "name": "Effects", + "temporary": "Temporary effects", + "passive": "Passive effects", + "inactive": "Inactive effects" } }, "ITEMS": { "defense": "Protection", "defenses": "Protections", - "new_defense": "Nouvelle protection", - "weapon": "Arme", - "new_weapon": "Nouvelle arme", - "weapons": "Armes", - "new_background": "Nouvel historique", - "backgrounds": "Historiques", - "new_trauma": "Nouveau traumatisme", - "traumas": "Traumatismes", - "rumor": "Rumeur", - "new_rumor": "Nouvelle rumeur", - "rumors": "Rumeurs", - "ability": "Capacité", - "new_ability": "Nouvelle capacité", - "abilities": "Capacités", - "specialties": "Spécialités", - "new_specialty": "Nouvelle spécialité", + "new_defense": "New protection", + "weapon": "Weapon", + "new_weapon": "New weapon", + "weapons": "Weapons", + "new_background": "New background", + "backgrounds": "Backgrounds", + "new_trauma": "New trauma", + "traumas": "Traumas", + "rumor": "Rumor", + "new_rumor": "New rumor", + "rumors": "Rumors", + "ability": "Ability", + "new_ability": "New ability", + "abilities": "Abilities", + "specialties": "Specialties", + "new_specialty": "New specialty", "evolution": "Adaptation", - "new_evolution": "Nouvelle adaptation", + "new_evolution": "New adaptation", "evolutions": "Adaptations", - "new_vehicle": "Nouveau véhicule", - "vehicles": "Véhicules", - "new_objective": "Nouvel objectif", - "learning": "Apprentissage", - "cost": "Coût", - "rituel": "Rituel", - "transe": "Transe", - "effects": "Effets", - "details": "Détails" + "new_vehicle": "New vehicle", + "vehicles": "Vehicles", + "new_objective": "New objective", + "learning": "Learning", + "cost": "Cost", + "rituel": "Ritual", + "transe": "Trance", + "effects": "Effects", + "details": "Details" }, "ABILITIES": { - "vigor": { "name": "Vigueur"}, - "health": { "name": "Santé"}, - "precision":{ "name": "Précision"}, - "reflexes":{ "name": "Réflexes"}, - "knowledge":{ "name": "Savoir"}, - "perception":{ "name": "Perception"}, - "will":{ "name": "Volonté"}, - "empathy":{ "name": "Empathie"} + "vigor": { + "name": "Vigor" + }, + "health": { + "name": "Health" + }, + "precision": { + "name": "Precision" + }, + "reflexes": { + "name": "Reflexes" + }, + "knowledge": { + "name": "Knowledge" + }, + "perception": { + "name": "Perception" + }, + "will": { + "name": "Will" + }, + "empathy": { + "name": "Empathy" + } }, "SKILL_LEVELS": { - "beginner": "Débutant", - "proficient": "Confirmé", - "expert":"Expert", - "master":"Maître", - "legend":"Légende" + "incompetent": "Incompetent", + "beginner": "Beginner", + "proficient": "Proficient", + "expert": "Expert", + "master": "Master", + "legend": "Legend" }, "THREAT_LEVELS": { - "minor": "Mineure", - "serious": "Sérieuse", - "major":"Majeure", - "deadly":"Mortelle" + "minor": "Minor", + "serious": "Serious", + "major": "Major", + "deadly": "Deadly" }, "ROLE_LEVELS": { - "minor": "Mineur", - "secondary": "Secondaire", - "important":"Important", - "major":"Majeur" + "minor": "Minor", + "secondary": "Secondary", + "important": "Important", + "major": "Major" }, "PATTERN_LEVELS": { - "insect": "Insecte", + "insect": "Insect", "rat": "Rat", - "dog":"Chien", - "bear":"Ours" + "dog": "Dog", + "bear": "Bear" }, "TOTEMS": { - "human": { - "name": "L'Humain", - "number":1, - "description":"", - "instincts" : "", - "bans" : "", + "human": { + "name": "Human", + "number": 1, + "description": "", + "instincts": "", + "bans": "", "opposite": "adapted" }, - "predator": { - "name": "Le prédateur", - "number":2, - "description":"Totem emblématique, le Prédateur a toujours été l’un des plus répandus dans le règne animal, et il reste de loin celui qui influence le plus grand nombre d’espèces aujourd’hui. On l’observe aussi bien chez les mammifères que chez de minuscules insectes, en meute comme en solitaire. Il inspire les comportements de traque, de chasse et d’affrontement essentiels à l’alimentation, mais il ne prône qu’une violence justifiée, nécessaire et vitale. Selon les peuples et les cultures, il a longtemps été symbolisé par le lion, l’aigle ou le chasseur, et ses valeurs guerrières ont toujours revêtu une certaine forme de noblesse. Un prédateur ne tue pas : il triomphe. Un prédateur ne fuit pas : il perd, ou il meurt", - "instincts" : "Triompher, relever un défi, prendre l’initiative, atteindre un objectif.", - "bans" : "Fuir, abandonner, renoncer,faire preuve de lâcheté.", - "behaviour" : "Déterminé, implacable,courageux, dominant.", + "predator": { + "name": "Predator", + "number": 2, + "description": "Totem emblematic, the Predator has always been one of the most widespread in the animal kingdom, and it remains by far the one that influences the greatest number of species today. It is observed as well in mammals as in tiny insects, in packs as in solitaries. It inspires hunting, chasing and fighting behaviors essential to feeding, but it only preaches a justified, necessary and vital violence. Depending on peoples and cultures, it has long been symbolized by the lion, the eagle or the hunter, and its warrior values have always taken a certain form of nobility. A predator does not kill: it triumphs. A predator does not flee: it loses, or it dies", + "instincts": "Triumph, overcome a challenge, take the initiative, achieve a goal.", + "bans": "Flee, abandon, renounce, show cowardice.", + "behaviour": "Determined, implacable,courageous, dominant.", "opposite": "scavenger" }, - "scavenger": { - "name": "Le Charognard", - "number":3, - "description":"Dans un écosystème dominé par la loi du plus fort, certains ont pris le parti d’attendre que la mort fasse son œuvre, quitte à se contenter des restes. Poissons de fond, plantes carnivores, pillards, insectes nécrophages, vautours ou meutes de loups trop faibles pour s’attaquer seuls aux proies de grande taille : le Charognard inspire toutes les espèces qui ont fait de la patience une de leurs rares vertus, et misent sur la faiblesse, la blessure, la fatigue ou l’opportunité pour se nourrir. Il règne sur les régions hostiles où le soleil, la chaleur ou le froid font son jeu, et se développe souvent dans l’ombre du Prédateur, avec qui il entretient une relation quasi symbiotique", - "instincts" : "Achever, saboter, affaiblir, s’en prendre au plus faible.", - "bans" : "Affronter, s’exposer, agir de façon compulsive, s’apitoyer.", - "behaviour" : "Sournois, calculateur, impitoyable", + "scavenger": { + "name": "Scavenger", + "number": 3, + "description": "In an ecosystem dominated by the law of the strongest, some have taken the party to wait for death to do its work, even if it means settling for the remains. Fish from the bottom, carnivorous plants, scavengers, necrophagous insects, vultures or packs of wolves too weak to attack the prey alone: the Scavenger inspires all the species that have made patience one of their rare virtues, and bet on weakness, injury, fatigue or opportunity to feed. It reigns over hostile regions where the sun, the heat or the cold make its game, and often develops in the shadow of the Predator, with which it maintains a quasi symbiotic relationship", + "instincts": "Finish, sabotage, weaken, attack the weakest.", + "bans": "Face, expose, act compulsively, pity.", + "behaviour": "Sly, calculating, pitiless", "opposite": "predator" }, - "symbiote": { - "name": "Le Symbiote", - "number":4, - "description":"Symbole d’entraide, d’équilibre et d’harmonie, le Symbiote se définit par la relation d’échange et de réciprocité où chaque partie profite de ce que l’autre apporte, quels que soient ses besoins ou ses motivations. Très courante dans le règne végétal, où de nombreuses fleurs et plantes l’ont instaurée avec les pollinisateurs, cette relation de symbiose s’observe également chez les insectes, les mammifères et les êtres humains. Elle peut être ponctuelle, issue des liens du sang, liée à un territoire ou un projet commun, et rien ne l’empêche d’être motivée par le profit ou l’intérêt, tant qu’elle est réciproque – ce qui distingue le Symbiote du Parasite.", - "instincts" : "Partager, transmettre, équilibrer, trouver un compromis", - "bans" : "Exploiter, abuser, profiter de la faiblesse, mettre en danger", - "behaviour" : "Bienveillant, responsable, diplomate, modéré.", + "symbiote": { + "name": "Symbiote", + "number": 4, + "description": "Symbol of mutual aid, balance and harmony, the Symbiote is defined by the relationship of exchange and reciprocity where each party benefits from what the other brings, whatever its needs or motivations. Very common in the plant kingdom, where many flowers and plants have established it with pollinators, this symbiotic relationship is also observed in insects, mammals and human beings. It can be punctual, stemming from blood ties, linked to a territory or a common project, and nothing prevents it from being motivated by profit or interest, as long as it is reciprocal – which distinguishes the Symbiote from the Parasite.", + "instincts": "Share, transmit, balance, find a compromise", + "bans": "Exploit, abuse, profit from weakness, put in danger", + "behaviour": "Well-intentioned, responsible, diplomatic, moderate.", "opposite": "parasite" }, - "parasite": { - "name": "Le Parasite", - "number":5, - "description":"Totem des infections, des basses œuvres et des épidémies, le Parasite a toujours joué un rôle funeste dans le destin de l’humanité, jusqu’à en devenir le fléau. Symbolisé par les moustiques, il s’observe également chez de nombreux champignons, végétaux et insectes incapables de survivre, de se nourrir ou de se reproduire sans un hôte, et toujours à ses dépens. Le Parasite exploite, profite, abuse sans états d’âme, mu par la seule démarche de prendre ce qu’un autre possède et dont il a besoin. Avec le Prédateur, c’est l’un des Totems les plus présents et les plus redoutés, tant les comportements qu’il inspire peuvent ruiner tout espoir de survie.", - "instincts" : "Profiter, manipuler, voler, exploiter.", - "bans" : "Partager, contribuer, tenir une promesse, prendre par la force", - "behaviour" : "Manipulateur, menteur, égoïste, profiteur", + "parasite": { + "name": "The Parasite", + "number": 5, + "description": "Totem of infections, low works and epidemics, the Parasite has always played a sinister role in the destiny of humanity, until becoming its scourge. Symbolized by mosquitoes, it is also observed in many fungi, plants and insects unable to survive, feed or reproduce without a host, and always at its expense. The Parasite exploits, profits, abuses without remorse, driven by the sole approach of taking what another possesses and needs. Along with the Predator, it is one of the most present and most feared Totems, as the behaviors it inspires can ruin all hope of survival.", + "instincts": "Profit, manipulate, steal, exploit.", + "bans": "Share, contribute, keep a promise, take by force", + "behaviour": "Manipulator, liar, selfish, profiteer", "opposite": "symbiote" }, - "builder": { - "name": "Le Bâtisseur", - "number":6, - "description":"Souvent confondu avec la Ruche en raison des constructions géantes typiques de certaines espèces sociales, le Bâtisseur n’est pas le Totem de la communauté, mais celui de la fondation. À l’image des termites, des castors, de la plupart des oiseaux ou de certaines espèces d’araignées, il se caractérise par l’acte de construction, de création ou de modification, et s’observe aussi bien chez des groupes que chez des individus. Avec la Ruche, le Symbiote et la Horde, c’est l’un des Totems les plus courants chez les communautés humaines, dont il inspire les édifices, les inventions et les réparations.", - "instincts" : "Fonder, créer, s’installer durablement, nouer des liens.", - "bans" : "Détruire, saboter, quitter une communauté, provoquer le chaos", - "behaviour" : "Réfléchi, organisé, pragmatique, constant.", + "builder": { + "name": "The Builder", + "number": 6, + "description": "Often confused with the Hive due to the giant constructions typical of certain social species, the Builder is not the Totem of the community, but that of the foundation. In the image of termites, beavers, most birds or certain species of spiders, it is characterized by the act of construction, creation or modification, and is observed as well in groups as in individuals. Along with the Hive, the Symbiote and the Horde, it is one of the most common Totems among human communities, which it inspires with buildings, inventions and repairs.", + "instincts": "Found, create, settle permanently, forge links.", + "bans": "Destroy, sabotage, leave a community, provoke chaos", + "behaviour": "Reflective, organized, pragmatic, constant.", "opposite": "horde" }, - "horde": { - "name": "La Horde", - "number":7, - "description":"Fléau des cultures depuis la nuit des temps, la Horde est à l’image des nuées de criquets, des meutes de carnivores ou des tribus de nomades qui la représentent : imprévisible, impitoyable et sans visage. Au-delà de ses aspects collectifs, ce Totem redoutable se caractérise surtout par sa violence et sa méthode d’action. Là où le Prédateur tue, la Horde brûle, pille, dévaste pour parvenir à ses fins sans le moindre état d’âme. Elle inspire ceux qui prennent par la force, qui détruisent, qui ravagent et qui refusent toute forme de compromis, quelles que soient leur démarche ou leurs motivations.", - "instincts" : "Piller, détruire, prendre par la force, miser sur le nombre", - "bans" : "Négocier, épargner, faire des réserves, planifier à long terme.", - "behaviour" : "Violent, imprévisible, destructeur, radical.", + "horde": { + "name": "The Horde", + "number": 7, + "description": "Scourge of cultures since time immemorial, the Horde is in the image of swarms of locusts, packs of carnivores or nomadic tribes that represent it: unpredictable, pitiless and faceless. Beyond its collective aspects, this formidable Totem is characterized above all by its violence and method of action. Where the Predator kills, the Horde burns, plunders, devastates to achieve its ends without the slightest remorse. It inspires those who take by force, who destroy, who ravage and who refuse any form of compromise, whatever their approach or motivations.", + "instincts": "Pillage, destroy, take by force, rely on numbers", + "bans": "Negotiate, spare, make reserves, plan in the long term.", + "behaviour": "Violent, unpredictable, destructive, radical.", "opposite": "builder" }, - "hive": { - "name": "La Ruche", - "number":8, - "description":"Fourmis, abeilles, termites, factions aux règles strictes : la Ruche est le Totem des créatures sociales et des communautés humaines par excellence. Des cellules familiales aux multinationales, des meutes organisées aux super-colonies de plusieurs milliards d’individus, la Ruche est caractérisée par l’organisation, la hiérarchie, le dévouement et la conscience aigüe du rôle que chacun doit jouer dans l’intérêt commun, plus que par la notion de communauté elle-même. Elle s’appuie bien souvent sur un ensemble de règles, des tâches attribuées, des rôles identifiés – une philosophie qui proscrit tout individualisme et condamne toute désobéissance.", - "instincts" : "Organiser, œuvrer pour la communauté, respecter la hiérarchie, privilégier l’intérêt collectif", - "bans" : "trahir, désobéir, mettre sa communauté en danger, faire preuve d’individualisme.", - "behaviour" : "Méthodique, autoritaire, consciencieux, rigide", + "hive": { + "name": "The Hive", + "number": 8, + "description": "Ants, bees, termites, factions with strict rules: the Hive is the Totem of social creatures and human communities par excellence. From family cells to multinationals, from organized packs to super-colonies of several billion individuals, the Hive is characterized by organization, hierarchy, dedication and a keen awareness of the role that each must play in the common interest, more than by the notion of community itself. It often relies on a set of rules, assigned tasks, identified roles - a philosophy that proscribes individualism and condemns disobedience.", + "instincts": "Organize, work for the community, respect the hierarchy, prioritize the collective interest", + "bans": "Betray, disobey, put one's community in danger, show individualism.", + "behaviour": "Methodical, authoritarian, conscientious, rigid", "opposite": "loner" }, - "loner": { - "name": "Le solitaire", - "number":9, - "description":"Survivre, quoi qu’il en coûte. Sans cruauté, sans états d’âme, mais à tout prix. À l’inverse de la Ruche qui loue le sacrifice s’il est accompli dans l’intérêt du groupe, le Solitaire incarne le plus fondamental des réflexes : celui de la survie. Ni individualiste, ni franchement égoïste, il fait seulement passer ses propres intérêts, ses urgences et ses nécessités avant tout, quitte à trahir, à décevoir, à quitter ou à tuer. Rien n’empêche un Solitaire de trouver une place durable dans un groupe, d’y jouer un rôle précis ou même de suivre des règles établies, tant qu’elles ne heurtent pas ses propres convictions et qu’elles ne mettent pas en péril son bien le plus précieux : sa vie.", - "instincts" : "Survivre, anticiper, s’adapter, faire passer sa vie avant tout", - "bans" : "Se sacrifier, risquer sa vie, dépendre de quelqu’un, se résigner.", - "behaviour" : "Indépendant, lucide, autonome, réactif.", + "loner": { + "name": "The Loner", + "number": 9, + "description": "Survive, whatever the cost. Without cruelty, without remorse, but at all costs. Unlike the Hive, which praises sacrifice if it is accomplished in the interest of the group, the Loner embodies the most fundamental of reflexes: that of survival. Neither individualistic nor frankly selfish, it simply puts its own interests, urgencies and necessities first, even if it means betraying, disappointing, leaving or killing. Nothing prevents a Loner from finding a lasting place in a group, playing a precise role or even following established rules, as long as they do not conflict with its own convictions and do not put its most precious asset in danger: its life.", + "instincts": "Survive, anticipate, adapt, put one's life first", + "bans": "Sacrifice oneself, risk one's life, depend on someone, resign.", + "behaviour": "Independent, lucid, autonomous, reactive.", "opposite": "hive" }, - "adapted": { - "name": "L'adapté", - "number":10, - "description":"Évoluer ou mourir. Changer ou disparaître. L’Adapté est le Totem de la nécessité, de la survie et de l’évolution. Ni positif, ni négatif, il est présent partout. Il est cette dynamique, ce principe fondamental qui rythme les mutations des espèces et qui rappelle que l’Homme est la seule forme de vie à tenter de contrôler sa propre évolution. L’Adapté ne possède ni Interdit, ni Instinct spécifique. Aucun comportement n’est inapproprié, s’il permet de faire face et de survivre, et les Instincts de tous les autres Totems le renforcent. Seul l’Humain lutte contre son influence…", - "instincts" : "Tous ceux des huit Totems majeurs", - "bans" : "Aucun…", + "adapted": { + "name": "The Adapted", + "number": 10, + "description": "Evolve or die. Change or disappear. The Adapted is the Totem of necessity, survival and evolution. Neither positive nor negative, it is present everywhere. It is this dynamic, this fundamental principle that rhythm the mutations of species and reminds us that Man is the only form of life trying to control its own evolution. The Adapted has no Forbidden, no Specific Instinct. No behavior is inappropriate, if it allows to cope and survive, and the Instincts of all other Totems reinforce it. Only Man fights against its influence...", + "instincts": "All those of the eight major Totems", + "bans": "None...", "opposite": "human" } }, "ABILITY_CATEGORIES": { - "physical": { "name": "Physique"}, - "manual": { "name": "Manuel"}, - "mental": { "name": "Mental"}, - "social": { "name": "Social"} + "physical": { + "name": "Physical" + }, + "manual": { + "name": "Manual" + }, + "mental": { + "name": "Mental" + }, + "social": { + "name": "Social" + } }, "SKILLS_CATEGORIES": { - "man": { "name": "L'Homme" }, - "animal": { "name": "L'Animal" }, - "tool": { "name": "L'Outil" }, - "weapon": { "name": "L'Arme" }, - "survival": { "name": "La Survie" }, - "world": { "name": "La Terre" } + "man": { + "name": "Man" + }, + "animal": { + "name": "Animal" + }, + "tool": { + "name": "Tool" + }, + "weapon": { + "name": "Weapon" + }, + "survival": { + "name": "Survival" + }, + "world": { + "name": "World" + } }, "SKILLS": { - "arts": { "name": "Arts"}, - "civilization": { "name": "Civilisations"}, - "psychology": { "name": "Psychologie"}, - "rumors": { "name": "Rumeurs"}, - "healing": { "name": "Soins"}, - "animalism": { "name": "Animalisme"}, - "dissection": { "name": "Dissection"}, - "wildlife": { "name": "Faune"}, - "repulsion": { "name": "Répulsion"}, - "tracks": { "name": "Traces"}, - "crafting": { "name": "Artisanat"}, - "diy": { "name": "Bricolage"}, - "mecanical": { "name": "Mécanique"}, - "piloting": { "name": "Pilotage"}, - "technology": { "name": "Technologie"}, - "firearms": { "name": "Armes à feu"}, - "armory": { "name": "Armurerie"}, - "shield": { "name": "Bouclier"}, - "close": { "name": "Corps-à-corps"}, - "archery": { "name": "Armes de tir"}, - "throwing": { "name": "Lancer"}, - "melee": { "name": "Mêlée"}, - "atletics": { "name": "Atlétisme"}, - "stealth": { "name": "Discrétion"}, - "alertness": { "name": "Vigilance"}, - "flora": { "name": "Flore"}, - "food": { "name": "Alimentation"}, - "environment": { "name": "Environnement"}, - "road": { "name": "Route"}, - "toxics": { "name": "Toxiques"}, - "ruins": { "name": "Vestiges"} + "arts": { + "name": "Arts" + }, + "civilization": { + "name": "Civilizations" + }, + "psychology": { + "name": "Psychology" + }, + "rumors": { + "name": "Rumors" + }, + "healing": { + "name": "Healing" + }, + "animalism": { + "name": "Animalism" + }, + "dissection": { + "name": "Dissection" + }, + "wildlife": { + "name": "Wildlife" + }, + "repulsion": { + "name": "Repulsion" + }, + "tracks": { + "name": "Tracks" + }, + "crafting": { + "name": "Crafting" + }, + "diy": { + "name": "DIY" + }, + "mecanical": { + "name": "Mechanical" + }, + "piloting": { + "name": "Piloting" + }, + "technology": { + "name": "Technology" + }, + "firearms": { + "name": "Firearms" + }, + "armory": { + "name": "Armory" + }, + "shield": { + "name": "Shield" + }, + "close": { + "name": "Melee" + }, + "archery": { + "name": "Ranged" + }, + "throwing": { + "name": "Throwing" + }, + "melee": { + "name": "Melee" + }, + "atletics": { + "name": "Athletics" + }, + "stealth": { + "name": "Stealth" + }, + "alertness": { + "name": "Alertness" + }, + "flora": { + "name": "Flora" + }, + "food": { + "name": "Food" + }, + "environment": { + "name": "Environment" + }, + "road": { + "name": "Road" + }, + "toxics": { + "name": "Toxics" + }, + "ruins": { + "name": "Ruins" + } }, "SEXES": { - "male": "Masculin", - "female":"Féminin" + "male": "Masculine", + "female": "Feminine" } } \ No newline at end of file diff --git a/lang/fr.json b/lang/fr.json new file mode 100644 index 0000000..67c8008 --- /dev/null +++ b/lang/fr.json @@ -0,0 +1,514 @@ +{ + "SETTINGS": { + "world": { + "game_mode": { + "name": "Choix du mode de jeu", + "hint": "À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers." + }, + "first_run": { + "name": "Affichage du tour d'accueil", + "hint": "Pour aider les débutantEs à bien commencer avec le système Vermine 2047." + } + } + }, + "VERMINE.WorldSettings.GameMode.Name": "Choix du mode de jeu", + "VERMINE.WorldSettings.GameMode.Hint": "À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers.", + "GAME_MODES": { + "heroic": { + "name": "Héroique" + }, + "epic": { + "name": "Epique" + }, + "legendary": { + "name": "Légendaire" + } + }, + "ROLLS": { + "tool": "Lanceur de dés", + "roll_dice": "Jeter les dés" + }, + "TOURS": { + "ChatMessage": "

Bienvenue dans Vermine!

Si vous utilisez ce système pour la première fois, notre shaman va vous guider vers votre rite d'initiation

", + "Welcome": { + "Title": "Bienvenue dans Vermine", + "Description": "Aperçu du système Vermine", + "WelcomeTitle": "Bienvenue", + "WelcomeContent": "

Bienvenue dans Vermine, survivantE ! Faire le tour de notre zone d'action te permettre de retrouver tes marques, même si c'est ton premier jour parmi nous.

En haut de la colonne de droite, tu as tout ce que tu as le droit de faire chez nous : parler, voir les autres tronches de ta commu, gérer ton matos et celui de tes potes, étudier les cartes, lire les journaux des clamsés, aller nous chercher de la bouffe à coups de surin. Entrons dans le vif du sujet.

", + "ActorTabTitle": "Peupler son univers", + "ActorTabContent": "

Bien installéE, survivantE ? Tournons pas au tour du pot, si tu veux rester avec nous, va falloir nous dire qui tu es, d'où tu viens, et à qui tu fais confiance. Une fois que t'es prêtE pour ca, clique donc sur le bouton \"Créer un acteur\"

", + "CharacterCreateTitle": "Créer un groupe", + "CharacterCreateContent": "

Ce bouton crée une fiche de groupe, parce que c'est par là qu'on commence, dans ce trou ! Ta tronche viendra ensuite, quand tu créeras ta fiche de personnage. Au fur et à mesure que tu progresses, tu voudras peut-être rajouter des infos sur ce que tu vois trainer autour du camp.

", + "CompendiumTitle": "Cartes", + "CompendiumContent": "

Vous aurez probablement besoin d'une carte des Terres de Fer ou d'un secteur de la Forge. Vous pouvez créer votre propre scène pour cela, ou vous pouvez utiliser l'une des nôtres. Ouvrez l'un de ces compendiums et faites glisser une carte dans votre zone de scènes (l'onglet qui ressemble à une carte pliée).

", + "OracleToolTitle": "Totem", + "OracleToolContent": "

Aucune partie d'Vermine ou Starforged ne serait complète sans oracles. Ce bouton fera apparaître une fenêtre avec tous les oracles du jeu choisi. Les oracles sont également disponibles depuis la fiche de personnage.

", + "ToursTitle": "Prochaines étapes", + "ToursContent": "

Tu t'en sors pas si mal ! Moi je vais te laisser là, mais si tu as d'autres questions, tu peux venir me trouver. Si ca concerne la mécanique, inscris-toi dans notre groupe de parole, par là Totem Foundry Discord. Sinon, tu peux rejoindre la place centrale par ici Vermine Discord

Enjoy!

" + } + }, + "DIFFICULTY_LEVELS": { + "obvious": "Evidente", + "easy": "Facile", + "hard": "Difficile", + "very_hard": "Très difficile", + "impossible": "Impossible" + }, + "ATTITUDES": { + "offensive": { + "name": "Offensif" + }, + "active": { + "name": "Actif" + }, + "passive": { + "name": "Passif" + } + }, + "AGE_TYPES": { + "young": "Jeune", + "adult": "Adulte", + "old": "Vieux" + }, + "IDENTITY": { + "name": "Nom", + "height": "Taille", + "weight": "Poids", + "totem": "Totem", + "age": "Age", + "gender": "Sexe", + "profile": "Profil", + "origin": "Origine", + "theme": "Concept", + "instincts": "Instincts", + "prohibits": "Interdits", + "objectives": "Objectifs", + "relations": "Relations", + "morale": "Moral", + "morale_level": "Niveau de moral", + "notes": "Notes" + }, + "ADVERSITY": { + "threat": "Menace", + "experience": "Expérience", + "role": "Rôle", + "attack": "Attaque", + "damage": "Dommages", + "weapon": "Arme", + "vigor": "Vigueur", + "wounds": "Blessures", + "action": "Action", + "specialties": "Spécialité", + "rerolls": "Relances", + "contact": "Contact", + "reaction": "Réaction", + "pools": "Réserves", + "gear": "Matériel", + "protection": "Protection", + "skills": "Compétences", + "pattern": "Gabarit", + "size": "Taille", + "pack": "Groupe" + }, + "VERMINE": { + "name": "Vermine", + "stats": "Statistiques", + "level": "Niveau", + "experience": "Expérience", + "reputation": "Réputation", + "pool": "Réserve", + "pools": "Réserves", + "self_control": "Sang-Froid", + "effort": "Effort", + "group": "Groupe", + "abilities": "Caractéristiques", + "ability": "Caractéristique", + "skills_title": "Compétences", + "skill_title": "Compétence", + "skill_mastery": "Maîtrise", + "bonus": "Bonus", + "penalty": "Malus", + "reroll": "Relance", + "equipment": "Equipement", + "specialty": "Spécialité", + "technique": "Technique", + "techniques": "Techniques", + "difficulty": "Difficulté", + "help": "Entraide", + "tooling": "Equipement", + "quantity": "Quantité", + "qty": "Qté", + "weight": "Poids", + "dmg": "Dmg", + "damage": "Dommage", + "damages": "Dommages", + "range": "Portée", + "ranges": "Portées", + "mobility": "Mobilité", + "rarity": "Rareté", + "rarity_sm": "Rar.", + "reliability": "Fiabilité", + "reliability_sm": "Fiab.", + "wounds": { + "name": "Blessures", + "threshold": "Seuil", + "light": "Légère", + "heavy": "Grave", + "deadly": "Mortelle", + "light_wounds": "Blessure légère", + "heavy_wounds": "Blessure grave", + "deadly_wounds": "Blessure mortelle" + }, + "tabs": { + "abilities": "Caractéristiques et compétences", + "totem": "Totem et ajustements", + "combat": "Combat et reserves", + "equipment": "Matériel", + "stories": "Histoire" + }, + "ammo": "Munitions", + "ammo_sm": "Mun", + "trait": "Trait", + "traits": "Traits", + "clew": "Indice", + "combat": "Combat", + "stories": "Histoires", + "gear": "Matériel", + "information": "Informations", + "boost": "boost", + "group_abilities": "Capacités de groupe", + "totem_abilities": "Capacités de totem", + "type_group": "Groupe", + "type_character": "Personnage", + "type_npc": "PNJ", + "type_creature": "Créature", + "type": "Type", + "group_members": "Membres", + "encounters": "Rencontres", + "road": "La Route", + "totem_picker": "Sélecteur de totem", + "actor_picker": "Sélecteur de personnage" + }, + "UI": { + "add": "Ajouter", + "source": "Source", + "duration": "Durée", + "effect_toggle": "Basculer un effet", + "effect_edit": "Modifier un effet", + "effect_delete": "Détruire un effet", + "effect_create": "Créer un effet", + "effects": { + "name": "Effets", + "temporary": "Effets temporaires", + "passive": "Effets passifs", + "inactive": "Effets inactifs" + } + }, + "ITEMS": { + "defense": "Protection", + "defenses": "Protections", + "new_defense": "Nouvelle protection", + "weapon": "Arme", + "new_weapon": "Nouvelle arme", + "weapons": "Armes", + "new_background": "Nouvel historique", + "backgrounds": "Historiques", + "new_trauma": "Nouveau traumatisme", + "traumas": "Traumatismes", + "rumor": "Rumeur", + "new_rumor": "Nouvelle rumeur", + "rumors": "Rumeurs", + "ability": "Capacité", + "new_ability": "Nouvelle capacité", + "abilities": "Capacités", + "specialties": "Spécialités", + "new_specialty": "Nouvelle spécialité", + "evolution": "Adaptation", + "new_evolution": "Nouvelle adaptation", + "evolutions": "Adaptations", + "new_vehicle": "Nouveau véhicule", + "vehicles": "Véhicules", + "new_objective": "Nouvel objectif", + "learning": "Apprentissage", + "cost": "Coût", + "rituel": "Rituel", + "transe": "Transe", + "effects": "Effets", + "details": "Détails" + }, + "ABILITIES": { + "vigor": { + "name": "Vigueur" + }, + "health": { + "name": "Santé" + }, + "precision": { + "name": "Précision" + }, + "reflexes": { + "name": "Réflexes" + }, + "knowledge": { + "name": "Savoir" + }, + "perception": { + "name": "Perception" + }, + "will": { + "name": "Volonté" + }, + "empathy": { + "name": "Empathie" + } + }, + "SKILL_LEVELS": { + "incompetent": "Incompétent", + "beginner": "Débutant", + "proficient": "Confirmé", + "expert": "Expert", + "master": "Maître", + "legend": "Légende" + }, + "THREAT_LEVELS": { + "minor": "Mineure", + "serious": "Sérieuse", + "major": "Majeure", + "deadly": "Mortelle" + }, + "ROLE_LEVELS": { + "minor": "Mineur", + "secondary": "Secondaire", + "important": "Important", + "major": "Majeur" + }, + "PATTERN_LEVELS": { + "insect": "Insecte", + "rat": "Rat", + "dog": "Chien", + "bear": "Ours" + }, + "TOTEMS": { + "human": { + "name": "L'Humain", + "number": 1, + "description": "", + "instincts": "", + "bans": "", + "opposite": "adapted" + }, + "predator": { + "name": "Le prédateur", + "number": 2, + "description": "Totem emblématique, le Prédateur a toujours été l’un des plus répandus dans le règne animal, et il reste de loin celui qui influence le plus grand nombre d’espèces aujourd’hui. On l’observe aussi bien chez les mammifères que chez de minuscules insectes, en meute comme en solitaire. Il inspire les comportements de traque, de chasse et d’affrontement essentiels à l’alimentation, mais il ne prône qu’une violence justifiée, nécessaire et vitale. Selon les peuples et les cultures, il a longtemps été symbolisé par le lion, l’aigle ou le chasseur, et ses valeurs guerrières ont toujours revêtu une certaine forme de noblesse. Un prédateur ne tue pas : il triomphe. Un prédateur ne fuit pas : il perd, ou il meurt", + "instincts": "Triompher, relever un défi, prendre l’initiative, atteindre un objectif.", + "bans": "Fuir, abandonner, renoncer,faire preuve de lâcheté.", + "behaviour": "Déterminé, implacable,courageux, dominant.", + "opposite": "scavenger" + }, + "scavenger": { + "name": "Le Charognard", + "number": 3, + "description": "Dans un écosystème dominé par la loi du plus fort, certains ont pris le parti d’attendre que la mort fasse son œuvre, quitte à se contenter des restes. Poissons de fond, plantes carnivores, pillards, insectes nécrophages, vautours ou meutes de loups trop faibles pour s’attaquer seuls aux proies de grande taille : le Charognard inspire toutes les espèces qui ont fait de la patience une de leurs rares vertus, et misent sur la faiblesse, la blessure, la fatigue ou l’opportunité pour se nourrir. Il règne sur les régions hostiles où le soleil, la chaleur ou le froid font son jeu, et se développe souvent dans l’ombre du Prédateur, avec qui il entretient une relation quasi symbiotique", + "instincts": "Achever, saboter, affaiblir, s’en prendre au plus faible.", + "bans": "Affronter, s’exposer, agir de façon compulsive, s’apitoyer.", + "behaviour": "Sournois, calculateur, impitoyable", + "opposite": "predator" + }, + "symbiote": { + "name": "Le Symbiote", + "number": 4, + "description": "Symbole d’entraide, d’équilibre et d’harmonie, le Symbiote se définit par la relation d’échange et de réciprocité où chaque partie profite de ce que l’autre apporte, quels que soient ses besoins ou ses motivations. Très courante dans le règne végétal, où de nombreuses fleurs et plantes l’ont instaurée avec les pollinisateurs, cette relation de symbiose s’observe également chez les insectes, les mammifères et les êtres humains. Elle peut être ponctuelle, issue des liens du sang, liée à un territoire ou un projet commun, et rien ne l’empêche d’être motivée par le profit ou l’intérêt, tant qu’elle est réciproque – ce qui distingue le Symbiote du Parasite.", + "instincts": "Partager, transmettre, équilibrer, trouver un compromis", + "bans": "Exploiter, abuser, profiter de la faiblesse, mettre en danger", + "behaviour": "Bienveillant, responsable, diplomate, modéré.", + "opposite": "parasite" + }, + "parasite": { + "name": "Le Parasite", + "number": 5, + "description": "Totem des infections, des basses œuvres et des épidémies, le Parasite a toujours joué un rôle funeste dans le destin de l’humanité, jusqu’à en devenir le fléau. Symbolisé par les moustiques, il s’observe également chez de nombreux champignons, végétaux et insectes incapables de survivre, de se nourrir ou de se reproduire sans un hôte, et toujours à ses dépens. Le Parasite exploite, profite, abuse sans états d’âme, mu par la seule démarche de prendre ce qu’un autre possède et dont il a besoin. Avec le Prédateur, c’est l’un des Totems les plus présents et les plus redoutés, tant les comportements qu’il inspire peuvent ruiner tout espoir de survie.", + "instincts": "Profiter, manipuler, voler, exploiter.", + "bans": "Partager, contribuer, tenir une promesse, prendre par la force", + "behaviour": "Manipulateur, menteur, égoïste, profiteur", + "opposite": "symbiote" + }, + "builder": { + "name": "Le Bâtisseur", + "number": 6, + "description": "Souvent confondu avec la Ruche en raison des constructions géantes typiques de certaines espèces sociales, le Bâtisseur n’est pas le Totem de la communauté, mais celui de la fondation. À l’image des termites, des castors, de la plupart des oiseaux ou de certaines espèces d’araignées, il se caractérise par l’acte de construction, de création ou de modification, et s’observe aussi bien chez des groupes que chez des individus. Avec la Ruche, le Symbiote et la Horde, c’est l’un des Totems les plus courants chez les communautés humaines, dont il inspire les édifices, les inventions et les réparations.", + "instincts": "Fonder, créer, s’installer durablement, nouer des liens.", + "bans": "Détruire, saboter, quitter une communauté, provoquer le chaos", + "behaviour": "Réfléchi, organisé, pragmatique, constant.", + "opposite": "horde" + }, + "horde": { + "name": "La Horde", + "number": 7, + "description": "Fléau des cultures depuis la nuit des temps, la Horde est à l’image des nuées de criquets, des meutes de carnivores ou des tribus de nomades qui la représentent : imprévisible, impitoyable et sans visage. Au-delà de ses aspects collectifs, ce Totem redoutable se caractérise surtout par sa violence et sa méthode d’action. Là où le Prédateur tue, la Horde brûle, pille, dévaste pour parvenir à ses fins sans le moindre état d’âme. Elle inspire ceux qui prennent par la force, qui détruisent, qui ravagent et qui refusent toute forme de compromis, quelles que soient leur démarche ou leurs motivations.", + "instincts": "Piller, détruire, prendre par la force, miser sur le nombre", + "bans": "Négocier, épargner, faire des réserves, planifier à long terme.", + "behaviour": "Violent, imprévisible, destructeur, radical.", + "opposite": "builder" + }, + "hive": { + "name": "La Ruche", + "number": 8, + "description": "Fourmis, abeilles, termites, factions aux règles strictes : la Ruche est le Totem des créatures sociales et des communautés humaines par excellence. Des cellules familiales aux multinationales, des meutes organisées aux super-colonies de plusieurs milliards d’individus, la Ruche est caractérisée par l’organisation, la hiérarchie, le dévouement et la conscience aigüe du rôle que chacun doit jouer dans l’intérêt commun, plus que par la notion de communauté elle-même. Elle s’appuie bien souvent sur un ensemble de règles, des tâches attribuées, des rôles identifiés – une philosophie qui proscrit tout individualisme et condamne toute désobéissance.", + "instincts": "Organiser, œuvrer pour la communauté, respecter la hiérarchie, privilégier l’intérêt collectif", + "bans": "trahir, désobéir, mettre sa communauté en danger, faire preuve d’individualisme.", + "behaviour": "Méthodique, autoritaire, consciencieux, rigide", + "opposite": "loner" + }, + "loner": { + "name": "Le solitaire", + "number": 9, + "description": "Survivre, quoi qu’il en coûte. Sans cruauté, sans états d’âme, mais à tout prix. À l’inverse de la Ruche qui loue le sacrifice s’il est accompli dans l’intérêt du groupe, le Solitaire incarne le plus fondamental des réflexes : celui de la survie. Ni individualiste, ni franchement égoïste, il fait seulement passer ses propres intérêts, ses urgences et ses nécessités avant tout, quitte à trahir, à décevoir, à quitter ou à tuer. Rien n’empêche un Solitaire de trouver une place durable dans un groupe, d’y jouer un rôle précis ou même de suivre des règles établies, tant qu’elles ne heurtent pas ses propres convictions et qu’elles ne mettent pas en péril son bien le plus précieux : sa vie.", + "instincts": "Survivre, anticiper, s’adapter, faire passer sa vie avant tout", + "bans": "Se sacrifier, risquer sa vie, dépendre de quelqu’un, se résigner.", + "behaviour": "Indépendant, lucide, autonome, réactif.", + "opposite": "hive" + }, + "adapted": { + "name": "L'adapté", + "number": 10, + "description": "Évoluer ou mourir. Changer ou disparaître. L’Adapté est le Totem de la nécessité, de la survie et de l’évolution. Ni positif, ni négatif, il est présent partout. Il est cette dynamique, ce principe fondamental qui rythme les mutations des espèces et qui rappelle que l’Homme est la seule forme de vie à tenter de contrôler sa propre évolution. L’Adapté ne possède ni Interdit, ni Instinct spécifique. Aucun comportement n’est inapproprié, s’il permet de faire face et de survivre, et les Instincts de tous les autres Totems le renforcent. Seul l’Humain lutte contre son influence…", + "instincts": "Tous ceux des huit Totems majeurs", + "bans": "Aucun…", + "opposite": "human" + } + }, + "ABILITY_CATEGORIES": { + "physical": { + "name": "Physique" + }, + "manual": { + "name": "Manuel" + }, + "mental": { + "name": "Mental" + }, + "social": { + "name": "Social" + } + }, + "SKILLS_CATEGORIES": { + "man": { + "name": "L'Homme" + }, + "animal": { + "name": "L'Animal" + }, + "tool": { + "name": "L'Outil" + }, + "weapon": { + "name": "L'Arme" + }, + "survival": { + "name": "La Survie" + }, + "world": { + "name": "La Terre" + } + }, + "SKILLS": { + "arts": { + "name": "Arts" + }, + "civilization": { + "name": "Civilisations" + }, + "psychology": { + "name": "Psychologie" + }, + "rumors": { + "name": "Rumeurs" + }, + "healing": { + "name": "Soins" + }, + "animalism": { + "name": "Animalisme" + }, + "dissection": { + "name": "Dissection" + }, + "wildlife": { + "name": "Faune" + }, + "repulsion": { + "name": "Répulsion" + }, + "tracks": { + "name": "Traces" + }, + "crafting": { + "name": "Artisanat" + }, + "diy": { + "name": "Bricolage" + }, + "mecanical": { + "name": "Mécanique" + }, + "piloting": { + "name": "Pilotage" + }, + "technology": { + "name": "Technologie" + }, + "firearms": { + "name": "Armes à feu" + }, + "armory": { + "name": "Armurerie" + }, + "shield": { + "name": "Bouclier" + }, + "close": { + "name": "Corps-à-corps" + }, + "archery": { + "name": "Armes de tir" + }, + "throwing": { + "name": "Lancer" + }, + "melee": { + "name": "Mêlée" + }, + "atletics": { + "name": "Atlétisme" + }, + "stealth": { + "name": "Discrétion" + }, + "alertness": { + "name": "Vigilance" + }, + "flora": { + "name": "Flore" + }, + "food": { + "name": "Alimentation" + }, + "environment": { + "name": "Environnement" + }, + "road": { + "name": "Route" + }, + "toxics": { + "name": "Toxiques" + }, + "ruins": { + "name": "Vestiges" + } + }, + "SEXES": { + "male": "Masculin", + "female": "Féminin" + } +} \ No newline at end of file diff --git a/module/sheets/actor-sheet.mjs b/module/sheets/actor-sheet.mjs index eda2f88..e0ad21a 100644 --- a/module/sheets/actor-sheet.mjs +++ b/module/sheets/actor-sheet.mjs @@ -1,4 +1,4 @@ -import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs"; +import { onManageActiveEffect, prepareActiveEffectCategories } from "../system/effects.mjs"; /** * Extend the basic ActorSheet with some very simple modifications @@ -40,7 +40,7 @@ export class VermineActorSheet extends ActorSheet { context.system = actorData.system; context.flags = actorData.flags; context.config = CONFIG.VERMINE; - + // Add roll data for TinyMCE editors. context.rollData = context.actor.getRollData(); @@ -56,7 +56,7 @@ export class VermineActorSheet extends ActorSheet { // Render the item sheet for viewing/editing prior to the editable check. html.find('.item-edit').click(ev => { - const li = $(ev.currentTarget).parents(".item"); + const li = $(ev.currentTarget).parents(".item"); const item = this.actor.items.get(li.data("itemId")); item.sheet.render(true); }); @@ -79,7 +79,7 @@ export class VermineActorSheet extends ActorSheet { // Active Effect management html.find(".effect-control").click(ev => onManageActiveEffect(ev, this.actor)); - + // Drag events for macros. if (this.actor.isOwner) { let handler = ev => this._onDragStart(ev); @@ -90,8 +90,22 @@ export class VermineActorSheet extends ActorSheet { }); } + //click on wound radio + html.find('[type="radio"][data-wound]').click(ev => { + this._onWoundClick(ev) + }) + + } + _onWoundClick(ev) { + if (!ev.currentTarget.checked) { return } + let woundType = ev.currentTarget.dataset.wound; + let targetProp = "system." + woundType + ".value"; + let update = {}; + update[targetProp] = ev.currentTarget.value - 1 + + this.actor.update(update) + } - async _onItemCreate(event) { event.preventDefault(); const header = event.currentTarget; @@ -113,6 +127,6 @@ export class VermineActorSheet extends ActorSheet { delete itemData.system["type"]; // Finally, create the item! - return await Item.create(itemData, {parent: this.actor}); + return await Item.create(itemData, { parent: this.actor }); } } diff --git a/module/sheets/character-sheet.mjs b/module/sheets/character-sheet.mjs index 0b504b9..048a545 100644 --- a/module/sheets/character-sheet.mjs +++ b/module/sheets/character-sheet.mjs @@ -14,8 +14,7 @@ export class VermineCharacterSheet extends VermineActorSheet { return mergeObject(super.defaultOptions, { classes: ["vermine2047", "sheet", "character", "actor"], template: "systems/vermine2047/templates/actor/actor-sheet.hbs", - width: 600, - height: 600, + tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }] }); } @@ -53,7 +52,6 @@ export class VermineCharacterSheet extends VermineActorSheet { if (actorData.type == 'npc') { this._prepareItems(context); } - // Add roll data for TinyMCE editors. context.rollData = context.actor.getRollData(); diff --git a/module/sheets/creature-sheet.mjs b/module/sheets/creature-sheet.mjs index 674dafe..693c16a 100644 --- a/module/sheets/creature-sheet.mjs +++ b/module/sheets/creature-sheet.mjs @@ -1,11 +1,11 @@ -import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs"; +import { onManageActiveEffect, prepareActiveEffectCategories } from "../system/effects.mjs"; import { VermineActorSheet } from "./actor-sheet.mjs"; /** * Extend the basic ActorSheet with some very simple modifications * @extends {ActorSheet} */ -export class VermineCreatureSheet extends ActorSheet { +export class VermineCreatureSheet extends VermineActorSheet { /** @override */ static get defaultOptions() { @@ -40,7 +40,7 @@ export class VermineCreatureSheet extends ActorSheet { context.system = actorData.system; context.flags = actorData.flags; context.config = CONFIG.VERMINE; - + // Prepare character data and items. if (actorData.type == 'character') { this._prepareItems(context); @@ -94,7 +94,7 @@ export class VermineCreatureSheet extends ActorSheet { super.activateListeners(html); html.find('.item-create').click(this._onItemCreate.bind(this)); - } + } async _onItemCreate(event) { event.preventDefault(); @@ -118,7 +118,7 @@ export class VermineCreatureSheet extends ActorSheet { delete itemData.system["type"]; // Finally, create the item! - return await Item.create(itemData, {parent: this.actor}); + return await Item.create(itemData, { parent: this.actor }); } } diff --git a/module/system/config.mjs b/module/system/config.mjs index 16754fd..8d599d0 100644 --- a/module/system/config.mjs +++ b/module/system/config.mjs @@ -6,79 +6,80 @@ export const VERMINE = {}; */ VERMINE.AgeTypes = { - 1:{ "name":"AGE_TYPES.young", "beginning": 0 }, - 2:{ "name":"AGE_TYPES.adult", "beginning": 18 }, - 3:{ "name":"AGE_TYPES.old", "beginning": 47 } + 1: { "name": "AGE_TYPES.young", "beginning": 0 }, + 2: { "name": "AGE_TYPES.adult", "beginning": 18 }, + 3: { "name": "AGE_TYPES.old", "beginning": 47 } } VERMINE.SkillLevels = { - 1:{ "label":"SKILL_LEVELS.beginner", "dicePool":1, "reroll":0}, - 2:{ "label":"SKILL_LEVELS.proficient", "dicePool":1, "reroll":1}, - 3:{ "label":"SKILL_LEVELS.expert", "dicePool":2, "reroll":1}, - 4:{ "label":"SKILL_LEVELS.master", "dicePool":2, "reroll":2}, - 5:{ "label":"SKILL_LEVELS.legend", "dicePool":3, "reroll":2} + 0: { "label": "SKILL_LEVELS.incompetent", "dicePool": 0, "reroll": 0 }, + 1: { "label": "SKILL_LEVELS.beginner", "dicePool": 1, "reroll": 0 }, + 2: { "label": "SKILL_LEVELS.proficient", "dicePool": 1, "reroll": 1 }, + 3: { "label": "SKILL_LEVELS.expert", "dicePool": 2, "reroll": 1 }, + 4: { "label": "SKILL_LEVELS.master", "dicePool": 2, "reroll": 2 }, + 5: { "label": "SKILL_LEVELS.legend", "dicePool": 3, "reroll": 2 } } VERMINE.DifficultyLevels = { - 1:{ "label":"DIFFICULTY_LEVELS.obvious", "difficulty":3}, - 2:{ "label":"DIFFICULTY_LEVELS.easy", "difficulty":5}, - 3:{ "label":"DIFFICULTY_LEVELS.hard", "difficulty":7}, - 4:{ "label":"DIFFICULTY_LEVELS.very_hard", "difficulty":9}, - 5:{ "label":"DIFFICULTY_LEVELS.impossible", "difficulty":10} + 1: { "label": "DIFFICULTY_LEVELS.obvious", "difficulty": 3 }, + 2: { "label": "DIFFICULTY_LEVELS.easy", "difficulty": 5 }, + 3: { "label": "DIFFICULTY_LEVELS.hard", "difficulty": 7 }, + 4: { "label": "DIFFICULTY_LEVELS.very_hard", "difficulty": 9 }, + 5: { "label": "DIFFICULTY_LEVELS.impossible", "difficulty": 10 } }, -VERMINE.ThreatLevels = { - 1:{ "label":"THREAT_LEVELS.minor", "attack":3, "vigor":1, "minorWound":1, "majorWound":1, "deadlyWound":1}, - 2:{ "label":"THREAT_LEVELS.serious", "attack":4, "vigor":2, "minorWound":2, "majorWound":1, "deadlyWound":1}, - 3:{ "label":"THREAT_LEVELS.major", "attack":5, "vigor":3, "minorWound":2, "majorWound":1, "deadlyWound":1}, - 4:{ "label":"THREAT_LEVELS.deadly", "attack":6, "vigor":4, "minorWound":2, "majorWound":2, "deadlyWound":2}, -} + VERMINE.ThreatLevels = { + 1: { "label": "THREAT_LEVELS.minor", "attack": 3, "vigor": 1, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 }, + 2: { "label": "THREAT_LEVELS.serious", "attack": 4, "vigor": 2, "minorWound": 2, "majorWound": 1, "deadlyWound": 1 }, + 3: { "label": "THREAT_LEVELS.major", "attack": 5, "vigor": 3, "minorWound": 2, "majorWound": 1, "deadlyWound": 1 }, + 4: { "label": "THREAT_LEVELS.deadly", "attack": 6, "vigor": 4, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 }, + } VERMINE.ExperienceLevels = { - 1:{ "label":"SKILL_LEVELS.beginner", "action":3, "specialties":4, "rerolls":0, "contact":"7"}, - 2:{ "label":"SKILL_LEVELS.proficient", "action":3, "specialties":5, "rerolls":0, "contact":"5 ou 7"}, - 3:{ "label":"SKILL_LEVELS.expert", "action":4, "specialties":6, "rerolls":1, "contact":"5,7 ou 9"}, - 4:{ "label":"SKILL_LEVELS.master", "action":4, "specialties":6, "rerolls":2, "contact":"3,5,7 ou 9"}, + 1: { "label": "SKILL_LEVELS.beginner", "action": 3, "specialties": 4, "rerolls": 0, "contact": "7" }, + 2: { "label": "SKILL_LEVELS.proficient", "action": 3, "specialties": 5, "rerolls": 0, "contact": "5 ou 7" }, + 3: { "label": "SKILL_LEVELS.expert", "action": 4, "specialties": 6, "rerolls": 1, "contact": "5,7 ou 9" }, + 4: { "label": "SKILL_LEVELS.master", "action": 4, "specialties": 6, "rerolls": 2, "contact": "3,5,7 ou 9" }, } VERMINE.RoleLevels = { - 1:{ "label":"ROLE_LEVELS.minor", "reaction":3, "reaction_bonus":0, "pools":0, "gear":9, "gear_hindrance":0, "protection":1}, - 2:{ "label":"ROLE_LEVELS.secondary", "reaction":3,"reaction_bonus":1, "pools":1, "gear":9,"gear_hindrance":1, "protection":2}, - 3:{ "label":"ROLE_LEVELS.important", "reaction":3, "reaction_bonus":2, "pools":2, "gear":9,"gear_hindrance":2, "protection":3}, - 4:{ "label":"ROLE_LEVELS.major", "reaction":4, "reaction_bonus":2, "pools":4, "gear":10, "gear_hindrance":2, "protection":3}, + 1: { "label": "ROLE_LEVELS.minor", "reaction": 3, "reaction_bonus": 0, "pools": 0, "gear": 9, "gear_hindrance": 0, "protection": 1 }, + 2: { "label": "ROLE_LEVELS.secondary", "reaction": 3, "reaction_bonus": 1, "pools": 1, "gear": 9, "gear_hindrance": 1, "protection": 2 }, + 3: { "label": "ROLE_LEVELS.important", "reaction": 3, "reaction_bonus": 2, "pools": 2, "gear": 9, "gear_hindrance": 2, "protection": 3 }, + 4: { "label": "ROLE_LEVELS.major", "reaction": 4, "reaction_bonus": 2, "pools": 4, "gear": 10, "gear_hindrance": 2, "protection": 3 }, } VERMINE.PatternLevels = { - 1:{ "label":"PATTERN_LEVELS.insect", "attack":2, "damage":0, "minorWound":0, "majorWound":0, "deadlyWound":1}, - 2:{ "label":"PATTERN_LEVELS.rat", "attack":3, "damage":1, "minorWound":0, "majorWound":1, "deadlyWound":1}, - 3:{ "label":"PATTERN_LEVELS.dog", "attack":4, "damage":3, "minorWound":1, "majorWound":1, "deadlyWound":1}, - 4:{ "label":"PATTERN_LEVELS.bear", "attack":6, "damage":6, "minorWound":2, "majorWound":2, "deadlyWound":2}, + 1: { "label": "PATTERN_LEVELS.insect", "attack": 2, "damage": 0, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 }, + 2: { "label": "PATTERN_LEVELS.rat", "attack": 3, "damage": 1, "minorWound": 0, "majorWound": 1, "deadlyWound": 1 }, + 3: { "label": "PATTERN_LEVELS.dog", "attack": 4, "damage": 3, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 }, + 4: { "label": "PATTERN_LEVELS.bear", "attack": 6, "damage": 6, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 }, } VERMINE.SizeLevels = { - 1:{ "attack":2, "vigor":1, "minorWound":0, "majorWound":0, "deadlyWound":1}, - 2:{ "attack":3, "vigor":2, "minorWound":0, "majorWound":1, "deadlyWound":1}, - 3:{ "attack":4, "vigor":3, "minorWound":1, "majorWound":1, "deadlyWound":1} + 1: { "attack": 2, "vigor": 1, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 }, + 2: { "attack": 3, "vigor": 2, "minorWound": 0, "majorWound": 1, "deadlyWound": 1 }, + 3: { "attack": 4, "vigor": 3, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 } } VERMINE.PackLevels = { - 1:{ "attack":1, "damage":1, "minorWound":0, "majorWound":0, "deadlyWound":1}, - 2:{ "attack":2, "damage":2, "minorWound":2, "majorWound":2, "deadlyWound":2}, - 3:{ "attack":5, "damage":5, "minorWound":3, "majorWound":3, "deadlyWound":3} + 1: { "attack": 1, "damage": 1, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 }, + 2: { "attack": 2, "damage": 2, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 }, + 3: { "attack": 5, "damage": 5, "minorWound": 3, "majorWound": 3, "deadlyWound": 3 } } VERMINE.abilityCategories = { "physical": { - "label":"VERMINE.ability_category.physical" + "label": "VERMINE.ability_category.physical" }, "manual": { - "label":"VERMINE.ability_category.manual" + "label": "VERMINE.ability_category.manual" }, "mental": { - "label":"VERMINE.ability_category.mental" + "label": "VERMINE.ability_category.mental" }, "social": { - "label":"VERMINE.ability_category.social" + "label": "VERMINE.ability_category.social" } } @@ -95,64 +96,66 @@ VERMINE.abilities = { VERMINE.skillCategories = { "man": { - "label":"VERMINE.skill_category.man" + "label": "VERMINE.skill_category.man" }, "animal": { - "label":"VERMINE.skill_category.animal" + "label": "VERMINE.skill_category.animal" }, "tool": { - "label":"VERMINE.skill_category.tool" + "label": "VERMINE.skill_category.tool" }, "weapon": { - "label":"VERMINE.skill_category.weapon" + "label": "VERMINE.skill_category.weapon" }, "survival": { - "label":"VERMINE.skill_category.survival" + "label": "VERMINE.skill_category.survival" }, "world": { - "label":"VERMINE.skill_category.world" + "label": "VERMINE.skill_category.world" } } -VERMINE.sexes = {"male": "VERMINE.sexes.male", "female": "VERMINE.sexes.female"}; +VERMINE.sexes = { "male": "VERMINE.sexes.male", "female": "VERMINE.sexes.female" }; VERMINE.totems = { - "human":"TOTEMS.human.name", - "predator": "TOTEMS.predator.name" , - "scavenger": "TOTEMS.scavenger.name" , - "symbiote": "TOTEMS.symbiote.name" , - "parasite": "TOTEMS.parasite.name" , - "builder": "TOTEMS.builder.name" , - "horde": "TOTEMS.horde.name" , - "hive": "TOTEMS.hive.name" , + "human": "TOTEMS.human.name", + "predator": "TOTEMS.predator.name", + "scavenger": "TOTEMS.scavenger.name", + "symbiote": "TOTEMS.symbiote.name", + "parasite": "TOTEMS.parasite.name", + "builder": "TOTEMS.builder.name", + "horde": "TOTEMS.horde.name", + "hive": "TOTEMS.hive.name", "loner": "TOTEMS.loner.name", - "adapted": "TOTEMS.adapted.name" + "adapted": "TOTEMS.adapted.name" } VERMINE.totem_opposites = { - "human":"TOTEMS.adapted.name", - "predator": "TOTEMS.scavenger.name" , - "scavenger": "TOTEMS.predator.name" , - "symbiote": "TOTEMS.parasite.name" , - "parasite": "TOTEMS.symbiote.name" , - "builder": "TOTEMS.horde.name" , - "horde": "TOTEMS.builder.name" , - "hive": "TOTEMS.loner.name" , + "human": "TOTEMS.adapted.name", + "predator": "TOTEMS.scavenger.name", + "scavenger": "TOTEMS.predator.name", + "symbiote": "TOTEMS.parasite.name", + "parasite": "TOTEMS.symbiote.name", + "builder": "TOTEMS.horde.name", + "horde": "TOTEMS.builder.name", + "hive": "TOTEMS.loner.name", "loner": "TOTEMS.hive.name", - "adapted": "TOTEMS.human.name" + "adapted": "TOTEMS.human.name" } -VERMINE.origins = {"aon":"Aon", -"avhorae": "Avhorae" , -"babel": "Babel", -"soleil_noir": "Empire du Soleil Noir", -"fakhar": "Fakhar", -"horde": "Horde", -"khashan": "Khashan", -"ool": "Ool", -"shattered_kingdoms": "Royaumes divisés", -"saeth": "Saeth", -"tegee": "Tégée (Thalos)", -"tuuhle": "Tuuhle", -"vaelor": "Vaelor", -"valdheim": "Valdheim" +VERMINE.origins = { + "aon": "Aon", + "avhorae": "Avhorae", + "babel": "Babel", + "soleil_noir": "Empire du Soleil Noir", + "fakhar": "Fakhar", + "horde": "Horde", + "khashan": "Khashan", + "ool": "Ool", + "shattered_kingdoms": "Royaumes divisés", + "saeth": "Saeth", + "tegee": "Tégée (Thalos)", + "tuuhle": "Tuuhle", + "vaelor": "Vaelor", + "valdheim": "Valdheim" } + diff --git a/module/system/dialogs.mjs b/module/system/dialogs.mjs index 002ba44..1792c0c 100644 --- a/module/system/dialogs.mjs +++ b/module/system/dialogs.mjs @@ -1,4 +1,4 @@ - +import { VermineUtils } from "./roll.mjs"; export class CombatResultDialog extends Dialog { constructor(dialogData, options) { @@ -34,8 +34,48 @@ export class CombatResultDialog extends Dialog { } +export class RollDialog extends Dialog { + static async create(rollData) { + let options = { classes: ["vermine-roll"], width: 420, height: 'fit-content', 'z-index': 99999 }; + let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', rollData); + + return new RollDialog(actor, rollData, html, options); + } + + /* -------------------------------------------- */ + constructor(data, html, options, close = undefined) { + let conf = { + title: "", + content: html, + buttons: { + roll: { + icon: '', + label: "Lancer !", + callback: () => { this.roll(data.actorId, data.label, data.NoD, data.Reroll) } + }, + cancel: { + icon: '', + label: "Annuler", + callback: () => { this.close() } + } + }, + close: close + } + + super(conf, options); + + this.data = data; + + } + roll() { + VermineUtils.roll(actorId, label, NoD, Reroll = 0, params = {}) + } + +} export const getRollBox = async function (data) { + console.log(data) + let actor = await game.actors.get(data.actorId) let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', data); let dial = new Dialog({ title: game.i18n.localize("ROLLS.tool"), @@ -43,7 +83,7 @@ export const getRollBox = async function (data) { buttons: { roll: { label: game.i18n.localize('ROLLS.roll_dice'), - callback: (html) => { + callback: async (html) => { let form = html.find('#dice-pool-form'); if (!form[0].checkValidity()) { throw "Invalid Data"; @@ -67,6 +107,18 @@ export const getRollBox = async function (data) { // réserves if (formData.self_control > 0) { NoD += parseInt(formData.self_control, 10); + let newSelfControl = actor.system.attributes.self_control.value - parseInt(formData.self_control); + if (newSelfControl < 0) { + return async () => { + await ui.notifications.notify(`vous ne disposez pas d'assez de sang-froid`); + dial.render(true); + } + + + } + await actor.update({ + "system.attributes.self_control.value": newSelfControl + }) } if (formData.group > 0) { NoD += parseInt(formData.group, 10); @@ -83,7 +135,9 @@ export const getRollBox = async function (data) { } if (formData.abilityScore == 0 || !formData.abilityScore) { ui.notifications.notify(`veuillez saisir une caractéristique`); - } else return game.vermine2047.VermineRoll.roll(data.actorId, data.label, NoD, Reroll, data); + dial.render(true); + } else + return VermineUtils.roll(data.actorId, data.label, NoD, Reroll, data); } }, close: { diff --git a/module/system/fight.mjs b/module/system/fight.mjs index 9b4ec44..35d42c7 100644 --- a/module/system/fight.mjs +++ b/module/system/fight.mjs @@ -1,30 +1,30 @@ import { VERMINE } from "./config.mjs"; -import { getActorSkillScore,updateActorSkillScore } from "./functions.mjs"; +import { getActorSkillScore, updateActorSkillScore } from "./functions.mjs"; export class VermineFight { async performTest(enemyAchievement, enemyConservation, skillKey, skill, params, actor) { const dicePool = (params.spleen != undefined || params.purpose != undefined) ? '5' : '4'; - const r = new Roll(dicePool +`d6`); + const r = new Roll(dicePool + `d6`); let diceString = ''; let dicePoolHint = ''; - let discardedRoll = false; + let discardedRoll = false; let bonus = 0; let bonusText = '/+'; let currentSkillScore = skill; r.roll(); // dice are rolled - if (params.usure != undefined){ + if (params.usure != undefined) { currentSkillScore += params.usure; bonus += params.usure; } - if (params.specialization != undefined){ + if (params.specialization != undefined) { currentSkillScore += 2; } - if (params.trait != undefined){ + if (params.trait != undefined) { currentSkillScore += params.trait; bonus += params.trait; } @@ -32,28 +32,28 @@ export class VermineFight { bonusText += bonus; let targetText = game.i18n.format('VERMINE.Selected') + ' : ' + game.i18n.format(skillKey) + " " + skill + bonusText; - if (params.specialization != undefined){ - targetText += " (S)"; + if (params.specialization != undefined) { + targetText += " (S)"; } // tri par ordre croissant - r.terms[0].results.sort((a,b) => a.result - b.result ); - - if (params.purpose != undefined){ + r.terms[0].results.sort((a, b) => a.result - b.result); + + if (params.purpose != undefined) { discardedRoll = r.terms[0].results.shift(); dicePoolHint = ' - ' + game.i18n.format('VERMINE.PurposeTrait'); - } else if (params.spleen != undefined){ + } else if (params.spleen != undefined) { discardedRoll = r.terms[0].results.pop(); dicePoolHint = ' - ' + game.i18n.format('VERMINE.SpleenTrait'); - } + } const discardedRollText = (discardedRoll.result != undefined) ? '
' + discardedRoll.result + '
' : ""; for (let i = 0; i < r.terms[0].results.length; i++) { let result = r.terms[0].results[i].result; - diceString += '
  • ' + result + '
  • '; + diceString += '
  • ' + result + '
  • '; } let hintText = game.i18n.format('VERMINE.ConfrontationHint'); - + // Build a dynamic html using the variables from above. const html = `
    @@ -73,7 +73,7 @@ export class VermineFight {
    ` + - `

    ` + hintText + `

    + `

    ` + hintText + `

    ` + game.i18n.format('VERMINE.Achievement') + ` ` + game.i18n.format('VERMINE.Conservation') + ` @@ -109,10 +109,10 @@ export class VermineFight { if (actor) conf.speaker = ChatMessage.getSpeaker({ actor: actor }); - // Send's Chat Message to foundry, if items are missing they will appear as false or undefined and this not be rendered. - ChatMessage.create(conf).then((msg) => { + // Send's Chat Message to foundry, if items are missing they will appear as false or undefined and this not be rendered. + ChatMessage.create(conf).then((msg) => { return msg; - }); + }); } static instance = null; @@ -123,7 +123,7 @@ export class VermineFight { return VermineFight.instance; } - + // data injected to char data static previousValues = { dicePool: 4, @@ -136,34 +136,34 @@ export class VermineFight { static rollerTemplate = 'systems/vermine2047/templates/fight.html'; static CombatResultTemplate = 'systems/vermine2047/templates/fight-result.html'; - + static async chatMessageHandler(message, html, data) { // console.log("accès au fin du fin", message._id); // sélection du dé actif html.on("click", '.confrontation .die.d6', event => { - const diceResult = parseInt($(event.target).html(),10); + const diceResult = parseInt($(event.target).html(), 10); html.find('.confrontation .die.d6').removeClass('active'); $(event.target).addClass('active'); }); // sélection des dés d'accomplissement html.on("click", '.confrontation .add-to-achievement', event => { - const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(),10); + const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(), 10); html.find('.confrontation .die.d6.active').removeClass('min').addClass('max'); }); // sélection des dés de conservation html.on("click", '.confrontation .add-to-conservation', event => { - const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(),10); + const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(), 10); html.find('.confrontation .die.d6.active').removeClass('max').addClass('min'); }); // reset de la sélection des pools html.on("click", '.confrontation .reset', event => { html.find('.confrontation .die.d6') - .removeClass('max') - .removeClass('min'); + .removeClass('max') + .removeClass('min'); }); // résolution de la confrontation @@ -172,10 +172,10 @@ export class VermineFight { let conservationDice = 0; let achievementBasis = 0; let conservationBasis = 0; - html.find('.confrontation .die.d6.max').each(function(index){ + html.find('.confrontation .die.d6.max').each(function (index) { achievementDice += parseInt($(this).html(), 10); }); - html.find('.confrontation .die.d6.min').each(function(index){ + html.find('.confrontation .die.d6.min').each(function (index) { conservationDice += parseInt($(this).html(), 10); }); @@ -189,8 +189,8 @@ export class VermineFight { html.find('td.conservation-result').html(conservationBasis + conservationDice); // calcul des marges - const achievementMargin = achievementBasis + achievementDice - parseInt(html.find('td.adv-achievement-result').html(),10); - const conservationMargin = conservationBasis + conservationDice - parseInt(html.find('td.adv-conservation-result').html(),10); + const achievementMargin = achievementBasis + achievementDice - parseInt(html.find('td.adv-achievement-result').html(), 10); + const conservationMargin = conservationBasis + conservationDice - parseInt(html.find('td.adv-conservation-result').html(), 10); html.find('td.achievement-margin').html(achievementMargin); html.find('td.conservation-margin').html(conservationMargin); @@ -206,7 +206,7 @@ export class VermineFight { // supprime le masquage des résultats du dé html.off("click", ".dice-roll"); } - + /** * main class function * @returns @@ -217,30 +217,30 @@ export class VermineFight { // get the actor try { actor = game.user.character; - } catch(e){ - throw("Aucun personnage défini !"); + } catch (e) { + throw ("Aucun personnage défini !"); } - if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null){ + if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null) { // on récupère le speakerId, et de là l'objet actor - actor = game.actors.get(externalData.speakerId); + actor = game.actors.get(externalData.speakerId); VermineFight.previousValues['speakerName'] = actor.name; - VermineFight.previousValues['speakerImg'] = actor.img; + VermineFight.previousValues['speakerImg'] = actor.img; } else { VermineFight.previousValues['speakerName'] = "Anonyme"; } // get the data let charData = (externalData) => { - let o = Object.assign({ _template: VermineFight.rollerTemplate }, {...VermineFight.previousValues, ...externalData}); + let o = Object.assign({ _template: VermineFight.rollerTemplate }, { ...VermineFight.previousValues, ...externalData }); return o; }; - let data = charData(externalData); - console.log(data); + let data = charData(externalData); + console.log(data); // render template let html = await renderTemplate(data._template, data); - + let ui = new Dialog({ title: game.i18n.localize("VERMINE.FightTool"), content: html, @@ -257,7 +257,7 @@ export class VermineFight { switch (e.name) { case "skill": case "cephalic": - if (e.value !== ''){ + if (e.value !== '') { skillKey = e.value; } break; @@ -270,31 +270,31 @@ export class VermineFight { case "usure": params.usure = +e.value; break; - case "trait": - params.trait = +e.value; - break; - case "purpose": + case "trait": + params.trait = +e.value; + break; + case "purpose": params.purpose = true; break; case "spleen": params.spleen = true; - break; + break; case "adv-skill": - enemySkill = +e.value; - break; - case "achievement": + enemySkill = +e.value; + break; + case "achievement": enemyAchievement = +e.value; break; case "conservation": - enemyConservation = +e.value; - break; - } + enemyConservation = +e.value; + break; + } }); // prise en compte de l'usure sur la feuille de perso - if (params.usure != undefined){ - const newSpentScore = getActorSkillScore(actor, skillKey, 'spent') + params.usure; - console.log(newSpentScore); - updateActorSkillScore(actor, skillKey, 'spent', newSpentScore); + if (params.usure != undefined) { + const newSpentScore = getActorSkillScore(actor, skillKey, 'spent') + params.usure; + console.log(newSpentScore); + updateActorSkillScore(actor, skillKey, 'spent', newSpentScore); } return VermineFight.get().performTest(enemyAchievement + enemySkill, enemyConservation + enemySkill, skillKey, skill, params, actor); @@ -309,10 +309,10 @@ export class VermineFight { h.on("change", 'select[name="skill"]', event => { const skillLabel = $(event.target).val(); const currentSkillScore = getActorSkillScore(actor, skillLabel) - getActorSkillScore(actor, skillLabel, 'spent'); - if (parseInt(currentSkillScore,10) >= 0){ + if (parseInt(currentSkillScore, 10) >= 0) { h.find('input#skillScore').val(currentSkillScore); } - }); + }); } }, { width: 601, height: 'fit-content' }); ui.render(true); @@ -321,7 +321,7 @@ export class VermineFight { } export class VermineCombat extends Combat { - _encounterCheck(){ + _encounterCheck() { console.log('encounter combat object', this); } @@ -338,7 +338,7 @@ export class VermineCombat extends Combat { }*/ const combatant = this.combatants.get(ids[0]); let token = canvas.scene.tokens.get(combatant.tokenId); - combatant.type = game.actors.get( combatant.actorId)?.type; + combatant.type = game.actors.get(combatant.actorId)?.type; combatant.disposition = token.disposition; let enemies = []; @@ -346,7 +346,7 @@ export class VermineCombat extends Combat { let token = canvas.scene.tokens.get(cbt.tokenId); let enemy = token.actor; const isEnemy = (token.disposition == -1) ? true : false; - if (isEnemy){ + if (isEnemy) { enemies.push({ id: enemy.id, name: enemy.name, @@ -363,12 +363,12 @@ export class VermineCombat extends Combat { return (token.disposition == 1 && cbt.id != combatant.id) ? true : false; }); - if (combatant.type != 'character'){ - let warningDialogHTML = await renderTemplate('systems/vermine2047/templates/dialogs/warning.html', { + if (combatant.type != 'character') { + let warningDialogHTML = await renderTemplate('systems/vermine2047/templates/dialogs/warning.html', { warningText: "Seuls les PJs peuvent initier des confrontations. Relancer l'opération au tour du PJ actif." }); - Dialog.prompt({ - title: "Avertissement", + Dialog.prompt({ + title: "Avertissement", content: warningDialogHTML, label: 'Okay !', callback: () => { @@ -378,10 +378,10 @@ export class VermineCombat extends Combat { } else { // étape 2 : on envoie les infos let fightingActor = game.actors.get(combatant.actorId); - VermineFight.ui({ - speakerId: combatant.actorId, + VermineFight.ui({ + speakerId: combatant.actorId, speakerWeapons: fightingActor.items.filter(item => item.type == 'weapon'), - speakerExperience:fightingActor.system.attributes.experience.value, + speakerExperience: fightingActor.system.attributes.experience.value, speakerEffects: token.actor.effects, adversaries: enemies, allies: allies @@ -409,7 +409,7 @@ export class VermineCombat extends Combat { return super.startCombat(); } - + /************************************************************************************/ _onDelete() { /*let combatants = this.combatants.contents @@ -425,30 +425,10 @@ export class VermineCombat extends Combat { export class VermineCombatTracker extends CombatTracker { get template() { - return "systems/vermine2047/templates/combat-tracker.hbs"; + return "systems/vermine2047/templates/combat-tracker.hbs"; } async getData(options) { - const context = await super.getData(options); - - if (!context.hasCombat) { - return context; - } - - for (let [i, combatant] of context.combat.turns.entries()) { - context.turns[i].hasActed = combatant.getFlag("world", "hasActed"); - context.turns[i].isPlayer = combatant.actor.type == "player"; - context.turns[i].isNpc = combatant.actor.type == "npc"; - } - return context; - } - - /* -------------------------------------------- */ - get template() { - return "systems/gods-system/templates/combat/tracker.hbs"; -} - -async getData(options) { const context = await super.getData(options); if (!context.hasCombat) { @@ -456,39 +436,58 @@ async getData(options) { } for (let [i, combatant] of context.combat.turns.entries()) { - context.turns[i].attitude = combatant.getFlag("world", "attitude"); - context.turns[i].isPlayer = combatant.actor.type == "character"; - context.turns[i].isNpc = combatant.actor.type == "npc"; - context.turns[i].isCreature = combatant.actor.type == "creature"; + context.turns[i].hasActed = combatant.getFlag("world", "hasActed"); + context.turns[i].isPlayer = combatant.actor.type == "player"; + context.turns[i].isNpc = combatant.actor.type == "npc"; } return context; -} + } -activateListeners(html) { + /* -------------------------------------------- */ + get template() { + return "systems/vermine2047/templates/combat-tracker.hbs"; + } + + async getData(options) { + const context = await super.getData(options); + + if (!context.hasCombat) { + return context; + } + + for (let [i, combatant] of context.combat.turns.entries()) { + context.turns[i].attitude = combatant.getFlag("world", "attitude"); + context.turns[i].isPlayer = combatant.actor.type == "character"; + context.turns[i].isNpc = combatant.actor.type == "npc"; + context.turns[i].isCreature = combatant.actor.type == "creature"; + } + return context; + } + + activateListeners(html) { super.activateListeners(html); - html.find(".status").click(this._setStatut.bind(this)); -} + html.find("[data-attitude]").click(this._setStatut.bind(this)); + } -/** - * @description Use to put an attitude to an actor - * @param {*} event - */ -async _setStatut(event) { + /** + * @description Use to put an attitude to an actor + * @param {*} event + */ + async _setStatut(event) { event.preventDefault(); event.stopPropagation(); const btn = event.currentTarget; + const attitude = btn.dataset.attitude; const li = btn.closest(".combatant"); const combat = this.viewed; const combatant = combat.combatants.get(li.dataset.combatantId); - - if ($(btn).hasClass('offensive')) - await combatant.setFlag("world", "attitude", "offensive"); - else if ($(btn).hasClass('active')) - await combatant.setFlag("world", "attitude", "active"); - else if ($(btn).hasClass('passive')) - await combatant.setFlag("world", "attitude", "passive"); - else - await combatant.setFlag("world", "attitude", null); -} + let flag = combatant.getFlag("world", "attitude"); + if (flag == attitude) { + return await combatant.setFlag("world", "attitude", null); + } else { + return await combatant.setFlag("world", "attitude", attitude); + } + + } } \ No newline at end of file diff --git a/module/system/handlebars-manager.mjs b/module/system/handlebars-manager.mjs index 3febad6..42d8ecd 100644 --- a/module/system/handlebars-manager.mjs +++ b/module/system/handlebars-manager.mjs @@ -3,7 +3,7 @@ * Pre-loaded templates are compiled and cached for fast access when rendering * @return {Promise} */ - export const preloadHandlebarsTemplates = async function() { +export const preloadHandlebarsTemplates = async function () { return loadTemplates([ @@ -57,16 +57,16 @@ function range(start, end, step) { step = step == null ? 1 : Number(step); if (end == null) { - end = start; - start = 0; + end = start; + start = 0; } var length = Math.max(Math.ceil((end - start) / (step || 1)), 0); var result = new Array(length); for (var i = 0; i < length; i += 1) { - result[i] = start; - start += step; + result[i] = start; + start += step; } return result; @@ -76,162 +76,188 @@ export const registerHandlebarsHelpers = function () { Handlebars.registerHelper('concat', (...args) => args.slice(0, -1).join('')); Handlebars.registerHelper('lower', e => e.toLocaleLowerCase()); - Handlebars.registerHelper('toLowerCase', function(str) { - return str.toLowerCase(); + Handlebars.registerHelper('toLowerCase', function (str) { + return str.toLowerCase(); }); // search translation with variables - Handlebars.registerHelper('smarttl', function (arrayLabel,objectLabel, options) { - return game.i18n.localize(arrayLabel +"."+objectLabel+".name"); + Handlebars.registerHelper('smarttl', function (arrayLabel, objectLabel, options) { + return game.i18n.localize(arrayLabel + "." + objectLabel + ".name"); }); - Handlebars.registerHelper('smarttlk', function (arrayLabel,objectLabel, key) { - return game.i18n.localize(arrayLabel +"."+objectLabel+"."+key); + Handlebars.registerHelper('smarttlk', function (arrayLabel, objectLabel, key) { + return game.i18n.localize(arrayLabel + "." + objectLabel + "." + key); }); Handlebars.registerHelper('smartcfg', function (configLabel, objectLabel) { let text = ""; text = game.i18n.localize(CONFIG.VERMINE[configLabel][objectLabel]); - if (text == null){ + if (text == null) { text = CONFIG.VERMINE[configLabel][objectLabel]; } return text; - + }); - // return threat level information - Handlebars.registerHelper('threatLevel', function (property, level, options) { - if (level < 1 || level > 4) - return ""; - let levelData = CONFIG.VERMINE.ThreatLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - }); - - // return experience level information - Handlebars.registerHelper('experienceLevel', function (property, level, options) { - if (level < 1 || level > 4) - return ""; - let levelData = CONFIG.VERMINE.ExperienceLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - }); - - // return role level information - Handlebars.registerHelper('roleLevel', function (property, level, options) { - if (level < 1 || level > 4) - return ""; - let levelData = CONFIG.VERMINE.RoleLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - }); - - // return pattern level information - Handlebars.registerHelper('patternLevel', function (property, level, options) { - if (level < 1 || level > 4) - return ""; - let levelData = CONFIG.VERMINE.PatternLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - }); - - // return size level information - Handlebars.registerHelper('sizeLevel', function (property, level, options) { - if (level < 1 || level > 4) + // return threat level information + Handlebars.registerHelper('threatLevel', function (property, level, options) { + if (level < 1 || level > 4) return ""; - let levelData = CONFIG.VERMINE.SizeLevels[level]; - if (property == 'label'){ + let levelData = CONFIG.VERMINE.ThreatLevels[level]; + if (property == 'label') { return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; } else { return (levelData !== undefined) ? levelData[property] : ""; } }); - // return pack level information - Handlebars.registerHelper('packLevel', function (property, level, options) { - if (level < 0 || level > 3) - return ""; - let levelData = CONFIG.VERMINE.PackLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - }); + // return experience level information + Handlebars.registerHelper('experienceLevel', function (property, level, options) { + if (level < 1 || level > 4) + return ""; + let levelData = CONFIG.VERMINE.ExperienceLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } + }); + + // return role level information + Handlebars.registerHelper('roleLevel', function (property, level, options) { + if (level < 1 || level > 4) + return ""; + let levelData = CONFIG.VERMINE.RoleLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } + }); + + // return pattern level information + Handlebars.registerHelper('patternLevel', function (property, level, options) { + if (level < 1 || level > 4) + return ""; + let levelData = CONFIG.VERMINE.PatternLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } + }); + + // return size level information + Handlebars.registerHelper('sizeLevel', function (property, level, options) { + if (level < 1 || level > 4) + return ""; + let levelData = CONFIG.VERMINE.SizeLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } + }); + + // return pack level information + Handlebars.registerHelper('packLevel', function (property, level, options) { + if (level < 0 || level > 3) + return ""; + let levelData = CONFIG.VERMINE.PackLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } + }); // return skill level information Handlebars.registerHelper('skillLevel', function (property, level, options) { - if (level < 1 || level > 5) + if (level < 1 || level > 5) return ""; - let levelData = CONFIG.VERMINE.SkillLevels[level]; - if (property == 'label'){ + let levelData = CONFIG.VERMINE.SkillLevels[level]; + if (property == 'label') { return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; } else { return (levelData !== undefined) ? levelData[property] : ""; } }); - // return diff level information - Handlebars.registerHelper('diffLevel', function (property, level, options) { - if (level < 1 || level > 5) - return ""; - let levelData = CONFIG.VERMINE.DifficultyLevels[level]; - if (property == 'label'){ - return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; - } else { - return (levelData !== undefined) ? levelData[property] : ""; - } - - }); + // return diff level information + Handlebars.registerHelper('diffLevel', function (property, level, options) { + if (level < 1 || level > 5) + return ""; + let levelData = CONFIG.VERMINE.DifficultyLevels[level]; + if (property == 'label') { + return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : ""; + } else { + return (levelData !== undefined) ? levelData[property] : ""; + } - // return age type information - Handlebars.registerHelper('ageType', function (property, level, options) { - if (level < 1 || level > 3) - return ""; - let ageData = CONFIG.VERMINE.AgeTypes[level]; - if (property == 'name'){ - return (ageData !== undefined) ? game.i18n.localize(ageData[property]) : ""; - } else { - return (ageData !== undefined) ? ageData[property] : ""; - } - - }); - - - Handlebars.registerHelper('getCombatTrackerColor', function (isPlayer, isNpc) { - if (isPlayer) return "player"; - if (isNpc) return "npc"; }); - - Handlebars.registerHelper('range', function() { + // return age type information + Handlebars.registerHelper('ageType', function (property, level, options) { + if (level < 1 || level > 3) + return ""; + let ageData = CONFIG.VERMINE.AgeTypes[level]; + if (property == 'name') { + return (ageData !== undefined) ? game.i18n.localize(ageData[property]) : ""; + } else { + return (ageData !== undefined) ? ageData[property] : ""; + } + + }); + + + Handlebars.registerHelper('getCombatTrackerColor', function (isPlayer, isNpc) { + if (isPlayer) return "player"; + if (isNpc) return "npc"; + }); + + + Handlebars.registerHelper('range', function () { var args = Array.prototype.slice.call(arguments), - rangeArgs = args.slice(0, -1), - options = args[args.length - 1]; + rangeArgs = args.slice(0, -1), + options = args[args.length - 1]; return range.apply(null, rangeArgs) - .map(function(num) { return options.fn(num); }) - .join(''); + .map(function (num) { return options.fn(num); }) + .join(''); + }); + + // return age type information + Handlebars.registerHelper('ife', function (arg1, arg2, options) { + return (arg1 == arg2) ? options.fn(this) : options.inverse(this); + }); + Handlebars.registerHelper('ifgt', function (a, b, options) { + if (a > b) { return options.fn(this); } + return options.inverse(this); + }); + Handlebars.registerHelper('iflt', function (a, b, options) { + if (a < b) { return options.fn(this); } + return options.inverse(this); + }); + Handlebars.registerHelper('ifgteq', function (a, b, options) { + if (a >= b) { return options.fn(this); } + return options.inverse(this); + }); + Handlebars.registerHelper('iflteq', function (a, b, options) { + if (a <= b) { return options.fn(this); } + return options.inverse(this); + }); + + Handlebars.registerHelper('repeat', function (times, start, block) { + var accum = ''; + if (!start) { start = 0; } + for (var i = start; i < times + start; ++i) { + block.data.index = i; + block.data.first = i === start; + block.data.last = i === (times + start - 1); + accum += block.fn(this); + } + return accum; }); - // return age type information - Handlebars.registerHelper('ife', function(arg1, arg2, options) { - return (arg1 == arg2) ? options.fn(this) : options.inverse(this); - }); - - - } \ No newline at end of file diff --git a/module/system/roll.mjs b/module/system/roll.mjs index e7992cd..c76eb1d 100644 --- a/module/system/roll.mjs +++ b/module/system/roll.mjs @@ -1,20 +1,59 @@ -export class VermineRoll { +export class VermineUtils { - static roll(actorId, label, NoD, Reroll = 0, params = {}){ - const actor = game.actors.get(actorId); - let formula = '' + (parseInt(NoD,10) + parseInt(Reroll,10)) + "d10"; - if (Reroll > 0 && params.difficulty != undefined){ - formula += 'kh' + NoD; + static roll(actorId, label, NoD, Reroll = 0, params = {}) { + const actor = game.actors.get(actorId); + let formula = '' + NoD + "d10"; + + formula += (params.difficulty != undefined) ? "cs>=" + params.difficulty : "cs>=7"; + let roll = new Roll(formula, actor.getRollData()); + roll.toMessage({ + speaker: ChatMessage.getSpeaker({ actor: actor }), + flavor: label, + rollMode: game.settings.get('core', 'rollMode'), + }); + return roll; + } + + /* -------------------------------------------- */ + static async showDiceSoNice(roll, rollMode) { + if (game.modules.get("dice-so-nice")?.active) { + if (game.dice3d) { + let whisper = null; + let blind = false; + rollMode = rollMode ?? game.settings.get("core", "rollMode"); + switch (rollMode) { + case "blindroll": //GM only + blind = true; + case "gmroll": //GM + rolling player + whisper = this.getUsers(user => user.isGM); + break; + case "roll": //everybody + whisper = this.getUsers(user => user.active); + break; + case "selfroll": + whisper = [game.user.id]; + break; } - formula += (params.difficulty != undefined) ? "cs>" + params.difficulty : "cs>7"; - let roll = new Roll(formula, actor.getRollData()); - roll.toMessage({ - speaker: ChatMessage.getSpeaker({ actor: actor }), - flavor: label, - rollMode: game.settings.get('core', 'rollMode'), - }); - return roll; - } + await game.dice3d.showForRoll(roll, game.user, true, whisper, blind); + } + } + } + + /* -------------------------------------------- */ + static async chatListeners(html) { + + html.on("click", '.roll-dice-bonus', event => { + let rollData = this.getRollDataFromMessage(event) + + let msgId = VermineRoll.findChatMessageId(event.currentTarget) + nocUtility.removeChatMessageId(msgId) + + let nbDice = $(event.target).data('nb-dice') + console.log(">>>>>", nbDice) + this.rollBonus(rollData, nbDice) + }) + + } } diff --git a/module/system/settings.mjs b/module/system/settings.mjs index dd781fd..1572020 100644 --- a/module/system/settings.mjs +++ b/module/system/settings.mjs @@ -6,13 +6,26 @@ export const registerSettings = function () { config: true, type: String, choices: { - "1": "Survie", - "2": "Cauchemar", - "3": "Apocalypse" + "1": "Survie", + "2": "Cauchemar", + "3": "Apocalypse" }, default: 'e', onChange: value => { - // console.log(value); + let el = document.querySelector('.game-mode'); + el.id = 'game-mode-' + game.settings.get('vermine2047', 'game-mode') + switch (game.settings.get('vermine2047', 'game-mode')) { + case '1': + el.innerText = 'mode survie'; + + break; + case '2': + el.innerText = 'mode cauchemard' + break; + case '3': + el.innerText = 'mode apocalypse' + break; + } } }); diff --git a/module/vermine2047.mjs b/module/vermine2047.mjs index bd9f96e..2922fd2 100644 --- a/module/vermine2047.mjs +++ b/module/vermine2047.mjs @@ -12,7 +12,7 @@ import { VermineCreatureSheet } from "./sheets/creature-sheet.mjs"; import { VermineItem } from "./documents/item.mjs"; import { VermineItemSheet } from "./sheets/item-sheet.mjs"; -import { VermineRoll } from "./system/roll.mjs"; +import { VermineUtils } from "./system/roll.mjs"; import { VermineCombat, VermineCombatTracker } from "./system/fight.mjs"; // Import helper/utility classes and constants. @@ -23,20 +23,21 @@ import { VERMINE } from "./system/config.mjs"; /* Init Hook */ /* -------------------------------------------- */ -Hooks.once('init', async function() { +Hooks.once('init', async function () { // Add utility classes to the global game object so that they're more easily // accessible in global contexts. game.vermine2047 = { VermineActor, VermineItem, - VermineRoll, + VermineUtils, VermineCombat }; // Add custom constants for configuration. CONFIG.VERMINE = VERMINE; - + CONFIG.VERMINE.model = game.system.model + console.log('__________________', CONFIG.VERMINE) /** * Set an initiative formula for the system * @type {String} @@ -54,24 +55,24 @@ Hooks.once('init', async function() { // Register sheet application classes Actors.unregisterSheet("core", ActorSheet); Actors.registerSheet('vermine2047', VermineCharacterSheet, { - types: ['character'], - makeDefault: true, - }); + types: ['character'], + makeDefault: true, + }); Actors.registerSheet('vermine2047', VermineNpcSheet, { - types: ['npc'], - makeDefault: true, - }); + types: ['npc'], + makeDefault: true, + }); Actors.registerSheet('vermine2047', VermineCreatureSheet, { types: ['creature'], makeDefault: true, - }); + }); Actors.registerSheet('vermine2047', VermineGroupSheet, { types: ['group'], makeDefault: true, - }); + }); Items.unregisterSheet("core", ItemSheet); Items.registerSheet("vermine2047", VermineItemSheet, { makeDefault: true }); @@ -79,6 +80,24 @@ Hooks.once('init', async function() { registerHooks(); // register Hooks registerSettings(); // register Vermine Settings + //afficher le mode de jeu + let mode = game.settings.get('vermine2047', 'game-mode'); + let el = document.createElement('SPAN'); + switch (mode) { + case '1': + el.innerText = 'mode survie'; + break; + case '2': + el.innerText = 'mode cauchemard'; + break; + case '3': + el.innerText = 'mode apocalypse'; + break; + } + el.classList.add('game-mode'); + el.id = 'game-mode-' + mode; + document.querySelector('#ui-left').prepend(el); // Preload Handlebars templates. return preloadHandlebarsTemplates(); + }); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b77cf9e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5887 @@ +{ + "name": "rolenplay-core", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "rolenplay-core", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@typhonjs-fvtt/eslint-config-foundry.js": "^0.8.0", + "browser-sync": "^2.27.11", + "gulp": "^4.0.2", + "gulp-sass": "^5.1.0", + "sass": "^1.55.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.1.tgz", + "integrity": "sha512-dzJtaDAAoXx4GCOJpbB2eG/Qj8VDpdwkLsWGzGm+0L7E8/434RyMbAHmk9ubXWVAb9nXmc44jUf8GKqVDiKezg==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@typhonjs-fvtt/eslint-config-foundry.js": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@typhonjs-fvtt/eslint-config-foundry.js/-/eslint-config-foundry.js-0.8.0.tgz", + "integrity": "sha512-Fu1XDS747exX5zVwty4VSwlOwkuzdnnN15C5w66uG4hOpJnPCZU/jcyEOCf9bazRPp06Smimn+mKd9OjrCvuuw==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/async-each-series": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", + "integrity": "sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-sync": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", + "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "dev": true, + "dependencies": { + "browser-sync-client": "^2.29.3", + "browser-sync-ui": "^2.29.3", + "bs-recipes": "1.3.4", + "chalk": "4.1.2", + "chokidar": "^3.5.1", + "connect": "3.6.6", + "connect-history-api-fallback": "^1", + "dev-ip": "^1.0.1", + "easy-extender": "^2.3.4", + "eazy-logger": "^4.0.1", + "etag": "^1.8.1", + "fresh": "^0.5.2", + "fs-extra": "3.0.1", + "http-proxy": "^1.18.1", + "immutable": "^3", + "localtunnel": "^2.0.1", + "micromatch": "^4.0.2", + "opn": "5.3.0", + "portscanner": "2.2.0", + "raw-body": "^2.3.2", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "send": "0.16.2", + "serve-index": "1.9.1", + "serve-static": "1.13.2", + "server-destroy": "1.0.1", + "socket.io": "^4.4.1", + "ua-parser-js": "^1.0.33", + "yargs": "^17.3.1" + }, + "bin": { + "browser-sync": "dist/bin.js" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/browser-sync-client": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", + "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "dev": true, + "dependencies": { + "etag": "1.8.1", + "fresh": "0.5.2", + "mitt": "^1.1.3" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/browser-sync-ui": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", + "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "dev": true, + "dependencies": { + "async-each-series": "0.1.1", + "chalk": "4.1.2", + "connect-history-api-fallback": "^1", + "immutable": "^3", + "server-destroy": "1.0.1", + "socket.io-client": "^4.4.1", + "stream-throttle": "^0.1.3" + } + }, + "node_modules/bs-recipes": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", + "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", + "dev": true + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "~1.3.2", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "dev": true + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", + "dev": true, + "bin": { + "dev-ip": "lib/dev-ip.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/eazy-logger": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", + "dev": true, + "dependencies": { + "chalk": "4.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/glob-watcher/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/glob-watcher/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/glob-watcher/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/gulp-sass": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.1.0.tgz", + "integrity": "sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==", + "dev": true, + "dependencies": { + "lodash.clonedeep": "^4.5.0", + "picocolors": "^1.0.0", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "dependencies": { + "lodash.isfinite": "^3.3.2" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/localtunnel": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", + "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", + "dev": true, + "dependencies": { + "axios": "0.21.4", + "debug": "4.3.2", + "openurl": "1.1.1", + "yargs": "17.1.1" + }, + "bin": { + "lt": "bin/lt.js" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/localtunnel/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/localtunnel/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/localtunnel/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/localtunnel/node_modules/yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/localtunnel/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, + "node_modules/lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==", + "dev": true + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true, + "bin": { + "mime": "cli.js" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", + "dev": true + }, + "node_modules/opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/portscanner": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", + "integrity": "sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw==", + "dev": true, + "dependencies": { + "async": "^2.6.0", + "is-number-like": "^1.0.3" + }, + "engines": { + "node": ">=0.4", + "npm": ">=1.0.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", + "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass/node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/send/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==", + "dev": true, + "dependencies": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + }, + "bin": { + "throttleproxy": "bin/throttleproxy.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.1.0.tgz", + "integrity": "sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA==", + "dev": true, + "dependencies": { + "through2": "^4.0.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/through2-filter/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/through2-filter/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/ua-parser-js": { + "version": "1.0.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", + "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", + "dev": true, + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4af2133 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "vermine2047", + "version": "1.0.0", + "description": "vermine 2047 for foundry", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "launch Foundry11": "cd C:/Program Files/Foundry Virtual Tabletop_V11/resources/app && node main.js", + "watch": "gulp watch", + "buildStyle": "gulp buildStyles" + }, + "author": "", + "devDependencies": { + "@typhonjs-fvtt/eslint-config-foundry.js": "^0.8.0", + "browser-sync": "^2.27.11", + "gulp": "^4.0.2", + "gulp-sass": "^5.1.0", + "sass": "^1.55.0" + } +} diff --git a/packs/adaptationsmutations/000128.log b/packs/adaptationsmutations/000150.log similarity index 100% rename from packs/adaptationsmutations/000128.log rename to packs/adaptationsmutations/000150.log diff --git a/packs/adaptationsmutations/CURRENT b/packs/adaptationsmutations/CURRENT index 224d52a..1dec270 100644 --- a/packs/adaptationsmutations/CURRENT +++ b/packs/adaptationsmutations/CURRENT @@ -1 +1 @@ -MANIFEST-000127 +MANIFEST-000149 diff --git a/packs/adaptationsmutations/LOG b/packs/adaptationsmutations/LOG index b38c7d3..f4131b2 100644 --- a/packs/adaptationsmutations/LOG +++ b/packs/adaptationsmutations/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.272832 7f3e00bf0640 Recovering log #125 -2023/09/07-17:43:25.289734 7f3e00bf0640 Delete type=0 #125 -2023/09/07-17:43:25.289773 7f3e00bf0640 Delete type=3 #123 +2024/04/21-11:00:14.926 40b8 Recovering log #147 +2024/04/21-11:00:14.930 40b8 Delete type=0 #147 +2024/04/21-11:00:14.930 40b8 Delete type=3 #145 diff --git a/packs/adaptationsmutations/LOG.old b/packs/adaptationsmutations/LOG.old index d295399..43437e0 100644 --- a/packs/adaptationsmutations/LOG.old +++ b/packs/adaptationsmutations/LOG.old @@ -1,7 +1,7 @@ -2023/09/07-17:42:45.351570 7f3e00bf0640 Recovering log #121 -2023/09/07-17:42:45.359683 7f3e00bf0640 Delete type=0 #121 -2023/09/07-17:42:45.359723 7f3e00bf0640 Delete type=3 #119 -2023/09/07-17:43:21.919681 7f3df7cfb640 Level-0 table #126: started -2023/09/07-17:43:21.919705 7f3df7cfb640 Level-0 table #126: 0 bytes OK -2023/09/07-17:43:21.925140 7f3df7cfb640 Delete type=0 #124 -2023/09/07-17:43:21.932544 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.586 3594 Recovering log #144 +2024/04/21-08:39:21.591 3594 Delete type=0 #144 +2024/04/21-08:39:21.591 3594 Delete type=3 #143 +2024/04/21-10:20:47.336 5c50 Level-0 table #148: started +2024/04/21-10:20:47.336 5c50 Level-0 table #148: 0 bytes OK +2024/04/21-10:20:47.337 5c50 Delete type=0 #146 +2024/04/21-10:20:47.355 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs/adaptationsmutations/MANIFEST-000127 b/packs/adaptationsmutations/MANIFEST-000127 deleted file mode 100644 index 92f6afb5c1dc90902da353b2a2cfadad01577a32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$lhWZWAsBMy3WvP6p;i HMivGD2F4KX diff --git a/packs/adaptationsmutations/MANIFEST-000149 b/packs/adaptationsmutations/MANIFEST-000149 new file mode 100644 index 0000000000000000000000000000000000000000..078457ebdfa273621565c28d1147b2f7946851ae GIT binary patch literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$hT1{xmKIMy6?uoD9s< H8Ce(r`&AHA literal 0 HcmV?d00001 diff --git a/packs/deck-creatures/000128.log b/packs/deck-creatures/000150.log similarity index 100% rename from packs/deck-creatures/000128.log rename to packs/deck-creatures/000150.log diff --git a/packs/deck-creatures/CURRENT b/packs/deck-creatures/CURRENT index 224d52a..1dec270 100644 --- a/packs/deck-creatures/CURRENT +++ b/packs/deck-creatures/CURRENT @@ -1 +1 @@ -MANIFEST-000127 +MANIFEST-000149 diff --git a/packs/deck-creatures/LOG b/packs/deck-creatures/LOG index 67d6e54..013c55e 100644 --- a/packs/deck-creatures/LOG +++ b/packs/deck-creatures/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.309925 7f3e01bf2640 Recovering log #125 -2023/09/07-17:43:25.325289 7f3e01bf2640 Delete type=0 #125 -2023/09/07-17:43:25.325377 7f3e01bf2640 Delete type=3 #123 +2024/04/21-11:00:14.993 40b8 Recovering log #147 +2024/04/21-11:00:14.999 40b8 Delete type=0 #147 +2024/04/21-11:00:14.999 40b8 Delete type=3 #145 diff --git a/packs/deck-creatures/LOG.old b/packs/deck-creatures/LOG.old index 6816f5c..b88eade 100644 --- a/packs/deck-creatures/LOG.old +++ b/packs/deck-creatures/LOG.old @@ -1,7 +1,7 @@ -2023/09/07-17:42:45.379151 7f3e01bf2640 Recovering log #121 -2023/09/07-17:42:45.393418 7f3e01bf2640 Delete type=0 #121 -2023/09/07-17:42:45.393457 7f3e01bf2640 Delete type=3 #119 -2023/09/07-17:43:21.937228 7f3df7cfb640 Level-0 table #126: started -2023/09/07-17:43:21.937306 7f3df7cfb640 Level-0 table #126: 0 bytes OK -2023/09/07-17:43:21.941263 7f3df7cfb640 Delete type=0 #124 -2023/09/07-17:43:21.945982 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.654 3594 Recovering log #144 +2024/04/21-08:39:21.658 3594 Delete type=0 #144 +2024/04/21-08:39:21.658 3594 Delete type=3 #143 +2024/04/21-10:20:47.365 5c50 Level-0 table #148: started +2024/04/21-10:20:47.365 5c50 Level-0 table #148: 0 bytes OK +2024/04/21-10:20:47.367 5c50 Delete type=0 #146 +2024/04/21-10:20:47.367 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs/deck-creatures/MANIFEST-000127 b/packs/deck-creatures/MANIFEST-000127 deleted file mode 100644 index 92f6afb5c1dc90902da353b2a2cfadad01577a32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$lhWZWAsBMy3WvP6p;i HMivGD2F4KX diff --git a/packs/deck-creatures/MANIFEST-000149 b/packs/deck-creatures/MANIFEST-000149 new file mode 100644 index 0000000000000000000000000000000000000000..078457ebdfa273621565c28d1147b2f7946851ae GIT binary patch literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$hT1{xmKIMy6?uoD9s< H8Ce(r`&AHA literal 0 HcmV?d00001 diff --git a/packs/historiques/000112.log b/packs/historiques/000134.log similarity index 100% rename from packs/historiques/000112.log rename to packs/historiques/000134.log diff --git a/packs/historiques/CURRENT b/packs/historiques/CURRENT index 0e66324..b72c871 100644 --- a/packs/historiques/CURRENT +++ b/packs/historiques/CURRENT @@ -1 +1 @@ -MANIFEST-000111 +MANIFEST-000133 diff --git a/packs/historiques/LOG b/packs/historiques/LOG index 151b38b..016c448 100644 --- a/packs/historiques/LOG +++ b/packs/historiques/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.291517 7f3e013f1640 Recovering log #109 -2023/09/07-17:43:25.305979 7f3e013f1640 Delete type=0 #109 -2023/09/07-17:43:25.306018 7f3e013f1640 Delete type=3 #107 +2024/04/21-11:00:14.944 40b8 Recovering log #131 +2024/04/21-11:00:14.950 40b8 Delete type=0 #131 +2024/04/21-11:00:14.950 40b8 Delete type=3 #129 diff --git a/packs/historiques/LOG.old b/packs/historiques/LOG.old index c0a08e0..c93fee8 100644 --- a/packs/historiques/LOG.old +++ b/packs/historiques/LOG.old @@ -1,7 +1,7 @@ -2023/09/07-17:42:45.361812 7f3e023f3640 Recovering log #105 -2023/09/07-17:42:45.375049 7f3e023f3640 Delete type=3 #103 -2023/09/07-17:42:45.375081 7f3e023f3640 Delete type=0 #105 -2023/09/07-17:43:21.928733 7f3df7cfb640 Level-0 table #110: started -2023/09/07-17:43:21.928798 7f3df7cfb640 Level-0 table #110: 0 bytes OK -2023/09/07-17:43:21.932413 7f3df7cfb640 Delete type=0 #108 -2023/09/07-17:43:21.932652 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.607 3594 Recovering log #128 +2024/04/21-08:39:21.613 3594 Delete type=0 #128 +2024/04/21-08:39:21.613 3594 Delete type=3 #127 +2024/04/21-10:20:47.362 5c50 Level-0 table #132: started +2024/04/21-10:20:47.362 5c50 Level-0 table #132: 0 bytes OK +2024/04/21-10:20:47.363 5c50 Delete type=0 #130 +2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs/historiques/MANIFEST-000111 b/packs/historiques/MANIFEST-000111 deleted file mode 100644 index c45b6413de7001a586e5ac2271e3abd28ba27fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAeo@Bs{X85Dj7$Zb49tZr F3;^Fr5N-ef diff --git a/packs/historiques/MANIFEST-000133 b/packs/historiques/MANIFEST-000133 new file mode 100644 index 0000000000000000000000000000000000000000..69575f8354cb03c83a8fc613b7b005c60670c1d7 GIT binary patch literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAevv@R84WH5My57KP6p<7 HMivGD`X&%O literal 0 HcmV?d00001 diff --git a/packs/pretires/000126.log b/packs/pretires/000148.log similarity index 100% rename from packs/pretires/000126.log rename to packs/pretires/000148.log diff --git a/packs/pretires/CURRENT b/packs/pretires/CURRENT index 70936fe..1021bdc 100644 --- a/packs/pretires/CURRENT +++ b/packs/pretires/CURRENT @@ -1 +1 @@ -MANIFEST-000125 +MANIFEST-000147 diff --git a/packs/pretires/LOG b/packs/pretires/LOG index f48b623..118e14a 100644 --- a/packs/pretires/LOG +++ b/packs/pretires/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.308285 7f3e00bf0640 Recovering log #123 -2023/09/07-17:43:25.322724 7f3e00bf0640 Delete type=3 #121 -2023/09/07-17:43:25.322771 7f3e00bf0640 Delete type=0 #123 +2024/04/21-11:00:14.982 56d0 Recovering log #145 +2024/04/21-11:00:14.987 56d0 Delete type=0 #145 +2024/04/21-11:00:14.987 56d0 Delete type=3 #143 diff --git a/packs/pretires/LOG.old b/packs/pretires/LOG.old index c064dd4..e9fab12 100644 --- a/packs/pretires/LOG.old +++ b/packs/pretires/LOG.old @@ -1,7 +1,7 @@ -2023/09/07-17:42:45.376908 7f3e013f1640 Recovering log #119 -2023/09/07-17:42:45.390868 7f3e013f1640 Delete type=0 #119 -2023/09/07-17:42:45.390911 7f3e013f1640 Delete type=3 #117 -2023/09/07-17:43:21.941413 7f3df7cfb640 Level-0 table #124: started -2023/09/07-17:43:21.941481 7f3df7cfb640 Level-0 table #124: 0 bytes OK -2023/09/07-17:43:21.945682 7f3df7cfb640 Delete type=0 #122 -2023/09/07-17:43:21.946023 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.641 5300 Recovering log #142 +2024/04/21-08:39:21.646 5300 Delete type=0 #142 +2024/04/21-08:39:21.647 5300 Delete type=3 #141 +2024/04/21-10:20:47.358 5c50 Level-0 table #146: started +2024/04/21-10:20:47.358 5c50 Level-0 table #146: 0 bytes OK +2024/04/21-10:20:47.360 5c50 Delete type=0 #144 +2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs/pretires/MANIFEST-000125 b/packs/pretires/MANIFEST-000125 deleted file mode 100644 index dd0249f7d441d7b633bda8b1388a18c7cdd29eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$o8T_IEfK7@6ug8JO!? F7y#>55p4hf diff --git a/packs/pretires/MANIFEST-000147 b/packs/pretires/MANIFEST-000147 new file mode 100644 index 0000000000000000000000000000000000000000..201e8ae2e81b73a3f3357c7c771be9562547720c GIT binary patch literal 52 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 diff --git a/packs/rites/000019.log b/packs/rites/000019.log deleted file mode 100644 index e2c0aae9b49ac5f5ea390fda14b3554ae96f10e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35429 zcmeI5TZm-ome;#P&Y=%;K^^8W;J}`gsZ$ME*?GTI)s$3M_07)iuCD6p>C;n#?ugi# zxvL}gj@~;WDzlo#0l_!%N#s0uVMIK2V8j=ZVII^;7!d>?eDJ{+84!GNR1g_PAN>8- zciB54BkDGteG2U6a4I8W$KKz!zIFMp|61P{-J{Om`or&BSbfF)cY%K{eE(PSQ8uW5 z<%7>hAFXvB9l!sJ^-EnO+b{r>V&kq)w@D@%8{KIvu2a9rgF zc{d&9WwErpG&&jT(~3`dl@AViQJ>Vh_v@3a8stT`zPh>ddRo`nsD3@~mIeQBAL~0S z53|mYFS@TRUHNjUm(|@WAKLA&EL|I3f3rx&qr9KjX)#K=S)zd~C;cqx9;Jh{NUDoj z+8vLwtE05j&qqoBVpV@JF0Y2SzZmo7PL(C~Fz1oute<2fKaI@pQ&z(|>G`jXi{xlL zNb@2o$L%-MA|IrDwa`}(!eOTIG~ddSyg10Z8u#+l+k7kS{BOMkryk;-CR%Ygeeu_4;CU%bLN)Sqhylv^Z|<$XOboU;R#|NrH6SouAS^8#3UOG zFJ|4m>R#<0Wyz>Sh>W7H^9~Xlg=c8d{nyK4<=X4R>#SFmBFdAcD;xZo_4Cxe;a-0+ zMlkl_+VaxFEI&LNEnQhfQ>ru{)k{}?<2U(^tplpEAD7Xsu~e)^$la{qALPrcVV@iF z@8I-tkNFm9KdV=g8xzT263dEFb^4g;6ba8LG{d}~^h)VM-Z_0-WmUqe`USkipM!KT z$PZ3`jNn*g-azzO%5rDP+i6ErOR99F&+74z8z8spHHoXz5*4S9SCZ4;O8RMXfST|n z{t8d-|KV@_$UkXNj;kuQ&v`Ryhv}93jwu0i$Pc+^wvr$X#(O#8Rb1KL*fieFXP8zj zBlC$*O!(Xz!Z0g(l8IZ$nkSDXmlav5$pv}e9aob)ORgkq$q|!cz0*pXCsodpPx5Nq zm++U9o9P&(81O0At|r(q+EFL3x39S|EW2s{WLR^<`^B2SsC^BOj;gVAl%@UA5pQJ& zG89G=|3)oj>icPPdy|{jrOOBWJs~7w*Vn=c9a*4N$n`a2(#Q@|EOXfqTi2T{8RpdVFwz zIt|eU6tth=6K#R?&ZNw%U|QMuxEaTo+r>FMllv-&&0EkxKRx8nFPFMyg#-TbD=zq} z^(d8ved*olyFJ9(a>9t)`PomHq1^YCrPYB`#n-sals>h|{f>Mn*qD0@VL=?~X7H+R=oH7`)ixG z-cR4#dN5hifOCy-HUw#yW#ybk`LJNDNBPi&hJ$q6cORU&-Ia~6zDobkUwZUczIS15 zUZ5*}ee!8B7=HHPt@Y}5ed~jN^b1c3bY?RL83XwyqTJin#nidtmOjpjc5YM`GpDhN zYVv?Jo(T)a`4J)eB?5EDqCdtJz={?zYi!5Wu?THIRURl*v`T`;G--WQi>u zgvV6!Fm={v$#5x{k*&#tY`mNl<%r;=&-p}Qxw?oX2;sa`C~&JZJE!vx+j3d;xPu2m zLdmc`=^mA%svHU{<+ZRIYWM!>PrxV0mf++9# zOJ0p|n0i4xJ$;O`<5FbM3#!AC^|`_QA{`TWhsf`cSS|Zq6#o_ly5*!D+;GO482>wc z%-x!hMyTjY{|yQ+4r_ob4M5H$T4u0W1z`!#MOYAFejKB%fs?Eisb`{#6!EN**ka!= zu8sTG`Tu?{1Z_HWt!71v!|M(NTzlQWY=dbAGNV+(R7SZ_v66TD32|&Bu!dIRS1b&h zS%cx0oqbMQ7^6lE-lWVplJer%$6(ffl8r|M>=67>2>)mJPG5-0)MD5lPeJ$3^L{x9 z-f>i+PmJAcY=}|y1lZbcC{4mG4{;`DR`N{UTz1}e4dJpusl`rkw?#J}@*UhnZZ1~( ziHG&ph_+vQ9nsHUfC#SUu0a${H#ftVOBp-ZG1pz02Sgl0#I`_Gm3gx!F-T_RG!HvH zX$FmT%$2+fD{C<}30ZQgVLN5m( znda0$JXwmRr7mZi3M@8)QN)dNRP$P=x<2>T7?+Dxpv2h`HVFV?TQIaq9+isR$#S@t z2vF{=ZLe-F1eCkGYg=TJ&jBcBq27xF%K!dLzx2af-@CB>EP(RweG4c}Nk}F5-a0l2)W4R`dA&S|IPmxs* zA)Opi9J2h}=a8ObA$u|};&{EXW2v3xY6HllR)R-X$xH49J(vd;0e*&e9MO2cSp ze5{na@Yd;LqXJGJJC3@rRfcgg^6?FE2;9}E?Lld&KRGzJnIM2EwsG50cPPE6ZR&E4 z-xe811#{msQ$=>aaO{-0HpdLZnxi=?=9>0>Z2YC;(p0BBecTz3?n`%}`}^7DZm#Dx zyyVkhB%(4>%&f*el0nWe&>}y+7Itw){bLCsEW>F@DFW8Tdi7J>%0<--|UC8Gm!ztiYe43ynEOQde)4cpJ*5 zk*4v5$XI0L8Z&#xKFzUxSYK!){EQ=*q*bEJI@MU!59!;Jn7Jo&i{=NNJ4TtKBSNJ4 zqafN@Zm>1=X>TMSH- zR6FLEw31Is3@nzAqOe4Csy^z{z@L7_cV}yNbB&@drL8#?-@V<{&F3TNX7SF86Lhcr zm*2Vf*S>RMa~`U?`LOfe=1x7?N_%&+o1G7T_h+7nsnH$p_5nPss3Eq^`k;+1HTh=EL&Bw;0@=y4h;zlWJeg zB9uyTLQSodxt~5hR9}+dK`e4|J#9fC+tHXmzZk2VsGmrz>e~rUtfppa{@G(6!H1D6 zEyk4ulNQ;r^dLntPEn>1OY9F?_t51T3#6g>X9|VTFqMvuPIzx2pLLHlncp~rmTUZ= z9p5s*)LWXLxzQ_9+Io9s@qiRya zs(elvFx)k^!SQhuFGFagL%}zF@CO0V>TRub1`M2yx+|}_B;q9sGh17`dpksuxnX8& zb!T&J@41rq*#Pk3Vdg*ov(9h+>MIwvT4Cmu&_TOC{OqHfx87U5dvvh#>4!%T|KpGT z@uU2^7q(m1#%|mCX8()P=U=?@*~7Q@*4FR7_xnHh#E>*rO|+u@u=+-#&X%+VopydIIZVhYyitkr>AECeODRuwgGnBzky55^JG%GXHGBf+jy+M5q7nfHC7LsCaSOKTIX$p>*ylgc%_4CUobUQEXH!9@_9IBhkD zG;^s30{_!F{mF>0ibSzgT25oxc}J7Z0j*rP7TlsdU$BVgZ>h%*E8bj27**vrZ!TU!C=@&JCsVoFjsAXCKS59UiL(@oW$l`c#i~m3xQIyexSzrrW|tp}2JV0w@bS zt-%%iMS~(reDMgrA|GB&ZqpUUjn{6O?4GdD9tSWY*pPVtAZ`2soS!=2dCdI&c%Bl1 zB=UNrEYvZS>B%J8%_lG-8F97?7T!lzkzt%xDYZdsFG8~{y}ZUh(u8Q9t{I?j4j&r{ zbp%-TPG{L3TaF+3zAj>Q+wI~B#mu~Pv3X->bA6pI{`s+aePegy`BK2yNciHhdG+u9 z^Y8!f?_SuM7jLVNdbdwLtsZ{z-upl7uYFYg`=5Vey#0Z7B7&c+JNjkf)qAw!i|&&d zA3%8+Nc2XBR=eN{9}+`#R-wlYHpKd*^q8Z&w8^bfb9uPh8E#BrB>I%JrSb~aQqg7I zObF}-FQD>(Fr1G-r(ZAu&q4Gvn8S_#x*X! z)Wr5U*!C=oPXW82mmS~Ku6;>FH!+)jb&nXm8hG1J9A>1r8s*?}G8ogu8zXN^mxW?{ zI@LI7<-m&0PPu74hTsdU)b7XQ=5EuNyM&=LX#yMcyZf#|(We3h%OQK^xDzwNmE__L z-@qDXm=~s9Qw4_@H~Ma;m{Ls?$qidPO1waTrH0{L5oidQ97UY7;|L3KJJt*V%R?9j z!Q5QAB$#$*#Qh4bgNwQ@6uPd(I=SKd_C00*6Q0EkHcoLx%7;5X<5dhW)Y8eS#|*hw`EH$1w%w=pCKba0EpxX-JizZhc)2K zI3nM>FE-Du+)SZ^kUyu{nC)`Y>RE%T8Hv$kxLQ?l633Si(@`UVoK(%w&a1gejs;~#=c*=u)n#zzP`J=DC}?SZ13zmS4ut`kYm_qUy=S>UV6SA zKY#Gm-}#q+^y-D(dBK13>F&n*XPf&})sFYyefRj^{Dmh5exWBVROeq($0>Vf zWE%ictVz~YOf^^SGUpskmkC+la>xP2cWFl=CI$;Dz6x{92keYWA97g*ocE+VZ*9&;O+wr%dSA|6h9r^8D-c8 zG&iQsRAtOpR15V(5}q!NByEB4Zt1<#SqcnKBp=$A5f46K%nElZ{>WdL=^c_@TAMen zRk0rX1#sZK6QQB4I=b zF@q8-A4cNzqFO%d@d~I5)q%4l+`%;oJ?)vw%KV1J6xziiw0DnDb>hxbS8Q;3nyv7h zDS4VDxr;n6zeR@FTQ&~}VvtT)by_aoW$iXd-b<5aAdsN6_YkZd4dk`Jo_&B$%1?@# zaY4FvtPUa3`E*nSdx@{)Se3OWD4W)l4`*x3+KnV^e2YgKZz9bJH#j2$-G3r9Xuulg z2vv()mzY)@?b)5T;hx%T3mCDzr{O)wV`>#Gi(oL!HG-pY;n}OkJP{E98rbzz9mIA3 z9@=az23xSy&ukiNwoOlg^=H@y?PGwmfAo1&diY={THMN$ z7n7aakDjh6Fozg}z?D~H|GcN)e{M0v@OIP|$E+j*ei3+|7vx z-JD~Js3=W6mm4G~Qq4t6BocO>@~63T9~FY2>bYtUVx9qVA<^zBU7eW?UWmqya7TO^ z5j)->_FbsDqSO`9PF?;!PT#yhcw__nUbYQ6Ydc%pD(TNBdp6g%_nxm1GmFF`>f3lB z(D$$Z(=Yz@Kl$#3y?LN7e~Ys@?)L6g58vJB6~F%3e|R$EgWizQ>$nTs*?In`FKDco zM)qIAOnZWpSOu|D5)@pJ3F8U|VF@9nfL6vFH!pTe?duQTd_W9r(rRN-hC&N7bf+wF zCds}x#cfKpNqCh016Tt3Q|1qfA}|u0!y~a?0wws80Fq?KYSZ!Ant3dW|20Y0%k^=l)ATM>91r6f1_t$Ubv2g~q=lmdeO@ZaA=0k+*&NFCQT!dhS;25OFW5>VVK$6s69jobP@d0;mu@;td?)Cd!ycjM zB6iEUqC#8MhZ8cwJQumOe5My_lF9p?PHSw-{=^}ZJ30j1-m0> zTAIg2FCFc(y0^8txxNShZ11h>!{^vWF&mX509bz^0Pr{V{>lIPZ{N9aWi9|nC)MuT zx4-D!?ws8FUY*g+n_%S_2xAD~PeoPk1 zg9FB;k34^FlnT#^V;bORREgFd@Qmc7cpVF&E?Z_iF1<2}+!&i+a8uhztWAn5Ih769 zg}KP{DTEb~UIOt8PlZRRD1MF(*p3!syv*NIOfzDzc1pXdRUA@?P9|a)bx<9H4T%K9 z7Q=uzZ2N*u4hNmXvWFf&7Q87+usy+M8eFrmN=5bTysAr2?civW=YhM5TEO0l;6A02 z+r};232!-O3}to{T#?+>#3iX9ow<3Nqw%w3-Bd>$4Z`z?Ba$922MhOElmI%^62_xK zr|>tXWz?jtq(c<&DXAjM*#}J}%q}auGi3u zDVlBW4KT=(0xO6q8solw#6p)smT(h7hJ8-f2*?f`9T+79&lO=ehnfe>RP{k>P3f32 zu?#Fcp~?`nz1zoiOMydT$w7f*%LUI5v-^a_`Szyw`zY;e6K7G<^sO>ZJS&SZ`5cF3 zE#5i@s}|eH=bn{?Ps4YHqp}tsYZ>FdVvS8>HVmmu;X2dlXT*h&K6|#WBN)Qs)Y+he zlXDrM&n56yRy&~QBJbhVc5g*S?XI0wxvY=@tgv!xOd^((&F0-Ehd8eg_za!w`z;BP zF{*~;cy}TjZFh)(+@ndXm5cd=^^6)SGed3b@dKpOFbCZnt>7{KYcA^bqE^!`>e}+0 zJtW=g#GTB?x_HA#Ioj@!_^PTH3*i7KR6-~-kjb63O)FS8qaeK%RB;ap$9u&=`ORva ztChNVAZ#N(fcdDfNKXBv=prK2g50%iaQ&|BH1*s=kRoZfB8>A2G0<>Pz<+8gCPaY| zL)9s9O`U<85wF0$P_^Wd!gGS5*rBMON;WEf# zUEGLiGFBkA{U~9DxNU?&B*aE;guR4OqLGsjsHkw$A+TyjxGd^yzV}8$3(QPhBPVp% zL_-OdD{4C`&1OQ2u%9lbh}E+u-L%p{r|5w3^35I7*kdz~2yclibnO}$;g-0@j`d{K zSS3pX$*~z_W>TUL{F#+V8eYnGU`yD3?GdC6wMRr{rJ`zuY#|7k$xxWl4Wm^+sD@8X z@f0sYV+M7{4!r2`v;kOj2*4(cfD&Fnm!R^A7QY!qBUTfOZ%{S~Pf)V1X~J~nLMOVZ zS){#>iQt3Mzf`3FP|@Db>e}ko0#vlKv%95(yPg9T%|exkind<}6@B;CZ~yYYdiBD! zd8p`v&&r$cuN`l3w8GtY?yhhB=xO~QjuiE0n};nlKV^V~i5pL^<{?_YmB(WXuE|`{ zU}l?AyN^JIKp5gUZ;UY@tzZrEn5qm%OA(t)WR}?(WgwO?T+nJ=i7jp_e z3h$1sat906xGRnLRr-+zL6W^C}zsJ zi_QRj7Hp6vx9B<3xrePH!x-@h!G?w(`+FlG-^LaC)s|cv+I2bE3RkxJ{qXoOk+JwP zvol8zMNu zQF2zG3FhMt4K!ExD8(+@x=xsyr;b-g^)gHv4cF|GmY{G zN^+#RAGsGngBN{hcNHF_Cs!n?S(|(8*&_bBUNBz(YDL{CXQV|H+yQJvVHxl-;OX1a zR@z;jC(}6LK@8_)WMR;R^RrK3pR-)C+ffs)3@aS94G!xhVY69i;}aV>dmOA+7=H?H zlf=Z;IrDrcEqO9;JoB{7P$_M~Xw@Zb7X$)lHFLHH2iy`&h7DXjLMO>l43*k(310aO zG-b!=d_OZTOHYJh3+8I2FNWo?aC1L$m8jLt?w{pExZXD_8{AQN(GPGL|2eZ}UYJ zwIfDw$&8xV*v;IT4k%Yps7d(4opgZKrIqc;nB6I3>1gzPG*m<%<|qSumX0t9H*`NI z5_&o?5=(nrfj!=5O1XnwDKE8)+nK2&EIQM>Jrw9Ixpu} z?8Gy9ai0eJSPqKOCJrO2IOSe@;8fsZJMl3cq!ycD_0-2xC9XeI-N3OqfSnLv7uNy2 zfP{-bA~Vwq5Kq2uA|N=N80(t00~$x{&4#CEz}ySKDEw9%b$d*Dmi4mVjiJ&Zb#KMH z$T$UsIb))cZ;(Kpor*3n%MD+WuFE7%pW0wIoY4Q~R99jf5TM&`2NNT|*zIP$ynj_E zpIBU`*PnGGj<=8{>M#!_u;JV~V9<#4n9TzNn<)&fXt5O?M1GBZtwh_=Nk99w`}`(Y zF}i$^4)XrVm1L4umo8tnx7c04)J|Tzss_x_^@@aRbL$}v-=L3!)-L>Zdw$1CsmfB6^M^&b3(c<97Dir zFhGROy!j`>wb@09>0%p4!=X2)2L-Yythdg;325)@7OG>9v1`W;Po)nsXKXAeS_7U^I%^h$knydSl&r9%qny5`*E%b6RtYfg4cS;74d zpR-q#_fIE7P3lD^yI@RaO>!hpwW!APb1h|iexrnif2v8z8K0L~$?xMof(2XEs)cwQ z_14Pd<^4#4(sp8^dxXh|lb^)0H zBvgcI+n;NLP-5lwIO_U-dR`0QT7o?Q1c}M&JIV${*~=99HAjj8pg9X0tsP9&Ne+uM6*eguJ` ztpKlM{qNE{;Ho(R%Cv#KvfmMEOv!cP5UFDKQ1o-!{AX1G_X8H#ou6VL0`-pjCDcCd z(6zKT3=8A1eF1j*L>#3;wj+ov)kC`v_~o=#uPn+xHSpGBNp;|CeT!inIF8k&&GcT! z>9)QVP6Al4rQZE^D1(Y%eYWqb?f0ya&vp7*@_Kguqz`Uren(RjjL<+>1g9!(c1gc; z6^Fl)OoRT`o^s&5&%EU2nmjqcOvu?%@UtGLf+ecF`kohEJN+|tt%C}zM*|QI1LuS8 zbdSY!EIy>11a{+&9^yo2Xi<;ax!cU|)02Ta@u92gF(ZmnaJs`g2Wd=S+#ZmQopNVl zm>SPqZ~(t*<*lmhSUYSKt75KA3_(ypp83&2cDRv>*(s)Bjr>tNUu#nDWnkw&nEqNR zoKU5vS)Jp;F-mHcaoaPMhdGv3gKruI{h=X}H^QX@7(vz?NJ8Ajgj|0jfn!0s9kwLK zY{eC~T+M5?wl(+o#-|-3jT@5EDZ&xYINPa}j>h$NT7OmpVr?;;gb~(5)1B*=^t9%< z-kMWG9lN8SQ8xFXAR5k^P}_k)GV6?R$1SjL$$K-ERHB1($6!Q~7}$A)L0NkFOlO8s zRv>@}D|h-`_?M=m_^6hzjJ`tZX{o&V8j%t@Q^Q&v+yNSwkeWNC$|(J2gyC5&{+=Jh zbO+yuuAyAA28y)Fj2j(0cQm`F|B7bQc zWOR=hAZlb_)i&18^{N3unTvDa27M<3j~ zbKKv3>%)f!C#(PV$t^iQpe~p78P7}5qHIG!O`^V8u^H=Z&PxgIRbhO(E5<=aB3Lv= zofe3Hb2)V5W^^XDK_Cp@@!v6E%jVs&FTM(|Onl~sLK00_@ht*w7c10l*P7k-8FRP; zAlj%p?nG;#5>y{aV`y?QKpS^jhtRaX7AGY7ld#FABT|rvQEfB4akbhX$B5zYsJ_G_ zzXcoB4$|!Ham-2>ph>-nPKsA}LTYI`x73xZ&<$(G5XMl{o|3!|Vk`)!HrNS`+O8R8 z^u&kZKbwiDI%A?D%|}dg7Y^4KwF5p@EW8i6HfCHLVPxWyFe84dq0MmHWl-|BL&@y(s1|ifPy49=?N-lC3Di z%i?o@lhS&(?S*_1EDoG$kL`Z(zCTz*&Mf+E*Y1}3foMqUw{&=~%P`Z8cRc!y?hiK(MbU0}Hoy4z2JF8U26b{JJlBxoaSOKdvyKd+RIQG0c* zsjZ?1!AxHU(snylR$dXr`MbL>Ud`xt^{>B`zRlob?Q6Xe9hb6sjeiRdn0#bAF&_nM(_-Lh5NdWS3MB4VaDo$Kz6g+q$w zZipJ;u*V&hBZ|Ahy#_xcg-({^aV6~bxD&&1n%k)1llX@k>BD#E!#dp*S~#d^5jCn* zR#ew6lyzN6=nK_gEUGUw50izo+Ueb<^u*mBOVws~!@2H|q6alKo={^^yhUTYX^A44 z6KBWqCQ3q*4Jp_!N93p!D%SJ?BX+9!>-dsXEca>hpmM4dHdG03A*s=jI;e&WJ?9k3 zh$@nz$BPxdY;#bNX8!(4Zk~PXi`|QOc!{hh^*olo3}|lVMW&sP0_uzB(QZ5E=O*(FHZ zV=?np9%V?0#KTIdM^eM3osx=U(si{boL5m)XHqm*If(_T3gfY`tm0S33_AC`gxaSm z-o}OTCM+mT#>yIYH&o$6C9KLlYS?DA4j4FPv*m1`$GuHa`}z~^h6=1iO;!`SyWxy8 zJ@VB~+(E3PwoZScq`$KBdL^2O8LmXh_YRKiv7^Ny4V8kWyUS$~(I4XTRNAo-+z zEEB~eEs>32zY>u(nnNmv*GqwTEGUPE<2vtEV;s)S&nYHzO^G{T8P<5I|wwkipF?P!Nd(anOVO2U#4Vj1b1qXQ2)LW;Cp?s1)0BDF?! zybXT0pDz)DiZMi2TBL%_(KT|yBh{{%Pb6tczp6w%QhntDV%i+FG*(Niu&BLKz>pGb zzZMZ$9uV+8oXfdi!Z^7q-Qj*dK5s7p)nE9E{#4-85PNjo$iGSo!pCDzSR zJs1o8eX$~SVObp-_im0pdhh0FchuL{@@u@ei@RU3?C{iL^Qze8o1-Bmr=NJ}v)q88 zPDW93dZn=1r%2u#2)8-fK9*$)hxayEo*|ynCX+5(b_JqbdI?Bd*1Iu*LHaAxSt`A` zX*W-AEkNyaH~4%Nl$Lnhv29TtM!y=T?_s<2%0_tni{@?;YN*<=Bg6TTrK-bNt*q&f zX=^%sUD5uPwAlVCKlmD7g2H`hJc^~F2JKhy#54Ui|MR!`0&F=A%UY8+Iiy$*Hs{^~ z5*tyERB>oCV~fO#c$1`zy~D{t#eN$fN8Q?+gb@y%a9aZOOE3cAw3+ zL?#c2MkX;@_R??KDk{(l6qMKEXpbI0b-`ts1*qj~V`$UU6B)e|8T2`^gSY&eyfSsj z_OwHZN}3!OzsBzhO&xNTaOefDpPC-6X|F4iJrAVE!###wpsMSjmZV1T4*w z7o0&gj{23@beJQRN0yp&Pt7klK9_hddz^FM$C=y>d4l*ePW(c!%9sh9g|% zU$eY5=_E?m5~FelK}R33z3#;AjK(58Q-AmVkeGDI*2ke-6*~m+_DpMsI;hCXt3pIB zR&%GbI2^jYmY>*F=#{$BvwLHze&o}VSVES7CKMDS`+He-%2V6uo%44QWu=4e>vBrC zCwQNlT_o3JpaS1Mi2Gm!)eysu3`j2ce}QDre*=;u{|qGW`nN!G zxmGMEQ3_hfF}#S6>F&E&)0qX9$`FuZ3Kwc>1dB{zFlsP1jFusxH0boYQ(UwfAdF#6Ak~B#mFYdy zzLS9opj2!JhBw$|kYqKgt0*i$d_W)cpfwUh)1hbbKQ>{kB5gD4* zarlv_+I#3WO>x~xR9Ah`EgWu%f9z6xA)?@VCbUDh;oG%XFRqPOYCm*)M3HdSbXhY0 zf+$6=6=HuVng$qbls;3P1kcCdCq17k4jnB*)dH2aEiKuOu);8ZAOp=$lliYZ00U5@ za!N>4o=;SINn;S84m2c)E1)Sru`P>CQKi+^2yhW(U?OP54~=VzW+~;C9vTmD0zi`< zDC4B4>iUb&hyFw7IhvD5--YUA0MiFvqu*z3dJyO1m9KE!BkvY!03Xd|=KB@{u7Vxl zO0>tYT2RW>MQsv;4{_Fc7;u*uYD~~G1P0tnGdWpWYhGhb(h7QlGjwRY$4G1r{G=eL zgu_aCP^CluFA8Q6CvCGH1Dxv9WQpZmrH0o7FPnOM2R4-8SAfpw3Rbl1GI}@t2e(x* zTFwPjYBa($-5OS#TB7`kjg5K&ps%kfg?<|sTCzNF@0jNc(Gzb{rza+ z=;bYY2F@$$HT4-b*`z7T=jy9;Jyt0;r=sn+V*V|KxSH5IvWC+86bGz2cFNZyO2VLyJ(`gK9Sp>+Sju5_)7R*6$nL#>8hq^H*BzikJj`Y7(o@Rc4Bo3VK z(4`*qExOym*o2}Lz3Qst;_~qP{rFpRHG<~(5B4+uI;iR(p;*{S)XbQi!boVKXyt>H zHFQ}Dj$UUT^?%zM$GX=hraE}a0hsPTk*)kC$*$-7wUsqJHSn@^T@1G{XP&>@vCs%N z0l+=7Z(j<&O?|fx)eMCGOZbhP`_@maN%Z#l`yV{V0lLw@0pYp70=o@xN$lpUsHpYV zRr{)Ev0Kf2f`8T5RaAqh{ZGj4Lyq3cVOvh#BprurM`s`#pVz!<7P8$hEZNp`dUdTn z=$AuX%95T{wA#LeA6&{$q;VQh*Pl73l!yV%M_k_;dw9B?#~*h)-x4KpdaE!PQ?&yt z3V__h2GG_RC+GlK;_Lk39-!)t-xZh=@ZF;x)ERJhtZ`#dQJ#6NG1tzwd?8@Fh9~x! zB-MQ;&&y6!`##)Nd8yne#o~-~8&S3U-uxVn6z4w1SFm1<@*PDv?v9pi=FL|MsB*yp z^VpB4Y?eCj^MoGeR>ZWi=fymZ3o6>)k4HWmTU3A_0zgklqiMO<^X4CLAW6lmGU;=< zXYoYe)JF;pscSgWqXHaGcksO(ynQ7vNgzSM;?bbEmT%ODgZ(iaeH;rb3|?ek&zGb? z;i2(_oS66}L$^>65=KZ2W;y^Cal)?kBb_9E`Hux%-W=Wg&HOhxv7B?wHz`v66JTx8 zs4^7bIA|R0rD6%k*9ll4U9bI60KlruALmd2o?B#PM7UyKE(hi0{(Ush;xxHEWeLs+ zH9$`E54+FdR&L`0Hmj}}VWoLNhUF0=y9>C1vDQzC!ar=1!biSAr1tXsuVprUlx9DJ zcc3E!kG}Q7#BD?_UMGC;4HOQy_&jg!!h(s|7YR-jEF&Hdca8_PnPgS$<8tc6lLR0h zbEY!4;b=w$w2>5l)uod7bLA*ccM~aZt~JDA`#n8Cm=ssbl7$A zf>Q+!4SK2G(ZAMSSe{dM)V zzD?cf4u3^$wXgo}?)0V%_O-U_=XPw0Eot`+`GK0cR&-VRY2&xL(+g6ZSPizU@Lh+u z!KcWQ{9k8vtej)H#x!7ve-=0p|FM?VYWb9gf21|<&UWvy?7O}5I#aN}<-X#}vqx^Q zJ4DWq!uId-AOpIsoJi)O{crI*THeXOEqmkBlPWQC*9rn)$ku#an0{Ma^R{SGqT+^Z zT&M@tM1~d1?9lkbr<$Fp zN=&biU;1EJ+$Nf~DwCDsrMA((vR_kWc}Tn_(~(pJVx5;!U-5vzL7}jf5xq6r1dU?x z$V>S#8zil65ugyPJCjcAO=Sfx|BOJsAD~@)57Vxup zLKfE_Rqc*!Zb`pPgAHrU`#b4FB*MQp`LnXi1RUvspN_tH@Mh61S%AeuCL>W#dveVVD+J5AemVSGqPyi05MX_mf=ZZpOkJjWei&35w=g-YH zMPlOb?CwzzCMBwm26GQ)6NC22uMs8x4&LdJdSx}@5tmx68dj`l_y#FQY>Ng_dgMzhjAwCW~ zL>>7biDrkqn@FA4&_?lyz1@iu5MvJ0pz3`hwvZrqOM`|~vhg=lBl3P{1h4}wy5;Yk=|mTA<8xoMnHCz; zW-I=bnXOVqJw%MkdVl4nyLd-!U2R3R|L(i^rXJpX7jLSEB0)S4WLl5&sa2mVNp$*pwhy&;^y=L;OV-hfujEs}AO@rLLDX|d=>Na)DW>ks3iIZ(Rwre7 zsN*TP4xA1wC(&J3ewjrb)7BGmPZ-TBJj0QSE%R1`mW0(Fz-T?Lrr19!r{yuCm{&L$ zv64cTS`Y9w?j-;s=!!Ro%&7LDFSN>vGwf67m3cKzg{f{zklsf;mGg)by1pDzm6{xa zjWMJ~D;>naAaUQjFG#YGiX9t z!hvC_WqYb{VzjXEn8r{sx&b&oNvh>OzMO8Ff8KF0ZK!lT`2G}E02b9ME{RdUoAFWK#Q3L&a zo&zoxK>WDCY@$IWEOj2T2AM$>c-N#GW2ZQn&X6#QEUi1H-!-5Au6gq;=Egqlm%~ia zipKg5-4-4DoHJB?>eI2m2~3}$H;lZv>sON>b5JJeKdcZY6wlbF1+&t`M#>2*p9=}VmK2U659T~z;qFMbJ1H)Dd`O)CO)i#3({BK%e(=g_`0PN zzqc|8LK=SEU;5k)r7;QD2kq)k;jP>^(EtN0)fnqDmgRoy$~ zx72bWWpFB3xQ0x?wWLuUb}4-~1R0&a70?$S(gJ-_UR zIV}Tu7t3o=tt^T)>9__uY?|)f9;f@w%I+Ct&@W@45?n@Wrd`VISW}u== z&D-l=224DexjVP$)R7|KY;`q`M-rWxB<9MhhBdbw>@d#sWKG|5j>}yQNea3+jBn=o z%Jgo4n{!Gx1|F9U6C6jwd=|=eREeni{4S!8>_~}sOcK^6o^frhKiM>B1pXi}xnR!_ zE|?nk-61doI&iWzsd%`)>048I8*xD7g#viwPNFG)K)Hcr=yt$tAA{xREf4N-Cl z&n|9QRazF0dac-qkRVoMjeOAg5gD}cB-*k9^#xwA{aP`1F5me88QygO{lF_=@q}%{ z;f>}n7gT$4=H*^uX+H?JL{aCPd-GOsVKq{`C>y-=QKC#OC+_XHA|L@OAV;n)wE)-d$zZEU)h42H2M0g? zgNP7P<%IWo!a;J|+fIUXCyDHr*&*1U;b3nM$LM(`sduEY=zx7bn9luAh}Vb@jW_(7 zO#Xa&S!T_$%(A@}dww>|CD%8_i!A%rGaOLvg<91bmJItD*67wutd0Cjc}6r7S%@DD zp$D}Nf}4EZgpPj_(f5~Q-?quL#8pK!yC+M$Hybxr*Tvm7vKeudKI(HykTii1#D8$6 z%B53Rz*%*>GHEvH693ARW%z5;4|(^F?3y3(CZ8mJDsphb@egcX@oYZ-MI3|v@Iju@ z#Hp1He@YkAdGS1+gwDTDu*b9EkG;V=04gCSlop7a1nv8Cp1a1?soplxtvoQW$F)nq z-8EWP&uXBB&_HM8PtoHjE6p-N{+!oPG^e0A7*s-P_*8l2#1{^5E_ma)RTlKH-d@;4 zuZwmY(f4#Q7I}9jRt3}tF=Q)5QHjVyYQ%^rFQ8b8m5%G6v4eOv>T$$g^u%yjIc+l{ zInhLUFH$Dq;Rb0?)=J9D&2tOk9$;||m!2w_vjttc1$JVB#h`NW8B@4Rj#N)r7-ZgsA{%+2J>wWJQ zG65_l#7=k9W!*HeTg-BhSng6m_L-u3%a4eDc;4Pn@lP|s4FkEP(efAi*XdVj<*QWu z9n=?NaBQc5-5(aeGuIVjXh-k2KMUtV3F{LTXoMkvs$Sh|`-UlCjNRR0LTz}~?R`HD zYH@pQS-zF)HTvwow4)}RMYo(qWtV_*ZA>h|UQ#|Y1vSwJp=jg9<}2;@1tyCAakU(J>0uyPVp_-#u_-0 zU311RpZ=I``Iw6BqDhXr$DD!PBvJN0hwa%`bIzQRY4MeL-tr_rvK_RqBox`>v1GwW)xut98v_C<=I#cNJJ%^O|Gf`&2YTbvk>2}9E+~q z_9cdVJh}$90|>yCqpwU&G3w6TimL%R8`*ZTp|A`(OXV|oLPP; z6PpISQKlc~ET%uMk-k3>H%NzzKjgh2jpV*b(m>xphTy+k$=u_UoFWY-b=a&W~I zQm2!G9G8Q6SD~2{2g>&?P2ydR1*m47D)ZM$js>$=!A1@boED)VR~{l7=H~=p_>iv= zs7wwfNt#aE+P`gzsML-C9QcDv^{1CMhH%Gv<=IM)i^x2Jo}_nKlu>ylDLhU%=kIpl zG$AttoK|Fd!b<&mVgyd0FF^OW9NKllZM2(IUDZ3jJqmHE{EBF`@2X!f&n{ z95dOscO9wh+s2OtP#nGWkrIXulLjyh!?X%dG7!hS4}_Ki-*5m{!8fH3HKyE2=re8b z3ZM}b#eo$PSjU?smU@B-tmy5xS()Lxv1jVwJ5NM1kCMcC)pbk5@6Ly-GZ zm?iR<*Pe<(=Mi8!*|m&zZ%DZp2)=aU-e4s|-C@Z{ z*Mj|%rPrY0z{G`OQ@>*=V6j>b!3Wy~pr1uVT~^qw(21LWLl!GTICeCmLB*SDr}Bzf zJmLf%3G^uHNQJ3n%}6I#DmBP=qJI?K9I%t<$V<4iEw>0zWTLK5_jHrqk@tu+>9H~g zRksCAC?;FDXrIBK)d+y3#rmSMhHUF<7>ceNY1Ab5$&dQ(1&4~tiK3$B(@EPBmhsV~ zlIEFo1&jZ(>k(^`NV=}8zX~Pkm$2EPh)Yw?m=YTQdh``J`F+4m>q{{QC6}B6K6>A+a z1Rmss>uGKfRpxQFSNf8)uK55F+Q9ERen`3-_^$bF9O~fsOa6<@+0C1XvrC2bCzY6Q zX!wj+5nz_XQK|ZC^lmX4U7d*|U zl5>yoUzMEGGV7Abx%&Ew+RC~*zsG%eVm38b>947t6>275*`S2}Yi{nNOnR#m$_H|D z{~DWncgBM~{7LiLSr7Kt+3GSVvR$EWZCh(qD7t16igeO76le`B^J619EucFbC0Q%hzIml zJel|Nd;ftLER+|WE||#lDA8WDP{_Bd6@!i+Sw!?BN5rF<0$S!!{aHmTh%)tY(c3Um zKUqk6eaOOzt2w;W*n2D$XNt-bS8~$Un7G&?ZpS$l$BJ|@U$FT>k`5wCi~hevi7WQ2 z;U?u?$kAJD#ZA^U3G@?RgXL7TnwB+x4!ZvdL3xVUT48Q_#2k))JNIK@!KYbd_@yx} zW`rj4#WWF&Q8aVKRJ5&R&@`-y;Dk(W7FR+f%`LH5aT?uGo6PFsb8fe4aWaVY08g1ApFo2hMv% z1p<84m7Ctl5d1aum302??_@OHknzDgq;l%*N8kBUmhaP!t9RedhCzNl>piIuaO#$? z9tf@O8SY-U=^WYsh<)EzAZ!*Y!-YQXJQe)ENxrlH8?gS`KPUPA*?B5BHW0Gi$`S|$ z-Pw<2mdZz^kTyO>=ncXP%c-5X0YsL?wa|94llx;)RCgdRiJxD1%%JLHx{QrKoB1OQ z27}&XOD7d$;7K`Q(2liiR3tTEqT@>ljUY9o>b6r$n0M03@?{~_d?8()g6+6hise=$ zf_r;4#e9OmfHlo>q`+6+)lO)BOnj%4Z2(eIigYKd0K--ZdSziUXoqg4hUps>$GtNo z6K$76?_-7#Ei0HE`Y5^=urZKxH=r~vBD(FI^API;Hv7MgP6V=M;A7rrkVnx>?;={@ zG?Ni7S5M0Tu5JzU#U3_MF#{kq`aQ=W+f)hHqbM>n7?R#gVx^EGP@Mx;SF=ZE*mp_jMdu3=)N1pa$vwuzYCYf;FudapJW|xT_@7*#N?=UdTlXcC2f!1e^YOHm z*~`ykVAEf+)IF&7#k8cQ^QFOx)?bsZ@`EgPpClvl#_n&Mf=2x>tXKgxOI;acjqhdi zMBqtW(AIWq7dvEnl5c@YYO{GrU*|pW^MT`AzD+7yPIW?*X4Knuu`dSKEv9;VX-6wT z(2H@rygNLM8ZnN?xRLAQq9^D{0lNb&1503;N*MRgyOS)J*PEmg{&ADPl)ebfrsHB_ z?x99uWX5ugD0x>QFCIo%r{$?Hg_B(`SeIhK_W0)e<8&a$;@v@QWe{>l6nb^T#nc0k z!U))q1b~!RK>t<&({jeG@=EJQyZ}zXEj87)`_SFAU8_mo$P<8B^eHG)EiHGBHZxIJ z5g3IvKWlRD=v*I(&Uj39{|>zDTR-D5U49_WVq+r%*uY;A8=J^XCI0K{>uM^iDr#me zrWx$wudVm{G1c=wnM_x}WJ)0y|9?U*yS{cDxqR0VT|c-X8i{Y(x~x)LtuO7Mm6KEF zzmh(hBLKQ2MqJZV=@(3;CzaloNoz7V+?s2Wf`>mOp1^B|->_V><2Mt1Ad7Kr!U%jH zn)npNn&QKASEDeb2FCZw_nUjY&vnVQ{7#5aaed>i(Y6Y> z_HcAlo`z@gP60$FICU^-P0<1Zg6jlkLf=)rT!xs&ja_W^6Fq4`mAJzZ%)nq*M?4bPM!Tw=62^SC?*ak{APQNO*rRo!fo^rm@p1eT$_{B0IM zA4Ia;D|z$zNX0fSR0-{!FLBbPcMlqFT+5$bNw zTyqiKQwe!j`5THPA_Ifw@7XO}O*<{`DVSBB)}2C$Hv0HW*-a(1=z#k-T<(2b^ifj$ zN#>eE#Qb$%weJki4Dp4L88pOCvc_EKGEv=p9)oIq28#CU6Hl#NNy)<2UvcrKPWhGG z4>QG2gogQMm;dW}iz?3j-^~$!I@1!MTVr$MIL>W8c`W(r& z=9`H-7fWE%cL-uf-Q5dbvOo)M%EX`irc4IY>U}j8)m59CG9A@*^>x0gyPGnbj`HrN z%tz}pkISGB-e2W=)&q?8(kw>95KLS3z`B0lx}m_*Wxi%w_Lcb{Hn7WfBQOYRe@g!R zzs_6y=fU0cZo=i8aph;EPyn$MS%XCRWoMqAS1rj{XvZdd`2*D%s8_6DEpo)R9PU$0E4qme_;#1z?15~P*n(63op2zM%Q4O9FOl* zfx2SiG>PL}KRO$cedvb_+_3>@&v7)zm#5HN&RZq!<3Mgci{@kttML}6g^5w~Y#Q;% zlI0Ll0;lsg5|3+Z>t9<>CW+QRGCvj?o&VbAY06>cxfZpQ9-pf9{a&_9{-o+0lyzzm zx{P43^Y2imuW5JC^DDQ_!Q|<{II8pfopSiIhL?ta4lyD8HxH$rNo1qjq1Y6w6B6c2}5-Nz@ulO*V%qY+OI!_ zD3<4-UCAa6o047vOZa1S6+mU>#lSa}ZxX$CH-$uCmqf zC*A_~1|u=X*k=IdEWaVQADcTl{D87@-I?hmY`f6`_=mnWqFb5R7qav~DbFt%udIv*B>(oa}%?gag=n=Y(!eK83)%3Xa7JVHp0v)Xx!DQ|WYFdPiM4a@^XK zlPII-u1<>caOWf_rT7Mx&C@p*8AL9{8PY2_jF-52>(d3sxm>G|=ujr6tx1qJ)>gMU z`cI-gUA6A?^p|S9?dhcINq<9II`JWpb9#CbphQ=tleW^k%@cMBbAbG_@7>P!2n>Gl zQm*_wu^O`nYV@^la(HjoA(IsG{fZSjHsEbMck!9OEMb#MGYsVZv&Fx1Q%|cL#z&b) zF z1%Rw&%WEfLChN$z+&A;gIS@b3B+=XxdH!C3xmY=_sU~aE!kRjb-=y4Pe?PO~gA9OW z+_S)ta<&uehavaCVUgp9|KRCCtQkQa^nc&diSG%_KX`$84Z9J|#4UoKICbmfkI*}S z@T0+m?mr6okPMc=kF~ck&y&u{lptH1z>m;bq3&B+>r&hD~X;Np7&n_{*mbS zeV-)kzs;npfKY(BbHz6V0g215_D{sWW?F#V`o^j)mcWfAdNThF3aZIt=a>gE9V%ds zJZgRyBHxh*#nH_1!Ld7mcVs;xn|C5xKN++pZIqmrVozp~8JWAI8Tj+wQ3hSAYbv2O zZ#tUc@K@E=)Yjg8G=pdj*JgZjbn1wyqT=UAGuj>%^(Enf#5n^iHf>v8@2l)Ooz`4- zG($2NPQ#F@LNAHu$*DS&VEMxxd3xNA?_3eG@amBg6N~q6r^m_kij>Q)gL_1A!9LhVNxNI zgKX+)87vno2OEZVK#T0)@X!PJ`iTh=xqx4RnaIf!U>7zl3Ff7V`!m^O2GU&WVA(Sq zJ)JG?RPsr0eRcY&jE<)=X2r+D==poo96%gM+gbi%w*mEIX7AY>p)X&JHCkE$qSb1h zd{ews5G^bbuzKWhA<#z8q1zMq#*x#IsEEhxD@8PrxOoAZj5K=tUbnbfq>D+yTtc+5 z<(mTHTaPycMCS}8aovA?uDD6GI4eKOfFju!3;dLRZOwAA*p+RS(QOl_T?P60g%|Db zi>@?lGOt#&=#w<}gBB<=2#O)?$mB9z+P{c_{E6H1DmGPuW@d{0nIx2Zl}&t9w4ZOY zt)O{`DLf&#ujYgRtQqk!>%?38M$4ZoeVwSbQ>{#R*002Sr8O0b4}3b9?bon4J~l$fc=)tw@zkq`jgLmesXiq94iK0 z)j`o^1D2C{0oUI%LYWOrRoY{MLVSsp7_@lwL@CbvF=?xzyJL2YXmr`lCo;cT3l`nu z0EWa;3ru>7`&mjieyX(EP{j{L;(P72=n*Ly-*dDIFo2&M0B*M+3V7iHQY zCKrO@RdYXaJHMs62?ebxGIx(&}1*{fyEC_*xq5tP+_`oW~m!bO2W+B{s)qP(PhDgT2amSg) znhZo-v4Ks$py`2l!&N^1ARKz@!@H%3yaQ1BNz|x;1MlsKQif~ zg~N|fkI5^|-(E2juE4io1-Q&te(BjjtevMcKpZ~`{EXU$4bR_g3x`wCmk|(V6R{CI z7<&lJqJ`{uaC;A=TYdR`}N zlVQ%O41)|8`O^w!#~56@g%J7_-Gr$<%)pj9lhI!(R37o991Dhnq-M)K9Ny0|-=v1~ zE^Bp~G~^1Ync7PrHbawzuZ&@UK3g-gdw9%B`1}N6)I1qTr|08o3$7n)Ph##6kqpoQ z9CgtvL|=9mSv&K%3ibe%na7GS%<9TAS5_ydk68jES$Fuoi1mf#`MY2u0h2e-D@oXx zOXBpr6}`Ak%(G|Ocq)>j^D(m2ztJ_PrjLPOh?=;`uG?Auw(}KRCI1Y%|58O+(b`~} z&$g@YS$eiG2o&Y2aHJ*+T%qJdMBrv(3`|taGBM^*DS$E|WZq7P7LCxUDi!fIOdbTj zM|yVHAyvg=fydg-j77fDSy_lh!n9vJrG{$s_q{(R1vpG7Dw;-vNerpd15DEGh6vkc zyF}`nC7bk2l4yCzTnou~f&^RNuGvC|ALMVApID2n_Fo@v^so62dd^I~W2|?EuwDP{ z$_$g~(D?Nfe@%Zjr}witEQ8svY_qay4Y&CgL^LJ}t;s}<>zCL0*h8PNUykKpzLeZJ z&bt(v>p3QM;UN8USA2Ow;!AS+bNQ23nRiuVLnDvF9z=yT8X3Fv;wLGd1f^`3${#@; zeY^RkG~A}u#^ed~l$S2O_-tZLPHEaU(5rWSZj!Z)-hvda^GF8gU}#-cCUy(hZtBEu zuRqfIr?Dq{??6Ci?6=lr@b}3}5gBKlrnHPb#|lE}WFa1K(mwL~;oSWa(bs&GR>)>& zl5_J?>7TH0Qqyn~UxOsm^c3Ez<{mSY_r{z+w-sD&JSpEdEF?lZyzkL;o4&Ce0AWWb z(t>KvjA!4#jY-Ut`sZieY~*Gv`z!G15sxL$3h7%{?OVU{X*XG^r`@3D`)Xm)Bg&KF zTFLPWe|2R|ef|H!w9Gd*T#0Ahq?GTfe}=+5-Yo#|(%EhurNOV&A(^&~Pk{Q`+QRKXE0z0K@ee35nO(scF~g#0NZ z`2mj)?RcFq^D4yu*{d9{8oU!tslIVzoKR zTH8Ef_rj|e$BAycYN ROw&0S7@2f98JKlh>;VZ@FyjCK literal 0 HcmV?d00001 diff --git a/packs/traumatismes/000126.log b/packs/tables/000041.log similarity index 100% rename from packs/traumatismes/000126.log rename to packs/tables/000041.log diff --git a/packs/tables/CURRENT b/packs/tables/CURRENT index e417a51..e2c0c4b 100644 --- a/packs/tables/CURRENT +++ b/packs/tables/CURRENT @@ -1 +1 @@ -MANIFEST-000018 +MANIFEST-000040 diff --git a/packs/tables/LOG b/packs/tables/LOG index 46f78ad..3e7725a 100644 --- a/packs/tables/LOG +++ b/packs/tables/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.262019 7f3e023f3640 Recovering log #16 -2023/09/07-17:43:25.273130 7f3e023f3640 Delete type=3 #14 -2023/09/07-17:43:25.273157 7f3e023f3640 Delete type=0 #16 +2024/04/21-11:00:14.969 40b8 Recovering log #38 +2024/04/21-11:00:14.975 40b8 Delete type=0 #38 +2024/04/21-11:00:14.975 40b8 Delete type=3 #36 diff --git a/packs/tables/LOG.old b/packs/tables/LOG.old index ff1707b..60ed8ce 100644 --- a/packs/tables/LOG.old +++ b/packs/tables/LOG.old @@ -1,8 +1,8 @@ -2023/09/07-17:42:45.340398 7f3e01bf2640 Recovering log #12 -2023/09/07-17:42:45.348853 7f3e01bf2640 Delete type=0 #12 -2023/09/07-17:42:45.348878 7f3e01bf2640 Delete type=3 #10 -2023/09/07-17:43:21.901412 7f3df7cfb640 Level-0 table #17: started -2023/09/07-17:43:21.901429 7f3df7cfb640 Level-0 table #17: 0 bytes OK -2023/09/07-17:43:21.905137 7f3df7cfb640 Delete type=0 #15 -2023/09/07-17:43:21.915980 7f3df7cfb640 Manual compaction at level-0 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end) -2023/09/07-17:43:21.919676 7f3df7cfb640 Manual compaction at level-1 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.629 3594 Recovering log #35 +2024/04/21-08:39:21.634 3594 Delete type=0 #35 +2024/04/21-08:39:21.634 3594 Delete type=3 #34 +2024/04/21-10:20:47.356 5c50 Level-0 table #39: started +2024/04/21-10:20:47.356 5c50 Level-0 table #39: 0 bytes OK +2024/04/21-10:20:47.358 5c50 Delete type=0 #37 +2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end) +2024/04/21-10:20:47.364 5c50 Manual compaction at level-1 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end) diff --git a/packs/tables/MANIFEST-000018 b/packs/tables/MANIFEST-000040 similarity index 87% rename from packs/tables/MANIFEST-000018 rename to packs/tables/MANIFEST-000040 index 343cf9a77a76c52a3bb0f5af2efc9893c315bb62..8c4c7478e79057e1541b69c9cdcbb116f2fb5e98 100644 GIT binary patch delta 22 dcmbQlIEisWGe1LTb_NFnBar delta 22 dcmbQlIEisWGr#w5r&bOIMkZlS24)c!IRHsS1hxPG diff --git a/packs/traumatismes/000148.log b/packs/traumatismes/000148.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/traumatismes/CURRENT b/packs/traumatismes/CURRENT index 70936fe..1021bdc 100644 --- a/packs/traumatismes/CURRENT +++ b/packs/traumatismes/CURRENT @@ -1 +1 @@ -MANIFEST-000125 +MANIFEST-000147 diff --git a/packs/traumatismes/LOG b/packs/traumatismes/LOG index e07c50e..37822d5 100644 --- a/packs/traumatismes/LOG +++ b/packs/traumatismes/LOG @@ -1,3 +1,3 @@ -2023/09/07-17:43:25.274840 7f3e01bf2640 Recovering log #123 -2023/09/07-17:43:25.292451 7f3e01bf2640 Delete type=3 #121 -2023/09/07-17:43:25.292504 7f3e01bf2640 Delete type=0 #123 +2024/04/21-11:00:14.935 56d0 Recovering log #145 +2024/04/21-11:00:14.939 56d0 Delete type=0 #145 +2024/04/21-11:00:14.939 56d0 Delete type=3 #143 diff --git a/packs/traumatismes/LOG.old b/packs/traumatismes/LOG.old index d40eba6..b23e8e7 100644 --- a/packs/traumatismes/LOG.old +++ b/packs/traumatismes/LOG.old @@ -1,7 +1,7 @@ -2023/09/07-17:42:45.351565 7f3e023f3640 Recovering log #119 -2023/09/07-17:42:45.359682 7f3e023f3640 Delete type=0 #119 -2023/09/07-17:42:45.359722 7f3e023f3640 Delete type=3 #117 -2023/09/07-17:43:21.925366 7f3df7cfb640 Level-0 table #124: started -2023/09/07-17:43:21.925434 7f3df7cfb640 Level-0 table #124: 0 bytes OK -2023/09/07-17:43:21.928599 7f3df7cfb640 Delete type=0 #122 -2023/09/07-17:43:21.932611 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) +2024/04/21-08:39:21.598 5300 Recovering log #142 +2024/04/21-08:39:21.602 5300 Delete type=0 #142 +2024/04/21-08:39:21.602 5300 Delete type=3 #141 +2024/04/21-10:20:47.353 5c50 Level-0 table #146: started +2024/04/21-10:20:47.353 5c50 Level-0 table #146: 0 bytes OK +2024/04/21-10:20:47.354 5c50 Delete type=0 #144 +2024/04/21-10:20:47.355 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end) diff --git a/packs/traumatismes/MANIFEST-000125 b/packs/traumatismes/MANIFEST-000125 deleted file mode 100644 index dd0249f7d441d7b633bda8b1388a18c7cdd29eee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$o8T_IEfK7@6ug8JO!? F7y#>55p4hf diff --git a/packs/traumatismes/MANIFEST-000147 b/packs/traumatismes/MANIFEST-000147 new file mode 100644 index 0000000000000000000000000000000000000000..201e8ae2e81b73a3f3357c7c771be9562547720c GIT binary patch literal 52 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$nG|=Pz+FFfvVH.list-row { + line-height: 24px; + padding-top: 3px; + font-size: 2rem; + text-align: center; +} + +.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row:last-of-type { + padding-right: 4px; +} + +.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row.active { + color: #000; + font-weight: 700; +} + +.system-vermine2047 .sheet.actor form .tab { + flex: 1; + overflow: hidden; +} + +.system-vermine2047 .sheet.actor form .tag-legacy { + float: left; + margin: 0 2px 2px 0; + padding: 0 3px; + font-size: var(--font-size-10); + line-height: 16px; + border: 1px solid #999; + border-radius: 3px; + white-space: normal; + font-weight: 500; +} + +/* ---------------------------------------- */ +/* Actor Sheet */ +/* ---------------------------------------- */ + + +.system-vermine2047 .sheet.actor, +.system-vermine2047 .sheet.actor .window-content { + min-width: 690px; + + +} + +.system-vermine2047 .sheet.actor .sidebar { + width: 230px; + min-height: 518px; +} + +.system-vermine2047 .sheet.actor .floatright { + float: right; +} + +.system-vermine2047 .sheet.actor .sheet-upper { + height: 268px; +} + +.system-vermine2047 .sheet.actor .sheet-upper .sheet-header { + height: 48px; +} + +.system-vermine2047 .sheet.actor .sheet-upper .sheet-profile, +.system-vermine2047 .sheet.actor .sheet-upper .sheet-showcase { + height: 220px; +} + +.system-vermine2047 .sheet.actor .sheet-content { + padding: 4px; +} + +.system-vermine2047 .sheet.actor .sheet-sidebar { + height: calc(100% - 48px); + display: flex; + flex-direction: column; + flex-wrap: nowrap; + overflow-x: hidden; + overflow-y: auto; +} + +.system-vermine2047 .sheet.actor .sheet-sidebar>* { + flex: 1; +} + +.system-vermine2047 .sheet.actor .sheet-sidebar .sidebar-summary { + overflow-y: hidden; +} + +.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper { + height: 220px; +} + +.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper .sheet-showcase { + height: 172px; +} + +.system-vermine2047 .sheet.actor.npc-sheet .sheet-lower { + height: calc(100% - 220px - 32px); +} + +.system-vermine2047 .sheet.actor .sheet-navigation { + border-top: 1px solid var(--secondary-background); + border-bottom: 1px solid var(--primary-background); +} + +.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row { + border-radius: 5px 5px 0 0; +} + +.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row.active { + border: 1px solid #666; + border-bottom: none; + /* box-shadow: 0 0 10px inset #ff6400; + */ + background: var(--primary-background); + color: #fff; + text-shadow: none; + + color: #000; + text-shadow: 0 0 10px #00005a; + cursor: pointer; + +} + + +.actor.sheet nav.sheet-navigation { + display: inline-flex; + justify-content: space-around; + align-items: center; + height: 54px; + background: url(../assets/images/ui/barre_haut.webp) no-repeat right top; + background-size: 100% 100%; + width: 100%; + position: relative; + padding-right: 4rem; + font-size: 1.4rem; +} + +.actor.sheet nav.sheet-navigation.tabs .item { + height: 2.4rem; + display: inline-block; + z-index: 1; + transition: all 0.1s ease-out; + color: #606060; + box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.404); +} + +.actor.sheet nav.sheet-navigation.tabs .item:hover, +.actor.sheet nav.sheet-navigation.tabs .item.active { + color: #000; + text-shadow: 0 5px 5px #1fa832; + cursor: pointer; + +} + +.actor.sheet nav.sheet-navigation.tabs .item:hover { + text-shadow: 0 5px 5px #1e52259a; + +} + + +.system-vermine2047 .sheet.actor form nav.sheet-navigation.sheet-tabs { + height: 54px; +} + +.system-vermine2047 .sheet.actor .ability { + padding-right: 0.6rem; + font-size: 0.8rem; + border-bottom: 1px solid rgba(170, 170, 152, 0.664); + box-shadow: 0px 0px 15px rgba(128, 128, 128, 0) inset; + transition: 0.2s; + position: relative; + + &:hover { + box-shadow: 0px 0px 15px gray inset; + } + + label { + min-width: fit-content; + + } + + span { + max-width: fit-content; + margin: 0 1rem; + + flex: 0.5; + + &.hexa { + text-align: center; + clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%); + background: radial-gradient(circle, rgba(255, 255, 255, 0.425) 0%, rgba(0, 0, 0, 0.288) 100%); + max-height: 1.2rem; + max-width: 1.2rem; + aspect-ratio: 1/1; + color: black; + vertical-align: bottom; + } + } + + div.specialties { + position: absolute; + bottom: 0; + font-size: 0.7rem; + } + + + + .skill-dots { + height: 100%; + align-self: center; + flex: 1.5; + + &>div { + + max-width: 0.7rem; + height: 0.7rem; + aspect-ratio: 1/1; + border-radius: 50%; + font-weight: 700; + text-align: center; + padding-bottom: 0.2rem; + font-style: oblique; + align-self: flex-start; + + + &.dice-pool-dot { + background: radial-gradient(circle, rgba(94, 90, 77, 1) 25%, rgba(0, 0, 0, 1) 100%); + max-width: 0.7rem; + aspect-ratio: 1/1; + border-radius: 50%; + } + + &.dice-reroll-dot { + background: radial-gradient(circle, rgb(187, 182, 165) 25%, rgba(0, 0, 0, 1) 100%); + + } + } + } +} + +.vermine2047.sheet.actor input[type="radio"] { + &::after { + content: " "; + display: block; + width: 0.8rem; + height: 0.8rem; + background: radial-gradient(circle, rgba(217, 214, 204, 1) 0%, rgba(217, 214, 204, 1) 40%, rgb(85, 85, 85) 60%); + border-radius: 50%; + ; + + } + + &.checked { + &::after { + content: " "; + display: block; + width: 0.8rem; + height: 0.8rem; + background: radial-gradient(circle, rgb(75, 74, 74) 0%, rgb(27, 39, 28) 60%); + border-radius: 50%; + ; + + } + + } +} \ No newline at end of file diff --git a/scss/style.scss b/scss/style.scss new file mode 100644 index 0000000..5615f84 --- /dev/null +++ b/scss/style.scss @@ -0,0 +1,539 @@ +@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"); + +/* Global styles */ +.window-app { + font-family: "Roboto", sans-serif; + box-shadow: 0px 0px 30px rgb(69, 78, 44); +} + +.rollable:hover, +.rollable:focus { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} + +.grid, +.grid-2col { + display: grid; + grid-column: span 2/span 2; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + margin: 5px 0; + padding: 0; +} + +.grid-3col { + grid-column: span 3/span 3; + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.grid-4col { + grid-column: span 4/span 4; + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.grid-5col { + grid-column: span 5/span 5; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-6col { + grid-column: span 6/span 6; + grid-template-columns: repeat(6, minmax(0, 1fr)); +} + +.grid-7col { + grid-column: span 7/span 7; + grid-template-columns: repeat(7, minmax(0, 1fr)); +} + +.grid-8col { + grid-column: span 8/span 8; + grid-template-columns: repeat(8, minmax(0, 1fr)); +} + +.grid-9col { + grid-column: span 9/span 9; + grid-template-columns: repeat(9, minmax(0, 1fr)); +} + +.grid-10col { + grid-column: span 10/span 10; + grid-template-columns: repeat(10, minmax(0, 1fr)); +} + +.grid-11col { + grid-column: span 11/span 11; + grid-template-columns: repeat(11, minmax(0, 1fr)); +} + +.grid-12col { + grid-column: span 12/span 12; + grid-template-columns: repeat(12, minmax(0, 1fr)); +} + +.grid-start-2 { + grid-column-start: 2; +} + +.grid-start-3 { + grid-column-start: 3; +} + +.grid-start-4 { + grid-column-start: 4; +} + +.grid-start-5 { + grid-column-start: 5; +} + +.grid-start-6 { + grid-column-start: 6; +} + +.grid-start-7 { + grid-column-start: 7; +} + +.grid-start-8 { + grid-column-start: 8; +} + +.grid-start-9 { + grid-column-start: 9; +} + +.grid-start-10 { + grid-column-start: 10; +} + +.grid-start-11 { + grid-column-start: 11; +} + +.grid-start-12 { + grid-column-start: 12; +} + +.grid-span-2 { + grid-column-end: span 2; +} + +.grid-span-3 { + grid-column-end: span 3; +} + +.grid-span-4 { + grid-column-end: span 4; +} + +.grid-span-5 { + grid-column-end: span 5; +} + +.grid-span-6 { + grid-column-end: span 6; +} + +.grid-span-7 { + grid-column-end: span 7; +} + +.grid-span-8 { + grid-column-end: span 8; +} + +.grid-span-9 { + grid-column-end: span 9; +} + +.grid-span-10 { + grid-column-end: span 10; +} + +.grid-span-11 { + grid-column-end: span 11; +} + +.grid-span-12 { + grid-column-end: span 12; +} + +.flex-group-center, +.flex-group-left, +.flex-group-right { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + text-align: center; +} + +.flex-group-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: left; +} + +.flex-group-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: right; +} + +.flex-align-left { + align-items: flex-start; +} + +.flex-align-right { + align-items: flex-end; +} + +.gap-xs { + gap: 2px; +} + +.gap-sm { + gap: 4px; +} + +.gap-md { + gap: 8px; +} + +.gap-lg { + gap: 16px; +} + +.flexshrink { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.flex-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.flexlarge { + -webkit-box-flex: 2; + -ms-flex: 2; + flex: 2; +} + +.align-left { + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + text-align: left; +} + +.align-right { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + text-align: right; +} + +.align-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + text-align: center; +} + +.system-vermine2047 .item-form { + font-family: "Roboto", sans-serif; +} + +.system-vermine2047 .sheet-header { + -webkit-box-flex: 0; + -ms-flex: 0 auto; + flex: 0 auto; + overflow: hidden; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + margin-bottom: 10px; +} + +.system-vermine2047 .sheet-header .profile-img { + -webkit-box-flex: 0; + -ms-flex: 0 0 100px; + flex: 0 0 100px; + height: 100px; + margin-right: 10px; +} + +.system-vermine2047 .sheet-header .header-fields { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; +} + +.system-vermine2047 .sheet-header h1.charname { + height: 50px; + padding: 0px; + margin: 5px 0; + border-bottom: 0; +} + +.system-vermine2047 .sheet-header h1.charname input { + width: 100%; + height: 100%; + margin: 0; +} + +.system-vermine2047 .sheet-tabs { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.system-vermine2047 .sheet-body .tab, +.system-vermine2047 .sheet-body .tab .editor { + height: 100%; + min-width: 100%; + +} + +.system-vermine2047 .sheet-body .tab .editor { + min-height: 75px; + margin-bottom: 1rem; + + min-width: 100%; + + + .editor-content { + min-width: 100%; + min-height: 3rem; + } +} + +.system-vermine2047 editor:hover .editor-edit { + display: block; +} + +.system-vermine2047 .tox { + min-height: 25vh; +} + +.system-vermine2047 .tox .tox-editor-container { + background: #fff; +} + +.system-vermine2047 .tox .tox-edit-area { + padding: 0 8px; +} + +.system-vermine2047 .resource-label { + font-weight: bold; +} + +.system-vermine2047 .items-header { + height: 28px; + margin: 2px 0; + padding: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + font-weight: bold; +} + +.system-vermine2047 .items-header>* { + font-size: 14px; + text-align: center; +} + +.system-vermine2047 .items-header .item-name { + font-weight: bold; + padding-left: 5px; + text-align: left; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.system-vermine2047 .items-list { + list-style: none; + margin: 0; + padding: 0; + overflow-y: auto; + scrollbar-width: thin; + color: #444; +} + +.system-vermine2047 .items-list .item-list { + list-style: none; + margin: 0; + padding: 0; +} + +.system-vermine2047 .items-list .item-name { + -webkit-box-flex: 2; + -ms-flex: 2; + flex: 2; + margin: 0; + overflow: hidden; + font-size: 13px; + text-align: left; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.system-vermine2047 .items-list .item-name h3, +.system-vermine2047 .items-list .item-name h4 { + margin: 0; + white-space: nowrap; + overflow-x: hidden; +} + +.system-vermine2047 .items-list .item-controls { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; +} + +.system-vermine2047 .items-list .item-controls a { + font-size: 12px; + text-align: center; + margin: 0 6px; +} + +.system-vermine2047 .items-list .item { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 2px; + border-bottom: 1px solid #c9c7b8; +} + +.system-vermine2047 .items-list .item:last-child { + border-bottom: none; +} + +.system-vermine2047 .items-list .item .item-name { + color: #191813; +} + +.system-vermine2047 .items-list .item .item-name .item-image { + -webkit-box-flex: 0; + -ms-flex: 0 0 30px; + flex: 0 0 30px; + height: 30px; + background-size: 30px; + border: none; + margin-right: 5px; +} + +.system-vermine2047 .items-list .item-prop { + text-align: center; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; + font-size: 12px; +} + +.system-vermine2047 .items-list .items-header { + height: 28px; + margin: 2px 0; + padding: 0; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + font-weight: bold; +} + +.system-vermine2047 .items-list .items-header>* { + font-size: 12px; + text-align: center; +} + +.system-vermine2047 .items-list .items-header .item-name { + padding-left: 5px; + text-align: left; +} + +.system-vermine2047 .item-formula { + -webkit-box-flex: 0; + -ms-flex: 0 0 200px; + flex: 0 0 200px; + padding: 0 8px; +} + +.system-vermine2047 .effects .item .effect-source, +.system-vermine2047 .effects .item .effect-duration, +.system-vermine2047 .effects .item .effect-controls { + text-align: center; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; + font-size: 12px; +} + +.system-vermine2047 .effects .item .effect-controls { + border: none; +} + +.chat-message .message-header { + line-height: 20px; + color: white; + text-shadow: 0px 0px 5px black; + background: #1918135e +} + +span.game-mode { + font-family: "DistressBlack", + sans-serif; + + position: absolute; + margin-left: auto; + color: transparent; + top: 1rem; + z-index: 900; + width: 55%; + text-align: center; + text-transform: uppercase; + font-weight: 900; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.767) 0%, rgba(0, 0, 0, 0.61) 17%, rgba(0, 0, 0, 0.548) 19%, rgba(222, 255, 221, 0.575) 24%, rgba(255, 255, 255, 0.637) 43%, rgba(0, 0, 0, 0.486) 47%, rgba(254, 255, 254, 0.466) 50%, rgba(0, 0, 0, 0.699) 63%, rgba(134, 160, 137, 0.479) 64%, rgba(213, 248, 210, 0.493) 100%); + background-clip: text; + + &#game-mode-1 { + color: rgba(235, 218, 143, 0.8); + } + + &#game-mode-2 { + color: rgb(131, 248, 131); + } + + &#game-mode-3 { + color: rgba(245, 124, 124, 0.8); + } +} \ No newline at end of file diff --git a/scss/vermine2047.scss b/scss/vermine2047.scss new file mode 100644 index 0000000..dc26a94 --- /dev/null +++ b/scss/vermine2047.scss @@ -0,0 +1,2 @@ +@import "./base_work.scss"; +@import "./style.scss"; \ No newline at end of file diff --git a/system.json b/system.json index f2a4f0a..f4c4905 100644 --- a/system.json +++ b/system.json @@ -18,7 +18,6 @@ "module/vermine2047.mjs" ], "styles": [ - "css/style.css", "css/vermine2047.css" ], "languages": [ @@ -27,6 +26,12 @@ "name": "English", "path": "lang/en.json", "flags": {} + }, + { + "lang": "fr", + "name": "Français", + "path": "lang/fr.json", + "flags": {} } ], "packs": [ diff --git a/template.json b/template.json index 654349a..72ac5b2 100644 --- a/template.json +++ b/template.json @@ -1,37 +1,44 @@ { "Actor": { - "types": ["character", "npc", "group", "creature"], + "types": [ + "character", + "npc", + "group", + "creature" + ], "templates": { "base": { "minorWound": { - "threshold":1, - "value": 4, - "min": 1, + "threshold": 1, + "value": 0, + "min": 0, "max": 5 }, "majorWound": { - "threshold":4, - "value": 3, - "min": 1, + "threshold": 4, + "value": 0, + "min": 0, "max": 4 }, "deadlyWound": { - "threshold":8, - "value": 2, - "min": 1, + "threshold": 8, + "value": 0, + "min": 0, "max": 2 } } }, "character": { - "templates": ["base"], + "templates": [ + "base" + ], "identity": { "height": 0, "weight": 0, "totem": "", "age": 15, "ageType": 2, - "profile": "", + "profile": "", "theme": "", "instincts": "", "prohibits": "", @@ -41,15 +48,15 @@ }, "equipment": { "description": "" - }, + }, "attributes": { "xp": { "value": 0, - "max":10 + "max": 10 }, "reputation": { "value": 0, - "max":10 + "max": 10 }, "self_control": { "value": 0, @@ -57,56 +64,56 @@ "max": 5 }, "effort": { - "value": 0, + "value": 0, "min": 0, "max": 5 } - }, + }, "abilities": { "vigor": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "physical" }, "health": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "physical" }, "precision": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "manual" }, "reflexes": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "manual" }, "knowledge": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "mental" }, "perception": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "mental" }, "will": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "social" }, "empathy": { - "value": 0, + "value": 1, "min": 0, "max": 5, "category": "social" @@ -118,215 +125,217 @@ "min": 0, "max": 5, "category": "man", - "rarity":1 + "rarity": 1 }, "civilization": { "value": 0, "min": 0, "max": 5, "category": "man", - "rarity":2 + "rarity": 2 }, "psychology": { "value": 0, "min": 0, "max": 5, "category": "man", - "rarity":1 + "rarity": 1 }, "rumors": { "value": 0, "min": 0, "max": 5, "category": "man", - "rarity":0 + "rarity": 0 }, "healing": { "value": 0, "min": 0, "max": 5, "category": "man", - "rarity":1 + "rarity": 1 }, "animalism": { "value": 0, "min": 0, "max": 5, "category": "animal", - "rarity":1 + "rarity": 1 }, "dissection": { "value": 0, "min": 0, "max": 5, "category": "animal", - "rarity":2 + "rarity": 2 }, "wildlife": { "value": 0, "min": 0, "max": 5, "category": "animal", - "rarity":1 + "rarity": 1 }, "repulsion": { "value": 0, "min": 0, "max": 5, "category": "animal", - "rarity":0 + "rarity": 0 }, "tracks": { "value": 0, "min": 0, "max": 5, "category": "animal", - "rarity":0 + "rarity": 0 }, "crafting": { "value": 0, "min": 0, "max": 5, "category": "tool", - "rarity":2 + "rarity": 2 }, "diy": { "value": 0, "min": 0, "max": 5, "category": "tool", - "rarity":0 + "rarity": 0 }, "mecanical": { "value": 0, "min": 0, "max": 5, "category": "tool", - "rarity":2 + "rarity": 2 }, "piloting": { "value": 0, "min": 0, "max": 5, "category": "tool", - "rarity":1 + "rarity": 1 }, "technology": { "value": 0, "min": 0, "max": 5, "category": "tool", - "rarity":2 + "rarity": 2 }, "firearms": { "value": 0, "min": 0, "max": 5, "category": "weapon", - "rarity":2 + "rarity": 2 }, "archery": { "value": 0, "min": 0, "max": 5, "category": "weapon", - "rarity":0 + "rarity": 0 }, "armory": { "value": 0, "min": 0, "max": 5, "category": "weapon", - "rarity":2 + "rarity": 2 }, "throwing": { "value": 0, "min": 0, "max": 5, "category": "weapon", - "rarity":0 + "rarity": 0 }, "melee": { "value": 0, "min": 0, "max": 5, "category": "weapon", - "rarity":0 + "rarity": 0 }, "alertness": { "value": 0, "min": 0, "max": 5, "category": "survival", - "rarity":0 + "rarity": 0 }, "atletics": { "value": 0, "min": 0, "max": 5, "category": "survival", - "rarity":0 + "rarity": 0 }, "food": { "value": 0, "min": 0, "max": 5, "category": "survival", - "rarity":0 + "rarity": 0 }, "stealth": { "value": 0, "min": 0, "max": 5, "category": "survival", - "rarity":0 + "rarity": 0 }, "close": { "value": 0, "min": 0, "max": 5, "category": "survival", - "rarity":0 + "rarity": 0 }, "environment": { "value": 0, "min": 0, "max": 5, "category": "world", - "rarity":1 + "rarity": 1 }, "flora": { "value": 0, "min": 0, "max": 5, "category": "world", - "rarity":1 + "rarity": 1 }, "road": { "value": 0, "min": 0, "max": 5, "category": "world", - "rarity":0 + "rarity": 0 }, "toxics": { "value": 0, "min": 0, "max": 5, "category": "world", - "rarity":2 + "rarity": 2 }, "ruins": { "value": 0, "min": 0, "max": 5, "category": "world", - "rarity":1 - } + "rarity": 1 + } } }, "npc": { - "templates": ["base"], + "templates": [ + "base" + ], "age": 15, "skills": "", "threat": { @@ -346,10 +355,12 @@ } }, "group": { - "templates": ["base"], + "templates": [ + "base" + ], "identity": { "totem": "", - "profile": "", + "profile": "", "origin": "", "theme": "", "instincts": "", @@ -360,12 +371,12 @@ }, "equipment": { "description": "" - }, + }, "level": { "value": 0, "min": 0, "max": 3 - }, + }, "reputation": { "value": 10, "min": 2, @@ -381,7 +392,9 @@ "encounters": [] }, "creature": { - "templates": ["base"], + "templates": [ + "base" + ], "skills": "", "modes": { "survival": true, @@ -411,74 +424,106 @@ } }, "Item": { - "types": ["item", "weapon", "defense", "vehicle", "ability", "specialty", "background", "trauma", "evolution", "rumor", "target", "rite"], + "types": [ + "item", + "weapon", + "defense", + "vehicle", + "ability", + "specialty", + "background", + "trauma", + "evolution", + "rumor", + "target", + "rite" + ], "templates": { "base": { "description": "", - "rarity":3, - "reliability":3, + "rarity": 3, + "reliability": 3, "quantity": 1, "weight": 0, "traits": [] - }, + }, "list": { "description": "" } }, "item": { - "templates": ["base"] + "templates": [ + "base" + ] }, "weapon": { - "templates": ["base"], - "min_range":0, - "max_range":0, - "damage":0, - "ammo":0 + "templates": [ + "base" + ], + "min_range": 0, + "max_range": 0, + "damage": 0, + "ammo": 0 }, "defense": { - "templates": ["base"], - "level":0, - "mobility":3 + "templates": [ + "base" + ], + "level": 0, + "mobility": 3 }, "ability": { - "templates": ["list"], + "templates": [ + "list" + ], "type": "", "totem": "", "learn": { - "threshold":5, - "hindrance":0 + "threshold": 5, + "hindrance": 0 }, "level": { "value": 1, "min": 1, "max": 3 - }, + }, "effects": [] }, "specialty": { - "templates": ["list"] + "name": "", + "skill": "" }, "vehicle": { - "templates": ["base"], - "mobility":3 + "templates": [ + "base" + ], + "mobility": 3 }, "rite": { - "templates": ["base"], + "templates": [ + "base" + ], "rituel": "", "transe": "", - "ability": "", + "ability": "", "effect": "" }, "background": { - "templates": ["list"], - "cost":1 + "templates": [ + "list" + ], + "cost": 1 }, "trauma": { - "templates": ["list"], + "templates": [ + "list" + ], "type": "" }, "evolution": { - "templates": ["list"], + "templates": [ + "list" + ], "level": { "value": 1, "min": 1, @@ -486,11 +531,15 @@ } }, "rumor": { - "templates": ["list"] + "templates": [ + "list" + ] }, "target": { - "templates": ["list"], - "level":"minor" + "templates": [ + "list" + ], + "level": "minor" } } -} +} \ No newline at end of file diff --git a/templates/actor/actor-character-sheet.hbs b/templates/actor/actor-character-sheet.hbs index cde1213..8baeaa4 100644 --- a/templates/actor/actor-character-sheet.hbs +++ b/templates/actor/actor-character-sheet.hbs @@ -1,52 +1,64 @@
    +
    -
    - - {{> "systems/vermine2047/templates/actor/character/character-header.hbs"}} + +
    + + {{> "systems/vermine2047/templates/actor/character/character-header.hbs"}} - - - -
    + +
    -
    - - {{> "systems/vermine2047/templates/actor/character/character-features.hbs"}} +
    + + {{> + "systems/vermine2047/templates/actor/character/character-features.hbs"}}

    {{ localize 'IDENTITY.totem'}}

    - {{> "systems/vermine2047/templates/actor/character/character-totem.hbs"}} + {{> + "systems/vermine2047/templates/actor/character/character-totem.hbs"}}

    {{ localize 'VERMINE.equipment'}}

    @@ -56,17 +68,18 @@

    {{ localize 'VERMINE.combat'}}

    - {{> "systems/vermine2047/templates/actor/character/character-combat.hbs"}} + {{> + "systems/vermine2047/templates/actor/character/character-combat.hbs"}}
    - +
    -

    {{ localize 'VERMINE.stories'}}

    - {{> "systems/vermine2047/templates/actor/character/character-stories.hbs"}} -
    - +

    {{ localize 'VERMINE.stories'}}

    + {{> + "systems/vermine2047/templates/actor/character/character-stories.hbs"}} +
    +
    -
    -
    + +
    - diff --git a/templates/actor/character/character-combat.hbs b/templates/actor/character/character-combat.hbs index 5af0bcf..e0b17ad 100644 --- a/templates/actor/character/character-combat.hbs +++ b/templates/actor/character/character-combat.hbs @@ -2,75 +2,120 @@

    {{ localize "VERMINE.self_control"}}

    - / {{ system.attributes.self_control.max }} + / {{ + system.attributes.self_control.max }}

    -
    +

    {{ localize "VERMINE.effort"}}

    - / {{ system.attributes.effort.max }} + / {{ + system.attributes.effort.max }}

    -
    + -

    {{ localize "VERMINE.wounds.name"}}

    +

    {{ localize + "VERMINE.wounds.name"}}

    {{ localize "UI.effects.name"}}

      {{#each effects as |section sid|}} -
    1. -

      {{#if (eq section.type 'temporary')}} - {{localize "UI.effects.temporary" }} - {{else if (eq section.type 'passive')}} - {{localize "UI.effects.passive" }} - {{else if (eq section.type 'inactive')}} - {{localize "UI.effects.inactive" }} - {{/if}} -

      -
      {{localize 'UI.source'}}
      -
      {{localize 'UI.duration'}}
      +
    2. +

      {{#if (eq section.type + 'temporary')}} + {{localize "UI.effects.temporary" }} + {{else if (eq section.type 'passive')}} + {{localize "UI.effects.passive" }} + {{else if (eq section.type 'inactive')}} + {{localize "UI.effects.inactive" }} + {{/if}} +

      +
      {{localize 'UI.source'}}
      +
      {{localize 'UI.duration'}}
      + +
    3. + +
        + {{#each section.effects as |effect|}} +
      1. + +
        {{effect.sourceName}}
        +
        {{effect.duration.label}}
      2. - -
          - {{#each section.effects as |effect|}} -
        1. - -
          {{effect.sourceName}}
          -
          {{effect.duration.label}}
          - -
        2. {{/each}} -
        +
      {{/each}}
    diff --git a/templates/actor/character/character-features.hbs b/templates/actor/character/character-features.hbs index fbc6f0b..89aba28 100644 --- a/templates/actor/character/character-features.hbs +++ b/templates/actor/character/character-features.hbs @@ -2,36 +2,71 @@

    Caractéristiques

    {{#each config.abilityCategories as |abilityCategory ackey|}} -
    -

    {{ smarttl "ABILITY_CATEGORIES" ackey }}

    - {{#each @root.system.abilities as |ability key|}} - {{#if (eq ability.category ackey) }} -
    - - -
    - {{/if}} - {{/each}} +
    +

    {{ smarttl "ABILITY_CATEGORIES" ackey }}

    + {{#each @root.system.abilities as |ability key|}} + {{#if (eq ability.category ackey) }} +
    + +
    - {{/each}} + {{/if}} + {{/each}}
    + {{/each}} +

    Compétences

    -{{#each config.skillCategories as |skillCategory sckey|}} -
    -

    {{ smarttl "SKILLS_CATEGORIES" sckey }}

    + {{#each config.skillCategories as |skillCategory sckey|}} +
    +

    {{ smarttl "SKILLS_CATEGORIES" sckey }}

    {{#each @root.system.skills as |skill skey|}} - - {{#if (eq skill.category sckey) }} -
    - - {{ skillLevel "dicePool" skill.value }} - {{ skillLevel "reroll" skill.value }} - + + {{#if (eq skill.category sckey) }} +
    + +
    + {{#each @root.specialties as |spe ind|}} + {{#ife spe.system.skill skey}} + {{spe.name}} + {{/ife}} + {{/each}}
    - {{/if}} - {{/each}} + + {{skill.value}} +
    + {{#repeat (skillLevel "dicePool" skill.value) 0}} +
    + {{/repeat}} + {{#repeat (skillLevel "reroll" skill.value) 0}} +
    X
    + {{/repeat}} +
    +
    -{{/each}} + + {{/if}} + {{/each}} +
    + {{/each}}
    \ No newline at end of file diff --git a/templates/actor/character/character-header.hbs b/templates/actor/character/character-header.hbs index 6390de7..3aa2586 100644 --- a/templates/actor/character/character-header.hbs +++ b/templates/actor/character/character-header.hbs @@ -3,36 +3,45 @@

    - +

    - +
    - +
    - - ({{ ageType "name" system.identity.ageType }}) + + ({{ ageType "name" system.identity.ageType + }})
    -
    +

    - + {{#if (eq system.identity.totem "")}} - Choisissez votre totem - {{ else }} - {{ smarttl "TOTEMS" system.identity.totem }} + Choisissez votre totem + {{ else }} + {{ smarttl "TOTEMS" + system.identity.totem }} {{/if}}

    - -
    -
    + + - +
    \ No newline at end of file diff --git a/templates/actor/character/character-id.hbs b/templates/actor/character/character-id.hbs index d942c0f..bb20e9e 100644 --- a/templates/actor/character/character-id.hbs +++ b/templates/actor/character/character-id.hbs @@ -1,54 +1,67 @@
    - +
    -
      - {{#if system.identity.totem }} -
    • -
      - {{ smarttl 'TOTEMS' system.identity.totem 'name' }} -
      -
    • - {{/if}} - {{#if system.identity.theme}} -
    • -
      - -

      {{{ system.identity.theme }}}

      -
      -
    • - {{/if}} - {{#if system.identity.instincts}} -
    • -
      - -

      {{{ system.identity.instincts }}}

      -
      -
    • - {{/if}} - {{#if system.identity.prohibits}} -
    • -
      - -

      {{{ system.identity.prohibits }}}

      -
      -
    • - {{/if}} - {{#if system.identity.objectives}} -
    • -
      - -

      {{{ system.identity.objectives }}}

      -
      -
    • - {{/if}} -
    - {{#if system.identity.relations}} -
      -
    • -
      - - {{{ system.identity.relations }}} -
      -
    • -
    +
      + {{#if system.identity.totem }} +
    • +
      + {{ smarttl 'TOTEMS' system.identity.totem 'name' }} +
      +
    • {{/if}} + {{#if system.identity.theme}} +
    • +
      + +

      {{{ system.identity.theme }}}

      +
      +
    • + {{/if}} + {{#if system.identity.instincts}} +
    • +
      + +

      {{{ system.identity.instincts }}}

      +
      +
    • + {{/if}} + {{#if system.identity.prohibits}} +
    • +
      + +

      {{{ system.identity.prohibits }}}

      +
      +
    • + {{/if}} + {{#if system.identity.objectives}} +
    • +
      + +

      {{{ system.identity.objectives }}}

      +
      +
    • + {{/if}} + {{#if system.identity.relations}} +
    • +
      + + {{{ system.identity.relations }}} +
      +
    • +
    +{{/if}} diff --git a/templates/actor/character/character-stories.hbs b/templates/actor/character/character-stories.hbs index 8cd307b..0e59df1 100644 --- a/templates/actor/character/character-stories.hbs +++ b/templates/actor/character/character-stories.hbs @@ -1,24 +1,30 @@

    {{ localize 'IDENTITY.theme'}}

    - +

    {{ localize 'IDENTITY.objectives'}}

    - +

    {{ localize 'IDENTITY.instincts'}}

    - +

    {{ localize 'IDENTITY.prohibits'}}

    - +
    -
    +

    {{ localize 'IDENTITY.notes'}}

    - {{editor system.identity.biography target="system.identity.biography" button=true owner=owner editable=editable}} + {{editor system.identity.biography target="system.identity.biography" + button=true owner=owner editable=editable}}
    -
    +

    {{ localize 'IDENTITY.relations'}}

    - {{editor system.identity.relations target="system.identity.relations" button=true owner=owner editable=editable}} + {{editor system.identity.relations target="system.identity.relations" + button=true owner=owner editable=editable}}
    diff --git a/templates/actor/character/character-totem.hbs b/templates/actor/character/character-totem.hbs index 375120c..a36e73e 100644 --- a/templates/actor/character/character-totem.hbs +++ b/templates/actor/character/character-totem.hbs @@ -1,106 +1,136 @@ +{{#if system.identity.totem}} +

    {{ smarttl 'TOTEMS' system.identity.totem 'name' }}

    -

    {{ smarttlk "TOTEMS" system.identity.totem "description"}}

    -
    -
    -
    Principes
    {{ smarttlk "TOTEMS" system.identity.totem "instincts"}}
    -
    -
    -
    Interdits
    {{ smarttlk "TOTEMS" system.identity.totem "bans"}}
    -
    +

    {{ smarttlk "TOTEMS" system.identity.totem + "description"}}

    +
    +
    +
    Principes
    {{ smarttlk "TOTEMS" + system.identity.totem "instincts"}}
    -
    -
    -
    -

    - {{ localize 'ITEMS.abilities'}} - -

    -
      +
      +
      Interdits
      {{ smarttlk "TOTEMS" + system.identity.totem "bans"}}
      +
      +
    +
    +
    +
    +

    + {{ localize 'ITEMS.abilities'}} + +

    +
      {{#each abilities as |item id|}} -
    1. - -
      - -
      -
    2. +
    3. + +
      + + +
      +
    4. {{/each}}
    -
    -
    -

    - {{ localize 'ITEMS.specialties'}} - -

    -
      - {{#each specialties as |item id|}} -
    1. - -
      - -
      -
    2. - {{/each}} -
    -
    -
    -

    - {{ localize 'ITEMS.backgrounds'}} - -

    -
      - {{#each backgrounds as |item id|}} -
    1. - -
      - -
      -
    2. - {{/each}} -
    -
    -
    -

    - {{ localize 'ITEMS.traumas'}} - -

    -
      - {{#each traumas as |item id|}} -
    1. - -
      - -
      -
    2. - {{/each}} -
    -
    -
    -

    - {{ localize 'ITEMS.evolutions'}} - -

    -
      - {{#each evolutions as |item id|}} -
    1. - -
      - -
      -
    2. - {{/each}} -
    -
    - \ No newline at end of file +
    +

    + {{ localize 'ITEMS.specialties'}} + +

    +
      + {{#each specialties as |item id|}} +
    1. + +
      + + +
      +
    2. + {{/each}} +
    +
    +
    +

    + {{ localize 'ITEMS.backgrounds'}} + +

    +
      + {{#each backgrounds as |item id|}} +
    1. + +
      + + +
      +
    2. + {{/each}} +
    +
    +
    +

    + {{ localize 'ITEMS.traumas'}} + +

    +
      + {{#each traumas as |item id|}} +
    1. + +
      + + +
      +
    2. + {{/each}} +
    +
    +
    +

    + {{ localize 'ITEMS.evolutions'}} + +

    +
      + {{#each evolutions as |item id|}} +
    1. + +
      + + +
      +
    2. + {{/each}} +
    +
    +
    +{{else}} + +

    choisissez un totem

    + +{{/if}} diff --git a/templates/actor/creature/creature-combat.hbs b/templates/actor/creature/creature-combat.hbs index 5af0bcf..21c8b9e 100644 --- a/templates/actor/creature/creature-combat.hbs +++ b/templates/actor/creature/creature-combat.hbs @@ -2,75 +2,118 @@

    {{ localize "VERMINE.self_control"}}

    - / {{ system.attributes.self_control.max }} + / {{ + system.attributes.self_control.max }}

    -
    +

    {{ localize "VERMINE.effort"}}

    - / {{ system.attributes.effort.max }} + / {{ + system.attributes.effort.max }}

    -
    +
    -

    {{ localize "VERMINE.wounds.name"}}

    +

    {{ localize + "VERMINE.wounds.name"}}

    {{ localize "UI.effects.name"}}

      {{#each effects as |section sid|}} -
    1. -

      {{#if (eq section.type 'temporary')}} - {{localize "UI.effects.temporary" }} - {{else if (eq section.type 'passive')}} - {{localize "UI.effects.passive" }} - {{else if (eq section.type 'inactive')}} - {{localize "UI.effects.inactive" }} - {{/if}} -

      -
      {{localize 'UI.source'}}
      -
      {{localize 'UI.duration'}}
      +
    2. +

      {{#if (eq section.type + 'temporary')}} + {{localize "UI.effects.temporary" }} + {{else if (eq section.type 'passive')}} + {{localize "UI.effects.passive" }} + {{else if (eq section.type 'inactive')}} + {{localize "UI.effects.inactive" }} + {{/if}} +

      +
      {{localize 'UI.source'}}
      +
      {{localize 'UI.duration'}}
      + +
    3. + +
        + {{#each section.effects as |effect|}} +
      1. + +
        {{effect.sourceName}}
        +
        {{effect.duration.label}}
      2. - -
          - {{#each section.effects as |effect|}} -
        1. - -
          {{effect.sourceName}}
          -
          {{effect.duration.label}}
          - -
        2. {{/each}} -
        +
      {{/each}}
    diff --git a/templates/combat-tracker.hbs b/templates/combat-tracker.hbs index 44ab176..63ddbae 100644 --- a/templates/combat-tracker.hbs +++ b/templates/combat-tracker.hbs @@ -1,4 +1,5 @@ -
    +
    {{#if user.isGM}} @@ -24,34 +32,44 @@
    {{#if user.isGM}} - + - + {{/if}} {{#if combatCount}} {{#if combat.round}} -

    {{localize 'COMBAT.Round'}} {{combat.round}}

    +

    {{localize 'COMBAT.Round'}} + {{combat.round}}

    {{else}} -

    {{localize 'COMBAT.NotStarted'}}

    +

    {{localize + 'COMBAT.NotStarted'}}

    {{/if}} {{else}}

    {{localize "COMBAT.None"}}

    {{/if}} {{#if user.isGM}} - - + - + {{/if}} @@ -60,34 +78,60 @@
      {{#each turns}} -
    1. - {{this.name}} +
    2. + {{this.name}}
      -

      {{this.name}}

      +

      {{this.name}}

      - + - + - - + + - - + + - - + + {{#if this.canPing}} - + {{/if}}
      {{#each this.effects}} - + {{/each}}
      @@ -103,30 +147,43 @@ {{#if this.hasRolled}} {{this.initiative}} {{else if this.owner}} - + {{/if}}
    3. {{/each}}
    -
    diff --git a/templates/item/item-specialty-sheet.html b/templates/item/item-specialty-sheet.html index af6d632..0479949 100644 --- a/templates/item/item-specialty-sheet.html +++ b/templates/item/item-specialty-sheet.html @@ -1,29 +1,41 @@ -
    +
    - + + {{log this}}
    -

    +

    + +
    - {{!-- Sheet Tab Navigation --}} - - - {{!-- Sheet Body --}} -
    - - {{!-- Description Tab --}} -
    - {{editor system.description target="system.description" rollData=rollData button=true owner=owner editable=editable}} -
    - - {{!-- Attributes Tab --}} -
    - {{!-- As you add new fields, add them in here! --}} -
    -
    - -
    + \ No newline at end of file diff --git a/templates/roll.hbs b/templates/roll.hbs index 7017589..dcf1aba 100644 --- a/templates/roll.hbs +++ b/templates/roll.hbs @@ -1,74 +1,107 @@ -
    + - - + +
    -
    - Type de jet {{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability' }}{{/if}} - {{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability' }}{{/if}} - {{#if (eq rollType 'skill')}}{{ smarttl "SKILLS" label }}{{else}}{{ smarttl "ABILITIES" label }}{{/if}} +
    + Type de jet {{#if (eq rollType 'skill')}}{{ localize + 'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability' + }}{{/if}} + {{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title' + }}{{else}}{{ localize 'VERMINE.ability' }}{{/if}} + {{#if (eq rollType 'skill')}}{{ smarttl "SKILLS" label + }}{{else}}{{ smarttl "ABILITIES" label }}{{/if}}
    - - {{#select difficulty }} - - - - - + + + + + {{/select}} - +
    +
    - - + {{#if (eq rollType 'skill')}}{{/if}} {{#each abilities as |ability key| }} - + {{/each}} - +
    {{#if (eq rollType 'skill')}}
    - - {{#each skills as |skill key| }} - + {{/each}}
    - {{#if (ne skillScore 0)}}{{ skillLevel 'label' skillScore }}{{/if}} - {{localize 'VERMINE.bonus'}} : {{#if (ne skillScore 0)}}{{ skillLevel 'dicePool' skillScore }}{{else}}0{{/if}} - {{localize 'VERMINE.reroll'}} : {{#if (ne skillScore 0)}}{{ skillLevel 'reroll' skillScore }}{{else}}0{{/if}} -
    + {{#if (ne skillScore 0)}}{{ skillLevel 'label' + skillScore }}{{/if}} + {{localize 'VERMINE.bonus'}} : {{#if (ne + skillScore 0)}}{{ skillLevel 'dicePool' skillScore + }}{{else}}0{{/if}} + {{localize 'VERMINE.reroll'}} : {{#if (ne + skillScore 0)}}{{ skillLevel 'reroll' skillScore + }}{{else}}0{{/if}} +
    - +
    {{/if}}
    - +
    - +
    - - + +
    - - + +
    -
    +