From 0e2f4b8922ccf574f71b8931a906f599dbdf77d6 Mon Sep 17 00:00:00 2001 From: manueltauber Date: Wed, 30 Aug 2023 13:10:05 +0200 Subject: [PATCH] doku --- frontend/documentation/coverage.html | 137 - frontend/documentation/dependencies.html | 150 - frontend/documentation/fonts/ionicons.eot | Bin 112650 -> 0 bytes frontend/documentation/fonts/ionicons.svg | 2090 ----------- frontend/documentation/fonts/ionicons.ttf | Bin 112472 -> 0 bytes frontend/documentation/fonts/ionicons.woff | Bin 65912 -> 0 bytes frontend/documentation/fonts/ionicons.woff2 | Bin 50632 -> 0 bytes .../fonts/roboto-v15-latin-italic.eot | Bin 17534 -> 0 bytes .../fonts/roboto-v15-latin-italic.svg | 323 -- .../fonts/roboto-v15-latin-italic.ttf | Bin 33404 -> 0 bytes .../fonts/roboto-v15-latin-italic.woff | Bin 19880 -> 0 bytes .../fonts/roboto-v15-latin-italic.woff2 | Bin 11500 -> 0 bytes frontend/documentation/graph/dependencies.svg | 14 - .../images/compodoc-vectorise-inverted.png | Bin 21782 -> 0 bytes .../images/compodoc-vectorise.png | Bin 21325 -> 0 bytes .../images/coverage-badge-documentation.svg | 9 - frontend/documentation/index.html | 127 - frontend/documentation/js/lazy-load-graphs.js | 44 - .../documentation/js/libs/EventDispatcher.js | 5 - .../documentation/js/libs/bootstrap-native.js | 2 - .../documentation/js/libs/clipboard.min.js | 7 - .../js/libs/custom-elements-es5-adapter.js | 15 - .../js/libs/custom-elements.min.js | 38 - frontend/documentation/js/libs/d3.v3.min.js | 2 - .../documentation/js/libs/deep-iterator.js | 2 - frontend/documentation/js/libs/htmlparser.js | 23 - frontend/documentation/js/libs/innersvg.js | 9 - frontend/documentation/js/libs/lit-html.js | 1 - frontend/documentation/js/libs/prism.js | 46 - .../documentation/js/libs/svg-pan-zoom.min.js | 3 - .../documentation/js/libs/tablesort.min.js | 6 - .../js/libs/tablesort.number.min.js | 6 - frontend/documentation/js/libs/vis.min.js | 46 - frontend/documentation/js/menu-wc.js | 62 - frontend/documentation/js/menu-wc_es5.js | 42 - frontend/documentation/js/menu.js | 321 -- frontend/documentation/js/routes.js | 280 -- frontend/documentation/js/search/lunr.min.js | 6 - .../documentation/js/search/search_index.js | 4 - frontend/documentation/js/sourceCode.js | 58 - .../documentation/js/svg-pan-zoom.controls.js | 53 - frontend/documentation/js/tabs.js | 21 - frontend/documentation/js/tree.js | 147 - frontend/documentation/modules.html | 119 - frontend/documentation/overview.html | 121 - frontend/documentation/properties.html | 119 - .../documentation/styles/bootstrap.min.css | 6 - frontend/documentation/styles/compodoc.css | 1082 ------ frontend/documentation/styles/dark.css | 117 - .../documentation/styles/ionicons.min.css | 11 - frontend/documentation/styles/laravel.css | 113 - frontend/documentation/styles/material.css | 131 - frontend/documentation/styles/prism.css | 301 -- frontend/documentation/styles/readthedocs.css | 117 - frontend/documentation/styles/reset.css | 129 - frontend/documentation/styles/tablesort.css | 33 - frontend/documentation/styles/vagrant.css | 130 - frontend/package.json | 2 + .../components/AppComponent.html | 479 +++ .../components/FilterDialogComponent.html | 1080 ++++++ .../ImplementerDialogComponent.html | 875 +++++ .../MultiselectAutocompleteComponent.html | 846 +++++ .../components/NttGanttComponent.html | 3318 +++++++++++++++++ .../components/PlanTimeBarComponent.html | 1143 ++++++ .../components/StateDialogComponent.html | 937 +++++ frontend/src/documentation/coverage.html | 548 +++ .../src/documentation/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../fonts/fontawesome-webfont.svg | 685 ++++ .../fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes .../fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes .../fonts/roboto-v15-latin-300.eot | Bin .../fonts/roboto-v15-latin-300.svg | 0 .../fonts/roboto-v15-latin-300.ttf | Bin .../fonts/roboto-v15-latin-300.woff | Bin .../fonts/roboto-v15-latin-300.woff2 | Bin .../fonts/roboto-v15-latin-700.eot | Bin .../fonts/roboto-v15-latin-700.svg | 0 .../fonts/roboto-v15-latin-700.ttf | Bin .../fonts/roboto-v15-latin-700.woff | Bin .../fonts/roboto-v15-latin-700.woff2 | Bin .../fonts/roboto-v15-latin-regular.eot | Bin .../fonts/roboto-v15-latin-regular.svg | 0 .../fonts/roboto-v15-latin-regular.ttf | Bin .../fonts/roboto-v15-latin-regular.woff | Bin .../fonts/roboto-v15-latin-regular.woff2 | Bin .../src/documentation/graph/dependencies.svg | 590 +++ .../images/compodoc-vectorise-inverted.svg | 0 .../images/compodoc-vectorise.svg | 0 .../src/documentation/images/compodoc.png | Bin 0 -> 18224 bytes .../src/documentation/images/compodoc.svg | 185 + .../documentation/images/favicon.ico | Bin frontend/src/documentation/index.html | 413 ++ .../injectables/DataService.html | 2113 +++++++++++ .../injectables/LanguageService.html | 900 +++++ .../interfaces/FilterAttribute.html | 640 ++++ .../documentation/interfaces/ItemData.html | 576 +++ .../{ => src}/documentation/js/compodoc.js | 0 .../documentation/js/libs/EventDispatcher.js | 96 + .../documentation/js/libs/bootstrap-native.js | 292 ++ .../documentation/js/libs/es6-shim.min.js | 3 +- .../documentation/js/libs/highlight.pack.js | 2 + .../js/libs/highlightjs-line-numbers.min.js | 1 + .../documentation/js/libs/promise.min.js | 0 .../documentation/js/libs/svg-pan-zoom.min.js | 782 ++++ .../documentation/js/libs/zepto.min.js | 0 frontend/src/documentation/js/menu.js | 56 + .../src/documentation/js/search/lunr.min.js | 6 + .../documentation/js/search/search-engine.js | 43 + .../documentation/js/search/search-lunr.js | 24 +- .../documentation/js/search/search.js | 95 +- .../documentation/js/search/search_index.js | 4 + .../documentation/js/svg-pan-zoom.controls.js | 23 + frontend/src/documentation/miscellaneous.html | 580 +++ frontend/src/documentation/modules.html | 401 ++ .../src/documentation/modules/AppModule.html | 542 +++ .../modules/AppModule/dependencies.svg | 542 +++ .../modules/AppRoutingModule.html | 423 +++ .../modules/AppRoutingModule/dependencies.svg | 78 + .../documentation/styles/bootstrap-card.css | 0 .../documentation/styles/bootstrap.min.css | 6 + .../src/documentation/styles/compodoc.css | 615 +++ .../documentation/styles/font-awesome.min.css | 4 + frontend/src/documentation/styles/laravel.css | 170 + .../documentation/styles/monokai-sublime.css | 83 + .../documentation/styles/original.css | 16 +- .../documentation/styles/postmark.css | 93 +- .../src/documentation/styles/readthedocs.css | 217 ++ frontend/src/documentation/styles/reset.css | 48 + .../{ => src}/documentation/styles/stripe.css | 53 +- .../{ => src}/documentation/styles/style.css | 5 +- frontend/src/documentation/styles/vagrant.css | 197 + 133 files changed, 20631 insertions(+), 6827 deletions(-) delete mode 100644 frontend/documentation/coverage.html delete mode 100644 frontend/documentation/dependencies.html delete mode 100644 frontend/documentation/fonts/ionicons.eot delete mode 100644 frontend/documentation/fonts/ionicons.svg delete mode 100644 frontend/documentation/fonts/ionicons.ttf delete mode 100644 frontend/documentation/fonts/ionicons.woff delete mode 100644 frontend/documentation/fonts/ionicons.woff2 delete mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.eot delete mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.svg delete mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.ttf delete mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.woff delete mode 100644 frontend/documentation/fonts/roboto-v15-latin-italic.woff2 delete mode 100644 frontend/documentation/graph/dependencies.svg delete mode 100644 frontend/documentation/images/compodoc-vectorise-inverted.png delete mode 100644 frontend/documentation/images/compodoc-vectorise.png delete mode 100644 frontend/documentation/images/coverage-badge-documentation.svg delete mode 100644 frontend/documentation/index.html delete mode 100644 frontend/documentation/js/lazy-load-graphs.js delete mode 100644 frontend/documentation/js/libs/EventDispatcher.js delete mode 100644 frontend/documentation/js/libs/bootstrap-native.js delete mode 100644 frontend/documentation/js/libs/clipboard.min.js delete mode 100644 frontend/documentation/js/libs/custom-elements-es5-adapter.js delete mode 100644 frontend/documentation/js/libs/custom-elements.min.js delete mode 100644 frontend/documentation/js/libs/d3.v3.min.js delete mode 100644 frontend/documentation/js/libs/deep-iterator.js delete mode 100644 frontend/documentation/js/libs/htmlparser.js delete mode 100644 frontend/documentation/js/libs/innersvg.js delete mode 100644 frontend/documentation/js/libs/lit-html.js delete mode 100644 frontend/documentation/js/libs/prism.js delete mode 100644 frontend/documentation/js/libs/svg-pan-zoom.min.js delete mode 100644 frontend/documentation/js/libs/tablesort.min.js delete mode 100644 frontend/documentation/js/libs/tablesort.number.min.js delete mode 100644 frontend/documentation/js/libs/vis.min.js delete mode 100644 frontend/documentation/js/menu-wc.js delete mode 100644 frontend/documentation/js/menu-wc_es5.js delete mode 100644 frontend/documentation/js/menu.js delete mode 100644 frontend/documentation/js/routes.js delete mode 100644 frontend/documentation/js/search/lunr.min.js delete mode 100644 frontend/documentation/js/search/search_index.js delete mode 100644 frontend/documentation/js/sourceCode.js delete mode 100644 frontend/documentation/js/svg-pan-zoom.controls.js delete mode 100644 frontend/documentation/js/tabs.js delete mode 100644 frontend/documentation/js/tree.js delete mode 100644 frontend/documentation/modules.html delete mode 100644 frontend/documentation/overview.html delete mode 100644 frontend/documentation/properties.html delete mode 100644 frontend/documentation/styles/bootstrap.min.css delete mode 100644 frontend/documentation/styles/compodoc.css delete mode 100644 frontend/documentation/styles/dark.css delete mode 100644 frontend/documentation/styles/ionicons.min.css delete mode 100644 frontend/documentation/styles/laravel.css delete mode 100644 frontend/documentation/styles/material.css delete mode 100644 frontend/documentation/styles/prism.css delete mode 100644 frontend/documentation/styles/readthedocs.css delete mode 100644 frontend/documentation/styles/reset.css delete mode 100644 frontend/documentation/styles/tablesort.css delete mode 100644 frontend/documentation/styles/vagrant.css create mode 100644 frontend/src/documentation/components/AppComponent.html create mode 100644 frontend/src/documentation/components/FilterDialogComponent.html create mode 100644 frontend/src/documentation/components/ImplementerDialogComponent.html create mode 100644 frontend/src/documentation/components/MultiselectAutocompleteComponent.html create mode 100644 frontend/src/documentation/components/NttGanttComponent.html create mode 100644 frontend/src/documentation/components/PlanTimeBarComponent.html create mode 100644 frontend/src/documentation/components/StateDialogComponent.html create mode 100644 frontend/src/documentation/coverage.html create mode 100644 frontend/src/documentation/fonts/FontAwesome.otf create mode 100644 frontend/src/documentation/fonts/fontawesome-webfont.eot create mode 100644 frontend/src/documentation/fonts/fontawesome-webfont.svg create mode 100644 frontend/src/documentation/fonts/fontawesome-webfont.ttf create mode 100644 frontend/src/documentation/fonts/fontawesome-webfont.woff create mode 100644 frontend/src/documentation/fonts/fontawesome-webfont.woff2 rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-300.eot (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-300.svg (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-300.ttf (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-300.woff (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-300.woff2 (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-700.eot (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-700.svg (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-700.ttf (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-700.woff (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-700.woff2 (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-regular.eot (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-regular.svg (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-regular.ttf (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-regular.woff (100%) rename frontend/{ => src}/documentation/fonts/roboto-v15-latin-regular.woff2 (100%) create mode 100644 frontend/src/documentation/graph/dependencies.svg rename frontend/{ => src}/documentation/images/compodoc-vectorise-inverted.svg (100%) rename frontend/{ => src}/documentation/images/compodoc-vectorise.svg (100%) create mode 100644 frontend/src/documentation/images/compodoc.png create mode 100644 frontend/src/documentation/images/compodoc.svg rename frontend/{ => src}/documentation/images/favicon.ico (100%) create mode 100644 frontend/src/documentation/index.html create mode 100644 frontend/src/documentation/injectables/DataService.html create mode 100644 frontend/src/documentation/injectables/LanguageService.html create mode 100644 frontend/src/documentation/interfaces/FilterAttribute.html create mode 100644 frontend/src/documentation/interfaces/ItemData.html rename frontend/{ => src}/documentation/js/compodoc.js (100%) create mode 100644 frontend/src/documentation/js/libs/EventDispatcher.js create mode 100644 frontend/src/documentation/js/libs/bootstrap-native.js rename frontend/{ => src}/documentation/js/libs/es6-shim.min.js (99%) create mode 100644 frontend/src/documentation/js/libs/highlight.pack.js create mode 100644 frontend/src/documentation/js/libs/highlightjs-line-numbers.min.js rename frontend/{ => src}/documentation/js/libs/promise.min.js (100%) create mode 100644 frontend/src/documentation/js/libs/svg-pan-zoom.min.js rename frontend/{ => src}/documentation/js/libs/zepto.min.js (100%) create mode 100644 frontend/src/documentation/js/menu.js create mode 100644 frontend/src/documentation/js/search/lunr.min.js create mode 100644 frontend/src/documentation/js/search/search-engine.js rename frontend/{ => src}/documentation/js/search/search-lunr.js (89%) rename frontend/{ => src}/documentation/js/search/search.js (66%) create mode 100644 frontend/src/documentation/js/search/search_index.js create mode 100644 frontend/src/documentation/js/svg-pan-zoom.controls.js create mode 100644 frontend/src/documentation/miscellaneous.html create mode 100644 frontend/src/documentation/modules.html create mode 100644 frontend/src/documentation/modules/AppModule.html create mode 100644 frontend/src/documentation/modules/AppModule/dependencies.svg create mode 100644 frontend/src/documentation/modules/AppRoutingModule.html create mode 100644 frontend/src/documentation/modules/AppRoutingModule/dependencies.svg rename frontend/{ => src}/documentation/styles/bootstrap-card.css (100%) create mode 100644 frontend/src/documentation/styles/bootstrap.min.css create mode 100644 frontend/src/documentation/styles/compodoc.css create mode 100644 frontend/src/documentation/styles/font-awesome.min.css create mode 100644 frontend/src/documentation/styles/laravel.css create mode 100644 frontend/src/documentation/styles/monokai-sublime.css rename frontend/{ => src}/documentation/styles/original.css (70%) rename frontend/{ => src}/documentation/styles/postmark.css (68%) create mode 100644 frontend/src/documentation/styles/readthedocs.css create mode 100644 frontend/src/documentation/styles/reset.css rename frontend/{ => src}/documentation/styles/stripe.css (53%) rename frontend/{ => src}/documentation/styles/style.css (58%) create mode 100644 frontend/src/documentation/styles/vagrant.css diff --git a/frontend/documentation/coverage.html b/frontend/documentation/coverage.html deleted file mode 100644 index 3092715..0000000 --- a/frontend/documentation/coverage.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - - - - - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - - -
FileTypeIdentifierStatements
- - - - - -
-
-

results matching ""

-
    -
    -
    -

    No results matching ""

    -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/dependencies.html b/frontend/documentation/dependencies.html deleted file mode 100644 index 0ef6088..0000000 --- a/frontend/documentation/dependencies.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - - - - - -
    -
    - - -
    -
    - - - - - - - - - - - - - - - - -
      -
    • - @angular/animations : ^14.2.0
    • -
    • - @angular/cdk : ^14.2.0
    • -
    • - @angular/common : ^14.2.0
    • -
    • - @angular/compiler : ^14.2.0
    • -
    • - @angular/core : ^14.2.0
    • -
    • - @angular/forms : ^14.2.0
    • -
    • - @angular/material : ^14.2.0
    • -
    • - @angular/platform-browser : ^14.2.0
    • -
    • - @angular/platform-browser-dynamic : ^14.2.0
    • -
    • - @angular/router : ^14.2.0
    • -
    • - @syncfusion/ej2-angular-gantt : ^20.3.50
    • -
    • - @syncfusion/ej2-material-theme : ~20.3.50
    • -
    • - jquery : ^3.6.1
    • -
    • - rxjs : ~7.5.0
    • -
    • - tslib : ^2.3.0
    • -
    • - zone.js : ~0.11.4
    • -
    - - - - - - - -
    -
    -

    results matching ""

    -
      -
      -
      -

      No results matching ""

      -
      -
      -
      - -
      -
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/fonts/ionicons.eot b/frontend/documentation/fonts/ionicons.eot deleted file mode 100644 index 4b1fd0f48c9fa50401fa6dd1514fac66c0e92b06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112650 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

      r&t+fbm-y)Mex|N>O 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Ξr(#{P@A|12cYl|U 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 N_m}q|`XJmc_+R198#n*} diff --git a/frontend/documentation/fonts/ionicons.svg b/frontend/documentation/fonts/ionicons.svg deleted file mode 100644 index ba35c41..0000000 --- a/frontend/documentation/fonts/ionicons.svg +++ /dev/null @@ -1,2090 +0,0 @@ - - - - - -Created by FontForge 20160407 at Thu Jun 14 08:50:34 2018 - By Adam Bradley -Copyright (c) 2018, Adam Bradley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/fonts/ionicons.ttf b/frontend/documentation/fonts/ionicons.ttf deleted file mode 100644 index 67bd84202ad5b2e307d3b6fac1731c2a5d963e0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112472 zcmeFadz>6qoi|*k?pc%^Aqh!HLVyqk2pB@Z5CX<< z8v$d42mt}P83si}L_`RPpfcj>!?Nh2vdF57Sr#v=sAMuCB6i;I?^N~7B(VGJ`@a7@ zpC{9&&b6w}<#&GfQxTXT2tHv{kc5?s7q40Vv2Sj>M_^x{gVNMVC-?LZzcR8z5ZHR; zN6xwMtZjGf9h(#c^L{~4m!5Okjops5!BS-Kg_Vpt2`iHiD^t^Za zZhl)3;#&pwu{E2|J!_Ny^SfU{-7gTzn^7SBO5TO%hmmjIeBq9rxi1|Nk$*}MjNfhj z@HuDQw^(e(^YKn)=Y?nO+$LG~1{2ZoNQbL)hGNM*ErmIe!+scr^a~bV;_&joXj>>BzI9!oGvNE;!Zv9`>Ch&kEh5 zaO6*TvcjK4x48err>R7Ih7Ah=UPN~?-fCFr<|Q)Q&GrcjikGqTP;$H*|5-=~*Wq44 zk$5|Pv8R*5%JYufB#a&sCV#-jkBkf5=-Yf$<9$>A(#SpIzWE_kjky7B*akN}PVtey zvC$cMN*_G(C*GddBVW5;aNCW!@f&WOM#VUuR$Wx%_w^EES?8dda(Iao8{#|M(&^X2s zsIC@MdejY+<^k^*sikMsJ%smC{Wz_STRu9YzLutV7-0-y9N{4PM`e^Bb^5~dR7YjC za0k+x5k?S>t?NbEFrI^*F;zE=bnV_zq|;PK^El%j0>(1V%W2N4y!|rDyI~aZ%rJ&L z1u9!hX?IpWf_fy@>FgznaN@>8(LBvk_-Kp{2i!y4vpW3`X z2ydW_-{aO%I_;DRD-qMW6Rc1ebKA^}4^msq$+#d0luo<(F~H0yr4h#5FgznYJ|j*0 zX#`=^jni(L@}ut9$7^NC4wNT2cdkfuO+!HI>@ zqhnr9ZAK6X?rX7opYVH>5necmForPh!~*iQ!23+)6dEXY=Vr`l%hHHPsoc#!>ZW;_ zgBSUG$51|uK;^v7jj8-qgj(G=(o|N9DLv{2N`Fwk-7P~Om)L9Tp;H85yYcz7)M+SX}5lu>Ri}I`Y0G0ciWG-G3ux8 zAEo=;FphYvmd2Xwcj1TXsk{~hH$6Pnb_yp6y(k->uIKxs)^5bDqx_f~YGvb2UU(4k zs9Q()o7zzwl~H~eK|r_*p;k^Ym5m|{BWy(&al<&`F@#YBO4stW^f1)}CsY0)!l>IO zP33NSct*LK=HnWrdcuiryRjMVC_RoqagBCUx>kO_TR-BK4I`#7>gEYoj~^3ibz^S% zR37-4(jOG=K{>Ur)!mA8EsVJ36pynQD( zPr;)-qy31B&qoD3-^Bq3Q9s7>Z`1zZ_s!fVsH^pf$B(*sDkq+W;?e0c;inD^3(q?H ziPo(arp8S7%!E6-pTaN#(f@J8W0ZEw(uhAcqm1gl?c{|~xBMkR5Ww+H&HGs{46|s>!;p>w)~l+h--n$W(F!B za|4xAdLIHL0>Z_D^G`xVA;n)TD2tGzE~Ermp_yKcj3z8T^zfla4n210z@aA(edEwG zhrV^_*+bts^xZ?>KlG1>{^`(<4*lfNza0AMp?^K}^F#l3=$D875bokI;4jq}0CX@+n!ZTq`_$LArp^3;ud?GoKnrNKJPP9yPOstq#Ik9?T&BVHi z(y@b3=)@$g%RCk{^@e*5q{hu=MXWKx<`Cq0wqq%~UpuIk{`{ipi@cubI4Va`)t($xlt*H2LYt+a^CVdFSLkllM;EH~IO= zFHC-M@=KGCPd+jE^~q-@zcu;nmALaA-)KT;J{0GeAzaKM? ze?Iir3HH8ujPZGFm}tU0<|n$Q=5f6{kLO?>H@owA@x*fz?;h3nGNatshx0S^sSP(E5S(qV-SK3)Vkc&s+b?`o8r&>mRJ|TF+VEvBs@ut#4c3vc73O zV?Av>WqsXx!a86*YJJsu#QKW0&$`LlYwfl^Ze3?xYh7bqZCznqZtb)_VqIokYVEKt zv9?A7G`m7GC&1$vsR?cd&(pIC@VAWYkD`Ca0uobdw%Wqkh&+=Lx zOSd#jwG>PCRegW=z32O@?;YP?d~f>>`zCyUaQ3@{1pe>!|IZ9C6?oEp0IQLmnGdX0 z&Mf;sFU|E;LOcK4DBLJK%F=8JdriDud|p~9$K}i9s&bz4hMHCvsXNvE>dWfeTBmlI z_K^0X_Ld&j2lVUpNzVe$Ri4+4eq*a~z&PkldKY-VZ5GYz%!hrwzV()Y9k3F6?Jd9I zU+sV1zQ!I8*n!gm&jpjgv5*j28hRxh53dg&2v0`ZBez6_=%(n4v1n{%Y;Wx8cys)r z_-_*piHj0XCHE%3S@&e!JE@JS=jzq^-ulbx@2G#bA=j|JVMpUotO4K z)@xc1w6(XbY-cU8}oxbiLVK>>llYrN{0m_gvpI-fQ-* z>AkV{w|#H)_xIo4|7u}V;g-UI!n?)pl3v9}YGQUN$%}`6xZ}jfmaSa&{pIb; zH!L4tv1Y|pD;_>6deWkkcAoU`N_piwt5&bNe$@-B-dJs}-mv9? z+rRdKbsN@QbIShp1M91&UUlk$Q{OmEKW)KjkDQ)7eeVWq!-5SvHyk`;@fp{j@$g1_ zm>&hI~e&G~O_iEruNa^99lx4g3D-3!teY`Wma3!d6)Y%OlRX6s{H4_+9* z=+zI)A71?7m$${YE!cM5wx_neadGhC!Hdtn_{NJLy7-$HzrB6;_J_BBfBRdPBrn;1 z$tydA9fLbI?YM5o%a_WRc3!&v((RW8FB`mU(`Aoc_U1?Ik6iJQ2S4)O&h*YXJ9qE= z+|K7en*QizA07MX^B?{7E_GMKuG4m1v}(X1#zV)J8Z@l&4 zTc5l2t=sh5(zl&`+m72FyesQOLXYS4gcka0Jz@6{j6~61dyKcX0{I1{K-F)}5ySLxH|L*7Sk?(20=dydA z`)v5L#m_GL?558?{n_gN_yK$^6U@CgX2rbcaA>C`x$D*_G>R7bUKbP@4 zch%k`E80>;)@-(qm!HR9WNWgrR8wSosY9BF8DqmjTo5YG7_ymsj)svd)dq6Nw$Gxw zMpVNdNxzgHvGL#$L$yb2dxV6^BNJ=`yHO|zYiK4S;cQceZtky?hNNP*m@nlz7)lCF zs6$GNSW>t_j76e_yo%2Em-F4yTvi-nl`^$dV+~?G3tNn>u&nC1WvO1KG-d1RG8u(= zRm)<-mZg}}W#&7QtUj#DlF<+ggwh^KRz9vMk|!OiYqNZQzfWV`3lgz#EU}=QX@1`^ z1sTQbRqC33wo%c8NuR9ivM(9bE51PPsI}GvzYv>Vg-S6KiG}-1D%LoMwRYzI-!oDw zYJ0u5*PV4U7`(*qUu94kt*MNVX5)~5C0J$V3+D?$pefMQQq1S_xs0Z2DlKL#+FvPG z$~~+Q)>K*&`YRQwtWqxYM?&hOQ{8rW=;upU!k!MnqyvjK=Tg^_WSIQ}4yBrZZiZ5q0X>NOgQHm+q4# zN$yMMlATVfLy}qoAw~8Y!EmxJ7|{(y$z_?(P8xPRnPmTMEzQ-DzXATgfPJQ6p0*2@ zqbwTJx>>#wE9WtOKT_p;uTyIcfX1ep z)>7yzQ*jq>`&sqY<4-{M#+(>)3%mxTFbcg1L3$(7{ZZ^h6`K+`p;#^uJ|kGK#Vp-A zFwi23n%|!ct+CupT(5plVn`ENQus z5!{FRW0A1h!^#?f-p^d=IaZv<%D^3sjC$y2)JNP|YKca|8n9O-1VB-9C8bhE zgWL;`=ZB*e##W2$>Oj1w{nXxeiCq==!bQM-SIajnM|7aIll3$4c*gogv7fQyMPylv z9KH~hxmmI0Osqb?f{C-24+2V<)XeZKIn4H=0i{0TJo>ifOqzWIzqen6j))$G$DSC7 z^|XtON%{GB5F5sW*yGS5@%cCid@#o8QwCUck#M|lqOe2w6tHQj5NRqEVwDDg2i;K+n7z!9-XK8EMyF%Q5Rc|x)IT*W~sgyylcV(rG2Pc@ zOQ`UKJ@=&h+f3C-2g_aG%`C86ZCleDrMO2^6h%zdnWD$EgV+J0p~|+DE~7foAj={X zWhN$ailhb-mSr z&t!1l=~|32pCtRt02+DgqETD4%z!E>s%YtIOM_|YvZw{rfZgD?qyFhV@Cm^ZnuS@| z15pAm0xkl%m=pyL0dyW++HzDDwbYbd;`80=Yew+hUf(bmsZBuUQ)O9AW2LEFT2r?s zlUuRD%W6PfsNxq;7x{eEe^%8lNwTL4ZCPGFo$~{UdpyA5fF+qc3)ms(PKnnE39z?T zfGRbFN)(g@@Bs1=)rMF;N2qg%bu+}>%wj;1wb)`rQyfI;BydIB9)`V#6ma9u!o&RU zv6h8bTyaH?U%L!l(&CMgM#H0qj7CEWg*}pY*eeAoMyaF(RjD!D7}b=ZA~kxIps1o0 zO{gNO8MhBb_}?kDN8-W1kwONlhUjs+WTg4S(-AjDsS#k_A+Huk)D#e48v7eYYlRK0?PB(=c$wuy6`+17SKs zd$g13Pg99k0G6O!x5!zrSOXR_#(4>+QHk>pge+*c^NI@LQT{OEJlG8-RjE%!6pu$u z=pK+GRTlL`Xei#FmVzE*flpix} zZ|jR-%%Y?!b%vrES`Pa?T3246X7C2Dl<{|}k{W8QlNB%;3{TT!QSIyUNKEf+^x3NJ z??8Vf#idPSpiMsT+<8n!6WDE_!6r_lwEjo{7_td`YoJ(&fv2SPrPXEkR5!~(i;Y;p zxE>^iGN}Jf^)S)g#IJ0L9JYc%D=a7V>bsO;s(z!Pn)qS9iN8I_9s+*$2ocPBB$myT z@}*Egi)i3xE2Vs)Kf?Uyd`LX!p3Q$*#m-tadqmvFzRJELGW#hw#07(ejv3-}XU3)pg6KmHV|Jd3k*embva}YF`ASX-ca30IK0*T;q1#kT~9b<#58Jvn$)d}_eBNiB=`%N~0CJyiCeI9d=KRLz`^_A%z^g@3Ud>v9p1H}n$et|9k|LihFxUZmh3~<}39DP# zS)?4+x`O_4`ML5q8p{f3`NpBL{`w0AI`%gb=Mb z$#fh|W8F!3i*cSBXqw=F8i1QdlJjZ=E1U_Vl2`p6k3ZAy>r6K#Q<>&uvN@j2*#2NN z7_j59U?3h#`!b!Z(S9xhB$7@yb^WacVpY85_sQmL-EQ07Z3RQV-$w(s9f1%a1*-P$IHMjmP>u;Ae zT7gJDzhv8``LZg#IbT*l0X>6*o}fN|UN_I_t*v@cFEliOHb}Z2i|ID&mW^>k7UiP7 z(k@BcPM;6b>KQosUX-l`arzJ`E#4?$f$0qy%xq1w8b-mC( zwHGn(-3p+JBer(3G9zkq)yol2KvVz4Y02;Drsi}z`bB+P30KWt zKHvY#z~kg19KIPdOZ43lU0=S={9FRqS*{pN<|g7k*YMVBH}gwB!qs3gQBSf^>!wR6vy#62BlmU_v2A01`;c z*_z~s0jEE;+*sHh!KU z)|(2CQbSxG9i?`3xxA^l=@N6ZiQkU79oXi;yGQl!eU#vX`}V)-$$$NFypGeKqvzy* z_|};-^1tbUI~V_TN8DMU{?HrstzkCOmSCLA^v z+yaJ0TmvucAR^%sl?puq417I{VFN%5UFa|OCN;xrH-vp*)gQ49L$g!CMosoGI|?yH z|FvPUAXKYwg0099bf*e@NV*>M}z_s^a^g;!C zOAtL$R6yo*dB|p$H;F;L1i=J#Q&n6uoq^U*Kf)H;7!@|p>6(6hwjv%L-XQmYUY zl;KbccUP8u3pWQ-kGB@_*t%5CDZDamHW)?4Z>p!+_5vBy!>5{l%X6H^o7CJ!}un6w0WjYq`gM&32OJ7mSXR`Dxd-_{F# zQEMHhb%)nn?}btX(y6$BU*|FL62rGs_CBdv^Oca5%dOa`_aB%m7OU9&Oa)=AzO1?rr zYpsLEE!o^Se@=6v1+rBm==7FP8mwa0>w06auJ<<9rz*^NMv`X7&g#+QaZY28nb&Dt!8HpQ1FdY#nb#RYo0arA*y5!rATkLD(W(3b-PX5e6k7j}jpZtQ?p$unjKr+#k(XU}(W~ zX2GNtv_4FwqYH?}z`ubtMnR=K5A2>LY29*VNXkR}rzJxn)B{j9g1v)|s2oGnfA%wM z2j-W2R?Ep6;RBI%DVl1`VUj)1XR5Q9!bJ5CgR0k@gSrk4`n@iZ1v3Fj{7pgYilv|w z2>Cpc)Y{P?Cyo!#NrkK?(^PWc^q%*LEX`5@HJUx^L`m@l0zN$MBs0{gMs!UR#UWkO zwGO%94{C-Ol(95H=Fx(xqO0i4T$u$jL5UsiOUp?+6K1kM)D(*LWD0eqd*`GA0acX~ z5pUZvJ>qG#-n(B3$yg`yS$Qt^hz{c@QjQKvSd;s!#J=qg0T*l5z zSf^MB3WlhbhY}B(J18G=Q09?py9&jVq$zKZ!s(&XW*EHY724N{>TaZEX^5v46PhD- z9TZAtwR)-{|KpQOE|#P(Or`LCqT9W|(JR55wh6+Bz z`KNHYF%n;3%M2DH4Zw2Z?=pp`#&k(C8?Aax2O-kZ2Gc}CF)}MpnKiI}{`~a=vrd^E zRstT~7xo&K%+mAGckDmG1`KTjMgqw>itCu>G>&301o6lb;I4n-dkiP1Fc6Z_NJ&66 zsmx~p;t=M6@Ki333hazRA8CFI{g<^3daPxpaY9s-(%o!REO@i7b}5orXqGVKl4_Xx z7j&=nh1ng$KCwv_t)~3IFJsX!7zXpGMOhN1<{k+GQirPFOdtT-@%JO|u!U?7)?iRL z+3gYa2d^Vt9ie9Y!SW$u{f8uUlGADn>-MM7kEfqv}l0 z<#ACBk;$qTDsd)$T=SZH_nKZ!j2dQllV%x)r8f1LMzlp&{F)W<$4%4p#r+X@%PD%7 zp|-TBhM_7den!EFMh!6$=t&PR(jn9Xks6Z1^hLwzo?|>&TgayJ!!5_F&pD*`o&{jrrdD2V*z@dz-VD6#PBq^MW9DqbBbN>Kr zXc&zt&ibJ^lS5x>!UP1q@Vq@`4D33+<<{V=c~KhO#D zm}1z?wj`>N1Yi^TNG%u^nct91%gam?`wa>R+0c}bCj^Yf));;!h69>ppfykpY;F=B zV1OACrH)zo1p%ltJ)xN44I`mS(C2t9lg*DtT3SN!dF!&>;!mZbf(0>yX&|zQ-O&wW zT~HLmUcV}*n{-LVW?-@r@TiIx_QnhSUTmy@F0!5uJIo~9hMQq&DM&vRyECHb346WZ zXwgfE)lF#`OxR2s)e0?%%W^?WN=9tU;ZR@-;+zO=WT+v?%I6@vm-?5=VQHwn6RrZo zUAlaNjGtaQ@kEy|cx6$a*V8tOv3Z?c^V?-b>=8X;Nm7)S6Sth`zWa07YwcVvcNc+x zo9wqBWZbGvt5qRjM-j~G(BM`SEFXaa`=qA$M5(R;4iq2&$~VpCq;Fi;lz2}vBf_Yp zb^&qph^+c^Xod`3H`rW74f&hu8gx;4-j{4PpMXZa(pM*WVM}3RkEFA|L$ggvH0XV* zf)4z*6FdyO7a%i2+nH zf&7qnW7gWBL=_uGH$#@9A|_N$N^nAyl9H)P5lQygVnB%~4X0jq>I0V5Y*_=AwG5(y zlxtVRo>WTp$QwOsyJDyXRX*_sWwLLd@^2yc5Q>jj_mUMCSIB;|m z_!t2mG3X{%9{q+`GnGbXBVi~?OT`u%Qcbn*3=r3;!8++IyD#YT1$}aLOh$yC$To@9 zF(~<2E0p|E**@FG!07sx&vU@z^LbQRRw?Eg>=jMlNECS^Ts~~uCp%Z@O7M>j14ogq zp$poEg~D>-RN*XO<_2*PP8sL{Y}85_d=rwTL2-yl=>4=*TAnRRz|jC;sF^Bo&2cm* z0PN{fSDO;X^5n^-ClfA!BQv#_DpeHVlN{`zN<~s*DD%U5VZUX^gO>i*D?mv$umH19 zk>#^(dph4`pG_rxzyEiBe3$z@5VBb{?L6D~V3a1F_Lu&}XJ-Sg*nzfPA~N*18mEF%Ixs%*2pA>AAzwM)or z)3t1SbF6!4fZtXP4&$UsZKSXNt<(wo=D1$NG7b0LEA9v zQ#qeutDWRq#2UQ4_4!m?MTQ=MPbfH*vt^R-^`b57N z?dnvdfUd)YART!Zyx2JVB;Y+n8mAU84a5n;Eu|6aC8nV>@R1^Z5K|6bzmLF(?E!ZO zb+l65XM_#7*;otCozug%$5Yi`H+8VN8BBi9{0JI>4_4R~G};{SRsT|4vU=XUrWA`b z6pL&@_wlgX3qmVkW4-HJNS38RhcCy@($qA$=W$;->@Y2(Mw+m#YCdRDjzwleP!8qZQJdGI|rYN<(bf&Jjj(L@7UXHd)rc;eo0xY_P#ZutW(}= z>s+QWbXr>$%mn=#;8cxBBs+ePb`ktD@whi;}XbDsz8d#!XgIiMY6=ofde{AJd`kF@LG?B1JM9}x`|zn&6`f|NVVn~tU&c`I|Q#2 zBe1NQ?BsN*P!llzGUhFfbsNDxcfB$hY@QAkVWlP#RbZH_WC%04)6`$gl1Ciq#V8OW zEbBm!NZn{z_gm0dTPAk>aBnXtM0H|p4AD>u|LD|LO+V;|Rx-=AdUHvi4%v_F(Nm^q z;@Wc#3HX2%_u~Z8ueiv+7K0-@&5A^<>H}8fRKF-%#(#BTqJ@JtNB!7^wOb=rpXi6G zk1pqbKXQgxI=V;YXdNU?CMVLdV|rhMy<$3+qA zF}eqrS5v8bQmK7t-m_pfPp_wj@R)G$zq6k-=w3-;bRiBLrVA4^46shv;!1MwTPfn+ct{jilC5l|$a>j=OlY-j zk7-aVO!M$*@?&Ws?4L#7$O)9F01*qaQxd9&`pjZr?x`GFH9vfAK_y(;0mY9BQJ#Fp zNUUU6+f0{dfexsCZ+-CiO|m&MwB)=L1er@@kEr!7Nj1R(WB?rnKVeFVA{?f~O~+ed z>FPld9)=N7grKqMI5RqH+1bbSbU+ydVc#=giYy9GE_sfuwsg&h3yTMjGd;&`lA$hf z)2#y-Cv&8Yc*i1KcQ8U`8bx}2d`m}B%~6nvi_dbjuWNFi9j zY{E|$-Qm!2R3}VP3V_$z)rofoC22shl%rq08~#b6czG9dsug!0Twb7twLW01HJ{5V zU-H=>FiihUuX5qYF{3-@zws?kPRoQJFh)lTWP^}8j~$)kSe`m|SR~{Bi9Lw(>N#jH z7h)zkE$7lVHWQ?D@*ja_r35jba3q*w$nyQFi#xP(LJQk> zu~|N*$*Zt{bf>H%voc{wu|WTj@tI^Yn@ql<=(ZP9BwHBtiV)i^Ur2UsI3u8MUibxe z3+I8p6+ucIp`^qu{UEZyC9}!Q@9<;Tq}nv%p8{}Lt+31Z>7ca?yObOt>%^#S|J^1P zT!O(#4aF>NLw>N?JU>9t4tSu!4FsUe@%lxtX2Kgv^Y&qz?DK^N*m}ZgnuoP`M7#P^ z+|&lINiYyPG`&Z|ELnA$Ij;uy5>nYymuY_jh~IYrqHfBT-mOk03p1hi2G?fpE%i_f z$NGNYD9D}0gBp1#*K`>Qxoo?}eOQ;s;~SjtyxNHfW$I}qIQuKbq5`M?lB>YDZ>lpz zRGLbugp1c(bk}?oYfe0`a4+^6|RAoqkSWYfZaOyZEbuUU}vx(|EbY-oW z=yy2Y(yibeQk=a+7lciqi(_c_6mPdAk*!|AmT)}x6s{nK@Q*-CT)>yRdIFLoh;H{y z&qmp$aRpEV(y%}{pcx_5MY0&S896)>OZ}x40|P4tzL{uFB$|&8(N?v9hwpuIxtvN!@HfCt>WAw+)PCjIY>`|U z!G?hH(bfSL&eEd_aL%s~{mXSoss<0pGRX#7Oe4i@1$huiEJ^`|vl(g7Av2+7E@NL( z;+l2lyy9tfwlA*xeDJ0lo;4DOmfNbU-VgvC4yo$hrU$1^PUqLJFhwR79)2fKt&27` z8`OGKK%@}nKM^j^WDt?P5COyX6UK!?cYA~UP6v8^R5RpObJc%&nD4s^=4Dtqb5+8}t5zoaPwvmwGmX@f&&j)&4C zk-@nF_|d3gJub#0DqamI8?-_V^#R0g=02*Qh8%@JgS1EBD+pE`KEWjc*-$bPklIqM zQC;&#nvyj~*4yjCfuvNQ%g9l`(HyQL96`h_&H3?jgcQ0an4Aq1D_ zivbA5n>v_NmMbBfgK3K!A4t08=#=;!$B}g!x#CDq6iP#CKr7D0VeI=B@Nrx+gaVk< zV4Opudr2{lSK&bo;FPc_qA_xXrZUc?lS6E&=wwLgPAza{_e2eueAz{HSYf8+k;TQm zi$&Q3ov<<=OCT{-#zafdnqg%^8h9xvXB3}bYtHm^XIdrO7ZL#*kf$SXenT^<`W+Lt z$NZCdfQKpCX6qHLK3&(upd<#u$$BhURAHJV*1hVrG*4?oBH7UF16lIja;21Pi2C77 zEvj{*q%kG>mSv_gXE4Pk85S~VKthsr^$vM#KqMfRbbPe<20*0EfO?5UcW}F`R~026 zfC8?(XabN@igf@MD7IxKrNkL5a9;DHu#PfQ)g-^H=@L6Z3>qfneZ}ViuX;*Y(lv8Ub}0>taZn| zpW*nKTFm4I26Bx>qoGrszdU~|=i%^`%fZ7H;BnB#c@L-zz^)O;0ljISd-21ZHM5Xd zO6V1)i_p!Q7b23e0yDRZ;&yB-OB6>&Ad!jkK_^0Kt>Ri`NY&LLMaNmWd@2v+117ZZ zLfmzs2rYvwZrFf}PrSs5P&!p}mZ{8=7c3hb(>KD&bvUw_|d(p;swoL?{D*MFGquR9X);`a~bT&{`bH;_se zKZmcL9)|#{&HGnGMbS~^v?w1i?^o3pU~1++XpUiasr9io&6rR}uTJ!mbUQ#(Em=6X z!MzO*ZiO0;U2|$?v)8q+!!N(*?6dcr{T{akf0+u_-HiO%d-igq=st54&y0dcz*nglcTS9OnS zu*NP3nq3lG`Vcmm`C(1FN{{Pn`mENJ)!UcqQ*~>iuZ|peqGeKZay#@}fc<^sQ`?e{ z;N*{1s+1@YD8NOCjgIxMT-iG|7D|T3w)JjrY_#ph#_heWn=keSgT9M5yFNQ410|rX zZv$81KwSg)2cT>W##J?9PXYbLqRkG$h8u^Yb1J*>v3YiphZ%EDWv36#o44@v<^sUMy5-=f$AH)kmh$9emt<% zLlMM%e8@H&t3geS^Ppf)qLtr@;@QBheQ;vn!1LEtAQbm9x;`k1eZa@4eu_iU)nh1J zMHgB_mu_O?;ILx0lGn2NN&)c0Hm_g5VtwJx6;8xP#>U3Z_&dLlA3+sz3_vv@e#8uflD@^WaOebz zcrZ9oh$!)HSOuejl2NF><{?*ckB5z_rW#4s*>Rj#6|Ej0+_#!>?2ErY%h<3iWkekN z4J)2NQ`iH0l3W(W1#=6@L7PdTsAEZFFmk~O&cNHQCZpo~GP>Zwdu0~!cn5mxq(G_Q zdB@|$8@;4b<8U~P{WuK%9Daml;>2M$fxiJA#cPUW1LSRcHR-AvK3m_Gt$sh7z2T{b z_J)S`C9SEu3I!(IwbOZyt0T~at7q_P;Ge;)5mEt51AfV|8erYPWS4SeC?~NRdlXBC zqpX&gS7AZ~D;xy_MEp_(N}@717D7z~o(~H;B!Sn4brW|w8yyk^oi3zx$H8ou6Fd{& z(Am25_;M+sXJTM*;picfuf7iF2C(3fUK6tdJ2^@v5oUE$OKDwLf2K+SPYkD>h@XOB zE=!Q|>tQ006COM4g#!;*2{i$`sNr*^vl|tov31$zV(G-*P8o)F-H+E9a2D5n3=ToQ zXdo13V&0$7G@QoNRfR=8;KjX$fj3KbA9@Dfq%NQnqXY4nbIY<~sj&X7H*k0)ihl+*ORc@>~-D{f}to+0(Uo@bt+0&%hQA)MCCXe zjc@REH8d2vXGiMUwM(kHJ*%Z|Ef?J-(vM zZs9g*aM#WWREMiA$3iM;<1yW&e$ZODLK`V~0p?2VlZx`Vsy@!IL7cEVfKc7!#0O+H zBpTvIN!o~Ll_XWq#!h}lWoIDzh9ZtbbU1^l&mcNe1Xt?7)E$5U9Z(>&VCKL<4-Wq4&_=DraW_<6y@%0xZ?&*E7bqsR^TQcBrGw$u+9-~Wyjb!<(K-DKY zWQE9#!(b3L<2a}^PlAyTvYjPz*%V7xhR3J|>_$9PAqHxs6|*riNYm~74;p(yab++e zz>v7*x89H}TLIJWRnxJ$P%s#(gW(otPZffh-!B>4eOkz?&3!&>;bUP}q|?0%z21;w zo!V^M}>cLz_Sy=Yn zr3K=_RN%CSZ4)d;bVph~y)G4Ou;fq8$BWsV_Q7_)Kb(ncMic0v?329bI4udLVAFz6 zG3gvNaIAjttin9j6w$!6hHxxH1GLgH-Clg?c6hX-z5VWnu7=-sHFVv+YuE5)m$9Y8 zRzr6Ke)M&4JPR;04xAPMUq@#sgcdG?Lw5p&Od%G<8SvoID)=UmTyx2J0h)L~Q-KXD zPbzX0s*DZz2ticd4qa4r8)>B2zL#wKW!bFmG-VZDm!cBGnI3p9U4|BK@fNmWRbRE^ z@|eICUNH_}wo+D*SFL?C1;?;4yX`aVYz%n1^8pxGa5H|0sFv1qFG%SHJp%XijyiK`lF|=sdRlp(~qjS&5 z>8xXjd2L~G0g=|Q^u1*`l&WgOaC;(!ShFO3h7PHMy90%mSpW4fjQsJqItca=srw{L z)#gi5ge{h(dsKD4j3g`GRI|g_>?Ode20AlkvD2WQaft~H5|%iyJz72zV=HsTT&@_4 z6{Cq@_4Z&Q5o8I=f9|7?Lgq(B&g-|n!Ap%`BATp^EWES>p450c?XPj{FAILRouKqf zaAy8=Fw2*SaOIUQYj9vA0X6sn%-1mH3+yd+4HkoRI~Q%b=#*Pd zVPjuB?etBXPRB8TX*r4LEqQhvv$K_Bp`Oit<&~p={sMqJ^$)Vp7#jh`0)7ZNR+H(; z$H6tI_{mWRD+PmG2Lo2j6i2wH6u%tk!I4wIn|vJNo&zVJe6o)XkP8%Csp9qpy(onu z4?4NUNcARR2y^fx7@ld~4-&n@xDi7~HlJ{|Qe*GP@t$*h1(gE{KM70Ch%t;(E8-Pr zLkZxpkG;g3)p)0zI1dUv3`^w2JR=E!CT=rW}7%i=T^E^$MSwFE}iE6E?vRb z;GbEVJqkIVOYjvaKyhT9I0E9)_%&C`7ojVKP8J2&=Q*Ozkg5_?0blm`QBN`x;+27}2!(kpulP<4CZ zD=pzi39*2}kBQ1Qui6#Hp`$L4RbY1ec^{wnILZ}Zyzy{BNb2U}=J+>PV zS`WKh8Ru#j0TvjSNXRQERIbF(chdBNWrzU-MO#$xTjY9?armyN00u;w*@y;?=iwphU|{k_U<)(ZC-D=v8;)(c?)i$H4yA*YumQfQ~f!UPqJ|4 z^eQPRspfFV1KyKef&1b81A@NE2v-k^T4$)OyW8s>jFtVN)`8WtomljAhCXhn9{)-x z{WB@U6OucWkOaLce2yGiK_@+gD2FK*Vz^<0cp>PJNN9sA4gG=BfzFSEr4}MvKCKhn z>j;RtS|IzFa!Y@!&znf58kRKF6}>*6HaE_O=W?7=m-OCSv3_BqCV*tS5&f4}fG;m7=c>u|6j z#sS3>ccUZlk40NhLPG&gMc-YW0%TGyUS`QjfwOd|#W2ZOKxi0uaC-#z`2qlE^DqyP zYd0$BK@kYH8u?-J66b9s69b%U@5YBF+?YK($OUC%k;ZQJcvV8CS(ew zskO1aw=Riyp}S_LNsTpc8^YH%W^d_fLjRxhCH-F6%vw)c4b3ai6OVG-3a=GAdmWy? z>dag;JkU6Ma1aUxwQK%h!ly98*`Q0Kpi3m(<=t;F9Brp1%R0z13Slmsw%Z40q}f{H z5vs3nP9Z1D)z?TZ^)r!vU#1@$n_@4v1QXQ@WCnNJ>VEmKD82{|s7@52#RAS^@PGIv zR_;Ff_8_!9z_*-85EF&WJ2oe~EP`7In-eMVOfQABu;o@0VH*#Y_q z-Vr)Xhwg#*2as~cgS^_n%L%$lvjV=Rni^ z^yLx9FAj46<`LJZ(p2b27co1usS0ciPH9AMP!_LsbeR! zonZJ-?K`RA2Z_XZ2&a7o4LoET?-&8)p>v*7{$u6-a7H2j4{Y~tkmyV;>1vpOxv+~H zSnZ<}HLklBmygjWugT@uMjS|0wPahUX?A>eI@FQS)R1fk@@b&0!SW!mS2|yPG98Ph zV=r?5zyW^c?u4e3KAck*oa&K^agQfnlsu;{SiIOH`~9+K@!D7>7RyMy@c_Rrn~|oq zAwCHIvk2xBT0NUMQ3#)yL0TaYRxC~rGd=7wkE!0F__T^&xr3b<_Tf100may@8xl@2 zU0^5&=vfZzE(7e6Z}qVIjUsSX4xWeeuft>km61OPSL74o(juHFROo{nIadWAtbLr# zowENNY)i*+2)dZH8`}ok0yaK>6+j|r$Krim;UtTv?}zA=$js)~{gh0wk+%9oUTIE+ z3@s38sc&nmPlf}^!!o|%N10S8pnNHJ+aM&FL>@Ei6LRR5l z$HaIDy!a&u33S4tCl=joMS|Nn<(C(yq%!X6jWZiTogI)N(3i+5j(|p!;&elA-HVB5w z)7lkl-!pTjKhYYBwZggm0H4`kDr6jX7vU56P@Jmp(3!Wt?W}w3`!TCs%=j;Nbkqj*@EdsT`@a26Rx^C7S$U{{%gDk z83&qtJo+`7rQ^QjyiZ{Sb?<|zzQCe7Z#?}Y=awSB|0lyDsuDAG@u@{c7nTx?1Y&Rxtu^% z9#Fh??5K6DkGH557ra*hy#Mw6%emzP;cy`64JeaC0O=AIQ7O$ngJsY8@BE0!*Bp+Bf~{<60eSW zH7jkKY>#OZ&9cqv!|Wr1~7oV$gsWgdZBxsoqX39Ku~XxK<)-i}|&nyS$WMchZ{6cM3mB^oQK zJkKv`r3{}WE&39CsMfKyyLPR8LTO6Gb@9@Mm?jPliCU~7RgdJ{xk%Pu*x2Ov+UFa<6;H6OkIrBXQ@f3E?!IpV$rTlW7IYl@FsCre&6+6xx=St z+J{7?F_+3UD)gdSavCf%Cfk~n=<8WYkQ?Vqg*)9<~1_ym(`inq--q} zm-tHxLldu3pXn&KXK=;_>j$DZ#;yZ@0be4QSD8|RkarF~&XIvS9DX2d6ZeFBm9D=} zz!UD@{Ru^`_p@|1@gNoAa;6fr;$cHp{7L8%NS4J@v8K?1)&bY!3lfeX4uYG-IV_^T zQ`}w)_eV$l^m#Ei6`o@I+!SdxoiaC7#M+~*a3egNMR5X-#c&vQoQK&`9E1~7C{Kwv z5C=bFew|scmu}i5zFfN{XubSjww=0}hDPxJd$yL{2B`|#5)S_y>fLd5ut55s{t1s| z3DRZS?6&HqS* z41@s_?%sw^(T#|zh7={tSc5Me!l__{Xg4^@Y?cZ8}o7oDw$|5{&PAZceTfJ zA3PZKeY$=%#rJtU7h-D)3dgNupfTjBOa7Q(o}3+unWB!&CQgS|909x#ye8=zGDIvv z9pTKZVfuiO@oimK?+JUL6_oi`71xAYl1;YVl!PrIld;0#Z3tH8Yx+aCSV6WEM=@_< z1N3c0{*A?C0$=gYCX&Hr!`x{jH2i>GeK%?)6Xi6t3*EEQ34Cw&+ z9g-$u?lEN?pCr@Getz{YD0*O+e;7V(9v1~RptAP6yR{Kk3K_hqYwL9O4Qy(D))Xti z+k&fb^K{U@(8O-@iNPa6biI9LM)Xz>>AE-zUYs9iqoQ^3)gv#PP|}Wws^kCWoTCYl zb(CvJ@!@msfr#UGrK0Q#aqxhosRxHe7%W5M;36H65v>Suo2Z!0o?cc=h5`fda$sh6 zcUpyinFa3GLae4ypvx-;X65p5VqY|nwyZk((p#NnrI&T5&2+bJz1TT4)cK;N^Q@d3 zSkaoV6N-OXiN5sJ(iDMLLMcn%hvZICJZ_rG6(Vn>jsRU95w_oW z_L^K=lxh03^q#~+tP1R8BnWtJq<3rY|W>j@Diw0U-2U@?|Xr1bdsBP|2 zucP|5p`kWvQ+?3MorZR;1Lriht1&#~7+B*cLu*><+9?Z2?j&iEuLf|a<7tr{VmPvf zPkw?&W67Dm>px0mQ?aa+jN9J0*vzt`&l53&Y{v}mbt4t43s|1bb1elqF*f+XWI8tUeluCj#AaOEMEO419{IMeYllKxBLQ^~z88XF7j%L1(6) z4JLwr4#wlSBrGkNZ?LRXOH#8s(6;tl`sZIA7oYp*KhKRH_bakf9Qh+l!w&9&ms<{) ze;)iZP6zk4Q+NPWpa?QY`W75IB-%$B7wCXN%NoeYoGU@QT`0%sY!`2pcM|+#IplLp zrOs_J?o^C#5s^Ow49yxn%V~`r3-5W##{daXNy1vj#YmDlxt!~05^)z1QSx^M-2s+agS%L}*d|GN zQOrqFP88=rZRf)$bePs6O5x*Rf5S&3@CePXdL^+#QP2`ZQ)EjN#fsYr_#4Moz-8YT zx8wLU55DgOzZiVrV(ywDc-7Dm5l=gOqTtHIeZTD*?3biCRnfH(XTs!0&}=5haIgFgiNX5@KYTYsQO=jCjns+iXBEW^ z+V~I?3xj1a<8~OcLB~wsf$wiCms|aQs7;yd@JR1~$J_&*LJ?@2pWUW2LXPBGaS!9h zxVjnmlz1On4(9`EFcg9%XT3f1d+S!#B{$9Ko!{de%586tC$g}ehP=A%*S+Czgk}2M zd;TBJ-UC3c>%8yXbNjSAclzwKo!Qx)*}k)N7Jab*L68K&B?y9GUlvm=Do~>+sx3uY z=2L}bTT~>Gh9%jSNf%nSB}bBNxWr9yj2DxNTmv_SkxQs2+mRJznBRBq>=Ga;C3(Q? zomY#+Vn0i-~%puZO<&#{7QJ zNVgKtvw??-+Ap!Xm(?W**8Pm3{AdCW0RK`gZk~~)y4mY}j>+h9?@`=Z`6A}$7%eNrYhF5G55ck|ac-}vVtRQmeRvi<+`+rc!v}YzNn)LUsT2+Wx z$G>NVs^RfJz#4i9{vNTN{yMf(;aeWUcXe221`t$jTUa=Bg@zC#s#p(7uG0mcYWk`@ zDu7$pX|+w5&PSKQG}z)G98&GYrY-q8Mi-m2#&C{qy@ynD4&LI&@SpZgYk;Xf;!@44+$7I@bGYzgXl;L}4jSiaqf2=93&qFG0Nh zyUwGoZKRw}Ou=9;91L`UZ9G9Ay_^;yl6lC*>zVG$MO$;%7ZU+(G}da}eBm6WLJMec zT4gVomPD4msO;^zhcP|3H5rHV%wM-+Qt%cy?{lY5pV4J*>wuzvOw)E`?(~g507@j9 zW#PlnlW0E-N&4iF0b5^ZEw^iCF~mcyb$~(@Z>@}Vh9}F#VtI17Ggi5kcv!W$HdkFb zIMwN6qvqD8rh1=0NndSt>a|+E)0~(eK1uSHupM&;q8sFx+5R{8@(RB{de0EQKT!dx z^$I`woh^FosIXR@e! z(ZG+M^jPsuM*Se_9rX}pUg@*`ihJ4lT@R>JQCv-dP$vXN@0qCYjd^^)6-@yPj`qH# zf9CMZmcRV6J>fauZ9hI0+DF(nY(|&__MseOcF2i4hjv892lVeoYQd!KiyXZ5m$_hF z_Q^IKPyclhnhX3r`{mxovzvn8;orN$uZe#?Gs(ZV@uwzx&w`|UYGUHr$w@vZCMI4O zxM<_q$%)Cyi6`|wZgaa|;$cykPY|$@M%(SS_ZbLW8Xre9FTK?pS&Txeu~gda9P{oP zKl9-rS#s3r%nQjI_CF}1_pGott*m*-+HN9dH;H~zzI!zq>i>&%s_NA-H)GjXl&_65F zy9lEqoT~BpOAg(BC=vw*Ot@Wva3~^W9WMc!7xQSu7%~k%;ta-eiE@gmz%?sOyG}Z4rA+b>;46hcXgKO7KWcq0j5AyTfZ)7Z=$Ab2vq(EP z8O9^gyIpfV=|Oz%|2G!~*9c1IGX|gMJwv903v6Nu-GT>H;X*kg-LDI2scQ1tEw|>| zG#qM^RtWdM_H$0)$b3qpq<-$&YxR5h*B8E{eoVc4pd|V?FVDVD_=kG zqbIVK*#?f^eD#tAJH^OhklJ@>IjW!EB1V0RRc9Y}(B~tUCdlX&+D*V6AvsAKr6Ed# zwZ&%63Wsy<1uYqgYW1w=o%PaTFw!xxm7uWqemmSgMDvwhpOIm$?j3tZ*r8-^p%Zzg^ByXTJ*lDo-ceSTd8obEu zTW&>lDpM|Jde3Fb6|yuGWnSz(=S3^!%yp}O>HFvRYZ%CJ*FB~kDC!g^e@8CyeL0sv z1eU&^Dfd<@tAedK?gpG|#rpRsJXQK0m&L-sd();&UM$iS_oWS9+`G8#VSmL@i2yEI z4zOS%5*qq;zs=ozL4K13clibRNfuXZ-&JI__X2U|1NvrF2V(&1FpB~?}``CEz&-dSCa0!2iGpLK|TZztg+>F&DgFaL2q;89r!HOBo$;!4?glI1A_i z`>QGBmW$5xtV5<}U1Hs1?j=ZyKSi7i+n#x+XYJ+CUQ;~)E@;8DdcVc@Jdsg^RgVxv z-1{xd9F<_=`$=rs`%TlDmyO+)S>rsICH47yhnT#uf5eb;OIXJik!bgjTkm?2YW3^Z z^kIcIHhsNGY~k?I79a|upd~^_L}-zg(HLGTIDH+nOB12Ck;e)l+7Pq0qqWc0qVZ0{ zyt{C2(YV)8D`d}mH#-VJUbZZGPlPi zksZ?mZy$I+&x&d(VhfEIOABU8K@-xLLR1X{=8V}KhDI)*t608;JjuW*78z;$jQ-sn z_QDPYzZ?H|mBrH_7I_(6#F#JGLdwTSGBFISZy_3s+T#_&Fs6WN`?$ek>6D#}HnR1U z8xb2E@oHvb9-tucx6rj)Q?;T@rr+aVq<%v^mducEQx$zblEzq!)rL&2_V^HZvD9ob zVbsPfqg)@EnI3^pE*~SMTGE9RV`$8UnUkE90Pt1X@hZ_f;p=tH(sE@cR?c`ys0cna zG&KpDp?XubqGfN!b@Eqist!2tBy;sZIGfC8T|KM3_^n9OARc#I?-zfopkCk5pBKmJ zI^*>91Fyv@~xVH!iJq+}oDXKZX_JYg_di z+G~)u`#opNTJv;0pRea1(Mxr?{`wj_F8+ivf1NkAu~lAL`XoJc>wCGsy{XcFosAmQBCCj=B-M#xs)r~^IdzE}-v&-`38=TTr`q=M-neCq`)V(i1^`b%u`?_j*JLVnlc-435iOqP_(O1ji5CNZ}#VB z1~-1>uebTs8G0k9$F_*E6aN#M?AlL|Z_UppoyH9G*dEDC)SG&5-(pucdQbPMuxIPP z9|ci_0%^a55L@?)ZJuvi7%s#6?Y^AVTMxe%+}o>PO4Ob8-R&E>;+1%~N!b_jaQ9`l z(Ep|xjJEtrnpIo`Mj8DzYFfxPWpJAnNPLxHQ_x1Pv@fwThW5V)#%DX@^M=(htUH&I zIiUSPCWnJyA)Q*f(=r;Ckc{#+wde5JD&h3fBfgN#YXG!V>&O?#6LvE)5fjQ{t4TK0+9ttgAN|m0MnY zGn~NHn_qoP#rSpE|2pd})_6RfiH}+Dv97lGXx;Yf*Z_VI9b6<@*OUQ(ygP_I8cd=| zv9YG>q!S#17WIb#d>=EScer*7-%m_AzhHvuI7j%GNiq`mAo1WIGKgL}755I?E~FNg zc{J+%DG`ESjzn%G1BdwT#|D3&k>dW9}TlE=?Wq{vDZ2Xto%K zWNy}j(QpWEAvi!(fiN1UuN(Dgy+wRk?(TtBUeD<0(4@x@{H#pxLJ}n@S#poo>z4&W zi;>F3bSyIQoOb*Rkg6jps8}p#$A3ZS!GNZ?eC5>sR=3;wtJ+k%VlLUyTy|_PCK~na zQe(0H_E@<#RZ(tzkAp!=s>aZHz1~gztch<#FoPrp;Hi*xcr+aj)kadG0d*0ak!f1= zVN3v6YjT>34_+tDYODQX^AJ>1p~MkVwOZ{(=BK9B{uL51{PHhH4R<9nZe)Pu2zf8u zMkuoI;;FggbNHlaSJ>Hba}e~28_~`f<9lMUa+FWB9Eg%w2QgM+*~79ggU?`h683LD;Kw2Vh3o+wsVrqLeYv|$aCBLtutRq9jMboM2-c#WIvkHo) zOyWlq*=%CfvdBW5Oh>)c>(8FZW<%f0`2i&B{_heYnF(zOGP!85Q6c1&ZA!XW22r6_ zU_Xb^2o}!1QrWLFj4vS_p2=`Sa$D*h`nGy^>D!t!AX+kdpO@~?*W2pMb&}UnyfX;n zNfN*H} z5Ha-xELiFZNXqcX8G}3TyL(Tr_ie%yeVGysqd*gRa|!rT;Ac|_V-zHlQ!LY>EUZ6F zyXsgh88dr-Ot{M!u_}h|dhv2O`XIP|n?RK*;!tkw7-lTvC(_0*(14JA$rBC8OxM#3 z|APJSlWG-h5)7O$H-|1@Ex-c+(6&smS&A5`2LW;013}@xepZGKS%(TLyi_bv1kP#c zU;QY)@$|kQJi3b+Bvsf=$ZO0n>VxoDctcjoh*#^a#o^JxK{JP&U3tUw2g9C7M1RCG zhnfq`5gw3hIwK`wDa&!Q1&MMY)0D1mj0((h6wRG=u89$J%GCX zpp>vDs@(@)|HSJL^5R|F?cTI`Q`aSP^Zj0oe8RDqTHkTpx$pziJ5Ef*t;9_>9^}7M`T7j0@{b z|9sRyVD+8@xgdnjpm2itx8f{iLo;j!>U1DLwO}=!_&M?i+$$8*_X1)2xdaJmWv&k8 z6UoXnkFSq0Kx$QU3rgK?>CLjPd(Gm4sn3wRkh@0W8j)|A+vPz-5Phfb@Al*IO1q-U z<#r_=XH(dxcZVBljU&6lbJS)f?#DU2tI}?l`QFWDrT2--_QokWq)*ag25n=Nwow#x zB;yso9LB)Wb!BAgn_$1ofdvSm@PCZiwpBB{wy;cn<7Io)MmlkJdCZJh&2~g*Nqp&c zf9wk7PieC+@l#)np}GhywPkPIx)#0krB{!LV2XhHl2U?`CpS-?yr{4>*|W)HDY8YK zIb;LR-zZwcRb+K|BWy_nY2Hu2*E45|EiufnEh9)*r~}!n$@n>GxIHJP5Zx7|BZze* z95Cd}IW3gnA>jyRO5BT_Op$UH_bXGh6pEA*K0swznD`xQ?_LxleBGVBdl~7>NMt!Y z@B&eMQ6d7FL<#P0|Lg2DnP^xWZ4>HkJ7*%1LSDf9wIM71wpvw!LUMUAMIX~jq)L2j z7X@3^fzKYmZW+rSxc=k;o0VPR{_hA)zirR%Tbm{QoHx3%{FAf$S7-T!=;&)lqY-;D z7Ae$*@=|VXVv@uXwJCC>@`I#vlHX}-P4$BQ+P5R<$RA|smr=oz%H;L{gk6VBD^ zpS}>3zgBIbjAi;nt8=ChQsmdtlZWC8AFL)JE@2__rAZEBZr`az6uI#>C4R0S?NTD0V+7 zTB3~v2&0Dqi7?WQgQ=w7-NQHE6e(H<70CoHK}8GziX3GlQnA6uv$e`h{qewZ5wM&$ z_t(XPIeft>Kqb>$K>8bt43B~D2lW}!;vhL0&I8*Uh+)G{BP|QBmU0cRx zEITPFk0)Gi3i0fA#tESpakF@J778q}eOz!%1z3)%S9-;Iy&ebON)`>z2_A1%*;bpe z-pBDK7k2Eu{k~iy{+mJYoAE|uwOqN|^X`_vtLC=$GQ@EU{N2F&Y4LtwN)f#kJg**S z^#F`nzTe07i*R;Jy^kw9n@m#My>Fv2NiW>#e14ZS?y+Pd-|_uUeTFbAde2U3^n%~0 zi-fTqa7G(I`s|PNd2z*{Hy6}{P8cd?S!2C#*JmoVEH*qT{PRv!$9z%p*i2o1CW}Rn z`{5ZZFi_{!Ltvm}-kTOIF&J5~v`7TF(-vfZUK=c1E>9<%O5%2rX08Po!J3P$1A<&R zfPHsi`PY_?D0Q^EcqPkS70jx$jY^wbNR@O1VP$9%S*C57>(KlhF|4VdF)hCAb<=8d zV0hZ7eq0?{>>gF>%Ej)Lf1t)Hjah(*l}6{!4aAg7Zn3TX*t5UiCaH*NeLt(De7@Ye z&D3xUo~iG5a2a)ngd23*3V|MiXeqJ!qUcJbw*-jxcgb4V%ipt|^CsSIT?So#ytA{z zSoy^E{{8?^+sAUJiB*x@J`y)@5m!>-A|54EDw1vzqP3|_ zt?RCO)+0ROBi1kLrDuKG^PaJyG1J0<|BPjQmK<1DSmrH!9kI-75P5H5E&Nh*w*8Q0 zJr#}q8>;%%wtYWLLA-L^t_FDL58=)4>)i5Ad7miW;qR(9*`D!H-p777@>8_O-;6}> zz!UH;0F%8RwC%g2kzYeX{fuj`aE>nXg%<{fw0uZ^@3&QHqN3|E{b>6Ea=xU?{Sbby zcU?=ez_DLs&G-`&7tDK@b@topK7euOD%P5(%Vfd3Ttyejiwz6&EA=C7tuIc9#1D3SP~f{oeCofHCVZ=Mf*LNcVxT>Cofn-!=9%r;1QT2$682sorK^=zRwBpK|M6y)Y0wvZlA+Q%%4rKp=i0IPpWxIEm# zUPFNHvddL(jk~ZCSaqm(H66l6o$Ppa+=`QYDdHw+_QD5{Y-~7MYXoRqCw08-#v3I_ z{RAaV@}G?jFNaQPMNKQ=#~a&4qGkfZb~c86U1lPP#G?Q?`(@TQTqA+62I}AcZJBqu z3D3yXec;X`!O9)vk)^F+3AS3q3Og|bIYDHF zT=$NO`nD6#=+azfce1Zi-kpyBy~;}uOL;}_yOwuB+eDfgWxCR)3%q^OMAgU^3o1lq zbzwu@Vn*%jJ{x+j7o5}Vz`#PkEpIi3TPvz4*Yv8#3+b`sF5?2=uvVr_Kf*hs539K=o8 zOC#x*0}-l~iS8a8t{ka^rI^1K;h;GYCGAgocyzp8O7O3g&OwZ7yVhW~mP{_M-I1`a zF&Xx9MK+Vk+VI@S7&!_f(MeNo4;yUy`0hch2Xdu!7Lgr8-8QKai6GMgZIzJzt&O9p ze0F}(S{%-{8>xn{_6akeF!-f>^;jh;S`X6yiZ4VmuZZK)?lnHqeR0kh~N++4R;Tu1*mYw3t8=#X@r#gaqt`GQ@Y05dcN@ zLk|1Fhq>(P`B;T}blu1tfqT_hPY3Yz{z8BKmwee(=dH!GGBbmv!9l`DjJH9Z26OhS zga9q^i${*!;4dd- zIgCGN8Gj5IFBvzv=Qh};wrMZK6rqBj1Lk{v=ChxjQ7dDcn`7k%&t8B1`SsrO8yhNk zUKM-Ktw=xLmVaw6%D(oJD{$3358Q2PSgWWEZeOikZ8UCLTbpU^j8!9(B@hn>2dDco z?%~@TjkTNBrkjN-NQyz=_R?3r!~0p~{nTVE$;=l3xD;slycRLq%G<#mKy~Ziqg!ZZ zrGFf+)zX!rSYo8AV$D>#8B?|4dNfz-B&TE1si>7NG?ZN!1pS#>-5oDwSAt+^{?t$> z2yOs&UmfCkE_l9`f!EL`WT@)v#q>wCKXJr@S)-rPADfQui#qLM-wDAjF~BXPLv>2} zD|ZYmgH-Z!(rcIH!on`e2Siq25$N~p%Z&+m&5~?;Gv{)nP#2gV%o8M z#oLc&Di#P0fI!y4{8Y7;UvjQ!|`L5)7b#{M^c|hQl0R$ zeKy9peG-3a>-M!q`x5NAWRW|@Owb>-gy~aL)FV{wRm`kXbL83#V>1^-hSOClLtGy5 z74JNZl3k&O;nXk|ic4~gZfZV2cnYe;=2(6Fx=4vssF;$?WaYZ?`dBGj@UdmvCOIe~ z!4v4-^}~(}ZVI+_H^FFVCBD=eY^2G%tycNhG2*eG@u7Y)IWJcNGchXfUaYPEq#eLx=9;N(ni7dX2NU?Xb9Sp(ndS)5AoQ@v=*z! z<*nmd`?_F1MAGh0k<9F;!mr=siy#BG${=3e#(}qzj-$DKPMNInTYFUnO!qO9kNz^u zs42crzF@_&h^-^Tmht8n&+*BbvCA}fvNyDSZ26%w$U_6mI`*6fEAt{0gu-0fpFx-O zaK<~E9Iu=_IYW;=d9pHfHt4U7v-i(d#wY2{lQ&LHy+^*s*_N@qKkf(zrp}_ZHUEmW zQQo+S-*Y%*F(#7R20jXm0WJ+h#BRV2K!tU8FX)31SkR~3$J;CI_R7DSw;#zy-9*Z} zD^dRh4{Vx$>?e=zojH(>2Cpi;p|v>LTE4li5)v&CME{^Z=X_eOYu}U3UiDxK4}?-b zpDVUV_M44Fe#riT#LWI%J7f96XQ!T5KqU(@4dsb~WAAej8*y z1VXMRlVeBwHo8zAFsOTWFm){urve2cjb@f)>kI7yV+Qj#%@pU<>Rpe0>v#7xCz9sq zn6WzYJ7by5n3`R>>;B(=e0sE&GpqOAamO{r6lg+hru@@=IkffGG=J*qi?bUXjQIkI z5!%D@4JQhL%kz9;6Q^BvTWwHVE&PZySXMb%c8b7u>dYxV1P1SR+?8eX@l?K6Uml!( zXf-pqf2I21SnIgW;I;dxmHos}$;QYXx38#Ay?@Q!H5S8zxT&u%j+PTZ;+8h-+Kzl< zG~GCqTD;TSGks}O@(d6?`I+d%Xo^=bygFQ(yv(wO+$QxtFp%Jx-pJbs8JF=nWI*=k z`b^7R0RC>Fn}h4R@cOIXaP;UKu44K6*UR_%@EhJRtlqeG>ArXDJ+!uVXz%5}v+vTi zKVQoa9y~ah7u~CGHyP#K@=67FJ`b8wJKY)4g$x+Cd%?d0`# zNv6f%v=o-E!NUsg2qcEz zp8$`k-ku!n{eSkc*N`_Q;`F|17{{ZrxPk2k4K0z1hy4q0@tJ`~V51+)CY)ohF{5-w%{C%zULvx17SS=nAqaau zpbJy`iuNf=VjS`JY%d~jP5pym_Wkgf|-H+$vwMYbB z@ifs4(WqUpde0~Gh7cdQnZ!_vSd|%E?08c#4iu9?TU8Xgoy_RSFt%SoL?L?;IrLmx zJn@c^L@q8k#bgTiQh~50y!6KOoMFdYa#tnC(lcd0ovdJD8R`9%gDB95*)>9cmMucL z<4m(bvN9M%GPb(1vMU!S5u}}qW&K<Lb8Sl2$rE{&?&`MC%7O6@Dm4c$_Fz$3emV-7_Kf?hYNN*T3DHhnQ?#6 zPl&_{g)9LcUd%dptvd4qw_fo;A+9FVRo|K2JyNRHiyq#MYH4IQISsSUVBWwgZN<_? zJ63qhkz4zHma#!N^%)yRK_sfIcnamFv?D1T6he2RRu`7mvFAzv1@hbiIcnbEbXi{+e_Wik=ZeXOD(StRE+_32YwQi zhZp^v-{sdtrV&Y0%blbPn3z0pMQ3`Zb7*&`QyiWetW-;rwT^S+^OJa?mulo z4aUT%lJg&7UThyNR~}p79%QT!@8QLa#{(#>B2S>Ig!!r47hAU%Ky3EWkf?1EN!9n? zs^Cn$)2Zu)2zF;=@f%uCy-OQH?$)*rwb4I^6YKr6I2Fzum}zR-5OPSHK>BqQa>>Mz znXn||glKnVEZReKS2#;Bg@|WS8j2iY{E!B-{PbIgie9ofSnSP>Wa`brU}@yqgZsN9 z$=2lJVD08h)ZNcM?Co`Gt!KPoHI?y`8NYsLW_NC1u0;-(;e%74fkpn@uAdC?u{vHv z8wx{1f(-8HCd;9H9m~3=Iv*w(1X>6Js0NVTCP}4wXA@wrPIQA(ijNv-;son<4KG_! zo1{ShHNjk|{fSiX>{CzuyHq@pN+sf7xpTBtDL!=@oVBC3XuTnnV}##znEMLnwF~cr z*251oH_J>%YgL-xK+<`q{Xbiom{{TO{f8!2CcrHCFAT_T#qx!Lvj-2J-B@1U;GaCQ z=<3qWeu6peRf5s&`xMYYL`P-HVh0l(&4gXDO=A(uhNi`5lan~Wo}_}GKqGQ;H7s}X zb_CGL6t8V1G84-S43p&jUfNsoTv5W>XqSXS@cFoDjHR=7-YylA`SDchiSSdOZd*Cq zC{|`OBh8Wa@D(@>vbH@noryXadpL_+Azb-K;akD8 zzSa7+hAA4O3|o3rv=qd;{(pQ0ns!p8J>5#XVyiF_hB0_Wr*gOEYr*|CFoHeD@D>>Bk4+cj$zg0e*1G;8hNf6ML}DL}D8s0V3>BKgt1ne+v7 z(VCu%bWfFM)$%tFr~x8c9?~5b+l=nb;MEP9i$0F1KrIyd)6v5>57*LmkZdm>Sl@g3 zi5X-B#HQq)xvBZFp>*CNmoI>(LHr$q;52t5o-v0->cQU1i35vQUbl20V@1hc=s4-p z)V|r){3V0w=x{0GXB&f&v~As;E|$x$J&0zeb3)J=c;Axg=MH9x{@Y}*p_Max%21hV zrx=35|KMS@DU}J7XUsX+c|=L$HR~6gbHWmmO7v0<9^?tbEgFF?M4g7*+KET~d^X}> zELpG2?#soPdLzBxgJ2!aD-un*P{ddAlhawz$xSDk_R_E0t3F6(13&)MP2*9?cFK8) z)NRvwuP{Aqlc&@BXCh>xF=(PtW)0Ty7VhfQe7rYuo?V|K&cWtCArOa?HQ*LVVEax?9BZOkmp%*k#vQ7*_e9uhF??^yNRq}i?| zd^Oe$syULCl6NA#V`w;Hyfr0fY$V1COF^mO^RKbos3W17!-Fle`6Z1>#s0}ZxLG#Q z>N9Xf9RfXduV%X#AZ$!GUY>Y+jrZMe&rAq1G3ma((3MV)cR|Jpp~#diZ3ksSwM99U zhHq<8ni10w$SLD3V}YQlq;cu4fh$vVr*KN_DwB{MIOQG*ztmb;z3JFBZ&Kx2Hl6HV z?p9C4tC_*UOuBqY@$zmmldbL}Lv|jbP(N1kVzAF$Jr5gFj-2Ag@{uc-levgR{a<JRffLH^&QqP2pP`S|c$#EB245!BV_Xgoa_cOrAcqaTf?{IpYeZM;^C7vo}UH+5Z0 zo9bh!wu~Q3)N_-;Ve4CmTQu%@Y<*+>NB?sD>CIDm$Im}@&-%u>zx>h7rzyvN;hO_K zefiCBl6-RDrw2Ye@NY%Vq)w%K>M>Uv9N9t_7j=d;N$JNSA0z-~PDCB#WpOjfh=$Y=}_-O~teHO%GzqXeQzVKlU9vYv+P0 z;c(?xbqMH}zuR4`xvAat^;=q_j$KGyb_LL3D1h9k@8mJ=VuiT-xKZvn*ln#`0V;hX z0@Ix1!Soo7St-vlqKPVuR!Qz88tfiT_uize{3Idgu^@l9vW#5T1H*o`lT%ju%8bi( z_FFt(q9Ck9HUaoGA5Ym8@Zz%MLKPNgb!o4j}SprR!*Vl8+cMx9Dt z+2s8#4~}D`;&f}MoGZnr9p4>IGl<1g8{mJOm5gm=i$>0~(urs`NGh=-APeCa~2pspvo@X(7>`qrcomMGVSX%}=rg6`$&&9S{x zm3)vsa-WslJ2g~_=8oKVecboaJIh&I;;xm?6+Ab>FdYFlMvN31Y$IDp#AAd+m1-7P z<5E#%0sMIJXdEbcEK@?sC_R=hPVI@C_g)b%mP=E60^^=53j2a$rWBD8pUlYE9W3%L zQ%9~HMDYCLy|=N92id%j48kB`dJdxozI-o6CUAfsK{Dn?fe|7nAwQl+PkHUY{R8hF zcyE8^1cHJLBz=w=6wgLj7h%9P>-an5NUOcXVd{b^LC~i!XrV|?qyna)-Z&ECQyrJX z)IPmQ456W{G^9rQ5ZeOXNc^7koq5FckQ(K@6DyPK8KD6cK1HiEl^;pQV&>?T2 zW?LvJL&z`;@VYrubu{N$p;17$qc$_a=F^n&av^z0i&A5>-1Z(WNv6Emu8JQ*Hn{-vgJyvT<+Z^MEvBYj72QF z5X(gWl?n*rWEU;OiH$6Bbl?RkEY}#XRL48naxrz(9hw*_q_6VS-b%Wh$r8*_ih#N$ zuX`aDBaLPD6t^=`lQNpBMeZ77Fz$w7*G&)izb|9Yb~ z>=R_4EBZ;t>Ev?B7#XcMHY_t1U(D_&>$r=&?I)}6-|42}g<$g3>i4yPnIag3?S7SZ zzwLV-xL93mIPl=;jB+Ua3bv8$#BkeQW|X$=d~)KG?%h*~3J#Zt3GJF^m=DqZHF{7+ zB3eDsolHeoYs7DQBAU(*7D>dR%Feg#s{XSvUe;MYV; z(XPr1qC&wtXjK|9SCgyonseEYOrV)hxP;MM+99Y1egQj``%raWunqH7+xvk^WT%z|cnio2(g=a* zz3%_=!S^#AQo^*($`R z(P&ky4B*$RH8vxWYS1}+;Fcvs8aY@SP5A!J1hO<20ih85YMx3__lJEF?PuOw$!xA!BUf=C9{J#L+x`#;Kd{ipE$gGl%u-FaK95j0F2rCFu!-=y~m|EwMrzFtQ`9&{6S!?Iq5^Tef)#`{FdGz`ygedv7-~ z4uo$0da&;MYaX(5o7_&r`GUU&TJD7bujwJI=WI2SFj%*9>L$N?$g!CXiHf@#7K&uT zyBhO;DmP?1%~2+7gsazG;Y9|E2++0SV8puu;s*VWXs2grrGUBin}@ta?cU8js_XNaQ}e6cjguqEmdo2Y8W=*NJ+;j`Jl1l(sovAv** zqi4a^s4e@G07#LKSTfU%J7~0@r=E2&WAhF0V zZseL-Cl^vEt3$5+H*V4W8^{=X-&q*jz6o_|DKW7VbjRAhLed|Lq`lb#s$+POTHvZj z2!zvY49Xk7u#J~^qhqV@se=M&v1oY z)%#G&3hp+ITWseDl(Rb}fO3D%s~f=s2R-Ap4ySYN63=03{MV=H_mU}C{MNMc45Ych zeDRGGwo#nF6d8&9yq8Y(o=By=zZkJlvFHIYb&8qdSCX|_@>d>Q(`1|)drM=Hv1E=+ zDTl#ezIWht<bKMe z^7Duw!P9k3Yc8)_kI3RLDe#))b<&CS-gZ9RkYgKa;1l{*QODVH z?CL$dddHr+f68{QI#lGw9A^n>bK|7rR7iM`$>lP2y-ESyu3l@m#g^@ar;6Q7ap=9eYcg)3(JeQ>(-)=qb-}bNOBB=Z7j*TD6TG$>fKV z$sI=9#AaL>GNTVbhLD7jJLxL*e)WM9ZA(p8t)v>tywRvsj5lV649_*I)5>a}h`dgL zQB*TcF{Z%T@WMF+=chIPNw{A$R5t8HtagE=OJ@+e>MpE}_>g1=zRd#48FXk`bo|M* zk68jkwmUWD3_4^p=f|v4=Jrg48Bl}1V(KlZ=_5T813{DCKLNJk>c zyM36a1{3!rBVPK3Cm)EZ2gFXM!_-uSxuY2J@uY=pZM1gQd711mIB zMgeHemRA+so9PeTTm5w9_R1gJR=I8S+TiY+u;qHG)4@w?LdocaC_3&J=)o$0FjK15oSD@~Mfi&tQ zz^aTLjM2>8dfvbQr8k+L#SkKvDDAQWVW(l`RmCJOZwSTBZ6R+lQmY$1JCz`-gXH1f z6HBC%J5{w+jeVk3HOHv0d((sC3WX$cor!?8o3NT_`x&Y49Xp&v1BZn~nx_)CRx=T= zMdc5s*DF{z*crrsK*fd~8YiMuA5$o{amimY1ae|rk4Alu{6J{$%4YzY+fA94+ejQl z1T47B>A>I|S{waKWAq+Y9f6#kDz5xcS>^6J+*p}A8o0avn6%895uC#~0(EIB? zKJCPby-z$e(M`SYhIbm9vhtHB_FAm-J`uzFePIhnCj7u+;LQ4+fj&N3*p`X3oXg46%gy-~2nR2ud4HU`8e*9fm-*k0d?aBB4PTdsE z^!~F*#;TEtwiAioufA($=93c4ug8p>I-%~9H#(YY(D?z{sS~~LyruTkQ$r6tJMjSD zwFh2yZYITfoSQluo}ljQedmE8PJN4{inwSjBVWjNtZBCycEocVw0FJwk&UggHy3KT;;Jk{q%#BNI^0Nu5#_Fl#@xdH(7mwg4o&~AGjZ@ zKbXVgty=nWf&~IyV02^SrRAgwu9UO6`Cad)0Lf~2KV06wAxaGIXZyL9x`j>o*Drs& z-idpcT5ori71sJw+qEvwQ&Jo1E|DkuBubjlfO%XitOC~tx`99JE7wGD!@oDeXD}VP z<~+W*t0Ke}zb8`RFI|aT)&Jc<9U=al^13pk^)+j9rHgwDabXxn13CM`>p!K7{K`c? zqw9M6-nyuM+>lnD`w2doKeO&1yuy{umzA%}+P*J%@Wjre)k%@_b;-!m>cGn`{PR~R zp2yVXZP#zNnbOU=eYRh(c!t7?zM!84uyinqf*Hs3jJP6_fCz3|Q=z>q!>c&Ov_Y*M z%FlS;a0zH@nq08dZIYT$PUNthx!e`tNq6~A&~$AiOCM(mCUq}zwQhB4-CW(ZdvwGZ zZtMw?5Zrk|BsE)v&}MmhcE&U!(G)C_p5& zZN+^Xek16i3>9cMC{=DDBVZL&_3(UZORl0ET_R#ip=*O(h0sKw-NkppwFDaEz|B%F z{sxAoy-{c7{VPtiAjy49HRu*>RV*4-!5u^%hO;y%Bo$|_Mr1cD{(KaxHcQDN3)#D35m+T zZXb_T5-&R*2YoN^iPm=(eY!w99N|6Dd&xy3!WKg+QdMYtDYy%e>u!lw>hjx(F+2Wq^p%QwOURJWqKQ_ zJjJipkdvk)KROZz?;kmYmSW~;7|UcjWnJDLCWDTT_@(8oeQ^g z>|JxG=k_e@yk^dMtx3M^nE6^~uJqsJYksh#cP5`cYmKeG`s|6lW9k!UkFU1B$o9VR z<-;T8#;=rzFI_JGdU@p1Zuy0QA=#`^?)ub5VI>5qX93GO1?j z!qPIJ|6fwn<3v{cL4Ujo@9h;!y0Da&mJz;tjVnBZ95|{o6g4SX-Rm!9@g>oicEVY78*7mZ^u^g6^ zBu-YmUY#V)FUQGyZX60l+@dkr9WUf#F6gapoMfYT@gX{jnlbREN=OSK8{{0K1tNi6 zw0%HyiVW~-olG>6g=Vo`-8k6L75g(rHPe+}hO>|8{Z=U-IE!;hKQh>mG-~+PmRE5& zMu8J?8?pkVKO01e{*IUc<)avm%oy1z7Dl%>aNkBv7fr#hGRSP-mC8wwzm29?>NgnBTkE|S6Znc)% z$=YPQz9$no97&{N!@GL_>B!2;k?z`Zo1hJ~CnM+o2s^q*Ud74n!(h%5|zj$ zkzjXy^nycr4myvS^b9(EAQl8}$fd6`({veT3b}5MVE8ud2V}9raf|dE)rQ*$GiU1bg_xbLuzLNAb(Fh1pj#Ozaac3G_C0EOgY$> zXoS)bohDQpg(VaCzHITC1ir=OH4h0JsK{0+wTdTgHC1ZyZp;NW+iuUywpyLZ&CN+S zzay6$nIF4hYvKeVu8-wpewRApi?>Bh?~FFVm1yzP4O=0L4U z>%KXjX*zj=Io3STNwZcrq0+8v0I&6oWZH1uG_ zS#)x>YCchq{6lNGjDKi2g)FD%RN?V`gSG@P$}3G0EIGzRoE$QiB#2h>QU>|flTWtt z!IMuu)_P2xGK#@JRU`F!r20=m(Wrm>pX&d_N5*-|sMGJz)bxzecExD)t)O`NbTLqy z#h~|@)m3#eDE8-b-Y0E-Nal0iL^xwfI+1phx@P`zU!1@M9p8m+6stzAP-tlw$k%1- z>)(HBMQw&zdfX8;F&rV)bMGspcE)5fksdsI=1e_&);eSN2G82ivv}x$pjU(hO;i?DSQ2gAst;WCnR4_2X88v$NSxl0oDz;ao}JBml8&KK0? zywT|x^9M2qj`A07988tk!;8sQk_6o4l&W_Euh=PiL5BdI#`Z=n#Yq-a4ec~3)%j`o ze7?%N|8cSLj7rED-5pFOkR*}rC62&VUjVr_>-+z9Ae%d0Lgfw)=1QIIg>5t7?JNkZKS+!~I(rZaZ^N4>MGC7Xn~Dql{UA9e-dk78%=Oldg}Jb&~M8UJ0q51`IBFH zrF9iZyVi|+1=De-v-#rkoH|XzKdT%5Dh>a1r*l$&p59)0^ikF~I-!2Z9c=376)PmR zwkB+R$W|BH^+Exgs2+M*XJfUab1w;*4J(~9hkNIq-q<)-rx!o3`)v@w+1LBsXP%*G z{m!L)v>ZkpsYe-w`u!hN4*`xqMDV)nSkuRziASy=bkmB=c5a?^{q~#n_A`&kD;pn) zM`myC%tG-d#lEOBxxA?+y;(a#9KiE0xp@SGEzHf2jV_LkF8)Wk&)#WSo~&=yKM0-1 zO=};NBcuQQC6Dn{j;!4zzeoG+%jwq)+>bm%6yfN6%_Nznt?e>>VU@>g3;!~ZEV0vc zm&rFO<`|81!W5&y?loJ46s$4flGswK-3pVCOvseXup}fM^j!ngv`pRNNR^mr0Br<{ ziUZwsmOAA8T9%*VSK0tXnf~R-LVh6>s+~g172-VC0YJhTl!IO&M){B=5O^qv6cA)` zH{E4zFXBG*o$>nuVuVti(?#p&A?0P|b42de1iQUl0JqHzhy>rBad@&>Ow4rLw&Y&t z!y~JE6`)WPJVXS?y*(DBvIep1b|L8v`)&@?Qp5m|oystu8>SP$m1kFth%y?(YdALn za(XT}2RxkkS55V-O5<+>fj~-QAQ=j2S@^|Gd$4F{e5ddh#PzrdVOEUjPb1~IWuis^ zJpop9=>ND$Bjgr{`NWy>Yl%oKAW#^wFReq#8zEM>kp@U! zoA9X_`7I+i6Ls_SFgG4EAT}Y<9qjua#ywh-m85Ds5_DOnM{18R zDjA6qr13Md;9!baXd+HBJ(w=JX$_yrW&=Cv8BN^PjF~f1 zl{n9;h^G?YJ8~uj_*t)!YFXL1$;7tR|3nUsV6l+goCBE#fJAhOX3Ab7F(=*O6g}_x$SW`a}Gaa>Fs|tBg?-Y~bb95`k!_ z*u%oFJvhJUxm_UEv~r0{bKGV1)pYH#cdQ=_+yhHP^N~1F1dZu@ell_8gT~6SYONk^ z45?$4eEgoLri=+SS|tQ$sj1?XrNP3jj+-1`8L~6Yj2^~VFt)7nY?pw)A@nzlyp_Hw zLMjR{y|}#~QJsY)S*0@zwnG2sai#zAUo_};u4aat?IpQf_jcVy^+A1!+GP`s(JI>BnOlFh|IgW9>IYX#Aa8KlU#`gytx)GyHwfU5J& zg5&v#$PcFCwL(4-01a~5)2c|UgiAankM(O+L3qa(w+`#KZwjD&a9oH5T@k53ZLSuVP<3Fsv*1IJx z;Dlmo^w+dg{CctXjZy|r!vECEud9jr*VPsGpOIMxNI%On_vg-UNd|}r z*IygXH(}guIFE15+!slqnj`p!GUO8LeN2|>uHMJ=->Fi%_buT*QC_;#`}dDL@@G>d z3y}BzO=RQ`pdXH)*NH?b_U=VwtBhKt4F!S#a~ zwMf^zA~yJO!j%5;o7q8o=<*4*B+O~WL!2=qGte zJxl$XNGMtgkhp8SFkNgo%^bHey2MX6vG?LSq^ALQ?5&=u*H>F5LUq?mt<`#cy+XVT zg}g9OZ@sBiYOPnYoprw7gk|P*y-q(v_NITGp`RtS=TKr}dA21U3po&`cDcYN$D9~z)$_$mZoBQhw>`J|S@uUyh^sQFJM6jb z;&KIvae<#y?oYdP9{lmM)lYF}p||wk_3uc=(i!^dG3sjoJ~R}n2fqe?@`LqPe{HDu zKORKF)NTGe=bWJis#rW9PA*#^SS zw_Fh61p&^26VKt>b&yeIneXZ&h)8(n+XW5@zsLOIaKIn=P%b#vvR84vL~@EKupr?V)`xEO86N#auu|vW-QjLBD?)wkuXCd7 zRaCv+uk#1rpi4{oC+hV#a}{Nrk!v0A7Af1U+&}xa_wD#ka*^u=buR4va(IByPx)E* zSt&Q^Ut7PR9bIInvM+Feg>PN0TyaHp>(jrHAKTjI0CgyBU{Xz}YX$Ekwm#a7sJ>k_ z@s_vLwmz!6wZ^WCejnS-mS5hM(R>m=ALd_|Kk&Q#+nC8i&J>#)u1ve;U~9D0zm=b= zP1Ty6X1O&#s{2|U|Jw$+|LD8qE0&pEOa}P9LicFc-5zc)?;7uYXa3OM>CB~*%g27< z1GU#p)&2`8+3{V6=4TGtqf?jsHv6V)@@y~sv-%zNFzEjQ!C{5}nRWaBwFyBa>gT*kBrJJe=N5n z7*`rNz9?Kdy& zzVTWKN_qS;DVP2-eYS;ho71g4wspu@U%o5@{OPl*}Dl?~-xumEI-E z=@=%|OJC+^4&Hg^!PSdj=Bw_!^T@?z0(5(YGGQH;=BND=TkY>E`SjR-*rt=U8ZCKw5a&&)oeA&+$6_9Ma#m>gJW6;$=l$e1|gs zGl!gI{#1;|Q_`|CgzHLg5fMvz3sXtHAP52hO6A*v^6H9QNxyU*8`3c3;nt1DAJ->l z8|TJWriSfAeJ)yw=JCU?Odj})#5Ma#s~#UN6XG5C49{8!BGSM^{MHO! z?w2Q~Ya1K2>FL_$X6^Q`-F`dY>VGlzCUA09b-s9=yVrK>*1mS_TUYf`UDZ|9Te>Sr zcgPBzge(F=5dwsOF@g(bK-$M5vKbHU02o|6cBL?!D)pdzRn6q~A82LgCOnFFe2t3G-R?k#5zZ72AM; zq&}xD@hENJG!^^D)>QYGmdB(Kd6%TgV|21*S5CCwY98$9#mytr#B7z z_3glN7umY71b`i;LXg?opfM2kmmnhGn^j>YHMd2=zYq~V)~3&b(Ksf&hQH%Cyc0g%g%U-~{gF$i5bxb-_bA)s zjZUWb&8O24jiwJoy`$;L-2-gYz5M^Tu5(_)$@(jc;TRHZxN5Hp*z2zP4~(Ls6rZ;T zymiGNU)YL$WxIULfMG$ zt509~R5CfZ5otaC^AnX5Y%>n1_^B(O=EX|y(cQ1`%`fAU`rOjW1#g%eD!ToM+Nm!dJzD47(QdxIdCf6fI(XjDtly1rD;QN+J+AOR z-3W%N|96O&kevbWNuV8a=0mNjVzFYx)Y0`SDJk_en6yEb3 zGJ6C(8=t)GwkL06-aTL3^N%?71fIj`ZBO3&#XVoddV^g3XY5DpL0cO7aB$?rjFD5; zC_;dd-`g4ydq{T-SGXcNNjquF;e8 z(U{vfzqviNHP(!|r@kmjZAr?(DNVNrQ;2?l&hK%Rma8%c;idVYE z<8nu1TTrXF5?ZP(#0e`u5yj;u`wY z79w_A*1Q7AK0tDr#MZym3;FT=U1r$cd)_{r89*qT zxw*Y_JL_fpgZ96VWf8Sp^_@uj@o~+KzRXtvXIrV7Se#kMM%S}6s7iag+&hEc? zAQU=WcDurw5!n9ZbYcvpaM*`W3*kF!PWEkIpobviD}h8uWJ;0?k}+1ZvD9cRG27CP z9ZQWJjintgVBh;295a-2cx>@r=kQ1pXoj5EB2#^rUb?~Ru-{yI+oi;cSon4k_?B#a z%9PvFZ^|?J7}qpufuI;%2Jy$R_@HcoP?@!xRRsG5S~gElLEE5N88WcHad++{0staT zeyy7}HuHe_$CsWlphAMAo2B`|@a~tiG_z^F)7r!n=`QU}++t&Q!d6Y9xNEQoRdX=> zA{BDz7mL4GWXFJ+bWcOa@h@0~PV|OJmsx$F(M&2d(Q72-S2O5DkYmK!qX<#yYL7l@ zgkE5^t;H21v~_Fo9gjlc`e>%OxEM0NT-=I&Az8?2%%5dw_y*0mk)$tx5eWe=hzQyZ z(53`+t*kbnLJ;%00mNjg6|mmuHsX8PXJt+Q6hf)MKI+qg10r1EONy?1i4MNtP`tw~ zkgn3Fbd6+=5mo-8pk_7Vz9_>C z7(bZrR(sPJ#Tw|QNsJ_<0SH}V0$el@Z2?w9`}r}ITcFox?OWgvA+k_QCs=Uf`yD2XeZFSX=cA*-_;tl7+zw-W`$Q=8#K!jzvuy8Q!|z|cLu;-+7vs0~p69pU7kWDU zeuVKe=c?JaTyAQ~9pIgdK_bu6vs%=Lh>O0f^6|=DoSi=0dzdYQxqiVLBliJFGGY)w zoc{H%`?!(hE~XvIDjex!lfEp=TnisNzui8+y%!#phTB>apF=_W{23IujsAM-pgyt_ z>8}Z^ZQ({~1(TgCnC?7!lpS9(b;OHMz8~dnu?-70wi~m^P7({6ybTgRgz*PIzQMi$puHaOAj6~=^}}g|xQ(!aJ#o-&Xs~%O z4q%QFkIxD8VXZAhk|(fpI^Z2DRkj_AhicR6%x_}saBRjtQbj?uVc+1Ksf0sm$sWrI z6JjjKM%5wx!ug5vv^P+hZpV7>iA~#m7tYU??CT+Zns%mGE-GuIxu{66$@0Y^+-BlT z7*s&j*LwMEf9T<3@%S;?y!XPHnG0uj)bsgzp6%N`KffFQADh`VGqdYTu!Xt0IZh+^ z?p>IHfF}jjo5O5fdH#jxpI>=^WtQ6k@3(b_3 z6|*e8(AW$g_|1(4Bz}F7$Bbk~bEj6XAvk+o+u5AC@WKF(If<&N->rFUQe|*_Ev)hJ zX+Rf@KcJy7Y_t#$8vkL;Xn3Iki?jPZBz6mwJTX1yIgRaam%siW<=#`f<)Nt|`Ni5t zjcCmKVRAe|2+UggD5S(`+Qth7sMfKD@HHKb`PubDT5%gJMeuF(eUPl0ZZHiIC$Fjr zkAOc~CLU?I{0!~NFY+w~2(99W(e{k3THRZz?5S2y^bhcA8T8$0b_e=3U^`&D#rBZx zB1 zjD&{#0ThuM2Rc})9m$sI#JZ0A@!}ByIg(mDHWsRus*03YZk=NsOhP>`=6YX-=O(6mC zkGQ*TDdaUSn(Nfd-f$+6j;5gYfe13>fKw~9q4gv}_}{3=4To0FPAp{oLINoQqRo*= zO0^Fotjl|cQ@${SKW;(t>B%AJXFa+Pp|ynk&ioXVh{#6-Ys)zfC&)tPDnHs4{t zS9iKS13}fE9MweKff#UG=SK>&*{EC6W08?~ZgPDMA#=(x&qzdulF}pj^R9>@kk*#n zAlcnQTvw2+NtIZdV5l|kXf?Ik1Eg?AFVkSa*=n6=ju67054lyBmI$OK=3U-EA|S=u z+4`(M#9k+`z*i_Dphx)3iRQg%uMFe_ouB^2EZ)QgHq#MSLM zV1wcG@Yb{uc7#MtUl1}Qc8}~sPAP55`*=+A`NbcVMivSU)!|76bJ5CfDLY!$V@+1MMz1)C50HsrWgWB!|HCAa%$Kln=TlVLsK5_ zXC@=kP{~{KCu+5I_l*qrtLuUxw--*k%Ac_G$%X8a#}6CpVl40fmOpPEJgkWd(jeLS z`T5*}ws$Ar{fuw<9O>YjJD@Kh*8y$Px6tFdran>5Rt`EB_Rl-7ywW+pf5G|w4WpwQ zMoxDstyYC^jzWq%if`xrv4Z+mpjk-UCTtyG4#b84!$TG`XS)H0HVwi0da~N#)EeUc zK&p(m7BI5{Cg}IdaXj*K_{OSpQZp1>kI*|y~cZ}w>#; z-_yI3@0QF4OPuyOr@b`q)HMx-SNQ6z3%9M4ex$oTm(}01C763rE6i=TOD8?puHki? z`SuaMW!=30wVh_aoz2c`R}X77vsmXXw5Ay=o9zV+2Vedr`0~@dp#Gh=Af&lK;3xem zBQKb1=A6#&x46G&ys6;s`Aon(F=xVm^j8k(EBXlY@4S9%KaP2^zS~`gxnj)$cKn=` zLnF|88-J?*4TK+$Vs0Cp+8hh!OzSpGYfgo5Xb;&|t~t%vic@w~21go*s0nMJvC&G! zB|A^0nNbUk4VD@({+6UrqlBXx!JSpOShn4K79t`Q1o{Q!6u}H0d%-+|={dJl1E2({ z#1p$fF$IpG1yuy%0gQ^EgdtmMff9$wIvN&iHCmXjNUQ+jiGq;k$aD>)6tfhq&sR0pDdHv845HAZzy#yM2EtmRo+tai52Y-OdUTcTS zE+XUf-m|pb!GBh^)6WV&W=s8RY}^R-KC)xS8@F%2VaJZ2zTyCO%RO$lybS3Hs0gxK zE{Twwa<2sPdV?~O%ob@@fFy(AA{ij|Et&tpkMs&iN&%NV#C0n`wh6;R-C4}Hs!5*) z6FSSZnPEce4oS|l{(WAU{W^=jc-p5cd5?#;<22$X`Rc8ox()%&uA9MyJ-Feri$q@fjlK2kXFZi9GNXZ^N zf}te%(wE&5CZp&EtCYnmC))P}vi6850-rr|-ro%akGn4aeaz>J`98$A=Wm{Lf2S{z z`8^qc+;x#R;qCuDQp#j3`jXR+ChtoW7R4n1CL+IQg)4n~OSdksS zVb`Pa(#dM)HLvMZPnP13@*EQcUu@hC2o^96Bt=1=0uh=tBFw-~CC5jmgBxm-g~DWQ zLvVUzJYE}`Zw`!Y7#i9zHqe|OIyXn9*$-q>zS&UpTpHR;|FyboPlYt}FejCrsuz6&_6-e64y&qc#)=K`l%RFZ`>tF~tq&VI&>u~+4 zwLb^mImxzql>($yMrlXTcL>42DJEU8LV^6GQkfl_9~(s0%m8R))4b-}mC9VG9nX%9 zWxdg;R}bl_FsErisA6r4t&L+tDmmU&b zeuPg&=9Y=F&-z9aenI<&NPMfXDuZ<>s~Kp^&NYtu^;TBtZmkl1PR3F(@8`QqT{N5L zPCtVfLeP6k&9Z{~JxJXb)t z@ir7W*1BRJcer8jjKHK{z=7bgyMYp5kzB@s3^Lm7_$MrBt@nR4!SJy?4(8~6-yt}T zEfhz%+W{L#gx%in97rR>Tn@woa%#WO+$@59%VBpz{-lNM>@(4;z6N#B*KXaJjhjj} za|~=v|1=|H+EB0zb}El4CdjYgU%EG-o{lrI8y>%h!nvRF)(2a^K>$-#2+ zI?qTlIpXnVd?@>;LV=$$DLz=9Ak9u9zAK(c9P%V9Nso~>61U~^bbPM-_m9N3!G!LI z1bXV`n?F*ip!s}Ux7%uL9CH_PAd*FrWE3pN_IJMXN%BlEVa{oc*D_h}kaG?xN+Br6 zr$7?`X(k!ev_YsOmZVbKIar&C&8hqCM}|K30k1KDz!#DHr#?1x#J*phi_O#qorwK) zgWHAN9@hK!qyNgLG!FuJKGnI46hWgbn5q235t!l$etysPfv#oLf1+FdY z@B7-b{<%pkchgaLbA#xMMv3&JEi3cgNlps#yR2)M^@&3ed-VuejIhq2}fw$UI0_K@5#hm{GNL%uW{Aauzqj+Q4Jz8FkN`wR~I{I>O} z-b!lyHoiCyW81r(9e#?N@ufXpFT{z=LDvvwA;y|mLPqaNH(jRJVc@JjCTlM4FqCT& z_LvpsSW;r0ShX1J1dG)e%y7Jh8f;f`%a!Q?7aJR6u7T;w=)TEeheOh9?fq1r#49yn ziz$J$S$dIG7_-(Fhy42B8*+-a&n%zD5BK=v=M3Vk-l@KSja7Gqb=e_4zxnDwG!@v< zn*ZEije<6GdMgygn5A#z4mpsp^iErTIr!EU%zYJ@qjVN`$e5`>YJkhYUx4^n0a!PP zL1-~#PZNVW$~>8j+TB>$*j4)nzqx52&@wYP2kTmUh2QdTxVY~o8rL(w1Z;nR(-wHI zB~3AHtx1}~2_T5ftoIQwOBBGG_>+O@UDI#mlkF;~jgb%4fCiFpU{5zaSpEX%HXbX- z^7$Ch4#5J8rWrt%46YLtFebd@G6X4k^5ite!R2&P!%mw2GTfkMY zbF@~wHV$pbg)_s&YcIXiOt^Ktwsh&W#bIbeZoDvlZLN2lt4atY(0u&9?Fqj2ppEcZ zkQsLHMD;?vlLK4>e*i`vd+6qAXNnpRrh~zBFc3EkIS30#G)VCn@j!v?3DK40fd6{L z#c^EI`;pt_@O=2gy3+~m!8KHNy&uwOtDgxbaqmL}!LQMdyloz|*5}R;a zev?yu>(VvI9w9P1x>{Cmz=O`-Q<^Y1JcyVDPPTy#%YxWD(HrW~w*lr^YfXd=nU^pt zLU}g?A{K#fKqP?bqjWt`fd1%5t$+VyeRHF+`R!`He)mGJ7t$lzMTc1VQ19KF>$vh^ zHGk^R4Guk$c^q{Ud^U5{c`-wP?RF&w-w}EJJ+j?k??gu7OX6|QuIy`ZUnX*yU)r@x+do;~sAuHz zz`z}mBe-veCcQH{P%aM~A1NjhiLYn)8ad5*04K@ZK@rme;47pJO5kk!>aDL#4B{o@ zrNv3!f&-hE$^#EmWe*SJruJ!g-M*>%h7IQYISqbhnd<;)c>DjvYvPMJkBJyVU^~r! z%ZrrRCiqV}oZOoXryt=z>F@*LG+QiG@mmQcckD=pD*Pltmg6)gG+%$k-UHto7_#_z zS91Cf9oSZmA6+bGy+^m~J$BK8hi$yz4W5OIj_uuY)SI)$Wd-f*+q3~5mM|krP11SO zx3iU(j3@c#i~o@S?5E=o|I0sqLHz8a{W(tS+kg+u0pOc(04XB~ypsqPs}J(62EtKt zAFt*(S0e%6D_Ip%hIKGJBQtoCijiwjsa;3(FC_RC-Cp!5G~B6L3s zxD0zNf~X?V`{CjET6pf&kZPPAL3D-5DvCoTH}m=gSd!~*?`!}LiBiHh497$SD~T89 zP#~coE4wCNo6FX7ctZR11I!1HJ$PUWTmC0I1EtuWrs6I@1Me_u7X%nv|Ax$f-y3H> zmnRkpN77SYW(a{Qsv6t+hX09p4uaj-?Dmg9z(%qv8V{4^AqhQX=`enxkWySwZgQho z?<@6 zT)iJJUp*%6bC;zDr!aL5=QphVufKtn`&Y?QVWJ=%`>eTtyxFwo7utbUZJ$yvx(+VAf#<5zM>}bbt)JnuY@k$md2tBwi=e1aSrMDF;g}9P!naWM9ih zc724ET#=E=y)FI7VBL^ zb9f;&0)+8HfHfe%%3+QY$OEl_$ru1j3}eM0e>uGtw)tq%r;*IluDz()hoHozmksuo z2d9TOgEwHCWpy%tz1yL|arFB9q$+Rb?;E|o5)4+ZAKl{gxO?v-u?4g%kp4E{g(%uCIetbW|VvlW`3G|J};^i`;j<_tle5-lVZRuK*K9gVpfVzuM5 zN%o%ZomEW%hi8K{=>fN?YDC(2r>R*a0qY82!QM z2EO^Ht2B2&xDo<-m-ax4=H`Ii`QbH%)UW1TUFLHY@Tpk<*Z-Ft_Ptwm{!XJTbACCcTL87XAOo|y>n{-j+Ar=nF$OTRig=--o7Yc*zrejz@k&X#Y51etMJ807K zTgm(ZH-U#k3_YHKi@nd`_7&|aGFWLTINce&zi}WtrB;L^gyumG?bKvAC(0p@Plflk z?00+RtM*5b&B^W!OJT3wANNK6((i(=d@`i?JRw=khFL6>EQ)G5><^1dCR|oU7>OE+ zh>(f7XbM}Fi4~APcld^NIm3-)=Zf3Nty>mcfkG?;tD8_dnghx;*k;bQz3;}` zdP}f{#NP^M*bX(TwOaLdD(Ij(tXb5#WYtM@sma+;n^EJ>&Q`Maaq~H|4@ghemow8M z<$^3Z)6B4yh`09ug->Khypi5f^f>!I;Ucn_i zJv=D=uv0((*xoBvaJu&xOF#WUz4Jq9aPEq|$4uCHn)3%b`MH>usz`%`xF~%s70lrm z%VjR5yR(+b)G}=OlJ(;cjE<<$&GUOR>)*<=Rhnapb-IK;;g-F~@6CgZ6ibD6262?C z2-o!-;&icuy?5Hqj`waif(ZM$dpAu5X%#opcNMuuf)XTb4%!F#bCG(4^va`*BEl7l zDjaag9n!;!VJHFM&4i^+dW_Iz_2C_2c*Nx@vdQ7PujFu68sd)LzYL}(?wc5>y5p)A zdwbO{Z1~0o<{t`-dyL6vwrpCr^{S0b%evi}ja%1k+7cUaIO;yOaf{zxDrr6i;+fFb z#wX;hTjf?OI_h*5sLgzFaJmr`BCEI6AjCjTBuaqlA%xH!?j^^NgZ{f+2fIo7?g>dc z0pp(KWqd521ud|IaRg`2C=wM+Hdj{>2@GL_+(vAS+7{3L{fqne>sxC_;pxMcPt{W1 zTDM#CrfR3Y|9xr)UrSuZ8|VJ|;Epi^&?lJC)PtBHJbq(6BqLn)e~V%@wd2_xsj4Vd zQd=&!+b`des`kEh|NX4mI^4>RO44Yy)y!??NB{4ED{S&=TOGiZG2oa?ZW> zJg^}MW-=>))d6XyL2{Cn0>Y?KIxrl-0+d0?h?_`uSjrX2Q=9~v=5Hf}ds>G=srtn1 zf=keVQW+HcjhStA9L2XlYB=0z&8?p|ig~-Ekj(3$Jc)Y1c-iA)J6ki&6xURfcC zxU|G!N#8aeG_@ZzEe9T)h~{?NAnL|TKOK2&3*@3(GBcOmaoG$z{?nh&n@$BAbJXGnlLDM9$?WHqH5)Wew+Y;7Z=ai z5HsV&mD5lSq>Hh;_w2blRz#fmCDuhifBew;Hrq~E8ZtZHa9RVD52siXY1f3GOg-$U zMS*CaEp|@`n!8}mJ)z4+Swyr~v6T{yty2v#Ew!^EysT3d_h$!&JVr_{Kd!^NCH6s2 z`Im;T_s@6g?w#l%f}?mjeS-sEkmlSY#+8TI$YuK^0bcFLd@xM|>KOnYB6LwutL0)F z=Ur?(nya}tF4l6<`FU6G+4+spe2vY|&!gBZtM$IRabqkuHkOZW+z6XmfERvAjd#~~eW0Gc{D(ihoc^hqcm{n$IF#s$Rjqp;jI6bTu+;0O z)dM|i&W--Fn7w_SJ@``MmR7OXhxe|70?@~!rJFVttc-$ndq2$U@7GB6okm-hEv=x< z55Xw#YM%`NWzaY9BHa+JrWmx}pZFE=B)!jhqkG3;T2Q2=_^V-7Ka$%V@tv`8Ty7ia z{fHYL+`f13=qTDw@YI|e{V_TZnB0_!W2At@xG)2UYeI&uDTNa45Bq#y8%B;|m$LiS zcF}xe5)RjMFL$`E#XJZl<)DmSt4Gn*qqAktkz4lk!sxkf*)$fmF8dHmbE-6lGa3V; zr--J5x`aY9^^rtB?hi|V#4G<8xi=RlLl=Y|8_z*+&s1}l<|HGoXXEi~`AS^r|DkeP zTX^3JOH;IvCMW;lrOk7WtKqk7-`iRI>&3CT$xFPi-?VQ6=1zm_oBSDg@j#~md<)@Q zyRoW54)-4pgicmA!uj{LGh42{ddueV@%L)5_ay+yn}>ztr+TCW|z@;8x!_a#<6Nr%BU8I}a$7L9Jj>GwlA+-h1|B?z=Cu2j&A4$MynStmI4qOnGB)~j+CYyNqZ%pt=F@e*f8s!8;bD66`2fz5f0}g1NHfOjQgPxd|cx{ zL_B!g`~36IyPh9;06)Ed#&ygEizYPrto+$|)rW~N@vW2dHIzRgSpBFaiUV@@;cYM% zx{NE7ed(mbfTwkLn-n^=ty_bvVIahoaedq2+qp{ldbcofc=1*#6uWhC(^$(Dq8Vwy zJ|Fn&F^n#kY7;pP2O21}h<&!A(vCyyUC>2Z)kH+mxHrB#RnP)LaRv!djoAW247~By z%%0$R)y^g3a~FZ|ifE#!h>=z$-Emhv|FR9{kjzxzF6G5v((HJ5Bi6?abFy?t_W zpoPp3lHVr=TN9lUNjduPlIE!l++xKd0%Sp$`~JG?_s=RHX~Lesr#7@a&wAJz=)cyY zZaFtF!2E0Qz*>8{wevvJ6-BZ)Mv+8?yO-=2ZeAki85wDWn z{pJfVoNkuoNh;)3^35{p1@;(g4zs3Aj(=?Vp=$M^6}0ute*>rd8TyFgN8r7tk2?u~ z0Ej_{mB<|)mYU;e39KZ!$tF+@rax#8SlN*Su?I3Opq_pMkBll(Rnl5frzY6<*g^UR zTbfjr)nQ~rJNJ_62{tvEUwWFnLaHaSigunR2E9^S)7pwBDA~`m%UKa&lf*xCN%Blp zW?@y=|K2qEu?x6HItHj-T5W{TU%ud)^57SrdH4SD$-j@07zlIs7r5_18&*r+#Qk7- zR=XS#E`Ud=oTSYl!@|gQk%zg1@Q6PeLp-9W|4#+N&ip`l^bjuPV~Vz)Tphgo95T%2 z`GLc+zuzvKMd#W;kHT}quQuD{X2;-w?mlC4?^x0b#R6#BF5;{r3UQZ&uJkO{nKd^= zP-g_K0ksg7ti+I>k7J?IW7(Us&)+uI`*xNM4{jT~ZEPEpP-K;SnwPAZV*>fGvGm_M%*u58>;39UabhbJ=0ptqOgCLd-Z81c~P`ci;njeZt4aq>U8$|IME`HZ%>R)KF4R zrQ{?I@?+_-{MrI(ddR5NPQqqc+$fDPU*ZQ)N0K4yD{t*TE48;!OtZ7&C6a6lqm}WV zi>n%J57s<_iJM`@Aw#0`J*#K9VveUZ&$wLT9BhXgNI7AuEY3B^wBG+9U<{9-f|)=j zd^EPtv0UtH#I%7G2?x;7j%4rGUD>j=ZR#Xmoc;5HiRWXlZiC> zhS|{jk7TUoxw`jpddmhna0xSo_+#`CamU1_5KT|V-Oe)n@zPi!y``f^Vc3FYyaqRu ztUXE|7bH`+sCG^)w8H`-N|5cQh$~Ojmdcc7ZgG7xmAR2J9qt#F?!EQacQ)5UjI(^S zoXqsTOQlGGc$H~K3CNDQ+XW0a-$42Bh_WPWmK;~TadkwW4<9T(HuC7k;+!T&fClmv}YxT%-3bE;o5ww|l&QKwWsQe#(hCX!;sc3~WwW zlJu!7Jpld>5?<|{t+sVmqD zw*REAA4a@Gp)e*k)ex zB5j#=27r%DW;skX+id!#*j`3KH^_DrX*#m3{EFwi zl>jAkq^>|xs}P0EwTMiJPDqE<4u#obXZ_T9nnbWovj3s$CoaNx5`otGtzM5Va z?-~O)I~Fg;=h6M%miw*~CX_ZClBoODE(08kY&Rt)DY0lQP#HDDAq<<2ndUQy-C>V?rSR1pB_ zl(Pzp0-yyHVlIPvAAVW2y{9^_R;gL1CBMj!4yrGWXd?kG36e-|K@09|96G>5waKo@ zH=5;3eVNP^^R>>)MGz-;!v7cIh2l_tO%%+m% z(aDL0#&9|_G_-qYER!A{XtlQ`{DD~D$dUIPIWor&*>PvNa4I#NaSjbRGsCGe!uR%W8c1gFIvauTnAiPHggz(O9vN3%)(l=1%!wy+Hhr%6ZI3SyemF1FR3jI7naW(iAk}%Vv$4CS471`m0J>ZO&1>GNsXR6>l z0`8a^u*V~=(ADS5hF9J`IUR648;hmilGpv&I23`AH|vPQ9g`N{sCqow)Vf80L9>rn zWqrVwVW@BLQW8|PUfBMY@VNJq$+QwdPi(TKbch0G@#sNPjb(Kav(5StWTDA4whdp+5N8J&1{jo6&x?l zLcKlzA=WV#j~1D4p=`nT70|!LucBLmaYp8v1lvxZeg-~AcsC*})oP2~F8YJoa|*Q7 zN%RSN-Ud{bgIp3JhQekTgJPC-*7=wH>uB>&n+|T;bdb5MB5PnQ zEQm}ql@kJ--^7JkYtkV%0KfD!#e0u_G?xerk{@9pk=t@;%eOyqY;rVM9EN-6a4|SK z`A^)b$D5h-=EJpY4S(UhcQVu1vgN&R-7|4%A|Kp7Jb(G+^TXRh`NX9Ykcjl*pgC8- z-?YhOjKDM?jM!*rPMly%C$2qXyLQ`3wfFNAAFozFervhR#0q~FzP{hL{RR4hXE^ke zZ4A$3Pd;}%k3Bc6#|+0pqKx-CgAUk2i%Bu$tr;Ptv3D9`4Dp-{kHau3!)jbKoZ@Yv zWGIwmRcDB?pzDy+EjhX$yTxg@J8vr zN(m{3m^?T`o(zL+$~l}eg63vxZ>!~GI43)D6(|87Pt5E3E|AP@Fpd-{!XlF;=2?gj zf|Ersx<%CWi#(o`bLDbQ##8xvhtvt3**EI?Rjc&$zq8ZqU7T*r;j8*os0p1Kg-muF zfFn@Kkf|At0K3>%DFS})D%!GJdhgRg@#@39=iP2rbhA`Y{~2Au26o>QZo!Q|KAx*^ zT*Zj4QcN&r4uQhPuchmT9JfjE8`vjnc_1f5Kk|w}h8OY1HD@S-IMCrlC?wXK4<5E? zs=YqLfE9pCiXvCAFD}4FRc6)5LcMtyFK1_d0~&h;zEv~}`&p+!$AWfJr*1)VIQ4$R zdt43Z>dGy&I+r@h;yv>+CJR2h(#}qG_@9nqpg>$|D&ziJ0t-Eo; z?qm@J`*4_jbD9{POA>|vR1AO+rZyZHzeQZm>Max=3^xEdv8A!W;D9I@gN5PY{GcwC zqQU6ih57xjf!0KIy3)yuUw7TU-G_e_4Tj?Jq37Bg0^WRUs4|{T{EygZX?Dj&n>O#2 znO$><>Y@F64_|uTL^{(-qnUtO#3L@VE=I?U5wn%Y8-`wt))9~-w4GQX<}q|74Q>ue z$g@f1xQb)=-4|O8iRLC|sYEjs$3^SBzYkgGTV+}DOn7}QP4kpt?s&xOomBYYpo%n_ zn%4VCBEiau#3hNuJ&DAoL}CVkuG|KLsUu=kov}$Q53^Q&!fce$Ms+Ugx9R$A5Af}0 z^uN^me}euYUH{NpdTYDwQHFKqS11Y_XL~R(SrUR%1Xu+$7a4`nY0f&Q6U;XABEQn4 z6HcD-$5iM*I4uO*t2#|C9$oiSe^9>+76ehN=-=Z~deU;{%+s^hW8jZcjBoAW5Gf}i7>9>H$ z7J>#v4P|Ij;L0W;)uW)PDnnvP+@j+K4ZcVSAp$o9L2}_475DEwCc3B=34!w^SwQ40 z!H!xq89AQp4DrZB0g@6$MLc=~Nu1mo!g451%FKkA9mqRmM>Q__lT30L_NzCe7#S*2 zi6|fymFQOSMu&vV&q#GdwKx!NBLagNsvR%)g^Kv5M=K}}8VG=VU#O$!AQ99j*k!p|r^B+v^L7Aapj z=m*Tk)f<&CT|qIwgZ8)@CV|k2%usbq9q4XHE&|1ULDH{_^UY}DyjUz7T*uPCl-l*- zN~(HezFr$`?XYk1DTZfii#naVCF_~W4vs17k$_8-cF&IAmkS2PvBAoA^t$5iCaamW zP@X~*asSxpy4~V}R1QyUkwo1;R48PF)9NJ~!)b3|NZa1tp(KnA=MSjchhpJWWjexX z&mVvYAX>N$ylM#q`XWV2$AI7?;MYJl6#*>~3Rh=7?a%x=r(oDu+%5sP^l=i=sv%hMle}?&jd=rzVF-XnHb?~PTN$oqAfQf0m1lj*a}M8B$EdxHHj(1wd4@uq)fu5vt;ys42#Y|K`e_3%Oam(r1t{_Cqg-a zG-E7bl%R6w`25Tdkr#BC^vi@=Op9B*4WuMcH0BFl&kb-n<^j?nJOfS*%B2)zH-5&^3oIRG*>D=>yMGOG zY04W}@+gXD4gGFM1XIxOTq;Jwf*kZM-2Rwzh-e5Rrl1?BMf`}DfY(J+2N=|PY}u#l zzFyad6w_%f;nQ!_eF+>L(vE6AePsoAbbNZbtiyyHcW`$^I!fS=kBzl{JVcxEuQe$_ z-WC4-i#gv4^h!O{j2OT2hQr=p8IjlWZNx}OiNMz+=Cq03b;-BS|9-;+QHXp z8GIF4Z|5LWYH%&_HrsB>V0LyiEc<6-je*rklr+P*LZhxw8I`ELhjGur$!=4AhGL;v89lw^&Q2L9M_pWa)h3RoB2&E?aJv>G1f)jhzsm#*2qvgD9q z)C{A~Q_y-y@v$c>&V%*KOO;~(LtsD!4!M+RD6u((775z9+^b|beCIZ4~H zW@sz;uW7xLnoDC7nydF>8U?3mbFP_4MAIVl-}}zzH0^VghjlwYkMR8NHsmLToxjTC zpFoeXCSxYaG5XR4l4GC^n42IZsZpVZN*?Ka6)PbMS$#*gmd)0_?Dl%yy%ik^&tdeaBC!OY^@H^pKPaRcv9c=eOIKj1#;=JQsrR^?}ekxZc_U|Vb+hh%0g z59|TGyV}A!0X7i$et0tFc=AlNi)c!U699W;@E7BzoCt};_PYZfJ@B6a-4k$67;^9D zlB9~tzv=qFA)lRC29e=N8-pCHvIWVUFt`;_6i3B3%A=8>ECLjUzGG(yY?`nuZYd2| zLvjIAwi~tVeW=gS1lpP4m`i~gC7S1)i0dykN--TXm_rfgMEMqqoR!pl>!>e&=?*ZQ zzSk4h>cH4jB909(MfyR%`@`-)z`dU0Q`wH#zQ=sfE!g~^x`_10`#`mU0U=Y*=LF$) z2D(L_5Jevl|IjgPY-a@N4%sYX!+*kv^&!hP>l-LeNeruY2#{*tw!^j$YxZi}QQKQ> zx8goaBCUdx12|U|#9SKz^$EWaq*3ize<~y_@4VWNdkg6}e^@ye^sBsK9JI5g@i?U;}O&7v4NC zA!X+Lf)hf5`FV&4oD1_Xosw4OB^@X8IH4(mOCZ^-a~)uu&+F3yBu|K>09@YJyI3*} zl5vnVmKmT6DwiO5OAo>x@j2KEv(Klit->R*M+zdXZ;rAd`MvQHZ`TQPl z02yAHoXw3+?p5d$dS5vE1#G@a9EzkHh7(gn@%uy3U?32TMtmUT1-o-3l}_xKeP3m z_pP>LNAEp1+yE&JEqJpp;eqqY>{emOWkTi~*M2$%@A-4TYlk&1Huk@O-vX4kyKSnt zxd4LHlBg-%2-n+nTIDK*Hp7tMw+e7UR@ZzfH3VH=zw!n}6&KiJ&RQGu=5Y)Xf8Y z15V9jypM|({?HkOHL$_L>j=bS00}$;<aW-)qat-r` z5ZDq`$UcBuL_CpV6c1BIgl_?_!ylN<2<3EEtv8B3yit)uKpg!ys-hPHB1jtgZvfX<{eda^*3qYU9kAvK_v%2*+Ifo8oF1#&=^?Fu5RQxajzJ;81Rejy%VlkEcAYitK>Z^C-Q^isf#o)zD^Ynr*J)Wr^x^aOu{0cTi91cOc_LY^KBXW%sk0#x>G z1(WPzGXeONRegx`GdLX#B%HxuLI^tp-mhh=<6Cn%M0CxjU5dMzFBI}kx8lBSs$!RO zIoV!$7yPgAcdOl*Evhbiz&~J*#j};EczG5df& zV0Wp-tkVtw3E5Qrp4|p`>;yzkz)F>(Id4F$xyz|nSD{GQN05TRlVC|w6-#p3A_^Y_ zbdiW?9K-b9RIza_M;K#(O8BqF8*dFt5+ z{aoZqyIko%<6Cb~1F?gUwAew`pop3llw=TXLGdQwH|)$Zv7(?R3zLUcTMJYcB*LsX~2ru?rz$5LL;jr3>ndYNH~~LY$@5J+=52WkI zoG_;s;8`D8wLyfU4@{?Rkh4Mb1pN};;?c%-z8Ugi?ae#y96J2q;i2&az0{7+z^4WL zC11%Oz}JANln`!K5gMF`y!HY$sa|kx@5}Z1t%nb9ov%YM2Bys!a0LyQ;7G(`QBi(f5{7iKU{pB`X4oZ4nh>u7FJIk8`HZg>&g@EdhspwAlj z`CHOKs9YvD4B3=5k^BLR6C>uQ9+Wv(Hr~jSf{ElYBnir8I?x~KkLdbGTtz?Y_z(nB zk^<%0AQT5Ax{mYH^);IJYtJP}YcSBLS^0!ufc3exbm-{kcJJQpwuxtc2Y&glz%P42 zeUH*CB5!^%mnB4vX%t?=6SsN%AQC#!MYKpcee^oJJ(izdpB=eyY|!bPy>eZ)4(w6R zjbWRQ`xVzu zzL^7kvz}~~%&c_idWZz6D_}o84x;=kl5|Saz9VUx^c_w5n&1#_gsl07W7xb1nfb9B zu%S6d^gk$nj4R2CxYX)patj!TS#k;ta~M<36bV3w$aRUTwO=c*V3#0lqhaiGN~(Xe zUzMEujC$|)7)nXkt^K*76Hne|7`GV!pw5Gd1ZE1CEm<+TNVZf0)|j)M$K^`b+TOy) zf32?#d?-mIgeigMp%?zI$Kg8N6QFPVzuvpHKA0V10ri$>I{|sjtN#7W1llU)b%wA-8*U(4`Dm?|3`j!M%je$xVXJ=W$UmuK31Wc0iz@C_riJ zgd7Tp3}tVooF%<8l(XcGlFRi@mrMGzO9AqchN1s7z;1z{}Ize!ZwzgHRHS5bVVyB_0T94?x&7ui#uKTLEX&yAUjn z?(90$FbHhH;qG-{c4QDVar@bp3UB~Ohpi4buDg4G^Bu$Zj_xD#BiJmRmD$AsqdU;5 zA0+&13h4?^Ib$7QHE^b`j;LWpu?;OcARD61hXV~nj;M>{F!3aEh6=a_w+YIIc(^c7 zCU``cIH@>m6ERKlI}b$cYTxPff>cptz(BxAQ%Lo2u{SKR{m4(?6+%-XVWUu#$^%|S z$3Mk{ElE?^RCXq$ObkJ$v2;CUE31ADa2tfs3|~s zNR}x}7`OFMp_C7i^aXTBc6}n3KoFr=#BfH0Jj)4gd(h=$=|nj0)eUHdu+r@AXf*jb zpA(!!AGVWxBgUznKXy2*N%5?*%5@%&vsPp7?G!=#bt$ho>tWWf`B$$8kS9 z#mXdQA~F}Fh{;H3jZ2Tv7|e1sgg_hFY4H_@ISYYPU$Da26!z&F^I9Nq?ltB}RbjB0{1Zs~CLr=lilSc>lgVUiZ;F=&rUGY6 z`50Y-%z$~&#jx@-EPXBcdbud8rL$CGn&EO8F5@_TAIUgvpy`*mEpcCKwhpnUE}(hK zS2Siz)>_*TYtqm{^I3*hz${xC-?<yzo8ZldJ>}vEk^s#*6n9~PyYIU+>HsKVr#@ylttN@eXpt;X3)ATE3 z`3hb0YVIo(PsUIVxN)o>kmUos@PJ}uJjxYrjrrW#q$EyidP2v6dV|MvgDTPKx#iaz z#`U~>jlPRw#=n}@5VHYo!O|>|-v^c?(XIko2wDhdfoTCBQb+D$@K8jXF4Oixt}=e# z67aaU#)!< zUGGlrBj8K42iG)YzJ|mm%arSCId)iIsLaaeyt0;E!1SUQ!`}Dp6w9mtm_#%gbq#@k z{PI(HeKgp5p9XoKrcLg@;PqRlbr?DcPQiD0>!nag!02NB4U3&C{W6{S=sMQSN;MKe#y>Dea$Ti6#VXG1LTOBa-RK811LmH%h(_U1B z0Mwo)A40f_!`VLV6K<;wGoH(-?&&3qw0Q1x*Sh~!_HJ;F8!#FilWL- zofiI@LykY7RRfwq_%9AGFzH#z?jCB&ashTsK}osB1@i-0h>NNh1xQ($DvMeghjCGK zIefa~g8hC99@9uqopn#Fspz9a%zXx@_wrcbUuKlQP2mmY}Kpa_}tW$bFKw&nK zSWYCa<6E>1;{)4I%zmslP(P5nLh1v!g?2U89B=NBr0EI1O=}G7ZSR!U-=hkfa^}Cm z_x~C9wKVXRQ?|`EILL#Vf|jKUB?Ne(X*NlzmrwvAfC6ka#_E*ShfpPkHES+8Vwxzo zAM7z9kAW>WXkF62;SM?nZ1 z%jbLiaZ%ae3dcrbS9#+YBRs=*`!o@m2OYo&=AIoDs)=Y0n^^WW>PRdY6V#DtZOKLV6BdQP!@xUG=#2i8HlU<;L4uB7Z{!Tz{Qm)u+ zw_te=EigU=8Do(P4e*822_9BUF$8L)o+;s5K{279N?b4&q@}DPDG*KcIhcCR(wxT# zp%b`?DE!rV5jxW<0u7A{xLy_ZpZLY2Y!+Eb@4h?bQQ{H|6QSJzl%kkqf+%Naa!95Q z9XdD}nXEivz37n=&%$y_mRU$lNQ;JQH|!wU9WeA0fmf-ukMi=h(^YY<6ZZHeoiqNeCvJnW~;+lK{IryGueKK(bi^CXlcRArO+V zIUo`-f*hhm}_6(M@){r>DE#>h7xd z{pzc)s&sOCBAz|T>(Z?{-7M$pbRjpR8@>4G9O{b4yAbl=HOA35F$072+o!=!L(n`r z)%}>t$20BddseZ9=#4<0z_3kCnLK>8h%!{kWLIZq-n>jZLNVd!Pc(M5yN{h+NzZG- zspyT*XPU6*dYQubiw1QGYzWw-voUmc79Iq&4-YaxKrOoETq$%i?Mjwu#f)&_n`p&a zRz0rB;TgKZruIwf;58|U*OK$_NYK3l_Z(!vJu-Cpl*USK4^zCMHw-=E9_BEKwaC0= zEtN_Ya=0sBIvN|(sW}-xkKVLwPj{)*okhouB;)yXTy>>d=f`lC7x5)(&Ev?kn`d{* zU+NsgP6rP~sJKu#*Ivb_u1`4@IC!u7+w}t1uPV}O4A(IN(cm{$FdX1FjyU6SJfXQyd#iTu9UnZWU1A^ipKdRmf}XR_Af6RL zx%)i5cWivGQp*;5QdIF`@5s?}mG`T-GCDI4ec2)ZH#`CU4_BMPq|^{nfWg9W#UHI9 z*KrgUXV=U{VeWaNH`_S<^68D)-WI>@$~M2{K|iVAuaj7kX5n~mZb=%Gu})7PmFpQR zp46L8_vYHVxRQP(u5FY@sfzUjbM zJ9I}A79Yf)s2|{QKIg;2)t;sh4go}tXopY@hjb#lKu52c+S%CbJ<*!qkw`r0`AZSh ziPzEQNp3Qg@t(v?$w~Cis@s|y_xauvE&20t0IC29yHJoY=yR?PH(-88ux%}9B4W%I41?=hIxvDT*PXVQ%*W`onkII( zp0+fbU0l{!r8!uj+x3h&v95bnXG?D8;f)LLN>5Y4{prFp>1hW)|CYwa)lJSB;@(Z< zuO7rssOll7yEZmPG*7v_4(Wi`1asw(utt_l{pX2(_XSndY zJFuM8;oY6>vqF1+CF*5g*o)#uIlFd{tCy&VCG3ZjnpJEo10oAkljcmi39b+R%l+*e zC~WB-=v&d}b`L(}{`RT9fwcqS|3deIzJUYb!SICWnPt^y)J|7AQT@SQ&Pg5`HqLJq zx`j}7diob_@%+a;?=jyima0c&5hRtJy=l>6-&+;;4ruRympIvze8=LBjMFE)3yg1j zwYuH)$iM~(1=-ccF!@8(#v!qppq5A3LM}rB%`oK8GZnT@v3ZEfrT=*0L z1{Qd6^dgo?fC~Xd6?54dte=jW6S@mrEGDQq>_V=f=NQ!GPIS?1?pRn#po3^Nw^r4e z|6jCYRb2RTQw}Th#jxx_Ocx*`&YI0(pzW-#oLb`fl8@y(3x~n;=z^jU5-}Z%Z+UqH z$#-Lk@q3szcD)v7sQ-f3^4&S^Q{@REanw*ZA}R4hn6*Fvxo!0@(rM&ux=dc z7lIKB8bYJPJsHfp6GkWoFYFZhhWEu6_X%AnsRpDKwgavS*QjvoJvSiS%dxHFT9h9A zi(@HsRG`q-Kp=i=n;&A+lZadL71MD2yoek;==$xC|1nM06i}0euXi?`rnyNti8qTaIhm&O(YSc#1_%Rg$(0JXo#pN>EF{>%^Ii?h ziQ5|Y6vASI?G);I7onTZVSd(*LV7q|=*YA;<Vw!eSa1P-+0+EKUOZs{K-t_+;aKcOlH!L z?OUEj%*jP5t&fQLV{YG@<@>$i>C5M6@3vk)new~c@ocPKk97?Vb;WMU;`>rsdp73w za0Slk3C~#wVsUMqhS0|z&B@k>Rg^~%q3S%|VcuLd4r?=VjslqvLr!PK*{}(tpYe0>??)e~Or(XOuj@H=EOYf`DsR1Uv) z`iXdKc_S7qX>0WKDbc}HYDIXK+JEV~u>qKHwHkU^2gcT|#-+WPN4mPUB*W`FQXL6j z>xJ=lgkd6@a9c;1Xfkz1H2+Cx)8Ia@K@=`pa!>-?olK1~jo9iKycKYo(^G?aESygt zH|=^laf4yIRoxR$#q@=JUeXEA9*DK}lV0E6c=q}QUaPlYBW&Ldx%dol`3hLhGvm#w zA&Jl^8NVX!d*0X>!W+|9to9Laby;KMWj)GoS){Z zFW83_N4l*bywbI!T{mACkqbXK3cQ;w*!R@6;Jn7va?5zT?~Qj#J^tHCV}R#fZ?5$mbBC1FHg}$?hA-rQhl(42CpTae8>= z9!!RKd{A!PJB|?&Tb8N4<5(PG^HTMib7X9Dlo_liO}i zCO&`8a*W5jU`!ry^y#?ek0H18vc(WKma3JPfl2U!;0{>qmXZRvD`CiAYn!fGwB6MB z{G*Qw#wxMIl2-A@y*3@MXD;Y5^9#$%b})JKjD;f@MrmsE`vz9WkMq49G3#PxV_tbA zIP&0U&)ue-Z5VNzdk$_znnQh+Z7&!oANlQm(zP;!m1F3-JNsIUymf=w-SvNiqwq>R z#rdc@k>%m+W7qHthdN_A4A)hKoabhP;$eM;LqT9-cHXh)s8}Z91rt|ItQja|SME9Z z!~{BX6PU+cAL}Rl#GaMoi@Zc8W{w@1m>3yc?;n%Ro|N5l$GykKJ5nK8Pb7S2Q^oMx zfKl?Uzh)Y2j6CWA=Csvpc~-IFavP?Rz=YITlp)_85_Kr8P0zJAr>{;o&zT;de!}$8 z`1JVT%!5zO>_xQd00LGq>F$rQ)KRKPiH=*UEJlA_RfZu3e!9Jbfz5w@P?rZoAZ{)s*bYk3(!9!W#zK`Rp z8tRDha3fwO8@6EV%h?UPkmDne<~(c-{HrDC@_g(MqQ89uSkK+hB=$BoYy}JMZD^=( z-?4Xc%jUCp6^@vgS1`p=ZGK^J+WkELDQBs__(wj5W2ylwX1fS)coh+-4d+-=rLd4C90suD znlMXDGa~U@P$ToIRkdNQ><-nb4pUv2$jZ$pQc&G$mg-TxYBo%ax#|c7CnFrk^VI@4 zj~A+n5Q>)duIt4)xr>fJ`%hg)7PMxmKQ0vtOb*7q78`UOt7Wy5}R$J6L z>RhbwcAna%wyPcLd^M?ds$FWg+M_N|7plGL73w0jPrXuIjCt<&qdk3zx)hPUm#NFq zuDMdZR$ZlDr(UnFRtMA@z=&^D*Q)CDVRgTHKs~5FqCToVrXErs zNA$!e!498>r{J^dbBKHVg8HKRlKQfGSbar(Reeo8qP~uv`ERO6)wk5Q)pyi))%Vn6 z>ig;k>WAt_>c{FQ>ZkB*{7n5^{X+dx{Yw2>{YE{Zeye_`o>Wh%->W~UKdL{eKdZl} zzpAIzGwNCOocf#kyZVRvr}~%rA9WB*2)ftroVAEEhZEEd3`oMy)`%r$rb$McBrDA_ zU0Nh3d1;k4X_pS^M2JY2%#fLKxD=#YW=RiXO=im+nJY)gJULQcCi7(hqEHq}QA%P2 z>zztjDpEy2OFx2E79&#OD8Vw)G9ZI8gn*V|8Ie&rR+h>#IZl?#@p6K!kQ3!3IayZ9 zDjAd2GA^gc8aWj+ySy9$5bNZ0IYZXV202qEWTR}7vt+ZJEnDOqITz6p=gBtNE<5CW znUtNfOLog1xd2g_d*u~!k?fOK%Ej_3*)Ok_OXN~{ja(*|%N25^yjHG~*CBS|YB?Zp zkZa_Pa;;n^*UJrZqr3?o$eZM5xdovYZDXvzeNDhlk$}OUj86|lt0OzJYZ~I65R-mnDAkm&gdqc)y*0~Vu<9(qf?*_PQwn}sSnd#dWN2<57!0V zt!L>T-K%HoIeIPzjL*|9qG-Nep!@VfUDPFQwAFzw>x!=G8iI!w>BV}9K1v^r!I=Yk zP!H+49@ZmzR3EFC>Sg*ky&O_^f?lCd)FK4->9$E*Xir^4f;m? zCjDl8lfGHsqTiz5s^6w>)wk)l>v!ne^&R@1`d#|n`aSx+`cC~m_`UDack6rfz4`X@Q)hnbyuQxs>%6|s>xX&%FwY<6 zeGT(|hI#(*)cM34Cf*3IA7Q>nn9c~(8DTmjynck&kMR0YUO&p~MtR*R^F7MzN12aN zKF?96H_GQZ%5+EhTt}ny(X!IL;Wz+4@2EB)D5g$9o-*w!%#O2 zb;D3M40Xd$Hw<;dP&W*9!%#O2b;D3M40Xd$Hw<;dP&W*9!%#O2bpw5DQU0hKhPq*> z8-}`Js2hg5VW=C1x?!jrhPq*>8-{ves1t_zV5kd*dSIvrhI(MA2ZlOe$p41CZ^-xP zzlriso;T!oLw+~pbwfTku2L%ugdxuXu4I?G+1xYPwxCoc8DP#;X4xYP+#CvKhh zT_IoL6iteAfVup!NeKEr<_tY6P9O;vx-k4$HQ+LcT@rQ{&OnmB)86iIP z$WV_A^~j76pSom5h);boBg7w}4vY|=x@AU)PyI3@#HWs#QQ}k2%qZ`lx@Ja+Pkl4g zH$#0h)HOq0Gt@OhT{F}*LtV3Mr&;QorM_9}n=M9omO5vP(f!(Dbf1=bXN%E&+G3=q zmilLl(Q~%N=sqp=(6W7Isf#Y;((#+6E?Tz7EcMY+A1&KsmO5$K9<$U-%l4S1Zd&T5 zWqZt0KP~msQa=&I5#duu5nIB~QMtxK8~hx-S4%y$)Kkm$n5C{->Z+x#TI#B$u3G9U zCTfq;rLJ1)simG;>ZzrkTI#8#o?7aurJh>qsimG;>ZzrkTI#8#o?_1E2%matsi&5D zYN@A|dTObsmU?Qbr(x;AEwy!Mp)KX6^_0&>NE!$U?x@y_JveZ}0 z_LZg1TDGq&_102vFa(RjTk5l=K3nRur9NBgv!y;;>a(RjTk5l=K3nRu zr9NBgv!y;;>a(RjTk5l=K3nRur9NBgv!y;;>a(RjTk5l=K3nRur9NBgv!y;;>a(Rj zTk5l=K3nRur7m0QvZWqd>anFBTk5f;9$V_Mr5;=Am8DKu>XD@$S?ZCc9$D&(rLI`& ziKUKM>W8IHSn7eL4p{QNCC^*(yCtt%^0^&l`6QoP@^wI74#>j+c{m^s2jt&?{2P#W z1M+P^o(<^#3dpko`7|Jp2IS9xycv)e1GX;$wkrbiUqIdq$aevGE+D@JY%c`lwSfGD ziR;696OeZT@=ZXV3CJq}?el7*uD>F#|5_oqlWn Tk%-c1X!zdJ9z-96+av!M=V=Jy diff --git a/frontend/documentation/fonts/ionicons.woff b/frontend/documentation/fonts/ionicons.woff deleted file mode 100644 index ec1c1f879567793545e1a00ae1dabde12a7fd96f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65912 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/fonts/roboto-v15-latin-italic.ttf b/frontend/documentation/fonts/roboto-v15-latin-italic.ttf deleted file mode 100644 index b0dd4a1e528f513a5261baa536e6a226200a2bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33404 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 RR;p6MN{V@9tNe#1{sOTsz$*X% diff --git a/frontend/documentation/fonts/roboto-v15-latin-italic.woff b/frontend/documentation/fonts/roboto-v15-latin-italic.woff deleted file mode 100644 index a2b770481888875242d97551db61ceab992b14b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19880 zcmYhBV{j%-!-enIwz;uwZtP@Z+qO5hZQC|Cwr$(ym*@TUP0i`4bJgjdo~o(ouAX+4 z6BPvj0e%jdQULOQSAVY`|3C7d`~Qd7ZxK-d04VW?3H(SJi~;mcOkPguhb;gAVB-J) z9Q@SNfrOZnvJe0Ok^7U;`cY^iS+=5_5F5S0RUnGKN-UxoqT^kZJQbE8~w1tAJ6umUi>NmW5DYt zPmu6GfxrW6+UQ#w|1gFhpY@X?L-D7>u(Ne^`e8Fa4DG+%w?4qg&cXP;%*xi!)Tw&!jCjUEx`JxHpG|>C2fS9kk(IQ!W_~z zVaQma{!e46E{*m#iZG46l_^BDxTlV_3wJ4746RTV+@P?m7fU@*VZY_AMozI8*dem1 z;27(YwPQ)9iLn}i%HKVqJ?C*^Na$&p;rtaw97uM-t+f$*Ivz*^C2&RS9e!e~Lm znxKX;{VKA<8s+77(9^o0PwhRb;@++tci9I;w5Y~ooaptbs8=)4X8B`*2V-{T*(30w z6_2xZmJ32*8*P3PZDERa-|Qk;`KM9|Ud%q2;vL!bJ;}0mZ`VclAmwem>?yg|nCsg4 z%f?=kw*;y#(hd&3ab0J`HvTWd8a0${MTU+Sb82lWL9&HoM( zT+&_VSF@QUkHy9@v8eZrI%#ILrHs>PQqbxZRZcG~)JZIjv#jFG!s67z65P5{2sMo} ztd={tNh7CegXyjLbyw}X>+opMYv#fvhGH#Wmt+-W&DK-k$EDbn&n9|svC1&|%Gp4eUJ|mL8jBiP1Y!Jp5-jja+ssV) zdiFq@%Z-W!#)0FN(#46lD&0osKQ@RSN`O^55BY5U=%~83&_Elt|W7>dECjXihj||NE?5qPc zgt)*8Ar0ja-9_QQz27oRAXD0&0Fhf~r%TUi_nKyFUj^%qEa`$ZOu?TI31`~XMd|C{ zi=jwHs30tf2`LICQxcuVgg*YJ8X>PbO_y4qg-3(RTZ004ZCVwqQ3&iV;V|Zy#1>=v z^oL$k%8aNG+3V6(cM~_5$254sCp$ za{KEvt?l3yZZiH>F9#(O2Is(9;|jF63eOz1mL{(xcGU0@1}+b&}6UBu5+ZK_jU5HSOHf$jIbXR;Dpiy;OpfEdM zBH{*+Abw--^7Bt&86pxb613?>BISERq$x{f4%51lqh_ela|v-x z%X)OZKp8K>t^EvQZb05KAXXa+xWoLuMzdDehxxRbXyh1<%?6g5*34`*3Y)o0>Ob#N zl*Rd@#q;n9wE!5)4iom+&@vjy4X)pm@(!$i>Ie}Aj7>R~0c;tM;#QeWlguSz%AkzB zD&~NtKI-@H=-vFpT0fLjagr3CO1Dz|RC|J}OZ2PwRyvz^yPBsRR8DFLj$fA!3Tpz< ze=k5@mAiFrt5K^_9|9jipFtmAo#5O#KAj2NV7-nH#z-SBqO{z9#|uIg zB`U~*CH+QlOEg-bl&5zb!HAmZn_ z0aQO@{a-*hzzwhfFapQ|Gyow0J%9>;1(*lW2^jcEpnmBAP=Pak<_JUp7*H+%Drgh{ z5v&$~3XTat11bg}f%gL7|7*$(NIMz~9z_r}*tAqr2(@hTPh1)c-2hd`VBVH{t7as~ zj_f7Pw`j{Oeo08L%1zwy^*BQD6bUN>{4tKh>+`dls*_?|20KeDa=(w2-}W3wZm*np zR4B6d@3YUivUs)7!BtO~S&SH)ZQ(|Iw;Fq2L0TX-wisS+Mr7-;Z}@AJthvy)RI|V8 zu@G*^0APYd4P91)vrd6RMh4*kRTX^eh&x4SoDRRfsWBubvj>GNUoZ4rfZDydMe%^BlE(A z*Sb31uy~d^XjV;<0{Lex6;7Ei37R33brS`bWtn<8lm_FbkuSbQ^* z%0~V+e{DwDEcI8~3b7~jQ-YqMu%D?b5C9ke2>|~71|YZrRdzyXp$=nkd=+0@p|x^f z?Oese15-g$jZwN7vM;ISgQIz3cwTos(3Q%F$iI*>HA}wM1wcNW;`L`>EYF~UKS|AUPvh4v4{6Ch8{&yUZ}E8_>yU{=vZ+ZLcKS+ zWEB>Mk|O)bgAz-W@<|dedPUtzajwOziJ(6HB1;dhohEnx=A)qO=5$*NfaKX+CV1A3 zeg_F29{Y~)K_jUZU|uw9x>d!&y7&e)=Qs~^6h|9PyfvB&VeENQi1U9Xp{Q`dOWYd~ z<>bu9HT_daQjKhAl4SAWb;LD$|2)aL%rXFQR2M9iA0VYU>6X=7S z-T9?X#fHS#N>ihF_KU41FR?3y0zM_8kVDIC5M{re?mLX2(0)xY@QcAlZ}M8ScLwh- zpB_n=AE??f1YcwyjtWp`l(SVO3T`s(Oj$pd@=NVr|BIT5=YIVLRcttshj|%$^ke}? zx>VN@%_3r_S+hHB(T5rRBevC+xP3~)0t{P?W@gwiiMakuiCg`uZahhb(LMh!k&n6p z60n|^=cPx@tM>8Z?^DsIOB@%Tm2UfCsVli--;*!n@gWai`WKwbh2Xp_>X}?+vmCbA z@2a_{%9-F@R2E2pV94ECV_hc>lU`-Id;>a8Faek-8=K)^X@WX=8UiXg4#+*O%2*7W z&mX*#-O^f_DEOy%>#aaVAL)Iurni68Rz{rW=BMWPZ0FflgQtHK9n@4+jL41g)KwBu zIY~!Z#+L0H20!}J9-;dc>17W+V=^n%jYTA>IG%O|Om?h2G}nFs2C3a-G_w>ByXK~#1qf}9mWjaN9J zsMIY$y+a{u%dYh32alp?ABRlp2rR00PSr9rVuJNTiTw46v-14%!XTwN6IL zl-7dFUOw$oVm?jhwwEWN%>sliA2{uiyKLx+dGJ=M`{yQ(okQ!LONu^~+T{f-yi#G& z5zbnf7swTM^-2{u6*s}8D#uYx9>lg*UzRSu`%ml&Z0z4EXc^cc_>!4{t$$+`8-yTd z`w+g3Bw6BH3GnKpAVrUpFdflvxXZ?{@O2R0wX|Vb(G`{EHUv8)u1-(B+flcGF@Ssuu5%lK5wp zC>1|N+)iJ7bD!q+Fry(hg=vR*^}l%Ttq0l57c)d`D7P?xgdDHLGt-4z7+Y4NEjQ^pTBM8I*xz%i(9}hhwS2O$r~CYeNRBKi!Lv3$5N{D4UPDXH)4v1?^$v2Q zt^L}#rGi1dV5(l7BQT=DgWL^btp_qn3D{8yt(!g5nK4jnjpe=SwFS_|d|^f?{;Eac znjF#L54SeB?f&81zc8J_G)a654j+rXGs1I0nF&!OWWy?)D9XwmoA#UO*5lm=Gr#vi ztp*1L2!U5N$|?Rx)=wAcHZ5R2Fv_kBT~|*(*r0ZTfQzey%|6KMNWm%~AEU+k$1q1( z^qD_8z%Q9cXCPRuJy<+ zH#-x8L5EpeXJKvB=6%~K6iNBmq#Hpa-roLZ zvTc6cq*!k>WSCC8*Qo`#Yf zPBT#@&#T)JAX1bT57|Lp;v86y_qb%WFJ;m=rMWiYd)<&!&|++Xd~<&FZu#t z*)Gpe90y{?fR$`F{;wp+@Xf3$qF2E3_Uu`UYOy^vob&KrW1W!z|ksm zosRv@r6~4T=zwN8hLFf=1w47xA%c*^K$sMJF3b0J+|sf_TC+;9jT#tQ24$?YCNxm| zL5&MY$tvDDQSS{3_C&i^6-aM2R=p3jF+;jni?f6_OX6zAvG&f!@p!X2$cc?Jf_{_q%gt%N+DP4~bC#I1c#zBuF?4#u-IxVbQB8!8&#FpD+rn3vsSoZNWpl*V$QwCRFZ zG#6zpbF?%?Pagtnf`D6SO$c|<1ESaqe?CH58zfH8u6lfUc-YanZU)!EoVCfEB`w6X z(hsmAiX^`R1*P5LY7^-A3p<6_ZmgP?f2Wxf@6RJH2wk0XAXOoBSHAb!EoHVO%5o1k zb!di1NzU%~7r3mKBMIvdaEBlb6cex@rAp)lpG-+M_ zKVDA1bF9~tkKhEO>X~pzGGQ<^%%cvp=VWgLsMU&_tu})}R^!i!Z;DObElp2pes`e> zS-@<|r<$cwP6t(i@Z)M(XK4Idk!mR$?ZZ#dZ0plWm9h479@1{7IS9zw?G-toNTWm- zgEtAyOC50;LX$2lDO4VOoWJNDfM^mEF~F)@PuGX&fT4bH%BkBOUzVYRWVZe`+AaSj zC9U{XY|y}Tc5c|xRMZoMHRS#DP-kkO;_WQb(SdR;!f1Bzh!JZ!pTFKcHJ3Q+9%d%N zJ6(R9Kw_UGOAbl5)kWaU88FJQy-sVGjD+T)z(}C$;vBRNc%W>a;-*c{_F$jJuCq_p&EsOPR)(->AEXz5I4a~ zGu#lbi>=N3$W0%Rn1T$%+R}PJsUIrob_i&N&l@oHR-N@V$z5GDIEp?Guh=0G$VCEd z4tL|j%Zlr%_;WK-=F0q&dYyf$;S**Dw|7+u^{b|mt+O&A)q`P_eN^#m7A`;k0}M?V zgg9#3RHV`v<#qDn%h$Bxi<4+;1pFOw{we=>h*6nruhirk=e%WZ`LfcshBq2fo#So! zXD#TK-Zv`d)kg%!R8CvkH7^K7EGiC>FjdPZYeq*NV61YunIkC$bnlOt)-TZbN8uOO%W?uJQ^dy%Y zP#TjHUVS;yKEv|CQ-fan2F&mCiNJGt0%fSjg((b43HZHom~32|d4|C0KS)$|X%-d* zjqLd~yzg|9HE9OT9_-9C6>HS=jmtVS$>L8C6^Kk5UA214=FopZolG&EOio}0p}hx| zSe4QOte3)UE#}p`*%otAjsmgb`%|Tfi@G>RfaZNoBcA9a%V{)u=YmdifM_S{L>u zz*&nr??)Hy&!*T(PlFWw?`!l(7?bD6NiXG`Bl9@hX`5;th!MMIH@B%1-{$WujcCg2 zGAHcUl^fD%mr|D{i!nVPK*>Y-%^e_WiN#@U7q1A8<_35P*;5Y<6I{e|y)zxlp=9Oi zqKOzxeFl@`aTzkH%z;xhX?vC&MFXl#=(;$bX)?!v(R0lRa$x@_047w9&_+*etD7!c zeu`JhN*APbrn+x~2n{?EBYbg>8s769(#p z#}JV_!N=o~tyR_Y+=Fu}Ul-xuifUlhgzr8oRW-3PX&=FL1xTC;+J_?~yj=Q7|Fl|U zmwskDBv^L~;coQgUlTRl4hL)w^zNxV$~siGNeJVE^^7q!5}?EiY(kVAw_W(KF%7qy z-*0buDck)J)n;|DX;C-h-J`}ipeD(7bV<2uJ+}~nbNI*IRtLSF2IKJWbQnw~Fr5;7 z^j?*eglV-Djb#ed#ETH-Xqo~*wEjMm3nC^oCRoNET9aulHk2~%N! zvK)0!a3P!&W#SaPNXcySg%D+uQgX}F2)kktMmRkw8sboU&Ppf|l6cR!TL(g}e7-CL zwcmHTpLi^q_KP6b=U&&4GS556+-K#Mx8B?lBKRlQ1d;SGb#3BH)ml^x-J&0BrVXrh zu>Vet0qXhsUzX(k#*GCQDueMn-mm=Xz==Z~oYi zhCvfoV|^N0{yS~?yUt}0Ln#S)Unfz^zxeWehQ?!*o|z8*SK-c(R-+TjPz1Tn=^uW3 zea;Ck?$BI`<>R~{?h_#aJ5&KC=m=h=8uCXal65B&QFFklmi2co>)XfNu||Q~nnwNi zXMxc+$X`8<1cI=OE*G;(4ZOJTNI~xN6@t1N8ZLB{p|asPJjhed!hwQOjZxL}Ei7dF zhgA|JYE@fb>Z8&FTB&cL4!P0F@5)~UNkvy2GKb9Xp)(i|K!skrjuyH81~cz)&Y6#; zNKv7>p%Gx>Y&PK?o#zdBOEz7Rh`gWd%W050pz<1_aZj^Qs9kPLZCwGWdb&{cZ8OAy z^YK*g8FsUFXro?5@F^kx1n1CPMntD)RZcFpB#KSU?(VxShmYs5H7@s2rVEa{$VWbz zIJ^QjzB;I@SdH!i=s7YEuYtv}gvMi*NC+XLe5iyTdkAn6E$#OeSD-`kFe#KS{FJB< z@a`C2)zh+w2^~kGn0S8UNg{nW+{!v#WM6}O?BU7Gb8Y;KF&`{4LaIKLdNkIHxd#8j z-u?@aSu&2r&W*;OBjn){59kfMwy&GuW5fJ>NV8SkD)L(^TE2aMDX7ouzP5v_PZaa$ z2FbOBo?L_eYKcRka;Jc_FI@RU={83}xmSR1qU$D)Y}x&5vd%qf=*G_rSDIO-k(ID>8Cw)Hp)bAO}mbna&Z z!bRS+Mc507t~2<$|6SYw6ads9m+3qR6CSqVMR0WvlgSb1->;2Af<0IX5Mat)VR)6m zJN#hbxXJ4TZqq?1Ovn3pMwltJ=OLU2;Y4uE`tj?yj7A(%A@B+LvXL7-lpPuP6Eb#? zzDX_f?;~Odsm!6te0?_mWxO*2c|4Pr8CR~DI(7QTgt;@%kFDJDRXT6b2#R_s3FkWs zFDBRIJ>noM&ibp$zQFvRc3cx|2147cs+HE8$GTz3N;%0D|EBaVS5|Rd`%aFD6>_@f zUCHoi8qQmuvm}0?eW0w_zcQN)-mibJb;#vp2P`%^=6z>U`(hBlV4+|!(qZ*N+%WTp z$Vh|L2!<+igMIg@|5WMsJ2RZ6Bkw+f>7LV=O7XokmRJJg>Ay z%qeL+3MbNif+03ieg|(9ZLY$){vo1NCvbK;k8CAa*Aqj=4gd8H{{Ms^4zI z8!VQS&Y0jj(fP7@wm*+o6{GEVC=_w1>}h#RTaMWcd$pu%3zbePgSkxvGFzGb0~rmgMuwle||^N(Rw88Og^~GWrV{YIrZWj{@ANUX;ik6`-`Uq$%YQ zlt0FzH33m|^ZEPqs6djU;XNx(%f!uy5kG|n{lLrU4kgY~>KOGfhGNc#{~%SjURhb3 z5sNwB&ZK6@Q)Tq(W-avO#6rC9o9Y@ z25GPOVs>g_1V3nTpLSZG0URL(Xy3G0Vj#VL^s*fuZU+_g4wfxP=6BV+MqSE--?M|}v_BOt3;Sxx5;IRF4vcbH%IXJ%)b2_?BgP)VK?Wp_U?@iN=r%}th8EB9YAF{0tz_;t21wRo+f*Y zcnY6i;1X?gdF>c~{nO3dqHxeADuS4y&oF)?pO1|N2y`PV)^>#hH<$BDVW`exnI}yU zTOAe*B;hg=PYEi1K;eep=*y|SUp&b~mx;_9Q5xLuo=Qce#*z$nQ26YtAMLd2lnhx2 zE!H!oO)H@T-u$ZsAOnT*X8z?zBpJm0(Sx3>(@*TjqoQ$N@Sk^Z=;ly$pvwx9$9}Yp zbTp^a2*O#MvXFLsX9v^5FKZIKuDcHO!@&;W_;Nzdne;I83MtxdmsF=qw@7eGZqKAU zs;M5{y*aKPBW`SXj2aP^I%{bxGNCJVUKCCoq;O25t9TmQV)p$xd;5;+ty?pdhNGibKlxhs$@v#h7wNfufi z*k{*6sI;CcvD|iJ`R1Ms_s|x8J~po~rod7D3vRL6E%SFE^OHjOm#%JS_Uhn8?gjl6 zky0G&UqXBV{9lcWEQ?qRDjs#WrKwKmO2FTO1OpASooY%0DBtP*gV?bR+Xd=HFXCog`pD(Kw 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 w1=re4371U5b_;_(00bZff+hzb8;wM>qO9-Y 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 - - - - - -dependencies - -dependencies - - diff --git a/frontend/documentation/images/compodoc-vectorise-inverted.png b/frontend/documentation/images/compodoc-vectorise-inverted.png deleted file mode 100644 index e95ccfb06cb8d81c827263438e91851ff27a2ead..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21782 zcmdqJcQl+^8#sy(B9TFegfMyyqW2b2MlV4`i$sYYy_ZO0^wAkc38M$mi5Ah@h~A0b zd++xh=X~d!-(Bn8zwf%%vc{VC-TUd!e%cnKrXojxPmYg)fk6O~f1!bafdxkY;@t+m z`E5|&2YlRqt0?yZ_ym4VrE7eFk2@dabsd2fBj{hu=gdiNz?ZmA5M>$MIegIFr*y=D zoAVeL)EJN#QZL=cH zpxlz}Yf)+Q+#~B%>+Mg&nT46tsY`f&PqhzIP>YlVN!}tLFwipa)H3rrhIPhecb65Juqzm8^-=J_yZHtdPsV9$_r!MWX>LKYmJQDs zpV^keo-{@T2*WSAzx>VEd9vem@{XkdygD@+jD-eL`*91km`|UK7(Tm>07qG!_?({^ z)i)F2N{VBog}Z0&A58IdiqWw=ZCYvvVKUQULNPGB=rcCHm=c4+Y}!=p`%QanX73s# zclrFTd$Y=trMNs@Uq!7P*6r1O9@g5l=1z!cP?5#MS?tSuBmj=JB`Z8&59 zt4 z-B639WILrni}WQ<5z1(q=(dNthE?W7RL>$Wd05PJM-&)q=e8S^660bu;`uQZxLG>N zAx_yu%⁡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

      rDyEFG=J1n~GGY}B}aNyqxGRbYf; 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 - - - - - documentation - 0% - - diff --git a/frontend/documentation/index.html b/frontend/documentation/index.html deleted file mode 100644 index 46ac9af..0000000 --- a/frontend/documentation/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - -

      - - - -
      -
      - - -
      -
      - -

      SyncfusionGantt

      -

      This project was generated with Angular CLI version 14.2.5.

      -

      Development server

      -

      Run ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.

      -

      Code scaffolding

      -

      Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.

      -

      Build

      -

      Run ng build to build the project. The build artifacts will be stored in the dist/ directory.

      -

      Running unit tests

      -

      Run ng test to execute the unit tests via Karma.

      -

      Running end-to-end tests

      -

      Run ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.

      -

      Further help

      -

      To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.

      - - - - - - - - - - - - - - - - - - - - - -
      -
      -

      results matching ""

      -
        -
        -
        -

        No results matching ""

        -
        -
        -
        - -
        -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/js/lazy-load-graphs.js b/frontend/documentation/js/lazy-load-graphs.js deleted file mode 100644 index 2ef47ca..0000000 --- a/frontend/documentation/js/lazy-load-graphs.js +++ /dev/null @@ -1,44 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - var lazyGraphs = [].slice.call(document.querySelectorAll('[lazy]')); - var active = false; - - var lazyLoad = function() { - if (active === false) { - active = true; - - setTimeout(function() { - lazyGraphs.forEach(function(lazyGraph) { - if ( - lazyGraph.getBoundingClientRect().top <= window.innerHeight && - lazyGraph.getBoundingClientRect().bottom >= 0 && - getComputedStyle(lazyGraph).display !== 'none' - ) { - lazyGraph.data = lazyGraph.getAttribute('lazy'); - lazyGraph.removeAttribute('lazy'); - - lazyGraphs = lazyGraphs.filter(function(image) { return image !== lazyGraph}); - - if (lazyGraphs.length === 0) { - document.removeEventListener('scroll', lazyLoad); - window.removeEventListener('resize', lazyLoad); - window.removeEventListener('orientationchange', lazyLoad); - } - } - }); - - active = false; - }, 200); - } - }; - - // initial load - lazyLoad(); - - var container = document.querySelector('.container-fluid.modules'); - if (container) { - container.addEventListener('scroll', lazyLoad); - window.addEventListener('resize', lazyLoad); - window.addEventListener('orientationchange', lazyLoad); - } - -}); diff --git a/frontend/documentation/js/libs/EventDispatcher.js b/frontend/documentation/js/libs/EventDispatcher.js deleted file mode 100644 index f112877..0000000 --- a/frontend/documentation/js/libs/EventDispatcher.js +++ /dev/null @@ -1,5 +0,0 @@ -/** - * @author mrdoob / http://mrdoob.com/ - */ - -var EventDispatcher=function(){};Object.assign(EventDispatcher.prototype,{addEventListener:function(i,t){void 0===this._listeners&&(this._listeners={});var e=this._listeners;void 0===e[i]&&(e[i]=[]),-1===e[i].indexOf(t)&&e[i].push(t)},hasEventListener:function(i,t){if(void 0===this._listeners)return!1;var e=this._listeners;return void 0!==e[i]&&-1!==e[i].indexOf(t)},removeEventListener:function(i,t){if(void 0!==this._listeners){var e=this._listeners[i];if(void 0!==e){var s=e.indexOf(t);-1!==s&&e.splice(s,1)}}},dispatchEvent:function(i){if(void 0!==this._listeners){var t=this._listeners[i.type];if(void 0!==t){i.target=this;var e=[],s=0,n=t.length;for(s=0;s1?t[t.length-1]:void 0:t[0]},this.getActiveContent=function(){var t=this.getActiveTab().getElementsByTagName("A")[0].getAttribute("href").replace("#","");return t&&document.getElementById("c-"+t)},this.tab.addEventListener("click",this.handle,!1)},d=document.querySelectorAll("[data-toggle='tab'], [data-toggle='pill']"),u=0,h=d.length;u0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===d(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,f.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return"function"==typeof t.addEventListener?o.apply(null,arguments):"function"==typeof n?o.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])}); \ No newline at end of file diff --git a/frontend/documentation/js/libs/custom-elements-es5-adapter.js b/frontend/documentation/js/libs/custom-elements-es5-adapter.js deleted file mode 100644 index 3a694b8..0000000 --- a/frontend/documentation/js/libs/custom-elements-es5-adapter.js +++ /dev/null @@ -1,15 +0,0 @@ -/** -@license @nocompile -Copyright (c) 2018 The Polymer Project Authors. All rights reserved. -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt -Code distributed by Google as part of the polymer project is also -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt -*/ -(function () { - 'use strict'; - - (function(){if(void 0===window.Reflect||void 0===window.customElements||window.customElements.hasOwnProperty('polyfillWrapFlushCallback'))return;const a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)},HTMLElement.prototype=a.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,a);})(); - -}()); diff --git a/frontend/documentation/js/libs/custom-elements.min.js b/frontend/documentation/js/libs/custom-elements.min.js deleted file mode 100644 index 9b64a23..0000000 --- a/frontend/documentation/js/libs/custom-elements.min.js +++ /dev/null @@ -1,38 +0,0 @@ -(function(){ - 'use strict';var h=new function(){};var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function m(b){var a=aa.has(b);b=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(b);return!a&&b}function n(b){var a=b.isConnected;if(void 0!==a)return a;for(;b&&!(b.__CE_isImportDocument||b instanceof Document);)b=b.parentNode||(window.ShadowRoot&&b instanceof ShadowRoot?b.host:void 0);return!(!b||!(b.__CE_isImportDocument||b instanceof Document))} - function p(b,a){for(;a&&a!==b&&!a.nextSibling;)a=a.parentNode;return a&&a!==b?a.nextSibling:null} - function t(b,a,c){c=c?c:new Set;for(var d=b;d;){if(d.nodeType===Node.ELEMENT_NODE){var e=d;a(e);var f=e.localName;if("link"===f&&"import"===e.getAttribute("rel")){d=e.import;if(d instanceof Node&&!c.has(d))for(c.add(d),d=d.firstChild;d;d=d.nextSibling)t(d,a,c);d=p(b,e);continue}else if("template"===f){d=p(b,e);continue}if(e=e.__CE_shadowRoot)for(e=e.firstChild;e;e=e.nextSibling)t(e,a,c)}d=d.firstChild?d.firstChild:p(b,d)}}function u(b,a,c){b[a]=c};function v(){this.a=new Map;this.s=new Map;this.f=[];this.b=!1}function ba(b,a,c){b.a.set(a,c);b.s.set(c.constructor,c)}function w(b,a){b.b=!0;b.f.push(a)}function x(b,a){b.b&&t(a,function(a){return y(b,a)})}function y(b,a){if(b.b&&!a.__CE_patched){a.__CE_patched=!0;for(var c=0;ct?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);r>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===ho||n[0]===po?po+n:n}function s(n){return(n+="")[0]===po?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function d(){var n=0;for(var t in this._)++n;return n}function v(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function x(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function M(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=go.length;e=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=ko.get(n);return c&&(n=c,l=B),a?t?i:r:t?_:u}function $(n,t){return function(e){var r=to.event;to.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{to.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Eo,i="click"+r,u=to.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==No&&(No=!("onselectstart"in e)&&M(e.style,"userSelect")),No){var o=n(e).style,a=o[No];o[No]="none"}return function(n){if(u.on(r,null),No&&(o[No]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(Ao<0){var u=t(n);if(u.scrollX||u.scrollY){var o=(r=to.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important"))[0][0].getScreenCTM();Ao=!(o.f||o.e),r.remove()}}return Ao?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return to.event.changedTouches[0].identifier}function K(n){return n>0?1:n<0?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:n<-1?Lo:Math.acos(n)}function tn(n){return n>1?Ro:n<-1?-Ro:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):bn(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:n<0&&(n+=360),n<60?u+(o-u)*n/60:n<180?o:n<240?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:t<0?0:t>1?1:t,e=e<0?0:e>1?1:e,o=e<=.5?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=to.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Do)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=dn(i)*Zo,r=dn(r)*Vo,u=dn(u)*Xo,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Po,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function dn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(n<=.00304?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):bn(""+n,mn,cn):new mn(n,t,e)}function xn(n){return new mn(n>>16,n>>8&255,255&n)}function Mn(n){return xn(n)+""}function _n(n){return n<16?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bn(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=Wo.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o|=o>>4,a=240&u,a|=a>>4,l=15&u,l|=l<<4):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=l<.5?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(t0&&l<1?0:r),new ln(r,i,l)}function Sn(n,t,e){var r=vn((.4124564*(n=kn(n))+.3575761*(t=kn(t))+.1804375*(e=kn(e)))/Zo),i=vn((.2126729*n+.7151522*t+.072175*e)/Vo);return hn(116*i-16,500*(r-i),200*(i-vn((.0193339*n+.119192*t+.9503041*e)/Xo)))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&t<300||304===t){try{n=e.call(u,l)}catch(n){return void o.error.call(u,n)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=to.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=to.event;to.event=n;try{o.progress.call(u,l)}finally{to.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(ro(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},to.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;r<2&&(t=0),r<3&&(e=Date.now());var i={c:n,t:e+t,n:null};return Go?Go.n=i:Jo=i,Go=i,Ko||(Qo=clearTimeout(Qo),Ko=1,na(Tn)),i}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(Qo),Qo=setTimeout(Tn,t)),Ko=0):(Ko=1,na(Tn))}function Rn(){for(var n=Date.now(),t=Jo;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=Jo,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Un(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ea.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,d="",v="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,v="%",p="f";break;case"p":g=100,v="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(d="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(d=i[0],v=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=ra.get(p)||Fn;var x=c&&s;return function(n){var e=v;if(y&&n%1)return"";var i=n<0||0===n&&1/n<0?(n=-n,"-"):"-"===a?"":a;if(g<0){var l=to.formatPrefix(n,h);n=l.scale(n),e=l.symbol+v}else n*=g;var M,_,b=(n=p(n,h)).lastIndexOf(".");if(b<0){var w=m?n.lastIndexOf("e"):-1;w<0?(M=n,_=""):(M=n.substring(0,w),_=n.substring(w))}else M=n.substring(0,b),_=t+n.substring(b+1);!c&&s&&(M=u(M,1/0));var S=d.length+M.length+_.length+(x?0:i.length),k=S"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(x?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return t-e1)for(;o=c)return-1;if(37===(i=t.charCodeAt(a++))){if(o=t.charAt(a++),!(u=C[o in aa?t.charAt(a++):o])||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){b.lastIndex=0;var r=b.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){M.lastIndex=0;var r=M.exec(t.slice(e));return r?(n.w=_.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=x.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,d=n.days,v=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{var t=new(ua=Hn);return t._=n,r(t)}finally{ua=Date}}var r=t(n);return e.parse=function(n){try{ua=Hn;var t=r.parse(n);return t&&t._}finally{ua=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var x=to.map(),M=Vn(d),_=Xn(d),b=Vn(v),w=Xn(v),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){x.set(n.toLowerCase(),t)});var A={a:function(n){return v[n.getDay()]},A:function(n){return d[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ia.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ia.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ia.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=n<0?"-":"",i=(r?-n:n)+"",u=i.length;return r+(u68?1900:2e3)}function nt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){la.lastIndex=0;var r=la.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=so(t)/60|0,i=so(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){ca.lastIndex=0;var r=ca.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);da.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;va.point=function(o,a){va.point=n,r=(t=o)*Do,i=Math.cos(a=(e=a)*Do/2+Lo/4),u=Math.sin(a)},va.lineEnd=function(){n(t,e)}}function vt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function xt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Mt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function _t(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function bt(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return so(n[0]-t[0])=0;--a)i.point((s=f[a])[0],s[1]);else r(p.x,p.p.x,-1,i);p=p.p}f=(p=p.o).z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(_||(u.polygonStart(),_=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,d,v=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=to.merge(p);var n=Ot(y,g);p.length?(_||(u.polygonStart(),_=!0),Lt(p,jt,n,e,u)):n&&(_||(u.polygonStart(),_=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),_&&(u.polygonEnd(),_=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},x=Pt(),M=t(x),_=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:_,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function jt(n,t){return((n=n.x)[0]<0?n[1]-Ro-Co:Ro-n[1])-((t=t.x)[0]<0?t[1]-Ro-Co:Ro-t[1])}function Ut(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Lo:-Lo,l=so(u-e);so(l-Lo)0?Ro:-Ro),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Lo&&(so(e-i)Co?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Ro,r.point(-Lo,i),r.point(0,i),r.point(Lo,i),r.point(Lo,0),r.point(Lo,-i),r.point(0,-i),r.point(-Lo,-i),r.point(-Lo,0),r.point(-Lo,i);else if(so(n[0]-t[0])>Co){var u=n[0]=0?1:-1,w=b*_,S=w>Lo,k=g*x;if(da.add(Math.atan2(k*b*Math.sin(w),d*M+k*Math.cos(w))),u+=S?_+b*qo:_,S^h>=e^y>=e){var N=mt(vt(s),vt(n));_t(N);var E=mt(i,N);_t(E);var A=(S^_>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^_>=0?1:-1)}if(!v++)break;h=y,g=x,d=M,s=n}}return(u<-Co||uu}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],d=t(s,h),v=o?d?0:i(s,h):d?i(s+(s<0?Lo:-Lo),h):0;if(!e&&(c=l=d)&&n.lineStart(),d!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Co,g[1]+=Co,d=t(g[0],g[1]))),d!==l)f=0,d?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^d){var y;v&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!d||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=d,u=v},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=[1,0,0],i=mt(vt(n),vt(t)),o=yt(i,i),a=i[0],l=o-a*a;if(!l)return!e&&n;var c=u*o/l,f=-u*a/l,s=mt(r,i),h=Mt(r,c);xt(h,Mt(i,f));var p=s,g=yt(h,p),d=yt(p,p),v=g*g-d*(yt(h,h)-1);if(!(v<0)){var y=Math.sqrt(v),m=Mt(p,(-g-y)/d);if(xt(m,h),m=bt(m),!e)return m;var x,M=n[0],_=t[0],b=n[1],w=t[1];_0^m[1]<(so(m[0]-M)Lo^(M<=m[0]&&m[0]<=_)){var E=Mt(p,(-g+y)/d);return xt(E,h),[m,bt(E)]}}}function i(t,e){var r=o?n:Lo-n,i=0;return t<-r?i|=1:t>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=so(u)>Co;return Rt(t,e,de(n,6*Do),o?[0,-n]:[-Lo,n-Lo])}function It(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=0,s=1,h=a.x-l,p=a.y-c;if(u=n-l,h||!(u>0)){if(u/=h,h<0){if(u0){if(u>s)return;u>f&&(f=u)}if(u=e-l,h||!(u<0)){if(u/=h,h<0){if(u>s)return;u>f&&(f=u)}else if(h>0){if(u0)){if(u/=p,p<0){if(u0){if(u>s)return;u>f&&(f=u)}if(u=r-c,p||!(u<0)){if(u/=p,p<0){if(u>s)return;u>f&&(f=u)}else if(p>0){if(u0&&(i.a={x:l+f*h,y:c+f*p}),s<1&&(i.b={x:l+s*h,y:c+s*p}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return so(r[0]-n)0?0:3:so(r[0]-e)0?2:1:so(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=v.length,r=n[1],i=0;ir&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0)do{c.point(0===f||3===f?n:e,f>1?r:t)}while((f=(f+l+4)%4)!==s);else c.point(a[0],a[1])}function f(i,u){return n<=i&&i<=e&&t<=u&&u<=r}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,v&&v.push(y=[]),S=!0,w=!1,_=b=NaN}function p(){d&&(g(m,x),M&&w&&E.rejoin(),d.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){var e=f(n=Math.max(-za,Math.min(za,n)),t=Math.max(-za,Math.min(za,t)));if(v&&y.push([n,t]),S)m=n,x=t,M=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:_,y:b},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}_=n,b=t,w=e}var d,v,y,m,x,M,_,b,w,S,k,N=a,E=Pt(),A=It(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,d=[],v=[],k=!0},polygonEnd:function(){a=N,d=to.merge(d);var t=l([n,r]),e=k&&t,i=d.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(d,u,t,c,a),a.polygonEnd()),d=v=y=null}};return C}}function Vt(n){var t=0,e=Lo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Lo/180,e=n[1]*Lo/180):[t/Lo*180,e/Lo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){qa+=i*n-r*t,r=n,i=t}var t,e,r,i;ja.point=function(u,o){ja.point=n,t=r=u,e=i=o},ja.lineEnd=function(){n(t,e)}}function Bt(n,t){nDa&&(Da=n),tPa&&(Pa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){xa+=n,Ma+=t,++_a}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);ba+=o*(t+n)/2,wa+=o*(e+r)/2,Sa+=o,Gt(t=n,e=r)}var t,e;Fa.point=function(r,i){Fa.point=n,Gt(t=r,e=i)}}function Qt(){Fa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);ba+=o*(r+n)/2,wa+=o*(i+t)/2,Sa+=o,ka+=(o=i*n-r*t)*(r+n),Na+=o*(i+t),Ea+=3*o,Gt(r=n,i=t)}var t,e,r,i;Fa.point=function(u,o){Fa.point=n,Gt(t=r=u,e=i=o)},Fa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,qo)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:_};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){x=NaN,S.point=u,t.lineStart()}function u(e,r){var u=vt([e,r]),o=n(e,r);i(x,M,m,_,b,w,x=o[0],M=o[1],m=e,_=u[0],b=u[1],w=u[2],a,t),t.point(x,M)}function o(){S.point=e,t.lineEnd()}function l(){r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=x,g=M,d=_,v=b,y=w,S.point=u}function f(){i(x,M,m,_,b,w,p,g,s,d,v,y,a,t),S.lineEnd=o,o()}var s,h,p,g,d,v,y,m,x,M,_,b,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,d,v,y){var m=f-t,x=s-e,M=m*m+x*x;if(M>4*u&&v--){var _=a+p,b=l+g,w=c+d,S=Math.sqrt(_*_+b*b+w*w),k=Math.asin(w/=S),N=so(so(w)-1)u||so((m*z+x*L)/M-.5)>.3||a*p+l*g+c*d0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Po,e*Po])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Do,n[1]*Do),[n[0]*h+l,c-n[1]*h]}function e(n){return(n=a.invert((n[0]-l)/h,(c-n[1])/h))&&[n[0]*Po,n[1]*Po]}function r(){a=Ct(o=se(y,x,M),u);var n=u(d,v);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,d=0,v=0,y=0,x=0,M=0,_=Ca,b=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(_(o,s(b(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(_=null==n?(w=n,Ca):Yt((w=+n)*Do),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,b=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(d=n[0]%360*Do,v=n[1]%360*Do,r()):[d*Po,v*Po]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Do,x=n[1]%360*Do,M=n.length>2?n[2]%360*Do:0,r()):[y*Po,x*Po,M*Po]},to.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Do,e*Do)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Lo?n-qo:n<-Lo?n+qo:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Lo?t-qo:t<-Lo?t+qo:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function de(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=ve(e,i),u=ve(e,u),(o>0?iu)&&(i+=o*qo)):(i=n+o*qo,u=n-.5*l);for(var c,f=i;o>0?f>u:f0?t<-Ro+Co&&(t=-Ro+Co):t>Ro-Co&&(t=Ro-Co);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Lo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Ro]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return so(i)1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function je(n){var t=Qa.pop()||new Pe;return t.site=n,t}function Ue(n){Be(n),Ja.remove(n),Qa.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];Ue(n);for(var l=u;l.circle&&so(e-l.circle.x)Co)a=a.L;else{if(!((i=u-Ye(a,o))>Co)){r>-Co?(t=a.P,e=a):i>-Co?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=je(n);if(Ja.insert(t,l),t||e){if(t===e)return Be(t),e=je(t.site),Ja.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(e){Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,d=g.x-f,v=g.y-s,y=2*(h*v-p*d),m=h*h+p*p,x=d*d+v*v,M={x:(v*m-p*x)/y+f,y:(h*x-d*m)/y+s};nr(e.edge,c,g,M),l.edge=Ke(c,n,null,M),e.edge=Ke(n,g,null,M),$e(t),$e(e)}else l.edge=Ke(t.site,l.site)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-1/0;var a=(e=o.site).x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ye(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ie(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],d=Wa,v=d.length;v--;)if((u=d[v])&&u.prepare())for(l=(a=u.edges).length,o=0;oCo||so(i-e)>Co)&&(a.splice(o,0,new tr(Qe(u.site,f,so(r-s)Co?{x:s,y:so(t-s)Co?{x:so(e-g)Co?{x:h,y:so(t-h)Co?{x:so(e-p)=-zo)){var h=l*l+c*c,p=f*f+v*v,g=(v*h-c*p)/s,d=(l*p-f*h)/s,v=d+a,y=nl.pop()||new Xe;y.arc=n,y.site=i,y.x=g+o,y.y=v+Math.sqrt(g*g+d*d),y.cy=v,n.circle=y;for(var m=null,x=Ka._;x;)if(y.y=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:v,y:l};e={x:v,y:c}}else{if(u){if(u.y1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||h=_)<<1|t>=M,w=b+4;bu&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:vr(e,r)})),u=rl.lastIndex;return u=0&&!(e=to.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;e=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function br(n){return function(t){return.5*(t<.5?n(2*t):2-n(2-2*t))}}function wr(n){return n*n}function Sr(n){return n*n*n}function kr(n){if(n<=0)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(n<.5?e:3*(n-t)+e-.75)}function Nr(n){return function(t){return Math.pow(t,n)}}function Er(n){return 1-Math.cos(n*Ro)}function Ar(n){return Math.pow(2,10*(n-1))}function Cr(n){return 1-Math.sqrt(1-n*n)}function zr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/qo*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*qo/t)}}function Lr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qr(n){return n<1/2.75?7.5625*n*n:n<2/2.75?7.5625*(n-=1.5/2.75)*n+.75:n<2.5/2.75?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Tr(n,t){n=to.hcl(n),t=to.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Rr(n,t){n=to.hsl(n),t=to.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:u<-180&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=to.lab(n),t=to.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Fr(t),i=Ur(t,e),u=Fr(Hr(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Or(e)+"rotate(",null,")")-2,x:vr(n,t)})):t&&e.push(Or(e)+"rotate("+t+")")}function Zr(n,t,e,r){n!==t?r.push({i:e.push(Or(e)+"skewX(",null,")")-2,x:vr(n,t)}):t&&e.push(Or(e)+"skewX("+t+")")}function Vr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Or(e)+"scale(",null,",",null,")");r.push({i:i-4,x:vr(n[0],t[0])},{i:i-2,x:vr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Or(e)+"scale("+t+")")}function Xr(n,t){var e=[],r=[];return n=to.transform(n),t=to.transform(t),Yr(n.translate,t.translate,e,r),Ir(n.rotate,t.rotate,e,r),Zr(n.skew,t.skew,e,r),Vr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function ui(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oi&&(r=e,i=t);return r}function vi(n){return n.reduce(yi,0)}function yi(n,t){return n+t[1]}function mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function Mi(n){return[to.min(n),to.max(n)]}function _i(n,t){return n.value-t.value}function bi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function wi(n,t){n._pack_next=t,t._pack_prev=n}function Si(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function ki(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-1/0,h=1/0,p=-1/0;if(e.forEach(Ni),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(Ci(r,i,u=e[2]),t(u),bi(r,u),r._pack_prev=u,bi(u,i),i=r._pack_next,o=3;o2?Yi:Fi,l=r?Br:$r;return o=i(n,t,l,e),a=i(t,n,l,mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Pr)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return $i(n,t)},u.tickFormat=function(t,e){return Bi(n,t,e)},u.nice=function(t){return Vi(n,t),i()},u.copy=function(){return Ii(n,t,e,r)},i()}function Zi(n,t){return to.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Vi(n,t){return Hi(n,Oi(Xi(n,t)[2])),Hi(n,Oi(Xi(n,t)[2])),n}function Xi(n,t){null==t&&(t=10);var e=ji(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return u<=.15?i*=10:u<=.35?i*=5:u<=.75&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function $i(n,t){return to.range.apply(to,Xi(n,t))}function Bi(n,t,e){var r=Xi(n,t);if(e){var i=ea.exec(e);if(i.shift(),"s"===i[8]){var u=to.formatPrefix(Math.max(so(r[0]),so(r[1])));return i[7]||(i[7]="."+Wi(u.scale(r[2]))),i[8]="f",e=to.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+Ji(i[8],r)),e=i.join("")}else e=",."+Wi(r[2])+"f";return to.format(e)}function Wi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Ji(n,t){var e=Wi(t[2]);return n in dl?Math.abs(e-Wi(Math.max(so(t[0]),so(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Gi(n,t,e,r){function i(n){return(e?Math.log(n<0?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Hi(r.map(i),e?Math:yl);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=ji(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;c0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return vl;arguments.length<2?e=vl:"function"!=typeof e&&(e=to.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return o*t0?a[e-1]:n[0],e0?0:1}function hu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,d=(s+p)/2,v=h-f,y=p-s,m=v*v+y*y,x=e-r,M=f*p-h*s,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-M*M)),b=(M*y-v*_)/m,w=(-M*v-y*_)/m,S=(M*y+v*_)/m,k=(-M*v+y*_)/m,N=b-g,E=w-d,A=S-g,C=k-d;return N*N+E*E>A*A+C*C&&(b=S,w=k),[[b-l,w-c],[b*e/x,w*e/x]]}function pu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function du(n){return n.join("L")+"Z"}function vu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function yu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r);for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Tu(n){return n.length<3?gu(n):n[0]+bu(n,qu(n))}function Ru(n){for(var t,e,r,i=-1,u=n.length;++i0;)p[--a].call(n,o);if(u>=1)return d.event&&d.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),d=g[r];d||(l=i.time,f=qn(u,0,l),d=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function Bu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wu(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Ju(n){return n.toISOString()}function Gu(n,t,e){function r(t){return n(t)}function i(n,e){var r=(n[1]-n[0])/e,i=to.bisect(Yl,r);return i==Yl.length?[t.year,Xi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[r/Yl[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Ku(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ku(+t+1);return t}}:n))},r.ticks=function(n,t){var e=ji(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],Ku(+e[1]+1),t<1?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Gu(n.copy(),t,e)},Zi(r,n)}function Ku(n){return new Date(n)}function Qu(n){return JSON.parse(n.responseText)}function no(n){var t=io.createRange();return t.selectNode(io.body),t.createContextualFragment(n.responseText)}var to={version:"3.5.17"},eo=[].slice,ro=function(n){return eo.call(n)},io=this.document;if(io)try{ro(io.documentElement.childNodes)[0].nodeType}catch(n){ro=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),io)try{io.createElement("DIV").style.setProperty("opacity",0,"")}catch(n){var uo=this.Element.prototype,oo=uo.setAttribute,ao=uo.setAttributeNS,lo=this.CSSStyleDeclaration.prototype,co=lo.setProperty;uo.setAttribute=function(n,t){oo.call(this,n,t+"")},uo.setAttributeNS=function(n,t,e){ao.call(this,n,t,e+"")},lo.setProperty=function(n,t,e){co.call(this,n,t+"",e)}}to.ascending=e,to.descending=function(n,t){return tn?1:t>=n?0:NaN},to.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},to.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},to.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),i=r){e=i=r;break}for(;++ur&&(e=r),i1)return l/(f-1)},to.deviation=function(){var n=to.variance.apply(this,arguments);return n?Math.sqrt(n):n};var fo=u(e);to.bisectLeft=fo.left,to.bisect=to.bisectRight=fo.right,to.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},to.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,u<2&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},to.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},to.pairs=function(n){for(var t=0,e=n.length-1,r=n[0],i=new Array(e<0?0:e);t=0;)for(t=(r=n[i]).length;--t>=0;)e[--o]=r[t];return e};var so=Math.abs;to.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e==1/0)throw new Error("infinite range");var r,i=[],u=a(so(e)),o=-1;if(n*=u,t*=u,(e*=u)<0)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,d=u[a++],v=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(to.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},to.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;e=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},to.event=null,to.requote=function(n){return n.replace(vo,"\\$&")};var vo=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,yo={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},mo=function(n,t){return t.querySelector(n)},xo=function(n,t){return t.querySelectorAll(n)},Mo=function(n,t){var e=n.matches||n[M(n,"matchesSelector")];return(Mo=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(mo=function(n,t){return Sizzle(n,t)[0]||null},xo=Sizzle,Mo=Sizzle.matchesSelector),to.selection=function(){return to.select(io.documentElement)};var _o=to.selection.prototype=[];_o.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),wo.hasOwnProperty(e)?{space:wo[e],local:n}:n}},_o.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=to.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_o.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},_o.sort=function(n){n=Y.apply(this,arguments);for(var t=-1,e=this.length;++t0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){_&&_.domain(M.range().map(function(n){return(n-k.x)/k.k}).map(M.invert)),w&&w.domain(b.range().map(function(n){return(n-k.y)/k.k}).map(b.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),v=null)}function s(){function n(){a=1,u(to.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=to.select(t(i)).on(q,n).on(T,r),h=e(to.mouse(i)),p=W(i);ql.call(i),l(o)}function h(){function n(){var n=to.touches(g);return p=k.k,n.forEach(function(n){n.identifier in v&&(v[n.identifier]=e(n))}),n}function t(){var t=to.event.target;to.select(t).on(M,r).on(_,a),b.push(t);for(var e=to.event.changedTouches,i=0,u=e.length;i1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=to.touches(g);ql.call(g);for(var a=0,l=o.length;a=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ra=to.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=to.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ia=to.time={},ua=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){oa.setUTCDate.apply(this._,arguments)},setDay:function(){oa.setUTCDay.apply(this._,arguments)},setFullYear:function(){oa.setUTCFullYear.apply(this._,arguments)},setHours:function(){oa.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){oa.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){oa.setUTCMinutes.apply(this._,arguments)},setMonth:function(){oa.setUTCMonth.apply(this._,arguments)},setSeconds:function(){oa.setUTCSeconds.apply(this._,arguments)},setTime:function(){oa.setTime.apply(this._,arguments)}};var oa=Date.prototype;ia.year=On(function(n){return(n=ia.day(n)).setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ia.years=ia.year.range,ia.years.utc=ia.year.utc.range,ia.day=On(function(n){var t=new ua(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ia.days=ia.day.range,ia.days.utc=ia.day.utc.range,ia.dayOfYear=function(n){var t=ia.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ia[n]=On(function(n){return(n=ia.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ia[n+"s"]=e.range,ia[n+"s"].utc=e.utc.range,ia[n+"OfYear"]=function(n){var e=ia.year(n).getDay();return Math.floor((ia.dayOfYear(n)+(e+t)%7)/7)}}),ia.week=ia.sunday,ia.weeks=ia.sunday.range,ia.weeks.utc=ia.sunday.utc.range,ia.weekOfYear=ia.sundayOfYear;var aa={"-":"",_:" ",0:"0"},la=/^\s*\d+/,ca=/^%/;to.locale=function(n){return{numberFormat:Un(n),timeFormat:In(n)}};var fa=to.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});to.format=fa.numberFormat,to.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,sa),st(sa.s,this.s,this),this.s?this.t+=sa.t:this.s=sa.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var sa=new ft;to.geo.stream=function(n,t){n&&ha.hasOwnProperty(n.type)?ha[n.type](n,t):ht(n,t)};var ha={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rp&&(p=t)}function t(t,e){var r=vt([t*Do,e*Do]);if(y){var i=mt(y,r),u=mt([i[1],-i[0],0],i);_t(u),u=bt(u);var o=t-g,l=o>0?1:-1,c=u[0]*Po*l,d=so(o)>180;if(d^(l*gp&&(p=v);else if(c=(c+360)%360-180,d^(l*gp&&(p=e);d?ta(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(th&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){_.point=t}function r(){M[0]=f,M[1]=h,_.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=so(r)>180?r+(r>0?360:-360):r}else d=n,v=e;va.point(n,e),t(n,e)}function u(){va.lineStart()}function o(){i(d,v),va.lineEnd(),so(m)>Co&&(f=-(h=180)),M[0]=f,M[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nCo?p=90:m<-Co&&(s=-90),M[0]=f,M[1]=h}};return function(n){p=h=-(f=s=1/0),x=[],to.geo.stream(n,_);var t=x.length;if(t){x.sort(l);for(var e=1,r=[g=x[0]];ea(g[0],g[1])&&(g[1]=u[1]),a(u[0],g[1])>a(g[0],g[1])&&(g[0]=u[0])):r.push(g=u);for(var i,u,o=-1/0,e=0,g=r[t=r.length-1];e<=t;g=u,++e)u=r[e],(i=a(g[1],u[0]))>o&&(o=i,f=u[0],h=g[1])}return x=M=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),to.geo.centroid=function(n){ya=ma=xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,Aa);var t=ka,e=Na,r=Ea,i=t*t+e*e+r*r;return i=.12&&i<.234&&r>=-.425&&r<-.214?o:i>=.166&&i<.234&&r>=-.214&&r<-.115?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Co,s+.12*c+Co],[f-.214*c-Co,s+.234*c-Co]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Co,s+.166*c+Co],[f-.115*c-Co,s+.234*c-Co]]).stream(l).point,n},n.scale(1070)};var La,qa,Ta,Ra,Da,Pa,ja={point:_,lineStart:_,lineEnd:_,polygonStart:function(){qa=0,ja.lineStart=$t},polygonEnd:function(){ja.lineStart=ja.lineEnd=ja.point=_,La+=so(qa/2)}},Ua={point:Bt,lineStart:_,lineEnd:_,polygonStart:_,polygonEnd:_},Fa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Fa.lineStart=ne},polygonEnd:function(){Fa.point=Gt,Fa.lineStart=Kt,Fa.lineEnd=Qt}};to.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),to.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return La=0,to.geo.stream(n,i(ja)),La},n.centroid=function(n){return xa=Ma=_a=ba=wa=Sa=ka=Na=Ea=0,to.geo.stream(n,i(Fa)),Ea?[ka/Ea,Na/Ea]:Sa?[ba/Sa,wa/Sa]:_a?[xa/_a,Ma/_a]:[NaN,NaN]},n.bounds=function(n){return Da=Pa=-(Ta=Ra=1/0),to.geo.stream(n,i(Ua)),[[Ta,Ra],[Da,Pa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(to.geo.albersUsa()).context(null)},to.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},to.geo.projection=oe,to.geo.projectionMutator=ae,(to.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,to.geo.rotation=function(n){function t(t){return t=n(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t}return n=se(n[0]%360*Do,n[1]*Do,n.length>2?n[2]*Do:0),t.invert=function(t){return t=n.invert(t[0]*Do,t[1]*Do),t[0]*=Po,t[1]*=Po,t},t},fe.invert=ce,to.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Do,-n[1]*Do,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Po,n[1]*=Po}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=de((t=+r)*Do,i*Do),n):t},n.precision=function(r){return arguments.length?(e=de(t*Do,(i=+r)*Do),n):i},n.angle(90)},to.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Do,i=n[1]*Do,u=t[1]*Do,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},to.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return to.range(Math.ceil(u/v)*v,i,v).map(h).concat(to.range(Math.ceil(c/y)*y,l,y).map(p)).concat(to.range(Math.ceil(r/g)*g,e,g).filter(function(n){return so(n%v)>Co}).map(f)).concat(to.range(Math.ceil(a/d)*d,o,d).filter(function(n){return so(n%y)>Co}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,d=g,v=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(v=+t[0],y=+t[1],n):[v,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],d=+t[1],n):[g,d]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Co],[180,90-Co]]).minorExtent([[-180,-80-Co],[180,80+Co]])},to.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=xe,i=Me;return n.distance=function(){return to.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},to.geo.interpolate=function(n,t){return _e(n[0]*Do,n[1]*Do,t[0]*Do,t[1]*Do)},to.geo.length=function(n){return Ha=0,to.geo.stream(n,Oa),Ha};var Ha,Oa={sphere:_,point:_,lineStart:be,lineEnd:_,polygonStart:_,polygonEnd:_},Ya=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(to.geo.azimuthalEqualArea=function(){return oe(Ya)}).raw=Ya;var Ia=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(to.geo.azimuthalEquidistant=function(){return oe(Ia)}).raw=Ia,(to.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(to.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var Za=we(function(n){return 1/n},Math.atan);(to.geo.gnomonic=function(){return oe(Za)}).raw=Za,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ro]},(to.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var Va=we(function(){return 1},Math.asin);(to.geo.orthographic=function(){return oe(Va)}).raw=Va;var Xa=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(to.geo.stereographic=function(){return oe(Xa)}).raw=Xa,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ro]},(to.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,to.geom={},to.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;t=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[]).point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Co)*Co,y:Math.round(o(n,t)/Co)*Co,i:t}})}var r=Ce,i=ze,u=r,o=i,a=tl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u=e.site,o=e.edges.sort(Ve),a=-1,l=o.length,c=o[l-1].edge,f=c.l===u?c.r:c.l;++a=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]={leaf:!0,nodes:[],point:null,x:null,y:null}),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,d,v,y,m,x=En(a),M=En(l);if(null!=t)d=t,v=e,y=r,m=i;else if(y=m=-(d=v=1/0),s=[],h=[],g=n.length,o)for(p=0;py&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;py&&(y=_),b>m&&(m=b),s.push(_),h.push(b)}var w=y-d,S=m-v;w>S?m=v+w:y=d+S;var k={leaf:!0,nodes:[],point:null,x:null,y:null};if(k.add=function(n){u(k,n,+x(n,++p),+M(n,p),d,v,y,m)},k.visit=function(n){hr(n,k,d,v,y,m)},k.find=function(n){return pr(k,n[0],n[1],d,v,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=ul.get(e)||il,r=ol.get(r)||m,Mr(r(e.apply(null,eo.call(arguments,1))))},to.interpolateHcl=Tr,to.interpolateHsl=Rr,to.interpolateLab=Dr,to.interpolateRound=Pr,to.transform=function(n){var t=io.createElementNS(to.ns.prefix.svg,"g");return(to.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:al)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var al={a:1,b:0,c:0,d:1,e:0,f:0};to.interpolateTransform=Xr,to.layout={},to.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;l=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return ui(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=li,e=oi,r=ai;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ii(t,function(n){n.children&&(n.value=0)}),ui(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},to.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++ca&&(a=r),o.push(r)}for(e=0;e0)for(u=-1;++u=f[0]&&a<=f[1]&&((o=l[to.bisect(s,a,1,p)-1]).y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=Mi,i=mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},to.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,ui(a,function(n){n.r=+f(n.value)}),ui(a,ki),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;ui(a,function(n){n.r+=s}),ui(a,ki),ui(a,function(n){n.r-=s})}return Ai(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=to.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ri(n,e)},to.layout.tree=function(){function n(n,r){var u=M.call(this,n,r),o=t(u[0]);return N=o,e(o,0),i(o),g(o,0),m(o),u}function t(n){var e={t:n,prelim:0,mod:0,shift:0,change:0,msel:0,mser:0};if(n.x=0,n.y=0,w)e.x_size=1,e.y_size=1;else if("object"==typeof S)e.x_size=S[0],e.y_size=S[1];else{var r=S(n);e.x_size=r[0],e.y_size=r[1]}k&&(n.x_size=e.x_size,n.y_size=e.y_size);for(var i=[],u=n.children?n.children.length:0,o=0;oe.lowY&&(e=e.nxt);var p=i+r.prelim-(o+u.prelim);null!=_?p+=_(r.t,u.t)*N.x_size:null!=b&&(p+=r.x_size/2+u.x_size/2+b(r.t,u.t)),p>0?(o+=p,a(n,t,e.index,p)):1===t&&0===o&&0===r.num_children&&u.num_children>1&&p<0&&(o+=p,a(n,t,e.index,p));var g=f(r),d=f(u);g<=d&&null!=(r=c(r))&&(i+=r.mod),g>=d&&null!=(u=l(u))&&(o+=u.mod)}null==r&&null!=u?s(n,t,u,o):null!=r&&null==u&&h(n,t,r,i)}function a(n,t,e,r){n.children[t].mod+=r,n.children[t].msel+=r,n.children[t].mser+=r,d(n,t,e,r)}function l(n){return 0==n.num_children?n.tl:n.children[0]}function c(n){return 0==n.num_children?n.tr:n.children[n.num_children-1]}function f(n){return n.t.y+n.y_size}function s(n,t,e,r){var i=n.children[0].el;i.tl=e;var u=r-e.mod-n.children[0].msel;i.mod+=u,i.prelim-=u,n.children[0].el=n.children[t].el,n.children[0].msel=n.children[t].msel}function h(n,t,e,r){var i=n.children[t].er;i.tr=e;var u=r-e.mod-n.children[t].mser;i.mod+=u,i.prelim-=u,n.children[t].er=n.children[t-1].er,n.children[t].mser=n.children[t-1].mser}function p(n){n.prelim=(n.children[0].prelim+n.children[0].mod-n.children[0].x_size/2+n.children[n.num_children-1].mod+n.children[n.num_children-1].prelim+n.children[n.num_children-1].x_size/2)/2}function g(n,t){t+=n.mod,n.t.x=n.prelim+t,v(n);for(var e=0;e=e.lowY;)e=e.nxt;return{lowY:n,index:t,nxt:e}}function m(n){if(null!=w){for(var t,e=n,r=n,i=n,u=[n];t=u.pop();)(f=t.t).xr.t.x&&(r=t),f.depth>i.t.depth&&(i=t),t.children&&(u=u.concat(t.children));var o=null==_?.5:_(e.t,r.t)/2,a=o-e.t.x,l=w[0]/(r.t.x+o+a),c=w[1]/(i.t.depth>0?i.t.depth:1);for(u=[n];t=u.pop();){var f=t.t;f.x=(f.x+a)*l,f.y=f.depth*c,k&&(f.x_size*=l,f.y_size*=c),t.children&&(u=u.concat(t.children))}}else x(n,-n.t.x)}function x(n,t){n.t.x+=t;for(var e=0;e0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,d))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,d,c,!1),d=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,d,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oi&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++u1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=to.random.normal.apply(to,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=to.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;es?0:1;if(c=To)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,d,v,y,m,x,M,_,b,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(v=u===bl?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(v/c*Math.sin(y))),n&&(N=tn(v/n*Math.sin(y)))),c){m=c*Math.cos(f+E),x=c*Math.sin(f+E),M=c*Math.cos(s-E),_=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Lo?0:1;if(E&&su(m,x,M,_)===p^C){var z=(f+s)/2;m=c*Math.cos(z),x=c*Math.sin(z),M=_=null}}else m=x=0;if(n){b=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Lo?0:1;if(N&&su(b,w,S,k)===1-p^L){var q=(f+s)/2;b=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else b=w=0;if(h>Co&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){d=nLo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=xe,o=Me,a=Pu,l=lu,c=cu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},to.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=xe,e=Me,r=ju;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},to.svg.diagonal.radial=function(){var n=to.svg.diagonal(),t=ju,e=n.projection;return n.projection=function(n){return arguments.length?e(Uu(t=n)):t},n},to.svg.symbol=function(){function n(n,r){return(El.get(t.call(this,n,r))||Ou)(e.call(this,n,r))}var t=Hu,e=Fu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var El=to.map({circle:Ou,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Cl)),e=t*Cl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/Al),e=t*Al/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});to.svg.symbolTypes=El.keys();var Al=Math.sqrt(3),Cl=Math.tan(30*Do);_o.transition=function(n){for(var t,e,r=zl||++Rl,i=Xu(n),u=[],o=Ll||{time:Date.now(),ease:kr,delay:0,duration:250},a=-1,l=this.length;++arect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==to.event.keyCode&&(C||(x=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function d(){32==to.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function v(){var n=to.mouse(_),t=!1;M&&(n[0]+=M[0],n[1]+=M[1]),C||(to.event.altKey?(x||(x=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]1)for(var r=1;r1&&void 0!==arguments[1]?arguments[1]:{};return u.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(t={onlyLeaves:!1,circularReference:"leaf",search:"dfsPreOrder",iterateOverObject:!0,skipIteration:function(){return!1}},void 0!==o.onlyLeaves&&(t.onlyLeaves=o.onlyLeaves),void 0!==o.circularReference&&(t.circularReference=o.circularReference),void 0!==o.iterateOverObject&&(t.iterateOverObject=o.iterateOverObject),void 0!==o.skipIteration&&(t.skipIteration=o.skipIteration),void 0===o.search){i.next=9;break}if(o.search in s){i.next=8;break}throw new Error("The search algorithm "+o.search+" is incorrect.");case 8:t.search=o.search;case 9:return r=new l.default(e,t),n=(0,d.default)(t.circularReference),i.delegateYield(s[t.search](r,t.onlyLeaves,n),"t0",12);case 12:case"end":return i.stop()}},_[0],this)}Object.defineProperty(r,"__esModule",{value:!0});var a=e("babel-runtime/regenerator"),u=o(a);r.default=i;var c=e("./search"),s=n(c),f=e("./root-node"),l=o(f),p=e("./seen"),d=o(p),_=[i].map(u.default.mark)},{"./root-node":5,"./search":6,"./seen":7,"babel-runtime/regenerator":115}],3:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:r.t0=l.default.keys(e);case 1:if((r.t1=r.t0()).done){r.next=7;break}return t=r.t1.value,r.next=5,[t,e[t]];case 5:r.next=1;break;case 7:case"end":return r.stop()}},p[0],this)}function i(e){var t;return l.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:t=0;case 1:if(!(tf;)if(u=c[f++],u!=u)return!0}else for(;s>f;f++)if((e||f in c)&&c[f]===r)return e||f||0;return!e&&-1}}},{"./_to-index":88,"./_to-iobject":90,"./_to-length":91}],39:[function(e,t,r){var n=e("./_cof"),o=e("./_wks")("toStringTag"),i="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};t.exports=function(e){var t,r,u;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),o))?r:i?n(t):"Object"==(u=n(t))&&"function"==typeof t.callee?"Arguments":u}},{"./_cof":40,"./_wks":97}],40:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],41:[function(e,t,r){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},{}],42:[function(e,t,r){"use strict";var n=e("./_object-dp"),o=e("./_property-desc");t.exports=function(e,t,r){t in e?n.f(e,t,o(0,r)):e[t]=r}},{"./_object-dp":70,"./_property-desc":81}],43:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":35}],44:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],45:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":50}],46:[function(e,t,r){var n=e("./_is-object"),o=e("./_global").document,i=n(o)&&n(o.createElement);t.exports=function(e){return i?o.createElement(e):{}}},{"./_global":51,"./_is-object":59}],47:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],48:[function(e,t,r){var n=e("./_object-keys"),o=e("./_object-gops"),i=e("./_object-pie");t.exports=function(e){var t=n(e),r=o.f;if(r)for(var a,u=r(e),c=i.f,s=0;u.length>s;)c.call(e,a=u[s++])&&t.push(a);return t}},{"./_object-gops":75,"./_object-keys":78,"./_object-pie":79}],49:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_ctx"),a=e("./_hide"),u="prototype",c=function(e,t,r){var s,f,l,p=e&c.F,d=e&c.G,_=e&c.S,b=e&c.P,h=e&c.B,y=e&c.W,v=d?o:o[t]||(o[t]={}),m=v[u],g=d?n:_?n[t]:(n[t]||{})[u];d&&(r=t);for(s in r)f=!p&&g&&void 0!==g[s],f&&s in v||(l=f?g[s]:r[s],v[s]=d&&"function"!=typeof g[s]?r[s]:h&&f?i(l,n):y&&g[s]==l?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[u]=e[u],t}(l):b&&"function"==typeof l?i(Function.call,l):l,b&&((v.virtual||(v.virtual={}))[s]=l,e&c.R&&m&&!m[s]&&a(m,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},{"./_core":41,"./_ctx":43,"./_global":51,"./_hide":53}],50:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],51:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],52:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],53:[function(e,t,r){var n=e("./_object-dp"),o=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":45,"./_object-dp":70,"./_property-desc":81}],54:[function(e,t,r){t.exports=e("./_global").document&&document.documentElement},{"./_global":51}],55:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":45,"./_dom-create":46,"./_fails":50}],56:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":40}],57:[function(e,t,r){var n=e("./_iterators"),o=e("./_wks")("iterator"),i=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||i[o]===e)}},{"./_iterators":65,"./_wks":97}],58:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":40}],59:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],60:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,o){try{return o?t(n(r)[0],r[1]):t(r)}catch(t){var i=e.return;throw void 0!==i&&n(i.call(e)),t}}},{"./_an-object":37}],61:[function(e,t,r){"use strict";var n=e("./_object-create"),o=e("./_property-desc"),i=e("./_set-to-string-tag"),a={};e("./_hide")(a,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(a,{next:o(1,r)}),i(e,t+" Iterator")}},{"./_hide":53,"./_object-create":69,"./_property-desc":81,"./_set-to-string-tag":84,"./_wks":97}],62:[function(e,t,r){"use strict";var n=e("./_library"),o=e("./_export"),i=e("./_redefine"),a=e("./_hide"),u=e("./_has"),c=e("./_iterators"),s=e("./_iter-create"),f=e("./_set-to-string-tag"),l=e("./_object-gpo"),p=e("./_wks")("iterator"),d=!([].keys&&"next"in[].keys()),_="@@iterator",b="keys",h="values",y=function(){return this};t.exports=function(e,t,r,v,m,g,j){s(r,t,v);var w,x,k,O=function(e){if(!d&&e in M)return M[e];switch(e){case b:return function(){return new r(this,e)};case h:return function(){return new r(this,e)}}return function(){return new r(this,e)}},E=t+" Iterator",S=m==h,L=!1,M=e.prototype,A=M[p]||M[_]||m&&M[m],P=A||O(m),T=m?S?O("entries"):P:void 0,F="Array"==t?M.entries||A:A;if(F&&(k=l(F.call(new e)),k!==Object.prototype&&(f(k,E,!0),n||u(k,p)||a(k,p,y))),S&&A&&A.name!==h&&(L=!0,P=function(){return A.call(this)}),n&&!j||!d&&!L&&M[p]||a(M,p,P),c[t]=P,c[E]=y,m)if(w={values:S?P:O(h),keys:g?P:O(b),entries:T},j)for(x in w)x in M||i(M,x,w[x]);else o(o.P+o.F*(d||L),t,w);return w}},{"./_export":49,"./_has":52,"./_hide":53,"./_iter-create":61,"./_iterators":65,"./_library":67,"./_object-gpo":76,"./_redefine":82,"./_set-to-string-tag":84,"./_wks":97}],63:[function(e,t,r){var n=e("./_wks")("iterator"),o=!1;try{var i=[7][n]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}t.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i=[7],a=i[n]();a.next=function(){return{done:r=!0}},i[n]=function(){return a},e(i)}catch(e){}return r}},{"./_wks":97}],64:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],65:[function(e,t,r){t.exports={}},{}],66:[function(e,t,r){var n=e("./_object-keys"),o=e("./_to-iobject");t.exports=function(e,t){for(var r,i=o(e),a=n(i),u=a.length,c=0;u>c;)if(i[r=a[c++]]===t)return r}},{"./_object-keys":78,"./_to-iobject":90}],67:[function(e,t,r){t.exports=!0},{}],68:[function(e,t,r){var n=e("./_uid")("meta"),o=e("./_is-object"),i=e("./_has"),a=e("./_object-dp").f,u=0,c=Object.isExtensible||function(){return!0},s=!e("./_fails")(function(){return c(Object.preventExtensions({}))}),f=function(e){a(e,n,{value:{i:"O"+ ++u,w:{}}})},l=function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,n)){if(!c(e))return"F";if(!t)return"E";f(e)}return e[n].i},p=function(e,t){if(!i(e,n)){if(!c(e))return!0;if(!t)return!1;f(e)}return e[n].w},d=function(e){return s&&_.NEED&&c(e)&&!i(e,n)&&f(e),e},_=t.exports={KEY:n,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},{"./_fails":50,"./_has":52,"./_is-object":59,"./_object-dp":70,"./_uid":94}],69:[function(e,t,r){var n=e("./_an-object"),o=e("./_object-dps"),i=e("./_enum-bug-keys"),a=e("./_shared-key")("IE_PROTO"),u=function(){},c="prototype",s=function(){var t,r=e("./_dom-create")("iframe"),n=i.length,o="<",a=">";for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",t=r.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),s=t.F;n--;)delete s[c][i[n]];return s()};t.exports=Object.create||function(e,t){var r;return null!==e?(u[c]=n(e),r=new u,u[c]=null,r[a]=e):r=s(),void 0===t?r:o(r,t)}},{"./_an-object":37,"./_dom-create":46,"./_enum-bug-keys":47,"./_html":54,"./_object-dps":71,"./_shared-key":85}],70:[function(e,t,r){var n=e("./_an-object"),o=e("./_ie8-dom-define"),i=e("./_to-primitive"),a=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=i(t,!0),n(r),o)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":37,"./_descriptors":45,"./_ie8-dom-define":55,"./_to-primitive":93}],71:[function(e,t,r){var n=e("./_object-dp"),o=e("./_an-object"),i=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){o(e);for(var r,a=i(t),u=a.length,c=0;u>c;)n.f(e,r=a[c++],t[r]);return e}},{"./_an-object":37,"./_descriptors":45,"./_object-dp":70,"./_object-keys":78}],72:[function(e,t,r){ -var n=e("./_object-pie"),o=e("./_property-desc"),i=e("./_to-iobject"),a=e("./_to-primitive"),u=e("./_has"),c=e("./_ie8-dom-define"),s=Object.getOwnPropertyDescriptor;r.f=e("./_descriptors")?s:function(e,t){if(e=i(e),t=a(t,!0),c)try{return s(e,t)}catch(e){}if(u(e,t))return o(!n.f.call(e,t),e[t])}},{"./_descriptors":45,"./_has":52,"./_ie8-dom-define":55,"./_object-pie":79,"./_property-desc":81,"./_to-iobject":90,"./_to-primitive":93}],73:[function(e,t,r){var n=e("./_to-iobject"),o=e("./_object-gopn").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return o(e)}catch(e){return a.slice()}};t.exports.f=function(e){return a&&"[object Window]"==i.call(e)?u(e):o(n(e))}},{"./_object-gopn":74,"./_to-iobject":90}],74:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys").concat("length","prototype");r.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],75:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],76:[function(e,t,r){var n=e("./_has"),o=e("./_to-object"),i=e("./_shared-key")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},{"./_has":52,"./_shared-key":85,"./_to-object":92}],77:[function(e,t,r){var n=e("./_has"),o=e("./_to-iobject"),i=e("./_array-includes")(!1),a=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var r,u=o(e),c=0,s=[];for(r in u)r!=a&&n(u,r)&&s.push(r);for(;t.length>c;)n(u,r=t[c++])&&(~i(s,r)||s.push(r));return s}},{"./_array-includes":38,"./_has":52,"./_shared-key":85,"./_to-iobject":90}],78:[function(e,t,r){var n=e("./_object-keys-internal"),o=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,o)}},{"./_enum-bug-keys":47,"./_object-keys-internal":77}],79:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],80:[function(e,t,r){var n=e("./_export"),o=e("./_core"),i=e("./_fails");t.exports=function(e,t){var r=(o.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*i(function(){r(1)}),"Object",a)}},{"./_core":41,"./_export":49,"./_fails":50}],81:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],82:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":53}],83:[function(e,t,r){var n=e("./_is-object"),o=e("./_an-object"),i=function(e,t){if(o(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,n){try{n=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2),n(t,[]),r=!(t instanceof Array)}catch(e){r=!0}return function(e,t){return i(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:i}},{"./_an-object":37,"./_ctx":43,"./_is-object":59,"./_object-gopd":72}],84:[function(e,t,r){var n=e("./_object-dp").f,o=e("./_has"),i=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!o(e=r?e:e.prototype,i)&&n(e,i,{configurable:!0,value:t})}},{"./_has":52,"./_object-dp":70,"./_wks":97}],85:[function(e,t,r){var n=e("./_shared")("keys"),o=e("./_uid");t.exports=function(e){return n[e]||(n[e]=o(e))}},{"./_shared":86,"./_uid":94}],86:[function(e,t,r){var n=e("./_global"),o="__core-js_shared__",i=n[o]||(n[o]={});t.exports=function(e){return i[e]||(i[e]={})}},{"./_global":51}],87:[function(e,t,r){var n=e("./_to-integer"),o=e("./_defined");t.exports=function(e){return function(t,r){var i,a,u=String(o(t)),c=n(r),s=u.length;return c<0||c>=s?e?"":void 0:(i=u.charCodeAt(c),i<55296||i>56319||c+1===s||(a=u.charCodeAt(c+1))<56320||a>57343?e?u.charAt(c):i:e?u.slice(c,c+2):(i-55296<<10)+(a-56320)+65536)}}},{"./_defined":44,"./_to-integer":89}],88:[function(e,t,r){var n=e("./_to-integer"),o=Math.max,i=Math.min;t.exports=function(e,t){return e=n(e),e<0?o(e+t,0):i(e,t)}},{"./_to-integer":89}],89:[function(e,t,r){var n=Math.ceil,o=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},{}],90:[function(e,t,r){var n=e("./_iobject"),o=e("./_defined");t.exports=function(e){return n(o(e))}},{"./_defined":44,"./_iobject":56}],91:[function(e,t,r){var n=e("./_to-integer"),o=Math.min;t.exports=function(e){return e>0?o(n(e),9007199254740991):0}},{"./_to-integer":89}],92:[function(e,t,r){var n=e("./_defined");t.exports=function(e){return Object(n(e))}},{"./_defined":44}],93:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":59}],94:[function(e,t,r){var n=0,o=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},{}],95:[function(e,t,r){var n=e("./_global"),o=e("./_core"),i=e("./_library"),a=e("./_wks-ext"),u=e("./_object-dp").f;t.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||u(t,e,{value:a.f(e)})}},{"./_core":41,"./_global":51,"./_library":67,"./_object-dp":70,"./_wks-ext":96}],96:[function(e,t,r){r.f=e("./_wks")},{"./_wks":97}],97:[function(e,t,r){var n=e("./_shared")("wks"),o=e("./_uid"),i=e("./_global").Symbol,a="function"==typeof i,u=t.exports=function(e){return n[e]||(n[e]=a&&i[e]||(a?i:o)("Symbol."+e))};u.store=n},{"./_global":51,"./_shared":86,"./_uid":94}],98:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[o]||e["@@iterator"]||i[n(e)]}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],99:[function(e,t,r){var n=e("./_an-object"),o=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},{"./_an-object":37,"./_core":41,"./core.get-iterator-method":98}],100:[function(e,t,r){var n=e("./_classof"),o=e("./_wks")("iterator"),i=e("./_iterators");t.exports=e("./_core").isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(n(t))}},{"./_classof":39,"./_core":41,"./_iterators":65,"./_wks":97}],101:[function(e,t,r){"use strict";var n=e("./_ctx"),o=e("./_export"),i=e("./_to-object"),a=e("./_iter-call"),u=e("./_is-array-iter"),c=e("./_to-length"),s=e("./_create-property"),f=e("./core.get-iterator-method");o(o.S+o.F*!e("./_iter-detect")(function(e){Array.from(e)}),"Array",{from:function(e){var t,r,o,l,p=i(e),d="function"==typeof this?this:Array,_=arguments.length,b=_>1?arguments[1]:void 0,h=void 0!==b,y=0,v=f(p);if(h&&(b=n(b,_>2?arguments[2]:void 0,2)),void 0==v||d==Array&&u(v))for(t=c(p.length),r=new d(t);t>y;y++)s(r,y,h?b(p[y],y):p[y]);else for(l=v.call(p),r=new d;!(o=l.next()).done;y++)s(r,y,h?a(l,b,[o.value,y],!0):o.value);return r.length=y,r}})},{"./_create-property":42,"./_ctx":43,"./_export":49,"./_is-array-iter":57,"./_iter-call":60,"./_iter-detect":63,"./_to-length":91,"./_to-object":92,"./core.get-iterator-method":98}],102:[function(e,t,r){"use strict";var n=e("./_add-to-unscopables"),o=e("./_iter-step"),i=e("./_iterators"),a=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,o(1)):"keys"==t?o(0,r):"values"==t?o(0,e[r]):o(0,[r,e[r]])},"values"),i.Arguments=i.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":36,"./_iter-define":62,"./_iter-step":64,"./_iterators":65,"./_to-iobject":90}],103:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{create:e("./_object-create")})},{"./_export":49,"./_object-create":69}],104:[function(e,t,r){var n=e("./_export");n(n.S+n.F*!e("./_descriptors"),"Object",{defineProperty:e("./_object-dp").f})},{"./_descriptors":45,"./_export":49,"./_object-dp":70}],105:[function(e,t,r){var n=e("./_to-object"),o=e("./_object-gpo");e("./_object-sap")("getPrototypeOf",function(){return function(e){return o(n(e))}})},{"./_object-gpo":76,"./_object-sap":80,"./_to-object":92}],106:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":49,"./_set-proto":83}],107:[function(e,t,r){},{}],108:[function(e,t,r){"use strict";var n=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":62,"./_string-at":87}],109:[function(e,t,r){"use strict";var n=e("./_global"),o=e("./_has"),i=e("./_descriptors"),a=e("./_export"),u=e("./_redefine"),c=e("./_meta").KEY,s=e("./_fails"),f=e("./_shared"),l=e("./_set-to-string-tag"),p=e("./_uid"),d=e("./_wks"),_=e("./_wks-ext"),b=e("./_wks-define"),h=e("./_keyof"),y=e("./_enum-keys"),v=e("./_is-array"),m=e("./_an-object"),g=e("./_to-iobject"),j=e("./_to-primitive"),w=e("./_property-desc"),x=e("./_object-create"),k=e("./_object-gopn-ext"),O=e("./_object-gopd"),E=e("./_object-dp"),S=e("./_object-keys"),L=O.f,M=E.f,A=k.f,P=n.Symbol,T=n.JSON,F=T&&T.stringify,I="prototype",C=d("_hidden"),N=d("toPrimitive"),R={}.propertyIsEnumerable,G=f("symbol-registry"),D=f("symbols"),U=f("op-symbols"),Y=Object[I],W="function"==typeof P,B=n.QObject,q=!B||!B[I]||!B[I].findChild,J=i&&s(function(){return 7!=x(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=L(Y,t);n&&delete Y[t],M(e,t,r),n&&e!==Y&&M(Y,t,n)}:M,K=function(e){var t=D[e]=x(P[I]);return t._k=e,t},z=W&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Q=function(e,t,r){return e===Y&&Q(U,t,r),m(e),t=j(t,!0),m(r),o(D,t)?(r.enumerable?(o(e,C)&&e[C][t]&&(e[C][t]=!1),r=x(r,{enumerable:w(0,!1)})):(o(e,C)||M(e,C,w(1,{})),e[C][t]=!0),J(e,t,r)):M(e,t,r)},H=function(e,t){m(e);for(var r,n=y(t=g(t)),o=0,i=n.length;i>o;)Q(e,r=n[o++],t[r]);return e},V=function(e,t){return void 0===t?x(e):H(x(e),t)},X=function(e){var t=R.call(this,e=j(e,!0));return!(this===Y&&o(D,e)&&!o(U,e))&&(!(t||!o(this,e)||!o(D,e)||o(this,C)&&this[C][e])||t)},Z=function(e,t){if(e=g(e),t=j(t,!0),e!==Y||!o(D,t)||o(U,t)){var r=L(e,t);return!r||!o(D,t)||o(e,C)&&e[C][t]||(r.enumerable=!0),r}},$=function(e){for(var t,r=A(g(e)),n=[],i=0;r.length>i;)o(D,t=r[i++])||t==C||t==c||n.push(t);return n},ee=function(e){for(var t,r=e===Y,n=A(r?U:g(e)),i=[],a=0;n.length>a;)!o(D,t=n[a++])||r&&!o(Y,t)||i.push(D[t]);return i};W||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(r){this===Y&&t.call(U,r),o(this,C)&&o(this[C],e)&&(this[C][e]=!1),J(this,e,w(1,r))};return i&&q&&J(Y,e,{configurable:!0,set:t}),K(e)},u(P[I],"toString",function(){return this._k}),O.f=Z,E.f=Q,e("./_object-gopn").f=k.f=$,e("./_object-pie").f=X,e("./_object-gops").f=ee,i&&!e("./_library")&&u(Y,"propertyIsEnumerable",X,!0),_.f=function(e){return K(d(e))}),a(a.G+a.W+a.F*!W,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)d(te[re++]);for(var te=S(d.store),re=0;te.length>re;)b(te[re++]);a(a.S+a.F*!W,"Symbol",{for:function(e){return o(G,e+="")?G[e]:G[e]=P(e)},keyFor:function(e){if(z(e))return h(G,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){q=!0},useSimple:function(){q=!1}}),a(a.S+a.F*!W,"Object",{create:V,defineProperty:Q,defineProperties:H,getOwnPropertyDescriptor:Z,getOwnPropertyNames:$,getOwnPropertySymbols:ee}),T&&a(a.S+a.F*(!W||s(function(){var e=P();return"[null]"!=F([e])||"{}"!=F({a:e})||"{}"!=F(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!z(e)){for(var t,r,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);return t=n[1],"function"==typeof t&&(r=t),!r&&v(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!z(t))return t}),n[1]=t,F.apply(T,n)}}}),P[I][N]||e("./_hide")(P[I],N,P[I].valueOf),l(P,"Symbol"),l(Math,"Math",!0),l(n.JSON,"JSON",!0)},{"./_an-object":37,"./_descriptors":45,"./_enum-keys":48,"./_export":49,"./_fails":50,"./_global":51,"./_has":52,"./_hide":53,"./_is-array":58,"./_keyof":66,"./_library":67,"./_meta":68,"./_object-create":69,"./_object-dp":70,"./_object-gopd":72,"./_object-gopn":74,"./_object-gopn-ext":73,"./_object-gops":75,"./_object-keys":78,"./_object-pie":79,"./_property-desc":81,"./_redefine":82,"./_set-to-string-tag":84,"./_shared":86,"./_to-iobject":90,"./_to-primitive":93,"./_uid":94,"./_wks":97,"./_wks-define":95,"./_wks-ext":96}],110:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":95}],111:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":95}],112:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),o=e("./_hide"),i=e("./_iterators"),a=e("./_wks")("toStringTag"),u=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],c=0;c<5;c++){var s=u[c],f=n[s],l=f&&f.prototype;l&&!l[a]&&o(l,a,s),i[s]=i.Array}},{"./_global":51,"./_hide":53,"./_iterators":65,"./_wks":97,"./es6.array.iterator":102}],113:[function(e,t,r){(function(r){var n="object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this,o=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,i=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=e("./runtime"),o)n.regeneratorRuntime=i;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./runtime":114}],114:[function(e,t,r){(function(e,r){!function(r){"use strict";function n(e,t,r,n){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),u=new _(n||[]);return a._invoke=f(e,r,u),a}function o(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function i(){}function a(){}function u(){}function c(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function s(t){function r(e,n,i,a){var u=o(t[e],t,n);if("throw"!==u.type){var c=u.arg,s=c.value;return s&&"object"==typeof s&&m.call(s,"__await")?Promise.resolve(s.__await).then(function(e){r("next",e,i,a)},function(e){r("throw",e,i,a)}):Promise.resolve(s).then(function(e){c.value=e,i(c)},a)}a(u.arg)}function n(e,t){function n(){return new Promise(function(n,o){r(e,t,n,o)})}return i=i?i.then(n,n):n()}"object"==typeof e&&e.domain&&(r=e.domain.bind(r));var i;this._invoke=n}function f(e,t,r){var n=O;return function(i,a){if(n===S)throw new Error("Generator is already running");if(n===L){if("throw"===i)throw a;return h()}for(r.method=i,r.arg=a;;){var u=r.delegate;if(u){var c=l(u,r);if(c){if(c===M)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===O)throw n=L,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=S;var s=o(e,t,r);if("normal"===s.type){if(n=r.done?L:E,s.arg===M)continue;return{value:s.arg,done:r.done}}"throw"===s.type&&(n=L,r.method="throw",r.arg=s.arg)}}}function l(e,t){var r=e.iterator[t.method];if(r===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,l(e,t),"throw"===t.method))return M;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return M}var n=o(r,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,M;var i=n.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,M):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,M)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function d(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function b(e){if(e){var t=e[j];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=m.call(o,"catchLoc"),u=m.call(o,"finallyLoc");if(a&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&m.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),d(r),M}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;d(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:b(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=y),M}}}("object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{_process:1}],115:[function(e,t,r){t.exports=e("regenerator-runtime")},{"regenerator-runtime":113}]},{},[2])(2)}); diff --git a/frontend/documentation/js/libs/htmlparser.js b/frontend/documentation/js/libs/htmlparser.js deleted file mode 100644 index 522b39c..0000000 --- a/frontend/documentation/js/libs/htmlparser.js +++ /dev/null @@ -1,23 +0,0 @@ -/*********************************************** -Copyright 2010 - 2012 Chris Winberry . All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. -***********************************************/ -/* v2.0.0 */ - -!function(){function t(t,e){var a=function(){};a.prototype=e.prototype,t.super_=e,t.prototype=new a,t.prototype.constructor=t}function e(t,e){this._options=e||{},this._validateBuilder(t);this._builder=t,this.reset()}function a(t,e){this.reset(),this._options=e||{},void 0===this._options.ignoreWhitespace&&(this._options.ignoreWhitespace=!1),void 0===this._options.includeLocation&&(this._options.includeLocation=!1),void 0===this._options.verbose&&(this._options.verbose=!0),void 0===this._options.enforceEmptyTags&&(this._options.enforceEmptyTags=!0),void 0===this._options.caseSensitiveTags&&(this._options.caseSensitiveTags=!1),void 0===this._options.caseSensitiveAttr&&(this._options.caseSensitiveAttr=!1),"function"==typeof t&&(this._callback=t)}function n(t){n.super_.call(this,t,{ignoreWhitespace:!0,verbose:!1,enforceEmptyTags:!1,caseSensitiveTags:!0})}var i;if("undefined"!=typeof module&&void 0!==module.exports)i=module.exports;else{if(i={},this.Tautologistics||(this.Tautologistics={}),this.Tautologistics.NodeHtmlParser)return;this.Tautologistics.NodeHtmlParser=i}var s={Text:"text",Tag:"tag",Attr:"attr",CData:"cdata",Doctype:"doctype",Comment:"comment"};"undefined"!=typeof module&&void 0!==module.exports&&(t(e,require("stream")),e.prototype.writable=!0,e.prototype.write=function(t){t instanceof Buffer&&(t=t.toString()),this.parseChunk(t)},e.prototype.end=function(t){arguments.length&&this.write(t),this.writable=!1,this.done()},e.prototype.destroy=function(){this.writable=!1}),e.prototype.reset=function(){this._state={mode:s.Text,pos:0,data:null,pendingText:null,pendingWrite:null,lastTag:null,isScript:!1,needData:!1,output:[],done:!1},this._builder.reset()},e.prototype.parseChunk=function(t){for(this._state.needData=!1,this._state.data=null!==this._state.data?this._state.data.substr(this.pos)+t:t;this._state.pos\/]+)(\s*)\??(>?)/g,e.prototype._parseTag=function(){var t=this._state;e.re_parseTag.lastIndex=t.pos;var a=e.re_parseTag.exec(t.data);if(a){if(!a[1]&&"!--"===a[2].substr(0,3))return t.mode=s.Comment,void(t.pos+=3);if(!a[1]&&"![CDATA["===a[2].substr(0,8))return t.mode=s.CData,void(t.pos+=8);if(!a[1]&&"!DOCTYPE"===a[2].substr(0,8))return t.mode=s.Doctype,void(t.pos+=8);if(!t.done&&t.pos+a[0].length===t.data.length)return void(t.needData=!0);var n;">"===a[4]?(t.mode=s.Text,n=a[0].substr(0,a[0].length-1)):(t.mode=s.Attr,n=a[0]),t.pos+=a[0].length;var i={type:s.Tag,name:a[1]+a[2],raw:n};t.mode===s.Attr&&(t.lastTag=i),"script"===i.name.toLowerCase()?t.isScript=!0:"/script"===i.name.toLowerCase()&&(t.isScript=!1),t.mode===s.Attr?this._writePending(i):this._write(i)}else t.needData=!0},e.re_parseAttr_findName=/\s*([^=<>\s'"\/]+)\s*/g,e.prototype._parseAttr_findName=function(){e.re_parseAttr_findName.lastIndex=this._state.pos;var t=e.re_parseAttr_findName.exec(this._state.data);return t?this._state.pos+t[0].length!==e.re_parseAttr_findName.lastIndex?null:{match:t[0],name:t[1]}:null},e.re_parseAttr_findValue=/\s*=\s*(?:'([^']*)'|"([^"]*)"|([^'"\s\/>]+))\s*/g,e.re_parseAttr_findValue_last=/\s*=\s*['"]?(.*)$/g,e.prototype._parseAttr_findValue=function(){var t=this._state;e.re_parseAttr_findValue.lastIndex=t.pos;var a=e.re_parseAttr_findValue.exec(t.data);return a?t.pos+a[0].length!==e.re_parseAttr_findValue.lastIndex?null:{match:a[0],value:a[1]||a[2]||a[3]}:t.done?(e.re_parseAttr_findValue_last.lastIndex=t.pos,a=e.re_parseAttr_findValue_last.exec(t.data),a?{match:a[0],value:""!==a[1]?a[1]:null}:null):null},e.re_parseAttr_splitValue=/\s*=\s*['"]?/g,e.re_parseAttr_selfClose=/(\s*\/\s*)(>?)/g,e.prototype._parseAttr=function(){var t=this._state,a=this._parseAttr_findName(t);if(a&&"?"!==a.name){if(!t.done&&t.pos+a.match.length===t.data.length)return t.needData=!0,null;t.pos+=a.match.length;var n=this._parseAttr_findValue(t);t.data.indexOf(" ",t.pos);if(n){if(!t.done&&t.pos+n.match.length===t.data.length)return t.needData=!0,void(t.pos-=a.match.length);t.pos+=n.match.length}else if(t.data.indexOf(" ",t.pos-1))n={match:"",value:a.name};else{if(e.re_parseAttr_splitValue.lastIndex=t.pos,e.re_parseAttr_splitValue.exec(t.data))return t.needData=!0,void(t.pos-=a.match.length);n={match:"",value:null}}t.lastTag.raw+=a.match+n.match,this._writePending({type:s.Attr,name:a.name,data:n.value})}else{e.re_parseAttr_selfClose.lastIndex=t.pos;var i=e.re_parseAttr_selfClose.exec(t.data);if(i&&i.index===t.pos){if(!t.done&&!i[2]&&t.pos+i[0].length===t.data.length)return void(t.needData=!0);t.lastTag.raw+=i[1],this._write({type:s.Tag,name:"/"+t.lastTag.name,raw:null}),t.pos+=i[1].length}var r=t.data.indexOf(">",t.pos);if(r<0){if(t.done)return t.lastTag.raw+=t.data.substr(t.pos),void(t.pos=t.data.length);t.needData=!0}else t.pos=r+1,t.mode=s.Text}},e.re_parseCData_findEnding=/\]{1,2}$/,e.prototype._parseCData=function(){var t=this._state,a=t.data.indexOf("]]>",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseCData_findEnding.lastIndex=t.pos,e.re_parseCData_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.CData,data:n}),t.mode=s.Text,t.pos=a+3}},e.prototype._parseDoctype=function(){var t=this._state,a=t.data.indexOf(">",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0)e.re_parseCData_findEnding.lastIndex=t.pos,t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0;else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Doctype,data:n}),t.mode=s.Text,t.pos=a+1}},e.re_parseComment_findEnding=/\-{1,2}$/,e.prototype._parseComment=function(){var t=this._state,a=t.data.indexOf("--\x3e",t.pos);if(a<0&&t.done&&(a=t.data.length),a<0){if(e.re_parseComment_findEnding.lastIndex=t.pos,e.re_parseComment_findEnding.exec(t.data))return void(t.needData=!0);t.pendingText||(t.pendingText=[]),t.pendingText.push(t.data.substr(t.pos,t.data.length)),t.pos=t.data.length,t.needData=!0}else{var n;t.pendingText?(t.pendingText.push(t.data.substring(t.pos,a)),n=t.pendingText.join(""),t.pendingText=null):n=t.data.substring(t.pos,a),this._write({type:s.Comment,data:n}),t.mode=s.Text,t.pos=a+3}},a._emptyTags={area:1,base:1,basefont:1,br:1,col:1,frame:1,hr:1,img:1,input:1,isindex:1,link:1,meta:1,param:1,embed:1,"?xml":1},a.reWhitespace=/^\s*$/,a.prototype.dom=null,a.prototype.reset=function(){this.dom=[],this._done=!1,this._tagStack=[],this._lastTag=null,this._tagStack.last=function(){return this.length?this[this.length-1]:null},this._line=1,this._col=1},a.prototype.done=function(){this._done=!0,this.handleCallback(null)},a.prototype.error=function(t){this.handleCallback(t)},a.prototype.handleCallback=function(t){if("function"==typeof this._callback)this._callback(t,this.dom);else if(t)throw t},a.prototype.isEmptyTag=function(t){var e=t.name.toLowerCase();return"?"==e.charAt(0)||("/"==e.charAt(0)&&(e=e.substring(1)),this._options.enforceEmptyTags&&!!a._emptyTags[e])},a.prototype._getLocation=function(){return{line:this._line,col:this._col}},a.prototype._updateLocation=function(t){var e=t.type===s.Tag?t.raw:t.data;if(null!==e){var a=e.split("\n");this._line+=a.length-1,a.length>1&&(this._col=1),this._col+=a[a.length-1].length,t.type===s.Tag?this._col+=2:t.type===s.Comment?this._col+=7:t.type===s.CData&&(this._col+=12)}},a.prototype._copyElement=function(t){var e={type:t.type};if(this._options.verbose&&void 0!==t.raw&&(e.raw=t.raw),void 0!==t.name)switch(t.type){case s.Tag:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase();break;case s.Attr:e.name=this._options.caseSensitiveAttr?t.name:t.name.toLowerCase();break;default:e.name=this._options.caseSensitiveTags?t.name:t.name.toLowerCase()}return void 0!==t.data&&(e.data=t.data),t.location&&(e.location={line:t.location.line,col:t.location.col}),e},a.prototype.write=function(t){if(this._done&&this.handleCallback(new Error("Writing to the builder after done() called is not allowed without a reset()")),this._options.includeLocation&&t.type!==s.Attr&&(t.location=this._getLocation(),this._updateLocation(t)),t.type!==s.Text||!this._options.ignoreWhitespace||!a.reWhitespace.test(t.data)){var e,n;if(this._tagStack.last())if(t.type===s.Tag)if("/"==t.name.charAt(0)){var i=this._options.caseSensitiveTags?t.name.substring(1):t.name.substring(1).toLowerCase();if(!this.isEmptyTag(t)){for(var r=this._tagStack.length-1;r>-1&&this._tagStack[r--].name!=i;);if(r>-1||this._tagStack[0].name==i)for(;r=0&&s.length>=n)return s;if(a&&e.children)i=e.children;else{if(!(e instanceof Array))return s;i=e}for(var d=0;d=0&&s.length>=n));d++);return s},getElementById:function(t,e,a){var n=r.getElements({id:t},e,a,1);return n.length?n[0]:null},getElementsByTagName:function(t,e,a,n){return r.getElements({tag_name:t},e,a,n)},getElementsByTagType:function(t,e,a,n){return r.getElements({tag_type:t},e,a,n)}};i.Parser=e,i.HtmlBuilder=a,i.RssBuilder=n,i.ElementType=s,i.DomUtils=r}(); diff --git a/frontend/documentation/js/libs/innersvg.js b/frontend/documentation/js/libs/innersvg.js deleted file mode 100644 index b1099de..0000000 --- a/frontend/documentation/js/libs/innersvg.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * innerHTML property for SVGElement - * Copyright(c) 2010, Jeff Schiller - * - * Licensed under the Apache License, Version 2 - * - * Minor modifications by Chris Price to only polyfill when required. - */ -!function(e){if(e&&!("innerHTML"in e.prototype)){var t=function(e,r){var i=e.nodeType;if(3==i)r.push(e.textContent.replace(/&/,"&").replace(/",">"));else if(1==i){if(r.push("<",e.tagName),e.hasAttributes())for(var n=e.attributes,s=0,o=n.length;s");for(var h=e.childNodes,s=0,o=h.length;s")}else r.push("/>")}else{if(8!=i)throw"Error serializing XML. Unhandled node of type: "+i;r.push("\x3c!--",e.nodeValue,"--\x3e")}};Object.defineProperty(e.prototype,"innerHTML",{get:function(){for(var e=[],r=this.firstChild;r;)t(r,e),r=r.nextSibling;return e.join("")},set:function(e){for(;this.firstChild;)this.removeChild(this.firstChild);try{var t=new DOMParser;t.async=!1,sXML=""+e+"";for(var r=t.parseFromString(sXML,"text/xml").documentElement.firstChild;r;)this.appendChild(this.ownerDocument.importNode(r,!0)),r=r.nextSibling}catch(e){throw new Error("Error parsing XML string")}}})}}((0,eval)("this").SVGElement); \ No newline at end of file diff --git a/frontend/documentation/js/libs/lit-html.js b/frontend/documentation/js/libs/lit-html.js deleted file mode 100644 index 743deea..0000000 --- a/frontend/documentation/js/libs/lit-html.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call}return _assertThisInitialized(self)}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return self}function _get(target,property,receiver){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(receiver)}return desc.value}}return _get(target,property,receiver||target)}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break}return object}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o)};return _getPrototypeOf(o)}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function")}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass)}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o};return _setPrototypeOf(o,p)}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function _iterableToArray(iter){if(Symbol.iterator in Object(iter)||Object.prototype.toString.call(iter)==="[object Arguments]")return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr)){for(var i=0,arr2=new Array(arr.length);i2&&arguments[2]!==undefined?arguments[2]:null;var i=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var n=e;for(;n!==s;){var _e=n.nextSibling;t.insertBefore(n,i),n=_e}},o=function o(t,e){var s=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var i=e;for(;i!==s;){var _e2=i.nextSibling;t.removeChild(i),i=_e2}},r={},a={},l="{{lit-".concat(String(Math.random()).slice(2),"}}"),h="\x3c!--".concat(l,"--\x3e"),d=new RegExp("".concat(l,"|").concat(h)),c="$lit$";var u=function u(t,e){var _this=this;_classCallCheck(this,u);this.parts=[],this.element=e;var s=-1,i=0;var n=[],o=function o(e){var r=e.content,a=document.createTreeWalker(r,133,null,!1);var h=0;for(;a.nextNode();){s++;var _e3=a.currentNode;if(1===_e3.nodeType){if(_e3.hasAttributes()){var _n=_e3.attributes;var _o=0;for(var _t=0;_t<_n.length;_t++){_n[_t].value.indexOf(l)>=0&&_o++}for(;_o-- >0;){var _n2=t.strings[i],_o2=g.exec(_n2)[2],_r=_o2.toLowerCase()+c,_a=_e3.getAttribute(_r).split(d);_this.parts.push({type:"attribute",index:s,name:_o2,strings:_a}),_e3.removeAttribute(_r),i+=_a.length-1}}"TEMPLATE"===_e3.tagName&&o(_e3)}else if(3===_e3.nodeType){var _t2=_e3.data;if(_t2.indexOf(l)>=0){var _o3=_e3.parentNode,_r2=_t2.split(d),_a2=_r2.length-1;for(var _t3=0;_t3<_a2;_t3++){_o3.insertBefore(""===_r2[_t3]?m():document.createTextNode(_r2[_t3]),_e3),_this.parts.push({type:"node",index:++s})}""===_r2[_a2]?(_o3.insertBefore(m(),_e3),n.push(_e3)):_e3.data=_r2[_a2],i+=_a2}}else if(8===_e3.nodeType)if(_e3.data===l){var _t4=_e3.parentNode;null!==_e3.previousSibling&&s!==h||(s++,_t4.insertBefore(m(),_e3)),h=s,_this.parts.push({type:"node",index:s}),null===_e3.nextSibling?_e3.data="":(n.push(_e3),s--),i++}else{var _t5=-1;for(;-1!==(_t5=_e3.data.indexOf(l,_t5+1));){_this.parts.push({type:"node",index:-1})}}}};o(e);for(var _i=0;_i=\/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;var v=function(){function v(t,e,s){_classCallCheck(this,v);this._parts=[],this.template=t,this.processor=e,this.options=s}_createClass(v,[{key:"update",value:function update(t){var e=0;var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=this._parts[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var _s=_step.value;void 0!==_s&&_s.setValue(t[e]),e++}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=this._parts[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var _t7=_step2.value;void 0!==_t7&&_t7.commit()}}catch(err){_didIteratorError2=true;_iteratorError2=err}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return!=null){_iterator2.return()}}finally{if(_didIteratorError2){throw _iteratorError2}}}}},{key:"_clone",value:function _clone(){var _this2=this;var t=i?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=this.template.parts;var s=0,n=0;var o=function o(t){var i=document.createTreeWalker(t,133,null,!1);var r=i.nextNode();for(;s".concat(_get(_getPrototypeOf(x.prototype),"getHTML",this).call(this),"")}},{key:"getTemplateElement",value:function getTemplateElement(){var t=_get(_getPrototypeOf(x.prototype),"getTemplateElement",this).call(this),e=t.content,s=e.firstChild;return e.removeChild(s),n(e,s.firstChild),t}}]);return x}(f);var _=function _(t){return null===t||!("object"==_typeof(t)||"function"==typeof t)};var y=function(){function y(t,e,s){_classCallCheck(this,y);this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(var _t11=0;_t110&&arguments[0]!==undefined?arguments[0]:this.startNode;o(this.startNode.parentNode,t.nextSibling,this.endNode)}}]);return V}();var b=function(){function b(t,e,s){_classCallCheck(this,b);if(this.value=void 0,this._pendingValue=void 0,2!==s.length||""!==s[0]||""!==s[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=s}_createClass(b,[{key:"setValue",value:function setValue(t){this._pendingValue=t}},{key:"commit",value:function commit(){for(;s(this._pendingValue);){var _t15=this._pendingValue;this._pendingValue=r,_t15(this)}if(this._pendingValue===r)return;var t=!!this._pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name)),this.value=t,this._pendingValue=r}}]);return b}();var w=function(_y){_inherits(w,_y);function w(t,e,s){var _this3;_classCallCheck(this,w);_this3=_possibleConstructorReturn(this,_getPrototypeOf(w).call(this,t,e,s)),_this3.single=2===s.length&&""===s[0]&&""===s[1];return _this3}_createClass(w,[{key:"_createPart",value:function _createPart(){return new T(this)}},{key:"_getValue",value:function _getValue(){return this.single?this.parts[0].value:_get(_getPrototypeOf(w.prototype),"_getValue",this).call(this)}},{key:"commit",value:function commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}]);return w}(y);var T=function(_N){_inherits(T,_N);function T(){_classCallCheck(this,T);return _possibleConstructorReturn(this,_getPrototypeOf(T).apply(this,arguments))}return T}(N);var E=!1;try{var _t16={get capture(){return E=!0,!1}};window.addEventListener("test",_t16,_t16),window.removeEventListener("test",_t16,_t16)}catch(t){}var A=function(){function A(t,e,s){var _this4=this;_classCallCheck(this,A);this.value=void 0,this._pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=s,this._boundHandleEvent=function(t){return _this4.handleEvent(t)}}_createClass(A,[{key:"setValue",value:function setValue(t){this._pendingValue=t}},{key:"commit",value:function commit(){for(;s(this._pendingValue);){var _t17=this._pendingValue;this._pendingValue=r,_t17(this)}if(this._pendingValue===r)return;var t=this._pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this._boundHandleEvent,this._options),n&&(this._options=P(t),this.element.addEventListener(this.eventName,this._boundHandleEvent,this._options)),this.value=t,this._pendingValue=r}},{key:"handleEvent",value:function handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}]);return A}();var P=function P(t){return t&&(E?{capture:t.capture,passive:t.passive,once:t.once}:t.capture)};var S=function(){function S(){_classCallCheck(this,S)}_createClass(S,[{key:"handleAttributeExpressions",value:function handleAttributeExpressions(t,e,s,i){var n=e[0];if("."===n){return new w(t,e.slice(1),s).parts}return"@"===n?[new A(t,e.slice(1),i.eventContext)]:"?"===n?[new b(t,e.slice(1),s)]:new y(t,e,s).parts}},{key:"handleTextExpression",value:function handleTextExpression(t){return new V(t)}}]);return S}();var C=new S;function M(t){var e=L.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},L.set(t.type,e));var s=e.stringsArray.get(t.strings);if(void 0!==s)return s;var i=t.strings.join(l);return void 0===(s=e.keyString.get(i))&&(s=new u(t,t.getTemplateElement()),e.keyString.set(i,s)),e.stringsArray.set(t.strings,s),s}var L=new Map,k=new WeakMap;(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.0.0");t.html=function(t){for(var _len=arguments.length,e=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){e[_key-1]=arguments[_key]}return new f(t,e,"html",C)},t.svg=function(t){for(var _len2=arguments.length,e=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){e[_key2-1]=arguments[_key2]}return new x(t,e,"svg",C)},t.DefaultTemplateProcessor=S,t.defaultTemplateProcessor=C,t.directive=function(t){return function(){var i=t.apply(void 0,arguments);return e.set(i,!0),i}},t.isDirective=s,t.removeNodes=o,t.reparentNodes=n,t.noChange=r,t.nothing=a,t.AttributeCommitter=y,t.AttributePart=N,t.BooleanAttributePart=b,t.EventPart=A,t.isPrimitive=_,t.NodePart=V,t.PropertyCommitter=w,t.PropertyPart=T,t.parts=k,t.render=function(t,e,s){var i=k.get(e);void 0===i&&(o(e,e.firstChild),k.set(e,i=new V(Object.assign({templateFactory:M},s))),i.appendInto(e)),i.setValue(t),i.commit()},t.templateCaches=L,t.templateFactory=M,t.TemplateInstance=v,t.SVGTemplateResult=x,t.TemplateResult=f,t.createMarker=m,t.isTemplatePartActive=p,t.Template=u,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/frontend/documentation/js/libs/prism.js b/frontend/documentation/js/libs/prism.js deleted file mode 100644 index bb9d7eb..0000000 --- a/frontend/documentation/js/libs/prism.js +++ /dev/null @@ -1,46 +0,0 @@ -/* PrismJS 1.23.0 -https://prismjs.com/download.html?#themes=prism&languages=markup+css+clike+javascript+apacheconf+aspnet+bash+c+csharp+cpp+coffeescript+dart+docker+elm+git+go+graphql+handlebars+haskell+http+ignore+java+json+kotlin+less+markdown+markup-templating+nginx+php+powershell+ruby+rust+sass+scss+sql+swift+typescript+wasm+yaml&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ -var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,e={},M={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof W?new W(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=l.reach);y+=m.value.length,m=m.next){var b=m.value;if(t.length>n.length)return;if(!(b instanceof W)){var k,x=1;if(h){if(!(k=z(v,y,n,f)))break;var w=k.index,A=k.index+k[0].length,P=y;for(P+=m.value.length;P<=w;)m=m.next,P+=m.value.length;if(P-=m.value.length,y=P,m.value instanceof W)continue;for(var E=m;E!==t.tail&&(Pl.reach&&(l.reach=N);var j=m.prev;O&&(j=I(t,j,O),y+=O.length),q(t,j,x);var C=new W(o,g?M.tokenize(S,g):S,d,S);if(m=I(t,j,C),L&&I(t,m,L),1l.reach&&(l.reach=_.reach)}}}}}}(e,a,n,a.head,0),function(e){var n=[],t=e.head.next;for(;t!==e.tail;)n.push(t.value),t=t.next;return n}(a)},hooks:{all:{},add:function(e,n){var t=M.hooks.all;t[e]=t[e]||[],t[e].push(n)},run:function(e,n){var t=M.hooks.all[e];if(t&&t.length)for(var r,a=0;r=t[a++];)r(n)}},Token:W};function W(e,n,t,r){this.type=e,this.content=n,this.alias=t,this.length=0|(r||"").length}function z(e,n,t,r){e.lastIndex=n;var a=e.exec(t);if(a&&r&&a[1]){var i=a[1].length;a.index+=i,a[0]=a[0].slice(i)}return a}function i(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function I(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function q(e,n,t){for(var r=n.next,a=0;a"+a.content+""},!u.document)return u.addEventListener&&(M.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,r=n.code,a=n.immediateClose;u.postMessage(M.highlight(r,M.languages[t],t)),a&&u.close()},!1)),M;var t=M.util.currentScript();function r(){M.manual||M.highlightAll()}if(t&&(M.filename=t.src,t.hasAttribute("data-manual")&&(M.manual=!0)),!M.manual){var a=document.readyState;"loading"===a||"interactive"===a&&t&&t.defer?document.addEventListener("DOMContentLoaded",r):window.requestAnimationFrame?window.requestAnimationFrame(r):window.setTimeout(r,16)}return M}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); -Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,function(){return a}),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; -!function(s){var e=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),string:{pattern:e,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); -Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; -Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; -Prism.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/(^\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|Type|UserFile|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferSize|BufferedLogs|CGIDScriptTimeout|CGIMapExtension|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DTracePrivileges|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtFilterDefine|ExtFilterOptions|ExtendedStatus|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|KeepAlive|KeepAliveTimeout|KeptBodySize|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|LanguagePriority|Limit(?:InternalRecursion|Request(?:Body|FieldSize|Fields|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|MMapFile|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|ModMimeUsePathInfo|ModemStandard|MultiviewsMatch|Mutex|NWSSLTrustedCerts|NWSSLUpgradeable|NameVirtualHost|NoProxy|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|RLimitCPU|RLimitMEM|RLimitNPROC|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|SSIETag|SSIEndTag|SSIErrorMsg|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|SRPUnknownUserSeed|SRPVerifierFile|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UseStapling|UserName|VerifyClient|VerifyDepth)|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadStackSize|ThreadsPerChild|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\b.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:[\w=],?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/}; -!function(s){function a(e,s){return e.replace(/<<(\d+)>>/g,function(e,n){return"(?:"+s[+n]+")"})}function t(e,n,s){return RegExp(a(e,n),s||"")}function e(e,n){for(var s=0;s>/g,function(){return"(?:"+e+")"});return e.replace(/<>/g,"[^\\s\\S]")}var n="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",i="class enum interface struct",r="add alias and ascending async await by descending from get global group into join let nameof not notnull on or orderby partial remove select set unmanaged value when where",o="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function l(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var d=l(i),p=RegExp(l(n+" "+i+" "+r+" "+o)),c=l(i+" "+r+" "+o),u=l(n+" "+i+" "+o),g=e("<(?:[^<>;=+\\-*/%&|^]|<>)*>",2),b=e("\\((?:[^()]|<>)*\\)",2),h="@?\\b[A-Za-z_]\\w*\\b",f=a("<<0>>(?:\\s*<<1>>)?",[h,g]),m=a("(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*",[c,f]),k="\\[\\s*(?:,\\s*)*\\]",y=a("<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?",[m,k]),w=a("(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?",[a("\\(<<0>>+(?:,<<0>>+)+\\)",[a("[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>",[g,b,k])]),m,k]),v={keyword:p,punctuation:/[<>()?,.:[\]]/},x="'(?:[^\r\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'",$='"(?:\\\\.|[^\\\\"\r\n])*"';s.languages.csharp=s.languages.extend("clike",{string:[{pattern:t("(^|[^$\\\\])<<0>>",['@"(?:""|\\\\[^]|[^\\\\"])*"(?!")']),lookbehind:!0,greedy:!0},{pattern:t("(^|[^@$\\\\])<<0>>",[$]),lookbehind:!0,greedy:!0},{pattern:RegExp(x),greedy:!0,alias:"character"}],"class-name":[{pattern:t("(\\busing\\s+static\\s+)<<0>>(?=\\s*;)",[m]),lookbehind:!0,inside:v},{pattern:t("(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)",[h,w]),lookbehind:!0,inside:v},{pattern:t("(\\busing\\s+)<<0>>(?=\\s*=)",[h]),lookbehind:!0},{pattern:t("(\\b<<0>>\\s+)<<1>>",[d,f]),lookbehind:!0,inside:v},{pattern:t("(\\bcatch\\s*\\(\\s*)<<0>>",[m]),lookbehind:!0,inside:v},{pattern:t("(\\bwhere\\s+)<<0>>",[h]),lookbehind:!0},{pattern:t("(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>",[y]),lookbehind:!0,inside:v},{pattern:t("\\b<<0>>(?=\\s+(?!<<1>>)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))",[w,u,h]),inside:v}],keyword:p,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:ul|lu|[dflmu])?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),s.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),s.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:t("([(,]\\s*)<<0>>(?=\\s*:)",[h]),lookbehind:!0,alias:"punctuation"}}),s.languages.insertBefore("csharp","class-name",{namespace:{pattern:t("(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])",[h]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:t("(\\b(?:default|typeof|sizeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))",[b]),lookbehind:!0,alias:"class-name",inside:v},"return-type":{pattern:t("<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))",[w,m]),inside:v,alias:"class-name"},"constructor-invocation":{pattern:t("(\\bnew\\s+)<<0>>(?=\\s*[[({])",[w]),lookbehind:!0,inside:v,alias:"class-name"},"generic-method":{pattern:t("<<0>>\\s*<<1>>(?=\\s*\\()",[h,g]),inside:{function:t("^<<0>>",[h]),generic:{pattern:RegExp(g),alias:"class-name",inside:v}}},"type-list":{pattern:t("\\b((?:<<0>>\\s+<<1>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>)(?:\\s*,\\s*(?:<<3>>|<<4>>))*(?=\\s*(?:where|[{;]|=>|$))",[d,f,h,w,p.source]),lookbehind:!0,inside:{keyword:p,"class-name":{pattern:RegExp(w),greedy:!0,inside:v},punctuation:/,/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var _=$+"|"+x,B=a("/(?![*/])|//[^\r\n]*[\r\n]|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>",[_]),E=e(a("[^\"'/()]|<<0>>|\\(<>*\\)",[B]),2),R="\\b(?:assembly|event|field|method|module|param|property|return|type)\\b",P=a("<<0>>(?:\\s*\\(<<1>>*\\))?",[m,E]);s.languages.insertBefore("csharp","class-name",{attribute:{pattern:t("((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])",[R,P]),lookbehind:!0,greedy:!0,inside:{target:{pattern:t("^<<0>>(?=\\s*:)",[R]),alias:"keyword"},"attribute-arguments":{pattern:t("\\(<<0>>*\\)",[E]),inside:s.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var z=":[^}\r\n]+",S=e(a("[^\"'/()]|<<0>>|\\(<>*\\)",[B]),2),j=a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[S,z]),A=e(a("[^\"'/()]|/(?!\\*)|/\\*(?:[^*]|\\*(?!/))*\\*/|<<0>>|\\(<>*\\)",[_]),2),F=a("\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}",[A,z]);function U(e,n){return{interpolation:{pattern:t("((?:^|[^{])(?:\\{\\{)*)<<0>>",[e]),lookbehind:!0,inside:{"format-string":{pattern:t("(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)",[n,z]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:s.languages.csharp}}},string:/[\s\S]+/}}s.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:t('(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[^]|\\{\\{|<<0>>|[^\\\\{"])*"',[j]),lookbehind:!0,greedy:!0,inside:U(j,S)},{pattern:t('(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"',[F]),lookbehind:!0,greedy:!0,inside:U(F,A)}]})}(Prism),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp; -Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive":{pattern:/<%\s*@.*%>/i,alias:"tag",inside:{"page-directive":{pattern:/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,alias:"tag"},rest:Prism.languages.markup.tag.inside}},directive:{pattern:/<%.*%>/i,alias:"tag",inside:{directive:{pattern:/<%\s*?[$=%#:]{0,2}|%>/i,alias:"tag"},rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,Prism.languages.insertBefore("inside","punctuation",{directive:Prism.languages.aspnet.directive},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp-comment":{pattern:/<%--[\s\S]*?--%>/,alias:["asp","comment"]}}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp-script":{pattern:/(]*>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,alias:["asp","script"],inside:Prism.languages.csharp||{}}}); -!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},a={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:a},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:a},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:a.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:a.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=a.variable[1].inside,o=0;o>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},Prism.languages.c.string],comment:Prism.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:Prism.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c.boolean; -!function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n="\\b(?!)\\w+(?:\\s*\\.\\s*\\w+)*\\b".replace(//g,function(){return t.source});e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp("(\\b(?:class|concept|enum|struct|typename)\\s+)(?!)\\w+".replace(//g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp('(\\b(?:module|import)\\s+)(?:"(?:\\\\(?:\r\n|[^])|[^"\\\\\r\n])*"|<[^<>\r\n]*>|'+"(?:\\s*:\\s*)?|:\\s*".replace(//g,function(){return n})+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b[a-z_]\w*\s*<(?:[^<>]|<(?:[^<>])*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(Prism); -!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(Prism); -!function(e){var a=[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extension|external|extends|factory|final|finally|for|get|hide|if|implements|interface|import|in|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/],t="(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",s={pattern:RegExp(t+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}}}};e.languages.dart=e.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],"class-name":[s,{pattern:RegExp(t+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])"),lookbehind:!0,inside:s.inside}],keyword:a,operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),e.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}),e.languages.insertBefore("dart","class-name",{generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":s,keyword:a,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism); -!function(e){var r="(?:[ \t]+(?![ \t])(?:)?|)".replace(//g,function(){return"\\\\[\r\n](?:\\s|\\\\[\r\n]|#.*(?!.))*(?![\\s#]|\\\\[\r\n])"}),n="\"(?:[^\"\\\\\r\n]|\\\\(?:\r\n|[^]))*\"|'(?:[^'\\\\\r\n]|\\\\(?:\r\n|[^]))*'",t="--[\\w-]+=(?:|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)".replace(//g,function(){return n}),o={pattern:RegExp(n),greedy:!0},i={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function a(e,n){return e=e.replace(//g,function(){return t}).replace(//g,function(){return r}),RegExp(e,n)}e.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:a("(^(?:ONBUILD)?\\w+)(?:)*","i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[o,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:a("(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\\b","i"),lookbehind:!0,greedy:!0},{pattern:a("(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\\\]+)AS","i"),lookbehind:!0,greedy:!0},{pattern:a("(^ONBUILD)\\w+","i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:i,string:o,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:i},e.languages.dockerfile=e.languages.docker}(Prism); -Prism.languages.elm={comment:/--.*|{-[\s\S]*?-}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\.)*"/,greedy:!0}],"import-statement":{pattern:/^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+(?:[A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-/*=.$<>:&|^?%#@~!]{2,}|[+\-/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/}; -Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}; -Prism.languages.go=Prism.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete Prism.languages.go["class-name"]; -Prism.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:Prism.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,punctuation:/[!(){}\[\]:=,]/,constant:/\b(?!ID\b)[A-Z][A-Z_\d]*\b/}; -!function(h){function v(e,n){return"___"+e.toUpperCase()+n+"___"}Object.defineProperties(h.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,r,e,o){if(a.language===r){var c=a.tokenStack=[];a.code=a.code.replace(e,function(e){if("function"==typeof o&&!o(e))return e;for(var n,t=c.length;-1!==a.code.indexOf(n=v(r,t));)++t;return c[t]=e,n}),a.grammar=h.languages.markup}}},tokenizePlaceholders:{value:function(p,k){if(p.language===k&&p.tokenStack){p.grammar=h.languages[k];var m=0,d=Object.keys(p.tokenStack);!function e(n){for(var t=0;t=d.length);t++){var a=n[t];if("string"==typeof a||a.content&&"string"==typeof a.content){var r=d[m],o=p.tokenStack[r],c="string"==typeof a?a:a.content,i=v(k,r),u=c.indexOf(i);if(-1@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",function(a){e.languages["markup-templating"].buildPlaceholders(a,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"handlebars")})}(Prism); -Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\/].*|$)|{-[\s\S]*?-})/m,lookbehind:!0},char:{pattern:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,alias:"string"},string:{pattern:/"(?:[^\\"]|\\(?:\S|\s+\\))*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,"import-statement":{pattern:/(^\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`(?:[A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},Prism.languages.hs=Prism.languages.haskell; -!function(t){t.languages.http={"request-line":{pattern:/^(?:GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|PRI|SEARCH)\s(?:https?:\/\/|\/)\S*\sHTTP\/[0-9.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:t.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[0-9.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[0-9.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[0-9.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var a,e,s,n=t.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},i={"application/json":!0,"application/xml":!0};for(var p in r)if(r[p]){a=a||{};var o=i[p]?(void 0,s=(e=p).replace(/^[a-z]+\//,""),"(?:"+e+"|\\w+/(?:[\\w.-]+\\+)+"+s+"(?![+\\w.-]))"):p;a[p.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+o+"(?:(?:\\r\\n?|\\n).+)*)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[p]}}a&&t.languages.insertBefore("http","header-name",a)}(Prism); -!function(n){n.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},n.languages.gitignore=n.languages.ignore,n.languages.hgignore=n.languages.ignore,n.languages.npmignore=n.languages.ignore}(Prism); -!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n="(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*",a={pattern:RegExp(n+"[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b"),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{"class-name":[a,{pattern:RegExp(n+"[A-Z]\\w*(?=\\s+\\w+\\s*[;,=())])"),lookbehind:!0,inside:a.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp("(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?".replace(//g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism); -Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json; -!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"],e.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\w+@|@\w+/,alias:"symbol"}});var n=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:e.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}];e.languages.kotlin.string.inside=e.languages.kotlin["raw-string"].inside={interpolation:n},e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(Prism); -Prism.languages.less=Prism.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),Prism.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}); -!function(u){function n(n){return n=n.replace(//g,function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))"}),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var e="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",t="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,function(){return e}),a="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";u.languages.markdown=u.languages.extend("markup",{}),u.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"font-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:u.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+t+a+"(?:"+t+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+t+a+")(?:"+t+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(e),inside:u.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+t+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+t+"$"),inside:{"table-header":{pattern:RegExp(e),alias:"important",inside:u.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n("(~~?)(?:(?!~))+?\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:n('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(e){["url","bold","italic","strike"].forEach(function(n){e!==n&&(u.languages.markdown[e].inside.content.inside[n]=u.languages.markdown[n])})}),u.hooks.add("after-tokenize",function(n){"markdown"!==n.language&&"md"!==n.language||!function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,s=/[{}\[\](),:;]/;a.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:e,variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:bool|boolean|int|integer|float|string|object|array)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:bool|int|float|string|object|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*[a-z0-9_|]\|\s*)(?:null|false)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|self|static|callable|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?[a-z0-9_|]\|\s*)(?:null|false)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:bool|int|float|string|object|void|array(?!\s*\()|mixed|iterable|(?:null|false)(?=\s*\|))\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:null|false)\b/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|match|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,function:/\b\w+(?=\s*\()/,property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:i,operator:n,punctuation:s};var l={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)*)/,lookbehind:!0,inside:a.languages.php},r=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:l}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:l}}];a.languages.insertBefore("php","variable",{string:r,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=]$)/,lookbehind:!0,inside:{comment:e,string:r,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:t,number:i,operator:n,punctuation:s}},delimiter:{pattern:/^#\[|]$/,alias:"punctuation"}}}}),a.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){a.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/gi)}}),a.hooks.add("after-tokenize",function(e){a.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism); -!function(e){var i=Prism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(?:eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},r=i.string[0].inside;r.boolean=i.boolean,r.variable=i.variable,r.function.inside=i}(); -!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby.function,e.languages.insertBefore("ruby","keyword",{regex:[{pattern:RegExp("%r(?:"+["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^])*\\)","\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\]","<(?:[^<>\\\\]|\\\\[^])*>"].join("|")+")[egimnosux]{0,6}"),greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:n}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:RegExp("%[qQiIwWxs]?(?:"+["([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[^])*\\1","\\((?:[^()\\\\]|\\\\[^])*\\)","\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[^])*\\}","\\[(?:[^\\[\\]\\\\]|\\\\[^])*\\]","<(?:[^<>\\\\]|\\\\[^])*>"].join("|")+")"),greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:n}}],e.languages.rb=e.languages.ruby}(Prism); -!function(e){for(var a="/\\*(?:[^*/]|\\*(?!/)|/(?!\\*)|)*\\*/",t=0;t<2;t++)a=a.replace(//g,function(){return a});a=a.replace(//g,function(){return"[^\\s\\S]"}),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0,alias:"string"},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|Self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:[ui](?:8|16|32|64|128|size)|f(?:32|64)|bool|char|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64|size)?|f32|f64))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); -!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,a=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:a}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:a,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,lookbehind:!0}})}(Prism); -Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),Prism.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss; -Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|IN|ILIKE|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}; -Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[^(])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|some|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift; -!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},keyword:/\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(Prism); -Prism.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}; -!function(e){var n=/[*&][^\s[\]{},]+/,r=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,t="(?:"+r.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+r.source+")?)",a="(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*".replace(//g,function(){return"[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]"}),d="\"(?:[^\"\\\\\r\n]|\\\\.)*\"|'(?:[^'\\\\\r\n]|\\\\.)*'";function o(e,n){n=(n||"").replace(/m/g,"")+"m";var r="([:\\-,[{]\\s*(?:\\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|]|}|(?:[\r\n]\\s*)?#))".replace(/<>/g,function(){return t}).replace(/<>/g,function(){return e});return RegExp(r,n)}e.languages.yaml={scalar:{pattern:RegExp("([\\-:]\\s*(?:\\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\\S[^\r\n]*(?:\\2[^\r\n]+)*)".replace(/<>/g,function(){return t})),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp("((?:^|[:\\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\\s*:\\s)".replace(/<>/g,function(){return t}).replace(/<>/g,function(){return"(?:"+a+"|"+d+")"})),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o("\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?"),lookbehind:!0,alias:"number"},boolean:{pattern:o("true|false","i"),lookbehind:!0,alias:"important"},null:{pattern:o("null|~","i"),lookbehind:!0,alias:"important"},string:{pattern:o(d),lookbehind:!0,greedy:!0},number:{pattern:o("[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)","i"),lookbehind:!0},tag:r,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(Prism); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document&&document.querySelector){var t,o="line-numbers",s="linkable-line-numbers",a=function(){if(void 0===t){var e=document.createElement("div");e.style.fontSize="13px",e.style.lineHeight="1.5",e.style.padding="0",e.style.border="0",e.innerHTML=" 
         ",document.body.appendChild(e),t=38===e.offsetHeight,document.body.removeChild(e)}return t},l=!0,u=0;Prism.hooks.add("before-sanity-check",function(e){var t=e.element.parentElement;if(c(t)){var n=0;v(".line-highlight",t).forEach(function(e){n+=e.textContent.length,e.parentNode.removeChild(e)}),n&&/^( \n)+$/.test(e.code.slice(-n))&&(e.code=e.code.slice(0,-n))}}),Prism.hooks.add("complete",function e(t){var n=t.element.parentElement;if(c(n)){clearTimeout(u);var i=Prism.plugins.lineNumbers,r=t.plugins&&t.plugins.lineNumbers;if(b(n,o)&&i&&!r)Prism.hooks.add("line-numbers",e);else d(n)(),u=setTimeout(f,1)}}),window.addEventListener("hashchange",f),window.addEventListener("resize",function(){v("pre").filter(c).map(function(e){return d(e)}).forEach(y)})}function v(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function b(e,t){return e.classList.contains(t)}function y(e){e()}function c(e){return!(!e||!/pre/i.test(e.nodeName))&&(!!e.hasAttribute("data-line")||!(!e.id||!Prism.util.isActive(e,s)))}function d(u,e,c){var t=(e="string"==typeof e?e:u.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+u.getAttribute("data-line-offset")||0,f=(a()?parseInt:parseFloat)(getComputedStyle(u).lineHeight),p=Prism.util.isActive(u,o),n=u.querySelector("code"),h=p?u:n||u,m=[],g=n&&h!=n?function(e,t){var n=getComputedStyle(e),i=getComputedStyle(t);function r(e){return+e.substr(0,e.length-2)}return t.offsetTop+r(i.borderTopWidth)+r(i.paddingTop)-r(n.paddingTop)}(u,n):0;t.forEach(function(e){var t=e.split("-"),n=+t[0],i=+t[1]||n,r=u.querySelector('.line-highlight[data-range="'+e+'"]')||document.createElement("div");if(m.push(function(){r.setAttribute("aria-hidden","true"),r.setAttribute("data-range",e),r.className=(c||"")+" line-highlight"}),p&&Prism.plugins.lineNumbers){var o=Prism.plugins.lineNumbers.getLine(u,n),s=Prism.plugins.lineNumbers.getLine(u,i);if(o){var a=o.offsetTop+g+"px";m.push(function(){r.style.top=a})}if(s){var l=s.offsetTop-o.offsetTop+s.offsetHeight+"px";m.push(function(){r.style.height=l})}}else m.push(function(){r.setAttribute("data-start",String(n)),n span",u).forEach(function(e,t){var n=t+r;e.onclick=function(){var e=i+"."+n;l=!1,location.hash=e,setTimeout(function(){l=!0},1)}})}return function(){m.forEach(y)}}function f(){var e=location.hash.slice(1);v(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var n=e.slice(0,e.lastIndexOf(".")),i=document.getElementById(n);if(i)i.hasAttribute("data-line")||i.setAttribute("data-line",""),d(i,t,"temporary ")(),l&&document.querySelector(".temporary.line-highlight").scrollIntoView()}}}(); -!function(){if("undefined"!=typeof Prism&&"undefined"!=typeof document){var o="line-numbers",a=/\n(?!$)/g,e=Prism.plugins.lineNumbers={getLine:function(e,n){if("PRE"===e.tagName&&e.classList.contains(o)){var t=e.querySelector(".line-numbers-rows");if(t){var i=parseInt(e.getAttribute("data-start"),10)||1,r=i+(t.children.length-1);n");(i=document.createElement("span")).setAttribute("aria-hidden","true"),i.className="line-numbers-rows",i.innerHTML=l,t.hasAttribute("data-start")&&(t.style.counterReset="linenumber "+(parseInt(t.getAttribute("data-start"),10)-1)),e.element.appendChild(i),u([t]),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0})}function u(e){if(0!=(e=e.filter(function(e){var n=t(e)["white-space"];return"pre-wrap"===n||"pre-line"===n})).length){var n=e.map(function(e){var n=e.querySelector("code"),t=e.querySelector(".line-numbers-rows");if(n&&t){var i=e.querySelector(".line-numbers-sizer"),r=n.textContent.split(a);i||((i=document.createElement("span")).className="line-numbers-sizer",n.appendChild(i)),i.innerHTML="0",i.style.display="block";var s=i.getBoundingClientRect().height;return i.innerHTML="",{element:e,lines:r,lineHeights:[],oneLinerHeight:s,sizer:i}}}).filter(Boolean);n.forEach(function(e){var i=e.sizer,n=e.lines,r=e.lineHeights,s=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach(function(e,n){if(e&&1=0;n--)this.eventListeners.hasOwnProperty(o[n])&&delete this.eventListeners[o[n]]}for(var i in this.eventListeners)(this.options.eventsListenerElement||this.svg).addEventListener(i,this.eventListeners[i],!this.options.preventMouseEventsDefault&&h);this.options.mouseWheelZoomEnabled&&(this.options.mouseWheelZoomEnabled=!1,this.enableMouseWheelZoom())},l.prototype.enableMouseWheelZoom=function(){if(!this.options.mouseWheelZoomEnabled){var t=this;this.wheelListener=function(e){return t.handleMouseWheel(e)};var e=!this.options.preventMouseEventsDefault;n.on(this.options.eventsListenerElement||this.svg,this.wheelListener,e),this.options.mouseWheelZoomEnabled=!0}},l.prototype.disableMouseWheelZoom=function(){if(this.options.mouseWheelZoomEnabled){var t=!this.options.preventMouseEventsDefault;n.off(this.options.eventsListenerElement||this.svg,this.wheelListener,t),this.options.mouseWheelZoomEnabled=!1}},l.prototype.handleMouseWheel=function(t){if(this.options.zoomEnabled&&"none"===this.state){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1);var e=t.deltaY||1,o=Date.now()-this.lastMouseWheelEventTime,n=3+Math.max(0,30-o);this.lastMouseWheelEventTime=Date.now(),"deltaMode"in t&&0===t.deltaMode&&t.wheelDelta&&(e=0===t.deltaY?0:Math.abs(t.wheelDelta)/t.deltaY),e=-.30?1:-1)*Math.log(Math.abs(e)+10)/n;var i=this.svg.getScreenCTM().inverse(),s=r.getEventPoint(t,this.svg).matrixTransform(i),a=Math.pow(1+this.options.zoomScaleSensitivity,-1*e);this.zoomAtPoint(a,s)}},l.prototype.zoomAtPoint=function(t,e,o){var n=this.viewport.getOriginalState();o?(t=Math.max(this.options.minZoom*n.zoom,Math.min(this.options.maxZoom*n.zoom,t)),t/=this.getZoom()):this.getZoom()*tthis.options.maxZoom*n.zoom&&(t=this.options.maxZoom*n.zoom/this.getZoom());var i=this.viewport.getCTM(),s=e.matrixTransform(i.inverse()),r=this.svg.createSVGMatrix().translate(s.x,s.y).scale(t).translate(-s.x,-s.y),a=i.multiply(r);a.a!==i.a&&this.viewport.setCTM(a)},l.prototype.zoom=function(t,e){this.zoomAtPoint(t,r.getSvgCenterPoint(this.svg,this.width,this.height),e)},l.prototype.publicZoom=function(t,e){e&&(t=this.computeFromRelativeZoom(t)),this.zoom(t,e)},l.prototype.publicZoomAtPoint=function(t,e,o){if(o&&(t=this.computeFromRelativeZoom(t)),"SVGPoint"!==s.getType(e)){if(!("x"in e&&"y"in e))throw new Error("Given point is invalid");e=r.createSVGPoint(this.svg,e.x,e.y)}this.zoomAtPoint(t,e,o)},l.prototype.getZoom=function(){return this.viewport.getZoom()},l.prototype.getRelativeZoom=function(){return this.viewport.getRelativeZoom()},l.prototype.computeFromRelativeZoom=function(t){return t*this.viewport.getOriginalState().zoom},l.prototype.resetZoom=function(){var t=this.viewport.getOriginalState();this.zoom(t.zoom,!0)},l.prototype.resetPan=function(){this.pan(this.viewport.getOriginalState())},l.prototype.reset=function(){this.resetZoom(),this.resetPan()},l.prototype.handleDblClick=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),this.options.controlIconsEnabled){var e=t.target.getAttribute("class")||"";if(e.indexOf("svg-pan-zoom-control")>-1)return!1}var o;o=t.shiftKey?1/(2*(1+this.options.zoomScaleSensitivity)):2*(1+this.options.zoomScaleSensitivity);var n=r.getEventPoint(t,this.svg).matrixTransform(this.svg.getScreenCTM().inverse());this.zoomAtPoint(o,n)},l.prototype.handleMouseDown=function(t,e){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),s.mouseAndTouchNormalize(t,this.svg),this.options.dblClickZoomEnabled&&s.isDblClick(t,e)?this.handleDblClick(t):(this.state="pan",this.firstEventCTM=this.viewport.getCTM(),this.stateOrigin=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()))},l.prototype.handleMouseMove=function(t){if(this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&this.options.panEnabled){var e=r.getEventPoint(t,this.svg).matrixTransform(this.firstEventCTM.inverse()),o=this.firstEventCTM.translate(e.x-this.stateOrigin.x,e.y-this.stateOrigin.y);this.viewport.setCTM(o)}},l.prototype.handleMouseUp=function(t){this.options.preventMouseEventsDefault&&(t.preventDefault?t.preventDefault():t.returnValue=!1),"pan"===this.state&&(this.state="none")},l.prototype.fit=function(){var t=this.viewport.getViewBox(),e=Math.min(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.contain=function(){var t=this.viewport.getViewBox(),e=Math.max(this.width/t.width,this.height/t.height);this.zoom(e,!0)},l.prototype.center=function(){var t=this.viewport.getViewBox(),e=.5*(this.width-(t.width+2*t.x)*this.getZoom()),o=.5*(this.height-(t.height+2*t.y)*this.getZoom());this.getPublicInstance().pan({x:e,y:o})},l.prototype.updateBBox=function(){this.viewport.simpleViewBoxCache()},l.prototype.pan=function(t){var e=this.viewport.getCTM();e.e=t.x,e.f=t.y,this.viewport.setCTM(e)},l.prototype.panBy=function(t){var e=this.viewport.getCTM();e.e+=t.x,e.f+=t.y,this.viewport.setCTM(e)},l.prototype.getPan=function(){var t=this.viewport.getState();return{x:t.x,y:t.y}},l.prototype.resize=function(){var t=r.getBoundingClientRectNormalized(this.svg);this.width=t.width,this.height=t.height;var e=this.viewport;e.options.width=this.width,e.options.height=this.height,e.processCTM(),this.options.controlIconsEnabled&&(this.getPublicInstance().disableControlIcons(),this.getPublicInstance().enableControlIcons())},l.prototype.destroy=function(){var t=this;this.beforeZoom=null,this.onZoom=null,this.beforePan=null,this.onPan=null,this.onUpdatedCTM=null,null!=this.options.customEventsHandler&&this.options.customEventsHandler.destroy({svgElement:this.svg,eventsListenerElement:this.options.eventsListenerElement,instance:this.getPublicInstance()});for(var e in this.eventListeners)(this.options.eventsListenerElement||this.svg).removeEventListener(e,this.eventListeners[e],!this.options.preventMouseEventsDefault&&h);this.disableMouseWheelZoom(),this.getPublicInstance().disableControlIcons(),this.reset(),c=c.filter(function(e){return e.svg!==t.svg}),delete this.options,delete this.viewport,delete this.publicInstance,delete this.pi,this.getPublicInstance=function(){return null}},l.prototype.getPublicInstance=function(){var t=this;return this.publicInstance||(this.publicInstance=this.pi={enablePan:function(){return t.options.panEnabled=!0,t.pi},disablePan:function(){return t.options.panEnabled=!1,t.pi},isPanEnabled:function(){return!!t.options.panEnabled},pan:function(e){return t.pan(e),t.pi},panBy:function(e){return t.panBy(e),t.pi},getPan:function(){return t.getPan()},setBeforePan:function(e){return t.options.beforePan=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnPan:function(e){return t.options.onPan=null===e?null:s.proxy(e,t.publicInstance),t.pi},enableZoom:function(){return t.options.zoomEnabled=!0,t.pi},disableZoom:function(){return t.options.zoomEnabled=!1,t.pi},isZoomEnabled:function(){return!!t.options.zoomEnabled},enableControlIcons:function(){return t.options.controlIconsEnabled||(t.options.controlIconsEnabled=!0,i.enable(t)),t.pi},disableControlIcons:function(){return t.options.controlIconsEnabled&&(t.options.controlIconsEnabled=!1,i.disable(t)),t.pi},isControlIconsEnabled:function(){return!!t.options.controlIconsEnabled},enableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!0,t.pi},disableDblClickZoom:function(){return t.options.dblClickZoomEnabled=!1,t.pi},isDblClickZoomEnabled:function(){return!!t.options.dblClickZoomEnabled},enableMouseWheelZoom:function(){return t.enableMouseWheelZoom(),t.pi},disableMouseWheelZoom:function(){return t.disableMouseWheelZoom(),t.pi},isMouseWheelZoomEnabled:function(){return!!t.options.mouseWheelZoomEnabled},setZoomScaleSensitivity:function(e){return t.options.zoomScaleSensitivity=e,t.pi},setMinZoom:function(e){return t.options.minZoom=e,t.pi},setMaxZoom:function(e){return t.options.maxZoom=e,t.pi},setBeforeZoom:function(e){return t.options.beforeZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},setOnZoom:function(e){return t.options.onZoom=null===e?null:s.proxy(e,t.publicInstance),t.pi},zoom:function(e){return t.publicZoom(e,!0),t.pi},zoomBy:function(e){return t.publicZoom(e,!1),t.pi},zoomAtPoint:function(e,o){return t.publicZoomAtPoint(e,o,!0),t.pi},zoomAtPointBy:function(e,o){return t.publicZoomAtPoint(e,o,!1),t.pi},zoomIn:function(){return this.zoomBy(1+t.options.zoomScaleSensitivity),t.pi},zoomOut:function(){return this.zoomBy(1/(1+t.options.zoomScaleSensitivity)),t.pi},getZoom:function(){return t.getRelativeZoom()},setOnUpdatedCTM:function(e){return t.options.onUpdatedCTM=null===e?null:s.proxy(e,t.publicInstance),t.pi},resetZoom:function(){return t.resetZoom(),t.pi},resetPan:function(){return t.resetPan(),t.pi},reset:function(){return t.reset(),t.pi},fit:function(){return t.fit(),t.pi},contain:function(){return t.contain(),t.pi},center:function(){return t.center(),t.pi},updateBBox:function(){return t.updateBBox(),t.pi},resize:function(){return t.resize(),t.pi},getSizes:function(){return{width:t.width,height:t.height,realZoom:t.getZoom(),viewBox:t.viewport.getViewBox()}},destroy:function(){return t.destroy(),t.pi}}),this.publicInstance};var c=[],p=function(t,e){var o=s.getSvg(t);if(null===o)return null;for(var n=c.length-1;n>=0;n--)if(c[n].svg===o)return c[n].instance.getPublicInstance();return c.push({svg:o,instance:new l(o,e)}),c[c.length-1].instance.getPublicInstance()};e.exports=p},{"./control-icons":2,"./shadow-viewport":3,"./svg-utilities":5,"./uniwheel":6,"./utilities":7}],5:[function(t,e,o){var n=t("./utilities"),i="unknown";document.documentMode&&(i="ie"),e.exports={svgNS:"http://www.w3.org/2000/svg",xmlNS:"http://www.w3.org/XML/1998/namespace",xmlnsNS:"http://www.w3.org/2000/xmlns/",xlinkNS:"http://www.w3.org/1999/xlink",evNS:"http://www.w3.org/2001/xml-events",getBoundingClientRectNormalized:function(t){if(t.clientWidth&&t.clientHeight)return{width:t.clientWidth,height:t.clientHeight};if(t.getBoundingClientRect())return t.getBoundingClientRect();throw new Error("Cannot get BoundingClientRect for SVG.")},getOrCreateViewport:function(t,e){var o=null;if(o=n.isElement(e)?e:t.querySelector(e),!o){var i=Array.prototype.slice.call(t.childNodes||t.children).filter(function(t){return"defs"!==t.nodeName&&"#text"!==t.nodeName});1===i.length&&"g"===i[0].nodeName&&null===i[0].getAttribute("transform")&&(o=i[0])}if(!o){var s="viewport-"+(new Date).toISOString().replace(/\D/g,"");o=document.createElementNS(this.svgNS,"g"),o.setAttribute("id",s);var r=t.childNodes||t.children;if(r&&r.length>0)for(var a=r.length;a>0;a--)"defs"!==r[r.length-a].nodeName&&o.appendChild(r[r.length-a]);t.appendChild(o)}var l=[];return o.getAttribute("class")&&(l=o.getAttribute("class").split(" ")),~l.indexOf("svg-pan-zoom_viewport")||(l.push("svg-pan-zoom_viewport"),o.setAttribute("class",l.join(" "))),o},setupSvgAttributes:function(t){if(t.setAttribute("xmlns",this.svgNS),t.setAttributeNS(this.xmlnsNS,"xmlns:xlink",this.xlinkNS),t.setAttributeNS(this.xmlnsNS,"xmlns:ev",this.evNS),null!==t.parentNode){var e=t.getAttribute("style")||"";e.toLowerCase().indexOf("overflow")===-1&&t.setAttribute("style","overflow: hidden; "+e)}},internetExplorerRedisplayInterval:300,refreshDefsGlobal:n.throttle(function(){for(var t=document.querySelectorAll("defs"),e=t.length,o=0;oe?(clearTimeout(a),a=null,l=h,s=t.apply(n,i),a||(n=i=null)):a||o.trailing===!1||(a=setTimeout(u,c)),s}},createRequestAnimationFrame:function(t){var e=null;return"auto"!==t&&t<60&&t>1&&(e=Math.floor(1e3/t)),null===e?window.requestAnimationFrame||n(33):n(e)}}},{}]},{},[1]); \ No newline at end of file diff --git a/frontend/documentation/js/libs/tablesort.min.js b/frontend/documentation/js/libs/tablesort.min.js deleted file mode 100644 index 09de2ae..0000000 --- a/frontend/documentation/js/libs/tablesort.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * tablesort v5.1.0 (2018-09-14) - * http://tristen.ca/tablesort/demo/ - * Copyright (c) 2018 ; Licensed MIT -*/ -!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e0&&l.push(k),m++;if(!l)return}for(m=0;m2&&void 0!==arguments[2]&&arguments[2];for(var s in t)void 0!==i[s]&&(null===i[s]||"object"!==(0,c.default)(i[s])?n(t,i,s,o):"object"===(0,c.default)(t[s])&&e.fillIfDefined(t[s],i[s],o))},e.extend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r=0;r3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var r in o)if(o.hasOwnProperty(r)&&-1===t.indexOf(r))if(o[r]&&o[r].constructor===Object)void 0===i[r]&&(i[r]={}),i[r].constructor===Object?e.deepExtend(i[r],o[r]):n(i,o,r,s);else if(Array.isArray(o[r])){i[r]=[];for(var a=0;a2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(var r in i)if(i.hasOwnProperty(r)||!0===o)if(i[r]&&i[r].constructor===Object)void 0===t[r]&&(t[r]={}),t[r].constructor===Object?e.deepExtend(t[r],i[r],o):n(t,i,r,s);else if(Array.isArray(i[r])){t[r]=[];for(var a=0;a=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){var o;return-1!=t.indexOf("rgba")?t:-1!=t.indexOf("rgb")?(o=t.substr(t.indexOf("(")+1).replace(")","").split(","),"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"):(o=e.hexToRGB(t),null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")")},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var v={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,l.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=v.split(t.style.cssText),n=v.split(i),s=e.extend(o,n);t.style.cssText=v.join(s)},e.removeCssText=function(t,e){var i=v.split(t.style.cssText),o=v.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=v.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if(null!==i&&"object"===(void 0===i?"undefined":(0,c.default)(i))){for(var o=(0,h.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=function(t){return null!==t&&void 0!==t},s=function(t){return null!==t&&"object"===(void 0===t?"undefined":(0,c.default)(t))};if(!s(t))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(i))throw new Error("Parameter option must have a value");if(!s(o))throw new Error("Parameter globalOptions must be an object");var r=e[i],a=s(o)&&!function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}(o),d=a?o[i]:void 0,l=d?d.enabled:void 0;if(void 0!==r){if("boolean"==typeof r)return s(t[i])||(t[i]={}),void(t[i].enabled=r);if(null===r&&!s(t[i])){if(!n(d))return;t[i]=(0,h.default)(d)}if(s(r)){var u=!0;void 0!==r.enabled?u=r.enabled:void 0!==l&&(u=d.enabled),function(t,e,i){s(t[i])||(t[i]={});var o=e[i],n=t[i];for(var r in o)o.hasOwnProperty(r)&&(n[r]=o[r])}(t,e,i),t[i].enabled=u}}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){var s,r,a,h,d=0,l=0,u=t.length-1;for(n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,s=void 0;try{for(var a,h=(0,r.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;ln?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;e0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(19),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=!1,v=void 0,g="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,v=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){if(void 0===o[e]&&void 0===o.__any__)return void t.getSuggestion(e,o,n);var s=e,r=!0;void 0===o[e]&&void 0!==o.__any__&&(s="__any__",r="object"===t.getType(i[e]));var a=o[s];r&&void 0!==a.__type__&&(a=a.__type__),t.checkFields(e,i,o,s,a,n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=function(i){console.log("%c"+i+t.printLocation(r,e),g)},h=t.getType(i[e]),l=s[h];void 0!==l?"array"===t.getType(l)&&-1===l.indexOf(i[e])?(a('Invalid option detected in "'+e+'". Allowed values are:'+t.print(l)+' not "'+i[e]+'". '),m=!0):"object"===h&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(a('Invalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+h+'] "'+i[e]+'"'),m=!0)}},{key:"getType",value:function(t){var e=void 0===t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":!0===t._isAMomentObject?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,v,[],!0),r=void 0 -;r=void 0!==n.indexMatch?" in "+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n':s.distance<=4&&n.distance>s.distance?" in "+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""):n.distance<=8?'. Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e):". Did you mean one of these: "+t.print((0,d.default)(i))+t.printLocation(o,e),console.log('%cUnknown option detected: "'+e+'"'+r,g),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&!0===n){var c=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>c.distance&&(r=c.closestMatch,a=c.path,s=c.distance,d=c.indexMatch)}else-1!==l.toLowerCase().indexOf(h)&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n0&&(this.enableBorderDashes(t,e),t.stroke(),this.disableBorderDashes(t,e)),t.restore()}},{key:"performFill",value:function(t,e){this.enableShadow(t,e),t.fill(),this.disableShadow(t,e),this.performStroke(t,e)}},{key:"_addBoundingBoxMargin",value:function(t){this.boundingBox.left-=t,this.boundingBox.top-=t,this.boundingBox.bottom+=t,this.boundingBox.right+=t}},{key:"_updateBoundingBox",value:function(t,e,i,o,n){void 0!==i&&this.resize(i,o,n),this.left=t-this.width/2,this.top=e-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n)}},{key:"getDimensionsFromLabel",value:function(t,e,i){this.textSize=this.labelModule.getTextSize(t,e,i);var o=this.textSize.width,n=this.textSize.height;return 0===o&&(o=14,n=14),{width:o,height:n}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{size:this.options.size};if(this.needsRefresh(e,i)){this.labelModule.getTextSize(t,e,i);var n=2*o.size;this.width=n,this.height=n,this.radius=.5*this.width}}},{key:"_drawShape",value:function(t,e,i,o,n,s,r,a){if(this.resize(t,s,r,a),this.left=o-this.width/2,this.top=n-this.height/2,this.initContextForDraw(t,a),t[e](o,n,a.size),this.performFill(t,a),void 0!==this.options.label){this.labelModule.calculateLabelSize(t,s,r,o,n,"hanging");var h=n+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(t,o,h,s,r,"hanging")}this.updateBoundingBox(o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}]),e}(m.default);e.default=v},function(t,e,i){var o=i(78),n=i(51);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(20),n=i(39);t.exports=i(21)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(32);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){t.exports={default:i(138),__esModule:!0}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(188),s=o(n),r=i(77),a=o(r);e.default=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,h=(0,a.default)(t);!(o=(r=h.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(t){n=!0,s=t}finally{try{!o&&h.return&&h.return()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if((0,s.default)(Object(e)))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports={}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){var o=i(84),n=i(58);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){function o(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}o.subtract=function(t,e){var i=new o;return i.x=t.x-e.x,i.y=t.y-e.y,i.z=t.z-e.z,i},o.add=function(t,e){var i=new o;return i.x=t.x+e.x,i.y=t.y+e.y,i.z=t.z+e.z,i},o.avg=function(t,e){return new o((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},o.crossProduct=function(t,e){var i=new o;return i.x=t.y*e.z-t.z*e.y,i.y=t.z*e.x-t.x*e.z,i.z=t.x*e.y-t.y*e.x,i},o.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(0,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;e<=122;e++)r[String.fromCharCode(e)]={code:e-97+65,shift:!1};for(e=65;e<=90;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;e<=9;e++)r[""+e]={code:48+e,shift:!1};for(e=1;e<=12;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;e<=9;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r.delete={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;n=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale}return i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i),n=t.range.conversion(o,r),(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a);return new Date(h+a+t.range.start)},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n=.4*v}if(this.options.showMinorLabels&&m){var k=this._repaintMinorText(c,y,t,b);k.style.width=_+"px"}f&&this.options.showMajorLabels?(c>0&&(void 0==w&&(w=c),k=this._repaintMajorText(c,s.getLabelMajor(),t,b)),g=this._repaintMajorLine(c,_,t,b)):m?g=this._repaintMinorLine(c,_,t,b):g&&(g.style.width=parseInt(g.style.width)+_+"px")}if(1e3!==x||u||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to 1000 lines."),u=!0),this.options.showMajorLabels){var S=this.body.util.toTime(0),D=s.getLabelMajor(S),M=D.length*(this.props.majorCharWidth||10)+10;(void 0==w||Mt.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"updateGroupOptions",value:function(t,e,i){if(void 0!==i){var o=t.group;if(void 0!==e&&void 0!==e.group&&o!==e.group)throw new Error("updateGroupOptions: group values in options don't match.");if("number"==typeof o||"string"==typeof o&&""!=o){var n=i.get(o);h.selectiveNotDeepExtend(["font"],t,n),t.color=h.parseColor(t.color)}}}},{key:"parseOptions",value:function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments[4],r=["color","fixed","shadow"];if(h.selectiveNotDeepExtend(r,e,i,o),t.checkMass(i),h.mergeOptions(e,i,"shadow",n),void 0!==i.color&&null!==i.color){var a=h.parseColor(i.color);h.fillIfDefined(e.color,a)}else!0===o&&null===i.color&&(e.color=h.bridgeObject(n.color));void 0!==i.fixed&&null!==i.fixed&&("boolean"==typeof i.fixed?(e.fixed.x=i.fixed,e.fixed.y=i.fixed):(void 0!==i.fixed.x&&"boolean"==typeof i.fixed.x&&(e.fixed.x=i.fixed.x),void 0!==i.fixed.y&&"boolean"==typeof i.fixed.y&&(e.fixed.y=i.fixed.y))),!0===o&&null===i.font&&(e.font=h.bridgeObject(n.font)),t.updateGroupOptions(e,i,s),void 0!==i.scaling&&h.mergeOptions(e.scaling,i.scaling,"label",n.scaling)}},{key:"checkMass",value:function(t,e){if(void 0!==t.mass&&t.mass<=0){var i="";void 0!==e&&(i=" in node id: "+e),console.log("%cNegative or zero mass disallowed"+i+", setting mass to 1.",C),t.mass=1}}}]),t}();e.default=O},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(6),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(2),u=function(){function t(){(0,a.default)(this,t)}return(0,d.default)(t,null,[{key:"choosify",value:function(t,e){var i=["node","edge","label"],o=!0,n=l.topMost(e,"chosen");if("boolean"==typeof n)o=n;else if("object"===(void 0===n?"undefined":(0,s.default)(n))){if(-1===i.indexOf(t))throw new Error("choosify: subOption '"+t+"' should be one of '"+i.join("', '")+"'");var r=l.topMost(e,["chosen",t]);"boolean"!=typeof r&&"function"!=typeof r||(o=r)}return o}},{key:"pointInRect",value:function(t,e,i){if(t.width<=0||t.height<=0)return!1;if(void 0!==i){var o={x:e.x-i.x,y:e.y-i.y};if(0!==i.angle){var n=-i.angle;e={x:Math.cos(n)*o.x-Math.sin(n)*o.y,y:Math.sin(n)*o.x+Math.cos(n)*o.y}}else e=o}var s=t.x+t.width,r=t.y+t.width;return t.lefte.x&&t.tope.y}},{key:"isValidLabel",value:function(t){return"string"==typeof t&&""!==t}}]),t}();e.default=u},function(t,e,i){i(125);for(var o=i(18),n=i(26),s=i(31),r=i(13)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),h=0;hdocument.F=Object<\/script>"),t.close(),h=t.F;o--;)delete h.prototype[s[o]];return h()};t.exports=Object.create||function(t,e){var i;return null!==t?(a.prototype=o(t),i=new a,a.prototype=null,i[r]=t):i=h(),void 0===e?i:n(i,e)}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(57)("keys"),n=i(40);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(18),n=o["__core-js_shared__"]||(o["__core-js_shared__"]={});t.exports=function(t){return n[t]||(n[t]={})}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(20).f,n=i(22),s=i(13)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(135)(!0);i(79)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){e.f=i(13)},function(t,e,i){var o=i(18),n=i(7),s=i(52),r=i(61),a=i(20).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){var i=p().hours(0).minutes(0).seconds(0).milliseconds(0),o=i.clone().add(-3,"days").valueOf(),n=i.clone().add(3,"days").valueOf();this.millisecondsPerPixelCache=void 0,void 0===e?(this.start=o,this.end=n):(this.start=e.start||o,this.end=e.end||n),this.rolling=!1,this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={rtl:!1,start:null,end:null,moment:p,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10,rollingMode:{follow:!1,offset:.5}},this.options=c.extend({},this.defaultOptions),this.props={touch:{}},this.animationTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.body.dom.rollingModeBtn.addEventListener("click",this.startRolling.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}var r=i(8),a=o(r),h=i(19),d=o(h),l=i(6),u=o(l),c=i(2),p=i(9),f=i(16),m=i(36);n.prototype=new f,n.prototype.setOptions=function(t){if(t){var e=["animation","direction","min","max","zoomMin","zoomMax","moveable","zoomable","moment","activate","hiddenDates","zoomKey","rtl","showCurrentTime","rollingMode","horizontalScroll"];c.selectiveExtend(e,this.options,t),t.rollingMode&&t.rollingMode.follow&&this.startRolling(),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},n.prototype.startRolling=function(){function t(){e.stopRolling(),e.rolling=!0;var i=e.end-e.start,o=c.convert(new Date,"Date").valueOf(),n=o-i*e.options.rollingMode.offset,s=o+i*(1-e.options.rollingMode.offset),r={animation:!1};e.setRange(n,s,r),i=1/e.conversion(e.body.domProps.center.width).scale/10,i<30&&(i=30),i>1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o,n){i||(i={}),!0!==i.byUser&&(i.byUser=!1);var s=this,r=void 0!=t?c.convert(t,"Date").valueOf():null,h=void 0!=e?c.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var l=this.start,p=this.end,f="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,v="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=c.easingFunctions[v];if(!g)throw new Error("Unknown easing function "+(0,d.default)(v)+". Choose from: "+(0,a.default)(c.easingFunctions).join(", "));var y=(new Date).valueOf(),b=!1;return function t(){if(!s.props.touch.dragging){var e=(new Date).valueOf(),a=e-y,d=g(a/f),u=a>f,c=u||null===r?r:l+(r-l)*d,v=u||null===h?h:p+(h-p)*d;_=s._applyRange(c,v),m.updateHiddenDates(s.options.moment,s.body,s.options.hiddenDates),b=b||_;var w={start:new Date(s.start),end:new Date(s.end),byUser:i.byUser,event:i.event};if(n&&n(d,_,u),_&&s.body.emitter.emit("rangechange",w),u){if(b&&(s.body.emitter.emit("rangechanged",w),o))return o()}else s.animationTimer=setTimeout(t,20)}}()}var _=this._applyRange(r,h);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(s.timeoutID),s.timeoutID=setTimeout(function(){s.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?c.convert(t,"Date").valueOf():this.start,n=null!=e?c.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?c.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?c.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-.5&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var h=parseFloat(this.options.zoomMax);h<0&&(h=0),n-o>h&&(this.end-this.start===h&&othis.end?(o=this.start,n=this.end):(i=n-o-h,o+=i/2,n-=i/2))}var d=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,d},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n,r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;n=this.options.rtl?i/r*o:-i/r*o;var a=this.props.touch.start+n,h=this.props.touch.end+n,d=m.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0);if(d!=a||l!=h)return this.deltaDifference+=i,this.props.touch.start=d,this.props.touch.end=l,void this._onDrag(t);this.previousDelta=i,this._applyRange(a,h);var u=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:u,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),!(this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable)&&this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var i;i=e<0?1-e/5:1/(1+e/5);var o;if(this.rolling)o=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var n=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);o=this._pointerToDate(n)}this.zoom(i,o,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0,c.preventDefault(t)},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){c.preventDefault(t),this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e,i=t.center?t.center.x:t.clientX;e=this.options.rtl?i-c.getAbsoluteLeft(this.body.dom.centerContainer):c.getAbsoluteRight(this.body.dom.centerContainer)-i;var o=this.body.util.toTime(e);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:c.getAbsoluteRight(e)-t.x,y:t.y-c.getAbsoluteTop(e)}:{x:t.x-c.getAbsoluteLeft(e),y:t.y-c.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0) -;var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){}var s=i(19),r=o(s),a=i(6),h=o(a),d=i(44),l=i(10),u=i(37),c=i(2),p=i(45),f=i(97),m=i(36),v=i(46);d(n.prototype),n.prototype._create=function(t){function e(t){this.isActive()&&this.emit("mousewheel",t);var e=0,i=0;if("detail"in t&&(i=-1*t.detail),"wheelDelta"in t&&(i=t.wheelDelta),"wheelDeltaY"in t&&(i=t.wheelDeltaY),"wheelDeltaX"in t&&(e=-1*t.wheelDeltaX),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(e=-1*i,i=0),"deltaY"in t&&(i=-1*t.deltaY),"deltaX"in t&&(e=t.deltaX),this.options.zoomKey&&!t[this.options.zoomKey])if(t.preventDefault(),this.options.verticalScroll&&Math.abs(i)>=Math.abs(e)){var o=this.props.scrollTop,n=o+i;this.isActive()&&(this._setScrollTop(n),this._redraw(),this.emit("scroll",t))}else if(this.options.horizontalScroll){var s=Math.abs(e)>=Math.abs(i)?e:i,r=s/120*(this.range.end-this.range.start)/20,a=this.range.start+r,h=this.range.end+r,d={animation:!1,byUser:!0,event:t};this.range.setRange(a,h,d)}}function i(t){if(s.options.verticalScroll&&(t.preventDefault(),s.isActive())){var e=-t.target.scrollTop;s._setScrollTop(e),s._redraw(),s.emit("scrollSide",t)}}function o(t){if(t.preventDefault&&t.preventDefault(),!(!t.target.className.indexOf("vis")>-1||a))return t.dataTransfer.dropEffect="move",a=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e||!e.content)return}catch(t){return!1}return a=!1,t.center={x:t.clientX,y:t.clientY},"item"!==e.target?s.itemSet._onAddItem(t):s.itemSet._onDropObjectOnItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){!0===this.initialDrawDone&&this._redraw()}.bind(this)),this.on("rangechanged",function(){this.initialRangeChangeDone||(this.initialRangeChangeDone=!0)}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=c.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={},["tap","doubletap","press","pinch","pan","panstart","panmove","panend"].forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var a=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,this.initialRangeChangeDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(c.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),"object"!==(0,h.default)(this.options.orientation)&&(this.options.orientation={item:void 0,axis:void 0}),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new p(this.body);i.setOptions=function(t){var e=t?c.extend({},t):{};e.orientation="top",p.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=c.deepExtend({},this.options);this.components.forEach(function(t){c.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?c.convert(t,"Date").valueOf():new Date;if(this.customTimes.some(function(t){return t.options.id===e}))throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var o=new v(this.body,c.extend({},this.options,{time:i,id:e}));return this.customTimes.push(o),this.components.push(o),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n,s;1==arguments.length?(s=arguments[0],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})):2==arguments.length&&"function"==typeof arguments[1]?(s=arguments[0],o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)):(n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o))},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=c.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(c.addClassName(o.root,"vis-top"),c.removeClassName(o.root,"vis-bottom")):(c.removeClassName(o.root,"vis-top"),c.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=c.option.asSize(e.maxHeight,""),o.root.style.minHeight=c.option.asSize(e.minHeight,""),o.root.style.width=c.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=c.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=c.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.body.emitter.emit("changed")}},n.prototype._setDOM=function(){var t=this.props,e=this.dom;t.leftContainer.width=t.left.width,t.rightContainer.width=t.right.width;var i=t.root.width-t.left.width-t.right.width-t.borderRootWidth;t.center.width=i,t.centerContainer.width=i,t.top.width=i,t.bottom.width=i,e.background.style.height=t.background.height+"px",e.backgroundVertical.style.height=t.background.height+"px",e.backgroundHorizontal.style.height=t.centerContainer.height+"px",e.centerContainer.style.height=t.centerContainer.height+"px",e.leftContainer.style.height=t.leftContainer.height+"px",e.rightContainer.style.height=t.rightContainer.height+"px",e.background.style.width=t.background.width+"px",e.backgroundVertical.style.width=t.centerContainer.width+"px",e.backgroundHorizontal.style.width=t.background.width+"px",e.centerContainer.style.width=t.center.width+"px",e.top.style.width=t.top.width+"px",e.bottom.style.width=t.bottom.width+"px",e.background.style.left="0",e.background.style.top="0",e.backgroundVertical.style.left=t.left.width+t.border.left+"px",e.backgroundVertical.style.top="0",e.backgroundHorizontal.style.left="0",e.backgroundHorizontal.style.top=t.top.height+"px",e.centerContainer.style.left=t.left.width+"px",e.centerContainer.style.top=t.top.height+"px",e.leftContainer.style.left="0",e.leftContainer.style.top=t.top.height+"px",e.rightContainer.style.left=t.left.width+t.center.width+"px",e.rightContainer.style.top=t.top.height+"px",e.top.style.left=t.left.width+"px",e.top.style.top="0",e.bottom.style.left=t.left.width+"px",e.bottom.style.top=t.top.height+t.centerContainer.height+"px",e.center.style.left="0",e.left.style.left="0",e.right.style.left="0"},n.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},n.prototype.setCurrentTime=function(t){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(t)},n.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},n.prototype._toTime=function(t){return m.toTime(this,t,this.props.center.width)},n.prototype._toGlobalTime=function(t){return m.toTime(this,t,this.props.root.width)},n.prototype._toScreen=function(t){return m.toScreen(this,t,this.props.center.width)},n.prototype._toGlobalScreen=function(t){return m.toScreen(this,t,this.props.root.width)},n.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},n.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){if(1!=t.options.autoResize)return void t._stopAutoResize();t.dom.root&&(t.dom.root.offsetWidth==t.props.lastWidth&&t.dom.root.offsetHeight==t.props.lastHeight||(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight,t.props.scrollbarWidth=c.getScrollBarWidth(),t.body.emitter.emit("_change")))},c.addEventListener(window,"resize",this._onResize),t.dom.root&&(t.props.lastWidth=t.dom.root.offsetWidth,t.props.lastHeight=t.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},n.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(c.removeEventListener(window,"resize",this._onResize),this._onResize=null)},n.prototype._onTouch=function(t){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},n.prototype._onPinch=function(t){this.touch.allowDragging=!1},n.prototype._onDrag=function(t){if(t&&this.touch.allowDragging){var e=t.deltaY,i=this._getScrollTop(),o=this._setScrollTop(this.touch.initialScrollTop+e);this.options.verticalScroll&&(this.dom.left.parentNode.scrollTop=-this.props.scrollTop,this.dom.right.parentNode.scrollTop=-this.props.scrollTop),o!=i&&this.emit("verticalDrag")}},n.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},n.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTop0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){31104e9>t&&(this.scale="year",this.step=1e3),15552e9>t&&(this.scale="year",this.step=500),31104e8>t&&(this.scale="year",this.step=100),15552e8>t&&(this.scale="year",this.step=50),31104e7>t&&(this.scale="year",this.step=10),15552e7>t&&(this.scale="year",this.step=5),31104e6>t&&(this.scale="year",this.step=1),7776e6>t&&(this.scale="month",this.step=3),2592e6>t&&(this.scale="month",this.step=1),432e6>t&&(this.scale="day",this.step=5),1728e5>t&&(this.scale="day",this.step=2),864e5>t&&(this.scale="day",this.step=1),432e5>t&&(this.scale="weekday",this.step=1),144e5>t&&(this.scale="hour",this.step=4),36e5>t&&(this.scale="hour",this.step=1),9e5>t&&(this.scale="minute",this.step=15),6e5>t&&(this.scale="minute",this.step=10),3e5>t&&(this.scale="minute",this.step=5),6e4>t&&(this.scale="minute",this.step=1),15e3>t&&(this.scale="second",this.step=15),1e4>t&&(this.scale="second",this.step=10),5e3>t&&(this.scale="second",this.step=5),1e3>t&&(this.scale="second",this.step=1),200>t&&(this.scale="millisecond",this.step=200),100>t&&(this.scale="millisecond",this.step=100),50>t&&(this.scale="millisecond",this.step=50),10>t&&(this.scale="millisecond",this.step=10),5>t&&(this.scale="millisecond",this.step=5),1>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":case"week":return 1==t.date();case"month":return 0==t.month();case"year":default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/a%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}var n=this.moment,s=this.moment(this.current),r=s.locale?s.locale("en"):s.lang("en"),a=this.step,h=[];switch(this.scale){case"millisecond":h.push(e(r)),h.push(t(r.milliseconds()));break;case"second":h.push(e(r)),h.push(t(r.seconds()));break;case"minute":h.push(e(r)),h.push(t(r.minutes()));break;case"hour":h.push("vis-h"+r.hours()+(4==this.step?"-h"+(r.hours()+4):"")),h.push(e(r)),h.push(t(r.hours()));break;case"weekday":h.push("vis-"+r.format("dddd").toLowerCase()),h.push(e(r)),h.push(i(r)),h.push(t(r.date()));break;case"day":h.push("vis-day"+r.date()),h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(e(r)),h.push(o(r)),h.push(this.step<=2?e(r):""),h.push(this.step<=2?"vis-"+r.format("dddd").toLowerCase():""), -h.push(t(r.date()-1));break;case"week":h.push("vis-week"+r.format("w")),h.push(i(r)),h.push(t(r.week()));break;case"month":h.push("vis-"+r.format("MMMM").toLowerCase()),h.push(o(r)),h.push(t(r.month()));break;case"year":h.push("vis-year"+r.year()),h.push(function(t){return t.isSame(new Date,"year")?" vis-current-year":""}(r)),h.push(t(r.year()))}return h.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={rtl:!1,showCurrentTime:!0,moment:r,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(2),s=i(16),r=i(9),a=i(98);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["rtl","showCurrentTime","moment","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=this.options.moment((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline/#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+e.format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.options.rtl?this.bar.style.right=i+"px":this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;o<30&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.groupId=t,this.subgroups={},this.subgroupStack={},this.subgroupStackAll=!1,this.doInnerStack=!1,this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),e&&e.subgroupStack)if("boolean"==typeof e.subgroupStack)this.doInnerStack=e.subgroupStack,this.subgroupStackAll=e.subgroupStack;else for(var o in e.subgroupStack)this.subgroupStack[o]=e.subgroupStack[o],this.doInnerStack=this.doInnerStack||e.subgroupStack[o];this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var n=this;this.itemSet.body.emitter.on("checkRangedItems",function(){n.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(8),s=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(2),a=i(100);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?r.removeClassName(this.dom.inner,"vis-hidden"):r.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),r.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(r.removeClassName(this.dom.label,o),r.addClassName(this.dom.label,"expanded")):(r.removeClassName(this.dom.label,"expanded"),r.addClassName(this.dom.label,o))}else this.nestedGroups&&(this.nestedGroups=null,o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed",r.removeClassName(this.dom.label,o),r.removeClassName(this.dom.label,"expanded"),r.removeClassName(this.dom.label,"vis-nesting-group"));t&&t.nestedInGroup&&(r.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(r.removeClassName(this.dom.label,this.className),r.removeClassName(this.dom.foreground,this.className),r.removeClassName(this.dom.background,this.className),r.removeClassName(this.dom.axis,this.className)),r.addClassName(this.dom.label,n),r.addClassName(this.dom.foreground,n),r.addClassName(this.dom.background,n),r.addClassName(this.dom.axis,n),this.className=n),this.style&&(r.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(r.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype._didMarkerHeightChange=function(){var t=this.dom.marker.clientHeight;if(t!=this.lastMarkerHeight){this.lastMarkerHeight=t;var e={},i=0;r.forEach(this.items,function(t,o){if(t.dirty=!0,t.displayed){e[o]=t.redraw(!0),i=e[o].length}});if(i>0)for(var o=0;o0)for(var u=0;u0){var e=this;this.resetSubgroups(),r.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},o.prototype._isGroupVisible=function(t,e){return this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(r.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,r.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end||t.data.start,visible:!1,index:this.subgroupIndex,items:[],stack:this.subgroupStackAll||this.subgroupStack[e]||!1},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=i),this.subgroups[e].items.push(t)},o.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.end||t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.start,n=i-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(n)&&(n=e)}),t.subgroups[e].start=o,t.subgroups[e].end=new Date(n-1)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t,e=[];if("string"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(e.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},o.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},o.prototype.order=function(){for(var t=r.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}var p={},f=0;for(l=0;l0)for(var v=0;v=0&&(r=e[s],!n(r));s--)void 0===o[r.id]&&(o[r.id]=!0,i.push(r));for(s=t+1;st.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.visibleFrame=document.createElement("div"),this.dom.visibleFrame.className="vis-item-visible-frame",this.dom.box.appendChild(this.dom.visibleFrame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dom.box["timeline-item"]=this,this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var t=this.editable.updateTime||this.editable.updateGroup,e=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(t?" vis-editable":" vis-readonly");this.dom.box.className=this.baseClassName+e,this.dom.content.style.maxWidth="none"}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.frame).overflow,{content:{width:this.dom.content.offsetWidth},box:{height:this.dom.box.offsetHeight}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=t.box.height,this.dom.content.style.maxWidth="",this.dirty=!1},o.prototype._repaintDomAdditionals=function(){this._repaintOnItemUpdateTimeTooltip(this.dom.box),this._repaintDeleteButton(this.dom.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;!1===this.data.limitSize||void 0!==t&&!0!==t||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(179).default,f=function(){function t(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},c.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new p(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===(void 0===t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),!1===this.options.filter&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,!0===this.options.enabled&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):!0!==e&&-1===e.indexOf(n)||(o=!0),!1!==o&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(!0===this.options.showButton){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,o.innerHTML=!0===i?""+t+":":t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(1.2*e),d=a.max,h="range increased"),a.value=e}else a.value=o;var l=document.createElement("input");l.className="vis-configuration vis-config-rangeinput",l.value=a.value;var u=this;a.onchange=function(){l.value=this.value,u._update(Number(this.value),i)},a.oninput=function(){l.value=this.value};var c=this._makeLabel(i[i.length-1],i),p=this._makeItem(i,c,a,l);""!==h&&this.popupHistory[p]!==d&&(this.popupHistory[p]=d,this._setupPopup(h,p))}},{key:"_setupPopup",value:function(t,e){var i=this;if(!0===this.initialized&&!0===this.allowCreation&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=c.copyAndExtendArray(e,r);if("function"==typeof n&&!1===(o=n(r,e))&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=!1===i),!1!==o){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(l=!1),!0===l)if(void 0!==a.enabled){var u=c.copyAndExtendArray(h,"enabled"),p=this._getValue(u);if(!0===p){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,p,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;ethis.imageObj.height?i=this.imageObj.width/this.imageObj.height:o=this.imageObj.height/this.imageObj.width),t=2*this.options.size*i,e=2*this.options.size*o}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.radius=.5*this.width}},{key:"_drawRawCircle",value:function(t,e,i,o){this.initContextForDraw(t,o),t.circle(e,i,o.size),this.performFill(t,o)}},{key:"_drawImageAtPosition",value:function(t,e){if(0!=this.imageObj.width){t.globalAlpha=1,this.enableShadow(t,e);var i=1;!0===this.options.shapeProperties.interpolation&&(i=this.imageObj.width/this.width/this.body.view.scale),this.imageObj.drawImageAtPosition(t,i,this.left,this.top,this.width,this.height),this.disableShadow(t,e)}}},{key:"_drawImageLabel",value:function(t,e,i,o,n){var s,r=0;if(void 0!==this.height){r=.5*this.height;var a=this.labelModule.getTextSize(t,o,n);a.lineCount>=1&&(r+=a.height/2)}s=i+r,this.options.label&&(this.labelOffset=r),this.labelModule.draw(t,e,s,o,n,"hanging")}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(6),a=o(r),h=i(29),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(117).default,v=i(48).default,g=i(215).default,y=i(217).default,b=i(218).default,_=i(219).default,w=function(){function t(e,i,o,n){if((0,u.default)(this,t),void 0===i)throw new Error("No body provided");this.options=f.bridgeObject(o),this.globalOptions=o,this.defaultOptions=n,this.body=i,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new m(this.body,this.options,!0),this.setOptions(e)}return(0,p.default)(t,[{key:"setOptions",value:function(e){if(e){t.parseOptions(this.options,e,!0,this.globalOptions),void 0!==e.id&&(this.id=e.id),void 0!==e.from&&(this.fromId=e.from),void 0!==e.to&&(this.toId=e.to),void 0!==e.title&&(this.title=e.title),void 0!==e.value&&(e.value=parseFloat(e.value));var i=[e,this.options,this.defaultOptions];this.chooser=v.choosify("edge",i),this.updateLabelModule(e);var o=this.updateEdgeType();return this._setInteractionWidths(),this.connect(),void 0===e.hidden&&void 0===e.physics||(o=!0),o}}},{key:"getFormattingValues",value:function(){var t=!0===this.options.arrows.to||!0===this.options.arrows.to.enabled,e=!0===this.options.arrows.from||!0===this.options.arrows.from.enabled,i=!0===this.options.arrows.middle||!0===this.options.arrows.middle.enabled,o=this.options.color.inherit,n={toArrow:t,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,middleArrow:i,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,fromArrow:e,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,arrowStrikethrough:this.options.arrowStrikethrough,color:o?void 0:this.options.color.color,inheritsColor:o,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width};if(this.selected||this.hover)if(!0===this.chooser){if(this.selected){var s=this.options.selectionWidth;"function"==typeof s?n.width=s(n.width):"number"==typeof s&&(n.width+=s),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.highlight,n.shadow=this.options.shadow.enabled}else if(this.hover){var r=this.options.hoverWidth;"function"==typeof r?n.width=r(n.width):"number"==typeof r&&(n.width+=r),n.width=Math.max(n.width,.3/this.body.view.scale),n.color=this.options.color.hover,n.shadow=this.options.shadow.enabled}}else"function"==typeof this.chooser&&(this.chooser(n,this.options.id,this.selected,this.hover),void 0!==n.color&&(n.inheritsColor=!1),!1===n.shadow&&(n.shadowColor===this.options.shadow.color&&n.shadowSize===this.options.shadow.size&&n.shadowX===this.options.shadow.x&&n.shadowY===this.options.shadow.y||(n.shadow=!0)));else n.shadow=this.options.shadow.enabled,n.width=Math.max(n.width,.3/this.body.view.scale);return n}},{key:"updateLabelModule",value:function(t){var e=[t,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,e),void 0!==this.labelModule.baseSize&&(this.baseFontSize=this.labelModule.baseSize)}},{key:"updateEdgeType",value:function(){var t=this.options.smooth,e=!1,i=!0;return void 0!==this.edgeType&&((this.edgeType instanceof y&&!0===t.enabled&&"dynamic"===t.type||this.edgeType instanceof g&&!0===t.enabled&&"cubicBezier"===t.type||this.edgeType instanceof b&&!0===t.enabled&&"dynamic"!==t.type&&"cubicBezier"!==t.type||this.edgeType instanceof _&&!1===t.type.enabled)&&(i=!1),!0===i&&(e=this.cleanup())),!0===i?!0===t.enabled?"dynamic"===t.type?(e=!0,this.edgeType=new y(this.options,this.body,this.labelModule)):"cubicBezier"===t.type?this.edgeType=new g(this.options,this.body,this.labelModule):this.edgeType=new b(this.options,this.body,this.labelModule):this.edgeType=new _(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),e}},{key:"connect",value:function(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=void 0!==this.from&&void 0!==this.to,!0===this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}},{key:"disconnect",value:function(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}},{key:"getTitle",value:function(){return this.title}},{key:"isSelected",value:function(){return this.selected}},{key:"getValue",value:function(){return this.options.value}},{key:"setValueRange",value:function(t,e,i){if(void 0!==this.options.value){var o=this.options.scaling.customScalingFunction(t,e,i,this.options.value),n=this.options.scaling.max-this.options.scaling.min;if(!0===this.options.scaling.label.enabled){var s=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+o*s}this.options.width=this.options.scaling.min+o*n}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}},{key:"_setInteractionWidths",value:function(){"function"==typeof this.options.hoverWidth?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,"function"==typeof this.options.selectionWidth?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}},{key:"draw",value:function(t){var e=this.getFormattingValues();if(!e.hidden){var i=this.edgeType.getViaNode(),o={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,e.fromArrow&&(o.from=this.edgeType.getArrowData(t,"from",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.fromPoint=o.from.core)),e.toArrow&&(o.to=this.edgeType.getArrowData(t,"to",i,this.selected,this.hover,e),!1===e.arrowStrikethrough&&(this.edgeType.toPoint=o.to.core)),e.middleArrow&&(o.middle=this.edgeType.getArrowData(t,"middle",i,this.selected,this.hover,e)),this.edgeType.drawLine(t,e,this.selected,this.hover,i),this.drawArrows(t,o,e),this.drawLabel(t,i)}}},{key:"drawArrows",value:function(t,e,i){i.fromArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.from),i.middleArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.middle),i.toArrow&&this.edgeType.drawArrowHead(t,i,this.selected,this.hover,e.to)}},{key:"drawLabel",value:function(t,e){if(void 0!==this.options.label){var i=this.from,o=this.to;if(this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(t,this.selected,this.hover),i.id!=o.id){this.labelModule.pointToSelf=!1;var n=this.edgeType.getPoint(.5,e);t.save();var s=this._getRotation(t);0!=s.angle&&(t.translate(s.x,s.y),t.rotate(s.angle)),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover),t.restore()}else{this.labelModule.pointToSelf=!0;var r,a,h=this.options.selfReferenceSize;i.shape.width>i.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),n=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,n.x,n.y,this.selected,this.hover)}}}},{key:"getItemsOnPoint",value:function(t){var e=[];if(this.labelModule.visible()){var i=this._getRotation();v.pointInRect(this.labelModule.getSize(),t,i)&&e.push({edgeId:this.id,labelId:0})}var o={left:t.x,top:t.y};return this.isOverlappingWith(o)&&e.push({edgeId:this.id}),e}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=t.left,r=t.top;return this.edgeType.getDistanceToEdge(e,i,o,n,s,r)<10}return!1}},{key:"_getRotation",value:function(t){var e=this.edgeType.getViaNode(),i=this.edgeType.getPoint(.5,e);void 0!==t&&this.labelModule.calculateLabelSize(t,this.selected,this.hover,i.x,i.y);var o={x:i.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible())return o;if("horizontal"===this.options.font.align)return o;var n=this.from.y-this.to.y,s=this.from.x-this.to.x,r=Math.atan2(n,s);return(r<-1&&s<0||r>0&&s<0)&&(r+=Math.PI),o.angle=r,o}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}},{key:"remove",value:function(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}},{key:"endPointsValid",value:function(){return void 0!==this.body.nodes[this.fromId]&&void 0!==this.body.nodes[this.toId]}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=["arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width","font","chosen","widthConstraint"];if(f.selectiveDeepExtend(r,t,e,i),v.isValidLabel(e.label)?t.label=e.label:t.label=void 0,f.mergeOptions(t,e,"smooth",o),f.mergeOptions(t,e,"shadow",o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:!0===i&&null===e.dashes&&(t.dashes=(0,d.default)(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label",o.scaling)):!0===i&&null===e.scaling&&(t.scaling=(0,d.default)(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var h=e.arrows.toLowerCase();t.arrows.to.enabled=-1!=h.indexOf("to"),t.arrows.middle.enabled=-1!=h.indexOf("middle"),t.arrows.from.enabled=-1!=h.indexOf("from")}else{if("object"!==(0,a.default)(e.arrows))throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+(0,s.default)(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to",o.arrows),f.mergeOptions(t.arrows,e.arrows,"middle",o.arrows),f.mergeOptions(t.arrows,e.arrows,"from",o.arrows)}else!0===i&&null===e.arrows&&(t.arrows=(0,d.default)(o.arrows));if(void 0!==e.color&&null!==e.color){var l=e.color,u=t.color;if(n)f.deepExtend(u,o.color,!1,i);else for(var c in u)u.hasOwnProperty(c)&&delete u[c];if(f.isString(u))u.color=u,u.highlight=u,u.hover=u,u.inherit=!1,void 0===l.opacity&&(u.opacity=1);else{var p=!1;void 0!==l.color&&(u.color=l.color,p=!0),void 0!==l.highlight&&(u.highlight=l.highlight,p=!0),void 0!==l.hover&&(u.hover=l.hover,p=!0),void 0!==l.inherit&&(u.inherit=l.inherit),void 0!==l.opacity&&(u.opacity=Math.min(1,Math.max(0,l.opacity))),!0===p?u.inherit=!1:void 0===u.inherit&&(u.inherit="from")}}else!0===i&&null===e.color&&(t.color=f.bridgeObject(o.color));!0===i&&null===e.font&&(t.font=f.bridgeObject(o.font))}}]),t}();e.default=w},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_findBorderPositionBezier",value:function(t,e){var i,o,n,s,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this._getViaCoordinates(),h=0,d=0,l=1,u=this.to,c=!1;for(t.id===this.from.id&&(u=this.from,c=!0);d<=l&&h<10;){var p=.5*(d+l);if(i=this.getPoint(p,a),o=Math.atan2(u.y-i.y,u.x-i.x),n=u.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=n-s,Math.abs(r)<.2)break;r<0?!1===c?d=p:l=p:!1===c?l=p:d=p,h++}return i.t=p,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;d<10;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=h1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n1&&void 0!==arguments[1]?arguments[1]:[],o=1e9,n=-1e9,s=1e9,r=-1e9;if(i.length>0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),nh;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(22),n=i(41),s=i(56)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(50),n=i(13)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){var o=i(17),n=i(7),s=i(28);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){var o=i(84),n=i(58).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(42),n=i(39),s=i(25),r=i(53),a=i(22),h=i(81),d=Object.getOwnPropertyDescriptor;e.f=i(21)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e,i){t.exports={default:i(162),__esModule:!0}},function(t,e,i){function o(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=o},function(t,e,i){function o(t,e){if(void 0===t)throw new Error("No container element defined");if(this.container=t,this.visible=!e||void 0==e.visible||e.visible,this.visible){this.frame=document.createElement("DIV"),this.frame.style.width="100%",this.frame.style.position="relative",this.container.appendChild(this.frame),this.frame.prev=document.createElement("INPUT"),this.frame.prev.type="BUTTON",this.frame.prev.value="Prev",this.frame.appendChild(this.frame.prev),this.frame.play=document.createElement("INPUT"),this.frame.play.type="BUTTON",this.frame.play.value="Play",this.frame.appendChild(this.frame.play),this.frame.next=document.createElement("INPUT"),this.frame.next.type="BUTTON",this.frame.next.value="Next",this.frame.appendChild(this.frame.next),this.frame.bar=document.createElement("INPUT"),this.frame.bar.type="BUTTON",this.frame.bar.style.position="absolute",this.frame.bar.style.border="1px solid red",this.frame.bar.style.width="100px",this.frame.bar.style.height="6px",this.frame.bar.style.borderRadius="2px",this.frame.bar.style.MozBorderRadius="2px",this.frame.bar.style.border="1px solid #7F7F7F",this.frame.bar.style.backgroundColor="#E5E5E5",this.frame.appendChild(this.frame.bar),this.frame.slide=document.createElement("INPUT"),this.frame.slide.type="BUTTON",this.frame.slide.style.margin="0px",this.frame.slide.value=" ",this.frame.slide.style.position="relative",this.frame.slide.style.left="-100px",this.frame.appendChild(this.frame.slide);var i=this;this.frame.slide.onmousedown=function(t){i._onMouseDown(t)},this.frame.prev.onclick=function(t){i.prev(t)},this.frame.play.onclick=function(t){i.togglePlay(t)},this.frame.next.onclick=function(t){i.next(t)}}this.onChangeCallback=void 0,this.values=[],this.index=void 0,this.playTimeout=void 0,this.playInterval=1e3,this.playLoop=!0}var n=i(2);o.prototype.prev=function(){var t=this.getIndex();t>0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return t/(this.values.length-1)*e+3},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.prototype.setRange=function(t,e,i,o){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(i))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t||0,this._end=e||0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),!0===this.prettyStep?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),s<=0&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=o},function(t,e,i){function o(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function n(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+n(e)}function r(t,e,i,o){for(var n,r,a=0;ar&&(t=o(t)*r),i(e)>r&&(e=o(e)*r),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},o.prototype.getOffset=function(){return this.cameraOffset},o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())}, -o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=this.cameraRotation.z,i=this.cameraOffset.x,o=this.cameraOffset.y,n=Math.sin,s=Math.cos;this.cameraLocation.x=this.cameraLocation.x+i*s(e)+o*-n(e)*s(t),this.cameraLocation.y=this.cameraLocation.y+i*n(e)+o*s(e)*s(t),this.cameraLocation.z=this.cameraLocation.z+o*n(t)},t.exports=o},function(t,e,i){function o(t,e,i){this.dataGroup=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(12);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.dataGroup.getDataSet(),{filter:function(t){return t[i.column]==i.value}}).get();e=this.dataGroup._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0){var n=i.groupsData.getDataSet();n.get().forEach(function(t){if(t.nestedGroups){0!=t.showNested&&(t.showNested=!0);var e=[];t.nestedGroups.forEach(function(i){var o=n.get(i);o&&(o.nestedInGroup=t.id,0==t.showNested&&(o.visible=!1),e=e.concat(o))}),n.update(e,o)}})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(29),r=o(s),a=i(6),h=o(a),d=i(10),l=i(2),u=i(11),c=i(12),p=i(66),f=i(16),m=i(68),v=i(69),g=i(101),y=i(102),b=i(70),_=i(103),w=i(104).default,x="__ungrouped__",k="__background__";n.prototype=new f,n.types={background:_,box:g,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new v(k,null,this);s.show(),this.groups[k]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));["onDropObjectOnItem","onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this)),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;et&&o.push(h.id):h.lefte&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;i0){for(var w={},x=0;x<_;x++)l.forEach(b,function(t,e){w[e]=t[x]()});l.forEach(this.groups,function(t,e){if(e!==k){var i=w[e];s=i||s,g+=t.height}}),g=Math.max(g,y)}return g=Math.max(g,y),r.style.height=i(g),this.props.width=r.offsetWidth,this.props.height=g,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.options.rtl?this.dom.axis.style.right="0":this.dom.axis.style.left="0",this.initialItemSetDrawn=!0,s=this._isResized()||s},n.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t];return this.groups[e]||this.groups[x]||null},n.prototype._updateUngrouped=function(){var t,e,i=this.groups[x];if(this.groupsData){if(i){i.hide(),delete this.groups[x];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){i=new m(null,null,this),this.groups[x]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},n.prototype.getLabelSet=function(){return this.dom.labelSet},n.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(l.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;l.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}this.body.emitter.emit("_change",{queue:!0})},n.prototype.getItems=function(){return this.itemsData},n.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(l.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof u||t instanceof c))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.groupsData;this.groupsData instanceof c&&(o=this.groupsData.getDataSet()),o.get().forEach(function(t){t.nestedGroups&&t.nestedGroups.forEach(function(e){var i=o.get(e);i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),o.update(i)})});var n=this.id;l.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,n)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype.getGroups=function(){return this.groupsData},n.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},n.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},n.prototype._getGroupId=function(t){return"background"==this._getType(t)&&void 0==t.group?k:this.groupsData?t.group:x},n.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,o=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=o?e._getType(o):null,a=n.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,o):(i=s.selected,e._removeItem(s),s=null)),!s&&o){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(o,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onAdd=n.prototype._onUpdate,n.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.body.emitter.emit("_change",{queue:!0}))},n.prototype._order=function(){l.forEach(this.groups,function(t){t.order()})},n.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},n.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==x||t==k)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=(0,r.default)(e.options);l.extend(n,{height:null}),o=new m(t,i,e),e.groups[t]=o;for(var s in e.items)if(e.items.hasOwnProperty(s)){var a=e.items[s];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("_change",{queue:!0})},n.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("_change",{queue:!0})},n.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder});t=this._orderNestedGroups(t);var e=!l.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},n.prototype._orderNestedGroups=function(t){var e=[];return t.forEach(function(t){var i=this.groupsData.get(t);if(i.nestedInGroup||e.push(t),i.nestedGroups){var o=this.groupsData.get({filter:function(e){return e.nestedInGroup==t},order:this.options.groupOrder}),n=o.map(function(t){return t.id});e=e.concat(n)}},this),e},n.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i?i&&i.data&&i.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1,i&&i.add(t)},n.prototype._updateItem=function(t,e){t.setData(e);var i=this._getGroupId(t.data),o=this.groups[i];o?o&&o.data&&o.data.showNested&&(t.groupShowing=!0):t.groupShowing=!1},n.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},n.prototype._constructByEndArray=function(t){for(var e=[],i=0;in)return}}if(i&&i!=this.groupTouchParams.group){var a=e.get(i.groupId),h=e.get(this.groupTouchParams.group.groupId);h&&a&&(this.options.groupOrderSwap(h,a,e),e.update(h),e.update(a));var d=e.getIds({order:this.options.groupOrder});if(!l.equalArray(d,this.groupTouchParams.originalOrder))for(var u=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(u.length,d.length),m=0,v=0,g=0;m=f)break;if(d[m+v]==p)v=1;else if(u[m+g]==p)g=1;else{var y=d.indexOf(u[m+g]),b=e.get(d[m+v]),_=e.get(u[m+g]);this.options.groupOrderSwap(b,_,e),e.update(b),e.update(_);var w=d[m+v];d[m+v]=u[m+g],d[y]=w,m++}}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var c=n[a];n[a]=s[a],n[h]=c,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){if(e!==this.itemFromRelatedTarget(t)){var i=e.getTitle();if(this.options.showTooltips&&i){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(i);var o=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(o)+o.offsetLeft,t.clientY-l.getAbsoluteTop(o)+o.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){e!==this.itemFromRelatedTarget(t)&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){if(this.itemFromTarget(t)&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var e=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(e)+e.offsetLeft,t.clientY-l.getAbsoluteTop(e)+e.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onDropObjectOnItem=function(t){var e=this.itemFromTarget(t),i=JSON.parse(t.dataTransfer.getData("text"));this.options.onDropObjectOnItem(i,e)},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e,i,o=this,n=this.options.snap||null;this.options.rtl?(e=l.getAbsoluteRight(this.dom.frame),i=e-t.center.x):(e=l.getAbsoluteLeft(this.dom.frame),i=t.center.x-e);var s,r,a=this.body.util.toTime(i),h=this.body.util.getScale(),d=this.body.util.getStep();"drop"==t.type?(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:n?n(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"!=r.type||r.end||(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s)):(r={start:n?n(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type&&(s=this.body.util.toTime(i+this.props.width/5),r.end=n?n(s,h,d):s));var u=this.groupFromTarget(t);u&&(r.group=u.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(e){e&&(o.itemsData.getDataSet().add(e),"drop"==t.type&&o.setSelection([e.id]))})}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){ -var i=this.options.multiselect?this.getSelection():[];if((t.srcEvent&&t.srcEvent.shiftKey||!1)&&this.options.multiselect){var o=this.itemsData.get(e.id).group,s=void 0;this.options.multiselectPerGroup&&i.length>0&&(s=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=s&&s!=o||i.push(e.id);var r=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||s==o){i=[];for(var a in this.items)if(this.items.hasOwnProperty(a)){var h=this.items[a],d=h.data.start,l=void 0!==h.data.end?h.data.end:d;!(d>=r.min&&l<=r.max)||this.options.multiselectPerGroup&&s!=this.itemsData.get(h.id).group||h instanceof _||i.push(h.id)}}}else{var u=i.indexOf(e.id);-1==u?i.push(e.id):i.splice(u,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&es&&(s=r.top+r.height)}while(a)}}o.height=s-o.top+.5*i.item.vertical},e.nostack=function(t,i,o,n){for(var s=0;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ao[h].index&&(o[r].top+=o[h].height);for(var d=t[r],l=0;le.right&&t.top-i.vertical+.001e.top:t.left-i.horizontal+.001e.left&&t.top-i.vertical+.001e.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},this.options=i,t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(38);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=this.options.align,i=this.width*t.getMillisecondsPerPixel();return"right"==e?this.data.start.getTime()>t.start&&this.data.start.getTime()-it.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-i/2t.start&&this.data.startt.start},o.prototype._createDomElement=function(){this.dom||(this.dom={},this.dom.box=document.createElement("div"),this.dom.frame=document.createElement("div"),this.dom.frame.className="vis-item-overflow",this.dom.box.appendChild(this.dom.frame),this.dom.content=document.createElement("div"),this.dom.content.className="vis-item-content",this.dom.frame.appendChild(this.dom.content),this.dirty=!0)},o.prototype._appendDomElement=function(){if(!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!this.dom.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(this.dom.box)}this.displayed=!0},o.prototype._updateDirtyDomComponents=function(){if(this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var t=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");this.dom.box.className=this.baseClassName+t}},o.prototype._getDomComponentsSizes=function(){return this.overflow="hidden"!==window.getComputedStyle(this.dom.content).overflow,{content:{width:this.dom.content.offsetWidth}}},o.prototype._updateDomComponentsSizes=function(t){this.props.content.width=t.content.width,this.height=0,this.dirty=!1},o.prototype._repaintDomAdditionals=function(){},o.prototype.redraw=function(t){var e,i=[this._createDomElement.bind(this),this._appendDomElement.bind(this),this._updateDirtyDomComponents.bind(this),function(){this.dirty&&(e=this._getDomComponentsSizes.bind(this)())}.bind(this),function(){this.dirty&&this._updateDomComponentsSizes.bind(this)(e)}.bind(this),this._repaintDomAdditionals.bind(this)];if(t)return i;var o;return i.forEach(function(t){o=t()}),o},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup;this.dom.box.style.height=this.parent.subgroups[o].height+"px",this.dom.box.style.top="top"==i?this.parent.top+this.parent.subgroups[o].top+"px":this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),!0===t){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s0){var r={};for(this._getRelevantData(s,r,o,n),this._applySampling(s,r),e=0;e0)switch(t.options.style){case"line":d.hasOwnProperty(s[e])||(d[s[e]]=m.calcPath(r[s[e]],t)),m.draw(d[s[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(r[s[e]],t,this.framework)}}}return a.cleanupElements(this.svgElements),!1},o.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,t[a].y=0==o?t[a].orginalY+r.y:t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(t,e,i,o){var n,s,a,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],!0===r.stack&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));f.getStackedYRange(a,i,t,"__barStackLeft","left"),f.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),!0===t.master&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var r=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(r=this.props.titleCharHeight);var h=!0===this.options.icons?Math.max(this.options.iconWidth,r)+this.options.labelOffsetX+15:r+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-h&&!0===this.options.visible?(this.width=this.maxLabelSize+h,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+h),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),e=!1),e},o.prototype.convertValue=function(t){return this.scale.convertValue(t)},o.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},o.prototype._redrawLabel=function(t,e,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>h.magnitudefactor*h.minorSteps[h.minorStepIdx]*.5?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}o.prototype.setCharHeight=function(t){this.majorCharHeight=t},o.prototype.setHeight=function(t){this.containerHeight=t},o.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(!0===n)break}},o.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])==0},o.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},o.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},o.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},o.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},o.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(t){this.zeroPosition=t},o.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];r.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),r.mergeOptions(this.options,t,"interpolation"),r.mergeOptions(this.options,t,"drawPoints"),r.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,s.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},o.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":h.drawIcon(this,o,n,t,e,i);break;case"points":case"point":d.drawIcon(this,o,n,t,e,i);break;case"bar":a.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){return 1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o,n=e;if(i)for(o=t.length-2;o>0;o--)n+=t[o][0]+","+t[o][1]+" ";else for(o=1;o0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+c*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+c*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+p*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+p*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i");this.dom.textArea.innerHTML=r,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,s.default)(this.groups);t.sort(function(t,e){return t=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(F=I.NULL,L="";" "===z||"\t"===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=A-1;" "===R.charAt(e)||"\t"===R.charAt(e);)e--;if("\n"===R.charAt(e)||""===R.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||"\t"===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(F=I.DELIMITER);var i=z+r();if(N[i])return F=I.DELIMITER,L=i,s(),void s();if(N[z])return F=I.DELIMITER,L=z,void s();if(a(z)||"-"===z){for(L+=z,s();a(z);)L+=z,s();return"false"===L?L=!1:"true"===L?L=!0:isNaN(Number(L))||(L=Number(L)),void(F=I.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)'"'===z?(L+=z,s()):"\\"===z&&"n"===r()?(L+="\n",s()):L+=z,s();if('"'!=z)throw x('End of string " expected');return s(),void(F=I.IDENTIFIER)}for(F=I.UNKNOWN;""!=z;)L+=z,s();throw new SyntaxError('Syntax error in part "'+k(L,30)+'"')}function f(){var t={};if(n(),p(),"strict"===L&&(t.strict=!0,p()),"graph"!==L&&"digraph"!==L||(t.type=L,p()),F===I.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)v(t),";"===L&&p()}function v(t){var e=g(t);if(e)return void _(t,e);if(!y(t)){if(F!=I.IDENTIFIER)throw x("Identifier expected");var i=L;if(p(),"="===L){if(p(),F!=I.IDENTIFIER)throw x("Identifier expected");t[i]=L,p()}else b(t,i)}}function g(t){var e=null;if("subgraph"===L&&(e={},e.type="subgraph",p(),F===I.IDENTIFIER&&(e.id=L,p())),"{"===L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===L?(p(),t.node=w(),"node"):"edge"===L?(p(),t.edge=w(),"edge"):"graph"===L?(p(),t.graph=w(),"graph"):null}function b(t,e){var i={id:e},o=w();o&&(i.attr=o),l(t,i),_(t,e)}function _(t,e){for(;"->"===L||"--"===L;){var i,o=L;p();var n=g(t);if(n)i=n;else{if(F!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,l(t,{id:i}),p()}u(t,c(t,e,i,o,w())),e=i}}function w(){for(var t=null,e={dashed:!0,solid:!1,dotted:[1,5]};"["===L;){for(p(),t={};""!==L&&"]"!=L;){if(F!=I.IDENTIFIER)throw x("Attribute name expected");var i=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),F!=I.IDENTIFIER)throw x("Attribute value expected");var o=L;"style"===i&&(o=e[o]),d(t,i,o),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(L,30)+'" (char '+A+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},R="",A=0,z="",L="",F=I.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=C},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a2&&void 0!==arguments[2]&&arguments[2];(0,d.default)(this,t),this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(i),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=o}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(this.elementOptions=t,this.initFontOptions(t.font),p.isValidLabel(t.label)?this.labelDirty=!0:t.label="",void 0!==t.font&&null!==t.font)if("string"==typeof t.font)this.baseSize=this.fontOptions.size;else if("object"===(0,a.default)(t.font)){var e=t.font.size;void 0!==e&&(this.baseSize=e)}}},{key:"initFontOptions",value:function(e){var i=this;if(c.forEach(m,function(t){i.fontOptions[t]={}}),t.parseFontString(this.fontOptions,e))return void(this.fontOptions.vadjust=0);c.forEach(e,function(t,e){void 0!==t&&null!==t&&"object"!==(void 0===t?"undefined":(0,a.default)(t))&&(i.fontOptions[e]=t)})}},{key:"constrain",value:function(t){var e={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},i=c.topMost(t,"widthConstraint");if("number"==typeof i)e.maxWdt=Number(i),e.minWdt=Number(i);else if("object"===(void 0===i?"undefined":(0,a.default)(i))){var o=c.topMost(t,["widthConstraint","maximum"]);"number"==typeof o&&(e.maxWdt=Number(o));var n=c.topMost(t,["widthConstraint","minimum"]);"number"==typeof n&&(e.minWdt=Number(n))}var s=c.topMost(t,"heightConstraint");if("number"==typeof s)e.minHgt=Number(s);else if("object"===(void 0===s?"undefined":(0,a.default)(s))){var r=c.topMost(t,["heightConstraint","minimum"]);"number"==typeof r&&(e.minHgt=Number(r));var h=c.topMost(t,["heightConstraint","valign"]);"string"==typeof h&&("top"!==h&&"bottom"!==h||(e.valign=h))}return e}},{key:"update",value:function(t,e){this.setOptions(t,!0),this.propagateFonts(e),c.deepExtend(this.fontOptions,this.constrain(e)),this.fontOptions.chooser=p.choosify("label",e)}},{key:"adjustSizes",value:function(t){var e=t?t.right+t.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=e,this.fontOptions.minWdt-=e);var i=t?t.top+t.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=i)}},{key:"addFontOptionsToPile",value:function(t,e){for(var i=0;i5&&void 0!==arguments[5]?arguments[5]:"middle";if(void 0!==this.elementOptions.label){var r=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&r=this.elementOptions.scaling.label.maxVisible&&(r=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(t,o,n,e,i,s),this._drawBackground(t),this._drawText(t,e,this.size.yLine,s,r))}}},{key:"_drawBackground",value:function(t){if(void 0!==this.fontOptions.background&&"none"!==this.fontOptions.background){t.fillStyle=this.fontOptions.background;var e=this.getSize();t.fillRect(e.left,e.top,e.width,e.height)}}},{key:"_drawText",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"middle",n=arguments[4],r=this._setAlignment(t,e,i,o),a=(0,s.default)(r,2);e=a[0],i=a[1],t.textAlign="left",e-=this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&("top"===this.fontOptions.valign&&(i-=(this.size.height-this.size.labelHeight)/2),"bottom"===this.fontOptions.valign&&(i+=(this.size.height-this.size.labelHeight)/2));for(var h=0;h0&&(t.lineWidth=c.strokeWidth,t.strokeStyle=v,t.lineJoin="round"),t.fillStyle=m,c.strokeWidth>0&&t.strokeText(c.text,e+l,i+c.vadjust),t.fillText(c.text,e+l,i+c.vadjust),l+=c.width}i+=d.height}}}},{key:"_setAlignment",value:function(t,e,i,o){if(this.isEdgeLabel&&"horizontal"!==this.fontOptions.align&&!1===this.pointToSelf){e=0,i=0;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=4):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=4):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t,e,i){var o=t||"#000000",n=i||"#ffffff";if(e<=this.elementOptions.scaling.label.drawThreshold){var s=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-e)));o=c.overrideOpacity(o,s),n=c.overrideOpacity(n,s)}return[o,n]}},{key:"getTextSize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return this._processLabel(t,e,i),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}},{key:"getSize",value:function(){var t=this.size.left,e=this.size.top-1;if(this.isEdgeLabel){var i=.5*-this.size.width;switch(this.fontOptions.align){case"middle":t=i,e=.5*-this.size.height;break;case"top":t=i,e=-(this.size.height+2);break;case"bottom":t=i,e=2}}return{left:t,top:e,width:this.size.width,height:this.size.height}}},{key:"calculateLabelSize",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"middle";this._processLabel(t,e,i),this.size.left=o-.5*this.size.width,this.size.top=n-.5*this.size.height,this.size.yLine=n+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===s&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}},{key:"getFormattingValues",value:function(t,e,i,o){var n=function(t,e,i){return"normal"===e?"mod"===i?"":t[i]:void 0!==t[e][i]?t[e][i]:t[i]},s={color:n(this.fontOptions,o,"color"),size:n(this.fontOptions,o,"size"),face:n(this.fontOptions,o,"face"),mod:n(this.fontOptions,o,"mod"),vadjust:n(this.fontOptions,o,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(e||i)&&("normal"===o&&!0===this.fontOptions.chooser&&this.elementOptions.labelHighlightBold?s.mod="bold":"function"==typeof this.fontOptions.chooser&&this.fontOptions.chooser(s,this.elementOptions.id,e,i));var r="";return void 0!==s.mod&&""!==s.mod&&(r+=s.mod+" "),r+=s.size+"px "+s.face,t.font=r.replace(/"/g,""),s.font=t.font,s.height=s.size,s}},{key:"differentState",value:function(t,e){return t!==this.selectedState||e!==this.hoverState}},{key:"_processLabelText",value:function(t,e,i,o){return new f(t,this,e,i).process(o)}},{key:"_processLabel",value:function(t,e,i){if(!1!==this.labelDirty||this.differentState(e,i)){var o=this._processLabelText(t,e,i,this.elementOptions.label);this.fontOptions.minWdt>0&&o.width0&&o.heighto.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,d=this.options.selfReferenceSize,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=.5*(s+r);s<=r&&h<10&&(m=.5*(s+r),l=this._pointOnCircle(o,n,d,m),u=Math.atan2(t.y-l.y,t.x-l.x),c=t.distanceToBorder(e,u),p=Math.sqrt(Math.pow(l.x-t.x,2)+Math.pow(l.y-t.y,2)),f=c-p,!(Math.abs(f)<.05));)f>0?a>0?s=m:r=m:a>0?r=m:s=m,h++;return l.t=m,l}},{key:"getLineWidth",value:function(t,e){return!0===t?Math.max(this.selectionWidth,.3/this.body.view.scale):!0===e?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i,o){if(!1!==e.inheritsColor){if("both"===e.inheritsColor&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,r=void 0;return s=this.from.options.color.highlight.border,r=this.to.options.color.highlight.border,!1===this.from.selected&&!1===this.to.selected?(s=l.overrideOpacity(this.from.options.color.border,e.opacity),r=l.overrideOpacity(this.to.options.color.border,e.opacity)):!0===this.from.selected&&!1===this.to.selected?r=this.to.options.color.border:!1===this.from.selected&&!0===this.to.selected&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,r),n}return"to"===e.inheritsColor?l.overrideOpacity(this.to.options.color.border,e.opacity):l.overrideOpacity(this.from.options.color.border,e.opacity)}return l.overrideOpacity(e.color,e.opacity)}},{key:"_circle", -value:function(t,e,i,o,n){this.enableShadow(t,e),t.beginPath(),t.arc(i,o,n,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t,e)}},{key:"getDistanceToEdge",value:function(t,e,i,o,n,r,a,h){var d=0;if(this.from!=this.to)d=this._getDistanceToEdge(t,e,i,o,n,r,a);else{var l=this._getCircleData(void 0),u=(0,s.default)(l,3),c=u[0],p=u[1],f=u[2],m=c-n,v=p-r;d=Math.abs(Math.sqrt(m*m+v*v)-f)}return d}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:d<0&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"getArrowData",value:function(t,e,i,o,n,r){var a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=r.width;if("from"===e?(d=this.from,l=this.to,u=.1,c=r.fromArrowScale,p=r.fromArrowType):"to"===e?(d=this.to,l=this.from,u=-.1,c=r.toArrowScale,p=r.toArrowType):(d=this.to,l=this.from,c=r.middleArrowScale,p=r.middleArrowType),d!=l)if("middle"!==e)if(!0===this.options.smooth.enabled){h=this.findBorderPosition(d,t,{via:i});var m=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);a=Math.atan2(h.y-m.y,h.x-m.x)}else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else a=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.5,i);else{var v=this._getCircleData(t),g=(0,s.default)(v,3),y=g[0],b=g[1],_=g[2];"from"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),a=-2*h.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(h=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),a=-2*h.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(h=this._pointOnCircle(y,b,_,.175),a=3.9269908169872414)}"middle"===e&&c<0&&(f*=-1);var w=15*c+3*f;return{point:h,core:{x:h.x-.9*w*Math.cos(a),y:h.y-.9*w*Math.sin(a)},angle:a,length:w,type:p}}},{key:"drawArrowHead",value:function(t,e,i,o,n){t.strokeStyle=this.getColor(t,e,i,o),t.fillStyle=t.strokeStyle,t.lineWidth=e.width,u.draw(t,n),this.enableShadow(t,e),t.fill(),this.disableShadow(t,e)}},{key:"enableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor=e.shadowColor,t.shadowBlur=e.shadowSize,t.shadowOffsetX=e.shadowX,t.shadowOffsetY=e.shadowY)}},{key:"disableShadow",value:function(t,e){!0===e.shadow&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(4),a=o(r),h=i(5),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=function(){function t(){(0,u.default)(this,t)}return(0,p.default)(t,null,[{key:"transform",value:function(t,e){t instanceof Array||(t=[t]);for(var i=e.point.x,o=e.point.y,n=e.angle,s=e.length,r=0;r0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;s0&&this._getForceContributions(n.root,t)}}},{key:"_getForceContributions",value:function(t,e){this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?this._getForceContributions(t,e):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&o.shape.radius&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;h0&&(lr&&(r=l),ua&&(a=u))}var c=Math.abs(r-n)-Math.abs(a-s);c>0?(s-=.5*c,a+=.5*c):(n+=.5*c,r-=.5*c);var p=Math.max(1e-5,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var y=0;y0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.centerOfMass,o=t.mass+e.options.mass,n=1/o;i.x=i.x*t.mass+e.x*e.options.mass,i.x*=n,i.y=i.y*t.mass+e.y*e.options.mass,i.y*=n,t.mass=o;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?o.maxY>e.y?"NW":"SW":o.maxY>e.y?"NE":"SE",this._placeInRegion(t,e,n)}},{key:"_placeInRegion",value:function(t,e,i){var o=t.children[i];switch(o.childrenCount){case 0:o.children.data=e,o.childrenCount=1,this._updateBranchMass(o,e);break;case 1:o.children.data.x===e.x&&o.children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(o),this._placeInTree(o,e));break;case 4:this._placeInTree(o,e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e.default=h},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.physicsBody=i,this.setOptions(o)}return(0,a.default)(t,[{key:"setOptions",value:function(t){this.options=t}},{key:"solve",value:function(){for(var t=void 0,e=void 0,i=void 0,o=void 0,n=this.body.nodes,s=this.physicsBody.physicsNodeIndices,r=this.physicsBody.forces,a=0;a=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(54),n=i(39),s=i(59),r={};i(26)(r,i(13)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(20),n=i(27),s=i(33);t.exports=i(21)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(25),n=i(132),s=i(133);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if((a=h[l++])!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(55),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e,i){var o=i(55),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(18).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(55),n=i(51);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):r-56320+(s-55296<<10)+65536)}}},function(t,e,i){var o=i(27),n=i(137);t.exports=i(7).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(86),n=i(13)("iterator"),s=i(31);t.exports=i(7).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){i(139);var o=i(7).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(17);o(o.S,"Object",{create:i(54)})},function(t,e,i){i(141),t.exports=i(7).Object.keys},function(t,e,i){var o=i(41),n=i(33);i(87)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){i(60),i(49),t.exports=i(61).f("iterator")},function(t,e,i){t.exports={default:i(145),__esModule:!0}},function(t,e,i){i(146),i(151),i(152),i(153),t.exports=i(7).Symbol},function(t,e,i){var o=i(18),n=i(22),s=i(21),r=i(17),a=i(83),h=i(147).KEY,d=i(28),l=i(57),u=i(59),c=i(40),p=i(13),f=i(61),m=i(62),v=i(148),g=i(149),y=i(27),b=i(25),_=i(53),w=i(39),x=i(54),k=i(150),S=i(89),D=i(20),M=i(33),C=S.f,O=D.f,E=k.f,T=o.Symbol,P=o.JSON,I=P&&P.stringify,N=p("_hidden"),R=p("toPrimitive"),A={}.propertyIsEnumerable,z=l("symbol-registry"),L=l("symbols"),F=l("op-symbols"),B=Object.prototype,j="function"==typeof T,H=o.QObject,W=!H||!H.prototype||!H.prototype.findChild,Y=s&&d(function(){return 7!=x(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=C(B,e);o&&delete B[e],O(t,e,i),o&&t!==B&&O(B,e,o)}:O,G=function(t){var e=L[t]=x(T.prototype);return e._k=t,e},V=j&&"symbol"==typeof T.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof T},U=function(t,e,i){return t===B&&U(F,e,i),y(t),e=_(e,!0),y(i),n(L,e)?(i.enumerable?(n(t,N)&&t[N][e]&&(t[N][e]=!1),i=x(i,{enumerable:w(0,!1)})):(n(t,N)||O(t,N,w(1,{})),t[N][e]=!0),Y(t,e,i)):O(t,e,i)},q=function(t,e){y(t);for(var i,o=v(e=b(e)),n=0,s=o.length;s>n;)U(t,i=o[n++],e[i]);return t},X=function(t,e){return void 0===e?x(t):q(x(t),e)},Z=function(t){var e=A.call(this,t=_(t,!0));return!(this===B&&n(L,t)&&!n(F,t))&&(!(e||!n(this,t)||!n(L,t)||n(this,N)&&this[N][t])||e)},K=function(t,e){if(t=b(t),e=_(e,!0),t!==B||!n(L,e)||n(F,e)){var i=C(t,e);return!i||!n(L,e)||n(t,N)&&t[N][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=E(b(t)),o=[],s=0;i.length>s;)n(L,e=i[s++])||e==N||e==h||o.push(e);return o},$=function(t){for(var e,i=t===B,o=E(i?F:b(t)),s=[],r=0;o.length>r;)!n(L,e=o[r++])||i&&!n(B,e)||s.push(L[e]);return s};j||(T=function(){if(this instanceof T)throw TypeError("Symbol is not a constructor!");var t=c(arguments.length>0?arguments[0]:void 0),e=function(i){this===B&&e.call(F,i),n(this,N)&&n(this[N],t)&&(this[N][t]=!1),Y(this,t,w(1,i))};return s&&W&&Y(B,t,{configurable:!0,set:e}),G(t)},a(T.prototype,"toString",function(){return this._k}),S.f=K,D.f=U,i(88).f=k.f=J,i(42).f=Z,i(63).f=$,s&&!i(52)&&a(B,"propertyIsEnumerable",Z,!0),f.f=function(t){return G(p(t))}),r(r.G+r.W+r.F*!j,{Symbol:T});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),tt=0;Q.length>tt;)p(Q[tt++]);for(var et=M(p.store),it=0;et.length>it;)m(et[it++]);r(r.S+r.F*!j,"Symbol",{for:function(t){return n(z,t+="")?z[t]:z[t]=T(t)},keyFor:function(t){if(!V(t))throw TypeError(t+" is not a symbol!");for(var e in z)if(z[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),r(r.S+r.F*!j,"Object",{create:X,defineProperty:U,defineProperties:q,getOwnPropertyDescriptor:K,getOwnPropertyNames:J,getOwnPropertySymbols:$}),P&&r(r.S+r.F*(!j||d(function(){var t=T();return"[null]"!=I([t])||"{}"!=I({a:t})||"{}"!=I(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!V(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&g(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!V(e))return e}),o[1]=e,I.apply(P,o)}}}),T.prototype[R]||i(26)(T.prototype,R,T.prototype.valueOf),u(T,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(40)("meta"),n=i(32),s=i(22),r=i(20).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(28)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},c=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},p=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:p}},function(t,e,i){var o=i(33),n=i(63),s=i(42);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e,i){var o=i(50);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(25),n=i(88).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e){},function(t,e,i){i(62)("asyncIterator")},function(t,e,i){i(62)("observable")},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(0,function(){function e(){return Co.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function o(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function n(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function s(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function h(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return D(i)?i(e):i.replace(/%s/i,e)}function A(t,e){var i=t.toLowerCase();Lo[i]=Lo[i+"s"]=Lo[e]=t}function z(t){return"string"==typeof t?Lo[t]||Lo[t.toLowerCase()]:void 0}function L(t){var e,i,o={};for(i in t)d(t,i)&&(e=z(i))&&(o[e]=t[i]);return o}function F(t,e){Fo[t]=e}function B(t){var e=[];for(var i in t)e.push({unit:i,priority:Fo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,e,i){var o=""+Math.abs(t),n=e-o.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function H(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Wo[t]=n),e&&(Wo[e[0]]=function(){return j(n.apply(this,arguments),e[1],e[2])}),i&&(Wo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Y(t){var e,i,o=t.match(Bo);for(e=0,i=o.length;e=0&&jo.test(t);)t=t.replace(jo,i),jo.lastIndex=0,o-=1;return t}function U(t,e,i){an[t]=D(e)?e:function(t,o){return t&&i?i:e}}function q(t,e){return d(an,t)?an[t](e._strict,e._locale):new RegExp(X(t))}function X(t){return Z(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function Z(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),r(e)&&(o=function(t,i){i[e]=_(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i;return-(7+_t(t,0,o).getUTCDay()-e)%7+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=Q(s)+d):d>Q(t)?(s=t+1,r=d-Q(t)):(s=t,r=d),{year:s,dayOfYear:r}}function kt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(Q(t)-o+n)/7}function Dt(t){return kt(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function Ct(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=kt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Tt(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function It(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Nt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=u([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=yn.call(this._weekdaysParse,r),-1!==n?n:null):"ddd"===e?(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null):(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"dddd"===e?-1!==(n=yn.call(this._weekdaysParse,r))?n:-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):"ddd"===e?-1!==(n=yn.call(this._shortWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._minWeekdaysParse,r),-1!==n?n:null):-1!==(n=yn.call(this._minWeekdaysParse,r))?n:-1!==(n=yn.call(this._weekdaysParse,r))?n:(n=yn.call(this._shortWeekdaysParse,r),-1!==n?n:null)}function zt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return At.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=u([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Lt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Tt(t,this.localeData()),this.add(t-e,"d")):e}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=En),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Ht(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Tn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Wt(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Yt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pn),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Yt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=u([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=Z(a[e]),h[e]=Z(h[e]),d[e]=Z(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Gt(){return this.hours()%12||12}function Vt(){return this.hours()||24}function Ut(t,e){H(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,i,o,n,s=0;s0;){if(o=$t(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&w(n,i,!0)>=e-1)break;e--}s++}return null}function $t(e){var i=null;if(!zn[e]&&void 0!==t&&t&&t.exports)try{i=In._abbr;!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return zn[e]}function Qt(t,e){var i;return t&&(i=s(e)?ie(t):te(t,e))&&(In=i),In._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=zn[t])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=zn[t]._config;else if(null!=e.parentLocale){if(null==zn[e.parentLocale])return Ln[e.parentLocale]||(Ln[e.parentLocale]=[]),Ln[e.parentLocale].push({name:t,config:e}),null;i=zn[e.parentLocale]._config}return zn[t]=new O(C(i,e)),Ln[t]&&Ln[t].forEach(function(t){te(t.name,t.config)}),Qt(t),zn[t]}return delete zn[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=zn[t]&&(o=zn[t]._config),e=C(o,e),i=new O(e),i.parentLocale=zn[t],zn[t]=i,Qt(t)}else null!=zn[t]&&(null!=zn[t].parentLocale?zn[t]=zn[t].parentLocale:null!=zn[t]&&delete zn[t]);return zn[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return In;if(!i(t)){if(e=$t(t))return e;t=[t]}return Jt(t)}function oe(){return Io(zn)}function ne(t){var e,i=t._a;return i&&-2===p(t).overflow&&(e=i[ln]<0||i[ln]>11?ln:i[un]<1||i[un]>ht(i[dn],i[ln])?un:i[cn]<0||i[cn]>24||24===i[cn]&&(0!==i[pn]||0!==i[fn]||0!==i[mn])?cn:i[pn]<0||i[pn]>59?pn:i[fn]<0||i[fn]>59?fn:i[mn]<0||i[mn]>999?mn:-1,p(t)._overflowDayOfYear&&(eun)&&(e=un),p(t)._overflowWeeks&&-1===e&&(e=vn),p(t)._overflowWeekday&&-1===e&&(e=gn),p(t).overflow=e),t}function se(t,e,i){return null!=t?t:null!=e?e:i}function re(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function ae(t){var e,i,o,n,s=[];if(!t._d){for(o=re(t),t._w&&null==t._a[un]&&null==t._a[ln]&&he(t),null!=t._dayOfYear&&(n=se(t._a[dn],o[dn]),(t._dayOfYear>Q(n)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[ln]=i.getUTCMonth(),t._a[un]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[cn]&&0===t._a[pn]&&0===t._a[fn]&&0===t._a[mn]&&(t._nextDay=!0,t._a[cn]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[cn]=24),t._w&&void 0!==t._w.d&&t._w.d!==t._d.getDay()&&(p(t).weekdayMismatch=!0)}}function he(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=se(e.GG,t._a[dn],kt(De(),1,4).year),o=se(e.W,1),((n=se(e.E,1))<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=kt(De(),s,r);i=se(e.gg,t._a[dn],d.year),o=se(e.w,d.week),null!=e.d?((n=e.d)<0||n>6)&&(h=!0):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[dn]=a.year,t._dayOfYear=a.dayOfYear)}function de(t){var e,i,o,n,s,r,a=t._i,h=Fn.exec(a)||Bn.exec(a);if(h){for(p(t).iso=!0,e=0,i=Hn.length;e0&&p(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Wo[s]?(o?p(t).empty=!1:p(t).unusedTokens.push(s),$(s,o,t)):t._strict&&!o&&p(t).unusedTokens.push(s);p(t).charsLeftOver=h-d,a.length>0&&p(t).unusedInput.push(a),t._a[cn]<=12&&!0===p(t).bigHour&&t._a[cn]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[cn]=ye(t._locale,t._a[cn],t._meridiem),ae(t),ne(t)}function ye(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function be(t){var e,i,o,n,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ue(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=xe(t),t._a){var e=t._isUTC?u(t._a):De(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function qe(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ze(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ke(t,e){var i,o,n,s=t,a=null;return Ne(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=Jn.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:_(a[un])*i,h:_(a[cn])*i,m:_(a[pn])*i,s:_(a[fn])*i,ms:_(Re(1e3*a[mn]))*i}):(a=$n.exec(t))?(i="-"===a[1]?-1:(a[1],1),s={y:Je(a[2],i),M:Je(a[3],i),w:Je(a[4],i),d:Je(a[5],i),h:Je(a[6],i),m:Je(a[7],i),s:Je(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Qe(De(s.from),De(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ie(s),Ne(t)&&d(t,"_locale")&&(o._locale=t._locale),o}function Je(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $e(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Qe(t,e){var i;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?i=$e(t,e):(i=$e(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function ti(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(S(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ke(i,o),ei(this,n,t),this}}function ei(t,i,o,n){var s=i._milliseconds,r=Re(i._days),a=Re(i._months);t.isValid()&&(n=null==n||n,a&&pt(t,ot(t,"Month")+a*o),r&&nt(t,"Date",ot(t,"Date")+r*o),s&&t._d.setTime(t._d.valueOf()+s*o),n&&e.updateOffset(t,r||a))}function ii(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function oi(t,i){var o=t||De(),n=Le(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(D(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,De(o)))}function ni(){return new g(this)}function si(t,e){var i=y(t)?t:De(t);return!(!this.isValid()||!i.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?G(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):D(Date.prototype.toISOString)?this.toDate().toISOString():G(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mi(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(i+o+"-MM-DD[T]HH:mm:ss.SSS"+n)}function vi(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=G(this,t);return this.localeData().postformat(i)}function gi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function yi(t){return this.from(De(),t)}function bi(t,e){return this.isValid()&&(y(t)&&t.isValid()||De(t).isValid())?Ke({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function _i(t){return this.to(De(),t)}function wi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function xi(){return this._locale}function ki(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function Si(t){return void 0===(t=z(t))||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function Di(){return this._d.valueOf()-6e4*(this._offset||0)}function Mi(){return Math.floor(this.valueOf()/1e3)}function Ci(){return new Date(this.valueOf())}function Oi(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Ei(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Ti(){return this.isValid()?this.toISOString():null}function Pi(){return f(this)}function Ii(){return l({},p(this))}function Ni(){return p(this).overflow}function Ri(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ai(t,e){H(0,[t,t.length],0,e)}function zi(t){return ji.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Li(t){return ji.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Fi(){return St(this.year(),1,4)}function Bi(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function ji(t,e,i,o,n){var s;return null==t?kt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Hi.call(this,t,e,i,o,n))}function Hi(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Wi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Yi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Gi(t,e){e[mn]=_(1e3*("0."+t))}function Vi(){return this._isUTC?"UTC":""}function Ui(){return this._isUTC?"Coordinated Universal Time":""}function qi(t){return De(1e3*t)}function Xi(){return De.apply(null,arguments).parseZone()}function Zi(t){return t}function Ki(t,e,i,o){var n=ie(),s=u().set(o,e);return n[i](s,t)}function Ji(t,e,i){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ki(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ki(t,o,i,"month");return n}function $i(t,e,i,o){"boolean"==typeof t?(r(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,r(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ki(e,(i+s)%7,o,"day");var a,h=[];for(a=0;a<7;a++)h[a]=Ki(e,(a+s)%7,o,"day");return h}function Qi(t,e){return Ji(t,e,"months")}function to(t,e){return Ji(t,e,"monthsShort")}function eo(t,e,i){return $i(t,e,i,"weekdays")}function io(t,e,i){return $i(t,e,i,"weekdaysShort")}function oo(t,e,i){return $i(t,e,i,"weekdaysMin")}function no(){var t=this._data;return this._milliseconds=ds(this._milliseconds),this._days=ds(this._days),this._months=ds(this._months),t.milliseconds=ds(t.milliseconds),t.seconds=ds(t.seconds),t.minutes=ds(t.minutes),t.hours=ds(t.hours),t.months=ds(t.months),t.years=ds(t.years),this}function so(t,e,i,o){var n=Ke(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ro(t,e){return so(this,t,e,1)}function ao(t,e){return so(this,t,e,-1)}function ho(t){return t<0?Math.floor(t):Math.ceil(t)}function lo(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*ho(co(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=b(s/1e3),h.seconds=t%60,e=b(t/60),h.minutes=e%60,i=b(e/60),h.hours=i%24,r+=b(i/24),n=b(uo(r)),a+=n, -r-=ho(co(n)),o=b(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function uo(t){return 4800*t/146097}function co(t){return 146097*t/4800}function po(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if("month"===(t=z(t))||"year"===t)return e=this._days+o/864e5,i=this._months+uo(e),"month"===t?i:i/12;switch(e=this._days+Math.round(co(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function fo(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12):NaN}function mo(t){return function(){return this.as(t)}}function vo(){return Ke(this)}function go(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function yo(t){return function(){return this.isValid()?this._data[t]:NaN}}function bo(){return b(this.days()/7)}function _o(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function wo(t,e,i){var o=Ke(t).abs(),n=Ds(o.as("s")),s=Ds(o.as("m")),r=Ds(o.as("h")),a=Ds(o.as("d")),h=Ds(o.as("M")),d=Ds(o.as("y")),l=n<=Ms.ss&&["s",n]||n0,l[4]=i,_o.apply(null,l)}function xo(t){return void 0===t?Ds:"function"==typeof t&&(Ds=t,!0)}function ko(t,e){return void 0!==Ms[t]&&(void 0===e?Ms[t]:(Ms[t]=e,"s"===t&&(Ms.ss=e-1),!0))}function So(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=wo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Do(t){return(t>0)-(t<0)||+t}function Mo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Cs(this._milliseconds)/1e3,n=Cs(this._days),s=Cs(this._months);t=b(o/60),e=b(t/60),o%=60,t%=60,i=b(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o?o.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var p=c<0?"-":"",f=Do(this._months)!==Do(c)?"-":"",m=Do(this._days)!==Do(c)?"-":"",v=Do(this._milliseconds)!==Do(c)?"-":"";return p+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(h?m+h+"D":"")+(d||l||u?"T":"")+(d?v+d+"H":"")+(l?v+l+"M":"")+(u?v+u+"S":"")}var Co,Oo;Oo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var yn,bn=it("FullYear",!0);yn=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:m()}),Xn=function(){return Date.now?Date.now():+new Date},Zn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ae("Z",":"),Ae("ZZ",""),U("Z",nn),U("ZZ",nn),K(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=ze(nn,t)});var Kn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Jn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,$n=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ke.fn=Ie.prototype,Ke.invalid=Pe;var Qn=ti(1,"add"),ts=ti(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var es=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ai("gggg","weekYear"),Ai("ggggg","weekYear"),Ai("GGGG","isoWeekYear"),Ai("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),U("G",en),U("g",en),U("GG",Xo,Go),U("gg",Xo,Go),U("GGGG",$o,Uo),U("gggg",$o,Uo),U("GGGGG",Qo,qo),U("ggggg",Qo,qo),J(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=_(t)}),J(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),H("Q",0,"Qo","quarter"),A("quarter","Q"),F("quarter",7),U("Q",Yo),K("Q",function(t,e){e[ln]=3*(_(t)-1)}),H("D",["DD",2],"Do","date"),A("date","D"),F("date",9),U("D",Xo),U("DD",Xo,Go),U("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],un),K("Do",function(t,e){e[un]=_(t.match(Xo)[0],10)});var is=it("Date",!0);H("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),F("dayOfYear",4),U("DDD",Jo),U("DDDD",Vo),K(["DDD","DDDD"],function(t,e,i){i._dayOfYear=_(t)}),H("m",["mm",2],0,"minute"),A("minute","m"),F("minute",14),U("m",Xo),U("mm",Xo,Go),K(["m","mm"],pn);var os=it("Minutes",!1);H("s",["ss",2],0,"second"),A("second","s"),F("second",15),U("s",Xo),U("ss",Xo,Go),K(["s","ss"],fn);var ns=it("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),A("millisecond","ms"),F("millisecond",16),U("S",Jo,Yo),U("SS",Jo,Go),U("SSS",Jo,Vo);var ss;for(ss="SSSS";ss.length<=9;ss+="S")U(ss,tn);for(ss="S";ss.length<=9;ss+="S")K(ss,Gi);var rs=it("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var as=g.prototype;as.add=Qn,as.calendar=oi,as.clone=ni,as.diff=ui,as.endOf=Si,as.format=vi,as.from=gi,as.fromNow=yi,as.to=bi,as.toNow=_i,as.get=st,as.invalidAt=Ni,as.isAfter=si,as.isBefore=ri,as.isBetween=ai,as.isSame=hi,as.isSameOrAfter=di,as.isSameOrBefore=li,as.isValid=Pi,as.lang=es,as.locale=wi,as.localeData=xi,as.max=qn,as.min=Un,as.parsingFlags=Ii,as.set=rt,as.startOf=ki,as.subtract=ts,as.toArray=Oi,as.toObject=Ei,as.toDate=Ci,as.toISOString=fi,as.inspect=mi,as.toJSON=Ti,as.toString=pi,as.unix=Mi,as.valueOf=Di,as.creationData=Ri,as.year=bn,as.isLeapYear=et,as.weekYear=zi,as.isoWeekYear=Li,as.quarter=as.quarters=Wi,as.month=ft,as.daysInMonth=mt,as.week=as.weeks=Ot,as.isoWeek=as.isoWeeks=Et,as.weeksInYear=Bi,as.isoWeeksInYear=Fi,as.date=is,as.day=as.days=Lt,as.weekday=Ft,as.isoWeekday=Bt,as.dayOfYear=Yi,as.hour=as.hours=Rn,as.minute=as.minutes=os,as.second=as.seconds=ns,as.millisecond=as.milliseconds=rs,as.utcOffset=Be,as.utc=He,as.local=We,as.parseZone=Ye,as.hasAlignedHourOffset=Ge,as.isDST=Ve,as.isLocal=qe,as.isUtcOffset=Xe,as.isUtc=Ze,as.isUTC=Ze,as.zoneAbbr=Vi,as.zoneName=Ui,as.dates=k("dates accessor is deprecated. Use date instead.",is),as.months=k("months accessor is deprecated. Use month instead",ft),as.years=k("years accessor is deprecated. Use year instead",bn),as.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",je),as.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ue);var hs=O.prototype;hs.calendar=E,hs.longDateFormat=T,hs.invalidDate=P,hs.ordinal=I,hs.preparse=Zi,hs.postformat=Zi,hs.relativeTime=N,hs.pastFuture=R,hs.set=M,hs.months=dt,hs.monthsShort=lt,hs.monthsParse=ct,hs.monthsRegex=gt,hs.monthsShortRegex=vt,hs.week=Dt,hs.firstDayOfYear=Ct,hs.firstDayOfWeek=Mt,hs.weekdays=It,hs.weekdaysMin=Rt,hs.weekdaysShort=Nt,hs.weekdaysParse=zt,hs.weekdaysRegex=jt,hs.weekdaysShortRegex=Ht,hs.weekdaysMinRegex=Wt,hs.isPM=Xt,hs.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===_(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ie);var ds=Math.abs,ls=mo("ms"),us=mo("s"),cs=mo("m"),ps=mo("h"),fs=mo("d"),ms=mo("w"),vs=mo("M"),gs=mo("y"),ys=yo("milliseconds"),bs=yo("seconds"),_s=yo("minutes"),ws=yo("hours"),xs=yo("days"),ks=yo("months"),Ss=yo("years"),Ds=Math.round,Ms={ss:44,s:45,m:45,h:22,d:26,M:11},Cs=Math.abs,Os=Ie.prototype;return Os.isValid=Te,Os.abs=no,Os.add=ro,Os.subtract=ao,Os.as=po,Os.asMilliseconds=ls,Os.asSeconds=us,Os.asMinutes=cs,Os.asHours=ps,Os.asDays=fs,Os.asWeeks=ms,Os.asMonths=vs,Os.asYears=gs,Os.valueOf=fo,Os._bubble=lo,Os.clone=vo,Os.get=go,Os.milliseconds=ys,Os.seconds=bs,Os.minutes=_s,Os.hours=ws,Os.days=xs,Os.weeks=bo,Os.months=ks,Os.years=Ss,Os.humanize=So,Os.toISOString=Mo,Os.toString=Mo,Os.toJSON=Mo,Os.locale=wi,Os.localeData=xi,Os.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Mo),Os.lang=es,H("X",0,0,"unix"),H("x",0,0,"valueOf"),U("x",en),U("X",sn),K("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,i){i._d=new Date(_(t))}),e.version="2.19.1",function(t){Co=t}(De),e.fn=as,e.min=Ce,e.max=Oe,e.now=Xn,e.utc=u,e.unix=qi,e.months=Qi,e.isDate=a,e.locale=Qt,e.invalid=m,e.duration=Ke,e.isMoment=y,e.weekdays=eo,e.parseZone=Xi,e.localeData=ie,e.isDuration=Ne,e.monthsShort=to,e.weekdaysMin=oo,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=io,e.normalizeUnits=z,e.relativeTimeRounding=xo,e.relativeTimeThreshold=ko,e.calendarFormat=ii,e.prototype=as,e})}).call(e,i(155)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=156},function(t,e,i){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;p<6;p++)s[n+p]=c[p];return e||o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:void 0!==e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0==(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,i(158))},function(t,e){var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Graph3d=i(161),e.graph3d={Camera:i(95),Filter:i(96),Point2d:i(91),Point3d:i(34),Slider:i(92),StepNumber:i(93)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){var o=i(7),n=o.JSON||(o.JSON={stringify:JSON.stringify});t.exports=function(t){return n.stringify.apply(n,arguments)}},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.dataGroup=new _,this.dataPoints=null,this.create(),f.setDefaults(o.DEFAULTS,this),this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.setOptions(i),this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(90),a=function(t){return t&&t.__esModule?t:{default:t}}(r),h=i(44),d=i(2),l=i(34),u=i(91),c=i(92),p=i(93),f=i(94),m=i(15).default,v=i(15),g=v.printStyle,y=i(172),b=y.allOptions,_=i(173);o.STYLE=f.STYLE;o.DEFAULTS={width:"400px",height:"400px",filterLabel:"time",legendLabel:"value",xLabel:"x",yLabel:"y",zLabel:"z",xValueLabel:function(t){return t},yValueLabel:function(t){return t},zValueLabel:function(t){return t},showXAxis:!0,showYAxis:!0,showZAxis:!0,showGrid:!0,showPerspective:!0,showShadow:!1,keepAspectRatio:!0,verticalRatio:.5,dotSizeRatio:.02,dotSizeMinFraction:.5,dotSizeMaxFraction:2.5,showAnimationControls:void 0,animationInterval:1e3,animationPreload:!1,animationAutoStart:void 0,axisColor:"#4D4D4D",gridColor:"#D3D3D3",xCenter:"55%",yCenter:"50%",style:o.STYLE.DOT,tooltip:!1,tooltipStyle:{content:{padding:"10px",border:"1px solid #4d4d4d",color:"#1a1a1a",background:"rgba(255,255,255,0.7)",borderRadius:"2px",boxShadow:"5px 5px 10px rgba(128,128,128,0.5)"},line:{height:"40px",width:"0",borderLeft:"1px solid #4d4d4d"},dot:{height:"0",width:"0",border:"5px solid #4d4d4d",borderRadius:"5px"}},dataColor:{fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},cameraPosition:{horizontal:1,vertical:.5,distance:1.7},showLegend:void 0,backgroundColor:void 0,xBarWidth:void 0,yBarWidth:void 0,valueMin:void 0,valueMax:void 0,xMin:void 0,xMax:void 0,xStep:void 0,yMin:void 0,yMax:void 0,yStep:void 0,zMin:void 0,zMax:void 0,zStep:void 0},h(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/this.xRange.range(),1/this.yRange.range(),1/this.zRange.range()),this.keepAspectRatio&&(this.scale.x0&&(r[n-1].pointNext=r[n]);return r},o.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,i=function(t){e._onMouseDown(t)},o=function(t){e._onTouchStart(t)},n=function(t){e._onWheel(t)},s=function(t){e._onTooltip(t)},r=function(t){e._onClick(t)};d.addEventListener(this.frame.canvas,"mousedown",i),d.addEventListener(this.frame.canvas,"touchstart",o),d.addEventListener(this.frame.canvas,"mousewheel",n),d.addEventListener(this.frame.canvas,"mousemove",s),d.addEventListener(this.frame.canvas,"click",r),this.containerElement.appendChild(this.frame)},o.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},o.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},o.prototype.animationStart=function(){if(this.animationAutoStart&&this.dataGroup.dataFilter){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()}},o.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},o.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},o.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},o.prototype._readData=function(t){this.dataPoints=this.dataGroup.initializeData(this,t,this.style),this._initializeRanges(),this._redrawFilter()},o.prototype.setData=function(t){void 0!==t&&null!==t&&(this._readData(t),this.redraw(),this.animationStart())},o.prototype.setOptions=function(t){if(void 0!==t){!0===m.validate(t,b)&&console.log("%cErrors have been found in the supplied options object.",g),this.animationStop(),f.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.setData(this.dataGroup.getDataTable()),this.animationStart()}},o.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case o.STYLE.BAR:t=o.prototype._redrawBarGraphPoint;break;case o.STYLE.BARCOLOR:t=o.prototype._redrawBarColorGraphPoint;break;case o.STYLE.BARSIZE:t=o.prototype._redrawBarSizeGraphPoint;break;case o.STYLE.DOT:t=o.prototype._redrawDotGraphPoint;break;case o.STYLE.DOTLINE:t=o.prototype._redrawDotLineGraphPoint;break;case o.STYLE.DOTCOLOR:t=o.prototype._redrawDotColorGraphPoint;break;case o.STYLE.DOTSIZE:t=o.prototype._redrawDotSizeGraphPoint;break;case o.STYLE.SURFACE:t=o.prototype._redrawSurfaceGraphPoint;break;case o.STYLE.GRID:t=o.prototype._redrawGridGraphPoint;break;case o.STYLE.LINE:t=o.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},o.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},o.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},o.prototype._redrawClear=function(){var t=this.frame.canvas;t.getContext("2d").clearRect(0,0,t.width,t.height)},o.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},o.prototype._getLegendWidth=function(){var t;if(this.style===o.STYLE.DOTSIZE){t=this._dotSize()*this.dotSizeMaxFraction}else t=this.style===o.STYLE.BARSIZE?this.xBarWidth:20;return t},o.prototype._redrawLegend=function(){if(!0===this.showLegend&&this.style!==o.STYLE.LINE&&this.style!==o.STYLE.BARSIZE){var t=this.style===o.STYLE.BARSIZE||this.style===o.STYLE.DOTSIZE,e=this.style===o.STYLE.DOTSIZE||this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.BARCOLOR,i=Math.max(.25*this.frame.clientHeight,100),n=this.margin,s=this._getLegendWidth(),r=this.frame.clientWidth-this.margin,a=r-s,h=n+i,d=this._getContext();if(d.lineWidth=1,d.font="14px arial",!1===t){var l,c=i;for(l=0;l0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelY=function(t,e,i,o,n){void 0===n&&(n=0);var s=this._convert3Dto2D(e);Math.cos(2*o)<0?(t.textAlign="center",t.textBaseline="top",s.y+=n):Math.sin(2*o)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(i,s.x,s.y)},o.prototype.drawAxisLabelZ=function(t,e,i,o){void 0===o&&(o=0);var n=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(i,n.x-o,n.y)},o.prototype._line3d=function(t,e,i,o){var n=this._convert3Dto2D(e),s=this._convert3Dto2D(i);this._line(t,n,s,o)},o.prototype._redrawAxis=function(){var t,e,i,o,n,s,r,a,h,d,c,f=this._getContext();f.font=24/this.camera.getArmLength()+"px arial";var m,v=.025/this.scale.x,g=.025/this.scale.y,y=5/this.camera.getArmLength(),b=this.camera.getArmRotation().horizontal,_=new u(Math.cos(b),Math.sin(b)),w=this.xRange,x=this.yRange,k=this.zRange;for(f.lineWidth=1,o=void 0===this.defaultXStep,i=new p(w.min,w.max,this.xStep,o),i.start(!0);!i.end();){var S=i.getCurrent();if(this.showGrid?(t=new l(S,x.min,k.min),e=new l(S,x.max,k.min),this._line3d(f,t,e,this.gridColor)):this.showXAxis&&(t=new l(S,x.min,k.min),e=new l(S,x.min+v,k.min),this._line3d(f,t,e,this.axisColor),t=new l(S,x.max,k.min),e=new l(S,x.max-v,k.min),this._line3d(f,t,e,this.axisColor)),this.showXAxis){r=_.x>0?x.min:x.max,m=new l(S,r,k.min);var D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(f,m,D,b,y)}i.next()}for(f.lineWidth=1,o=void 0===this.defaultYStep,i=new p(x.min,x.max,this.yStep,o),i.start(!0);!i.end();){var M=i.getCurrent();if(this.showGrid?(t=new l(w.min,M,k.min),e=new l(w.max,M,k.min),this._line3d(f,t,e,this.gridColor)):this.showYAxis&&(t=new l(w.min,M,k.min),e=new l(w.min+g,M,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,M,k.min),e=new l(w.max-g,M,k.min),this._line3d(f,t,e,this.axisColor)),this.showYAxis){s=_.y>0?w.min:w.max,m=new l(s,M,k.min);var C=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(f,m,C,b,y)}i.next()}if(this.showZAxis){for(f.lineWidth=1,o=void 0===this.defaultZStep,i=new p(k.min,k.max,this.zStep,o),i.start(!0),s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max;!i.end();){var O=i.getCurrent(),E=new l(s,r,O),T=this._convert3Dto2D(E);e=new u(T.x-y,T.y),this._line(f,T,e,this.axisColor);var P=this.zValueLabel(O)+" ";this.drawAxisLabelZ(f,E,P,5),i.next()}f.lineWidth=1,t=new l(s,r,k.min),e=new l(s,r,k.max),this._line3d(f,t,e,this.axisColor)}if(this.showXAxis){var I,N;f.lineWidth=1,I=new l(w.min,x.min,k.min),N=new l(w.max,x.min,k.min),this._line3d(f,I,N,this.axisColor),I=new l(w.min,x.max,k.min),N=new l(w.max,x.max,k.min),this._line3d(f,I,N,this.axisColor)}this.showYAxis&&(f.lineWidth=1,t=new l(w.min,x.min,k.min),e=new l(w.min,x.max,k.min),this._line3d(f,t,e,this.axisColor),t=new l(w.max,x.min,k.min),e=new l(w.max,x.max,k.min),this._line3d(f,t,e,this.axisColor));var R=this.xLabel;R.length>0&&this.showXAxis&&(c=.1/this.scale.y,s=(w.max+3*w.min)/4,r=_.x>0?x.min-c:x.max+c,n=new l(s,r,k.min),this.drawAxisLabelX(f,n,R,b));var A=this.yLabel;A.length>0&&this.showYAxis&&(d=.1/this.scale.x,s=_.y>0?w.min-d:w.max+d,r=(x.max+3*x.min)/4,n=new l(s,r,k.min),this.drawAxisLabelY(f,n,A,b));var z=this.zLabel;z.length>0&&this.showZAxis&&(h=30,s=_.x>0?w.min:w.max,r=_.y<0?x.min:x.max,a=(k.max+3*k.min)/4,n=new l(s,r,a),this.drawAxisLabelZ(f,n,z,h))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-this.eye.z/this.camera.getArmLength()*this.dataColor.strokeWidth:this.dataColor.strokeWidth},o.prototype._redrawBar=function(t,e,i,o,n,s){var r,a=this,h=e.point,d=this.zRange.min,u=[{point:new l(h.x-i,h.y-o,h.z)},{point:new l(h.x+i,h.y-o,h.z)},{point:new l(h.x+i,h.y+o,h.z)},{point:new l(h.x-i,h.y+o,h.z)}],c=[{point:new l(h.x-i,h.y-o,d)},{point:new l(h.x+i,h.y-o,d)},{point:new l(h.x+i,h.y+o,d)},{point:new l(h.x-i,h.y+o,d)}];u.forEach(function(t){t.screen=a._convert3Dto2D(t.point)}),c.forEach(function(t){t.screen=a._convert3Dto2D(t.point)});var p=[{corners:u,center:l.avg(c[0].point,c[2].point)},{corners:[u[0],u[1],c[1],c[0]],center:l.avg(c[1].point,c[0].point)},{corners:[u[1],u[2],c[2],c[1]],center:l.avg(c[2].point,c[1].point)},{corners:[u[2],u[3],c[3],c[2]],center:l.avg(c[3].point,c[2].point)},{corners:[u[3],u[0],c[0],c[3]],center:l.avg(c[0].point,c[3].point)}];e.surfaces=p;for(var f=0;f0}if(a){var p,f=(e.point.z+i.point.z+o.point.z+n.point.z)/4,m=240*(1-(f-this.zRange.min)*this.scale.z/this.verticalRatio);this.showShadow?(p=Math.min(1+u.x/c/2,1),s=this._hsv2rgb(m,1,p),r=s):(p=1,s=this._hsv2rgb(m,1,p),r=this.axisColor)}else s="gray",r=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var v=[e,i,n,o];this._polygon(t,v,s,r)}},o.prototype._drawGridLine=function(t,e,i){if(void 0!==e&&void 0!==i){var o=(e.point.z+i.point.z)/2,n=240*(1-(o-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(n,1,1),this._line(t,e.screen,i.screen)}},o.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},o.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},o.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=null,s=null,r=null,a=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var h=n.surfaces;if(h)for(var d=h.length-1;d>=0;d--){var l=h[d],c=l.corners,p=[c[0].screen,c[1].screen,c[2].screen],f=[c[2].screen,c[3].screen,c[0].screen];if(this._insideTriangle(a,p)||this._insideTriangle(a,f))return n}}else for(i=0;i"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,h=o.offsetWidth,d=o.offsetHeight,l=t.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=l+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-h/2+"px",o.style.top=t.screen.y-d/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},o.prototype.setCameraPosition=function(t){f.setCameraPosition(t,this),this.redraw()},o.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=o},function(t,e,i){i(163),t.exports=i(7).Object.assign},function(t,e,i){var o=i(17);o(o.S+o.F,"Object",{assign:i(164)})},function(t,e,i){var o=i(33),n=i(63),s=i(42),r=i(41),a=i(78),h=Object.assign;t.exports=!h||i(28)(function(){var t={},e={},i=Symbol(),o="abcdefghijklmnopqrst";return t[i]=7,o.split("").forEach(function(t){e[t]=t}),7!=h({},t)[i]||Object.keys(h({},e)).join("")!=o})?function(t,e){for(var i=r(t),h=arguments.length,d=1,l=n.f,u=s.f;h>d;)for(var c,p=a(arguments[d++]),f=l?o(p).concat(l(p)):o(p),m=f.length,v=0;m>v;)u.call(p,c=f[v++])&&(i[c]=p[c]);return i}:h},function(t,e,i){t.exports={default:i(166),__esModule:!0}},function(t,e,i){i(167),t.exports=i(7).Math.sign},function(t,e,i){var o=i(17);o(o.S,"Math",{sign:i(168)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,i){t.exports={default:i(170),__esModule:!0}},function(t,e,i){i(171);var o=i(7).Object;t.exports=function(t,e,i){return o.defineProperty(t,e,i)}},function(t,e,i){var o=i(17);o(o.S+o.F*!i(21),"Object",{defineProperty:i(20).f})},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r={fill:{string:o},stroke:{string:o},strokeWidth:{number:s},__type__:{string:o,object:"object",undefined:"undefined"}},a={animationAutoStart:{boolean:n,undefined:"undefined"},animationInterval:{number:s},animationPreload:{boolean:n},axisColor:{string:o},backgroundColor:r,xBarWidth:{number:s,undefined:"undefined"},yBarWidth:{number:s,undefined:"undefined"},cameraPosition:{distance:{number:s},horizontal:{number:s},vertical:{number:s},__type__:{object:"object"}},xCenter:{string:o},yCenter:{string:o},dataColor:r,dotSizeMinFraction:{number:s},dotSizeMaxFraction:{number:s},dotSizeRatio:{number:s},filterLabel:{string:o},gridColor:{string:o},onclick:{function:"function"},keepAspectRatio:{boolean:n},xLabel:{string:o},yLabel:{string:o},zLabel:{string:o},legendLabel:{string:o},xMin:{number:s,undefined:"undefined"},yMin:{number:s,undefined:"undefined"},zMin:{number:s,undefined:"undefined"},xMax:{number:s,undefined:"undefined"},yMax:{number:s,undefined:"undefined"},zMax:{number:s,undefined:"undefined"},showAnimationControls:{boolean:n,undefined:"undefined"},showGrid:{boolean:n},showLegend:{boolean:n,undefined:"undefined"},showPerspective:{boolean:n},showShadow:{boolean:n},showXAxis:{boolean:n},showYAxis:{boolean:n},showZAxis:{boolean:n},xStep:{number:s,undefined:"undefined"},yStep:{number:s,undefined:"undefined"},zStep:{number:s,undefined:"undefined"},style:{number:s,string:["bar","bar-color","bar-size","dot","dot-line","dot-color","dot-size","line","grid","surface"]},tooltip:{boolean:n,function:"function"},tooltipStyle:{content:{color:{string:o},background:{string:o},border:{string:o},borderRadius:{string:o},boxShadow:{string:o},padding:{string:o},__type__:{object:"object"}},line:{borderLeft:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},dot:{border:{string:o},borderRadius:{string:o},height:{string:o},width:{string:o},__type__:{object:"object"}},__type__:{object:"object"}},xValueLabel:{function:"function"},yValueLabel:{function:"function"},zValueLabel:{function:"function"},valueMax:{number:s,undefined:"undefined"},valueMin:{number:s,undefined:"undefined"},verticalRatio:{number:s},height:{string:o},width:{string:o},__type__:{object:"object"}};e.allOptions=a},function(t,e,i){function o(){this.dataTable=null}var n=i(11),s=i(12),r=i(174),a=i(96),h=i(94),d=i(34);o.prototype.initializeData=function(t,e,i){if(void 0!==e){Array.isArray(e)&&(e=new n(e));var o;if(!(e instanceof n||e instanceof s))throw new Error("Array, DataSet, or DataView expected");if(o=e.get(),0!=o.length){this.style=i,this.dataSet&&this.dataSet.off("*",this._onChange),this.dataSet=e,this.dataTable=o;var r=this;this._onChange=function(){t.setData(r.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var h=t.hasBars(i);if(h&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(o,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(o,this.colY)||1),this._initializeRange(o,this.colX,t,h),this._initializeRange(o,this.colY,t,h),this._initializeRange(o,this.colZ,t,!1),o[0].hasOwnProperty("style")){this.colValue="style";var d=this.getColumnRange(o,this.colValue);this._setRangeDefaults(d,t.defaultValueMin,t.defaultValueMax),this.valueRange=d}this.getDataTable()[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new a(this,"filter",t),this.dataFilter.setOnLoadCallback(function(){t.redraw()}));return this.dataFilter?this.dataFilter._getDataPoints():this._getDataPoints(this.getDataTable())}}},o.prototype._collectRangeSettings=function(t,e){if(-1==["x","y","z"].indexOf(t))throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},o.prototype._initializeRange=function(t,e,i,o){var n=this._collectRangeSettings(e,i),s=this.getColumnRange(t,e);o&&"z"!=e&&s.expand(n.barWidth/2),this._setRangeDefaults(s,n.min,n.max),this[n.range_label]=s,this[n.step_label]=void 0!==n.step?n.step:s.range()/5},o.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var i=[],o=0;os)&&(o=s)}return o},o.prototype.getColumnRange=function(t,e){for(var i=new r,o=0;o0&&(e[i-1].pointNext=e[i]);return e},o.prototype._checkValueField=function(t){if(this.style===h.STYLE.BARCOLOR||this.style===h.STYLE.BARSIZE||this.style===h.STYLE.DOTCOLOR||this.style===h.STYLE.DOTSIZE){if(void 0===this.colValue)throw new Error("Expected data to have field 'style' for graph style '"+this.style+"'");if(void 0===t[0][this.colValue])throw new Error("Expected data to have field '"+this.colValue+"' for graph style '"+this.style+"'")}},t.exports=o},function(t,e,i){function o(){this.min=void 0,this.max=void 0}o.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxi)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=i}},o.prototype.range=function(){return this.max-this.min},o.prototype.center=function(){return(this.min+this.max)/2},t.exports=o},function(t,e,i){var o,n,s;!function(i){n=[],o=i,void 0!==(s="function"==typeof o?o.apply(e,n):o)&&(t.exports=s)}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0};var o=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof o&&(e.srcEvent.stopPropagation=function(){o(),e.stopPropagation()}),e.firstTarget=t;for(var n=t;n&&!i;){var s=n.hammer;if(s)for(var r,a=0;a0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);-1!==e&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(p(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function c(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&ft(o,i)}function p(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function g(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=R(o);e.timeStamp=_t(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=L(a,h),P(i,e),e.offsetDirection=z(e.deltaX,e.deltaY);var d=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=bt(d.x)>bt(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?B(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,I(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==Et&&s.eventType!==Pt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function I(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=It&&(h>Ot||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=bt(u.x)>bt(u.y)?u.x:u.y,s=z(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;i=bt(e)?t<0?Rt:At:e<0?zt:Lt}function L(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=Ht);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function B(t,e){return F(e[1],e[0],Wt)+F(t[1],t[0],Wt)}function j(t,e){return L(e[0],e[1],Wt)/L(t[0],t[1],Wt)}function H(){this.evEl=Gt,this.evWin=Vt,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=Xt,this.evWin=Zt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Y(){this.evTarget=Jt,this.evWin=$t,this.started=!1,C.apply(this,arguments)}function G(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Pt|It)&&(i=k(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=te,this.targetIds={},C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=this.targetIds;if(e&(Et|Tt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===Et)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,ee)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o=fe&&e(i.options.event+tt(o))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return ot.prototype.attrTest.call(this,t)&&(this.state&ce||!(this.state&ce)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=et(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),c(st,ot,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ce)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),c(rt,Q,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[se]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Pt|It)&&!n)this.reset();else if(t.eventType&Et)this.reset(),this._timer=h(function(){this.state=me,this.tryEmit()},e.time,this);else if(t.eventType&Pt)return me;return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===me&&(t&&t.eventType&Pt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=_t(),this.manager.emit(this.options.event,this._input)))}}),c(at,ot,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ae]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ce)}}),c(ht,ot,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Ft|Bt,pointers:1},getTouchAction:function(){return nt.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Ft|Bt)?e=t.overallVelocity:i&Ft?e=t.overallVelocityX:i&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&bt(e)>this.options.velocity&&t.eventType&Pt},emit:function(t){var e=et(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),c(dt,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[re]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanced+i?s+=h()+u-i+t.itemSet.options.margin.item.vertical:r=!1,s=Math.min(s,o-i),{shouldScroll:r,scrollOffset:s,itemTop:l}}var a=i(9),h=i(2),d=i(11),l=i(12),u=i(64),c=i(65),p=i(45),f=i(67),m=i(46),v=i(99),g=i(15).printStyle,y=i(105).allOptions,b=i(105).configureOptions,_=i(71).default,w=i(15).default;o.prototype=new c,o.prototype._createConfigurator=function(){return new _(this,this.dom.container,b)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){if(!0===w.validate(t,y)&&console.log("%cErrors have been found in the supplied options object.",g),c.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var e=this.itemsData;if(e){var i=this.getSelection();this.setItems(null),this.setItems(e),this.setSelection(i)}}},o.prototype.setItems=function(t){var e;e=t?t instanceof d||t instanceof l?t:new d(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e)},o.prototype.setGroups=function(t){var e;if(t){var i=function(t){return!1!==t.visible};e=t instanceof d||t instanceof l?new l(t,{filter:i}):new d(t.filter(i))}else e=null;this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||es)&&(s=i)}),null!==n&&null!==s){var a=this,h=this.itemSet.items[i[0]],d=-1*this._getScrollTop(),l=null,u=function(t,e,i){var o=r(a,h);if(l||(l=o),l.itemTop!=o.itemTop||l.shouldScroll){l.itemTop!=o.itemTop&&o.shouldScroll&&(l=o,d=-1*a._getScrollTop());var n=d,s=l.scrollOffset,u=i?s:n+(s-n)*t;a._setScrollTop(-u),e||a._redraw()}},c=function(){var t=r(a,h);t.shouldScroll&&t.itemTop!=l.itemTop&&(a._setScrollTop(-t.scrollOffset),a._redraw())},p=function(){c(),setTimeout(c,100)},f=(n+s)/2,m=Math.max(this.range.end-this.range.start,1.1*(s-n)),v=!e||void 0===e.animation||e.animation;v||(l={shouldScroll:!1,scrollOffset:-1,itemTop:-1}),this.range.setRange(f-m/2,f+m/2,{animation:v},p,u)}}},o.prototype.fit=function(t,e){var i,o=!t||void 0===t.animation||t.animation,n=this.itemsData&&this.itemsData.getDataSet();1===n.length&&void 0===n.get()[0].end?(i=this.getDataRange(),this.moveTo(i.min.valueOf(),{animation:o},e)):(i=this.getItemRange(),this.range.setRange(i.min,i.max,{animation:o},e))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,r=null;if(null!=e&&null!=i){var a=i-e;a<=0&&(a=10);var d=a/this.props.center.width,l={},u=0;h.forEach(this.itemSet.items,function(t,e){if(t.groupShowing){l[e]=t.redraw(!0),u=l[e].length}});if(u>0)for(var c=0;ci&&(i=h,r=t)}.bind(this)),o&&r){var p=o.getWidthLeft()+10,f=r.getWidthRight()+10,m=this.props.center.width-p-f;m>0&&(this.options.rtl?(e=n(o)-f*a/m,i=s(r)+p*a/m):(e=n(o)-p*a/m,i=s(r)+f*a/m))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=h.convert(i.start,"Date").valueOf(),n=h.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e,i=t.center?t.center.x:t.clientX,o=t.center?t.center.y:t.clientY;e=this.options.rtl?h.getAbsoluteRight(this.dom.centerContainer)-i:i-h.getAbsoluteLeft(this.dom.centerContainer);var n=o-h.getAbsoluteTop(this.dom.centerContainer),s=this.itemSet.itemFromTarget(t),r=this.itemSet.groupFromTarget(t),a=m.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(e),p=d?d(c,l,u):c,f=h.getTarget(t),v=null;return null!=s?v="item":null!=a?v="custom-time":h.hasParent(f,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&h.hasParent(f,this.timeAxis2.dom.foreground)?v="axis":h.hasParent(f,this.itemSet.dom.labelSet)?v="group-label":h.hasParent(f,this.currentTime.bar)?v="current-time":h.hasParent(f,this.dom.center)&&(v="background"),{event:t,item:s?s.id:null,group:r?r.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:e,y:n,time:c,snappedTime:p}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(19),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(10),u=i(37),c=i(2),p=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),!0===c.isString(t)){if(!0===c.isValidRGB(t)){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(!0===c.isValidRGBA(t)){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(!0===c.isValidHex(t)){var a=c.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this;!0===(!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&(this.previousColor=c.extend({},this.color)),!0===this.applied&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){!0===(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(this.initialColor=c.extend({},t)),this.color=t;var e=c.RGBToHSV(t.r,t.g,t.b),i=2*Math.PI,o=this.r*e.s,n=this.centerCoordinates.x+o*Math.sin(i*e.h),s=this.centerCoordinates.y+o*Math.cos(i*e.h);this.colorPickerSelector.style.left=n-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=s-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=c.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=c.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=c.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d") -;this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(!1===this.generated){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/this.r,d=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!p.hidden&&this.itemsData.length>0&&l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new g(this,this.dom.container,v)},t.exports=o},function(t,e,i){e.util=i(2),e.DOMutil=i(14),e.DataSet=i(11),e.DataView=i(12),e.Queue=i(43),e.Network=i(182),e.network={Images:i(116),dotparser:i(114),gephiParser:i(115),allOptions:i(122)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(9),e.Hammer=i(10),e.keycharm=i(35)},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:d,clickToUse:!1},s.extend(this.options,this.defaultOptions),this.body={container:t,nodes:{},nodeIndices:[],edges:{},edgeIndices:[],emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},modules:{},view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners(),this.images=new l(function(){return n.body.emitter.emit("_requestRedraw")}),this.groups=new u,this.canvas=new g(this.body),this.selectionHandler=new _(this.body,this.canvas),this.interactionHandler=new b(this.body,this.canvas,this.selectionHandler),this.view=new y(this.body,this.canvas),this.renderer=new v(this.body,this.canvas),this.physics=new f(this.body),this.layoutEngine=new w(this.body),this.clustering=new m(this.body),this.manipulation=new x(this.body,this.canvas,this.selectionHandler),this.nodesHandler=new c(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new p(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new T(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(i),this.setData(e)}i(183);var n=i(44),s=i(2),r=i(114),a=i(115),h=i(97),d=i(184),l=i(116).default,u=i(186).default,c=i(187).default,p=i(214).default,f=i(220).default,m=i(227).default,v=i(229).default,g=i(230).default,y=i(231).default,b=i(232).default,_=i(234).default,w=i(235).default,x=i(237).default,k=i(71).default,S=i(15).default,D=i(15),M=D.printStyle,C=i(122),O=C.allOptions,E=C.configureOptions,T=i(238).default;n(o.prototype),o.prototype.setOptions=function(t){var e=this;if(void 0!==t){!0===S.validate(t,O)&&console.log("%cErrors have been found in the supplied options object.",M);var i=["locale","locales","clickToUse"];if(s.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),"configure"in t&&(this.configurator||(this.configurator=new k(this,this.body.container,E,this.canvas.pixelRatio)),this.configurator.setOptions(t.configure)),this.configurator&&!0===this.configurator.options.enabled){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};s.deepExtend(o.nodes,this.nodesHandler.options),s.deepExtend(o.edges,this.edgesHandler.options),s.deepExtend(o.layout,this.layoutEngine.options),s.deepExtend(o.interaction,this.selectionHandler.options),s.deepExtend(o.interaction,this.renderer.options),s.deepExtend(o.interaction,this.interactionHandler.options),s.deepExtend(o.manipulation,this.manipulation.options),s.deepExtend(o.physics,this.physics.options),s.deepExtend(o.global,this.canvas.options),s.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}void 0!==t.clickToUse?!0===t.clickToUse?void 0===this.activator&&(this.activator=new h(this.canvas.frame),this.activator.on("change",function(){e.body.emitter.emit("activate")})):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&(this.clustering._isClusteredNode(i)||!1!==t[i].options.hidden||this.body.nodeIndices.push(t[i].id));for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],s=t[n.fromId],r=t[n.toId],a=void 0!==s&&void 0!==r,h=!this.clustering._isClusteredEdge(o)&&!1===n.options.hidden&&a&&!1===s.options.hidden&&!1===r.options.hidden;h&&this.body.edgeIndices.push(n.id)}},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t.edgesHandler._updateState(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t.clustering._updateState(),t._updateVisibleIndices(),t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation"),t.body.emitter.emit("_requestRedraw")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){console.log("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=r.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=a.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&delete this.body.nodes[t];for(var e in this.body.edges)this.body.edges.hasOwnProperty(e)&&delete this.body.edges[e];s.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},o.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},o.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)},o.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},o.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},o.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},o.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},o.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)},o.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},o.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},o.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},o.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},o.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},o.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},o.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},o.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.editNodeMode=function(){return console.log("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)},o.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},o.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},o.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},o.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},o.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},o.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)},o.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},o.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},o.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)},o.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},o.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},o.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},o.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},o.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)},o.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},o.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},o.prototype.getNodeAt=function(){var t=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.getEdgeAt=function(){var t=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return void 0!==t&&void 0!==t.id?t.id:t},o.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},o.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},o.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.redraw()},o.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},o.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},o.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},o.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},o.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},o.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},o.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},o.prototype.getOptionsFromConfigurator=function(){var t={};return this.configurator&&(t=this.configurator.getOptions.apply(this.configurator)),t},t.exports=o},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;o<10;o++){var n=o%2==0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;i-2*n<0&&(n=i/2),o-2*n<0&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse_vis=function(t,e,i,o){var n=i/2*.5522848,s=o/2*.5522848,r=t+i,a=e+o,h=t+i/2,d=e+o/2;this.beginPath(),this.moveTo(t,d),this.bezierCurveTo(t,d-s,h-n,e,h,e),this.bezierCurveTo(h+n,e,r,d-s,r,d),this.bezierCurveTo(r,d+s,h+n,a,h,a),this.bezierCurveTo(h-n,a,t,d+s,t,d),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=i,s=o*(1/3),r=n/2*.5522848,a=s/2*.5522848,h=t+n,d=e+s,l=t+n/2,u=e+s/2,c=e+(o-s/2),p=e+o;this.beginPath(),this.moveTo(h,u),this.bezierCurveTo(h,u+a,l+r,d,l,d),this.bezierCurveTo(l-r,d,t,u+a,t,u),this.bezierCurveTo(t,u-a,l-r,e,l,e),this.bezierCurveTo(l+r,e,h,u-a,h,u),this.lineTo(h,c),this.bezierCurveTo(h,c+a,l+r,p,l,p),this.bezierCurveTo(l-r,p,t,c+a,t,c),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=r<0?-c:c,t+=c,e+=h*c,!0===u?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u},CanvasRenderingContext2D.prototype.hexagon=function(t,e,i){this.beginPath();var o=2*Math.PI/6;this.moveTo(t+i,e);for(var n=1;n<6;n++)this.lineTo(t+i*Math.cos(o*n),e+i*Math.sin(o*n));this.closePath()})},function(t,e,i){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted.",editClusterError:"Clusters cannot be edited."},e.en_EN=e.en,e.en_US=e.en,e.de={edit:"Editieren",del:"Lösche Auswahl",back:"Zurück",addNode:"Knoten hinzufügen",addEdge:"Kante hinzufügen",editNode:"Knoten editieren",editEdge:"Kante editieren",addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",deleteClusterError:"Cluster können nicht gelöscht werden.",editClusterError:"Cluster können nicht editiert werden."},e.de_DE=e.de,e.es={edit:"Editar",del:"Eliminar selección",back:"Átras",addNode:"Añadir nodo",addEdge:"Añadir arista",editNode:"Editar nodo",editEdge:"Editar arista",addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",createEdgeError:"No se puede conectar una arista a un grupo.",deleteClusterError:"No es posible eliminar grupos.",editClusterError:"No es posible editar grupos."},e.es_ES=e.es,e.it={edit:"Modifica",del:"Cancella la selezione",back:"Indietro",addNode:"Aggiungi un nodo",addEdge:"Aggiungi un vertice",editNode:"Modifica il nodo",editEdge:"Modifica il vertice",addDescription:"Clicca per aggiungere un nuovo nodo",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",createEdgeError:"Non si possono collegare vertici ad un cluster",deleteClusterError:"I cluster non possono essere cancellati",editClusterError:"I clusters non possono essere modificati."},e.it_IT=e.it,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd.",editClusterError:"Clusters kunnen niet worden aangepast."},e.nl_NL=e.nl,e.nl_BE=e.nl,e["pt-br"]={edit:"Editar",del:"Remover selecionado",back:"Voltar",addNode:"Adicionar nó",addEdge:"Adicionar aresta",editNode:"Editar nó",editEdge:"Editar aresta",addDescription:"Clique em um espaço em branco para adicionar um novo nó",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",createEdgeError:"Não foi possível linkar arestas a um cluster.",deleteClusterError:"Clusters não puderam ser removidos.",editClusterError:"Clusters não puderam ser editados."},e["pt-BR"]=e["pt-br"],e.pt_BR=e["pt-br"],e.pt_br=e["pt-br"],e.ru={edit:"Редактировать",del:"Удалить выбранное",back:"Назад",addNode:"Добавить узел",addEdge:"Добавить ребро",editNode:"Редактировать узел",editEdge:"Редактировать ребро",addDescription:"Кликните в свободное место, чтобы добавить новый узел.",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",createEdgeError:"Невозможно соединить ребра в кластер.",deleteClusterError:"Кластеры не могут быть удалены",editClusterError:"Кластеры недоступны для редактирования."},e.ru_RU=e.ru,e.cn={edit:"编辑",del:"åˆ é™¤é€‰å®š",back:"返回",addNode:"æ·»åŠ èŠ‚ç‚¹",addEdge:"æ·»åŠ è¿žæŽ¥çº¿",editNode:"编辑节点",editEdge:"编辑连接线",addDescription:"单击空白处放置新节点。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",createEdgeError:"æ— æ³•å°†è¿žæŽ¥çº¿è¿žæŽ¥åˆ°ç¾¤é›†ã€‚",deleteClusterError:"æ— æ³•åˆ é™¤ç¾¤é›†ã€‚",editClusterError:"æ— æ³•ç¼–è¾‘ç¾¤é›†ã€‚"},e.zh_CN=e.cn},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=function(){function t(){(0,s.default)(this,t),this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}return(0,a.default)(t,[{key:"init",value:function(){if(!this.initialized()){this.src=this.image.src;var t=this.image.width,e=this.image.height;this.width=t,this.height=e;var i=Math.floor(e/2),o=Math.floor(e/4),n=Math.floor(e/8),s=Math.floor(e/16),r=Math.floor(t/2),a=Math.floor(t/4),h=Math.floor(t/8),d=Math.floor(t/16);this.canvas.width=3*a,this.canvas.height=i,this.coordinates=[[0,0,r,i],[r,0,a,o],[r,o,h,n],[5*h,o,d,s]],this._fillMipMap()}}},{key:"initialized",value:function(){return void 0!==this.coordinates}},{key:"_fillMipMap",value:function(){var t=this.canvas.getContext("2d"),e=this.coordinates[0];t.drawImage(this.image,e[0],e[1],e[2],e[3]);for(var i=1;i2){e*=.5;for(var r=0;e>2&&r=this.NUM_ITERATIONS&&(r=this.NUM_ITERATIONS-1);var a=this.coordinates[r];t.drawImage(this.canvas,a[0],a[1],a[2],a[3],i,o,n,s)}else t.drawImage(this.image,i,o,n,s)}}]),t}();e.default=h},function(t,e,i){ -function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=function(){function t(){(0,s.default)(this,t),this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},h.extend(this.options,this.defaultOptions)}return(0,a.default)(t,[{key:"setOptions",value:function(t){var e=["useDefaultGroups"];if(void 0!==t)for(var i in t)if(t.hasOwnProperty(i)&&-1===e.indexOf(i)){var o=t[i];this.add(i,o)}}},{key:"clear",value:function(){this.groups={},this.groupsArray=[]}},{key:"get",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this.groups[t];if(void 0===i&&e)if(!1===this.options.useDefaultGroups&&this.groupsArray.length>0){var o=this.groupIndex%this.groupsArray.length;this.groupIndex++,i={},i.color=this.groups[this.groupsArray[o]],this.groups[t]=i}else{var n=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,i={},i.color=this.defaultGroups[n],this.groups[t]=i}return i}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e.default=d},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(47).default,c=function(){function t(e,i,o,n){var r=this;if((0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.layoutEngine=n,this.body.functions.createNode=this.create.bind(this),this.nodesListeners={add:function(t,e){r.add(e.items)},update:function(t,e){r.update(e.items,e.data,e.oldData)},remove:function(t,e){r.remove(e.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:2,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=h.bridgeObject(this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("refreshNodes",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.nodesListeners,function(e,i){t.body.data.nodes&&t.body.data.nodes.off(i,e)}),delete t.body.functions.createNode,delete t.nodesListeners.add,delete t.nodesListeners.update,delete t.nodesListeners.remove,delete t.nodesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){if(u.parseOptions(this.options,t),void 0!==t.shape)for(var e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&this.body.nodes[e].updateShape();if(void 0!==t.font)for(var i in this.body.nodes)this.body.nodes.hasOwnProperty(i)&&(this.body.nodes[i].updateLabelModule(),this.body.nodes[i].needsRefresh());if(void 0!==t.size)for(var o in this.body.nodes)this.body.nodes.hasOwnProperty(o)&&this.body.nodes[o].needsRefresh();void 0===t.hidden&&void 0===t.physics||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.data.nodes;if(t instanceof d||t instanceof l)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new d,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new d}if(i&&h.forEach(this.nodesListeners,function(t,e){i.off(e,t)}),this.body.nodes={},this.body.data.nodes){var o=this;h.forEach(this.nodesListeners,function(t,e){o.body.data.nodes.on(e,t)});var n=this.body.data.nodes.getIds();this.add(n,!0)}!1===e&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:u)(t,this.body,this.images,this.groups,this.options,this.defaultOptions)}},{key:"refresh",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];h.forEach(this.body.nodes,function(i,o){var n=t.body.data.nodes.get(o);void 0!==n&&(!0===e&&i.setOptions({x:null,y:null}),i.setOptions({fixed:!1}),i.setOptions(n))})}},{key:"getPositions",value:function(t){var e={};if(void 0!==t){if(!0===Array.isArray(t)){for(var i=0;i0)for(var r=0;r0)for(var p=0;p0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.position/.test(t.substr(i.position,3))?i.mono||i.ital||!//.test(t.substr(i.position,3))?!i.mono&&//.test(t.substr(i.position,6))?(i.emitBlock(),i.mono=!0,i.modStack.unshift("mono"),i.position+=5):!i.mono&&"bold"===i.mod()&&/<\/b>/.test(t.substr(i.position,4))?(i.emitBlock(),i.bold=!1,i.modStack.shift(),i.position+=3):!i.mono&&"ital"===i.mod()&&/<\/i>/.test(t.substr(i.position,4))?(i.emitBlock(),i.ital=!1,i.modStack.shift(),i.position+=3):"mono"===i.mod()&&/<\/code>/.test(t.substr(i.position,7))?(i.emitBlock(),i.mono=!1,i.modStack.shift(),i.position+=6):i.add(o):(i.emitBlock(),i.ital=!0,i.modStack.unshift("ital"),i.position+=2):(i.emitBlock(),i.bold=!0,i.modStack.unshift("bold"),i.position+=2):/&/.test(o)?/</.test(t.substr(i.position,4))?(i.add("<"),i.position+=3):/&/.test(t.substr(i.position,5))?(i.add("&"),i.position+=4):i.add("&"):i.add(o),i.position++}return i.emitBlock(),e}},{key:"splitMarkdownBlocks",value:function(t){var e=[],i={bold:!1,ital:!1,mono:!1,beginable:!0,spacing:!1,position:0,buffer:"",modStack:[]};for(i.mod=function(){return 0===this.modStack.length?"normal":this.modStack[0]},i.modName=function(){return 0===this.modStack.length?"normal":"mono"===this.modStack[0]?"mono":i.bold&&i.ital?"boldital":i.bold?"bold":i.ital?"ital":void 0},i.emitBlock=function(){arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(e.push({text:this.buffer,mod:this.modName()}),this.buffer="")},i.add=function(t){" "===t&&(i.spacing=!0),i.spacing&&(this.buffer+=" ",this.spacing=!1)," "!=t&&(this.buffer+=t)};i.positionthis.parent.fontOptions.maxWdt}},{key:"getLongestFit",value:function(t){for(var e="",i=0;i1&&void 0!==arguments[1]?arguments[1]:"normal",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t.replace(/^( +)/g,"$1\r"),t=t.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");for(var o=t.split("\r");o.length>0;){var n=this.getLongestFit(o);if(0===n){var s=o[0],r=this.getLongestFitWord(s);this.lines.newLine(s.slice(0,r),e),o[0]=s.slice(r)}else{var a=n;" "===o[n-1]?n--:" "===o[a]&&a++;var h=o.slice(0,n).join("");n==o.length&&i?this.lines.append(h,e):this.lines.newLine(h,e),o=o.slice(a)}}}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(90),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=function(){function t(e){(0,a.default)(this,t),this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}return(0,d.default)(t,[{key:"_add",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"normal";void 0===this.lines[t]&&(this.lines[t]={width:0,height:0,blocks:[]});var o=e;void 0!==e&&""!==e||(o=" ");var n=this.measureText(o,i),r=(0,s.default)({},n.values);r.text=e,r.width=n.width,r.mod=i,void 0!==e&&""!==e||(r.width=0),this.lines[t].blocks.push(r),this.lines[t].width+=r.width}},{key:"curWidth",value:function(){var t=this.lines[this.current];return void 0===t?0:t.width}},{key:"append",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e)}},{key:"newLine",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";this._add(this.current,t,e),this.current++}},{key:"determineLineHeights",value:function(){for(var t=0;tt&&(t=o.width),e+=o.height}this.width=t,this.height=e}},{key:"removeEmptyBlocks",value:function(){for(var t=[],e=0;e1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.width=o.width+this.margin.right+this.margin.left,this.height=o.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.roundRect(this.left,this.top,this.width,this.height,s.borderRadius),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"updateBoundingBox",value:function(t,e,i,o,n){this._updateBoundingBox(t,e,i,o,n);var s=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(s)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i}}]),e}(m.default);e.default=v},function(t,e,i){i(195),t.exports=i(7).Object.getPrototypeOf},function(t,e,i){var o=i(41),n=i(85);i(87)("getPrototypeOf",function(){return function(t){return n(o(t))}})},function(t,e,i){t.exports={default:i(197),__esModule:!0}},function(t,e,i){i(198),t.exports=i(7).Object.setPrototypeOf},function(t,e,i){var o=i(17);o(o.S,"Object",{setPrototypeOf:i(199).set})},function(t,e,i){var o=i(32),n=i(27),s=function(t,e){if(n(t),!o(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,o){try{o=i(80)(Function.call,i(89).f(Object.prototype,"__proto__").set,2),o(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return s(t,i),e?t.__proto__=i:o(t,i),t}}({},!1):void 0),check:s}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=Math.max(o.width+this.margin.right+this.margin.left,o.height+this.margin.top+this.margin.bottom);this.options.size=n/2,this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),this.updateBoundingBox(e,i),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,i,o,n)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,this.height=o,void(this.radius=.5*this.width)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,this._drawRawCircle(t,e,i,s),t.save(),t.clip(),this._drawImageAtPosition(t,s),t.restore(),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.boundingBox.top=e-this.options.size,this.boundingBox.left=t-this.options.size,this.boundingBox.right=t+this.options.size,this.boundingBox.bottom=e+this.options.size,this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),.5*this.width}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i),n=o.width+this.margin.right+this.margin.left;this.width=n,this.height=n,this.radius=this.width/2}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.initContextForDraw(t,s),t.database(e-this.width/2,i-this.height/2,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"diamond",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"circle",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this.options.size}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(this.needsRefresh(e,i)){var o=this.getDimensionsFromLabel(t,e,i);this.height=2*o.height,this.width=o.width+o.height,this.radius=.5*this.width}}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-.5*this.width,this.top=i-.5*this.height,this.initContextForDraw(t,s),t.ellipse_vis(this.left,this.top,this.width,this.height),this.performFill(t,s),this.updateBoundingBox(e,i,t,o,n),this.labelModule.draw(t,e,i,o,n)}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=.5*this.width,o=.5*this.height,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){if(this.resize(t,o,n),this.options.icon.size=this.options.icon.size||50,this.left=e-this.width/2,this.top=i-this.height/2,this._icon(t,e,i,o,n,s),void 0!==this.options.label){this.labelModule.draw(t,this.left+this.iconSize.width/2+this.margin.left,i+this.height/2+5,o)}this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){if(this.boundingBox.top=e-.5*this.options.icon.size,this.boundingBox.left=t-.5*this.options.icon.size,this.boundingBox.right=t+.5*this.options.icon.size,this.boundingBox.bottom=e+.5*this.options.icon.size,void 0!==this.options.label&&this.labelModule.size.width>0){this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5)}}},{key:"_icon",value:function(t,e,i,o,n,s){var r=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+r+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t,s),t.fillText(this.options.icon.code,e,i),this.disableShadow(t,s)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(73),m=o(f),v=function(t){function e(t,i,o,n,r){(0,a.default)(this,e);var h=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return h.setImages(n,r),h}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.selected,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.hover;if(void 0===this.imageObj.src||void 0===this.imageObj.width||void 0===this.imageObj.height){var o=2*this.options.size;return this.width=o,void(this.height=o)}this.needsRefresh(e,i)&&this._resizeImage()}},{key:"draw",value:function(t,e,i,o,n,s){if(this.switchImages(o),this.resize(),this.left=e-this.width/2,this.top=i-this.height/2,!0===this.options.shapeProperties.useBorderWithImage){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;t.lineWidth=Math.min(this.width,h),t.beginPath(),t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.rect(this.left-.5*t.lineWidth,this.top-.5*t.lineWidth,this.width+t.lineWidth,this.height+t.lineWidth),t.fill(),this.performStroke(t,s),t.closePath()}this._drawImageAtPosition(t,s),this._drawImageLabel(t,e,i,o,n),this.updateBoundingBox(e,i)}},{key:"updateBoundingBox",value:function(t,e){this.resize(),this._updateBoundingBox(t,e),void 0!==this.options.label&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)} -}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"square",2,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"hexagon",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"star",4,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(23),m=o(f),v=function(t){function e(t,i,o){(0,a.default)(this,e);var n=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o));return n._setMargins(o),n}return(0,p.default)(e,t),(0,d.default)(e,[{key:"resize",value:function(t,e,i){this.needsRefresh(e,i)&&(this.textSize=this.labelModule.getTextSize(t,e,i),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}},{key:"draw",value:function(t,e,i,o,n,s){this.resize(t,o,n),this.left=e-this.width/2,this.top=i-this.height/2,this.enableShadow(t,s),this.labelModule.draw(t,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,o,n),this.disableShadow(t,s),this.updateBoundingBox(e,i,t,o,n)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangle",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(24),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"draw",value:function(t,e,i,o,n,s){this._drawShape(t,"triangleDown",3,e,i,o,n,s)}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(11),l=i(12),u=i(74).default,c=function(){function t(e,i,o){var n=this;(0,s.default)(this,t),this.body=e,this.images=i,this.groups=o,this.body.functions.createEdge=this.create.bind(this),this.edgesListeners={add:function(t,e){n.add(e.items)},update:function(t,e){n.update(e.items)},remove:function(t,e){n.remove(e.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(t,e,i,o){if(e===t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)}},selectionWidth:1.5,selfReferenceSize:20,shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},h.deepExtend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("_forceDisableDynamicCurves",function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];"dynamic"===e&&(e="continuous");var o=!1;for(var n in t.body.edges)if(t.body.edges.hasOwnProperty(n)){var s=t.body.edges[n],r=t.body.data.edges._data[n];if(void 0!==r){var a=r.smooth;void 0!==a&&!0===a.enabled&&"dynamic"===a.type&&(void 0===e?s.setOptions({smooth:!1}):s.setOptions({smooth:{type:e}}),o=!0)}}!0===i&&!0===o&&t.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",function(){t.reconnectEdges()}),this.body.emitter.on("refreshEdges",this.refresh.bind(this)),this.body.emitter.on("refresh",this.refresh.bind(this)),this.body.emitter.on("destroy",function(){h.forEach(t.edgesListeners,function(e,i){t.body.data.edges&&t.body.data.edges.off(i,e)}),delete t.body.functions.createEdge,delete t.edgesListeners.add,delete t.edgesListeners.update,delete t.edgesListeners.remove,delete t.edgesListeners})}},{key:"setOptions",value:function(t){if(void 0!==t){u.parseOptions(this.options,t,!0,this.defaultOptions,!0);var e=!1;if(void 0!==t.smooth)for(var i in this.body.edges)this.body.edges.hasOwnProperty(i)&&(e=this.body.edges[i].updateEdgeType()||e);if(void 0!==t.font)for(var o in this.body.edges)this.body.edges.hasOwnProperty(o)&&this.body.edges[o].updateLabelModule();void 0===t.hidden&&void 0===t.physics&&!0!==e||this.body.emitter.emit("_dataChanged")}}},{key:"setData",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=this.body.data.edges;if(t instanceof d||t instanceof l)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new d,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new d}if(o&&h.forEach(this.edgesListeners,function(t,e){o.off(e,t)}),this.body.edges={},this.body.data.edges){h.forEach(this.edgesListeners,function(t,i){e.body.data.edges.on(i,t)});var n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),!1===i&&this.body.emitter.emit("_dataChanged")}},{key:"add",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.edges,o=this.body.data.edges,n=0;n1&&void 0!==arguments[1])||arguments[1];if(0!==t.length){var i=this.body.edges;h.forEach(t,function(t){var e=i[t];void 0!==e&&e.remove()}),e&&this.body.emitter.emit("_dataChanged")}}},{key:"refresh",value:function(){var t=this;h.forEach(this.body.edges,function(e,i){var o=t.body.data.edges._data[i];void 0!==o&&e.setOptions(o)})}},{key:"create",value:function(t){return new u(t,this.body,this.options,this.defaultOptions)}},{key:"reconnectEdges",value:function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}}},{key:"getConnectedNodes",value:function(t){var e=[];if(void 0!==this.body.edges[t]){var i=this.body.edges[t];void 0!==i.fromId&&e.push(i.fromId),void 0!==i.toId&&e.push(i.toId)}return e}},{key:"_updateState",value:function(){this._addMissingEdges(),this._removeInvalidEdges()}},{key:"_removeInvalidEdges",value:function(){var t=this,e=[];h.forEach(this.body.edges,function(i,o){var n=t.body.nodes[i.toId],s=t.body.nodes[i.fromId];void 0!==n&&!0===n.isCluster||void 0!==s&&!0===s.isCluster||void 0!==n&&void 0!==s||e.push(o)}),this.remove(e,!1)}},{key:"_addMissingEdges",value:function(){var t=this.body.edges,e=this.body.data.edges,i=[];e.forEach(function(e,o){void 0===t[o]&&i.push(o)}),this.add(i,!0)}}]),t}();e.default=c},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(3),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(4),p=o(c),f=i(5),m=o(f),v=i(216),g=o(v),y=function(t){function e(t,i,o){return(0,d.default)(this,e),(0,p.default)(this,(e.__proto__||(0,a.default)(e)).call(this,t,i,o))}return(0,m.default)(e,t),(0,u.default)(e,[{key:"_line",value:function(t,e,i){var o=i[0],n=i[1];this._bezierCurve(t,e,o,n)}},{key:"_getViaCoordinates",value:function(){var t=this.from.x-this.to.x,e=this.from.y-this.to.y,i=void 0,o=void 0,n=void 0,s=void 0,r=this.options.smooth.roundness;return(Math.abs(t)>Math.abs(e)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,r){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates(),h=(0,s.default)(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,r,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=(0,s.default)(e,2),o=i[0],n=i[1],r=t,a=[];return a[0]=Math.pow(1-r,3),a[1]=3*r*Math.pow(1-r,2),a[2]=3*Math.pow(r,2)*(1-r),a[3]=Math.pow(r,3),{x:a[0]*this.fromPoint.x+a[1]*o.x+a[2]*n.x+a[3]*this.toPoint.x,y:a[0]*this.fromPoint.y+a[1]*o.y+a[2]*n.y+a[3]*this.toPoint.y}}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r,a){var h=1e9,d=void 0,l=void 0,u=void 0,c=void 0,p=void 0,f=t,m=e,v=[0,0,0,0];for(l=1;l<10;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=d1&&void 0!==arguments[1]?arguments[1]:this.via,i=t,o=void 0,n=void 0;if(this.from===this.to){var r=this._getCircleData(this.from),a=(0,s.default)(r,3),h=a[0],d=a[1],l=a[2],u=2*Math.PI*(1-i);o=h+l*Math.sin(u),n=d+l-l*(1-Math.cos(u))}else o=Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,n=Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y;return{x:o,y:n}}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e,this.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToBezierEdge(t,e,i,o,n,s,this.via)}}]),e}(g.default);e.default=y},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(75),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e,i){this._bezierCurve(t,e,i)}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_getViaCoordinates",value:function(){var t=void 0,e=void 0,i=this.options.smooth.roundness,o=this.options.smooth.type,n=Math.abs(this.from.x-this.to.x),s=Math.abs(this.from.y-this.to.y);if("discrete"===o||"diagonalCross"===o){var r=void 0,a=void 0;r=a=n<=s?i*s:i*n,this.from.x>this.to.x&&(r=-r),this.from.y>=this.to.y&&(a=-a),t=this.from.x+r,e=this.from.y+a,"discrete"===o&&(n<=s?t=nthis.to.x&&(_=-_),this.from.y>=this.to.y&&(w=-w),t=this.from.x+_,e=this.from.y+w,n<=s?t=this.from.x<=this.to.x?this.to.xt?this.to.x:t:e=this.from.y>=this.to.y?this.to.y>e?this.to.y:e:this.to.y2&&void 0!==arguments[2]?arguments[2]:{};return this._findBorderPositionBezier(t,e,i.via)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(t,e,i,o,n,s,r)}},{key:"getPoint",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._getViaCoordinates(),i=t;return{x:Math.pow(1-i,2)*this.fromPoint.x+2*i*(1-i)*e.x+Math.pow(i,2)*this.toPoint.x,y:Math.pow(1-i,2)*this.fromPoint.y+2*i*(1-i)*e.y+Math.pow(i,2)*this.toPoint.y}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(118),m=o(f),v=function(t){function e(t,i,o){return(0,a.default)(this,e),(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o))}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_line",value:function(t,e){t.beginPath(),t.moveTo(this.fromPoint.x,this.fromPoint.y),t.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(t,e),t.stroke(),this.disableShadow(t,e)}},{key:"getViaNode",value:function(){}},{key:"getPoint",value:function(t){return{x:(1-t)*this.fromPoint.x+t*this.toPoint.x,y:(1-t)*this.fromPoint.y+t*this.toPoint.y}}},{key:"_findBorderPosition",value:function(t,e){var i=this.to,o=this.from;t.id===this.from.id&&(i=this.from,o=this.to);var n=Math.atan2(i.y-o.y,i.x-o.x),s=i.x-o.x,r=i.y-o.y,a=Math.sqrt(s*s+r*r),h=t.distanceToBorder(e,n),d=(a-h)/a,l={};return l.x=(1-d)*o.x+d*i.x,l.y=(1-d)*o.y+d*i.y,l}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){return this._getDistanceToLine(t,e,i,o,n,s)}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(120).default,u=i(221).default,c=i(222).default,p=i(223).default,f=i(224).default,m=i(121).default,v=i(225).default,g=i(226).default,y=i(2),b=i(119).default,_=function(){function t(e){(0,a.default)(this,t),this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0},y.extend(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}return(0,d.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("initPhysics",function(){t.initPhysics()}),this.body.emitter.on("_layoutFailed",function(){t.layoutFailed=!0}),this.body.emitter.on("resetPhysics",function(){t.stopSimulation(),t.ready=!1}),this.body.emitter.on("disablePhysics",function(){t.physicsEnabled=!1,t.stopSimulation()}),this.body.emitter.on("restorePhysics",function(){t.setOptions(t.options),!0===t.ready&&t.startSimulation()}),this.body.emitter.on("startSimulation",function(){!0===t.ready&&t.startSimulation()}),this.body.emitter.on("stopSimulation",function(){t.stopSimulation()}),this.body.emitter.on("destroy",function(){t.stopSimulation(!1),t.body.emitter.off()}),this.body.emitter.on("_dataChanged",function(){t.updatePhysicsData()})}},{key:"setOptions",value:function(t){void 0!==t&&(!1===t?(this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation()):!0===t?(this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation()):(this.physicsEnabled=!0,y.selectiveNotDeepExtend(["stabilization"],this.options,t),y.mergeOptions(this.options,t,"stabilization"),void 0===t.enabled&&(this.options.enabled=!0),!1===this.options.enabled&&(this.physicsEnabled=!1,this.stopSimulation()),this.timestep=this.options.timestep)),this.init()}},{key:"init",value:function(){var t;"forceAtlas2Based"===this.options.solver?(t=this.options.forceAtlas2Based,this.nodesSolver=new v(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new g(this.body,this.physicsBody,t)):"repulsion"===this.options.solver?(t=this.options.repulsion,this.nodesSolver=new u(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):"hierarchicalRepulsion"===this.options.solver?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new c(this.body,this.physicsBody,t),this.edgesSolver=new f(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new l(this.body,this.physicsBody,t),this.edgesSolver=new p(this.body,this.physicsBody,t),this.gravitySolver=new m(this.body,this.physicsBody,t)),this.modelOptions=t}},{key:"initPhysics",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?!0===this.options.stabilization.enabled?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}},{key:"startSimulation",value:function(){!0===this.physicsEnabled&&!0===this.options.enabled?(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))):this.body.emitter.emit("_redraw")}},{key:"stopSimulation",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.stabilized=!0,!0===t&&this._emitStabilized(),void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,!0===t&&this.body.emitter.emit("_stopRendering"))}},{key:"simulationStep",value:function(){var t=Date.now();this.physicsTick(),(Date.now()-t<.4*this.simulationInterval||!0===this.runDoubleSpeed)&&!1===this.stabilized&&(this.physicsTick(),this.runDoubleSpeed=!0),!0===this.stabilized&&this.stopSimulation()}},{key:"_emitStabilized",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||!0===this.startedStabilization)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsStep",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}},{key:"adjustTimeStep",value:function(){!0===this._evaluateStepQuality()?this.timestep=1.2*this.timestep:this.timestep/1.2.3))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=0,i=0,o=0;oo&&(t=t>0?o:-o),t}},{key:"_performStep",value:function(t){var e=this.body.nodes[t],i=this.physicsBody.forces[t],o=this.physicsBody.velocities[t];return this.previousStates[t]={x:e.x,y:e.y,vx:o.x,vy:o.y},!1===e.options.fixed.x?(o.x=this.calculateComponentVelocity(o.x,i.x,e.options.mass),e.x+=o.x*this.timestep):(i.x=0,o.x=0),!1===e.options.fixed.y?(o.y=this.calculateComponentVelocity(o.y,i.y,e.options.mass),e.y+=o.y*this.timestep):(i.y=0,o.y=0),Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)if(t.hasOwnProperty(e)&&t[e].x&&t[e].y){var i=t[e].options.fixed;this.freezeCache[e]={x:i.x,y:i.y},i.x=!0,i.y=!0}}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.stabilization.iterations;if("number"!=typeof e&&(e=this.options.stabilization.iterations,console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),0===this.physicsBody.physicsNodeIndices.length)return void(this.ready=!0);this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,!0===this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return t._stabilizationBatch()},0)}},{key:"_startStabilizing",value:function(){return!0!==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}},{key:"_stabilizationBatch",value:function(){var t=this,e=function(){return!1===t.stabilized&&t.stabilizationIterations0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(m.default);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(6),a=o(r),h=i(0),d=o(h),l=i(1),u=o(l),c=i(2),p=i(76).default,f=i(228).default,m=i(74).default,v=i(47).default,g=function(){function t(e){var i=this;(0,d.default)(this,t),this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},c.extend(this.options,this.defaultOptions),this.body.emitter.on("_resetData",function(){i.clusteredNodes={},i.clusteredEdges={}})}return(0,u.default)(t,[{key:"clusterByHubsize",value:function(t,e){void 0===t?t=this._getHubSize():"object"===(void 0===t?"undefined":(0,a.default)(t))&&(e=this._checkOptions(t),t=this._getHubSize());for(var i=[],o=0;o=t&&i.push(n.id)}for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e.joinCondition)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);var o={},n={};c.forEach(this.body.nodes,function(i,s){var r=p.cloneOptions(i);!0===e.joinCondition(r)&&(o[s]=i,c.forEach(i.edges,function(e){void 0===t.clusteredEdges[e.id]&&(n[e.id]=e)}))}),this._cluster(o,n,e,i)}},{key:"clusterByEdgeCount",value:function(t,e){var i=this,o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=this._checkOptions(e);for(var n=[],r={},a=void 0,h=void 0,d=void 0,l=0;l0&&(0,s.default)(m).length>0&&!0===b)if(c=function(){for(var t=0;t1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(1,t,e)}},{key:"clusterBridges",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.clusterByEdgeCount(2,t,e)}},{key:"clusterByConnection",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No nodeId supplied to clusterByConnection!");if(void 0===this.body.nodes[t])throw new Error("The nodeId given to clusterByConnection does not exist!");var o=this.body.nodes[t];e=this._checkOptions(e,o),void 0===e.clusterNodeProperties.x&&(e.clusterNodeProperties.x=o.x),void 0===e.clusterNodeProperties.y&&(e.clusterNodeProperties.y=o.y),void 0===e.clusterNodeProperties.fixed&&(e.clusterNodeProperties.fixed={},e.clusterNodeProperties.fixed.x=o.options.fixed.x,e.clusterNodeProperties.fixed.y=o.options.fixed.y);var n={},r={},a=o.id,h=p.cloneOptions(o);n[a]=o;for(var d=0;d-1&&(r[g.id]=g)}this._cluster(n,r,e,i)}},{key:"_createClusterEdges",value:function(t,e,i,o){for(var n=void 0,r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=(0,s.default)(t),c=[],p=0;p0&&void 0!==arguments[0]?arguments[0]:{};return void 0===t.clusterEdgeProperties&&(t.clusterEdgeProperties={}),void 0===t.clusterNodeProperties&&(t.clusterNodeProperties={}),t}},{key:"_cluster",value:function(t,e,i){var o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];if(0!=(0,s.default)(t).length&&(1!=(0,s.default)(t).length||1==i.clusterNodeProperties.allowSingleNodeCluster)){for(var n in t)if(t.hasOwnProperty(n)&&void 0!==this.clusteredNodes[n])return;var r=c.deepExtend({},i.clusterNodeProperties);if(void 0!==i.processProperties){var a=[];for(var h in t)if(t.hasOwnProperty(h)){var d=p.cloneOptions(t[h]);a.push(d)}var l=[];for(var u in e)if(e.hasOwnProperty(u)&&"clusterEdge:"!==u.substr(0,12)){var m=p.cloneOptions(e[u],"edge");l.push(m)}if(!(r=i.processProperties(r,a,l)))throw new Error("The processProperties function does not return properties!")}void 0===r.id&&(r.id="cluster:"+c.randomUUID());var v=r.id;void 0===r.label&&(r.label="cluster");var g=void 0;void 0===r.x&&(g=this._getClusterPosition(t),r.x=g.x),void 0===r.y&&(void 0===g&&(g=this._getClusterPosition(t)),r.y=g.y),r.id=v;var y=this.body.functions.createNode(r,f);y.containedNodes=t,y.containedEdges=e,y.clusterEdgeProperties=i.clusterEdgeProperties,this.body.nodes[r.id]=y,this._clusterEdges(t,e,r,i.clusterEdgeProperties),r.id=void 0,!0===o&&this.body.emitter.emit("_dataChanged")}}},{key:"_backupEdgeOptions",value:function(t){void 0===this.clusteredEdges[t.id]&&(this.clusteredEdges[t.id]={physics:t.options.physics})}},{key:"_restoreEdge",value:function(t){var e=this.clusteredEdges[t.id];void 0!==e&&(t.setOptions({physics:e.physics}),delete this.clusteredEdges[t.id])}},{key:"isCluster",value:function(t){return void 0!==this.body.nodes[t]?!0===this.body.nodes[t].isCluster:(console.log("Node does not exist."),!1)}},{key:"_getClusterPosition",value:function(t){for(var e=(0,s.default)(t),i=t[e[0]].x,o=t[e[0]].x,n=t[e[0]].y,r=t[e[0]].y,a=void 0,h=1;ho?a.x:o,n=a.yr?a.y:r;return{x:.5*(i+o),y:.5*(n+r)}}},{key:"openCluster",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");var o=this.body.nodes[t];if(void 0===o)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(!0!==o.isCluster||void 0===o.containedNodes||void 0===o.containedEdges)throw new Error("The node:"+t+" is not a valid cluster.");var n=this.findNode(t),s=n.indexOf(t)-1;if(s>=0){var r=n[s];return this.body.nodes[r]._openChildCluster(t),delete this.body.nodes[t],void(!0===i&&this.body.emitter.emit("_dataChanged"))}var a=o.containedNodes,h=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var d={},l={x:o.x,y:o.y};for(var u in a)if(a.hasOwnProperty(u)){var p=this.body.nodes[u];d[u]={x:p.x,y:p.y}}var f=e.releaseFunction(l,d);for(var m in a)if(a.hasOwnProperty(m)){var v=this.body.nodes[m];void 0!==f[m]&&(v.x=void 0===f[m].x?o.x:f[m].x,v.y=void 0===f[m].y?o.y:f[m].y)}}else c.forEach(a,function(t){!1===t.options.fixed.x&&(t.x=o.x),!1===t.options.fixed.y&&(t.y=o.y)});for(var g in a)if(a.hasOwnProperty(g)){var y=this.body.nodes[g];y.vx=o.vx,y.vy=o.vy,y.setOptions({physics:!0}),delete this.clusteredNodes[g]}for(var b=[],_=0;_0&&n<100;){var s=e.pop();if(void 0!==s){var r=this.body.edges[s];if(void 0!==r){n++;var a=r.clusteringEdgeReplacingIds;if(void 0===a)o.push(s);else for(var h=0;ho&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}},{key:"_createClusteredEdge",value:function(t,e,i,o,n){var s=p.cloneOptions(i,"edge");c.deepExtend(s,o),s.from=t,s.to=e,s.id="clusterEdge:"+c.randomUUID(),void 0!==n&&c.deepExtend(s,n);var r=this.body.functions.createEdge(s);return r.clusteringEdgeReplacingIds=[i.id],r.connect(),this.body.edges[r.id]=r,r}},{key:"_clusterEdges",value:function(t,e,i,o){if(e instanceof m){var n=e,s={};s[n.id]=n,e=s}if(t instanceof v){var r=t,a={};a[r.id]=r,t=a}if(void 0===i||null===i)throw new Error("_clusterEdges: parameter clusterNode required");void 0===o&&(o=i.clusterEdgeProperties),this._createClusterEdges(t,e,i,o);for(var h in e)if(e.hasOwnProperty(h)&&void 0!==this.body.edges[h]){var d=this.body.edges[h];this._backupEdgeOptions(d),d.setOptions({physics:!1})}for(var l in t)t.hasOwnProperty(l)&&(this.clusteredNodes[l]={clusterId:i.id,node:this.body.nodes[l]},this.body.nodes[l].setOptions({physics:!1}))}},{key:"_getClusterNodeForNode",value:function(t){if(void 0!==t){var e=this.clusteredNodes[t];if(void 0!==e){var i=e.clusterId;if(void 0!==i)return this.body.nodes[i]}}}},{key:"_filter",value:function(t,e){var i=[];return c.forEach(t,function(t){e(t)&&i.push(t)}),i}},{key:"_updateState",value:function(){var t=this,e=void 0,i=[],o=[],n=function(e){c.forEach(t.body.nodes,function(t){!0===t.isCluster&&e(t)})};for(e in this.clusteredNodes)if(this.clusteredNodes.hasOwnProperty(e)){var r=this.body.nodes[e];void 0===r&&i.push(e)}n(function(t){for(var e=0;e0}e.endPointsValid()&&n||o.push(i)}),n(function(e){c.forEach(o,function(i){delete e.containedEdges[i],c.forEach(e.edges,function(n,s){if(n.id===i)return void(e.edges[s]=null);n.clusteringEdgeReplacingIds=t._filter(n.clusteringEdgeReplacingIds,function(t){return-1===o.indexOf(t)})}),e.edges=t._filter(e.edges,function(t){return null!==t})})}),c.forEach(o,function(e){delete t.clusteredEdges[e]}),c.forEach(o,function(e){delete t.body.edges[e]});var h=(0,s.default)(this.body.edges);c.forEach(h,function(e){var i=t.body.edges[e],o=t._isClusteredNode(i.fromId)||t._isClusteredNode(i.toId);if(o!==t._isClusteredEdge(i.id)){if(!o)throw new Error("remove edge from clustering not implemented!");var n=t._getClusterNodeForNode(i.fromId);void 0!==n&&t._clusterEdges(t.body.nodes[i.fromId],i,n);var s=t._getClusterNodeForNode(i.toId);void 0!==s&&t._clusterEdges(t.body.nodes[i.toId],i,s)}});for(var d=!1,l=!0;l;)!function(){var e=[];n(function(t){var i=(0,s.default)(t.containedNodes).length,o=!0===t.options.allowSingleNodeCluster;(o&&i<1||!o&&i<2)&&e.push(t.id)});for(var i=0;i0,d=d||l}();d&&this._updateState()}},{key:"_isClusteredNode",value:function(t){return void 0!==this.clusteredNodes[t]}},{key:"_isClusteredEdge",value:function(t){return void 0!==this.clusteredEdges[t]}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(4),u=o(l),c=i(5),p=o(c),f=i(2),m=i(47).default,v=function(t){function e(t,i,o,n,r,h){(0,a.default)(this,e);var d=(0,u.default)(this,(e.__proto__||(0,s.default)(e)).call(this,t,i,o,n,r,h));return d.isCluster=!0,d.containedNodes={},d.containedEdges={},d}return(0,p.default)(e,t),(0,d.default)(e,[{key:"_openChildCluster",value:function(t){var e=this,i=this.body.nodes[t];if(void 0===this.containedNodes[t])throw new Error("node with id: "+t+" not in current cluster");if(!i.isCluster)throw new Error("node with id: "+t+" is not a cluster");delete this.containedNodes[t],f.forEach(i.edges,function(t){delete e.containedEdges[t.id]}),f.forEach(i.containedNodes,function(t,i){e.containedNodes[i]=t}),i.containedNodes={},f.forEach(i.containedEdges,function(t,i){e.containedEdges[i]=t}),i.containedEdges={},f.forEach(i.edges,function(t){f.forEach(e.edges,function(i){var o=i.clusteringEdgeReplacingIds.indexOf(t.id);-1!==o&&(f.forEach(t.clusteringEdgeReplacingIds,function(t){i.clusteringEdgeReplacingIds.push(t),e.body.edges[t].edgeReplacedById=i.id}),i.clusteringEdgeReplacingIds.splice(o,1))})}),i.edges=[]}}]),e}(m);e.default=v},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(){var t;void 0!==window&&(t=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),window.requestAnimationFrame=void 0===t?function(t){t()}:t}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=o(s),a=i(1),h=o(a),d=i(2),l=function(){function t(e,i){(0,r.default)(this,t),n(),this.body=e,this.canvas=i,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},d.extend(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}return(0,h.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("dragStart",function(){t.dragging=!0}),this.body.emitter.on("dragEnd",function(){t.dragging=!1}),this.body.emitter.on("_resizeNodes",function(){t._resizeNodes()}),this.body.emitter.on("_redraw",function(){!1===t.renderingActive&&t._redraw()}),this.body.emitter.on("_blockRedraw",function(){t.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",function(){t.allowRedraw=!0,t.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){t.renderRequests+=1,t.renderingActive=!0,t._startRendering()}),this.body.emitter.on("_stopRendering",function(){t.renderRequests-=1,t.renderingActive=t.renderRequests>0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,!0===t.requiresTimeout?clearTimeout(t.renderTimer):window.cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];d.selectiveDeepExtend(e,this.options,t)}}},{key:"_requestNextFrame",value:function(t,e){if("undefined"!=typeof window){var i=void 0,o=window;return!0===this.requiresTimeout?i=o.setTimeout(t,e):o.requestAnimationFrame&&(i=o.requestAnimationFrame(t)),i}}},{key:"_startRendering",value:function(){!0===this.renderingActive&&void 0===this.renderTimer&&(this.renderTimer=this._requestNextFrame(this._renderStep.bind(this),this.simulationInterval))}},{key:"_renderStep",value:function(){!0===this.renderingActive&&(this.renderTimer=void 0,!0===this.requiresTimeout&&this._startRendering(),this._redraw(),!1===this.requiresTimeout&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;!0!==this.redrawRequested&&!1===this.renderingActive&&!0===this.allowRedraw&&(this.redrawRequested=!0,this._requestNextFrame(function(){t._redraw(!1)},0))}},{key:"_redraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!0===this.allowRedraw){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1,0!==this.canvas.frame.canvas.width&&0!==this.canvas.frame.canvas.height||this.canvas.setSize(),this.canvas.setTransform();var e=this.canvas.getContext(),i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),!1===t&&(!1===this.dragging||!0===this.dragging&&!1===this.options.hideEdgesOnDrag)&&this._drawEdges(e),(!1===this.dragging||!0===this.dragging&&!1===this.options.hideNodesOnDrag)&&this._drawNodes(e,t),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),!0===t&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){this.canvas.setTransform();var t=this.canvas.getContext();t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=this.canvas.DOMtoCanvas({x:-20,y:-20}),a=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+20,y:this.canvas.frame.canvas.clientHeight+20}),h={top:r.y,left:r.x,bottom:a.y,right:a.x},d=0;d0&&void 0!==arguments[0]?arguments[0]:this.pixelRatio;!0===this.initialized&&(this.cameraState.previousWidth=this.frame.canvas.width/t,this.cameraState.previousHeight=this.frame.canvas.height/t,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/t,y:.5*this.frame.canvas.height/t}))}},{key:"_setCameraState",value:function(){if(void 0!==this.cameraState.scale&&0!==this.frame.canvas.clientWidth&&0!==this.frame.canvas.clientHeight&&0!==this.pixelRatio&&this.cameraState.previousWidth>0){var t=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,e=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight,i=this.cameraState.scale;1!=t&&1!=e?i=.5*this.cameraState.scale*(t+e):1!=t?i=this.cameraState.scale*t:1!=e&&(i=this.cameraState.scale*e),this.body.view.scale=i;var o=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),n={x:o.x-this.cameraState.position.x,y:o.y-this.cameraState.position.y};this.body.view.translation.x+=n.x*this.body.view.scale,this.body.view.translation.y+=n.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new h(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:h.DIRECTION_ALL}),d.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new h(this.frame),d.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.width,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.height;t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.pixelRatio;if(this._setPixelRatio(),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e)this._getCameraState(s),this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},i=!0;else{var r=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),a=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);this.frame.canvas.width===r&&this.frame.canvas.height===a||this._getCameraState(s), -this.frame.canvas.width!==r&&(this.frame.canvas.width=r,i=!0),this.frame.canvas.height!==a&&(this.frame.canvas.height=a,i=!0)}return!0===i&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,i}},{key:"getContext",value:function(){return this.frame.canvas.getContext("2d")}},{key:"_determinePixelRatio",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");var e=1;return"undefined"!=typeof window&&(e=window.devicePixelRatio||1),e/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},{key:"_setPixelRatio",value:function(){this.pixelRatio=this._determinePixelRatio()}},{key:"setTransform",value:function(){var t=this.getContext();if(void 0===t)throw new Error("Could not get canvax context");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(76).default,l=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",this.fit.bind(this)),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return(0,a.default)(t,[{key:"setOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.options=t}},{key:"fit",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{nodes:[]},e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=void 0,o=void 0;if(void 0!==t.nodes&&0!==t.nodes.length||(t.nodes=this.body.nodeIndices),!0===e){var n=0;for(var s in this.body.nodes)if(this.body.nodes.hasOwnProperty(s)){var r=this.body.nodes[s];!0===r.predefinedPosition&&(n+=1)}if(n>.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=d.getRange(this.body.nodes,t.nodes);o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=d.getRange(this.body.nodes,t.nodes);var a=1.1*Math.abs(i.maxX-i.minX),h=1.1*Math.abs(i.maxY-i.minY),l=this.canvas.frame.canvas.clientWidth/a,u=this.canvas.frame.canvas.clientHeight/h;o=l<=u?l:u}o>1?o=1:0===o&&(o=1);var c=d.findCenter(i),p={position:c,scale:o,animation:t.animation};this.moveTo(p)}},{key:"focus",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){if(void 0===t)return void(t={});void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),!1===t.animation&&(t.animation={duration:0}),!0===t.animation&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),this.animateView(t)}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),!0===t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=!0===t?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e.default=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(2),d=i(233).default,l=i(104).default,u=function(){function t(e,i,o){(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.navigationHandler=new d(e,i),this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.body.eventListeners.onContext=this.onContext.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=this.getPointer.bind(this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0},h.extend(this.options,this.defaultOptions),this.bindEventListeners()}return(0,a.default)(t,[{key:"bindEventListeners",value:function(){var t=this;this.body.emitter.on("destroy",function(){clearTimeout(t.popupTimer),delete t.body.functions.getPointer})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"];h.selectiveNotDeepExtend(e,this.options,t),h.mergeOptions(this.options,t,"keyboard"),t.tooltip&&(h.extend(this.options.tooltip,t.tooltip),t.tooltip.color&&(this.options.tooltip.color=h.parseColor(t.tooltip.color)))}this.navigationHandler.setOptions(this.options)}},{key:"getPointer",value:function(t){return{x:t.x-h.getAbsoluteLeft(this.canvas.frame.canvas),y:t.y-h.getAbsoluteTop(this.canvas.frame.canvas)}}},{key:"onTouch",value:function(t){(new Date).valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.selectionHandler.getSelection(),n=!1;n=!0===i?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var s=this.selectionHandler.getSelection(),r=this._determineDifference(o,s),a=this._determineDifference(s,o);r.edges.length>0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,o),n=!0),r.nodes.length>0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,o),n=!0),a.nodes.length>0&&(this.selectionHandler._generateClickEvent("selectNode",e,t),n=!0),a.edges.length>0&&(this.selectionHandler._generateClickEvent("selectEdge",e,t),n=!0),!0===n&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineDifference",value:function(t,e){var i=function(t,e){for(var i=[],o=0;o10&&(t=10);var o=void 0;void 0!==this.drag&&!0===this.drag.dragging&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),i0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&!1===s){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],g=0;g0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new l(this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&!0===(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e))){var o=this.selectionHandler.getNodeAt(t);i=void 0!==o&&o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));!1===i&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(10),d=i(37),l=i(35),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.iconsCreated=!1,this.navigationHammers=[],this.boundFunctions={},this.touchTime=0,this.activated=!1,this.body.emitter.on("activate",function(){o.activated=!0,o.configureKeyboardBindings()}),this.body.emitter.on("deactivate",function(){o.activated=!1,o.configureKeyboardBindings()}),this.body.emitter.on("destroy",function(){void 0!==o.keycharm&&o.keycharm.destroy()}),this.options={}}return(0,a.default)(t,[{key:"setOptions",value:function(t){void 0!==t&&(this.options=t,this.create())}},{key:"create",value:function(){!0===this.options.navigationButtons?!1===this.iconsCreated&&this.loadNavigationElements():!0===this.iconsCreated&&this.cleanNavigation(),this.configureKeyboardBindings()}},{key:"cleanNavigation",value:function(){if(0!=this.navigationHammers.length){for(var t=0;t700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){var t=this.body.view.scale,e=this.body.view.scale*(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}},{key:"_zoomOut",value:function(){var t=this.body.view.scale,e=this.body.view.scale/(1+this.options.keyboard.speed.zoom),i=this.body.view.translation,o=e/t,n=(1-o)*this.canvas.canvasViewCenter.x+i.x*o,s=(1-o)*this.canvas.canvasViewCenter.y+i.y*o;this.body.view.scale=e,this.body.view.translation={x:n,y:s},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),!0===this.options.keyboard.enabled&&(!0===this.options.keyboard.bindToWindow?this.keycharm=l({container:window,preventDefault:!0}):this.keycharm=l({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),!0===this.activated&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),s=o(n),r=i(1),a=o(r),h=i(47).default,d=i(74).default,l=i(2),u=function(){function t(e,i){var o=this;(0,s.default)(this,t),this.body=e,this.canvas=i,this.selectionObj={nodes:[],edges:[]},this.hoverObj={nodes:{},edges:{}},this.options={},this.defaultOptions={multiselect:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0},l.extend(this.options,this.defaultOptions),this.body.emitter.on("_dataChanged",function(){o.updateSelection()})}return(0,a.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){var e=["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"];l.selectiveDeepExtend(e,this.options,t)}}},{key:"selectOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);this.unselectAll(),void 0!==i&&(e=this.selectObject(i)),this.body.emitter.emit("_requestRedraw")}return e}},{key:"selectAdditionalOnPoint",value:function(t){var e=!1;if(!0===this.options.selectable){var i=this.getNodeAt(t)||this.getEdgeAt(t);void 0!==i&&(e=!0,!0===i.isSelected()?this.deselectObject(i):this.selectObject(i),this.body.emitter.emit("_requestRedraw"))}return e}},{key:"_initBaseEvent",value:function(t,e){var i={};return i.pointer={DOM:{x:e.x,y:e.y},canvas:this.canvas.DOMtoCanvas(e)},i.event=t,i}},{key:"_generateClickEvent",value:function(t,e,i,o){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=this._initBaseEvent(e,i);if(!0===n)s.nodes=[],s.edges=[];else{var r=this.getSelection();s.nodes=r.nodes,s.edges=r.edges}void 0!==o&&(s.previousSelection=o),"click"==t&&(s.items=this.getClickedItems(i)),this.body.emitter.emit(t,s)}},{key:"selectObject",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.options.selectConnectedEdges;return void 0!==t&&(t instanceof h&&!0===e&&this._selectConnectedEdges(t),t.select(),this._addToSelection(t),!0)}},{key:"deselectObject",value:function(t){!0===t.isSelected()&&(t.selected=!1,this._removeFromSelection(t))}},{key:"_getAllNodesOverlappingWith",value:function(t){for(var e=[],i=this.body.nodes,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this._pointerToPositionObject(t),o=this._getAllNodesOverlappingWith(i);return o.length>0?!0===e?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o1&&void 0!==arguments[1])||arguments[1],i=this.canvas.DOMtoCanvas(t),o=10,n=null,s=this.body.edges,r=0;r1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{},i=void 0,o=void 0;if(!t||!t.nodes&&!t.edges)throw"Selection must be an object with nodes and/or edges properties" -;if((e.unselectAll||void 0===e.unselectAll)&&this.unselectAll(),t.nodes)for(i=0;i1&&void 0!==arguments[1])||arguments[1];if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({nodes:t},{highlightEdges:e})}},{key:"selectEdges",value:function(t){if(!t||void 0===t.length)throw"Selection must be an array with ids";this.setSelection({edges:t})}},{key:"updateSelection",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},{key:"getClickedItems",value:function(t){for(var e=this.canvas.DOMtoCanvas(t),i=[],o=this.body.nodeIndices,n=this.body.nodes,s=o.length-1;s>=0;s--){var r=n[o[s]],a=r.getItemsOnPoint(e);i.push.apply(i,a)}for(var h=this.body.edgeIndices,d=this.body.edges,l=h.length-1;l>=0;l--){var u=d[h[l]],c=u.getItemsOnPoint(e);i.push.apply(i,c)}return i}}]),t}();e.default=u},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(6),a=o(r),h=i(8),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(76).default,v=i(236),g=v.HorizontalStrategy,y=v.VerticalStrategy,b=function(){function t(){(0,u.default)(this,t),this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}return(0,p.default)(t,[{key:"addRelation",value:function(t,e){void 0===this.childrenReference[t]&&(this.childrenReference[t]=[]),this.childrenReference[t].push(e),void 0===this.parentReference[e]&&(this.parentReference[e]=[]),this.parentReference[e].push(t)}},{key:"checkIfTree",value:function(){for(var t in this.parentReference)if(this.parentReference[t].length>1)return void(this.isTree=!1);this.isTree=!0}},{key:"numTrees",value:function(){return this.treeIndex+1}},{key:"setTreeIndex",value:function(t,e){void 0!==e&&void 0===this.trees[t.id]&&(this.trees[t.id]=e,this.treeIndex=Math.max(e,this.treeIndex))}},{key:"ensureLevel",value:function(t){void 0===this.levels[t]&&(this.levels[t]=0)}},{key:"getMaxLevel",value:function(t){var e=this,i={};return function t(o){if(void 0!==i[o])return i[o];var n=e.levels[o];if(e.childrenReference[o]){var s=e.childrenReference[o];if(s.length>0)for(var r=0;r0&&(i.levelSeparation*=-1):i.levelSeparation<0&&(i.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(e);if(!0===o)return this.body.emitter.emit("refresh"),f.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptionsForHierarchicalLayout",value:function(t){if(!0===this.options.hierarchical.enabled){var e=this.optionsBackup.physics;void 0===t.physics||!0===t.physics?(t.physics={enabled:void 0===e.enabled||e.enabled,solver:"hierarchicalRepulsion"},e.enabled=void 0===e.enabled||e.enabled,e.solver=e.solver||"barnesHut"):"object"===(0,a.default)(t.physics)?(e.enabled=void 0===t.physics.enabled||t.physics.enabled,e.solver=t.physics.solver||"barnesHut",t.physics.solver="hierarchicalRepulsion"):!1!==t.physics&&(e.solver="barnesHut",t.physics={solver:"hierarchicalRepulsion"});var i=this.direction.curveType();if(void 0===t.edges)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1};else if(void 0===t.edges.smooth)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1;else if("boolean"==typeof t.edges.smooth)this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:i};else{var o=t.edges.smooth;void 0!==o.type&&"dynamic"!==o.type&&(i=o.type),this.optionsBackup.edges={smooth:void 0===o.enabled||o.enabled,type:void 0===o.type?"dynamic":o.type,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection},t.edges.smooth={enabled:void 0===o.enabled||o.enabled,type:i,roundness:void 0===o.roundness?.5:o.roundness,forceDirection:void 0!==o.forceDirection&&o.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",i)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(!0!==this.options.hierarchical.enabled){this.randomSeed=this.initialRandomSeed;for(var e=t.length+50,i=0;i150){for(var s=t.length;t.length>150&&o<=10;){o+=1;var r=t.length;o%3==0?this.body.modules.clustering.clusterBridges(n):this.body.modules.clustering.clusterOutliers(n);if(r==t.length&&o%3!=0)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*s)})}o>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(t,this.body.edgeIndices,!0),this._shiftToCenter();for(var a=0;a0){var t=void 0,e=void 0,i=!1,o=!1;this.lastNodeOnLevel={},this.hierarchical=new b;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchical.levels[e]=t.options.level):o=!0);if(!0===o&&!0===i)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");if(!0===o){var n=this.options.hierarchical.sortMethod;"hubsize"===n?this._determineLevelsByHubsize():"directed"===n?this._determineLevelsDirected():"custom"===n&&this._determineLevelsCustomCallback()}for(var s in this.body.nodes)this.body.nodes.hasOwnProperty(s)&&this.hierarchical.ensureLevel(s);var r=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(r),this._condenseHierarchy(),this._shiftToCenter()}}},{key:"_condenseHierarchy",value:function(){var t=this,e=!1,i={},o=function(e,i){var o=t.hierarchical.trees;for(var n in o)o.hasOwnProperty(n)&&o[n]===e&&t.direction.shift(n,i)},n=function(){for(var e=[],i=0;i0)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:1e9,o=1e9,n=1e9,r=1e9,a=-1e9;for(var h in e)if(e.hasOwnProperty(h)){var d=t.body.nodes[h],l=t.hierarchical.levels[d.id],u=t.direction.getPosition(d),c=t._getSpaceAroundNode(d,e),p=(0,s.default)(c,2),f=p[0],m=p[1];o=Math.min(f,o),n=Math.min(m,n),l<=i&&(r=Math.min(u,r),a=Math.max(u,a))}return[r,a,o,n]},h=function(e,i){var o=t.hierarchical.getMaxLevel(e.id),n=t.hierarchical.getMaxLevel(i.id);return Math.min(o,n)},d=function(e,i,o){for(var n=t.hierarchical,s=0;s1)for(var h=0;h2&&void 0!==arguments[2]&&arguments[2],s=t.direction.getPosition(i),d=t.direction.getPosition(o),l=Math.abs(d-s),u=t.options.hierarchical.nodeSpacing;if(l>u){var c={},p={};r(i,c),r(o,p);var f=h(i,o),m=a(c,f),v=a(p,f),g=m[1],y=v[0],b=v[2];if(Math.abs(g-y)>u){var _=g-y+u;_<-b+u&&(_=-b+u),_<0&&(t._shiftBlock(o.id,_),e=!0,!0===n&&t._centerParent(o))}}},u=function(o,n){for(var h=n.id,d=n.edges,l=t.hierarchical.levels[n.id],u=t.options.hierarchical.levelSeparation*t.options.hierarchical.levelSeparation,c={},p=[],f=0;f0?p=Math.min(c,u-t.options.hierarchical.nodeSpacing):c<0&&(p=-Math.min(-c,l-t.options.hierarchical.nodeSpacing)),0!=p&&(t._shiftBlock(n.id,p),e=!0)}(_),_=b(o,d),function(i){var o=t.direction.getPosition(n),r=t._getSpaceAroundNode(n),a=(0,s.default)(r,2),h=a[0],d=a[1],l=i-o,u=o;l>0?u=Math.min(o+(d-t.options.hierarchical.nodeSpacing),i):l<0&&(u=Math.max(o-(h-t.options.hierarchical.nodeSpacing),i)),u!==o&&(t.direction.setPosition(n,u),e=!0)}(_)};!0===this.options.hierarchical.blockShifting&&(function(i){var o=t.hierarchical.getLevels();o=o.reverse();for(var n=0;n0&&Math.abs(p)0&&(a=this.direction.getPosition(i[n-1])+r),this.direction.setPosition(s,a,e),this._validatePositionAndContinue(s,e,a),o++}}}}},{key:"_placeBranchNodes",value:function(t,e){var i=this.hierarchical.childrenReference[t];if(void 0!==i){for(var o=[],n=0;ne&&void 0===this.positionedNodes[r.id]))return;var h=this.options.hierarchical.nodeSpacing,d=void 0;d=0===s?this.direction.getPosition(this.body.nodes[t]):this.direction.getPosition(o[s-1])+h,this.direction.setPosition(r,d,a),this._validatePositionAndContinue(r,a,d)}var l=this._getCenterPosition(o);this.direction.setPosition(this.body.nodes[t],l,e)}}},{key:"_validatePositionAndContinue",value:function(t,e,i){if(this.hierarchical.isTree){if(void 0!==this.lastNodeOnLevel[e]){var o=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[e]]);if(i-ot.hierarchical.levels[e.id]&&t.hierarchical.addRelation(e.id,i.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}},{key:"_crawlNetwork",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=arguments[1],o={},n=function i(n,s){if(void 0===o[n.id]){t.hierarchical.setTreeIndex(n,s),o[n.id]=!0;for(var r=void 0,a=t._getActiveEdges(n),h=0;h2&&void 0!==arguments[2]?arguments[2]:void 0;this.fake_use(t,e,i),this.abstract()}},{key:"getTreeSize",value:function(t){return this.fake_use(t),this.abstract()}},{key:"sort",value:function(t){this.fake_use(t),this.abstract()}},{key:"fix",value:function(t,e){this.fake_use(t,e),this.abstract()}},{key:"shift",value:function(t,e){this.fake_use(t,e),this.abstract()}}]),t}(),m=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"horizontal"}},{key:"getPosition",value:function(t){return t.x}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.x=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_x,max:e.max_x}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.x||void 0===e.x?0:t.x-e.x})}},{key:"fix",value:function(t,e){t.y=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.y=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].x+=e}}]),e}(f),v=function(t){function e(t){(0,u.default)(this,e);var i=(0,a.default)(this,(e.__proto__||(0,s.default)(e)).call(this));return i.layout=t,i}return(0,d.default)(e,t),(0,p.default)(e,[{key:"curveType",value:function(){return"vertical"}},{key:"getPosition",value:function(t){return t.y}},{key:"setPosition",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;void 0!==i&&this.layout.hierarchical.addToOrdering(t,i),t.y=e}},{key:"getTreeSize",value:function(t){var e=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,t);return{min:e.min_y,max:e.max_y}}},{key:"sort",value:function(t){t.sort(function(t,e){return void 0===t.y||void 0===e.y?0:t.y-e.y})}},{key:"fix",value:function(t,e){t.x=this.layout.options.hierarchical.levelSeparation*e,t.options.fixed.x=!0}},{key:"shift",value:function(t,e){this.layout.body.nodes[t].y+=e}}]),e}(f);e.HorizontalStrategy=v,e.VerticalStrategy=m},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(8),s=o(n),r=i(19),a=o(r),h=i(6),d=o(h),l=i(0),u=o(l),c=i(1),p=o(c),f=i(2),m=i(10),v=i(37),g=function(){function t(e,i,o){var n=this;(0,u.default)(this,t),this.body=e,this.canvas=i,this.selectionHandler=o,this.editMode=!1,this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this.manipulationHammers=[],this.temporaryUIFunctions={},this.temporaryEventFunctions=[],this.touchTime=0,this.temporaryIds={nodes:[],edges:[]},this.guiEnabled=!1,this.inMode=!1,this.selectedControlNode=void 0,this.options={},this.defaultOptions={enabled:!1,initiallyActive:!1,addNode:!0,addEdge:!0,editNode:void 0,editEdge:!0,deleteNode:!0,deleteEdge:!0,controlNodeStyle:{shape:"dot",size:6,color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968",border:"#3c3c3c"}},borderWidth:2,borderWidthSelected:2}},f.extend(this.options,this.defaultOptions),this.body.emitter.on("destroy",function(){n._clean()}),this.body.emitter.on("_dataChanged",this._restore.bind(this)),this.body.emitter.on("_resetData",this._restore.bind(this))}return(0,p.default)(t,[{key:"_restore",value:function(){!1!==this.inMode&&(!0===this.options.initiallyActive?this.enableEditMode():this.disableEditMode())}},{key:"setOptions",value:function(t,e,i){void 0!==e&&(void 0!==e.locale?this.options.locale=e.locale:this.options.locale=i.locale,void 0!==e.locales?this.options.locales=e.locales:this.options.locales=i.locales),void 0!==t&&("boolean"==typeof t?this.options.enabled=t:(this.options.enabled=!0,f.deepExtend(this.options,t)),!0===this.options.initiallyActive&&(this.editMode=!0),this._setup())}},{key:"toggleEditMode",value:function(){!0===this.editMode?this.disableEditMode():this.enableEditMode()}},{key:"enableEditMode",value:function(){this.editMode=!0,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}},{key:"disableEditMode",value:function(){this.editMode=!1,this._clean(),!0===this.guiEnabled&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}},{key:"showManipulatorToolbar",value:function(){if(this._clean(),this.manipulationDOM={},!0===this.guiEnabled){this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";var t=this.selectionHandler._getSelectedNodeCount(),e=this.selectionHandler._getSelectedEdgeCount(),i=t+e,o=this.options.locales[this.options.locale],n=!1;!1!==this.options.addNode&&(this._createAddNodeButton(o),n=!0),!1!==this.options.addEdge&&(!0===n?this._createSeperator(1):n=!0,this._createAddEdgeButton(o)),1===t&&"function"==typeof this.options.editNode?(!0===n?this._createSeperator(2):n=!0,this._createEditNodeButton(o)):1===e&&0===t&&!1!==this.options.editEdge&&(!0===n?this._createSeperator(3):n=!0,this._createEditEdgeButton(o)),0!==i&&(t>0&&!1!==this.options.deleteNode?(!0===n&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&!1!==this.options.deleteEdge&&(!0===n&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addNode",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(!0!==e.isCluster){var i=f.deepExtend({},e.options,!1);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="addEdge",!0===this.guiEnabled){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",this._dragStartEdge.bind(this)),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){if(!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="editEdge","object"===(0,d.default)(this.options.editEdge)&&"function"==typeof this.options.editEdge.editWithoutDrag&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId)){var t=this.body.edges[this.edgeBeingEditedId];return void this._performEditEdge(t.from,t.to)}if(!0===this.guiEnabled){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId){var i=this.body.edges[this.edgeBeingEditedId],o=this._getNewTargetNode(i.from.x,i.from.y),n=this._getNewTargetNode(i.to.x,i.to.y);this.temporaryIds.nodes.push(o.id),this.temporaryIds.nodes.push(n.id),this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id),this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id),this._temporaryBindUI("onTouch",this._controlNodeTouch.bind(this)),this._temporaryBindUI("onTap",function(){}),this._temporaryBindUI("onHold",function(){}),this._temporaryBindUI("onDragStart",this._controlNodeDragStart.bind(this)),this._temporaryBindUI("onDrag",this._controlNodeDrag.bind(this)),this._temporaryBindUI("onDragEnd",this._controlNodeDragEnd.bind(this)),this._temporaryBindUI("onMouseMove",function(){}),this._temporaryBindEvent("beforeDrawing",function(t){var e=i.edgeType.findBorderPositions(t);!1===o.selected&&(o.x=e.from.x,o.y=e.from.y),!1===n.selected&&(n.x=e.to.x,n.y=e.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;!0!==this.editMode&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i} -;if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){!0===this.options.enabled?(this.guiEnabled=!0,this._createWrappers(),!1===this.editMode?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",!0===this.editMode?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",!0===this.editMode?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=f.deepExtend({},this.options.controlNodeStyle);i.id="targetNode"+f.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e;var o=this.body.functions.createNode(i);return o.shape.boundingBox={left:t,right:t,top:e,bottom:e},o}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},f.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,!0===this.guiEnabled&&(f.recursiveDOMDelete(this.editModeDiv),f.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+t]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+t].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+t])}},{key:"_createAddNodeButton",value:function(t){var e=this._createButton("addNode","vis-button vis-add",t.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addNodeMode.bind(this))}},{key:"_createAddEdgeButton",value:function(t){var e=this._createButton("addEdge","vis-button vis-connect",t.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.addEdgeMode.bind(this))}},{key:"_createEditNodeButton",value:function(t){var e=this._createButton("editNode","vis-button vis-edit",t.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editNode.bind(this))}},{key:"_createEditEdgeButton",value:function(t){var e=this._createButton("editEdge","vis-button vis-edit",t.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.editEdgeMode.bind(this))}},{key:"_createDeleteButton",value:function(t){var e;e=this.options.rtl?"vis-button vis-delete-rtl":"vis-button vis-delete";var i=this._createButton("delete",e,t.del||this.options.locales.en.del);this.manipulationDiv.appendChild(i),this._bindHammerToDiv(i,this.deleteSelected.bind(this))}},{key:"_createBackButton",value:function(t){var e=this._createButton("back","vis-button vis-back",t.back||this.options.locales.en.back);this.manipulationDiv.appendChild(e),this._bindHammerToDiv(e,this.showManipulatorToolbar.bind(this))}},{key:"_createButton",value:function(t,e,i){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"vis-label";return this.manipulationDOM[t+"Div"]=document.createElement("div"),this.manipulationDOM[t+"Div"].className=e,this.manipulationDOM[t+"Label"]=document.createElement("div"),this.manipulationDOM[t+"Label"].className=o,this.manipulationDOM[t+"Label"].innerHTML=i,this.manipulationDOM[t+"Div"].appendChild(this.manipulationDOM[t+"Label"]),this.manipulationDOM[t+"Div"]}},{key:"_createDescription",value:function(t){this.manipulationDiv.appendChild(this._createButton("description","vis-button vis-none",t))}},{key:"_temporaryBindEvent",value:function(t,e){this.temporaryEventFunctions.push({event:t,boundFunction:e}),this.body.emitter.on(t,e)}},{key:"_temporaryBindUI",value:function(t,e){if(void 0===this.body.eventListeners[t])throw new Error("This UI function does not exist. Typo? You tried: "+t+" possible are: "+(0,a.default)((0,s.default)(this.body.eventListeners)));this.temporaryUIFunctions[t]=this.body.eventListeners[t],this.body.eventListeners[t]=e}},{key:"_unbindTemporaryUIs",value:function(){for(var t in this.temporaryUIFunctions)this.temporaryUIFunctions.hasOwnProperty(t)&&(this.body.eventListeners[t]=this.temporaryUIFunctions[t],delete this.temporaryUIFunctions[t]);this.temporaryUIFunctions={}}},{key:"_unbindTemporaryEvents",value:function(){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(!0===s.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=f.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(!0===i.isCluster)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+f.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(!0===s.isCluster?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_dragStartEdge",value:function(t){var e=this.lastTouch;this.selectionHandler._generateClickEvent("dragStart",t,e,void 0,!0)}},{key:"_performAddNode",value:function(t){var e=this,i={id:f.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e,label:this.body.data.edges._data[this.edgeBeingEditedId].label},n=this.options.editEdge;if("object"===(void 0===n?"undefined":(0,d.default)(n))&&(n=n.editWithoutDrag),"function"==typeof n){if(2!==n.length)throw new Error("The function for edit does not support two arguments (data, callback)");n(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw"),i.showManipulatorToolbar()):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e.default=g},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(30),s=o(n),r=i(0),a=o(r),h=i(1),d=o(h),l=i(239),u=o(l),c=function(){function t(e,i,o){(0,a.default)(this,t),this.body=e,this.springLength=i,this.springConstant=o,this.distanceSolver=new u.default}return(0,d.default)(t,[{key:"setOptions",value:function(t){t&&(t.springLength&&(this.springLength=t.springLength),t.springConstant&&(this.springConstant=t.springConstant))}},{key:"solve",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.distanceSolver.getDistances(this.body,t,e);this._createL_matrix(o),this._createK_matrix(o),this._createE_matrix();for(var n=0,r=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),a=1e9,h=0,d=0,l=0,u=0,c=0;a>.01&&n1&&c<5;){c+=1,this._moveNode(h,d,l);var m=this._getEnergy(h),v=(0,s.default)(m,3);u=v[0],d=v[1],l=v[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;h - - - `); - this.innerHTML = tp.strings; - } -}); \ No newline at end of file diff --git a/frontend/documentation/js/menu-wc_es5.js b/frontend/documentation/js/menu-wc_es5.js deleted file mode 100644 index d0020fe..0000000 --- a/frontend/documentation/js/menu-wc_es5.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } -function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } -function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } -function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -customElements.define('compodoc-menu', /*#__PURE__*/function (_HTMLElement) { - _inherits(_class, _HTMLElement); - var _super = _createSuper(_class); - function _class() { - var _this; - _classCallCheck(this, _class); - _this = _super.call(this); - _this.isNormalMode = _this.getAttribute('mode') === 'normal'; - return _this; - } - _createClass(_class, [{ - key: "connectedCallback", - value: function connectedCallback() { - this.render(this.isNormalMode); - } - }, { - key: "render", - value: function render(isNormalMode) { - var tp = lithtml.html("\n \n ")); - this.innerHTML = tp.strings; - } - }]); - return _class; -}( /*#__PURE__*/_wrapNativeSuper(HTMLElement))); \ No newline at end of file diff --git a/frontend/documentation/js/menu.js b/frontend/documentation/js/menu.js deleted file mode 100644 index 2c84393..0000000 --- a/frontend/documentation/js/menu.js +++ /dev/null @@ -1,321 +0,0 @@ -document.addEventListener('DOMContentLoaded', function () { - var menuCollapsed = false, - mobileMenu = document.getElementById('mobile-menu'); - - var localContextInUrl = ''; - - if (COMPODOC_CURRENT_PAGE_CONTEXT !== '') { - switch (COMPODOC_CURRENT_PAGE_CONTEXT) { - case 'additional-page': - localContextInUrl = 'additional-documentation'; - break; - case 'class': - localContextInUrl = 'classes'; - break; - case 'miscellaneous-functions': - case 'miscellaneous-variables': - case 'miscellaneous-typealiases': - case 'miscellaneous-enumerations': - localContextInUrl = 'miscellaneous'; - default: - break; - } - } - - function hasClass(el, cls) { - return el.className && new RegExp('(\\s|^)' + cls + '(\\s|$)').test(el.className); - } - - var processLink = function (link, url) { - if (url.charAt(0) !== '.') { - var prefix = ''; - switch (COMPODOC_CURRENT_PAGE_DEPTH) { - case 5: - prefix = '../../../../../'; - break; - case 4: - prefix = '../../../../'; - break; - case 3: - prefix = '../../../'; - break; - case 2: - prefix = '../../'; - break; - case 1: - prefix = '../'; - break; - case 0: - prefix = './'; - break; - } - link.setAttribute('href', prefix + url); - } - }; - - var processMenuLinks = function (links, dontAddClass) { - for (var i = 0; i < links.length; i++) { - var link = links[i]; - var linkHref = link.getAttribute('href'); - if (linkHref) { - var linkHrefFile = linkHref.substr(linkHref.lastIndexOf('/') + 1, linkHref.length); - if ( - linkHrefFile.toLowerCase() === COMPODOC_CURRENT_PAGE_URL.toLowerCase() && - link.innerHTML.indexOf('Getting started') == -1 && - !dontAddClass && - linkHref.toLowerCase().indexOf(localContextInUrl.toLowerCase()) !== -1 - ) { - link.classList.add('active'); - } - processLink(link, linkHref); - } - } - }; - var chapterLinks = document.querySelectorAll('[data-type="chapter-link"]'); - processMenuLinks(chapterLinks); - var entityLinks = document.querySelectorAll('[data-type="entity-link"]'); - processMenuLinks(entityLinks); - var indexLinks = document.querySelectorAll('[data-type="index-link"]'); - processMenuLinks(indexLinks, true); - var compodocLogos = document.querySelectorAll('[data-type="compodoc-logo"]'); - var customLogo = document.querySelectorAll('[data-type="custom-logo"]'); - var processLogos = function (entityLogos) { - for (var i = 0; i < entityLogos.length; i++) { - var entityLogo = entityLogos[i]; - if (entityLogo) { - var url = entityLogo.getAttribute('data-src'); - // Dark mode + logo - let isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches; - if (isDarkMode && url.indexOf('compodoc') !== -1) { - url = 'images/compodoc-vectorise-inverted.png'; - } - if (url.charAt(0) !== '.') { - var prefix = ''; - switch (COMPODOC_CURRENT_PAGE_DEPTH) { - case 5: - prefix = '../../../../../'; - break; - case 4: - prefix = '../../../../'; - break; - case 3: - prefix = '../../../'; - break; - case 2: - prefix = '../../'; - break; - case 1: - prefix = '../'; - break; - case 0: - prefix = './'; - break; - } - entityLogo.src = prefix + url; - } - } - } - }; - processLogos(compodocLogos); - processLogos(customLogo); - - setTimeout(function () { - document.getElementById('btn-menu').addEventListener('click', function () { - if (menuCollapsed) { - mobileMenu.style.display = 'none'; - } else { - mobileMenu.style.display = 'block'; - document.getElementsByTagName('body')[0].style['overflow-y'] = 'hidden'; - } - menuCollapsed = !menuCollapsed; - }); - - /** - * Native bootstrap doesn't wait DOMContentLoaded event to start his job, re do it here - */ - var Collapses = document.querySelectorAll('[data-toggle="collapse"]'); - for (var o = 0, cll = Collapses.length; o < cll; o++) { - var collapse = Collapses[o], - options = {}; - options.duration = collapse.getAttribute('data-duration'); - var c = new Collapse(collapse, options); - } - - // collapse menu - var classnameMenuToggler = document.getElementsByClassName('menu-toggler'), - faAngleUpClass = 'ion-ios-arrow-up', - faAngleDownClass = 'ion-ios-arrow-down', - toggleItemMenu = function (e) { - var element = $(e.target), - parent = element[0].parentNode, - parentLink, - elementIconChild; - if (parent) { - if (!$(parent).hasClass('linked')) { - e.preventDefault(); - } else { - parentLink = parent.parentNode; - if (parentLink && element.hasClass('link-name')) { - $(parentLink).trigger('click'); - } - } - elementIconChild = parent.getElementsByClassName(faAngleUpClass)[0]; - if (!elementIconChild) { - elementIconChild = parent.getElementsByClassName(faAngleDownClass)[0]; - } - if (elementIconChild) { - elementIconChild = $(elementIconChild); - if (elementIconChild.hasClass(faAngleUpClass)) { - elementIconChild.addClass(faAngleDownClass); - elementIconChild.removeClass(faAngleUpClass); - } else { - elementIconChild.addClass(faAngleUpClass); - elementIconChild.removeClass(faAngleDownClass); - } - } - } - }; - - for (var i = 0; i < classnameMenuToggler.length; i++) { - classnameMenuToggler[i].addEventListener('click', toggleItemMenu, false); - } - - // Scroll to active link - var menus = document.querySelectorAll('.menu'), - i = 0, - len = menus.length, - activeMenu, - activeMenuClass, - activeLink; - - for (i; i < len; i++) { - if (getComputedStyle(menus[i]).display != 'none') { - activeMenu = menus[i]; - activeMenuClass = activeMenu.getAttribute('class').split(' ')[0]; - } - } - - if (activeMenu) { - activeLink = document.querySelector('.' + activeMenuClass + ' .active'); - if (activeLink) { - var linkType = activeLink.getAttribute('data-type'); - var linkContext = activeLink.getAttribute('data-context'); - if (linkType === 'entity-link') { - var parentLi = activeLink.parentNode, - parentUl, - parentChapterMenu; - if (parentLi) { - parentUl = parentLi.parentNode; - if (parentUl) { - parentChapterMenu = parentUl.parentNode; - if (parentChapterMenu) { - var toggler = parentChapterMenu.querySelector('.menu-toggler'), - elementIconChild = - toggler.getElementsByClassName(faAngleUpClass)[0]; - if (toggler && !elementIconChild) { - toggler.click(); - } - } - } - } - if (linkContext && linkContext === 'sub-entity') { - // Toggle also the master parent menu - var linkContextId = activeLink.getAttribute('data-context-id'); - var toggler = activeMenu.querySelector( - '.chapter.' + linkContextId + ' a .menu-toggler' - ); - if (toggler) { - toggler.click(); - } - if (linkContextId === 'additional') { - var mainToggler = activeMenu.querySelector( - '.chapter.' + linkContextId + ' div.menu-toggler' - ); - if (mainToggler) { - mainToggler.click(); - } - } - } - } else if (linkType === 'chapter-link') { - var linkContextId = activeLink.getAttribute('data-context-id'); - var toggler = activeLink.querySelector('.menu-toggler'); - if (toggler) { - toggler.click(); - } - if (linkContextId === 'additional') { - var mainToggler = activeMenu.querySelector( - '.chapter.' + linkContextId + ' div.menu-toggler' - ); - if (mainToggler) { - mainToggler.click(); - } - } - } - setTimeout(function () { - activeMenu.scrollTop = activeLink.offsetTop; - if ( - activeLink.innerHTML.toLowerCase().indexOf('readme') != -1 || - activeLink.innerHTML.toLowerCase().indexOf('overview') != -1 - ) { - activeMenu.scrollTop = 0; - } - }, 300); - } - } - // Dark mode toggle button - var useDark = window.matchMedia('(prefers-color-scheme: dark)'); - var darkModeState = useDark.matches; - var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input'); - var $darkModeToggles = document.querySelectorAll('.dark-mode-switch'); - var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state'); - - function checkToggle(check) { - for (var i = 0; i < $darkModeToggleSwitchers.length; i++) { - $darkModeToggleSwitchers[i].checked = check; - } - } - - function toggleDarkMode(state) { - if (window.localStorage) { - localStorage.setItem('compodoc_darkmode-state', state); - } - - checkToggle(state); - - const hasClass = document.body.classList.contains('dark'); - - if (state) { - for (var i = 0; i < $darkModeToggles.length; i++) { - $darkModeToggles[i].classList.add('dark'); - } - if (!hasClass) { - document.body.classList.add('dark'); - } - } else { - for (var i = 0; i < $darkModeToggles.length; i++) { - $darkModeToggles[i].classList.remove('dark'); - } - if (hasClass) { - document.body.classList.remove('dark'); - } - } - } - - useDark.addEventListener('change', function (evt) { - toggleDarkMode(evt.matches); - }); - if (darkModeStateLocal) { - darkModeState = darkModeStateLocal === 'true'; - } - toggleDarkMode(darkModeState); - - if ($darkModeToggles.length > 0) { - for (var i = 0; i < $darkModeToggleSwitchers.length; i++) { - $darkModeToggleSwitchers[i].addEventListener('change', function (event) { - darkModeState = !darkModeState; - toggleDarkMode(darkModeState); - }); - } - } - }, 0); -}); diff --git a/frontend/documentation/js/routes.js b/frontend/documentation/js/routes.js deleted file mode 100644 index bfd875c..0000000 --- a/frontend/documentation/js/routes.js +++ /dev/null @@ -1,280 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - - function htmlEntities(str) { - return String(str).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); - } - - function foundLazyModuleWithPath(path) { - //path is like app/customers/customers.module#CustomersModule - var split = path.split('#'), - lazyModulePath = split[0], - lazyModuleName = split[1]; - return lazyModuleName; - } - - function getBB(selection) { - selection.each(function(d){d.bbox = this.getBBox();}) - } - - var test_cases, - test_case, - test_case_num, - engine; - - var tree = ROUTES_INDEX; - - function cleanStringChildren(obj) { - for (var property in obj) { - if (obj.hasOwnProperty(property)) { - if (property === 'children' && typeof obj[property] === 'object') { - for (var i = obj[property].length - 1; i >= 0 ; i--) { - if (typeof obj[property][i] === 'string') { - obj[property].splice(i, 1); - } - } - } - if (typeof obj[property] === 'object') { - cleanStringChildren(obj[property]); - } - } - } - } - cleanStringChildren(tree); - - engine = d3.layout.tree().setNodeSizes(true); - - engine.spacing(function(a, b) { - return a.parent == b.parent ? - 0 : engine.rootXSize(); - }) - - engine.nodeSize(function(d) { - return [document.getElementById(d.id).getBBox()["height"] + 70, document.getElementById(d.id).getBBox()["width"] + 30]; - }); - - var nodes = d3.layout.hierarchy()(tree), - - svg = d3.select("#body-routes").append('svg'), - svg_g = svg.append("g"), - svg_p = svg.append("g"), - last_id = 0, - - node = svg_g.selectAll(".node") - .data(nodes, function(d) { - return d.id || (d.id = ++last_id); - }) - .enter().append("g") - .attr("class", "node"); - - svg - .attr('id', 'main') - - svg_g - .attr("transform", "translate(20,0)") - .attr('id', 'main-group') - - svg_p - .attr("transform", "translate(20,0)") - .attr('id', 'paths') - - var infos_group = node.append("g") - .attr({ - "id": function(d) { - return d.id; - }, - dx: 0, - dy: 0, - }) - - //Node icon - infos_group.append("text") - .attr('font-family', 'Ionicons') - .attr("y", 5) - .attr("x", 0) - .attr('class', function(d) { - return d.children || d._children - ? "icon has-children" - : "icon"; - }) - .attr('font-size', function(d) { - return '15px' - }).text(function(d) { - return '\uf183' - }); - - //node infos - infos_group.append("svg:text") - .attr("x", function(d) { - return 0; - }) - .attr("y", function(d) { - return 10; - }) - .attr("dy", ".35em") - .attr('class', 'text') - .attr("text-anchor", function(d) { - return "start"; - }).html(function(d) { - // if kind === module name + module - // if kind === component component + path - var _name = ''; - if (d.kind === 'module') { - if (d.module) { - _name += '' + d.module + ''; - if (d.name) { - _name += '' + d.name + ''; - } - } else { - _name += '' + htmlEntities(d.name) + ''; - } - } else if (d.kind === 'component') { - _name += '' + d.path + '' - _name += '' + d.component + '' - if (d.outlet) { - _name += '<outlet> : ' + d.outlet + '' - } - } else { - _name += '/' + d.path + '' - if (d.component) { - _name += '' + d.component + '' - } - if (d.loadChildren) { - var moduleName = foundLazyModuleWithPath(d.loadChildren); - _name += '' + moduleName + '' - } - if (d.canActivate) { - _name += '✓ canActivate' - } - if (d.canDeactivate) { - _name += '×  canDeactivate' - } - if (d.canActivateChild) { - _name += '✓ canActivateChild' - } - if (d.canLoad) { - _name += '→ canLoad' - } - if (d.redirectTo) { - _name += '→ ' + d.redirectTo + '' - } - if (d.pathMatch) { - _name += '> ' + d.pathMatch + '' - } - if (d.outlet) { - _name += '<outlet> : ' + d.outlet + '' - } - } - return _name; - }) - .call(getBB); - - // - // Node lazy loaded ? - // - infos_group.append('svg:text') - .attr("y", function(d) { - return 45; - }) - .attr("x", function(d) { - return -18; - }) - .attr('font-family', 'Ionicons') - .attr('class', function(d) { - return "icon"; - }) - .attr('font-size', function(d) { - return '15px' - }).text(function(d) { - var _text = ''; - if (d.loadChildren) { - _text = '\uf4c1'; - } - if (d.guarded) { - _text = '\uf1b0'; - } - return _text; - }); - - //Node text background - infos_group.insert("rect","text") - .attr("width", function(d){ - return d.bbox.width; - }) - .attr("height", function(d){ - return d.bbox.height; - }) - .attr("y", function(d) { - return 15; - }) - .style("fill", "white") - .style("fill-opacity", 0.75); - - nodes = engine.nodes(tree); - - function node_extents(n) { - return [n.x - n.x_size / 2, n.y, - n.x + n.x_size / 2, n.y + n.y_size - ]; - } - var root_extents = node_extents(nodes[0]); - var xmin = root_extents[0], - ymin = root_extents[1], - xmax = root_extents[2], - ymax = root_extents[3], - area_sum = (xmax - xmin) * (ymax - ymin), - x_size_min = nodes[0].x_size, - y_size_min = nodes[0].y_size; - - nodes.slice(1).forEach(function(n) { - var ne = node_extents(n); - xmin = Math.min(xmin, ne[0]); - ymin = Math.min(ymin, ne[1]); - xmax = Math.max(xmax, ne[2]); - ymax = Math.max(ymax, ne[3]); - area_sum += (ne[2] - ne[0]) * (ne[3] - ne[1]); - x_size_min = Math.min(x_size_min, n.x_size); - y_size_min = Math.min(y_size_min, n.y_size); - }); - - var area_ave = area_sum / nodes.length; - var scale = 80 / Math.sqrt(area_ave); - - function svg_x(node_y) { - return (node_y - ymin); - } - - function svg_y(node_x) { - return (node_x - xmin) * scale; - } - - - var nodebox_right_margin = Math.min(x_size_min * scale, 10); - var nodebox_vertical_margin = Math.min(y_size_min * scale, 3); - - node.attr("transform", function(d) { - return "translate(" + svg_x(d.y) + "," + svg_y(d.x) + ")"; - }) - - var diagonal = d3.svg.diagonal() - .projection(function(d) { - return [svg_x(d.y), svg_y(d.x)]; - }); - - var links = engine.links(nodes); - var links = svg_p.selectAll(".link") - .data(links) - .enter().append("path") - .attr("class", "link") - .attr("d", diagonal); - - var _svg = document.getElementById('main'), - main_g = _svg.childNodes[0] - - _svg.removeChild(main_g); - _svg.appendChild(main_g); - - svg.attr({ - width: document.getElementById('main-group').getBBox()['width'] + 30, - height: document.getElementById('main-group').getBBox()['height'] + 50, - }); -}); diff --git a/frontend/documentation/js/search/lunr.min.js b/frontend/documentation/js/search/lunr.min.js deleted file mode 100644 index cdc94cd..0000000 --- a/frontend/documentation/js/search/lunr.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */ -!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/frontend/documentation/js/search/search_index.js b/frontend/documentation/js/search/search_index.js deleted file mode 100644 index 2f2bbea..0000000 --- a/frontend/documentation/js/search/search_index.js +++ /dev/null @@ -1,4 +0,0 @@ -var COMPODOC_SEARCH_INDEX = { - "index": {"version":"2.3.9","fields":["title","body"],"fieldVectors":[["title/coverage.html",[0,1.5]],["body/coverage.html",[0,1.342,1,2.008,2,2.008,3,2.008,4,2.008,5,2.008,6,1.342,7,2.008,8,2.008,9,0.121,10,0.121,11,0.121]],["title/dependencies.html",[12,0.641,13,1.34]],["body/dependencies.html",[9,0.084,10,0.084,11,0.147,13,0.781,14,1.168,15,2.847,16,1.168,17,1.168,18,1.168,19,1.168,20,1.168,21,1.168,22,1.737,23,1.737,24,1.168,25,1.168,26,1.737,27,0.781,28,1.168,29,1.737,30,1.168,31,1.168,32,1.168,33,1.168,34,1.168,35,1.168,36,1.168,37,1.168,38,1.168,39,1.168]],["title/index.html",[40,1.424,41,1.424,42,1.424]],["body/index.html",[6,0.554,9,0.064,10,0.064,11,0.064,12,0.373,27,1.116,43,0.829,44,1.332,45,0.829,46,1.669,47,0.554,48,0.829,49,0.829,50,1.332,51,2.094,52,2.351,53,0.829,54,0.829,55,0.829,56,0.829,57,0.829,58,0.829,59,0.829,60,0.829,61,0.829,62,0.829,63,0.829,64,0.829,65,1.669,66,1.669,67,0.829,68,1.669,69,0.829,70,1.912,71,0.829,72,0.829,73,0.829,74,0.829,75,1.332,76,1.332,77,1.912,78,0.829,79,1.332,80,1.332,81,0.829,82,2.237,83,0.829,84,0.829,85,0.829,86,1.332,87,0.829,88,0.829,89,0.829,90,0.829,91,0.829,92,0.829,93,0.829,94,1.669,95,0.829,96,0.829,97,0.829,98,0.829,99,0.373,100,0.829,101,0.829]],["title/modules.html",[102,1.5]],["body/modules.html",[9,0.131,10,0.131,11,0.131,102,1.53]],["title/overview.html",[99,1.01]],["body/overview.html",[9,0.131,10,0.131,11,0.131,99,1.03]],["title/properties.html",[12,0.641,103,1.34]],["body/properties.html",[9,0.127,10,0.127,11,0.137,47,1.454,103,1.454,104,2.175]]],"invertedIndex":[["",{"_index":11,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["0.0.0",{"_index":104,"title":{},"body":{"properties.html":{}}}],["0.11.4",{"_index":39,"title":{},"body":{"dependencies.html":{}}}],["14.2.0",{"_index":15,"title":{},"body":{"dependencies.html":{}}}],["14.2.5",{"_index":48,"title":{},"body":{"index.html":{}}}],["2.3.0",{"_index":37,"title":{},"body":{"dependencies.html":{}}}],["20.3.50",{"_index":29,"title":{},"body":{"dependencies.html":{}}}],["3.6.1",{"_index":33,"title":{},"body":{"dependencies.html":{}}}],["7.5.0",{"_index":35,"title":{},"body":{"dependencies.html":{}}}],["add",{"_index":89,"title":{},"body":{"index.html":{}}}],["angular",{"_index":27,"title":{},"body":{"dependencies.html":{},"index.html":{}}}],["angular/animations",{"_index":14,"title":{},"body":{"dependencies.html":{}}}],["angular/cdk",{"_index":16,"title":{},"body":{"dependencies.html":{}}}],["angular/common",{"_index":17,"title":{},"body":{"dependencies.html":{}}}],["angular/compiler",{"_index":18,"title":{},"body":{"dependencies.html":{}}}],["angular/core",{"_index":19,"title":{},"body":{"dependencies.html":{}}}],["angular/forms",{"_index":20,"title":{},"body":{"dependencies.html":{}}}],["angular/material",{"_index":21,"title":{},"body":{"dependencies.html":{}}}],["angular/platform",{"_index":22,"title":{},"body":{"dependencies.html":{}}}],["angular/router",{"_index":25,"title":{},"body":{"dependencies.html":{}}}],["application",{"_index":57,"title":{},"body":{"index.html":{}}}],["artifacts",{"_index":71,"title":{},"body":{"index.html":{}}}],["automatically",{"_index":58,"title":{},"body":{"index.html":{}}}],["browser",{"_index":23,"title":{},"body":{"dependencies.html":{}}}],["build",{"_index":70,"title":{},"body":{"index.html":{}}}],["capabilities",{"_index":92,"title":{},"body":{"index.html":{}}}],["change",{"_index":60,"title":{},"body":{"index.html":{}}}],["check",{"_index":97,"title":{},"body":{"index.html":{}}}],["choice",{"_index":85,"title":{},"body":{"index.html":{}}}],["cli",{"_index":46,"title":{},"body":{"index.html":{}}}],["code",{"_index":63,"title":{},"body":{"index.html":{}}}],["command",{"_index":86,"title":{},"body":{"index.html":{}}}],["component",{"_index":66,"title":{},"body":{"index.html":{}}}],["coverage",{"_index":0,"title":{"coverage.html":{}},"body":{"coverage.html":{}}}],["dependencies",{"_index":13,"title":{"dependencies.html":{}},"body":{"dependencies.html":{}}}],["dev",{"_index":54,"title":{},"body":{"index.html":{}}}],["development",{"_index":49,"title":{},"body":{"index.html":{}}}],["directive|pipe|service|class|guard|interface|enum|module",{"_index":69,"title":{},"body":{"index.html":{}}}],["directory",{"_index":74,"title":{},"body":{"index.html":{}}}],["dist",{"_index":73,"title":{},"body":{"index.html":{}}}],["documentation",{"_index":1,"title":{},"body":{"coverage.html":{}}}],["dynamic",{"_index":24,"title":{},"body":{"dependencies.html":{}}}],["e2e",{"_index":83,"title":{},"body":{"index.html":{}}}],["end",{"_index":82,"title":{},"body":{"index.html":{}}}],["execute",{"_index":79,"title":{},"body":{"index.html":{}}}],["file",{"_index":2,"title":{},"body":{"coverage.html":{}}}],["files",{"_index":62,"title":{},"body":{"index.html":{}}}],["first",{"_index":88,"title":{},"body":{"index.html":{}}}],["further",{"_index":93,"title":{},"body":{"index.html":{}}}],["gantt",{"_index":28,"title":{},"body":{"dependencies.html":{}}}],["generate",{"_index":65,"title":{},"body":{"index.html":{}}}],["generated",{"_index":45,"title":{},"body":{"index.html":{}}}],["getting",{"_index":40,"title":{"index.html":{}},"body":{}}],["go",{"_index":96,"title":{},"body":{"index.html":{}}}],["help",{"_index":94,"title":{},"body":{"index.html":{}}}],["http://localhost:4200",{"_index":56,"title":{},"body":{"index.html":{}}}],["identifier",{"_index":4,"title":{},"body":{"coverage.html":{}}}],["implements",{"_index":90,"title":{},"body":{"index.html":{}}}],["index",{"_index":42,"title":{"index.html":{}},"body":{}}],["jquery",{"_index":32,"title":{},"body":{"dependencies.html":{}}}],["karma",{"_index":81,"title":{},"body":{"index.html":{}}}],["matching",{"_index":10,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["material",{"_index":30,"title":{},"body":{"dependencies.html":{}}}],["modules",{"_index":102,"title":{"modules.html":{}},"body":{"modules.html":{}}}],["more",{"_index":95,"title":{},"body":{"index.html":{}}}],["name",{"_index":67,"title":{},"body":{"index.html":{}}}],["navigate",{"_index":55,"title":{},"body":{"index.html":{}}}],["need",{"_index":87,"title":{},"body":{"index.html":{}}}],["new",{"_index":6,"title":{},"body":{"coverage.html":{},"index.html":{}}}],["ng",{"_index":52,"title":{},"body":{"index.html":{}}}],["out",{"_index":98,"title":{},"body":{"index.html":{}}}],["overview",{"_index":99,"title":{"overview.html":{}},"body":{"index.html":{},"overview.html":{}}}],["package",{"_index":12,"title":{"dependencies.html":{},"properties.html":{}},"body":{"index.html":{}}}],["page",{"_index":101,"title":{},"body":{"index.html":{}}}],["platform",{"_index":84,"title":{},"body":{"index.html":{}}}],["project",{"_index":44,"title":{},"body":{"index.html":{}}}],["properties",{"_index":103,"title":{"properties.html":{}},"body":{"properties.html":{}}}],["reference",{"_index":100,"title":{},"body":{"index.html":{}}}],["reload",{"_index":59,"title":{},"body":{"index.html":{}}}],["results",{"_index":9,"title":{},"body":{"coverage.html":{},"dependencies.html":{},"index.html":{},"modules.html":{},"overview.html":{},"properties.html":{}}}],["run",{"_index":51,"title":{},"body":{"index.html":{}}}],["running",{"_index":75,"title":{},"body":{"index.html":{}}}],["rxjs",{"_index":34,"title":{},"body":{"dependencies.html":{}}}],["scaffolding",{"_index":64,"title":{},"body":{"index.html":{}}}],["serve",{"_index":53,"title":{},"body":{"index.html":{}}}],["server",{"_index":50,"title":{},"body":{"index.html":{}}}],["source",{"_index":61,"title":{},"body":{"index.html":{}}}],["started",{"_index":41,"title":{"index.html":{}},"body":{}}],["statements",{"_index":5,"title":{},"body":{"coverage.html":{}}}],["stored",{"_index":72,"title":{},"body":{"index.html":{}}}],["syncfusion/ej2",{"_index":26,"title":{},"body":{"dependencies.html":{}}}],["syncfusiongantt",{"_index":43,"title":{},"body":{"index.html":{}}}],["table",{"_index":8,"title":{},"body":{"coverage.html":{}}}],["tablesort(document.getelementbyid('coverage",{"_index":7,"title":{},"body":{"coverage.html":{}}}],["test",{"_index":78,"title":{},"body":{"index.html":{}}}],["testing",{"_index":91,"title":{},"body":{"index.html":{}}}],["tests",{"_index":77,"title":{},"body":{"index.html":{}}}],["theme",{"_index":31,"title":{},"body":{"dependencies.html":{}}}],["tslib",{"_index":36,"title":{},"body":{"dependencies.html":{}}}],["type",{"_index":3,"title":{},"body":{"coverage.html":{}}}],["unit",{"_index":76,"title":{},"body":{"index.html":{}}}],["use",{"_index":68,"title":{},"body":{"index.html":{}}}],["version",{"_index":47,"title":{},"body":{"index.html":{},"properties.html":{}}}],["via",{"_index":80,"title":{},"body":{"index.html":{}}}],["zone.js",{"_index":38,"title":{},"body":{"dependencies.html":{}}}]],"pipeline":["stemmer"]}, - "store": {"coverage.html":{"url":"coverage.html","title":"coverage - coverage","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n Documentation coverage\n\n\n\n \n\n\n\n \n \n File\n Type\n Identifier\n Statements\n \n \n \n \n\n\n\n\n\n new Tablesort(document.getElementById('coverage-table'));\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"dependencies.html":{"url":"dependencies.html","title":"package-dependencies - dependencies","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Dependencies\n \n \n \n @angular/animations : ^14.2.0\n \n @angular/cdk : ^14.2.0\n \n @angular/common : ^14.2.0\n \n @angular/compiler : ^14.2.0\n \n @angular/core : ^14.2.0\n \n @angular/forms : ^14.2.0\n \n @angular/material : ^14.2.0\n \n @angular/platform-browser : ^14.2.0\n \n @angular/platform-browser-dynamic : ^14.2.0\n \n @angular/router : ^14.2.0\n \n @syncfusion/ej2-angular-gantt : ^20.3.50\n \n @syncfusion/ej2-material-theme : ~20.3.50\n \n jquery : ^3.6.1\n \n rxjs : ~7.5.0\n \n tslib : ^2.3.0\n \n zone.js : ~0.11.4\n \n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"index.html":{"url":"index.html","title":"getting-started - index","body":"\n \n\nSyncfusionGantt\nThis project was generated with Angular CLI version 14.2.5.\nDevelopment server\nRun ng serve for a dev server. Navigate to http://localhost:4200/. The application will automatically reload if you change any of the source files.\nCode scaffolding\nRun ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.\nBuild\nRun ng build to build the project. The build artifacts will be stored in the dist/ directory.\nRunning unit tests\nRun ng test to execute the unit tests via Karma.\nRunning end-to-end tests\nRun ng e2e to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.\nFurther help\nTo get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"modules.html":{"url":"modules.html","title":"modules - modules","body":"\n \n\n\n\n\n Modules\n\n\n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"overview.html":{"url":"overview.html","title":"overview - overview","body":"\n \n\n\n\n Overview\n\n \n\n \n \n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"},"properties.html":{"url":"properties.html","title":"package-properties - properties","body":"\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n Properties\n \n \n \n Version : 0.0.0\n \n\n\n\n\n\n \n \n results matching \"\"\n \n \n \n No results matching \"\"\n \n\n"}} -} diff --git a/frontend/documentation/js/sourceCode.js b/frontend/documentation/js/sourceCode.js deleted file mode 100644 index 541dbd1..0000000 --- a/frontend/documentation/js/sourceCode.js +++ /dev/null @@ -1,58 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - var $tabSource = document.querySelector('#source-tab'), - $tabInfo = document.querySelector('#info-tab'), - $tabReadme = document.querySelector('#readme-tab'), - $tabTemplate = document.querySelector('#templateData-tab'), - $tabTree = document.querySelector('#tree-tab'), - $tabExample = document.querySelector('#example-tab'), - $prismPre = document.querySelector('pre.compodoc-sourcecode'); - if ($tabSource && $prismPre) { - $prismCode = $prismPre.querySelector('code'), - $content = document.querySelector('.content'), - prismLinks = document.querySelectorAll('.link-to-prism') - - for (var i = 0; i < prismLinks.length; i++) { - prismLinks[i].addEventListener('click', linkToPrism, false); - } - - function linkToPrism(event) { - var targetLine = event.target.getAttribute('data-line'); - event.preventDefault(); - - $prismPre.setAttribute('data-line', targetLine); - Prism.highlightElement($prismCode, function() {}); - - $tabSource.click(); - - setTimeout(function() { - var $prismHighlightLine = document.querySelector('.line-highlight'), - top = parseInt(getComputedStyle($prismHighlightLine)['top']); - $content.scrollTop = top; - }, 500); - }; - - window.onhashchange = function(event) { - switch (window.location.hash) { - case '': - case '#info': - $tabInfo.click(); - break; - case '#readme': - $tabReadme.click(); - break; - case '#source': - $tabSource.click(); - break; - case '#template': - $tabTemplate.click(); - break; - case '#dom-tree': - $tabTree.click(); - break; - case '#example': - $tabExample.click(); - break; - } - } - } -}); diff --git a/frontend/documentation/js/svg-pan-zoom.controls.js b/frontend/documentation/js/svg-pan-zoom.controls.js deleted file mode 100644 index ea6d138..0000000 --- a/frontend/documentation/js/svg-pan-zoom.controls.js +++ /dev/null @@ -1,53 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - if (document.getElementById('module-graph-svg')) { - panZoom = svgPanZoom(document.getElementById('module-graph-svg').querySelector('svg'), { - zoomEnabled: true, - minZoom: 1, - maxZoom: 5 - }); - - document.getElementById('zoom-in').addEventListener('click', function(ev) { - ev.preventDefault(); - panZoom.zoomIn(); - }); - - document.getElementById('zoom-out').addEventListener('click', function(ev) { - ev.preventDefault(); - panZoom.zoomOut(); - }); - - document.getElementById('reset').addEventListener('click', function(ev) { - ev.preventDefault(); - panZoom.resetZoom(); - panZoom.resetPan(); - }); - - var overviewFullscreen = false, - originalOverviewHeight; - - document.getElementById('fullscreen').addEventListener('click', function(ev) { - if (overviewFullscreen) { - document.getElementById('module-graph-svg').style.height = originalOverviewHeight; - overviewFullscreen = false; - if (ev.target) { - ev.target.classList.remove('ion-md-close'); - ev.target.classList.add('ion-ios-resize'); - } - } else { - originalOverviewHeight = document.getElementById('module-graph-svg').style.height; - document.getElementById('module-graph-svg').style.height = '85vh'; - overviewFullscreen = true; - if (ev.target) { - ev.target.classList.remove('ion-ios-resize'); - ev.target.classList.add('ion-md-close'); - } - } - document.getElementById('module-graph-svg').querySelector('svg').style.height = document.getElementById('module-graph-svg').clientHeight; - setTimeout(function() { - panZoom.resize(); - panZoom.fit(); - panZoom.center(); - }, 0) - }); - } -}); diff --git a/frontend/documentation/js/tabs.js b/frontend/documentation/js/tabs.js deleted file mode 100644 index dbe4c28..0000000 --- a/frontend/documentation/js/tabs.js +++ /dev/null @@ -1,21 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - var tabs = document.getElementsByClassName('nav-tabs'), - updateAddress = function(e) { - if(history.pushState && e.target.dataset.link) { - history.pushState(null, null, '#' + e.target.dataset.link); - } - }; - if (tabs.length > 0) { - tabs = tabs[0].querySelectorAll('li'); - for (var i = 0; i < tabs.length; i++) { - tabs[i].addEventListener('click', updateAddress); - var linkTag = tabs[i].querySelector('a'); - if (location.hash !== '') { - var currentHash = location.hash.substr(1); - if (currentHash === linkTag.dataset.link) { - linkTag.click(); - } - } - } - } -}); diff --git a/frontend/documentation/js/tree.js b/frontend/documentation/js/tree.js deleted file mode 100644 index f79e1d7..0000000 --- a/frontend/documentation/js/tree.js +++ /dev/null @@ -1,147 +0,0 @@ -document.addEventListener('DOMContentLoaded', function() { - var tabs = document.getElementsByClassName('nav-tabs')[0], - tabsCollection = tabs.getElementsByTagName('A'), - treeTab; - var len = tabsCollection.length; - for(var i = 0; i < len; i++) { - if (tabsCollection[i].getAttribute('id') === 'tree-tab') { - treeTab = tabsCollection[i]; - } - } - - // short-circuit if no tree tab - if (!treeTab) return; - - var handler = new Tautologistics.NodeHtmlParser.HtmlBuilder(function(error, dom) { - if (error) { - console.log('handler ko'); - } - }), - parser = new Tautologistics.NodeHtmlParser.Parser(handler), - currentLocation = window.location; - parser.parseComplete(COMPONENT_TEMPLATE); - - var newNodes = [], - newEdges = [], - parsedHtml = handler.dom[0], - nodeCount = 0, - nodeLevel = 0; - - newNodes.push({ - _id: 0, - label: parsedHtml.name, - type: parsedHtml.type - }) - //Add id for nodes - var traverseIds = function(o) { - for (i in o) { - if (!!o[i] && typeof(o[i]) == "object") { - if (!o[i].length && o[i].type === 'tag') { - nodeCount += 1; - o[i]._id = nodeCount; - } - traverseIds(o[i]); - } - } - } - parsedHtml._id = 0; - traverseIds(parsedHtml); - - - var DeepIterator = deepIterator.default, - it = DeepIterator(parsedHtml); - for (let { - value, - parent, - parentNode, - key, - type - } of it) { - if (type === 'NonIterableObject' && typeof key !== 'undefined' && value.type === 'tag') { - var newNode = { - id: value._id, - label: value.name, - type: value.type - }; - for(var i = 0; i < COMPONENTS.length; i++) { - if (COMPONENTS[i].selector === value.name) { - newNode.font = { - multi: 'html' - }; - newNode.label = '' + newNode.label + ''; - newNode.color = '#FB7E81'; - newNode.name = COMPONENTS[i].name; - } - } - for(var i = 0; i < DIRECTIVES.length; i++) { - if (value.attributes) { - for(attr in value.attributes) { - if (DIRECTIVES[i].selector.indexOf(attr) !== -1) { - newNode.font = { - multi: 'html' - }; - newNode.label = '' + newNode.label + ''; - newNode.color = '#FF9800'; - newNode.name = DIRECTIVES[i].name; - } - } - } - } - newNodes.push(newNode); - newEdges.push({ - from: parentNode._parent._id, - to: value._id, - arrows: 'to' - }); - } - } - - newNodes.shift(); - - var container = document.getElementById('tree-container'), - data = { - nodes: newNodes, - edges: newEdges - }, - options = { - layout: { - hierarchical: { - sortMethod: 'directed', - enabled: true - } - }, - nodes: { - shape: 'ellipse', - fixed: true - } - }, - - handleClickNode = function(params) { - var clickeNodeId; - if (params.nodes.length > 0) { - clickeNodeId = params.nodes[0]; - for(var i = 0; i < newNodes.length; i++) { - if (newNodes[i].id === clickeNodeId) { - for(var j = 0; j < COMPONENTS.length; j++) { - if (COMPONENTS[j].name === newNodes[i].name) { - document.location.href = currentLocation.origin + currentLocation.pathname.replace(ACTUAL_COMPONENT.name, newNodes[i].name); - } - } - } - } - } - }, - - loadTree = function () { - setTimeout(function() { - container.style.height = document.getElementsByClassName('content')[0].offsetHeight - 140 + 'px'; - var network = new vis.Network(container, data, options); - network.on('click', handleClickNode); - }, 200); // Fade is 0.150 - }; - - loadTree(); - treeTab.addEventListener('click', function() { - loadTree(); - }); -}); diff --git a/frontend/documentation/modules.html b/frontend/documentation/modules.html deleted file mode 100644 index dc58d2e..0000000 --- a/frontend/documentation/modules.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - - - - - -
        -
        - - -
        -
        - - - - -
        -
        -
        -
        - - - - - - - - - - - - - - - - - - -
        -
        -

        results matching ""

        -
          -
          -
          -

          No results matching ""

          -
          -
          -
          - -
          -
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/overview.html b/frontend/documentation/overview.html deleted file mode 100644 index 5fc568c..0000000 --- a/frontend/documentation/overview.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - - - - - -
          -
          - - -
          -
          - - - - -
          -
          -
          -
          - - - - - - - - - - - - - - - - - - - - -
          -
          -

          results matching ""

          -
            -
            -
            -

            No results matching ""

            -
            -
            -
            - -
            -
            - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/properties.html b/frontend/documentation/properties.html deleted file mode 100644 index 66a9e15..0000000 --- a/frontend/documentation/properties.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - syncfusion-gantt documentation - - - - - - - - - - - - - -
            -
            - - -
            -
            - - - - - - - - - - - - - - - - - -
              -
            • - Version : 0.0.0
            • -
            - - - - - -
            -
            -

            results matching ""

            -
              -
              -
              -

              No results matching ""

              -
              -
              -
              - -
              -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/frontend/documentation/styles/bootstrap.min.css b/frontend/documentation/styles/bootstrap.min.css deleted file mode 100644 index 5b96335..0000000 --- a/frontend/documentation/styles/bootstrap.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v3.4.1 (https://getbootstrap.com/) - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:"Glyphicons Halflings";src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(../fonts/glyphicons-halflings-regular.woff2) format("woff2"),url(../fonts/glyphicons-halflings-regular.woff) format("woff"),url(../fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:.65;-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;background-image:none;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;background-image:none;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;background-image:none;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;background-image:none;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;background-image:none;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/frontend/documentation/styles/compodoc.css b/frontend/documentation/styles/compodoc.css deleted file mode 100644 index 63ecd13..0000000 --- a/frontend/documentation/styles/compodoc.css +++ /dev/null @@ -1,1082 +0,0 @@ -body { - position: absolute; - width: 100%; - height: 100%; - font-family: 'Roboto', sans-serif; -} - -/* roboto-300 - latin */ - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 300; - src: url('../fonts/roboto-v15-latin-300.eot'); - /* IE9 Compat Modes */ - src: local('Roboto Light'), local('Roboto-Light'), - url('../fonts/roboto-v15-latin-300.eot?#iefix') format('embedded-opentype'), - /* IE6-IE8 */ url('../fonts/roboto-v15-latin-300.woff2') format('woff2'), - /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-300.woff') format('woff'), - /* Modern Browsers */ url('../fonts/roboto-v15-latin-300.ttf') format('truetype'), - /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-300.svg#Roboto') format('svg'); - /* Legacy iOS */ -} - -/* roboto-regular - latin */ - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: url('../fonts/roboto-v15-latin-regular.eot'); - /* IE9 Compat Modes */ - src: local('Roboto'), local('Roboto-Regular'), - url('../fonts/roboto-v15-latin-regular.eot?#iefix') format('embedded-opentype'), - /* IE6-IE8 */ url('../fonts/roboto-v15-latin-regular.woff2') format('woff2'), - /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-regular.woff') format('woff'), - /* Modern Browsers */ url('../fonts/roboto-v15-latin-regular.ttf') format('truetype'), - /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-regular.svg#Roboto') format('svg'); - /* Legacy iOS */ -} - -/* roboto-700 - latin */ - -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 700; - src: url('../fonts/roboto-v15-latin-700.eot'); - /* IE9 Compat Modes */ - src: local('Roboto Bold'), local('Roboto-Bold'), - url('../fonts/roboto-v15-latin-700.eot?#iefix') format('embedded-opentype'), - /* IE6-IE8 */ url('../fonts/roboto-v15-latin-700.woff2') format('woff2'), - /* Super Modern Browsers */ url('../fonts/roboto-v15-latin-700.woff') format('woff'), - /* Modern Browsers */ url('../fonts/roboto-v15-latin-700.ttf') format('truetype'), - /* Safari, Android, iOS */ url('../fonts/roboto-v15-latin-700.svg#Roboto') format('svg'); - /* Legacy iOS */ -} - -h1 { - font-size: 26px; -} - -h2 { - font-size: 22px; -} - -h3 { - font-size: 20px; - font-weight: bold; -} - -h4, -h5 { - font-size: 18px; -} - -h6 { - font-size: 16px; -} - -a[href] { - cursor: pointer; -} - -/** - * Mobile navbar - */ - -.navbar { - min-height: 50px; -} - -.navbar-brand { - height: 50px; - font-size: 14px; - line-height: 20px; - padding: 15px; -} - -.navbar-static-top { - margin-bottom: 0; - height: 50px; -} - -/** - * Main container - */ - -.container-fluid { - overflow-y: hidden; - overflow-x: hidden; -} - -.container-fluid.main { - height: 100%; - padding: 0; -} - -.tab-content.overview { - margin-top: 50px; - margin-left: 15px; -} - -.container-fluid.modules, -.container-fluid.components, -.container-fluid.directives, -.container-fluid.classes, -.container-fluid.injectables, -.container-fluid.pipes, -.content.routes table { - margin-top: 25px; -} - -.container-fluid.modules { - width: 100%; - overflow-y: auto; -} - -.container-fluid.module { - padding: 0; - margin-top: 0; -} - -.container-fluid.module h3 a { - margin-left: 10px; - color: #333; -} - -.row.main { - height: 100%; - margin: 0; -} - -/** - * Copyright - */ - -.copyright { - margin: 0; - padding: 15px; - text-align: center; - display: flex; - flex-direction: column; - align-items: center; - z-index: 1; -} - -.copyright img { - width: 80px; - margin-top: 10px; -} - -.copyright a { - color: #009dff; - text-decoration: underline; -} - -/** - * Content - */ - -.content { - height: 100%; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - width: calc(100% - 320px); - position: absolute; - top: 0; - left: 320px; - padding: 15px 30px; -} - -.content > h1:first-of-type { - margin-top: 15px; -} - -.content > h3:first-of-type { - margin-top: 5px; -} - -.content.readme h1:first-of-type { - margin-top: 0; -} - -.content table { - margin-top: 20px; -} - -.content-data { - display: flex; - flex-direction: column; - height: 100%; -} - -.content-data .tab-content { - flex: 1; -} - -.content-data .tab-pane { - height: 100%; -} - -.content-data .exampleContainer { - height: 100%; - width: 100%; -} - -/** - * Icons - */ - -.glyphicon, -.icon { - margin-right: 10px; -} - -/** - * Menu - */ - -#book-search-input { - padding: 6px; - transition: top 0.5s ease; - background: #fff; - border-bottom: 1px solid rgba(0, 0, 0, 0.07); - border-top: 1px solid rgba(0, 0, 0, 0.07); - margin-bottom: 5px; - margin-top: -1px; -} - -#book-search-input input, -#book-search-input input:focus, -#book-search-input input:hover { - width: 100%; - background: 0 0; - border: 1px solid transparent; - box-shadow: none; - outline: 0; - line-height: 22px; - padding: 7px 7px; - color: inherit; -} - -.panel-body { - padding: 0px; -} - -.panel-group .panel-heading + .panel-collapse > .list-group, -.panel-group .panel-heading + .panel-collapse > .panel-body { - border-top: 0; -} - -.panel-body table tr td { - padding-left: 15px; -} - -.panel-body .table { - margin-bottom: 0px; -} - -.panel-group .panel:first-child { - border-top: 0; -} - -.menu { - background: #fafafa; - border-right: 1px solid #e7e7e7; - height: 100%; - padding: 0; - width: 320px; - overflow-y: auto; - -webkit-overflow-scrolling: touch; -} - -.menu ul.list { - list-style: none; - margin: 0; - padding: 0; -} - -.menu ul.list li a { - display: block; - padding: 10px 15px; - border-bottom: none; - color: #364149; - background: 0 0; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - position: relative; -} - -.menu ul.list li a.active { - color: #008cff; -} - -.menu ul.list li.divider { - height: 1px; - margin: 7px 0; - overflow: hidden; - background: rgba(0, 0, 0, 0.07); -} - -.menu ul.list li.chapter ul.links { - padding-left: 20px; -} - -.menu ul.list li.for-chapter2 { - padding-left: 0; -} - -.menu ul.list li.for-chapter3 { - padding-left: 20px; -} - -.menu ul.list li.for-chapter4 { - padding-left: 40px; -} - -.menu ul.list li.for-chapter5 { - padding-left: 60px; -} - -.menu ul.list li.chapter .simple { - padding: 10px 15px; - position: relative; -} - -.menu ul.list li.chapter .inner .simple { - padding-left: 35px; -} - -.menu ul.list li.chapter .inner ul.links { - padding-left: 40px; -} - -.menu ul.list li.chapter.additional .inner ul.links { - padding-left: 20px; -} - -.menu .panel-group { - width: 100%; - height: 100%; - overflow-y: auto; -} - -.menu .panel-default { - border-right: none; - border-left: none; - border-bottom: none; -} - -.menu .panel-group .panel-heading + .panel-collapse > .panel-body { - border-top: none; - overflow-y: auto; - max-height: 350px; -} - -.menu .panel-default:last-of-type { - border-bottom: 1px solid #ddd; -} - -.panel-group .panel + .panel { - margin-top: 0; -} - -.panel-group .panel { - z-index: 2; - position: relative; - border-radius: 0; - box-shadow: none; - border-left: 0; - border-right: 0; -} - -.menu a { - color: #3c3c3c; -} - -.xs-menu ul.list li:nth-child(2) { - margin: 0; - background: none; -} - -.menu ul.list li:nth-child(2) { - margin: 0; - background: none; -} - -.menu .title { - padding: 8px 0; -} - -.menu-toggler { - cursor: pointer; -} - -.menu-toggler .ion-ios-arrow-down, -.menu-toggler .ion-ios-arrow-up { - cursor: pointer; - padding: 5px 10px; - font-size: 16px; - position: absolute; - right: 0; - top: 7px; -} - -.overview .card-title .icon { - font-size: 50px; -} - -.overview .card-text a { - text-decoration: underline; - color: black; -} - -.overview .col-sm-3 { - width: 200px; -} - -.breadcrumb { - background: none; - padding-left: 0 !important; - margin-bottom: 10px; - font-size: 24px; - padding-top: 0; -} - -.breadcrumb a { - text-decoration: underline; - color: #333; -} - -.comment { - margin: 15px 0; -} - -.io-description { - margin: 10px 0; -} - -.io-file { - margin: 20px 0; -} - -.navbar .btn-menu { - position: absolute; - right: 0; - margin: 10px; -} - -.content ul.nav { - padding-left: 0; -} - -.xs-menu { - height: calc(100% - 50px); - display: none; - width: 100%; - overflow-y: scroll; - z-index: 1; - top: 50px; - position: absolute; -} - -.xs-menu .copyright { - margin-top: 20px; - position: relative; -} - -.tab-source-code { - padding: 10px 0; -} - -pre { - padding: 12px 12px; - border: none; - background: #23241f; -} - -code { - background: none; - padding: 2px 0; -} - -@media (max-width: 767px) { - .container-fluid { - margin-top: 50px; - } - - .container-fluid.main { - height: calc(100% - 50px); - } - - .content { - width: 100%; - left: 0; - position: relative; - } - - .menu ul.list li.title { - display: none; - } -} - -/** - * Search - */ - -.search-results { - display: none; - max-width: 800px; - margin: 0 auto; - padding: 20px 15px 40px 15px; -} - -.search-results .no-results { - display: none; -} - -.with-search .search-results { - display: block; -} - -.with-search .content-data { - display: none; -} - -.with-search .xs-menu { - height: 51px; -} - -.with-search .xs-menu nav { - display: none; -} - -.search-results.no-results .has-results { - display: none; -} - -.search-results.no-results .no-results { - display: block; -} - -.search-results .search-results-title { - text-transform: uppercase; - text-align: center; - font-weight: 200; - margin-bottom: 35px; - opacity: 0.6; -} - -.search-results ul.search-results-list { - list-style-type: none; - padding-left: 0; -} - -.search-results ul.search-results-list li { - margin-bottom: 1.5rem; - padding-bottom: 0.5rem; -} - -.search-results ul.search-results-list li p em { - background-color: rgba(255, 220, 0, 0.4); - font-style: normal; -} - -.search-results-item { - margin-bottom: 1rem !important; - margin-top: 1rem; - padding-bottom: 0 !important; -} - -.search-results-item a { - font-size: 18px; -} - -.search-results-group, -.search-results-group .search-results-list { - margin-bottom: 0 !important; -} - -.search-results-group h3 { - margin-top: 10px; -} - -.jsdoc-params { - list-style: square; - margin-top: 10px; - margin-bottom: 0 !important; -} - -.jsdoc-params li { - padding-bottom: 10px; -} - -.jsdoc-example-ul ul { - padding-left: 20px; -} - -example-url { - display: none; -} - -i { - font-style: italic; -} - -.coverage a { - color: #333; - text-decoration: underline; -} - -.coverage tr.low, -.coverage td.low { - background: rgba(216, 96, 75, 0.75); -} - -.coverage tr.medium, -.coverage td.medium { - background: rgba(218, 178, 38, 0.75); -} - -.coverage tr.good, -.coverage td.good { - background: rgba(143, 189, 8, 0.75); -} - -.coverage tr.very-good, -.coverage td.very-good { - background: rgba(77, 199, 31, 0.75); -} - -.coverage td.uncovered { - background: rgba(221, 221, 221, 0.75); -} - -.coverage-header { - background: #fafafa; -} - -thead.coverage-header > tr > td, -thead.coverage-header > tr > th { - border-bottom-width: 0; -} - -th[role='columnheader'].statements:not(.no-sort):after { - margin-left: 10px; -} - -.coverage-count { - color: grey; - font-size: 12px; - margin-left: 10px; - display: inline-block; - width: 50px; -} - -.coverage-badge { - background: #5d5d5d; - border-radius: 4px; - display: inline-block; - color: white; - padding: 4px; - padding-right: 0; - padding-left: 8px; -} - -.coverage-badge .count { - padding: 6px; - margin-left: 5px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.coverage-badge .count.low { - background: #d8624c; -} - -.coverage-badge .count.medium { - background: #dab226; -} - -.coverage-badge .count.good { - background: #8fbd08; -} - -.coverage-badge .count.very-good { - background: #4dc71f; -} - -.content ol { - list-style-type: decimal; - margin-top: 0; - padding-left: 20px; - margin-bottom: 16px; -} - -.content ul { - list-style: disc; - margin-top: 0; - padding-left: 20px; - margin-bottom: 16px; -} - -.content ul.list-group { - padding-left: 0; -} - -.content ul.list-group li.list-group-item a { - display: inline-block; - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.content ul ul { - list-style-type: circle; -} - -.compodoc-table { - width: inherit; -} - -.compodoc-table thead { - font-weight: bold; -} - -.modifier { - background: #9a9a9a; - padding: 1px 5px; - color: white; - border-radius: 4px; -} - -.modifier-icon { - color: #c7254e; -} - -.modifier-icon.method { - color: white; - background: #c7254e; - padding: 4px; - border-radius: 8px; - font-size: 10px; - margin-right: 2px; -} - -.modifier-icon.method.square { - border-radius: 4px; -} - -.modifier-icon.method.export { - display: none; -} - -.modifier-icon.method .ion-ios-radio-button-off, -.modifier-icon.method .ion-ios-square-outline { - display: none; -} - -.modifier-icon.method .ion-ios-lock { - margin-right: 0; -} - -.modifier-icon.ion-ios-reset { - margin-right: 0; -} - -/** - * Modules - */ - -.card-module { - min-height: 323px; -} - -/** - * Routes graph - */ - -.node text { - font-size: 12px; -} - -.node .icon { - font-size: 15px; - cursor: default; -} - -.node .icon.has-children { - cursor: pointer; -} - -path.link { - fill: none; - stroke: #9ecae1; - stroke-width: 1.5px; -} - -#body-routes a { - text-decoration: underline; -} - -#body-routes svg { - overflow: visible; -} - -/** - * Miscellaneous - */ - -.content.miscellaneous h2 { - margin-bottom: 20px; -} - -.content.miscellaneous h4 { - padding-top: 20px; -} - -/* highlight line */ - -.line-highlight { - background: linear-gradient(to right, hsla(0, 0%, 100%, 0.1) 70%, hsla(24, 20%, 50%, 0)); -} - -#tree-container { - width: 100%; - height: 100%; -} - -#tree { - position: relative; -} - -.tree-legend { - position: absolute; - bottom: 10px; - left: 10px; - border: 1px solid #ddd; - padding: 5px 10px; -} - -.tree-legend .title { - margin-bottom: 8px; -} - -.tree-legend .color { - width: 20px; - height: 12px; - display: inline-block; - margin-right: 5px; -} - -.tree-legend .htmlelement { - background: #97c2fc; -} - -.tree-legend .component { - background: #fb7e81; -} - -.tree-legend .directive { - background: #ff9800; -} - -#module-graph-svg { - width: 100%; - height: 250px; -} - -#module-graph-svg svg { - width: 100%; - height: 100%; -} - -.content ul.type-parameters { - margin-bottom: 5px; -} - -table.params { - width: 100%; - margin: 10px 0; - border-spacing: 0; - border: 0; - border-collapse: collapse; -} - -table.params thead { - background: #f5f5f5; - color: #525252; -} - -table.params td { - padding: 4px; - border: solid 1px #ddd; -} - -table.params td p { - margin: 0; -} - -.img-responsive { - display: inline-block; -} - -.index-table h6 { - margin-top: 5px; - margin-bottom: 5px; -} - -ul.index-list { - list-style: none; - padding: 0; - column-gap: 20px; - column-count: 3; - line-height: 25px; - margin-bottom: 0; -} - -.no-graph { - text-align: center; - height: 175px; - line-height: 175px; -} - -.name a { - display: none; - color: #6e6e6e; - margin-left: 5px; -} - -.name:hover a { - display: inline-block; -} - -.accessor b { - color: #808080; - margin-right: 8px; - font-weight: normal; -} - -.module-graph-container { - position: relative; -} - -.module-graph-container .size-buttons { - margin-top: 10px; -} - -.module-graph-fullscreen-btn { - position: absolute; - right: 5px; - top: 0; - cursor: pointer; -} - -/** - * Dependencies - */ - -.package-dependencies ul { - list-style: none; - margin: 0; -} - -.package-dependencies li { - margin: 5px 0; -} - -.deprecated { - color: #e73440; -} -.deprecated p { - margin-bottom: 0; -} -.deprecated-name, -.deprecated-name:hover { - text-decoration: line-through; -} -.deprecated-name::before { - text-decoration: none; - display: inline-block; -} - -/** - * Dark mode - */ - -.dark-mode-switch { - position: absolute; - top: 70px; - right: 15px; - display: inline-block; - width: 60px; - height: 34px; -} - -.dark-mode-switch input { - opacity: 0; - width: 0; - height: 0; -} - -.dark-mode-switch .slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #5cc0ae80; - border-radius: 34px; - transition: 0.6s; -} - -.dark-mode-switch .slider:before { - position: absolute; - content: ''; - height: 26px; - width: 26px; - left: 4px; - bottom: 4px; - background-color: white; - border-radius: 50%; - transition: 0.4s; -} - -.dark-mode-switch input:checked + .slider { - background-color: #f1c40fb8; -} - -.dark-mode-switch.dark .slider-icon { - stroke: black; -} - -.dark-mode-switch input:checked + .slider:before { - transform: translateX(26px); -} - -.dark-mode-switch .slider-icon { - transform: rotate(250deg); - position: absolute; - right: 6px; - top: 7px; - stroke: white; -} - -@media (min-width: 768px) { - .dark-mode-switch { - top: 15px; - } -} - -ul.properties-list { - list-style: none; - padding-left: 0; -} -.properties-list li { - margin-bottom: 10px; -} diff --git a/frontend/documentation/styles/dark.css b/frontend/documentation/styles/dark.css deleted file mode 100644 index b309593..0000000 --- a/frontend/documentation/styles/dark.css +++ /dev/null @@ -1,117 +0,0 @@ -body.dark { - background: #212121; - color: #fafafa; -} - -.dark code { - color: #e09393; -} - -.dark a, -.dark .menu ul.list li a.active { - color: #7fc9ff; -} - -.dark .menu { - background: #212121; - border-right: 1px solid #444; -} - -.dark .menu ul.list li a { - color: #fafafa; -} - -.dark .menu ul.list li.divider { - background: #444; -} - -.dark .xs-menu ul.list li:nth-child(2) { - margin: 0; - background: none; -} - -.dark .menu ul.list li:nth-child(2) { - margin: 0; - background: none; -} - -.dark #book-search-input { - background: #212121; - border-top: 1px solid #444; - border-bottom: 1px solid #444; - color: #fafafa; -} - -.dark .table.metadata > tbody > tr:hover { - color: #555; -} - -.dark .table-bordered { - border: 1px solid #444; -} - -.dark .table-bordered > tbody > tr > td, -.dark .table-bordered > tbody > tr > th, -.dark .table-bordered > tfoot > tr > td, -.dark .table-bordered > tfoot > tr > th, -.dark .table-bordered > thead > tr > td, -.dark .table-bordered > thead > tr > th { - border: 1px solid #444; -} - -.dark .coverage a, -.dark .coverage-count { - color: #fafafa; -} - -.dark .coverage-header { - color: black; -} - -.dark .routes svg text, -.dark .routes svg a { - fill: white; -} -.dark .routes svg rect { - fill: #212121 !important; -} - -.dark .navbar-default, -.dark .btn-default { - background-color: black; - border-color: #444; - color: #fafafa; -} - -.dark .navbar-default .navbar-brand { - color: #fafafa; -} - -.dark .overview .card, -.dark .modules .card { - background: #171717; - color: #fafafa; - border: 1px solid #444; -} -.dark .overview .card a { - color: #fafafa; -} - -.dark .modules .card-header { - background: none; - border-bottom: 1px solid #444; -} - -.dark .module .list-group-item { - background: none; - border: 1px solid #444; -} - -.dark .container-fluid.module h3 a { - color: #337ab7; -} - -.dark table.params thead { - background: #484848; - color: #fafafa; -} diff --git a/frontend/documentation/styles/ionicons.min.css b/frontend/documentation/styles/ionicons.min.css deleted file mode 100644 index e50e1bb..0000000 --- a/frontend/documentation/styles/ionicons.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - Ionicons, v4.1.2 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons - - Android-style icons originally built by Google’s - Material Design Icons: https://github.com/google/material-design-icons - used under CC BY http://creativecommons.org/licenses/by/4.0/ - Modified icons to fit ionicon’s grid from original. -*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=4.1.2");src:url("../fonts/ionicons.eot?v=4.1.2#iefix") format("embedded-opentype"),url("../fonts/ionicons.woff2?v=4.1.2") format("woff2"),url("../fonts/ionicons.woff?v=4.1.2") format("woff"),url("../fonts/ionicons.ttf?v=4.1.2") format("truetype"),url("../fonts/ionicons.svg?v=4.1.2#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-ios-add:before,.ion-ios-add-circle:before,.ion-ios-add-circle-outline:before,.ion-ios-airplane:before,.ion-ios-alarm:before,.ion-ios-albums:before,.ion-ios-alert:before,.ion-ios-american-football:before,.ion-ios-analytics:before,.ion-ios-aperture:before,.ion-ios-apps:before,.ion-ios-appstore:before,.ion-ios-archive:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-dropdown:before,.ion-ios-arrow-dropdown-circle:before,.ion-ios-arrow-dropleft:before,.ion-ios-arrow-dropleft-circle:before,.ion-ios-arrow-dropright:before,.ion-ios-arrow-dropright-circle:before,.ion-ios-arrow-dropup:before,.ion-ios-arrow-dropup-circle:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-round-back:before,.ion-ios-arrow-round-down:before,.ion-ios-arrow-round-forward:before,.ion-ios-arrow-round-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-attach:before,.ion-ios-backspace:before,.ion-ios-barcode:before,.ion-ios-baseball:before,.ion-ios-basket:before,.ion-ios-basketball:before,.ion-ios-battery-charging:before,.ion-ios-battery-dead:before,.ion-ios-battery-full:before,.ion-ios-beaker:before,.ion-ios-bed:before,.ion-ios-beer:before,.ion-ios-bicycle:before,.ion-ios-bluetooth:before,.ion-ios-boat:before,.ion-ios-body:before,.ion-ios-bonfire:before,.ion-ios-book:before,.ion-ios-bookmark:before,.ion-ios-bookmarks:before,.ion-ios-bowtie:before,.ion-ios-briefcase:before,.ion-ios-browsers:before,.ion-ios-brush:before,.ion-ios-bug:before,.ion-ios-build:before,.ion-ios-bulb:before,.ion-ios-bus:before,.ion-ios-business:before,.ion-ios-cafe:before,.ion-ios-calculator:before,.ion-ios-calendar:before,.ion-ios-call:before,.ion-ios-camera:before,.ion-ios-car:before,.ion-ios-card:before,.ion-ios-cart:before,.ion-ios-cash:before,.ion-ios-cellular:before,.ion-ios-chatboxes:before,.ion-ios-chatbubbles:before,.ion-ios-checkbox:before,.ion-ios-checkbox-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-circle:before,.ion-ios-checkmark-circle-outline:before,.ion-ios-clipboard:before,.ion-ios-clock:before,.ion-ios-close:before,.ion-ios-close-circle:before,.ion-ios-close-circle-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-circle:before,.ion-ios-cloud-done:before,.ion-ios-cloud-download:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-code:before,.ion-ios-code-download:before,.ion-ios-code-working:before,.ion-ios-cog:before,.ion-ios-color-fill:before,.ion-ios-color-filter:before,.ion-ios-color-palette:before,.ion-ios-color-wand:before,.ion-ios-compass:before,.ion-ios-construct:before,.ion-ios-contact:before,.ion-ios-contacts:before,.ion-ios-contract:before,.ion-ios-contrast:before,.ion-ios-copy:before,.ion-ios-create:before,.ion-ios-crop:before,.ion-ios-cube:before,.ion-ios-cut:before,.ion-ios-desktop:before,.ion-ios-disc:before,.ion-ios-document:before,.ion-ios-done-all:before,.ion-ios-download:before,.ion-ios-easel:before,.ion-ios-egg:before,.ion-ios-exit:before,.ion-ios-expand:before,.ion-ios-eye:before,.ion-ios-eye-off:before,.ion-ios-fastforward:before,.ion-ios-female:before,.ion-ios-filing:before,.ion-ios-film:before,.ion-ios-finger-print:before,.ion-ios-fitness:before,.ion-ios-flag:before,.ion-ios-flame:before,.ion-ios-flash:before,.ion-ios-flash-off:before,.ion-ios-flashlight:before,.ion-ios-flask:before,.ion-ios-flower:before,.ion-ios-folder:before,.ion-ios-folder-open:before,.ion-ios-football:before,.ion-ios-funnel:before,.ion-ios-gift:before,.ion-ios-git-branch:before,.ion-ios-git-commit:before,.ion-ios-git-compare:before,.ion-ios-git-merge:before,.ion-ios-git-network:before,.ion-ios-git-pull-request:before,.ion-ios-glasses:before,.ion-ios-globe:before,.ion-ios-grid:before,.ion-ios-hammer:before,.ion-ios-hand:before,.ion-ios-happy:before,.ion-ios-headset:before,.ion-ios-heart:before,.ion-ios-heart-dislike:before,.ion-ios-heart-empty:before,.ion-ios-heart-half:before,.ion-ios-help:before,.ion-ios-help-buoy:before,.ion-ios-help-circle:before,.ion-ios-help-circle-outline:before,.ion-ios-home:before,.ion-ios-hourglass:before,.ion-ios-ice-cream:before,.ion-ios-image:before,.ion-ios-images:before,.ion-ios-infinite:before,.ion-ios-information:before,.ion-ios-information-circle:before,.ion-ios-information-circle-outline:before,.ion-ios-jet:before,.ion-ios-journal:before,.ion-ios-key:before,.ion-ios-keypad:before,.ion-ios-laptop:before,.ion-ios-leaf:before,.ion-ios-link:before,.ion-ios-list:before,.ion-ios-list-box:before,.ion-ios-locate:before,.ion-ios-lock:before,.ion-ios-log-in:before,.ion-ios-log-out:before,.ion-ios-magnet:before,.ion-ios-mail:before,.ion-ios-mail-open:before,.ion-ios-mail-unread:before,.ion-ios-male:before,.ion-ios-man:before,.ion-ios-map:before,.ion-ios-medal:before,.ion-ios-medical:before,.ion-ios-medkit:before,.ion-ios-megaphone:before,.ion-ios-menu:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-microphone:before,.ion-ios-moon:before,.ion-ios-more:before,.ion-ios-move:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-notifications:before,.ion-ios-notifications-off:before,.ion-ios-notifications-outline:before,.ion-ios-nuclear:before,.ion-ios-nutrition:before,.ion-ios-open:before,.ion-ios-options:before,.ion-ios-outlet:before,.ion-ios-paper:before,.ion-ios-paper-plane:before,.ion-ios-partly-sunny:before,.ion-ios-pause:before,.ion-ios-paw:before,.ion-ios-people:before,.ion-ios-person:before,.ion-ios-person-add:before,.ion-ios-phone-landscape:before,.ion-ios-phone-portrait:before,.ion-ios-photos:before,.ion-ios-pie:before,.ion-ios-pin:before,.ion-ios-pint:before,.ion-ios-pizza:before,.ion-ios-planet:before,.ion-ios-play:before,.ion-ios-play-circle:before,.ion-ios-podium:before,.ion-ios-power:before,.ion-ios-pricetag:before,.ion-ios-pricetags:before,.ion-ios-print:before,.ion-ios-pulse:before,.ion-ios-qr-scanner:before,.ion-ios-quote:before,.ion-ios-radio:before,.ion-ios-radio-button-off:before,.ion-ios-radio-button-on:before,.ion-ios-rainy:before,.ion-ios-recording:before,.ion-ios-redo:before,.ion-ios-refresh:before,.ion-ios-refresh-circle:before,.ion-ios-remove:before,.ion-ios-remove-circle:before,.ion-ios-remove-circle-outline:before,.ion-ios-reorder:before,.ion-ios-repeat:before,.ion-ios-resize:before,.ion-ios-restaurant:before,.ion-ios-return-left:before,.ion-ios-return-right:before,.ion-ios-reverse-camera:before,.ion-ios-rewind:before,.ion-ios-ribbon:before,.ion-ios-rocket:before,.ion-ios-rose:before,.ion-ios-sad:before,.ion-ios-save:before,.ion-ios-school:before,.ion-ios-search:before,.ion-ios-send:before,.ion-ios-settings:before,.ion-ios-share:before,.ion-ios-share-alt:before,.ion-ios-shirt:before,.ion-ios-shuffle:before,.ion-ios-skip-backward:before,.ion-ios-skip-forward:before,.ion-ios-snow:before,.ion-ios-speedometer:before,.ion-ios-square:before,.ion-ios-square-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stats:before,.ion-ios-stopwatch:before,.ion-ios-subway:before,.ion-ios-sunny:before,.ion-ios-swap:before,.ion-ios-switch:before,.ion-ios-sync:before,.ion-ios-tablet-landscape:before,.ion-ios-tablet-portrait:before,.ion-ios-tennisball:before,.ion-ios-text:before,.ion-ios-thermometer:before,.ion-ios-thumbs-down:before,.ion-ios-thumbs-up:before,.ion-ios-thunderstorm:before,.ion-ios-time:before,.ion-ios-timer:before,.ion-ios-today:before,.ion-ios-train:before,.ion-ios-transgender:before,.ion-ios-trash:before,.ion-ios-trending-down:before,.ion-ios-trending-up:before,.ion-ios-trophy:before,.ion-ios-tv:before,.ion-ios-umbrella:before,.ion-ios-undo:before,.ion-ios-unlock:before,.ion-ios-videocam:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-volume-mute:before,.ion-ios-volume-off:before,.ion-ios-walk:before,.ion-ios-wallet:before,.ion-ios-warning:before,.ion-ios-watch:before,.ion-ios-water:before,.ion-ios-wifi:before,.ion-ios-wine:before,.ion-ios-woman:before,.ion-logo-android:before,.ion-logo-angular:before,.ion-logo-apple:before,.ion-logo-bitbucket:before,.ion-logo-bitcoin:before,.ion-logo-buffer:before,.ion-logo-chrome:before,.ion-logo-closed-captioning:before,.ion-logo-codepen:before,.ion-logo-css3:before,.ion-logo-designernews:before,.ion-logo-dribbble:before,.ion-logo-dropbox:before,.ion-logo-euro:before,.ion-logo-facebook:before,.ion-logo-flickr:before,.ion-logo-foursquare:before,.ion-logo-freebsd-devil:before,.ion-logo-game-controller-a:before,.ion-logo-game-controller-b:before,.ion-logo-github:before,.ion-logo-google:before,.ion-logo-googleplus:before,.ion-logo-hackernews:before,.ion-logo-html5:before,.ion-logo-instagram:before,.ion-logo-ionic:before,.ion-logo-ionitron:before,.ion-logo-javascript:before,.ion-logo-linkedin:before,.ion-logo-markdown:before,.ion-logo-model-s:before,.ion-logo-no-smoking:before,.ion-logo-nodejs:before,.ion-logo-npm:before,.ion-logo-octocat:before,.ion-logo-pinterest:before,.ion-logo-playstation:before,.ion-logo-polymer:before,.ion-logo-python:before,.ion-logo-reddit:before,.ion-logo-rss:before,.ion-logo-sass:before,.ion-logo-skype:before,.ion-logo-slack:before,.ion-logo-snapchat:before,.ion-logo-steam:before,.ion-logo-tumblr:before,.ion-logo-tux:before,.ion-logo-twitch:before,.ion-logo-twitter:before,.ion-logo-usd:before,.ion-logo-vimeo:before,.ion-logo-vk:before,.ion-logo-whatsapp:before,.ion-logo-windows:before,.ion-logo-wordpress:before,.ion-logo-xbox:before,.ion-logo-xing:before,.ion-logo-yahoo:before,.ion-logo-yen:before,.ion-logo-youtube:before,.ion-md-add:before,.ion-md-add-circle:before,.ion-md-add-circle-outline:before,.ion-md-airplane:before,.ion-md-alarm:before,.ion-md-albums:before,.ion-md-alert:before,.ion-md-american-football:before,.ion-md-analytics:before,.ion-md-aperture:before,.ion-md-apps:before,.ion-md-appstore:before,.ion-md-archive:before,.ion-md-arrow-back:before,.ion-md-arrow-down:before,.ion-md-arrow-dropdown:before,.ion-md-arrow-dropdown-circle:before,.ion-md-arrow-dropleft:before,.ion-md-arrow-dropleft-circle:before,.ion-md-arrow-dropright:before,.ion-md-arrow-dropright-circle:before,.ion-md-arrow-dropup:before,.ion-md-arrow-dropup-circle:before,.ion-md-arrow-forward:before,.ion-md-arrow-round-back:before,.ion-md-arrow-round-down:before,.ion-md-arrow-round-forward:before,.ion-md-arrow-round-up:before,.ion-md-arrow-up:before,.ion-md-at:before,.ion-md-attach:before,.ion-md-backspace:before,.ion-md-barcode:before,.ion-md-baseball:before,.ion-md-basket:before,.ion-md-basketball:before,.ion-md-battery-charging:before,.ion-md-battery-dead:before,.ion-md-battery-full:before,.ion-md-beaker:before,.ion-md-bed:before,.ion-md-beer:before,.ion-md-bicycle:before,.ion-md-bluetooth:before,.ion-md-boat:before,.ion-md-body:before,.ion-md-bonfire:before,.ion-md-book:before,.ion-md-bookmark:before,.ion-md-bookmarks:before,.ion-md-bowtie:before,.ion-md-briefcase:before,.ion-md-browsers:before,.ion-md-brush:before,.ion-md-bug:before,.ion-md-build:before,.ion-md-bulb:before,.ion-md-bus:before,.ion-md-business:before,.ion-md-cafe:before,.ion-md-calculator:before,.ion-md-calendar:before,.ion-md-call:before,.ion-md-camera:before,.ion-md-car:before,.ion-md-card:before,.ion-md-cart:before,.ion-md-cash:before,.ion-md-cellular:before,.ion-md-chatboxes:before,.ion-md-chatbubbles:before,.ion-md-checkbox:before,.ion-md-checkbox-outline:before,.ion-md-checkmark:before,.ion-md-checkmark-circle:before,.ion-md-checkmark-circle-outline:before,.ion-md-clipboard:before,.ion-md-clock:before,.ion-md-close:before,.ion-md-close-circle:before,.ion-md-close-circle-outline:before,.ion-md-cloud:before,.ion-md-cloud-circle:before,.ion-md-cloud-done:before,.ion-md-cloud-download:before,.ion-md-cloud-outline:before,.ion-md-cloud-upload:before,.ion-md-cloudy:before,.ion-md-cloudy-night:before,.ion-md-code:before,.ion-md-code-download:before,.ion-md-code-working:before,.ion-md-cog:before,.ion-md-color-fill:before,.ion-md-color-filter:before,.ion-md-color-palette:before,.ion-md-color-wand:before,.ion-md-compass:before,.ion-md-construct:before,.ion-md-contact:before,.ion-md-contacts:before,.ion-md-contract:before,.ion-md-contrast:before,.ion-md-copy:before,.ion-md-create:before,.ion-md-crop:before,.ion-md-cube:before,.ion-md-cut:before,.ion-md-desktop:before,.ion-md-disc:before,.ion-md-document:before,.ion-md-done-all:before,.ion-md-download:before,.ion-md-easel:before,.ion-md-egg:before,.ion-md-exit:before,.ion-md-expand:before,.ion-md-eye:before,.ion-md-eye-off:before,.ion-md-fastforward:before,.ion-md-female:before,.ion-md-filing:before,.ion-md-film:before,.ion-md-finger-print:before,.ion-md-fitness:before,.ion-md-flag:before,.ion-md-flame:before,.ion-md-flash:before,.ion-md-flash-off:before,.ion-md-flashlight:before,.ion-md-flask:before,.ion-md-flower:before,.ion-md-folder:before,.ion-md-folder-open:before,.ion-md-football:before,.ion-md-funnel:before,.ion-md-gift:before,.ion-md-git-branch:before,.ion-md-git-commit:before,.ion-md-git-compare:before,.ion-md-git-merge:before,.ion-md-git-network:before,.ion-md-git-pull-request:before,.ion-md-glasses:before,.ion-md-globe:before,.ion-md-grid:before,.ion-md-hammer:before,.ion-md-hand:before,.ion-md-happy:before,.ion-md-headset:before,.ion-md-heart:before,.ion-md-heart-dislike:before,.ion-md-heart-empty:before,.ion-md-heart-half:before,.ion-md-help:before,.ion-md-help-buoy:before,.ion-md-help-circle:before,.ion-md-help-circle-outline:before,.ion-md-home:before,.ion-md-hourglass:before,.ion-md-ice-cream:before,.ion-md-image:before,.ion-md-images:before,.ion-md-infinite:before,.ion-md-information:before,.ion-md-information-circle:before,.ion-md-information-circle-outline:before,.ion-md-jet:before,.ion-md-journal:before,.ion-md-key:before,.ion-md-keypad:before,.ion-md-laptop:before,.ion-md-leaf:before,.ion-md-link:before,.ion-md-list:before,.ion-md-list-box:before,.ion-md-locate:before,.ion-md-lock:before,.ion-md-log-in:before,.ion-md-log-out:before,.ion-md-magnet:before,.ion-md-mail:before,.ion-md-mail-open:before,.ion-md-mail-unread:before,.ion-md-male:before,.ion-md-man:before,.ion-md-map:before,.ion-md-medal:before,.ion-md-medical:before,.ion-md-medkit:before,.ion-md-megaphone:before,.ion-md-menu:before,.ion-md-mic:before,.ion-md-mic-off:before,.ion-md-microphone:before,.ion-md-moon:before,.ion-md-more:before,.ion-md-move:before,.ion-md-musical-note:before,.ion-md-musical-notes:before,.ion-md-navigate:before,.ion-md-notifications:before,.ion-md-notifications-off:before,.ion-md-notifications-outline:before,.ion-md-nuclear:before,.ion-md-nutrition:before,.ion-md-open:before,.ion-md-options:before,.ion-md-outlet:before,.ion-md-paper:before,.ion-md-paper-plane:before,.ion-md-partly-sunny:before,.ion-md-pause:before,.ion-md-paw:before,.ion-md-people:before,.ion-md-person:before,.ion-md-person-add:before,.ion-md-phone-landscape:before,.ion-md-phone-portrait:before,.ion-md-photos:before,.ion-md-pie:before,.ion-md-pin:before,.ion-md-pint:before,.ion-md-pizza:before,.ion-md-planet:before,.ion-md-play:before,.ion-md-play-circle:before,.ion-md-podium:before,.ion-md-power:before,.ion-md-pricetag:before,.ion-md-pricetags:before,.ion-md-print:before,.ion-md-pulse:before,.ion-md-qr-scanner:before,.ion-md-quote:before,.ion-md-radio:before,.ion-md-radio-button-off:before,.ion-md-radio-button-on:before,.ion-md-rainy:before,.ion-md-recording:before,.ion-md-redo:before,.ion-md-refresh:before,.ion-md-refresh-circle:before,.ion-md-remove:before,.ion-md-remove-circle:before,.ion-md-remove-circle-outline:before,.ion-md-reorder:before,.ion-md-repeat:before,.ion-md-resize:before,.ion-md-restaurant:before,.ion-md-return-left:before,.ion-md-return-right:before,.ion-md-reverse-camera:before,.ion-md-rewind:before,.ion-md-ribbon:before,.ion-md-rocket:before,.ion-md-rose:before,.ion-md-sad:before,.ion-md-save:before,.ion-md-school:before,.ion-md-search:before,.ion-md-send:before,.ion-md-settings:before,.ion-md-share:before,.ion-md-share-alt:before,.ion-md-shirt:before,.ion-md-shuffle:before,.ion-md-skip-backward:before,.ion-md-skip-forward:before,.ion-md-snow:before,.ion-md-speedometer:before,.ion-md-square:before,.ion-md-square-outline:before,.ion-md-star:before,.ion-md-star-half:before,.ion-md-star-outline:before,.ion-md-stats:before,.ion-md-stopwatch:before,.ion-md-subway:before,.ion-md-sunny:before,.ion-md-swap:before,.ion-md-switch:before,.ion-md-sync:before,.ion-md-tablet-landscape:before,.ion-md-tablet-portrait:before,.ion-md-tennisball:before,.ion-md-text:before,.ion-md-thermometer:before,.ion-md-thumbs-down:before,.ion-md-thumbs-up:before,.ion-md-thunderstorm:before,.ion-md-time:before,.ion-md-timer:before,.ion-md-today:before,.ion-md-train:before,.ion-md-transgender:before,.ion-md-trash:before,.ion-md-trending-down:before,.ion-md-trending-up:before,.ion-md-trophy:before,.ion-md-tv:before,.ion-md-umbrella:before,.ion-md-undo:before,.ion-md-unlock:before,.ion-md-videocam:before,.ion-md-volume-high:before,.ion-md-volume-low:before,.ion-md-volume-mute:before,.ion-md-volume-off:before,.ion-md-walk:before,.ion-md-wallet:before,.ion-md-warning:before,.ion-md-watch:before,.ion-md-water:before,.ion-md-wifi:before,.ion-md-wine:before,.ion-md-woman:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios-add:before{content:"\f102"}.ion-ios-add-circle:before{content:"\f101"}.ion-ios-add-circle-outline:before{content:"\f100"}.ion-ios-airplane:before{content:"\f137"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-alert:before{content:"\f104"}.ion-ios-american-football:before{content:"\f106"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-aperture:before{content:"\f108"}.ion-ios-apps:before{content:"\f10a"}.ion-ios-appstore:before{content:"\f10c"}.ion-ios-archive:before{content:"\f10e"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-dropdown:before{content:"\f110"}.ion-ios-arrow-dropdown-circle:before{content:"\f125"}.ion-ios-arrow-dropleft:before{content:"\f112"}.ion-ios-arrow-dropleft-circle:before{content:"\f129"}.ion-ios-arrow-dropright:before{content:"\f114"}.ion-ios-arrow-dropright-circle:before{content:"\f12b"}.ion-ios-arrow-dropup:before{content:"\f116"}.ion-ios-arrow-dropup-circle:before{content:"\f12d"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-round-back:before{content:"\f117"}.ion-ios-arrow-round-down:before{content:"\f118"}.ion-ios-arrow-round-forward:before{content:"\f119"}.ion-ios-arrow-round-up:before{content:"\f11a"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-attach:before{content:"\f11b"}.ion-ios-backspace:before{content:"\f11d"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-basket:before{content:"\f11f"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-battery-charging:before{content:"\f120"}.ion-ios-battery-dead:before{content:"\f121"}.ion-ios-battery-full:before{content:"\f122"}.ion-ios-beaker:before{content:"\f124"}.ion-ios-bed:before{content:"\f139"}.ion-ios-beer:before{content:"\f126"}.ion-ios-bicycle:before{content:"\f127"}.ion-ios-bluetooth:before{content:"\f128"}.ion-ios-boat:before{content:"\f12a"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-bonfire:before{content:"\f12c"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-bookmark:before{content:"\f12e"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bowtie:before{content:"\f130"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-brush:before{content:"\f132"}.ion-ios-bug:before{content:"\f134"}.ion-ios-build:before{content:"\f136"}.ion-ios-bulb:before{content:"\f138"}.ion-ios-bus:before{content:"\f13a"}.ion-ios-business:before{content:"\f1a3"}.ion-ios-cafe:before{content:"\f13c"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-call:before{content:"\f13e"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-car:before{content:"\f140"}.ion-ios-card:before{content:"\f142"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cash:before{content:"\f144"}.ion-ios-cellular:before{content:"\f13d"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatbubbles:before{content:"\f146"}.ion-ios-checkbox:before{content:"\f148"}.ion-ios-checkbox-outline:before{content:"\f147"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-circle:before{content:"\f14a"}.ion-ios-checkmark-circle-outline:before{content:"\f149"}.ion-ios-clipboard:before{content:"\f14c"}.ion-ios-clock:before{content:"\f403"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-circle:before{content:"\f14e"}.ion-ios-close-circle-outline:before{content:"\f14d"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-circle:before{content:"\f152"}.ion-ios-cloud-done:before{content:"\f154"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-code:before{content:"\f157"}.ion-ios-code-download:before{content:"\f155"}.ion-ios-code-working:before{content:"\f156"}.ion-ios-cog:before{content:"\f412"}.ion-ios-color-fill:before{content:"\f159"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-palette:before{content:"\f15b"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-compass:before{content:"\f15d"}.ion-ios-construct:before{content:"\f15f"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contacts:before{content:"\f161"}.ion-ios-contract:before{content:"\f162"}.ion-ios-contrast:before{content:"\f163"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-create:before{content:"\f165"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-cube:before{content:"\f168"}.ion-ios-cut:before{content:"\f16a"}.ion-ios-desktop:before{content:"\f16c"}.ion-ios-disc:before{content:"\f16e"}.ion-ios-document:before{content:"\f170"}.ion-ios-done-all:before{content:"\f171"}.ion-ios-download:before{content:"\f420"}.ion-ios-easel:before{content:"\f173"}.ion-ios-egg:before{content:"\f175"}.ion-ios-exit:before{content:"\f177"}.ion-ios-expand:before{content:"\f178"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-off:before{content:"\f17a"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-female:before{content:"\f17b"}.ion-ios-filing:before{content:"\f429"}.ion-ios-film:before{content:"\f42b"}.ion-ios-finger-print:before{content:"\f17c"}.ion-ios-fitness:before{content:"\f1ab"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flash:before{content:"\f17e"}.ion-ios-flash-off:before{content:"\f12f"}.ion-ios-flashlight:before{content:"\f141"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flower:before{content:"\f433"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-open:before{content:"\f180"}.ion-ios-football:before{content:"\f437"}.ion-ios-funnel:before{content:"\f182"}.ion-ios-gift:before{content:"\f191"}.ion-ios-git-branch:before{content:"\f183"}.ion-ios-git-commit:before{content:"\f184"}.ion-ios-git-compare:before{content:"\f185"}.ion-ios-git-merge:before{content:"\f186"}.ion-ios-git-network:before{content:"\f187"}.ion-ios-git-pull-request:before{content:"\f188"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-globe:before{content:"\f18a"}.ion-ios-grid:before{content:"\f18c"}.ion-ios-hammer:before{content:"\f18e"}.ion-ios-hand:before{content:"\f190"}.ion-ios-happy:before{content:"\f192"}.ion-ios-headset:before{content:"\f194"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-dislike:before{content:"\f13f"}.ion-ios-heart-empty:before{content:"\f19b"}.ion-ios-heart-half:before{content:"\f19d"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-buoy:before{content:"\f196"}.ion-ios-help-circle:before{content:"\f198"}.ion-ios-help-circle-outline:before{content:"\f197"}.ion-ios-home:before{content:"\f448"}.ion-ios-hourglass:before{content:"\f103"}.ion-ios-ice-cream:before{content:"\f19a"}.ion-ios-image:before{content:"\f19c"}.ion-ios-images:before{content:"\f19e"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-circle:before{content:"\f1a0"}.ion-ios-information-circle-outline:before{content:"\f19f"}.ion-ios-jet:before{content:"\f1a5"}.ion-ios-journal:before{content:"\f189"}.ion-ios-key:before{content:"\f1a7"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-laptop:before{content:"\f1a8"}.ion-ios-leaf:before{content:"\f1aa"}.ion-ios-link:before{content:"\f22a"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-box:before{content:"\f143"}.ion-ios-locate:before{content:"\f1ae"}.ion-ios-lock:before{content:"\f1b0"}.ion-ios-log-in:before{content:"\f1b1"}.ion-ios-log-out:before{content:"\f1b2"}.ion-ios-magnet:before{content:"\f1b4"}.ion-ios-mail:before{content:"\f1b8"}.ion-ios-mail-open:before{content:"\f1b6"}.ion-ios-mail-unread:before{content:"\f145"}.ion-ios-male:before{content:"\f1b9"}.ion-ios-man:before{content:"\f1bb"}.ion-ios-map:before{content:"\f1bd"}.ion-ios-medal:before{content:"\f1bf"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-megaphone:before{content:"\f1c1"}.ion-ios-menu:before{content:"\f1c3"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-microphone:before{content:"\f1c6"}.ion-ios-moon:before{content:"\f468"}.ion-ios-more:before{content:"\f1c8"}.ion-ios-move:before{content:"\f1cb"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-notifications:before{content:"\f1d3"}.ion-ios-notifications-off:before{content:"\f1d1"}.ion-ios-notifications-outline:before{content:"\f133"}.ion-ios-nuclear:before{content:"\f1d5"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-open:before{content:"\f1d7"}.ion-ios-options:before{content:"\f1d9"}.ion-ios-outlet:before{content:"\f1db"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-plane:before{content:"\f1dd"}.ion-ios-partly-sunny:before{content:"\f1df"}.ion-ios-pause:before{content:"\f478"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-people:before{content:"\f47c"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-add:before{content:"\f1e1"}.ion-ios-phone-landscape:before{content:"\f1e2"}.ion-ios-phone-portrait:before{content:"\f1e3"}.ion-ios-photos:before{content:"\f482"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pin:before{content:"\f1e5"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pizza:before{content:"\f1e7"}.ion-ios-planet:before{content:"\f1eb"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-circle:before{content:"\f113"}.ion-ios-podium:before{content:"\f1ed"}.ion-ios-power:before{content:"\f1ef"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-print:before{content:"\f1f1"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-qr-scanner:before{content:"\f1f3"}.ion-ios-quote:before{content:"\f1f5"}.ion-ios-radio:before{content:"\f1f9"}.ion-ios-radio-button-off:before{content:"\f1f6"}.ion-ios-radio-button-on:before{content:"\f1f7"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-recording:before{content:"\f497"}.ion-ios-redo:before{content:"\f499"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-circle:before{content:"\f135"}.ion-ios-remove:before{content:"\f1fc"}.ion-ios-remove-circle:before{content:"\f1fb"}.ion-ios-remove-circle-outline:before{content:"\f1fa"}.ion-ios-reorder:before{content:"\f1fd"}.ion-ios-repeat:before{content:"\f1fe"}.ion-ios-resize:before{content:"\f1ff"}.ion-ios-restaurant:before{content:"\f201"}.ion-ios-return-left:before{content:"\f202"}.ion-ios-return-right:before{content:"\f203"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-ribbon:before{content:"\f205"}.ion-ios-rocket:before{content:"\f14b"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-sad:before{content:"\f207"}.ion-ios-save:before{content:"\f1a6"}.ion-ios-school:before{content:"\f209"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-send:before{content:"\f20c"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-share:before{content:"\f211"}.ion-ios-share-alt:before{content:"\f20f"}.ion-ios-shirt:before{content:"\f213"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-skip-backward:before{content:"\f215"}.ion-ios-skip-forward:before{content:"\f217"}.ion-ios-snow:before{content:"\f218"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-square:before{content:"\f21a"}.ion-ios-square-outline:before{content:"\f15c"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stats:before{content:"\f21c"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-subway:before{content:"\f21e"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-swap:before{content:"\f21f"}.ion-ios-switch:before{content:"\f221"}.ion-ios-sync:before{content:"\f222"}.ion-ios-tablet-landscape:before{content:"\f223"}.ion-ios-tablet-portrait:before{content:"\f24e"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-text:before{content:"\f250"}.ion-ios-thermometer:before{content:"\f252"}.ion-ios-thumbs-down:before{content:"\f254"}.ion-ios-thumbs-up:before{content:"\f256"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-today:before{content:"\f14f"}.ion-ios-train:before{content:"\f258"}.ion-ios-transgender:before{content:"\f259"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trending-down:before{content:"\f25a"}.ion-ios-trending-up:before{content:"\f25b"}.ion-ios-trophy:before{content:"\f25d"}.ion-ios-tv:before{content:"\f115"}.ion-ios-umbrella:before{content:"\f25f"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-unlock:before{content:"\f261"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-volume-high:before{content:"\f11c"}.ion-ios-volume-low:before{content:"\f11e"}.ion-ios-volume-mute:before{content:"\f263"}.ion-ios-volume-off:before{content:"\f264"}.ion-ios-walk:before{content:"\f266"}.ion-ios-wallet:before{content:"\f18b"}.ion-ios-warning:before{content:"\f268"}.ion-ios-watch:before{content:"\f269"}.ion-ios-water:before{content:"\f26b"}.ion-ios-wifi:before{content:"\f26d"}.ion-ios-wine:before{content:"\f26f"}.ion-ios-woman:before{content:"\f271"}.ion-logo-android:before{content:"\f225"}.ion-logo-angular:before{content:"\f227"}.ion-logo-apple:before{content:"\f229"}.ion-logo-bitbucket:before{content:"\f193"}.ion-logo-bitcoin:before{content:"\f22b"}.ion-logo-buffer:before{content:"\f22d"}.ion-logo-chrome:before{content:"\f22f"}.ion-logo-closed-captioning:before{content:"\f105"}.ion-logo-codepen:before{content:"\f230"}.ion-logo-css3:before{content:"\f231"}.ion-logo-designernews:before{content:"\f232"}.ion-logo-dribbble:before{content:"\f233"}.ion-logo-dropbox:before{content:"\f234"}.ion-logo-euro:before{content:"\f235"}.ion-logo-facebook:before{content:"\f236"}.ion-logo-flickr:before{content:"\f107"}.ion-logo-foursquare:before{content:"\f237"}.ion-logo-freebsd-devil:before{content:"\f238"}.ion-logo-game-controller-a:before{content:"\f13b"}.ion-logo-game-controller-b:before{content:"\f181"}.ion-logo-github:before{content:"\f239"}.ion-logo-google:before{content:"\f23a"}.ion-logo-googleplus:before{content:"\f23b"}.ion-logo-hackernews:before{content:"\f23c"}.ion-logo-html5:before{content:"\f23d"}.ion-logo-instagram:before{content:"\f23e"}.ion-logo-ionic:before{content:"\f150"}.ion-logo-ionitron:before{content:"\f151"}.ion-logo-javascript:before{content:"\f23f"}.ion-logo-linkedin:before{content:"\f240"}.ion-logo-markdown:before{content:"\f241"}.ion-logo-model-s:before{content:"\f153"}.ion-logo-no-smoking:before{content:"\f109"}.ion-logo-nodejs:before{content:"\f242"}.ion-logo-npm:before{content:"\f195"}.ion-logo-octocat:before{content:"\f243"}.ion-logo-pinterest:before{content:"\f244"}.ion-logo-playstation:before{content:"\f245"}.ion-logo-polymer:before{content:"\f15e"}.ion-logo-python:before{content:"\f246"}.ion-logo-reddit:before{content:"\f247"}.ion-logo-rss:before{content:"\f248"}.ion-logo-sass:before{content:"\f249"}.ion-logo-skype:before{content:"\f24a"}.ion-logo-slack:before{content:"\f10b"}.ion-logo-snapchat:before{content:"\f24b"}.ion-logo-steam:before{content:"\f24c"}.ion-logo-tumblr:before{content:"\f24d"}.ion-logo-tux:before{content:"\f2ae"}.ion-logo-twitch:before{content:"\f2af"}.ion-logo-twitter:before{content:"\f2b0"}.ion-logo-usd:before{content:"\f2b1"}.ion-logo-vimeo:before{content:"\f2c4"}.ion-logo-vk:before{content:"\f10d"}.ion-logo-whatsapp:before{content:"\f2c5"}.ion-logo-windows:before{content:"\f32f"}.ion-logo-wordpress:before{content:"\f330"}.ion-logo-xbox:before{content:"\f34c"}.ion-logo-xing:before{content:"\f10f"}.ion-logo-yahoo:before{content:"\f34d"}.ion-logo-yen:before{content:"\f34e"}.ion-logo-youtube:before{content:"\f34f"}.ion-md-add:before{content:"\f273"}.ion-md-add-circle:before{content:"\f272"}.ion-md-add-circle-outline:before{content:"\f158"}.ion-md-airplane:before{content:"\f15a"}.ion-md-alarm:before{content:"\f274"}.ion-md-albums:before{content:"\f275"}.ion-md-alert:before{content:"\f276"}.ion-md-american-football:before{content:"\f277"}.ion-md-analytics:before{content:"\f278"}.ion-md-aperture:before{content:"\f279"}.ion-md-apps:before{content:"\f27a"}.ion-md-appstore:before{content:"\f27b"}.ion-md-archive:before{content:"\f27c"}.ion-md-arrow-back:before{content:"\f27d"}.ion-md-arrow-down:before{content:"\f27e"}.ion-md-arrow-dropdown:before{content:"\f280"}.ion-md-arrow-dropdown-circle:before{content:"\f27f"}.ion-md-arrow-dropleft:before{content:"\f282"}.ion-md-arrow-dropleft-circle:before{content:"\f281"}.ion-md-arrow-dropright:before{content:"\f284"}.ion-md-arrow-dropright-circle:before{content:"\f283"}.ion-md-arrow-dropup:before{content:"\f286"}.ion-md-arrow-dropup-circle:before{content:"\f285"}.ion-md-arrow-forward:before{content:"\f287"}.ion-md-arrow-round-back:before{content:"\f288"}.ion-md-arrow-round-down:before{content:"\f289"}.ion-md-arrow-round-forward:before{content:"\f28a"}.ion-md-arrow-round-up:before{content:"\f28b"}.ion-md-arrow-up:before{content:"\f28c"}.ion-md-at:before{content:"\f28d"}.ion-md-attach:before{content:"\f28e"}.ion-md-backspace:before{content:"\f28f"}.ion-md-barcode:before{content:"\f290"}.ion-md-baseball:before{content:"\f291"}.ion-md-basket:before{content:"\f292"}.ion-md-basketball:before{content:"\f293"}.ion-md-battery-charging:before{content:"\f294"}.ion-md-battery-dead:before{content:"\f295"}.ion-md-battery-full:before{content:"\f296"}.ion-md-beaker:before{content:"\f297"}.ion-md-bed:before{content:"\f160"}.ion-md-beer:before{content:"\f298"}.ion-md-bicycle:before{content:"\f299"}.ion-md-bluetooth:before{content:"\f29a"}.ion-md-boat:before{content:"\f29b"}.ion-md-body:before{content:"\f29c"}.ion-md-bonfire:before{content:"\f29d"}.ion-md-book:before{content:"\f29e"}.ion-md-bookmark:before{content:"\f29f"}.ion-md-bookmarks:before{content:"\f2a0"}.ion-md-bowtie:before{content:"\f2a1"}.ion-md-briefcase:before{content:"\f2a2"}.ion-md-browsers:before{content:"\f2a3"}.ion-md-brush:before{content:"\f2a4"}.ion-md-bug:before{content:"\f2a5"}.ion-md-build:before{content:"\f2a6"}.ion-md-bulb:before{content:"\f2a7"}.ion-md-bus:before{content:"\f2a8"}.ion-md-business:before{content:"\f1a4"}.ion-md-cafe:before{content:"\f2a9"}.ion-md-calculator:before{content:"\f2aa"}.ion-md-calendar:before{content:"\f2ab"}.ion-md-call:before{content:"\f2ac"}.ion-md-camera:before{content:"\f2ad"}.ion-md-car:before{content:"\f2b2"}.ion-md-card:before{content:"\f2b3"}.ion-md-cart:before{content:"\f2b4"}.ion-md-cash:before{content:"\f2b5"}.ion-md-cellular:before{content:"\f164"}.ion-md-chatboxes:before{content:"\f2b6"}.ion-md-chatbubbles:before{content:"\f2b7"}.ion-md-checkbox:before{content:"\f2b9"}.ion-md-checkbox-outline:before{content:"\f2b8"}.ion-md-checkmark:before{content:"\f2bc"}.ion-md-checkmark-circle:before{content:"\f2bb"}.ion-md-checkmark-circle-outline:before{content:"\f2ba"}.ion-md-clipboard:before{content:"\f2bd"}.ion-md-clock:before{content:"\f2be"}.ion-md-close:before{content:"\f2c0"}.ion-md-close-circle:before{content:"\f2bf"}.ion-md-close-circle-outline:before{content:"\f166"}.ion-md-cloud:before{content:"\f2c9"}.ion-md-cloud-circle:before{content:"\f2c2"}.ion-md-cloud-done:before{content:"\f2c3"}.ion-md-cloud-download:before{content:"\f2c6"}.ion-md-cloud-outline:before{content:"\f2c7"}.ion-md-cloud-upload:before{content:"\f2c8"}.ion-md-cloudy:before{content:"\f2cb"}.ion-md-cloudy-night:before{content:"\f2ca"}.ion-md-code:before{content:"\f2ce"}.ion-md-code-download:before{content:"\f2cc"}.ion-md-code-working:before{content:"\f2cd"}.ion-md-cog:before{content:"\f2cf"}.ion-md-color-fill:before{content:"\f2d0"}.ion-md-color-filter:before{content:"\f2d1"}.ion-md-color-palette:before{content:"\f2d2"}.ion-md-color-wand:before{content:"\f2d3"}.ion-md-compass:before{content:"\f2d4"}.ion-md-construct:before{content:"\f2d5"}.ion-md-contact:before{content:"\f2d6"}.ion-md-contacts:before{content:"\f2d7"}.ion-md-contract:before{content:"\f2d8"}.ion-md-contrast:before{content:"\f2d9"}.ion-md-copy:before{content:"\f2da"}.ion-md-create:before{content:"\f2db"}.ion-md-crop:before{content:"\f2dc"}.ion-md-cube:before{content:"\f2dd"}.ion-md-cut:before{content:"\f2de"}.ion-md-desktop:before{content:"\f2df"}.ion-md-disc:before{content:"\f2e0"}.ion-md-document:before{content:"\f2e1"}.ion-md-done-all:before{content:"\f2e2"}.ion-md-download:before{content:"\f2e3"}.ion-md-easel:before{content:"\f2e4"}.ion-md-egg:before{content:"\f2e5"}.ion-md-exit:before{content:"\f2e6"}.ion-md-expand:before{content:"\f2e7"}.ion-md-eye:before{content:"\f2e9"}.ion-md-eye-off:before{content:"\f2e8"}.ion-md-fastforward:before{content:"\f2ea"}.ion-md-female:before{content:"\f2eb"}.ion-md-filing:before{content:"\f2ec"}.ion-md-film:before{content:"\f2ed"}.ion-md-finger-print:before{content:"\f2ee"}.ion-md-fitness:before{content:"\f1ac"}.ion-md-flag:before{content:"\f2ef"}.ion-md-flame:before{content:"\f2f0"}.ion-md-flash:before{content:"\f2f1"}.ion-md-flash-off:before{content:"\f169"}.ion-md-flashlight:before{content:"\f16b"}.ion-md-flask:before{content:"\f2f2"}.ion-md-flower:before{content:"\f2f3"}.ion-md-folder:before{content:"\f2f5"}.ion-md-folder-open:before{content:"\f2f4"}.ion-md-football:before{content:"\f2f6"}.ion-md-funnel:before{content:"\f2f7"}.ion-md-gift:before{content:"\f199"}.ion-md-git-branch:before{content:"\f2fa"}.ion-md-git-commit:before{content:"\f2fb"}.ion-md-git-compare:before{content:"\f2fc"}.ion-md-git-merge:before{content:"\f2fd"}.ion-md-git-network:before{content:"\f2fe"}.ion-md-git-pull-request:before{content:"\f2ff"}.ion-md-glasses:before{content:"\f300"}.ion-md-globe:before{content:"\f301"}.ion-md-grid:before{content:"\f302"}.ion-md-hammer:before{content:"\f303"}.ion-md-hand:before{content:"\f304"}.ion-md-happy:before{content:"\f305"}.ion-md-headset:before{content:"\f306"}.ion-md-heart:before{content:"\f308"}.ion-md-heart-dislike:before{content:"\f167"}.ion-md-heart-empty:before{content:"\f1a1"}.ion-md-heart-half:before{content:"\f1a2"}.ion-md-help:before{content:"\f30b"}.ion-md-help-buoy:before{content:"\f309"}.ion-md-help-circle:before{content:"\f30a"}.ion-md-help-circle-outline:before{content:"\f16d"}.ion-md-home:before{content:"\f30c"}.ion-md-hourglass:before{content:"\f111"}.ion-md-ice-cream:before{content:"\f30d"}.ion-md-image:before{content:"\f30e"}.ion-md-images:before{content:"\f30f"}.ion-md-infinite:before{content:"\f310"}.ion-md-information:before{content:"\f312"}.ion-md-information-circle:before{content:"\f311"}.ion-md-information-circle-outline:before{content:"\f16f"}.ion-md-jet:before{content:"\f315"}.ion-md-journal:before{content:"\f18d"}.ion-md-key:before{content:"\f316"}.ion-md-keypad:before{content:"\f317"}.ion-md-laptop:before{content:"\f318"}.ion-md-leaf:before{content:"\f319"}.ion-md-link:before{content:"\f22e"}.ion-md-list:before{content:"\f31b"}.ion-md-list-box:before{content:"\f31a"}.ion-md-locate:before{content:"\f31c"}.ion-md-lock:before{content:"\f31d"}.ion-md-log-in:before{content:"\f31e"}.ion-md-log-out:before{content:"\f31f"}.ion-md-magnet:before{content:"\f320"}.ion-md-mail:before{content:"\f322"}.ion-md-mail-open:before{content:"\f321"}.ion-md-mail-unread:before{content:"\f172"}.ion-md-male:before{content:"\f323"}.ion-md-man:before{content:"\f324"}.ion-md-map:before{content:"\f325"}.ion-md-medal:before{content:"\f326"}.ion-md-medical:before{content:"\f327"}.ion-md-medkit:before{content:"\f328"}.ion-md-megaphone:before{content:"\f329"}.ion-md-menu:before{content:"\f32a"}.ion-md-mic:before{content:"\f32c"}.ion-md-mic-off:before{content:"\f32b"}.ion-md-microphone:before{content:"\f32d"}.ion-md-moon:before{content:"\f32e"}.ion-md-more:before{content:"\f1c9"}.ion-md-move:before{content:"\f331"}.ion-md-musical-note:before{content:"\f332"}.ion-md-musical-notes:before{content:"\f333"}.ion-md-navigate:before{content:"\f334"}.ion-md-notifications:before{content:"\f338"}.ion-md-notifications-off:before{content:"\f336"}.ion-md-notifications-outline:before{content:"\f337"}.ion-md-nuclear:before{content:"\f339"}.ion-md-nutrition:before{content:"\f33a"}.ion-md-open:before{content:"\f33b"}.ion-md-options:before{content:"\f33c"}.ion-md-outlet:before{content:"\f33d"}.ion-md-paper:before{content:"\f33f"}.ion-md-paper-plane:before{content:"\f33e"}.ion-md-partly-sunny:before{content:"\f340"}.ion-md-pause:before{content:"\f341"}.ion-md-paw:before{content:"\f342"}.ion-md-people:before{content:"\f343"}.ion-md-person:before{content:"\f345"}.ion-md-person-add:before{content:"\f344"}.ion-md-phone-landscape:before{content:"\f346"}.ion-md-phone-portrait:before{content:"\f347"}.ion-md-photos:before{content:"\f348"}.ion-md-pie:before{content:"\f349"}.ion-md-pin:before{content:"\f34a"}.ion-md-pint:before{content:"\f34b"}.ion-md-pizza:before{content:"\f354"}.ion-md-planet:before{content:"\f356"}.ion-md-play:before{content:"\f357"}.ion-md-play-circle:before{content:"\f174"}.ion-md-podium:before{content:"\f358"}.ion-md-power:before{content:"\f359"}.ion-md-pricetag:before{content:"\f35a"}.ion-md-pricetags:before{content:"\f35b"}.ion-md-print:before{content:"\f35c"}.ion-md-pulse:before{content:"\f35d"}.ion-md-qr-scanner:before{content:"\f35e"}.ion-md-quote:before{content:"\f35f"}.ion-md-radio:before{content:"\f362"}.ion-md-radio-button-off:before{content:"\f360"}.ion-md-radio-button-on:before{content:"\f361"}.ion-md-rainy:before{content:"\f363"}.ion-md-recording:before{content:"\f364"}.ion-md-redo:before{content:"\f365"}.ion-md-refresh:before{content:"\f366"}.ion-md-refresh-circle:before{content:"\f228"}.ion-md-remove:before{content:"\f368"}.ion-md-remove-circle:before{content:"\f367"}.ion-md-remove-circle-outline:before{content:"\f176"}.ion-md-reorder:before{content:"\f369"}.ion-md-repeat:before{content:"\f36a"}.ion-md-resize:before{content:"\f36b"}.ion-md-restaurant:before{content:"\f36c"}.ion-md-return-left:before{content:"\f36d"}.ion-md-return-right:before{content:"\f36e"}.ion-md-reverse-camera:before{content:"\f36f"}.ion-md-rewind:before{content:"\f370"}.ion-md-ribbon:before{content:"\f371"}.ion-md-rocket:before{content:"\f179"}.ion-md-rose:before{content:"\f372"}.ion-md-sad:before{content:"\f373"}.ion-md-save:before{content:"\f1a9"}.ion-md-school:before{content:"\f374"}.ion-md-search:before{content:"\f375"}.ion-md-send:before{content:"\f376"}.ion-md-settings:before{content:"\f377"}.ion-md-share:before{content:"\f379"}.ion-md-share-alt:before{content:"\f378"}.ion-md-shirt:before{content:"\f37a"}.ion-md-shuffle:before{content:"\f37b"}.ion-md-skip-backward:before{content:"\f37c"}.ion-md-skip-forward:before{content:"\f37d"}.ion-md-snow:before{content:"\f37e"}.ion-md-speedometer:before{content:"\f37f"}.ion-md-square:before{content:"\f381"}.ion-md-square-outline:before{content:"\f380"}.ion-md-star:before{content:"\f384"}.ion-md-star-half:before{content:"\f382"}.ion-md-star-outline:before{content:"\f383"}.ion-md-stats:before{content:"\f385"}.ion-md-stopwatch:before{content:"\f386"}.ion-md-subway:before{content:"\f387"}.ion-md-sunny:before{content:"\f388"}.ion-md-swap:before{content:"\f389"}.ion-md-switch:before{content:"\f38a"}.ion-md-sync:before{content:"\f38b"}.ion-md-tablet-landscape:before{content:"\f38c"}.ion-md-tablet-portrait:before{content:"\f38d"}.ion-md-tennisball:before{content:"\f38e"}.ion-md-text:before{content:"\f38f"}.ion-md-thermometer:before{content:"\f390"}.ion-md-thumbs-down:before{content:"\f391"}.ion-md-thumbs-up:before{content:"\f392"}.ion-md-thunderstorm:before{content:"\f393"}.ion-md-time:before{content:"\f394"}.ion-md-timer:before{content:"\f395"}.ion-md-today:before{content:"\f17d"}.ion-md-train:before{content:"\f396"}.ion-md-transgender:before{content:"\f397"}.ion-md-trash:before{content:"\f398"}.ion-md-trending-down:before{content:"\f399"}.ion-md-trending-up:before{content:"\f39a"}.ion-md-trophy:before{content:"\f39b"}.ion-md-tv:before{content:"\f17f"}.ion-md-umbrella:before{content:"\f39c"}.ion-md-undo:before{content:"\f39d"}.ion-md-unlock:before{content:"\f39e"}.ion-md-videocam:before{content:"\f39f"}.ion-md-volume-high:before{content:"\f123"}.ion-md-volume-low:before{content:"\f131"}.ion-md-volume-mute:before{content:"\f3a1"}.ion-md-volume-off:before{content:"\f3a2"}.ion-md-walk:before{content:"\f3a4"}.ion-md-wallet:before{content:"\f18f"}.ion-md-warning:before{content:"\f3a5"}.ion-md-watch:before{content:"\f3a6"}.ion-md-water:before{content:"\f3a7"}.ion-md-wifi:before{content:"\f3a8"}.ion-md-wine:before{content:"\f3a9"}.ion-md-woman:before{content:"\f3aa"} diff --git a/frontend/documentation/styles/laravel.css b/frontend/documentation/styles/laravel.css deleted file mode 100644 index bae0c3a..0000000 --- a/frontend/documentation/styles/laravel.css +++ /dev/null @@ -1,113 +0,0 @@ -.nav-tabs > li > a { - text-decoration: none; -} - -.navbar-default .navbar-brand { - color: #f4645f; - text-decoration: none; - font-size: 16px; -} - -.menu ul.list li a[data-type='chapter-link'], -.menu ul.list li.chapter .simple { - color: #525252; - border-bottom: 1px dashed rgba(0, 0, 0, 0.1); -} - -.content h1, -.content h2, -.content h3, -.content h4, -.content h5 { - color: #292e31; - font-weight: normal; -} - -.content { - color: #4c555a; -} - -a { - color: #f4645f; - text-decoration: underline; -} -a:hover { - color: #f1362f; -} - -.menu ul.list li:nth-child(2) { - margin-top: 0; -} - -.menu ul.list li.title a { - color: #f4645f; - text-decoration: none; - font-size: 16px; -} - -.menu ul.list li a { - color: #f4645f; - text-decoration: none; -} -.menu ul.list li a.active { - color: #f4645f; - font-weight: bold; -} - -code { - box-sizing: border-box; - display: inline-block; - padding: 0 5px; - background: #f0f2f1; - border-radius: 3px; - color: #b93d6a; - font-size: 13px; - line-height: 20px; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); -} - -pre { - margin: 0; - padding: 12px 12px; - background: rgba(238, 238, 238, 0.35); - border-radius: 3px; - font-size: 13px; - line-height: 1.5em; - font-weight: 500; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125); -} - -.dark body { - color: #fafafa; -} -.dark .content h1, -.dark .content h2, -.dark .content h3, -.dark .content h4, -.dark .content h5 { - color: #fafafa; -} - -.dark code { - background: none; -} - -.dark .content { - color: #fafafa; -} - -.dark .menu ul.list li a[data-type='chapter-link'], -.dark .menu ul.list li.chapter .simple { - color: #fafafa; -} - -.dark .menu ul.list li.title a { - color: #fafafa; -} - -.dark .menu ul.list li a { - color: #fafafa; -} -.dark .menu ul.list li a.active { - color: #7fc9ff; -} diff --git a/frontend/documentation/styles/material.css b/frontend/documentation/styles/material.css deleted file mode 100644 index 84d6c0e..0000000 --- a/frontend/documentation/styles/material.css +++ /dev/null @@ -1,131 +0,0 @@ -.menu { - background: none; -} - -a:hover { - text-decoration: none; -} - -/** LINK **/ - -.menu ul.list li a { - text-decoration: none; -} - -.menu ul.list li a:hover, -.menu ul.list li.chapter .simple:hover { - background-color: #f8f9fa; - text-decoration: none; -} - -#book-search-input { - margin-bottom: 0; -} - -.menu ul.list li.divider { - margin-top: 0; - background: #e9ecef; -} - -.menu .title:hover { - background-color: #f8f9fa; -} - -/** CARD **/ - -.card { - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), - 0 1px 5px 0 rgba(0, 0, 0, 0.12); - border-radius: 0.125rem; - border: 0; - margin-top: 1px; -} - -.card-header { - background: none; -} - -/** BUTTON **/ - -.btn { - border-radius: 0.125rem; -} - -/** NAV BAR **/ - -.nav { - border: 0; -} -.nav-tabs > li > a { - border: 0; - border-bottom: 0.214rem solid transparent; - color: rgba(0, 0, 0, 0.54); - margin-right: 0; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:focus, -.nav-tabs > li.active > a:hover { - color: rgba(0, 0, 0, 0.87); - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 0.214rem solid transparent; - border-color: #008cff; - font-weight: bold; -} -.nav > li > a:focus, -.nav > li > a:hover { - background: none; -} - -/** LIST **/ - -.list-group-item:first-child { - border-top-left-radius: 0.125rem; - border-top-right-radius: 0.125rem; -} -.list-group-item:last-child { - border-bottom-left-radius: 0.125rem; - border-bottom-right-radius: 0.125rem; -} - -/** MISC **/ - -.modifier { - border-radius: 0.125rem; -} - -pre[class*='language-'] { - border-radius: 0.125rem; -} - -/** TABLE **/ - -.table-hover > tbody > tr:hover { - background: rgba(0, 0, 0, 0.075); -} - -table.params thead { - background: none; -} -table.params thead td { - color: rgba(0, 0, 0, 0.54); - font-weight: bold; -} - -.dark .menu .title:hover { - background-color: #2d2d2d; -} -.dark .menu ul.list li a:hover, -.dark .menu ul.list li.chapter .simple:hover { - background-color: #2d2d2d; -} -.dark .nav-tabs > li:not(.active) > a { - color: #fafafa; -} -.dark table.params thead { - background: #484848; -} -.dark table.params thead td { - color: #fafafa; -} diff --git a/frontend/documentation/styles/prism.css b/frontend/documentation/styles/prism.css deleted file mode 100644 index 46a643b..0000000 --- a/frontend/documentation/styles/prism.css +++ /dev/null @@ -1,301 +0,0 @@ -/* PrismJS 1.24.0 -https://prismjs.com/download.html?#themes=prism-okaidia&languages=markup+css+clike+javascript+apacheconf+aspnet+bash+c+csharp+cpp+coffeescript+dart+docker+elm+git+go+graphql+handlebars+haskell+http+ignore+java+json+kotlin+less+markdown+markup-templating+nginx+php+powershell+ruby+rust+sass+scss+sql+swift+typescript+wasm+yaml&plugins=line-highlight+line-numbers+toolbar+copy-to-clipboard */ -/** - * okaidia theme for JavaScript, CSS and HTML - * Loosely based on Monokai textmate theme by http://www.monokai.nl/ - * @author ocodia - */ - -code[class*='language-'], -pre[class*='language-'] { - color: #f8f8f2; - background: none; - text-shadow: 0 1px rgba(0, 0, 0, 0.3); - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - font-size: 1em; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Code blocks */ -pre[class*='language-'] { - padding: 1em; - margin: 0.5em 0; - overflow: auto; - border-radius: 0.3em; -} - -:not(pre) > code[class*='language-'], -pre[class*='language-'] { - background: #272822; -} - -/* Inline code */ -:not(pre) > code[class*='language-'] { - padding: 0.1em; - border-radius: 0.3em; - white-space: normal; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #8292a2; -} - -.token.punctuation { - color: #f8f8f2; -} - -.token.namespace { - opacity: 0.7; -} - -.token.property, -.token.tag, -.token.constant, -.token.symbol, -.token.deleted { - color: #f92672; -} - -.token.boolean, -.token.number { - color: #ae81ff; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #a6e22e; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string, -.token.variable { - color: #f8f8f2; -} - -.token.atrule, -.token.attr-value, -.token.function, -.token.class-name { - color: #e6db74; -} - -.token.keyword { - color: #66d9ef; -} - -.token.regex, -.token.important { - color: #fd971f; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -pre[data-line] { - position: relative; - padding: 1em 0 1em 3em; -} - -.line-highlight { - position: absolute; - left: 0; - right: 0; - padding: inherit 0; - margin-top: 1em; /* Same as .prism’s padding-top */ - - background: hsla(24, 20%, 50%, 0.08); - background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); - - pointer-events: none; - - line-height: inherit; - white-space: pre; -} - -@media print { - .line-highlight { - /* - * This will prevent browsers from replacing the background color with white. - * It's necessary because the element is layered on top of the displayed code. - */ - -webkit-print-color-adjust: exact; - color-adjust: exact; - } -} - -.line-highlight:before, -.line-highlight[data-end]:after { - content: attr(data-start); - position: absolute; - top: 0.4em; - left: 0.6em; - min-width: 1em; - padding: 0 0.5em; - background-color: hsla(24, 20%, 50%, 0.4); - color: hsl(24, 20%, 95%); - font: bold 65%/1.5 sans-serif; - text-align: center; - vertical-align: 0.3em; - border-radius: 999px; - text-shadow: none; - box-shadow: 0 1px white; -} - -.line-highlight[data-end]:after { - content: attr(data-end); - top: auto; - bottom: 0.4em; -} - -.line-numbers .line-highlight:before, -.line-numbers .line-highlight:after { - content: none; -} - -pre[id].linkable-line-numbers span.line-numbers-rows { - pointer-events: all; -} -pre[id].linkable-line-numbers span.line-numbers-rows > span:before { - cursor: pointer; -} -pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before { - background-color: rgba(128, 128, 128, 0.2); -} - -pre[class*='language-'].line-numbers { - position: relative; - padding-left: 3.8em; - counter-reset: linenumber; -} - -pre[class*='language-'].line-numbers > code { - position: relative; - white-space: inherit; -} - -.line-numbers .line-numbers-rows { - position: absolute; - pointer-events: none; - top: 0; - font-size: 100%; - left: -3.8em; - width: 3em; /* works for line-numbers below 1000 lines */ - letter-spacing: -1px; - border-right: 1px solid #999; - - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.line-numbers-rows > span { - display: block; - counter-increment: linenumber; -} - -.line-numbers-rows > span:before { - content: counter(linenumber); - color: #999; - display: block; - padding-right: 0.8em; - text-align: right; -} - -div.code-toolbar { - position: relative; -} - -div.code-toolbar > .toolbar { - position: absolute; - top: 0.3em; - right: 0.2em; - transition: opacity 0.3s ease-in-out; - opacity: 0; -} - -div.code-toolbar:hover > .toolbar { - opacity: 1; -} - -/* Separate line b/c rules are thrown out if selector is invalid. - IE11 and old Edge versions don't support :focus-within. */ -div.code-toolbar:focus-within > .toolbar { - opacity: 1; -} - -div.code-toolbar > .toolbar .toolbar-item { - display: inline-block; -} - -div.code-toolbar > .toolbar a { - cursor: pointer; -} - -div.code-toolbar > .toolbar button { - background: none; - border: 0; - color: inherit; - font: inherit; - line-height: normal; - overflow: visible; - padding: 0; - -webkit-user-select: none; /* for button */ - -moz-user-select: none; - -ms-user-select: none; -} - -div.code-toolbar > .toolbar a, -div.code-toolbar > .toolbar button, -div.code-toolbar > .toolbar span { - color: #bbb; - font-size: 0.8em; - padding: 0 0.5em; - background: #f5f2f0; - background: rgba(224, 224, 224, 0.2); - box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); - border-radius: 0.5em; -} - -div.code-toolbar > .toolbar a:hover, -div.code-toolbar > .toolbar a:focus, -div.code-toolbar > .toolbar button:hover, -div.code-toolbar > .toolbar button:focus, -div.code-toolbar > .toolbar span:hover, -div.code-toolbar > .toolbar span:focus { - color: inherit; - text-decoration: none; -} diff --git a/frontend/documentation/styles/readthedocs.css b/frontend/documentation/styles/readthedocs.css deleted file mode 100644 index c3e9452..0000000 --- a/frontend/documentation/styles/readthedocs.css +++ /dev/null @@ -1,117 +0,0 @@ -.navbar-default { - background: #2980b9; - border: none; -} - -.navbar-default .navbar-brand { - color: #fcfcfc; -} - -.menu { - background: #343131; - color: #fcfcfc; -} - -.menu ul.list li a { - color: #fcfcfc; -} - -.menu ul.list li.title { - background: #2980b9; - padding-bottom: 5px; -} - -.menu ul.list li:nth-child(2) { - margin-top: 0; -} - -.menu ul.list li.chapter a, -.menu ul.list li.chapter .simple { - color: #555; - text-transform: uppercase; - text-decoration: none; -} - -.menu ul.list li.chapter ul.links a { - color: #b3b3b3; - text-transform: none; - padding-left: 35px; -} - -.menu ul.list li.chapter ul.links a:hover { - background: #4e4a4a; -} - -.menu ul.list li.chapter a.active, -.menu ul.list li.chapter ul.links a.active { - color: #0099e5; -} - -.menu ul.list li.chapter ul.links { - padding-left: 0; -} - -.menu ul.list li.divider { - background: rgba(255, 255, 255, 0.07); -} - -#book-search-input input, -#book-search-input input:focus, -#book-search-input input:hover { - color: #949494; -} - -.copyright { - color: #b3b3b3; - background: #272525; -} - -.content { - background: #fcfcfc; -} - -.content a { - color: #2980b9; -} - -.content a:hover { - color: #3091d1; -} - -.content a:visited { - color: #9b59b6; -} - -.menu ul.list li:nth-last-child(2) { - background: none; -} - -code { - white-space: nowrap; - max-width: 100%; - background: #fff; - padding: 2px 5px; - color: #e74c3c; - overflow-x: auto; - border-radius: 0; -} - -pre { - white-space: pre; - margin: 0; - padding: 12px 12px; - font-size: 12px; - line-height: 1.5; - display: block; - overflow: auto; - color: #404040; - background: rgba(238, 238, 238, 0.35); -} - -.dark .content { - background: none; -} -.dark code { - background: none; - color: #e09393; -} diff --git a/frontend/documentation/styles/reset.css b/frontend/documentation/styles/reset.css deleted file mode 100644 index 9a153b5..0000000 --- a/frontend/documentation/styles/reset.css +++ /dev/null @@ -1,129 +0,0 @@ -/* http://meyerweb.com/eric/tools/css/reset/ - v2.0 | 20110126 - License: none (public domain) -*/ - -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -b, -u, -i, -center, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td, -article, -aside, -canvas, -details, -embed, -figure, -figcaption, -footer, -header, -hgroup, -menu, -nav, -output, -ruby, -section, -summary, -time, -mark, -audio, -video { - margin: 0; - padding: 0; - border: 0; - font: inherit; - font-size: 100%; - vertical-align: baseline; -} -/* HTML5 display-role reset for older browsers */ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -menu, -nav, -section { - display: block; -} -body { - line-height: 1; -} -ol, -ul { - list-style: none; -} -blockquote, -q { - quotes: none; -} -blockquote:before, -blockquote:after, -q:before, -q:after { - content: ''; - content: none; -} -table { - border-collapse: collapse; - border-spacing: 0; -} diff --git a/frontend/documentation/styles/tablesort.css b/frontend/documentation/styles/tablesort.css deleted file mode 100644 index f715483..0000000 --- a/frontend/documentation/styles/tablesort.css +++ /dev/null @@ -1,33 +0,0 @@ -th[role=columnheader]:not(.no-sort) { - cursor: pointer; -} - -th[role=columnheader]:not(.no-sort):after { - content: ''; - float: right; - margin-top: 7px; - border-width: 0 4px 4px; - border-style: solid; - border-color: #404040 transparent; - visibility: visible; - opacity: 1; - -ms-user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -th[aria-sort=ascending]:not(.no-sort):after { - border-bottom: none; - border-width: 4px 4px 0; -} - -th[aria-sort]:not(.no-sort):after { - visibility: visible; - opacity: 0.4; -} - -th[role=columnheader]:not(.no-sort):hover:after { - visibility: visible; - opacity: 1; -} diff --git a/frontend/documentation/styles/vagrant.css b/frontend/documentation/styles/vagrant.css deleted file mode 100644 index f72edb0..0000000 --- a/frontend/documentation/styles/vagrant.css +++ /dev/null @@ -1,130 +0,0 @@ -.navbar-default .navbar-brand { - background: white; - color: #8d9ba8; -} - -.menu .list { - background: #0c5593; -} - -.menu .chapter { - padding: 0 20px; -} - -.menu ul.list li a[data-type='chapter-link'], -.menu ul.list li.chapter .simple { - color: white; - text-transform: uppercase; - border-bottom: 1px solid rgba(255, 255, 255, 0.4); -} - -.content h1, -.content h2, -.content h3, -.content h4, -.content h5 { - color: #292e31; - font-weight: normal; -} - -.content { - color: #4c555a; -} - -a { - color: #0094bf; - text-decoration: underline; -} -a:hover { - color: #f1362f; -} - -.menu ul.list li.title { - background: white; - padding-bottom: 5px; -} - -.menu ul.list li:nth-child(2) { - margin-top: 0; -} - -.menu ul.list li:nth-last-child(2) { - background: none; -} - -.menu ul.list li.title a { - padding: 10px 15px; -} - -.menu ul.list li.title a, -.navbar a { - color: #8d9ba8; - text-decoration: none; - font-size: 16px; - font-weight: 300; -} - -.menu ul.list li a { - color: white; - padding: 10px; - font-weight: 300; - text-decoration: none; -} -.menu ul.list li a.active { - color: white; - font-weight: bold; -} - -.copyright { - color: white; - background: #000; -} - -code { - box-sizing: border-box; - display: inline-block; - padding: 0 5px; - background: rgba(0, 148, 191, 0.1); - border-radius: 3px; - color: #0094bf; - font-size: 13px; - line-height: 20px; -} - -pre { - margin: 0; - padding: 12px 12px; - background: rgba(238, 238, 238, 0.35); - border-radius: 3px; - font-size: 13px; - line-height: 1.5em; - font-weight: 500; -} - -.dark body { - color: #fafafa; -} -.dark .content h1, -.dark .content h2, -.dark .content h3, -.dark .content h4, -.dark .content h5 { - color: #fafafa; -} - -.dark code { - background: none; -} - -.dark .content { - color: #fafafa; -} - -.dark .menu ul.list li.title a, -.dark .navbar a { - color: #8d9ba8; -} - -.dark .menu ul.list li a { - color: #fafafa; -} diff --git a/frontend/package.json b/frontend/package.json index 6c6285a..309c8e1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,6 +9,8 @@ "test": "ng test", "compodoc": "npx compodoc -p tsconfig.doc.json" }, + + "private": true, "dependencies": { "@angular/animations": "^14.2.0", diff --git a/frontend/src/documentation/components/AppComponent.html b/frontend/src/documentation/components/AppComponent.html new file mode 100644 index 0000000..98afbbd --- /dev/null +++ b/frontend/src/documentation/components/AppComponent.html @@ -0,0 +1,479 @@ + + + + + + Application documentation + + + + + + + + + + + + +
              +
              + +
              +
              + + + + + + + +
              +

              +

              File

              +

              +

              + app/app.component.ts +

              + + + +
              +

              Metadata

              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              encapsulationViewEncapsulation.None
              selectorapp-root
              styleUrlsapp.component.css
              templateUrlapp.component.html
              +
              + + + +
              +

              Constructor

              + + + + + + + +
              + constructor() +
              +
              + + +
              +
              +
              import { Component, ViewEncapsulation, OnInit, ViewChild } from '@angular/core';
              +@Component({
              +  selector: 'app-root',
              +  templateUrl: './app.component.html',
              +  styleUrls: ['./app.component.css'],
              +  encapsulation: ViewEncapsulation.None
              +
              +
              +})
              +
              +/**
              +* The AppComponent is just a container for the NTTGanttComponent
              +*/
              +export class AppComponent {
              +
              + constructor() {}
              +
              + public ngOnInit(): void {
              +
              + }
              +
              +};
              +
              +
              +
              +
              +
              +
              +
              +
              + + + + + + + + + + +
              +
              +

              results matching ""

              +
                +
                +
                +

                No results matching ""

                +
                +
                +
                +
                +
                + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/FilterDialogComponent.html b/frontend/src/documentation/components/FilterDialogComponent.html new file mode 100644 index 0000000..4e489d8 --- /dev/null +++ b/frontend/src/documentation/components/FilterDialogComponent.html @@ -0,0 +1,1080 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                +
                + +
                +
                + + + + + + + +
                +

                +

                File

                +

                +

                + app/filter-dialog/filter-dialog.component.ts +

                + + + +
                +

                Metadata

                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                providers + + { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS } + +
                selectorapp-filter-dialog
                styleUrlsfilter-dialog.component.css
                templateUrlfilter-dialog.component.html
                +
                + + + +
                +

                Constructor

                + + + + + + + + + + +
                + constructor(languageService: LanguageService, dialogRef: any, data: any, dataService: DataService, _snackBar: MatSnackBar) +
                +

                The constructor injects required Dependencies and sets default values for logic and ui

                +
                +
                + Parameters : +
                  +
                • +
                  + languageService +
                  +
                  +

                  representation of the LanguageService

                  + +
                  +
                • +
                • +
                  + dialogRef +
                  +
                  +

                  MatDialog Reference from Angular

                  + +
                  +
                • +
                • +
                  + data +
                  +
                  +

                  contains an array of Changes which should be sent to the backend for a status transition

                  + +
                  +
                • +
                • +
                  + dataService +
                  +
                  +

                  injects the dataService for data management and backend communication

                  + +
                  +
                • +
                +
                +
                +
                + +
                +

                Methods

                + + + + + + + + + + + + + + +
                + onResult +
                + onResult(event: any) +
                +

                The function onResult gets the result (selection) from the multiselect-autocomplete-component,
                evaluates, which filter was selected and maps it to a list

                +
                +
                + Parameters : +
                  +
                • +
                  + event +
                  +
                  +

                  selection event from the multiselect-autocomplete-component

                  + +
                  +
                • +
                +
                +
                + Returns: void + +
                +
                + +
                +
                + + + + + + + + + + + + + + +
                + mapFilter +
                + mapFilter() +
                +

                The function mapFilter builds a filterElement out of all the selected filters, delivers it back and closes the dialog

                +
                +
                + Returns: void + +
                +
                +
                + +
                +

                Properties

                + + + + + + + + + +
                + Public contracts +
                + contracts: string[] + +
                + + + + + + + + + +
                + Public contractsFilter +
                + contractsFilter: any[] + +
                + + + + + + + + + +
                + Public criteria +
                + criteria: string + +
                + + + + + + + + + +
                + data +
                + data: any + +
                + + + + + + + + + +
                + Public dateFilter +
                + dateFilter: any[] + +
                + + + + + + + + + +
                + dialogRef +
                + dialogRef: any + +
                + + + + + + + + + +
                + Public filterEndDate +
                + filterEndDate: Date + +
                + + + + + + + + + +
                + Public filterLabels +
                + filterLabels: string[] + +
                + + + + + + + + + +
                + Public filterObj +
                + filterObj: any + +
                + + + + + + + + + +
                + Public filterStartDate +
                + filterStartDate: Date + +
                + + + + + + + + + +
                + languageService +
                + languageService: LanguageService + +
                + + + + + + + + + +
                + Public paketTypes +
                + paketTypes: string[] + +
                + + + + + + + + + +
                + Public paketTypesFilter +
                + paketTypesFilter: any[] + +
                + + + + + + + + + +
                + Public states +
                + states: string[] + +
                + + + + + + + + + +
                + Public statesFilter +
                + statesFilter: any[] + +
                + + + + + + + + + +
                + Public supportGroups +
                + supportGroups: string[] + +
                + + + + + + + + + +
                + Public supportGroupsFilter +
                + supportGroupsFilter: any[] + +
                + + + + + + + + + +
                + Public textFilter +
                + textFilter: any[] + +
                + + + + + + + + + +
                + Public userSupportGroup +
                + userSupportGroup: string + +
                +
                +
                +
                +
                import { LanguageService } from './../language.service';
                +import { Component, Inject, OnInit } from '@angular/core';
                +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
                +import { MatSnackBar } from '@angular/material/snack-bar';
                +import { DataService } from '../data.service';
                +import { MAT_DATE_FORMATS } from '@angular/material/core'
                +
                +export interface FilterAttribute{
                +name: string,
                +}
                +
                +export const MY_DATE_FORMATS = {
                +  parse: {
                +    dateInput: 'DD.MM.YYYY',
                +  },
                +  display: {
                +    dateInput: 'DD.MM.YYYY',
                +    monthYearLabel: 'MMMM YYYY',
                +    dateA11yLabel: 'LL',
                +    monthYearA11yLabel: 'MMMM YYYY'
                +  },
                +};
                +
                +@Component({
                +  selector: 'app-filter-dialog',
                +  templateUrl: './filter-dialog.component.html',
                +  styleUrls: ['./filter-dialog.component.css'],
                +  providers: [
                +    { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }
                +  ]
                +})
                +
                +/**
                +* The ImplementerDialogComponent displays a dialog with all filter options
                +*/
                +export class FilterDialogComponent implements OnInit {
                +  public supportGroups: string[] = [];
                +  public paketTypes: string[] = [];
                +  public states: string[] = [];
                +  public contracts: string[] = [];
                +  public userSupportGroup: string;
                +
                +  public criteria: string;
                +  public filterStartDate: Date;
                +  public filterEndDate: Date;
                +
                +  public supportGroupsFilter = [];
                +  public paketTypesFilter = [];
                +  public statesFilter = [];
                +  public contractsFilter = [];
                +  public textFilter = [];
                +  public dateFilter = [];
                +  public filterLabels: string[] = [];
                +  public filterObj;
                +
                +  /**
                +  * The constructor injects required Dependencies and sets default values for logic and ui
                +  * @param languageService representation of the LanguageService
                +  * @param dialogRef MatDialog Reference from Angular
                +  * @param data contains an array of Changes which should be sent to the backend for a status transition
                +  * @param dataService injects the dataService for data management and backend communication
                +  */
                +  constructor(public languageService: LanguageService, public dialogRef: MatDialogRef<FilterDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any, private dataService: DataService, private _snackBar: MatSnackBar) {
                +    //dialogRef.beforeClosed().subscribe(() => dialogRef.close(this.dataToReturn));
                +  }
                +
                +  /**
                +  * The function ngOnInit initialized the component by fetching all relevant data via the dataService
                +  */
                +  ngOnInit(): void {
                +      this.dataService.fetchUserSupportGroup().then((res:any)=>{
                +        this.userSupportGroup = res.name;
                +      });
                +      console.log(this.userSupportGroup);
                +      if(this.languageService.language == 'DE'){
                +        for (const state of this.dataService.getStates()) {
                +          this.states.push(state.stateNameDE);
                +        }
                +      }else{
                +        for (const state of this.dataService.getStates()) {
                +          this.states.push(state.stateNameEN);
                +        }
                +      }
                +
                +      for (const supportGroup of this.dataService.getSupportGroups()) {
                +        this.supportGroups.push(supportGroup.name);
                +      }
                +      for (const contract of this.dataService.getContracts()) {
                +        this.contracts.push(contract.name);
                +      }
                +      for (const paketType of this.dataService.getPaketTypes()) {
                +        this.paketTypes.push(paketType.name);
                +      }
                +  }
                +
                +  /**
                +  * The function onResult gets the result (selection) from the multiselect-autocomplete-component,
                +  * evaluates, which filter was selected and maps it to a list
                +  * @param event selection event from the multiselect-autocomplete-component
                +  */
                +  onResult(event: any) {
                +      console.log(event);
                +      switch (event.key) {
                +        case 'supportGroup':
                +           this.supportGroupsFilter = event.data;
                +        break;
                +        case 'state':
                +          if(this.languageService.language == 'DE'){
                +            console.log(event.data);
                +            for (const state of event.data) {
                +              if(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;})){
                +                this.statesFilter.push(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;}).stateNameEN);
                +              }
                +              console.log(this.statesFilter);
                +            }
                +          }else{
                +            console.log(event.data);
                +            for (const state of event.data) {
                +              if(this.dataService.getStates().find((item)=> {return item.stateNameEN == state;})){
                +                this.statesFilter.push(this.dataService.getStates().find((item)=> {return item.stateNameEN == state;}).stateNameEN);
                +              }
                +              console.log(this.statesFilter);
                +            }
                +          }
                +
                +          break;
                +          case 'contract':
                +            //this.contractsFilter = event.data;
                +              console.log(event.data);
                +              for (const contract of event.data) {
                +                if(this.dataService.getContracts().find((item)=> {return item.name == contract;})){
                +                  this.contractsFilter.push(this.dataService.getContracts().find((item)=> {return item.name == contract;}).id);
                +                }
                +                console.log(this.contractsFilter);
                +              }
                +            break;
                +            case 'paketType':
                +              //this.paketTypesFilter = event.data;
                +              console.log(event.data);
                +              for (const paketType of event.data) {
                +                if(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;})){
                +                  this.paketTypesFilter.push(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;}).id);
                +                }
                +                console.log(this.paketTypesFilter);
                +              }
                +            break;
                +        default:
                +          break;
                +      }
                +
                +  }
                +
                +  /**
                +  * The function mapFilter builds a filterElement out of all the selected filters, delivers it back and closes the dialog
                +  */
                +  mapFilter(){
                +    let filterElement = []
                +    if(this.paketTypesFilter.length > 0){
                +      filterElement.push({
                +        "column": "PackageType",
                +         "filter": "equals",
                +         "criteria": this.paketTypesFilter
                +        });
                +    }
                +
                +    if(this.statesFilter.length > 0){
                +      filterElement.push({
                +        "column": "State",
                +         "filter": "equals",
                +         "criteria": this.statesFilter
                +        });
                +    }
                +
                +
                +    if(this.contractsFilter.length > 0){
                +      filterElement.push({
                +        "column": "Contract",
                +        "filter": "equals",
                +        "criteria": this.contractsFilter
                +        });
                +    }
                +    if(this.supportGroupsFilter.length > 0){
                +      filterElement.push({
                +        "column": "SupportGroup",
                +        "filter": "equals",
                +        "criteria": this.supportGroupsFilter
                +        });
                +        console.log(this.supportGroupsFilter);
                +    }else{
                +      filterElement.push({
                +        "column": "SupportGroup",
                +        "filter": "equals",
                +        "criteria": [this.userSupportGroup]
                +        });
                +    }
                +
                +    if(this.filterStartDate != null && this.filterEndDate != null){
                +      filterElement.push({
                +        "column": "D2",
                +        "filter": "dateRange",
                +        "criteria": [new Date(this.filterStartDate), new Date(this.filterEndDate)]
                +        });
                +    }
                +
                +    if(this.criteria != null && this.criteria != ""){
                +      filterElement.push({
                +        "column": "ResourceName",
                +        "filter": "contains",
                +        "criteria": [this.criteria]
                +        });
                +    }
                +
                +    let filter = {filterElement: filterElement};
                +    console.log(filter);
                +    this.dialogRef.close(filter);
                +  }
                +}
                +
                +
                +
                + + + + + + + + + + +
                +
                +

                results matching ""

                +
                  +
                  +
                  +

                  No results matching ""

                  +
                  +
                  +
                  +
                  +
                  + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/ImplementerDialogComponent.html b/frontend/src/documentation/components/ImplementerDialogComponent.html new file mode 100644 index 0000000..f3945ef --- /dev/null +++ b/frontend/src/documentation/components/ImplementerDialogComponent.html @@ -0,0 +1,875 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                  +
                  + +
                  +
                  + + + + + + + +
                  +

                  +

                  File

                  +

                  +

                  + app/implementer-dialog/implementer-dialog.component.ts +

                  + + + +
                  +

                  Metadata

                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  selectorapp-implementer-dialog
                  styleUrlsimplementer-dialog.component.css
                  templateUrlimplementer-dialog.component.html
                  +
                  + + + +
                  +

                  Constructor

                  + + + + + + + + + + +
                  + constructor(languageService: LanguageService, dialogRef: any, data: any, dataService: DataService, _snackBar: MatSnackBar) +
                  +

                  The constructor injects required Dependencies and sets default values for logic and ui

                  +
                  +
                  + Parameters : +
                    +
                  • +
                    + dialogRef +
                    +
                    +

                    MatDialog Reference from Angular

                    + +
                    +
                  • +
                  • +
                    + data +
                    +
                    +

                    contains an array of Changes which should be sent to the backend for a status transition

                    + +
                    +
                  • +
                  • +
                    + dataService +
                    +
                    +

                    injects the dataService for data management and backend communication

                    + +
                    +
                  • +
                  +
                  +
                  +
                  + +
                  +

                  Methods

                  + + + + + + + + + + + + + + +
                  + enableButton +
                  + enableButton() +
                  +

                  The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button

                  +
                  +
                  + Returns: void + +
                  +
                  + + + + + + + + + + + + + + +
                  + updateImplementer +
                  + updateImplementer() +
                  +

                  The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar.

                  +
                  +
                  + Returns: void + +
                  +
                  +
                  + +
                  +

                  Properties

                  + + + + + + + + + + + + +
                  + Public bdiasbled +
                  + bdiasbled: boolean + +
                  + Default value: false +
                  + + + + + + + + + +
                  + data +
                  + data: any + +
                  + + + + + + + + + + + + +
                  + Public diasbled +
                  + diasbled: boolean + +
                  + Default value: false +
                  + + + + + + + + + + + + +
                  + Public horizontalPosition +
                  + horizontalPosition: MatSnackBarHorizontalPosition + +
                  + Default value: end +
                  + + + + + + + + + +
                  + Private implementers +
                  + implementers: any[] + +
                  + + + + + + + + + +
                  + Public labels +
                  + labels: string[] + +
                  + + + + + + + + + +
                  + languageService +
                  + languageService: LanguageService + +
                  + + + + + + + + + +
                  + Public possibleImplementers +
                  + possibleImplementers: any[] + +
                  + + + + + + + + + + + + +
                  + Public progress +
                  + progress: number + +
                  + Default value: 0 +
                  + + + + + + + + + +
                  + Public selectedValue +
                  + selectedValue: any + +
                  + + + + + + + + + + + + +
                  + Public verticalPosition +
                  + verticalPosition: MatSnackBarVerticalPosition + +
                  + Default value: bottom +
                  +
                  +
                  +
                  +
                  import { Component, OnInit } from '@angular/core';
                  +import { Inject } from '@angular/core';
                  +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
                  +import { DataService } from '../data.service';
                  +import {
                  +  MatSnackBar,
                  +  MatSnackBarHorizontalPosition,
                  +  MatSnackBarVerticalPosition,
                  +} from '@angular/material/snack-bar';
                  +import { LanguageService } from '../language.service';
                  +
                  +@Component({
                  +  selector: 'app-implementer-dialog',
                  +  templateUrl: './implementer-dialog.component.html',
                  +  styleUrls: ['./implementer-dialog.component.css']
                  +})
                  +
                  +/**
                  +* The ImplementerDialogComponent displays a dialog to change the implementer of a change
                  +*/
                  +export class ImplementerDialogComponent implements OnInit {
                  +
                  +
                  +  public possibleImplementers: any[] = [
                  +    {value: '-1', viewValue: 'default'}
                  + ];
                  + public selectedValue : any = this.possibleImplementers[0].value;
                  + public progress : number = 0;
                  + public diasbled : boolean = false;
                  + public bdiasbled : boolean = false;
                  + public horizontalPosition: MatSnackBarHorizontalPosition = 'end';
                  + public verticalPosition: MatSnackBarVerticalPosition = 'bottom';
                  + public labels: string[] = [];
                  + private implementers : any[];
                  +
                  +
                  + /**
                  +  * The constructor injects required Dependencies and sets default values for logic and ui
                  +  * @param dialogRef MatDialog Reference from Angular
                  +  * @param data contains an array of Changes which should be sent to the backend for a status transition
                  +  * @param dataService injects the dataService for data management and backend communication
                  +  */
                  +  constructor(public languageService: LanguageService, private dialogRef: MatDialogRef<ImplementerDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any,private dataService: DataService, private _snackBar: MatSnackBar) {
                  +    this.progress = 0;
                  +    this.bdiasbled = true;
                  +    this.diasbled = false;
                  +    this.selectedValue = -1;
                  +    this.possibleImplementers = [];
                  +  }
                  +
                  +  /**
                  +  * The function ngOnInit checks in which actual State the selected changes are, then it provides a list that contains which statuses can be switched to in the current state
                  +  */
                  +  ngOnInit(): void {
                  +    console.log(this.data.changes[0]);
                  +    this.dataService.fetchImplementers(this.data.changes[0]).then((res: any)=>{
                  +      this.implementers = res;
                  +      console.log(this.implementers);
                  +      this.possibleImplementers = [];
                  +      if(this.implementers.length>0){
                  +        for (const implementer of this.implementers) {
                  +          this.possibleImplementers.push({value: implementer.loginId, viewValue: implementer.memberName});
                  +        }
                  +      }else{
                  +        this.dialogRef.close();
                  +      }
                  +    }).catch((error)=>{
                  +
                  +    });
                  +  }
                  +
                  +  /**
                  +  * The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button
                  +  */
                  +  enableButton():void{
                  +    this.bdiasbled = false;
                  +  }
                  +
                  +  /**
                  +  * The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar.
                  +  */
                  +  updateImplementer(): void{
                  +    let counter : number = 0;
                  +    if(this.selectedValue != -1){
                  +      for (let change of this.data.changes){
                  +        this.dataService.updateImplementerPerChange({resourceId: change.pkgId, loginId: this.selectedValue}).then((res: any)=>{
                  +          this.diasbled = true;
                  +          this.bdiasbled = true;
                  +          console.log(res);
                  +          if(res.status == 200){
                  +            counter++;
                  +            this.progress = (counter/this.data.changes.length)*100;
                  +          }
                  +          if(res.status == 500){
                  +            let msg;
                  +            let action;
                  +            if(this.languageService.language == 'DE'){
                  +              msg = 'Implementer Eintragung fehlgeschlagen';
                  +              action ='Schließen';
                  +            }else{
                  +              msg = 'Implementer Update failed';
                  +              action ='close';
                  +            }
                  +            this._snackBar.open(msg+" : "+res.error.message, action, {
                  +              horizontalPosition: this.horizontalPosition,
                  +              verticalPosition: this.verticalPosition,
                  +              panelClass: ['red-snackbar']
                  +            }).onAction().subscribe(() => {
                  +              console.log('The snackbar action was triggered!');
                  +            });
                  +            this.dialogRef.close();
                  +            //this.dialogRef.close();
                  +            //counter++;
                  +            //this.progress = (counter/this.data.changes.length)*100;
                  +          }
                  +
                  +          if(this.progress == 100){
                  +            this.diasbled = false;
                  +            this.bdiasbled = true;
                  +            let msg;
                  +            let action;
                  +            if(this.languageService.language == 'DE'){
                  +              msg = 'Implementer Eintragung erfolgreich';
                  +              action ='Schließen';
                  +            }else{
                  +              msg = 'Implementer Update successful';
                  +              action ='close';
                  +            }
                  +            this._snackBar.open(msg, action, {
                  +              horizontalPosition: this.horizontalPosition,
                  +              verticalPosition: this.verticalPosition,
                  +              duration: 5000,
                  +              panelClass: ['green-snackbar']
                  +            });
                  +            this.dialogRef.close();
                  +          }
                  +        });
                  +      }
                  +    }
                  +  }
                  +}
                  +
                  +
                  +
                  + + + + + + + + + + +
                  +
                  +

                  results matching ""

                  +
                    +
                    +
                    +

                    No results matching ""

                    +
                    +
                    +
                    +
                    +
                    + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/MultiselectAutocompleteComponent.html b/frontend/src/documentation/components/MultiselectAutocompleteComponent.html new file mode 100644 index 0000000..86958fe --- /dev/null +++ b/frontend/src/documentation/components/MultiselectAutocompleteComponent.html @@ -0,0 +1,846 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                    +
                    + +
                    +
                    + + + + + + + +
                    +

                    +

                    File

                    +

                    +

                    + app/multiselect-autocomplete/multiselect-autocomplete.component.ts +

                    + + + +
                    +

                    Metadata

                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    selectormultiselect-autocomplete
                    styleUrlsmultiselect-autocomplete.component.css
                    templateUrlmultiselect-autocomplete.component.html
                    +
                    + +
                    +

                    Inputs

                    + + + + + + + +
                    + data + +

                    + Type: string[] + +

                    +
                    + + + + + + + +
                    + key + +

                    + Type: string + +

                    +
                    + + + + + + + +
                    + placeholder + +

                    + Type: string + +

                    +

                    + Default value: Select Data +

                    +
                    +
                    + +
                    +

                    Outputs

                    + + + + + + + +
                    + result + + $event type: EventEmitter + +
                    +
                    + +
                    +

                    Constructor

                    + + + + + + + + + + +
                    + constructor() +
                    +

                    The constructor maps the default values

                    +
                    +
                    +
                    + + +
                    +

                    Properties

                    + + + + + + + + + +
                    + displayFn +
                    + displayFn: () => string + +
                    + + + + + + + + + + + + +
                    + emitAdjustedData +
                    + emitAdjustedData: () => void + +
                    +

                    The emitAdjustedData emits the selected options the the parent component
                    its triggered when the selectbox is closed

                    +
                    +
                    + + + + + + + + + + + + +
                    + filter +
                    + filter: (filter: string) => ItemData[] + +
                    +

                    The function filter filters the list with the select options

                    +
                    +
                    + + + + + + + + + +
                    + filteredData +
                    + filteredData: any + +
                    + + + + + + + + + +
                    + filterString +
                    + filterString: string + +
                    + + + + + + + + + + + + +
                    + optionClicked +
                    + optionClicked: (event: Event, data: ItemData) => void + +
                    +

                    The funtion optionClicked hanled the selection of a select option (filter option)

                    +
                    +
                    + + + + + + + + + +
                    + rawData +
                    + rawData: ItemData[] + +
                    + + + + + + + + + + + + +
                    + removeChip +
                    + removeChip: (data: ItemData) => void + +
                    +

                    The removeChip removes a option from the selection list if the user presses the remove button on the chip list

                    +
                    +
                    + + + + + + + + + +
                    + selectControl +
                    + selectControl: any + +
                    + + + + + + + + + +
                    + selectData +
                    + selectData: ItemData[] + +
                    + + + + + + + + + + + + +
                    + toggleSelection +
                    + toggleSelection: (data: ItemData) => void + +
                    +

                    The function toggleSelection handles a click on a selection item
                    if it is already selected it will be removed from the selection, if it is not yet selected it will be selected
                    it builds the base for many filter select option

                    +
                    +
                    +
                    +
                    +
                    +
                    import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
                    +import { FormControl } from '@angular/forms';
                    +import { Observable } from 'rxjs';
                    +import { map, startWith } from 'rxjs/operators';
                    +​
                    +
                    +
                    +export interface ItemData {
                    +  item: string;
                    +  selected: boolean;
                    +}
                    +
                    +@Component({
                    +  selector: 'multiselect-autocomplete',
                    +  templateUrl: './multiselect-autocomplete.component.html',
                    +  styleUrls: ['./multiselect-autocomplete.component.css']
                    +})
                    +
                    +/**
                    +* The MultiselectAutocompleteComponent mixes a angular material multiselect and a angular material autocomplete
                    +* it builds the base for many filter select option
                    +*/
                    +export class MultiselectAutocompleteComponent implements OnInit {
                    +
                    +  @Output() result = new EventEmitter<{ key: string, data: Array<string> }>();
                    +  @Input() placeholder: string = 'Select Data';
                    +  @Input() data: Array<string> = [];
                    +  @Input() key: string = '';
                    +  selectControl = new FormControl();
                    +
                    +  rawData: Array<ItemData> = [];
                    +  selectData: Array<ItemData> = [];
                    +  filteredData: Observable<Array<ItemData>>;
                    +  filterString: string = '';
                    +
                    +  /**
                    +  * The constructor maps the default values
                    +  */
                    +  constructor() {
                    +    this.filteredData = this.selectControl.valueChanges.pipe(
                    +      startWith<string>(''),
                    +      map(value => typeof value === 'string' ? value : this.filterString),
                    +      map(filter => this.filter(filter))
                    +    );
                    +
                    +  }
                    +  /**
                    +  * The function ngOnInit imports the data (filter options) and maps it
                    +  */
                    +  ngOnInit(): void {
                    +    this.data.forEach((item: string) => {
                    +      this.rawData.push({ item, selected: false });
                    +    });
                    +
                    +    var WebFont = require('webfontloader');
                    +    WebFont.load({
                    +       google: {
                    +          families: [
                    +             'Material Icons',
                    +          ],
                    +       },
                    +    });
                    +
                    +  }
                    +
                    +  /**
                    +  * The function filter filters the list with the select options
                    +  * @param filter text to search for
                    +  */
                    +  filter = (filter: string): Array<ItemData> => {
                    +    this.filterString = filter;
                    +    if (filter.length > 0) {
                    +      return this.rawData.filter(option => {
                    +        return option.item.toLowerCase().indexOf(filter.toLowerCase()) >= 0;
                    +      });
                    +    } else {
                    +      return this.rawData.slice();
                    +    }
                    +  };
                    +
                    +  displayFn = (): string => '';
                    +  /**
                    +  * The funtion optionClicked hanled the selection of a select option (filter option)
                    +  * @param event selection event
                    +  * @param data (filter)item data
                    +  */
                    +  optionClicked = (event: Event, data: ItemData): void => {
                    +    event.stopPropagation();
                    +    this.toggleSelection(data);
                    +  };
                    +  /**
                    +  * The function toggleSelection handles a click on a selection item
                    +  * if it is already selected it will be removed from the selection, if it is not yet selected it will be selected
                    +  * it builds the base for many filter select option
                    +  */
                    +  toggleSelection = (data: ItemData): void => {
                    +    data.selected = !data.selected;
                    +    if (data.selected === true) {
                    +      this.selectData.push(data);
                    +    } else {
                    +      const i = this.selectData.findIndex(value => value.item === data.item);
                    +      this.selectData.splice(i, 1);
                    +    }
                    +    this.selectControl.setValue(this.selectData);
                    +    this.emitAdjustedData();
                    +  };
                    +  /**
                    +  * The emitAdjustedData emits the selected options the the parent component
                    +  * its triggered when the selectbox is closed
                    +  */
                    +
                    +  emitAdjustedData = (): void => {
                    +    const results: Array<string> = []
                    +    this.selectData.forEach((data: ItemData) => {
                    +      results.push(data.item);
                    +    });
                    +    this.result.emit({ key: this.key, data: results });
                    +  };
                    +
                    +  /**
                    +  * The removeChip removes a option from the selection list if the user presses the remove button on the chip list
                    +  */
                    +  removeChip = (data: ItemData): void => {
                    +    this.toggleSelection(data);
                    +  };
                    +
                    +}
                    +
                    +
                    +
                    + + + + + + + + + + +
                    +
                    +

                    results matching ""

                    +
                      +
                      +
                      +

                      No results matching ""

                      +
                      +
                      +
                      +
                      +
                      + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/NttGanttComponent.html b/frontend/src/documentation/components/NttGanttComponent.html new file mode 100644 index 0000000..a88ba62 --- /dev/null +++ b/frontend/src/documentation/components/NttGanttComponent.html @@ -0,0 +1,3318 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                      +
                      + +
                      +
                      + + + + + + + +
                      +

                      +

                      File

                      +

                      +

                      + app/ntt-gantt/ntt-gantt.component.ts +

                      + + + +
                      +

                      Metadata

                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      providers + + { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS } + +
                      selectorntt-gantt
                      styleUrlsntt-gantt.component.css
                      templateUrlntt-gantt.component.html
                      +
                      + + + +
                      +

                      Constructor

                      + + + + + + + + + + +
                      + constructor(languageService: LanguageService, dataService: any, matDialog: MatDialog, _snackBar: MatSnackBar) +
                      +

                      ###################################################################### Initial Loading functions ######################################################################
                      The constructor injects required dependencies

                      +
                      +
                      +
                      + +
                      +

                      Methods

                      + + + + + + + + + + + + + + +
                      + Public mapTasksToResources +
                      + + + + mapTasksToResources(start: number, end: number) +
                      +

                      ###################################################################### Data Mapping, Filter and Sorting Functions ######################################################################
                      The function mapTasksToResources slices the allResources array to the resources array according the actual page conditions maps the actual tasks (Dates) to the actual resources (Changes)
                      This function is triggered when a pageEvent is thrown respectively a user changes the page on the paginator

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + refreshData +
                      + refreshData() +
                      +

                      The function refreshData fetches a new changes Array from the backend, therefore the mapRequestJSON function is called to map the requestJSON with all filter and sort parameters.
                      Furthermore it evaluates the result if the applied filters delivered any Results.
                      This function is the most called Funktion in the whole project, it is triggered by a pageEvent, when a filter gets applied and much more...

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + clearFilter +
                      + clearFilter() +
                      +

                      The function clearFilter clears allFilter parameters and set them to inital values, then it triggers the refreshData function to fetch the changes without any filters except the supportGroup filter.
                      This function is triggered if the user disables the apply filter switch

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + mapRequestJSON +
                      + mapRequestJSON() +
                      +

                      The function mapRequestJSON maps the requestObject for the refreshData function, it evaluates if filters or sort parameters are set.
                      Furtheremore it adds the sliceStart and sliceEnd values of the paginator to the requestObject, because the frontend only delivers the changes that can be displayed on one selected page of the paginator.
                      If no filter is applied the function sets a default supportGroup filter, so that the user gets only changes displayed, which are in his supportGroup.

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + applyFilter +
                      + applyFilter() +
                      +

                      The function applyFilter applies the selected filters and refrehses the gantt chart with the new filters.
                      Furthermore it stores the old filters in a help variable to restore it when to user turns the apply filter switch back on.
                      This function is triggered by the a filter action of the filterdialog, or if the user switches the apply filter switch.

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + openFilterDialog +
                      + openFilterDialog() +
                      +

                      The function openFilterDialog triggers the opening of the filterDialog, recieves the results of the filterDialog and refrehses the gantt chart.
                      This function is triggered by the filter button.

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public languageChange +
                      + + + + languageChange(args: any) +
                      +

                      ###################################################################### Reaction on EVENTS ######################################################################

                      +

                      ############################### NTT Gantt Component Helper Functions /**###############################
                      The function languageChange executes a language change in the language service and triggers the initLanguage function.
                      This function is triggered by a manual language of the user.

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + initLanguge +
                      + initLanguge(initial: boolean) +
                      +

                      The function initLanguge executes a language change for the ntt gantt component. Therefore the time scalar and the gantt columns get the corresponding values determined by the selected language.
                      This function is triggered by the ngOnInit function or the languageChange function

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + initial +
                        +
                        +

                        determines if the function is initially trigger by the ngOnInit function, in all other cases the gantt chart should be refrehed

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public changeScalar +
                      + + + + changeScalar() +
                      +

                      The function changeScalar executes a change of the displayed time scalar.
                      This function is triggered if the user changes the time scalar.

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public handlePageEvent +
                      + + + + handlePageEvent(e: PageEvent) +
                      +

                      ############################### NTT Gantt Component EVENTS /**###############################
                      The function handlePageEvent catches the corresponding matpaginator event and slices the gantt chart, that it fits to the actual page

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public startDateChanged +
                      + + + + startDateChanged(startDate: any) +
                      +

                      The function startDateChanged catches the corresponding date-range-picker event

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + startDate +
                        +
                        +

                        new startDate from date-range-picker

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public endDateChanged +
                      + + + + endDateChanged(endDate: any) +
                      +

                      The function endDateChanged catches the corresponding date-range-picker event and validates the selected start- and enddate bacause the gantt chart needs a valid Date to be displayed

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + endDate +
                        +
                        +

                        new endDate from date-range-picker

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public toolbarBtnClicked +
                      + + + + toolbarBtnClicked(args: any) +
                      +

                      The function toolbarBtnClicked catches the corresponding syncfsuions event and executes the button logic when a button is clicked

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public queryTaskbarInfo +
                      + + + + queryTaskbarInfo(args: any) +
                      +

                      ############################### Syncfusion Framework EVENTS /**###############################
                      The function queryTaskbarInfo catches the corresponding syncfsuions event and colors the respective diamond depending on the status

                      +
                      +
                      + Returns: void + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public taskbarEdited +
                      + + + + taskbarEdited(args: any) +
                      +

                      The function taskbarEdited catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true.
                      If the isFixed flag is false, it triggers the dataService to update the moved date.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public taskbarEditing +
                      + + + + taskbarEditing(args: any) +
                      +

                      The function taskbarEditing catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public actionComplete +
                      + + + + actionComplete(args: any) +
                      +

                      The function taskbarEditing catches the corresponding syncfsuions event and executes a query operation to synchronize the scrollbars of the main gannt chart and the planTimeBart gantt chart.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public load +
                      + + + + load(args: any) +
                      +

                      The function load catches the corresponding syncfsuions event and triggers the loading spinner to start while the gantt chart is refrehshing.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public dataBound +
                      + + + + dataBound(args: any) +
                      +

                      The function dataBound catches the corresponding syncfsuions event and stops the loading spinner.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public created +
                      + + + + created(args: any) +
                      +

                      The function created catches the corresponding syncfsuions event and stops the internal loading spinner.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public onExpand +
                      + + + + onExpand(args: any) +
                      +

                      The function onExpand catches the corresponding syncfsuions event and avoids a chart row from beeing expanded by the user.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public splitterResizing +
                      + + + + splitterResizing(args: any) +
                      +

                      The function splitterResizing catches the corresponding syncfsuions event and stores the actual splitter postition to synchronize the splitters of the main gannt chart and the planTimeBart gantt chart.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public actionBegin +
                      + + + + actionBegin(args: any) +
                      +

                      The function actionBegin catches the corresponding syncfsuions event applies a sort by the selected column and refrehses the gantt chart or opens the Change Package direktly in Remedy if the user doubleclicks on a main date.

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart.

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public rowSelected +
                      + + + + rowSelected(args: any) +
                      +

                      The function rowSelected catches the corresponding syncfsuions event and checks if all selected resources (changes) have the same status, then it displays the corresponding buttons

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      + + + + + + + + + + + + + + +
                      + Public rowDeselected +
                      + + + + rowDeselected(args: any) +
                      +

                      The function rowDeselected catches the corresponding syncfsuions event
                      When a line is deselected, it is checked if all resource states are equal after deselecting a resource, if they are equal then the respective buttons are displayed

                      +
                      +
                      + Parameters : +
                        +
                      • +
                        + args +
                        +
                        +

                        event arguments from the syncfusion gantt chart

                        + +
                        +
                      • +
                      +
                      +
                      + Returns: void + +
                      +
                      + +
                      +
                      +
                      + +
                      +

                      Properties

                      + + + + + + + + + +
                      + Public allResources +
                      + allResources: any[] + +
                      + + + + + + + + + +
                      + Private approvalPending +
                      + approvalPending: boolean + +
                      + + + + + + + + + +
                      + Public blockedTaskIDs +
                      + blockedTaskIDs: number[] + +
                      + + + + + + + + + +
                      + Public columns +
                      + columns: object[] + +
                      + + + + + + + + + +
                      + Public data +
                      + data: any[] + +
                      + + + + + + + + + +
                      + dataService +
                      + dataService: any + +
                      + + + + + + + + + +
                      + Public editSettings +
                      + editSettings: object + +
                      + + + + + + + + + + + + +
                      + Public filterEnabled +
                      + filterEnabled: boolean + +
                      + Default value: false +
                      + + + + + + + + + +
                      + Public filterEndDate +
                      + filterEndDate: Date + +
                      + + + + + + + + + +
                      + Public filters +
                      + filters: any + +
                      + + + + + + + + + +
                      + Public filterSettings +
                      + filterSettings: object + +
                      + + + + + + + + + +
                      + Public filterStartDate +
                      + filterStartDate: Date + +
                      + + + + + + + + + +
                      + Public firstLoad +
                      + firstLoad: boolean + +
                      + + + + + + + + + +
                      + GanttComponent +
                      + GanttComponent: any + +
                      + + + + + + + + + + + + +
                      + Public ganttDefault +
                      + ganttDefault: boolean + +
                      +

                      ###################################################################### Variable Declarations and Definitions ######################################################################

                      +

                      ############################### ViewChild Components /**###############################

                      +
                      +
                      + + + + + + + + + + + + +
                      + Public horizontalPosition +
                      + horizontalPosition: MatSnackBarHorizontalPosition + +
                      + Default value: end +
                      + + + + + + + + + +
                      + Public inputForTimeline +
                      + inputForTimeline: any[] + +
                      + + + + + + + + + +
                      + Public labelSettings +
                      + labelSettings: object + +
                      + + + + + + + + + +
                      + languageService +
                      + languageService: LanguageService + +
                      + + + + + + + + + +
                      + matDialog +
                      + matDialog: MatDialog + +
                      + + + + + + + + + +
                      + Private oldFilters +
                      + oldFilters: {} + +
                      + + + + + + + + + +
                      + Public oldSort +
                      + oldSort: any + +
                      + + + + + + + + + +
                      + paginator +
                      + paginator: MatPaginator + +
                      + + + + + + + + + +
                      + Public panelOpenState +
                      + panelOpenState: boolean + +
                      + + + + + + + + + +
                      + PlanTimeBarComponent +
                      + PlanTimeBarComponent: any + +
                      + + + + + + + + + +
                      + Public plantimeComponent +
                      + plantimeComponent: boolean + +
                      + + + + + + + + + +
                      + Public planTimes +
                      + planTimes: any[] + +
                      + + + + + + + + + + + + +
                      + Public planTimeScrollLeft +
                      + planTimeScrollLeft: number + +
                      + Default value: 0 +
                      + + + + + + + + + +
                      + Public projectEndDate +
                      + projectEndDate: Date + +
                      + + + + + + + + + +
                      + Public projectStartDate +
                      + projectStartDate: Date + +
                      + + + + + + + + + + + + +
                      + Public range +
                      + range: FormGroup<{ start: any; end: any; }, {}> + +
                      +

                      ############################### Default Variables /**###############################

                      +
                      +
                      + + + + + + + + + +
                      + Public renderGantt +
                      + renderGantt: boolean + +
                      + + + + + + + + + + + + +
                      + Public rendering +
                      + rendering: boolean + +
                      + Default value: true +
                      + + + + + + + + + + + + +
                      + Public renderplanTime +
                      + renderplanTime: boolean + +
                      + Default value: false +
                      + + + + + + + + + +
                      + Public resourceFields +
                      + resourceFields: object + +
                      + + + + + + + + + +
                      + Public resources +
                      + resources: any[] + +
                      + + + + + + + + + +
                      + Public scalars +
                      + scalars: string[] + +
                      + + + + + + + + + +
                      + Private selectedrecords +
                      + selectedrecords: any[] + +
                      + + + + + + + + + +
                      + Private selectedRescourceIds +
                      + selectedRescourceIds: any[] + +
                      + + + + + + + + + +
                      + Private selectedrowindex +
                      + selectedrowindex: number[] + +
                      + + + + + + + + + +
                      + Public selectedScalar +
                      + selectedScalar: string + +
                      + + + + + + + + + +
                      + Public selectionSettings +
                      + selectionSettings: object + +
                      + + + + + + + + + +
                      + Private selRecs +
                      + selRecs: any[] + +
                      + + + + + + + + + + + + +
                      + Public showDetails +
                      + showDetails: boolean + +
                      + Default value: true +
                      + + + + + + + + + + + + +
                      + Public showFilters +
                      + showFilters: boolean + +
                      + Default value: false +
                      + + + + + + + + + + + + +
                      + Public showNoResultsError +
                      + showNoResultsError: boolean + +
                      + Default value: false +
                      + + + + + + + + + +
                      + Public sliceEnd +
                      + sliceEnd: number + +
                      + + + + + + + + + +
                      + Public sliceStart +
                      + sliceStart: number + +
                      + + + + + + + + + +
                      + Public sort +
                      + sort: any + +
                      + + + + + + + + + +
                      + Public sortedData +
                      + sortedData: any[] + +
                      + + + + + + + + + + + + +
                      + Public sortEnabled +
                      + sortEnabled: boolean + +
                      + Default value: false +
                      + + + + + + + + + + + + +
                      + Public spin +
                      + spin: boolean + +
                      + Default value: true +
                      + + + + + + + + + +
                      + Public splitterSettings +
                      + splitterSettings: object + +
                      + + + + + + + + + +
                      + Public stateList +
                      + stateList: any[] + +
                      + + + + + + + + + +
                      + Public states +
                      + states: any[] + +
                      + + + + + + + + + +
                      + Public taskSettings +
                      + taskSettings: object + +
                      + + + + + + + + + +
                      + Public timelineSettings +
                      + timelineSettings: object + +
                      + + + + + + + + + +
                      + Public toolbar +
                      + toolbar: any[] + +
                      + + + + + + + + + +
                      + Public tooltipSettings +
                      + tooltipSettings: object + +
                      + + + + + + + + + +
                      + Public userSupportGroup +
                      + userSupportGroup: string + +
                      + + + + + + + + + + + + +
                      + Public verticalPosition +
                      + verticalPosition: MatSnackBarVerticalPosition + +
                      + Default value: bottom +
                      +
                      +
                      +
                      +
                      import { LanguageService } from '../language.service';
                      +import { PlanTimeBarComponent } from '../plan-time-bar/plan-time-bar.component';
                      +import { FilterDialogComponent } from '../filter-dialog/filter-dialog.component';
                      +import { filteredData, editingData } from '../../data';
                      +import { ImplementerDialogComponent } from '../implementer-dialog/implementer-dialog.component';
                      +import { Component, Inject, OnInit, ViewChild } from '@angular/core';
                      +import { MatPaginator, PageEvent } from '@angular/material/paginator';
                      +import { GanttComponent } from '@syncfusion/ej2-angular-gantt';
                      +import { DataService } from 'src/app/data.service';
                      +import { projectNewData } from 'src/data';
                      +import {FormGroup, FormControl} from '@angular/forms';
                      +import {MatDialog} from '@angular/material/dialog';
                      +import * as $ from 'jquery';
                      +import { StateDialogComponent } from 'src/app/state-dialog/state-dialog.component';
                      +import { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';
                      +import { MAT_DATE_FORMATS } from '@angular/material/core';
                      +
                      +export const MY_DATE_FORMATS = {
                      +  parse: {
                      +    dateInput: 'DD.MM.YYYY',
                      +  },
                      +  display: {
                      +    dateInput: 'DD.MM.YYYY',
                      +    monthYearLabel: 'MMMM YYYY',
                      +    dateA11yLabel: 'LL',
                      +    monthYearA11yLabel: 'MMMM YYYY'
                      +  },
                      +};
                      +
                      +@Component({
                      +  selector: 'ntt-gantt',
                      +  templateUrl: './ntt-gantt.component.html',
                      +  styleUrls: ['./ntt-gantt.component.css'],
                      +  providers: [
                      +    { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }
                      +  ]
                      +})
                      +  /**
                      +   * The NttGanttComponent is the core Component of the application
                      +  */
                      +export class NttGanttComponent implements OnInit {
                      +
                      +  /**###################################################################### Variable Declarations and Definitions  ######################################################################*/
                      +
                      +  /**############################### ViewChild Components /**###############################*/
                      +  @ViewChild('ganttObject')
                      +  public ganttDefault!: GanttComponent;
                      +
                      +  @ViewChild('plantimeComponent')
                      +  public plantimeComponent!: PlanTimeBarComponent;
                      +
                      +  @ViewChild(MatPaginator) paginator: MatPaginator;
                      +
                      +  /**############################### Default Variables /**###############################*/
                      +
                      +  public range = new FormGroup({
                      +    start: new FormControl<Date | null>(new Date('12/01/2022')),
                      +    end: new FormControl<Date | null>(new Date('01/31/2024')),
                      +  });
                      +
                      +  public data: any[] = [];
                      +  public allResources: any[] = [];
                      +  public resources: any[] = [];
                      +  public userSupportGroup: string;
                      +  public taskSettings: object = {};
                      +  public labelSettings: object = {};
                      +  public projectStartDate: Date = new Date('12/01/2022');
                      +  public projectEndDate: Date = new Date('01/31/2024');
                      +  public resourceFields: object ={};
                      +  public editSettings: object = {};
                      +  public tooltipSettings: object ={};
                      +  public columns: object[] = [];
                      +  public toolbar: any[] = [];
                      +  public timelineSettings: object = {};
                      +  public rendering: boolean = true;
                      +  public blockedTaskIDs : number [] = [8];
                      +  public selectionSettings : object = {};
                      +  public spin: boolean = true;
                      +  public sliceStart: number;
                      +  public sliceEnd: number;
                      +
                      +  public filterSettings: object;
                      +  public splitterSettings : object;
                      +  public renderGantt: boolean;
                      +  public firstLoad: boolean;
                      +  public selectedScalar: string;
                      +  public scalars: string[];
                      +  public showDetails: boolean = true;
                      +  public panelOpenState:boolean;
                      +  public showNoResultsError: boolean = false;
                      +
                      +  public horizontalPosition: MatSnackBarHorizontalPosition = 'end';
                      +  public verticalPosition: MatSnackBarVerticalPosition = 'bottom';
                      +  public inputForTimeline = [];
                      +  public renderplanTime: boolean = false;
                      +  public planTimeScrollLeft: number = 0;
                      +
                      +  public stateList: any[] = [];
                      +  public filterStartDate: Date;
                      +  public filterEndDate: Date;
                      +  public showFilters: boolean = false;
                      +  public filterEnabled: boolean = false;
                      +  private oldFilters:{};
                      +  public filters: any = null;
                      +  public sortEnabled: boolean = false;
                      +  public sortedData: any[] = [];
                      +
                      +  private selectedRescourceIds : any[] = [];
                      +  private selectedrowindex: number[] = [];
                      +  private selectedrecords: any[] = [];
                      +  private selRecs: any[] = [];
                      +  public states : any[] = [];
                      +  private approvalPending: boolean;
                      +  public sort = null;
                      +  public oldSort = null;
                      +  public planTimes : any[] = [];
                      +
                      +  /**###################################################################### Initial Loading functions  ######################################################################*/
                      +
                      +  /**
                      +   * The constructor injects required dependencies
                      +   * @param languageService injects the languageService for language management in the component
                      +   * @param dataService injects the dataService for data management and backend communication
                      +   * @param matDialog injects the matDialog
                      +   */
                      +  constructor(public languageService: LanguageService, public dataService: DataService, public matDialog : MatDialog, private _snackBar: MatSnackBar ) {
                      +    this.initLanguge(true);
                      +  }
                      +
                      +  /**
                      +   * The function ngOnInit sets values which are required for rendering the gantt Chart. Furthermore it triggers the Dataservice to fetch Changes from the backend and trims the resources (Changes Array) and sets the paginator to the first page.
                      +   */
                      +  public ngOnInit(): void {
                      +    var WebFont = require('webfontloader');
                      +    WebFont.load({google: {families: ['Material Icons',],},});
                      +    this.renderGantt = false;
                      +    this.firstLoad = true;
                      +    this.sliceStart = 0;
                      +    this.sliceEnd = 20;
                      +
                      +    this.dataService.fetchUserSupportGroup().then((res: any)=>{
                      +      this.userSupportGroup = res.name;
                      +      this.refreshData();
                      +      this.states = this.dataService.getStates();
                      +      this.dataService.fetchStates().then((res: any [])=>{
                      +        this.states = res;
                      +        this.stateList = res;
                      +        this.spin = false;
                      +        console.log(this.states);
                      +        this.inputForTimeline = [this.splitterSettings, this.projectStartDate, this.projectEndDate];
                      +      });
                      +    });
                      +
                      +    this.taskSettings = {
                      +      id: 'TaskID',
                      +      name: 'TaskName',
                      +      startDate: 'StartDate',
                      +      endDate: 'EndDate',
                      +      duration: 'Duration',
                      +      progress: 'Progress',
                      +      dependency: 'Predecessor',
                      +      resourceInfo: 'resources',
                      +      work: 'work',
                      +      expandState: 'isExpand',
                      +      child: 'subtasks',
                      +      isFixed: 'isFixed',
                      +      vertrag: 'vertrag'
                      +    };
                      +
                      +    this.resourceFields = {
                      +      id: 'resourceId',
                      +      name: 'resourceName',
                      +      unit: 'Unit',
                      +      group: 'resourceGroup',
                      +      state: 'state',
                      +      stateName: 'stateName',
                      +      isRes: 'isRes',
                      +      vertrag: 'vertrag',
                      +      vertragName: 'vertragName',
                      +      supportGroup: 'supportGroup',
                      +      supportGroupId: 'supportGroupId',
                      +      implementerEdit: 'implementerEdit',
                      +      plantime : 'plantime'
                      +    };
                      +
                      +    this.columns = [
                      +      { field: 'TaskName', headerText: 'Kurzbeschreibung', width: 230 },
                      +      { field: 'stateName', headerText: 'Status', width: 250},
                      +      { field: 'vertragName', headerText: 'Vertrag / Provider Cluster', width: 150 },
                      +      { field: 'supportGroup', headerText: 'Gewählte Support Gruppe' },
                      +      { field: 'StartDate', headerText: 'Geplantes Start-Datum', format : {type:'date', format:'dd.MM.yyyy'}},
                      +      { field: 'plantime', headerText: 'Planzeit in H', width: 100 },
                      +      { field: 'changeNr', headerText: 'Change Nummer', width: 140 }
                      +    ];
                      +
                      +    this.timelineSettings = {topTier: {unit: 'Month'}, bottomTier: {format: 'WW', unit: 'Week', count: 1}};
                      +    this.editSettings = {allowAdding: true, allowEditing: true, allowDeleting: true, allowTaskbarEditing: true, showDeleteConfirmDialog: true};
                      +    this.filterSettings = {ignoreAccent: true};
                      +    this.selectionSettings = {mode: 'Row',type: 'Multiple'};
                      +    this.toolbar = ['Cancel'];
                      +    this.labelSettings = {rightLabel: 'resources',taskLabel: 'TaskName'};
                      +    this.tooltipSettings = {showTooltip: true}
                      +    this.projectStartDate = this.range.controls.start.value;
                      +    this.projectEndDate = this.range.controls.end.value;
                      +    this.splitterSettings = {position: 30 + '%'};
                      +    this.inputForTimeline = [this.splitterSettings, this.projectStartDate, this.projectEndDate];
                      +  }
                      +
                      +
                      +  /**###################################################################### Data Mapping, Filter and Sorting Functions  ######################################################################*/
                      +
                      +  /**
                      +   * The function mapTasksToResources slices the allResources array to the resources array according the actual page conditions maps the actual tasks (Dates) to the actual resources (Changes)
                      +   * This function is triggered when a pageEvent is thrown respectively a user changes the page on the paginator
                      +   * @param start begin of slice
                      +   * @param end end of slice
                      +  */
                      +  public mapTasksToResources(start : number, end : number){
                      +    this.data = [];
                      +    this.resources = this.allResources;
                      +    for (const resource of this.resources) {
                      +      for (const task of resource.tasks) {
                      +        this.data.push(task);
                      +      }
                      +    }
                      +  }
                      +  /**
                      +   * The function refreshData fetches a new changes Array from the backend, therefore the mapRequestJSON function is called to map the requestJSON with all filter and sort parameters.
                      +   * Furthermore it evaluates the result if the applied filters delivered any Results.
                      +   * This function is the most called Funktion in the whole project, it is triggered by a pageEvent, when a filter gets applied and much more...
                      +  */
                      +  refreshData(){
                      +    this.showNoResultsError = false;
                      +    this.renderGantt = false;
                      +    this.dataService.fetchChanges(this.mapRequestJSON()).then((res: any[])=>{
                      +      this.allResources = res;
                      +        this.mapTasksToResources(this.sliceStart,this.sliceEnd);
                      +        if(res.length > 0){
                      +          this.spin = true;
                      +          this.renderGantt = true;
                      +          this.showNoResultsError = false;
                      +          if(this.selectedScalar == this.scalars[1]){
                      +            this.renderplanTime = true;
                      +          }
                      +
                      +        }else{
                      +          this.renderGantt = false;
                      +          this.spin = false;
                      +          this.showNoResultsError = true;
                      +          this.renderplanTime = false;
                      +        }
                      +    });
                      +  }
                      +  /**
                      +   * The function clearFilter clears allFilter parameters and set them to inital values, then it triggers the refreshData function to fetch the changes without any filters except the supportGroup filter.
                      +   * This function is triggered if the user disables the apply filter switch
                      +  */
                      +  clearFilter(){
                      +      this.filters = null;
                      +      this.filterEnabled = false;
                      +      this.sort = null;
                      +      this.sortEnabled = false;
                      +      this.refreshData();
                      +  }
                      +  /**
                      +   * The function mapRequestJSON maps the requestObject for the refreshData function, it evaluates if filters or sort parameters are set.
                      +   * Furtheremore it adds the sliceStart and sliceEnd values of the paginator to the requestObject, because the frontend only delivers the changes that can be displayed on one selected page of the paginator.
                      +   * If no filter is applied the function sets a default supportGroup filter, so that the user gets only changes displayed, which are in his supportGroup.
                      +  */
                      +  mapRequestJSON(){
                      +    let request =
                      +    {
                      +      'sliceStart': this.sliceStart,
                      +      'sliceEnd': this.sliceEnd,
                      +      filter: this.filterEnabled ? this.filters : {filterElement: [{column: "SupportGroup", filter: "equals", criteria: [this.userSupportGroup]}]},
                      +      sort: this.sortEnabled ? this.sort : {
                      +        'column': 'ChangeNr',
                      +        'mode': 'asc'
                      +      },
                      +    }
                      +    return request;
                      +  }
                      +  /**
                      +   * The function applyFilter applies the selected filters and refrehses the gantt chart with the new filters.
                      +   * Furthermore it stores the old filters in a help variable to restore it when to user turns the apply filter switch back on.
                      +   * This function is triggered by the a filter action of the filterdialog, or if the user switches the apply filter switch.
                      +  */
                      +  applyFilter(){
                      +    if(this.filterEnabled){
                      +      this.oldFilters = this.filters
                      +      this.filters = null;
                      +      this.refreshData();
                      +      this.plantimeComponent.fetchPlanTimes(this.filters);
                      +    }else{
                      +      this.filters = this.oldFilters;
                      +      this.refreshData();
                      +      this.plantimeComponent.fetchPlanTimes(this.filters);
                      +    }
                      +
                      +  }
                      +  /**
                      +   * The function openFilterDialog triggers the opening of the filterDialog, recieves the results of the filterDialog and refrehses the gantt chart.
                      +   * This function is triggered by the filter button.
                      +  */
                      +  openFilterDialog(){
                      +    let dialogRef = FilterDialogComponent;
                      +      this.matDialog.open(dialogRef,
                      +      {data : [], width: '50%', maxWidth: '800px'}).afterClosed().subscribe((res)=>{
                      +        if(res){
                      +          this.filters = res;
                      +          this.filterEnabled = true;
                      +          this.refreshData();
                      +        }
                      +      });
                      +  }
                      +
                      +  /**###################################################################### Reaction on EVENTS ######################################################################*/
                      +
                      +  /**############################### NTT Gantt Component Helper Functions /**###############################*/
                      +
                      +  /**
                      +   * The function languageChange executes a language change in the language service and triggers the initLanguage function.
                      +   * This function is triggered by a manual language of the user.
                      +  */
                      +  public languageChange(args: any){
                      +    this.languageService.languageChange(args.value),
                      +    this.initLanguge();
                      +    this.plantimeComponent.changeLanguage();
                      +  }
                      +
                      +  /**
                      +   * The function initLanguge executes a language change for the ntt gantt component. Therefore the time scalar and the gantt columns get the corresponding values determined by the selected language.
                      +   * This function is triggered by the ngOnInit function or the languageChange function
                      +   * @param initial determines if the function is initially trigger by the ngOnInit function, in all other cases the gantt chart should be refrehed
                      +  */
                      +  initLanguge(initial: boolean = false){
                      +
                      +    if(this.languageService.language == 'DE'){
                      +      this.scalars = ['Woche', 'Monat', 'Jahr'];
                      +      this.selectedScalar = 'Monat';
                      +    }
                      +    else{
                      +      this.scalars = ['Week', 'Month', 'Year'];
                      +      this.selectedScalar = 'Month';
                      +
                      +    }
                      +    this.columns = this.languageService.getColumns();
                      +    if(!initial){
                      +      this.refreshData();
                      +    }
                      +  }
                      +
                      +  /**
                      +   * The function changeScalar executes a change of the displayed time scalar.
                      +   * This function is triggered if the user changes the time scalar.
                      +  */
                      +  public changeScalar(){
                      +    if(this.selectedScalar == this.scalars[0]){
                      +      this.timelineSettings = {topTier: {unit: 'Week'}, bottomTier: {format: 'dd', unit: 'Day', count: 1}};
                      +      this.renderplanTime = false;
                      +    }
                      +    if(this.selectedScalar == this.scalars[1]){
                      +      this.timelineSettings = {topTier: {unit: 'Month'}, bottomTier: {format: 'WW', unit: 'Week', count: 1}};
                      +      this.renderplanTime = true;
                      +    }
                      +    if(this.selectedScalar == this.scalars[2]){
                      +      this.timelineSettings = {topTier: {unit: 'Year'}, bottomTier: {format: 'MM',unit: 'Month',count: 1}};
                      +      this.renderplanTime = false;
                      +    }
                      +  }
                      +
                      +  /**############################### NTT Gantt Component EVENTS /**###############################*/
                      +
                      +  /**
                      +   * The function handlePageEvent catches the corresponding matpaginator event and slices the gantt chart, that it fits to the actual page
                      +   * @param e pageEvent from the matpaginator
                      +   */
                      +  public handlePageEvent(e: PageEvent):void {
                      +    let start = e.pageSize*e.pageIndex;
                      +    let end = start+ e.pageSize;
                      +    this.sliceStart = start;
                      +    this.sliceEnd = end;
                      +    this.refreshData();
                      +  }
                      +
                      +    /**
                      +   * The function startDateChanged catches the corresponding date-range-picker event
                      +   * @param startDate new startDate from date-range-picker
                      +   */
                      +  public startDateChanged(startDate: any){
                      +    if(this.range.status == 'VALID' && this.range.controls.start.value && this.range.controls.end.value){ //event for Requesting new Records based on the Dates
                      +      this.projectStartDate = new Date(this.range.controls.start.value);
                      +      this.plantimeComponent.changeDateRange(this.projectStartDate, this.projectEndDate);
                      +      this.renderplanTime = true;
                      +
                      +    }
                      +  }
                      +
                      +  /**
                      +  * The function endDateChanged catches the corresponding date-range-picker event and validates the selected start- and enddate bacause the gantt chart needs a valid Date to be displayed
                      +  * @param endDate new endDate from date-range-picker
                      +  */
                      +  public endDateChanged(endDate: any){
                      +      if(this.range.status == 'VALID' && this.range.controls.start.value && this.range.controls.end.value){ //event for Requesting new Records based on the Dates
                      +        this.projectEndDate = new Date(this.range.controls.end.value);
                      +        this.plantimeComponent.changeDateRange(this.projectStartDate, this.projectEndDate);
                      +        this.renderplanTime = true;
                      +
                      +      }
                      +  }
                      +  /**
                      +   * The function toolbarBtnClicked catches the corresponding syncfsuions event and executes the button logic when a button is clicked
                      +   * @param args
                      +   */
                      +  public toolbarBtnClicked(args :any){
                      +      if(args.item.text === "Statusübergang" || args.item.text === "State Transition"){
                      +        let data = {changes: [], states: this.states};
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const iterator of this.resources) {
                      +            if(iterator.resourceId == selectedRescourceId){
                      +              data.changes.push({resourceId: iterator.resourceId, changeNr: iterator.changeNr, currentState: iterator.state});
                      +            }
                      +          }
                      +        }
                      +        let dialogRef = StateDialogComponent;
                      +        this.matDialog.open(dialogRef,{data : data}).afterClosed().subscribe((res)=>{
                      +          console.log(res);
                      +          if(res == "Success"){
                      +            this.refreshData();
                      +          }
                      +        });
                      +      }
                      +
                      +      if(args.item.text === "Implementer Eintragen" || args.item.text === "Enter Implementer"){
                      +        let data = {changes: []};
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const change of this.resources) {
                      +            if(change.resourceId == selectedRescourceId){
                      +              data.changes.push({resourceId: change.resourceId, pkgId: change.changeNr, supportGroupId: change.supportGroupId});
                      +            }
                      +          }
                      +        }
                      +        this.matDialog.open(ImplementerDialogComponent,{data : data});
                      +      }
                      +
                      +      if(args.item.text === "Genehmigen" || args.item.text === "Approve"){
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const change of this.resources) {
                      +            if(change.resourceId == selectedRescourceId){
                      +              this.dataService.updateApproval(change, 1).then((res: any)=>{
                      +                if(res.status == 200){
                      +                  this._snackBar.open("Genehmigung erfolgreich", 'Schließen', { horizontalPosition: this.horizontalPosition, verticalPosition: this.verticalPosition, panelClass: ['green-snackbar']});
                      +                }else{
                      +                  this._snackBar.open(res.HttpErrorResponse.message, 'Schließen', {horizontalPosition: this.horizontalPosition, verticalPosition: this.verticalPosition, panelClass: ['red-snackbar']});
                      +                }
                      +                this.refreshData();
                      +              });
                      +            }
                      +          }
                      +        }
                      +      }
                      +
                      +      if(args.item.text === "Zur Genehmigung" || args.item.text === "Permit"){
                      +        let data = {changes: [], states: this.states};
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const iterator of this.resources) {
                      +            if(iterator.resourceId == selectedRescourceId){
                      +              data.changes.push({resourceId: iterator.resourceId, changeNr: iterator.changeNr, currentState: iterator.state});
                      +            }
                      +          }
                      +        }
                      +        let dialogRef = StateDialogComponent;
                      +        this.matDialog.open(dialogRef, {data : data}).afterClosed().subscribe((res)=>{
                      +          if(res.status == 200){
                      +            this.refreshData();
                      +          }
                      +        });
                      +      }
                      +
                      +      if(args.item.text === "Ablehnen" || args.item.text === "Reject"){
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const change of this.resources) {
                      +            if(change.resourceId == selectedRescourceId){
                      +              this.dataService.updateApproval(change, 2).then((res: any)=>{
                      +                if(res.status == 200){
                      +                  this._snackBar.open("Ablehnen erfolgreich", 'Schließen', {horizontalPosition: this.horizontalPosition,verticalPosition: this.verticalPosition, panelClass: ['green-snackbar']});
                      +                  this.refreshData();
                      +                }else{
                      +                  this._snackBar.open(res.HttpErrorResponse.message, 'Schließen', {horizontalPosition: this.horizontalPosition, verticalPosition: this.verticalPosition, panelClass: ['red-snackbar']});
                      +                }
                      +              });
                      +            }
                      +          }
                      +        }
                      +      }
                      +
                      +      if(args.item.text === "stornieren" || args.item.text === "Cancel"){
                      +        for (const selectedRescourceId of this.selectedRescourceIds) {
                      +          for (const change of this.resources) {
                      +            if(change.resourceId == selectedRescourceId){
                      +              this.dataService.updateApproval(change, 3).then((res: any)=>{
                      +                if(res.status == 200){
                      +                  this._snackBar.open("Stornieren erfolgreich", 'Schließen', {horizontalPosition: this.horizontalPosition, verticalPosition: this.verticalPosition, panelClass: ['mat-primary']});
                      +                  this.refreshData();
                      +                }else{
                      +                  this._snackBar.open(res.HttpErrorResponse.message, 'Schließen', {horizontalPosition: this.horizontalPosition, verticalPosition: this.verticalPosition, panelClass: ['mat-primary']});
                      +                }
                      +              });
                      +            }
                      +          }
                      +        }
                      +      }
                      +  }
                      +
                      +  /**############################### Syncfusion Framework EVENTS /**###############################*/
                      +
                      +  /**
                      +   * The function queryTaskbarInfo catches the corresponding syncfsuions event and colors the respective diamond depending on the status
                      +   * @param args event arguments from the syncfusion gantt chart
                      +   */
                      +  public queryTaskbarInfo(args: any) {
                      +    if (args.taskbarType == 'Milestone')
                      +    {
                      +    args.taskbarElement.children[1].classList.add('e-gantt-milestone-border');
                      +    }
                      +
                      +    if(args.data.taskData.isRes == false){
                      +      if(args.data.taskData.TaskID.includes("D2")){
                      +        args.milestoneBorder = "black";
                      +        console.log(args.taskbarElement);
                      +        if (args.data.taskData.resources[0].state == 0 ) {
                      +          args.milestoneColor = "#f83200";
                      +        }
                      +        if (args.data.taskData.resources[0].state == 1 ) {
                      +          args.milestoneColor = "#f98700";
                      +        }
                      +        if (args.data.taskData.resources[0].state == 3 ) {
                      +          args.milestoneColor = "#f1b521";
                      +        }
                      +        if (args.data.taskData.resources[0].state == 6 ) {
                      +          args.milestoneColor = "#89c341";
                      +        }
                      +        if (args.data.taskData.resources[0].state >= 10 ) {
                      +          args.milestoneColor = "lightgrey";
                      +        }
                      +      }else{
                      +        if (args.data.taskData.TaskID.includes("D1")||args.data.taskData.TaskID.includes("D4")){
                      +          if(this.showDetails == false){
                      +            args.taskbarElement.innerHTML = "";
                      +          }else{
                      +            if(args.data.taskData.TaskID.includes("D1")){
                      +              args.milestoneColor = "#d4d4d4";
                      +            }
                      +            if(args.data.taskData.TaskID.includes("D4")){
                      +              args.milestoneColor = "#a1a1a1";
                      +            }
                      +          }
                      +        }
                      +        if (args.data.taskData.TaskID.includes("D3")){
                      +          args.milestoneColor = "#bababa";
                      +        }
                      +      }
                      +    }
                      +  }
                      +
                      +  /**
                      +    * The function taskbarEdited catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true.
                      +    * If the isFixed flag is false, it triggers the dataService to update the moved date.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +   */
                      +  public taskbarEdited(args: any){
                      +    if(args.data.taskData.isFixed !== false ) {
                      +    args.cancel = true;
                      +    }else{
                      +      const found = this.allResources.find((resource) => {
                      +        return resource.resourceId == args.data.taskData.resources[0].resourceId;
                      +      });
                      +      this.dataService.updateDatePerChange(found);
                      +      this.plantimeComponent.fetchPlanTimes();
                      +        let elem = document.querySelector(
                      +          '#'+'ganttDefaultSum'+ 'GanttChart > div.e-chart-root-container > div'
                      +        );
                      +        elem.scrollLeft = this.planTimeScrollLeft;
                      +    }
                      +  }
                      +
                      +  /**
                      +   * The function taskbarEditing catches the corresponding syncfsuions event and cancels the user action if the isFixed flag of a task (Date) is set true.
                      +   * @param args event arguments from the syncfusion gantt chart.
                      +   */
                      +  public taskbarEditing(args: any) {
                      +    if(args.data.taskData.isFixed !== false ) {
                      +      args.cancel = true;
                      +    }
                      +  }
                      +
                      +  /**
                      +   * The function taskbarEditing catches the corresponding syncfsuions event and executes a query operation to synchronize the scrollbars of the main gannt chart and the planTimeBart gantt chart.
                      +   * @param args event arguments from the syncfusion gantt chart.
                      +  */
                      +  public actionComplete(args: any){
                      +    if (args.action === 'HorizontalScroll') {
                      +      let elem = document.querySelector(
                      +        '#'+'ganttDefaultSum'+ 'GanttChart > div.e-chart-root-container > div'
                      +      );
                      +      elem.scrollLeft = args.scrollLeft;
                      +      this.planTimeScrollLeft = args.scrollLeft;
                      +    }
                      +  }
                      +
                      +  /**
                      +    *  The function load catches the corresponding syncfsuions event and triggers the loading spinner to start while the gantt chart is refrehshing.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +    */
                      +  public load(args: any) {
                      +    this.spin = true;
                      +  }
                      +
                      +  /**
                      +    * The function dataBound catches the corresponding syncfsuions event and stops the loading spinner.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +    */
                      +  public dataBound(args: any) {
                      +    this.spin = false;
                      +  }
                      +
                      +  /**
                      +    * The function created catches the corresponding syncfsuions event and stops the internal loading spinner.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +    */
                      +  public created(args: any) {
                      +    this.ganttDefault.hideSpinner();
                      +    this.ganttDefault.treeGrid.grid.hideSpinner();
                      +  }
                      +
                      +  /**
                      +    * The function onExpand catches the corresponding syncfsuions event and avoids a chart row from beeing expanded by the user.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +  */
                      +  public onExpand(args: any){
                      +    args.cancel = true;
                      +  }
                      +
                      +  /**
                      +    * The function splitterResizing catches the corresponding syncfsuions event and stores the actual splitter postition to synchronize the splitters of the main gannt chart and the planTimeBart gantt chart.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +  */
                      +  public splitterResizing(args) {
                      +
                      +    this.splitterSettings = {position: args.paneSize[0].toString() + 'px'};
                      +  }
                      +
                      +  /**
                      +    * The function actionBegin catches the corresponding syncfsuions event applies a sort by the selected column and refrehses the gantt chart or opens the Change Package direktly in Remedy if the user doubleclicks on a main date.
                      +    * @param args event arguments from the syncfusion gantt chart.
                      +  */
                      +  public actionBegin(args: any) {
                      +    if(args.dialogModel){
                      +      args.cancel = true;
                      +      if(args.rowData.taskData.resources[0].state == 0){
                      +        window.open("https://itsm-dev.asfinag.at/arsys/forms/itsm-app-dev/SHR%3ALandingConsole/Default+Administrator+View/?mode=search&F304255500=ASF:WI_TAS_Paket&F1000000076=FormOpenNoAppList&F303647600=SearchTicketWithQual&F304255610='1000000182' =\""+args.rowData.taskData.resources[0].changeNr+"\"", "_blank");
                      +      }else{
                      +        window.open("https://itsm-dev.asfinag.at/arsys/forms/itsm-app-dev/SHR%3ALandingConsole/Default+Administrator+View/?mode=search&F304255500=CHG:Infrastructure Change&F1000000076=FormOpenNoAppList&F303647600=SearchTicketWithQual&F304255610='1000000182' =\""+args.rowData.taskData.resources[0].changeNr+"\"", "_blank");
                      +      }
                      +    }else{
                      +      if(args.requestType=='sorting'){
                      +        let colName = "";
                      +        let mode = "asc";
                      +        args.cancel = true;
                      +
                      +        switch (args.columnName) {
                      +          case 'TaskName':
                      +            colName = 'ResourceName';
                      +            break;
                      +          case 'stateName':
                      +            colName = 'State';
                      +            break;
                      +          case 'supportGroup':
                      +            colName = 'SupportGroup';
                      +            break;
                      +          case 'approvalStatus':
                      +            colName = 'ApprovalStatus';
                      +            break;
                      +          default:
                      +            break;
                      +        }
                      +        if(colName != ''){
                      +          this.sortEnabled = true;
                      +          if(this.oldSort != null && this.oldSort.column == this.sort.column){
                      +            mode = 'dsc'
                      +          }
                      +          this.oldSort = this.sort;
                      +          this.sort = {'column': colName, 'mode': mode}
                      +          this.refreshData();
                      +        }
                      +      }
                      +    }
                      +  }
                      +
                      +  /**
                      +    * The function rowSelected catches the corresponding syncfsuions event and checks if all selected resources (changes) have the same status, then it displays the corresponding buttons
                      +    * @param args event arguments from the syncfusion gantt chart
                      +  */
                      +  public rowSelected(args: any) {
                      +      this.approvalPending = false;
                      +      this.selectedrowindex = this.ganttDefault.selectionModule.getSelectedRowIndexes();  // get the selected row indexes.
                      +      this.selectedrecords = this.ganttDefault.selectionModule.getSelectedRecords();  // get the selected records.
                      +      this.selRecs=[];
                      +      if(this.selectedrowindex.length>this.resources.length-1){
                      +        for (const record of this.selectedrecords) {
                      +          if(record.taskData.isRes == true){
                      +            this.selRecs.push(record);
                      +          }
                      +        }
                      +      }else{
                      +        this.selRecs = this.selectedrecords;
                      +      }
                      +      let allStates: boolean = true;
                      +      let allPermit: boolean = true;
                      +      let allApprove: boolean = true;
                      +      let allReject: boolean = true;
                      +      let allCancel: boolean = true;
                      +      let allImplementer: boolean = true;
                      +      let allTransition: boolean = true;
                      +      this.selectedRescourceIds = [];
                      +      for (const change of this.selRecs) {
                      +        if(change.taskData.approvalStatus == 1){
                      +          this.approvalPending = true;
                      +          }
                      +        if(change.taskData.state == this.selRecs[0].taskData.state){
                      +          if(allStates){
                      +            allStates = true;
                      +          }
                      +          else{
                      +            allStates = false;
                      +          }
                      +          this.selectedRescourceIds.push(change.taskData.resourceId);
                      +          }else{
                      +            allStates = false;
                      +          }
                      +        if(change.taskData.flagPermit == true && allPermit == true){
                      +          allPermit = true;
                      +        }else{
                      +          allPermit = false;
                      +        }
                      +        if(change.taskData.flagApproval == true && allApprove == true){
                      +          allApprove = true;
                      +        }else{
                      +          allApprove = false;
                      +        }
                      +        if(change.taskData.flagReject == true && allReject == true){
                      +          allReject = true;
                      +        }else{
                      +          allReject = false;
                      +        }
                      +        if(change.taskData.flagCancel == true && allCancel == true){
                      +          allCancel = true;
                      +        }else{
                      +          allCancel = false;
                      +        }
                      +        if(change.taskData.implementerEdit == true && allImplementer == true){
                      +          allImplementer = true;
                      +        }else{
                      +          allImplementer = false;
                      +        }
                      +        if(change.taskData.state > 0 && allTransition == true){
                      +          allTransition = true;
                      +        }else{
                      +          allTransition = false;
                      +        }
                      +      }
                      +
                      +      if(allStates){
                      +        this.toolbar = [];
                      +        if(allTransition && !this.approvalPending){
                      +          this.toolbar.push({text:this.languageService.lMap.get("stateChange"), id: "6"});
                      +        }
                      +        if(allPermit){
                      +          this.toolbar.push({text: this.languageService.lMap.get("permit"), id: "5"});
                      +        }
                      +        if(allApprove){
                      +          this.toolbar.push({text: this.languageService.lMap.get("genehmigen"), id: "7"});
                      +        }
                      +        if(allReject){
                      +          this.toolbar.push({text: this.languageService.lMap.get("ablehnen"), id: "8"});
                      +        }
                      +        if(allCancel){
                      +          this.toolbar.push({text: this.languageService.lMap.get("stornieren"), id: "11"});
                      +        }
                      +        if(allImplementer){
                      +          this.toolbar.push({text: this.languageService.lMap.get("implementer"), id: "10"});
                      +        }
                      +
                      +      }else{
                      +        this.toolbar = [];
                      +      }
                      +      this.approvalPending = false;
                      +      this.selRecs = [];
                      +      this.selectedrecords = [];
                      +      this.selectedrowindex = [];
                      +  }
                      +
                      +  /**
                      +    * The function rowDeselected catches the corresponding syncfsuions event
                      +    * When a line is deselected, it is checked if all resource states are equal after deselecting a resource, if they are equal then the respective buttons are displayed
                      +    * @param args event arguments from the syncfusion gantt chart
                      +  */
                      +  public rowDeselected(args: any){
                      +      this.selectedRescourceIds.forEach((element,index)=>{
                      +        if(element == args.data.taskData.resourceId) delete this.selectedRescourceIds[index]; //TODO: auf memoryLeak prüfen
                      +      });
                      +
                      +        this.selectedrowindex= this.ganttDefault.selectionModule.getSelectedRowIndexes();  // get the selected row indexes.
                      +        this.selectedrecords= this.ganttDefault.selectionModule.getSelectedRecords();  // get the selected records.
                      +        this.selRecs = [];
                      +        if(this.selectedrowindex.length>this.resources.length-1){
                      +          for (const record of this.selectedrecords) {
                      +            if(record.taskData.isRes == true){
                      +              this.selRecs.push(record);
                      +            }
                      +          }
                      +        }else{
                      +          this.selRecs = this.selectedrecords;
                      +        }
                      +          let allStates: boolean = true;
                      +          let allPermit: boolean = true;
                      +          let allApprove: boolean = true;
                      +          let allReject: boolean = true;
                      +          let allCancel: boolean = true;
                      +          let allImplementer: boolean = true;
                      +          let allTransition: boolean = true;
                      +          this.selectedRescourceIds = [];
                      +          for (const change of this.selRecs) {
                      +            if(change.taskData.state == this.selRecs[0].taskData.state){
                      +              if(change.taskData.approvalStatus == 1){
                      +                this.approvalPending = true;
                      +                }
                      +            if(allStates){
                      +              allStates = true;
                      +            }
                      +              this.selectedRescourceIds.push(change.taskData.resourceId);
                      +            }else{
                      +              allStates = false;
                      +            }
                      +        if(change.taskData.flagPermit == true && allPermit == true){
                      +          allPermit = true;
                      +        }else{
                      +          allPermit = false;
                      +        }
                      +        if(change.taskData.flagApproval == true && allApprove == true){
                      +          allApprove = true;
                      +        }else{
                      +          allApprove = false;
                      +        }
                      +        if(change.taskData.flagReject == true && allReject == true){
                      +          allReject = true;
                      +        }else{
                      +          allReject = false;
                      +        }
                      +        if(change.taskData.flagCancel == true && allCancel == true){
                      +          allCancel = true;
                      +        }else{
                      +          allCancel = false;
                      +        }
                      +        if(change.taskData.implementerEdit == true && allImplementer == true){
                      +          allImplementer = true;
                      +        }else{
                      +          allImplementer = false;
                      +        }
                      +        if(change.taskData.state > 0 && allTransition == true){
                      +          allTransition = true;
                      +        }else{
                      +          allTransition = false;
                      +        }
                      +
                      +      }
                      +      if(allStates){
                      +        this.toolbar = [];
                      +        if(allTransition&&!this.approvalPending){
                      +          this.toolbar.push({text:this.languageService.lMap.get("stateChange"), id: "6"});
                      +        }
                      +        if(allPermit){
                      +          this.toolbar.push({text: this.languageService.lMap.get("permit"), id: "5"});
                      +        }
                      +        if(allApprove){
                      +          this.toolbar.push({text: this.languageService.lMap.get("genehmigen"), id: "7"});
                      +        }
                      +        if(allReject){
                      +          this.toolbar.push({text: this.languageService.lMap.get("ablehnen"), id: "8"});
                      +        }
                      +        if(allCancel){
                      +          this.toolbar.push({text: this.languageService.lMap.get("stornieren"), id: "11"});
                      +        }
                      +        if(allImplementer){
                      +          this.toolbar.push({text: this.languageService.lMap.get("implementer"), id: "10"});
                      +        }
                      +      }else{
                      +        this.toolbar = [];
                      +      }
                      +      this.selRecs = [];
                      +      this.selectedrecords = [];
                      +      this.selectedrowindex = [];
                      +      this.approvalPending = false;
                      +  }
                      +}
                      +
                      +
                      +
                      + + + + + + + + + + +
                      +
                      +

                      results matching ""

                      +
                        +
                        +
                        +

                        No results matching ""

                        +
                        +
                        +
                        +
                        +
                        + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/PlanTimeBarComponent.html b/frontend/src/documentation/components/PlanTimeBarComponent.html new file mode 100644 index 0000000..9df5013 --- /dev/null +++ b/frontend/src/documentation/components/PlanTimeBarComponent.html @@ -0,0 +1,1143 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                        +
                        + +
                        +
                        + + + + + + + +
                        +

                        +

                        File

                        +

                        +

                        + app/plan-time-bar/plan-time-bar.component.ts +

                        + + + +
                        +

                        Metadata

                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        selectorapp-plan-time-bar
                        styleUrlsplan-time-bar.component.css
                        templateUrlplan-time-bar.component.html
                        +
                        + +
                        +

                        Inputs

                        + + + + + + + +
                        + filters + +

                        + Type: any[] + +

                        +
                        + + + + + + + +
                        + inputData + +

                        + Type: any[] + +

                        +
                        + + + + + + + +
                        + parentResources + +

                        + Type: any[] + +

                        +
                        + + + + + + + +
                        + splitterSettings + +

                        + Type: object + +

                        +
                        +
                        + + +
                        +

                        Constructor

                        + + + + + + + + + + +
                        + constructor(languageService: LanguageService, dataService: any) +
                        +

                        The constructor only injects the LanguageService and DataService

                        +
                        +
                        + Parameters : +
                          +
                        • +
                          + languageService +
                          +
                          +

                          representation of the LanguageService

                          + +
                          +
                        • +
                        • +
                          + dataService +
                          +
                          +

                          representation of the DataService

                          + +
                          +
                        • +
                        +
                        +
                        +
                        + +
                        +

                        Methods

                        + + + + + + + + + + + + + + +
                        + Public fetchPlanTimes +
                        + + + + fetchPlanTimes(filter: any) +
                        +

                        The function fetchPlanTimes fetches the calculated Plantimes from the dataService, depending on applied filters.
                        and triggers the (re)rendering of the planTime gantt chart

                        +
                        +
                        + Parameters : +
                          +
                        • +
                          + filters +
                          +
                          +

                          current applied filters

                          + +
                          +
                        • +
                        +
                        +
                        + Returns: void + +
                        +
                        + +
                        +
                        + + + + + + + + + + + + + + +
                        + Public queryTaskbarInfo +
                        + + + + queryTaskbarInfo(args: any) +
                        +

                        The queryTaskbarInfo catches the corresponding syncfusion framework event
                        and manipulates it for a correct representation

                        +
                        +
                        + Parameters : +
                          +
                        • +
                          + args +
                          +
                          +

                          args from the syncfusion framework

                          + +
                          +
                        • +
                        +
                        +
                        + Returns: void + +
                        +
                        + +
                        +
                        + + + + + + + + + + + + + + +
                        + Public changeLanguage +
                        + + + + changeLanguage() +
                        +

                        The changeLanguage executes a languageChange for the planTime gantt chart
                        it is triggered by a language change from the NttGanttComponent

                        +
                        +
                        + Returns: void + +
                        +
                        + + + + + + + + + + + + + + +
                        + Public changeDateRange +
                        + + + + changeDateRange(startDate: Date, endDate: Date) +
                        +
                        + Returns: void + +
                        +
                        +
                        + +
                        +

                        Properties

                        + + + + + + + + + +
                        + Public columns +
                        + columns: object[] + +
                        + + + + + + + + + +
                        + Public data +
                        + data: any[] + +
                        + + + + + + + + + +
                        + dataService +
                        + dataService: any + +
                        + + + + + + + + + +
                        + Public editSettings +
                        + editSettings: object + +
                        + + + + + + + + + +
                        + Public filterObj +
                        + filterObj: any + +
                        + + + + + + + + + +
                        + Public ganttObj +
                        + ganttObj: GanttComponent + +
                        + + + + + + + + + +
                        + Public labelSettings +
                        + labelSettings: object + +
                        + + + + + + + + + +
                        + languageService +
                        + languageService: LanguageService + +
                        + + + + + + + + + +
                        + Public projectEndDate +
                        + projectEndDate: Date + +
                        + + + + + + + + + +
                        + Public projectStartDate +
                        + projectStartDate: Date + +
                        + + + + + + + + + + + + +
                        + Public renderTimeGantt +
                        + renderTimeGantt: boolean + +
                        + Default value: false +
                        + + + + + + + + + +
                        + Public resourceFields +
                        + resourceFields: object + +
                        + + + + + + + + + +
                        + Public resources +
                        + resources: any[] + +
                        + + + + + + + + + +
                        + Public taskSettings +
                        + taskSettings: object + +
                        + + + + + + + + + +
                        + Public timelineSettings +
                        + timelineSettings: object + +
                        + + + + + + + + + +
                        + Public toolbar +
                        + toolbar: any[] + +
                        + + + + + + + + + +
                        + Public tooltipSettings +
                        + tooltipSettings: object + +
                        + + + + + + + + + +
                        + Public userSupportGroup +
                        + userSupportGroup: string + +
                        +
                        +
                        +
                        +
                        import { DataService } from 'src/app/data.service';
                        +import { Component, Input, OnInit, ViewChild } from '@angular/core';
                        +import { GanttComponent } from '@syncfusion/ej2-angular-gantt';
                        +import { MAT_DATE_FORMATS } from '@angular/material/core';
                        +import * as moment from 'moment';
                        +import { LanguageService } from '../language.service';
                        +
                        +export const MY_DATE_FORMATS = {
                        +  parse: {
                        +    dateInput: 'DD.MM.YYYY',
                        +  },
                        +  display: {
                        +    dateInput: 'DD.MM.YYYY',
                        +    monthYearLabel: 'MM YYYY',
                        +    dateA11yLabel: 'LL',
                        +    monthYearA11yLabel: 'MM YYYY'
                        +  },
                        +};
                        +
                        +@Component({
                        +  selector: 'app-plan-time-bar',
                        +  templateUrl: './plan-time-bar.component.html',
                        +  styleUrls: ['./plan-time-bar.component.css']
                        +})
                        +
                        +/**
                        +* The PlanTimeBarComponent displays a second gannt chart with the calculated planTime per week
                        +* and must have the same renderStartDate and renderEndDate as the main gantt chart
                        +*/
                        +
                        +export class PlanTimeBarComponent implements OnInit {
                        +  @Input() inputData: Array<any> = [];
                        +  @Input() splitterSettings: object;
                        +  @Input() parentResources: Array<any> = [];
                        +  @Input() filters: Array<any> = [];
                        +
                        +  @ViewChild('ganttObjectSum')
                        +  public ganttObj: GanttComponent;
                        +  public data : any[] = [];
                        +  public resources: any[] = [];
                        +  public userSupportGroup: string;
                        +  public taskSettings: object = {};
                        +  public labelSettings: object = {};
                        +  public projectStartDate: Date;
                        +  public projectEndDate: Date;
                        +  public resourceFields: object ={};
                        +  public editSettings: object = {};
                        +  public tooltipSettings: object ={};
                        +  public columns: object[] = [];
                        +  public toolbar: any[] = [];
                        +  public timelineSettings: object = {};
                        +  public renderTimeGantt: boolean = false;
                        +  public filterObj: any;
                        +
                        +  /**
                        +  * The constructor only injects the LanguageService and DataService
                        +  * @param languageService representation of the LanguageService
                        +  * @param dataService representation of the DataService
                        +  */
                        +  constructor(public languageService: LanguageService, public dataService: DataService) {}
                        +
                        +  /**
                        +  * The function ngOnInit initializes all parameters of the planTime gantt chart
                        +  */
                        +  ngOnInit(): void {
                        +    this.splitterSettings = this.inputData[0];
                        +    this.projectStartDate = this.inputData[1];
                        +    this.projectEndDate = this.inputData[2];
                        +    this.labelSettings = {taskLabel: '${taskData.planzeit}'};
                        +    this.resources = [{resourceId: 1, resourceName: this.languageService.lMap.get('planTimesResource')}];
                        +    this.resourceFields = {id: 'resourceId', name: 'resourceName'};
                        +    this.columns = [{ field: 'TaskName', headerText:  this.languageService.lMap.get('planTimesHeading'), width: 250 }];
                        +    this.fetchPlanTimes();
                        +    this.timelineSettings = {
                        +      bottomTier: {
                        +        format: 'WW',
                        +        unit: 'Week',
                        +        count: 1
                        +      }
                        +    };
                        +    this.taskSettings = {
                        +      id: 'TaskID',
                        +      name: 'TaskName',
                        +      startDate: 'StartDate',
                        +      duration: 'Duration',
                        +      endDate: 'EndDate',
                        +      progress: 'Progress',
                        +      dependency: 'Predecessor',
                        +      resourceInfo: 'resources',
                        +      work: 'work',
                        +      expandState: 'isExpand',
                        +      child: 'subtasks',
                        +      planzeit: 'planzeit'
                        +    };
                        +  }
                        +
                        +  /**
                        +  * The function fetchPlanTimes fetches the calculated Plantimes from the dataService, depending on applied filters.
                        +  * and triggers the (re)rendering of the planTime gantt chart
                        +  * @param filters current applied filters
                        +  */
                        +  public fetchPlanTimes(filter:any = null){
                        +    this.renderTimeGantt = false;
                        +    this.data = [];
                        +    this.dataService.fetchUserSupportGroup().then((res: any)=>{
                        +      this.userSupportGroup = res.name;
                        +      if(!this.filters || !filter){
                        +        this.filterObj ={
                        +          filter: {
                        +            filterElement: [{column: "SupportGroup", filter: "equals", criteria: [this.userSupportGroup]}]
                        +          }
                        +        }
                        +      }else{
                        +        this.filterObj ={
                        +          filter: {
                        +            filterElement: [filter]
                        +          }
                        +        }
                        +      }
                        +      this.dataService.fetchPlanTimes( this.filterObj, this.projectStartDate, this.projectEndDate).then((res:any[])=>{
                        +        res.forEach((week)=>{
                        +          this.data.push(
                        +            {
                        +              TaskID: '' + week.week , TaskName: "Woche " + week.week, StartDate: new Date(week.startDate.substring(6,11)+'-'+week.startDate.substring(3,5)+'-'+week.startDate.substring(0,2)), EndDate: new Date(week.endDate.substring(6,11)+'-'+week.endDate.substring(3,5)+'-'+week.endDate.substring(0,2))  , planzeit: week.planTime,
                        +              resources: [{resourceId: this.resources[0].resourceId},],  Progress: 0, work: 0, isRes: false
                        +            });
                        +        });
                        +        this.renderTimeGantt = true;
                        +       });
                        +    });
                        +  }
                        +
                        +  /**
                        +  * The queryTaskbarInfo catches the corresponding syncfusion framework event
                        +  * and manipulates it for a correct representation
                        +  * @param args args from the syncfusion framework
                        +  */
                        +  public queryTaskbarInfo(args: any) {
                        +    args.taskbarBgColor = "transparent";
                        +    args.taskbarBorderColor = "transparent";
                        +    args.taskLabelColor = "black";
                        +    if (args.data.childRecords.length > 0) {
                        +      try {
                        +        args.taskbarElement.querySelector('.e-gantt-parent-taskbar-inner-div').style.outlineColor = "transparent"
                        +      } catch (error) {}
                        +     } else {
                        +      try {
                        +        args.taskbarElement.querySelector('.e-gantt-child-taskbar-inner-div').style.outlineColor = "transparent"
                        +      } catch (error) {}
                        +    }
                        +  }
                        +
                        +  /**
                        +  * The changeLanguage executes a languageChange for the planTime gantt chart
                        +  * it is triggered by a language change from the NttGanttComponent
                        +  */
                        +  public changeLanguage(){
                        +    if(this.languageService.language == 'DE'){
                        +      this.resources = [{resourceId: 1, resourceName: 'Planzeit Summen pro Woche'}];
                        +      this.columns = [{ field: 'TaskName', headerText:  'Planzeiten pro Woche', width: 250 }];;
                        +    }else{
                        +      this.resources = [{resourceId: 1, resourceName: 'Plantime Sum per Week'}];
                        +      this.columns = [{ field: 'TaskName', headerText:  'Planzeit pro Woche', width: 250 }];
                        +    }
                        +    this.fetchPlanTimes();
                        +  }
                        +
                        +  public changeDateRange(startDate: Date, endDate: Date){
                        +    this.projectStartDate = startDate;
                        +    this.projectEndDate = endDate;
                        +  }
                        +
                        +}
                        +
                        +
                        +
                        +
                        + + + + + + + + + + +
                        +
                        +

                        results matching ""

                        +
                          +
                          +
                          +

                          No results matching ""

                          +
                          +
                          +
                          +
                          +
                          + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/components/StateDialogComponent.html b/frontend/src/documentation/components/StateDialogComponent.html new file mode 100644 index 0000000..dd3705e --- /dev/null +++ b/frontend/src/documentation/components/StateDialogComponent.html @@ -0,0 +1,937 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                          +
                          + +
                          +
                          + + + + + + + +
                          +

                          +

                          File

                          +

                          +

                          + app/state-dialog/state-dialog.component.ts +

                          + + + +
                          +

                          Metadata

                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          selectorapp-state-dialog
                          styleUrlsstate-dialog.component.css
                          templateUrlstate-dialog.component.html
                          +
                          + + + +
                          +

                          Constructor

                          + + + + + + + + + + +
                          + constructor(languageService: LanguageService, dialogRef: any, data: any, dataService: DataService, _snackBar: MatSnackBar) +
                          +

                          The constructor injects required Dependencies and sets default values for logic and ui

                          +
                          +
                          + Parameters : +
                            +
                          • +
                            + dialogRef +
                            +
                            +

                            MatDialog Reference from Angular

                            + +
                            +
                          • +
                          • +
                            + data +
                            +
                            +

                            contains an array of Changes which should be sent to the backend for a status transition

                            + +
                            +
                          • +
                          • +
                            + dataService +
                            +
                            +

                            injects the dataService for data management and backend communication

                            + +
                            +
                          • +
                          +
                          +
                          +
                          + +
                          +

                          Methods

                          + + + + + + + + + + + + + + +
                          + enableButton +
                          + enableButton() +
                          +

                          The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button

                          +
                          +
                          + Returns: void + +
                          +
                          + + + + + + + + + + + + + + +
                          + updateState +
                          + updateState() +
                          +

                          The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar.

                          +
                          +
                          + Returns: void + +
                          +
                          + + + + + + + + + + + + + + +
                          + findStateName +
                          + findStateName(stateNr: any) +
                          +

                          The function findStateName returns a state name by the state number (uid), depending on the selected language

                          +
                          +
                          + Parameters : +
                            +
                          • +
                            + stateNr +
                            +
                            +

                            uid of the state

                            + +
                            +
                          • +
                          +
                          +
                          + Returns: String + +
                          +
                          + +
                          +
                          +
                          + +
                          +

                          Properties

                          + + + + + + + + + + + + +
                          + Public bdiasbled +
                          + bdiasbled: boolean + +
                          + Default value: false +
                          + + + + + + + + + +
                          + data +
                          + data: any + +
                          + + + + + + + + + +
                          + dialogRef +
                          + dialogRef: any + +
                          + + + + + + + + + + + + +
                          + Public diasbled +
                          + diasbled: boolean + +
                          + Default value: false +
                          + + + + + + + + + + + + +
                          + Public horizontalPosition +
                          + horizontalPosition: MatSnackBarHorizontalPosition + +
                          + Default value: end +
                          + + + + + + + + + +
                          + Public labels +
                          + labels: string[] + +
                          + + + + + + + + + +
                          + languageService +
                          + languageService: LanguageService + +
                          + + + + + + + + + +
                          + Public possibleStates +
                          + possibleStates: any[] + +
                          + + + + + + + + + + + + +
                          + Public progress +
                          + progress: number + +
                          + Default value: 0 +
                          + + + + + + + + + +
                          + Public selectedValue +
                          + selectedValue: any + +
                          + + + + + + + + + +
                          + Private states +
                          + states: any[] + +
                          + + + + + + + + + + + + +
                          + Public verticalPosition +
                          + verticalPosition: MatSnackBarVerticalPosition + +
                          + Default value: bottom +
                          +
                          +
                          +
                          +
                          import { Component, Inject, OnInit } from '@angular/core';
                          +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
                          +import { DataService } from '../data.service';
                          +import { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition} from '@angular/material/snack-bar';
                          +import { LanguageService } from '../language.service';
                          +
                          +@Component({
                          +  selector: 'app-state-dialog',
                          +  templateUrl: './state-dialog.component.html',
                          +  styleUrls: ['./state-dialog.component.css']
                          +})
                          +
                          +/**
                          +* The StateDialogComponent enables the user to select an execute a status transition
                          +*/
                          +export class StateDialogComponent implements OnInit {
                          +
                          +  public possibleStates: any[] = [
                          +     {value: '-1', viewValue: 'default'}
                          +  ];
                          +  public selectedValue : any = this.possibleStates[0].value;
                          +  public progress : number = 0;
                          +  public diasbled : boolean = false;
                          +  public bdiasbled : boolean = false;
                          +  public horizontalPosition: MatSnackBarHorizontalPosition = 'end';
                          +  public verticalPosition: MatSnackBarVerticalPosition = 'bottom';
                          +  public labels: string[] = [];
                          +  private states : any[];
                          +
                          +  /**
                          +   * The constructor injects required Dependencies and sets default values for logic and ui
                          +   * @param dialogRef MatDialog Reference from Angular
                          +   * @param data contains an array of Changes which should be sent to the backend for a status transition
                          +   * @param dataService injects the dataService for data management and backend communication
                          +   */
                          +  constructor(public languageService: LanguageService, public dialogRef: MatDialogRef<StateDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any,private dataService: DataService, private _snackBar: MatSnackBar) {
                          +    //dialogRef.beforeClosed().subscribe(() => dialogRef.close(this.dataToReturn));
                          +    this.progress = 0;
                          +    this.bdiasbled = true;
                          +    this.diasbled = false;
                          +    this.selectedValue = -1;
                          +    this.possibleStates = [];
                          +  }
                          +
                          + /**
                          + * The function ngOnInit checks in which actual State the selected changes are, then it provides a list that contains which statuses can be switched to in the current state
                          + */
                          +  ngOnInit(): void {
                          +    this.states = this.dataService.getStates();
                          +    console.log(this.data.changes[0].currentState);
                          +    this.possibleStates = [];
                          +    let cState;
                          +    for (const state of this.states) {
                          +      if(state.actualState == this.data.changes[0].currentState){
                          +        cState = state;
                          +      }
                          +    }
                          +    for (const state of this.states) {
                          +      for (const iterator of cState.possibleStates) {
                          +        if(state.actualState == iterator){
                          +          if(this.languageService.language == 'DE'){
                          +            this.possibleStates.push({value: state.actualState, viewValue: state.stateNameDE});
                          +          }else{
                          +            this.possibleStates.push({value: state.actualState, viewValue: state.stateNameEN})
                          +          }
                          +        }
                          +      }
                          +    }
                          +    if(this.possibleStates.length == 0){
                          +      this.dialogRef.close();
                          +    }
                          +  }
                          +
                          +  /**
                          +  * The function enableButton is triggered by the selction event of a possible state by the user it anebles the execution button
                          +  */
                          +  enableButton():void{
                          +    this.bdiasbled = false;
                          +  }
                          +
                          +  /**
                          +  * The function updateState uses the dataService to execute a status transition on the backend. It sends the Changes to the backend one-by-one and calculates the percent-progress value for the progress bar.
                          +  */
                          +  updateState(): void{
                          +    let counter : number = 0;
                          +    if(this.selectedValue != -1){
                          +      console.log(this.selectedValue);
                          +      for (let change of this.data.changes) {
                          +        change.nextState = this.selectedValue;
                          +        let modifiedChange = {resourceId: change.resourceId, changeNr: change.changeNr, currentState: change.currentState, nextState: this.selectedValue}
                          +        this.dataService.updateStatePerChange(modifiedChange).then((res: any)=>{
                          +          this.diasbled = true;
                          +          this.bdiasbled = true;
                          +          if(res.status == 200){
                          +            counter++;
                          +            this.progress = (counter/this.data.changes.length)*100;
                          +          }
                          +          if(res.status == 500){
                          +            this._snackBar.open(this.languageService.lMap.get('stateDialogSnackBarMessageFailiure') + ': ' + res.error.message + ' ChangeNr: '+change.changeNr, this.languageService.lMap.get('stateDialogSnackBarActionFailiure'),  {
                          +              horizontalPosition: this.horizontalPosition,
                          +              verticalPosition: this.verticalPosition,
                          +              panelClass: ['red-snackbar'],
                          +            });
                          +            this.dialogRef.close("Failiure");
                          +            // console.log(change + "----"+this.data.changes.get(this.data.changes.length);
                          +            // if(change == this.data.changes[this.data.changes.length]){
                          +            //   this.dialogRef.close("Failiure");
                          +            // }
                          +          }
                          +
                          +          if(this.progress == 100){
                          +            this.diasbled = false;
                          +            this.bdiasbled = true;
                          +            this._snackBar.open(this.languageService.lMap.get('stateDialogSnackBarMsg1Success') + ': ' + this.findStateName(change.currentState) +' -> '+this.findStateName(change.nextState) + this.languageService.lMap.get('stateDialogSnackBarMsg2Success') ,
                          +            this.languageService.lMap.get('stateDialogSnackBarActionSuccess'),
                          +            {
                          +              horizontalPosition: this.horizontalPosition,
                          +              verticalPosition: this.verticalPosition,
                          +              duration: 5000,
                          +              panelClass: ['green-snackbar']
                          +            });
                          +            this.dialogRef.close("Success");
                          +          }
                          +        });
                          +      }
                          +    }
                          +  }
                          +
                          +  /**
                          +  * The function findStateName returns a state name by the state number (uid), depending on the selected language
                          +  * @param stateNr uid of the state
                          +  */
                          +  findStateName(stateNr): String {
                          +    for (let state of this.states) {
                          +       if(stateNr == state.actualState){
                          +        if(this.languageService.language == 'DE'){
                          +          return state.stateNameDE;
                          +        }else{
                          +          return state.stateNameEN;
                          +        }
                          +       }
                          +    }
                          +    return "";
                          +  }
                          +}
                          +
                          +
                          +
                          + + + + + + + + + + +
                          +
                          +

                          results matching ""

                          +
                            +
                            +
                            +

                            No results matching ""

                            +
                            +
                            +
                            +
                            +
                            + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/coverage.html b/frontend/src/documentation/coverage.html new file mode 100644 index 0000000..db3d152 --- /dev/null +++ b/frontend/src/documentation/coverage.html @@ -0,0 +1,548 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                            +
                            + +
                            +
                            + + + + + + + + + + + + +
                            + Project + 24% +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            FileTypeIdentifierStatements
                            + app/app.component.ts + + component + + AppComponent + + 0 % + (0/1) +
                            + app/data.service.ts + + injectable + + DataService + + 81 % + (26/32) +
                            + app/filter-dialog/filter-dialog.component.ts + + component + + FilterDialogComponent + + 22 % + (5/22) +
                            + app/filter-dialog/filter-dialog.component.ts + + interface + + FilterAttribute + + 0 % + (0/1) +
                            + app/implementer-dialog/implementer-dialog.component.ts + + component + + ImplementerDialogComponent + + 28 % + (4/14) +
                            + app/language.service.ts + + injectable + + LanguageService + + 15 % + (2/13) +
                            + app/multiselect-autocomplete/multiselect-autocomplete.component.ts + + component + + MultiselectAutocompleteComponent + + 31 % + (5/16) +
                            + app/multiselect-autocomplete/multiselect-autocomplete.component.ts + + interface + + ItemData + + 0 % + (0/2) +
                            + app/ntt-gantt/ntt-gantt.component.ts + + component + + NttGanttComponent + + 34 % + (30/87) +
                            + app/plan-time-bar/plan-time-bar.component.ts + + component + + PlanTimeBarComponent + + 18 % + (5/27) +
                            + app/state-dialog/state-dialog.component.ts + + component + + StateDialogComponent + + 37 % + (6/16) +
                            + +
                            +
                            +

                            results matching ""

                            +
                              +
                              +
                              +

                              No results matching ""

                              +
                              +
                              +
                              +
                              +
                              + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/fonts/FontAwesome.otf b/frontend/src/documentation/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..d4de13e832d567ff29c5b4e9561b8c370348cc9c GIT binary patch literal 124988 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ÐT?>-5aYhU|+1c>&YMpPK5x#-mbV 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'NS^o{z1ZKlHsAybrl=JE7AP369ntV%vB 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 CDx5C> literal 0 HcmV?d00001 diff --git a/frontend/src/documentation/fonts/fontawesome-webfont.eot b/frontend/src/documentation/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7b00d2ba8896fd29de846b19f89fcf0d56ad152 GIT binary patch literal 76518 zcmZ^JRZtvU(B;hF?rsAN?(R0YJHg%EL-4`f-QC?GxVuBJBzSNO0TKw=Z@2d0uiDz~ z>N?%0@9pZhTXpN4G6MmC{{r-%!vp@O0Rbuhwcr6N8vm31-}!&^|1owS^ws~H{tqAo z$N}5{t^jX<6yPJk2H^Ey%R&Bp#T5O1phx10RX7B{Qt8t9Pl**$n*kadIQ|f;xC*hEUn@g zl*^#1p2$%G{Blbw#9Q*e6@DYa223V18Ij|2&2%cPTvx@iNioUoZ)_KE6Q5=~WJfZ6 z@6#n=xTLp0OA@il+i|so^fL%AHC3|sOKFq@_?XQai){2qkS}rMNBrJi`>xR3*k)Ld4_O*y=YyU9%ULX8Mt|3PGQJ(= zu5_-C{h(64@}ws=y4%mO#^-0|S)8jKTS}tyTCRrQ#rm0C*{&43?>G$we1bThm2RqW zr0DH!n;Ru#`mDbNA2wM$;x!?!a`4fw?Fo~yus67&r1abr>%F0xMWMH?N|{wiNZ+FY zi_q&l)sRzB{O=MeHnz?|4E!7NzLgZx?>wKfMy~TrDUE27f?^!K0pcyz zKgVg~jz3oin*6AlFIecSs@o*bYRurv(wa@E+g$K~!LjVYF|>8*mz38zvT0|~_Z9-@ zFpwD~_2L(!Y&LKA6%F~|!5SJ(mBsg47{V^nyZ*x17OEqVyB;cG?Qs2f_ZtmwuJ*$; zrV4&09S>ZcsCt|3)l&E7&8T&q9=-bJiHDK3=i=dX9doW52uEMp^BA|^$Stu z_bobQ9n=z83Z~xpsct18Hw06@v%p4TXJGmaJEDy&(-v74j^{YHE3)iSLyj)+MAzaq zSB+BK=7$bIV5~T@od+AQJY2H9n&J;sL(S53?(5d<&xHEKF#(AEjDF0n9Jl27)uNRn z=Zqk(EM~|62JY~o@N;`C!oum~!C=AiA|~s%&&Ik>G**GymPqvB`PYqZ;u*QIa+@iL!)+*8P-7K zBA6oelJuQCvn?-o2%~luo8?Xb+G!NZ!7(~d1g2ttZM_#V^1$i{p!Qb*N$?!^+u*hF zV7O^eAoMadrY~~UdHTy?%pjJPqalWC^&_g56Y~m9&?E}nU5>dTmN*NFuSg;4cIJNE z2^EiW?@vNZ#r%d;BJ`>nq>m?N?9aCRC>Eh zlV6Ugn6XebS>cYT-zx{MC|>X&wjrrzRb@<5rN9sBgK3+zcK*f~#(jWcq}V82ZaN6! z3x!(uoZC?rX`+`TZExW@B_Jd`o0*~rUKsn%1&5+DXP_)=VVN6Rw_<%|IIeJXU{K?4 zkvpJ6ee4r5g*02SaFM0f$+GrDNoKlJ$fXCjeyCd_b;&|GDk?G#%7IhpGA~XrsRNoT zSn_IST!)8|RdNz{EK?$GHsh7BU%UL{N}W5${L)#YgMB{m(WaRfq+Ozk=>6yo6i(u{ zf(b&PyZaNLrRm8d?nLwm4RCW`F=y{wXwBU<1oh#53u%tXKBrZtC;g$CQwJ|3=?DCD zerFLv5RFMpC{V>kQ+TCYW{$YVXPdLvhk1i?2BH7*5zlBC=Eg2pWli#0yzi%PDl04! zX&Dv67bLYow-X+mpm<KPeKlSsQEOh60QCqd>_Y|7@=xfK+ngw^ zD9o5yHpH4sx!(oAf3Z~ut%84X+V41Y!;?fEQq#q#+CzZ?=oBqWXmCht%;@0qn-pXU z6&ZLq5MdGq=bNj3NOl3&${$YR2TE&Oh0hG0G2EOV^jo8A(1&RttcnDJzR-h1D#R0}zqpfOicY zzq2MeIM+kW>E-B>q$uKRN2tGiHnK}WNo6&OL>_t; zV1rZISSu}XgE-OkNg2_I@hb}1C?6<}M=_hc-{W8hM8NN;GYL+>#KK0dwCHrBex*Uqk)i)Dqd zU#lhxdi%Txp@ah5XeFm?k7_Yodp z-!k}ec>%eSm}S5O#=xIi$W$Rq_rR|K6>k|OA9X3z72fKks33U6BPZizFb_rTqPa<4 z;wu%~I7|kQWi{Idir_c6&L3<@%aS;uJbxr9td_oX+ztx@{eMop15cA&f zZiD^v=IYY`&qlv@6!HQpzSQKsQBb<*bcP;=jaHWhB2F^2tHq%Km@FhCs z{w($Y`FD&xEyPe52lc_;IpIF-4O|#a2C?nfX+bMIXiumj=O%J`M;E)dMDr)&@>{8C z3)nyTY?5I}>~fhpzYH!hfU7Dx2qW9CttqrJKu+NeWg8bK1ldYw%># z7D=t1FVzX${`^Rx_Q-`n#>5qB3-9K1!*Xpt%P!%+rm=Mzdi@Jv-Mdm(4nCkDi1#eo>L7qH7Xc{4y>=Zeb+Acl}PCs zP|AstTnUNT8LcRAh$XiY&;YtB)*~5^(DOj|p#-~{ESml1S>;0Ihcen0Y@f$jkYvz2 zlW{_1tCm4;RV=Sq@*X zmZs7>+b|O^;)AHk%5D8>7yOUqk}r&jH`_jC_&4rN32Uik1G+>)%Ej{3OW%M*irgZsH)L#PyqEESx$?Bw z(TuNjVL(pLO3PO3^)xyaV&7$hStYhzf%C&8Z|?JwE{VP%s5F$D11$(l8@ST;pbV_A!S5i<$-LImWb|qUoY( zgN-4291V9tZkzizQhq=oU!hNIw6!x{8rpt=AC4u-pxG>Xjeqc9#7@E!m<4@k`?Xc3L zGW*|?jHH~P{52A-aV(Q#{5es%%#G>8C-I`9`^(zDzJgCtLZ*03KIvH6jYvVe~m9=u?k})-Q$0N@CYmQMic;bnk2iJ>Vm8OKV6M&st{n4thcQ|8w z7ghMeK(fX}mM?x8ly1=nqrOKo4P7{=2?9!(bUPhZ*cvf1)bY705uSXn9{deye9Jvelcco2b>1-ZJ}k zFmR^35d_{lz01HTCO8%h4`fhpf)ySyi8hqDTcE(`V1*98k+0cyKPG&K99MoPzY8H%gq4+vdug@>y;9pP%`0(vW5A;I|G%#vZOyK?F z*(Px`vSR3C5JU%x4YH49uOow^77PJrF!ST?xHI~)rAc748p=xY%*3S*Qe3gKQg@pK z49qeg8DkFigyGW>y@|>zttBjSBN$SjknA5 z{#6t?XWP<2GvG6%gog<3*CmZL3)K(*_U>y|O^fpiv&bA|&5RY{7dxl^*^+goJg2=$S8q^swAAT(IoKD~`el<+KI_b*qBp>Acw-d+=MRc4pnDWkV_ zE<-7i*`{-C#UsdI++oxdg-81&2=U7rtwb-4H(MnnJFYlY>jaoE&5kQC`6+!hPo3Y= zbuYPeeaqMB&TtQ&zTJL@@s|{*iX`!P3ws)`oD8McaxEUl1P{3{P07T?i$-JOq)JIq zgRQ`>ilyi5qi{KImy=g-y`U>FT$K`LUty3n>wG0d8N(dMSlmUn^@~JG65S6ak|v%X z>G(IGs&}$r%!vWT1Fm@Eha|%nDG3II4qI;L3SHk4It}(`fHB3W@{Sx7Sz$$dK@)6~ zEMrYY=)_JoWHFc&Jy?*ozRL{n7UPAF_`8^_cxG5<(O0-YRVl5KkW}e?m3H!uh08E4 zcuqC?kiQ;5F5;Uerw;!g2G^M+XHOwy8XWG2d~gLlX^queZie2A3fFhiW7Jlz$8JSG zZRy9o7nLFKFwK`I7JA_bG3~WM_|p1alZ)@~b;MwEwv72`+N5ZECd|CyvsQNlYuxb%h{b6L)Yd4j zJr90~RK>_YG^dJlW#khv(r~oQlosf#7ncRUWMR-q=P~X_f_i#ftf&oHchD~dt_g2A z%SjtjfmS3Prw1h?V=Cl(OvJnPtL6{wwiNU}Qf(Vpe;`IjHGyRu^~q>>+p0uU2lw$x zzX{EKe%A>2&+cpPB+z2=wR_UL_kp=Ktw&-BlZ(aDP&&}Rk9}#xnfy``eTj|gL?Rz; zq5Rvq?aipr>Vy{d#RXNkh3YsJ+s}1u62e(X+T!j+fEOV-9x?NQ(Bk{uiNF@>*)Y@8 zK5|n2^0F4<(YBlU((CA|SGy|XtPpi{lvjSEv=Alv4>(f+IrX7c@bO2+5m;?P0&{fX zxMlz*4#ik)>qCBM1YKaeT#(BXZ9Hf^y#EuDS{@-PIFz=<>Z4a zaIz;#wAF~((i*{OJl~6H8L-h5knI+m*+y3Y)%XfVBDmPk^kz}>xpPodw4Vy%M+srn zfa$)D7(JGeS`AZy<*vyv5lX1n@N`g>rDmI+t#5>9;vOmnHoYtg7Yv}5p7P2yCcRW| zzlUBs$qrUX{3nw|v~_f`>(SgZ`Qa4+Tx1c*l+IzVLbwvDr;P1?$^^UUn!-^}@8Xnm z%fd~=#ZUe-g`*?%S`N1GieL}Lb3o(#AsixR+*z4YGbFTgCQQT#pN*A}NAQIru4^_Q zfGfqz&^(HDzlOh9nRMIRoK5pphXL(PjR^nzg-K|CT`_RkoAZ+(ni{!)1(8u4%#Ssa zc8wPx(53`h2TV}su1f_>Xz;<;0JgxwSB_oVqd;c2Dhi)MZS6Xd44JM+PmT7)IS6ju zrIlm;LReLX))zEtCvMC)>Sk4~wk0I`<4^kT@r8PsP{OfG?uC<28Hf$2oSF$cn$F+o zG1)UiCyfq0t*RJBr7TA_ry@;aEmIS=;e)hq8My+vN-x70gEOKQIsIlGhsWQBCQ^h) zW^)Cxr9?04EB4#0R0d^BS)IEzHm03mqmV4k(Y&49K$a)lfPC7}=$Pb{vS!aGJUz8u{xMruX(ZtQ$Vupj8u)z@a(< zp2!MSE5l0Ph1{$p_A^p{yDwt=0Nu%Y} zF5A7rB?;Mo@{eMwB!WE>5v-n-LtHT*sF}nfV1vaYt2(D26~VK_9Aos3VD(LL+qC( zi;TPVQDWu#gBs})2zSe}9{sPpWd8|~1u=Jd*KFN%4FR`%Whxfr#}0H@%bbCFGAM^X*lh$E+~aZQ zXaUMlg<>2!by_7y1^eYlKdJos+F357hHF;RLdIlp@q3ddq;(KnP;bE{U5|d;1@D=w zV>w)+K=!izn^)|>yBED~ z5=r>LT7R54^@n!+@L61Y(Pw%uI-+@hw1~cV^8&2|fKr~4B(av!>$7 zrC(%zIs2pNRwxiKNbtMy$> zWtRM|L$1SJq!e6jiW^Rw%*s1-A{;-ulF{wX!>~nrl)Gi7bim2+gGp_F6|cOET9-MC zIR7|-f0wiM>m?Oe^MJ*h^Gy_KK5cFLI_lfek(OL?t(NJUzeC$3`DCWWB6oxc?t)4SW$=c1L-XR?gKjR6Z z%?e3HKEkP$k8_FS8)D)1M++Ye?E;^@B2atFY;JXYNvE_jX|4nLe+4`QlIoU#r7-ZN z9w%ORF!TdEE32>(PP*9f!4+1ypjF8X34VRdCG>HWCXSZ+4n3H)>6&dLmDWrcEa$2m$ z<{P|tfdhbDou2!+3#eDom0vm@rRTzdaNf?nr%1`}2fuAx?vw1XxNjyCVu`X4lfCPO zQw{A&4#6$$$uk_U2))K_Xp5H)Ynj;M%OG+#5wovXa41ut|FriC zZ5?nF#JuH|{ni@Rb1?Wt0L4ckFaEV!VW!ox)2vWV@m0ortHgG<(|&aztcf*qm+?!L z)zAGm9oxG%PF6M%JF9lvlniIsGlaGwZ)XwlR?d=41aBnzLpe1FoItFRR;`$mDLx}A zXs(tnZMYsu$8goUuhiJ6uK@{%@GO~1CH!K6;^W6x_<&#;VzU=8n&L{Tu=AvTmmg1Y z%U|1*!pwm5>I!81otTNe4X4)T`r@h)MLmIfania|o4YiMP_|=}*4 zm_pWIwxkEH#`m|aw5Oj2cV-uB#SJ`daQMf&=~kRF@3xsN+UR(DDz5Yk8lDcaoW=`$ z;qNA4Vl#=JGw=*2{Zi7KlpC7JONZ1XD_bq&cHo~j$03Xtp1(JuD@k*#UgfxYMp_f1 zHeEc9Kcgq&|B5(vDZy+(Etf2hJ>k|_^m5d}rVF#m0M#V`Q9`v_-A*{>_qn*375dUg z20xPEwUamwFwVaNtLQZ3gYac3D)sy^c<-eomp&)JqaRT_aA6r=N2r6`KOM+GMJ=uR zJJSx}{}`IzagvLgClXz7Op`%JxJVWdnAdVtZ1L!MfIpFd5$mbn)VtpZ2Dq#c};nB58w+tL1@BkvVm+h71i)f_rIG$a3$o)nd2gZCgqZg~DGttbCOjwn?T1fRRA~iA+N6zr-;& z7UpcL;{pJJf)iyuS*g7~6!ti&x@hgZ#xgHB8ZB0#Wgu+Hz!hHcArgMW)f)z%?s16( zJeG`Z`(w!uZJjB~*T>P26oGK0$6Ra+4CRgGJkwbG9@u7+)h--#OMaS^94%|>j;>R~ zT%qfgW0)@wi&e~`^<*MZCoDx~+mYuARSCYEm>;`|buUuX)z=r)Q}WwRB&Vel;HOqY zt?1$U*XyTspA5UDMs;VDIKkBMCB~1`(9)wALGvaW59!Wb3>nh!}Np-waLby1tarvXP0A|3ysMqsnTY z7IT-5SgV|NZN3<9`r9|e9fK*l^~72~4KML@f2-=7XWD<6>M0GD5j6}OvWt#l46g@+ zBn=-(Fs@xS?n)J$Xr>RwZ_#oKk$->E5KPBlHq*q3&L}J6YBw6pbza1XN073{97~#q zTReDJZ>6J@;i^yfR}+Lp_`&iT@`z?ozx07)PYkFJXy~x!aMN}S`gwL~_GHQp#>HGX zc~A1Bx|bR2FLSL3hpVg$;3TbFS7q&}#y9$O_!03nh!J87!{4e)7zFtHXwl@hB7Ltnv=C{#bIp5A)l^z}mW$@fR7r0bAlUmCVRMlibs5x5Fq4U26 zSFZIg+>*5IGz!0zBUOpKJ^_PQ{#c44>MBlmvZ+1}#mCe>UnZt2iU;`b4=Ks`%8=u9 z$TmiTS2eHRY>QENc*e&d zSDHMkA*D}>uf!<*^B@wSh{4gG$_){w<$pQR|-hgLw&6qP`8Ot%3y;b<*UB2J;84$BC@z( z0JW2)PBTCCKjX|mU582DgEFE<$JPnr*zT}0k1YqgH^4CNNRbg-kp)`adn6aOvc~Tn zZ**XdG-;klXk22VA)~sxk zl~ViCm}zxxbQj#Q`nC&yi@#^Z4_kTje7HHX#Z9r)ohqOEbpwy|I29~GU6A64V_oa- zLeTsWwy=D=%p;5cn~o;lcCmBai2-3vZ%ow2_$y+$xZE9a9NyBP=T&sy)Ht&2m;fC*D$x5eeA zk|-3we#iLoM>`ak;r{MPxn_C^#s}X4GPjq<$1sEism9i!lz}3?-rmuB8BWatzqo_u zwojq@6^6W+?#sB(9A-t6S&x7YT$vmtWaS;So$z-~JKO2G?-jkjqh>t+a_WEt+UFN2 zX@i+V!X=T>N6gbBpMIqWgnj>PP)q5?JS)9!FEc|KN!IE{ij84)nbj-Fp?IQ>I3o*tsg#=d zduJ2{dC>k_+kw1CyPEmT_g$u?`dcCuf3qeu{4TTVg=R*}j9DycOo`bl2sfcvQuTPx z?po`60aA%Z<-w~g69NG@P}incHlH&rU9IM^nT~4%9$7g^@?rS!(MqgRJAhv=01gvcsK9^v8!{G&A@>6m%IkksPO8n*BL%HvD+ z#1N7N*nuKngpyM}cTkz$mIui*s@j$rcOKW;h8LAWl|eNQQ+A}^V=lrg45+OX9s2t8 zAYKBQRcHvp{l_zqn{q94ZJm+Q9>$`T9V9WCTy`4=i*k~7emc>orp&GxoJ`xJ@4OpD z*Rn@(dYy_9^u3@7bxh7W)JC(!q&=JLC9+=wxj+;eROQ*+{T{CIb;eL{Yt^8Zu`zc< z6ptq)CN(2r-zo;gjze{^RT84YICcamlGLO+%Gl7MtQj`-vwL7&?an*?+sn~_ zt`vD-=Lpc(ZfZb7+HU?4^Om-*0Q>zK1gOU&R;H*WI9<0)Hmhh?85x07-0Ho$td7vV z(N&g`doL6KXLkkXfHP59hvX-7jiW1H`QI3|tb3JWmwKYdXIJ_(}J1UBkge6&iZ6@DsuDW^%3T)knHF{CVE z%`NIrU76*s&S;^Ux)-wRNNKGyW0@S~o%L&f=^6HwcK7Zq?`uX^n3EUiTSg#O631ZK zhePX`V<*B=tqBB-E2jueWZP5*2ZYJqU~6 zBthp-#yiU7$bn-vlO{XhsQf+=_^5EWB&PL>(qQ{5(}N~^_l1F9M0crNEp74zU!CK* z5+0OcMd~LgQO6}Z{I{s$OauK+_pEI+*`E%*Qhn)cU&#&3uVg2pro5A_Js>f_SFWf| zcNd_qX(H_|;#0s#1?X5;oeHPuVm^XdAWkDlU6o`E4+fXA(tI=sV*EvvJr^BUTjg;L zRc>*Ov4>gW1(e#kqZJaVa=D$r3@~-;gkt_7CDSb-BI5{CVU1xd=d>b)(K?zRSwgi; z`Ov)Xqi6P9&?ZzD^ZS5DaAU6Ejbx1W#ue3tB)PPgx}pxCWbnu{7TB zT5)79g_Sw+<3?74^>ArZ=-u%^Ox&LRnZA_Wv>%$&R=L83HBq0j6kvSW#Y`0dvfYAc zwucJsR2@!xnRV+ksY}=3*80R548sDS$t9ZDG;8|8%B_QsRz7bpV@d6C#Pe>TJ17NV zPS3X<+Dsc$rV!d}7La2q#0e-;nkB=jzDzIWm*iXVnd2wUjl266^DEuOIvAzaYfAwS zMT;_^d3Wa)Pky!*tkS+&(k!z>7*v2O5{HaDz>TOYWc__NV^L^s&?A|2sO6nge%=ZY z0|*A1n5qp&3XBKw*I0a1{O6+qroT(KmtZX$cGrM3Cg$8Q|BoVSrxnyM{uJ1TS$$|R;P07KaK|`q;h~KgahRhdM`*O!*o`&YmZ&TQ zqx;X%9TI=&7eKZ$4H7tc@D6&*;=-7Vy_b6lfPYR&;r=jkYmHTbNnt8oB5s9!;m~48 z$T{?_x9Q>K5M&bdQD-N^4`e&2_iG-nl?uBCnu2-7t7;W(f&r*Faq}WFqxK}fGayft z)2xxKu59kD-q$3x{4Id}%C@T?h4XV#XZE-RCr=F1}H^Y)jtRPPxHA0Uo&r+>O z0g7T-m&;kfeyy1b(v1=qefXt98L}400}2#KTYOa9QP!$zVVa@l5Y3dB@kZoAmfX;R zV>upE4WL$a_v6;N{@Q_c2W1j3eW!$A88^N)*fdVT@zQkh3 zD*h+>;mydfvTvZwH$P2qyUz32NAK$g^se~NX6Bn};&&J>)-!r#zd!ES@T-VVcuNTs z#3gC0WlM5X0whJV-AePkU&L%;{d8M7f7)W0Ay~S2(YrCc*DcM5v;mz_CebG?Xs89k zw05F#M-qY;kE59naU7lOpeuO=QLnK{-i<-p@Ay#T@|5$}Fj$R~H?NH10z49&!d6^B z7n)z_l=cXO)^NZr8Dw;KfXn!?50wcGz&ra9b@*Wu5y+`MMSa;Q)WzaIzhKO+lgsA< ztmylLs$4O^cLMW=H_M;8?{_5F@j7rXnqGDvw!>?tPW}heo1^k*f(ZXkR-y z&s+%>H#vA}82FR_f(62_G4ts@x96YP>D3#@P#f~cVJ~wNclR8P|^=TnxtH0 z!SXNPWDbP}(x}4cl|*h>{AkXKosER(+hLI#U!h1gw-EpNa#Cs03vcWxb6)|ux6snx z?6YA;_4JOl@3*v+FocRkjV?s`#Gq{Lt)Am#mh`=sS>v82BBS)aD=Pp z56y9Gct{k#+V=4#Ai|?q1q~N!V(!DfRu2XB3#SdAvc@ILjAo9ZvL44{LX`_S{@}91 zfLN7!wAQV06aYK5yr|AwF1hQ8*Ewn1{%4(E%WPGXFcIMpF`Z8vXejimaC6#84x0ML*)wNq|d{d@v1!m zby#$pb&l6P)aA0emeBo4ba?37pl?(#?p1N&$x@}a$)IVs@2S(xN+5tI-GG8^&y&&n z&A+pD{IhPB&D{;zMrD{lhNURjPETasrX4R1uGuLkEib=3f#TY9&6! ze2&2$z}3R(a8k&G6q^`8kSig0ykqA9hf^5A)l7B5PH;+|14qC6xgA6)^odb+ z!cfr{LF%gp?8;5^x?{MkYt0&vvASrI^3q}VHY7l`GoV_y#EF83~NB0Ubl)E6~1Q=JFOq0Z6T44Kw#3WLy5tGrJ*^95D?mxR(m zE0S>-2bJ0m-;E(Wn5@XSWW!OlRRWDCRcLhp1%O$TK<9~AWI4mt>f^K$i8Mmm>e&-{ zE=KIM7Jz!v>+P#6pfhH~uEF9u)Qb`C_Z6W#$yrOb z??i}Sau93jat+Q&t}qG42(E7Aes*_2m#Z7i#}&C(4Pd4G(7vGts2nLsO-cK05Z@pC zEfQs7vPJeA(b|qp_uq{$D8QCtCHB!Y=~=D46fj)#H5Z^gh*DREuh2?`K+vw+R>}C$ zR%n>vs4tlj)fF;u+q2R6IKG(`&tV5&(~*NG%!iXnPdh6ACF@j{+M~gq0^vTifT`DzkCqV)_^*;_t z?%X=Gw?Q~DzH^#b`oxYO=scL@~qpi;O&x;(<7Sj z_1rYs5pajTzTPm~H$)6JQxH5^NRQWJA;k&&xH03VVec6yQgAMZly zFbO9!{1N&0s`b>i!5KWMewhlKV}y|>tMMcbvWb(=HnL1Z(po8oTFR#YKc9{)O=9NY zD1awJo$R7)(V-0=pp!o&o`%NU4wGJx=ltqD?$!2{&Du^P69~sB)Jk=M&=N|3Oi*c! zY`Ot%&<(AGrt5X*p|&NiGTw$O-uG-Z&BD*c7!vO1?-c_7C1-ePl&M^NZ z@sV%Dh(*wq1~%oo%N|$$&$;`_rnx_Pu0Q&7GkswF1nI~y>t#ElK(6*9#$uK>sej#e z<`2ZEq^EAM&sdme`&eIKG2d+o2>ulmh#=la54V{Ho+GpZO9 zaAzHB%$GQuL;t#}c3v)y8h(F-P?ezCBiW#90Ou^qX_yY*u8HiYdx47YA~HkP9NOB+JY2 ztxPT;X?H>ES(<}W0z3Xp=1|T(b;$`f9{fb?bpVf`q8S?;`D3jgk9cQ?-~G#k_>ad0 zpaR9ya?fYn05QYxp_78F^0)M)k+9wMYdzg+x=fJe_~J2pEz75!`W!*iTY7&~^ODkB zSr`xUC;-j2#MtCVK5d3`(%M@u^2iRkvJ$Z!3eq3D99duVFa!VKM4 zTtt=2VgVw8tiWbn9u{zx=3$P<6mxLF8zWLpDsy|F&xIs$s=&&=(%sD1gsB3mPwW@? z0W<{G-)JN;CjPK6df$c(Sno(3zZ8g9i}vLm4ud~Gpvqr&eim_#c+S8wt-QW8+a#F> zE&OC*u%p6Gsj=$Q=*uT3E;`ZCQGL?LNPHJ+G}k5M@?k8^>XZH_=rT4(CdTLIGhNLQ z`~-J{`z=&^-b5=(vC}&jk5p8o?SLAj%@@4)#HJNNLQk=Lch<&^g@FC%PDAa6JP|J^ zSZMpiOprq3QzV+Nx(K88S5XNIS?oK40@+?U*t zzI?Bk#)1L50E!au_7e16j8_urA2D4l`QOGA#^hP-YMSlKH6RJY3o91sPXDkB;vm(v zTG~b~JW^K5r4U7qd{iTKBS-~fn5kcl_zZpbdHA>h$RPM zhAGVabHg-B!$YQbocLrTH1fzsPpgbh&J#}cVkrmM>PiCf&0`32@81ZEV{z705cex9 zo8y#4k#|Rh%$^?I(qt~3#xpY z`ga*dx}*Qe=m0eTrFx!M*~5bE1b!2cDV5MEvukT}Kukems{D+PZZ1$lqBL{qoQg{v zSdoWv+CjVvCTUjtN)`q(b@W1h)6EKzTep)p+Jsz1?v;PPNn0a!Cz|jd$e}8GPfQ`v z!deRYNY{)rR_U@y_cuXj8w>?YZv>h~hx1p*m@XbVW3&v=+4kM0@{^DGESiWsG}?#a zj+!6QJoxL2G70jbu(DNe=(;V8*r5iVSEm`Vmo|>yhpEL?_})!wX;4do?(->kenzh| zEglV5Vg9fgOSn#X@Dj#m-iOJ!))PzWU?X5(N-s2-T$*wl=2m=>ViWiw(fzYb^jy&# zRP*+blhO{`KD~w!(Bk^jyy3ziqZr8wZCWN($i?z_)3&hV6E6HC76k;S?AKK2)? zC^`K=9B-KOdI~i-a`&uJi<`uWx_G~Xi5}{8{9ybvoWz=fgq9no*8Ffqb9`)SL}u*I zVHBft;EZjVy$=KocSUB+SSuoK9eH;G6ZHbV+v{DLD>ksJ+oDEv%^GTl^%!?m&7#%$v&m{2N~mV3zVocl-e zV$E)08eyW|u{O@|LNL4Pedz3z;q|e8$opdQJ>bM850y4<3a4$@UU;i@Z^2okY9_X9 zInWaI#=Ds1KXsqr*t{U&L&)}d(Ganur`4Et)Gk^}a@5fe?SEHtRIR|K@S`?(3dR;G zQ85L%VQXlZGd3PeRfD^rql`8>*#k8tMD?7JIFlR5&;G=RQvE5bB`R~AQ&zey&)M8N zEmm^+TeHNfcGz}HDa}l81`7#$k8*O&WVdxLJXe|@VX(6D^?z@B?u;uJ(olj{z7>su zC#}J{XiIxi)Ox>Qq_!s&`LXCxOJJT0UX{!{smJz^cpN~UvmoD*uOL9MJ&X>=S@LO4 zF}!``sYN>GQOKYinj)}6efP7(#vq?rzR$0z(tvmmivrvTCX*)a50Puil%3zZx9 zC}pf?tOP5ly5v^a`zReScF^$gfDS>Vh|snQuCA4q$_But2oqTIdM9uYK(A=}%kIqA zWU6Ym^qE!W#saA+-t2HcC>Z%ILxNZ?of8*M(756UfpyxbWXKf_xmr`}@Q!ues=l3i zd`2dIZf*su00o8FDgyHR3i_#~yam8aa+NGS-_g|%*;QsEbH^vRD!% z8azp}Uq^dJIqoBJP!RN8;(y^m{qks;&CwDzBpzX~DvzYDP~1Oh76FOElR5{Rrb!3w-4fvF@7eof?Fh#GzcMlmaC^$4%N3nv%yb*Qre+m zOpR57XcKI+1X9nd=poXR_~gI}VA7pWp=PGAuhu0X$y59FM|{~NUQYzm=*GF?!fnp2 z)((Y}BQ#t}Mtf(E2%7>oXDMDMFHpLfX22S99VnI|a5XwQ_aN}Je)*kZPo64HYEmrG z8u3Yp&HG1$G*gi|{SXY|Nvp>tj>h5*JexR(ezb^gl$FISb|d>ZNkR&xFi)}Nm;;71 z;Gmf1O%R{V;{Rc4Qb*#b->^1(NgTwg(}FhHFlHL?*S!l;XZK~<=x9CK?kCV58c@H|y(ETCdqd9|^8 z1u7`r7(XTk`dPjJ2G)Ug6;-F1{b+vym)!KCR6yX(G5J%!ouIwIFqzVV*S9h2!0a>0;YjB?@cm!8IXljZR!dmD2>tN<@_GK`1>0Z_Q;vNx4u}=)CBN ziwPa99Dh<=X;EOYJ!Hf|TV!XGVFSYz&fzIB(J%*&ihBz*7J32D!+iPn$st7oSYakZ zEO5d;MuUf7sgad}f&i*^2jjWVvLHSH4BIzb|b0A3fI07mknVqp&{Ax0Z&&JY&E#eg&ErHdwv zw>B(=v+Uy9Vco6p)c{gO280b~lyn=KI5k0`%M>1JO>uuuzhyVoy9Q-G+`ptjp>h zo44w;?o6>{>g87d0KaU9htDJdlXSI=ql_e5u-#E`y}U{Y@nzMmFov+-!qy=PBi*~_ znq!TaZ~u6VKmj$~mY3aP`UuT~_JEfWCZba;;EVv;-BYi=%G9O{U6u;pA;~@GLO3UP zgo>XDyFd=*Z;)kvCP&hf36EFSE^e)O8Pk!OUzl*Lx8q^o`_ufSMG;rAfHJP{7*H%} zv_t~gAOM_70j?r9>BaQPPp8Hn)2x$82DKGSe@6Lwj8t7@<5__U66x>?N}IpQWTHIQ z`cF&b>xtF0J2*MjML45y^-WQ)!31em$JWst0kS>&*smKjE9{jdr;I2ZP!3k_;LFtQGLQx}6bWvynfH6MW#_8+lh z1rrb}PhtBCCvbcS#Km0|4$Yh3iZOdzlg;714m5YeQC9p*wlGXjd?*z1T?4UJ!Tc19 zb{W(8&?&X?6kPhof$EA8-NI!~H*hlY7%eipd53rjJ$;7px-5AOmzNcVOgbDEL)+p7 z!x(0*t|Ee>4@N+SR&BxX_G++9QVv8B5e`-s7AOD|Ee5sgBE%-1r7Vo2Qp&(4H$J<- zFF&E>-P4#&+jM{|0FS{4a!jD*ZjP128{+qHvoJ1ZL*y3};TacT)BZ)TsSelUdF4N< z?F)(+%(bq8ajUARy9&)QFbQ#C;ax=@tIEMf*9}6^VQNakjPbcsA z=%~tnDTyuWJk-;v`4J$Ru*|kBI@zoTWG%eVf4#j|l-~n1P$QsSL;$8A!9S%=!`9H} za0x5~2cgdTg9$r5AsStY7$y80DT-dWEgaF-%_mp6C$eCazB$%4D^`17Dy5hVv=d=aDRFjsnBzTD*sju)@q~_|wDb@)WxsaENW1K4>-w zJ}KoiwT13~^-$|Xq{0U~qoGvhC-Y{5Gs*zp(}ZX)NGBG}>dU%*(S|M-3P3F!9fyG_ z*z)9WG#e4i>9Or1{=|WSC4|qyXZMp;cCIT->1WBV=0DG|7PHTAb5jAeYH?bytEr-Z zat#7~;Xw#LH7GvL0|p3AFqX_Bz)pPwq@BjGX5jtGfWRO!V)=PRZG0Ye#} zUKE|PqCwaV2hYnccj*E^itgl5@Y1EWxGr)oL-iWhAclQFic#`DA@qeyc8R$dS$>c^ zq-x=D-j|HioIsBZMqFV!EclL?*<`5~ZDE=6F$zhx{5s;*c0@EaMBpN(ie;p1h#IIW z*SnSo0kVxC0?Sy)RPh!83B?BT(N}aC2#XC-sQx2MLPSY7Ye0&5jZU(gfiHMVmse9eny}OWE|_ss`HBl+m3WYr zgNf-bi)Zw8+Y&8s0d?7ao717BRtpn#y2BS7B-DdJbG8m5!toU}12^UvAP~Y4C@oBt z_VKw-4cI_nE)RK}Zan<9HK)en$NeugoFm$U4`-4B1ya|*xMd>6J87B|5d@+7`LESV z^sk_GpIYwFB3}gn1!EwRuFBoF7*7HSD^h`BvFw6TxX@rO66y?DWUtl(oK6U_#(fv* z<}ZntO77Prb--aU{TE1kK@!}ulUcyF3u@6{cheLxLa%MsfsF8e2Ucj~OJ=?n%ThT( z@WneCLW~cHAwy>~_U)jeR6`SBqX0xMC!8b+k>%m9xbQ-PK1Di5@(V(B9{FUdkdgBU zR6ww0h*M~bKq8C**wwK8QvL2L->5Q=BO4((Ig*SGqL51*^7&6hJfEaeFh|&$$$*bB zn#J28P-jL65un5eHG|Ml>GTChl-6hrPS*=AY)dfdkb=S{L6I%;2p`RFN-ZbymsW~n zpg4pZ2zwbmgz_{S7Cuu738@d`qHYkW62j9$^l>6AViD%Sw*T$O!qb~@GRw5v!z(^4~ zDO+V>5DQY3ZE(c(d_TTcfGVZwOHI{fbS(ou7UOymr_hcK>~3$hqA zsJlPVTAVE+lzT?|$^tW>T*fQPg6DXPJ_C$^%{3HSHRT&@4V?lyizRW*bS}qLA!zwo zb=>kits?_nscSE9;;`<=Gv(>uRE26gV7|L+69YEbcUnxP9`XU`-c#Q zy}>AzqxiGcwAC61DO)7YRgxJsy~C$M5PO73!il3ZkPaxY`$^n+V>;qxg>{vTc~lj} zU{rCL6!&94Vc5zkvf`4z`A;M>VE7HA;zWo(*7=*K?t9_lm|lR9N04|fIxsq+T{IN| zf&MLru8%{Ch%C|87E1`O_n>XtipEGZ8H(~24)8*gmD_3O{wf>7DdLqm)$(Lu_2~vF zYHvBColR*ebHraLdAz-*bZS@l$#lkLMWEg1pJ2K^weak6X2;+rlDkIEvsOj*` ztPGBiwg^tv2(%6iTp`=;pQX{iqKu+^0i` zl{ za_YycuGTRZAz?+i3obzpw2O3ATAI#)eLfBH^$W5pzhYC4gkA_qnI;~^fe{ife|57; zYzKn7nz()A$(=HV!Xhm}u;7q63P8d9qeaEywQSv#Ie1Iq zk|Or<2`8;U#0x|vYZ+n48YbdRYb=@$L_?POJFFrpC^{ebT+YK#5}>zva-F6vbTCqU z3u5p#4k)$M%qb==Q~*NK7{G4sFkE2{-P>?jbh0ENcQ>RV>O_K&OCCTI0<2_VPK}Jh zS`r74775h?Bg9V<6^X(Fb|k@|qhJ`MB1S3{E?XfrnVW%}C++Xf;mh)&(B<51J|G(u zM3B(E6j+@*|2BxxERh(i?3_glJ~R2tc%*He2*r8&2SM3*Yd{K<5+Nv8wbbXrD{}PG^a|s5;iDU(;+#tQ&&&Ej+7j_~{ zpab$i28w|oY=yd!{K{?RM&)sESTUv+MBNS=5(QB65LN3-!Q&NuqCj?2TQC&tv(j80 z+%kYd$ovu(s4$5p?vnva4StrRQ3l7sML2`t7Z@=DaiEC~1wxw-*dI=EN6q#@NmD3Z zaThw^U20ho?SLzwCpT}1ZxDde%oZnTS!4@3>ca}0U2zNKqh&LLT0lrx)-Q)XUY9xlM%4alfrTq9*-7VEvfT+ zQQ^WwH&Flh7R7IPcMK~3Ubc|3Tz>O*1}#iAwQEcF+K>I2|Srnufix`i;$h= z278e4xamMjL`qFLB}M{Myqi|ZnvYBrn0Y2=wY&)pihxe*hL!=s%LQgQ2ne>KQ0oVd z0Gg-ZqjMzU`cs9F>LW5w{Km2!6gmbV4oaO0n{4JVI8*0bjd=nBem_f3jvRXclU>k7 z4pY({B@+*jmu)SP_Nn6}ofJ|Zf7~KrEaFklgcT&DEHsMpGfQ15d?D;w7iqYngT85I z{5eEq)X*%?!?T62FLphO%ZNZa&Rc1mR6GBQdxT3{6Jv9Mv-VQ>)XzjX~S2@JT8;#0jz2yDszST58KF5u+FhS97` z7ma&gJyXC$29ei}lQaHkVsW~D@Z6^4Vvg`dbFdR{w zaUR@M$C7w0T!+f4@{H$!pvZ`nMf%Niyxs?P5^iEW0BBYA8)gTIaPlZ8WsuE`N$*KH zFoeFF^6m|yHszEC>acYgZULelP%qn}K)kolyJ^4~Ll@E#?$td66J(mpdx0XwBP|tE>8I`D1{ArPL$il`H7v6fQn>uulX0AP!Ih9Y=*tAE*k1{ zCGhzv*%pKExmPAvle^ggwl)apq5&F~?U^308=hL);s3-74Is|y3I>6+E*nxHJ}cB4 zSJLpI&ue-h`mt$yoo!kg0A-v@c0(D9+!gu|2t|zFZF}PcVZKZNd>Av%uO~Y;h__)l zAc+a|{ys!i~p#5)`C_;Vp({i>(aS zbV@0)UfEv)R)DR&V00)%mOS#dRb@d}TY``Y9fI2;Qnd{!@yIO|w3Qg`EauL};)SEp zEg4qjVK04QbJ#Qk*c2?0x30v;W65clhOu7rsbm94Yi_+1VDK~(1vFgieL(b=tPE`5 zxaMOeAY$m6F}!%L8-Wp`8A;UcfRiB)qAs;dwdQDQZ`7hXF4ATCi7|j06lyY8ti}4~ zso(Js72tm6=3K_*d@`t} za{`FT;rZ}Fzw&ardlq&lkfQiACE}Rb%CUneo)Ew$i^n_wfC)XxR+R0NVBIPD0HV^8 zpqg-xgM`EyWA8x*qdu$_j1|Rz>>OEAlp8*aE#?c*2?$LOQ35htvM%x6v~Cj?Ia`=S z827upiUD#9Fe*-fZ4D)SSf1WzH_{$`v>Sz_*vsdNqw z^Qen9qhv&mU-s?p!nJCMCpQEOFM`0r#6Nr%2Ttav$@VMCZOE3Vu4}P37J+-mBL-+c;G8|42x>NL3`Y@M9hV9hD$y=X2~N!7u=N-Qe9&ejSO3kJl$t;mp~Kt zGHBgyP?1-qOmR5XBSxZuW^@Wd2oz`OK91B-R8 zkxcBe1{s@}035)UU^v{N8bfuT#Vjoa$r1`1KG*la9GkXRy3?vzBPqrbXz42CXWTs<##xGy6XdzUMzlenhIWCP=ZfU3x3kI4Ir zVriKO%Lj!jB&uC7qypuBDRfkVW=5Ht+?|1swi$Ify+~#R?Mg`mWy=0E z24+m-47sWxo1uC>57?Z4eOLfpw}LVfbUXkk6+4J&!57o%fd{;-WP+y-ON^yV!T~vw z9t$w<=uQJX3bqI))jnifF;J#uSt7$S%SeYjH6$eRndvsNp)$f^)9BtUWw4=;Nwaw9 zdrp35%RvCaZj`)3Pr##Xw%TbU3<(yWm=T1esa=isE^)k+Ig(f#K3m}4azEnWgp{o? zpDhicM>^D&GSR?-a6~+G-0Co3E;yn3o6d~@AYYGtc z@KG9NspyGX%WZHKHxbuAFWdlNyGEtbXV=b)0 z#r(@F&Pu1uD;fED#{$tI+D;&4(Sl*6_+HzU>F$b#-0Iqu&DS<$J()e7Owy#okQNpI z&|qKGk*iYm1`f_h1fik5I#5wE*F;(_2oKL{8ibgR5FZ~b9|_QbVu}$I^7b$nwm=5I zWB9YTcrT=gIzu(qh6onU3y8JZM{ZV*p~CX|01XY53= zb1yVdB)3+?FGTqem7QQbK(NG@#E_0a=NOb9Igx`{~Xe8N_BW(-RdZsOwG?8SWVW)5ioDaBGGhj8} zGeWvScYqEnt;*a1Drzn8vM;n&<%ufrg`W${UD$3UoiO+(f-0Ce?F@xzYiLNdm!UXT zhPvp7VnqP{igU{^7nj}9HZdtainm+f0e~gMlavNlvy!yE$b@Uj_M}tur5I?)P@OGb zZ7;QS6ep)#@Gnwx5RMGijzxdbLxah~p!`I+hAz7&t1bsH zH!{kw>6yDdLa z)WNxw)?mzm4T3ffui_Ng#Ttjh4--dqa@0q%9N}kG3d_ry9V%7YnD9g-EGBFeTE%kzu1PNKRh;5!J-Y*e>c@Bhbp|PdG{36+lFdLUHqbLIC4!qU z>d^OgH^F7GwYpq9EDk{+E{-7w$tC^6`}0{1ur@y9#@u;QH|6c1M;djPaCj0UA+5l$ zgU~usjSW*kTOJ*T+fx#^c=H1B6v?I7U$AP{nR!U17|&-PNJuVN3(@X2YQz)ohwYxt zAQHf9D82q=lIR!sWkw)pV5(Q9tr*)9f86Qv}Qfa#B^7m8ltY%M&s zu-}`6Ms)(M^%yX~Zgs_AqzN0oM9kB1i1%n)dAxaUI)$oR616uqxKp>G#DfBx`N2sI z2Vjw9dd*;f1GXrNg{D|%A^s=+SfGt&JNKQ66`zA9SIU#fOpshIrZ(2aV2HHiFo8fZ zbm3n?I0kF+kMb`S3wWwRCYJMH+GK@3xv($h@7Zx86XHpO5-o_8i5!3|)u+fA3`BCd z8feA!AR6Vc9j;j9XJEi8nCR>z+9%gG!^_cO{YKLqHCN|s?vor-tm5GG0$e4t(r8*u_CFKhweh}19V24;x??DQaM1UBL{Gk}jWGGn1;?NL z6`ThLooCqdGU^{WT)piy!&v2|)XD*%ie3N&1F2aZ&h|pRP2gUXV+RB@AcZ53`JYN1 z4+Akpwo3CqJx&31AZ3EP&xRSD_-}v<^f*CPIE^*?@JYMKus|dL5E}i{Y5LDziHKR7 zU?5L~&>=((g__SXBc)SmzB0f<5jNlD+rDd#xlFq=z?|q^bvk3Mu%Lwd_&)7KTrxVq zS{^NxNmdqAifA?x$8S<2e5p!|^_abY$KJ*Mj##+kiu^gu(GhJG`f~@0ErzZj^1;Oj zY@U9sxu$?;--I}h_!MY^x6Xucab^nu==L;SLV}lz#Kl;EF^`H5CT0sH6&PO?*fBH^ zZVXXTku5%LdG1k&jFEEE3az+|x<6q$uZ*sLnxM_k>EXg6<_Lio+SCr3@;lKlrK zf~)JKw3s92!`aA=O&WxF}CvMA~mU{UTF4*T3zr@%@j?FWVf{vQd|gR$TuCDf>o zbf^y!jF`Mo9;3MoE>4|EBY>H#7gy9pzv5UG&L*aEL9FhzEfN&6z zq-q|!5Udh=9PExVuqo}vXqnL8W<6-sLrxG3@{1G@ig6s!Yh>#d9TEhQ+QfjsNq`va zZd^3Lg%*JrRE@7{N>$;IX#O!19?iA@MNFY;%NVcd84>(R>p`_qxVve;xAp#0-G2|@%nMr`(JAbof zx4%(oZ3855zl9w%$|2WodQm%67&Zg~V{`b?U^1tJCxrbvl)I!lM1q_!woy{Pq$?W9 zgxe>O=Q1*j$Mx$F>}R_3U02QIB)5?be2xViCwQmFHSVBdp?}+7p`>p}i$Rz*WV~^9 z{>nxBAp8;yu*|$VyfKaN5zb?8YX~=IZ z-4%9~acKW`ft&SYhX4wj*epuwKGEXgmCyeLfe`*>-TgkX?CcB{V7is-|C*s_z(8j_8&>s*>Qb`KsAxw)43(q7$nAWWztby(uG?d4&+W%#=SkTb`=$?F- zM(E)Nm9l-?BP^7l-7+SQ3YbhH{=v|wNOtoK94Z_6Sw$pMxBoXo35l>%IS7*oOn*Nt zG`LMKEQ&0S2O;>M**Xb)FYJW*7ibcpOHd)x;hFHk^R~`+8&ObOqA=^kSgfn+t}GjV zrNkCOmhga0(&qbPo%*AjG}K?Jh*}6MlA6)IGvHBZ%TVC+2nz@Z7iA|0<@rQFaMvxS z?pKy9fd%FO)(aTsOgl5g@IJS0SKlC=4z7Yxt$tDODjWAt8$rKH+?Cm?pe*K$Lh3Zu zveYdTaf7i<@^3e4Zp>tIvPnsKJ4rgR0#$uO<;T;c=)a zZc_ZYJs?8!h%u9sXyN7SH$qn9p|+Oxk@Qjq#FVf5pjNO&W_FYlCdK+Q0=W(R|DD2o z*g{|CKG07|`zD_Fi&)S=#(?ksXRbDum><{&+?FfL2x z_#@qjGlkrZjE4iYNO-UY@PfDQ3e!Wg1PqPOknyGa>jjM-yz> zVmL35PlSOUl!)M@L7uI9zkJ_7*M%%hrZMID?OmX7FE80dJ<)tfnfPL0sV(hwV(_s3 z=k4cidnlv5X;^(fN0j3tL>1mX9Lwa=~z$%BrPPwKc*=#GBLzGSOo4MDI~yI?XQ&&4Clvqm6za%WjF|%;3-jB!X=O% zwrBGAgVSj;eiRcOz#zD+K)4y4b&PeHkhkb6c{ijAal#KeP%v8_k6u$PLRLweXk>9G zy9Zdf*3t~lDFtqS_6R`f*hj5(Tq154uBv_SXch>tMko?g4ho&ON|d;zc3RVB;~=Q) z4q5R`JV4h5rQzmpz7CA;CDu75G~l-&EBdUlKaki9x&?Y$_kUa%W^?gKZPk;35c8fK=Qnc!rKL9LPQAX%>WxG$+U=6%Ja< zVTdd{_ypl<~iodFM`+>#TVP`@tif|MHx^p z+!0*zKu)b9dV-4gu|hwW1>a1VySJy@C37LiNoYXpWm5bx3|fm_y2FN@Di zKYV~n|2qbx8ab*VgDQaG=qzGpE(4hG6Q8M|c#_e0stYJ%MMBeBw^^xcGM})U;!sZY zXk~b2-y8WE_h*iw0>W6luRl*FH4X5O+}qz3J7VvS;F~%#0zhVPD|98u1zBG~c#!tS zfR+XNj8UKPTcU>l#aUpXLih#Z*QB9QFzRkTidwp=ol=t^Zf=WpsyF(7XHa$ zLzP^u?Vykq8a8Z!$L+AYtzkSiQ>bVMEAL@8v!H0j%Eo~&t}PQ))f&%1U?f-?+7>x3 zt_)ZlC3{)4FZVC-J79rh2_K*fLt{vW)~FW{n=O#2Iduwd9b}~PaEpi29N{?T)B%`6 z46>^YsPR0JUshrLB6MLE!X}Qhk~edz6uIdEw>vMWK`5YS8;vLZEXFuW{Tg0;PRg=R z0-sQP^QqXHpsWDZRdanUC3`W%1ZbreFqkBRK^|gW*n6KuE%nw-bIpwmZ9}zA^VNJa zLSQp;4IV8){Vgw;wcm_+Siy$k4?o<)}A0ggcC?A z{CK6Zoq33EaLtOFD$s>x3>weGiXcPI9Aqmzf$*h!xSUsP3Md+|4hbAQC&)2q5h@IX z;TZUJSEft}RZXKTU}uR!M1tfrfWXW2(y2a%xJ^XbP!{96qL&{SsC0eC|nwtb%ZkUzs|6lynd>89PrB#BqDu? z1}{Q#EAP$*1ZE3Ro&uCWpWFUTJ@Mw6nai2Sm*p<1D{KYP8Nm6Nggld;J3b*J1X1AN z|4+g2_c9p|{2alWsKJt&j7S*r>7*=GZw87^NFs67N>Nd`g|dX9qtA|8MeX{cu4N&Hg;{7sA?B;1Ydbtg>~vkil*0i_OvUq%AGMQc-_ zK_X;{o09>V7W&9p%gqDoqsn(sbhRLlaqD4JGoUom!lSk$Og6Z`)#fD%M^Pm;h*FDP zDrrO!y4bbQNU=MEz(_n@j(A*Mut6ZXjrX}@GpeRh0FMtm-CTruC{o+s7ZL~h4UJbF zG;@5PyT+!>i_b2%Dii^~hI@Wb}!y=DL4de&- z@JkAl)i4?n9T-c-$g1Z|dC7XU`c4-l4q&-bn*YO>j!(Pcm_B4UXy}c7(yl#Qa=>x1YIFE zLl0RL*u)}i%yjjMSXLHfpT!3y=Ab5CxFdw5)(tKY0f~U#xIh6$EffKCajU&rIa^g(U^0VgJs?Z~$4vEX3Bu?& zvdLsGRg^u|N7dj5UN%P_hJXUi(u^}T^$e|eN z;6ud2oE!{&r|a*F3Ji2mpZaQ z!GI@i3WT9SbZQ!1t6g%}zTB@|^WV{Mc56#QHXMBSZ#msxfnnU?CV~j47v2+DK`)n0 z(d|C=g3azCSLE5Rnt2&ySyqXcK*Tm1hZRKVdZrer@g(?Kp~+MknWB^xM4X~W6N7|) z)6L}ftVbRPS##4mZ^wrtGp7Q*4iaKhVW+E5v&%to9>0<1k|MQ+U@!4b?`iW~4UEyd zJ%aD5NHX0NLItNM`iNb@P*CQ~2&#uEPCHqsxPA|cGF8c(-6Hlh;Fq9i0hkIYxqocW zoD{CvWK+&ewFv&iX^M~mO7f?#4AP(P0E6x!D1#UqIM#!xlWVs7*W=vRtwvp%kJJM8 zkI(Szj(A76L$qUO?t3&`o%Zc1fNe`520gp8qCU*_)21N@i5)l*Hz?|AqoC!zmEA1? z1Ly=e@O+5BNyduzNRj$Pkukq<&x5Ojd-BII@JTZG?2xblooet`ga_QJHWVY^nxHTn zD@`tqF8AgoI*YXbeiWorUts_T5la>>7Zqq*!V|1Qju&J=5Mvg*3R>gDk|07rg5o?Y z&@Pj8)UR|CQmt%7;mT}?QMumNj}@Cd2!BQ{TWx~g^N*_NILR9gzF-g&jNtk?gOO%K z1)|AAi!7IZ=&VUGRcH8Fv5MS3GtS~KKZeW`|FUT z`_%9Rc>OTc6e0lZ8Zfx1S8t3+c>4wCQkJp}Z`ws_2nd1_0)#sn1{4RH2v6}+Uj-?{ zc9{eU&6v|ku$U~wjc`l^(zk5AvY2Ge0ZpIm6-DJ3s)Y;w--!IN!G*aQe@~-Ho0>A% zYS=1Eibv&~U+|#a>wM~o=^V(^msntciqw_Rh%r7i6y&Rb1=LMr^!ZLRl_wajU@jhA z5*FcDg9W~c&`batC|Lkn0#E|47y=SFjF+1dE(L0}+GcZ(6$}DFS4SLTu%ZaF8}Jc> zoO5I*!^JH9^I0-H+hTc?k>t4RTS=ln8GwR0v7rp`P+g@PggksQY6^*kR=cpsrb()- z$ZzOnw?huSN9k-7nI2l6#S`j?+Hs6WKz!GQKIQ|z$qM!)9*!&(FUJGIaI5Z2-9Yo_6 zF+YZxBnkvTTJ4Q#$a%h4-9q#^iR5sP1(3F8@R|6Nx)I<8#&ias%NvQ5 zB?@AKZV3qrNh%RSfH))h3yZ6<9`~YwX>cpC02pqCzU4g%p#W8QCCaB!%0DyT{kunD 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⋙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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/documentation/fonts/fontawesome-webfont.ttf b/frontend/src/documentation/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f221e50a2ef60738ba30932d834530cdfe55cb3e GIT binary patch literal 152796 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

                              =v_rA!CPE#mM^4@)}X7qf;At+v)G*FZd&; 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 ALjV8( literal 0 HcmV?d00001 diff --git a/frontend/src/documentation/fonts/fontawesome-webfont.woff b/frontend/src/documentation/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e7483cf61b490c08ed644d6ef802c69472eb247 GIT binary patch literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp zK%Pi2&3!RUu9|qRP>4Z35>46R3-HSVQAZLeK|VoiF$JlT%hYN$P{~XnOQBRrwNe$3 zDkDcHp>LA~P6d z5;fR}J~SHToEBnMNz2J6@w`HcLpUx~OvPyi9!FGCnG$S!Nu$wVjzF!}7&Oz=YOP5N zluDpAY5uI%+w?#pQ9`*)A?4JNnR$45&%afA$Ec1MfKwMKS$_D?H&7v0tL4cbzLBen zPQeDPlx3w_N%C3nIgoP-8K(mC6YFKN^$A)18?Vabue>3{1M~AAzEmi_{6Wd~e6Lb{ z-=lJU_M=wD{rH(ghD>k)+VUf((EkY5=@l&~=XksKuU9Qu4%g8d8OKWX$(xqn1@$U=vss>j z&UTv)_xlSZeOiTS27(|;QR&_oo@&VMd<8K5?=eOImlmT%QOJXL!Tyye(QT*$-F9*% z*#9f>W1tI6J=q&SNmHXo9uajhj*RR%G9Uu721J-Fd`gHhd>XKq%TqSWLrubCXE~Li zuEulHFZb%qoX$;LAPb7tM0^VbNg3I|m2gIJznp`D-#uc@4v1}tk?g+`dxJ6<5{&Qh zYvTi^EYtu<%y^QE33`A2h(BQ9Xi_#nE+b+69x^D4*yE019|CeB*x}d$R>_s<4@xkN z7@H+2h}_|_(i@#xH3X9Cf-9@uzwhR88kGgGaz-|3lv)OhVs&1NN~Lfafmx}S5nFg= z4B3lDg@=NT8WnyX0iHq$)?Kw5n%Ks$z1Rs?T9!2ys2OI9u)o%eqa1Y9p{vuBphS62 z&rrmo?HmP%+nijX33FEf_=9ds89K))0VB5sXXVN?5RU4+dVSlip`gZ?FM%}cTs!Cx zvRkeUj-}URwR1i?$S?v}mI=2=a!%Ba$>Q1tqZbt`EDit$_A~Jt4gYQ5hBp#GV%++X zFxgngVF8klmS}*7(B-s8AnZK2wdru=S6g{b{h@;ij)n{kSUPd=P(6CPeH!Ktaa;m# zSaJho0mEQsaa#LtXfZl5FF6l~QzId8ol)GaA`+8FVKkKAMxAXpQ!(P2pA`k07Dn>kT@+i0w=sV?xguZi1YNXzCXwX)?u?)Ig7tC16huq z*9bgy-7nOlPa9@2N*Z@6MxvP8h(4%$_QY>!g3sp8y`AHwjD+E2%nvfM#?A^hc^?3VDn)u zIO^gzZq!B%Mpid{x{fvKpS2stjL}E^kS{9YA#eCCGgF?_lsrvbK;A9v72mB%4z?Tw z`wki!jYa&nnf)`KLMHSH!WXuqPH%bqVHw1`!J26?rc3x_j#j8N@ET}RRi)0qsYUP={P;@WeTT2$$5#TmJpMzcE=^BL@D*utX*mw`JdXpI z*9lzM%f5r#i)iIyvPc3&hdgr3?U-zYW{UayJf-77K-7>1Zu7D4%$QRB$2;;{+Z@$% zrZ4RnV+VHI*wt%V?p?9tjyI1!`dleztu3q8yGlcm_@C~mgfG5iz8ZadyDhgs7g=)s zM}Pwh-*^}8MPI$taqpKyK=4@i52v~hZUBrjkUnepnD%MopZ;q~j?annnuL;LE=rF% zQY*m(;DOG^#sV_n>)mL^Je!X7Vah~jNI3%|yoks;{|$~ukD|w)f1VEG(0Az3CZNTO z*VosA=Hy+>>(8Udfhu_y9nR=^-I!zSc|9Y84&wk$0E^H2 z?2#`PPEa0NKDlWa2t0NeSndSpUb|=AwprRLWo=WesVR~(yt;bm@Ws`u@4jd4^;6X@ zzr3cgsI{RayQR8jXxpNyHAi4i-XGQ+`V`3jdDp_Hqk-(Dca+|8{C4!koe~TBdd-e$ zhN0@}+GwOMtFEoBF6;W0t9MM%dUKTVnsCV=F>U+Bwg)2aCb6iA2|hJ1G8pitb7q1{ z24eoASU{qs((y4P!0FSYf^S&Xj3;8wWPq>yQtcmhqb>KHXgkt&;`}!!9F7z1um-FX z6JANVdZnkIXm3B^kWiP=5>~g9O1LVia39)|d`?IJ{*T1U(i8WImlO7D(j}+azY-J( z(68L2CyM+O!6!(sBwPN0h>6ilPH+1s>PB6t`=8rRfYy`mqxVyOX=kGM-#-ajPr$^( zBy-z8LHyxAgQZ`)&g7!5Pd15eXg7TVI&#mrzDC=LJ~)r(wSVI_oQ8XRR38f!;?c+m ziX?*hIv_^wWK%OnOgEx}CJ-SUNv04`3pVkhse2xSxt_48&?zbLbIDHwc3C~V^^u=nYmeN)$BmCfd>Jj;r1?ffM!fB4#%vVHlBB781miYh7UFw z%ZFN+^sK^6wMxy&gSjn*b=d_D9?&14g%^&Yqn~eud)@(S@JNw{XRh40`|#jUKk5 z%v7;J)JtjcQPjJ{6=I}{P>Xa0YJedOBO1nBqykUReG}a_w=^xM`lk1E)ycn)Fxg9{ zPAzfrZ5~!yIv3scW^uLdy_>3Y)_kf~|I1Z-tfal5XhKmzd&#j{*T2;2Pu(@g%ElJt z%+DzpTXw7lWmOlG;(kxbT+qR2r<)9supLy&u17v26I zirx3Wk-QJhJnAkgcg$MQIo(lQ?Do5H#=Tji6%gMVuc740t{V8X@ZjY%^SJ>wv06<1 z4Wi~y060L$ze|Z`qt8I3#NiN~I-6n!$uFTObfyzQ4kZo)P*UmpEz&oOm9O|lh=Q^xg=CRdPP}| zKXY-gt}**`N3*@Ku&G_{8@vs|Z8SLN#M8aZBb!5C$CP^kt;JlN-c{_6qn8VY6o%>x z;q-wbu`@MQaj<*T$o8=BinO#PqeHVbw5~28Jc2` zfz5ela{*cvlC3tjeFT@c87!{+NQQv8PvG@&PS{9Xed!D-t#5H1gd^^{?f$)GwszOLU?6w!=+T37 z(e6QO7FIt|TQy|zbJumWO$ASUz%U;$aN^)umF=N4Dda2?qrXG)56OL+67{Gt70Iug zOG;Z?%1TYsXV0J~RJ8593cUV`Ql6c;;W4w+A8=)wjn3Q=CFo6S$-IWU%9+ej3mlB) z-r?6C%kOzEcO0BDDZ@QJdF!}Gejf;ycZ@9qlNl&^t}*J#T=yJAW6Pr1NuWbrUj8~ycl!HU7!#a-av`_Xr|#cPdbmh~FLB~uI;c;rg9N2Hr6e08up-22TjC-b>tq}QV~V;W7?d84U~8I1 zw5F6x7(vMv_cqZn4B1Z?U}A`G*%0n40gA&B_G}AOD z;FTG5Muiq&QmbsJVMI&{88-g!$kO3)jZ__%WL0V&r`htNpXaW#ITJdZpZOE);WFVRc_+GlJ64RR}1dMPurj>^Z z__6)O`#@1QynHgiL5B1PVQ>bxn3o`m5M()`y`dAk4%%~b z?ZNODg<=Z4zbHUb0!8RYSKwZB=1#N6Z7Zm>x5<)2&<8JorWYRuC8yw`ZOdbS*i%Oe z+zA}_-VPl1G4i%hI2Z_{$&Q>{yCXLTe06EU5#|YjiHtPBjiZ}J=T7k!#q#+y*kN7Eij!h>FY|J+Q_N>4@^ z{dfN>I%X8^{`=?EnE?acZ9J!DvwL3L1~>HlRDYbn;n;(Bw z6W2Qv2~fep$7L^eNGqD|OQx z5F~np#IyFs8H?7O+=u!!`8s-a*ZTEW?1ZmSL#;rEYxBTGmSmeyk4RYyB>2qxz|Knq zhb)CN2Npt4{z5ibiSKm+-)k$TCsW#I!Yqkr5F(}%zzB`B!R(|{+}*$u0o-l`br|%z zZNei=;NghIxsfNLJvW()_@Y1_ynG4ax{_TvkL2b&oMW+NGvtu7}cmm61ttBi7nksHzW9VWR1q`7Q49G7KrI$62g zysCuGrSt5ejDSTVXBVr&xHYn^ZPUhlEZw|Q=y zy1phpcI@g!AOt?NdfD2cX>lO2DkA3-RcF8jPtOqdVgJg_f{8!W%sia;7iMyL8VCmm_W_K?mxBf_tnKu3J}6*Xh#| zDw%$|Kao!KhhhBm>7FjKQ#t@d&JS=LQi((l{xKKjAZlPNRZNs`r+mv3Z3^N!1h*l< z*~2qAUPpbTbEe~TJUg+N6Jn!G_ts~gK|ekN(Y^`mad7MU31BuPaBn1t_CW|{PkF8*ZHTtMYDOSTF3r@UftO|bZy`ueV6thgGu(+j+mm03uxm`>!hW&*ZA4^>^ zc4Wmj5PnlJa_kjXJiH!$Q#k?$#*V1`2Cjb?TrrSTNLC~4g-v9Ckq|NArE_2`D)wDr{tTp4R|K)Ti0e`$!lD`AAVYz5{^1qfAJ7M!0rY>Q;LFpx*oACrV)wkhWzg1Nrj6$I@<^e(UrfTqcw!K2jwqb^p_ZkFNrVQC;v-fA{Yeiostv=Sl_(F6Eq_t z@as(wL<%7@=!11*`$DkWZ}Zy_o{-OS7Wgj$Z!1ReOn#4r>v@O39D#HK_S+j`x|29R zDJ&I`qUV^CaoF9HK&eFmFA|g)#7_4+Ef?ur;h7!87m0x*+CoeK;04OBuL5R31d<#% zOP*-(p+$ST?nGtB(4NP^+;#bPcI^Q-_~+vE&dyE zVIHpf8MwiR-@$r8Dfy@1bI(YX3f_nYq90twPo;c<>p zu+A=FY#weATV<~E4-OBlXn1M$`H}N#md|b;%>b#J1I(C~*~_cvj5xpAniZh6^rTwm z)7nYKKo;#7v2x{zktn0>8n=?!rToX7XwAD7AAm-B&h1Tq{?4E`G zadfdKJwLn{)B`95=)onS{B-Y)p7 zByg`1+=%J;7_q%K#()mEIU<7P>BLUx+PO1%el)0m2NTTA=;?RfK}!}e&8QhXN`6Tx zqV4DZ`OZ7cksbwV#^)=6TkOB%E&%ojo5WmTHlDGXsTpLJf~2Vh0!rk71>nwrL<1PX zp3#rvcp)NUEUZMpsJhnV_jOD5L%GRys|CUaGYKbDrAi1Pxb&WDZ}!9?3f!(0i(Mscce~#;8=w z8y>6Y6*9U1OiU9P3p1>t#>eYmQ<^?QmW_@_|6))Z<-piv3>mX^AW&oHOmO&2gKjJw z?XhQ1)W|*he6k=i|KL}>rS0mwd=J!hkyM9rYleoz4!A^NF%}RXL;IAi8 zcsc>zF>=w5(67P;PnC%$aMdhI#r;LVS#aTb zZ8)aMQlr*rh-F|#C1pVqBg%dP0GNP#<;ft9gay(YuPZ`2kEs_NPT_&|r!$7&t}EKE zm<<~@Y}zo4*6)=!fAPr|&GNm}1%>kJf9)G}--hX>P`5|E1*`%Iuxg8Z4^k)|LmN;r z+VGe{q1!8e1~SkFnP=pCRW};ab8^xR>q7W%k6tBj8auX0uF~%TTIrl=IhB<;d-O{A zmR-BH$dx!zBRg>L-~kya`1EV9JxvM{4LHGOM%cp~D3Pk7hEXG^Y1BMwEgqbg_=2PU z%QL}*6w&NL(Sd0LG48Yj^sfifw;(Z$=th87g%c7_^ss@k%O=vp8fQ1+|ERZquNfYT zk3!O`jYa1K={bv!k-1`R@*lh^oY1QSW0y@#CP2RgA6^i%x&=sTk=HU7*;nBm_@ykgx{=-5vsuM_>a411Pd7Sq22ZH^Kx$6fHzoP6kf^Gk~?bG#e z1W=%NOlkDL*xWQYI%7k@yv6jIk*iRh+s32A8k^f`EI!@&VX+UI19K+tt*?^MfG&G% z-o{Vcf)IcXY4S(8+r<7Z&2Qr~50N=MkXmQulpfFELBdg)Dc%ifKW6+S9HgT$J+CJz zGN7f2XB)q$f1n4)(hWe~foe8_U+i)cnkE6;5zRm9Qv5X6Ay4xMeqkgFa7tncvb z!*JiA*0uWq*j3;!4~(uinHv^uIsmUL%qh&Pk7_`7qT2N1gPylp%`J(>qMwECB*jOV z;oBjTr^{ojKp?7WnSdI`)vruL5N=Gahnuwa6_aKTF?)^9bhqM$46thY+&XK9(c}hJ z>8;V^(GF7sed4@uF;?iC+P=2o@HezkUaF94q2^PYsNK|^)G_MM)EVkKkOqkV0a3aU z^@StRJjRp3_Qs2Z4O1b9_QW_(fb;NSvyXIOPppsnF&7b;5^gflbr~lJON3c9kP#>% zEU=*aM&wiGFy|rr@R;Eg7(=qh5jGn*4*_`*l0=pe!IMaVKwa7_8^UkI5-c9~@vZB00k$C}OlA9~k`Rw4!{q3;=JMlk=xF?3bE& zyG$1xlVRb~OzARR_DJV^2bTtAEH9NxjeItg(x%vp+#=d$bvk5D`{Y=bC-YjB3^SI+ zn1Bq^YV&I{hshPRTa9+P!;~8tTx@%hQ89VI5HLH!`FMTDH=H*3< z#(bbSJ3^b&T)vpkWm>!Q{7sMFxFIK$vt$WAY`F39o6heP(pKe$^5)LX3+1jNX<*Am z9d&%V$yrV_tPB(14LBUi47##{51?~@{Nu|n1IeAm67LM9$(C*lWCNOIfI-gWD40T8 zCzW!1<`5u(`BI*fNezJ^Opz|%No!#~m#@q*te;~}Gnv#;>EzhptbjQHi)N}f4RRZG zz7lmT+nJ#%lU5Yfk6Wy_v}B~N&q;)<(-uDr%~sEztiW`14m!u13xbj6v{wim@WN&H z?3p!d&ppc)is-)!7u|f#&7~GoS5Vhb zw+LPU31X_?)Y>2fSYjxy>ve$6rsS-opT&A5vAy1H0z#(}wGLsG)ToC2n$+D80SQGpy z?6$pUcd3eIENPgC9`lFCfu?^2a}095T5GiD_+mj%rdB0Unhf@wV7wx;$yXgJsP#7) zX6%}gd=hGcV|Q)5uD}m}Pi{I_3PztkjgH8Q+lw1Y&|}wWoAZm%V_Tv3yt25txtRGL z9|_s2@B4NTQ?6>vuQ@Q?>c?DL3pJiPN&THV3s@inUQh+5QWPH!fLOp|BriaS>_)Oi2{EpZ7Zft^&uzq?oBTMzP6yY;Jl#n3C64HvId9;vdCOans9+M!Pi5-|A!sUsm%SK`9jygfi zDCy0U2z&OaJSU)az0HB=YMh$kS2F@OL`-O%$jWiKu)3lC&K)~I#k6OGBS&NccUIf* zZ1fp9f>+1o^q6WUl}y@Vy~1#Rixrmjkmoo;gZpEw=t6u*r#zW!Ff$wE&%Yyyhyms+)Q&hHIm zl~}bhAn~bZcuK7*C14dkCrLCg5?F)2ef8Dy@~zjDK|srOX}mx9XZ$s(Ec z1?EmXcwCO47E)WOgVckV8u??&V^eBB1$Su=Cpfvs6!E}x0hEKIB?Oa$=zIy1B$kf~ z$pb8$@fnw(gyI??II9-~=w>k^27dFE3}OvFQY4h;45G7p%s`3{X!-?>@M+kW<_Y;6 zK3a#FIvrH#O*RXd9QLMpN$RCe?R7(D3@UY$ z>lxJ`9-NS}O$u&q4yzl+N&~r|O@*V>1+c!U@}NPuNSl)RNL>p==hONuYucdbuSRE$b_Mh3O7o*u5&t3Favnkd^U( z_n7eQ%;3X|mSVCO(YF?Bs1P*-uf*dq{kn|0mbz73hw*|MAuze<V1%k4U%d@urUmSD>7{n!LOk`r(4m zq>e>ZvAHwKv?YVH4QBRdcriDzdXUc}JMA1j_0zIytIDLdxjWPSf%?*Fi`uMpS@nxE zeVM?s=qlq9>8$@5>2)eraG@8i*V5_EVw4F&F7y!i>j!H}ii-1-Ypr_~#ns^VN)XZWeksY4GA@CTi&tQ^l84~QOuf7-~zRJ+#PxOMU$G1+rxxIkt?tRhS@Q1?{iz-0v$X|WYhf^;HK8HV#U0yYH zei$WCTzv73&j9Tdw4b@Bz^^p)0_d8s~6AGj*4`VbioIDM>3phD?LC(>O^y&`L!GR!@1Ce@7a}dOX&6;`; zQR};)Anr&CRsTbn{`YbjgtFZ@+|xK>_3{z)Q^IZT_7xTR?$!^$`pprv0g1ex!17Qc z>StsTA4j_NbUlywm!S?$z6M2EXb>@QO*w;!drl+!?~Vk~xwQjJ}_E$7?It zP$0usGqKF8xkzT1jaTAz)OFN;5y3emU`&z?Oc)lzFf2sGbTQ0hRv{n)t8xOy)#W3E zjUlR7?!JE_J0q$aF_C`3+b<&=b(YF)^*fx|^_l5u-qyU_RUC8oe z2$5WmP$W06)thEA1xb-#)(~=WmCn{U@faZfi??>3r-l?qhVhOJ2k&o(|1pvvVh@Mi zVmF!WR+}TuYUQZ z)PGase~gG@U6ALng#LCLiFX9duH&DS`kBJh0HDq$KsSuz;JE}t^&}wfbII;LpCR4C z`lrP!Ace_(!5b2u&BDB!_{YHCozc@2%$SQlKJb<}&%E^v&90h%C`rAA=Nous@`L%S zdS{;`bpU-l7v4crcw)Qg*<8KPMwSXP!pJZS2qTLasF9^YcwUYQXjdn%!UN<})X@!x zk^p#fwN_^YkE!+IJDf&MMx9Wqw~$ySpilWB;wWYe)j=pog6GSK`m~Y&@jToI=pouq z;57@1s=~xMh=@Wh5x`D~6wu>@X3ifF2uM~bmphBRJ}~Ii?y@<}jiC}}p(4F(?5eho z2WS5Iz$3$p?ISg5U^BXK;}2Jl+4+Y#V{Vu=rnD@p)Yh?W_)>pW+nBKp#R~eNMa`oM zfYRh-HrgEKhQfL}F7c#g+Ew!L-|Twc7oFU?q2)@)@Hu0HiyrOh`f74jWM76C?7Izs zU2|U9JHcN$b^4V{cST>G(wbGC?lR|=&8gSw79L_~bC$xM%T6ma0%OfZYrq&mrcLzn z0!6*sRvr^3p#vgThe1Gu#S5NEQ0in!8<~yboFD6h^c4m;7rqRB`@YXS-k^+uh2E$R z82E_+xqDE!bsf}BnVuF5*};giDfQ-(z@V1Ih#61JrJ0EjE_iyPK~bKyWZcqyhh}#! z%aeLcnci4&W7fQVvoFH;Kl4D1T;+2>l>&P6H5%{Ws65TEw3X9#j7^hj9GNz@wEl+t z-7{AXDeQb|I+*{&;)Qn0g4Q7qE}wJHyp_hurQ=KL0`_a+#}^v|&?y0a7l=S2@A%=<(I0-uP5q6Je$1hEQ#=PIH|Ezy#(5eQ@Q9=JJ^nGwM1iC(_o zCymex>39lBC%(I40kV9OeuGm8uO_%|4dc-tNQDR(SvUmGp_hUl%kkQF2#P*6%olGF{Lu|z4B8=lx?OBVLj%axn>VLg!MZaztjIuhas6T zI2;C;Fo63>;Ut9*3F|D`Bft(u1N$SgIcA_3ARmQFkT9pEnNh--mj@RH9gd(QIX-z; zA~I}PBq1K*_|8S(rREjoW->A#SKo@HY};DIgQJ~$gJ4S6@~Hou47xcf&mZ`!jYcMFb#!h3!IyQdxZ zhTuQy!{Pey=+PrX9&hOSdmch>KhhhX_0Tt9izhT{)ZOTf_csIiJ0Y(S1BLHzMnAq2 zA~pw#3l#H1>f73J|6eX(ZPR8wkvR$W#CiDD2+ok1z|To&!ErOOniD+Q6U}MCk+ZId zSZa914GJd{3kldlB2+gXCq|s?4@f*Imt>f@Go=yrE^*mJGEyUF9#SNi&3RvzDDb@Q+*f z;qO$8{J3OSD6 zIu(tRvtaUjo}M4Php)4#EzRkzQ{z!|AhT-cp(FPKm|f7QFN`QyXGW2OXBf!yUWd(O z$-8=xYpGMIgz}S+Q%8pGAD-ckD`)GJ86S*`%~)q^a8|C-fRl4tXC$A|Nwgal?wm1X z>d^V9UQ;<~Vtfzkd2V4=2~hR>!6WORjfx8R=@bYLT+BSF)sHN6zWs9t3&!X;I5TQo2k{^g|lp5FA= zn92}Ij|2*1V1X-FqH(~{$pgvjN3m9&B-iQ8mFUfq9B>uj;nXp#MaSkjyMLyj_O{3W z_40|&AMA?PuU=j-q}F@wr3sBsyzz2{RH=tmRg6X@E&sz?Z~mb|s#de^^lC<}mX*Im zzj}^LTfOTF+kx99jVcqh0aL)?{sEp2g^@0J;#Gs*#lF|$VYD|wpB8*Bc6Fk!g#c#M z-@NL~R*=|w<|1s*wzEqJ&^I8hQ0D8-uJZ!mHH+Ett!Kc{o*Qs2y_y!8cdDzC z?iB4Km;v??m4b!~b*bhkD`Gfvy+F=5tvBm(F<+!lkwwT$;gDZK(YWlES1b+(KG>0| zIUWWv^;dVCf3xH2t2>y2 zj;rAlOUPBo0iBCf7Zp`U&Y4V~khD+w&MR(-R98pPOr!B=Ry91(U;FBTKK&qGnu(U3 z+Ya31pX?VlcQ>MUZ~PR*&~Y>b9S1S60nReiD$pH)F$fxVeZQVn>eojcV>6By6?l5ZCSD`$)|kCl5B%z zVa#D{z?jS2<~Fyv2_YbE5+LDDfIw&nxgZDmHur%^n}i%tl7^JrPMV}io22=sX$rPA z{AOk)TQ)T9x8Ls{Kd^RZXJ=<;W@p~KdGp@qZN=-qeau1T9!v`#U>;^3VV+=~XI^5? zGQVXmh&aG3wU%UKyPpmT`H6ImrN*eNh!9{XAyI}HZF2<3PlRSLP>fl8#1(S_d>MWoD2)dw0 z;&Sp9lMK2%I$rPri=hDGj>Eb=GU#UwP6H4s0rk|T0G5E1u^P{_$;Pv+BPm&nT685k zv{+}gWN>GV$?OGVa*FXaknuK`VX^AL4sAdSZr78$zq8nd=MBl79^P_C%Rk-R%-j9(O{^wvxNs^&~^@wl|5nf z=8?0jqk-%DO)M}=FY{7V3j&?3 z$MHX|qHsgj?;v|}{ZJmRH>GpvZkf!8Pmf8ZmJGeoXmlh=m0&oRZj{Nu3_jh6(||_6 zflLjUCzmEUO!%K8NuorDfWxd(qZhdJ&huazI;v$;IhmYCcR?1s1}3~Lg`oA^Ic>)% z312;Y4v?esVYDk11kgjA2B$wQ;lZjZ(C_|_Upy^k{Qv^3>NHR((CbG)`L~})(Ul>u zLuK1%x#$&i7Wgzf(H9@*fo&ZSH-!ne7+3{3RD_-dKYxn8>bwj7y(rZi?w8LtZaf2K zwO4I=>7`AXzXlHxoNr|G_7~~SMm+9rVdT{FHIc_~3`-ao%)juM{lyn}u?h5yOT6HT zmPvpKN(3`|Kl%;ISZO>Dnl3hg8IuN~o1?ERniOh*0d#yR)Pd<)YV;8bubj>P?(Cym z4=(^i-ZItqht567is5Tb& z8)Z2UY8T$M>9H7%kTTpqsE#b5=myaX4&5Qi1%?1-w*x*qk=(HHc$O@9F+(FdZxg8Z zBul^|%sjkt?YXm`@7wqJ*>jOK{NXkLzd3a18vxONufK3)&B<5V4jgEE<>Z<$74E}!KU7tLDY{{Cpm%n}D)EnHY4r$qhefuVqaaY#Oo!fDLSwA*9Z0F8loosHN zbN>7cb~|_H;i}G&zT#Q)c#)qzf#>K6T{a05|L1b(>#n;&NE1*=D2=fJ{v(@llF>#F z=nI>1CJEyM`sl`Ce%rVAcVyoG?bbBQS*?$4p|T;#K`TW)ZWLS&1q2I%YF-E3=c? z&Fsh2`UGJ0*FyAJOu`L* zt~jSffnsbhU?y959;ZO=Pe}`wI)nAYgV|Z8j2aE*$}?p)wbiUl3;G=rrhONB z6g2c>k9JN&AMjbPzmDEpx^!Q{-yInR4t0h%gZxwuZ$^gKQ83w?;U&LG1sPuM?aW^P z(5c}|d&Vpsp4lT${O5dngIHQ{OJ=r=2L@A-uQEq&&P(?e2tZ*pB}vSda-d-qtOUv} z`Ed;XrFi`9q?iafz1FffGGL3jStSg|lzZBa9&KaM(YAZ;X#;JQ`ByIIS61eO$MVAP z$8a8aEWZ+LBlnJyge{AYa;5Dr1iJlagL^z?C=73+^eA8Oo41@8KWp>)DYn@^GENn=RqU(@lDD@_yQX^DSsqH~|ijHRufEBb6q15{P451>FC1g|5G_s+%6 z2I_@?V(;UR5GQpZ5M<-B6&pvE;~a5dOQaXn$1M#+zY=w=MV0F}?a3YA0)bCr?;=S$ z8LQjuf~VgS#V6Wije-*ZciQS^d*(s{(L@DowiPi+E_St$mL%5}5l7K^#=+ z)6Fiy-HrWD>MiQ6j}&{GCa!KyJ%m|+xi|>^(>n8vyTq^;zjiNXHVuFw@X<_k?|)ot z!ye!wH_(TB3^?a&jDh5r@jtJ-=xajcp?ASIU{ZA8t#6@r)W$|}%!{2b!-wBO-@`>u03p|&%uFV}a5 zwNMQrdIuMAuuOC|JlNUEa?~e9=bzv~8UT@5h|w45IvJypV{`?2$PimcTuI?OJQvk4 zcQVKD1Wm;Af``I2|MDRy8j$|egDWwSjwRdXIv;VvX(Di$#E${1>rVZzUI|Pt-cP0( z!GJ$JhM`yI1j)>aU@$a>Ok1S;?!tK?M*o!+9#^cv(U zg;JrC8@!n+i(aQt@k&-fQ-OQ;+|+sCraiJW?+E|+_ssC+cXR_X?RmEOedpWq?3n{} z@4PIeyw^}UE=LPmBVl4n6pp}R4oVFW8l;fZ%UD6+98#;)C@48D*_n}?oZ(F7IHh33 zkq%A}SXt-sn{K=9rivxEE}UxpC>&NAvr5ZyLc4NYp^z(QS16~fG;750&m8NH-4WYA zh+#QMNZH%zD~)R`avcX!!M+n~kaBNEXd-D@Y^JtmyMth$BlIbjYq z=n!3qQ?Yv%2wW#?mqwM<8=jy2tM9bR;ll?tEp(+^V+M4I!|UpjZhn%QO+|)nnVy#h znWdvYvAKE9ofLH#2QD$B%p^DeYw5;acf4`s-KCFP(5p_PUbnX(Z_^7e@DU(=p{MK} z{51Q_wmL!a#j!=N4VqW~#fB75Ttc3bzYvqUl;SjVB;RJSrOsJmz^}EsPgSN^-;Z|e zUX*T6$16G_fPbO4*gfV0h>!4Xn8zJXW? zz?UQ$W>bb_PpKYyW}`b6Nu7p##roe$oOv1iGBj>BY74DjRG*nyzi54^4M9dCW4Y*q zdOaKu^(iKh9Gz*jT8-e#7AH8h`|!s)BjmGD1ANqIO);Uu!@EDal3Nqb%naA$ULiaj zyvA@5z7z8^J|Y!j1f4J5tGfhtUD&ibFM!lLE2qySdq()jMbP{2w{-)nh`|GYTd!1X z|7`QaAm`CeM(lB94~T937(I*oQbJNuoru#u3iOA!e6>eo*n|G87k72YQ;GYb#AdFi z&qV4i7-o1O-3YdT7+8!?EE}WcTdi*T0<>Z6gu|EqeChB6d|LkI-C!;1phC;p@uH!t zJpS59R9lju^>@FyTue^;X6 z-s9CE0BirEex!>87(xVGWPHaf#WBRLJpMJ--l%^2|F%J?1@<>reALKX+oIM-w9zodnPwGa#UC<+R!SkAW zNZsR;L9h$eH(>AC2>icp1pJZLmdun{<%Mz}o3n`C!9>VTZf>4CCU#?d*-^0P=zrKs zq#L|`)W1j$qS*gouzHf@e)LgC|LkM9UUahQv)LUZ5i~IUOj*VPXkJ*b)g+uK(MC1d4%}UgSmx zJm)W*JbB?f@O19QtV`?C*@q6zUP@K&GCV%*?-0pTq34gb^f}9xoddr%qRw9%j$ZX^9OeP(m3MO9;4(W(#gLCP;R@ zFkNJbB_Hj?HX!NI)9NbC>FCF&-$BRwFTc3AUMjoo^Q|jB97p?4V!A#VPwkYs4`a zPE0jqifk#4L&uEn=~}f1UF{Sw7bM1@vp5E~p(M7yF$A~aM5g%{ z+7S1de~U0tmmFeK(!NJoy`Wo5dS6$c)8Z}{>D7dG^p7V$eQx>o>&EQitG8H^f$F)o z=k`4MdTdlO5n@u0tFwIOp+hs5Kg*VhosVAj9H+SLevLX)GS&>!Tt8TK&w`A5p9h+> zj5Sl~X#7*G8-hio`;|QaS|2Fu?CN?b{6JX`9il!IWj%4u6uOipg`Tr#uv=sDpU$I~ zcF1I2OoVm}>p7neJ0-@Sy7bHQ>U%rnR-90_b9m4Bb=WB}{?w&^GS9+m9Gz#&sLw+) zV=_XHZtv;?L4Ws07DV79u^RDuc6SRHs}GF44?K^e_a5H-*>(k?EOZm}*hH}qZ{W4y z8)AJXiZ`xy*M?n_gr5EQ0rclR2F;$Ywj2ifN44T-J26pw=5>SNbupufC+LliNY8l) zujqsbw>DlEiWn}II)PkD7^2T7a$9DL&mZ3mb;JRi;@?JCU@)K$WGS+Ix%^r5L5#-# zlQIJLvvPSpPTUdht`b~;D~vu6Z#*kfK|BvV3Ua#IM~r+{d`std*UhW++YtGX$U}C4 zr7>hhfLY!yHh{2;v?TZiv5y}W5?Yrsh|#;LPWTKmQ^k5o^vz!H!~{0N5&LNZbRJ_y znXc|kw7nQ~wTqA3+TC062_(#!(BB=8PfP+4C%=w9f^Up*7BjJT z@r1tBk)1HIF5t}6F=vL`qm~fkDEv}=uv_dd>Vk7rXiCAq#ob#kTf6DhtFw;+?ZfVd z6{lubZ%LD9Ds1MQVwYN`$sI4)o9ip88^?!(lPil-R3AQm4*iszmTWUajc<6anLRoG z%#(Xp{AIZA4#A1B^Yn(*F191h)`8~sB&cSnC9hk3LZI& zqOavO6z0lO$FrJ-c?;rl>D9RHw&3+dh#-3~B7z6iJ*VsJpy;#9OtlgLtq{fI!4YgC z7OW67>*G*e1QX6cm5|uCtPk-}r(IZ3wt3pFy1{@Ql$0t-5)2xtw0HoYQC&JkDc7{D z`{uzJGamc~;nS+&KOV(o9a!F2wdxJ@&B5P1jHYaxzv>NG+$iJaj$DsFl)tBC-dO2` z{$^HXGHw%0HF7~(6ZRJhXm~6Wd|LPBiEoBB^Rq}M=mPrYja8Gkfc;PW{vgho`ap?c zbcwh+1}Y==;8wsZmY~D$(BWT~sZv5%--X9PeYembQT1iWPhu~vFDrF~Z?v_f?)&1~Zt~AuK4VJ%EL{cu zr)#P!iR(rS|Dg5rF=GL6L8q^VvPoFuo*cVPQbXJjDY;W^(sH_@2*jIMR(bOX!%HYP+yLlS6Qr95T|^ zJr2K*rK&FmJgc>~qVI#C2F*l=@&B2iCWyXoZ3PVI4_1Tzh?##`!k}<#q_wk^B`44t z#nr;oRk!bHCN|eN34P`Wea1Wu{Zy5r>*-9NKJI-J*PA1Jf5)#cX|?8#HnUcH>DL{Y zFZ+QyJi<9+TL1j!&d7#m_%}3JS(-QaXEv~r&Cj>DQvXKaB7s5b>61x(cdjUnxbgd8 z!uy$jS(eX5znHVY?oh$Yq*&3!i}+s6ZI}+NpuS2{DK?CbP7pDd z*F;ESw#XpyvF>q^xmpIqNH{tR1%*{(Jw4gySIeIM*tp?RP zr&3#gQn4NL~Q_T!zI)Mb}K?-nTI^P!z0wcg= zFdwW0Pk^)FGWZ%qp%Q;Sf+*&ucw%OrNV|!*Vvk!Aq+tqzA`#ON1%!YZ_%ehT2#qJU zomt|>OD!P;Z2*`t?`#%x0}i;LK?L|orm{IO||?1f@Bj!bnSK*T?ulAt&C z9A5PqZLEa=5xE75Mdal?nFNj~=nJvLy2~PpRDob3+Nik1B#|!!Z1fIA3UwNVfcQ=m zLAS#Nv;=^W97)Z{B1!Z#h?hwj9{Zow}xi}7wA|2%$)Q*`y=l29+uIK4!`1>h`!%pe{UeiMBy1=jPZrA~=Q z%?cTk3>*;S$a>$*1_%J3TMaDY*P(j5>{-i0)7!y zj(ADLS@8i8KGi6e5_}?c>y!NuG^F4aDQ0t-YHUXSkgbJT1?@{zW5l2r zz7DdTDH#EGNh;qmyuPKSZTjEVq%68+#R&ML)F6Nfkw9UiIXWWxTg%v@G0y|Y8>EtC zb&4QUq^8+amQ<%zZ&V2WMukkK83r@lsl3XoW}!S=uF+VkL1=NR-6Yixv6Qnc`i{;7yud*S*m6sa9?u)8i~0^qQtK2sGQer`RD7yC z0}fZqq{>FWTmVMB)tPEhJFF=RxinQ}L4TJu*tnEbqkWh&S=HaB;@MK4W{6FlqcEAZ zwyQ7M8e|SbYD!jGwJO=^()fa$>^XHGLuS6$n#{g0)v>Hfmz4*SP}|q{-~aXffw^;l zAWvJLF5`Igqm<>~yO5Je6aYs+xW5@&&|TW>GL4>P<@|t`S=T0Dx&IU}9d@v+u1aGq z^`-NiAcqo}pp_b+CBZ;Jo>Holm8XFbtghOVeN!Xv+z{}MQCYa( zyfW>?REY(q%anO?1AweyG&I7Q=+U}*skC4C;zak+p#397x%ti4RC1GwKWq z76M&arA+EosnRlWn?yIMwS!hDl>T`Ee?5eKKdLNUTv4)ZDkp=OvKuT4m11Q7jPoYb z-Xf=&WlgDlBcLEq<#vFfb-42+8TA~`Nne`WXGdV3U#VC*P^&J&Wv{3FLVp?HU!+`l zAL{SAhlT>M;WqUZ+c->-BtnSy;!~zq;D2h`Hg)Q@=+dd%nwqvn$Cu69dh2h_0}m*> zy#4ogPR(a?2F+hH^x2tdQzkVHbSsA+LZ=@@AAR)VhNacjj)GkB&{X>9RKBS1xLRM9 zMa|1C_JY#EBWBL;cVxV8*_2r$>ihcAwJg-yN_<25j0%p3>l?)UR;5$q%vxqP@pi)W z^yEWO4|~8E8;UU-f_Zj4$NMS#vBn~*vw{H3rz18b&zr6u&a&(v$k$1Ie!?k{Axo!!O6)e$}JN;~JFQaVq zy(mhXv~lAkF|_Bxh0fa{MGmA;wsD&>nTWe?p*$T~hxv5QUQOYroRq1zT2--Gh+K^b zcpau!U!jWd0=18?^-r$4(poina+MISn(VLT7{bR!TR}t==68yA@5fNYUwe!sV`<`J zwM?%vrF4}kCX47*1XD7&uBe!$=NU+Cgc3{9tBANb3~a6S_bNiPsb?91{r{poEMC_B z|5P4`xzYc#^1!b0Sn#N2{wF1o{&FeUf9w53j>K~}i`dJ6`qD7OT}o1qAMTiIbPKnD zy2se?y4;v_I=N7B2AwllmCCFvr7}eizO#9& zEkGOQBWa-=v7I;- z8zD|aqqqlO!|937T=6N60dYUF?L^>@BSfDFBot+64~jt2i^u~p+#FmnT&MId`H(N> z<6&&iTJ@}(&Ka*ENUWvPhM~Q0lLJ|fiEN$2kEr}$8?hwG9RmvX2_nL5`tXLu9K9AzqSxNYt_G3mdGpOZd7Z_onD{S_edFo6Ak4X~& zhOoQ*1QWZ2t`&(pC^xlc4pQ?qzv!8o`0La;t~YlQ?n$>uzc(?=dj}>QdU_Id4KnZ%Qyrxf!Mhk#rafu+E_S`h7;A>H8Ae3a)H!W+b z&ysMr2L|x0w7)l4#R3Ft*gy~LA-=1f2;PB}@iHOO1Js!R$i$V@1sLiX%u8Kc+Brat zxv7<^p2M{b!Rsui#?Rff2~OKIcP^N41pRo=%J+{*;!>S!gBO)ji5L?%~t zP*Ts~=>U(N_`PGt;*m`xSuC0x+MReZ2pu~XzY~eY#r&a43GF6&tbV3~8OyRYE}-@T9sj3sNqu zoz8BsDXUVAOmqhOi)q@LX(sR&x^-AtRZvh>!0noJ``%4^Z=W=9$&6-BU#I7qXDk`m z!Q3d83lr}I(J&jqS+@VZ8=8n$;Fr=+*`PsXG@vaY*>_H@Sytt6R4uDf?0EaB=LCmC zcp+#=$y5>cj%G-wSS~{?k8Mt)UP=m!{AXi-cijSZUv}o>JvUJ!y{`YHA6{=|Ozu~W^*QKYgJN?%UJ!QhA?0x>Tva`6i zJMlR9cZxom9W%Nt@bv7jWIvF3r!R9fI;oAIuw$xNxzx>*8ozoS(Wc!p7?_e%c>yJz->|fXHiTTb7RkSv9lTrtbt(Hkbx<@AEX_ zZ(PI>FfP(8PSFk|8N>k?0c{!FEdH2U;qTFXUN@dahcMHKpI@G=uS79R&>^aeccD!4F;yjj zm#~EY6d{brW(@5z0#EUINmK~1t~ew$Z;IiL1j*JUOYe$y{zA;ZLj~|rvq&Q7;klyI z$15$N8Xk4bJ#b*|;=Caf4$SrD!)15?ADBM|Ju>l*!^drzRbHzRG!#{WFbSbgQuVo7 zZDp}h51MS5Uq@FYnfYvC{(4|;bVlQL(`XBPZO{;P(BZ9;AClJ>Ut@4!lS*nexy;33 z*)esH)m@R+`m?Ik=fbsfYv;aNnLDeKF^pCW$b)zLYu7r8&}DCEp!ed%fqBvq{+z+O zon3v8t_L$IHXiOtpv%c!1#opSE94`1#4ym6;I2hkE`l#hfDKKK7;=)&K{YC3s{%5t zNx!x51erM|{90GBFcbD&(Nd2h^)2Z0=qL3p53L0Ez^d2u=#P&FBktJ~!ju+u{_UP~=m_zO za{7*zdi%=9*k(x4MO+ zDsRdwRDdPo;St`hAG3_oEL=TATQ{-cLU)C1_qzLJ6>v&)$mnXs7ndEFlU$ThXb#G67FJDEZyq;tgK_pq z5ti|)nTDJANOhrF9o+>!cNbO{DD*0H8U4il@hfXhN&j55*_v$!yKT!- z!6!2&Csb<7gQCxqxZvy-Gx^pKCs5!5}LD5p|ELl1;{v)Cfz066y!ALV+y#ac1nEDm$a>qB9Tm|h+H?Ob`_!{Zl^zCE)WBFL$ zdosA5_!(l}n8=UF@9xa5Dj6aYzzb$4KQXDazEqqhh6M10F(fc=zga$gNI}WsK`CjI zH>6I~HdjT9MPj&r&Y(UA{%i+!^2g&j0Wm1@Mxd^Q62cS{Xla`Ees*V*BEkL`%BSca-=T0Yd&OOi`vqKYq3H#zM>gjbVvw?af zNvxt@$Hr8c(t(JzN&tP$LWV>`!3b#wv}CB+7=ooZeU!NIRBJF1{rF&f3K6?Ch_yIN z(O*2`+B!fNR~kT;U%a$$!A{F))Aq*bjJXH?syi^Zeq*W*6RQ-{faT9Qg6biIg2nZi zK2<$tcA2bF)h2nB7e^nHg**C5uguD=d=*os+VDAbRhGY&OU)ag7;V_88=T`GAc z_6{g1BQsy-HuRRiwhIqN_%+8c$&`mQ-B@#{*vuQu0*&=32)BD(?)pE7oAn&YHDdajOtV3fB25>U^gioADxY8jKml#6x<9?^|Mz!IyAhjsRZyb+bj1T*ZlQNko_l8{Xk zPT$ut>gIc^2A7(!zjv^x?SJ#BQ2BphTs<`9WH7&2TO|6a1|nx@wt5}b6fS*^&I=(P%t(->21 zE<@e4rXj8YTCGB(mHJg0R-5N<$lv$dmsurFD$ked{zcNgue|KJzA>ZsUB7_@3Yzu$ z1{DWYET>d!l){Xmb<ZoNu_50RVuFN2F(skH~5BR9EGp7 z39Y=H>Xa}t&LVhZASh!!L5mCs_&;nTgf7|yk3HBl7}-JFS@bD929HIX@HJ>d_Ormz zgd(tw2s+6Pnv6uJlSHv(&eexwS#iXZ)N zoZT6m9e%J8T)jc3B=YKyWDK8)%V}UzW1c7nFe7mfjr8;i5Z_tlW9nrA>S&kxN};I; z)z6HDe4?7Y8c-lMKp?t`ZO~K_f^kh=gF{W#(}_fosC3}vIfXBVeyTR(pbo;}_MqDn z40_x_ZbNWbFgUE!v-sFz{Ku_dTt9rt;$xiyjxSwy{JyV_a~qB?TY4N{bbgBd`^+ux zu37W$Eoa!12)%>OqUG-%oG^C(1vmozh&B+H3Scb<*5!p{3lE_yhc|y+U(lc!ZLj}k z^I>%5&_Y=#4=mUZ?*6l(uyqIA(f^o1#CBR-gn-O4$@28h>g!4gw`$1Bj7a(R$w9eG(%56Q-1T1pg) zY=G^HwxOSa9IOIzbl{nd8=u(-@>HBEE8ny9Tn$jzY|8X8>HW{4zo(DE!E~S){N@r* zeilw5&nyf(cw^Pzma+-=yWEa&VJ2J-M+zT{-9UTsUj5fhjI6QbIx@tu1w zkO*p+;Vz&dqIqN?T0%xl_wbC0FYz%@QUD3>3bk&#L~FKRCqlkw(xyq1HUXbJvroF* zy=KFTl$7*7nR0Vh|B-k2ZZ9&MW#$U=nI%K&Z#Je zcm~&7FZy>Q3mvKnjmbgG!FLddTsx*3U96}it>5@*J&w+PwQXV;o-J^KeXapT zc>Vt(deP}E8juP0JNU?ie$lIsqt>ssZv6^`ABRGCV#j3%0a`2?;6QJHfMY2o|FrZ#TBn<1FcC2qgNq=ptVVY}zxMU+{Yp4+u!7v zZ(mrMR6PZRFYPsimN+h{z7)W->Op<1;4J{QhoV0^X2Yk8qSrP90M4?;H;R{z;oZ_= zm|E`a)46L#1vs4J0blqBz+zAUz21R;t$uHRum}p75&()|s2B}&M3IiY>Ml|POjYu@ zogLxY1Uzjylf*2+T7{Z7SEe4l?mfK7dJbKFZ{520Ko%GXvflgj1``b2 zXmyj~I7Y$&(gkZaOpruh5EkCNaYEnMABK93N}kbj#NHogS*@7^T{cdYmc`b7wn@V( z$!iDqzwih!Yn2j%QrU9IhSTv?ss*JoRk-$(4N6F=pc?!q`to&&1%m7U86O2=bE}!j zAm})N?5?@o_;Up^Wx&h@SvQ_Zv@WwAVv6Ac0qDsj_#~LHu($m1`>$6;t;f($KJ;w_ zER22(Mhph#Ltnj%?te}4+j4fsg*(1NKY{&?ikYai{q*Vf(-H=*-txUi_P`$S;60C^ z`O!Id>`Oxxj;mnZM?eugfX<+gqa!z~;i8S8a)snHd5DZFNctE5I^9vQGafgzf*>0r zVu~OcLoC(#go4E*u@OTcg0-RM@I2_T0b&;9B>@XAJI5HzPz^YCEBX=*m|w0Rc-L%& zVu>o}yJdlmLUOHdv{a)=<}Kq(HQV(jUwyW3a*eB^Ooo?F=4@-}*Q|H?)%3Jd_blhB{ktZu{-nE$)JQq1@PeuPu76v|)h zpF6ZPMUeSCkSouGf?g$Mr;Jck37vl^P5l`9?H5}}-*}3B5EOy?4sB~*aqEghuf2L`<<^z+w%*C7F5I(j zQv1%Fo$Zs>?O8Z~6_D=x9#o%xiu5F~vhzwSI=QxTR4JJD#UH`6vXT96L8oHt6D|I3 zKQOtBpQ&U9QhzrNan*|17E)?lNTP2M)Vn0Cp24dV0%S&DaLgcAm#>@n8ZbWdw@UCVNVaL1YfprmM;F%495{E> z{5?0lIly=I)v05a-nsf|?=)})Ugj^~vFi_TY-!=1S0;_R=cmmhmjPkvvAz$1=AVb7 z@9=~(1uVA)r&TR`_$l!C$Y}!$9$K`uW6hXJBL{!78_IO>_~BN0rNc+baW0 zGrejyNpIkw&sH`C{ZLq4&3z3@@Tu^LceN-N8gqsQZ?3cFRAe|!a=meM-~6FvKBo@6 zTg^wpqf1w8o_A!*ID_o_2`8JY3;87SVEfmF)$f4mGxLWGEK*vlQmS7%e*D}pcXn8% zR9Fg%>@yzg@?FE~vIQ+5bi%AzlZxb)^8j`eD>@ymPYxP)c{#ZvE0=cu+!)4+k5ft zJ>`K^jTW!=T*~HMg9kOw8x&r+sp*L=H9L2_c5a712}s zoEcu?K9@Q#ws5Y1i=fS54h?s9%iMAfkiZEOyeHr}#o$Mj-T z##o7|Z%JQ0`XF!o+S9XU+&i^jauomVt6TP-)_A2bUx77~SW@()67p+r!EhtjKxa}@Rbz(Y5 zw6x|W*o4N>mAh?oyF#uQrlmiIamn|(7IjR2!CF0LtVLZ}#~f&5LP&_Ec)FJ8fGHu& zMcN}Qa~&Xys13o?m2~T{G!gRK6g!Hx=%Q9(LbzQ|Ob=nWcTP0eqkS~g+kua2v6&L* zgkm$%x%<~xp#P#laa(bCQizJGBg8ipUKJ8aba&O+ME_Kg8@3vb0mtHL^wD=XruDiy zi{W86Zm7DReZqq|7uqLW-4JJPN|n2O55?@zEoS5YSv!m+R^~6fAljI}_@Zca9>0F! z1zD&4KWmyhZ=7A%HER3cwU-gEqq3M%f)y(hL6c&w6tmXw%(MkWJxu|aTdG}~zTf6y49i|0*?(GftW=J+W=Issa(ZkVLA#E)+4RjMm5 zVcgcv&EOHW+ls_fhZv8KqFj+9`73d2Q~UK`mz>-jM?Y}Ut&%R8Q2;VkA!_$ou^T)H z^3c1e5xol;Qk^{)^r`xXK&vLYn7jnuq2a>feUJwptiv}i>>=q^K7`-x!r%ErI!C#v z9u5^jb&FfNKNdl1iWjS!n#O<|2pegVye*gSOwDSi_NFi_TBR~sshuwX(L|M{IBD&z zS*bf|N{HK*`vd;!J5vcDBt-&qTf?axA5lGjE88jpgyG~QO>3(tZnZ*LFS-xCe^UQQshkCBg~rS~)GljbVSmr~=pBy&&&iWax4*Qma(gMFYcKnt z_?hgT;Ng-^@Z2yzPWbZ7fYuF+T@@m7YQH<+Caxv;AoWc}oWt0_4QuudYDP!izGK7K zlqBz6H|LfOsCWxZfBS7Pf>d~5?W?H0s2{IM;#eNYp%My(rtBn};>eTTq7L}v_4STy z|Mu3FH-{8AO&C!*-z|}D{}$-KMcW_6jUj!kzgmjv45#HZm@Sn0Ev4SUS>u4@z=rQm z&767aJNg}E9K-(u_dp3FXH+l~)2J}qKcoF^&=?@RMaljKjjV`k*qo+X@ca((T zaP&TjrEQyhUZ-N0Fsprj-N95=w^j}}zJ}s|t z@M!&lp-B&V?;bs6nI+F0?B|<3Q>t2B7G4ELcChW=qN!*E5RQQ=AgP;Xx-;uGscijr z^x2rJzxvha?N)HBLdx{O!C}c>2DJcS4G!FaB}_ZRRebz$bj!ydg9#`8dV(I}Xq(3?-5^m_j)8&@J1o40GCBNs)k(B=d_iXh z(G3Ve;HP?eew_m^ulTJ%iF8vez?$ zco-#mhIBK=9@~J4!Lz#zAz?s%cAQV?#qwmh8@o<>*iJC5@;_VN=NEIaygba=AQRky|X26<;AQ z8@q<~=K)R}aB2*Z%3v z{bPRr>hsrLSaiI>Ztd?wTZ2PjpawMk_D3*kTHlS6hpru3YSjS158rTSysuK-dJ%~} zg<)_vi?I`=GZG_`E=I{GV8d-Mr~{44ZBH<`Th9;emJOJ~tPo{o+Jvd`A< zxG$E;fxR2=xcDP|`g@uYZAUw~avWy)cO>Uafc|RBq*L8jZ`^4KW!v8?`dT+sPN4=GIxwYvE z^TbkxYPsMuzQ(+4{Os>KhoIS~>+)A@5}|bPF-_c=z=YIP9I(M2&)~C3C!S$M+oZ*R zkcpq8k(OgEQ4-zt5QL@FJcW}2t7<9u{luZtUR*TN5_ZfPse$@P))d9KWmJyY8h z&s?u=GNuIFb)Ia0Sxv^M`3K%TFn?4=O_@L2Q|At(7|RCXuQI4in`sYay5^Nf^hQNb zy#WD_atGyCsA3GGB{o7n8tSF+vUYfBG+GMa(;Lz7Uq?5o9+xP`He1Ma;1Rd~sdikqXAjYjoDEn+ z7xCmVt;bEpSDD(bC?b-g9D-y)wO`N**-1)edaB&A`kkA%d>)uzZ_W!_YUhy8!I_6I zI{5nS9e;l4hjaTwAoQERfC-jm2ivDwvXcx}rGC&Ly|ScIKNT=rEZG)=Ri&RlU$3%S zLwfL3pDCvNf}~VdUS=CK_~y4)@3|>;m?fNNuHFCc{zb!XKlj&%4t`;N<_q+jKP5kZ z(__0FDqW?u8Ng<1C{tyyM1a}C*Zkbe5m|>7Z)wp%*#*JUM?u_QK6+^WqRE8w9f&toeEF;`|Ji5FEec*2%+mZJb(G(lB?9&s&q5 zCYS5ofw2Lt0f5jjSCTtW*e5NyED#P34Al4%?es+Z_Um>QT)nOnopi%iz4{tml>&SO zJ+C6Y{c$%zI+D8uMzJus*30WQmw-)Up%NWpZQo@r&)7pi>&1(Epf$S^{i!9&A!66C zpr_3{I0~}b_v~p$m+=vNPs-5RT_}3sdl$Up(LL>5PYvr)^n`E^-j;YhysjmCxHk_c z<^WoMsjaSSAGTNf{L|J6CfaiTtJYZ9U7!C!6ZF=daxoPQ<1$c#X9~RzFmq3}yhSDX zu5+=O2#!Q=d9;nhaKLVseC%WmhP11ZG=qV4N+ylDI%*7?nG6`Zpdtq*ITLMkm$)&F z#zz9x6+y41noTBiDkx(IbzWtKBuAoGPRFmVF`{1zLZRZ}dp`RtW`{>kCW>Cvhp8cU zcrk7&t`8jZj)CVc59-7mq&l6k&p>r+iOy_p z+yeli&$N`9rP9IP4#qoJx>Q51!Az?Y+F^DHIl7X;G2#@X#0?^`bCVr9OS17jrS(hz5bX^GZp$6!(7z?w6m^ z_1SRZJZnD&MbKFU zR>taBqDKhu_@~yGc#u*APPS&>{{8zlf{W+^C`N_XCV?<&oy1&&zY8yV`0USTA6^uW z2f!cq?PquF-`6=6Tm;4V|HbGL=Gr852A#nVfEGMfUweH`QPG;$K^Y#eWnx$yn_1Tw z_HtLb7+27v3wjJhia?Yq@d=K41pl*x8PPA%ALfH)Xvchz4O14MIt3PWaY@sNuNdMI#*hs_5g|{3VnAF%$UqSZTbkLV&b#$$VJ5f$ z_o1hvKfH>HUzHZ~g);@UzVmK2iC#+CP^S#8Q01CHNvBLQA$m8QVTo==Z<%sc(c9R6 z;44dlEUpcI39=(oM0}_Eoq*bydk7j9MW5u2WH~RYR%VEbm7+@!GFjlc^w=?WK=byk zSDQfNm3`|`7R5e@Odp4$&#b;sZm2VqUs(MNijJH912_V{0!My;t!>eFCuTx0rM9Vl zDgd{%wLX7h*198~%xMIman2`4*3CNc{M+JW5XW|i%T~m7mVwE_{D5c^ZgTn!)JvJ8 z`$x9{fJdN4EwL#MugrM-*Gs1lvYnls?2qUq7)?}mqfM+wDYc_5@4SPy*riIPl)Eg& zOSWgxT)6#XeE57!s3R*hW=x2?92x@`MU zd?1PL*3$$eagMH9z2ZB0{=I+HQ0EyN(K5i zqd%FqH=o-79K873hBuZObXi(kdhX0klSk>Kqi%b6!*Y9-gw4n_mE)1Ww(o``cYX9K zDBd=><@AGJKK#d(qefZKvmgy7siA!glc4ujKzFyO7kb7E1kUbqtLZ+o8e;lNl@l-p z4f=?xxvw}FBCz<-LwNkyh~#>$MVNn~oX^it=37w*`Wkgu^OY&qmlwbkYpP6cPL`?j zw9sD{|BNn4k%U5$l#+ajS9$c4af3|Bg>o+2xP8^C?Z#|QUYKkeH13n5 zO0VQN6}2wz^(GRUzxo3DqSp&i;f++(aIde%^!xc(8xO`YW@;)!S3d>{dGCp7cjETM z-Cp7aR9}~%H{!|71x1BwBPb5iRRys$5muY*t{~dN1x#PF*d2wIIo@Lwno`*jVEQr3J zQwrGrdEgQ0;&qqrzIEo7-4`a_wj>4Qjs2C4uWC%YWD)e}OH)Dr;;)V1p=Odz`%4wu zm+fia_rkvIjSF_4zs?WvFzP3+mmgq)A|R-txDigHLu`=ZUQm}tRMW*PDxg5S8ftCO z9)g(VOyqCbmY5r3;2AO7W$q`SZq>lzP&9GOa>7U(N}u|G56c?@{M> zCuhw%`5oZs8SL)O6xYXd)Pv89>&tB>y)jio_xP%veKMU|RdQx}PM;KGrBc!$Smmw% z1^VOc60=25_hO}Sdw8y~{5ZNk3}LRNiP+G_r8&3-+{Ew>kF9iIV5uGlT@9xY%^y1E z@FI~lh7+xD?%{C~tRL!ZkEnY9Gf^AzgGVD1|6glY0v|<{=Id2;RrOhY zRCo1}zS389=jcw-S2}0sAO>@xW_Ta8}V>cUg4> zbrya*6iq{AO6V)hSS&tD z74g;t6@bFm5ZhdYLS>|u3-1wff>6oc$<(DYnRH#&Tju4=;AJ(96LQVn!fqjXsK7?q zteUDkJw6redHi#WkJSL2P#Y~;9O|RDc!Jq)Ni_j9PhNkbJUQLnl*g&vtWE)D2)`(m zlQ^jgDW3ypfegnLaxpg=ft^-hGCSn7DyTh|VlCJ_Y%P*-1R2Z42LW~jc|x=a0umG( z(g3cI5s>Bx+KWUY@hlLA_(Z~Sx5%3Vu+N%qrfs{=L0AOt8fx=LYLyx}-+iQMkw+^?zoa(k@kFvhoqTYn4Z(0?&TVXn$|-K_q?;{Ju1yga!h z({o2<<~#)CWc0uY@yV4t1lL!+Bst*L8`wM@g&} z%3_4IH3Q1yrC2|t{JXIGum`arF%Dncaq;C!JXc=b{L|T(xy`6c6gHAAz7?B@EyPx1o1rR@8@0qRiYB1JaCDU| zAXP$yTtib&j06(b8%29>cxajbRwDeGX8Jh;MyQB(MIj1`k z@&;<^LqjLgs?4I)tVtz&I5sOOA*`VPDF+(ysd$O#34&5UqH^oeqxT`zj$;qp1Rn(d zfsN}$Rqy;xScOl|`REdtF?lxUgE1d_QPk&i5%r?Bn?M=5B4XrC4tNnsA4Uudr^_UF zSu~<$qSro@cLCln!2luzO*UajCY&g2iB9D3^5B`6P2Vpj?jtD4(;cmXCx?G4@m$go zYeW}>q-W%VXs)>u=gcHx$})MSRbS(exA>Hv5`T@}ir+ANR+;-mn5=L0)-*>;2o2FQ z7}V$a3?`Gom!}U7_E0*z@cGw_HmKjDVz~dn zeKunMNDrI0*kP6W$mG7{mAwpq=TU&M121|Op2p)Iz9n9sFL&{t`0cq87h8eBYty^* zU~ZSMMXylkTYOz}aXfD&?FDIbsiq&Ob^`reD_zrWs~j^?51$SHPi3*P%+Rt%ID~o# z-|Q5=p38Y%QV&q#8|mTunR}0lM`p1`sKfT4{czE7D&QV*p@Pb(h+84n#F+?9yWBjb z#Lxg~o)Tz}1ZwfaF?k4!hY0Y<4Nm4p6GZs!QCO@yxNZTOLWtl+*b^Tg^!TFY9g7eR z51rHo94@afX3p%)zHuu1y4s_DO0A~S@a?San)=%^$21=NP>$TU=ExtMMo>MdBF&TJ ztXP;YnKUc4NLLZhl8*3@V>+x6hfc8y7sxeF&sFIb9t9~k%OHY<>EOiOWr$>HQ^%NUn8Wt~4| z!q%xKiX{ovioTK#K#+=qqXPG`c@1Sp%2Wiv=cK!z3o!XYidjv{+i>nw-C0V1|3A&x zx|_m1U9s5_OT=x3lauBgjT1cGix+L}%QqxOQ|1AJkI)P=`8BUdF6YPsPN1 zcF>~15oik>AQZu4kdRq<=@W4j39n}aLfwc62n`L9gv3@LxqFESn^Cvkh|^N)ASb}j z$TSW!&o5l8_l=3j>}sPD*QIqVenBgzxX!d|-$5;fN^?KCrOC4$OR6b09xhJAK8>0tHThZ%!>f^~OD{LU?Gl zu-8YVYBcn}KpFy2{;ef1V%69LsK;OkQ57vCAS)Q&IY&q+rwhtFQVb;C21vhnf)eYP z%cS5rWFXPz2u=(;xw}w4JBkA=S_IYt6d5n_X_}C>6cs=!*<784BZxXBl90%1-Fcr^ zmu?NJnyH98`)6T~f=?v^KqjO^DIBlj!E4!XLuC||@+-kf;n6?|MJ2ox0}g!xWWcO7 zzUF1Dd8XHnlfLtS02YX%0+hn{ zCX?UWV*K+4t;yqW*Z=E0xzhsFczK8~CuSJ72UE|4tAsi3LRq=HJm^o5?y3+U18FiH z@)lS1Dr^0|Vtl3_gf+LA$L9y$y~U3Q00l_kYPXtI_HFRIcrn-~{B`WOPb=+-n#eQN z1>4PjP@X>?YTa&O4>;`YWDORN&;!PM+x4t1Ak2D8OB!`2LRBCo@jxeyk+b2iH67Xm zP=)bJzy^>WDJTljTB{g`0!b4?y1f*>Et>DR2nS#TQk92N55aeNQRFTmf*G(zzuCv) zeldjuhA5uPaZ>oR`FS(wz-5!4NSS0ZCCyL<{2)*-(ch>xDA)AN1xj#io6(rL{2**n zvC1`Rp^>f#5q~?c&{U=fp`0(YfHf*+qioTMA`kASUnF9sK)?T&!r6xAUSWydIC+&l zXg_eP5lm3fzr<57_BeTkQD;|^$zOduCREk7b+=^}0_xt@wlz)aCOPhB^%oDxZnH{x30;SmHB&+(=J?}UaG zT69BhM-ux*j8p<$lG(Ox|MJY%Z5u9Zn>pD{*SGCEeG*JK;jT}Gel;}2IP$yJHWzD& zWOD5K?!IhS+wo==FL?7hug4Z%TG^X7&f>lvJpa+qqmK@KwC&riu9~#{uTMR5?%Xp| z+cdt}Er*1oa{=kT=c!-6kQw9IvlsvHROMyi)s~fO{cP|3)1(LRc8e(}`ks57E7h%B2!O7#bpivO7VDU|2L)2@-lFEqIQMi5>?c03!Ov zIaTZ`VIi~GLq*&pXLjzoAzmyqSJgdo>==k0JAf-)Wm8fnlk(Gmth1sA+!hUWjp?+E zTknwF(-^CWwwv@|?3Ka+eBD0Aswhj}^w?uJ-S9M9SY-M{c=!DeK-LneU3vcvvpC{z zpu4fJ^A&zq=-TGVW_CET2{*g=={{9`JUtMf?4&jo9j$#{gViCmw znp>`U6)rmbpaQ}6NuqP~cJF1b;aUgHM|i(c9aPEWq~3Suq{FRxQl?Y~ zl_oFzgihbdZN%kTojS^R(?!>W3Y!blUM8y1F>-t(09UVut>Z{-cbcWNoZ7*$RvkWr z?eMlwdBWSl&cL-6qsgJ>v=qC^L2_Y^EMOH*uM@uH#vsXoi&w9M0Za?W;d(d@XcQ6> zMwsNtBw`YZ3A)TV=rCOJYs$qsNy8)!n?&l!g94Y5P(;gez~)5fogbv~6bxgiH#ict zEwyU@9UbV+SmKkwXL-=hqm5m zU=(@jkI4aW_v(t9BU|V^pWR)=@^-C#!iIdcigGmNtIGWvlJtgxd3nK*mn60R3RQlS zgHoy8o5sVAys^-g=eN=KmaMASxaukznDPHg16OA^ATfy!!jKMBLA6K+>nFe6W}uX4 zam@%750MTw;c`Z&iE6xc5*^feH8G7=D+ikZHfl0JB4E1fkVkcn2x?>PK8<|^OdP=1 zC&hj77B5bV71xEL#ihmF-QAtyUVQQ5#l0-cvK05leG4tn0%a+-`1POM_uVCzyIdxD z^JbEnWahm|e)ID3e#)3pU2nOX+Eo?GtVu`}NJu%^n6+EtFyGZS6%xGtYZMzSycn0I`d(ki7 zRu}joD5aMQpwL`E*rS`{P1ftR zRcTC@`fwERcpd|-memlwK2q-J6$9-ypG#41u-aDaqt}hWk1^+H2_HTYg9|r7xYUnR z13Ct26`Urixq9gzCkAvGK)8zgBI!`3g`H;e1-0S4g9%@+d$Nb^vzt+J?x*jM73+gH zOZ4>WWx~*o^oCLyL!)4XdKB2N`B$zw`Co z$uJ!MqQ38m5S=4To93P79X=i1nb5au80&6hhCGwjKDJ&T6@d}3;7I@V8Mq@?ES4F@ zmXXjl><$^s-zTny?(tYkjEHc*kOLxyo|JVCG}{IN0EPN^szu)p!6qa_89hikFx2kJ z>(jhZvSfRYC#_*Jf#pfSX_T1)*)hewS#bQADGdo6LBfwloQg6^@={{rj%t}b1j!Hz zaemC^xvPvU|Mv(84qha*y)7+OW*$(J{)Jga5HX%xJYb95|FxgHI~@-ow+Q7Do8Gns zce;2@+q|mO5qs#1U}d+s?YBsi5wBU0IHeMp1BZ-P9jD+Jw%v@`N3VwdKwUqt=iqUp zwaN3|u=CDRNtQkP#lC?O91nlAV?_v(vT*aP;&g9J|{InT1#P=RzTUB)>xGI%V zV16t3Dq~U;mu*YSK&cetb)J$Wo>APORFl$Ot*+=$wU=gSqq5(nQz z?-R!|zlXBw9QUhBrX;Y9^qf~HGJAiqjeOqQJT{K2lfaTpoY&zuUn`$trf#I-^B#kL z{==WMPdg0t_#f$J=6nY0wa0$p0vV(2mOP&=lEUdub?6S{<htOIf;zd&YORK z2&xk}o3%T^I#%PMxXT;oT6W(#Gx~rRUiPK3l6!rg36y{HW4C&u9DSTAKSC<5sX ztwZXC1;S~vVWERQWk0)3>F$;y*Q zLknEDv9z_cw6r?5<;SB+Jm|iefKJb#q32arTv}c{Jv~v2QLnuPNs}rHtygjoVB0C3U|wE22JAHTeja){kim1M>DM(~Yi_ zKL+T#LKn7oOy4!mRMLR6W7g4d7y=IYOYZla`ewZ)ebDZRBSYEcH9T2 zK>Q^V1M+ndO8oVafoa_q5ZU~hv2}MXyzbTOeA&0aAp4E~M_aN;>V)Wl?50Qk%fD}y zY*S2B_nm7VSbqG-A@6Ku>g5|TQ=K_r&Zke>s9&E|3I7OrS+xE@yP*%0%r~12;^_F% zUTvH^=*#vq)vt3m>C#FdzzR_oGLno^Jdr3Mmz>r+s6i>EAv-bcYX=u_Jx$Q}M0a!+ zz&#xik~Ja5m&y4W+eeO%_9%1s8X2A14Bq$(zZR4h)J@vLN9Pswka9qNgzwE~;4v|& zSQ55O$uxeAvAnna+IlNAaeb=+BBx*7CG~DZiUQ~_hW0i(Gqk{+(hynEq_x30!}Qpk*P>7d*2-+t^LB**(WSQiExFho?Mn@m}v& z_27et9|?BDitalyaCp2{BDd^giGrR|vp^O)@!>>iw5dr0I!8*)b&!kxlUS|aXIXcu z;BGsR&Z^`(SL>exSpB`x_XZt0UoD}CsqsA;!W*el(FIyCVPqs&t8%Fa9`5l)ckw(%G)dRlok~Z7>NJeeDU-q?GAYH zV0f02{WQPbGzF>LVJU(DOxoU=-WClouJjHJz+FP;{`q%*Zir!ez>AU7(@9(=3Z~eu zPBTN?@zJ#PK2)hbzPFP;-u?V~ zyv(qEBB)ckOt+1rDfo---e=ux4;+X~X0!fR-J*PnC@8ylwX$Z@OTBtp?xpijphTZ= z&Lyo+Gz!r|bxfD0Vjc>nHew>0S%un@e({Toq_)b_*s9YHtfHaj9}l>`XGzj+0hF5+ zRhs)^OpPxxjL8luAK{UKQ^*{A*xG_!THto8G4X&RCR zCUjdBbL3yb;!57tQrDvUq&C7guf5= z;veh)8E?PQ0m&|g(Ccr_9P3ya|9EE>3ATbOeJnz6$rb=+w}b7Bfe>zaN!Pp?pcNIU4YQ^sa#Z?a|F*YTPNh zSeWcROwNh)F}an8i9M}kw9V)EY z!yaQFjgCk7eWgcu>1>)te;r}oXlb8QY-;h>Sj^oB`2bT-2>U^7vqt-+sa6OEC ziLRq5Ccu`v=ObQS(Sto(mKr+=eG)y}Id!SO5GzXM>U&F;8NzS`0*7y!p-Lm}mFkop+Alx&kwMLQ3`V4ltAiCiRjTcK)OjSKMsD{o@U#O~Qs4{#`8D645sk(osc#4M9<)-BjJvAtEt3cVhp!o58Qq7lnp zQ0TrE9MjmR=Zie;Tg2_cL4o7bV&<7K!{m{Gs#zxFizJ?uuS4I(r8Mm^!_s0S#QIYz zt{m@25zl2KY{o^?9@#C6#%|(&faD(26K?XwHH*2<@xn_5DxIV%zd!Fcw#PP}hDujz z+q2VI&skAH+ULDQ!e+%^3W_S)Gn}5c4rfI?qmzzEQz%eG8pek42jyz>&B(HsgyKmV zv1KdosLgv*pQ}}r{zMujS_s@_fLMlrw)(9c4f#0N8Ae0kW%%S*&H@Tw<5}J?wNxVH z*4u3&EWQ@fVu<{L#$jI~wYxoI7u1ex$K;n4?PYH%;dS=f%(eS|NBm>2hdRyI>Q_jA3*Tb_g3XyGGn56bl1Ci7L0zu0uA=fi0V>qPr|S? z8%f#OnuMR>{5A6@gzF_$?jrnatKLXSt@P&zuV<;eZK8SKBe3Y3qfLFs?ASM{_h}vu z%7=({-7EB@yG)Mf-Nd%52P8dvhCDhVB?9V#@~%VfrT2$J&znh0wyrAadHT3an&>(dK*6$Tc2@R}FB%g0si<6OV!mNNccs81>lCn}hPL3>mbbRFT+ybS34WoJ zl#GD!wIIQg0D8i>f~md(_k)r$p{1YuD%Ul?pf^_ zX6~E0z^wjK8m;exNay1r@Y&~9MxT-P5kW)#k2L73LJ*;F*|`*#`=o?|<$ncUgDTHx ztEVM#A_7}1w{2*7I_BTu9MqPn{-pBH7^QTr09LT8PMIVyMRP8bGHX`M%zFFz4YxbF z884Yx+a(=q*k||Tni3GLb3ftpj%PTy;m0ep#E0p-G0F0cuJUUB;}1;|O&h))^5M?z z)BRk}^TiADzVA0&y5yBSb`hPKm7d9`xJhd}wV8U`k*%EHugHjMa-AfbO4>?lndxUZ z`PWJMg-8CTT*Wp+f#F7l9TQwhss{{`FoF8eO*Or^_UR(RbK05N^ouxK_!HL=b5z^=U(y%ulZXC>UjDU(MekWzK+;TQJYH;bzk6`YJk#TkxDg@R(mv z@ce{daERf2%RGmbBRk;KZ2NOVU)9c%*;7Cc2)6k25TEXY@k*W4@^{o?e_hD?>ly}C zAR(sH*jp;^jCgd4a?B5Jhy+_+`&s%L=-Qy5L+of8rok0xgrsc0B&w~D?3^Ya95 zqKU#ZJOww=yJ2pglAF&0U}m18n;6%yFi#mNGyqH<`9=yo9cF_R3Y3t-D8ZYJb{O(O z^dhAKrNLNNHH*>IdOBO0jvSBgro`N0TY`8JR(J5MTlu6RUj9bXq)&n zG62?x*g`S{@__-{0LDlFEFLk0Bt>zC5=s-7Mry%o5DQ3Z6n7}GG{7Q~4@Qn;LkWap zLGUeNnukOYMMxf$NGJ}3U?=8u2!M!3vY`0yF~jj?VoHbj5P3*0l<+-vIDr=I6mgBj zL9yK9JrYJl4ZwB~r$_*btZl|iNjs{ zi@8xWc~hvODa>v&dS%xy5V##Fx~mZ=xElP@v9Tl)^7AU$MbG;iDC?g#S*p)}U zk&aH^wLuAmN=RdrCeFef_I!}ND5+3s2%1F#AME*_8nOx{1|hUaYla%^HXxT!G@(2Y zVvBSSsOWAHavDVy$^{|XNjrrG?DiqIPz<4b5Wr44BNVV3j~qgg-gAZ%%A}P-wRUTe z3n=P)?r>t6bPFioE;)+rULYK6Ajx8=c~2BsgyOju3C9^o-WfXG10du78HfK7Ga^Z5 zsC17HnTO)K7kgtMP8$D?pYr3o>C$P2X=RmrzpTZ$0Na0>eFCN!Uqf{(yCYT zMiV+E_`09TH0Fh-=Uy9YxH$gHD3F9}b_kxx^}*dcBu`{R;N~5oC-Qgj@D3UJw>WTF z-#7Gf@o+0&F?!i|a2;PEdii$UYJ9yqr6j`o1v=qFLy5Gs8uCL0iA2rnAZNIQu@Sk?h<al^~c9=iAP1gF~IQ+3rl_ZARw z*hy7LE^q=TCf6-EEOqcDN7y7_j@ljw^rrH4Pu@#0UKV3C;vgLRb=d}4Vk{Ez1BJ6A z)gv+(#8`?CmV75WVtg%Aeb;@a{^+h4(QRyI{<^o#ATr~pcG>jLRc&(P?Uu-0X%)Wn z?WF!8wRPShGd8JTf#p^ssDAC*Zt-KtcPmP8IoxZobtu#QEL>H^fQ}+7{Lo%BgubT1 z$4#(}BL6|?>3YF!lzP94x?uawUhuNmnEzDf)s*inHO~F!ANxjVN2BJeIW<|Avc|`k zoJtRh4YY(w_g`e(*S}f01`l8Q>6X z|4wbum_Xk^Qhen%W_e9}6GH%ZpP0Z_?y+8oQ9BobcWhAUR~Ibm2+LrJ1!~8%3=)wO zoOQR(=^4-Yi?0j7Y{LBmMnms()tsU3rmIIt6K*vhTNzvqqk;O9XBquYcXKEOZ$h zRi(M5O*L+)UNkar%8Ie@C#T|=?BEmV%j7HT^{x?lDhIj=5bZ67^s>+n z!-?0rQU@!QrqS5y=$f=u#vdtrbUqZO)8iX0ueL`(OEUPrmvZ; zSu4a)p>Bpco0)DQI#i%Wm#I1S_$cHa#lyF~p}e{G_x z%WkZ84xy(~FTLFPnYHMjzxSTmA;`y>`J}eOGYw$a9JRk$=-?JI)jv+1>0>^htI=Ud zbs}|uwcp$9P(jkoPU-rZVMKLW<&|6NSGEysjL`$c5tz|9>P_x*oy1Ysc!Hc|Q!Bce ziTAH6y_w%R#^+9R93D^~t8Tr@XSs4ula!EzZHLdy_VhRg}2h*bwb8A72kDc*srba5Y0t~p4vRq-Z=g~ z^)lLlyt8-UO!f5U<$R^!j3b{WpK14!1=G*T;83-(B0(JvRh}>V?j<%;OOqW7e}}ab zM7}kzHFWLwu|D$>NK97rjaZ%*ey7>qs0bvG?4_@vFjbJ)ut)qQ zVDgeDLQ&SZ-Ov4f2fXpOYbQzA?f9)x$&ZH_*E{co2|v)^%5iYx4Lq4}PxJFCD(Hfm zwCeIuwWI#0DnIXyjv~TkcE$L$33rB@s@1QF4L^AKyN52d@*Osp<9YUg0&t6lyhrA` z>^tdfKdYl+Gy0$9UARN^`EHQRM(3(l|07rEuMT?b^_`oDnjeM>*}ph(n%CSZepc&u z8fPnM@c0N5ZH&ui$p$An@p5ZO1G^wBgHwJ+-1j=uuZjmQ*vFFxS_3z)r*yhTcRJ+L zr+919y!)jVx}yC#%e5R4>W(2*s|p_)T;u888s0B(jgDWLnF zRw|*+A!%Mh!Q^#k$@?Lzsfc^IegX30eqnL&)RKQvw@_WLzp2lUO#TJGXi9*sySsCg z%gkgN@s{G2{!s3i-fsYo)kSrFj1NNSU_=4O{BV ziD*uO3ed6Jma8?E0ja5?C*`0X=6@;QKIlp5Vd+pR=#ebhh8$&Mt>lr@_A|{n?|S#E ze#ta60<*g;esj?PFMo6434S?ejK1|UEk{hh?F(7P|7ux{G|_J`t#Dx^v6-%ZHW%t| zm5TSal1uPvc>%xC>k0nT?N;-;|NaQx%q;1tBe2#a@rfoeTU2;1Jg=zXt3&=jRX0r% zB3U6!rixl&%=y}?kemc1Dy-`YoM;jqPAV)>JEzxh-Ksj3%Ky3{mi97nH*W*ha$6p@ zENy1I|0VROI4Hf|lg1{uQW*kHCru5xp{ zOVwHfVOdUD+*8#+16Uu~b`G*BHh>Mx_1z5bf14tdeGyFp&tbxqCs7Y>hT*zn4u1C0 zB9Z$_2G=tq@sq{-uBXD%i)y#I4b7?Y{stqQw#79K_RcEh3{>%zpQ zt2MO)?&U{q57wJ9ff_QGFc$>kl(=KR+g*VAf2sQ)pU?~Oo1D?mo*4+$ IH>08b4`|GD*#H0l literal 0 HcmV?d00001 diff --git a/frontend/src/documentation/fonts/fontawesome-webfont.woff2 b/frontend/src/documentation/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7eb74fd127ee5eddf3b95fee6a20dc1684b0963b GIT binary patch literal 71896 zcmV(_K-9l?Pew8T0RR910T|c-4gdfE0#wKV0T_7z1ObTv00000000000000000000 z0000#Mn+Uk92y`7U;u^!5eN#1yHJMdO93_lBm5dc6WY?}?kwoQRxJ870r-=0+y%ha*vYuUCUJ?P7_3+uzWik9+_!7nxs;V)%a4RNH^ zc4m8B@+|{zEa^4NCck}}OyG(NDl>kjf{My9O=ulWG&(tIM-}fv z6A!D373NE?xA$4-m)kO95k0xyK*tYODl4ALJ?*1sxjWyV^(D%2EPtO@;-V@{l;!qur0sm1n1+kORV!d6824Ou#3nIYjy1X(qjdu#foYPG3KvYpHl^J$>L@W~;6gmmj7y}hY+ z*%10elngK%mf>)kmtk|3oM#F%vwyz-seUsri!-}CbFaX$3j#~BowRibi*&DU5|l^-9DojV1KmJ3&?*~yNK2{0#ZVN1ITpSs z)hb)%mHH+owyJyZ;=@2|SH_isxWXiDHvg^j1gB#B94B6P$PL*D(x<}Z8c<=-s-GKJNgzh3?2GDRN3z0T&pzuKy5 zEZSgX?$}|6u@yprg9vvZe-G1=dzY9MP9KfI`m zF9dV4DyyHdvHNuonakq%Z})dn-%>?ILFE+}GmvqYT!PvdS_xd~FC$J2OUk!l z%#~<%=S>TDVW41I*<5F4PW=Cb00Hpk(YL$<@W$Mu>H*$ccI?5)Ybyi#10WFyc^d*9 zT@NTbOSECo`VV?Eur>U~%9S8~$K91%FJ7^dkl=ePDPVU1KT4Jdkx*U?+GziVn*ZNm z5Ly&~RfHJE5TKH{G%~ix3^0v@=3$)LA+`D8|9u8QJP8m}&P_bPBfQPx@EC?6#+x9u z_1@$IZu4!I$0sO?FCpgIyQv4-cKPrfii?1^7rz$?-~k8_VYCtR5D9|~OhT-9L7|MZ z&De)b9BvT`c?5=3T5ZKWH2FWU$uXUn9o&g#QBPhznSb=-(SMJQ-jlvWk2wzDF+&Fj zixv%P5LUoIrnI-)X}9XCEb=T(;%1}UX}6kK6DwIl!(PUnZ zodpVo#2~T5(+Y{UT;*~#?fFdq>}+jWzVpj zD^#_xDk=o!(`H4DWN{OkJvuTv8G>h)GALN?mvB`^Dw6v;T-*|(!jWpiqsT=X5~if+ zT4dex{{WPu<$a27AAm8mrz`uHrR?V_Y-t%O9ovX_rx3$c&hVA6Bo#2 zibMgz3{CqOigan0Pz_xxP-+aq|pHZq*@VyYNgA0bOntBr=*fq$trp zf#s#7I(cL%p^{>X@XF{2lg&y7f}C4Q(;7v;kT#5viE9Wy&5+EwCzjj)kRrnuIJn~d z8SwB(@QWf7H*Au8PaAU+2!v2Hh)RT(Pwoc7+>>S!ny{Qf_$DcjfMiNw30-cw6_;oT zX!TY6tNIn@lSpj-W&ED<{KH5V1Bvl?jGsC z`Q`?Ajw5S8mx(Y~Ib>C?OKO{rN|o7DG{A!W zKxQzo9Pl%yi|_Dq0=LZg_SM&WL6iam@eQqQ_k1MjZ+}l6>AlS+Hyy7(u#cGxs;~Xc zJcK^~TJqb>FOVsX?3mj#XLSbATwbev44iR1j7dJ=qq>QRaJ&shK$roRrpOwmVOFnY zk<*Uh(7UD^95cl936EzFwE$se_i4K1OLLI3yD1-LN?r46eN&0ddyx{SOU(6ewwp-y z=bgwyta}0?KhM+53EWKrej{?$(j>QR0C<15+oE^SCNT(@peREXs>Rn&ef#7Ke3=oA z_V!J?3^qY9^Dt-|LjYLq@~~|4&@Kf}tBxjR+bnrrG#1y_4jcr84UAJ#f}xkqIKI6#y3LRuRw7X9+t-{VpMl=_71_HYDN^Hev z?aq{SHIAAMAK#cAZ@TV4Y&A1-Po%t8GI;;ctaZLWtj-=ynw;sG4qs?4H(YmT*6N~l zH@miZdmd1TpS5_9)aPnNHa@sq{MO$URk71S0B1)Mjjh?ASS}d$zvPlj-z?|pt%Lm2 zzKS4|W17$mRVh*>SV0&JlpMg+R2#D}vOOhYGjpZZZIkO}V!Gg&iY5%kZpc|zna*gP zgL5{;u;|*d>#OP*xi++MzI-X5GNr*Q>*NnR6PnLAGAd>V^I52JGd=sosl8eXxHT<4IFVcG1Jv9|5oy6{Yrq88XTyGE4pP*}UJPOtX zdw({brBa!E7I2Jbj;;<5E9Y0+C!V>!*^!3nZsTxfR>0XAR# zvlqsjOG9K#ST$fs`QcYK*tM-S-&eu}E0+Y{l_F)N*OU@VG@G?yO{q>vXdrgGPAQDT z1p`ir8s`vmTh}V{W#Cc2+SHBhQO&7nr5VO}L2-jdJW z!tr90Qc~v%E((!#Yy5{nWaqT?G-%Ya>CM2{ts^~}Yr#1*_;OX>9e5VMoG^7yp5 z(Xy!snhKviAS%84VECkXgF9W}aIB?NERQbwm%<*G5pGX$6?aTDuwawnI7ARFdC}ak zwed&n=_i^jF)t<$tNyi)9$PBJQTc69k&a8Dl`jIiKW#tY50ZMs|;h8LrF#Bo~_5egI$UBiPF#4>~$OIauLay&K@ zX^#xuRO#VpcrY1`4~4XZi+w@)h6iXa$suYibVB&I&r|796R_bv)76ptIS^aJ!Hre- z&kJ;ihj52R-@c$m@av0uDnBbKX=J;vziLB13U}cY>hI`p*5V2JM>k;D>m>Ud*xWKL zy!2PNqc_$vf|DAxVNpw}N}ne(+{xIG{Qio1NuhECG{Rn#YK45b9q}Yb4TWy-qNft> z=p~-^>r024RwC()MD7NG8{Xh5I9|sk5W(lqU0TH{h%Vlm`_OrJMaM>6qFnTrT<2@1 zShLW`*nRdGLad2(GqOcS-t4k0XmI0X2&7uhBgt8^#|KAJq^rMq(HA|DHj?eHH~p9< zsJ##xGHjB7*|w{k2FWBNRM2XtC@i2wpP5^&fSm7JZD$Z_S=P)yg;*Mz%c%JDnrq@Y zXhu>|xV}M`lyN#JyxD@eqseVU_b-SPSmoSmNK*OU|sZ0d(*s%Kb3MY;B+8{X~j1ICPM?FR_k_x$rs zikcbS^{mX+pp4uXN!aM+aB$&E7j;}o+bpAe=_-JfaOWYObIP;0oQb%4wZhZZ?A&8s z3(o~>k-Ph3m#=W)6jKPlVe3Mx}X#Ch5)4y95VuCAzuMi;`fhkJLI})p)z-c9*Zwk*{R! zoFhPXr1LjY60$HcnO7gNx5%q%-p$n9z%uzDO+?1BJ6cS!N}@$ zJGcJ2rsBMV1>n2YOjmmk5Sq0~MD?sdm~X=x<7Q$sHjn7=x@C4U0nRrs1bUysU|FcR zbgqNN0=2AlH*qiIweEX0wP;_5sLalehDK&)%FzEI6qSgmk4e6N8C&jGXzMeg_S%~J zRJ@?BZ_x{Zs94*~@=9QSz(Cmj8=iUFvX)AQkL7oS)k5Zkb^CUp00S&&L2%lS8t`jH zXee`KcDjwn-I}<7xc%fMfgCCiV$+F>0cy98YsQLsbm?uz<; zo<<#oY6S1*plE5h@up~87iwLuNzy1e-Kdd}|s zHuY&lM)(BZFh#4}IRPZWvmpH2daniN3yDPC4}>tT;n@|Wbm2VErvS_Kj$`P@K}ip+ zf`3{JnNf$!C}RM}moU!-pO@e&*AYAeQ{sIdA%fB#`3{>TXGxbxLj{S7J*ih~|= zOy!4Vm0Hvq#Zf^&BBunwW)*ok{~^U1))`tjSG^(i!*>nuRw=*enD(=Z?#ANzcotCv zb*U(FfANyZ>+puUc`f;XNH`dI8QNwZvNNl2lXE*l>9oR7*r5vBlWR7=!Txx6fiL+m z=kUhG9zyjtG;L`Y^U3%ijZ&J1kkDL2FqBu)GG!14sdjiW`|$Gs9j~_K(Vl%!M9S(Il?dnH%lK zv^Qmpe)<~=rHk9>Jf<=MHstZ;(2dh+{@Xu49$dJx&V#=)>1QUuAYmLL86g0cI?DaY zOh6jD6{PTGtZk5jcXGR0X8dw+GJi}7X?t*!muZ?)4?PTc9c*OegpGws;aIgwCPAcD z*6rRKUB)oD)Rg6GG7^;_<&-LG?f<`0<&Kto>79m(+r>#b@~e~<$#;mW=6xGOqvh=+ zHm81{kAIXL$su|mqnh=mFV>$sfJ=Zw93;r^s@!!ScUHR+&D(Ab8vaBRoka(M5^QAj zE`8}Vxa`@mJjrC093k|D-b=7(wJRf+)=kM0&ER869hwSAS|gJ)R|AJsLPAhc=#m2zRBr9#=dK-oESBt5vPq%@>ch>>aVi$+hP5ap)n>L^QdM6#4tB2fav#1q1# zx$$sPBk4N&Q}6Haya>19_MI)nR`AXS;DPUKV)?LdJ5IJ0ZcS`3QeSe5(YDMIkERg7 zqa@>FPgHj(cp$}6b=$gu>G0gfJ38<$7~*tWdv^KvHkkx1Y+@NtEWj8letj7%`{!uF zV$0JpF~Vqrtc^5l6AVv|ftziV%hV2dQILX$;wbSCO|5j0gPal*kg$R_Z(t!6zkx?6 zd>suEuqruqYEBHY7sB-7Mq0M#A5lqcJ3RWTAvBAaBP1;aSL{?kIdWl@q~%@sWga43=cx;YfCu z(K3u|?K(`;LG)Zibaz017;IzdLFE+;_v%M z$j@^#eua_G}wUL8&CQvDjh3$X~fN!g2m)ZXLx>x*MdpbI_$dv?b4n* z#ac8i+v39p9*XaiL;ezLHLnSx@c!uFe;tpsm7k|K=J)OP6n0i51YB67LL1YRphO_- z^oKRuXAe2ob??kazS*H?+uSXeiy&8O0&Od}c;T~DI>g%o_i9o!LWOIHf2+xl)*h_3 ztdVz*9C9_W*sg?rCJ5*CG~rCy%f132q@BYMu5(Az%KMv)-NG9a4=f`$mPg`l6F#!P zPZ<&8!tnR?%dcsrghb-8onSH^PJYQ>A)>PqIqy$W{Xc5O;(soS>ChUz@?T5*FvfvG zZuH=*Cs&V4#M^A5sQFo-t_B8 z<+h;*v9>%Y)uP)xw-0BLC4iIrWj^|=Ie_Yy`Y-FzB_{*=)kyRaZ9bq9Z2E+lG>T#D z|0T1Y%(FY@o_S;@XV+>ub(~KCjfj=C_GFn>k1%YF_21e|>xET2xUCY0|NkVY@u0kG#-Sl=VH%hbHBe^{(sl4NHLU zD8NmDr|>yRz=;t)h+SC}ViOJO!r62v1P4X74q<1TMzTn+^`J&|?L)4GvhotG)@7AZ z5Tnju%xo$c1XJ2%?O!ELvAXZ1y6l`Ia~5dZI*SvUD4fnroK(lG`J7SCrPK%L6ako{ zm?SDzng_F1t1WTm(!bn`7;DnkEuHzoNuy525+N@gj-`s}SC*riDpHf8YWdA7R_Zxw z)ILVLRN+KfRWgwqJ2O411l5=)nU;bnQtHvFjF<)V<<|_$c?Hom$GO-M9`eK%LwRnX zM=gx;$^G~70;LGI_9Z-*Jxeh7~QK{bpC^=PxP zlVC->h_tUEiQH{5IyzV(syS1yD*!gZzvex;nGzVclJig{NzCf?5$0f0%D)u748e6b z57~b>^5?bVFCA~YIH~eN8n1FoeqN4;qg>`pH;5R%rD= zF3YkjVON2%t4zzL@Xjdvum@jzOvSV65vSfVkk8Gpoz}Fy609-EVS0jO=iQ?q zZ!+E9(8&BRZd|!Cg*+r4&!zh`l{6T_R+ql&moQEoDx|AT09x@^mGhBQV34MD!Q~!9 zKiige%VjLyhG-{i$O8hNC@-Icc&~kc6pweWk*VxhaB8ilYqf=6-gL^Ui+r+KM9(wmrjp5M>BhJOJa1#DEsr{oi@^*RmVy*2hc<|b&A@g6(@VQ)cN#1`wse9} zvjNA?{a={<^fDE=AC?m@`(0UBSdq$?jI*lIDqdGnvG@C2`YX2E9BlSxA>I%U@PF3(J+M ztfsBhx8>NCgBL2iNgQe04N2QIv-#QW>WipmG0+JhP&>pGMhK-H+qBAe!+8&nE9_C| zVAgmDG59jeVipd0hR7a}?|HQV(M+;uE{xme*RwAyKh#=_(~*LD+IOpIcYlB0sPnS7 z-w*BMv$9OCf5AkUd2*+|b9Z4#&aD@E+F=P69(Ggn>$2{hO{$%eki%9IETpd7G(C}B zN)JLv3>!n#Ll&9dD_H+4;|TNqQhNw}IkO<$6@L;2(?m=NSan0+I1HJuM={%_Qn3`B z;L2s0oW2#|;-jA#mlA5ZZ3PqGI&&1l&qv;q;L)SrFM7z+247M@9 zE5ML(Ue^|t&K)hSe2#AIU{yG1^yM$a?j}6@ZFI8*jYmQp+T7c{--pv_G&dS$gv{thY@% zso^>8Xp9xyfulP5A z&Ymi^Hn37#N2sjTp*de0$89+zBd_{yiY_M}`~GUBa7Fb=MsDw!F1tpi(5&}upEV5+ zc#Xq>$$onGLc^FFcAhOHdVtGM`}h7k8a7R`(=%6FW|`Ss5@(FDb=EZWGUcaV)q&lK#75UB6X!8(A%gQm}-A0g?6;8(_EfrEfX3UsLXma2wWxrNT zD=b=W-nP({n>QirDyOAHWjQJxUoBZjL`O*kD_E?O_>s#*zv61#VX`4gkw5ubae8XXRy-$pT}F*%7So`7 zC3LAHOQxGfDmQ2ZJuunSVj<5XgWR}fTA`^|p3-BX5Q;VpLkM|`H2x{t^HWG9uEnv| z4MUAwe5YvYM3MqeI?L1db^3!WNs_!W7Y*u;y|9YP3+ii0TycpPk18yl{zX4gzfCwA zMVlxk04U0ycwDgu@w~zo9VC_lAEQ8NX!cpBG)%`3DJvzVM%emVC#sf#_@f>{@2fo1 z+E@;+GYYja*7Qm>d$50OqJ8Zn2Q@}LhaQR zIzTCNR0t)^CzB(B#fa)wDdC%%)Im|(skvm3^pRneYzv^d-wp$mlt?a$);UD0+)+xK z=KoPx8jF-oA(g@)54w(CDk24y57Umjnk)vk;VLPq9KPD&aeA7F9Z*(CUU8$~S*aZQ z%Ed{=Qg}MSX<&TEl$$)1h@Gg++oAO&rK*=!i@rS2L^V)m&O|1z^m{NjkU&sDZ7X>- z7muSSBBBaY#cR<-sFAXda`f8AV7zFbch!2eYzVdH9Mau^DJ~^pNdDdRL12Z7x6mLNG~%JO65XGv7phC=n6oE> zptAKH#9Fl!n40TS)UFwt9BRR|K1HvL4O8~M6|W79PTYWoLV*eL`EU+%#?}%F71I;R zr5;USc?dG8q?>J%BYtzsy2qHJ0viUI{?qoER4bWAY2lSHBzFrR_ zy-Oc5B?e;KgIujUDaweBs^%CV;i6Dt z%E@}kToytRZoR;{r20VH&6n=3AoQk-SU-WL+cJP2>w;Afj-n$*^x9#YrH^NEhSX_X zF{>d)s!AhNDzqTZW-p-;w;)CT*m%m;PtY1qDkr&% zk$qtlV7+&;MJ3Zb$si;3BC7T73AutHAhS#Egpy)22p?pwC!9RtHH90YE2G**2YObA zZJlg#+3{rBcg5YlBNq049((6%9{Dx2i}LOpae4d<)hvYeJ}$444j56X*w4mHa*)r3Hg#W4PGZc`M*l=Yl!gi3dFvo+kme;!U`i}0K(dp8A3-nvJ zC4~CbGpb+URm9O`@3w&8B!6Od=LN0X<ezUYv~I*si+OJ^6Ro! z&r@lX_@lQnqv;Gg7lC6C0E943?jzaAN%2QB7kg=Db(#PI{-155Hrix1Iu@Nk(lFjS z-H*j5;(3s7;N*_3hAAIaar+XD1rCx{x2WZ5V~QQZO&7%UF_-hIoe!yHFTtr?(K1R- zBj7=rdnPRSB3PJ{lC*`fE+KJiL5>V4ono)W4unO9)zviz1g#vK4}pg}!+`mV_ZRB6 z0RaUH5~LT|tlX7VhV}s+WS#Vama}_70BV<*1_}fO0uns&&w~=9__Ey&@b7Ez=Y{}I zb$fv)4N4a6L9Tzpgx|j)b6a4ugT*M~@mhZ}syCdTwQ{_5itJHj7L2!6t_r(Wsg`ZY z+^$etOV|M8?Qbn5GlFAw`_Q2u^Jf64dtqshX!mp7E@MAqgpECUKnAJsrQ^n>60OfN zUg(2JW1Q%Yty^SqqM-^6GP=G1o&moPJN*5Sh$0$ZTV&f6*gVqHF~#60aSK#+Nm4sylw~t)AG~wOWa*ZE6s?U+4A>TiB}?~)_os;Fn#93B$sHiJp~?P zZ56^)(~>Ey;V6_<+JJBj=HDoMV~3CHdi$3#f|u&ZT)_{FDSd73G@Y!W0)G zRjqE%p%JNR+KafkBNAA0gvW`6t)xl{cHXm%DA&v>x|TRdjIf4Y=pZ$~={Lsh;m)M& z16#WbP_EkG%BW+Xq5klP!KFpxN7AaioXv&Oub`j0Tf|o(2+N@g*1cjV2&U5-mE4|6 z-cTp39j|Cz*a2Fbz($2H|1JxfwaHxp_B9A!3u4PTVYW+`Lm`kW9x23{Dgp0L05M$p z3%iOk#QsVhC&RJ{LMN1~fu+zKhL_~);SVYfd-7X98niik3~^*$r^9gBUY~86mSCG0 z++cPS?Q2r#i_q({JZy2gy4<#}RB^!0gk{VKRi7?npdB&1CoAud&Dl1`?lka@!j=Y2qL=sQ2Ky<$JdPyXH^N!yOG)>$o?ZCJ$sIsf|Vk zmuku-n;a0Gk{Hl2X}*3+4c;)gmP?`Qe!6!@{zWbxbiVW(|}#%bw<%R>0=W6<&xuB`!{*Hy()Y%2&@I-@!%K|DuEL^Vm@6`Q~+2kMgz)t z%O@bmdx_P=5)4rDOrlGGm})M5DO4g+;{+C{v6R#sP%(n>Ses{Q@*}SrFB$rTUm(8p zxhE9y9$r?XrLj|+5yo6OESGZkkp3jIHC2Wfg60wM;WQ7rB{iVv=X>R6X!js~a|k|| zaxU9QiJ<77Q7)*o8kGm6E)8HdUMpB55_P?%hT*%#_nSE%y_mk+Gd3*S8c?e38(7awbfK^z~Z};x7DQWo*IL)s6gm{SgENK0Z!AHb;c(jq&zY__lQ2 zkOuV)S2$QzWN6ULH0>(C#?q?83-qfLMGGd9JY;B0;2Rea)LEoXG|Sog501{CZhy${ zZMe!as=son;=|~D(Vic6q9~n+OjOPCwUL%r?c@fYVXv@s+{{cSQZoXZs-GDgwL|b1 z;GqKtdkZJeY|b>U;eb|Xjjq`Y;u%J?M{V8p&7xV8p_Cu_pdek={4xh`hDN!Iqjuzk zY};^m$ABU$-S-S2b@KXci|42VxJ-hp)@bm?Qj1{NRHP)ddoeR50-Shfs?~v$O0{0K1PBX{ zC()8f7^%SJ2oV_|q1sD*}^;7XqG8jw^ELl%fn0r{&Av|rml;t%W^%>`ynr7qmy zMStM9X!MK51Hm6K(T}G)oAPjdIOH9hN!CkyLW@#Hu5wOgA(7B!!oJCV12YT(Z1}h3GZ@<62 zd~md_+eA{`DB;Qh_#F!nx_#H0!Z4Qqa5OdIGwFI8g2O3+4rh7xZId22a*+>?o@d8W z*AJ28mPc${1u>t2quHizdqrNibjxni_illCOZq#Bngpd*3j79hz~@aI&x{tD@YKSjx(X4d<3S_NN^!C z7UbEf0?HfuYdexfc??vOg~A}~+yJMP^5fRQ%cL-w98K{9gd}DJ0#M?_rE{R`b#8Jj zrK+Az1jnyjEj#A^W<4r70I>zeiMn{Se|bhEd+pX4Q}HV-(45BrCVuK{T6SQUuReOd zl;PSmztnQ~AxsFAhkQg{o}iY(8&&Q=Sr;QF=}MZ4u7?;?==O)W&86R;7f-9iVA4JI z4^)nWt&u6cEOTPzx1*F=_SlE#Jy6{ixuxigQ9ip&hb}~{qfB@~sM*7znAPkDsh8-& zfml<5`*bg|F@9)mw&Q>jwq5?Ays~S3&zX+3_LK+rQufgmjfMAC^GKdDC6mzVbTI?L zum9Cn5KoDp_R|0*r4nM^V3L?pK*s`m?(B5GXM&oX#AieHzPd`++QI|$ohoQphJD;?Nm2|KZ+S4XvIHC(KTuI7DzbGd-~&II_qb#CpM zt&$0*LxGk?V{K_ScU?ZKx3o_VwVWP0>1%I#xODToKTHAaH?<_0Bthm17vd40Q|-g< zT82=Yh02%6d;$H^B==J(IyKCZ|P=SSHgy2yF|YB{HH{tO53k3vfSG4W+!-q{4cp83-n0L ziV|y;XUQUi=D~TV5!>=spl1qeOBh5CTliiPh6RX=maFIS6 zl%SCGX6jb@!3#~$_puMy=D+Pu6GMWBoX?eeOtj>ToX`kd$2IuSB!ISqBhR<(ybl^y z-(cixS3ARYivJY1OtHc+&dWXezxYikk|TB_wuUAmn%#_@fwn7bcYASY&2_fhHPz!o zc#*KVbPQ40U2FViWzS@nvcw+CE74LJ*{6Y z=uwJYY7ToZw(X&xO*PjpSV@@&hPwFzVJ>*H5pFg8N3YiG2m5b60>MHsIe6Xwa0&ZU z$wVq^EQr_bm`f0M&DXx(Sj=aUh{L;V^J8cVn5S8A5+4PZIswM^f_)itMr;eNBxz#H zq<1zfNDf<~J!y`$F`q;c?SAfGkI_f^5T4S^+Jao^UJ!MO2RLq2<6?5_di6Q%ON zC=aBtFDxTb6>G-g7MA z2^@hIDzrzA^Cqp(DthnY@4g3<1|>1bc*UBd!14oc$gZ9C(Ra(hNaci?%nEY8nT>u> zF^-<4n6)`P2|K1P&pN9hm^1izx2pyXhh~ABj4DC8bV6U>_sTF#4JvOh&wNvC6$l@3 zHF5O$y^ETb37|3R#=h-3TsUJN>Z--OV2bs^wtgKdhl|161GN{sK#&ZWs>^WkFEgK# zB|GDnyE!oiw2cm3LFE)`L*pq*$zI=b_;tFo#JD=ctF!P|POWG|DD z;B=Zcxswi59dzM`=%=6Yg;aTgUX@zTP})?`3Mpq<=9Go4DdQI;jFi&~10QLg6tKFH z=HS&5vQS1delM-p5>3JCs@Ow2XVLL!Y-CcJIF}oaBm&h^Dp@Q}Wv9q0tE{lrS~)%A zT1I50i)<{KJBi)3#S0h8N=at$!NH+3SXQ)0;qJl4OUs0`1Bfb!%bdk^Rle;46)TPJ z#P71zcGXU7X%o@W?7b|{+8SM=gtBrSe*!Jf025sD7gjH4*>4=AT0P%b%a`M6WqOPi z!K=V-d1*@Czn%t%uo=Z8srYr9s>^y!?|iQ4)-S0(nt%33X~zN1wcu>}FfaI(fMT>clQ6%XDJP#pJa|gx5_zREr-awknAn2FqZg5Sx{Gsc?B@RaFJERnzT4 zyWUiFiP0liY&UC&`T5L3vRXX9E+ypC26NrxKV4*G&NAg&3xk``jQw-+P-@& znO|mfL@m+mn`6s16ma7tqsB}u)-c*ei)pW8dZeh}5-OMKSp0-5WAKMt%)MBpCrefW zRJtrp>l%Af2{F@JSF_efGsya{;e~_&lB{%Q-GmHs%?xE&h^G${W}!GYP)cf^&!};~ zdzAQ)2LkI0QXoIT(_EaQ~0}QOuG7k<=w-rqdqL7*F)-PW+NWBRU>@w z!B*fS{(Q5OVNi2gW2eZRY;V46zt){3r?G+L6gutli{+2B#B?hq(PEY5xk(agbXp^W zyZQ-M7bYsubPkm9rTrYeYt1>HCH8#tQb^^A(eI=!-gZl1h4YWj zJZ+ zFM1g15?=1r_o<{Egn;CDkWoyIG5dLey;DSjLdCj&DZtS}b*y7)XHHD*Ilp2zSc6rn zj6dA7yhu`YJ?uvH!m&{s&+aKfjN$-deftu3O1SEsV~ntR{EYV?)IO2fDp-zH62t-+@fPtu zt4)Rn0W?;-0QBOzQW-O$0az^2H|3+j*954v7dJKGs7Fz7ke!?IV0@6k^$Z@Z2NBNN z8;=e$zvfbIWr$r53S!{>Yoe9a6`x%?8@8;R=R+kj)Y2)KzYOLah!g;a`(=r*%O20j zs;F}N4=0%ejIC^_50xE236@Q!ViZQg|EF?!WZM;UxCT=qJg8cl?cGV~Ne*%(vch(2 zj7N}Kue~B`)kzA_Dw7zE>3M&|KwnphH@bUL8lxC;n>*RaA*_TsNg7yOp5GzXMJoL) zat$Qs)W@?|yEf%ky2#kUYQ+6tr5O@d4qc(@XOK4{ln`|N1gf!TF$^t-YazEfCn)Re zyhZrJZnYdm+8%F6i16!HDpdh5n_KLL&J=I;9?U{u^V|3xrca(9edcLmM(EY1q|GCD z>aIyFhx*z*0W;DQ!FDBL5O;}^p_Xe=%@P*u(lKNUdYz%$?5;WKhNqKOo{-=DLD$8| z4j$Q${=_n?c=v=E$+=pUz_2K4pdp-UTjIRMI>e4^j>5qIWamL(sRfpWCJk4E+XeA@ zIx~6^&DWwIEu%D|8lyM-7j2@c>)`FFSWcEfi8?wGnuyb}R^^}Rz>e;(7HR?hkX`(5 zpE{Hn90;k<5(Ld!u?ia0{H%A%wv%M8?tT2hX|^1fKVZ`&HCcFHw|6B>d~3GQ)ni5^U7ysEqAkQsWB6JlO#-M z@@4dL1>er8nsq7Vq5NjB3JmY50C-GjAr~H!s+j>8y3n=TGP2`IjCb{c{!3x@dWpv& z1PDE$jI_s*;u=6wLqb&R$B)6Dq;K;R2w?~xe*u_;5tlJZHiQN)=d>1&0e~=mQd>?1 z6(1sb*CX=}JA_LxQQE<9gd1&{v+@~CBV&!MP|)G1xN0^QXHNBYlcrC|q@;=>EVzDl{19@$4pp|gTs_cGf69WQKHapw;}lsUZVU6Nh(kp{t;ide6DP7t`xm~Z%D7!vMTtu zd2dwFMKhcXjqO9ZZ4kd4(L`20l|Klc$~}9rB+oBksP*&y>q&j1q-`TJ(GGfwrE5dW zp(+?mHzP~l#7K4FcyN>5gNnlo?!Pe7`|_j~Bl8bzhv2-}?2Z~jwszfQIAlqZ-E00vdu4AoJ<>u9!4%Z{jgG>C?xPMO)A0Ev5F%-=E z?0o$osyWP*`WO5~^MQmDkN-j*^FvDusKB+TfY1%kSa9-OUe?*aN#jjz2iU{iESoJK z2{HuApjrBKF7?CwxMtDWw_|_ovsH0L)enR$@34Rv_(Kmk7%4*}%2QGq)&}d!>(*tm zD<~8j%)VY|IG_S5FKVKE4ynmpqeM#g9=YtuwGqhQnNm5^I>h2W(Ur|Zi)Z7{y7q3% zU0b&x_M>{mld!lLNXGM!m^m!W5Z@T~S4e8d?)OE-RrpoI%Qx~%N9FfzhU|%;H~Y2C zd{qENK)S!Qb=3aa>k?(dh0CRH6AVUUP}&1yS2~6tiM3@z^}?mArG-v3^ zJ5*O3;qWk4!n>3|GE~3d?7Ipp9PZv~$wTIy$~MB`+DqE3uUHB<+S3&3JhFG#>cUc1 zj0N@`qwsQ(f2G|;)4(pJ8R!s?lACoDI zk7>fmz`h9De26v_D`UlsCtesrq-^X*=B{Te99RB}64$?mxwRLV>{}EQ?KTS*P^@yR zkq{dgv%ulL^gh2|%D-|_8n&)}G`8_-;Pxws*<%FIr}x-NZJ1p~JFniRdZuV`qr}*# z0^17qGNJMaQ<(iUe}q!-SB9#Ap@Z1x#!%f$ z?9h^x6(t0lJ~?UB z5&3amHwz&S>J*KN;5ZTit|hZeC=1U|vf)Kjtt*#HbRG52?ZGH}e7Jh7I+{WMp7~=w zxG~MF`51_XIt8Mg?U;4iafER+p|}!`Nh?;+;VwpyWN)3dsU%!-X8a;(U2={_hig># z8V}IQFVz*dKN@8!k2V>sd=d%&7v7fy1$Y>?h&9avlj}Y}diz0wc6w-$0N3_pF&+qW z9FO$q1(}EU6Ed%5AaL)|KF%4qZjH%)P3hFNait%3c-7;lTOQkDc!A}gNa}h6pim$@J4VqRsuAOPlZ~RL-u`%3ga7CTF)+LD_EeYFTrU$FbpTMNr&<6~hwh zzjF^?p!%_QsvVE&&kb>A+YNe%09KzT{=W4Kg;pzT59MH92|PKm(h5j#zScYl^O;TMSq7VD82%3qq9wi;V)C~7SR zBvRA~%lvF-vFgyA)|3_09oMo5X;q_^-Mh=P&YOnik_PWov43j9rq|kn>h{Yeh?8om zz$u=f((hgv7c1(M$T1)m13AXdm&-0QoI4}dVfsHsa3^$qkJm z)&|qDtOds}u1rrD8g@^OopG#!lO_`D$EXZ;zcuk_Ia^}yJMS_LJ5Na2lms)Vc6fmk zjH%#?i)ZQdVhWm4aKxUzLNHu)rKnq5AV94A@^HUp(7awCTA^-+IatAoVILNR*UUww z$4gMfLjAhy@(&h+mLZ*@A$$k%kb+;Jwc<2F!Hejj3x6LHfQN2`Yx(02p;=+rNwL;w zE9>SbRX>mXjzr3mES3I!>mX`On;;QVQRk=WB%n&MHa?LFzrn8q;{_kxWa4qZjSqzb z0@z+W8e5dapb~I!7z>6Y!2MsOj)x*Zh9ru`4Quac-&($0_V>%51 zYkXYZ_5=hXCK48OCkqn8^ySE$=tGz~E1N^mXM&gQ>~=zrO-C)%a^8iIrF&I<@xhxk z&!7D%T(tM?V@r2F#6$vwl2LOop@ii$ilbYJ>C-J`N5yc`@&0=jln+O-_KI?6x?#4g zMQVB$RD_@^ZDag~you@(oXv0K-aBI7slQ$B?pj)1{Kcyit>hC?I?$u$oL<8XZ8HWBb>Kx# zAkeX>0=NQ6&GSFA%Ox!8$)iCHnXU73r{@EZAmpzKHN zPT3T254=T!%6op^8Tefn8^y~Jdvw$CLHC1qIs<{>GlO|@g1_4=u_-?CmYhLiKi@N#}*jNF_ia??=vyl6#ttb7?)lUI`HghjN$x|4FcJ7E`~oO7bSs2Bva=?jlR|VNtFe2PdoSgtR!>6c{U^}Gk!l+45Y?BgZO7|)lnU` zfdJ`1v*ydQC2lC5j^{sw;^sF}Iki7PdFrebAtu6$SO3LBpa;g!-MuP}t?+a5V-pi2 zrezwJO`S#@43Sg7~&X-C6qNvUVJMDOG z09z169{{$n+dAkQ%p0}6bzp!vWqFGgko4(U?zJTza=Wh)zVikvOyM@H_w_QdySke_ zcE9@q)!XO}(s=7;dswUvKj4;KHVK#~e4(lt9?sx~?TW2|2|QgRZ$J?&H^ zRQVZjUIdLy_s9k0(fOEi)YH4skREppO5^aQpAU1p1(KLcFQwrpr+krq$*?36;4Zza&^ zQP9$;Fo#q70o~Qb;S1**ek@=~nrtzPq*j>!QXL#`>l0~Ihsr{l1Z?=Ap3)fA1hcsT zE@6|^FAY;L?=`PQWXkg|Pt+~#{0Zo{XdjRk?W;D^J?QSE@WUq&D>iNlg*tKIjE z7hvd=n`*52wH5Z{nW1zb8uNdLN%oaU@o-01_eQfx53guPmS9MU5++iTjoYM--LRyE zPA13Llhl+HL8SalPqZ`>0W|U3%t8&%-1wzF4t^T`QI~4smik1&8L_U!1dqrRsVJ7M z=DI!q7Sx7LM>PTN*aOKZvbKkDysJ$I6xBOy#EcEEs)iF@;H`hcHZQ3#e29VAE1j3O zu!)I2cW)i*#i$~z_TmML6$pRneC4ipxX+B7`mZo3s$UEeP`la!2!R!OENgLfL%UP? zbQVzrE&C$~T7!!@wc`b6Ot^`d^dubASog}G!ygtYr_9YEdv40j*h0tcU+~T*qojdiDoFqf1CQy^c@Io{dB# z>Y}st7pMZevtX{4b=Rn}T)9O@n1bJ+?J^a(I_wRwm%18d|H!bi;*NQ7hz+q__Xd_H zxE`?vH?e8}iIiku5LD_7F5!Z{D$+-TG+*EQd}DvoBgX^rkw7mT;3@)E+Dd#k`Px`u zaoB5jRq)#WzF@ipfDKXqH}Bu%vjzR{58^IDAzzvh(>fR%3ybMP$k+Lb-Hmtm_dmg) zwFb(YfHAX?Sxo~l-lKvV-2wRl4fkEDxI;DZADJ>v>t7Z-dfaK%E%}c=pGrLZYL_k* zf^P3oLNL7|1(PZZ)rX(Q3F2m&&bw%Opf}I?SQyV-W=C}`$3zfD8*!%!_1!;cWE9`f z6XscKzzHAVQ2B%e|NNP6hp&74&%*fiK#cV@y(lld{6I*g zOP(LYN|Cqju%|L;chaq$h5MHf#4>2dG1a-p*DXGY_t$ z3O6iFYR;-O?7~Z={CIM@8shUe8yU61E8s2NJLS}fFieO?Qovc~N}58Szi2Idg@tap z4QSRKns+t`0-KExw(=gsi2uu#R;aoKO{JdCbW)BGPC}3`J&8F|{hzbsZsOw;`?AjF zq#anuMgw`RrH<((HNRNwx7ghc7%L6h(``I+fVXA<}8e2Q!Zgxqq*p9`C`j; zKTD~T8ddn%a56U9w;+{sIH5j*c{lWfvHvG@+QPfzat4dfTpSvLWdz8CgIl?{^KKdb zB9@^P8}BUW@_;yVs;~ul)*jngj2$HH0H+SQS|C}QaV$24cio_=;2&`IbWFMTn9me> z0nO-woS3LgZHbOYo@&VrI&tSJRdwnDEX8}LAF;IXU2&SurQ4a+8r$H|mrO<~!Bm3n zTOs*SiHHPnJ?h!%gS2RzAndtoMQY%9&d*&uD0I5%y4DZE)DB|5dMxl4Ox{Uyyss!<*%ho-wF0NMW|UMTi|dw z^pI&Lgc8X4ld@n1izfJd>oV7TE4Wu{JK}Oq#i~oS#VSw!A%+meELx@95(?AOPX-3X z<8S1xWj@ss{a}GnEbx}7pRc>jaCfcm6aL_W!#&d;`1Aso9$UgQ!!Z~Vie|YlP}a~- zxx(d@9J6Qdm5t%fJml4y0$=peVmnH@HP!(qii+u!C>x_VQ|=}ME+fhIuK0YJ{75W* z?~!$9RelLogR98>6_UC!(K?2=>2|;WqZ`Lr{!G8odTXd(VaSD?dRaECk|@eU_iX;# z-`1wjQ*O;qB{(V2HtuHO3QC$&*~ZFY#jM4(KQt=&3!Gx@kzyVKSgPDXe#B#KguL8t z&Pq|dO2*SXG8KREr;qt^X@-1ThxR_;KV`{bF}e*G^ulslgu{$J52P0(_T{+v8?F+G z-74}Mnu{v-u=5DwL4?r*-~wB2gOwy%_{nrOsunzUS&k~1Z&7iX-1N^rsU=8P(SIRL z!xk#iLM`V3(1`+S>3#aZGPVrgMx$j6(tb4gK^0q48oo=RVeivW_iVWQ)_;bpVN^Px zWKG#trLCwV70g!=&0(JE*<;QM(IYw?_y5|y{q5E1N2wHhzuA~GMCKfoi`gYvQ9mA_ zHD~owPFX{<$|&-NC5d6`R2(j_`b9&H+7+&B-&w5zBRC0U|2gv+sSI0?7QjPWi{Km6 zI~T>;-@P`;b}J*x_Lj<>WnXC@)OLGn-LvAXI?cD=iWhDMn{SyEY6J{l{6190rjF%--NaDJ z{1gI2Wvi5=Kug&C$ktL*CouXEG6X2Fr5M%s!&7SZ@>q7^!h-*PD}%@j@4AG+Gfi-u7T05PGUGgCw#l|ZfcL(sB%y{pGq?m#Q># zvbRvp3Mx>-V7PH#T?h4>6_Njjs83WR>+F=+VU4-c9nCXCN=$<5nE`6G%K*hXsQ31L2A@sE+qTMlZhGSgM} ziu5B}-enR*#J~*S)Kg+aEJCxskJE3B*G+mhxfbl7{Y(*!dQwItFWnRZ!^hR0tz*3) zXZ(77wzqd1tv7VjO3irm78!yKH7EPSH0p48E*NN5kjgBVF%xNbGrXGNuoKi%D@;b1 zRe2{T#E)-D6{VaKb&+=4RM7Es3{i(Xig_v)I@-$&MDz4s42>pK>a+IAt>*(9ax0OO z`(;Aks)q+Zuk0WatT+9BfwkG0D)QEIcFJCETbmJ+X4d%H;_YWxhiUypk2QCu`2=ul zqatS`UYl={TqIc^`m4qM#zz6D;a=Qu)V0J;!%&De(#T$2yO}?)Kc@h}=8;EZp9mNF z0Z^}SHED|KUF{~FIvO<=xGMP$l81?u(Vn~-!1T3(SQ(-Qw+z1c%>+0G zE7_@JKd=-sT|Yf?sD>W24;ob&GV4__WjK>J;w$~{CZcd3mVQcs6wwH5vSi3H~>e=l5sa|QQ zsJ*heE6%7$Pn9-y6OovY^*`VY{t{1wg;pmDHRcl!Nf? zY@vnEoVQT-w8xKu9;6I!TIGPq;k4`eafa{v~3=-THmX9PR#AGI4Sg z0+dMN)aZ#3gxv^ck|1^XCj^g6e-fia_7_=QAi~MSr@$jpV5$Cr8|Ya`baBOSmxLhs zU=kmpUl%FQqWZrUx74c?GfAqj+0oEjsraI0I<0~a>O#}tQX#Iel2|KMt%+h7=fw6P z0F$MZT9_U*{(uo~_oL!K|J>Y0!C;+M zCyzwb-t&V8LPZxAWSGmWAS<8NMOA(moV138npw{QqDejjO}DLWxH*$cqRH%-OK2g% zTBy^;Y|fnHqvFR)ol;}O6w!D_XlB3)GEQZjh+#!p87ZYPj(gk{s-&V`z_@v6Gh{@$ zP1`v9G>Cy%gsENyW5Ian799^wrBa?|6kC&BIsvdtVm9DZMu?YtCu@J^?4hqmA%>KR z_cj-(T5(U?BL?#yFH*^)1{gW^Z}l7QKj+A_YjB*&cbZ9Lgfez$@Sk=i-mScblzDJR&ZleWJg{moR+o_qn#G*^Rt2bTEeP zps&4tJ4Fe@p!R%i_LLfP)gE?dn~{TP2<$CMBLy!~19Z+t5pHJ*+XuJO zKKYHY8@aC&oOplw8zbgIz6QnvL_x|Hlk+=uJVgWK%g zcqoCZj#RSB!Ls3@AN zC>9ec+L8r%MYCS*sf;OqL~s+hG2!(}haykwA{Ozexg$ur^k0<=l>1&268Gljxns8{ z@9V3uz2ws$zmR_@hcQuQ;W&@0#NFNKUU<2@I)=Aq(1t9AJ;x7Zw(K8;CKBjHbI&y0 z-Bs;Mg{nw9215R=fRfh{!|6&0HZcoum^^`U9G2jQ*ztrf7@UY%zXACD4Y@`PQUraV z`a^tT_;_hJXLPJ+z&s`Ti{rO`XMVSK{)D(j@`%a14$f_E$g_1bqw@E+FF&Sn%c%mD zK`YB=tHop0Cb4z<=oQ*Dv|JLcJ1U`5l70WP88Oon`^TFKQsF=@}@f;iDp)v z?-oEpG!W3x3<=!TCW*hEOb0~kyK8r=r1k%=VJwGy?T>iY6agz~W4qM;jvrwR$=hZx zy?S~;YiqXa(7Xq0q<&T0(4^eSjdFKn`?>Pq93f(Oas1i|fj6S@L%GC^fdvB4sE>OS zPQwq$-~4)lt9j_qp0C=GA_P^ZDA!d7G`%{}DixIG61MR9Aw0>6*p zGA^m-q03f0*m&H8U_(bU=~UcZNt8@Ld`S`>7JMO+wedlW{JrGP7ZO|SI)|MgP8Q8rZ2}Fwhj*MeYORW2Cz)XxmE-!ig=3yk#JydRkm*nb0F*U{-N))C1*eO|rGMa2(q8xGZK%>=r{rOTPE zj;S~9_|a&8ZR+r_lgur_US*y&(DGW#9&_8kMYTR^dkraETGsCzBfk&w`&yP;&xKUw z?ilacJhvkhPE4pCbmclPIF z*HHdA24Jzjm?fb~zMPK3bNUkcJnW^kFGN3)u;INjOE#}Aj%Ql~C7PWB2#Jp<>ZD!2 zG7hh$R%T2wCjVpSz9v*;G^3C5avG&Q{1NhWw(w_e8)CfOdO-TtoY#73@!IY7ef+(h z1w&m2Jz-o-LlI-1qW8hH-$qeB$uow^>zn9e8R}6uFF=P>^~xQs|G)^zt~{4(B%hSf zMdhwbWr+eF01%Th=B1Z4c$ULMMK+#E`q?OoFk=AIs=wqpBz;Lg@@KzK!dCNT6u+;X zjICxl7+Jler)yc>RDfeyA^qtt2+&Wb9S*uoUumDL&g&W(>2a4TEA90yj+@Biw_saj zQb{A;UrX%?A)+3#FdGJUQ5La1XKYH;j@sMj%4FXRZytrq6YAE+Y5wBpV_RPb>)N`7 zgWmT3HN?xcvoGA-Fm;7Wo}6T@_Xs!U&mBCJ)fFm8&JM2?n)tvqOi;N0(syng(+jfA zXLO}tTCQBlo0zW`%#g_Ha0N*!fUuZnT0E|ntkF`eh5pv4{B)C+i-`C7iIQF0k~3xE z!LTxQOxGJGPPh8bAvrlWadA@+qZ&;nWC)@t0Q@iJ0L@@G+Aqwp>;p6%_NH$Ce%<9p zuk6FG!w0kB4jSM27*GOZ?sHZR7{{dBRmg)cVWb#t=Jo1neLgCtU=% z`*|t_2&Dx{pCPR*%bYeW2um8fA~C&m8ee=P?J0hkK@@kD`VBXV_FXCN1vX7A<17q68h@p7h%hck+RyGn1<13$QbC6@!QJFB{JdHBpX;YAYt#GK>6Ab+lH zQ#{~r6r5hBmmXf0GS_HyW(|VBdC?)5kEk)^Iu8yFqW(`sYtks8GHqT3MAqyegUU-?%0cJ=G1;Ttz{rmYecR?wq0?&MZVG@x7#?YPZ59 zDJ}{%J#b$`*A$w)amOPi70}qgon~P-amG{}TirVK_j)v!b)o2$t#p`1ToeAZ`;~sy z%6`}TOHKrC-8lqdPk&z$V!;Q=u(Uq=gb0*}?G?>GB89ucLb>%=lzlWyVN8UC&YWM% z8N1M|uexVYbJ@6U>m;&PXyy4=JLh^;%TsMSz2x+O?Hu7}H?hx^AZD{1;rxY%JkY%~^yt{b*4oE-0)h_VZIY^+t z`F(TrJVbKdv8w%~Hw($gi~%idCv{(*(i907TmrrCXUw(ieh)%>xB|2nm7Ki`6Oh-Y zKtzeuF3PnaC>VlQ4kGxpnOzL8$9sDUJS)JqryyD&(h{QUM}%1`SnB|md<;CZja~)k z6x+RA&p>QAE@bHi;cZ}i zf)YkynUT{!=IBa2^_NK;CGwRtsfPt_lPb(GU2AtcGE+PWjDkr$qaI*P43XMNNIneV8o0l*r$M9whi>OfF) z;SNuSm>Q!b02o!d0cyk6i0DC@fIM;vfRLsf<@YQ&KibD>`Q2%cNnBt_?@A!xQM_Lb z;7GkPB(g8lzFbG-2M{Ajil}`J4;RCW4j(Imn>HY%$y8CX_(9!Hg@OTS!Ghm|EG{o^ zvRW>v$3r0YlU=qF5!B_NuYgr8CJ}&*1yG^^n7Z_UDUgZT&{w`VbahSSfK$#C83G|s zWzYvAUqvT};?oB7Dv*|*PP3t?h@VhJB@jKXlORju)_U@j$=SkH%7_2|wG?l#Dp89l z1j2yLV+e>}y2^j}=*5eY7(lCPsAGAV^52aylt8i_fAX!fsl=2)F=j@6EzIn(_pbfU zSvunv>ld(awE(*k73R0a^H{yXJg+c6&YHUO)n`m}hCXyrWXTJYXsaIVsVS%n#nmL^ z400ta+cCqNmg5^|CbyDG+O1YJ8<0FR&kR0OabM5MCRfrl!(MtV&2Co#`UV5zI_t!p z8PV3upf5l-luIgu+xHd=&ocBzgE2gGr#3gxM(q*6C}}Q})0w7m0n6#_V*qw~d3#rk zdm;)ZK?(wvhfWG=1R$iOSa-C^w7$!(31HUkjvjHfm65WALgi4gi=i<4Sa-BIpk4V@ zym0$QXWJn{*mCm$0*&52{XNPGAPN3AB6VjMI1vDpvoZ_^GdrtAc}UPc&l?`YfC3(m zq{AC3ZUY=RwbYH)IA6W&T;~EHq?+}6$K``Xd$d+>ep}~^WpWGd*5rtfb$1*Ny`iAI z&|})Vg1dKPOjzgqew&XO>n)h1>bbX(S$jJfw6FU%Cs-s_bZbjN6(uFre%8e-b-wg7 zV6@W9XpvV?rw0eOGhFZ({m0&UV{f7dJ7yfyy=L)3s^y)I{6imcoyYT;kFg-ycpt90 zJ8#qmyQ#iBH{S|f`^-1qaq8M$#;I>s0Y9#$ju<~$SWOd;TN-xv_bj4Xo$tt74!1C` z%La2mR~fFszFcSU<6h%t01IQw!cK`@n#1U(qJ6wux0`xr76!s*rvu>rlXjIkgK>j7 z5uXQbn>4#+>9zUt@=Dpf+Jn&1dtH(C2*tTD7xbRYIo7&@CK(iJ7S%Y1b0)7KU=Xi= zIaWLhJ*QvvoWfK-8aB_94?R~~N4mJ?>bDiYJAVG`jTbJWqHF$r@ah`i*cUf!#uiPQBbMP2 z$U($R3b{@j7${VQJ4!a{hdqWNVAeqk_83Eb1eshxZn*)7*(#BL+r7OH)-9}4Fs7Xj z@habcF4?XDcO9@8yJPBa3>eB6SuE5NdgJ3+j0FjVcqAVKRa4Ix zaz+veEB2Y!%J=+HIR<1;J`F`i6k`>x;L};w$6{i!yN`IiwkC69?NZ zTA3iUg6nGcq3&mAu6W(xT|VibU5Q@A;2`}Z zI~=rU6}nK1(UYNu1MP-L*ilGZ0ey3Jx0bJ3Lk)culWQ?)yV%8;_L8hx701XANFN?l zZ7NdcKvIwqJt~g~VHb4AVHfx7>6Kt~|0G+=0SW=8egD-*$Cp1iB%c4#`ELSgK-I5K zom+2}kHj@vr;2;5xs$j-eLO?Xc*TAdH2SXUK;e<-CO4@lqS-P{EVZ;^L;Cb)l%35LXTZVG<96qSKur(q9wqSFnYBJ#xDQl z+`xhgf3{J;UJJTqse@^uBsQGrA5!UPQbu#Q9T(F8pX5auY4$*4F~51DQhP4Jv&X#J zhmoG^ynFkI5wm*SHKWG%%>7(qh8*t}yAP|uG*W5*z}T z{*RLd+FNO?!&{9Z8Kta_ivjw0&&jY;&{L4H3|lAkiIuT@6Bv|lKyZ6QiZS(tg75rl1Nk)}9%p(WNl&|s;tRJX@~tT%qg(OLv7Bjh5Eh;ac}i?EN&#q}W~T<%)QHH& z03ud#F2ePR?=bGl>D3v`jg`3@88gmlHhT~@dA;^Pb2c$-jZfGaI@&Nqb8=U)hd zbBKA6t@`ufZuU9wZv7oTH}Cdw6Ut7AyInBD)outG%|4SL!9-#qu=R|<^QcWIW;w~F z8=?{)CIH14%uvxyE2Cq$XN2+)1F?3FW_`E3?6C_rdtf%)KHz0xd~ICyu(k(o4~G=b zh6Wa&=`xWCY=Y1#pnM9KISECkf$$*MSJO~rGAv*v0$v37?Wvpzps)?GLOdU0OrnY| z5(v1e4_`L1tU`K|r99K9KeGyIXk<+AoEg0Ev73Z-PMw|mld|{W%0Wz%dc%=Tn?6ZOjaT&ac9c4 zHVy367+KEH%iW-XqwI=uqYF5~nur0|c9wgW$!-}I!-@6p3I$gv2rUb>t&N1f6sX?v zu@V!+X_32dfl61T{HYS0| z#wU~aEjcpQZaG-iuK9btKlz*2EP#hKNu}lr119wh^7Bj1^I7z5Wbqc>u@2mZHNbLn zI8r9>E1LHC^+cAVIy`Vmyf=@6qvY)sUjle;MX`E$w+}Mz^oF)1m2FDuDZX!DbU5U;XaBUYktQYqdD8tZ1$73KH=OO5ym?{ii?*UBU@V) zaiC0&NN~$@9EqG^P^%g8^|sJY0vzqAA7k;{Giv>o;D|Weq5P`=#l}n-^hp8i!wM@RQWup+xJ7XSkZ zaj4CWLzPSrRCeThR^y+BU$teb8vheY%dgf&+YXlkRtFws%Oi|505A?DW`!;!oanor zJLWb~MRb-eYqcxAd`_rW0?bjvuQ72bjetPP0yP7C6o*vOfV)-aPRB>%#E;#xf`L1r z{(<3OoN>uMS)2I z+skBbYi!BtEn&*v^>#zcEZfDw|eDcYOKOl{8uUQ*`fO)FrR7!(TtINZC@LNcu*X zGABl7PX>{YSp`o9Whtr15m>pAxELQw zcF}Pedh4JtnTQLg)sLstS$Hq@N6?F(M7TEa=dpk?l{dc>fu*bwi>0Pzj+v2hm7Iyp zNVpQIFu=iZ_=%h&PkGHIThB^5R`#8r1zvu8@Xb5SSOCAjp9EFkzc_%u?w&zud6>>m z*Le)F-(b1HD(x>rcpHHv#jaQCo0n}LbWTFWV}rDtU){yzEvFPO&%-=07!}6|O(@R0 zSq#$(OddVvTkqtY0QX&&en?r=+6#FCOT}BWF0$)~Bb3chwnZ z@5OiPkXBfLnD6#>!=j@Gi!UXh6jv4@*mFQq0It#J8eD(th zquE6{8Ni>M9NVX`(x&8E!r4y}ssBNtlH;<=DJfmn(8ryJ|NcF;m1VgsMcrkM#2=SH zp?}f0?c8^0^$)*|ZX6p6;Gd)b`UuJ)&X%FW`|uX9Ta+>dMk-UmY;@QMe9 ztKOb>fDd9Wtf>DHTwp>KBr9rSMbYxK@ESJ5_oysGaFwJ?2@^l^#y5TQ;hCJ?hEQN+ zdXTja5c3e&3gU5s<{PWC$(6l+ee40FC5;Q;eVh%*IrQy6aX>96b>~k}lMl=TSarUE zER=-s_ekt-TiuS82Zek|e|W@ZbZ;^M0|o{8^;g%fsa{=W4Tr=$vyrxj1muspzln)M zaUz695+-ZnuRddJ)>ex+PBH~vp&=T6)bKDAvWP5+3$wrL>^?KP5_bRNju@x;ee#xK z*NsG@Tlyr4ZN^c_EY)}=FC_HWE5?Vb-zdUI*RX&vM6+q}PkZBPi>gE4Gz4Y;&~su; zu6_99w`fsulGe28xLtW@31a!Z=KK}YhVGi%b<1^ACWN)qhbZsu;=|+cgtt!cnA-UJ z$r|mdJm3!0|DHy2N4+B45Z+LU63z2PbW4ZyM{{eD2jxGO}$T z5Ch$5g0#NJEY<{T5J8o|`m;%0+TUr~OAP=W%uov!J%=;w8?;@Xp^ySAe-}&9H*3$( z$5?-VlAHJm*DM2wunFS8dg1`TRx2^7K+8>+M>v2?O+}g&6LxV_DZk!d5CjN=0{j+M ztk~XoWc8&>)8j`R!j6y2S&uYsPs>uNaK8}#G(dmbtcIgR0+}Q!If@FRx~AQ(nV?Tx zTYK+J(tMZeOOKde*Nqr$QoBdea?R0Mh1Jz|7E8*KX$|K2M>P&dQKkmerS$fSq&zFs z(Bfuev)tuz!taF#*BT96LwUR9JTr85QcYC_a@S%_J+1867UF@qy|GB;9d9h205AGKGF-35U}~WwfIMSUkd_OGwV)wpK1ryyb9Ky98e4 zU4gvx$L5ny(+ZkY7j@ySs{LeivQ1sgm~RvshO#q(>LDyhERF&&$9_A-9%^8(x>?l) z=w`eo$<@`XZq)g%WuN^<@&<}p7RlR44{9r&qehMK8)A}eqH*V%`c0?!$>p-f)Q(TB zL1>ZZEI^$g(*hvV-~^>&I~`V^3$^-Q+s>b!&&G%h;VT>yGEk1yn=YmNrhTj}^{ zZ0a)@b}zPVWKLr=4_-~JwP@RzK}c)?ncY?Cp;;5!wQB(a&I?Q4fTvaJr=?gYrre#! z;miav2&JmeS;RhCn5hLi)JznibRl{mZdKy`E!A&g^2I|8! zLu+&9LbH;padZx&1xzI5;C(XT9B8)o(qVGSzvS|Tb6u4tG0v%G$=T#;8a{rRd`Myo7P|-Z{I-3mjJqxsB7mFe5B0DSmLFw)eysvw?_vQDyFs8DSLnjhgs%VJ2ugYsU?)9RP-sRO@ zoJwfsODGju{<4{u`DDVTa{2AD49)dqVlrzY_m+vU@I`lto*4s{!q`9H#lY}0Xc#@4 z4wzsZL?HX-8Gt0Ik&&(RTm*uZ2{d!jVBs~G6??XKb=5pzhXcVOtQGK{0nwal*D6F8 zs)K2~N`s3l{ibdL^_*iff%rc)z|8}@(&XjE&|cN~O8ZxqUkNUO52__D0&zqvSIMtT zVRjwU-k%fV(_^_#1Q$UVXLT9;QgF9U+RvsZ>4+^e5gp%t#&aF>S{X3UVpf(+siDc1 zNZF|{Zd$1nVQdy%#geD6(9?}h!pJx9mWKE%R2kKQ(4r!AmUjI~!!fa~4O(It%E8ZX zt0{0pFgE#a#Ue=~d;V??`txSVpphSqE%C|n5pkPbxE3r%|5#6V&pHb})4P7+)^kPC z&Wbg^UzG_#0gx%tIO4GQjN$Uu>wC7u_|TK^07F2$zh`~3*l|EySlF}Qi7FE&67&iM z#a{Biz}^GpH|K+_IyW6zHXq|)7Ekpav^OIK>61NP+mQqFs5GOhb`of>Qa8V`|JWdK zoUnATSJ*UC9n}=4=q1zWgIS&in>)9vN&3z$U8?{7T^G?{eaZEyNtC17#EF|x!gaJ) z8u>X+T9%sMQD4^Xk%PjRF^^M0wXv`4V(j<^L}KT>%Kx&l?Sh)ef}%DC^6kqQ1r6-T_RGga@z;2varE zl06!G00@8q90Rzwbuc#3VV+%ZE~QiV7gVu`L6P|^D}Eqtf3i8z6?CTJO?Z0}J+hqo z7CB`R&n2XpVA^4wIKx4AFYm_Xlf}ap_TJOVzGwtp{ZlH-o;>XmHSI3>jP7ohAfktq z!bAkj^=5cW%AKU8Wo9s}Od12ABkyk>vMt(TGuvYx_;hIq_)*;K=XaOqWNK+3MroKED6| z4F5Too4a@L>ZM)%_4I;G{q^d38MtOG5e7OuGd()u9n_9suwQFbO@hKJ#ine3zON=G z&FMU5)4w6*LGw0c+>~HNjohzAD$@1)~7Imt6?mYjaX zMk|2qWFH_$6NlEk4CD^{ow}+eJjz;A<=D4D3{)%?GUCqIT>ds4t zWHwgco>sx0E07on9wlTMV0`%!`7=aXRFdME5SXEVNtWc9J*(rSNxV1CHLjOMs~B7_ ze0>WPOb!EJ@<>^}x;g5(AK-`x=H>l57r4?GXHS%CCmru-|3amDL1}@}+n7{2R_eblWTjV3OwJ8q#3T&I4MFeCHU?`<6*R)21X1f#c4^loE&3i!VGj;= z*j5Rwt1W?OFvmua6C=q8?una~$L$W4$N;kg$b`_sxXjV`qlij03u2T2V&g8h82_N! z-AR(59E#n}`_eV~8h+fkg4|j&>W8YxXbl+c;(hVh7&9bEotWY|bhO?d-e0p2N<6av z-Id-0lF)^rt{r+T#}ysk(~;rMrFIJkB)wPO%}b6Pva8!ab|2Rm`M9MWT~}H=b?eKW z9V<@-t3Rc8kbGa_Dz&D^#A?zFW1daCA zED~`{0y|WHw;syF%Y96JV`J&ou2RW;GI-O3NoY;{a@T8}v2x7`iRYxprJBM()gEnM zF>pgNUNzp10%=h;VBU&$#R=x5vTXtS(BYtDY3 z1jMA^G0oFG=Jng&`JaR1eMUY13^qd~2!dA8YgZ|yt^*!Pjvo18!Czw8UKPavR0^J0 z8`Z%$7BhYRJGS!S2jA~A;H%^*q2 zA}I^S)bVm74xsT`bemGl{ww_+I|~w(Ve0FVqzsfY=?l9r6a+o>byp_&i$4eVqZ}&_ zQ=7s(3(CrcMI+n005~)Dtd>mzjW-5_FTq>oyt);e{=q~3pOWweXZ~+oO_eKertX zjnZqlfgf5L10}y9LwFVpWKAx_ER>yy_n2b8_&zLd3(ZBqUO9VIx@3Esroj-G5hfEJ zz7yu`j9ervQW55{*&<%stVt5YcELlFO7?l9p*9`hL_W;?gX;15|I6vIG`hy`oM`az z*#D}$A29y49_W&pF5n;UvEH3NmB=z(*MAcKAOe53A7UP%WYl_UzYM_3AwJGzn3?FI z+2h}03H5ITvs(2eHa&}EUq}i6aJvjI?iD4i$^-H4-mBZ=Ga)iW^Ady?8W3htN?6e%VykcxCja~@4Z?LCsMWWBP;G(vb1m3VV=7~#^$ zFN?hmYykN>3XZz5;IjF^QVz}oEk@?I{9{H~E7}rf!e-OLZ2@qPY=8U8sCoQ!Gwyg> zJZrh<@DtHfMYQvR(H(+H*xO7=zw7-mL4qg;%5HzUabpLGo?F;|5@Bw`HXc_qI0`7vycDb{NZkZtB~YPxO~~_DQP7(!XkB96yaDQO~Es~s--iPly}7k zMjlHZ`;+@WC)f-|pWC`;#*=sAHO0exrBx= z5A8re!#+Sf`gxkVL4W@hohE=z8B}X>&G$%?Yn5ppKg%49%Ni>(U5;ijd)3e{kFEfu3YlQx>eU57z!T2@oBg%8B``6Y*1m%u zIo4K!h09lVSo$65>pgVzrRus10^dspJ~G@U4R{Q4I)7n(ij)owhD&Sfq={FrnDq@x zxw6lzua(KJUmej~i2$`iH#R#vAv>}K`8O}TSMKO+^GB@pofTk@+bZukHM65Mzt6y& zxdv3NNs&pa<^n@Oz06-;f#yrmmC{+adM98;7?RQ5R-UU-JNr}j4pmWG zgoK#6&^W-~uW(&rLib=(gp?q?*n!d;_PRpq-qza$#CfgsiNbupKiKoYp)E8#)h)+A zoAU&p4Hdn5?xy?ayz02`N~^JyXbUdvcCc`a^F&Dq2Y!B|Vm*=SrOVq&CsdtCy7-BB z%n2gXQcQ*>I*8MtK7DmxP}^c+zTU4JsH{V>gO z>?`i>BFLnbPLotWM+F~8oE#WZV-!-wE--R9SD@CKnvzLPQx}PmZ&$o9W&-^?Rs0V9 zN^dHth8?cov9PCBvA$~6fyM>mqEtx%l^Uf)yE1p0fH@{ZHF%nf2Lvy}>&CHQsW2&{ zB9P35NXPPIwuBIwoItgDXXJE=9^#+qR*@VP!%dg6!|CCYV1|>a)+1vj#cvlDiH*$1 zS!KE?yU-t)5?De@23Y*g=7N!oQ%z1HN6K9yb*(Ax0szQ`J|W##5UNf%*r9E2hKuGA zsi-3J)rKLMS`S;^PMOh^!-%gkrM`k5Lvu~?qtg5zB6mC)B#rI3@4LBWS)@`yPS$4{ zJ6L4LA&AHgWny$MzyEC&7E{2oLXd58A&;5d=e~lotEbocfjo?We)%0EQp|AyV8%>d z3XPdGjwQ4qIniOza@aMOn;3V4{jylUtCbie66~>ZK-Ad?trla1$vFz=^6}qM&IV-l zsK_`K+lPp9gDbeUlj)G_5P9Sk13t70O^CwiIbYPM&7(drO!%lWOf}*JxdzE#404ePmOF=v5mKy0+GKO3%d^FX zVXfO8J>oG<+Myw5PSh#_fOqnOmsdgF5cuD5LW(nu2{Yr|Y2-hzEOao_)luJ+DS7H( zC*2i^rZZeGp3hcU68kW12GGy!%6cyddL6J4(|+Pa7bX-M4jU15b`r3;!1g|LP6KNq znhjEG5T==c-m$I5J&pbK5eTnNvn!dbR{Ul>Imr%YQ(>jji~Ce*o_kChk<}11=alaf zS9hc<`_q!L>I;vX7Uds|Zca&Q4Cqj5MH>X}ziO!`DGHcP{Lqa%+lMx+ZrarTKHrlY z{jiK%Nljvflc=J2d8wRh$eKbhVR@J1|8Mwhsw5oNZFEV!8(D)^HU#eW(MHA|e8zhg z>Ak+b_8_M~dmySYCAmJJU6GeCE^t5V=Q%D@K$)>iu1(Jju3Oo#q4jN^2RHiHQf?(h z!3raS4snSkGEQ0M28V3?*go8Hfavflj6ARX0e|{?BrYPmYt=bm)6*_xXB1|yo}8JD zZ-U9S7p9Ubi%XmmQX<>4J?Z4_#n-l~sE2M0;>u5+)ZwfQ2q`t_cIDWaqw~u4G~B4G zx$~cbo?M-*CpcL}Q@RPmC%^AL;e@B$nz{+p0Lzh68y3s@y8=ZcXP{W!-1BbB{=kMN z;hF{l8UE4X?$`spY{RZ@LRFRJt0cE609CvMck&o#M?jYYpoky$uKPR(@Po^=h$;h6 zhMkjN!+}YS!Jx6?L|w#s;jZt}&#LTti z{;?vfn-x-JPk=zg6ZRr^Z>(iMYPFJwWcG8yYv2jeHL{SMC&P>&5Tme@TVx??;wkcX zMh^=6C<);jVJI^$KOr5kzp;46e=TeH=i-#uNp#Qe}|1tn2M z+ePr_LKc0(;rx1_(lMXNJX6Z-)h7olCx^pB@&1(ZAlkW_hvlu(Ae68#i*%+1xWdn9;7pgVqcEwMA_ z9pUWSG)No82r3r}1XdjlaXWtD{K_-`V$zR`kRa*0F(CofS6{z8x9JXIkh}sGpr0{J zD9+qa5&o&pX-eMd`b#eH2hs)q*#(AlkMX-h>^=qrmZn;v#1k)hJ<~k7Jrtwvhc=$d zalq4N$ zoVK;3;xlXw=Z?V5vtJsvIbvS@Oo23@6Paa??#+_suT@2=opCbKzN3CZtAJq$eF>J- z*J+2{wD7jCanDAqG3{bx>Yhx#)Ins#1=5V!*_LxmcrP3!MMnr$XW&hV7fjjce%H8i zJcl$&F!kGXtt+)0P6B0v2z6qedJ>RSx57v=u(XLrm=e4XL_trf5`yS!Fy>UvJ>kNj z9C>MkGYq{%2p=mB26X@vV;jS$;?CyNNs|QINk@9_Y&Ey5TDORZoTeHsBSvX!bpVCo zU=R?Sz5no$Z6~_XAv1kzp0K+ib3JLjL4#?&6L}d`xlK05s$6b3*Jm9Nu)K*Hu8LjB zBt#b{@Z$h14urtiS~74}!h8qfK}wXy;ss0)II4z{gcU(O077Cpx%7l}y(8LD%bsTn ziUx2}rOz49D_eBqyH_~8bMo%#v>;wN;~4T(NEV4Rj3L_%j^{5CP31(qb0Al^@h7uN z#5K-z0=;CjlG262QtcqzUNE(0F4{_rV;xy;&+n%E8a_LIW7}wvfXWe3B*Zm47SF1Z1g>H50_lZ;8M6jyGbZdrKj(dn{iLE=d zL_h5Mf7QPNXqu+F!R|&b#0fCW>$$64E3#AQ))A`9{odJetPwbI94o!;vR7YIHVe+a zco2sx`Fj8<*&Xmbu7fkw@KI+ls;A6BSSB7Wqg!XkM^|uH8`hIycV^)rnf}Oc+!kp( zs}`NO`S+c+umVTy+Jl8FMV{MmURBGogHU(UFpm6Gdp&A7=8OZTH0<| zSla&CeQQ;_-Rj?Oo^s+bVfK>K4&R_T!Vt3AFfpS1G8#OoINf0*IcePD{;-S@^)2gG zi>kkLb3zw3o+!iCae}<@C%Z~#ypky%un*y}{H{)NCULPHFQ(-jD&ADpqvxhsMZ7Ji5nlPI@4Q zlgCOt^ofPB;H{ppG0mKTp6Y?K=uHb?cFCgwv!p^dx$wbA4`P>SR1=c#GBz>JWb)?_ zhs=x*wo%0RjOg?BR5a7^AiD`C;qVS)5jb&kkqpa+G!U7dQ&`tLxu&VCsU{zXK^Vu~ zJJfSY3Y_2F&w%4iU4Tte-S9~po=3`0u4@i=1kCBfJ0w*fW_6o0O(cm+^vB3|7I#&UKVj!IqgHg1amhk?!$}`#u#H$Q#(Nz zKyj}+44_*9=`4e^(Wj0u8nDBa$ zA%7nM`pDu?{Deja9|OuHTQ-7GkrVo`wudsTx4Za1E3*6v)_>hYc-Xdx{+x9abA8u} zycG+k8HYJ18n$&@Ovkum%JX5 zC_wD&7XaYllN*meD9n?xNCQ^Svw`CGb+L~5R&!;OX-ssh%o@L!#nL~wr>AdgB2xrS z$^}Eoq<$?6liFGn^H?+`rM0#ti-3=~MX(m9ti z;aQoQSVkH(U582=L(_pX_(tO5RG*{+=ua0r$~@?i0P5rvOJzpv{)XD_nM(gLGRts_ zd4|Y=)fHczL}^Xs4F+{!!Z%0*7MtmRD&36Ub&m!ML2Ky{d6BbPKQUNuw2s&<==97_ z$AX^q*WP!oU`S#s!*dI!6AENQxJ?61EN$4du<-e!1 zZPC*C>7FD|kYcsbqTqQQa;}nU-FH9~cIW|MvH|sRB%gEJy;vn1nD%qSmZ!0y0R=U+xROUrV@f?sg&Y%y*kM zy~~7yCS<nJuH8`qd09;Y-OLkY&@sS0RUYIOh*Y}(iYyK%F7JUinlo%Qo5y|((PxQGPb^4 z5c93Kj>QPM<_SzsrNPM+rq5`ML7TcUm0Ul7_Rj%beAy=w6Jt)AND=CQ`AQPQ|CwG3sEwDtEGc~(g{?9`zz#Uwt3FDXQAZZh*M!Ufr$>tLcXbx;E*VLbuLrS@C{L}E*yY4 zPX&}$Obd*F9G`c+k(`3T6fK78&fuMGKjeU*xrhaNZ)v!U1Ff!>X||&&wTec3 z|8o>G+QI1l@m+>l1>B9qRo`w{^M2WWn9Wamt%^uU+7B_ES)lY@VWsCwJ(-Moagu~g zKv={gYTx=VaoKKanIoS&mXAmP!N4K?xpXN8yttkLj%&Janvn- z?6~Vh%d@NJUksW*VP+q?GOi_CvIe*z4;?3-0P0HMMA^AcAD+cZtd*97<)O0%3iv~w zA)V(8G8IdvfmIZ52FPH7DE!R&Un~BrsSSiR_rDzZ4PCE0#hJ%-Y#{eMB{2z{pss_v z)gKpbt3Pahk^kGeE6@OUTTq-IL`#kr+QxbKOj;6tzL%1dIwFvQ`6Zpz*-`j({}`n! z->Q)PCe-hWcXu9)7#qmdL|{=C8bg~!%Z}zMBX}<`gy;dhPo;^Zr-r<)C^$Iw2*Bsn zXB9dL&YHbpNrfVR4(BH&$Gc>{ulrggf;vuY#%m0Oo-#?aH;&$o<5-IFlO%~%Dbhe! zk?cM-_*X@!YPCa)vgH&60fm6Ce;lV9N4JQU zN#ekl%%@ODunKB4m?HK%Zi`+84`BvM+sOt)BC8K3U=b{`rx0TdIqWwmzI=_E}Y?wmKMj;`Dfq-a_WHFq5JztPs3$f3kJU>M|BeCq-PO;BVheNW`!ra@jyU$LqTP6Btg?uV* z3LqT~$p`?k)-jw~>}--g>HaQ5Ysa6DE2Z<%en%`$><6*%7hlp5*%~!EvK)?CnwVDI z*SGExfRHV^tl_23=qJ$VR9)Gp^mJOvx5g2>&cQ3qt9!jGSwt9`WwnFT(AI4Oq;K-t)8P$--!Bto+NL~haL46;o>J8I4D!11PXyr& z0JVp^&{Df3KOaZLG05uWtWob61}jeF`;T@TcDZUa>>eA|J~xn6#F1S;Xuxxlyc6} zjW2#`SBi=T;v4E?O-aCH)hS-9mpVC8#jZ2R@Hn{c(K4J~c&u+=W^VQE^}?0oR%N>_ z85Sq8c=X-NTK|I)CAclmnTjChGm~K0m#5p7NKabPtn5IGY@q_3VC{rxsqwJ%=VZ4} zJM92<+YOc8on*{fIkTNNz6yBbK7D~qwuw`>DO>t8*H=C7!-qaNz6tK}I?W8^anYeY;V{G$T ztwZTFzIU0eL%E;x8!l9N5jWl?bSP!GSv1*IUTD|ahCkn}`W-Jnb>r)pK!L`+jB|CE`{KOUYuFgU-{u`a8*XYu%`YFyl0$Zd4mK}czlh6B zdl*d(P*uqp7>gzTJlw6v^h#Aot}4z8q$@!bHy{s7z;2-S-`KU0v~`Dh?o4l~{TY0( zL&>qr?HFyCSxTBGqwFP{tqE8p-*T6-8@&W`%VSKe>R-P@Nc}jFdf(hx{Mj0l?Q3O6 z$z?hD-jd1n`U%_9q`_MoEW8v$eoD=W=`#D1go%YEQMB8@KL=}u;Y4vjc{c5j$pPwU z&AEoU0&r25S2Ef9-`AfKEB_%PXnu1ZnDv%@a@Js-t(2L;C2EwXehZ?4YPI8M+sYc)65$?Kpn z^s($4XSjSjTfgWlM`5foVf{G1o57CLXw*!TXr^gWHN|NfHl`atJ{p{&EPe6xn(22* z2?6I@1M=WNK&7*8(6SThBPtAH>Oz_+64=~ze?tepk1P{?f!#UNL&f10eF(833#|++ z-FzE>+?VXHFo@v$$oF958dHs1tom9S_ueia$AuUpQ7}Y5T)&4$hr(s38H1a)te+l@ z_J`;k#JCJF89h%9PlfK=8XfNnfExTW{o&Bi!<$MLQ)^h?A(&!Q6$iP0p!X@xpmhI2 zu8q#l)Ww%1?E~;uY4@@p9A&}b=8#l(5BQU5v!Q7y&Bi?pjNXuqjL)hBZ23(cUxwJ* zz5xc+!FCeglvlrWPA)+zA8&$AHBkPpvNCVT!xjXD^nbOO$i8pwNM z^O(Os*PCz*4+tXB9{F_}Vb^sJ26&>vx}gHF5RM%CO!6WU(RoDzA^=He0|Kz?_hhCt z&@+#fVr=~BjnuzYKw|Jjs>~%5G41zY)E6ig&7ZE((!U;+bAgs;E9? zFTM(V5;H1oqM<&a&Orq&eVO_FgM|&#$Cx1%H_O(~>FFWx(ERzx2Vqes=j-}_#Jb}> z7#}ai@{CviVtHsR9mUbel>^J&=UvvBiB$|^OyXGe#Eh+`AoG{g{s1Pr=p7px@IcS< zRfc}CD?`d}hHwK3v}JAzhJapgg&l~*w9ttyrJ8aZWi)_X*4&XbyCBA4LOA4)kk?%p z8qbz*jr6`(?rEP;S`Hv!lYte|XJAi35+H0XPq2^E-L^nE*a>)!R$VV4AJya#434m{ zIjg&U83CX#wrPL%mA4R`S{R8v*m^4gUBMVPr4a<&c8D~r+iYz>OQ+#kVEDeIil9OriC4I!41OA?- zT;+S^%D=dlM>76BXvSoE?_KXmJm>G;;vRD@Yb`%U&_X5P9Frj^3d-oK%cvL>ua|)2 z?>lUz%cwD%+puKPklrne87C>W&XHszAbE2;mIu!o8F^jJ*N#9==JQ3TC8vWc-BYu0 zdFw9vvuhe-1g9McTLNROFUYlouyg*q$@DV1a|YQ42chBV7T%IgSg(~o^q%hXH+Bd2 zwvz84x0M_DN|YffLPmV7dP!kMR7P%e4mTE4oB4{h+_f)piA2_G~tTt%HPQO%JS~ezIx|FLuY;^>y>VP(i>A7^MDzoHb9Z z&o67d2RReBaMgUo5tb)G7gmT|FvYFA1A#vhVdsg3^ZQ`;A*0u|_u9&&k_rAd=A=&v z5T1?)`DsJGTVya-PeKZ@Yp^n$IyakT@{rbQKsGPE9%76Py9SbPQxM=}9{0gsZt|O# z^tegUYc2!;`G{N8r;*AJxVcc!W2D{$=^IGiqdOEH5PPk&gVozp$E--G^s=w}`POCZq?#q-h?8G03G_$7F zFQ0E4!$^XtZ)Nj(>rTL?R!3qlkoW;%JF$`QY8Tgo1*9Ch8XLJKj2~ckDH2-^@9r{y zC{f&g39dA_`t_Lo;x~~dywxm_EIPw#r$o%GtJf& z#OAi1Z$_*u#@_R?W;CIa%raJo#+fK7z2+Aq;N=m>OF1F??4ZWG;~SqpCx)8y9nydC z$l$u@UE21zB%l#noJ$jgHP{+A?6%v!^zvwWT4)JL5eUzMf7>R!`uf3Xdh#31^>Yve zOoe~+p*`;Sh|Z-(eUKA?^%qlv0GeE)$&k|>w=}MD4bVmBuLH9nDzL&1;}sg{d;M+h z`|Ii2F)QqFn*MrOBZ}$doIvO_N!QWd*>X@OXCc>9{ijb~rOo`|D?mL5D3VRuPFSS# zF`%rV@){!=4QF%?DJ(gQ>M3T6%?P6d&_4K=7iGPr{X5lKR}B*voN1P8#;!^S36ul{ z4ooU<>^?{MRvYKSWAZ*kh4E-c&;kEKZowWus2voJ0(bv!zvL0T{YC#KM=i927&TYF zI%by+GBd!fA~cU$t7W+HE}>y%4zjsh#Sx-H346HsGoCf=hee zX%1NjU`OB?Pq-``**cIHp+8lzyeeAfJFyyz4xP*QZOib#BT>#QJh!)Cb-`}bs0OvK1~vqB)2JjQxkc+D7l3t@ucg>!rz+;B8!?MkF{4MsSp5*=oGBR-rED zsmM{2fqt|B3*&Qx}0p9+HJJ644G^sd=_Fv`iv1(447DH<_|d z$`C<%&9Pq#ObGQjNPA-w&(uslF?r6^x(l1yml8FphlV0NO9;_0Sn|S#Jm4yK;9m5K z9idM(`0)*&)T_2A0#@#H~D@9gu(u;7yzk5q1$55(4geVh%H&?*~f#)$qBp- z8GcYb`lG9sbd%iRnOY=}yQGHkf4p(32$Xn&wmAWMLc~mK`#;;4*PBOf2=DRe&evlg zT$eRBs&LI%Yv0V7gG^J3qBRY~p>-@2LJNtFd&-3?SVBXKuU72sVJ&84wz<&U0=DY7 z(F$mUqMNBecsyA`GOXM+gBsY!zLAMX+;)S_bAAV9o;CYuUf!ub1eg8Qh~bnaD6&(IDc+M6?|rYCqxQO!1qWT96&P1nJI0tjwA!kw<_Ho#H6jAHAjL@1J%cWS8`8n za1J#>GiOrgdF4iV)5XP$Zlg+Jry8ufIkV#6CF7^nH0rlK+JDX2eo&wL*jw+{{n-Y9 zcv*f<1)$mQk;8%}MdvDx;LX0lH_aYHvL6wNdB)iJF-sw_VM%@KI+E(?=>j||?`G9> z-I{LM$uF!W!nnncH_7Ks6(0mIi~NUQ*#BM#0R*?rul^O7VB5N}?6!(tr(%&7o;`g8 zecihQ^t#ZbJeNi_!@1qkeg&5(fcYq)yS=yG>8-i2YR=i;tMeX+e58ZQK!K5Yw$aaf z$5_7+ggt?DqcVrXjL?4D$kN!^V6{r`R^mk~;>LNW_>tw@}L}gqG^TwZU*9;gS}4q?6CjI z=qXvK7sXNKJ~sPAeJFHjxg>c>@o|+i16&iCDMZZ6_tu=i*0?CVJTi5Qorevkqk8H^ ztlD^grT{S7=*&-+)~YD^lzfAyRD4{Npb^L!0vVRn{6S`VY@tpkfd^y=!%k@3RV-!& zH3Gt=CyBQ0KSuh9Sob16geni2+%ZI@e8{#>9qqQyA}@%UX1o417fmbB7&I1L#UC*+ z&B4h`VP6EGl8w^=n`+s>m^4jE-;iCC?E#q@9-CwUTJL_v-T#L0p>LAzd`I}1s6Nz0 z0jC^+aA^|tCVqNkWIFy0fRJGyGKz@t-^^1)h>Nf9 zdZzFCYZSXa@a9Q3UtdIod#b+0%ep?n6T3wY9qZ8z0Wg_!lS!hN>!e%2-#6%i6XeMOL4He{71h_TbtG&fY|ouyNdK0* zXVUS8e!Suw28Xxx!TUp3BrcAj9$v8XPom4mmyRJ^;_ckRA<8AVY#mkw+8Evv{0|GLdGA;0&X?L|VfG2rm+l}*);0244e0r?0zRCDvBWssbP;) z;jC4LxEx2KEl%eH8x)ku(r7iEWBkH}nu(PN_wE$57wMT560#$fPW!hqj8O3Qzsn@$ zc!SGXypq&ykPTNGS;-4hTjq~bp#FYGAYp(%X7Z87%?=vNvtUA!v3E*IPU}2Vg2)^VDqsR;XU`j-PqLAj4piaZO< z#QQ@sglX3jaxo<)8N1Eh^;5=%0khre5!LHGW)PXr7OPa;zW&C^Y^W#0LNQ(0aHv4n z1Ji1^ZHw*TazRSafM@E|6G>Q4%+C+51yz^`@AdC$NQkEA=rUyKj`jTNwRxJ9ym)2G z`+38W?4^~*5)%}v@bA2`PA5rky|cu8zbD<3v6-kK9Q?QMvKi|g`kiQ!M%A5DHL@~Pb zSPd%+nuG~v&i^(jd8$EP1$M){QPNHjFr9fQj!j6{i$SMa%l)KHSZQg<1=0#mc~CsR zi`Yt^&`4PjB{Uf?F_Ak{xHc6CZ*S*jd?ryYxFoa=4W?Ms_*G4_7?E6YDW=3?rHHO} zEK-w2=E?9FL^z2_X)b~%81Qa=NQ{ZjFf~AwR7eo7*+UW(o5++A_+S$hO6_y#jIQRz zh-|AZbdZJiK*Gb$w5W<|Ni+drNIxclJOJRxMa4+; zIXiSkNV;R&rbPIj961}Pb61GnF$Ti0fhwbL6UyS4bW;L5YeAMhfQPvy%7>@9b&I8Y z&39AzoRoXnb)Vg%L!Kg4)Z$mhKMS5o1x+41tfU`1 zIo^F=({IVy#)d8D@dhK!E1x99{HK)rrahIq7ya&x_S$r3t=EUpFw#+P-E%IxMk7aI zwcE2V>B7!p%0`_Gv=W**YI_9;M_>kX96ds;WHQ6Xdu;L&1LbS1b&cpU_i{)kVZRvc z*C77V%jjZPy4{GX;q3_c>yGzF%jiemAhS3=&XG9}ZT8y#W2@hu- zIb^R3AwP8#Amf|AEtUL4 zi4%v!g+}m?j!U#IIe6SXm^S$8o|@JJ5KB#Av?gIK7ihu5@Bj zV-thP!DPzQLj0 zsmAr0{`r>1#ZurMo1p%*yENZp-<=6ToeIUM@teD|)69G;FFpY@N7J;`=-=O;$#`EL z+G0xbd0WRw_TbME(%o(inBB0!UNPW-W`6<|#`!Q2Vp8Qh^B18>hJVePd@|1&lO8?a zZ*{T}Z`ZnQ%MTzu zljM@@T$E>$L~!;Bzm(X{XU{r4QUHVulS&BCKL7xd^5`i^xBBjXLo3hyNSnS--+9LZ z{bcb{$;;QSfKj8{&EsAj=+ZuEHFMHsCmDOW4#Xmjh3NWw$LKIoX#kfNhCw$s2hah? zxD$L}4gkpf8_3xci!xK)MZ-COl3j-hWSDAml|LiV-(X=XDNx*jXrjU!iWe$x9?o!22Up89#Oj-F$#>%>jsdPbOeo`c?8(A)e#MmUR3wq2Hh@FYEK6a_K<`hm{P|4_n&*Q( zk>ZoTEH|#be7V**rnaE2WbN{xpU>U+slM`X%e@BeV|@TsHpC2uru#Bev69FG0AqRi z^1ny6kNzz$s+51Ks|8w)pxgdpp3>Wg?tdcLn?8^!;VJ)>gfYEy2rY33jJy~ZY`h6P zm8L%@ytG>i>J?zgImPbK61%DxGpI~2*m6dx^#*0 zP8B>Ro;iGN_<3~5AnTFWBNq0G>{1xZvD{+)g&i{BV@c2$%<;=6ADfE=Rct)(us__v z-C`I~6!^p@aKXy$%P7a8{^OR7o5sP`Iw`xCM9+_D1&H7riNnN;%1bA8B_e0kQQi)6 z?NGh6qFgGeC=)x{&63fY6w&plc1bg8$KV~;5a+Z|C)Sm3swfxlJdRHz?c}IxtA)sg zfSm3B{oK3n&!2tfYNYkS$fJQpo4nm3Qj^ zAdSh{$;G8i?3CFj9L|h09@YHf(mm7>wS9SA`KTzkeBcuE%H=B(ru}Zpv|7qxPm{8Y zp-{WY)4ozR3z-Z+J&9r9CzAqqQ|7El=Ak-%N>@eG74)7X^(Y)#n5)QWFq(f|aE(K& z->S8o_>GT8^E|3{9b}qklSBEhSo{iEaFU7#Z5L*F=T(F10JdIy?jc6(kLrkVFUkS; zamG&Gg6&9}nmZ^Xc10e@dmq5`OGJRoxzz~15Zgw^`kJv=JPVg?1@KZ!;+n)br=0rI z(ftwJr^PHp72XDU{ds;pdZ(Y~W;wnHi5t^w@-ic|5Nr@n_V8^C*6gK*_K!JuJxzN` zLkucyXZHSu>st=fQ*6N{f-XE7z=kT7+?+;CWoNc7hE>=(1*9kye8GY39d@lQogzjm>z*-K#BthXB2pr z>uOn*ppNpnM;HsLS#fyW)BopPY9v?J)Hz;1N-nf_s+c~bH=d01+3MC1R>tE=DDN%r z`Eflj+$IMm>4oanwH)3Yv_lY?sG_l@RS`|R9e}p;>crTRp@%Z*PTNGXjdyV}S6)*q z=OmRfY$#E-yJX4^{P?{*C)`3#3^30q1H6oc znL55XJ<|4&g0?_eJ}#zE91fDx&Hc-A6GEQ0$BCpzRz!8v4-Zb$sodfNaa5QyZj%j^k#DA)kdGDh>2U^x;P#4r=aBdv;2{OQQL! zS;nAKqAn7z{&Dx_R})Mi1mYwBn0sIE>Sj?d*GaGmZ!L3_YU_1tIbr6~)6QlgSY+M=M;AlXUQt5NL=&Pr`i;E14C zHvCJv{#E0gdQAsjxgUn##qC7npLTkhe&!3io012uWi8F^eC5ZJd zh!MsK>MF?Ne%}?s+Hu!K1&Jf7go4%*<~UC*s}^6%>$`>3gwy+|I-$#ZxuLb{L!6ZM zUlQ-|P;}|7bz84i_}=nV26-2F@Z8tcRtSMK*L}RMB3mPrRf~Dd@zx@NlvQcgO9Mf$ zPlM%Wley3vj!q=ZB4Z)|RakziR~Pwp_4-W!W(T4`dX(0ve}MsZ7#r`M_}RZ`=J=_2;6|4eRQgWF!|ywsNQsDt1-R9sOjm<;#3x_iO!X3 zUwm~8=oD9jr^~I z!`8;ZW)|$+w?GfCvRB(&?7;=c%?%Fk_Oj3&-_cxiWGzkiJYj45XmDr-Cd_yZUb?+92|2l7#-I^$mq_8nY8kvSh4}fPWM|T$hPnvQ!zBes1zmjqs zDhxnog^^hF8oSw#Ifo@+HM;yIwFbau)FgxMY7yh2U4>3x*_;Jr1&dBEj0?sEDkPZ< zcsW@u2-uN9l_4$6tP3MUow+m%aoH_#yFVI<=>#%(L>YVynEiq06z&8<+9$2xS~1Ec zgMH79^3z0vmZa7sXPoQp6E!bO1X#;i*jtko|2oFZMy*jhsYXBBFr`m6Wd&H14yL>l zc)jm-9vig$E~ew0Om5e(Ta0eh&9^S!01NS<)%6@9Z|=&NFz=bEdpFDCY%_QFm<>HE zmQQlsb}2q_=jeJ$$Xwts@%P9o{3F}Y5LW#M1_%S2ai44q4KBm+(9p_de=@sdfVL!< zUq^BA7v|wB&*F^?6cEEVGJB#stx@f*7`eR2PETs0S<~=Mcss>L zddd5v!(9i;A~unzw7Hf5D4FE1@I|xd@#K6uix@LenZ54t!XOrJ&{HDU4LR7Br@)E zKi_Y1=J2IGkG(GIeZMeY*g3#`D0-jI?dSbW%v*1jrxeoL+?o~FKk5%2&=m{T)ns%e(nEccX^cPS9bL6{3$UHLw=Ak!wu5=K zB9$=-AnU!O_UUvc8kch1zq7=7#A?vd@J)dBF12GG^oE+*u5%l{_WcnA2_TE)_zwQk z1BV@Mqlh@%nL0qfHo7w@FEQx;A_7z#=~Sxh^lUPcphu3cXW2uHj*|N*NGQS-Qj1bK zO+R}Unb_jXiE*^6e~nH?M#8dT<^UqVnj`UL^_r_zIF2w7VilhjUc`_)m)x#2teVGn z##`G%W?7ECT$j(99vRcVNVjx1h4Z0uLCPCjJ>XLqR2ZLiknV(nbKxnpes+bu+jdMq z06jp$zewO@Iz8=RO5tSW9{4(sUJ#Hs$r@rqpfE=gE61~7Tu=}>RVNXr>GXVuLjSyt z5&O(-J>GrCZ_eK+D8v=2j@cY%Oh+^H+t9uR=`-Dd8)@hStyIFTdHY3LR+ttDH>yHc zOP-d5CqMoWrQb9$DFcgVbEL-Y(dYTD1N`7^7|>hYCO#E55rhaI^M`ABiSZ4d6BLQx+q-RBNd(F>YQ)78<$<4ST@I!z8z)2yh**S1Qo*=* zvF-W>@z~StSa`^qzQWp}8H*Xq`aNIWQtR*V`)Z%s+`0}oU>o>RyZ<@<(#3SO)FtEi zYkOXR^p109a;TZI&Yv(-ys0%&6+m)Ea>CzmKUasP8N|USqVpP-rD2^+$)J6)CeE@n=k6z zAtrboSj%0{4S_8-dqlP~@kcy6eo%0eu&9Ijn_KRp6eZvTasFsRI8IZ(@4Dt zIii03s`=e{S-;1tkI+D2q(Bit5-3SQVoOj7N;ncRz099lv$e0PZe~?of2R7$)6`{D zia;Wg6Qa4Q=)eS)GU_{}gkIuLso%H~1g!%}qL`DI`J0kY9hVsI0MG$`vk8Z@WRrqE zUGk5&SF_i`2h>~GETo1fz&-l3eA2*H zY$+rA@`F*`+mF4tH?Yym6@eYmXm`P_kk z;kQ5AB|yY@7VSDB^GfdK!O0!6sNwbZtr2pW1rskdPF-zC-Mb~{xdRf%onv^#occbsV6q%+f1oKlav^ZqwXV*m6$QFl;qV1nj z2;5R%`rgbd5j#!Jzls|@#`Ebw!4Y9&2t{Q7l$?Lpf+mC1hBubw@CI3AGT)FptGXtK zMoqe~s}rQoo_U33xa=@z-+Q_!gKx4da(KgiON6`@gea~dR9Dc;%eIoAKP9h-2M{t$ zNq66h2de*8$lR?+Dx`pEd7dLtJYiyr&`Y}3t0~AO+9g&|QLYG&(Hw<^sz{x%5^kQY zFHMQ#7D^(OBW(}5RV-kpsD-=17t63Yn8If&5bT<#*CHhCdW|~KmK9-o78C2v- zJy$xrhsIWkAh1txDD^KU&Y=w+wrOIH?Bj`5KnLGG;J%8_M03l7Ml~XUXf}rWY5V3GbTED0!?cTCww-YKi zS}p@t|0**>C0|8Y-S66O)#%VV+BD>`TDH<#;5wvO2e0$)1ejE2s-HK z?HBQWBuJ0+V9MZjyQ0pV9<-P(Rt;n&!!4wH?ACho4$aO$$vDJ@O8=<%zE%1 z!Q#}Z`OiG6yHyiUO-^@$n=5WC?_3$==U}UaO};{+C~p?~vn7k{Y8@;lpS`^(6!>`3 z{1Xt@PX5K}rgidavZ$T(RqOhkS+;3PqqQx^IX4hx0pz!&kW@YDJC?bZ9~f-rkhV5^ zkT$eYy1VQC;otBou!3TC(qfu-#=ss_{E7L`ABg!ZOfM~T9x1fmj5|Z694YUyd3af2Xr}r}4FjE!3aeD!UVt#_LKtFA04=7z+j2Oz} zVS4FPYp|Y0T2mD#aB<)@uLsy|uR{H^_o;^)rU8iFSNge%XyN$Pu>m9lo#0dir|0zI z6Le2Z5yR8zbDu@3u*sELO{rY8HKs;cRqI#64Szx>0IKqSd!E!{IEJz^CJ3GjZI037eCdwTeHG(F*3FW%{4a8H8m!g$lU#i*mn>vNp|1YVG>)feLCEpJso@v zdqs?d{oYX+xMi(%;ZjQXDO7-whfHUP@aS=G+4}J7S2`U>!Y#+fhZeU<$z+Q779Sdq zUG|(fUHNa|Fd8!)pWKbzIx7 zhBc~`(>K|BY}v16WN05eYlA% zvAJsB+JDGoP1PyM=zL91X{uV%8;_xILXu=L^u(#H@g6Kn3YHfOTq0pmC76v0AGI`& zFM=VSXq13-ijkEXcgD~3oKfw-zgaSuf?d?IN}Prz6v{=g62KItdKw^6rO{ytLJh0Z z94yuDmty|SsvT+X&-3_)vsay-OaDz7;+#VX1;aoTJb35eP8O8W^YgzS&YS40yLaw~ zo!#_($6lZHH`Id%eXRvp03Ui+3p@jlX_Ed=_rE5w2y!KJm+XVMc|S4is@byoDbKo! zXR9Q5c+AU90tg2z>1I}k1DP(TBFwa%gh5sAw!7xSfd?DOA%bZ+-0Bmk+V_$?2vfah zODH^Z^?UUd zO@ta=c1X$BsBon3hl7AnC5bM{HkZAHnlKOHum_HNh>}UH|4uS5I$OYC!trq9!_r)P zM|D8gOQW?E7%WOt2Mus&c4%!9JO>zY$so~cI7sj==0yXwj9IzV{llU5wdK4{TPoiX z*zB3@ISwTZ4iYVgo0_Ty4GJnTj3y2a{*Og%*g2|OaZW&78&HH$yax}!E;1C96f=N+ zOtJVhF8P;2-5=s!N9@*9B-^LsYAas<|MWT@E2&avcTDi>IR|VB8DYrZWq^!t>ya`_ zP4vQJ8z-?}cto-(SL5^_rJmc#c|s^Pf83_>X={dLQFrr7b8<6?YmAuNj5zk;32vi1 z^Mef`ZyriYe0v~}_&6Y^LS-a1FhKFCix$=`#{$nW6`W@J*F3+n)qr!q1{-abpE7o0 z!TcxjNg^tSnu$Lja6H&?&e-=M?D=)s?4mbHtM{C~lY&t;jPKJ3Zp&$-g?gIPY{U$T zA3{U%rnBFDpEaD84>lZgq5i?+uokcRoY z+10QDTu`0y;$6x>BbVFezpT&kVQ0-QI0hPpK~{+)jm5YOlpVsA=Ww0j8xv}+gTY}C zGS~G1yfEICw+vPiZs&|NZ9|q>a-soT1+?fa6>DeGuD6=ciF7N3nWQrjeL*lh$+UC< z%P!E(vd-MT$@y%KQBkq?YP#F;mfOavl*kB{m1lP+?|f^RolT}ouzd?sCC1*-T;z5g zp}JRFyG_yUcaH3%1`8xCpQI?v*%D%;Ww1ktkt^TfB*Ql#)TV@L93M?X3Ax?S+nK2l ze6~xlt;Qf(V&V8qGa48bVC2ZjW4en3qzIvfds^*9!NBi7gCl$T3Y&F-GorxNrFjk$ z)@U;ebVJ1lNB;B<{Pq^slmv~6g1d7w42%{%s;f$*emgR-Oa4th>WA3=q6hLJA?~PG zDXp^A5ICo@Sdq*7iBdebk;vG_F<*Lvf2*PufJ&!{JX6@h5f zQ7XQ0=%g>`WB78he7$^_Y`SG%HhH`Uw0irUljf}rBhCCQ;c-IB7OTz=0 zD97-#OLFu3C4uNIj$$W2iJkFXD8H^h?@|-5i_-bmM9;SdinYCbn_#=!E}22p4l}m- zHjwMOlN9j?rDG#Df- z5G6~K0UI3>D@nRu$obFZF7AQrsKbc!h*P>E^rf>PI0nEHY%N|Hx$>ScxZEq$HM_?g z8*SuJ_}7pKG3a(#`P9wnQ0;-B-UBv;znN9&ozyCaN-MSR?~G0AM&Z8B2rl^5guB$e z&bicB^h=kU)LhluIC^@mvLNPm9EJQoYg@LdzF0qo5dE6A&EwV|hpN~vq-zA#)}xZc zOsCq6*l!@u&^pzlfSV)L0E+cKkY~$E18tUquu*)k%YEE^m$mU$W4jHf!2Re|coh z1#nDZu2gTBD* zA7YXqqQ>mW-ZlTSx7TQ;ZRHP3E77@j zTJIAK_T%!QrrS$I8(k0~;w4LQ;iKAf<-Q=hxxHhMw$=?R##R3d6sn3_zsqi;8RZfT4U)g!bj*ef-`t2Gwyzs466i#PPv8X7E2 zmS#%-P3~w*+)Xrn{?jz7ER7qJYp%h9RtyaiVr@mnDf@m|>(lY?x#*-rs;EiS zeMNDxqvw`;`{K!3rP>@PE(@Y8nlrJ%A)_h!r|^^}&~`AbFZv{Jr|ZB)&@+Ip02n^V zR~l6b=(`2iz{9K)mOeho{mTKr7Qhhe5Uw8rG;olG>0Z}GOJ`IHu)M|0BR?Ngv;5{3 zF!a>XImGfROkwWy6aa9Mf(MnrXLnK5bJZ$Z-5b4nH8FPVn404RUcX*jy^N$(Su!)? z7i7r3(K~LjTvf`Kp<9!y-L+hyBR@GzWj#;Wm1aV!3*o1{k(I~TBE-WzK#xODn_atUzr=Hs=|qu?-^M2;UFP#QQ5G&em1R1n}-?+6`#f9JT7d7z35MR zOYwAB&cx(a<|XdG%Bo&Ffz*VZ%y=+WeTVLGjynDK{EaXZK<{xC@wv3UOL%sKjFzeWt221N+S`T0zglp! z*0yzVtaGt6mhh^D$R$%waYcD=Nb~P=8~C+)!_$$CLmQyhEEM0N%!#P8IJ(;uH?4G5 z5S6en*m1lG?aLFwg3{^S&mT#hOn0ve(?Bw`-9Z0xsTtbZF;pEP-7p@811NQYnkdUj zG;Z5NW*{l4G$J>$A>GNDYZ_ly6X#mUP)2U3BqyQmlq%F-W!o$$Rt&_|pR?HB?66F3 z(Z(ZJf<3*{F^RG@>9CDQ{uYjwmimvlJU{~@iHPf%4I6ehuG;_d-0354x(C*8MUPz! z@nDLh<7+GMX1;V(sIvea6ZP&2;C|N<4)l}9I2a<0NRXEPlF3}cf6%e*DW?%pRFG(gN zb*T35SGC$=|57QDX!I-EEIq@w;T6?B0^t^Dnd5+DLr2;RD%O#xGLorgSx5Qx*&lc< zJt-bY(|WwRty3fB0?`hqc|$zw{@h3u1I)v>L*xS2{I!df8@E@2!U6-dfwED2C0$@f zUL;-&<(nEoX!I{VFbQlijA4XuG_ek!#iM5 zE5A8?TZE#MW$b<>Q}Y>(DLhE`?DHHJcSL3OW43DD17c(*FatyK)oiFd9I)dJ8;dBC4u~SvWadku3Ei`L7y@Xeb(@V&%BaD zheL#$_=a?Wga#ySI&`$@MM@@Mw5@sXktTG_exx}F@Y=p>qmV)szR*sY_d-w+48&yS z#nwK2Qtf4z6m#Q}I_1hWX?k}W$VzT6i-|93PGiR<7q^h2?eCnbNJrRZRrsc2vdn9a zovP&KVLU#OCmnXlR>;<&i!S;3UoIrC4QT^+1Jw&_&36B4YKpoLfBea?$UZr~*K4C1 z5d_{$GxYUvuFLriiue}aa@A$M%;e<%JA~(ES9dpd_Ozm5j5eUwdJiY%!sdLPwl5yA z@~&I3;Uz;Ok0!?CCgxk~!f!ZKO|8kCEw~5=j!)J;q&y<0lXcSMjP2}XCKpno+uUxK z>+-uUS3rSQvAV76-oD-XK%45krn5N?gZ%RG$^8OUJc`M${kzdNYiMM3J{HohfsQgZ@+& zlHjGA6;k6>;ac|XZ5-Fz*U-3k#`p3Xx!V17_(Yn0SXt^2?1REm#muh=bPp*BF%AX= z)%Kkg_BamZ73={!zV+Vq)nS&*Tpvp?_H+BviWRfV`%TMdrAuSRO;#)~Dc^WFQ@9H- znq>3Qwn7I4f3O+&@3HycX62WaI=%hMf#j1PY04RxIyJQX?zN3kV-a-;)qDN44W&})6vU&de$|s zZ|PhUos!pHpQ|$HRc?7)B5c2360AAe4G$Myk1 zE1c{G-DNqF(a|X}v{URQ`E9q{H3=NQHB!NP;{xB7^E`reIG0Yk{^MZGc#nkfNxx%MK*u+Gv*AHq#_CUMH;RwMaXpqwQ9z-6a2r@0oQdQaXlvhckE%Wr;f1 z%el|BN+(&YJL!ACcantON_50{rZ*+0KF+k%q|3HARLxEP^_EIzNjlDtioR)SrCJ>Q z&BnCQGZr4Vpl`0#Yc*vV9rcIr3FA;k!mY5`*`x*j6Szg7f9jh>mhwbP+rfZ5<8i}x zPi-bpMZxETeOLu5QStLeW0o<%ys_LQkdJAsEj|do1qXLvvK)?`2D)p^BbufKMWoYy zn7K1^%FA)ix#gebKaqhGvJaRPCrI~=vd%`@KJx{v(c=H{0u`IxlYxYcC< zSs<;=xZ?566bT@tYDyS2SVyYiuuua>UAb@jhf^?}m7ib%|59-+%oC(L3i<+Nn*VPN zdtcS6!i@F5^>aNj;A2t6(K%9s9bq9Q!Rso8H^?+yEfDdlnOq2)i6t26y)@jDhnjD` zs9(y_0Ss@)<0BDHXnQAF?+fQrqR(t^*1GbNhb877XE*4!p4=MYAB16)UtgcKZjjd+ z7e`H2G+qOreLCNU^;v|k#(mjkAXtnTwsbz99c;#KB>E3-rGUVe(@kSq#Tw>G_Jc*% zFK8OSTv0}ar{eOm`ffI&%CsERg|HFf*{K2FIn>PT>}Y#|Xl<42ver+K2YffH;^$HV zkW7lsI{#S9I{uTI)-BGZCG5D*zpew|yt>&ft${k@7g!}<9{ip$dWr%w8y^1Mj1F?Ug^9nwCDuIXZHt%b0sF1{9>AXwXg3>)-#_83 z{ra%ojK^k2>MDgj)|;@~I{e@J8$Hldw4-S30h1^6hX>WWFK(PMdpLa+>iUu;^t_6k z!AV4Uxat65xb^@Kq2U4bPxAE5-mVTt*TZ(kXjgYo!u~ZW6wc1lMc2KUo<7u4ez5s_ z(Nk=t_z!L*wqs{|JD(eNY&Egwi5AD#CZvvb+HhX?`ExiTE~s$fu4;>a0&YNbRc|lk zc@Mp$!CcCKQMZ3TZzp>(n~m=K@E)zF?CQ0&-HvVUoqgWZVmN{#=(c{r4K~woy!ris zm`i~(17V~{b;m1nPRE!r`w^Bx!Y|@pA1B(7G+T)!=ZJum#|`F4Przugz9XHyYgNto zo_fG+0q;cH!p+&|#F`a0%^Uw8S9>20+g@du4b(6?C>NHP4{c&*#rsPfIPyCk*ilxR z)r+{eVs|h{rWq8+(L>{DG5^F%lf%KtbccAky@pYV&avBdZ*uM&3VPPYQF67@z=WAh zg+37`gas5(ijrz)hX}JRhJ!LUGyG9Z42^F0%(Ut64Jc(7016)(??bC{F)q_1y_;7a z)~QEPsm=9#%{WR*Wpd~tLtOEM{!RM≠dR0E9ICQ{-tcR;@{R^I5P#1GUH!p=-{c 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 literal 0 HcmV?d00001 diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.eot b/frontend/src/documentation/fonts/roboto-v15-latin-300.eot similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-300.eot rename to frontend/src/documentation/fonts/roboto-v15-latin-300.eot diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.svg b/frontend/src/documentation/fonts/roboto-v15-latin-300.svg similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-300.svg rename to frontend/src/documentation/fonts/roboto-v15-latin-300.svg diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.ttf b/frontend/src/documentation/fonts/roboto-v15-latin-300.ttf similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-300.ttf rename to frontend/src/documentation/fonts/roboto-v15-latin-300.ttf diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.woff b/frontend/src/documentation/fonts/roboto-v15-latin-300.woff similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-300.woff rename to frontend/src/documentation/fonts/roboto-v15-latin-300.woff diff --git a/frontend/documentation/fonts/roboto-v15-latin-300.woff2 b/frontend/src/documentation/fonts/roboto-v15-latin-300.woff2 similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-300.woff2 rename to frontend/src/documentation/fonts/roboto-v15-latin-300.woff2 diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.eot b/frontend/src/documentation/fonts/roboto-v15-latin-700.eot similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-700.eot rename to frontend/src/documentation/fonts/roboto-v15-latin-700.eot diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.svg b/frontend/src/documentation/fonts/roboto-v15-latin-700.svg similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-700.svg rename to frontend/src/documentation/fonts/roboto-v15-latin-700.svg diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.ttf b/frontend/src/documentation/fonts/roboto-v15-latin-700.ttf similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-700.ttf rename to frontend/src/documentation/fonts/roboto-v15-latin-700.ttf diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.woff b/frontend/src/documentation/fonts/roboto-v15-latin-700.woff similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-700.woff rename to frontend/src/documentation/fonts/roboto-v15-latin-700.woff diff --git a/frontend/documentation/fonts/roboto-v15-latin-700.woff2 b/frontend/src/documentation/fonts/roboto-v15-latin-700.woff2 similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-700.woff2 rename to frontend/src/documentation/fonts/roboto-v15-latin-700.woff2 diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.eot b/frontend/src/documentation/fonts/roboto-v15-latin-regular.eot similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-regular.eot rename to frontend/src/documentation/fonts/roboto-v15-latin-regular.eot diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.svg b/frontend/src/documentation/fonts/roboto-v15-latin-regular.svg similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-regular.svg rename to frontend/src/documentation/fonts/roboto-v15-latin-regular.svg diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.ttf b/frontend/src/documentation/fonts/roboto-v15-latin-regular.ttf similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-regular.ttf rename to frontend/src/documentation/fonts/roboto-v15-latin-regular.ttf diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.woff b/frontend/src/documentation/fonts/roboto-v15-latin-regular.woff similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-regular.woff rename to frontend/src/documentation/fonts/roboto-v15-latin-regular.woff diff --git a/frontend/documentation/fonts/roboto-v15-latin-regular.woff2 b/frontend/src/documentation/fonts/roboto-v15-latin-regular.woff2 similarity index 100% rename from frontend/documentation/fonts/roboto-v15-latin-regular.woff2 rename to frontend/src/documentation/fonts/roboto-v15-latin-regular.woff2 diff --git a/frontend/src/documentation/graph/dependencies.svg b/frontend/src/documentation/graph/dependencies.svg new file mode 100644 index 0000000..35d3fe6 --- /dev/null +++ b/frontend/src/documentation/graph/dependencies.svg @@ -0,0 +1,590 @@ + + + + + + +dependencies + +Legend + +  Declarations + +  Module + +  Bootstrap + +  Providers + +  Exports + +cluster_AppModule + + + +cluster_AppModule_declarations + + + +cluster_AppModule_imports + + + +cluster_AppModule_bootstrap + + + +cluster_AppModule_providers + + + +cluster_AppRoutingModule + + + +cluster_AppRoutingModule_imports + + + +cluster_AppRoutingModule_exports + + + + +AppComponent + +AppComponent + + + +AppModule + +AppModule + + + +AppComponent->AppModule + + + + + +NttGanttComponent + +NttGanttComponent + + + +NttGanttComponent->AppModule + + + + + +StateDialogComponent + +StateDialogComponent + + + +StateDialogComponent->AppModule + + + + + +ImplementerDialogComponent + +ImplementerDialogComponent + + + +ImplementerDialogComponent->AppModule + + + + + +MultiselectAutocompleteComponent + +MultiselectAutocompleteComponent + + + +MultiselectAutocompleteComponent->AppModule + + + + + +FilterDialogComponent + +FilterDialogComponent + + + +FilterDialogComponent->AppModule + + + + + +PlanTimeBarComponent + +PlanTimeBarComponent + + + +PlanTimeBarComponent->AppModule + + + + + +AppComponent + +AppComponent + + + +AppModule->AppComponent + + + + + +BrowserModule + +BrowserModule + + + +BrowserModule->AppModule + + + + + +AppRoutingModule + +AppRoutingModule + + + +AppRoutingModule->AppModule + + + + + +RouterModule + +RouterModule + + + +AppRoutingModule->RouterModule + + + + + +GanttModule + +GanttModule + + + +GanttModule->AppModule + + + + + +MatButtonModule + +MatButtonModule + + + +MatButtonModule->AppModule + + + + + +MatPaginatorModule + +MatPaginatorModule + + + +MatPaginatorModule->AppModule + + + + + +MatProgressSpinnerModule + +MatProgressSpinnerModule + + + +MatProgressSpinnerModule->AppModule + + + + + +MatFormFieldModule + +MatFormFieldModule + + + +MatFormFieldModule->AppModule + + + + + +MatSelectModule + +MatSelectModule + + + +MatSelectModule->AppModule + + + + + +MatDatepickerModule + +MatDatepickerModule + + + +MatDatepickerModule->AppModule + + + + + +ReactiveFormsModule + +ReactiveFormsModule + + + +ReactiveFormsModule->AppModule + + + + + +FormsModule + +FormsModule + + + +FormsModule->AppModule + + + + + +MatNativeDateModule + +MatNativeDateModule + + + +MatNativeDateModule->AppModule + + + + + +HttpClientModule + +HttpClientModule + + + +HttpClientModule->AppModule + + + + + +MatDialogModule + +MatDialogModule + + + +MatDialogModule->AppModule + + + + + +MatProgressBarModule + +MatProgressBarModule + + + +MatProgressBarModule->AppModule + + + + + +MatRadioModule + +MatRadioModule + + + +MatRadioModule->AppModule + + + + + +MatSnackBarModule + +MatSnackBarModule + + + +MatSnackBarModule->AppModule + + + + + +MatSlideToggleModule + +MatSlideToggleModule + + + +MatSlideToggleModule->AppModule + + + + + +MatExpansionModule + +MatExpansionModule + + + +MatExpansionModule->AppModule + + + + + +MatInputModule + +MatInputModule + + + +MatInputModule->AppModule + + + + + +MatCheckboxModule + +MatCheckboxModule + + + +MatCheckboxModule->AppModule + + + + + +MatAutocompleteModule + +MatAutocompleteModule + + + +MatAutocompleteModule->AppModule + + + + + +MatChipsModule + +MatChipsModule + + + +MatChipsModule->AppModule + + + + + +MatIconModule + +MatIconModule + + + +MatIconModule->AppModule + + + + + +ScrollingModule + +ScrollingModule + + + +ScrollingModule->AppModule + + + + + +MomentDateModule + +MomentDateModule + + + +MomentDateModule->AppModule + + + + + +MatButtonToggleModule + +MatButtonToggleModule + + + +MatButtonToggleModule->AppModule + + + + + +ToolbarService + +ToolbarService + + + +ToolbarService->AppModule + + + + + +EditService + +EditService + + + +EditService->AppModule + + + + + +SelectionService + +SelectionService + + + +SelectionService->AppModule + + + + + +VirtualScrollService + +VirtualScrollService + + + +VirtualScrollService->AppModule + + + + + +SortService + +SortService + + + +SortService->AppModule + + + + + +FilterService + +FilterService + + + +FilterService->AppModule + + + + + +BrowserAnimationsModule + +BrowserAnimationsModule + + + +BrowserAnimationsModule->AppRoutingModule + + + + + +RouterModule.forRoot(args) + +RouterModule.forRoot(args) + + + +RouterModule.forRoot(args)->AppRoutingModule + + + + + diff --git a/frontend/documentation/images/compodoc-vectorise-inverted.svg b/frontend/src/documentation/images/compodoc-vectorise-inverted.svg similarity index 100% rename from frontend/documentation/images/compodoc-vectorise-inverted.svg rename to frontend/src/documentation/images/compodoc-vectorise-inverted.svg diff --git a/frontend/documentation/images/compodoc-vectorise.svg b/frontend/src/documentation/images/compodoc-vectorise.svg similarity index 100% rename from frontend/documentation/images/compodoc-vectorise.svg rename to frontend/src/documentation/images/compodoc-vectorise.svg diff --git a/frontend/src/documentation/images/compodoc.png b/frontend/src/documentation/images/compodoc.png new file mode 100644 index 0000000000000000000000000000000000000000..9c85608983ea4e2b1e550a9553ed49f2479820dc GIT binary patch literal 18224 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 literal 0 HcmV?d00001 diff --git a/frontend/src/documentation/images/compodoc.svg b/frontend/src/documentation/images/compodoc.svg new file mode 100644 index 0000000..e841815 --- /dev/null +++ b/frontend/src/documentation/images/compodoc.svg @@ -0,0 +1,185 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + compo + doc + + diff --git a/frontend/documentation/images/favicon.ico b/frontend/src/documentation/images/favicon.ico similarity index 100% rename from frontend/documentation/images/favicon.ico rename to frontend/src/documentation/images/favicon.ico diff --git a/frontend/src/documentation/index.html b/frontend/src/documentation/index.html new file mode 100644 index 0000000..d2f6868 --- /dev/null +++ b/frontend/src/documentation/index.html @@ -0,0 +1,413 @@ + + + + + + Application documentation + + + + + + + + +

                              + + + +
                              +
                              + +
                              +
                              +

                              Overview

                              +
                              + + Your browser does not support SVG + +
                              + + + +
                              +
                              +
                              +
                              +
                              +
                              +
                              +

                              +

                              + 2 modules +

                              +
                              +
                              +
                              +
                              +
                              +
                              +

                              +

                              7 components

                              +
                              +
                              +
                              +
                              +
                              +
                              +

                              +

                              2 injectables

                              +
                              +
                              +
                              +
                              +
                              +
                              +

                              +

                              2 interfaces

                              +
                              +
                              +
                              +
                              +
                              + + + + + + + + + + + + + +
                              +
                              +

                              results matching ""

                              +
                                +
                                +
                                +

                                No results matching ""

                                +
                                +
                                +
                                +
                                +
                                + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/injectables/DataService.html b/frontend/src/documentation/injectables/DataService.html new file mode 100644 index 0000000..5a86d9a --- /dev/null +++ b/frontend/src/documentation/injectables/DataService.html @@ -0,0 +1,2113 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                                +
                                + +
                                +
                                + + + + + + + + +
                                +
                                +

                                +

                                File

                                +

                                +

                                + app/data.service.ts +

                                + + +
                                +

                                Constructor

                                + + + + + + + + + + +
                                + constructor(languageService: LanguageService, http: HttpClient) +
                                +

                                This constructor builds the dataService and fetches the states from the backend

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + languageService +
                                  +
                                  +

                                  injection of the languageService

                                  + +
                                  +
                                • +
                                • +
                                  + http +
                                  +
                                  +

                                  representation of the HttpClient

                                  + +
                                  +
                                • +
                                +
                                +
                                +
                                + +
                                +

                                Methods

                                + + + + + + + + + + + + + + +
                                + Public getStates +
                                + + + + getStates() +
                                +

                                the function getStates

                                +
                                +
                                +
                                +
                                + Returns: any[] + +
                                +
                                +

                                an array of states and possible states per state

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getSupportGroups +
                                + + + + getSupportGroups() +
                                +

                                the function getSupportGroups

                                +
                                +
                                +
                                +
                                + Returns: any[] + +
                                +
                                +

                                an array of all supportGroups

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getContracts +
                                + + + + getContracts() +
                                +

                                the function getContracts

                                +
                                +
                                +
                                +
                                + Returns: any[] + +
                                +
                                +

                                an array of all contracts

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getPaketTypes +
                                + + + + getPaketTypes() +
                                +

                                the function getPaketTypes

                                +
                                +
                                +
                                +
                                + Returns: any[] + +
                                +
                                +

                                an array of all paketTypes

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getTotalSize +
                                + + + + getTotalSize() +
                                +

                                the function getTotalSize

                                +
                                +
                                +
                                +
                                + Returns: number + +
                                +
                                +

                                the size of all changes, that are matched by the actual filters
                                required for totalSize attribute of the paginator

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getUserSupportGroup +
                                + + + + getUserSupportGroup() +
                                +

                                the function getUserSupportGroup

                                +
                                +
                                +
                                +
                                + Returns: string + +
                                +
                                +

                                the supportGroup of the actual user

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getStateIdByName +
                                + + + + getStateIdByName(stateName: string) +
                                +

                                the function getStateIdByName translates the name of a state into the id

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + stateName +
                                  +
                                  +

                                  name of the state

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: number + +
                                +
                                +

                                id of the state

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getContractName +
                                + + + + getContractName(contractId: string) +
                                +

                                the function getContractByName searches a contract by its uid and returns the name

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + contractId +
                                  +
                                  +

                                  uid to search the contract

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: string + +
                                +
                                +

                                the name of the corresponding contract

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchStates +
                                + + + + fetchStates() +
                                +

                                The function fetchStates fetches an array from the possible statuses per state

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched Status Array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchSupportGroups +
                                + + + + fetchSupportGroups() +
                                +

                                The function fetchSupportGroups fetches an array of all supportGroups

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched supportGroups array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchContracts +
                                + + + + fetchContracts() +
                                +

                                The function fetchContracts fetches an array of all contracts

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched contracts array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchPaketTypes +
                                + + + + fetchPaketTypes() +
                                +

                                The function fetchPaketTypes fetches an array of all paketTypes

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched paketTypes array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchUserSupportGroup +
                                + + + + fetchUserSupportGroup() +
                                +

                                The function fetchPaketTypes fetches the supportGroup of the current user

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched current user supportGroup

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchPlanTimes +
                                + + + + fetchPlanTimes(filters: any, renderStartDate: Date, renderEndtDate: Date) +
                                +

                                The function fetchPlanTimes fetches the plan times per week from the backend

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + filters +
                                  +
                                  +

                                  current applied filters for the planTime calculation

                                  + +
                                  +
                                • +
                                • +
                                  + renderStartDate +
                                  +
                                  +

                                  startDate of the current gantt chart (first week rendered)

                                  + +
                                  +
                                • +
                                • +
                                  + renderEndtDate +
                                  +
                                  +

                                  startDate of the current gantt chart (last week rendered)

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                a promise for the response

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchImplementers +
                                + + + + fetchImplementers(change: any) +
                                +

                                The function fetchImplementers fetches an array of all implementers of the supportGoup from a specific change

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + change +
                                  +
                                  +

                                  change, for which the possible implementers should be fetched

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched implementers array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public updateDatePerChange +
                                + + + + updateDatePerChange(change: any) +
                                +

                                The function updateDatePerChange sends the new date to the backend if the date was moved

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + change +
                                  +
                                  +

                                  the Change (the Resource) from which the date should be changed

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public updateStatePerChange +
                                + + + + updateStatePerChange(change: any) +
                                +

                                The function updateStatePerChange performs a status transition on the backend

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + change +
                                  +
                                  +

                                  the change for which the status transition is to be performed

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                a aromise for the response

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public updateImplementerPerChange +
                                + + + + updateImplementerPerChange(data: any) +
                                +

                                The function updateImplementerPerChange updates the implementer for a specific change on the backend

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + data +
                                  +
                                  +

                                  the change for which the implementer update is to be performed and the loginId of the implementer

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                a promise for the response

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public updateApproval +
                                + + + + updateApproval(change: any, approvalAction: any) +
                                +

                                The function updateApproval updates the approvalStatus for a specific change on the backend

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + change +
                                  +
                                  +

                                  concerning change

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                a promise for the response

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public fetchChanges +
                                + + + + fetchChanges(reqestParams: any) +
                                +

                                The function fetchChanges fetches the changes from backend and maps them to a structure that the Gannt component can interpret

                                +
                                +
                                +
                                +
                                + Returns: void + +
                                +
                                +

                                promise for the fetched Changes Array

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Private validateImplementerEdit +
                                + + + + validateImplementerEdit(state: any) +
                                +

                                The function validateImplementerEdit validates if a change is in a state where its implementer can be updated

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + state +
                                  +
                                  +

                                  state of the concerning change

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: boolean + +
                                +
                                +

                                true or false for a boolean flag

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Private validateCancel +
                                + + + + validateCancel(state: any) +
                                +

                                The function validateCancel validates if a change is in a state where it can be canceld

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + state +
                                  +
                                  +

                                  state of the concerning change

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: boolean + +
                                +
                                +

                                true or false for a boolean flag

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Private validatePermit +
                                + + + + validatePermit(state: any) +
                                +

                                The function validatePermit validates if a change is in a state where it can be permited

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + state +
                                  +
                                  +

                                  state of the concerning change

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: boolean + +
                                +
                                +

                                true or false for a boolean flag

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Private validateApproval +
                                + + + + validateApproval(resp: any) +
                                +

                                The function validatePermit validates if a change has an active approval

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + state +
                                  +
                                  +

                                  approvalString

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: boolean + +
                                +
                                +

                                true or false for a boolean flag

                                + +
                                +
                                + + + + + + + + + + + + + + +
                                + Public getStateNameById +
                                + + + + getStateNameById(stateNr: any) +
                                +

                                The function getStateNameById searches the name of a status by its id, depending on the set language

                                +
                                +
                                + Parameters : +
                                  +
                                • +
                                  + stateNr +
                                  +
                                  +

                                  state number (uid)

                                  + +
                                  +
                                • +
                                +
                                +
                                + Returns: String + +
                                +
                                +

                                string with the stateName

                                + +
                                +
                                +
                                + +
                                +

                                Properties

                                + + + + + + + + + +
                                + Private contracts +
                                + contracts: any[] + +
                                + + + + + + + + + +
                                + languageService +
                                + languageService: LanguageService + +
                                + + + + + + + + + +
                                + Private paketTypes +
                                + paketTypes: any[] + +
                                + + + + + + + + + +
                                + Private states +
                                + states: any[] + +
                                + + + + + + + + + +
                                + Private supportGroups +
                                + supportGroups: any[] + +
                                + + + + + + + + + +
                                + Private totalSize +
                                + totalSize: number + +
                                + + + + + + + + + +
                                + Public userSupportGroup +
                                + userSupportGroup: string + +
                                +
                                +
                                +
                                +
                                import { JsonPipe } from '@angular/common';
                                +import { HttpClient } from '@angular/common/http';
                                +import { Injectable } from '@angular/core';
                                +import { ResourceFields } from '@syncfusion/ej2-angular-gantt';
                                +import { LanguageService } from './language.service';
                                +
                                +@Injectable({
                                +  providedIn: 'root'
                                +})
                                +
                                +/**
                                +* The DataService manages the communication between Frontend and Backend, fetches Data from the Backend and maps it to the Frontend Data Structure. Additionally it updates data on the Backend.
                                +*
                                +*/
                                +export class DataService {
                                +  private states: any []; //Array of statuses and possible statuses, which is queried once at the beginning by backend and stored in dataservice
                                +  private supportGroups: any [];
                                +  private contracts: any [];
                                +  private paketTypes: any [];
                                +  private totalSize: number = null;
                                +  public userSupportGroup: string;
                                +   //public selectedLanguage: string = 'DE';
                                +
                                +  /**
                                +  * This constructor builds the dataService and fetches the states from the backend
                                +  * @param languageService injection of the languageService
                                +  * @param http representation of the HttpClient
                                +  */
                                +  constructor(public languageService: LanguageService, private http: HttpClient) {
                                +    this.fetchStates().then((res: any [])=>{
                                +      this.states = res;
                                +    });
                                +    this.fetchSupportGroups().then((res: any [])=>{
                                +      this.supportGroups = res;
                                +    });
                                +    this.fetchContracts().then((res: any [])=>{
                                +      this.contracts = res;
                                +    });
                                +    this.fetchPaketTypes().then((res: any [])=>{
                                +      this.paketTypes = res;
                                +      // console.log(res);
                                +    });
                                +    this.fetchUserSupportGroup().then((res: any)=>{
                                +      this.userSupportGroup = res.name;
                                +      console.log(this.userSupportGroup);
                                +    });
                                +  }
                                +
                                +  /**
                                +  * the function getStates
                                +  * @returns an array of states and possible states per state
                                +  */
                                +  public getStates():any[]{
                                +    return this.states;
                                +  }
                                +
                                +  /**
                                +  * the function getSupportGroups
                                +  * @returns an array of all supportGroups
                                +  */
                                +  public getSupportGroups():any[]{
                                +    return this.supportGroups;
                                +  }
                                +
                                +  /**
                                +  * the function getContracts
                                +  * @returns an array of all contracts
                                +  */
                                +  public getContracts():any[]{
                                +    return this.contracts;
                                +  }
                                +
                                +  /**
                                +  * the function getPaketTypes
                                +  * @returns an array of all paketTypes
                                +  */
                                +  public getPaketTypes():any[]{
                                +    return this.paketTypes;
                                +  }
                                +
                                +  /**
                                +  * the function getTotalSize
                                +  * @returns the size of all changes, that are matched by the actual filters
                                +  * required for totalSize attribute of the paginator
                                +  */
                                +  public getTotalSize():number{
                                +    return this.totalSize;
                                +  }
                                +
                                +  /**
                                +  * the function getUserSupportGroup
                                +  * @returns the supportGroup of the actual user
                                +  */
                                +  public getUserSupportGroup():string{
                                +    return this.userSupportGroup;
                                +  }
                                +
                                +  /**
                                +  * the function getStateIdByName translates the name of a state into the id
                                +  * @param stateName name of the state
                                +  * @returns id of the state
                                +  */
                                +  public getStateIdByName(stateName: string): number {
                                +    for (let state of this.states) {
                                +       if(stateName == state.stateNameEN){
                                +        return state.id;
                                +       }
                                +    }
                                +    return -1;
                                +  }
                                +
                                +  /**
                                +  * the function getContractByName searches a contract by its uid and returns the name
                                +  * @param contractId uid to search the contract
                                +  * @returns the name of the corresponding contract
                                +  */
                                +  public getContractName(contractId: string): string{
                                +    return this.contracts.find((contract)=> {return contract.id == contractId;}).name;
                                +  }
                                +
                                +  /**
                                +  * The function fetchStates fetches an array from the possible statuses per state
                                +  * @returns promise for the fetched Status Array
                                +  */
                                +  public async fetchStates(){
                                +    const promise = new Promise(resolve=>{
                                +      let res : any[] = [];
                                +      this.http.get('http://localhost:8080/api/getStates')
                                +      .subscribe((response: any)=>{
                                +        response.forEach(state => {
                                +          res.push(state)
                                +        });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchSupportGroups fetches an array of all supportGroups
                                +  * @returns promise for the fetched supportGroups array
                                +  */
                                +  public async fetchSupportGroups(){
                                +    const promise = new Promise(resolve=>{
                                +      let res : any[] = [];
                                +      this.http.get('http://localhost:8080/api/getSupportGroups')
                                +      .subscribe((response: any)=>{
                                +        response.forEach(supportGroup => {
                                +          res.push(supportGroup)
                                +        });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchContracts fetches an array of all contracts
                                +  * @returns promise for the fetched contracts array
                                +  */
                                +  public async fetchContracts(){
                                +    const promise = new Promise(resolve=>{
                                +      let res : any[] = [];
                                +      this.http.get('http://localhost:8080/api/getContracts')
                                +      .subscribe((response: any)=>{
                                +        response.forEach(contract => {
                                +          res.push(contract)
                                +        });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchPaketTypes fetches an array of all paketTypes
                                +  * @returns promise for the fetched paketTypes array
                                +  */
                                +  public async fetchPaketTypes(){
                                +    const promise = new Promise(resolve=>{
                                +      let res : any[] = [];
                                +      this.http.get('http://localhost:8080/api/getPackageTypes')
                                +      .subscribe((response: any)=>{
                                +        response.forEach(paketType => {
                                +          res.push(paketType)
                                +        });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchPaketTypes fetches the supportGroup of the current user
                                +  * @returns promise for the fetched current user supportGroup
                                +  */
                                +  public async fetchUserSupportGroup(){
                                +    const promise = new Promise(resolve=>{
                                +      let res : any = {};
                                +      this.http.get('http://localhost:8080/api/getUserSupportGroup')
                                +      .subscribe((response: any)=>{
                                +        this.userSupportGroup = res.name;
                                +        res = response;
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchPlanTimes fetches the plan times per week from the backend
                                +  * @param filters current applied filters for the planTime calculation
                                +  * @param renderStartDate startDate of the current gantt chart (first week rendered)
                                +  * @param renderEndtDate startDate of the current gantt chart (last week rendered)
                                +  * @returns a promise for the response
                                +  */
                                +  public async fetchPlanTimes(filters: any, renderStartDate: Date, renderEndtDate: Date){
                                +    const promise = new Promise(resolve=>{
                                +      let obj = {filter : filters.filter, renderStartDate : renderStartDate, renderEndDate: renderEndtDate };
                                +      let stringyfiedData = JSON.stringify(obj);
                                +      let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +       console.log(dataJson);
                                +      let res : any[] = [];
                                +      this.http.post('http://localhost:8080/api/fetchPlanTimes', dataJson)
                                +      .subscribe((response: any[])=>{
                                +        response.forEach(week => {
                                +          res.push(week);
                                +        });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function fetchImplementers fetches an array of all implementers of the supportGoup from a specific change
                                +  * @param change change, for which the possible implementers should be fetched
                                +  * @returns promise for the fetched implementers array
                                +  */
                                +  public async fetchImplementers(change: any){
                                +    const promise = new Promise(resolve=>{
                                +      let obj = {entryId : change.resourceId, supportGroup : change.supportGroupId};
                                +      let stringyfiedData = JSON.stringify(obj);
                                +      let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +      // console.log(dataJson);
                                +      let res : any[] = [];
                                +      this.http.post('http://localhost:8080/api/getImplementer', dataJson)
                                +      .subscribe((response: any)=>{
                                +          response.members.forEach(implementer => {
                                +            res.push(implementer)
                                +          });
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function updateDatePerChange sends the new date to the backend if the date was moved
                                +  * @param change the Change (the Resource) from which the date should be changed
                                +  */
                                +  public async updateDatePerChange(change: any){
                                +    const promise = new Promise(resolve=>{
                                +      let serializableResource = { resourceId: change.resourceId, d2: change.tasks[1].StartDate, changeNr: change.changeNr, state: change.state};
                                +      let strigifiedResource = JSON.stringify(serializableResource);
                                +      let resJson = JSON.parse(strigifiedResource) as typeof strigifiedResource;
                                +      this.http.post('http://localhost:8080/api/updateChange', resJson).subscribe((response:any)=>{
                                +        resolve(response);
                                +      },(error:any)=>{
                                +        resolve(error);
                                +      });
                                +    });
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function updateStatePerChange performs a status transition on the backend
                                +  * @param change the change for which the status transition is to be performed
                                +  * @returns a aromise for the response
                                +  */
                                +  public async updateStatePerChange(change: any){
                                +    const promise = new Promise(resolve=>{
                                +      let obj = {changeNr : change.changeNr, currentState : change.currentState, nextState : change.nextState};
                                +      let stringyfiedData = JSON.stringify(obj);
                                +      let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +      // console.log(dataJson);
                                +      this.http.post('http://localhost:8080/api/updateState', dataJson).subscribe((response:any)=>{
                                +        resolve(response);
                                +      },(error:any)=>{
                                +        resolve(error);
                                +      });
                                +    });
                                +
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function updateImplementerPerChange updates the implementer for a specific change on the backend
                                +  * @param data the change for which the implementer update is to be performed and the loginId of the implementer
                                +  * @returns a promise for the response
                                +  */
                                +  public async updateImplementerPerChange(data: any){
                                +    const promise = new Promise(resolve=>{
                                +      // console.log(change);
                                +      let obj = {pkgId : data.resourceId, loginId : data.loginId};
                                +      let stringyfiedData = JSON.stringify(obj);
                                +      let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +      // console.log(dataJson);
                                +      this.http.post('http://localhost:8080/api/updateImplementer', dataJson).subscribe((response:any)=>{
                                +        resolve(response);
                                +      },(error:any)=>{
                                +        console.log(error);
                                +        resolve(error);
                                +      });
                                +    })
                                +
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function updateApproval updates the approvalStatus for a specific change on the backend
                                +  * @param change concerning change
                                +  * @returns a promise for the response
                                +  */
                                +  public async updateApproval(change: any, approvalAction){
                                +    const promise = new Promise(resolve=>{
                                +      let obj = {changeNr : change.changeNr, approvalAction: approvalAction};
                                +      let stringyfiedData = JSON.stringify(obj);
                                +      let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +      console.log(dataJson);
                                +      this.http.post('http://localhost:8080/api/updateApproval', dataJson).subscribe((response:any)=>{
                                +        resolve(response);
                                +      },(error:any)=>{
                                +        resolve(error);
                                +      });
                                +    }).catch((error)=>{
                                +      throw(error);
                                +    })
                                +
                                +    return promise;
                                +  }
                                +
                                +
                                +  /**
                                +  * The function fetchChanges fetches the changes from backend and maps them to a structure that the Gannt component can interpret
                                +  * @returns promise for the fetched Changes Array
                                +  */
                                +  public async fetchChanges(reqestParams: any = null){
                                +    let stringyfiedData = JSON.stringify(reqestParams);
                                +    let dataJson = JSON.parse(stringyfiedData) as typeof stringyfiedData;
                                +    const promise = new Promise(resolve=>{
                                +      let first : boolean = true;
                                +      let res : any[] = [];
                                +      console.log(dataJson);
                                +      this.http.post('http://localhost:8080/api/getChanges', dataJson)
                                +      .subscribe((response:any)=>{
                                +        console.log(response);
                                +        this.totalSize = response.totalSize;
                                +        response.changes.forEach(resp=>{
                                +          //console.log(resp.resourceId+"  "+resp.approvalStatus)
                                +          //console.log(resp);
                                +          let tasks : any[] = [];
                                +          if(resp.d1!=null){
                                +            tasks.push(
                                +              {
                                +                TaskID: resp.resourceId+"D1", TaskName: "Requested Start Date", StartDate: new Date(resp.d1), Duration: 0, isFixed: true,
                                +                resources: [{resourceId: resp.resourceId},],  Progress: 0, work: 0, isRes: false
                                +              }
                                +            );
                                +          }
                                +
                                +          if(resp.d2!=null){
                                +            let isFixed = true;
                                +            if(resp.state == 0 || resp.state == 3){
                                +              isFixed = false;
                                +            }
                                +            tasks.push(
                                +              {
                                +                TaskID: resp.resourceId+"D2", TaskName: "Sheduled Start Date", StartDate: new Date(resp.d2), Duration: 0, isFixed: isFixed,
                                +                resources: [{resourceId: resp.resourceId},],  Progress: 0, work: 0, isRes: false
                                +              }
                                +            );
                                +          }
                                +
                                +          if(resp.d3!=null && resp.state>1){
                                +            tasks.push(
                                +              {
                                +                TaskID: resp.resourceId+"D3", TaskName: "Approved Start Date", StartDate: new Date(resp.d3), Duration: 0, isFixed: true,
                                +                resources: [{resourceId: resp.resourceId},],  Progress: 0, work: 0, isRes: false
                                +              }
                                +            );
                                +          }
                                +
                                +          if(resp.d4!=null && resp.state == 10){
                                +            tasks.push(
                                +              {
                                +                TaskID: resp.resourceId+"D4", TaskName: "Actual End Date", StartDate: new Date(resp.d4), Duration: 0, isFixed: true,
                                +                resources: [{resourceId: resp.resourceId},],  Progress: 0, work: 0, isRes: false
                                +              }
                                +            );
                                +          }
                                +          //let approval = this.validateApproval(resp.approvalStatus);
                                +            res.push({
                                +              resourceId: resp.resourceId,
                                +              approvalStatus: resp.approvalStatus,
                                +              statusReason: resp.statusReason,
                                +              changeNr: resp.changeNr,
                                +              resourceName: resp.resourceName,
                                +              vertrag: resp.contract,
                                +              vertragName: this.getContractName(resp.contract),
                                +              isExpand: false,
                                +              isRes: true,
                                +              state: resp.state,
                                +              stateName: this.getStateNameById(resp.state),
                                +              supportGroup: resp.supportGroup,
                                +              tasks: tasks,
                                +              supportGroupId: resp.supportGroupId,
                                +              implementerEdit: this.validateImplementerEdit(resp.state),
                                +              flagApproval: this.validateApproval(resp),
                                +              flagReject: this.validateApproval(resp),
                                +              flagCancel: this.validateCancel(resp.state),
                                +              flagPermit: this.validatePermit(resp.state),
                                +              changeImplementerLogin: resp.changeImplementerLogin,
                                +              packageName: resp.packageName,
                                +              coordinatorSg: resp.coordinatorSg,
                                +              plantime: resp.planTime,
                                +            });
                                +
                                +
                                +        })
                                +        console.log(res);
                                +        resolve(res);
                                +      })
                                +    })
                                +    return promise;
                                +  }
                                +
                                +  /**
                                +  * The function validateImplementerEdit validates if a change is in a state where its implementer can be updated
                                +  * @param state state of the concerning change
                                +  * @returns true or false for a boolean flag
                                +  */
                                +  private validateImplementerEdit(state):boolean{
                                +    if(state == 3 || state == 6){
                                +      return true;
                                +    }else{
                                +      return false;
                                +    }
                                +  }
                                +
                                +  /**
                                +  * The function validateCancel validates if a change is in a state where it can be canceld
                                +  * @param state state of the concerning change
                                +  * @returns true or false for a boolean flag
                                +  */
                                +  private validateCancel(state):boolean{
                                +    if(state == 1){
                                +      return true
                                +    }else{
                                +      return false
                                +    }
                                +  }
                                +
                                +  /**
                                +  * The function validatePermit validates if a change is in a state where it can be permited
                                +  * @param state state of the concerning change
                                +  * @returns true or false for a boolean flag
                                +  */
                                +  private validatePermit(state): boolean{
                                +    if(state == 0){
                                +      return true
                                +    }else{
                                +      return false
                                +    }
                                +  }
                                +
                                +  /**
                                +  * The function validatePermit validates if a change has an active approval
                                +  * @param state approvalString
                                +  * @returns true or false for a boolean flag
                                +  */
                                +  private validateApproval(resp):boolean{
                                +    console.log(resp.changeNr);
                                +    console.log(resp.approvalStatus);
                                +    console.log('\n');
                                +    if(resp.approvalStatus!=undefined && resp.approvalStatus!="0"){
                                +      return true;
                                +    }else{
                                +      return false;
                                +    }
                                +  }
                                +
                                +  /**
                                +  * The function getStateNameById searches the name of a status by its id, depending on the set language
                                +  * @param stateNr state number (uid)
                                +  * @returns string with the stateName
                                +  */
                                +  public getStateNameById(stateNr): String {
                                +    if(this.languageService.language == 'EN'){
                                +      for (let state of this.states) {
                                +        if(stateNr == state.actualState){
                                +          return state.stateNameEN;
                                +        }
                                +      }
                                +    }
                                +    if(this.languageService.language == 'DE'){
                                +      for (let state of this.states) {
                                +        if(stateNr == state.actualState){
                                +          return state.stateNameDE;
                                +        }
                                +      }
                                +    }
                                +    return "";
                                +  }
                                +}
                                +
                                +
                                +
                                +
                                +
                                +
                                +
                                + + + + + + + +
                                +
                                +

                                results matching ""

                                +
                                  +
                                  +
                                  +

                                  No results matching ""

                                  +
                                  +
                                  +
                                  +
                                  +
                                  + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/injectables/LanguageService.html b/frontend/src/documentation/injectables/LanguageService.html new file mode 100644 index 0000000..1617c1a --- /dev/null +++ b/frontend/src/documentation/injectables/LanguageService.html @@ -0,0 +1,900 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                                  +
                                  + +
                                  +
                                  + + + + + + + + +
                                  +
                                  +

                                  +

                                  File

                                  +

                                  +

                                  + app/language.service.ts +

                                  + + +
                                  +

                                  Constructor

                                  + + + + + + + + + + +
                                  + constructor() +
                                  +

                                  The constructor sets all the language values and does the default mapping

                                  +
                                  +
                                  +
                                  + +
                                  +

                                  Methods

                                  + + + + + + + + + + + + + + +
                                  + Public languageChange +
                                  + + + + languageChange(args: any) +
                                  +

                                  The function languageChange set the language map to the german or english map depending on the selected language
                                  it is triggered by an language change from the NttGanttComponent

                                  +
                                  +
                                  + Parameters : +
                                    +
                                  • +
                                    + args +
                                    +
                                    +

                                    args with the selected language

                                    + +
                                    +
                                  • +
                                  +
                                  +
                                  + Returns: void + +
                                  +
                                  + +
                                  +
                                  + + + + + + + + + + + + + + +
                                  + Public getColumns +
                                  + + + + getColumns() +
                                  +

                                  The function getColumns delivers the gannt chart columns for the NttGanttComponent in the selected language
                                  it is triggered by an language change from the NttGanttComponent

                                  +
                                  +
                                  + Returns: void + +
                                  +
                                  +
                                  + +
                                  +

                                  Properties

                                  + + + + + + + + + +
                                  + Public deColumns +
                                  + deColumns: any[] + +
                                  + + + + + + + + + +
                                  + Public deMap +
                                  + deMap: any + +
                                  + + + + + + + + + +
                                  + Public dePlanTimeColumns +
                                  + dePlanTimeColumns: any[] + +
                                  + + + + + + + + + +
                                  + Public dePlanTimeResources +
                                  + dePlanTimeResources: any[] + +
                                  + + + + + + + + + +
                                  + Public enColumns +
                                  + enColumns: any[] + +
                                  + + + + + + + + + +
                                  + Public enMap +
                                  + enMap: any + +
                                  + + + + + + + + + +
                                  + Public enPlanTimeColumns +
                                  + enPlanTimeColumns: any[] + +
                                  + + + + + + + + + +
                                  + Public enPlanTimeResources +
                                  + enPlanTimeResources: any[] + +
                                  + + + + + + + + + + + + +
                                  + Public language +
                                  + language: string + +
                                  + Default value: DE +
                                  + + + + + + + + + +
                                  + Public languages +
                                  + languages: string[] + +
                                  + + + + + + + + + +
                                  + Public lMap +
                                  + lMap: any + +
                                  +
                                  +
                                  +
                                  +
                                  import { Injectable } from '@angular/core';
                                  +
                                  +@Injectable({
                                  +  providedIn: 'root'
                                  +})
                                  +
                                  +/**
                                  +* The LanguageService manages the language (DE or EN) over all Components
                                  +* and returns and returns all textual attributes in the selected language
                                  +* By holding 2 languageMaps for german and english and one languageMap that can be set to the german or english map
                                  +*/
                                  +export class LanguageService {
                                  +
                                  +  public language: string = 'DE';
                                  +  public languages: string[] = ['DE', 'EN'];
                                  +  public deMap : Map<string, string> = new Map<string, string>();
                                  +  public enMap : Map<string, string> = new Map<string, string>();
                                  +  public lMap : Map<string, string> = new Map<string, string>();
                                  +  public deColumns: any[];
                                  +  public enColumns: any[];
                                  +  public dePlanTimeColumns: any[];
                                  +  public enPlanTimeColumns: any[];
                                  +  public dePlanTimeResources: any[];
                                  +  public enPlanTimeResources: any[];
                                  +
                                  +  /**
                                  +  * The constructor sets all the language values and does the default mapping
                                  +  */
                                  +  constructor() {
                                  +    this.deMap.set('detailButton', 'Details anzeigen');
                                  +    this.enMap.set('detailButton', 'Show Details');
                                  +    this.deMap.set('filterButton', 'Filter anwenden');
                                  +    this.enMap.set('filterButton', 'Apply Filters');
                                  +    this.deMap.set('sortButton', 'Sortierung anwenden');
                                  +    this.enMap.set('sortButton', 'Apply Sort');
                                  +    this.deMap.set('field1', 'Kurzbeschreibung');
                                  +    this.enMap.set('field1', 'Summary');
                                  +    this.deMap.set('dateRangeLabel', 'Datumsbereich auswählen');
                                  +    this.enMap.set('dateRangeLabel', 'Select Date Range');
                                  +    this.deMap.set('language', 'Sprache');
                                  +    this.enMap.set('language', 'Language');
                                  +    this.deMap.set('clearFilter', 'Filter Löschen');
                                  +    this.enMap.set('clearFilter', 'Clear Filter');
                                  +    this.deMap.set('nttGanttFilterButton', 'Filtern');
                                  +    this.enMap.set('nttGanttFilterButton', 'Filter');
                                  +
                                  +    this.deMap.set('tooltipSummary', 'Name');
                                  +    this.enMap.set('tooltipSummary', 'Name');
                                  +    this.deMap.set('tooltipState', 'Status');
                                  +    this.enMap.set('tooltipState', 'State');
                                  +    this.deMap.set('tooltipPaketType', 'Paket Typ');
                                  +    this.enMap.set('tooltipPaketType', 'Package Type');
                                  +    this.deMap.set('tooltipContract', 'Vertrag / Provider Cluster');
                                  +    this.enMap.set('tooltipContract', 'Contract / Provider Cluster');
                                  +    this.deMap.set('tooltipSupportGroupKv', 'KV SG');
                                  +    this.enMap.set('tooltipSupportGroupKv', 'KV SG');
                                  +    this.deMap.set('tooltipSupportGroupIh', 'IH SG');
                                  +    this.enMap.set('tooltipSupportGroupIh', 'IH SG');
                                  +    this.deMap.set('tooltipDate', 'Geplantes Start Datum');
                                  +    this.enMap.set('tooltipDate', 'Planned Start Date');
                                  +
                                  +    this.deMap.set('permit', 'Zur Genehmigung');
                                  +    this.enMap.set('permit', 'Permit');
                                  +    this.deMap.set('genehmigen', 'Genehmigen');
                                  +    this.enMap.set('genehmigen', 'Approve');
                                  +    this.deMap.set('ablehnen', 'Ablehnen');
                                  +    this.enMap.set('ablehnen', 'Reject');
                                  +    this.deMap.set('stornieren', 'Stornieren');
                                  +    this.enMap.set('stornieren', 'Cancel');
                                  +    this.deMap.set('implementer', 'Implementer Eintragen');
                                  +    this.enMap.set('implementer', 'Enter Implementer');
                                  +    this.deMap.set('stateChange', 'Statusübergang');
                                  +    this.enMap.set('stateChange', 'State Transition');
                                  +
                                  +    this.deMap.set('stateDialogSnackBarMessageFailiure', 'Statusübergang fehlgeschlagen');
                                  +    this.enMap.set('stateDialogSnackBarMessageFailiure', 'State Transition failed');
                                  +    this.deMap.set('stateDialogSnackBarActionFailiure', 'Schließen');
                                  +    this.enMap.set('stateDialogSnackBarActionFailiure', 'close');
                                  +
                                  +    this.deMap.set('stateDialogSnackBarMsg1Success', 'Statusübergang');
                                  +    this.enMap.set('stateDialogSnackBarMsg1Success', 'State Transition');
                                  +
                                  +    this.deMap.set('stateDialogSnackBarMsg2Success', 'erfolgreich');
                                  +    this.enMap.set('stateDialogSnackBarMsgsSuccess', 'successful');
                                  +
                                  +    this.deMap.set('stateDialogSnackBarActionSuccess', 'Schließen');
                                  +    this.enMap.set('stateDialogSnackBarActionSuccess', 'close');
                                  +
                                  +    this.deMap.set('stateDialogStateTransition', 'Statusübergang');
                                  +    this.enMap.set('stateDialogStateTransition', 'State Transition');
                                  +
                                  +    this.deMap.set('stateDialogSelectState', 'Status auswählen');
                                  +    this.enMap.set('stateDialogSelectState', 'Select State');
                                  +
                                  +    this.deMap.set('stateDialogCancel', 'Abbrechen');
                                  +    this.enMap.set('stateDialogCancel', 'Cancel');
                                  +
                                  +    this.deMap.set('stateDialogConfirm', 'Bestätigen');
                                  +    this.enMap.set('stateDialogConfirm', 'Confirm');
                                  +
                                  +    this.deMap.set('filterDialogHeading', 'Changes Filtern');
                                  +    this.enMap.set('filterDialogHeading', 'Filter Changes');
                                  +
                                  +    this.deMap.set('filterDialogShortDesc', 'Kurzbeschreibung');
                                  +    this.deMap.set('filterDialogShortDescText', 'Eingabe eines Textteiles filtert alle passenden Pakete');
                                  +    this.deMap.set('filterDilogSg', 'Support Gruppe');
                                  +    this.deMap.set('filterDilogSgText', 'In der Rolle Planender IH oder Kostenverantwortlicher (eine)');
                                  +    this.deMap.set('filterDilogState', 'Status');
                                  +    this.deMap.set('filterDilogStateText', '(einer oder mehrere) des Pakets');
                                  +    this.deMap.set('filterDilogContract', 'Vertrag');
                                  +    this.deMap.set('filterDilogContractText', 'Vertrag / Provider-Cluster (einen oder mehrere)');
                                  +    this.deMap.set('filterDilogPaketType', 'Paket-Typ');
                                  +    this.deMap.set('filterDilogPaketTypeText', 'einen oder mehrere, exakte Eingabe');
                                  +    this.deMap.set('filterDilogDate', 'Datum');
                                  +    this.deMap.set('filterDilogDateText', 'Geplantes Start-Datum: Von / Bis');
                                  +
                                  +    this.deMap.set('filterDilogSearchText', 'Text durchsuchen');
                                  +    this.deMap.set('filterDialogSearchSg', 'Supportgruppe suchen & auswählen');
                                  +    this.deMap.set('filterDilogSearchState', 'Status suchen & auswählen');
                                  +    this.deMap.set('filterDilogSearchContract', 'Vertrag suchen & auswählen');
                                  +    this.deMap.set('filterDilogSearchPt', 'Paket-Typ suchen & auswählen');
                                  +    this.deMap.set('filterDilogSearchFrom', 'Von');
                                  +    this.deMap.set('filterDilogSearchTo', 'Bis');
                                  +
                                  +    this.enMap.set('filterDialogShortDesc', 'Short description');
                                  +    this.enMap.set('filterDialogShortDescText', 'entering a text part filters all matching packages');
                                  +    this.enMap.set('filterDilogSg', 'Support group');
                                  +    this.enMap.set('filterDilogSgText', 'in the role of planning IH or cost manager (one)');
                                  +    this.enMap.set('filterDilogState', 'State');
                                  +    this.enMap.set('filterDilogStateText', '(one or more) of the package');
                                  +    this.enMap.set('filterDilogContract', 'Contract');
                                  +    this.enMap.set('filterDilogContractText', 'Contract / provider cluster (one or more)');
                                  +    this.enMap.set('filterDilogPaketType', 'Package type');
                                  +    this.enMap.set('filterDilogPaketTypeText', 'one or more, exact input');
                                  +    this.enMap.set('filterDilogDate', 'Date');
                                  +    this.enMap.set('filterDilogDateText', 'Planned start date: from / to');
                                  +
                                  +    this.enMap.set('filterDilogSearchText', 'Text search');
                                  +    this.enMap.set('filterDialogSearchSg', 'Search & select support group');
                                  +    this.enMap.set('filterDilogSearchState', 'Search & select state');
                                  +    this.enMap.set('filterDilogSearchContract', 'Search & select contract');
                                  +    this.enMap.set('filterDilogSearchPt', 'Search & select package type');
                                  +    this.enMap.set('filterDilogSearchFrom', 'From');
                                  +    this.enMap.set('filterDilogSearchTo', 'Until');
                                  +
                                  +    this.enMap.set('filterDilogButton', 'Apply Filters');
                                  +    this.deMap.set('filterDilogButton', 'Filter anwenden');
                                  +    this.deMap.set('filterDialogCancel', 'Abbrechen');
                                  +    this.enMap.set('filterDialogCancel', 'Cancel');
                                  +
                                  +
                                  +
                                  +    this.deMap.set('implementerDialogHeading', 'Implementer Eintragen');
                                  +    this.enMap.set('implementerDialogHeading', 'Enter Implementer');
                                  +
                                  +    this.deMap.set('implementerDialogLabel', 'Implementer auswählen');
                                  +    this.enMap.set('implementerDialogLabel', 'Select Implementer');
                                  +
                                  +    this.deMap.set('implementerDialogCancel', 'Abbrechen');
                                  +    this.enMap.set('implementerDialogCancel', 'Cancel');
                                  +
                                  +    this.deMap.set('implementerDialogApply', 'Bestätigen');
                                  +    this.enMap.set('implementerDialogApply', 'Confirm');
                                  +
                                  +    this.deMap.set('planTimesHeading', 'Planzeit pro Woche');
                                  +    this.enMap.set('planTimesHeading', 'Plantimes per Week');
                                  +
                                  +    this.deMap.set('planTimesResource', 'Planzeit Summen pro Woche');
                                  +    this.enMap.set('planTimesResource', 'Plantime Sum per Week');
                                  +
                                  +    this.deMap.set('planTimesPlantime', 'Planzeit');
                                  +    this.enMap.set('planTimesPlantime', 'Plantime');
                                  +    this.deMap.set('planTimesStartDate', 'Start Datum');
                                  +    this.enMap.set('planTimesStartDate', 'Start Date');
                                  +
                                  +    this.dePlanTimeResources = [{resourceId: 1, resourceName: 'Planzeit Summen pro Woche'}];
                                  +    this.dePlanTimeColumns = [{ field: 'TaskName', headerText:  'Planzeiten pro Woche', width: 250 }];
                                  +
                                  +    this.enPlanTimeResources = [{resourceId: 1, resourceName: 'Plantime Sum per Week'}];
                                  +    this.enPlanTimeColumns = [{ field: 'TaskName', headerText:  'Planzeit pro Woche', width: 250 }];
                                  +
                                  +    this.deColumns = [
                                  +      { field: 'TaskName', headerText: 'Kurzbeschreibung', width: 230 },
                                  +      { field: 'stateName', headerText: 'Status', width: 250},
                                  +      { field: 'vertragName', headerText: 'Vertrag / Provider Cluster', width: 150 },
                                  +      { field: 'supportGroup', headerText: 'Gewählte Support Gruppe' },
                                  +      { field: 'StartDate', headerText: 'Geplantes Start-Datum', format : {type:'date', format:'dd.MM.yyyy'}},
                                  +      { field: 'plantime', headerText: 'Planzeit in H', width: 100 },
                                  +      { field: 'changeNr', headerText: 'Change Nummer', width: 140 }
                                  +    ];
                                  +    this.enColumns = [
                                  +      { field: 'TaskName', headerText: 'Summary', width: 230 },
                                  +      { field: 'stateName', headerText: 'State', width: 250},
                                  +      { field: 'vertragName', headerText: 'Contract / Provider Cluster', width: 150 },
                                  +      { field: 'supportGroup', headerText: 'Selected Support Group' },
                                  +      { field: 'StartDate', headerText: 'Planned Start-Date', format : {type:'date', format:'dd.MM.yyyy'}},
                                  +      { field: 'plantime', headerText: 'Plantime in h', width: 100 },
                                  +      { field: 'changeNr', headerText: 'Change Number', width: 140 }
                                  +      ];
                                  +
                                  +    if(navigator.language == 'de-DE'){
                                  +      this.language = 'DE';
                                  +      this.lMap = this.deMap;
                                  +    }else{
                                  +      this.language = 'EN';
                                  +      this.lMap = this.enMap;
                                  +    }
                                  +   }
                                  +
                                  +  /**
                                  +  * The function languageChange set the language map to the german or english map depending on the selected language
                                  +  * it is triggered by an language change from the NttGanttComponent
                                  +  * @param args args with the selected language
                                  +  */
                                  +  public languageChange(args: any){
                                  +    if(this.language == 'DE'){
                                  +      this.lMap = this.deMap;
                                  +    }else{
                                  +      this.language = 'EN';
                                  +      this.lMap = this.enMap;
                                  +    }
                                  +  }
                                  +
                                  +  /**
                                  +  * The function getColumns delivers the gannt chart columns for the NttGanttComponent in the selected language
                                  +  * it is triggered by an language change from the NttGanttComponent
                                  +  */
                                  +  public getColumns(){
                                  +    if(this.language == 'DE'){
                                  +      return this.deColumns;
                                  +    }else{
                                  +      this.language = 'EN';
                                  +     return this.enColumns;
                                  +    }
                                  +  }
                                  +}
                                  +
                                  +
                                  +
                                  +
                                  + + + + + + + +
                                  +
                                  +

                                  results matching ""

                                  +
                                    +
                                    +
                                    +

                                    No results matching ""

                                    +
                                    +
                                    +
                                    +
                                    +
                                    + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/interfaces/FilterAttribute.html b/frontend/src/documentation/interfaces/FilterAttribute.html new file mode 100644 index 0000000..f1d1715 --- /dev/null +++ b/frontend/src/documentation/interfaces/FilterAttribute.html @@ -0,0 +1,640 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                                    +
                                    + +
                                    +
                                    + + + + + + + + + + + +
                                    +
                                    +

                                    +

                                    File

                                    +

                                    +

                                    + app/filter-dialog/filter-dialog.component.ts +

                                    + + + + + +
                                    +

                                    Properties

                                    + + + + + + + + + + + + + + + + + +
                                    + name +
                                    + name: string + +
                                    + Type : string + +
                                    +
                                    +
                                    +
                                    +
                                    import { LanguageService } from './../language.service';
                                    +import { Component, Inject, OnInit } from '@angular/core';
                                    +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
                                    +import { MatSnackBar } from '@angular/material/snack-bar';
                                    +import { DataService } from '../data.service';
                                    +import { MAT_DATE_FORMATS } from '@angular/material/core'
                                    +
                                    +export interface FilterAttribute{
                                    +name: string,
                                    +}
                                    +
                                    +export const MY_DATE_FORMATS = {
                                    +  parse: {
                                    +    dateInput: 'DD.MM.YYYY',
                                    +  },
                                    +  display: {
                                    +    dateInput: 'DD.MM.YYYY',
                                    +    monthYearLabel: 'MMMM YYYY',
                                    +    dateA11yLabel: 'LL',
                                    +    monthYearA11yLabel: 'MMMM YYYY'
                                    +  },
                                    +};
                                    +
                                    +@Component({
                                    +  selector: 'app-filter-dialog',
                                    +  templateUrl: './filter-dialog.component.html',
                                    +  styleUrls: ['./filter-dialog.component.css'],
                                    +  providers: [
                                    +    { provide: MAT_DATE_FORMATS, useValue: MY_DATE_FORMATS }
                                    +  ]
                                    +})
                                    +
                                    +/**
                                    +* The ImplementerDialogComponent displays a dialog with all filter options
                                    +*/
                                    +export class FilterDialogComponent implements OnInit {
                                    +  public supportGroups: string[] = [];
                                    +  public paketTypes: string[] = [];
                                    +  public states: string[] = [];
                                    +  public contracts: string[] = [];
                                    +  public userSupportGroup: string;
                                    +
                                    +  public criteria: string;
                                    +  public filterStartDate: Date;
                                    +  public filterEndDate: Date;
                                    +
                                    +  public supportGroupsFilter = [];
                                    +  public paketTypesFilter = [];
                                    +  public statesFilter = [];
                                    +  public contractsFilter = [];
                                    +  public textFilter = [];
                                    +  public dateFilter = [];
                                    +  public filterLabels: string[] = [];
                                    +  public filterObj;
                                    +
                                    +  /**
                                    +  * The constructor injects required Dependencies and sets default values for logic and ui
                                    +  * @param languageService representation of the LanguageService
                                    +  * @param dialogRef MatDialog Reference from Angular
                                    +  * @param data contains an array of Changes which should be sent to the backend for a status transition
                                    +  * @param dataService injects the dataService for data management and backend communication
                                    +  */
                                    +  constructor(public languageService: LanguageService, public dialogRef: MatDialogRef<FilterDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any, private dataService: DataService, private _snackBar: MatSnackBar) {
                                    +    //dialogRef.beforeClosed().subscribe(() => dialogRef.close(this.dataToReturn));
                                    +  }
                                    +
                                    +  /**
                                    +  * The function ngOnInit initialized the component by fetching all relevant data via the dataService
                                    +  */
                                    +  ngOnInit(): void {
                                    +      this.dataService.fetchUserSupportGroup().then((res:any)=>{
                                    +        this.userSupportGroup = res.name;
                                    +      });
                                    +      console.log(this.userSupportGroup);
                                    +      if(this.languageService.language == 'DE'){
                                    +        for (const state of this.dataService.getStates()) {
                                    +          this.states.push(state.stateNameDE);
                                    +        }
                                    +      }else{
                                    +        for (const state of this.dataService.getStates()) {
                                    +          this.states.push(state.stateNameEN);
                                    +        }
                                    +      }
                                    +
                                    +      for (const supportGroup of this.dataService.getSupportGroups()) {
                                    +        this.supportGroups.push(supportGroup.name);
                                    +      }
                                    +      for (const contract of this.dataService.getContracts()) {
                                    +        this.contracts.push(contract.name);
                                    +      }
                                    +      for (const paketType of this.dataService.getPaketTypes()) {
                                    +        this.paketTypes.push(paketType.name);
                                    +      }
                                    +  }
                                    +
                                    +  /**
                                    +  * The function onResult gets the result (selection) from the multiselect-autocomplete-component,
                                    +  * evaluates, which filter was selected and maps it to a list
                                    +  * @param event selection event from the multiselect-autocomplete-component
                                    +  */
                                    +  onResult(event: any) {
                                    +      console.log(event);
                                    +      switch (event.key) {
                                    +        case 'supportGroup':
                                    +           this.supportGroupsFilter = event.data;
                                    +        break;
                                    +        case 'state':
                                    +          if(this.languageService.language == 'DE'){
                                    +            console.log(event.data);
                                    +            for (const state of event.data) {
                                    +              if(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;})){
                                    +                this.statesFilter.push(this.dataService.getStates().find((item)=> {return item.stateNameDE == state;}).stateNameEN);
                                    +              }
                                    +              console.log(this.statesFilter);
                                    +            }
                                    +          }else{
                                    +            console.log(event.data);
                                    +            for (const state of event.data) {
                                    +              if(this.dataService.getStates().find((item)=> {return item.stateNameEN == state;})){
                                    +                this.statesFilter.push(this.dataService.getStates().find((item)=> {return item.stateNameEN == state;}).stateNameEN);
                                    +              }
                                    +              console.log(this.statesFilter);
                                    +            }
                                    +          }
                                    +
                                    +          break;
                                    +          case 'contract':
                                    +            //this.contractsFilter = event.data;
                                    +              console.log(event.data);
                                    +              for (const contract of event.data) {
                                    +                if(this.dataService.getContracts().find((item)=> {return item.name == contract;})){
                                    +                  this.contractsFilter.push(this.dataService.getContracts().find((item)=> {return item.name == contract;}).id);
                                    +                }
                                    +                console.log(this.contractsFilter);
                                    +              }
                                    +            break;
                                    +            case 'paketType':
                                    +              //this.paketTypesFilter = event.data;
                                    +              console.log(event.data);
                                    +              for (const paketType of event.data) {
                                    +                if(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;})){
                                    +                  this.paketTypesFilter.push(this.dataService.getPaketTypes().find((item)=> {return item.name == paketType;}).id);
                                    +                }
                                    +                console.log(this.paketTypesFilter);
                                    +              }
                                    +            break;
                                    +        default:
                                    +          break;
                                    +      }
                                    +
                                    +  }
                                    +
                                    +  /**
                                    +  * The function mapFilter builds a filterElement out of all the selected filters, delivers it back and closes the dialog
                                    +  */
                                    +  mapFilter(){
                                    +    let filterElement = []
                                    +    if(this.paketTypesFilter.length > 0){
                                    +      filterElement.push({
                                    +        "column": "PackageType",
                                    +         "filter": "equals",
                                    +         "criteria": this.paketTypesFilter
                                    +        });
                                    +    }
                                    +
                                    +    if(this.statesFilter.length > 0){
                                    +      filterElement.push({
                                    +        "column": "State",
                                    +         "filter": "equals",
                                    +         "criteria": this.statesFilter
                                    +        });
                                    +    }
                                    +
                                    +
                                    +    if(this.contractsFilter.length > 0){
                                    +      filterElement.push({
                                    +        "column": "Contract",
                                    +        "filter": "equals",
                                    +        "criteria": this.contractsFilter
                                    +        });
                                    +    }
                                    +    if(this.supportGroupsFilter.length > 0){
                                    +      filterElement.push({
                                    +        "column": "SupportGroup",
                                    +        "filter": "equals",
                                    +        "criteria": this.supportGroupsFilter
                                    +        });
                                    +        console.log(this.supportGroupsFilter);
                                    +    }else{
                                    +      filterElement.push({
                                    +        "column": "SupportGroup",
                                    +        "filter": "equals",
                                    +        "criteria": [this.userSupportGroup]
                                    +        });
                                    +    }
                                    +
                                    +    if(this.filterStartDate != null && this.filterEndDate != null){
                                    +      filterElement.push({
                                    +        "column": "D2",
                                    +        "filter": "dateRange",
                                    +        "criteria": [new Date(this.filterStartDate), new Date(this.filterEndDate)]
                                    +        });
                                    +    }
                                    +
                                    +    if(this.criteria != null && this.criteria != ""){
                                    +      filterElement.push({
                                    +        "column": "ResourceName",
                                    +        "filter": "contains",
                                    +        "criteria": [this.criteria]
                                    +        });
                                    +    }
                                    +
                                    +    let filter = {filterElement: filterElement};
                                    +    console.log(filter);
                                    +    this.dialogRef.close(filter);
                                    +  }
                                    +}
                                    +
                                    +
                                    +
                                    + + + + +
                                    +
                                    +

                                    results matching ""

                                    +
                                      +
                                      +
                                      +

                                      No results matching ""

                                      +
                                      +
                                      +
                                      +
                                      +
                                      + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/documentation/interfaces/ItemData.html b/frontend/src/documentation/interfaces/ItemData.html new file mode 100644 index 0000000..dd7e4ac --- /dev/null +++ b/frontend/src/documentation/interfaces/ItemData.html @@ -0,0 +1,576 @@ + + + + + + Application documentation + + + + + + + + + + + + +
                                      +
                                      + +
                                      +
                                      + + + + + + + + + + + +
                                      +
                                      +

                                      +

                                      File

                                      +

                                      +

                                      + app/multiselect-autocomplete/multiselect-autocomplete.component.ts +

                                      + + + + + +
                                      +

                                      Properties

                                      + + + + + + + + + + + + + + + + + +
                                      + item +
                                      + item: string + +
                                      + Type : string + +
                                      + + + + + + + + + + + + + + + + + +
                                      + selected +
                                      + selected: boolean + +
                                      + Type : boolean + +
                                      +
                                      +
                                      +
                                      +
                                      import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
                                      +import { FormControl } from '@angular/forms';
                                      +import { Observable } from 'rxjs';
                                      +import { map, startWith } from 'rxjs/operators';
                                      +​
                                      +
                                      +
                                      +export interface ItemData {
                                      +  item: string;
                                      +  selected: boolean;
                                      +}
                                      +
                                      +@Component({
                                      +  selector: 'multiselect-autocomplete',
                                      +  templateUrl: './multiselect-autocomplete.component.html',
                                      +  styleUrls: ['./multiselect-autocomplete.component.css']
                                      +})
                                      +
                                      +/**
                                      +* The MultiselectAutocompleteComponent mixes a angular material multiselect and a angular material autocomplete
                                      +* it builds the base for many filter select option
                                      +*/
                                      +export class MultiselectAutocompleteComponent implements OnInit {
                                      +
                                      +  @Output() result = new EventEmitter<{ key: string, data: Array<string> }>();
                                      +  @Input() placeholder: string = 'Select Data';
                                      +  @Input() data: Array<string> = [];
                                      +  @Input() key: string = '';
                                      +  selectControl = new FormControl();
                                      +
                                      +  rawData: Array<ItemData> = [];
                                      +  selectData: Array<ItemData> = [];
                                      +  filteredData: Observable<Array<ItemData>>;
                                      +  filterString: string = '';
                                      +
                                      +  /**
                                      +  * The constructor maps the default values
                                      +  */
                                      +  constructor() {
                                      +    this.filteredData = this.selectControl.valueChanges.pipe(
                                      +      startWith<string>(''),
                                      +      map(value => typeof value === 'string' ? value : this.filterString),
                                      +      map(filter => this.filter(filter))
                                      +    );
                                      +
                                      +  }
                                      +  /**
                                      +  * The function ngOnInit imports the data (filter options) and maps it
                                      +  */
                                      +  ngOnInit(): void {
                                      +    this.data.forEach((item: string) => {
                                      +      this.rawData.push({ item, selected: false });
                                      +    });
                                      +
                                      +    var WebFont = require('webfontloader');
                                      +    WebFont.load({
                                      +       google: {
                                      +          families: [
                                      +             'Material Icons',
                                      +          ],
                                      +       },
                                      +    });
                                      +
                                      +  }
                                      +
                                      +  /**
                                      +  * The function filter filters the list with the select options
                                      +  * @param filter text to search for
                                      +  */
                                      +  filter = (filter: string): Array<ItemData> => {
                                      +    this.filterString = filter;
                                      +    if (filter.length > 0) {
                                      +      return this.rawData.filter(option => {
                                      +        return option.item.toLowerCase().indexOf(filter.toLowerCase()) >= 0;
                                      +      });
                                      +    } else {
                                      +      return this.rawData.slice();
                                      +    }
                                      +  };
                                      +
                                      +  displayFn = (): string => '';
                                      +  /**
                                      +  * The funtion optionClicked hanled the selection of a select option (filter option)
                                      +  * @param event selection event
                                      +  * @param data (filter)item data
                                      +  */
                                      +  optionClicked = (event: Event, data: ItemData): void => {
                                      +    event.stopPropagation();
                                      +    this.toggleSelection(data);
                                      +  };
                                      +  /**
                                      +  * The function toggleSelection handles a click on a selection item
                                      +  * if it is already selected it will be removed from the selection, if it is not yet selected it will be selected
                                      +  * it builds the base for many filter select option
                                      +  */
                                      +  toggleSelection = (data: ItemData): void => {
                                      +    data.selected = !data.selected;
                                      +    if (data.selected === true) {
                                      +      this.selectData.push(data);
                                      +    } else {
                                      +      const i = this.selectData.findIndex(value => value.item === data.item);
                                      +      this.selectData.splice(i, 1);
                                      +    }
                                      +    this.selectControl.setValue(this.selectData);
                                      +    this.emitAdjustedData();
                                      +  };
                                      +  /**
                                      +  * The emitAdjustedData emits the selected options the the parent component
                                      +  * its triggered when the selectbox is closed
                                      +  */
                                      +
                                      +  emitAdjustedData = (): void => {
                                      +    const results: Array<string> = []
                                      +    this.selectData.forEach((data: ItemData) => {
                                      +      results.push(data.item);
                                      +    });
                                      +    this.result.emit({ key: this.key, data: results });
                                      +  };
                                      +
                                      +  /**
                                      +  * The removeChip removes a option from the selection list if the user presses the remove button on the chip list
                                      +  */
                                      +  removeChip = (data: ItemData): void => {
                                      +    this.toggleSelection(data);
                                      +  };
                                      +
                                      +}
                                      +
                                      +
                                      +
                                      + + + + +
                                      +
                                      +

                                      results matching ""

                                      +
                                        +
                                        +
                                        +

                                        No results matching ""

                                        +
                                        +
                                        +
                                        +
                                        +
                                        + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/documentation/js/compodoc.js b/frontend/src/documentation/js/compodoc.js similarity index 100% rename from frontend/documentation/js/compodoc.js rename to frontend/src/documentation/js/compodoc.js diff --git a/frontend/src/documentation/js/libs/EventDispatcher.js b/frontend/src/documentation/js/libs/EventDispatcher.js new file mode 100644 index 0000000..b729f0d --- /dev/null +++ b/frontend/src/documentation/js/libs/EventDispatcher.js @@ -0,0 +1,96 @@ +/** + * @author mrdoob / http://mrdoob.com/ + */ + +var EventDispatcher = function () {}; + +Object.assign( EventDispatcher.prototype, { + + addEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) this._listeners = {}; + + var listeners = this._listeners; + + if ( listeners[ type ] === undefined ) { + + listeners[ type ] = []; + + } + + if ( listeners[ type ].indexOf( listener ) === - 1 ) { + + listeners[ type ].push( listener ); + + } + + }, + + hasEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return false; + + var listeners = this._listeners; + + if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) { + + return true; + + } + + return false; + + }, + + removeEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ type ]; + + if ( listenerArray !== undefined ) { + + var index = listenerArray.indexOf( listener ); + + if ( index !== - 1 ) { + + listenerArray.splice( index, 1 ); + + } + + } + + }, + + dispatchEvent: function ( event ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ event.type ]; + + if ( listenerArray !== undefined ) { + + event.target = this; + + var array = [], i = 0; + var length = listenerArray.length; + + for ( i = 0; i < length; i ++ ) { + + array[ i ] = listenerArray[ i ]; + + } + + for ( i = 0; i < length; i ++ ) { + + array[ i ].call( this, event ); + + } + + } + + } + +} ); diff --git a/frontend/src/documentation/js/libs/bootstrap-native.js b/frontend/src/documentation/js/libs/bootstrap-native.js new file mode 100644 index 0000000..b4e2215 --- /dev/null +++ b/frontend/src/documentation/js/libs/bootstrap-native.js @@ -0,0 +1,292 @@ +// Native Javascript for Bootstrap 3 v1.1.0 | © dnp_theme | MIT-License +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD support: + define([], factory); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like: + module.exports = factory(); + } else { + // Browser globals (root is window) + var bsn = factory(); + root.Affix = bsn.Affix; + root.Alert = bsn.Alert; + root.Button = bsn.Button; + root.Carousel = bsn.Carousel; + root.Collapse = bsn.Collapse; + root.Dropdown = bsn.Dropdown; + root.Modal = bsn.Modal; + root.Popover = bsn.Popover; + root.ScrollSpy = bsn.ScrollSpy; + root.Tab = bsn.Tab; + root.Tooltip = bsn.Tooltip; + } +}(this, function() { + // Native Javascript for Bootstrap 3 | Internal Utility Functions + // by dnp_theme + var addClass = function(el, c) { // where modern browsers fail, use classList + if (el.classList) { + el.classList.add(c); + } else { + el.className += ' ' + c; + el.offsetWidth; + } + }, + removeClass = function(el, c) { + if (el.classList) { + el.classList.remove(c); + } else { + el.className = el.className.replace(c, '').replace(/^\s+|\s+$/g, ''); + } + }, + isIE = (new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})").exec(navigator.userAgent) != null) ? parseFloat(RegExp.$1) : false, + getClosest = function(el, s) { //el is the element and s the selector of the closest item to find + // source http://gomakethings.com/climbing-up-and-down-the-dom-tree-with-vanilla-javascript/ + var f = s.charAt(0); + for (; el && el !== document; el = el.parentNode) { // Get closest match + if (f === '.') { // If selector is a class + if (document.querySelector(s) !== undefined) { + return el; + } + } + if (f === '#') { // If selector is an ID + if (el.id === s.substr(1)) { + return el; + } + } + } + return false; + }, + + + // tooltip / popover stuff + isElementInViewport = function(t) { // check if this.tooltip is in viewport + var r = t.getBoundingClientRect(); + return ( + r.top >= 0 && r.left >= 0 && r.bottom <= (window.innerHeight || document.documentElement.clientHeight) && r.right <= (window.innerWidth || document.documentElement.clientWidth)) + }, + getScroll = function() { // also Affix and scrollSpy uses it + return { + y: window.pageYOffset || document.documentElement.scrollTop, + x: window.pageXOffset || document.documentElement.scrollLeft + } + }, + mouseHover = ('onmouseleave' in document) ? ['mouseenter', 'mouseleave'] : ['mouseover', 'mouseout'], + tipPositions = /\b(top|bottom|left|top)+/; + + + // Native Javascript for Bootstrap 3 | Collapse + // by dnp_theme + // COLLAPSE DEFINITION + // =================== + var Collapse = function(element, options) { + options = options || {}; + + this.btn = typeof element === 'object' ? element : document.querySelector(element); + this.accordion = null; + this.collapse = null; + this.duration = 300; // default collapse transition duration + this.options = {}; + this.options.duration = (isIE && isIE < 10) ? 0 : (options.duration || this.duration); + var self = this; + var getOuterHeight = function(el) { + var s = el && (el.currentStyle || window.getComputedStyle(el)), + // the getComputedStyle polyfill would do this for us, but we want to make sure it does + btp = /px/.test(s.borderTopWidth) ? Math.round(s.borderTopWidth.replace('px', '')) : 0, + mtp = /px/.test(s.marginTop) ? Math.round(s.marginTop.replace('px', '')) : 0, + mbp = /px/.test(s.marginBottom) ? Math.round(s.marginBottom.replace('px', '')) : 0, + mte = /em/.test(s.marginTop) ? Math.round(s.marginTop.replace('em', '') * parseInt(s.fontSize)) : 0, + mbe = /em/.test(s.marginBottom) ? Math.round(s.marginBottom.replace('em', '') * parseInt(s.fontSize)) : 0; + return el.clientHeight + parseInt(btp) + parseInt(mtp) + parseInt(mbp) + parseInt(mte) + parseInt(mbe); //we need an accurate margin value + }; + + this.toggle = function(e) { + e.preventDefault(); + + if (!/\bin/.test(self.collapse.className)) { + self.open(); + } else { + self.close(); + } + }; + this.close = function() { + this._close(this.collapse); + addClass(this.btn, 'collapsed'); + }; + this.open = function() { + this._open(this.collapse); + removeClass(this.btn, 'collapsed'); + + if (this.accordion !== null) { + var active = this.accordion.querySelectorAll('.collapse.in'), + al = active.length, + i = 0; + for (i; i < al; i++) { + if (active[i] !== this.collapse) this._close(active[i]); + } + } + }; + this._open = function(c) { + this.removeEvent(); + addClass(c, 'in'); + c.setAttribute('aria-expanded', 'true'); + addClass(c, 'collapsing'); + setTimeout(function() { + c.style.height = self.getMaxHeight(c) + 'px' + c.style.overflowY = 'hidden'; + }, 0); + setTimeout(function() { + c.style.height = ''; + c.style.overflowY = ''; + removeClass(c, 'collapsing'); + self.addEvent(); + }, this.options.duration); + }; + this._close = function(c) { + this.removeEvent(); + c.setAttribute('aria-expanded', 'false'); + c.style.height = this.getMaxHeight(c) + 'px' + setTimeout(function() { + c.style.height = '0px'; + c.style.overflowY = 'hidden'; + addClass(c, 'collapsing'); + }, 0); + + setTimeout(function() { + removeClass(c, 'collapsing'); + removeClass(c, 'in'); + c.style.overflowY = ''; + c.style.height = ''; + self.addEvent(); + }, this.options.duration); + }; + this.getMaxHeight = function(l) { // get collapse trueHeight and border + var h = 0; + for (var k = 0, ll = l.children.length; k < ll; k++) { + h += getOuterHeight(l.children[k]); + } + return h; + }; + this.removeEvent = function() { + this.btn.removeEventListener('click', this.toggle, false); + }; + this.addEvent = function() { + this.btn.addEventListener('click', this.toggle, false); + }; + this.getTarget = function() { + var t = this.btn, + h = t.href && t.getAttribute('href').replace('#', ''), + d = t.getAttribute('data-target') && (t.getAttribute('data-target')), + id = h || (d && /#/.test(d)) && d.replace('#', ''), + cl = (d && d.charAt(0) === '.') && d, + //the navbar collapse trigger targets a class + c = id && document.getElementById(id) || cl && document.querySelector(cl); + return c; + }; + + // init + this.addEvent(); + this.collapse = this.getTarget(); + this.accordion = this.btn.getAttribute('data-parent') && getClosest(this.btn, this.btn.getAttribute('data-parent')); + }; + + // COLLAPSE DATA API + // ================= + var Collapses = document.querySelectorAll('[data-toggle="collapse"]'); + for (var o = 0, cll = Collapses.length; o < cll; o++) { + var collapse = Collapses[o], + options = {}; + options.duration = collapse.getAttribute('data-duration'); + new Collapse(collapse, options); + } + + // Native Javascript for Bootstrap 3 | Tab + // by dnp_theme + + // TAB DEFINITION + // =================== + var Tab = function( element,options ) { + options = options || {}; + this.tab = typeof element === 'object' ? element : document.querySelector(element); + this.tabs = this.tab.parentNode.parentNode; + this.dropdown = this.tabs.querySelector('.dropdown'); + if ( /\bdropdown-menu/.test(this.tabs.className) ) { + this.dropdown = this.tabs.parentNode; + this.tabs = this.tabs.parentNode.parentNode; + } + this.options = options; + + // default tab transition duration + this.duration = 150; + this.options.duration = (isIE && isIE < 10) ? 0 : (options.duration || this.duration); + + var self = this; + + this.handle = function(e) { + e = e || window.e; e.preventDefault(); + var next = e.target; //the tab we clicked is now the next tab + var nextContent = document.getElementById(next.getAttribute('href').replace('#','')); //this is the actual object, the next tab content to activate + + // get current active tab and content + var activeTab = self.getActiveTab(); + var activeContent = self.getActiveContent(); + + if ( !/\bactive/.test(next.parentNode.className) ) { + // toggle "active" class name + removeClass(activeTab,'active'); + addClass(next.parentNode,'active'); + + // handle dropdown menu "active" class name + if ( self.dropdown ) { + if ( !(/\bdropdown-menu/.test(self.tab.parentNode.parentNode.className)) ) { + if (/\bactive/.test(self.dropdown.className)) removeClass(self.dropdown,'active'); + } else { + if (!/\bactive/.test(self.dropdown.className)) addClass(self.dropdown,'active'); + } + } + + //1. hide current active content first + removeClass(activeContent,'in'); + + setTimeout(function() { + //2. toggle current active content from view + removeClass(activeContent,'active'); + addClass(nextContent,'active'); + }, self.options.duration); + setTimeout(function() { + //3. show next active content + addClass(nextContent,'in'); + }, self.options.duration*2); + } + }; + this.getActiveTab = function() { + var activeTabs = this.tabs.querySelectorAll('.active'); + if ( activeTabs.length === 1 && !/\bdropdown/.test(activeTabs[0].className) ) { + return activeTabs[0] + } else if ( activeTabs.length > 1 ) { + return activeTabs[activeTabs.length-1] + } + }; + this.getActiveContent = function() { + var active = this.getActiveTab().getElementsByTagName('A')[0].getAttribute('href').replace('#',''); + return active && document.getElementById(active) + }; + + // init + this.tab.addEventListener('click', this.handle, false); + }; + + // TAB DATA API + // ================= + var Tabs = document.querySelectorAll("[data-toggle='tab'], [data-toggle='pill']"); + for ( var tb = 0, tbl = Tabs.length; tb=0&&g(e)!=="[object Array]"&&g(e.callee)==="[object Function]"};var X=U(arguments)?U:J;var K={primitive:function(e){return e===null||typeof e!=="function"&&typeof e!=="object"},string:function(e){return g(e)==="[object String]"},regex:function(e){return g(e)==="[object RegExp]"},symbol:function(e){return typeof S.Symbol==="function"&&typeof e==="symbol"}};var Z=function overrideNative(e,t,r){var n=e[t];h(e,t,r,true);O.preserveToString(e[t],n)};var Y=typeof G==="function"&&typeof G["for"]==="function"&&K.symbol(G());var Q=K.symbol(G.iterator)?G.iterator:"_es6-shim iterator_";if(S.Set&&typeof(new S.Set)["@@iterator"]==="function"){Q="@@iterator"}if(!S.Reflect){h(S,"Reflect",{},true)}var ee=S.Reflect;var te=String;var re={Call:function Call(t,r){var n=arguments.length>2?arguments[2]:[];if(!re.IsCallable(t)){throw new TypeError(t+" is not a function")}return e(t,r,n)},RequireObjectCoercible:function(e,t){if(e==null){throw new TypeError(t||"Cannot call method on "+e)}return e},TypeIsObject:function(e){if(e===void 0||e===null||e===true||e===false){return false}return typeof e==="function"||typeof e==="object"},ToObject:function(e,t){return Object(re.RequireObjectCoercible(e,t))},IsCallable:d,IsConstructor:function(e){return re.IsCallable(e)},ToInt32:function(e){return re.ToNumber(e)>>0},ToUint32:function(e){return re.ToNumber(e)>>>0},ToNumber:function(e){if(g(e)==="[object Symbol]"){throw new TypeError("Cannot convert a Symbol value to a number")}return+e},ToInteger:function(e){var t=re.ToNumber(e);if(V(t)){return 0}if(t===0||!B(t)){return t}return(t>0?1:-1)*_(k(t))},ToLength:function(e){var t=re.ToInteger(e);if(t<=0){return 0}if(t>Number.MAX_SAFE_INTEGER){return Number.MAX_SAFE_INTEGER}return t},SameValue:function(e,t){if(e===t){if(e===0){return 1/e===1/t}return true}return V(e)&&V(t)},SameValueZero:function(e,t){return e===t||V(e)&&V(t)},IsIterable:function(e){return re.TypeIsObject(e)&&(typeof e[Q]!=="undefined"||X(e))},GetIterator:function(e){if(X(e)){return new q(e,"value")}var t=re.GetMethod(e,Q);if(!re.IsCallable(t)){throw new TypeError("value is not an iterable")}var r=re.Call(t,e);if(!re.TypeIsObject(r)){throw new TypeError("bad iterator")}return r},GetMethod:function(e,t){var r=re.ToObject(e)[t];if(r===void 0||r===null){return void 0}if(!re.IsCallable(r)){throw new TypeError("Method not callable: "+t)}return r},IteratorComplete:function(e){return!!e.done},IteratorClose:function(e,t){var r=re.GetMethod(e,"return");if(r===void 0){return}var n,o;try{n=re.Call(r,e)}catch(i){o=i}if(t){return}if(o){throw o}if(!re.TypeIsObject(n)){throw new TypeError("Iterator's return method returned a non-object.")}},IteratorNext:function(e){var t=arguments.length>1?e.next(arguments[1]):e.next();if(!re.TypeIsObject(t)){throw new TypeError("bad iterator")}return t},IteratorStep:function(e){var t=re.IteratorNext(e);var r=re.IteratorComplete(t);return r?false:t},Construct:function(e,t,r,n){var o=typeof r==="undefined"?e:r;if(!n&&ee.construct){return ee.construct(e,t,o)}var i=o.prototype;if(!re.TypeIsObject(i)){i=Object.prototype}var a=m(i);var u=re.Call(e,a,t);return re.TypeIsObject(u)?u:a},SpeciesConstructor:function(e,t){var r=e.constructor;if(r===void 0){return t}if(!re.TypeIsObject(r)){throw new TypeError("Bad constructor")}var n=r[H];if(n===void 0||n===null){return t}if(!re.IsConstructor(n)){throw new TypeError("Bad @@species")}return n},CreateHTML:function(e,t,r,n){var o=re.ToString(e);var i="<"+t;if(r!==""){var a=re.ToString(n);var u=a.replace(/"/g,""");i+=" "+r+'="'+u+'"'}var f=i+">";var s=f+o;return s+""},IsRegExp:function IsRegExp(e){if(!re.TypeIsObject(e)){return false}var t=e[G.match];if(typeof t!=="undefined"){return!!t}return K.regex(e)},ToString:function ToString(e){return te(e)}};if(s&&Y){var ne=function defineWellKnownSymbol(e){if(K.symbol(G[e])){return G[e]}var t=G["for"]("Symbol."+e);Object.defineProperty(G,e,{configurable:false,enumerable:false,writable:false,value:t});return t};if(!K.symbol(G.search)){var oe=ne("search");var ie=String.prototype.search;h(RegExp.prototype,oe,function search(e){return re.Call(ie,e,[this])});var ae=function search(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,oe);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(ie,t,[re.ToString(e)])};Z(String.prototype,"search",ae)}if(!K.symbol(G.replace)){var ue=ne("replace");var fe=String.prototype.replace;h(RegExp.prototype,ue,function replace(e,t){return re.Call(fe,e,[this,t])});var se=function replace(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ue);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(fe,r,[re.ToString(e),t])};Z(String.prototype,"replace",se)}if(!K.symbol(G.split)){var ce=ne("split");var le=String.prototype.split;h(RegExp.prototype,ce,function split(e,t){return re.Call(le,e,[this,t])});var pe=function split(e,t){var r=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var n=re.GetMethod(e,ce);if(typeof n!=="undefined"){return re.Call(n,e,[r,t])}}return re.Call(le,r,[re.ToString(e),t])};Z(String.prototype,"split",pe)}var ve=K.symbol(G.match);var ye=ve&&function(){var e={};e[G.match]=function(){return 42};return"a".match(e)!==42}();if(!ve||ye){var he=ne("match");var be=String.prototype.match;h(RegExp.prototype,he,function match(e){return re.Call(be,e,[this])});var ge=function match(e){var t=re.RequireObjectCoercible(this);if(e!==null&&typeof e!=="undefined"){var r=re.GetMethod(e,he);if(typeof r!=="undefined"){return re.Call(r,e,[t])}}return re.Call(be,t,[re.ToString(e)])};Z(String.prototype,"match",ge)}}var de=function wrapConstructor(e,t,r){O.preserveToString(t,e);if(Object.setPrototypeOf){Object.setPrototypeOf(e,t)}if(s){l(Object.getOwnPropertyNames(e),function(n){if(n in W||r[n]){return}O.proxy(e,n,t)})}else{l(Object.keys(e),function(n){if(n in W||r[n]){return}t[n]=e[n]})}t.prototype=e.prototype;O.redefine(e.prototype,"constructor",t)};var Oe=function(){return this};var me=function(e){if(s&&!z(e,H)){O.getter(e,H,Oe)}};var we=function(e,t){var r=t||function iterator(){return this};h(e,Q,r);if(!e[Q]&&K.symbol(Q)){e[Q]=r}};var je=function createDataProperty(e,t,r){if(s){Object.defineProperty(e,t,{configurable:true,enumerable:true,writable:true,value:r})}else{e[t]=r}};var Se=function createDataPropertyOrThrow(e,t,r){je(e,t,r);if(!re.SameValue(e[t],r)){throw new TypeError("property is nonconfigurable")}};var Te=function(e,t,r,n){if(!re.TypeIsObject(e)){throw new TypeError("Constructor requires `new`: "+t.name)}var o=t.prototype;if(!re.TypeIsObject(o)){o=r}var i=m(o);for(var a in n){if(z(n,a)){var u=n[a];h(i,a,u,true)}}return i};if(String.fromCodePoint&&String.fromCodePoint.length!==1){var Ie=String.fromCodePoint;Z(String,"fromCodePoint",function fromCodePoint(e){return re.Call(Ie,this,arguments)})}var Ee={fromCodePoint:function fromCodePoint(e){var t=[];var r;for(var n=0,o=arguments.length;n1114111){throw new RangeError("Invalid code point "+r)}if(r<65536){M(t,String.fromCharCode(r))}else{r-=65536;M(t,String.fromCharCode((r>>10)+55296));M(t,String.fromCharCode(r%1024+56320))}}return t.join("")},raw:function raw(e){var t=re.ToObject(e,"bad callSite");var r=re.ToObject(t.raw,"bad raw value");var n=r.length;var o=re.ToLength(n);if(o<=0){return""}var i=[];var a=0;var u,f,s,c;while(a=o){break}f=a+1=Ce){throw new RangeError("repeat count must be less than infinity and not overflow maximum string size")}return Pe(t,r)},startsWith:function startsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "startsWith" with a regex')}var r=re.ToString(e);var n;if(arguments.length>1){n=arguments[1]}var o=A(re.ToInteger(n),0);return C(t,o,o+r.length)===r},endsWith:function endsWith(e){var t=re.ToString(re.RequireObjectCoercible(this));if(re.IsRegExp(e)){throw new TypeError('Cannot call method "endsWith" with a regex')}var r=re.ToString(e);var n=t.length;var o;if(arguments.length>1){o=arguments[1]}var i=typeof o==="undefined"?n:re.ToInteger(o);var a=R(A(i,0),n);return C(t,a-r.length,a)===r},includes:function includes(e){if(re.IsRegExp(e)){throw new TypeError('"includes" does not accept a RegExp')}var t=re.ToString(e);var r;if(arguments.length>1){r=arguments[1]}return I(this,t,r)!==-1},codePointAt:function codePointAt(e){var t=re.ToString(re.RequireObjectCoercible(this));var r=re.ToInteger(e);var n=t.length;if(r>=0&&r56319||i){return o}var a=t.charCodeAt(r+1);if(a<56320||a>57343){return o}return(o-55296)*1024+(a-56320)+65536}}};if(String.prototype.includes&&"a".includes("a",Infinity)!==false){Z(String.prototype,"includes",Me.includes)}if(String.prototype.startsWith&&String.prototype.endsWith){var xe=i(function(){"/a/".startsWith(/a/)});var Ne=a(function(){return"abc".startsWith("a",Infinity)===false});if(!xe||!Ne){Z(String.prototype,"startsWith",Me.startsWith);Z(String.prototype,"endsWith",Me.endsWith)}}if(Y){var Ae=a(function(){var e=/a/;e[G.match]=false;return"/a/".startsWith(e)});if(!Ae){Z(String.prototype,"startsWith",Me.startsWith)}var Re=a(function(){var e=/a/;e[G.match]=false;return"/a/".endsWith(e)});if(!Re){Z(String.prototype,"endsWith",Me.endsWith)}var _e=a(function(){var e=/a/;e[G.match]=false;return"/a/".includes(e)});if(!_e){Z(String.prototype,"includes",Me.includes)}}b(String.prototype,Me);var ke=[" \n\x0B\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003","\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028","\u2029\ufeff"].join("");var Fe=new RegExp("(^["+ke+"]+)|(["+ke+"]+$)","g");var Le=function trim(){return re.ToString(re.RequireObjectCoercible(this)).replace(Fe,"")};var De=["\x85","\u200b","\ufffe"].join("");var ze=new RegExp("["+De+"]","g");var qe=/^[\-+]0x[0-9a-f]+$/i;var We=De.trim().length!==De.length;h(String.prototype,"trim",Le,We);var Ge=function(e){return{value:e,done:arguments.length===0}};var He=function(e){re.RequireObjectCoercible(e);this._s=re.ToString(e);this._i=0};He.prototype.next=function(){var e=this._s;var t=this._i;if(typeof e==="undefined"||t>=e.length){this._s=void 0;return Ge()}var r=e.charCodeAt(t);var n,o;if(r<55296||r>56319||t+1===e.length){o=1}else{n=e.charCodeAt(t+1);o=n<56320||n>57343?1:2}this._i=t+o;return Ge(e.substr(t,o))};we(He.prototype);we(String.prototype,function(){return new He(this)});var Ve={from:function from(e){var r=this;var n;if(arguments.length>1){n=arguments[1]}var o,i;if(typeof n==="undefined"){o=false}else{if(!re.IsCallable(n)){throw new TypeError("Array.from: when provided, the second argument must be a function")}if(arguments.length>2){i=arguments[2]}o=true}var a=typeof(X(e)||re.GetMethod(e,Q))!=="undefined";var u,f,s;if(a){f=re.IsConstructor(r)?Object(new r):[];var c=re.GetIterator(e);var l,p;s=0;while(true){l=re.IteratorStep(c);if(l===false){break}p=l.value;try{if(o){p=typeof i==="undefined"?n(p,s):t(n,i,p,s)}f[s]=p}catch(v){re.IteratorClose(c,true);throw v}s+=1}u=s}else{var y=re.ToObject(e);u=re.ToLength(y.length);f=re.IsConstructor(r)?Object(new r(u)):new Array(u);var h;for(s=0;s2){f=arguments[2]}var s=typeof f==="undefined"?n:re.ToInteger(f);var c=s<0?A(n+s,0):R(s,n);var l=R(c-u,n-a);var p=1;if(u0){if(u in r){r[a]=r[u]}else{delete r[a]}u+=p;a+=p;l-=1}return r},fill:function fill(e){var t;if(arguments.length>1){t=arguments[1]}var r;if(arguments.length>2){r=arguments[2]}var n=re.ToObject(this);var o=re.ToLength(n.length);t=re.ToInteger(typeof t==="undefined"?0:t);r=re.ToInteger(typeof r==="undefined"?o:r);var i=t<0?A(o+t,0):R(t,o);var a=r<0?o+r:r;for(var u=i;u1?arguments[1]:null;for(var i=0,a;i1?arguments[1]:null;for(var i=0;i1&&typeof arguments[1]!=="undefined"){return re.Call(Ze,this,arguments)}else{return t(Ze,this,e)}})}var Ye=-(Math.pow(2,32)-1);var Qe=function(e,r){var n={length:Ye};n[r?(n.length>>>0)-1:0]=true;return a(function(){t(e,n,function(){throw new RangeError("should not reach here")},[]);return true})};if(!Qe(Array.prototype.forEach)){var et=Array.prototype.forEach;Z(Array.prototype,"forEach",function forEach(e){return re.Call(et,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.map)){var tt=Array.prototype.map;Z(Array.prototype,"map",function map(e){return re.Call(tt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.filter)){var rt=Array.prototype.filter;Z(Array.prototype,"filter",function filter(e){return re.Call(rt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.some)){var nt=Array.prototype.some;Z(Array.prototype,"some",function some(e){return re.Call(nt,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.every)){var ot=Array.prototype.every;Z(Array.prototype,"every",function every(e){return re.Call(ot,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduce)){var it=Array.prototype.reduce;Z(Array.prototype,"reduce",function reduce(e){return re.Call(it,this.length>=0?this:[],arguments)},true)}if(!Qe(Array.prototype.reduceRight,true)){var at=Array.prototype.reduceRight;Z(Array.prototype,"reduceRight",function reduceRight(e){return re.Call(at,this.length>=0?this:[],arguments)},true)}var ut=Number("0o10")!==8;var ft=Number("0b10")!==2;var st=y(De,function(e){return Number(e+0+e)===0});if(ut||ft||st){var ct=Number;var lt=/^0b[01]+$/i;var pt=/^0o[0-7]+$/i;var vt=lt.test.bind(lt);var yt=pt.test.bind(pt);var ht=function(e){var t;if(typeof e.valueOf==="function"){t=e.valueOf();if(K.primitive(t)){return t}}if(typeof e.toString==="function"){t=e.toString();if(K.primitive(t)){return t}}throw new TypeError("No default value")};var bt=ze.test.bind(ze);var gt=qe.test.bind(qe);var dt=function(){var e=function Number(t){var r;if(arguments.length>0){r=K.primitive(t)?t:ht(t,"number")}else{r=0}if(typeof r==="string"){r=re.Call(Le,r);if(vt(r)){r=parseInt(C(r,2),2)}else if(yt(r)){r=parseInt(C(r,2),8)}else if(bt(r)||gt(r)){r=NaN}}var n=this;var o=a(function(){ct.prototype.valueOf.call(n);return true});if(n instanceof e&&!o){return new ct(r)}return ct(r)};return e}();de(ct,dt,{});b(dt,{NaN:ct.NaN,MAX_VALUE:ct.MAX_VALUE,MIN_VALUE:ct.MIN_VALUE,NEGATIVE_INFINITY:ct.NEGATIVE_INFINITY,POSITIVE_INFINITY:ct.POSITIVE_INFINITY});Number=dt;O.redefine(S,"Number",dt)}var Ot=Math.pow(2,53)-1;b(Number,{MAX_SAFE_INTEGER:Ot,MIN_SAFE_INTEGER:-Ot,EPSILON:2.220446049250313e-16,parseInt:S.parseInt,parseFloat:S.parseFloat,isFinite:B,isInteger:function isInteger(e){return B(e)&&re.ToInteger(e)===e},isSafeInteger:function isSafeInteger(e){return Number.isInteger(e)&&k(e)<=Number.MAX_SAFE_INTEGER},isNaN:V});h(Number,"parseInt",S.parseInt,Number.parseInt!==S.parseInt);if(![,1].find(function(e,t){return t===0})){Z(Array.prototype,"find",$e.find)}if([,1].findIndex(function(e,t){return t===0})!==0){Z(Array.prototype,"findIndex",$e.findIndex)}var mt=Function.bind.call(Function.bind,Object.prototype.propertyIsEnumerable);var wt=function ensureEnumerable(e,t){if(s&&mt(e,t)){Object.defineProperty(e,t,{enumerable:false})}};var jt=function sliceArgs(){var e=Number(this);var t=arguments.length;var r=t-e;var n=new Array(r<0?0:r);for(var o=e;o1){return NaN}if(t===-1){return-Infinity}if(t===1){return Infinity}if(t===0){return t}return.5*L((1+t)/(1-t))},cbrt:function cbrt(e){var t=Number(e);if(t===0){return t}var r=t<0;var n;if(r){t=-t}if(t===Infinity){n=Infinity}else{n=F(L(t)/3);n=(t/(n*n)+2*n)/3}return r?-n:n},clz32:function clz32(e){var t=Number(e);var r=re.ToUint32(t);if(r===0){return 32}return Or?re.Call(Or,r):31-_(L(r+.5)*gr)},cosh:function cosh(e){var t=Number(e);if(t===0){return 1}if(V(t)){return NaN}if(!T(t)){return Infinity}if(t<0){t=-t}if(t>21){return F(t)/2}return(F(t)+F(-t))/2},expm1:function expm1(e){var t=Number(e);if(t===-Infinity){return-1}if(!T(t)||t===0){return t}if(k(t)>.5){return F(t)-1}var r=t;var n=0;var o=1;while(n+r!==n){n+=r;o+=1;r*=t/o}return n},hypot:function hypot(e,t){var r=0;var n=0;for(var o=0;o0?i/n*(i/n):i}}return n===Infinity?Infinity:n*D(r)},log2:function log2(e){return L(e)*gr},log10:function log10(e){return L(e)*dr},log1p:function log1p(e){var t=Number(e);if(t<-1||V(t)){return NaN}if(t===0||t===Infinity){return t}if(t===-1){return-Infinity}return 1+t-1===0?t:t*(L(1+t)/(1+t-1))},sign:$,sinh:function sinh(e){var t=Number(e);if(!T(t)||t===0){return t}if(k(t)<1){return(Math.expm1(t)-Math.expm1(-t))/2}return(F(t-1)-F(-t-1))*br/2},tanh:function tanh(e){var t=Number(e);if(V(t)||t===0){return t}if(t>=20){return 1}if(t<=-20){return-1}return(Math.expm1(t)-Math.expm1(-t))/(F(t)+F(-t))},trunc:function trunc(e){var t=Number(e);return t<0?-_(-t):_(t)},imul:function imul(e,t){var r=re.ToUint32(e);var n=re.ToUint32(t);var o=r>>>16&65535;var i=r&65535;var a=n>>>16&65535;var u=n&65535;return i*u+(o*u+i*a<<16>>>0)|0},fround:function fround(e){var t=Number(e);if(t===0||t===Infinity||t===-Infinity||V(t)){return t}var r=$(t);var n=k(t);if(nyr||V(i)){return r*Infinity}return r*i}};b(Math,mr);h(Math,"log1p",mr.log1p,Math.log1p(-1e-17)!==-1e-17);h(Math,"asinh",mr.asinh,Math.asinh(-1e7)!==-Math.asinh(1e7));h(Math,"tanh",mr.tanh,Math.tanh(-2e-17)!==-2e-17);h(Math,"acosh",mr.acosh,Math.acosh(Number.MAX_VALUE)===Infinity);h(Math,"cbrt",mr.cbrt,Math.abs(1-Math.cbrt(1e-300)/1e-100)/Number.EPSILON>8);h(Math,"sinh",mr.sinh,Math.sinh(-2e-17)!==-2e-17);var wr=Math.expm1(10);h(Math,"expm1",mr.expm1,wr>22025.465794806718||wr<22025.465794806718);var jr=Math.round;var Sr=Math.round(.5-Number.EPSILON/4)===0&&Math.round(-.5+Number.EPSILON/3.99)===1;var Tr=lr+1;var Ir=2*lr-1;var Er=[Tr,Ir].every(function(e){return Math.round(e)===e});h(Math,"round",function round(e){var t=_(e);var r=t===-1?-0:t+1;return e-t<.5?t:r},!Sr||!Er);O.preserveToString(Math.round,jr);var Pr=Math.imul;if(Math.imul(4294967295,5)!==-5){Math.imul=mr.imul;O.preserveToString(Math.imul,Pr)}if(Math.imul.length!==2){Z(Math,"imul",function imul(e,t){return re.Call(Pr,Math,arguments); -})}var Cr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}re.IsPromise=function(e){if(!re.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!re.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(re.IsCallable(t.resolve)&&re.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&re.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=re.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(re.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=re.IsCallable(e)?e:a;var d=re.IsCallable(t)?t:u;var O=n._promise;var m;if(O.state===f){if(O.reactionLength===0){O.fulfillReactionHandler0=g;O.rejectReactionHandler0=d;O.reactionCapability0=i}else{var w=3*(O.reactionLength-1);O[w+l]=g;O[w+p]=d;O[w+v]=i}O.reactionLength+=1}else if(O.state===s){m=O.result;h(g,i,m)}else if(O.state===c){m=O.result;h(d,i,m)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof Cr==="function"){b(S,{Promise:Cr});var Mr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var xr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Nr=i(function(){S.Promise.call(3,W)});var Ar=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(n){return true}return t===r}(S.Promise);var Rr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var _r=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};_r.prototype=Promise.prototype;_r.all=Promise.all;var kr=a(function(){return!!_r.all([1,2])});if(!Mr||!xr||!Nr||Ar||!Rr||kr){Promise=Cr;Z(S,"Promise",Cr)}if(Promise.all.length!==1){var Fr=Promise.all;Z(Promise,"all",function all(e){return re.Call(Fr,this,arguments)})}if(Promise.race.length!==1){var Lr=Promise.race;Z(Promise,"race",function race(e){return re.Call(Lr,this,arguments)})}if(Promise.resolve.length!==1){var Dr=Promise.resolve;Z(Promise,"resolve",function resolve(e){return re.Call(Dr,this,arguments)})}if(Promise.reject.length!==1){var zr=Promise.reject;Z(Promise,"reject",function reject(e){return re.Call(zr,this,arguments)})}wt(Promise,"all");wt(Promise,"race");wt(Promise,"resolve");wt(Promise,"reject");me(Promise)}var qr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Wr=qr(["z","a","bb"]);var Gr=qr(["z",1,"a","3",2]);if(s){var Hr=function fastkey(e){if(!Wr){return null}if(typeof e==="undefined"||e===null){return"^"+re.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Gr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Vr=function emptyObject(){return Object.create?Object.create(null):{}};var Br=function addIterableToMap(e,n,o){if(r(o)||K.string(o)){l(o,function(e){if(!re.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!re.IsCallable(a)){throw new TypeError("bad map")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!re.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){re.IteratorClose(i,true);throw s}}}}};var $r=function addIterableToSet(e,n,o){if(r(o)||K.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!re.IsCallable(a)){throw new TypeError("bad set")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){re.IteratorClose(i,true);throw s}}}}};var Ur={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!re.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+re.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ge()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ge(n)}}this.i=void 0;return Ge()}};we(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Te(this,Map,a,{_es6map:true,_head:null,_storage:Vr(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Br(Map,e,arguments[0])}return e};a=u.prototype;O.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t=Hr(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Hr(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head;var n=r;while((n=n.next)!==r){if(re.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Hr(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(re.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=Hr(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(re.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Vr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});we(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!re.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+re.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Te(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Vr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){$r(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new Ur.Map;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};O.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Hr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Hr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Hr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Vr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);we(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var Jr=a(function(){return new Map([[1,2]]).get(1)===2});if(!Jr){var Xr=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Xr;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=m(Xr.prototype);h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,Xr)}var Kr=new Map;var Zr=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var Yr=Kr.set(1,2)===Kr;if(!Zr||!Yr){var Qr=Map.prototype.set;Z(Map.prototype,"set",function set(e,r){t(Qr,this,e===0?0:e,r);return this})}if(!Zr){var en=Map.prototype.get;var tn=Map.prototype.has;b(Map.prototype,{get:function get(e){return t(en,this,e===0?0:e)},has:function has(e){return t(tn,this,e===0?0:e)}},true);O.preserveToString(Map.prototype.get,en);O.preserveToString(Map.prototype.has,tn)}var rn=new Set;var nn=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(rn);var on=rn.add(1)===rn;if(!nn||!on){var an=Set.prototype.add;Set.prototype.add=function add(e){t(an,this,e===0?0:e);return this};O.preserveToString(Set.prototype.add,an)}if(!nn){var un=Set.prototype.has;Set.prototype.has=function has(e){return t(un,this,e===0?0:e)};O.preserveToString(Set.prototype.has,un);var fn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(fn,this,e===0?0:e)};O.preserveToString(Set.prototype["delete"],fn)}var sn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var cn=Object.setPrototypeOf&&!sn;var ln=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||cn||!ln){var pn=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new pn;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=pn.prototype;h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,pn)}var vn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var yn=Object.setPrototypeOf&&!vn;var hn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||yn||!hn){var bn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new bn;if(arguments.length>0){$r(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=bn.prototype;h(S.Set.prototype,"constructor",S.Set,true);O.preserveToString(S.Set,bn)}var gn=new S.Map;var dn=!a(function(){return gn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||gn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof gn.keys().next!=="function"||dn||!sn){b(S,{Map:Ur.Map,Set:Ur.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}we(Object.getPrototypeOf((new S.Map).keys()));we(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var On=S.Set.prototype.has;Z(S.Set.prototype,"has",function has(e){return t(On,this,e)})}}b(S,Ur);me(S.Map);me(S.Set)}var mn=function throwUnlessTargetIsObject(e){if(!re.TypeIsObject(e)){throw new TypeError("target must be an object")}};var wn={apply:function apply(){return re.Call(re.Call,null,arguments)},construct:function construct(e,t){if(!re.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!re.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return re.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){mn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){mn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(wn,{ownKeys:function ownKeys(e){mn(e);var t=Object.getOwnPropertyNames(e);if(re.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var jn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(wn,{isExtensible:function isExtensible(e){mn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){mn(e);return jn(function(){Object.preventExtensions(e)})}})}if(s){var Sn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return Sn(o,t,r)}if("value"in n){return n.value}if(n.get){return re.Call(n.get,r)}return void 0};var Tn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Tn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!re.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ee.defineProperty(o,r,{value:n})}else{return ee.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(wn,{defineProperty:function defineProperty(e,t,r){mn(e);return jn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){mn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){mn(e);var r=arguments.length>2?arguments[2]:e;return Sn(e,t,r)},set:function set(e,t,r){mn(e);var n=arguments.length>3?arguments[3]:e;return Tn(e,t,r,n)}})}if(Object.getPrototypeOf){var In=Object.getPrototypeOf;wn.getPrototypeOf=function getPrototypeOf(e){mn(e);return In(e)}}if(Object.setPrototypeOf&&wn.getPrototypeOf){var En=function(e,t){var r=t;while(r){if(e===r){return true}r=wn.getPrototypeOf(r)}return false};Object.assign(wn,{setPrototypeOf:function setPrototypeOf(e,t){mn(e);if(t!==null&&!re.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ee.getPrototypeOf(e)){return true}if(ee.isExtensible&&!ee.isExtensible(e)){return false}if(En(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Pn=function(e,t){if(!re.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){Z(S.Reflect,e,t)}}};Object.keys(wn).forEach(function(e){Pn(e,wn[e])});var Cn=S.Reflect.getPrototypeOf;if(c&&Cn&&Cn.name!=="getPrototypeOf"){Z(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Cn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){Z(S.Reflect,"setPrototypeOf",wn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){Z(S.Reflect,"defineProperty",wn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){Z(S.Reflect,"construct",wn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Mn=Date.prototype.toString;var xn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return re.Call(Mn,this)};Z(Date.prototype,"toString",xn)}var Nn={anchor:function anchor(e){return re.CreateHTML(this,"a","name",e)},big:function big(){return re.CreateHTML(this,"big","","")},blink:function blink(){return re.CreateHTML(this,"blink","","")},bold:function bold(){return re.CreateHTML(this,"b","","")},fixed:function fixed(){return re.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return re.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return re.CreateHTML(this,"font","size",e)},italics:function italics(){return re.CreateHTML(this,"i","","")},link:function link(e){return re.CreateHTML(this,"a","href",e)},small:function small(){return re.CreateHTML(this,"small","","")},strike:function strike(){return re.CreateHTML(this,"strike","","")},sub:function sub(){return re.CreateHTML(this,"sub","","")},sup:function sub(){return re.CreateHTML(this,"sup","","")}};l(Object.keys(Nn),function(e){var r=String.prototype[e];var n=false;if(re.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){Z(String.prototype,e,Nn[e])}});var An=function(){if(!Y){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(G())!=="undefined"){return true}if(e([G()])!=="[null]"){return true}var t={a:G()};t[G()]=true;if(e(t)!=="{}"){return true}return false}();var Rn=a(function(){if(!Y){return true}return JSON.stringify(Object(G()))==="{}"&&JSON.stringify([Object(G())])==="[{}]"});if(An||!Rn){var _n=JSON.stringify;Z(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=re.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(K.symbol(n)){return St({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return _n.apply(this,o)})}return S}); \ No newline at end of file +})}var Cr=function(){var e=S.setTimeout;if(typeof e!=="function"&&typeof e!=="object"){return}re.IsPromise=function(e){if(!re.TypeIsObject(e)){return false}if(typeof e._promise==="undefined"){return false}return true};var r=function(e){if(!re.IsConstructor(e)){throw new TypeError("Bad promise constructor")}var t=this;var r=function(e,r){if(t.resolve!==void 0||t.reject!==void 0){throw new TypeError("Bad Promise implementation!")}t.resolve=e;t.reject=r};t.resolve=void 0;t.reject=void 0;t.promise=new e(r);if(!(re.IsCallable(t.resolve)&&re.IsCallable(t.reject))){throw new TypeError("Bad promise constructor")}};var n;if(typeof window!=="undefined"&&re.IsCallable(window.postMessage)){n=function(){var e=[];var t="zero-timeout-message";var r=function(r){M(e,r);window.postMessage(t,"*")};var n=function(r){if(r.source===window&&r.data===t){r.stopPropagation();if(e.length===0){return}var n=N(e);n()}};window.addEventListener("message",n,true);return r}}var o=function(){var e=S.Promise;var t=e&&e.resolve&&e.resolve();return t&&function(e){return t.then(e)}};var i=re.IsCallable(S.setImmediate)?S.setImmediate:typeof process==="object"&&process.nextTick?process.nextTick:o()||(re.IsCallable(n)?n():function(t){e(t,0)});var a=function(e){return e};var u=function(e){throw e};var f=0;var s=1;var c=2;var l=0;var p=1;var v=2;var y={};var h=function(e,t,r){i(function(){g(e,t,r)})};var g=function(e,t,r){var n,o;if(t===y){return e(r)}try{n=e(r);o=t.resolve}catch(i){n=i;o=t.reject}o(n)};var d=function(e,t){var r=e._promise;var n=r.reactionLength;if(n>0){h(r.fulfillReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o0){h(r.rejectReactionHandler0,r.reactionCapability0,t);r.fulfillReactionHandler0=void 0;r.rejectReactions0=void 0;r.reactionCapability0=void 0;if(n>1){for(var o=1,i=0;o2&&arguments[2]===y;if(b&&o===E){i=y}else{i=new r(o)}var g=re.IsCallable(e)?e:a;var d=re.IsCallable(t)?t:u;var O=n._promise;var m;if(O.state===f){if(O.reactionLength===0){O.fulfillReactionHandler0=g;O.rejectReactionHandler0=d;O.reactionCapability0=i}else{var w=3*(O.reactionLength-1);O[w+l]=g;O[w+p]=d;O[w+v]=i}O.reactionLength+=1}else if(O.state===s){m=O.result;h(g,i,m)}else if(O.state===c){m=O.result;h(d,i,m)}else{throw new TypeError("unexpected Promise state")}return i.promise}});y=new r(E);I=T.then;return E}();if(S.Promise){delete S.Promise.accept;delete S.Promise.defer;delete S.Promise.prototype.chain}if(typeof Cr==="function"){b(S,{Promise:Cr});var Mr=w(S.Promise,function(e){return e.resolve(42).then(function(){})instanceof e});var xr=!i(function(){S.Promise.reject(42).then(null,5).then(null,W)});var Nr=i(function(){S.Promise.call(3,W)});var Ar=function(e){var t=e.resolve(5);t.constructor={};var r=e.resolve(t);try{r.then(null,W).then(null,W)}catch(n){return true}return t===r}(S.Promise);var Rr=s&&function(){var e=0;var t=Object.defineProperty({},"then",{get:function(){e+=1}});Promise.resolve(t);return e===1}();var _r=function BadResolverPromise(e){var t=new Promise(e);e(3,function(){});this.then=t.then;this.constructor=BadResolverPromise};_r.prototype=Promise.prototype;_r.all=Promise.all;var kr=a(function(){return!!_r.all([1,2])});if(!Mr||!xr||!Nr||Ar||!Rr||kr){Promise=Cr;Z(S,"Promise",Cr)}if(Promise.all.length!==1){var Fr=Promise.all;Z(Promise,"all",function all(e){return re.Call(Fr,this,arguments)})}if(Promise.race.length!==1){var Lr=Promise.race;Z(Promise,"race",function race(e){return re.Call(Lr,this,arguments)})}if(Promise.resolve.length!==1){var Dr=Promise.resolve;Z(Promise,"resolve",function resolve(e){return re.Call(Dr,this,arguments)})}if(Promise.reject.length!==1){var zr=Promise.reject;Z(Promise,"reject",function reject(e){return re.Call(zr,this,arguments)})}wt(Promise,"all");wt(Promise,"race");wt(Promise,"resolve");wt(Promise,"reject");me(Promise)}var qr=function(e){var t=n(p(e,function(e,t){e[t]=true;return e},{}));return e.join(":")===t.join(":")};var Wr=qr(["z","a","bb"]);var Gr=qr(["z",1,"a","3",2]);if(s){var Hr=function fastkey(e){if(!Wr){return null}if(typeof e==="undefined"||e===null){return"^"+re.ToString(e)}else if(typeof e==="string"){return"$"+e}else if(typeof e==="number"){if(!Gr){return"n"+e}return e}else if(typeof e==="boolean"){return"b"+e}return null};var Vr=function emptyObject(){return Object.create?Object.create(null):{}};var Br=function addIterableToMap(e,n,o){if(r(o)||K.string(o)){l(o,function(e){if(!re.TypeIsObject(e)){throw new TypeError("Iterator value "+e+" is not an entry object")}n.set(e[0],e[1])})}else if(o instanceof e){t(e.prototype.forEach,o,function(e,t){n.set(t,e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.set;if(!re.IsCallable(a)){throw new TypeError("bad map")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{if(!re.TypeIsObject(f)){throw new TypeError("Iterator value "+f+" is not an entry object")}t(a,n,f[0],f[1])}catch(s){re.IteratorClose(i,true);throw s}}}}};var $r=function addIterableToSet(e,n,o){if(r(o)||K.string(o)){l(o,function(e){n.add(e)})}else if(o instanceof e){t(e.prototype.forEach,o,function(e){n.add(e)})}else{var i,a;if(o!==null&&typeof o!=="undefined"){a=n.add;if(!re.IsCallable(a)){throw new TypeError("bad set")}i=re.GetIterator(o)}if(typeof i!=="undefined"){while(true){var u=re.IteratorStep(i);if(u===false){break}var f=u.value;try{t(a,n,f)}catch(s){re.IteratorClose(i,true);throw s}}}}};var Ur={Map:function(){var e={};var r=function MapEntry(e,t){this.key=e;this.value=t;this.next=null;this.prev=null};r.prototype.isRemoved=function isRemoved(){return this.key===e};var n=function isMap(e){return!!e._es6map};var o=function requireMapSlot(e,t){if(!re.TypeIsObject(e)||!n(e)){throw new TypeError("Method Map.prototype."+t+" called on incompatible receiver "+re.ToString(e))}};var i=function MapIterator(e,t){o(e,"[[MapIterator]]");this.head=e._head;this.i=this.head;this.kind=t};i.prototype={next:function next(){var e=this.i;var t=this.kind;var r=this.head;if(typeof this.i==="undefined"){return Ge()}while(e.isRemoved()&&e!==r){e=e.prev}var n;while(e.next!==r){e=e.next;if(!e.isRemoved()){if(t==="key"){n=e.key}else if(t==="value"){n=e.value}else{n=[e.key,e.value]}this.i=e;return Ge(n)}}this.i=void 0;return Ge()}};we(i.prototype);var a;var u=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}if(this&&this._es6map){throw new TypeError("Bad construction")}var e=Te(this,Map,a,{_es6map:true,_head:null,_storage:Vr(),_size:0});var t=new r(null,null);t.next=t.prev=t;e._head=t;if(arguments.length>0){Br(Map,e,arguments[0])}return e};a=u.prototype;O.getter(a,"size",function(){if(typeof this._size==="undefined"){throw new TypeError("size method called on incompatible Map")}return this._size});b(a,{get:function get(e){o(this,"get");var t=Hr(e);if(t!==null){var r=this._storage[t];if(r){return r.value}else{return}}var n=this._head;var i=n;while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){return i.value}}},has:function has(e){o(this,"has");var t=Hr(e);if(t!==null){return typeof this._storage[t]!=="undefined"}var r=this._head;var n=r;while((n=n.next)!==r){if(re.SameValueZero(n.key,e)){return true}}return false},set:function set(e,t){o(this,"set");var n=this._head;var i=n;var a;var u=Hr(e);if(u!==null){if(typeof this._storage[u]!=="undefined"){this._storage[u].value=t;return this}else{a=this._storage[u]=new r(e,t);i=n.prev}}while((i=i.next)!==n){if(re.SameValueZero(i.key,e)){i.value=t;return this}}a=a||new r(e,t);if(re.SameValue(-0,e)){a.key=+0}a.next=this._head;a.prev=this._head.prev;a.prev.next=a;a.next.prev=a;this._size+=1;return this},"delete":function(t){o(this,"delete");var r=this._head;var n=r;var i=Hr(t);if(i!==null){if(typeof this._storage[i]==="undefined"){return false}n=this._storage[i].prev;delete this._storage[i]}while((n=n.next)!==r){if(re.SameValueZero(n.key,t)){n.key=n.value=e;n.prev.next=n.next;n.next.prev=n.prev;this._size-=1;return true}}return false},clear:function clear(){o(this,"clear");this._size=0;this._storage=Vr();var t=this._head;var r=t;var n=r.next;while((r=n)!==t){r.key=r.value=e;n=r.next;r.next=r.prev=t}t.next=t.prev=t},keys:function keys(){o(this,"keys");return new i(this,"key")},values:function values(){o(this,"values");return new i(this,"value")},entries:function entries(){o(this,"entries");return new i(this,"key+value")},forEach:function forEach(e){o(this,"forEach");var r=arguments.length>1?arguments[1]:null;var n=this.entries();for(var i=n.next();!i.done;i=n.next()){if(r){t(e,r,i.value[1],i.value[0],this)}else{e(i.value[1],i.value[0],this)}}}});we(a,a.entries);return u}(),Set:function(){var e=function isSet(e){return e._es6set&&typeof e._storage!=="undefined"};var r=function requireSetSlot(t,r){if(!re.TypeIsObject(t)||!e(t)){throw new TypeError("Set.prototype."+r+" called on incompatible receiver "+re.ToString(t))}};var o;var i=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}if(this&&this._es6set){throw new TypeError("Bad construction")}var e=Te(this,Set,o,{_es6set:true,"[[SetData]]":null,_storage:Vr()});if(!e._es6set){throw new TypeError("bad set")}if(arguments.length>0){$r(Set,e,arguments[0])}return e};o=i.prototype;var a=function(e){var t=e;if(t==="^null"){return null}else if(t==="^undefined"){return void 0}else{var r=t.charAt(0);if(r==="$"){return C(t,1)}else if(r==="n"){return+C(t,1)}else if(r==="b"){return t==="btrue"}}return+t};var u=function ensureMap(e){if(!e["[[SetData]]"]){var t=e["[[SetData]]"]=new Ur.Map;l(n(e._storage),function(e){var r=a(e);t.set(r,r)});e["[[SetData]]"]=t}e._storage=null};O.getter(i.prototype,"size",function(){r(this,"size");if(this._storage){return n(this._storage).length}u(this);return this["[[SetData]]"].size});b(i.prototype,{has:function has(e){r(this,"has");var t;if(this._storage&&(t=Hr(e))!==null){return!!this._storage[t]}u(this);return this["[[SetData]]"].has(e)},add:function add(e){r(this,"add");var t;if(this._storage&&(t=Hr(e))!==null){this._storage[t]=true;return this}u(this);this["[[SetData]]"].set(e,e);return this},"delete":function(e){r(this,"delete");var t;if(this._storage&&(t=Hr(e))!==null){var n=z(this._storage,t);return delete this._storage[t]&&n}u(this);return this["[[SetData]]"]["delete"](e)},clear:function clear(){r(this,"clear");if(this._storage){this._storage=Vr()}if(this["[[SetData]]"]){this["[[SetData]]"].clear()}},values:function values(){r(this,"values");u(this);return this["[[SetData]]"].values()},entries:function entries(){r(this,"entries");u(this);return this["[[SetData]]"].entries()},forEach:function forEach(e){r(this,"forEach");var n=arguments.length>1?arguments[1]:null;var o=this;u(o);this["[[SetData]]"].forEach(function(r,i){if(n){t(e,n,i,i,o)}else{e(i,i,o)}})}});h(i.prototype,"keys",i.prototype.values,true);we(i.prototype,i.prototype.values);return i}()};if(S.Map||S.Set){var Jr=a(function(){return new Map([[1,2]]).get(1)===2});if(!Jr){var Xr=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new Xr;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,S.Map.prototype);return e};S.Map.prototype=m(Xr.prototype);h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,Xr)}var Kr=new Map;var Zr=function(){var e=new Map([[1,0],[2,0],[3,0],[4,0]]);e.set(-0,e);return e.get(0)===e&&e.get(-0)===e&&e.has(0)&&e.has(-0)}();var Yr=Kr.set(1,2)===Kr;if(!Zr||!Yr){var Qr=Map.prototype.set;Z(Map.prototype,"set",function set(e,r){t(Qr,this,e===0?0:e,r);return this})}if(!Zr){var en=Map.prototype.get;var tn=Map.prototype.has;b(Map.prototype,{get:function get(e){return t(en,this,e===0?0:e)},has:function has(e){return t(tn,this,e===0?0:e)}},true);O.preserveToString(Map.prototype.get,en);O.preserveToString(Map.prototype.has,tn)}var rn=new Set;var nn=function(e){e["delete"](0);e.add(-0);return!e.has(0)}(rn);var on=rn.add(1)===rn;if(!nn||!on){var an=Set.prototype.add;Set.prototype.add=function add(e){t(an,this,e===0?0:e);return this};O.preserveToString(Set.prototype.add,an)}if(!nn){var un=Set.prototype.has;Set.prototype.has=function has(e){return t(un,this,e===0?0:e)};O.preserveToString(Set.prototype.has,un);var fn=Set.prototype["delete"];Set.prototype["delete"]=function SetDelete(e){return t(fn,this,e===0?0:e)};O.preserveToString(Set.prototype["delete"],fn)}var sn=w(S.Map,function(e){var t=new e([]);t.set(42,42);return t instanceof e});var cn=Object.setPrototypeOf&&!sn;var ln=function(){try{return!(S.Map()instanceof S.Map)}catch(e){return e instanceof TypeError}}();if(S.Map.length!==0||cn||!ln){var pn=S.Map;S.Map=function Map(){if(!(this instanceof Map)){throw new TypeError('Constructor Map requires "new"')}var e=new pn;if(arguments.length>0){Br(Map,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Map.prototype);return e};S.Map.prototype=pn.prototype;h(S.Map.prototype,"constructor",S.Map,true);O.preserveToString(S.Map,pn)}var vn=w(S.Set,function(e){var t=new e([]);t.add(42,42);return t instanceof e});var yn=Object.setPrototypeOf&&!vn;var hn=function(){try{return!(S.Set()instanceof S.Set)}catch(e){return e instanceof TypeError}}();if(S.Set.length!==0||yn||!hn){var bn=S.Set;S.Set=function Set(){if(!(this instanceof Set)){throw new TypeError('Constructor Set requires "new"')}var e=new bn;if(arguments.length>0){$r(Set,e,arguments[0])}delete e.constructor;Object.setPrototypeOf(e,Set.prototype);return e};S.Set.prototype=bn.prototype;h(S.Set.prototype,"constructor",S.Set,true);O.preserveToString(S.Set,bn)}var gn=new S.Map;var dn=!a(function(){return gn.keys().next().done});if(typeof S.Map.prototype.clear!=="function"||(new S.Set).size!==0||gn.size!==0||typeof S.Map.prototype.keys!=="function"||typeof S.Set.prototype.keys!=="function"||typeof S.Map.prototype.forEach!=="function"||typeof S.Set.prototype.forEach!=="function"||u(S.Map)||u(S.Set)||typeof gn.keys().next!=="function"||dn||!sn){b(S,{Map:Ur.Map,Set:Ur.Set},true)}if(S.Set.prototype.keys!==S.Set.prototype.values){h(S.Set.prototype,"keys",S.Set.prototype.values,true)}we(Object.getPrototypeOf((new S.Map).keys()));we(Object.getPrototypeOf((new S.Set).keys()));if(c&&S.Set.prototype.has.name!=="has"){var On=S.Set.prototype.has;Z(S.Set.prototype,"has",function has(e){return t(On,this,e)})}}b(S,Ur);me(S.Map);me(S.Set)}var mn=function throwUnlessTargetIsObject(e){if(!re.TypeIsObject(e)){throw new TypeError("target must be an object")}};var wn={apply:function apply(){return re.Call(re.Call,null,arguments)},construct:function construct(e,t){if(!re.IsConstructor(e)){throw new TypeError("First argument must be a constructor.")}var r=arguments.length>2?arguments[2]:e;if(!re.IsConstructor(r)){throw new TypeError("new.target must be a constructor.")}return re.Construct(e,t,r,"internal")},deleteProperty:function deleteProperty(e,t){mn(e);if(s){var r=Object.getOwnPropertyDescriptor(e,t);if(r&&!r.configurable){return false}}return delete e[t]},has:function has(e,t){mn(e);return t in e}};if(Object.getOwnPropertyNames){Object.assign(wn,{ownKeys:function ownKeys(e){mn(e);var t=Object.getOwnPropertyNames(e);if(re.IsCallable(Object.getOwnPropertySymbols)){x(t,Object.getOwnPropertySymbols(e))}return t}})}var jn=function ConvertExceptionToBoolean(e){return!i(e)};if(Object.preventExtensions){Object.assign(wn,{isExtensible:function isExtensible(e){mn(e);return Object.isExtensible(e)},preventExtensions:function preventExtensions(e){mn(e);return jn(function(){Object.preventExtensions(e)})}})}if(s){var Sn=function get(e,t,r){var n=Object.getOwnPropertyDescriptor(e,t);if(!n){var o=Object.getPrototypeOf(e);if(o===null){return void 0}return Sn(o,t,r)}if("value"in n){return n.value}if(n.get){return re.Call(n.get,r)}return void 0};var Tn=function set(e,r,n,o){var i=Object.getOwnPropertyDescriptor(e,r);if(!i){var a=Object.getPrototypeOf(e);if(a!==null){return Tn(a,r,n,o)}i={value:void 0,writable:true,enumerable:true,configurable:true}}if("value"in i){if(!i.writable){return false}if(!re.TypeIsObject(o)){return false}var u=Object.getOwnPropertyDescriptor(o,r);if(u){return ee.defineProperty(o,r,{value:n})}else{return ee.defineProperty(o,r,{value:n,writable:true,enumerable:true,configurable:true})}}if(i.set){t(i.set,o,n);return true}return false};Object.assign(wn,{defineProperty:function defineProperty(e,t,r){mn(e);return jn(function(){Object.defineProperty(e,t,r)})},getOwnPropertyDescriptor:function getOwnPropertyDescriptor(e,t){mn(e);return Object.getOwnPropertyDescriptor(e,t)},get:function get(e,t){mn(e);var r=arguments.length>2?arguments[2]:e;return Sn(e,t,r)},set:function set(e,t,r){mn(e);var n=arguments.length>3?arguments[3]:e;return Tn(e,t,r,n)}})}if(Object.getPrototypeOf){var In=Object.getPrototypeOf;wn.getPrototypeOf=function getPrototypeOf(e){mn(e);return In(e)}}if(Object.setPrototypeOf&&wn.getPrototypeOf){var En=function(e,t){var r=t;while(r){if(e===r){return true}r=wn.getPrototypeOf(r)}return false};Object.assign(wn,{setPrototypeOf:function setPrototypeOf(e,t){mn(e);if(t!==null&&!re.TypeIsObject(t)){throw new TypeError("proto must be an object or null")}if(t===ee.getPrototypeOf(e)){return true}if(ee.isExtensible&&!ee.isExtensible(e)){return false}if(En(e,t)){return false}Object.setPrototypeOf(e,t);return true}})}var Pn=function(e,t){if(!re.IsCallable(S.Reflect[e])){h(S.Reflect,e,t)}else{var r=a(function(){S.Reflect[e](1);S.Reflect[e](NaN);S.Reflect[e](true);return true});if(r){Z(S.Reflect,e,t)}}};Object.keys(wn).forEach(function(e){Pn(e,wn[e])});var Cn=S.Reflect.getPrototypeOf;if(c&&Cn&&Cn.name!=="getPrototypeOf"){Z(S.Reflect,"getPrototypeOf",function getPrototypeOf(e){return t(Cn,S.Reflect,e)})}if(S.Reflect.setPrototypeOf){if(a(function(){S.Reflect.setPrototypeOf(1,{});return true})){Z(S.Reflect,"setPrototypeOf",wn.setPrototypeOf)}}if(S.Reflect.defineProperty){if(!a(function(){var e=!S.Reflect.defineProperty(1,"test",{value:1});var t=typeof Object.preventExtensions!=="function"||!S.Reflect.defineProperty(Object.preventExtensions({}),"test",{});return e&&t})){Z(S.Reflect,"defineProperty",wn.defineProperty)}}if(S.Reflect.construct){if(!a(function(){var e=function F(){};return S.Reflect.construct(function(){},[],e)instanceof e})){Z(S.Reflect,"construct",wn.construct)}}if(String(new Date(NaN))!=="Invalid Date"){var Mn=Date.prototype.toString;var xn=function toString(){var e=+this;if(e!==e){return"Invalid Date"}return re.Call(Mn,this)};Z(Date.prototype,"toString",xn)}var Nn={anchor:function anchor(e){return re.CreateHTML(this,"a","name",e)},big:function big(){return re.CreateHTML(this,"big","","")},blink:function blink(){return re.CreateHTML(this,"blink","","")},bold:function bold(){return re.CreateHTML(this,"b","","")},fixed:function fixed(){return re.CreateHTML(this,"tt","","")},fontcolor:function fontcolor(e){return re.CreateHTML(this,"font","color",e)},fontsize:function fontsize(e){return re.CreateHTML(this,"font","size",e)},italics:function italics(){return re.CreateHTML(this,"i","","")},link:function link(e){return re.CreateHTML(this,"a","href",e)},small:function small(){return re.CreateHTML(this,"small","","")},strike:function strike(){return re.CreateHTML(this,"strike","","")},sub:function sub(){return re.CreateHTML(this,"sub","","")},sup:function sub(){return re.CreateHTML(this,"sup","","")}};l(Object.keys(Nn),function(e){var r=String.prototype[e];var n=false;if(re.IsCallable(r)){var o=t(r,"",' " ');var i=P([],o.match(/"/g)).length;n=o!==o.toLowerCase()||i>2}else{n=true}if(n){Z(String.prototype,e,Nn[e])}});var An=function(){if(!Y){return false}var e=typeof JSON==="object"&&typeof JSON.stringify==="function"?JSON.stringify:null;if(!e){return false}if(typeof e(G())!=="undefined"){return true}if(e([G()])!=="[null]"){return true}var t={a:G()};t[G()]=true;if(e(t)!=="{}"){return true}return false}();var Rn=a(function(){if(!Y){return true}return JSON.stringify(Object(G()))==="{}"&&JSON.stringify([Object(G())])==="[{}]"});if(An||!Rn){var _n=JSON.stringify;Z(JSON,"stringify",function stringify(e){if(typeof e==="symbol"){return}var n;if(arguments.length>1){n=arguments[1]}var o=[e];if(!r(n)){var i=re.IsCallable(n)?n:null;var a=function(e,r){var n=i?t(i,this,e,r):r;if(typeof n!=="symbol"){if(K.symbol(n)){return St({})(n)}else{return n}}};o.push(a)}else{o.push(n)}if(arguments.length>2){o.push(arguments[2])}return _n.apply(this,o)})}return S}); +//# sourceMappingURL=es6-shim.map diff --git a/frontend/src/documentation/js/libs/highlight.pack.js b/frontend/src/documentation/js/libs/highlight.pack.js new file mode 100644 index 0000000..501fcd7 --- /dev/null +++ b/frontend/src/documentation/js/libs/highlight.pack.js @@ -0,0 +1,2 @@ +/*! highlight.js v9.9.0 | BSD3 License | git.io/hljslicense */ +!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function i(e){return k.test(e)}function a(e){var n,t,r,a,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(a=o[n],i(a)||R(a))return a}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,i){for(var a=e.firstChild;a;a=a.nextSibling)3===a.nodeType?i+=a.nodeValue.length:1===a.nodeType&&(n.push({event:"start",offset:i,node:a}),i=r(a,i),t(a).match(/br|hr|img|input/)||n.push({event:"stop",offset:i,node:a}));return i}(e,0),n}function c(e,r,i){function a(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset"}function u(e){l+=""}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=a();if(l+=n(i.substring(s,g[0].offset)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=a();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(i.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(i,a){if(!i.compiled){if(i.compiled=!0,i.k=i.k||i.bK,i.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof i.k?c("keyword",i.k):E(i.k).forEach(function(e){c(e,i.k[e])}),i.k=u}i.lR=t(i.l||/\w+/,!0),a&&(i.bK&&(i.b="\\b("+i.bK.split(" ").join("|")+")\\b"),i.b||(i.b=/\B|\b/),i.bR=t(i.b),i.e||i.eW||(i.e=/\B|\b/),i.e&&(i.eR=t(i.e)),i.tE=n(i.e)||"",i.eW&&a.tE&&(i.tE+=(i.e?"|":"")+a.tE)),i.i&&(i.iR=t(i.i)),null==i.r&&(i.r=1),i.c||(i.c=[]);var s=[];i.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?i:e)}),i.c=s,i.c.forEach(function(e){r(e,i)}),i.starts&&r(i.starts,a);var l=i.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([i.tE,i.i]).map(n).filter(Boolean);i.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,i,a){function o(e,n){var t,i;for(t=0,i=n.c.length;i>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!i&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var i=r?"":y.classPrefix,a='',a+n+o}function p(){var e,t,r,i;if(!E.k)return n(B);for(i="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)i+=n(B.substring(t,r.index)),e=g(E,r),e?(M+=e[1],i+=h(e[0],n(r[0]))):i+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return i+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var i=E;i.skip?B+=n:(i.rE||i.eE||(B+=n),b(),i.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),i.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=a||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substring(O,I.index),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},i=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>i.r&&(i=t),t.r>r.r&&(i=r,r=t)}),i.language&&(r.second_best=i),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"
                                        ":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),-1===e.indexOf(r)&&i.push(r),i.join(" ").trim()}function p(e){var n,t,r,o,s,p=a(e);i(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="
                                        ",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&","<":"<",">":">"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var i=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return i.c.push(e.PWM),i.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),i},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[t],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[t],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("typescript",function(e){var r={keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"};return{aliases:["ts"],k:r,c:[{cN:"meta",b:/^\s*['"]use strict['"]/},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM],r:0},{cN:"function",b:"function",e:/[\{;]/,eE:!0,k:r,c:["self",e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:[e.CLCM,e.CBCM],i:/["'\(]/}],i:/%/,r:0},{bK:"constructor",e:/\{/,eE:!0,c:["self",{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,k:r,c:[e.CLCM,e.CBCM],i:/["'\(]/}]},{b:/module\./,k:{built_in:"module"},r:0},{bK:"module",e:/\{/,eE:!0},{bK:"interface",e:/\{/,eE:!0,k:"interface extends"},{b:/\$[(.]/},{b:"\\."+e.IR,r:0},{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b://,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\._]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}}); \ No newline at end of file diff --git a/frontend/src/documentation/js/libs/highlightjs-line-numbers.min.js b/frontend/src/documentation/js/libs/highlightjs-line-numbers.min.js new file mode 100644 index 0000000..494ab81 --- /dev/null +++ b/frontend/src/documentation/js/libs/highlightjs-line-numbers.min.js @@ -0,0 +1 @@ +!function(e){"use strict";function t(){"complete"===document.readyState?n():e.addEventListener("DOMContentLoaded",n)}function n(){try{var e=document.querySelectorAll("code.hljs:not(.bash)");for(var t in e)e.hasOwnProperty(t)&&r(e[t])}catch(n){console.error("LineNumbers error: ",n)}}function r(e){if("object"==typeof e){var t=e.parentNode,n=o(t.outerText);if(n>1){for(var r="",c=0;n>c;c++)r+=c+1+"\n";var l=document.createElement("code");l.className="hljs hljs-line-numbers",l.style["float"]="left",l.textContent=r,t.insertBefore(l,e)}}}function o(e){if(0===e.length)return 0;var t=/\r\n|\r|\n/g,n=e.match(t);return n=n?n.length:0,e[e.length-1].match(t)||(n+=1),n}"undefined"==typeof e.hljs?console.error("highlight.js not detected!"):(e.hljs.initLineNumbersOnLoad=t,e.hljs.lineNumbersBlock=r)}(window); diff --git a/frontend/documentation/js/libs/promise.min.js b/frontend/src/documentation/js/libs/promise.min.js similarity index 100% rename from frontend/documentation/js/libs/promise.min.js rename to frontend/src/documentation/js/libs/promise.min.js diff --git a/frontend/src/documentation/js/libs/svg-pan-zoom.min.js b/frontend/src/documentation/js/libs/svg-pan-zoom.min.js new file mode 100644 index 0000000..63da886 --- /dev/null +++ b/frontend/src/documentation/js/libs/svg-pan-zoom.min.js @@ -0,0 +1,782 @@ +// svg-pan-zoom v3.2.5 +// https://github.com/ariutta/svg-pan-zoom +! function t(e, o, n) { + function i(r, a) { + if (!o[r]) { + if (!e[r]) { + var l = "function" == typeof require && require; + if (!a && l) return l(r, !0); + if (s) return s(r, !0); + var u = new Error("Cannot find module '" + r + "'"); + throw u.code = "MODULE_NOT_FOUND", u + } + var h = o[r] = { + exports: {} + }; + e[r][0].call(h.exports, function(t) { + var o = e[r][1][t]; + return i(o ? o : t) + }, h, h.exports, t, e, o, n) + } + return o[r].exports + } + for (var s = "function" == typeof require && require, r = 0; r < n.length; r++) i(n[r]); + return i +}({ + 1: [function(t, e) { + var o = t("./svg-pan-zoom.js"); + ! function(t) { + "function" == typeof define && define.amd ? define("svg-pan-zoom", function() { + return o + }) : "undefined" != typeof e && e.exports && (e.exports = o, t.svgPanZoom = o) + }(window, document) + }, { + "./svg-pan-zoom.js": 4 + }], + 2: [function(t, e) { + var o = t("./svg-utilities"); + e.exports = { + enable: function(t) { + var e = t.svg.querySelector("defs"); + e || (e = document.createElementNS(o.svgNS, "defs"), t.svg.appendChild(e)); + var n = document.createElementNS(o.svgNS, "style"); + n.setAttribute("type", "text/css"), n.textContent = ".svg-pan-zoom-control { cursor: pointer; fill: black; fill-opacity: 0.333; } .svg-pan-zoom-control:hover { fill-opacity: 0.8; } .svg-pan-zoom-control-background { fill: white; fill-opacity: 0.5; } .svg-pan-zoom-control-background { fill-opacity: 0.8; }", e.appendChild(n); + var i = document.createElementNS(o.svgNS, "g"); + i.setAttribute("id", "svg-pan-zoom-controls"), i.setAttribute("transform", "translate(" + (t.width - 70) + " " + (t.height - 76) + ") scale(0.75)"), i.setAttribute("class", "svg-pan-zoom-control"), i.appendChild(this._createZoomIn(t)), i.appendChild(this._createZoomReset(t)), i.appendChild(this._createZoomOut(t)), t.svg.appendChild(i), t.controlIcons = i + }, + _createZoomIn: function(t) { + var e = document.createElementNS(o.svgNS, "g"); + e.setAttribute("id", "svg-pan-zoom-zoom-in"), e.setAttribute("transform", "translate(30.5 5) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function() { + t.getPublicInstance().zoomIn() + }, !1), e.addEventListener("touchstart", function() { + t.getPublicInstance().zoomIn() + }, !1); + var n = document.createElementNS(o.svgNS, "rect"); + n.setAttribute("x", "0"), n.setAttribute("y", "0"), n.setAttribute("width", "1500"), n.setAttribute("height", "1400"), n.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(n); + var i = document.createElementNS(o.svgNS, "path"); + return i.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z"), i.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(i), e + }, + _createZoomReset: function(t) { + var e = document.createElementNS(o.svgNS, "g"); + e.setAttribute("id", "svg-pan-zoom-reset-pan-zoom"), e.setAttribute("transform", "translate(5 35) scale(0.4)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function() { + t.getPublicInstance().reset() + }, !1), e.addEventListener("touchstart", function() { + t.getPublicInstance().reset() + }, !1); + var n = document.createElementNS(o.svgNS, "rect"); + n.setAttribute("x", "2"), n.setAttribute("y", "2"), n.setAttribute("width", "182"), n.setAttribute("height", "58"), n.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(n); + var i = document.createElementNS(o.svgNS, "path"); + i.setAttribute("d", "M33.051,20.632c-0.742-0.406-1.854-0.609-3.338-0.609h-7.969v9.281h7.769c1.543,0,2.701-0.188,3.473-0.562c1.365-0.656,2.048-1.953,2.048-3.891C35.032,22.757,34.372,21.351,33.051,20.632z"), i.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(i); + var s = document.createElementNS(o.svgNS, "path"); + return s.setAttribute("d", "M170.231,0.5H15.847C7.102,0.5,0.5,5.708,0.5,11.84v38.861C0.5,56.833,7.102,61.5,15.847,61.5h154.384c8.745,0,15.269-4.667,15.269-10.798V11.84C185.5,5.708,178.976,0.5,170.231,0.5z M42.837,48.569h-7.969c-0.219-0.766-0.375-1.383-0.469-1.852c-0.188-0.969-0.289-1.961-0.305-2.977l-0.047-3.211c-0.03-2.203-0.41-3.672-1.142-4.406c-0.732-0.734-2.103-1.102-4.113-1.102h-7.05v13.547h-7.055V14.022h16.524c2.361,0.047,4.178,0.344,5.45,0.891c1.272,0.547,2.351,1.352,3.234,2.414c0.731,0.875,1.31,1.844,1.737,2.906s0.64,2.273,0.64,3.633c0,1.641-0.414,3.254-1.242,4.84s-2.195,2.707-4.102,3.363c1.594,0.641,2.723,1.551,3.387,2.73s0.996,2.98,0.996,5.402v2.32c0,1.578,0.063,2.648,0.19,3.211c0.19,0.891,0.635,1.547,1.333,1.969V48.569z M75.579,48.569h-26.18V14.022h25.336v6.117H56.454v7.336h16.781v6H56.454v8.883h19.125V48.569z M104.497,46.331c-2.44,2.086-5.887,3.129-10.34,3.129c-4.548,0-8.125-1.027-10.731-3.082s-3.909-4.879-3.909-8.473h6.891c0.224,1.578,0.662,2.758,1.316,3.539c1.196,1.422,3.246,2.133,6.15,2.133c1.739,0,3.151-0.188,4.236-0.562c2.058-0.719,3.087-2.055,3.087-4.008c0-1.141-0.504-2.023-1.512-2.648c-1.008-0.609-2.607-1.148-4.796-1.617l-3.74-0.82c-3.676-0.812-6.201-1.695-7.576-2.648c-2.328-1.594-3.492-4.086-3.492-7.477c0-3.094,1.139-5.664,3.417-7.711s5.623-3.07,10.036-3.07c3.685,0,6.829,0.965,9.431,2.895c2.602,1.93,3.966,4.73,4.093,8.402h-6.938c-0.128-2.078-1.057-3.555-2.787-4.43c-1.154-0.578-2.587-0.867-4.301-0.867c-1.907,0-3.428,0.375-4.565,1.125c-1.138,0.75-1.706,1.797-1.706,3.141c0,1.234,0.561,2.156,1.682,2.766c0.721,0.406,2.25,0.883,4.589,1.43l6.063,1.43c2.657,0.625,4.648,1.461,5.975,2.508c2.059,1.625,3.089,3.977,3.089,7.055C108.157,41.624,106.937,44.245,104.497,46.331z M139.61,48.569h-26.18V14.022h25.336v6.117h-18.281v7.336h16.781v6h-16.781v8.883h19.125V48.569z M170.337,20.14h-10.336v28.43h-7.266V20.14h-10.383v-6.117h27.984V20.14z"), s.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(s), e + }, + _createZoomOut: function(t) { + var e = document.createElementNS(o.svgNS, "g"); + e.setAttribute("id", "svg-pan-zoom-zoom-out"), e.setAttribute("transform", "translate(30.5 70) scale(0.015)"), e.setAttribute("class", "svg-pan-zoom-control"), e.addEventListener("click", function() { + t.getPublicInstance().zoomOut() + }, !1), e.addEventListener("touchstart", function() { + t.getPublicInstance().zoomOut() + }, !1); + var n = document.createElementNS(o.svgNS, "rect"); + n.setAttribute("x", "0"), n.setAttribute("y", "0"), n.setAttribute("width", "1500"), n.setAttribute("height", "1400"), n.setAttribute("class", "svg-pan-zoom-control-background"), e.appendChild(n); + var i = document.createElementNS(o.svgNS, "path"); + return i.setAttribute("d", "M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z"), i.setAttribute("class", "svg-pan-zoom-control-element"), e.appendChild(i), e + }, + disable: function(t) { + t.controlIcons && (t.controlIcons.parentNode.removeChild(t.controlIcons), t.controlIcons = null) + } + } + }, { + "./svg-utilities": 5 + }], + 3: [function(t, e) { + var o = t("./svg-utilities"), + n = t("./utilities"), + i = function(t, e) { + this.init(t, e) + }; + i.prototype.init = function(t, e) { + this.viewport = t, this.options = e, this.originalState = { + zoom: 1, + x: 0, + y: 0 + }, this.activeState = { + zoom: 1, + x: 0, + y: 0 + }, this.updateCTMCached = n.proxy(this.updateCTM, this), this.requestAnimationFrame = n.createRequestAnimationFrame(this.options.refreshRate), this.viewBox = { + x: 0, + y: 0, + width: 0, + height: 0 + }, this.cacheViewBox(), this.processCTM(), this.updateCTM() + }, i.prototype.cacheViewBox = function() { + var t = this.options.svg.getAttribute("viewBox"); + if (t) { + var e = t.split(/[\s\,]/).filter(function(t) { + return t + }).map(parseFloat); + this.viewBox.x = e[0], this.viewBox.y = e[1], this.viewBox.width = e[2], this.viewBox.height = e[3]; + var o = Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height); + this.activeState.zoom = o, this.activeState.x = (this.options.width - this.viewBox.width * o) / 2, this.activeState.y = (this.options.height - this.viewBox.height * o) / 2, this.updateCTMOnNextFrame(), this.options.svg.removeAttribute("viewBox") + } else { + var n = this.viewport.getBBox(); + this.viewBox.x = n.x, this.viewBox.y = n.y, this.viewBox.width = n.width, this.viewBox.height = n.height + } + }, i.prototype.recacheViewBox = function() { + var t = this.viewport.getBoundingClientRect(), + e = t.width / this.getZoom(), + o = t.height / this.getZoom(); + this.viewBox.x = 0, this.viewBox.y = 0, this.viewBox.width = e, this.viewBox.height = o + }, i.prototype.getViewBox = function() { + return n.extend({}, this.viewBox) + }, i.prototype.processCTM = function() { + var t = this.getCTM(); + if (this.options.fit || this.options.contain) { + var e; + e = this.options.fit ? Math.min(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height) : Math.max(this.options.width / this.viewBox.width, this.options.height / this.viewBox.height), t.a = e, t.d = e, t.e = -this.viewBox.x * e, t.f = -this.viewBox.y * e + } + if (this.options.center) { + var o = .5 * (this.options.width - (this.viewBox.width + 2 * this.viewBox.x) * t.a), + n = .5 * (this.options.height - (this.viewBox.height + 2 * this.viewBox.y) * t.a); + t.e = o, t.f = n + } + this.originalState.zoom = t.a, this.originalState.x = t.e, this.originalState.y = t.f, this.setCTM(t) + }, i.prototype.getOriginalState = function() { + return n.extend({}, this.originalState) + }, i.prototype.getState = function() { + return n.extend({}, this.activeState) + }, i.prototype.getZoom = function() { + return this.activeState.zoom + }, i.prototype.getRelativeZoom = function() { + return this.activeState.zoom / this.originalState.zoom + }, i.prototype.computeRelativeZoom = function(t) { + return t / this.originalState.zoom + }, i.prototype.getPan = function() { + return { + x: this.activeState.x, + y: this.activeState.y + } + }, i.prototype.getCTM = function() { + var t = this.options.svg.createSVGMatrix(); + return t.a = this.activeState.zoom, t.b = 0, t.c = 0, t.d = this.activeState.zoom, t.e = this.activeState.x, t.f = this.activeState.y, t + }, i.prototype.setCTM = function(t) { + var e = this.isZoomDifferent(t), + o = this.isPanDifferent(t); + if (e || o) { + if (e && this.options.beforeZoom(this.getRelativeZoom(), this.computeRelativeZoom(t.a)) === !1 && (t.a = t.d = this.activeState.zoom, e = !1), o) { + var i = this.options.beforePan(this.getPan(), { + x: t.e, + y: t.f + }), + s = !1, + r = !1; + i === !1 ? (t.e = this.getPan().x, t.f = this.getPan().y, s = r = !0) : n.isObject(i) && (i.x === !1 ? (t.e = this.getPan().x, s = !0) : n.isNumber(i.x) && (t.e = i.x), i.y === !1 ? (t.f = this.getPan().y, r = !0) : n.isNumber(i.y) && (t.f = i.y)), s && r && (o = !1) + }(e || o) && (this.updateCache(t), this.updateCTMOnNextFrame(), e && this.options.onZoom(this.getRelativeZoom()), o && this.options.onPan(this.getPan())) + } + }, i.prototype.isZoomDifferent = function(t) { + return this.activeState.zoom !== t.a + }, i.prototype.isPanDifferent = function(t) { + return this.activeState.x !== t.e || this.activeState.y !== t.f + }, i.prototype.updateCache = function(t) { + this.activeState.zoom = t.a, this.activeState.x = t.e, this.activeState.y = t.f + }, i.prototype.pendingUpdate = !1, i.prototype.updateCTMOnNextFrame = function() { + this.pendingUpdate || (this.pendingUpdate = !0, this.requestAnimationFrame.call(window, this.updateCTMCached)) + }, i.prototype.updateCTM = function() { + o.setCTM(this.viewport, this.getCTM(), this.defs), this.pendingUpdate = !1 + }, e.exports = function(t, e) { + return new i(t, e) + } + }, { + "./svg-utilities": 5, + "./utilities": 7 + }], + 4: [function(t, e) { + var o = t("./uniwheel"), + n = t("./control-icons"), + i = t("./utilities"), + s = t("./svg-utilities"), + r = t("./shadow-viewport"), + a = function(t, e) { + this.init(t, e) + }, + l = { + viewportSelector: ".svg-pan-zoom_viewport", + panEnabled: !0, + controlIconsEnabled: !1, + zoomEnabled: !0, + dblClickZoomEnabled: !0, + mouseWheelZoomEnabled: !0, + preventMouseEventsDefault: !0, + zoomScaleSensitivity: .1, + minZoom: .5, + maxZoom: 10, + fit: !0, + contain: !1, + center: !0, + refreshRate: "auto", + beforeZoom: null, + onZoom: null, + beforePan: null, + onPan: null, + customEventsHandler: null, + eventsListenerElement: null + }; + a.prototype.init = function(t, e) { + var o = this; + this.svg = t, this.defs = t.querySelector("defs"), s.setupSvgAttributes(this.svg), this.options = i.extend(i.extend({}, l), e), this.state = "none"; + var a = s.getBoundingClientRectNormalized(t); + this.width = a.width, this.height = a.height, this.viewport = r(s.getOrCreateViewport(this.svg, this.options.viewportSelector), { + svg: this.svg, + width: this.width, + height: this.height, + fit: this.options.fit, + contain: this.options.contain, + center: this.options.center, + refreshRate: this.options.refreshRate, + beforeZoom: function(t, e) { + return o.viewport && o.options.beforeZoom ? o.options.beforeZoom(t, e) : void 0 + }, + onZoom: function(t) { + return o.viewport && o.options.onZoom ? o.options.onZoom(t) : void 0 + }, + beforePan: function(t, e) { + return o.viewport && o.options.beforePan ? o.options.beforePan(t, e) : void 0 + }, + onPan: function(t) { + return o.viewport && o.options.onPan ? o.options.onPan(t) : void 0 + } + }); + var u = this.getPublicInstance(); + u.setBeforeZoom(this.options.beforeZoom), u.setOnZoom(this.options.onZoom), u.setBeforePan(this.options.beforePan), u.setOnPan(this.options.onPan), this.options.controlIconsEnabled && n.enable(this), this.lastMouseWheelEventTime = Date.now(), this.setupHandlers() + }, a.prototype.setupHandlers = function() { + var t = this, + e = null; + if (this.eventListeners = { + mousedown: function(e) { + return t.handleMouseDown(e, null) + }, + touchstart: function(o) { + var n = t.handleMouseDown(o, e); + return e = o, n + }, + mouseup: function(e) { + return t.handleMouseUp(e) + }, + touchend: function(e) { + return t.handleMouseUp(e) + }, + mousemove: function(e) { + return t.handleMouseMove(e) + }, + touchmove: function(e) { + return t.handleMouseMove(e) + }, + mouseleave: function(e) { + return t.handleMouseUp(e) + }, + touchleave: function(e) { + return t.handleMouseUp(e) + }, + touchcancel: function(e) { + return t.handleMouseUp(e) + } + }, null != this.options.customEventsHandler) { + this.options.customEventsHandler.init({ + svgElement: this.svg, + eventsListenerElement: this.options.eventsListenerElement, + instance: this.getPublicInstance() + }); + var o = this.options.customEventsHandler.haltEventListeners; + if (o && o.length) + for (var n = o.length - 1; n >= 0; n--) this.eventListeners.hasOwnProperty(o[n]) && delete this.eventListeners[o[n]] + } + for (var i in this.eventListeners)(this.options.eventsListenerElement || this.svg).addEventListener(i, this.eventListeners[i], !1); + this.options.mouseWheelZoomEnabled && (this.options.mouseWheelZoomEnabled = !1, this.enableMouseWheelZoom()) + }, a.prototype.enableMouseWheelZoom = function() { + if (!this.options.mouseWheelZoomEnabled) { + var t = this; + this.wheelListener = function(e) { + return t.handleMouseWheel(e) + }, o.on(this.options.eventsListenerElement || this.svg, this.wheelListener, !1), this.options.mouseWheelZoomEnabled = !0 + } + }, a.prototype.disableMouseWheelZoom = function() { + this.options.mouseWheelZoomEnabled && (o.off(this.options.eventsListenerElement || this.svg, this.wheelListener, !1), this.options.mouseWheelZoomEnabled = !1) + }, a.prototype.handleMouseWheel = function(t) { + if (this.options.zoomEnabled && "none" === this.state) { + this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1); + var e = t.deltaY || 1, + o = Date.now() - this.lastMouseWheelEventTime, + n = 3 + Math.max(0, 30 - o); + this.lastMouseWheelEventTime = Date.now(), "deltaMode" in t && 0 === t.deltaMode && t.wheelDelta && (e = 0 === t.deltaY ? 0 : Math.abs(t.wheelDelta) / t.deltaY), e = e > -.3 && .3 > e ? e : (e > 0 ? 1 : -1) * Math.log(Math.abs(e) + 10) / n; + var i = this.svg.getScreenCTM().inverse(), + r = s.getEventPoint(t, this.svg).matrixTransform(i), + a = Math.pow(1 + this.options.zoomScaleSensitivity, -1 * e); + this.zoomAtPoint(a, r) + } + }, a.prototype.zoomAtPoint = function(t, e, o) { + var n = this.viewport.getOriginalState(); + o ? (t = Math.max(this.options.minZoom * n.zoom, Math.min(this.options.maxZoom * n.zoom, t)), t /= this.getZoom()) : this.getZoom() * t < this.options.minZoom * n.zoom ? t = this.options.minZoom * n.zoom / this.getZoom() : this.getZoom() * t > this.options.maxZoom * n.zoom && (t = this.options.maxZoom * n.zoom / this.getZoom()); + var i = this.viewport.getCTM(), + s = e.matrixTransform(i.inverse()), + r = this.svg.createSVGMatrix().translate(s.x, s.y).scale(t).translate(-s.x, -s.y), + a = i.multiply(r); + a.a !== i.a && this.viewport.setCTM(a) + }, a.prototype.zoom = function(t, e) { + this.zoomAtPoint(t, s.getSvgCenterPoint(this.svg, this.width, this.height), e) + }, a.prototype.publicZoom = function(t, e) { + e && (t = this.computeFromRelativeZoom(t)), this.zoom(t, e) + }, a.prototype.publicZoomAtPoint = function(t, e, o) { + if (o && (t = this.computeFromRelativeZoom(t)), !("SVGPoint" !== i.getType(e) && "x" in e && "y" in e)) throw new Error("Given point is invalid"); + e = s.createSVGPoint(this.svg, e.x, e.y), this.zoomAtPoint(t, e, o) + }, a.prototype.getZoom = function() { + return this.viewport.getZoom() + }, a.prototype.getRelativeZoom = function() { + return this.viewport.getRelativeZoom() + }, a.prototype.computeFromRelativeZoom = function(t) { + return t * this.viewport.getOriginalState().zoom + }, a.prototype.resetZoom = function() { + var t = this.viewport.getOriginalState(); + this.zoom(t.zoom, !0) + }, a.prototype.resetPan = function() { + this.pan(this.viewport.getOriginalState()) + }, a.prototype.reset = function() { + this.resetZoom(), this.resetPan() + }, a.prototype.handleDblClick = function(t) { + if (this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), this.options.controlIconsEnabled) { + var e = t.target.getAttribute("class") || ""; + if (e.indexOf("svg-pan-zoom-control") > -1) return !1 + } + var o; + o = t.shiftKey ? 1 / (2 * (1 + this.options.zoomScaleSensitivity)) : 2 * (1 + this.options.zoomScaleSensitivity); + var n = s.getEventPoint(t, this.svg).matrixTransform(this.svg.getScreenCTM().inverse()); + this.zoomAtPoint(o, n) + }, a.prototype.handleMouseDown = function(t, e) { + this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), i.mouseAndTouchNormalize(t, this.svg), this.options.dblClickZoomEnabled && i.isDblClick(t, e) ? this.handleDblClick(t) : (this.state = "pan", this.firstEventCTM = this.viewport.getCTM(), this.stateOrigin = s.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse())) + }, a.prototype.handleMouseMove = function(t) { + if (this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && this.options.panEnabled) { + var e = s.getEventPoint(t, this.svg).matrixTransform(this.firstEventCTM.inverse()), + o = this.firstEventCTM.translate(e.x - this.stateOrigin.x, e.y - this.stateOrigin.y); + this.viewport.setCTM(o) + } + }, a.prototype.handleMouseUp = function(t) { + this.options.preventMouseEventsDefault && (t.preventDefault ? t.preventDefault() : t.returnValue = !1), "pan" === this.state && (this.state = "none") + }, a.prototype.fit = function() { + var t = this.viewport.getViewBox(), + e = Math.min(this.width / t.width, this.height / t.height); + this.zoom(e, !0) + }, a.prototype.contain = function() { + var t = this.viewport.getViewBox(), + e = Math.max(this.width / t.width, this.height / t.height); + this.zoom(e, !0) + }, a.prototype.center = function() { + var t = this.viewport.getViewBox(), + e = .5 * (this.width - (t.width + 2 * t.x) * this.getZoom()), + o = .5 * (this.height - (t.height + 2 * t.y) * this.getZoom()); + this.getPublicInstance().pan({ + x: e, + y: o + }) + }, a.prototype.updateBBox = function() { + this.viewport.recacheViewBox() + }, a.prototype.pan = function(t) { + var e = this.viewport.getCTM(); + e.e = t.x, e.f = t.y, this.viewport.setCTM(e) + }, a.prototype.panBy = function(t) { + var e = this.viewport.getCTM(); + e.e += t.x, e.f += t.y, this.viewport.setCTM(e) + }, a.prototype.getPan = function() { + var t = this.viewport.getState(); + return { + x: t.x, + y: t.y + } + }, a.prototype.resize = function() { + var t = s.getBoundingClientRectNormalized(this.svg); + this.width = t.width, this.height = t.height, this.options.controlIconsEnabled && (this.getPublicInstance().disableControlIcons(), this.getPublicInstance().enableControlIcons()) + }, a.prototype.destroy = function() { + var t = this; + this.beforeZoom = null, this.onZoom = null, this.beforePan = null, this.onPan = null, null != this.options.customEventsHandler && this.options.customEventsHandler.destroy({ + svgElement: this.svg, + eventsListenerElement: this.options.eventsListenerElement, + instance: this.getPublicInstance() + }); + for (var e in this.eventListeners)(this.options.eventsListenerElement || this.svg).removeEventListener(e, this.eventListeners[e], !1); + this.disableMouseWheelZoom(), this.getPublicInstance().disableControlIcons(), this.reset(), u = u.filter(function(e) { + return e.svg !== t.svg + }), delete this.options, delete this.publicInstance, delete this.pi, this.getPublicInstance = function() { + return null + } + }, a.prototype.getPublicInstance = function() { + var t = this; + return this.publicInstance || (this.publicInstance = this.pi = { + enablePan: function() { + return t.options.panEnabled = !0, t.pi + }, + disablePan: function() { + return t.options.panEnabled = !1, t.pi + }, + isPanEnabled: function() { + return !!t.options.panEnabled + }, + pan: function(e) { + return t.pan(e), t.pi + }, + panBy: function(e) { + return t.panBy(e), t.pi + }, + getPan: function() { + return t.getPan() + }, + setBeforePan: function(e) { + return t.options.beforePan = null === e ? null : i.proxy(e, t.publicInstance), t.pi + }, + setOnPan: function(e) { + return t.options.onPan = null === e ? null : i.proxy(e, t.publicInstance), t.pi + }, + enableZoom: function() { + return t.options.zoomEnabled = !0, t.pi + }, + disableZoom: function() { + return t.options.zoomEnabled = !1, t.pi + }, + isZoomEnabled: function() { + return !!t.options.zoomEnabled + }, + enableControlIcons: function() { + return t.options.controlIconsEnabled || (t.options.controlIconsEnabled = !0, n.enable(t)), t.pi + }, + disableControlIcons: function() { + return t.options.controlIconsEnabled && (t.options.controlIconsEnabled = !1, n.disable(t)), t.pi + }, + isControlIconsEnabled: function() { + return !!t.options.controlIconsEnabled + }, + enableDblClickZoom: function() { + return t.options.dblClickZoomEnabled = !0, t.pi + }, + disableDblClickZoom: function() { + return t.options.dblClickZoomEnabled = !1, t.pi + }, + isDblClickZoomEnabled: function() { + return !!t.options.dblClickZoomEnabled + }, + enableMouseWheelZoom: function() { + return t.enableMouseWheelZoom(), t.pi + }, + disableMouseWheelZoom: function() { + return t.disableMouseWheelZoom(), t.pi + }, + isMouseWheelZoomEnabled: function() { + return !!t.options.mouseWheelZoomEnabled + }, + setZoomScaleSensitivity: function(e) { + return t.options.zoomScaleSensitivity = e, t.pi + }, + setMinZoom: function(e) { + return t.options.minZoom = e, t.pi + }, + setMaxZoom: function(e) { + return t.options.maxZoom = e, t.pi + }, + setBeforeZoom: function(e) { + return t.options.beforeZoom = null === e ? null : i.proxy(e, t.publicInstance), t.pi + }, + setOnZoom: function(e) { + return t.options.onZoom = null === e ? null : i.proxy(e, t.publicInstance), t.pi + }, + zoom: function(e) { + return t.publicZoom(e, !0), t.pi + }, + zoomBy: function(e) { + return t.publicZoom(e, !1), t.pi + }, + zoomAtPoint: function(e, o) { + return t.publicZoomAtPoint(e, o, !0), t.pi + }, + zoomAtPointBy: function(e, o) { + return t.publicZoomAtPoint(e, o, !1), t.pi + }, + zoomIn: function() { + return this.zoomBy(1 + t.options.zoomScaleSensitivity), t.pi + }, + zoomOut: function() { + return this.zoomBy(1 / (1 + t.options.zoomScaleSensitivity)), t.pi + }, + getZoom: function() { + return t.getRelativeZoom() + }, + resetZoom: function() { + return t.resetZoom(), t.pi + }, + resetPan: function() { + return t.resetPan(), t.pi + }, + reset: function() { + return t.reset(), t.pi + }, + fit: function() { + return t.fit(), t.pi + }, + contain: function() { + return t.contain(), t.pi + }, + center: function() { + return t.center(), t.pi + }, + updateBBox: function() { + return t.updateBBox(), t.pi + }, + resize: function() { + return t.resize(), t.pi + }, + getSizes: function() { + return { + width: t.width, + height: t.height, + realZoom: t.getZoom(), + viewBox: t.viewport.getViewBox() + } + }, + destroy: function() { + return t.destroy(), t.pi + } + }), this.publicInstance + }; + var u = [], + h = function(t, e) { + var o = i.getSvg(t); + if (null === o) return null; + for (var n = u.length - 1; n >= 0; n--) + if (u[n].svg === o) return u[n].instance.getPublicInstance(); + return u.push({ + svg: o, + instance: new a(o, e) + }), u[u.length - 1].instance.getPublicInstance() + }; + e.exports = h + }, { + "./control-icons": 2, + "./shadow-viewport": 3, + "./svg-utilities": 5, + "./uniwheel": 6, + "./utilities": 7 + }], + 5: [function(t, e) { + var o = t("./utilities"), + n = "unknown"; + document.documentMode && (n = "ie"), e.exports = { + svgNS: "http://www.w3.org/2000/svg", + xmlNS: "http://www.w3.org/XML/1998/namespace", + xmlnsNS: "http://www.w3.org/2000/xmlns/", + xlinkNS: "http://www.w3.org/1999/xlink", + evNS: "http://www.w3.org/2001/xml-events", + getBoundingClientRectNormalized: function(t) { + if (t.clientWidth && t.clientHeight) return { + width: t.clientWidth, + height: t.clientHeight + }; + if (t.getBoundingClientRect()) return t.getBoundingClientRect(); + throw new Error("Cannot get BoundingClientRect for SVG.") + }, + getOrCreateViewport: function(t, e) { + var n = null; + if (n = o.isElement(e) ? e : t.querySelector(e), !n) { + var i = Array.prototype.slice.call(t.childNodes || t.children).filter(function(t) { + return "defs" !== t.nodeName && "#text" !== t.nodeName + }); + 1 === i.length && "g" === i[0].nodeName && null === i[0].getAttribute("transform") && (n = i[0]) + } + if (!n) { + var s = "viewport-" + (new Date).toISOString().replace(/\D/g, ""); + n = document.createElementNS(this.svgNS, "g"), n.setAttribute("id", s); + var r = t.childNodes || t.children; + if (r && r.length > 0) + for (var a = r.length; a > 0; a--) "defs" !== r[r.length - a].nodeName && n.appendChild(r[r.length - a]); + t.appendChild(n) + } + var l = []; + return n.getAttribute("class") && (l = n.getAttribute("class").split(" ")), ~l.indexOf("svg-pan-zoom_viewport") || (l.push("svg-pan-zoom_viewport"), n.setAttribute("class", l.join(" "))), n + }, + setupSvgAttributes: function(t) { + if (t.setAttribute("xmlns", this.svgNS), t.setAttributeNS(this.xmlnsNS, "xmlns:xlink", this.xlinkNS), t.setAttributeNS(this.xmlnsNS, "xmlns:ev", this.evNS), null !== t.parentNode) { + var e = t.getAttribute("style") || ""; - 1 === e.toLowerCase().indexOf("overflow") && t.setAttribute("style", "overflow: hidden; " + e) + } + }, + internetExplorerRedisplayInterval: 300, + refreshDefsGlobal: o.throttle(function() { + for (var t = document.querySelectorAll("defs"), e = t.length, o = 0; e > o; o++) { + var n = t[o]; + n.parentNode.insertBefore(n, n) + } + }, this.internetExplorerRedisplayInterval), + setCTM: function(t, e, o) { + var i = this, + s = "matrix(" + e.a + "," + e.b + "," + e.c + "," + e.d + "," + e.e + "," + e.f + ")"; + t.setAttributeNS(null, "transform", s), "ie" === n && o && (o.parentNode.insertBefore(o, o), window.setTimeout(function() { + i.refreshDefsGlobal() + }, i.internetExplorerRedisplayInterval)) + }, + getEventPoint: function(t, e) { + var n = e.createSVGPoint(); + return o.mouseAndTouchNormalize(t, e), n.x = t.clientX, n.y = t.clientY, n + }, + getSvgCenterPoint: function(t, e, o) { + return this.createSVGPoint(t, e / 2, o / 2) + }, + createSVGPoint: function(t, e, o) { + var n = t.createSVGPoint(); + return n.x = e, n.y = o, n + } + } + }, { + "./utilities": 7 + }], + 6: [function(t, e) { + e.exports = function() { + function t(t, e, o) { + var n = function(t) { + !t && (t = window.event); + var o = { + originalEvent: t, + target: t.target || t.srcElement, + type: "wheel", + deltaMode: "MozMousePixelScroll" == t.type ? 0 : 1, + deltaX: 0, + delatZ: 0, + preventDefault: function() { + t.preventDefault ? t.preventDefault() : t.returnValue = !1 + } + }; + return "mousewheel" == u ? (o.deltaY = -1 / 40 * t.wheelDelta, t.wheelDeltaX && (o.deltaX = -1 / 40 * t.wheelDeltaX)) : o.deltaY = t.detail, e(o) + }; + return c.push({ + element: t, + fn: n, + capture: o + }), n + } + + function e(t, e) { + for (var o = 0; o < c.length; o++) + if (c[o].element === t && c[o].capture === e) return c[o].fn; + return function() {} + } + + function o(t, e) { + for (var o = 0; o < c.length; o++) + if (c[o].element === t && c[o].capture === e) return c.splice(o, 1) + } + + function n(e, o, n, i) { + var s; + s = "wheel" === u ? n : t(e, n, i), e[a](h + o, s, i || !1) + } + + function i(t, n, i, s) { + cb = "wheel" === u ? i : e(t, s), t[l](h + n, cb, s || !1), o(t, s) + } + + function s(t, e, o) { + n(t, u, e, o), "DOMMouseScroll" == u && n(t, "MozMousePixelScroll", e, o) + } + + function r(t, e, o) { + i(t, u, e, o), "DOMMouseScroll" == u && i(t, "MozMousePixelScroll", e, o) + } + var a, l, u, h = "", + c = []; + return window.addEventListener ? (a = "addEventListener", l = "removeEventListener") : (a = "attachEvent", l = "detachEvent", h = "on"), u = "onwheel" in document.createElement("div") ? "wheel" : void 0 !== document.onmousewheel ? "mousewheel" : "DOMMouseScroll", { + on: s, + off: r + } + }() + }, {}], + 7: [function(t, e) { + function o(t) { + return function(e) { + window.setTimeout(e, t) + } + } + e.exports = { + extend: function(t, e) { + t = t || {}; + for (var o in e) t[o] = this.isObject(e[o]) ? this.extend(t[o], e[o]) : e[o]; + return t + }, + isElement: function(t) { + return t instanceof HTMLElement || t instanceof SVGElement || t instanceof SVGSVGElement || t && "object" == typeof t && null !== t && 1 === t.nodeType && "string" == typeof t.nodeName + }, + isObject: function(t) { + return "[object Object]" === Object.prototype.toString.call(t) + }, + isNumber: function(t) { + return !isNaN(parseFloat(t)) && isFinite(t) + }, + getSvg: function(t) { + var e, o; + if (this.isElement(t)) e = t; + else { + if (!("string" == typeof t || t instanceof String)) throw new Error("Provided selector is not an HTML object nor String"); + if (e = document.querySelector(t), !e) throw new Error("Provided selector did not find any elements. Selector: " + t) + } + if ("svg" === e.tagName.toLowerCase()) o = e; + else if ("object" === e.tagName.toLowerCase()) o = e.contentDocument.documentElement; + else { + if ("embed" !== e.tagName.toLowerCase()) throw new Error("img" === e.tagName.toLowerCase() ? 'Cannot script an SVG in an "img" element. Please use an "object" element or an in-line SVG.' : "Cannot get SVG."); + o = e.getSVGDocument().documentElement + } + return o + }, + proxy: function(t, e) { + return function() { + return t.apply(e, arguments) + } + }, + getType: function(t) { + return Object.prototype.toString.apply(t).replace(/^\[object\s/, "").replace(/\]$/, "") + }, + mouseAndTouchNormalize: function(t, e) { + if (void 0 === t.clientX || null === t.clientX) + if (t.clientX = 0, t.clientY = 0, void 0 !== t.changedTouches && t.changedTouches.length) { + if (void 0 !== t.changedTouches[0].clientX) t.clientX = t.changedTouches[0].clientX, t.clientY = t.changedTouches[0].clientY; + else if (void 0 !== t.changedTouches[0].pageX) { + var o = e.getBoundingClientRect(); + t.clientX = t.changedTouches[0].pageX - o.left, t.clientY = t.changedTouches[0].pageY - o.top + } + } else void 0 !== t.originalEvent && void 0 !== t.originalEvent.clientX && (t.clientX = t.originalEvent.clientX, t.clientY = t.originalEvent.clientY) + }, + isDblClick: function(t, e) { + if (2 === t.detail) return !0; + if (void 0 !== e && null !== e) { + var o = t.timeStamp - e.timeStamp, + n = Math.sqrt(Math.pow(t.clientX - e.clientX, 2) + Math.pow(t.clientY - e.clientY, 2)); + return 250 > o && 10 > n + } + return !1 + }, + now: Date.now || function() { + return (new Date).getTime() + }, + throttle: function(t, e, o) { + var n, i, s, r = this, + a = null, + l = 0; + o || (o = {}); + var u = function() { + l = o.leading === !1 ? 0 : r.now(), a = null, s = t.apply(n, i), a || (n = i = null) + }; + return function() { + var h = r.now(); + l || o.leading !== !1 || (l = h); + var c = e - (h - l); + return n = this, i = arguments, 0 >= c || c > e ? (clearTimeout(a), a = null, l = h, s = t.apply(n, i), a || (n = i = null)) : a || o.trailing === !1 || (a = setTimeout(u, c)), s + } + }, + createRequestAnimationFrame: function(t) { + var e = null; + return "auto" !== t && 60 > t && t > 1 && (e = Math.floor(1e3 / t)), null === e ? window.requestAnimationFrame || o(33) : o(e) + } + } + }, {}] +}, {}, [1]); diff --git a/frontend/documentation/js/libs/zepto.min.js b/frontend/src/documentation/js/libs/zepto.min.js similarity index 100% rename from frontend/documentation/js/libs/zepto.min.js rename to frontend/src/documentation/js/libs/zepto.min.js diff --git a/frontend/src/documentation/js/menu.js b/frontend/src/documentation/js/menu.js new file mode 100644 index 0000000..ecbd029 --- /dev/null +++ b/frontend/src/documentation/js/menu.js @@ -0,0 +1,56 @@ +document.addEventListener('DOMContentLoaded', function() { + var menuCollapsed = false, + mobileMenu = document.getElementById('mobile-menu'); + document.getElementById('btn-menu').addEventListener('click', function() { + if (menuCollapsed) { + mobileMenu.style.display = 'none'; + } else { + mobileMenu.style.display = 'block'; + document.getElementsByTagName('body')[0].style['overflow-y'] = 'hidden'; + } + menuCollapsed = !menuCollapsed; + }); + + // collapse menu + var classnameMenuToggler = document.getElementsByClassName('menu-toggler'), + faAngleUpClass = 'fa-angle-up', + faAngleDownClass = 'fa-angle-down', + toggleItemMenu = function(e) { + e.preventDefault(); + var element = $(e.target); + if (element.hasClass(faAngleUpClass)) { + element.addClass(faAngleDownClass); + element.removeClass(faAngleUpClass); + } else { + element.addClass(faAngleUpClass); + element.removeClass(faAngleDownClass); + } + }; + + for (var i = 0; i < classnameMenuToggler.length; i++) { + classnameMenuToggler[i].addEventListener('click', toggleItemMenu, false); + } + + // Scroll to active link + var menus = document.querySelectorAll('.menu'), + i = 0, + len = menus.length, + activeMenu, + activeMenuClass, + activeLink; + + for (i; ir;r++){for(var o=t[r],s=0;i>s&&(o=this._stack[s](o,r,t),void 0!==o&&""!==o);s++);void 0!==o&&""!==o&&e.push(o)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(o===t)return r;t>o&&(e=r),o>t&&(n=r),i=n-e,r=e+Math.floor(i/2),o=this.elements[r]}return o===t?r:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,r=e+Math.floor(i/2),o=this.elements[r];i>1;)t>o&&(e=r),o>t&&(n=r),i=n-e,r=e+Math.floor(i/2),o=this.elements[r];return o>t?r:t>o?r+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,r=0,o=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>o-1||r>s-1)break;a[i]!==h[r]?a[i]h[r]&&r++:(n.add(a[i]),i++,r++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone();for(var r=0,o=n.toArray();rp;p++)c[p]===a&&d++;h+=d/f*l.boost}}this.tokenStore.add(a,{ref:o,tf:h})}n&&this.eventEmitter.emit("add",e,this)},t.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var i=this.documentStore.get(n);this.documentStore.remove(n),i.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},t.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},t.Index.prototype.idf=function(t){var e="@"+t;if(Object.prototype.hasOwnProperty.call(this._idfCache,e))return this._idfCache[e];var n=this.tokenStore.count(t),i=1;return n>0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(this.tokenizerFn(e)),i=new t.Vector,r=[],o=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*o,h=this,u=this.tokenStore.expand(e).reduce(function(n,r){var o=h.corpusTokens.indexOf(r),s=h.idf(r),u=1,l=new t.SortedSet;if(r!==e){var c=Math.max(3,r.length-e.length);u=1/Math.log(c)}o>-1&&i.insert(o,a*s*u);for(var f=h.tokenStore.get(r),d=Object.keys(f),p=d.length,v=0;p>v;v++)l.add(f[d[v]].ref);return n.union(l)},new t.SortedSet);r.push(u)},this);var a=r.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,r=new t.Vector,o=0;i>o;o++){var s=n.elements[o],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);r.insert(this.corpusTokens.indexOf(s),a*h)}return r},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,tokenizer:this.tokenizerFn.label,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",r=n+"[^aeiouy]*",o=i+"[aeiou]*",s="^("+r+")?"+o+r,a="^("+r+")?"+o+r+"("+o+")?$",h="^("+r+")?"+o+r+o+r,u="^("+r+")?"+i,l=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(u),p=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,m=/^(.+?)(ed|ing)$/,y=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),k=new RegExp("^"+r+i+"[^aeiouwxy]$"),x=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,F=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,_=/^(.+?)(s|t)(ion)$/,z=/^(.+?)e$/,O=/ll$/,P=new RegExp("^"+r+i+"[^aeiouwxy]$"),T=function(n){var i,r,o,s,a,h,u;if(n.length<3)return n;if(o=n.substr(0,1),"y"==o&&(n=o.toUpperCase()+n.substr(1)),s=p,a=v,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=g,a=m,s.test(n)){var T=s.exec(n);s=l,s.test(T[1])&&(s=y,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,u=k,a.test(n)?n+="e":h.test(n)?(s=y,n=n.replace(s,"")):u.test(n)&&(n+="e"))}if(s=x,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],r=T[2],s=l,s.test(i)&&(n=i+t[r])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],r=T[2],s=l,s.test(i)&&(n=i+e[r])}if(s=F,a=_,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=z,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=P,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=O,a=c,s.test(n)&&a.test(n)&&(s=y,n=n.replace(s,"")),"y"==o&&(n=o.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.generateStopWordFilter=function(t){var e=t.reduce(function(t,e){return t[e]=e,t},{});return function(t){return t&&e[t]!==t?t:void 0}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t.charAt(0),r=t.slice(1);return i in n||(n[i]={docs:{}}),0===r.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(r,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n element for each result res.results.forEach(function(res) { - var context = res.title.split(' - ')[0]; - if (typeof groups[context] === 'undefined') { - groups[context] = { - results: [res] - } - } else { - groups[context].results.push(res) - } - }); - - var sortedGroups = Object.keys(groups).sort(); - - for (var i = 0; i < sortedGroups.length; i++) { - var property = sortedGroups[i]; - var $li = $('
                                      • ', { - 'class': 'search-results-group' + 'class': 'search-results-item' }); - var finalPropertyLabel = ''; - var propertyLabels = property.split('-'); - - if (propertyLabels.length === 2 && propertyLabels[0] !== 'miscellaneous' && propertyLabels[0] !== 'additional') { - finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' - ' + propertyLabels[1].charAt(0).toUpperCase() + propertyLabels[1].substring(1) + ' (' + groups[property].results.length + ')'; - } else if (propertyLabels[0] === 'additional') { - finalPropertyLabel = 'Additional pages' + ' (' + groups[property].results.length + ')' - } else { - finalPropertyLabel = propertyLabels[0].charAt(0).toUpperCase() + propertyLabels[0].substring(1) + ' (' + groups[property].results.length + ')' + + var $title = $('

                                        '); + + var $link = $('', { + 'href': res.url, + 'text': res.title + }); + + var content = res.body.trim(); + if (content.length > MAX_DESCRIPTION_SIZE) { + content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...'; } - var $groupTitle = $('

                                        ', { - 'text': finalPropertyLabel - }); - $groupTitle.appendTo($li); - - var $ulResults = $('